Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

MdcPerformance Class Reference

#include <MdcPerformance.h>

List of all members.

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 MdcDetectorm_gm
const MdcDetectorm_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
MdcCheckUtilm_mdcCheckUtil
MdcCheckUtilm_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
IMagneticFieldSvcm_pIMF
IMagneticFieldSvcm_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
RawDataProviderSvcm_rawDataProviderSvc
RawDataProviderSvcm_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


Constructor & Destructor Documentation

MdcPerformance::MdcPerformance const std::string &  name,
ISvcLocator *  pSvcLocator
 

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   }

MdcPerformance::MdcPerformance const std::string &  name,
ISvcLocator *  pSvcLocator
 


Member Function Documentation

StatusCode MdcPerformance::bookNTuple  )  [private]
 

StatusCode MdcPerformance::bookNTuple  )  [private]
 

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 }

StatusCode MdcPerformance::execute  ) 
 

StatusCode MdcPerformance::execute  ) 
 

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 }

StatusCode MdcPerformance::fillInit  )  [private]
 

StatusCode MdcPerformance::fillInit  )  [private]
 

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 }

StatusCode MdcPerformance::fillRawEvent  )  [private]
 

StatusCode MdcPerformance::fillRawEvent  )  [private]
 

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 }

StatusCode MdcPerformance::fillRecEvent  )  [private]
 

StatusCode MdcPerformance::fillRecEvent  )  [private]
 

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 }

StatusCode MdcPerformance::fillRecTrack const RecMdcTrack tk  )  [private]
 

StatusCode MdcPerformance::fillRecTrack const RecMdcTrack tk  )  [private]
 

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 }

StatusCode MdcPerformance::finalize  ) 
 

StatusCode MdcPerformance::finalize  ) 
 

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 }

StatusCode MdcPerformance::getNoiseThroughRawDigi  )  [private]
 

StatusCode MdcPerformance::getNoiseThroughRawDigi  )  [private]
 

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 }

StatusCode MdcPerformance::initialize  ) 
 

StatusCode MdcPerformance::initialize  ) 
 

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 }


Member Data Documentation

double MdcPerformance::Bz [private]
 

int MdcPerformance::havedigi [private]
 

NTuple::Array<double> MdcPerformance::m_Adc [private]
 

NTuple::Array<double> MdcPerformance::m_Adc [private]
 

NTuple::Item<double> MdcPerformance::m_chi2 [private]
 

NTuple::Item<double> MdcPerformance::m_chi2 [private]
 

NTuple::Array<double> MdcPerformance::m_chi2add [private]
 

NTuple::Array<double> MdcPerformance::m_chi2add [private]
 

NTuple::Item<double> MdcPerformance::m_chi2Dof [private]
 

NTuple::Item<double> MdcPerformance::m_chi2Dof [private]
 

NTuple::Item<double> MdcPerformance::m_chi2Prob [private]
 

NTuple::Item<double> MdcPerformance::m_chi2Prob [private]
 

NTuple::Item<double> MdcPerformance::m_cpa [private]
 

NTuple::Item<double> MdcPerformance::m_cpa [private]
 

NTuple::Item<double> MdcPerformance::m_cpaE [private]
 

NTuple::Item<double> MdcPerformance::m_cpaE [private]
 

NTuple::Item<double> MdcPerformance::m_d0 [private]
 

NTuple::Item<double> MdcPerformance::m_d0 [private]
 

NTuple::Item<double> MdcPerformance::m_d0E [private]
 

NTuple::Item<double> MdcPerformance::m_d0E [private]
 

NTuple::Array<double> MdcPerformance::m_doca [private]
 

NTuple::Array<double> MdcPerformance::m_doca [private]
 

bool MdcPerformance::m_doSag [private]
 

NTuple::Array<double> MdcPerformance::m_driftD [private]
 

NTuple::Array<double> MdcPerformance::m_driftD [private]
 

NTuple::Array<double> MdcPerformance::m_driftT [private]
 

NTuple::Array<double> MdcPerformance::m_driftT [private]
 

bool MdcPerformance::m_dropHot [private]
 

NTuple::Array<double> MdcPerformance::m_entra [private]
 

NTuple::Array<double> MdcPerformance::m_entra [private]
 

NTuple::Item<double> MdcPerformance::m_evtNo [private]
 

NTuple::Item<double> MdcPerformance::m_evtNo [private]
 

NTuple::Item<double> MdcPerformance::m_fiTerm [private]
 

NTuple::Item<double> MdcPerformance::m_fiTerm [private]
 

NTuple::Array<double> MdcPerformance::m_flaglr [private]
 

NTuple::Array<double> MdcPerformance::m_flaglr [private]
 

const MdcDetector* MdcPerformance::m_gm [private]
 

