#include <TofTrack.h>
Public Member Functions | |
double | adc1 () const |
double | adc1 () const |
double | adc2 () const |
double | adc2 () const |
double | adc3 () const |
double | adc3 () const |
double | adc4 () const |
double | adc4 () const |
unsigned int | barrel () const |
unsigned int | barrel () const |
void | buildRecTofTrack (RecTofTrack *track, int layerorend) |
void | buildRecTofTrack (RecTofTrack *track, int layerorend) |
TofData * | chooseTofData (std::vector< TofData * > tofDataVec, double zrhit) |
TofData * | chooseTofData (std::vector< TofData * > tofDataVec, double zrhit) |
TofData * | compareTofData (TofData *tofData1, TofData *tofData2, double zrhit) |
TofData * | compareTofData (TofData *tofData1, TofData *tofData2, double zrhit) |
void | convert2RecBTofCalHitCol (int runNumber, int eventNumber, RecBTofCalHitCol *btofCalHitCol, std::string calibData) |
void | convert2RecBTofCalHitCol (int runNumber, int eventNumber, RecBTofCalHitCol *btofCalHitCol, std::string calibData) |
void | convert2RecETofCalHitCol (int runNumber, int eventNumber, RecETofCalHitCol *etofCalHitCol, std::string calibData) |
void | convert2RecETofCalHitCol (int runNumber, int eventNumber, RecETofCalHitCol *etofCalHitCol, std::string calibData) |
void | convert2RecTofTrackCol (RecTofTrackCol *recTofTrackCol) |
void | convert2RecTofTrackCol (RecTofTrackCol *recTofTrackCol) |
double | errzr1 (unsigned int i) const |
double | errzr1 () const |
double | errzr1 (unsigned int i) const |
double | errzr1 () const |
double | errzr2 (unsigned int i) const |
double | errzr2 () const |
double | errzr2 (unsigned int i) const |
double | errzr2 () const |
double | estime () const |
double | estime () const |
void | findTofData (std::vector< TofData * > tofDataVec1, std::vector< TofData * > tofDataVec2, double zrhit, unsigned int iflag) |
void | findTofData (std::vector< TofData * > tofDataVec1, std::vector< TofData * > tofDataVec2, double zrhit, unsigned int iflag) |
unsigned int | flag () const |
unsigned int | flag () const |
void | getTofData (TofData *tof, unsigned int iflag) |
void | getTofData (TofData *tof, unsigned int iflag) |
ExtTrackCase | hitCase () const |
ExtTrackCase | hitCase () const |
int | id1 () const |
int | id1 () const |
int | id2 () const |
int | id2 () const |
bool | isNoHit () const |
bool | isNoHit () const |
int | kal (unsigned int i) const |
int | kal (unsigned int i) const |
void | match (bool forCalibration, std::vector< int > deadId) |
void | match (bool forCalibration, std::vector< int > deadId) |
double | p () const |
double | p () const |
double | path () const |
double | path () const |
double | path1 () const |
double | path1 () const |
double | path2 () const |
double | path2 () const |
double | ph () const |
double | ph () const |
double | ph1 () const |
double | ph1 () const |
double | ph11 () const |
double | ph11 () const |
double | ph12 () const |
double | ph12 () const |
double | ph2 () const |
double | ph2 () const |
double | ph21 () const |
double | ph21 () const |
double | ph22 () const |
double | ph22 () const |
double | phi1 () const |
double | phi1 () const |
double | phi2 () const |
double | phi2 () const |
unsigned int | quality () const |
unsigned int | quality () const |
unsigned int | quality1 () const |
unsigned int | quality1 () const |
unsigned int | quality2 () const |
unsigned int | quality2 () const |
void | qualityAnalysis () |
void | qualityAnalysis () |
void | setCalibration (double t0, int t0Stat) |
void | setCalibration (double t0, int t0Stat) |
void | setExtTrack (RecExtTrack *extTrack, int kal[5]) |
void | setExtTrack (RecExtTrack *extTrack, int kal[5]) |
void | setFlag (unsigned int flag) |
void | setFlag (unsigned int flag) |
void | setQuality (int qual) |
void | setQuality (int qual) |
void | setRecTofTrack (RecTofTrack *track, int layerorend) |
void | setRecTofTrack (RecTofTrack *track, int layerorend) |
void | setTofData (TofDataMap tofDataMap) |
void | setTofData (TofDataMap tofDataMap) |
int | size1 () const |
int | size1 () const |
int | size2 () const |
int | size2 () const |
int | size3 () const |
int | size3 () const |
int | size4 () const |
int | size4 () const |
int | t0Stat () const |
int | t0Stat () const |
double | tdc1 () const |
double | tdc1 () const |
double | tdc2 () const |
double | tdc2 () const |
double | tdc3 () const |
double | tdc3 () const |
double | tdc4 () const |
double | tdc4 () const |
double | tdiff1 () const |
double | tdiff1 () const |
double | tdiff2 () const |
double | tdiff2 () const |
double | texp (unsigned int i) const |
double | texp (unsigned int i) const |
double | texpInner (unsigned int i) const |
double | texpInner (unsigned int i) const |
double | texpOuter (unsigned int i) const |
double | texpOuter (unsigned int i) const |
double | theta1 () const |
double | theta1 () const |
double | theta2 () const |
double | theta2 () const |
double | tof (unsigned int i) const |
double | tof (unsigned int i) const |
double | tof1 (unsigned int i) const |
double | tof1 (unsigned int i) const |
double | tof11 (unsigned int i) const |
double | tof11 (unsigned int i) const |
double | tof12 (unsigned int i) const |
double | tof12 (unsigned int i) const |
double | tof2 (unsigned int i) const |
double | tof2 (unsigned int i) const |
double | tof21 (unsigned int i) const |
double | tof21 (unsigned int i) const |
double | tof22 (unsigned int i) const |
double | tof22 (unsigned int i) const |
std::vector< TofData * > | tofData1 () const |
std::vector< TofData * > | tofData1 () const |
std::vector< TofData * > | tofData2 () const |
std::vector< TofData * > | tofData2 () const |
void | tofDataAnalysis (TofData *tof, unsigned int iflag) |
void | tofDataAnalysis (TofData *tof, unsigned int iflag) |
void | tofDataStudy () |
void | tofDataStudy () |
int | tofId1 () const |
int | tofId1 () const |
int | tofId2 () const |
int | tofId2 () const |
TofTrack () | |
TofTrack () | |
int | tofTrackId () const |
int | tofTrackId () const |
int | trackId () const |
int | trackId () const |
double | zadc1 () const |
double | zadc1 () const |
double | zadc2 () const |
double | zadc2 () const |
double | zrhit1 (unsigned int i) const |
double | zrhit1 () const |
double | zrhit1 (unsigned int i) const |
double | zrhit1 () const |
double | zrhit2 (unsigned int i) const |
double | zrhit2 () const |
double | zrhit2 (unsigned int i) const |
double | zrhit2 () const |
double | ztdc1 () const |
double | ztdc1 () const |
double | ztdc2 () const |
double | ztdc2 () const |
~TofTrack () | |
~TofTrack () | |
Private Attributes | |
double | m_adc1 |
double | m_adc2 |
double | m_adc3 |
double | m_adc4 |
unsigned int | m_barrel |
double | m_errzr1 |
double | m_errzr2 |
double | m_estime |
double | m_ezr1 [5] |
double | m_ezr2 [5] |
unsigned | m_flag |
ExtTrackCase | m_hitCase |
int | m_id1 |
int | m_id2 |
int | m_kal [5] |
double | m_momentum |
double | m_path |
double | m_path1 |
double | m_path2 |
double | m_ph |
double | m_ph1 |
double | m_ph11 |
double | m_ph12 |
double | m_ph2 |
double | m_ph21 |
double | m_ph22 |
double | m_phi1 |
double | m_phi2 |
unsigned int | m_quality |
unsigned int | m_quality1 |
unsigned int | m_quality2 |
double | m_sigma |
double | m_sigma1 |
double | m_sigma11 |
double | m_sigma12 |
double | m_sigma2 |
double | m_sigma21 |
double | m_sigma22 |
int | m_t0Stat |
double | m_tdc1 |
double | m_tdc2 |
double | m_tdc3 |
double | m_tdc4 |
double | m_tdiff1 |
double | m_tdiff2 |
double | m_texp [5] |
double | m_texpInner [5] |
double | m_texpOuter [5] |
double | m_theta1 |
double | m_theta2 |
double | m_tof [5] |
double | m_tof1 [5] |
double | m_tof11 [5] |
double | m_tof12 [5] |
double | m_tof2 [5] |
double | m_tof21 [5] |
double | m_tof22 [5] |
std::vector< TofData * > | m_tofData1 |
std::vector< TofData * > | m_tofData1 |
std::vector< TofData * > | m_tofData2 |
std::vector< TofData * > | m_tofData2 |
std::vector< TofData * > | m_tofData3 |
std::vector< TofData * > | m_tofData3 |
std::vector< TofData * > | m_tofData4 |
std::vector< TofData * > | m_tofData4 |
int | m_tofId1 |
int | m_tofId2 |
int | m_tofTrackId |
int | m_trackId |
double | m_zadc1 |
double | m_zadc2 |
double | m_zr1 [5] |
double | m_zr2 [5] |
double | m_zrhit1 |
double | m_zrhit2 |
double | m_ztdc1 |
double | m_ztdc2 |
|
00014 { 00015 m_trackId = -1; 00016 m_tofTrackId = -1; 00017 m_id1 = -99; 00018 m_id2 = -99; 00019 m_hitCase = NoHit; 00020 m_momentum = -99.0; 00021 m_path = 0.0; 00022 m_path1 = 0.0; 00023 m_path2 = 0.0; 00024 m_zrhit1 = 9999.0; 00025 m_errzr1 = 9999.0; 00026 m_zrhit2 = 9999.0; 00027 m_errzr2 = 9999.0; 00028 for( unsigned int i=0; i<5; i++ ) { 00029 m_kal[i] = -1; 00030 m_zr1[i] = 9999.0; 00031 m_zr2[i] = 9999.0; 00032 m_ezr1[i] = 9999.0; 00033 m_ezr2[i] = 9999.0; 00034 } 00035 if( m_tofData1.size()>0 ) { 00036 std::vector<TofData*>::iterator iter1 = m_tofData1.begin(); 00037 m_tofData1.clear(); 00038 } 00039 if( m_tofData2.size()>0 ) { 00040 std::vector<TofData*>::iterator iter2 = m_tofData2.begin(); 00041 m_tofData2.clear(); 00042 } 00043 if( m_tofData3.size()>0 ) { 00044 std::vector<TofData*>::iterator iter3 = m_tofData3.begin(); 00045 m_tofData3.clear(); 00046 } 00047 if( m_tofData4.size()>0 ) { 00048 std::vector<TofData*>::iterator iter4 = m_tofData4.begin(); 00049 m_tofData4.clear(); 00050 } 00051 m_quality1 = 0; 00052 m_quality2 = 0; 00053 m_quality = 10; 00054 00055 m_tofId1 = -99; 00056 m_tofId2 = -99; 00057 00058 m_ph11 = -999.0; 00059 m_ph12 = -999.0; 00060 m_ph21 = -999.0; 00061 m_ph22 = -999.0; 00062 m_ph1 = -999.0; 00063 m_ph2 = -999.0; 00064 m_ph = -999.0; 00065 00066 for( unsigned int i=0; i<5; i++ ) { 00067 m_tof11[i] = 0.0; 00068 m_tof12[i] = 0.0; 00069 m_tof21[i] = 0.0; 00070 m_tof22[i] = 0.0; 00071 m_tof1[i] = 0.0; 00072 m_tof2[i] = 0.0; 00073 m_tof[i] = 0.0; 00074 } 00075 00076 m_sigma11 = -999.0; 00077 m_sigma12 = -999.0; 00078 m_sigma21 = -999.0; 00079 m_sigma22 = -999.0; 00080 m_sigma1 = -999.0; 00081 m_sigma2 = -999.0; 00082 m_sigma = -999.0; 00083 00084 m_adc1 = -999.0; 00085 m_adc2 = -999.0; 00086 m_adc3 = -999.0; 00087 m_adc4 = -999.0; 00088 m_tdc1 = -999.0; 00089 m_tdc2 = -999.0; 00090 m_tdc3 = -999.0; 00091 m_tdc4 = -999.0; 00092 00093 for( unsigned int i=0; i<5; i++ ) { 00094 m_texpInner[i] = -999.0; 00095 m_texpOuter[i] = -999.0; 00096 m_texp[i] = -999.0; 00097 } 00098 00099 m_ztdc1 = -999.0; 00100 m_ztdc2 = -999.0; 00101 m_zadc1 = -999.0; 00102 m_zadc2 = -999.0; 00103 00104 m_estime = -999.0; 00105 m_tdiff1 = -999.0; 00106 m_tdiff2 = -999.0; 00107 00108 m_flag = 0; 00109 00110 return; 00111 }
|
|
00114 { 00115 if( m_tofData1.size()>0 ) { 00116 std::vector<TofData*>::iterator iter1 = m_tofData1.begin(); 00117 m_tofData1.clear(); 00118 } 00119 if( m_tofData2.size()>0 ) { 00120 std::vector<TofData*>::iterator iter2 = m_tofData2.begin(); 00121 m_tofData2.clear(); 00122 } 00123 if( m_tofData3.size()>0 ) { 00124 std::vector<TofData*>::iterator iter3 = m_tofData3.begin(); 00125 m_tofData3.clear(); 00126 } 00127 if( m_tofData4.size()>0 ) { 00128 std::vector<TofData*>::iterator iter4 = m_tofData4.begin(); 00129 m_tofData4.clear(); 00130 } 00131 return; 00132 }
|
|
|
|
|
|
00077 { return m_adc1; }
|
|
00077 { return m_adc1; }
|
|
00078 { return m_adc2; }
|
|
00078 { return m_adc2; }
|
|
00079 { return m_adc3; }
|
|
00079 { return m_adc3; }
|
|
00080 { return m_adc4; }
|
|
00080 { return m_adc4; }
|
|
00029 { return m_barrel; }
|
|
00029 { return m_barrel; }
|
|
|
|
01178 { 01179 01180 track->setTofTrackID( m_tofTrackId ); 01181 track->setTrackID( m_trackId ); 01182 01183 track->setErrTof( 0.0 ); 01184 track->setBeta( 0.0 ); 01185 01186 double sigma[6]; 01187 for( int i=0; i<6; i++ ) { 01188 sigma[i] = 0.0; 01189 } 01190 track->setSigma( sigma ); 01191 track->setQuality( m_quality ); 01192 track->setT0( m_estime ); 01193 track->setErrT0( 0.0 ); 01194 track->setPhi( 9999.0 ); 01195 track->setErrPhi( 9999.0 ); 01196 track->setEnergy( 9999.0 ); 01197 track->setErrEnergy( 9999.0 ); 01198 01199 if( ( layerorend == 11 ) || ( layerorend == 12 ) || ( layerorend == 1 ) ) { 01200 track->setTofID( m_tofId1 ); 01201 track->setPath( m_path1 ); 01202 track->setZrHit( m_zrhit1 ); 01203 track->setErrZ( m_errzr1 ); 01204 track->setTexp( m_texpInner ); 01205 01206 setRecTofTrack( track, layerorend ); 01207 } 01208 01209 if( ( layerorend==21 ) || ( layerorend==22 ) || ( layerorend==2 ) ) { 01210 track->setTofID( m_tofId2 ); 01211 track->setPath( m_path2 ); 01212 track->setZrHit( m_zrhit2 ); 01213 track->setErrZ( m_errzr2 ); 01214 track->setTexp( m_texpOuter ); 01215 01216 setRecTofTrack( track, layerorend ); 01217 } 01218 01219 if( layerorend==0 ) { 01220 track->setTofID( m_tofId1 ); 01221 track->setPath( m_path2 ); 01222 track->setZrHit( m_zrhit2 ); 01223 track->setErrZ( m_errzr2 ); 01224 track->setTexp( m_texp ); 01225 01226 setRecTofTrack( track, layerorend ); 01227 } 01228 01229 if( layerorend == 3 ) { 01230 track->setTofID( m_id1 ); 01231 track->setPath( m_path1 ); 01232 track->setZrHit( m_zrhit1 ); 01233 track->setErrZ( m_errzr1 ); 01234 track->setTexp( m_texpInner ); 01235 } 01236 01237 return; 01238 }
|
|
|
|
00676 { 00677 if( tofDataVec.size() == 0 ) { 00678 cout << "TofRec::TofTrack::ChooseTofData: Size of TofData Vector is Zero!" << endl; 00679 return 0; 00680 } 00681 std::vector<TofData*>::iterator igood = tofDataVec.begin(); 00682 if( tofDataVec.size() > 1 ) { 00683 double deltaZ = 1000.0; 00684 std::vector<TofData*>::iterator iter = tofDataVec.begin(); 00685 // ZTDC compare 00686 for( ; iter != tofDataVec.end(); iter++ ) { 00687 if( ( (*iter)->quality() & 0x5 ) == 0x5 ) { 00688 if( abs( (*iter)->ztdc() - zrhit ) < deltaZ ) { 00689 deltaZ = abs( (*iter)->ztdc() - zrhit ); 00690 igood = iter; 00691 } 00692 } 00693 } 00694 // ZADC compare 00695 if( deltaZ > 999.0 ) { 00696 iter = tofDataVec.begin(); 00697 for( ; iter != tofDataVec.end(); iter++ ) { 00698 if( ( (*iter)->quality() & 0xa ) == 0xa ) { 00699 if( abs( (*iter)->zadc() - zrhit ) < deltaZ ) { 00700 deltaZ = abs( (*iter)->zadc() - zrhit ); 00701 igood = iter; 00702 } 00703 } 00704 } 00705 } 00706 // Max Q 00707 if( deltaZ > 999.0 ) { 00708 unsigned int ibad = 0xf0; 00709 iter = tofDataVec.begin(); 00710 for( ; iter != tofDataVec.end(); iter++ ) { 00711 if( ( (*iter)->quality() & 0xf0 ) < ibad ) { 00712 igood = iter; 00713 ibad = ( (*iter)->quality() & 0xf0 ); 00714 } 00715 else if( ( (*iter)->quality() & 0xf0 ) == ibad ) { 00716 if( ( (*iter)->adc1() + (*iter)->adc2() ) > ( (*igood)->adc1() + (*igood)->adc2() ) ) { 00717 igood = iter; 00718 ibad = ( (*iter)->quality() & 0xf0 ); 00719 } 00720 } 00721 } 00722 } 00723 } 00724 00725 return (*igood); 00726 }
|
|
|
|
00733 { 00734 TofData* tof = tofData1; 00735 // ZTDC compare 00736 // cout << "ztdc=" << tofData1->ztdc() << " ztdc2=" << tofData2->ztdc() << " zadc1=" << tofData1->zadc() << " zadc2=" << tofData2->zadc() << endl; 00737 if( abs(tofData1->ztdc() - zrhit ) > abs(tofData2->ztdc() - zrhit ) ) { 00738 // ZADC compare 00739 //sunss if( abs(tofData1->zadc() - zrhit ) > abs(tofData2->zadc() - zrhit ) ) { 00740 // SingleEnd/NoT/NoQ compare 00741 if( ( tofData1->quality() & 0xf0 ) >= ( tofData1->quality() & 0xf0 ) ) { 00742 // QDC compare 00743 if( ( tofData1->adc1() + tofData1->adc2() ) < ( tofData2->adc1() + tofData2->adc2() ) ) { 00744 tof = tofData2; 00745 } 00746 } 00747 // } 00748 } 00749 00750 return tof; 00751 }
|
|
|
|
01325 { 01326 01327 if( ( m_quality1 & 0x800 ) == 0x800 ) { 01328 01329 RecBTofCalHit* ahit = new RecBTofCalHit; 01330 ahit->setRun( runNumber ); 01331 ahit->setEvent( eventNumber ); 01332 ahit->setMod( m_tofId1 ); 01333 ahit->setQual( m_hitCase ); 01334 01335 for( int i=0; i<5; i++ ) { 01336 ahit->setTpred( i, m_texpInner[i] ); 01337 } 01338 if( calibData == "Dimu" ) { 01339 ahit->setTpred( m_texpInner[1] ); 01340 ahit->setZHit( m_zr1[1] ); 01341 ahit->setdZHit( m_ezr1[1] ); 01342 } 01343 else { 01344 ahit->setTpred( m_texpInner[0] ); 01345 ahit->setZHit( m_zr1[0] ); 01346 ahit->setdZHit( m_ezr1[0] ); 01347 } 01348 01349 ahit->setTdc1( m_tdc1-m_estime ); 01350 ahit->setTdc2( m_tdc2-m_estime ); 01351 ahit->setAdc1( m_adc1 ); 01352 ahit->setAdc2( m_adc2 ); 01353 // ahit->setZHit( m_zrhit1 ); 01354 // ahit->setdZHit( m_errzr1 ); 01355 ahit->setsinTheta( m_theta1 ); 01356 ahit->setP( m_momentum ); 01357 ahit->setQ( m_ph1 ); 01358 ahit->setPath( m_path1 ); 01359 01360 btofCalHitCol->push_back( ahit ); 01361 01362 if( ( m_quality2 & 0x800 ) == 0x800 ) { 01363 01364 RecBTofCalHit* bhit = new RecBTofCalHit; 01365 bhit->setRun( runNumber ); 01366 bhit->setEvent( eventNumber ); 01367 bhit->setMod( m_tofId2 ); 01368 bhit->setQual( m_hitCase ); 01369 01370 for( int i=0; i<5; i++ ) { 01371 bhit->setTpred( i, m_texpOuter[i] ); 01372 } 01373 if( calibData == "Dimu" ) { 01374 bhit->setTpred( m_texpOuter[1] ); 01375 bhit->setZHit( m_zr2[1] ); 01376 bhit->setdZHit( m_ezr2[1] ); 01377 } 01378 else { 01379 bhit->setTpred( m_texpOuter[0] ); 01380 bhit->setZHit( m_zr2[0] ); 01381 bhit->setdZHit( m_ezr2[0] ); 01382 } 01383 01384 bhit->setTdc1( m_tdc3-m_estime ); 01385 bhit->setTdc2( m_tdc4-m_estime ); 01386 bhit->setAdc1( m_adc3 ); 01387 bhit->setAdc2( m_adc4 ); 01388 // bhit->setZHit( m_zrhit2 ); 01389 // bhit->setdZHit( m_errzr2 ); 01390 bhit->setsinTheta( m_theta2 ); 01391 bhit->setP( m_momentum ); 01392 bhit->setQ( m_ph2 ); 01393 bhit->setPath( m_path2 ); 01394 01395 ahit->setnext(bhit); 01396 01397 btofCalHitCol->push_back( bhit ); 01398 01399 } 01400 } 01401 01402 return; 01403 }
|
|
|
|
01406 { 01407 01408 if( ( m_quality1 & 0x800 ) != 0x800 ) return; 01409 01410 RecETofCalHit* chit = new RecETofCalHit; 01411 chit->setRun( runNumber ); 01412 chit->setEvent( eventNumber ); 01413 chit->setMod( m_tofId1 ); 01414 chit->setQual( m_hitCase ); 01415 01416 for( int i=0; i<5; i++ ) { 01417 chit->setTpred( i, m_texpInner[i] ); 01418 } 01419 if( calibData == "Dimu" ) { 01420 chit->setTpred( m_texpInner[1] ); 01421 chit->setRHit( m_zr1[1] ); 01422 chit->setdRHit( m_ezr1[1] ); 01423 } 01424 else { 01425 chit->setTpred( m_texpInner[0] ); 01426 chit->setRHit( m_zr1[0] ); 01427 chit->setdRHit( m_ezr1[0] ); 01428 } 01429 01430 chit->setTdc( m_tdc1-m_estime ); 01431 chit->setAdc( m_adc1 ); 01432 // chit->setRHit( m_zrhit1 ); 01433 // chit->setdRHit( m_errzr1 ); 01434 chit->setcosTheta( m_theta1 ); 01435 chit->setQ( m_ph1 ); 01436 chit->setP( m_momentum ); 01437 chit->setPath( m_path1 ); 01438 01439 etofCalHitCol->push_back( chit ); 01440 01441 return; 01442 }
|
|
|
|
00964 { 00965 00966 bool barrel = ( ( m_hitCase == InnerLayer ) || ( m_hitCase == OuterLayer ) || ( m_hitCase == DoubleLayer ) ); 00967 00968 bool innerEast = ( ( m_quality1 & 0xc ) == 0xc ); 00969 bool innerWest = ( ( m_quality1 & 0x3 ) == 0x3 ); 00970 bool outerEast = ( ( m_quality2 & 0xc ) == 0xc ); 00971 bool outerWest = ( ( m_quality2 & 0x3 ) == 0x3 ); 00972 00973 if( barrel ) { 00974 00975 if( innerEast ) { 00976 RecTofTrack* atrack11 = new RecTofTrack; 00977 buildRecTofTrack( atrack11, 11 ); // innerlayer east readout 00978 TofHitStatus* hitStatus11 = new TofHitStatus; 00979 if( innerWest ) { 00980 hitStatus11->setBarrelReadout( 1, true ); // innerlayer east readout 00981 } 00982 else { 00983 if( m_hitCase == InnerLayer ) { 00984 hitStatus11->setBarrelCluster( 11 ); // innerlayer east cluster 00985 } 00986 else if( m_hitCase == DoubleLayer ) { 00987 if( outerEast && outerWest ) { 00988 hitStatus11->setBarrelCounter( 11 ); // innerlayer east counter 00989 } 00990 else { 00991 hitStatus11->setBarrelCluster( 11 ); // innerlayer east cluster 00992 } 00993 } 00994 else { 00995 cout << "TofRec::TofTrack:convert2RecTofTrackCol: 11- Impossible!" << endl; 00996 } 00997 } 00998 atrack11->setStatus( hitStatus11->value() ); 00999 delete hitStatus11; 01000 recTofTrackCol->push_back( atrack11 ); 01001 } 01002 01003 if( innerWest ) { 01004 RecTofTrack* atrack12 = new RecTofTrack; 01005 buildRecTofTrack( atrack12, 12 ); // innerlayer west readout 01006 TofHitStatus* hitStatus12 = new TofHitStatus; 01007 if( innerEast ) { 01008 hitStatus12->setBarrelReadout( 1, false ); // innerlayer west 01009 } 01010 else { 01011 if( m_hitCase == InnerLayer ) { 01012 hitStatus12->setBarrelCluster( 12 ); // innerlayer west cluster 01013 } 01014 else if( m_hitCase == DoubleLayer ) { 01015 if( outerEast && outerWest ) { 01016 hitStatus12->setBarrelCounter( 12 ); // innerlayer west counter 01017 } 01018 else { 01019 hitStatus12->setBarrelCluster( 12 ); // innerlayer west cluster 01020 } 01021 } 01022 else { 01023 cout << "TofRec::TofTrack:convert2RecTofTrackCol: 12- Impossible!" << endl; 01024 } 01025 } 01026 atrack12->setStatus( hitStatus12->value() ); 01027 delete hitStatus12; 01028 recTofTrackCol->push_back( atrack12 ); 01029 } 01030 01031 if( innerEast && innerWest ) { 01032 RecTofTrack* atrack1 = new RecTofTrack; 01033 buildRecTofTrack( atrack1, 1 ); // innerlayer counter 01034 TofHitStatus* hitStatus1 = new TofHitStatus; 01035 if( m_hitCase == InnerLayer ) { 01036 hitStatus1->setBarrelCluster( 1 ); // innerlayer cluster and counter 01037 } 01038 else if( m_hitCase == DoubleLayer ) { 01039 if( outerEast && outerWest ) { 01040 hitStatus1->setBarrelCounter( 1 ); // innerlayer counter 01041 } 01042 else { 01043 hitStatus1->setBarrelCluster( 1 ); // innerlayer cluster and counter 01044 } 01045 } 01046 else { 01047 cout << "TofRec::TofTrack:convert2RecTofTrackCol: 1- Impossible!" << endl; 01048 } 01049 atrack1->setStatus( hitStatus1->value() ); 01050 delete hitStatus1; 01051 recTofTrackCol->push_back( atrack1 ); 01052 } 01053 01054 if( outerEast ) { 01055 RecTofTrack* atrack21 = new RecTofTrack; 01056 buildRecTofTrack( atrack21, 21 ); // outerlayer east readout 01057 TofHitStatus* hitStatus21 = new TofHitStatus; 01058 if( outerWest ) { 01059 hitStatus21->setBarrelReadout( 2, true ); // outerlayer east readout 01060 } 01061 else { 01062 if( m_hitCase == OuterLayer ) { 01063 hitStatus21->setBarrelCluster( 21 ); // outerlayer east cluster 01064 } 01065 else if( m_hitCase == DoubleLayer ) { 01066 if( innerEast || innerWest ) { 01067 hitStatus21->setBarrelCounter( 21 ); // outerlayer east counter 01068 } 01069 // else { 01070 // hitStatus21->setBarrelCluster( 21 ); // outerlayer east cluster 01071 // } 01072 } 01073 else { 01074 cout << "TofRec::TofTrack:convert2RecTofTrackCol: 21- Impossible!" << endl; 01075 } 01076 } 01077 atrack21->setStatus( hitStatus21->value() ); 01078 delete hitStatus21; 01079 recTofTrackCol->push_back( atrack21 ); 01080 } 01081 01082 if( outerWest ) { 01083 RecTofTrack* atrack22 = new RecTofTrack; 01084 buildRecTofTrack( atrack22, 22 ); // outerlayer west readout 01085 TofHitStatus* hitStatus22 = new TofHitStatus; 01086 if( outerEast ) { 01087 hitStatus22->setBarrelReadout( 2, false ); // outerlayer west readout 01088 } 01089 else { 01090 if( m_hitCase == OuterLayer ) { 01091 hitStatus22->setBarrelCluster( 22 ); // outerlayer west cluster 01092 } 01093 else if( m_hitCase == DoubleLayer ) { 01094 if( innerEast || innerWest ) { 01095 hitStatus22->setBarrelCounter( 22 ); // outerlayer west counter 01096 } 01097 // else { 01098 // hitStatus22->setBarrelCluster( 22 ); // outerlayer west cluster 01099 // } 01100 } 01101 else { 01102 cout << "TofRec::TofTrack:convert2RecTofTrackCol: 22- Impossible!" << endl; 01103 } 01104 } 01105 atrack22->setStatus( hitStatus22->value() ); 01106 delete hitStatus22; 01107 recTofTrackCol->push_back( atrack22 ); 01108 } 01109 01110 if( outerEast && outerWest ) { 01111 RecTofTrack* atrack2 = new RecTofTrack; 01112 buildRecTofTrack( atrack2, 2 ); // outerlayer counter 01113 TofHitStatus* hitStatus2 = new TofHitStatus; 01114 if( m_hitCase == OuterLayer ) { 01115 hitStatus2->setBarrelCluster( 2 ); // outerlayer cluster and counter 01116 } 01117 else if( m_hitCase == DoubleLayer ) { 01118 if( innerEast && innerWest ) { 01119 hitStatus2->setBarrelCounter( 2 ); // outerlayer counter 01120 } 01121 else { 01122 hitStatus2->setBarrelCluster( 2 ); // outerlayer cluster and counter 01123 } 01124 } 01125 else { 01126 cout << "TofRec::TofTrack:convert2RecTofTrackCol: 2- Impossible!" << endl; 01127 } 01128 atrack2->setStatus( hitStatus2->value() ); 01129 delete hitStatus2; 01130 recTofTrackCol->push_back( atrack2 ); 01131 } 01132 01133 if( innerEast && innerWest && outerEast && outerWest ) { 01134 RecTofTrack* atrack = new RecTofTrack; 01135 buildRecTofTrack( atrack, 0 ); // doublelayer cluster 01136 TofHitStatus* hitStatus = new TofHitStatus; 01137 hitStatus->setBarrelCluster( 3 ); // doublelayer cluster 01138 atrack->setStatus( hitStatus->value() ); 01139 delete hitStatus; 01140 recTofTrackCol->push_back( atrack ); 01141 } 01142 01143 } 01144 01145 if( ( m_hitCase == EastEndcap ) || ( m_hitCase == WestEndcap ) ) { 01146 RecTofTrack* atrack = new RecTofTrack; 01147 buildRecTofTrack( atrack, 11 ); // eastendcap counter 01148 TofHitStatus* hitStatus = new TofHitStatus; 01149 if( m_hitCase == EastEndcap ) { 01150 hitStatus->setEndcapCluster( true ); // east endcap cluster counter readout 01151 } 01152 else if( m_hitCase == WestEndcap ) { 01153 hitStatus->setEndcapCluster( false ); // west endcap cluster counter readout 01154 } 01155 else { 01156 cout << "TofRec::TofTrack:convert2RecTofTrackCol: endcap- Impossible!" << endl; 01157 } 01158 atrack->setStatus( hitStatus->value() ); 01159 delete hitStatus; 01160 recTofTrackCol->push_back( atrack ); 01161 } 01162 01163 if( m_hitCase == NoHit ) { 01164 RecTofTrack* atrack = new RecTofTrack; 01165 buildRecTofTrack( atrack, 3 ); // no hit 01166 TofHitStatus* hitStatus = new TofHitStatus; 01167 hitStatus->setNoHit(); // no hit 01168 atrack->setStatus( hitStatus->value() ); 01169 delete hitStatus; 01170 recTofTrackCol->push_back( atrack ); 01171 } 01172 01173 return; 01174 }
|
|
00042 { return m_ezr1[i]; }
|
|
00037 { return m_errzr1; }
|
|
00042 { return m_ezr1[i]; }
|
|
00037 { return m_errzr1; }
|
|
00043 { return m_ezr2[i]; }
|
|
00038 { return m_errzr2; }
|
|
00043 { return m_ezr2[i]; }
|
|
00038 { return m_errzr2; }
|
|
00095 { return m_estime; }
|
|
00095 { return m_estime; }
|
|
|
|
00560 { 00561 00562 unsigned int qual = 0xf; 00563 if( tofDataVec2.size() == 0 ) { 00564 if( tofDataVec1.size() == 0 ) { 00565 qual = 0; 00566 } 00567 else if( tofDataVec1.size() == 1 ) { 00568 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin(); 00569 getTofData( (*iter1), iflag ); 00570 qual = 0x1; 00571 } 00572 else if( tofDataVec1.size() > 1 ) { 00573 getTofData( chooseTofData( tofDataVec1, zrhit ), iflag ); 00574 qual = 0x2; 00575 } 00576 else { 00577 cout << "TofRec::TofTrack::findTofData: 1- Impossible!" << endl; 00578 } 00579 } 00580 else if( ( tofDataVec2.size() == 1 ) ) { 00581 if( tofDataVec1.size() == 0 ) { 00582 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin(); 00583 getTofData( (*iter2), iflag ); 00584 qual = 0x4; 00585 } 00586 else if( tofDataVec1.size() == 1 ) { 00587 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin(); 00588 if( ( (*iter1)->quality() & 0x1ff ) == 0x01f ) { 00589 getTofData( (*iter1), iflag ); 00590 } 00591 else { 00592 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin(); 00593 getTofData( compareTofData( (*iter1), (*iter2), zrhit ), iflag ); 00594 } 00595 qual = 0x5; 00596 } 00597 else if( tofDataVec1.size() > 1 ) { 00598 TofData* tofData1 = chooseTofData( tofDataVec1, zrhit ); 00599 if( ( tofData1->quality() & 0x1ff ) == 0x01f ) { 00600 getTofData( tofData1, iflag ); 00601 } 00602 else { 00603 std::vector<TofData*>::iterator iter2 = tofDataVec2.begin(); 00604 getTofData( compareTofData( tofData1, (*iter2), zrhit ), iflag ); 00605 } 00606 qual = 0x6; 00607 } 00608 else { 00609 cout << "TofRec::TofTrack::findTofData: 2- Impossible!" << endl; 00610 } 00611 } 00612 else if( ( tofDataVec2.size() > 1 ) ) { 00613 if( tofDataVec1.size() == 0 ) { 00614 getTofData( chooseTofData( tofDataVec2, zrhit ), iflag ); 00615 qual = 0x8; 00616 } 00617 else if( tofDataVec1.size() == 1 ) { 00618 std::vector<TofData*>::iterator iter1 = tofDataVec1.begin(); 00619 if( ( (*iter1)->quality() & 0x1ff ) == 0x01f ) { 00620 getTofData( (*iter1), iflag ); 00621 } 00622 else { 00623 TofData* tofData2 = chooseTofData( tofDataVec2, zrhit ); 00624 getTofData( compareTofData( (*iter1), tofData2, zrhit ), iflag ); 00625 } 00626 qual = 0x9; 00627 } 00628 else if( tofDataVec1.size() > 1 ) { 00629 TofData* tofData1 = chooseTofData( tofDataVec1, zrhit ); 00630 if( ( tofData1->quality() & 0x1ff ) == 0x01f ) { 00631 getTofData( tofData1, iflag ); 00632 } 00633 else { 00634 TofData* tofData2 = chooseTofData( tofDataVec2, zrhit ); 00635 getTofData( compareTofData( tofData1, tofData2, zrhit ), iflag ); 00636 } 00637 qual = 0xa; 00638 } 00639 else { 00640 cout << "TofRec::TofTrack::findTofData: 3- Impossible!" << endl; 00641 } 00642 } 00643 00644 if( qual == 0 ) { 00645 if( ( iflag == 1 ) || ( iflag == 3 ) ) { 00646 m_quality1 = 0x300; 00647 } 00648 else if( iflag == 2 ) { 00649 m_quality2 = 0x300; 00650 } 00651 else { 00652 cout << "TofRec::TofTrack::findTofData: the 1- IFLAG is Out of Range!" << endl; 00653 } 00654 } 00655 else { 00656 qual = ( qual << 12 ); 00657 if( ( iflag == 1 ) || ( iflag == 3 ) ) { 00658 m_quality1 = ( m_quality1 | qual ); 00659 } 00660 else if( iflag == 2 ) { 00661 m_quality2 = ( m_quality2 | qual ); 00662 } 00663 else { 00664 cout << "TofRec::TofTrack::findTofData: the 2- IFLAG is Out of Range!" << endl; 00665 } 00666 } 00667 00668 return; 00669 }
|
|
00101 { return m_flag; }
|
|
00101 { return m_flag; }
|
|
|
|
00757 { 00758 if( iflag == 1 ) { 00759 m_tofId1 = tof->tofId(); 00760 m_adc1 = tof->adc1(); 00761 m_tdc1 = tof->tdc1(); 00762 m_adc2 = tof->adc2(); 00763 m_tdc2 = tof->tdc2(); 00764 m_ztdc1 = tof->ztdc(); 00765 m_zadc1 = tof->zadc(); 00766 m_quality1 = tof->quality(); 00767 if( ( ( tof->quality() & 0x5 ) != 0x5 ) || ( ( ( tof->quality() & 0x5 ) == 0x5 ) && ( abs( tof->ztdc() - m_zrhit1 ) > ztdc_Cut ) ) ) { 00768 m_quality1 = ( m_quality1 | 0x100 ); 00769 } 00770 if( ( ( tof->quality() & 0xa ) != 0xa ) || ( ( ( tof->quality() & 0xa ) == 0xa ) && ( abs( tof->zadc() - m_zrhit1 ) > zadc_Cut ) ) ) { 00771 m_quality1 = ( m_quality1 | 0x200 ); 00772 } 00773 } 00774 else if( iflag == 2 ) { 00775 m_tofId2 = tof->tofId(); 00776 m_adc3 = tof->adc1(); 00777 m_tdc3 = tof->tdc1(); 00778 m_adc4 = tof->adc2(); 00779 m_tdc4 = tof->tdc2(); 00780 m_ztdc2 = tof->ztdc(); 00781 m_zadc2 = tof->zadc(); 00782 m_quality2 = tof->quality(); 00783 if( ( ( tof->quality() & 0x5 ) != 0x5 ) || ( ( ( tof->quality() & 0x5 ) == 0x5 ) && ( abs( tof->ztdc() - m_zrhit2 ) > ztdc_Cut ) ) ) { 00784 m_quality2 = ( m_quality2 | 0x100 ); 00785 } 00786 if( ( ( tof->quality() & 0xa ) != 0xa ) || ( ( ( tof->quality() & 0xa ) == 0xa ) && ( abs( tof->zadc() - m_zrhit2 ) > zadc_Cut ) ) ) { 00787 m_quality2 = ( m_quality2 | 0x200 ); 00788 } 00789 } 00790 else if( iflag == 3 ) { 00791 m_tofId1 = tof->tofId(); 00792 m_adc1 = tof->adc(); 00793 m_tdc1 = tof->tdc(); 00794 m_quality1 = tof->quality(); 00795 m_quality1 = ( m_quality1 | 0x300 ); 00796 } 00797 else { 00798 cout << "TofRec::TofTrack::setTofData: Flag which sign the Barrel/Endcap or Inner/Outer is wrong! Please check it!" << endl; 00799 } 00800 tof->setUsed(); 00801 return; 00802 }
|
|
00030 { return m_hitCase; }
|
|
00030 { return m_hitCase; }
|
|
00027 { return m_id1; }
|
|
00027 { return m_id1; }
|
|
00028 { return m_id2; }
|
|
00028 { return m_id2; }
|
|
00104 { return m_hitCase==NoHit; }
|
|
00104 { return m_hitCase==NoHit; }
|
|
00039 { return m_kal[i]; }
|
|
00039 { return m_kal[i]; }
|
|
|
|
00444 { 00445 00446 if( m_hitCase == NoHit ) return; 00447 00448 if( m_hitCase == InnerLayer ) { 00449 findTofData( m_tofData1, m_tofData2, m_zrhit1, 1 ); 00450 if( ( m_quality1 & 0x10 ) == 0 ) { m_hitCase = NoHit; } 00451 } 00452 else if( m_hitCase == OuterLayer ) { 00453 findTofData( m_tofData3, m_tofData4, m_zrhit2, 2 ); 00454 if( ( m_quality2 & 0x10 ) == 0 ) { m_hitCase = NoHit; } 00455 } 00456 else if( m_hitCase == DoubleLayer ) { 00457 findTofData( m_tofData1, m_tofData2, m_zrhit1, 1 ); 00458 if( ( m_quality1 & 0x10 ) == 0 ) { m_hitCase = OuterLayer; } 00459 findTofData( m_tofData3, m_tofData4, m_zrhit2, 2 ); 00460 if( ( m_quality2 & 0x10 ) == 0 ) { 00461 if( m_hitCase == DoubleLayer ) { 00462 m_hitCase = InnerLayer; 00463 } 00464 else if( m_hitCase == OuterLayer ) { 00465 m_hitCase = NoHit; 00466 } 00467 else { 00468 cout << "TofRec::TofTrack::match: 2- Impossible!" << endl; 00469 } 00470 } 00471 } 00472 else if( ( m_hitCase == EastEndcap ) || ( m_hitCase == WestEndcap ) ) { 00473 findTofData( m_tofData1, m_tofData2, m_zrhit1, 3 ); 00474 } 00475 else { 00476 cout << "TofRec::TofTrack::match: 1- Impossible!" << endl; 00477 } 00478 00479 if( forCalibration ) { 00480 // set Data Sample for Calibration, double layer, only one hit for counter, T and Q. 00481 if( m_hitCase == DoubleLayer ) { 00482 if( ( ( m_quality1 & 0xf ) == 0xf ) && ( ( m_quality2 & 0xf ) == 0xf ) ) { 00483 m_quality1 = ( m_quality1 | 0x800 ); // Calibration Sample 00484 m_quality2 = ( m_quality2 | 0x800 ); // Calibration Sample 00485 } 00486 else { 00487 std::vector<int>::iterator iter = deadId.begin(); 00488 for( ; iter != deadId.end(); iter++ ) { 00489 Identifier iden = Identifier(*iter); 00490 int barrel = TofID::barrel_ec(iden); 00491 int layer = TofID::layer(iden); 00492 int tofId = TofID::phi_module(iden); 00493 int east = TofID::end(iden); 00494 if( barrel == 1 ) { 00495 if( layer==0 ) { 00496 if( m_tofId1 == tofId ) { 00497 if( ( m_quality2 & 0xf ) == 0xf ) { 00498 if( ( ( east == 0 ) && ( ( m_quality1 & 0xf ) == 0x3 ) ) || ( ( east == 1 ) && ( ( m_quality1 & 0xf ) == 0xc ) ) ) { 00499 m_quality1 = ( m_quality1 | 0x800 ); 00500 m_quality2 = ( m_quality2 | 0x800 ); 00501 00502 } 00503 } 00504 } 00505 } 00506 else if( layer == 1 ) { 00507 if( m_tofId2 == (tofId+88) ) { 00508 if( ( m_quality1 & 0xf ) == 0xf ) { 00509 if( ( ( east == 0 ) && ( ( m_quality2 & 0xf ) == 0x3 ) ) || ( ( east == 1 ) && ( ( m_quality2 & 0xf ) == 0xc ) ) ) { 00510 m_quality1 = ( m_quality1 | 0x800 ); 00511 m_quality2 = ( m_quality2 | 0x800 ); 00512 } 00513 } 00514 } 00515 } 00516 } 00517 } 00518 } 00519 } 00520 // set Data Sample for Calibration, only one hit for counter, T and Q. 00521 else if( m_hitCase == InnerLayer ) { 00522 if( ( m_quality1 & 0xf ) == 0xf ) { 00523 m_quality1 = ( m_quality1 | 0x800 ); // Calibration Sample 00524 } 00525 else { 00526 std::vector<int>::iterator iter = deadId.begin(); 00527 for( ; iter != deadId.end(); iter++ ) { 00528 Identifier iden = Identifier(*iter); 00529 int barrel = TofID::barrel_ec(iden); 00530 int layer = TofID::layer(iden); 00531 int tofId = TofID::phi_module(iden); 00532 int east = TofID::end(iden); 00533 if( barrel == 1 ) { 00534 if( layer==0 ) { 00535 if( m_tofId1 == tofId ) { 00536 if( ( ( east == 0 ) && ( ( m_quality1 & 0xf ) == 0x3 ) ) || ( ( east == 1 ) && ( ( m_quality1 & 0xf ) == 0xc ) ) ) { 00537 m_quality1 = ( m_quality1 | 0x800 ); 00538 } 00539 } 00540 } 00541 } 00542 } 00543 } 00544 } 00545 00546 // set Data Sample for Calibration, only one hit for counter, T and Q. 00547 if( ( ( m_hitCase == EastEndcap ) || ( m_hitCase == WestEndcap ) ) && ( ( m_quality1 & 0xf ) == 0xc ) ) { 00548 m_quality1 = ( m_quality1 | 0x800 ); // Calibration Sample 00549 } 00550 } 00551 00552 return; 00553 }
|
|
00031 { return m_momentum; }
|
|
00031 { return m_momentum; }
|
|
00032 { return m_path; }
|
|
00032 { return m_path; }
|
|
00033 { return m_path1; }
|
|
00033 { return m_path1; }
|
|
00034 { return m_path2; }
|
|
00034 { return m_path2; }
|
|
00067 { return m_ph; }
|
|
00067 { return m_ph; }
|
|
00065 { return m_ph1; }
|
|
00065 { return m_ph1; }
|
|
00061 { return m_ph11; }
|
|
00061 { return m_ph11; }
|
|
00062 { return m_ph12; }
|
|
00062 { return m_ph12; }
|
|
00066 { return m_ph2; }
|
|
00066 { return m_ph2; }
|
|
00063 { return m_ph21; }
|
|
00063 { return m_ph21; }
|
|
00064 { return m_ph22; }
|
|
00064 { return m_ph22; }
|
|
00052 { return m_phi1; }
|
|
00052 { return m_phi1; }
|
|
00053 { return m_phi2; }
|
|
00053 { return m_phi2; }
|
|
00056 { return m_quality; }
|
|
00056 { return m_quality; }
|
|
00054 { return m_quality1; }
|
|
00054 { return m_quality1; }
|
|
00055 { return m_quality2; }
|
|
00055 { return m_quality2; }
|
|
|
|
|
|
|
|
00810 { 00811 00812 m_estime = t0; 00813 m_t0Stat = t0Stat; 00814 00815 bool barrel = ( ( m_hitCase == InnerLayer ) || ( m_hitCase == OuterLayer ) || ( m_hitCase == DoubleLayer ) ); 00816 bool endcap = ( ( m_hitCase == EastEndcap ) || ( m_hitCase == WestEndcap ) ); 00817 00818 bool innerEast = ( ( m_quality1 & 0xc ) == 0xc ); 00819 bool innerWest = ( ( m_quality1 & 0x3 ) == 0x3 ); 00820 bool outerEast = ( ( m_quality2 & 0xc ) == 0xc ); 00821 bool outerWest = ( ( m_quality2 & 0x3 ) == 0x3 ); 00822 bool innerLayer = ( ( m_quality1 & 0xf ) == 0xf ); 00823 bool outerLayer = ( ( m_quality2 & 0xf ) == 0xf ); 00824 00825 bool endcapData = ( ( m_quality1 & 0xc ) == 0xc ); 00826 00827 if( m_hitCase == DoubleLayer ) { 00828 for( unsigned int i=0; i<5; i++ ) { 00829 m_texp[i] = tofCaliSvc->BTimeCluster( m_texpInner[i], m_texpOuter[i], m_zr1[i], m_zr2[i], m_tofId1, m_tofId2 ); 00830 } 00831 m_path = tofCaliSvc->BTimeCluster( m_path1, m_path2, m_zrhit1, m_zrhit2, m_tofId1, m_tofId2 ); 00832 } 00833 00834 if( barrel ) { 00835 if( innerEast ) { 00836 for( unsigned int i=0; i<5; i++ ) { 00837 m_tof11[i] = tofCaliSvc->BTime1( m_adc1, m_tdc1-m_estime, m_zr1[i], m_tofId1 ); 00838 } 00839 m_sigma11 = tofCaliSvc->BSigma1( m_zrhit1, m_tofId1 ); 00840 m_ph11 = m_adc1; 00841 } 00842 00843 if( innerWest ) { 00844 for( unsigned int i=0; i<5; i++ ) { 00845 m_tof12[i] = tofCaliSvc->BTime2( m_adc2, m_tdc2-m_estime, m_zr1[i], m_tofId1 ); 00846 } 00847 m_sigma12 = tofCaliSvc->BSigma2( m_zrhit1, m_tofId1 ); 00848 m_ph12 = m_adc2; 00849 } 00850 00851 if( innerLayer ) { 00852 for( unsigned int i=0; i<5; i++ ) { 00853 m_tof1[i] = tofCaliSvc->BTimeCounter( m_tof11[i], m_tof12[i], m_zr1[i], m_tofId1 ); 00854 } 00855 m_sigma1 = tofCaliSvc->BSigmaCounter( m_zrhit1, m_tofId1 ); 00856 m_ph1 = tofCaliSvc->BPulseHeight( m_adc1, m_adc2, m_zrhit1, m_theta1, m_tofId1 ); 00857 /* 00858 if( m_hitCase == InnerLayer ) { 00859 for( unsigned int i=0; i<5; i++ ) { 00860 m_tof[i] = m_tof1[i]; 00861 } 00862 m_sigma = m_sigma1; 00863 } 00864 */ 00865 } 00866 00867 if( outerEast ) { 00868 for( unsigned int i=0; i<5; i++ ) { 00869 m_tof21[i] = tofCaliSvc->BTime1( m_adc3, m_tdc3-m_estime, m_zr2[i], m_tofId2 ); 00870 } 00871 m_sigma21 = tofCaliSvc->BSigma1( m_zrhit2, m_tofId2 ); 00872 m_ph21 = m_adc3; 00873 } 00874 00875 if( outerWest ) { 00876 for( unsigned int i=0; i<5; i++ ) { 00877 m_tof22[i] = tofCaliSvc->BTime2( m_adc4, m_tdc4-m_estime, m_zr2[i], m_tofId2 ); 00878 } 00879 m_sigma22 = tofCaliSvc->BSigma2( m_zrhit2, m_tofId2 ); 00880 m_ph22 = m_adc4; 00881 } 00882 00883 if( outerLayer ) { 00884 for( unsigned int i=0; i<5; i++ ) { 00885 m_tof2[i] = tofCaliSvc->BTimeCounter( m_tof21[i], m_tof22[i], m_zr2[i], m_tofId2 ); 00886 } 00887 m_sigma2 = tofCaliSvc->BSigmaCounter( m_zrhit2, m_tofId2 ); 00888 m_ph2 = tofCaliSvc->BPulseHeight( m_adc3, m_adc4, m_zrhit2, m_theta2, m_tofId2 ); 00889 /* 00890 if( m_hitCase == OuterLayer ) { 00891 for( unsigned int i=0; i<5; i++ ) { 00892 m_tof[i] = m_tof2[i]; 00893 } 00894 m_sigma = m_sigma2; 00895 } 00896 */ 00897 } 00898 00899 if( innerLayer && outerLayer ) { 00900 for( unsigned int i=0; i<5; i++ ) { 00901 m_tof[i] = tofCaliSvc->BTimeCluster( m_tof1[i], m_tof2[i], m_zr1[i], m_zr2[i], m_tofId1, m_tofId2 ); 00902 } 00903 m_sigma = tofCaliSvc->BSigmaCluster( m_zrhit1, m_zrhit2, m_tofId1, m_tofId2 ); 00904 m_ph = tofCaliSvc->BTimeCluster( m_ph1, m_ph2, m_zrhit1, m_zrhit2, m_tofId1, m_tofId2 ); 00905 } 00906 } 00907 00908 if( endcap ) { 00909 if( endcapData ) { 00910 for( unsigned int i=0; i<5; i++ ) { 00911 m_tof11[i] = tofCaliSvc->ETime( m_adc1, m_tdc1-m_estime, m_zr1[i], m_tofId1 ); 00912 } 00913 m_sigma11 = tofCaliSvc->ESigma( m_zrhit1, m_tofId1 ); 00914 m_ph11 = tofCaliSvc->EPulseHeight( m_adc1, m_zrhit1, m_theta1, m_tofId1 ); 00915 m_quality = 1; 00916 if( (m_quality1&0xa000)!=0 ) { m_quality = 4; } 00917 } 00918 } 00919 00920 // set Quality of Barrel TOF 00921 if( barrel ) { 00922 00923 // double layer 00924 if( innerLayer && outerLayer ) { 00925 m_quality = 1; 00926 } 00927 else { 00928 // single layer 00929 if( innerLayer || outerLayer ) { 00930 m_quality = 2; 00931 } 00932 else { 00933 // single-end of one layer 00934 if( innerEast || innerWest || outerEast || outerWest ) { 00935 m_quality = 3; 00936 } 00937 } 00938 } 00939 00940 // multi-hit 00941 if( ( (m_quality1&0xa000)!=0 ) || ( (m_quality2&0xa000)!=0 ) ) { 00942 m_quality = m_quality + 3; 00943 } 00944 00945 // ztdc and extrapolated zhit is not matched 00946 if( ( (m_quality1&0x100)==0x100 ) || ( (m_quality2&0x100)==0x100 ) ) { 00947 if( ( m_quality == 1 ) || ( m_quality == 4 ) ) { m_quality = 7; } 00948 else if( ( m_quality == 2 ) || ( m_quality == 5 ) ) { m_quality = 8; } 00949 else if( ( m_quality == 3 ) || ( m_quality == 6 ) ) { m_quality = 9; } 00950 else { 00951 cout << "TofRec::TofTrack::setCalibration: Impossible!" << endl; 00952 } 00953 } 00954 00955 } 00956 00957 return; 00958 }
|
|
|
|
00140 { 00141 00142 int tofId1 = extTrack->tof1VolumeNumber(); 00143 int tofId2 = extTrack->tof2VolumeNumber(); 00144 00145 m_barrel = 3; 00146 if( tofId1>=0 && tofId1<=87 ) { 00147 m_id1 = tofId1; 00148 m_barrel = 1; 00149 m_hitCase = InnerLayer; 00150 } 00151 else if( tofId1>=176 && tofId1<=223 ) { 00152 m_id1 = tofId1 - 176 + 48; 00153 m_barrel = 2; 00154 m_hitCase = WestEndcap; 00155 } 00156 else if( tofId1>=224 && tofId1<=271 ) { 00157 m_id1 = tofId1 - 176 - 48; 00158 m_barrel = 0; 00159 m_hitCase = EastEndcap; 00160 } 00161 else { 00162 m_barrel = 3; 00163 m_hitCase = NoHit; 00164 } 00165 00166 if( tofId2>=88 && tofId2<=175 ) { 00167 m_id2 = tofId2; 00168 m_barrel = 1; 00169 if( m_hitCase == InnerLayer ) { 00170 m_hitCase = DoubleLayer; 00171 } 00172 else if( m_hitCase==NoHit ) { 00173 m_hitCase = OuterLayer; 00174 } 00175 } 00176 00177 m_trackId = extTrack->trackId(); 00178 00179 m_momentum = extTrack->tof1Momentum().r(); 00180 if( m_hitCase == InnerLayer || m_hitCase == DoubleLayer ) { 00181 for( unsigned int i=0; i<5; i++ ) { 00182 m_texpInner[i] = extTrack->tof1(i); 00183 } 00184 m_path1 = extTrack->tof1Path(); 00185 m_zrhit1 = extTrack->tof1Position().z(); 00186 m_errzr1 = extTrack->tof1PosSigmaAlongZ(); 00187 m_theta1 = extTrack->tof1Momentum().rho()/extTrack->tof1Momentum().r(); 00188 m_phi1 = extTrack->tof1Position().phi(); 00189 for( unsigned int i=0; i<5; i++ ) { 00190 m_zr1[i] = extTrack->tof1Position(i).z(); 00191 m_ezr1[i] = extTrack->tof1PosSigmaAlongZ(i); 00192 } 00193 } 00194 else if( m_hitCase == EastEndcap || m_hitCase == WestEndcap ) { 00195 for( unsigned int i=0; i<5; i++ ) { 00196 m_texpInner[i] = extTrack->tof1(i); 00197 } 00198 m_path1 = extTrack->tof1Path(); 00199 m_zrhit1 = extTrack->tof1Position().rho(); 00200 m_errzr1 = sqrt( extTrack->tof1PosSigmaAlongX()*extTrack->tof1PosSigmaAlongX() + extTrack->tof1PosSigmaAlongY()*extTrack->tof1PosSigmaAlongY() ); 00201 m_theta1 = extTrack->tof1Momentum().z()/extTrack->tof1Momentum().r(); 00202 m_phi1 = extTrack->tof1Position().phi(); 00203 for( unsigned int i=0; i<5; i++ ) { 00204 m_zr1[i] = extTrack->tof1Position(i).rho(); 00205 m_ezr1[i] = sqrt( extTrack->tof1PosSigmaAlongX(i)*extTrack->tof1PosSigmaAlongX(i) + extTrack->tof1PosSigmaAlongY(i)*extTrack->tof1PosSigmaAlongY(i) ); 00206 } 00207 } 00208 00209 if( m_hitCase == OuterLayer || m_hitCase == DoubleLayer ) { 00210 for( unsigned int i=0; i<5; i++ ) { 00211 m_texpOuter[i] = extTrack->tof2(i); 00212 } 00213 m_path2 = extTrack->tof2Path(); 00214 m_zrhit2 = extTrack->tof2Position().z(); 00215 m_errzr2 = extTrack->tof2PosSigmaAlongZ(); 00216 m_theta2 = extTrack->tof2Momentum().rho()/extTrack->tof2Momentum().r(); 00217 m_phi2 = extTrack->tof2Position().phi(); 00218 for( unsigned int i=0; i<5; i++ ) { 00219 m_zr2[i] = extTrack->tof2Position(i).z(); 00220 m_ezr2[i] = extTrack->tof2PosSigmaAlongZ(i); 00221 } 00222 } 00223 00224 if( m_hitCase == NoHit ) { m_quality = 11; } 00225 00226 for( unsigned int i=0; i<5; i++ ) { 00227 m_kal[i] = kal[i]; 00228 } 00229 00230 return; 00231 }
|
|
00106 { m_flag = flag; }
|
|
00106 { m_flag = flag; }
|
|
00105 { m_quality = qual; }
|
|
00105 { m_quality = qual; }
|
|
|
|
01241 { 01242 01243 double toffset[6]; 01244 for( unsigned int i=0; i<6; i++ ) { 01245 toffset[i] = 0.0; 01246 } 01247 01248 if( layerorend == 0 ) { // cluster or double layer hit 01249 track->setPh( m_ph ); 01250 track->setTof( m_tof[0] ); 01251 track->setSigmaElectron( m_sigma ); 01252 for( unsigned int i=0; i<5; i++ ) { 01253 toffset[i] = m_tof[0] - m_tof[i]; 01254 } 01255 track->setToffset( toffset ); 01256 track->setBeta( m_path/m_tof[0]/30.0 ); 01257 } 01258 else if( layerorend == 1 ) { // inner layer 01259 track->setPh( m_ph1 ); 01260 track->setTof( m_tof1[0] ); 01261 track->setSigmaElectron( m_sigma1 ); 01262 for( unsigned int i=0; i<5; i++ ) { 01263 toffset[i] = m_tof1[0] - m_tof1[i]; 01264 } 01265 track->setToffset( toffset ); 01266 track->setBeta( m_path1/m_tof1[0]/30.0 ); 01267 } 01268 else if( layerorend == 2 ) { // outer layer 01269 track->setPh( m_ph2 ); 01270 track->setTof( m_tof2[0] ); 01271 track->setSigmaElectron( m_sigma2 ); 01272 for( unsigned int i=0; i<5; i++ ) { 01273 toffset[i] = m_tof2[0] - m_tof2[i]; 01274 } 01275 track->setToffset( toffset ); 01276 track->setBeta( m_path2/m_tof2[0]/30.0 ); 01277 } 01278 else if( layerorend == 11 ) { // inner layer east end readout 01279 track->setPh( m_ph11 ); 01280 track->setTof( m_tof11[0] ); 01281 track->setSigmaElectron( m_sigma11 ); 01282 for( unsigned int i=0; i<5; i++ ) { 01283 toffset[i] = m_tof11[0] - m_tof11[i]; 01284 } 01285 track->setToffset( toffset ); 01286 track->setBeta( m_path1/m_tof11[0]/30.0 ); 01287 } 01288 else if( layerorend == 12 ) { // inner layer west end readout 01289 track->setPh( m_ph12 ); 01290 track->setTof( m_tof12[0] ); 01291 track->setSigmaElectron( m_sigma12 ); 01292 for( unsigned int i=0; i<5; i++ ) { 01293 toffset[i] = m_tof12[0] - m_tof12[i]; 01294 } 01295 track->setToffset( toffset ); 01296 track->setBeta( m_path1/m_tof12[0]/30.0 ); 01297 } 01298 else if( layerorend == 21 ) { // outer layer east end readout 01299 track->setPh( m_ph21 ); 01300 track->setTof( m_tof21[0] ); 01301 track->setSigmaElectron( m_sigma21 ); 01302 for( unsigned int i=0; i<5; i++ ) { 01303 toffset[i] = m_tof21[0] - m_tof21[i]; 01304 } 01305 track->setToffset( toffset ); 01306 track->setBeta( m_path2/m_tof21[0]/30.0 ); 01307 } 01308 else if( layerorend == 22 ) { // outer layer west end readout 01309 track->setPh( m_ph22 ); 01310 track->setTof( m_tof22[0] ); 01311 track->setSigmaElectron( m_sigma22 ); 01312 for( unsigned int i=0; i<5; i++ ) { 01313 toffset[i] = m_tof22[0] - m_tof22[i]; 01314 } 01315 track->setToffset( toffset ); 01316 track->setBeta( m_path2/m_tof22[0]/30.0 ); 01317 } 01318 else{ 01319 cout << "TofRec TofTrack::SetRecTofTrack layerorend = " << layerorend << endl; 01320 } 01321 return; 01322 }
|
|
|
|
00239 { 00240 00241 if( m_hitCase == NoHit ) return; 00242 00243 unsigned int identify0 = 0x0000c000; 00244 unsigned int identify1 = 0x0000c000; 00245 unsigned int identify2 = 0x0000c000; 00246 unsigned int count0 = 0; 00247 unsigned int count1 = 0; 00248 unsigned int count2 = 0; 00249 00250 if( ( ( m_hitCase == InnerLayer ) || ( m_hitCase == DoubleLayer ) ) && ( m_id1 > -1 ) ) { 00251 int tofid0 = m_id1; 00252 identify0 = TofID::getIntID( 1, 0, tofid0, 0 ); 00253 count0 = tofDataMap.count( identify0 ); 00254 int tofid1 = tofid0 - 1; 00255 if( tofid1 == -1 ) { tofid1 = 87; } 00256 identify1 = TofID::getIntID( 1, 0, tofid1, 0 ); 00257 count1 = tofDataMap.count( identify1 ); 00258 int tofid2 = tofid0 + 1; 00259 if( tofid2 == 88 ) { tofid2 = 0; } 00260 identify2 = TofID::getIntID( 1, 0, tofid2, 0 ); 00261 count2 = tofDataMap.count( identify2 ); 00262 } 00263 00264 if( ( m_hitCase == EastEndcap ) && ( m_id1 > -1 ) ) { 00265 int tofid0 = m_id1; 00266 identify0 = TofID::getIntID( 0, 0, tofid0, 0 ); 00267 count0 = tofDataMap.count( identify0 ); 00268 int tofid1 = tofid0 - 1; 00269 if( tofid1 == -1 ) { tofid1 = 47; } 00270 identify1 = TofID::getIntID( 0, 0, tofid1, 0 ); 00271 count1 = tofDataMap.count( identify1 ); 00272 int tofid2 = tofid0 + 1; 00273 if( tofid2 == 48 ) { tofid2 = 0; } 00274 identify2 = TofID::getIntID( 0, 0, tofid2, 0 ); 00275 count2 = tofDataMap.count( identify2 ); 00276 } 00277 00278 if( ( m_hitCase == WestEndcap ) && ( m_id1 > -1 ) ) { 00279 int tofid0 = m_id1 - 48; 00280 identify0 = TofID::getIntID( 2, 0, tofid0, 0 ); 00281 count0 = tofDataMap.count( identify0 ); 00282 int tofid1 = tofid0 - 1; 00283 if( tofid1 == -1 ) { tofid1 = 47; } 00284 identify1 = TofID::getIntID( 2, 0, tofid1, 0 ); 00285 count1 = tofDataMap.count( identify1 ); 00286 int tofid2 = tofid0 + 1; 00287 if( tofid2 == 48 ) { tofid2 = 0; } 00288 identify2 = TofID::getIntID( 2, 0, tofid2, 0 ); 00289 count2 = tofDataMap.count( identify2 ); 00290 } 00291 00292 if( count0 > 0 ) { 00293 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify0 ); 00294 IterTofDataMap iter = range.first; 00295 for( unsigned int i = 0; i < count0; i++, iter++ ) { 00296 tofDataAnalysis( (*iter).second, 1 ); 00297 } 00298 } 00299 if( count1 > 0 ) { 00300 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify1 ); 00301 IterTofDataMap iter = range.first; 00302 for( unsigned int i = 0; i < count1; i++, iter++ ) { 00303 tofDataAnalysis( (*iter).second, 2 ); 00304 } 00305 } 00306 if( count2 > 0 ) { 00307 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify2 ); 00308 IterTofDataMap iter = range.first; 00309 for( unsigned int i = 0; i < count2; i++, iter++ ) { 00310 tofDataAnalysis( (*iter).second, 2 ); 00311 } 00312 } 00313 00314 if( ( count0 == 0 ) && ( count1 == 0 ) && ( count2 == 0 ) ) { 00315 if( m_hitCase != DoubleLayer ) { 00316 m_hitCase = NoHit; 00317 m_quality = 12; 00318 } 00319 else { 00320 m_hitCase = OuterLayer; 00321 } 00322 } 00323 00324 if( ( ( m_hitCase == OuterLayer ) || ( m_hitCase == DoubleLayer ) ) && ( m_id2 > 87 ) ) { 00325 int tofid0 = m_id2 - 88; 00326 identify0 = TofID::getIntID( 1, 1, tofid0, 0 ); 00327 count0 = tofDataMap.count( identify0 ); 00328 int tofid1 = tofid0 - 1; 00329 if( tofid1 == -1 ) { tofid1 = 87; } 00330 identify1 = TofID::getIntID( 1, 1, tofid1, 0 ); 00331 count1 = tofDataMap.count( identify1 ); 00332 int tofid2 = tofid0 + 1; 00333 if( tofid2 == 88 ) { tofid2 = 0; } 00334 identify2 = TofID::getIntID( 1, 1, tofid2, 0 ); 00335 count2 = tofDataMap.count( identify2 ); 00336 00337 if( count0 > 0 ) { 00338 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify0 ); 00339 IterTofDataMap iter = range.first; 00340 for( unsigned int i = 0; i < count0; i++, iter++ ) { 00341 tofDataAnalysis( (*iter).second, 3 ); 00342 } 00343 } 00344 if( count1 > 0 ) { 00345 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify1 ); 00346 IterTofDataMap iter = range.first; 00347 for( unsigned int i = 0; i < count1; i++, iter++ ) { 00348 tofDataAnalysis( (*iter).second, 4 ); 00349 } 00350 } 00351 if( count2 > 0 ) { 00352 pair< IterTofDataMap, IterTofDataMap > range = tofDataMap.equal_range( identify2 ); 00353 IterTofDataMap iter = range.first; 00354 for( unsigned int i = 0; i < count2; i++, iter++ ) { 00355 tofDataAnalysis( (*iter).second, 4 ); 00356 } 00357 } 00358 00359 if( ( count0 == 0 ) && ( count1 == 0 ) && ( count2 == 0 ) ) { 00360 if( m_hitCase != DoubleLayer ) { 00361 m_hitCase = NoHit; 00362 m_quality = 12; 00363 } 00364 else { 00365 m_hitCase = InnerLayer; 00366 } 00367 } 00368 } 00369 00370 return; 00371 }
|
|
00046 { return m_tofData1.size(); }
|
|
00046 { return m_tofData1.size(); }
|
|
00047 { return m_tofData2.size(); }
|
|
00047 { return m_tofData2.size(); }
|
|
00048 { return m_tofData3.size(); }
|
|
00048 { return m_tofData3.size(); }
|
|
00049 { return m_tofData4.size(); }
|
|
00049 { return m_tofData4.size(); }
|
|
00099 { return m_t0Stat; }
|
|
00099 { return m_t0Stat; }
|
|
00081 { return m_tdc1; }
|
|
00081 { return m_tdc1; }
|
|
00082 { return m_tdc2; }
|
|
00082 { return m_tdc2; }
|
|
00083 { return m_tdc3; }
|
|
00083 { return m_tdc3; }
|
|
00084 { return m_tdc4; }
|
|
00084 { return m_tdc4; }
|
|
00096 { return m_tdiff1; }
|
|
00096 { return m_tdiff1; }
|
|
00097 { return m_tdiff2; }
|
|
00097 { return m_tdiff2; }
|
|
00088 { return m_texp[i]; }
|
|
00088 { return m_texp[i]; }
|
|
00086 { return m_texpInner[i]; }
|
|
00086 { return m_texpInner[i]; }
|
|
00087 { return m_texpOuter[i]; }
|
|
00087 { return m_texpOuter[i]; }
|
|
00050 { return m_theta1; }
|
|
00050 { return m_theta1; }
|
|
00051 { return m_theta2; }
|
|
00051 { return m_theta2; }
|
|
00075 { return m_tof[i]; }
|
|
00075 { return m_tof[i]; }
|
|
00073 { return m_tof1[i]; }
|
|
00073 { return m_tof1[i]; }
|
|
00069 { return m_tof11[i]; }
|
|
00069 { return m_tof11[i]; }
|
|
00070 { return m_tof12[i]; }
|
|
00070 { return m_tof12[i]; }
|
|
00074 { return m_tof2[i]; }
|
|
00074 { return m_tof2[i]; }
|
|
00071 { return m_tof21[i]; }
|
|
00071 { return m_tof21[i]; }
|
|
00072 { return m_tof22[i]; }
|
|
00072 { return m_tof22[i]; }
|
|
00044 { return m_tofData1; }
|
|
00044 { return m_tofData1; }
|
|
00045 { return m_tofData2; }
|
|
00045 { return m_tofData2; }
|
|
|
|
00377 { 00378 00379 unsigned int qual = tof->quality(); 00380 00381 if( ( qual & 0x10 ) == 0 ) { 00382 00383 // qual = ( qual | 0x310 ); // zadc, ztdc unmatched, and track matched 00384 qual = ( qual | 0x10 ); // zadc, ztdc unmatched, and track matched 00385 00386 if( tof->barrel() ) { // Barrel, Endcap has been done 00387 if( ( tof->quality() == 0x7 ) || ( tof->quality() == 0xd ) ) { 00388 qual = ( qual | 0x20 ); // lost one Q 00389 } 00390 00391 if( ( tof->quality() == 0xb ) || ( tof->quality() == 0xe ) ) { 00392 qual = ( qual | 0x40 ); // lost one T 00393 } 00394 00395 if( ( tof->quality() == 0x3 ) || ( tof->quality() == 0xc ) ) { 00396 qual = ( qual | 0x80 ); // single end 00397 } 00398 00399 if( ( tof->quality() & 0x5 ) == 0x5 ) { 00400 double ztdc = tofCaliSvc->ZTDC( tof->tdc1(), tof->tdc2(), tof->tofId() ); 00401 tof->setZTdc( ztdc ); 00402 /* 00403 if( ( ( (iflag==1) || (iflag==2) ) && ( abs(ztdc-m_zrhit1)<ztdc_Cut ) ) || ( ( (iflag==3) || (iflag==4) ) && ( abs(ztdc-m_zrhit2)<ztdc_Cut ) ) ) { 00404 qual = ( qual & 0xeffffeff ); // Z_tdc un-matched. 00405 } 00406 else { 00407 qual = ( qual | 0x100 ); 00408 } 00409 */ 00410 } 00411 00412 if( ( tof->quality() & 0xa ) == 0xa ) { 00413 double zadc = tofCaliSvc->ZADC( tof->adc1(), tof->adc2(), tof->tofId() ); 00414 tof->setZAdc( zadc ); 00415 /* 00416 if( ( ( (iflag==1) || (iflag==2) ) && ( abs(zadc-m_zrhit1)<zadc_Cut ) ) || ( ( (iflag==3) || (iflag==4) ) && ( abs(zadc-m_zrhit2)<zadc_Cut ) ) ) { 00417 qual = ( qual & 0xeffffbff ); // Z_adc un-matched. 00418 } 00419 else { 00420 qual = ( qual | 0x200 ); 00421 } 00422 */ 00423 } 00424 } 00425 00426 tof->setQuality( qual ); 00427 } 00428 00429 if( iflag == 1 ) m_tofData1.push_back( tof ); 00430 else if( iflag == 2 ) m_tofData2.push_back( tof ); 00431 else if( iflag == 3 ) m_tofData3.push_back( tof ); 00432 else if( iflag == 4 ) m_tofData4.push_back( tof ); 00433 else { 00434 cout << "TofRec::TofTrack::TofDataAnalylsis: the Flag should be 1-4, out of the Range!" << endl; 00435 } 00436 00437 return; 00438 }
|
|
|
|
|
|
00058 { return m_tofId1; }
|
|
00058 { return m_tofId1; }
|
|
00059 { return m_tofId2; }
|
|
00059 { return m_tofId2; }
|
|
00026 { return m_tofTrackId; }
|
|
00026 { return m_tofTrackId; }
|
|
00025 { return m_trackId; }
|
|
00025 { return m_trackId; }
|
|
00092 { return m_zadc1; }
|
|
00092 { return m_zadc1; }
|
|
00093 { return m_zadc2; }
|
|
00093 { return m_zadc2; }
|
|
00040 { return m_zr1[i]; }
|
|
00035 { return m_zrhit1; }
|
|
00040 { return m_zr1[i]; }
|
|
00035 { return m_zrhit1; }
|
|
00041 { return m_zr2[i]; }
|
|
00036 { return m_zrhit2; }
|
|
00041 { return m_zr2[i]; }
|
|
00036 { return m_zrhit2; }
|
|
00090 { return m_ztdc1; }
|
|
00090 { return m_ztdc1; }
|
|
00091 { return m_ztdc2; }
|
|
00091 { return m_ztdc2; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|