//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Data object carrying infomration about a fitted track // (residuals, chi2,...) // This class is meant to serve as a container which can be // used witht the ROOT TreeViewer to produce plots // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Sebastian Neubert TUM (original author) // // //----------------------------------------------------------- #ifndef TRACKFITSTAT_HH #define TRACKFITSTAT_HH // Base Class Headers ---------------- #include "TObject.h" #include "TVector3.h" // Collaborating Class Headers ------- #include // remove if you do not need streaming op #include // Collaborating Class Declarations -- class TrackFitStat : public TObject{ public: // Constructors/Destructors --------- TrackFitStat(); virtual ~TrackFitStat(){} // Operators // Accessors ----------------------- Int_t GetPdgCode() { return _nPDG; } Int_t GetMotherID() { return _motherID; } Double_t GetMCP() { return _pmc; } Double_t GetP() {return _p;} TVector3 GetMom() {return _mom;} const std::vector* GetResX() {return &_PndTpcResX;} const std::vector* GetResY() {return &_PndTpcResY;} const std::vector* GetResZ() {return &_PndTpcResZ;} const std::vector* GetResU() {return &_PndTpcResU;} const std::vector* GetResV() {return &_PndTpcResV;} const std::vector* GetSigX() {return &_PndTpcSigX;} const std::vector* GetSigY() {return &_PndTpcSigY;} const std::vector* GetSigZ() {return &_PndTpcSigZ;} const std::vector* GetChi2X() {return &_PndTpcChi2X;} const std::vector* GetChi2Y() {return &_PndTpcChi2Y;} const std::vector* GetChi2Z() {return &_PndTpcChi2Z;} const std::vector* GetClSizes() {return &_PndTpcClusterSize;} const std::vector* Get2DClSizes() {return &_PndTpc2DClusterSize;} const std::vector* GetAmps() {return &_PndTpcClusterAmp;} const std::vector* GetProjectionPoints() {return &_PndTpcProj;} const std::vector* GetHitPositionsX() {return &_PndTpcPosX;} const std::vector* GetHitPositionsY() {return &_PndTpcPosY;} const std::vector* GetHitPositionsZ() {return &_PndTpcPosZ;} const std::vector* GetHitIDs() {return &_PndTpcHitID;} // Modifiers ----------------------- void fillPndTpcResX(const std::vector& r){_PndTpcResX=r;} void fillPndTpcResY(const std::vector& r){_PndTpcResY=r;} void fillPndTpcResZ(const std::vector& r){_PndTpcResZ=r;} void fillPndTpcResU(const std::vector& r){_PndTpcResU=r;} void fillPndTpcResV(const std::vector& r){_PndTpcResV=r;} void fillPndTpcSigX(const std::vector& r){_PndTpcSigX=r;} void fillPndTpcSigY(const std::vector& r){_PndTpcSigY=r;} void fillPndTpcSigZ(const std::vector& r){_PndTpcSigZ=r;} void fillPndTpcChi2X(const std::vector& r){_PndTpcChi2X=r;} void fillPndTpcChi2Y(const std::vector& r){_PndTpcChi2Y=r;} void fillPndTpcChi2Z(const std::vector& r){_PndTpcChi2Z=r;} void fillPndTpcClusterSize(const std::vector& s){_PndTpcClusterSize=s;} void fillPndTpc2DClusterSize(const std::vector& s){_PndTpc2DClusterSize=s;} void fillPndTpcClusterAmp(const std::vector& s){_PndTpcClusterAmp=s;} void fillPndTpcProjPoints(const std::vector& s){_PndTpcProj=s;} void fillPndTpcHitPositionsX(const std::vector& s){_PndTpcPosX=s;} void fillPndTpcHitPositionsY(const std::vector& s){_PndTpcPosY=s;} void fillPndTpcHitPositionsZ(const std::vector& s){_PndTpcPosZ=s;} void fillPndTpcHitIDs(const std::vector& s){_PndTpcHitID=s;} void addFailedHits(int NFH) {_failedHits+=NFH;} void setNDF(unsigned int ndf) {_NDF=ndf;} void setChi2(double chi2) {_ChiSqu=chi2;} // Operations ---------------------- void setp(double p){_p=p;} void setmom(TVector3 p){_mom=p;} void setpmc(double p){_pmc=p;_hasMc=true;} void setpstart(double pstart){_pstart=pstart;} void setsigp(double s){_sigp=s;} void setcharge(double q){_charge=q;} void setmccharge(double q){_mccharge=q;} void setpdg(Int_t pdg){_nPDG=pdg;} void setmotherid(Int_t motherID) {_motherID=motherID;} unsigned int nhits() const {return _PndTpcResX.size();} unsigned int getFailedHits() {return _failedHits;} unsigned int getNDF() const {return _NDF;} //NDF from fit double getChi2() const {return _ChiSqu;} //ChiSqu from fit private: // Private Data Members ------------ std::vector _PndTpcResX; std::vector _PndTpcResY; std::vector _PndTpcResZ; std::vector _PndTpcResU; std::vector _PndTpcResV; std::vector _PndTpcSigX; std::vector _PndTpcSigY; std::vector _PndTpcSigZ; std::vector _PndTpcChi2X; std::vector _PndTpcChi2Y; std::vector _PndTpcChi2Z; std::vector _PndTpcClusterSize; std::vector _PndTpc2DClusterSize; std::vector _PndTpcClusterAmp; std::vector _PndTpcProj; std::vector _PndTpcPosX; std::vector _PndTpcPosY; std::vector _PndTpcPosZ; std::vector _PndTpcHitID; double _p; double _pmc; double _pstart; TVector3 _mom; double _charge; double _mccharge; double _sigp; Int_t _nPDG; Int_t _motherID; unsigned int _failedHits; //stores the number of failed hits (cov was zero) bool _hasMc; double _ChiSqu; unsigned int _NDF; // Private Methods ----------------- public: ClassDef(TrackFitStat,12) }; #endif //-------------------------------------------------------------- // $Log$ //-------------------------------------------------------------- //Version 8 : Chi2 info added