const MdcDetector* MdcPerformance::m_gm [private]
 

NTuple::Array<double> MdcPerformance::m_gwire [private]
 

NTuple::Array<double> MdcPerformance::m_gwire [private]
 

NTuple::Array<long> MdcPerformance::m_hitStat [private]
 

NTuple::Array<long> MdcPerformance::m_hitStat [private]
 

bool MdcPerformance::m_keepBadTdc [private]
 

bool MdcPerformance::m_keepFirstTdc [private]
 

bool MdcPerformance::m_keepUnmatch [private]
 

NTuple::Array<long> MdcPerformance::m_layer [private]
 

NTuple::Array<long> MdcPerformance::m_layer [private]
 

double MdcPerformance::m_mass [private]
 

int MdcPerformance::m_maxMdcDigi [private]
 

MdcCheckUtil* MdcPerformance::m_mdcCheckUtil [private]
 

MdcCheckUtil* MdcPerformance::m_mdcCheckUtil [private]
 

NTuple::Item<long> MdcPerformance::m_nAct [private]
 

NTuple::Item<long> MdcPerformance::m_nAct [private]
 

NTuple::Item<long> MdcPerformance::m_nDof [private]
 

NTuple::Item<long> MdcPerformance::m_nDof [private]
 

NTuple::Item<long> MdcPerformance::m_nHit [private]
 

NTuple::Item<long> MdcPerformance::m_nHit [private]
 

NTuple::Item<long> MdcPerformance::m_nSt [private]
 

NTuple::Item<long> MdcPerformance::m_nSt [private]
 

NTuple::Item<double> MdcPerformance::m_p [private]
 

NTuple::Item<double> MdcPerformance::m_p [private]
 

HepPDT::ParticleDataTable* MdcPerformance::m_particleTable [private]
 

HepPDT::ParticleDataTable* MdcPerformance::m_particleTable [private]
 

NTuple::Item<double> MdcPerformance::m_pcms [private]
 

NTuple::Item<double> MdcPerformance::m_pcms [private]
 

NTuple::Item<double> MdcPerformance::m_phi0 [private]
 

NTuple::Item<double> MdcPerformance::m_phi0 [private]
 

NTuple::Item<double> MdcPerformance::m_phi0E [private]
 

NTuple::Item<double> MdcPerformance::m_phi0E [private]
 

IMagneticFieldSvc* MdcPerformance::m_pIMF [private]
 

IMagneticFieldSvc* MdcPerformance::m_pIMF [private]
 

bool MdcPerformance::m_poca [private]
 

NTuple::Item<double> MdcPerformance::m_pt [private]
 

NTuple::Item<double> MdcPerformance::m_pt [private]
 

NTuple::Item<double> MdcPerformance::m_pz [private]
 

NTuple::Item<double> MdcPerformance::m_pz [private]
 

NTuple::Item<double> MdcPerformance::m_q [private]
 

NTuple::Item<double> MdcPerformance::m_q [private]
 

bool MdcPerformance::m_rawData [private]
 

RawDataProviderSvc* MdcPerformance::m_rawDataProviderSvc [private]
 

RawDataProviderSvc* MdcPerformance::m_rawDataProviderSvc [private]
 

NTuple::Item<double> MdcPerformance::m_recTkNum [private]
 

NTuple::Item<double> MdcPerformance::m_recTkNum [private]
 

NTuple::Array<double> MdcPerformance::m_resid [private]
 

NTuple::Array<double> MdcPerformance::m_resid [private]
 

NTuple::Item<double> MdcPerformance::m_runNo [private]
 

NTuple::Item<double> MdcPerformance::m_runNo [private]
 

NTuple::Item<double> MdcPerformance::m_t3_evtNo [private]
 

NTuple::Item<double> MdcPerformance::m_t3_evtNo [private]
 

NTuple::Array<long> MdcPerformance::m_t3_gwire [private]
 

NTuple::Array<long> MdcPerformance::m_t3_gwire [private]
 

NTuple::Array<long> MdcPerformance::m_t3_layer [private]
 

NTuple::Array<long> MdcPerformance::m_t3_layer [private]
 

NTuple::Item<long> MdcPerformance::m_t3_nDigi [private]
 

NTuple::Item<long> MdcPerformance::m_t3_nDigi [private]
 

NTuple::Item<long> MdcPerformance::m_t3_nDigiUnmatch [private]
 

NTuple::Item<long> MdcPerformance::m_t3_nDigiUnmatch [private]
 

NTuple::Array<long> MdcPerformance::m_t3_ovfl [private]
 

NTuple::Array<long> MdcPerformance::m_t3_ovfl [private]
 

NTuple::Item<long> MdcPerformance::m_t3_PatRec [private]
 

