00001 #ifndef RootEventData_TRecTofTrack_H 00002 #define RootEventData_TRecTofTrack_H 1 00003 00004 #include "TObject.h" 00005 #include <vector> 00006 00007 using namespace std; 00008 00009 class TRecTofTrack : public TObject { 00010 00011 public: 00012 00013 TRecTofTrack(); 00014 ~TRecTofTrack (); 00015 00016 Int_t tofTrackID() const { return m_tofTrackID; } 00017 Int_t trackID() const { return m_trackID; } 00018 Int_t tofID() const { return m_tofID; } 00019 00020 UInt_t status() const { return m_status; } 00021 00022 Double_t path() const { return m_path; } 00023 Double_t zrhit() const { return m_zrhit; } 00024 Double_t ph() const { return m_ph; } 00025 Double_t tof() const { return m_tof; } 00026 Double_t errtof() const { return m_sigma[0]; } 00027 Double_t beta() const { return m_beta; } 00028 00029 Double_t texp(Int_t i) const { return m_texp[i]; } 00030 Double_t texpElectron() const { return m_texp[0]; } 00031 Double_t texpMuon() const { return m_texp[1]; } 00032 Double_t texpPion() const { return m_texp[2]; } 00033 Double_t texpKaon() const { return m_texp[3]; } 00034 Double_t texpProton() const { return m_texp[4]; } 00035 00036 Double_t toffset(Int_t i) const { return m_toffset[i]; } 00037 Double_t toffsetElectron() const { return m_toffset[0]; } 00038 Double_t toffsetMuon() const { return m_toffset[1]; } 00039 Double_t toffsetPion() const { return m_toffset[2]; } 00040 Double_t toffsetKaon() const { return m_toffset[3]; } 00041 Double_t toffsetProton() const { return m_toffset[4]; } 00042 Double_t toffsetAntiProton() const { return m_toffset[5]; } 00043 00044 Double_t sigma(Int_t i) const { return m_sigma[i]; } 00045 Double_t sigmaElectron() const { return m_sigma[0]; } 00046 Double_t sigmaMuon() const { return m_sigma[1]; } 00047 Double_t sigmaPion() const { return m_sigma[2]; } 00048 Double_t sigmaKaon() const { return m_sigma[3]; } 00049 Double_t sigmaProton() const { return m_sigma[4]; } 00050 Double_t sigmaAntiProton() const { return m_sigma[5]; } 00051 00052 Int_t quality() const { return m_quality; } 00053 00054 Double_t t0() const { return m_t0; } 00055 Double_t errt0() const { return m_errt0; } 00056 00057 Double_t errz() const { return m_errz; } 00058 Double_t phi() const { return m_phi; } 00059 Double_t errphi() const { return m_errphi; } 00060 Double_t energy() const { return m_energy; } 00061 Double_t errenergy() const { return m_errenergy; } 00062 00063 void setTofTrackID(Int_t tofTrackID) { m_tofTrackID = tofTrackID; } 00064 void setTrackID(Int_t trackID) { m_trackID = trackID; } 00065 void setTofID(Int_t tofID) { m_tofID = tofID; } 00066 void setStatus(UInt_t status) { m_status = status; } 00067 void setPath(Double_t path) { m_path = path; } 00068 void setZrHit(Double_t zrhit) { m_zrhit = zrhit; } 00069 void setPh(Double_t ph) { m_ph = ph; } 00070 void setTof(Double_t tof) { m_tof = tof; } 00071 void setErrTof(Double_t etof) { m_sigma[0] = etof; } 00072 void setBeta(Double_t beta) { m_beta = beta; } 00073 void setTexp(Double_t texp[5]) { for(Int_t i=0; i<5; i++) { m_texp[i]=texp[i];} } 00074 void setTexpElectron(Double_t texpe) { m_texp[0] = texpe; } 00075 void setTexpMuon(Double_t texpmu) { m_texp[1] = texpmu; } 00076 void setTexpPion(Double_t texppi) { m_texp[2] = texppi; } 00077 void setTexpKaon(Double_t texpk) { m_texp[3] = texpk; } 00078 void setTexpProton(Double_t texpp) { m_texp[4] = texpp; } 00079 void setToffset(Double_t toffset[6]) { for(Int_t i=0; i<6; i++) { m_toffset[i]=toffset[i];} } 00080 void setToffsetElectron(Double_t toe) { m_toffset[0] = toe; } 00081 void setToffsetMuon(Double_t tomu) { m_toffset[1] = tomu; } 00082 void setToffsetPion(Double_t topi) { m_toffset[2] = topi; } 00083 void setToffsetKaon(Double_t tok) { m_toffset[3] = tok; } 00084 void setToffsetProton(Double_t top) { m_toffset[4] = top; } 00085 void setToffsetAntiProton(Double_t topb){ m_toffset[5] = topb; } 00086 void setSigma(Double_t sigma[6]) { for(Int_t i=0; i<6; i++) { m_sigma[i]=sigma[i];} } 00087 void setSigmaElectron(Double_t se) { m_sigma[0] = se; } 00088 void setSigmaMuon(Double_t smu) { m_sigma[1] = smu; } 00089 void setSigmaPion(Double_t spi) { m_sigma[2] = spi; } 00090 void setSigmaKaon(Double_t sk) { m_sigma[3] = sk; } 00091 void setSigmaProton(Double_t sp) { m_sigma[4] = sp; } 00092 void setSigmaAntiProton(Double_t spb) { m_sigma[5] = spb; } 00093 00094 void setQuality(Int_t quality) { m_quality = quality; } 00095 00096 void setT0(Double_t t0) { m_t0 = t0; } 00097 void setErrT0(Double_t errt0) { m_errt0 = errt0; } 00098 00099 void setErrZ(Double_t errz) { m_errz = errz; } 00100 void setPhi(Double_t phi) { m_phi = phi; } 00101 void setErrPhi(Double_t errphi) { m_errphi = errphi; } 00102 void setEnergy(Double_t energy) { m_energy = energy; } 00103 void setErrEnergy(Double_t errenergy) { m_errenergy = errenergy; } 00104 void setTRecTofTrack(const TRecTofTrack *toftrk){ 00105 m_tofTrackID = toftrk->tofTrackID(); 00106 m_trackID = toftrk->trackID(); 00107 m_tofID = toftrk->tofID(); 00108 m_status = toftrk->status(); 00109 m_path = toftrk->path(); 00110 m_zrhit = toftrk->zrhit(); 00111 m_ph = toftrk->ph(); 00112 m_tof = toftrk->tof(); 00113 m_beta = toftrk->beta(); 00114 for(int i=0;i<5;i++){ 00115 m_texp[i]= toftrk->texp(i);} 00116 for(int i=0;i<6;i++){ 00117 m_toffset[i]= toftrk->toffset(i);} 00118 for(int i=0;i<6;i++){ 00119 m_sigma[i]= toftrk->sigma(i);} 00120 m_quality = toftrk->quality(); 00121 m_t0 = toftrk->t0(); 00122 m_errt0 = toftrk->errt0(); 00123 m_errz = toftrk->errz(); 00124 m_phi = toftrk->phi(); 00125 m_errphi = toftrk->errphi(); 00126 m_energy = toftrk->energy(); 00127 m_errenergy = toftrk->errenergy(); 00128 } 00129 private: 00130 00131 Int_t m_tofTrackID; // The ID of Tof Cluster reconstruction 00132 Int_t m_trackID; // Track ID from MDC / Shower ID from EMC. 00133 Int_t m_tofID; // Tof Counter ID. 00134 UInt_t m_status; // Status. 00135 // 0x0000 0000 00136 // 0 0 0 0 0 0 0 0 00137 // | | | BR / 1 EC | | | raw 00138 // | | East / 1 West | | ReadOut Unit 00139 // No Hit | Counter 00140 // 01 1st Layer Cluster 00141 // 10 2nd Layer / 11 both Layers 00142 // 0x 00 00 00 00 00(used) 00143 // | | counter number 00144 // | east readout number 00145 // west readout number 00146 00147 Double_t m_path; // Distance of flight. 00148 Double_t m_zrhit; // Track extrapolate Z or R Hit position. 00149 Double_t m_ph; // Pulse height. 00150 Double_t m_tof; // Time of flight. 00151 Double_t m_beta; // Beta value of the track. 00152 Double_t m_texp[5]; // Expected time of flight of 5 sorts of particle. 00153 Double_t m_toffset[6]; // Time offset of e, mu, pi, k and p and pbar. 00154 Double_t m_sigma[6]; // Time resolution of 5+1 sorts of particle. 00155 Int_t m_quality; // Data quality of reconstruction. 00156 // 1: good charged track 00157 // 2: neutral track with good hit 00158 // 0: ZT-ZTDC didnot match 00159 // 3: no hit in counter 00160 // 4: two hits in counter 00161 // 5: more than two hits in counter 00162 // 6: only single end output of one layer 00163 // 7: two hits in counter with bad match with ZTDC 00164 // 10: initialize 00165 // ...... 00166 Double_t m_t0; // t0 from data set calibration. 00167 Double_t m_errt0; // t0 sigma from tof calibration. 00168 00169 Double_t m_errz; // Error of zTDC(m_zrhit) for neutral track. 00170 Double_t m_phi; // Angle of phi used for neutral track. 00171 Double_t m_errphi; // Error of angle of phi. 00172 Double_t m_energy; // Energy deposit for neutral track 00173 Double_t m_errenergy; // Error of energy deposit for neutral track. 00174 ClassDef(TRecTofTrack,3) 00175 }; 00176 00177 #endif