//----------------------------------------------------------- // 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 &_TpcResX;} const std::vector* GetResY() {return &_TpcResY;} const std::vector* GetResZ() {return &_TpcResZ;} const std::vector* GetResU() {return &_TpcResU;} const std::vector* GetResV() {return &_TpcResV;} const std::vector* GetSigX() {return &_TpcSigX;} const std::vector* GetSigY() {return &_TpcSigY;} const std::vector* GetSigZ() {return &_TpcSigZ;} const std::vector* GetChi2X() {return &_TpcChi2X;} const std::vector* GetChi2Y() {return &_TpcChi2Y;} const std::vector* GetChi2Z() {return &_TpcChi2Z;} const std::vector* GetClSizes() {return &_TpcClusterSize;} const std::vector* Get2DClSizes() {return &_Tpc2DClusterSize;} const std::vector* GetAmps() {return &_TpcClusterAmp;} const std::vector* GetProjectionPoints() {return &_TpcProj;} const std::vector* GetHitPositionsX() {return &_TpcPosX;} const std::vector* GetHitPositionsY() {return &_TpcPosY;} const std::vector* GetHitPositionsZ() {return &_TpcPosZ;} const std::vector* GetHitIDs() {return &_TpcHitID;} // Modifiers ----------------------- void fillTpcResX(const std::vector& r){_TpcResX=r;} void fillTpcResY(const std::vector& r){_TpcResY=r;} void fillTpcResZ(const std::vector& r){_TpcResZ=r;} void fillTpcResU(const std::vector& r){_TpcResU=r;} void fillTpcResV(const std::vector& r){_TpcResV=r;} void fillTpcSigX(const std::vector& r){_TpcSigX=r;} void fillTpcSigY(const std::vector& r){_TpcSigY=r;} void fillTpcSigZ(const std::vector& r){_TpcSigZ=r;} void fillTpcChi2X(const std::vector& r){_TpcChi2X=r;} void fillTpcChi2Y(const std::vector& r){_TpcChi2Y=r;} void fillTpcChi2Z(const std::vector& r){_TpcChi2Z=r;} void fillTpcClusterSize(const std::vector& s){_TpcClusterSize=s;} void fillTpc2DClusterSize(const std::vector& s){_Tpc2DClusterSize=s;} void fillTpcClusterAmp(const std::vector& s){_TpcClusterAmp=s;} void fillTpcProjPoints(const std::vector& s){_TpcProj=s;} void fillTpcHitPositionsX(const std::vector& s){_TpcPosX=s;} void fillTpcHitPositionsY(const std::vector& s){_TpcPosY=s;} void fillTpcHitPositionsZ(const std::vector& s){_TpcPosZ=s;} void fillTpcHitIDs(const std::vector& s){_TpcHitID=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 _TpcResX.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 _TpcResX; std::vector _TpcResY; std::vector _TpcResZ; std::vector _TpcResU; std::vector _TpcResV; std::vector _TpcSigX; std::vector _TpcSigY; std::vector _TpcSigZ; std::vector _TpcChi2X; std::vector _TpcChi2Y; std::vector _TpcChi2Z; std::vector _TpcClusterSize; std::vector _Tpc2DClusterSize; std::vector _TpcClusterAmp; std::vector _TpcProj; std::vector _TpcPosX; std::vector _TpcPosY; std::vector _TpcPosZ; std::vector _TpcHitID; 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