00001 #ifndef RootEventData_TRecMdcTrack_H 00002 #define RootEventData_TRecMdcTrack_H 1 00003 00004 #include "TObject.h" 00005 #include <vector> 00006 00007 using namespace std; 00008 00009 class TRecMdcTrack : public TObject { 00010 00011 public: 00012 00013 TRecMdcTrack(); 00014 00015 ~TRecMdcTrack (); 00016 //Get 00017 const Int_t trackId() const { return m_trackId; } 00018 const Double_t helix(Int_t i) const { return m_helix[i]; } 00019 const Int_t charge() const; 00020 const Double_t pxy() const; 00021 const Double_t px() const; 00022 const Double_t py() const; 00023 const Double_t pz() const; 00024 const Double_t p() const; 00025 const Double_t theta() const; 00026 const Double_t phi() const; 00027 const Double_t x() const; 00028 const Double_t y() const; 00029 const Double_t z() const; 00030 const Double_t r() const; 00031 const Int_t stat() const { return m_stat; } 00032 const Double_t chi2() const { return m_chi2; } 00033 const Int_t ndof() const { return m_ndof; } 00034 const Double_t err(Int_t i) const { return m_err[i];} 00035 const Int_t nhits( ) const { return m_nhits; } 00036 const Int_t nster() const { return m_nster; } 00037 const Int_t nlayer() const { return m_nlayer; } 00038 // vector<Int_t> vecHits() const { return m_vecHits ; } 00039 //Get rec 00040 const Double_t vx0( void ) const { return m_vx0; } 00041 const Double_t vy0( void ) const { return m_vy0; } 00042 const Double_t vz0( void ) const { return m_vz0; } 00043 const Double_t fiTerm( void ) const { return m_fiTerm; } 00044 00045 //Set 00046 void setTrackId(const Int_t trackId ) { m_trackId = trackId; } 00047 void setHelix(const Double_t helix[5]) { 00048 for(Int_t i=0; i<5; i++) m_helix[i] = helix[i]; 00049 } 00050 void setStat(const Int_t stat ) { m_stat = stat; } 00051 void setChi2(const Double_t chi ) { m_chi2 = chi; } 00052 void setNdof(const Int_t ndof ) { m_ndof = ndof; } 00053 00054 void setErr(const Double_t er[15] ) { 00055 for (Int_t i=0;i<15;i++) m_err[i] = er[i]; 00056 } 00057 00058 void setNhits(const Int_t nh ) { m_nhits=nh; } 00059 void setNster(const Int_t ns ) { m_nster=ns; } 00060 void setNlayer(const Int_t nlayer ) { m_nlayer = nlayer; } 00061 // void setVecHits(vector<Int_t>& vecHits) { m_vecHits = vecHits; } 00062 //Set rec 00063 void setVX0(Double_t vx0) { m_vx0 = vx0; } 00064 void setVY0(Double_t vy0) { m_vy0 = vy0; } 00065 void setVZ0(Double_t vz0) { m_vz0 = vz0; } 00066 void setFiTerm(Double_t fiterm) { m_fiTerm = fiterm;} 00067 void setTRecMdcTrack(const TRecMdcTrack *mdcTrk){ 00068 for(int i=0;i<5;i++){ 00069 m_helix[i]=mdcTrk->helix(i); 00070 } 00071 for(int i=0;i<15;i++){ 00072 m_err[i]=mdcTrk->err(i); 00073 } 00074 m_trackId=mdcTrk->trackId(); 00075 m_stat=mdcTrk->stat(); 00076 m_chi2=mdcTrk->chi2(); 00077 m_ndof=mdcTrk->ndof(); 00078 m_nster=mdcTrk->nster(); 00079 m_nlayer=mdcTrk->nlayer(); 00080 m_vx0=mdcTrk->vx0(); 00081 m_vy0=mdcTrk->vy0(); 00082 m_vz0=mdcTrk->vz0(); 00083 m_fiTerm =mdcTrk->fiTerm(); 00084 } 00085 private: 00086 Int_t m_trackId; // Track Id Wensp add 2005-10-19 00087 Double_t m_helix[5];// 5 track parameters 00088 Int_t m_stat; // Track Fit Quality 00089 Double_t m_chi2; 00090 Int_t m_ndof; 00091 Double_t m_err[15]; // Error Matrix 00092 Int_t m_nhits; // number of total hits contained 00093 Int_t m_nster; // number of stereo hits contained 00094 Int_t m_nlayer; // number of layer hits contained 00095 // vector<Int_t> m_vecHits; // Hit list of the track wensp Add 2005-10-20 00096 00097 //Rec 00098 Double_t m_vx0; // The coordinate of pivot(cm) 00099 Double_t m_vy0; // 00100 Double_t m_vz0; // 00101 Double_t m_fiTerm; // phi angle value at track terminated point 00102 00103 ClassDef(TRecMdcTrack,3) 00104 }; 00105 00106 #endif