//----------------------------------------------------------- // 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 GEMTPC Detector // // Author List: // Martin Berger TUM (original author) // // //----------------------------------------------------------- #ifndef PARTICLE_HH #define PARTICLE_HH // Base Class Headers ---------------- #include "../../base/TpcdEdx.h" #include "TObject.h" #include "TVector3.h" // Collaborating Class Headers ------- #include "GFDetPlane.h" class Particle : public TObject { public: Particle(); //Particle(Particle& other); //virtual ~Particle(); void SetFitFlag (Int_t flag) {fFitFlag=flag;} void SetTrackMom (TVector3 mom) {fTrackMom=mom;} void SetTrackPos (TVector3 pos) {fTrackPos=pos;} void SetHasTpc (Bool_t opt=kTRUE){fHasTpc=opt;} void SetHasCdc (Bool_t opt=kTRUE){fHasCdc=opt;} void SetdEdx (TpcdEdx dedx) {fdedx=dedx;} void appendDetID (Int_t id) {fDetID.push_back(id);} void appendDetName (TString name) {fDetName.push_back(name);} void appendPosXYZ (TVector3 vec) {fPosXYZ.push_back(vec);} void appendTrackPosXYZ (TVector3 vec) {fTrackPosXYZ.push_back(vec);} void appendTrackPosXYZErr (TVector3 vec) {fTrackPosXYZErr.push_back(vec);} void appendTrackMom (TVector3 vec) {fTrackPosMom.push_back(vec);} void appendTrackMomErr (TVector3 vec) {fTrackPosMomErr.push_back(vec);} void appendResXYZ (TVector3 vec) {fResXYZ.push_back(vec);} void appendResUV (TVector3 vec) {fResUV.push_back(vec);} void appendResA (TVector3 vec) {fResA.push_back(vec);} void appendSigXYZ (TVector3 vec) {fSigXYZ.push_back(vec);} void appendSigA (TVector3 vec) {fSigA.push_back(vec);} void appendSigUV (TVector3 vec) {fSigUV.push_back(vec);} void appendAxis1 (TVector3 vec) {fAxis1.push_back(vec);} void appendAxis2 (TVector3 vec) {fAxis2.push_back(vec);} void appendAxis3 (TVector3 vec) {fAxis3.push_back(vec);} void appendTrackPlane (GFDetPlane plane){fTrackPlane.push_back(plane);} void appendMidPlane (GFDetPlane plane){fMidPlane.push_back(plane);} void appendClusterSize (Int_t x) {fClusterSize.push_back(x);} void appendClusterSizeShare (Double_t x) {fClusterSizeShare.push_back(x);} void append2DClusterSize (Int_t x) {f2DClusterSize.push_back(x);} void appendFullClusterSize (TVector3 vec) {fFullClusterSize.push_back(vec);} void appendFullClusterSizeTrack (TVector3 vec) {fFullClusterSizeTrack.push_back(vec);} void appendFullClusterSizeAxis (TVector3 vec) {fFullClusterSizeAxis.push_back(vec);} void appendClusterAmp (Double_t x) {fClusterAmp.push_back(x);} //getters Int_t getFitFlag () {return fFitFlag ;} Int_t getNumHits () {return fDetID.size() ;} Int_t nhits () {return fDetID.size() ;} TVector3 getTrackPos () {return fTrackPos ;} TVector3 getTrackMom () {return fTrackMom ;} TpcdEdx getdEdx () {return fdedx ;} Bool_t hasTpc () {return fHasTpc ;} Bool_t hasCdc () {return fHasCdc ;} Int_t getDetID (Int_t i) {return fDetID [i];} TString getDetName (Int_t i) {return fDetName [i];} TVector3 getPosXYZ (Int_t i) {return fPosXYZ [i];} TVector3 getTrackPosXYZ (Int_t i) {if(i fDetID; std::vector fDetName; std::vector fPosXYZ; std::vector fTrackPosXYZ; std::vector fTrackPosMom; std::vector fTrackPosXYZErr; std::vector fTrackPosMomErr; std::vector fResXYZ; std::vector fResUV; std::vector fResA; std::vector fSigXYZ; std::vector fSigA; std::vector fSigUV; std::vector fAxis1; std::vector fAxis2; std::vector fAxis3; std::vector fTrackPlane; std::vector fMidPlane; std::vector fClusterSize; std::vector fClusterSizeShare; std::vector f2DClusterSize; std::vector fFullClusterSize; std::vector fFullClusterSizeTrack; std::vector fFullClusterSizeAxis; std::vector fClusterAmp; public: ClassDef(Particle,1) }; #endif