#include <MdcPerformance.h>
Public Member Functions | |
StatusCode | execute () |
StatusCode | execute () |
StatusCode | finalize () |
StatusCode | finalize () |
StatusCode | initialize () |
StatusCode | initialize () |
MdcPerformance (const std::string &name, ISvcLocator *pSvcLocator) | |
MdcPerformance (const std::string &name, ISvcLocator *pSvcLocator) | |
Private Member Functions | |
StatusCode | bookNTuple () |
StatusCode | bookNTuple () |
StatusCode | fillInit () |
StatusCode | fillInit () |
StatusCode | fillRawEvent () |
StatusCode | fillRawEvent () |
StatusCode | fillRecEvent () |
StatusCode | fillRecEvent () |
StatusCode | fillRecTrack (const RecMdcTrack *tk) |
StatusCode | fillRecTrack (const RecMdcTrack *tk) |
StatusCode | getNoiseThroughRawDigi () |
StatusCode | getNoiseThroughRawDigi () |
Private Attributes | |
double | Bz |
int | havedigi [43][288] |
NTuple::Array< double > | m_Adc |
NTuple::Array< double > | m_Adc |
NTuple::Item< double > | m_chi2 |
NTuple::Item< double > | m_chi2 |
NTuple::Array< double > | m_chi2add |
NTuple::Array< double > | m_chi2add |
NTuple::Item< double > | m_chi2Dof |
NTuple::Item< double > | m_chi2Dof |
NTuple::Item< double > | m_chi2Prob |
NTuple::Item< double > | m_chi2Prob |
NTuple::Item< double > | m_cpa |
NTuple::Item< double > | m_cpa |
NTuple::Item< double > | m_cpaE |
NTuple::Item< double > | m_cpaE |
NTuple::Item< double > | m_d0 |
NTuple::Item< double > | m_d0 |
NTuple::Item< double > | m_d0E |
NTuple::Item< double > | m_d0E |
NTuple::Array< double > | m_doca |
NTuple::Array< double > | m_doca |
bool | m_doSag |
NTuple::Array< double > | m_driftD |
NTuple::Array< double > | m_driftD |
NTuple::Array< double > | m_driftT |
NTuple::Array< double > | m_driftT |
bool | m_dropHot |
NTuple::Array< double > | m_entra |
NTuple::Array< double > | m_entra |
NTuple::Item< double > | m_evtNo |
NTuple::Item< double > | m_evtNo |
NTuple::Item< double > | m_fiTerm |
NTuple::Item< double > | m_fiTerm |
NTuple::Array< double > | m_flaglr |
NTuple::Array< double > | m_flaglr |
const MdcDetector * | m_gm |
const MdcDetector * | m_gm |
NTuple::Array< double > | m_gwire |
NTuple::Array< double > | m_gwire |
NTuple::Array< long > | m_hitStat |
NTuple::Array< long > | m_hitStat |
bool | m_keepBadTdc |
bool | m_keepFirstTdc |
bool | m_keepUnmatch |
NTuple::Array< long > | m_layer |
NTuple::Array< long > | m_layer |
double | m_mass |
int | m_maxMdcDigi |
MdcCheckUtil * | m_mdcCheckUtil |
MdcCheckUtil * | m_mdcCheckUtil |
NTuple::Item< long > | m_nAct |
NTuple::Item< long > | m_nAct |
NTuple::Item< long > | m_nDof |
NTuple::Item< long > | m_nDof |
NTuple::Item< long > | m_nHit |
NTuple::Item< long > | m_nHit |
NTuple::Item< long > | m_nSt |
NTuple::Item< long > | m_nSt |
NTuple::Item< double > | m_p |
NTuple::Item< double > | m_p |
HepPDT::ParticleDataTable * | m_particleTable |
HepPDT::ParticleDataTable * | m_particleTable |
NTuple::Item< double > | m_pcms |
NTuple::Item< double > | m_pcms |
NTuple::Item< double > | m_phi0 |
NTuple::Item< double > | m_phi0 |
NTuple::Item< double > | m_phi0E |
NTuple::Item< double > | m_phi0E |
IMagneticFieldSvc * | m_pIMF |
IMagneticFieldSvc * | m_pIMF |
bool | m_poca |
NTuple::Item< double > | m_pt |
NTuple::Item< double > | m_pt |
NTuple::Item< double > | m_pz |
NTuple::Item< double > | m_pz |
NTuple::Item< double > | m_q |
NTuple::Item< double > | m_q |
bool | m_rawData |
RawDataProviderSvc * | m_rawDataProviderSvc |
RawDataProviderSvc * | m_rawDataProviderSvc |
NTuple::Item< double > | m_recTkNum |
NTuple::Item< double > | m_recTkNum |
NTuple::Array< double > | m_resid |
NTuple::Array< double > | m_resid |
NTuple::Item< double > | m_runNo |
NTuple::Item< double > | m_runNo |
NTuple::Item< double > | m_t3_evtNo |
NTuple::Item< double > | m_t3_evtNo |
NTuple::Array< long > | m_t3_gwire |
NTuple::Array< long > | m_t3_gwire |
NTuple::Array< long > | m_t3_layer |
NTuple::Array< long > | m_t3_layer |
NTuple::Item< long > | m_t3_nDigi |
NTuple::Item< long > | m_t3_nDigi |
NTuple::Item< long > | m_t3_nDigiUnmatch |
NTuple::Item< long > | m_t3_nDigiUnmatch |
NTuple::Array< long > | m_t3_ovfl |
NTuple::Array< long > | m_t3_ovfl |
NTuple::Item< long > | m_t3_PatRec |
NTuple::Item< long > | m_t3_PatRec |
NTuple::Array< double > | m_t3_rc |
NTuple::Array< double > | m_t3_rc |
NTuple::Item< double > | m_t3_recTk |
NTuple::Item< double > | m_t3_recTk |
NTuple::Array< double > | m_t3_rt |
NTuple::Array< double > | m_t3_rt |
NTuple::Item< long > | m_t3_runNo |
NTuple::Item< long > | m_t3_runNo |
NTuple::Item< double > | m_t3_t0 |
NTuple::Item< double > | m_t3_t0 |
NTuple::Item< long > | m_t3_t0Stat |
NTuple::Item< long > | m_t3_t0Stat |
NTuple::Item< double > | m_t3_t0Truth |
NTuple::Item< double > | m_t3_t0Truth |
NTuple::Item< long > | m_t3_TrkReco |
NTuple::Item< long > | m_t3_TrkReco |
NTuple::Array< long > | m_t3_wire |
NTuple::Array< long > | m_t3_wire |
NTuple::Item< double > | m_tanl |
NTuple::Item< double > | m_tanl |
NTuple::Item< double > | m_tanlE |
NTuple::Item< double > | m_tanlE |
NTuple::Array< double > | m_Tdc |
NTuple::Array< double > | m_Tdc |
NTuple::Item< long > | m_tkId |
NTuple::Item< long > | m_tkId |
NTuple::Item< long > | m_tkStat |
NTuple::Item< long > | m_tkStat |
NTuple::Array< long > | m_trig_chan |
NTuple::Array< long > | m_trig_chan |
NTuple::Array< long > | m_trig_cond |
NTuple::Array< long > | m_trig_cond |
NTuple::Item< long > | m_trig_index |
NTuple::Item< long > | m_trig_index |
NTuple::Item< long > | m_trig_timetype |
NTuple::Item< long > | m_trig_timetype |
NTuple::Item< long > | m_trig_timewindow |
NTuple::Item< long > | m_trig_timewindow |
NTuple::Tuple * | m_tuple1 |
NTuple::Tuple * | m_tuple1 |
NTuple::Tuple * | m_tupleRawEvt |
NTuple::Tuple * | m_tupleRawEvt |
NTuple::Array< long > | m_wire |
NTuple::Array< long > | m_wire |
NTuple::Item< double > | m_z0 |
NTuple::Item< double > | m_z0 |
NTuple::Item< double > | m_z0E |
NTuple::Item< double > | m_z0E |
NTuple::Array< double > | m_zhit |
NTuple::Array< double > | m_zhit |
short | multiTdcCount [43][288] |
long | t_eventNo |
int | t_mcTkNum |
int | t_mdcxRecTk |
int | t_nTk |
int | t_patRecTk |
double | t_recTkNum |
long | t_runNo |
double | t_t0 |
double | t_t0Stat |
double | t_t0Truth |
int | t_timing |
int | t_trkRecoTk |
|
00049 : 00050 Algorithm(name, pSvcLocator) { 00051 declareProperty("keepFirstTdc", m_keepFirstTdc= true); 00052 declareProperty("doSag", m_doSag = false); 00053 00054 declareProperty("maxMdcDigi", m_maxMdcDigi= 0); 00055 declareProperty("keepBadTdc", m_keepBadTdc= 0); 00056 declareProperty("dropHot", m_dropHot= 0); 00057 declareProperty("keepUnmatch", m_keepUnmatch= 0); 00058 declareProperty("mass", m_mass= 0.511); 00059 }
|
|
|
|
|
|
00133 { 00134 MsgStream log(msgSvc(), name()); 00135 StatusCode sc = StatusCode::SUCCESS; 00136 00137 NTuplePtr nt3(ntupleSvc(), "MdcPerformance/evt"); 00138 if ( nt3 ) { m_tupleRawEvt = nt3;} 00139 else { 00140 m_tupleRawEvt = ntupleSvc()->book ("MdcPerformance/evt", CLID_ColumnWiseTuple, "event"); 00141 if ( m_tupleRawEvt ) { 00142 sc = m_tupleRawEvt->addItem ("nTdsTk", m_t3_recTk); 00143 sc = m_tupleRawEvt->addItem ("evtNo", m_t3_evtNo); 00144 sc = m_tupleRawEvt->addItem ("t0", m_t3_t0); 00145 sc = m_tupleRawEvt->addItem ("t0Truth", m_t3_t0Truth); 00146 sc = m_tupleRawEvt->addItem ("t0Stat", m_t3_t0Stat); 00147 sc = m_tupleRawEvt->addItem ("runNo", m_t3_runNo); 00148 sc = m_tupleRawEvt->addItem ("nUnmatch", m_t3_nDigiUnmatch); 00149 sc = m_tupleRawEvt->addItem ("nDigi", m_t3_nDigi, 0, 10000); 00150 sc = m_tupleRawEvt->addIndexedItem ("layer", m_t3_nDigi, m_t3_layer); 00151 sc = m_tupleRawEvt->addIndexedItem ("wire", m_t3_nDigi, m_t3_wire); 00152 sc = m_tupleRawEvt->addIndexedItem ("gwire", m_t3_nDigi, m_t3_gwire); 00153 sc = m_tupleRawEvt->addIndexedItem ("rt", m_t3_nDigi, m_t3_rt); 00154 sc = m_tupleRawEvt->addIndexedItem ("rc", m_t3_nDigi, m_t3_rc); 00155 sc = m_tupleRawEvt->addIndexedItem ("ovfl", m_t3_nDigi, m_t3_ovfl); 00156 00157 //trigger 00158 sc = m_tupleRawEvt->addItem ("trigindex", m_trig_index, 0, 48); 00159 sc = m_tupleRawEvt->addIndexedItem("trigcond", m_trig_index, m_trig_cond); 00160 sc = m_tupleRawEvt->addIndexedItem("trigchan", m_trig_index, m_trig_chan); 00161 sc = m_tupleRawEvt->addItem ("timewindow", m_trig_timewindow); 00162 sc = m_tupleRawEvt->addItem ("timetype", m_trig_timetype); 00163 } 00164 } 00165 00166 NTuplePtr nt1(ntupleSvc(), "MdcPerformance/rec"); 00167 if ( nt1 ) { m_tupleRawEvt = nt1;} 00168 else { 00169 m_tuple1= ntupleSvc()->book("MdcPerformance/rec", CLID_ColumnWiseTuple, "event"); 00170 if ( m_tuple1) { 00171 sc = m_tuple1->addItem ("runNo", m_runNo); 00172 sc = m_tuple1->addItem ("evtNo", m_evtNo); 00173 sc = m_tuple1->addItem ("q", m_q); 00174 sc = m_tuple1->addItem ("p", m_p); 00175 sc = m_tuple1->addItem ("pt", m_pt); 00176 sc = m_tuple1->addItem ("pz", m_pz); 00177 sc = m_tuple1->addItem ("pcms", m_pcms); 00178 sc = m_tuple1->addItem ("d0", m_d0); 00179 sc = m_tuple1->addItem ("phi0", m_phi0); 00180 sc = m_tuple1->addItem ("cpa", m_cpa); 00181 sc = m_tuple1->addItem ("z0", m_z0); 00182 sc = m_tuple1->addItem ("tanl", m_tanl); 00183 sc = m_tuple1->addItem ("d0E", m_d0E); 00184 sc = m_tuple1->addItem ("phi0E", m_phi0E); 00185 sc = m_tuple1->addItem ("cpaE", m_cpaE); 00186 sc = m_tuple1->addItem ("z0E", m_z0E); 00187 sc = m_tuple1->addItem ("tanlE", m_tanlE); 00188 sc = m_tuple1->addItem ("chi2", m_chi2); 00189 sc = m_tuple1->addItem ("nDof", m_nDof); 00190 sc = m_tuple1->addItem ("nAct", m_nAct); 00191 sc = m_tuple1->addItem ("nSt", m_nSt); 00192 sc = m_tuple1->addItem ("chi2Dof",m_chi2Dof); 00193 sc = m_tuple1->addItem ("chi2Prob",m_chi2Prob); 00194 sc = m_tuple1->addItem ("fiTerm", m_fiTerm); 00195 sc = m_tuple1->addItem ("tkStat", m_tkStat); 00196 sc = m_tuple1->addItem ("nHit", m_nHit, 0, 6796); 00197 sc = m_tuple1->addIndexedItem ("layer", m_nHit, m_layer); 00198 sc = m_tuple1->addIndexedItem ("wire", m_nHit, m_wire); 00199 sc = m_tuple1->addIndexedItem ("gwire", m_nHit, m_gwire); 00200 sc = m_tuple1->addIndexedItem ("doca", m_nHit, m_doca); 00201 sc = m_tuple1->addIndexedItem ("resid", m_nHit, m_resid); 00202 sc = m_tuple1->addIndexedItem ("flaglr", m_nHit, m_flaglr); 00203 sc = m_tuple1->addIndexedItem ("driftD", m_nHit, m_driftD); 00204 sc = m_tuple1->addIndexedItem ("driftT", m_nHit, m_driftT); 00205 sc = m_tuple1->addIndexedItem ("entra", m_nHit, m_entra); 00206 sc = m_tuple1->addIndexedItem ("zhit", m_nHit, m_zhit); 00207 sc = m_tuple1->addIndexedItem ("chi2add", m_nHit, m_chi2add); 00208 sc = m_tuple1->addIndexedItem ("hitStat", m_nHit, m_hitStat); 00209 sc = m_tuple1->addIndexedItem ("Tdc", m_nHit, m_Tdc); 00210 sc = m_tuple1->addIndexedItem ("Adc", m_nHit, m_Adc); 00211 } 00212 } 00213 return StatusCode::SUCCESS; 00214 }
|
|
|
|
00110 { 00111 MsgStream log(msgSvc(), name()); 00112 StatusCode sc = StatusCode::SUCCESS; 00113 00114 fillInit(); 00115 00116 fillRawEvent(); 00117 //getNoiseThroughRawDigi(); 00118 00119 fillRecEvent(); 00120 00121 return StatusCode::SUCCESS; 00122 }
|
|
|
|
00216 { 00217 MsgStream log(msgSvc(), name()); 00218 StatusCode sc = StatusCode::SUCCESS; 00219 00220 t_patRecTk = 0; 00221 t_mdcxRecTk = 0; 00222 t_trkRecoTk = 0; 00223 // Get event header 00224 SmartDataPtr<Event::EventHeader> evtHead(eventSvc(),"/Event/EventHeader"); 00225 if (evtHead) { 00226 t_runNo = evtHead->runNumber(); 00227 t_eventNo = evtHead->eventNumber(); 00228 }else{ 00229 log << MSG::WARNING<< "Could not retrieve event header" << endreq; 00230 } 00231 std::cout<< "evtNo:"<<t_eventNo << std::endl;//yzhang debug 00232 //Get event time 00233 t_t0 = -1; 00234 t_t0Stat = -1; 00235 SmartDataPtr<RecEsTimeCol> aevtimeCol(eventSvc(),"/Event/Recon/RecEsTimeCol"); 00236 if (aevtimeCol) { 00237 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin(); 00238 for (;iter_evt!=aevtimeCol->end();iter_evt++){ 00239 t_t0 = (*iter_evt)->getTest(); 00240 t_t0Stat = (*iter_evt)->getStat(); 00241 } 00242 }else{ 00243 log << MSG::WARNING << "Could not find RecEsTimeCol" << endreq; 00244 } 00245 00246 t_timing=-10; 00247 SmartDataPtr<TrigData> trigData(eventSvc(),"/Event/Trig/TrigData"); 00248 if(trigData){ 00249 int nCond=0; 00250 log << MSG::INFO <<"Trigger conditions 0--47:"<<endreq; 00251 for(m_trig_index=0; m_trig_index < 48; m_trig_index++){ 00252 log << MSG::DEBUG << "i:" << m_trig_index 00253 << " name:" << trigData->getTrigCondName(m_trig_index) 00254 << " cond:" << trigData->getTrigCondition(m_trig_index) << endreq; 00255 m_trig_cond[m_trig_index] = trigData->getTrigCondition(m_trig_index); 00256 } 00257 00258 for(int index=0; index < 16; index++){ 00259 m_trig_chan[index] = trigData->getTrigChannel(index); 00260 } 00261 00262 m_trig_timewindow = trigData->getTimeWindow(); 00263 m_trig_timetype = trigData->getTimingType(); 00264 } 00265 return sc; 00266 }
|
|
|
|
00268 { 00269 if (!m_tupleRawEvt) return StatusCode::FAILURE; 00270 MsgStream log(msgSvc(), name()); 00271 00272 //Get MdcDigiVec 00273 uint32_t getDigiFlag = 0; 00274 getDigiFlag += m_maxMdcDigi; 00275 if(m_dropHot) getDigiFlag |= MdcRawDataProvider::b_dropHot; 00276 if(m_keepBadTdc) getDigiFlag |= MdcRawDataProvider::b_keepBadTdc; 00277 if(m_keepUnmatch) getDigiFlag |= MdcRawDataProvider::b_keepUnmatch; 00278 MdcDigiVec mdcDigiVec = m_rawDataProviderSvc->getMdcDigiVec(getDigiFlag); 00279 00280 //get digi info 00281 m_t3_nDigi = mdcDigiVec.size(); 00282 double iDigi=0; 00283 MdcDigiCol::iterator iter = mdcDigiVec.begin(); 00284 for (;iter!=mdcDigiVec.end(); iter++,iDigi++ ) { 00285 m_t3_rt[iDigi] = RawDataUtil::MdcTime((*iter)->getTimeChannel()); 00286 m_t3_rc[iDigi] = RawDataUtil::MdcCharge((*iter)->getChargeChannel()); 00287 m_t3_layer[iDigi] = MdcID::layer((*iter)->identify()); 00288 m_t3_wire[iDigi]= MdcID::wire((*iter)->identify()); 00289 m_t3_ovfl[iDigi]= (*iter)->getOverflow(); 00290 } 00291 00292 //Get MdcDigiCol 00293 SmartDataPtr<MdcDigiCol> mdcDigiCol(eventSvc(),"/Event/Digi/MdcDigiCol"); 00294 if (mdcDigiCol){ 00295 m_t3_nDigiUnmatch = mdcDigiCol->size(); 00296 } 00297 00298 //Get event info 00299 m_t3_evtNo = t_eventNo; 00300 m_t3_runNo = t_runNo; 00301 m_t3_t0 = t_t0; 00302 m_t3_t0Stat = t_t0Stat; 00303 00304 //Get track info 00305 SmartDataPtr<RecMdcTrackCol> recMdcTrackCol(eventSvc(),"/Event/Recon/RecMdcTrackCol"); 00306 if (!recMdcTrackCol){ 00307 log << MSG::WARNING<< "Could not retrieve RecMdcTrackCol" << endreq; 00308 }else{ 00309 m_t3_recTk = recMdcTrackCol->size(); 00310 } 00311 00312 m_tupleRawEvt->write(); 00313 00314 return StatusCode::SUCCESS; 00315 }
|
|
|
|
00327 { 00328 MsgStream log(msgSvc(), name()); 00329 SmartDataPtr<RecMdcTrackCol> recMdcTrackCol(eventSvc(),"/Event/Recon/RecMdcTrackCol"); 00330 if (!recMdcTrackCol){ 00331 log << MSG::WARNING<< "Could not retrieve RecMdcTrackCol" << endreq; 00332 return StatusCode::SUCCESS; 00333 } 00334 00335 RecMdcTrackCol::iterator it = recMdcTrackCol->begin(); 00336 for( ;it!=recMdcTrackCol->end(); it++ ){ 00337 fillRecTrack(*it); 00338 } 00339 00340 return StatusCode::SUCCESS; 00341 }
|
|
|
|
00343 { 00344 00345 m_runNo = t_runNo; 00346 m_evtNo = t_eventNo; 00347 CLHEP::Hep3Vector rec_mom = m_mdcCheckUtil->momentum(tk); 00348 // fill rec momentum 00349 m_p = rec_mom.mag(); 00350 m_pt = rec_mom.perp(); 00351 m_pz = rec_mom.z(); 00352 m_pcms = m_mdcCheckUtil->p_cms(tk->helix(), t_runNo, m_mass); 00353 00354 //five param and it's error matrix 00355 m_d0 = tk->helix(0); 00356 m_phi0 = tk->helix(1); 00357 m_cpa = tk->helix(2); 00358 m_z0 = tk->helix(3); 00359 m_tanl = tk->helix(4); 00360 m_d0E = tk->err(0); 00361 m_phi0E = tk->err(2); 00362 m_cpaE = tk->err(5); 00363 m_z0E = tk->err(9); 00364 m_tanlE = tk->err(14); 00365 m_q = tk->charge(); 00366 00367 //fill track 00368 m_chi2 = tk->chi2(); 00369 m_nHit = tk->getNhits(); 00370 m_nDof = tk->ndof(); 00371 m_nSt = tk->nster(); 00372 if ( m_nDof > 0 ) { 00373 m_chi2Dof = m_chi2/(float)m_nDof; 00374 } else { 00375 m_chi2Dof = 200.; 00376 } 00377 m_chi2Prob = m_mdcCheckUtil->probab(m_nDof, m_chi2); 00378 m_fiTerm = tk->getFiTerm(); 00379 m_tkStat = tk->stat(); 00380 00381 //----fill rec Hit 00382 int ihit = 0; 00383 int nAct = 0; 00384 00385 HitRefVec hl = tk->getVecHits(); 00386 HitRefVec::iterator hitIt = hl.begin(); 00387 for (;hitIt!=hl.end();++hitIt){ 00388 RecMdcHit* h = *hitIt; 00389 if ( !h ) continue; 00390 00391 //fill residual 00392 double lr = h->getFlagLR(); 00393 double driftd = -999; 00394 double doca = -999; 00395 doca = h->getDoca(); 00396 if( 0 == lr ){ driftd = h->getDriftDistLeft(); 00397 }else{ driftd = h->getDriftDistRight();} 00398 m_resid[ihit] = fabs(driftd) - fabs(doca); 00399 if( 0 == lr ){ m_resid[ihit] *= -1.0;} 00400 m_doca[ihit] = doca; 00401 m_flaglr[ihit] = lr; 00402 m_driftD[ihit] = driftd; 00403 00404 m_driftT[ihit] = h->getDriftT(); 00405 m_entra[ihit] = h->getEntra(); 00406 m_zhit[ihit] = h->getZhit(); 00407 m_chi2add[ihit] = h->getChisqAdd(); 00408 m_hitStat[ihit] = h->getStat(); 00409 m_Tdc[ihit] = h->getTdc(); 00410 m_Adc[ihit] = h->getAdc(); 00411 00412 int layer = MdcID::layer(h->getMdcId()); 00413 int wire = MdcID::wire(h->getMdcId()); 00414 m_layer[ihit] = layer; 00415 m_wire[ihit] = wire; 00416 m_gwire[ihit] = Constants::nWireBeforeLayer[layer] + wire; 00417 00418 if (h->getStat()>0) nAct++; 00419 ++ihit; 00420 } 00421 00422 m_nAct = nAct; 00423 m_tuple1->write(); 00424 00425 return StatusCode::SUCCESS; 00426 }
|
|
|
|
00125 { 00126 MsgStream log(msgSvc(), name()); 00127 log << MSG::INFO << "in finalize()" << endreq; 00128 std::cout<< "nTk == "<<t_nTk << std::endl;//yzhang debug 00129 return StatusCode::SUCCESS; 00130 }
|
|
|
|
00317 { 00318 SmartDataPtr<RecMdcTrackCol> recMdcTrackCol(eventSvc(), "/Event/Recon/RecMdcTrackCol"); 00319 if((!recMdcTrackCol)||( recMdcTrackCol->size()<=0)){ 00320 return StatusCode::SUCCESS; 00321 } 00322 00323 fillRawEvent(); 00324 return StatusCode::SUCCESS; 00325 }
|
|
|
|
00063 { 00064 MsgStream log(msgSvc(), name()); 00065 StatusCode sc; 00066 00067 m_gm = MdcDetector::instance(m_doSag); 00068 if(NULL == m_gm) return StatusCode::FAILURE; 00069 00070 t_nTk = 0; 00071 //Initailize magnetic filed 00072 sc = service ("MagneticFieldSvc",m_pIMF); 00073 if(sc!=StatusCode::SUCCESS) { 00074 log << MSG::ERROR << "Unable to open Magnetic field service"<<endreq; 00075 } 00076 Bz = m_pIMF->getReferField()*1000.; 00077 00078 // Get the Particle Properties Service 00079 IPartPropSvc* p_PartPropSvc; 00080 static const bool CREATEIFNOTTHERE(true); 00081 sc = service("PartPropSvc", p_PartPropSvc, CREATEIFNOTTHERE); 00082 if (!sc.isSuccess() || 0 == p_PartPropSvc) { 00083 log << MSG::ERROR << " Could not initialize PartPropSvc" << endreq; 00084 return sc; 00085 } 00086 m_particleTable = p_PartPropSvc->PDT(); 00087 00088 IRawDataProviderSvc* irawDataProviderSvc; 00089 sc = service ("RawDataProviderSvc", irawDataProviderSvc); 00090 m_rawDataProviderSvc = dynamic_cast<RawDataProviderSvc*> (irawDataProviderSvc); 00091 if ( sc.isFailure() ){ 00092 log << MSG::FATAL << "Could not load RawDataProviderSvc!" << endreq; 00093 return StatusCode::FAILURE; 00094 } 00095 00096 00097 sc = bookNTuple(); 00098 if (!sc.isSuccess()) { 00099 log << MSG::WARNING << " Could not book NTuple" << endreq; 00100 } 00101 00102 m_gm = MdcDetector::instance(m_doSag); 00103 00104 m_mdcCheckUtil = new MdcCheckUtil(m_doSag); 00105 00106 return StatusCode::SUCCESS; 00107 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|