NTuple::Item<long> MdcPerformance::m_t3_PatRec [private]
 

NTuple::Array<double> MdcPerformance::m_t3_rc [private]
 

NTuple::Array<double> MdcPerformance::m_t3_rc [private]
 

NTuple::Item<double> MdcPerformance::m_t3_recTk [private]
 

NTuple::Item<double> MdcPerformance::m_t3_recTk [private]
 

NTuple::Array<double> MdcPerformance::m_t3_rt [private]
 

NTuple::Array<double> MdcPerformance::m_t3_rt [private]
 

NTuple::Item<long> MdcPerformance::m_t3_runNo [private]
 

NTuple::Item<long> MdcPerformance::m_t3_runNo [private]
 

NTuple::Item<double> MdcPerformance::m_t3_t0 [private]
 

NTuple::Item<double> MdcPerformance::m_t3_t0 [private]
 

NTuple::Item<long> MdcPerformance::m_t3_t0Stat [private]
 

NTuple::Item<long> MdcPerformance::m_t3_t0Stat [private]
 

NTuple::Item<double> MdcPerformance::m_t3_t0Truth [private]
 

NTuple::Item<double> MdcPerformance::m_t3_t0Truth [private]
 

NTuple::Item<long> MdcPerformance::m_t3_TrkReco [private]
 

NTuple::Item<long> MdcPerformance::m_t3_TrkReco [private]
 

NTuple::Array<long> MdcPerformance::m_t3_wire [private]
 

NTuple::Array<long> MdcPerformance::m_t3_wire [private]
 

NTuple::Item<double> MdcPerformance::m_tanl [private]
 

NTuple::Item<double> MdcPerformance::m_tanl [private]
 

NTuple::Item<double> MdcPerformance::m_tanlE [private]
 

NTuple::Item<double> MdcPerformance::m_tanlE [private]
 

NTuple::Array<double> MdcPerformance::m_Tdc [private]
 

NTuple::Array<double> MdcPerformance::m_Tdc [private]
 

NTuple::Item<long> MdcPerformance::m_tkId [private]
 

NTuple::Item<long> MdcPerformance::m_tkId [private]
 

NTuple::Item<long> MdcPerformance::m_tkStat [private]
 

NTuple::Item<long> MdcPerformance::m_tkStat [private]
 

NTuple::Array<long> MdcPerformance::m_trig_chan [private]
 

NTuple::Array<long> MdcPerformance::m_trig_chan [private]
 

NTuple::Array<long> MdcPerformance::m_trig_cond [private]
 

NTuple::Array<long> MdcPerformance::m_trig_cond [private]
 

NTuple::Item<long> MdcPerformance::m_trig_index [private]
 

NTuple::Item<long> MdcPerformance::m_trig_index [private]
 

NTuple::Item<long> MdcPerformance::m_trig_timetype [private]
 

NTuple::Item<long> MdcPerformance::m_trig_timetype [private]
 

NTuple::Item<long> MdcPerformance::m_trig_timewindow [private]
 

NTuple::Item<long> MdcPerformance::m_trig_timewindow [private]
 

NTuple::Tuple* MdcPerformance::m_tuple1 [private]
 

NTuple::Tuple* MdcPerformance::m_tuple1 [private]
 

NTuple::Tuple* MdcPerformance::m_tupleRawEvt [private]
 

NTuple::Tuple* MdcPerformance::m_tupleRawEvt [private]
 

NTuple::Array<long> MdcPerformance::m_wire [private]
 

NTuple::Array<long> MdcPerformance::m_wire [private]
 

NTuple::Item<double> MdcPerformance::m_z0 [private]
 

NTuple::Item<double> MdcPerformance::m_z0 [private]
 

NTuple::Item<double> MdcPerformance::m_z0E [private]
 

NTuple::Item<double> MdcPerformance::m_z0E [private]
 

NTuple::Array<double> MdcPerformance::m_zhit [private]
 

NTuple::Array<double> MdcPerformance::m_zhit [private]
 

short MdcPerformance::multiTdcCount [private]
 

long MdcPerformance::t_eventNo [private]
 

int MdcPerformance::t_mcTkNum [private]
 

int MdcPerformance::t_mdcxRecTk [private]
 

int MdcPerformance::t_nTk [private]
 

int MdcPerformance::t_patRecTk [private]
 

double MdcPerformance::t_recTkNum [private]
 

long MdcPerformance::t_runNo [private]
 

double MdcPerformance::t_t0 [private]
 

double MdcPerformance::t_t0Stat [private]
 

double MdcPerformance::t_t0Truth [private]
 

int MdcPerformance::t_timing [private]
 

int MdcPerformance::t_trkRecoTk [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 16:27:28 2011 for BOSS6.5.5 by  doxygen 1.3.9.1