MdcNavigation Class Reference

#include <MdcNavigation.h>

List of all members.

Public Member Functions

 MdcNavigation (const std::string &name, ISvcLocator *pSvcLocator)
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
StatusCode beginRun ()

Private Member Functions

Hep3Vector momentum (const RecMdcTrack *trk)
StatusCode bookNTuple ()
StatusCode fillInit ()
StatusCode fillRecTrack (const RecMdcTrack *it, int mcTkNum, int recTkNum)
StatusCode fillRecHits (RecMdcHitCol &hitCol)
StatusCode fillEvent ()
StatusCode skipMcParticle (const Event::McParticle *it, int nKindSkiped, int *keepedPart)
double poca (const MdcDigi *aDigi, const HepVector helixPar, const HepSymMatrix errMat)
double probab (const int &ndof, const double &chisq)

Private Attributes

HepPDT::ParticleDataTable * m_particleTable
RawDataProviderSvcm_rawDataProviderSvc
IMagneticFieldSvcm_pIMF
bool m_poca
bool m_debug
const MdcDetectorm_gm
int havedigi [43][288]
short multiTdcCount [43][288]
bool m_hist
int m_mc
bool m_doSag
bool m_rawData
int m_maxMdcDigi
bool m_keepBadTdc
bool m_dropHot
bool m_keepUnmatch
long t_eventNo
long t_runNo
double t_t0
double t_t0Stat
double t_t0Truth
int t_nTk
int t_recTkNum
int t_mcTkNum
int t_trkRecoTk
int t_curlTk
int t_patRecTk
int t_xRecTk
int m_nMcHit
int * keepedParticles
double m_d0Cut
double m_z0Cut
double nNoise
long nDigiTk [100]
long digiLayer [100]
NTuple::Tuple * g_tupleMc
NTuple::Tuple * g_tupleRec
NTuple::Tuple * g_tupleEvt
AIDA::IHistogram1D * g_layerEff
NTuple::Item< double > m_na_p
NTuple::Item< double > m_na_pt
NTuple::Item< double > m_na_pz
NTuple::Item< double > m_na_d0
NTuple::Item< double > m_na_phi0
NTuple::Item< double > m_na_cpa
NTuple::Item< double > m_na_z0
NTuple::Item< double > m_na_tanl
NTuple::Item< double > m_na_q
NTuple::Item< double > m_na_d0E
NTuple::Item< double > m_na_phi0E
NTuple::Item< double > m_na_cpaE
NTuple::Item< double > m_na_z0E
NTuple::Item< double > m_na_tanlE
NTuple::Item< double > m_na_dP
NTuple::Item< double > m_na_dPt
NTuple::Item< double > m_na_dPz
NTuple::Item< double > m_na_dD0
NTuple::Item< double > m_na_dPhi0
NTuple::Item< double > m_na_dCpa
NTuple::Item< double > m_na_dZ0
NTuple::Item< double > m_na_dTanl
NTuple::Item< double > m_na_d0Res
NTuple::Item< double > m_na_phi0Res
NTuple::Item< double > m_na_cpaRes
NTuple::Item< double > m_na_z0Res
NTuple::Item< double > m_na_tanlRes
NTuple::Item< long > m_na_nHit
NTuple::Item< long > m_na_nDigi
NTuple::Item< double > m_na_nEvtNoise
NTuple::Item< double > m_na_nAct
NTuple::Item< double > m_na_nNoise
NTuple::Item< double > m_na_nMatch
NTuple::Item< double > m_na_nSt
NTuple::Item< double > m_na_nDof
NTuple::Item< double > m_na_fiTerm
NTuple::Item< double > m_na_chi2
NTuple::Item< double > m_na_chi2Dof
NTuple::Item< double > m_na_chi2Prob
NTuple::Item< double > m_na_mcTkNum
NTuple::Item< double > m_na_mcTkId
NTuple::Item< double > m_na_recTkNum
NTuple::Item< double > m_na_mcpid
NTuple::Item< double > m_na_mcp
NTuple::Item< double > m_na_mcpt
NTuple::Item< double > m_na_mcpx
NTuple::Item< double > m_na_mcpy
NTuple::Item< double > m_na_mcpz
NTuple::Item< double > m_na_mcd0
NTuple::Item< double > m_na_mcphi0
NTuple::Item< double > m_na_mcz0
NTuple::Item< double > m_na_mctheta
NTuple::Item< double > m_na_mccpa
NTuple::Item< double > m_na_mcq
NTuple::Item< double > m_na_mcfifin
NTuple::Item< double > m_na_mcflag
NTuple::Item< long > m_na_tkStat
NTuple::Item< long > m_na_tkId
NTuple::Item< double > m_na_evtNo
NTuple::Array< double > m_na_resid
NTuple::Array< double > m_na_driftD
NTuple::Array< long > m_na_act
NTuple::Array< double > m_na_driftT
NTuple::Array< double > m_na_doca
NTuple::Array< double > m_na_entra
NTuple::Array< double > m_na_zhit
NTuple::Array< double > m_na_chi2add
NTuple::Array< double > m_na_flaglr
NTuple::Array< double > m_na_hitStat
NTuple::Array< double > m_na_Tdc
NTuple::Array< double > m_na_Adc
NTuple::Array< double > m_na_layer
NTuple::Array< double > m_na_wire
NTuple::Array< double > m_na_gwire
NTuple::Array< double > m_na_hitTkId
NTuple::Array< double > m_na_digiTkId
NTuple::Array< double > m_na_digiLayer
NTuple::Item< double > m_na_t2mcp
NTuple::Item< double > m_na_t2mcpt
NTuple::Item< double > m_na_t2mcphi
NTuple::Item< double > m_na_t2mctheta
NTuple::Item< double > m_na_t2tanl
NTuple::Item< double > m_na_t2recTkNum
NTuple::Item< double > m_na_t2mcTkNum
NTuple::Item< double > m_na_t2p
NTuple::Item< double > m_na_t2pt
NTuple::Item< double > m_na_t3recTk
NTuple::Item< double > m_na_t3mcTk
NTuple::Item< long > m_na_t3TrkReco
NTuple::Item< long > m_na_t3Curl
NTuple::Item< long > m_na_t3PatRec
NTuple::Item< long > m_na_t3XRec
NTuple::Item< double > m_na_t3evtNo
NTuple::Item< double > m_na_t3t0
NTuple::Item< double > m_na_t3t0Truth
NTuple::Item< double > m_na_t3t0Stat
NTuple::Item< double > m_na_t3timing
NTuple::Item< long > m_na_t3runNo
NTuple::Item< long > m_na_t3nDigi
NTuple::Array< long > m_na_t3layer
NTuple::Array< long > m_na_t3wire
NTuple::Array< long > m_na_t3gwire
NTuple::Array< double > m_na_t3rt
NTuple::Array< double > m_na_t3rtNot0
NTuple::Array< double > m_na_t3rc
NTuple::Array< double > m_na_t3phi
NTuple::Array< double > m_na_t3xMid
NTuple::Array< double > m_na_t3yMid
NTuple::Array< long > m_na_t3ovfl
NTuple::Array< long > m_na_t3tNum


Detailed Description

Definition at line 23 of file MdcNavigation.h.


Constructor & Destructor Documentation

MdcNavigation::MdcNavigation ( const std::string name,
ISvcLocator *  pSvcLocator 
)

Definition at line 44 of file MdcNavigation.cxx.

References m_d0Cut, m_debug, m_doSag, m_dropHot, m_hist, m_keepBadTdc, m_keepUnmatch, m_maxMdcDigi, m_mc, m_nMcHit, m_poca, and m_z0Cut.

00044                                                                             : 
00045   Algorithm(name, pSvcLocator) {
00046     declareProperty("hist", m_hist = 0);
00047     declareProperty("nMcHit", m_nMcHit= 5);
00048     declareProperty("mc", m_mc = 1);
00049 
00050     declareProperty("maxMdcDigi",   m_maxMdcDigi= 0);
00051     declareProperty("keepBadTdc",   m_keepBadTdc= 0);
00052     declareProperty("dropHot",      m_dropHot= 0);
00053     declareProperty("keepUnmatch",  m_keepUnmatch= 0);
00054 
00055     declareProperty("poca", m_poca = false);
00056     declareProperty("doSag", m_doSag = false);
00057 
00058     declareProperty("d0Cut", m_d0Cut= 1.);
00059     declareProperty("z0Cut", m_z0Cut= 10.);
00060     declareProperty("debug", m_debug = 0);
00061 
00062   }


Member Function Documentation

StatusCode MdcNavigation::beginRun (  ) 

Definition at line 114 of file MdcNavigation.cxx.

References Bes_Common::INFO, MdcDetector::instance(), m_doSag, m_gm, and msgSvc().

00114                                   {
00115   MsgStream log(msgSvc(), name());
00116   log << MSG::INFO << "in beginRun()" << endreq;
00117 
00118   m_gm = MdcDetector::instance(m_doSag);
00119   if(NULL == m_gm) return StatusCode::FAILURE;
00120 
00121   return StatusCode::SUCCESS;
00122 }

StatusCode MdcNavigation::bookNTuple (  )  [private]

Definition at line 366 of file MdcNavigation.cxx.

References calibUtil::ERROR, g_layerEff, g_tupleEvt, g_tupleMc, histoSvc(), m_na_act, m_na_Adc, m_na_chi2, m_na_chi2add, m_na_chi2Dof, m_na_chi2Prob, m_na_cpa, m_na_cpaE, m_na_cpaRes, m_na_d0, m_na_d0E, m_na_d0Res, m_na_dCpa, m_na_dD0, m_na_digiLayer, m_na_digiTkId, m_na_doca, m_na_dP, m_na_dPhi0, m_na_dPt, m_na_dPz, m_na_driftD, m_na_driftT, m_na_dTanl, m_na_dZ0, m_na_entra, m_na_evtNo, m_na_fiTerm, m_na_flaglr, m_na_gwire, m_na_hitStat, m_na_hitTkId, m_na_layer, m_na_mcTkId, m_na_mcTkNum, m_na_nAct, m_na_nDigi, m_na_nDof, m_na_nEvtNoise, m_na_nHit, m_na_nMatch, m_na_nNoise, m_na_nSt, m_na_p, m_na_phi0, m_na_phi0E, m_na_phi0Res, m_na_pt, m_na_pz, m_na_q, m_na_recTkNum, m_na_resid, m_na_t3Curl, m_na_t3evtNo, m_na_t3gwire, m_na_t3layer, m_na_t3mcTk, m_na_t3nDigi, m_na_t3ovfl, m_na_t3PatRec, m_na_t3phi, m_na_t3rc, m_na_t3recTk, m_na_t3rt, m_na_t3rtNot0, m_na_t3runNo, m_na_t3t0, m_na_t3t0Stat, m_na_t3t0Truth, m_na_t3tNum, m_na_t3TrkReco, m_na_t3wire, m_na_t3XRec, m_na_tanl, m_na_tanlE, m_na_tanlRes, m_na_Tdc, m_na_tkStat, m_na_wire, m_na_z0, m_na_z0E, m_na_z0Res, m_na_zhit, msgSvc(), and ntupleSvc().

Referenced by initialize().

00366                                     {
00367   MsgStream log(msgSvc(), name());
00368   StatusCode sc = StatusCode::SUCCESS;
00369   g_layerEff = histoSvc()->book( "layerEff", "layerEff",43,-0.5,42.5 );
00370 
00371   NTuplePtr nt1(ntupleSvc(), "MdcNavigation/rec");
00372   if ( nt1 ) { g_tupleMc = nt1;}
00373   else {
00374     g_tupleMc = ntupleSvc()->book ("MdcNavigation/rec", CLID_ColumnWiseTuple, "rec and delta with mc truth");
00375     if ( g_tupleMc ) {
00376       sc = g_tupleMc->addItem ("tkStat",  m_na_tkStat);
00377       sc = g_tupleMc->addItem ("p",       m_na_p);
00378       sc = g_tupleMc->addItem ("pt",      m_na_pt);
00379       sc = g_tupleMc->addItem ("pz",      m_na_pz);
00380       sc = g_tupleMc->addItem ("d0",      m_na_d0);
00381       sc = g_tupleMc->addItem ("phi0",    m_na_phi0);
00382       sc = g_tupleMc->addItem ("cpa",     m_na_cpa);
00383       sc = g_tupleMc->addItem ("z0",      m_na_z0);
00384       sc = g_tupleMc->addItem ("tanl",    m_na_tanl);
00385       sc = g_tupleMc->addItem ("d0E",     m_na_d0E);
00386       sc = g_tupleMc->addItem ("phi0E",   m_na_phi0E);
00387       sc = g_tupleMc->addItem ("cpaE",    m_na_cpaE);
00388       sc = g_tupleMc->addItem ("z0E",     m_na_z0E);
00389       sc = g_tupleMc->addItem ("tanlE",   m_na_tanlE);
00390       sc = g_tupleMc->addItem ("q",       m_na_q);
00391 
00392       sc = g_tupleMc->addItem ("dP",      m_na_dP);
00393       sc = g_tupleMc->addItem ("dPt",     m_na_dPt);
00394       sc = g_tupleMc->addItem ("dPz",     m_na_dPz);
00395       sc = g_tupleMc->addItem ("dD0",     m_na_dD0);
00396       sc = g_tupleMc->addItem ("dPhi0",   m_na_dPhi0);
00397       sc = g_tupleMc->addItem ("dCpa",    m_na_dCpa);
00398       sc = g_tupleMc->addItem ("dZ0",     m_na_dZ0);
00399       sc = g_tupleMc->addItem ("dTanl",   m_na_dTanl);
00400 
00401       sc = g_tupleMc->addItem ("d0Res",   m_na_d0Res);
00402       sc = g_tupleMc->addItem ("phiRes",  m_na_phi0Res);
00403       sc = g_tupleMc->addItem ("z0Res",   m_na_z0Res);
00404       sc = g_tupleMc->addItem ("tanlRes", m_na_tanlRes);
00405       sc = g_tupleMc->addItem ("cpaRes",  m_na_cpaRes);
00406 
00407       sc = g_tupleMc->addItem ("recTkNum",m_na_recTkNum);
00408       sc = g_tupleMc->addItem ("mcTkId",  m_na_mcTkId);
00409       sc = g_tupleMc->addItem ("mcTkNum", m_na_mcTkNum);
00410       sc = g_tupleMc->addItem ("evtNo",   m_na_evtNo);
00411       sc = g_tupleMc->addItem ("nSt",     m_na_nSt);
00412       sc = g_tupleMc->addItem ("nDof",    m_na_nDof);
00413       sc = g_tupleMc->addItem ("chi2",    m_na_chi2);
00414       sc = g_tupleMc->addItem ("chi2Dof", m_na_chi2Dof);
00415       sc = g_tupleMc->addItem ("chi2Porb",m_na_chi2Prob);
00416       sc = g_tupleMc->addItem ("fiTerm",  m_na_fiTerm);
00417       sc = g_tupleMc->addItem ("nMatch",  m_na_nMatch);
00418       sc = g_tupleMc->addItem ("nAct",    m_na_nAct);
00419       sc = g_tupleMc->addItem ("nTkNoise",m_na_nNoise);
00420       sc = g_tupleMc->addItem ("nEvtNoise",m_na_nEvtNoise);
00421       sc = g_tupleMc->addItem ("nHit",    m_na_nHit, 0, 10000);
00422       sc = g_tupleMc->addItem ("nDigi",   m_na_nDigi, 0, 10000);
00423       sc = g_tupleMc->addIndexedItem ("resid",    m_na_nHit, m_na_resid);
00424       sc = g_tupleMc->addIndexedItem ("driftD",   m_na_nHit, m_na_driftD);
00425       sc = g_tupleMc->addIndexedItem ("driftT",   m_na_nHit, m_na_driftT);
00426       sc = g_tupleMc->addIndexedItem ("doca",     m_na_nHit, m_na_doca);
00427       sc = g_tupleMc->addIndexedItem ("entra",    m_na_nHit, m_na_entra);
00428       sc = g_tupleMc->addIndexedItem ("zhit",     m_na_nHit, m_na_zhit);
00429       sc = g_tupleMc->addIndexedItem ("chi2add",  m_na_nHit, m_na_chi2add);
00430       sc = g_tupleMc->addIndexedItem ("flaglr",   m_na_nHit, m_na_flaglr);
00431       sc = g_tupleMc->addIndexedItem ("hitStat",  m_na_nHit, m_na_hitStat);
00432       sc = g_tupleMc->addIndexedItem ("tdc",      m_na_nHit, m_na_Tdc);
00433       sc = g_tupleMc->addIndexedItem ("adc",      m_na_nHit, m_na_Adc);
00434       sc = g_tupleMc->addIndexedItem ("act",      m_na_nHit, m_na_act);
00435       sc = g_tupleMc->addIndexedItem ("layer",    m_na_nHit, m_na_layer);
00436       sc = g_tupleMc->addIndexedItem ("wire",     m_na_nHit, m_na_wire);
00437       sc = g_tupleMc->addIndexedItem ("gwire",    m_na_nHit, m_na_gwire);
00438       sc = g_tupleMc->addIndexedItem ("hitTkId",  m_na_nHit, m_na_hitTkId);
00439       sc = g_tupleMc->addIndexedItem ("digiTkId", m_na_nDigi, m_na_digiTkId);
00440       sc = g_tupleMc->addIndexedItem ("mclayer",  m_na_nDigi, m_na_digiLayer);
00441     } else {   
00442       log << MSG::ERROR << "    Cannot book N-tuple:" << long(g_tupleMc) << endmsg;
00443       return StatusCode::FAILURE;
00444     }
00445   }//end book of g_tupleMc
00446   NTuplePtr nt3(ntupleSvc(), "MdcNavigation/evt");
00447   if ( nt3 ) { g_tupleEvt = nt3;}
00448   else {
00449     g_tupleEvt = ntupleSvc()->book ("MdcNavigation/evt", CLID_ColumnWiseTuple, "event");
00450     if ( g_tupleEvt ) {
00451       sc = g_tupleEvt->addItem ("nTdsTk",       m_na_t3recTk);
00452       sc = g_tupleEvt->addItem ("trkReco",      m_na_t3TrkReco);
00453       sc = g_tupleEvt->addItem ("curlFinder",   m_na_t3Curl);
00454       sc = g_tupleEvt->addItem ("patRec",       m_na_t3PatRec);
00455       sc = g_tupleEvt->addItem ("xRec",         m_na_t3XRec);
00456       sc = g_tupleEvt->addItem ("mcTkNum",      m_na_t3mcTk);
00457       sc = g_tupleEvt->addItem ("evtNo",        m_na_t3evtNo);
00458       sc = g_tupleEvt->addItem ("t0",           m_na_t3t0);
00459       sc = g_tupleEvt->addItem ("t0Truth",      m_na_t3t0Truth);
00460       sc = g_tupleEvt->addItem ("t0Stat",       m_na_t3t0Stat);
00461       sc = g_tupleEvt->addItem ("runNo",        m_na_t3runNo);
00462       sc = g_tupleEvt->addItem ("nDigi",        m_na_t3nDigi, 0, 10000);
00463       sc = g_tupleEvt->addIndexedItem ("layer", m_na_t3nDigi, m_na_t3layer);
00464       sc = g_tupleEvt->addIndexedItem ("wire",  m_na_t3nDigi, m_na_t3wire);
00465       sc = g_tupleEvt->addIndexedItem ("gwire", m_na_t3nDigi, m_na_t3gwire);
00466       sc = g_tupleEvt->addIndexedItem ("rt",    m_na_t3nDigi, m_na_t3rt);
00467       sc = g_tupleEvt->addIndexedItem ("rtNot0",m_na_t3nDigi, m_na_t3rtNot0);
00468       sc = g_tupleEvt->addIndexedItem ("rc",    m_na_t3nDigi, m_na_t3rc);
00469       sc = g_tupleEvt->addIndexedItem ("phi",   m_na_t3nDigi, m_na_t3phi);
00470       sc = g_tupleEvt->addIndexedItem ("ovfl",  m_na_t3nDigi, m_na_t3ovfl);
00471       sc = g_tupleEvt->addIndexedItem ("tNum",  m_na_t3nDigi, m_na_t3tNum);
00472     }
00473   }
00474 }

StatusCode MdcNavigation::execute (  ) 

Definition at line 126 of file MdcNavigation.cxx.

References fillEvent(), fillInit(), fillRecHits(), fillRecTrack(), Bes_Common::INFO, m_hist, m_mc, m_rawData, msgSvc(), t_mcTkNum, t_nTk, t_recTkNum, and Bes_Common::WARNING.

00126                                   {
00127   setFilterPassed(false);
00128   MsgStream log(msgSvc(), name());
00129   StatusCode sc = StatusCode::SUCCESS;
00130 
00131   // Get EventNavigator from the TDS
00132   SmartDataPtr<EventNavigator> navigator (eventSvc(),"/Event/Navigator");
00133   if( ! navigator ) {
00134     log << MSG::WARNING<< " Unable to retrieve EventNavigator" << endreq;
00135     m_rawData = true;
00136   }
00137   SmartDataPtr<RecMdcTrackCol> recMdcTrackCol(eventSvc(), "/Event/Recon/RecMdcTrackCol");
00138   SmartDataPtr<RecMdcHitCol> recMdcHitCol(eventSvc(), "/Event/Recon/RecMdcHitCol");
00139 
00140   // get eventNo, t0 and MdcDigi
00141   if(m_hist){
00142     sc = fillInit();
00143     if ( sc!=StatusCode::SUCCESS ) {
00144       return StatusCode::FAILURE;
00145     }
00146   }
00147   if (m_mc){
00148     // Get McParticleCol 
00149     SmartDataPtr<Event::McParticleCol> mcParticles(eventSvc(),"/Event/MC/McParticleCol");
00150     SmartDataPtr<Event::MdcMcHitCol> mcHit(eventSvc(),"/Event/MC/MdcMcHitCol");
00151     if( ! mcParticles ) {
00152       log << MSG::WARNING<< " Unable to retrieve McParticleCol" << endreq;
00153     }else{
00154       // For each McParticle ...       
00155       t_mcTkNum = 0;
00156       McParticleCol::iterator it= mcParticles->begin();
00157       log <<MSG::INFO << "mcParticles size = "<<mcParticles->size() << endreq;//yzhang debug
00158       for(; it!= mcParticles->end(); it++ ) {     
00159         //int tkId = (*it)->trackIndex();
00160         t_mcTkNum++;
00161       } 
00162     }
00163   }
00164   t_mcTkNum = 0;
00165   t_recTkNum = 0;
00166   //for each rec track
00167 
00168   if (!recMdcTrackCol){
00169     log << MSG::WARNING<< " Unable to retrieve recMdcTrackCol" << endreq;
00170     return StatusCode::SUCCESS;
00171   }
00172   t_recTkNum = recMdcTrackCol->size();
00173 
00174   //=============loop over tracks==============
00175   RecMdcTrackCol::iterator it = recMdcTrackCol->begin(); 
00176   for(;it != recMdcTrackCol->end(); it++ ) {   
00177     if ( m_mc && navigator ) {
00178       McParticleVector particles = navigator->getMcParticles(*it);
00179       t_mcTkNum = particles.size();
00180       RecMdcTrackVector tracks = navigator->getMdcTracks(particles[0]);
00181       // for FIRST parent particle
00182       if ( sc!=StatusCode::SUCCESS ) return StatusCode::FAILURE;
00183     }
00184     sc = fillRecTrack(*it, t_mcTkNum, t_recTkNum);
00185     t_nTk++;
00186     if ( sc!=StatusCode::SUCCESS ) return StatusCode::FAILURE;
00187   }//end of loop over tracks
00188 
00189   //=============loop over hits==============
00190   fillRecHits(*recMdcHitCol);
00191 
00192 
00193   if(m_hist){fillEvent();}
00194 
00195   return StatusCode::SUCCESS;
00196 }

StatusCode MdcNavigation::fillEvent (  )  [private]

Definition at line 608 of file MdcNavigation.cxx.

References MdcRawDataProvider::b_dropHot, MdcRawDataProvider::b_keepBadTdc, MdcRawDataProvider::b_keepUnmatch, g_tupleEvt, RawDataProviderSvc::getMdcDigiVec(), iter(), MdcID::layer(), m_dropHot, m_keepBadTdc, m_keepUnmatch, m_maxMdcDigi, m_na_t3Curl, m_na_t3evtNo, m_na_t3gwire, m_na_t3layer, m_na_t3mcTk, m_na_t3nDigi, m_na_t3ovfl, m_na_t3PatRec, m_na_t3rc, m_na_t3recTk, m_na_t3rt, m_na_t3rtNot0, m_na_t3runNo, m_na_t3t0, m_na_t3t0Stat, m_na_t3tNum, m_na_t3TrkReco, m_na_t3wire, m_na_t3XRec, m_rawDataProviderSvc, RawDataUtil::MdcTime(), Constants::nWireBeforeLayer, t(), t_curlTk, t_eventNo, t_mcTkNum, t_patRecTk, t_recTkNum, t_runNo, t_t0, t_t0Stat, t_trkRecoTk, t_xRecTk, w, and MdcID::wire().

Referenced by execute().

00608                                    {
00609   if (!g_tupleEvt) return StatusCode::FAILURE;
00610   uint32_t getDigiFlag = 0;
00611   getDigiFlag += m_maxMdcDigi;
00612   if(m_dropHot)     getDigiFlag |= MdcRawDataProvider::b_dropHot;
00613   if(m_keepBadTdc)  getDigiFlag |= MdcRawDataProvider::b_keepBadTdc;
00614   if(m_keepUnmatch) getDigiFlag |= MdcRawDataProvider::b_keepUnmatch;
00615   MdcDigiVec mdcDigiVec = m_rawDataProviderSvc->getMdcDigiVec(getDigiFlag);
00616 
00617   MdcDigiCol::iterator iter = mdcDigiVec.begin();
00618   int t_i =0;
00619   for (;iter != mdcDigiVec.end(); iter++,++t_i ) {
00620     double t = RawDataUtil::MdcTime((*iter)->getTimeChannel());
00621     double c = (*iter)->getChargeChannel();
00622     int l = MdcID::layer((*iter)->identify());
00623     int w = MdcID::wire((*iter)->identify());
00624     if(g_tupleEvt){
00625       m_na_t3layer[t_i] = l;
00626       m_na_t3wire[t_i] = w;
00627       m_na_t3gwire[t_i] = Constants::nWireBeforeLayer[l] + w;
00628       m_na_t3rt[t_i] = t;
00629       m_na_t3rtNot0[t_i] = t - t_t0;
00630       m_na_t3rc[t_i] = c;
00631       const MdcDigi* digi =const_cast<const MdcDigi*> (*iter);
00632       m_na_t3ovfl[t_i] = (*iter)->getOverflow();
00633       m_na_t3tNum[t_i] = ((*iter)->getOverflow()&0xF0)>>4;
00634     }
00635   }
00636   if(g_tupleEvt) m_na_t3nDigi = t_i;
00637 
00638   m_na_t3TrkReco = t_trkRecoTk;
00639   m_na_t3Curl = t_curlTk;
00640   m_na_t3PatRec= t_patRecTk;
00641   m_na_t3XRec= t_xRecTk;
00642 
00643   m_na_t3t0 = t_t0;
00644   m_na_t3t0Stat = t_t0Stat;
00645 
00646   m_na_t3recTk = t_recTkNum;
00647   m_na_t3mcTk = t_mcTkNum;
00648 
00649   m_na_t3evtNo = t_eventNo;
00650   m_na_t3runNo = t_runNo;
00651   g_tupleEvt->write();
00652 
00653   return StatusCode::SUCCESS;
00654 }

StatusCode MdcNavigation::fillInit (  )  [private]

Definition at line 476 of file MdcNavigation.cxx.

References MdcRawDataProvider::b_dropHot, MdcRawDataProvider::b_keepBadTdc, MdcRawDataProvider::b_keepUnmatch, digiLayer, g_tupleMc, RawDataProviderSvc::getMdcDigiVec(), havedigi, iter(), MdcID::layer(), m_debug, m_dropHot, m_keepBadTdc, m_keepUnmatch, m_maxMdcDigi, m_rawData, m_rawDataProviderSvc, RawDataUtil::MdcTime(), msgSvc(), multiTdcCount, nDigiTk, nNoise, t(), t_curlTk, t_eventNo, t_patRecTk, t_runNo, t_t0, t_t0Stat, t_trkRecoTk, t_xRecTk, w, Bes_Common::WARNING, and MdcID::wire().

Referenced by execute().

00476                                   {
00477   MsgStream log(msgSvc(), name());
00478   StatusCode sc = StatusCode::SUCCESS;
00479 
00480   //int mcTkId = m_na_mcTkId;
00481   //m_na_nDigi = nDigiTk[mcTkId];//fill # of hit in this mc track
00482   t_trkRecoTk = 0;
00483   t_curlTk = 0;
00484   t_patRecTk = 0;
00485   t_xRecTk = 0;
00486   //-------------Get event header
00487   SmartDataPtr<Event::EventHeader> evtHead(eventSvc(),"/Event/EventHeader");
00488   if (evtHead) {
00489     t_runNo = evtHead->runNumber();
00490     t_eventNo = evtHead->eventNumber();
00491   }else{
00492     log << MSG::WARNING<< "Could not retrieve event header" << endreq;
00493     return StatusCode::FAILURE;
00494   }
00495   if(m_debug) std::cout<< "evtNo:"<<t_eventNo << std::endl;
00496 
00497   //------------Get event time
00498   t_t0 = -1;
00499   t_t0Stat = -1;
00500   SmartDataPtr<RecEsTimeCol> aevtimeCol(eventSvc(),"/Event/Recon/RecEsTimeCol");
00501 
00502   if (!aevtimeCol || aevtimeCol->size()==0) {
00503     log << MSG::WARNING << "Could not find RecEsTimeCol" << endreq;
00504   }else{
00505     RecEsTimeCol::iterator iter_evt = aevtimeCol->begin();
00506     t_t0 = (*iter_evt)->getTest();
00507     t_t0Stat = (*iter_evt)->getStat();
00508   } 
00509 
00510   //------------- Get McDigi collection
00511   uint32_t getDigiFlag = 0;
00512   getDigiFlag += m_maxMdcDigi;
00513   if(m_dropHot)     getDigiFlag |= MdcRawDataProvider::b_dropHot;
00514   if(m_keepBadTdc)  getDigiFlag |= MdcRawDataProvider::b_keepBadTdc;
00515   if(m_keepUnmatch) getDigiFlag |= MdcRawDataProvider::b_keepUnmatch;
00516   MdcDigiVec mdcDigiVec = m_rawDataProviderSvc->getMdcDigiVec(getDigiFlag);
00517   if ((mdcDigiVec.size()==0)) {
00518     log << MSG::WARNING << t_eventNo <<"No digi or could not find event in MdcDigiVec" << endreq;
00519   } 
00520 
00521   for (int ii=0;ii<43;ii++){ 
00522     for (int jj=0;jj<288;jj++){
00523       havedigi[ii][jj]= -99;//no hit or noise 
00524     } 
00525   }
00526 
00527   for(int imc=0;imc<100;imc++){
00528     nDigiTk[imc]=0;
00529     digiLayer[imc]=0;
00530   }
00531 
00532   for(int ii=0;ii<43;ii++) for(int jj=0;jj<288;jj++) multiTdcCount[ii][jj]=0;
00533   MdcDigiCol::iterator iter = mdcDigiVec.begin();
00534   for (;iter != mdcDigiVec.end(); iter++ ) {
00535     double t = RawDataUtil::MdcTime((*iter)->getTimeChannel());
00536     double c = (*iter)->getChargeChannel();
00537     int l = MdcID::layer((*iter)->identify());
00538     int w = MdcID::wire((*iter)->identify());
00539     multiTdcCount[l][w]++;
00540   }
00541 
00542   int t_i=0;
00543   iter = mdcDigiVec.begin();
00544   for (;iter != mdcDigiVec.end(); iter++,++t_i ) {
00545     double t = RawDataUtil::MdcTime((*iter)->getTimeChannel());
00546     double c = (*iter)->getChargeChannel();
00547     int l = MdcID::layer((*iter)->identify());
00548     int w = MdcID::wire((*iter)->identify());
00549     if(!m_rawData){
00550       int tkid = (*iter)->getTrackIndex();
00551       havedigi[l][w]= tkid;
00552       if (g_tupleMc){
00553         //m_na_digiTkId[t_i]  = tkid;
00554       }
00555       if(tkid>-1){
00556         ++nDigiTk[tkid];
00557       }else{
00558         nNoise++;
00559       }
00560     }
00561     //if (g_tupleMc) m_na_digiLayer[t_i] = l;
00562   }
00563   return sc; 
00564 }

StatusCode MdcNavigation::fillRecHits ( RecMdcHitCol hitCol  )  [private]

Definition at line 696 of file MdcNavigation.cxx.

References MdcID::layer(), m_na_act, m_na_Adc, m_na_chi2add, m_na_doca, m_na_driftD, m_na_driftT, m_na_entra, m_na_flaglr, m_na_gwire, m_na_hitStat, m_na_layer, m_na_nHit, m_na_resid, m_na_Tdc, m_na_wire, m_na_zhit, Constants::nWireBeforeLayer, and MdcID::wire().

Referenced by execute().

00696                                                          {
00697   int ihit=0;
00698   RecMdcHitCol::iterator itHit = hitCol.begin(); 
00699   for(;itHit != hitCol.end(); itHit++ ) {   
00700     RecMdcHit* h = *itHit;
00701     if ( !h ) continue;
00702     double m_na_lr = h->getFlagLR();
00703     double ddrift = -999;
00704     double ddoca = -999;
00705     ddoca = h->getDoca();
00706     if( 0 == m_na_lr ){ ddrift = h->getDriftDistLeft();
00707     }else{ ddrift = h->getDriftDistRight();}
00708     m_na_resid[ihit] = fabs(ddrift) - fabs(ddoca);
00709     if( 0 == m_na_lr ){ m_na_resid[ihit] *= -1.0;}
00710     m_na_driftD[ihit] = ddrift;
00711     m_na_driftT[ihit] = h->getDriftT();
00712     m_na_doca[ihit] = ddoca;
00713     m_na_entra[ihit] = h->getEntra();
00714     m_na_zhit[ihit] = h->getZhit();
00715     m_na_chi2add[ihit] = h->getChisqAdd();
00716     m_na_flaglr[ihit] = h->getFlagLR();
00717     m_na_hitStat[ihit] = h->getStat();
00718     m_na_Tdc[ihit] = h->getTdc();
00719     m_na_Adc[ihit] = h->getAdc();
00720     m_na_act[ihit] = h->getStat();
00721     int tlayer = MdcID::layer(h->getMdcId());
00722     int twire = MdcID::wire(h->getMdcId());
00723     m_na_layer[ihit] = tlayer;
00724     m_na_wire[ihit] = twire;
00725     m_na_gwire[ihit] = Constants::nWireBeforeLayer[tlayer] + twire;
00726     ++ihit;
00727   }//end of loop over hits
00728   m_na_nHit = ihit;
00729   return StatusCode::SUCCESS;
00730 }

StatusCode MdcNavigation::fillRecTrack ( const RecMdcTrack it,
int  mcTkNum,
int  recTkNum 
) [private]

Definition at line 227 of file MdcNavigation.cxx.

References MdcRawDataProvider::b_dropHot, MdcRawDataProvider::b_keepBadTdc, MdcRawDataProvider::b_keepUnmatch, DstMdcTrack::charge(), DstMdcTrack::chi2(), DstMdcTrack::err(), g_tupleMc, RecMdcTrack::getFiTerm(), RawDataProviderSvc::getMdcDigiVec(), RecMdcTrack::getVecHits(), havedigi, DstMdcTrack::helix(), iter(), MdcID::layer(), m_d0Cut, m_dropHot, m_keepBadTdc, m_keepUnmatch, m_maxMdcDigi, m_na_chi2, m_na_chi2Dof, m_na_chi2Prob, m_na_cpa, m_na_cpaE, m_na_d0, m_na_d0E, m_na_fiTerm, m_na_nAct, m_na_nDof, m_na_nEvtNoise, m_na_nMatch, m_na_nNoise, m_na_nSt, m_na_p, m_na_phi0, m_na_phi0E, m_na_pt, m_na_pz, m_na_q, m_na_recTkNum, m_na_tanl, m_na_tanlE, m_na_tkStat, m_na_z0, m_na_z0E, m_poca, m_rawDataProviderSvc, m_z0Cut, momentum(), DstMdcTrack::ndof(), nNoise, DstMdcTrack::nster(), poca(), probab(), DstMdcTrack::stat(), t_curlTk, t_eventNo, t_patRecTk, t_trkRecoTk, t_xRecTk, and MdcID::wire().

Referenced by execute().

00227                                                                                       {
00228 
00229   //int mcTkId = m_na_mcTkId;
00230   //m_na_nDigi = nDigiTk[mcTkId];//fill # of hit in this mc track
00231   m_na_nEvtNoise = nNoise;//fill # of noise hit in this event
00232   //m_na_mcTkNum = mcTkNum;// how many mc track are this track include
00233   m_na_recTkNum = recTkNum;//how many rec track are this track's mc particle include
00234   CLHEP::Hep3Vector rec_mom = momentum(tk);
00235   // fill rec momentum
00236   m_na_p  = rec_mom.mag();
00237   m_na_pt = rec_mom.perp();
00238   m_na_pz = rec_mom.z();
00239   //cout << "MSG::INFO Retrieved McParticles for for RecMdcTrack # " << it->getId()
00240   //    << " of reconstructed momentum " << rec_mom << " GeV/c" << endl;
00241   //five param and it's error matrix
00242   m_na_d0    = tk->helix(0);
00243   m_na_phi0  = tk->helix(1);
00244   m_na_cpa   = tk->helix(2);
00245   m_na_z0    = tk->helix(3);
00246   m_na_tanl  = tk->helix(4);
00247 
00248   if( m_na_d0 > m_d0Cut ) {
00249     std::cout<<__FILE__<<" "<<__LINE__<<" evtNo: "<<t_eventNo<<" d0:"<<std::setw(5)<<m_na_d0<<">"<<m_d0Cut<<  std::endl;
00250     setFilterPassed(true);
00251   }
00252   if( m_na_z0 > m_z0Cut ) {
00253     std::cout<<__FILE__<<" "<<__LINE__<<" evtNo: "<<t_eventNo<<" z0:"<<std::setw(5)<<m_na_z0<<">"<<m_z0Cut<<  std::endl;
00254     setFilterPassed(true);
00255   }
00256   //const CLHEP::HepSymMatrix tkErrM = tk->err();
00257   m_na_d0E   = tk->err(0);
00258   m_na_phi0E = tk->err(2);
00259   m_na_cpaE  = tk->err(5);
00260   m_na_z0E   = tk->err(9);
00261   m_na_tanlE = tk->err(14);
00262   m_na_q = tk->charge();
00263   //fill track about
00264   m_na_chi2   = tk->chi2();
00265   //m_na_nHit   = tk->getNhits();
00266   m_na_nDof   = tk->ndof();
00267   if ( m_na_nDof > 0 ) {
00268     m_na_chi2Dof = m_na_chi2/(float)m_na_nDof;
00269   } else {
00270     m_na_chi2Dof = 200.;
00271   }
00272   m_na_chi2Prob = probab(m_na_nDof, m_na_chi2);
00273   m_na_nSt    = tk->nster();
00274   m_na_fiTerm = tk->getFiTerm(); 
00275 
00276   if (tk->stat()==0){
00277     t_trkRecoTk++;
00278   }else if(tk->stat()==1){
00279     t_curlTk++;
00280   }else if(tk->stat()==2){
00281     t_patRecTk++;
00282   }else if(tk->stat()==3){
00283     t_xRecTk++;
00284   }
00285   m_na_tkStat = tk->stat();
00286 
00288   //int ihit = 0;
00289   //int layerEff[43];
00290   //for (int ii=0;ii<43;ii++){
00291   //  layerEff[ii]=0;
00292   //}
00293   int noiseHit=0;
00294   int matchHit=0;
00295   int nAct = 0;
00296   HitRefVec hl = tk->getVecHits();
00297   HitRefVec::iterator hitIt = hl.begin();
00298   for (;hitIt!=hl.end();++hitIt){
00299     RecMdcHit* h = *hitIt;
00300     if ( !h ) continue;
00301     if (h->getStat()!=0) nAct++;
00302     //  //fill residual
00303     //  double m_na_lr = h->getFlagLR();
00304     //  double ddrift = -999;double ddoca = -999;
00305     //  ddoca = h->getDoca();
00306     //  if( 0 == m_na_lr ){ ddrift = h->getDriftDistLeft();
00307     //  }else{ ddrift = h->getDriftDistRight();}
00308     //  m_na_resid[ihit] = fabs(ddrift) - fabs(ddoca);
00309     //  if( 0 == m_na_lr ){   m_na_resid[ihit] *= -1.0;}
00310     //  m_na_driftD[ihit] = ddrift;
00311     //  m_na_driftT[ihit] = h->getDriftT();
00312     //  m_na_doca[ihit] = ddoca;
00313     //  m_na_entra[ihit] = h->getEntra();
00314     //  m_na_zhit[ihit] = h->getZhit();
00315     //  m_na_chi2add[ihit] = h->getChisqAdd();
00316     //  m_na_flaglr[ihit] = h->getFlagLR();
00317     //  m_na_hitStat[ihit] = h->getStat();
00318     //  m_na_Tdc[ihit] = h->getTdc();
00319     //  m_na_Adc[ihit] = h->getAdc();
00320     //  m_na_act[ihit] = h->getStat();
00321 
00322 
00323     int tlayer = MdcID::layer(h->getMdcId());
00324     int twire = MdcID::wire(h->getMdcId());
00325     //  m_na_layer[ihit] = tlayer;
00326     //  m_na_wire[ihit] = twire;
00327     //  m_na_gwire[ihit] = Constants::nWireBeforeLayer[tlayer] + twire;
00328     //  if (0==layerEff[tlayer]){
00329     //    layerEff[tlayer]=1;
00330     //    g_layerEff->fill(tlayer);
00331     //  }
00332 
00333     if(havedigi[tlayer][twire]<0){ 
00334       ++noiseHit;
00335     }
00336     //else{
00337     //if(havedigi[tlayer][twire] == mcTkId) ++matchHit;
00338     //    m_na_hitTkId[ihit] = havedigi[tlayer][twire]; 
00339     //}
00340     //  ++ihit;
00341   }
00342   m_na_nAct = nAct;
00343   m_na_nNoise = noiseHit; 
00344   m_na_nMatch = matchHit;
00345   g_tupleMc->write();
00346   //------------------------------------------
00347   // fill Rec Track
00348   //------------------------------------------
00349 
00350   if (m_poca){
00351     uint32_t getDigiFlag = 0;
00352     getDigiFlag += m_maxMdcDigi;
00353     if(m_dropHot)     getDigiFlag |= MdcRawDataProvider::b_dropHot;
00354     if(m_keepBadTdc)  getDigiFlag |= MdcRawDataProvider::b_keepBadTdc;
00355     if(m_keepUnmatch) getDigiFlag |= MdcRawDataProvider::b_keepUnmatch;
00356     MdcDigiVec mdcDigiVec = m_rawDataProviderSvc->getMdcDigiVec(getDigiFlag);
00357     MdcDigiCol::iterator iter = mdcDigiVec.begin();
00358     for (;iter != mdcDigiVec.end(); iter++) {
00359       poca((*iter),tk->helix(),tk->err());
00360     }
00361   }
00362 
00363   return StatusCode::SUCCESS;
00364 }

StatusCode MdcNavigation::finalize (  ) 

Definition at line 200 of file MdcNavigation.cxx.

References Bes_Common::INFO, keepedParticles, msgSvc(), and t_nTk.

00200                                    {
00201   MsgStream log(msgSvc(), name());
00202   log << MSG::INFO << "in finalize()" << endreq;
00203   std::cout<< "nTk ==  "<<t_nTk << std::endl;//yzhang debug
00204   delete keepedParticles; //FIXME
00205   return StatusCode::SUCCESS;
00206 }

StatusCode MdcNavigation::initialize (  ) 

Definition at line 67 of file MdcNavigation.cxx.

References bookNTuple(), calibUtil::ERROR, Bes_Common::FATAL, keepedParticles, m_hist, m_particleTable, m_pIMF, m_rawDataProviderSvc, msgSvc(), t_nTk, and Bes_Common::WARNING.

00067                                     {
00068   MsgStream log(msgSvc(), name());
00069   StatusCode sc = StatusCode::SUCCESS;
00070 
00071   t_nTk = 0;
00072   //Initailize magnetic filed 
00073   sc = service ("MagneticFieldSvc",m_pIMF);
00074   if(sc!=StatusCode::SUCCESS) {
00075     log << MSG::ERROR << "Unable to open Magnetic field service"<<endreq;
00076     return StatusCode::FAILURE;
00077   }
00078 
00079 
00080   // Get the Particle Properties Service
00081   IPartPropSvc* p_PartPropSvc;
00082   static const bool CREATEIFNOTTHERE(true);
00083   sc = service("PartPropSvc", p_PartPropSvc, CREATEIFNOTTHERE);
00084   if (!sc.isSuccess() || 0 == p_PartPropSvc) {
00085     log << MSG::ERROR << " Could not initialize PartPropSvc" << endreq;
00086     return sc;
00087   }
00088 
00089   m_particleTable = p_PartPropSvc->PDT();
00090 
00091   IRawDataProviderSvc* irawDataProviderSvc;
00092   sc = service ("RawDataProviderSvc", irawDataProviderSvc);
00093   m_rawDataProviderSvc = dynamic_cast<RawDataProviderSvc*> (irawDataProviderSvc);
00094   if ( sc.isFailure() ){
00095     log << MSG::FATAL << "Could not load RawDataProviderSvc!" << endreq;
00096     return StatusCode::FAILURE;
00097   }
00098 
00099 
00100   if (m_hist){ 
00101     sc = bookNTuple();
00102     if (!sc.isSuccess()) { 
00103       log << MSG::WARNING << " Could not book NTuple" << endreq; 
00104       m_hist = 0;
00105     }
00106   }
00107 
00108   keepedParticles = new int(211);
00109 
00110 
00111   return StatusCode::SUCCESS;
00112 }

Hep3Vector MdcNavigation::momentum ( const RecMdcTrack trk  )  [private]

Definition at line 209 of file MdcNavigation.cxx.

References cos(), DstMdcTrack::helix(), and sin().

Referenced by fillRecTrack().

00209                                                          {
00210   // double dr   = trk->helix(0);
00211   double fi0  = trk->helix(1);
00212   double cpa  = trk->helix(2);
00213   double tanl = trk->helix(4);
00214 
00215   double pxy = 0.;
00216   if(cpa != 0) pxy = 1/fabs(cpa);
00217 
00218   double px = pxy * (-sin(fi0));
00219   double py = pxy * cos(fi0);
00220   double pz = pxy * tanl;
00221 
00222   Hep3Vector p;
00223   p.set(px, py, pz); // MeV/c
00224   return p;
00225 }

double MdcNavigation::poca ( const MdcDigi aDigi,
const HepVector  helixPar,
const HepSymMatrix  errMat 
) [private]

Definition at line 656 of file MdcNavigation.cxx.

References IMagneticFieldSvc::getReferField(), RawData::identify(), MdcDetector::Layer(), MdcID::layer(), m_gm, m_pIMF, MdcLayer::nWires(), MdcLayer::phiEPOffset(), pi, MdcLayer::rMid(), and MdcID::wire().

Referenced by fillRecTrack().

00656                                                                                                  {
00657   int lay   = MdcID::layer(aDigi->identify());
00658   int wire  = MdcID::wire(aDigi->identify());
00659   //======from five track parameter to calculate the exact position=====//
00660   double ALPHA_loc,rho,pt,kappa,phiIn;
00661   int charge;
00662   double Bz = m_pIMF->getReferField()*1000.;
00663   ALPHA_loc = 333.567*Bz; //magnetic field const
00664   charge    = ( kappa >=0 ) ? 1 : -1 ;
00665   rho       = ALPHA_loc/kappa ;
00666   pt        = fabs( 1.0 / kappa);
00667   HepVector helix(helix);
00668   helix[0] = -helixPar[0];    //cm
00669   helix[1] = helixPar[1]+ pi/2;
00670   helix[2] = -1./helixPar[2];
00671   helix[3] = helixPar[3];    //cm
00672   helix[4] = helixPar[4];
00673   HelixTraj* m_helixTraj;
00674   MdcSagTraj* m_wireTraj_I;
00675   MdcSWire*  m_mdcSWire_I;
00676   TrkPoca* m_trkPoca;
00677   TrkPoca* m_trkPoca_I;
00678   TrkPoca* m_trkPoca_O;
00679   MdcSagTraj* m_wireTraj_O;
00680   MdcSWire*  m_mdcSWire_O;
00681   m_helixTraj = new HelixTraj(helix,errMat);
00682   //---------------wire in and wire out of this layer---------------------
00683   const MdcLayer* layPtr = m_gm->Layer(lay);
00684   double fltLenIn = layPtr->rMid(); 
00685   phiIn = helix[1] + helix[2]*fltLenIn;//phi0 + omega * L
00686   BesAngle tmp(phiIn - layPtr->phiEPOffset());
00687   int wlow = (int)floor(layPtr->nWires() * tmp.rad() / twopi );
00688   int wbig = (int)ceil(layPtr->nWires() * tmp.rad() / twopi );
00689   if (tmp == 0 ){ wlow = -1; wbig = 1; }
00690   int wireIn,wireOut;
00691   wireIn = wbig;
00692   wireOut = wlow;
00693   std::cout<<" in MdcNavigation  lay/4  "<<lay/4<<" phi "<<tmp<<" wire "<<wireIn<<" "<<wireOut<<std::endl;
00694 }

double MdcNavigation::probab ( const int &  ndof,
const double &  chisq 
) [private]

Definition at line 732 of file MdcNavigation.cxx.

References exp(), genRecEmupikp::i, M_PI, and subSeperate::temp.

Referenced by fillRecTrack().

00732                                                                 {
00733 
00734   //constants
00735   static double srtopi=2.0/sqrt(2.0*M_PI);
00736   static double upl=100.0;
00737 
00738   double prob=0.0;
00739   if(ndof<=0) {return prob;}
00740   if(chisq<0.0) {return prob;}
00741   if(ndof<=60) {
00742     //full treatment
00743     if(chisq>upl) {return prob;}
00744     double sum=exp(-0.5*chisq);
00745     double term=sum;
00746 
00747     int m=ndof/2;
00748     if(2*m==ndof){
00749       if(m==1){return sum;}
00750       for(int i=2; i<=m;i++){
00751         term=0.5*term*chisq/(i-1);
00752         sum+=term;
00753       }//(int i=2; i<=m)
00754       return sum;
00755       //even
00756 
00757     }else{
00758       //odd
00759       double srty=sqrt(chisq);
00760       double temp=srty/M_SQRT2;
00761       prob=erfc(temp);
00762       if(ndof==1) {return prob;}
00763       if(ndof==3) {return (srtopi*srty*sum+prob);}
00764       m=m-1;
00765       for(int i=1; i<=m; i++){
00766         term=term*chisq/(2*i+1);
00767         sum+=term;
00768       }//(int i=1; i<=m; i++)
00769       return (srtopi*srty*sum+prob);
00770 
00771     }//(2*m==ndof)
00772 
00773   }else{
00774     //asymtotic Gaussian approx
00775     double srty=sqrt(chisq)-sqrt(ndof-0.5);
00776     if(srty<12.0) {prob=0.5*erfc(srty);};
00777 
00778   }//ndof<30
00779 
00780   return prob;
00781 }//endof probab

StatusCode MdcNavigation::skipMcParticle ( const Event::McParticle it,
int  nKindSkiped,
int *  keepedPart 
) [private]

Definition at line 566 of file MdcNavigation.cxx.

References abs, genRecEmupikp::i, Bes_Common::INFO, m_nMcHit, m_particleTable, msgSvc(), and Bes_Common::WARNING.

00566                                                                                        {
00567 
00568   MsgStream log(msgSvc(), name());
00569 
00570   int pdg_code = (*it).particleProperty();
00571   if (fabs(pdg_code)>=8) {
00572     const HepPDT::ParticleData* particles = m_particleTable->particle(abs(pdg_code));
00573     if( ! particles ){
00574       log<<MSG::WARNING<<"Exotic particle found with PDG code "<<pdg_code<<endreq;
00575     }else{
00576       // skip neutrals
00577       if( particles->charge() == 0 ){ 
00578         log<<MSG::INFO<<"Skip charge == 0 mc particle "<<pdg_code<<endreq;
00579         return StatusCode::FAILURE; 
00580       }
00581     }
00582   }
00583 
00584   int mcTkId = (*it).trackIndex();
00585   int nMcHit=0;
00586   SmartDataPtr<Event::MdcMcHitCol> mcMdcMcHitCol(eventSvc(),"/Event/MC/MdcMcHitCol");
00587   if (!mcMdcMcHitCol) {
00588     log << MSG::INFO << "Could not find MdcMcHit" << endreq;
00589   }else{
00590     Event::MdcMcHitCol::iterator iter_mchit = mcMdcMcHitCol->begin();
00591     for (;iter_mchit != mcMdcMcHitCol->end(); iter_mchit++ ) {
00592       int iMcTk =  (*iter_mchit)->getTrackIndex();
00593       if (mcTkId == iMcTk) nMcHit++;
00594     }
00595   }
00596   if(nMcHit<m_nMcHit) return StatusCode::FAILURE;//5  for default
00597 
00598   bool keeped = false;
00599   for (int i=0; i<nKindKeeped; i++){
00600     if (abs(pdg_code) == pid[i]) keeped = true;
00601   }
00602 
00603   if (!keeped) return StatusCode::FAILURE;
00604 
00605   return StatusCode::SUCCESS;
00606 }//end of skipMcParticle()


Member Data Documentation

long MdcNavigation::digiLayer[100] [private]

Definition at line 78 of file MdcNavigation.h.

Referenced by fillInit().

AIDA::IHistogram1D* MdcNavigation::g_layerEff [private]

Definition at line 84 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Tuple* MdcNavigation::g_tupleEvt [private]

Definition at line 82 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Tuple* MdcNavigation::g_tupleMc [private]

Definition at line 80 of file MdcNavigation.h.

Referenced by bookNTuple(), fillInit(), and fillRecTrack().

NTuple::Tuple* MdcNavigation::g_tupleRec [private]

Definition at line 81 of file MdcNavigation.h.

int MdcNavigation::havedigi[43][288] [private]

Definition at line 50 of file MdcNavigation.h.

Referenced by fillInit(), and fillRecTrack().

int* MdcNavigation::keepedParticles [private]

Definition at line 73 of file MdcNavigation.h.

Referenced by finalize(), and initialize().

double MdcNavigation::m_d0Cut [private]

Definition at line 74 of file MdcNavigation.h.

Referenced by fillRecTrack(), and MdcNavigation().

bool MdcNavigation::m_debug [private]

Definition at line 48 of file MdcNavigation.h.

Referenced by fillInit(), and MdcNavigation().

bool MdcNavigation::m_doSag [private]

Definition at line 54 of file MdcNavigation.h.

Referenced by beginRun(), and MdcNavigation().

bool MdcNavigation::m_dropHot [private]

Definition at line 58 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), fillRecTrack(), and MdcNavigation().

const MdcDetector* MdcNavigation::m_gm [private]

Definition at line 49 of file MdcNavigation.h.

Referenced by beginRun(), and poca().

bool MdcNavigation::m_hist [private]

Definition at line 52 of file MdcNavigation.h.

Referenced by execute(), initialize(), and MdcNavigation().

bool MdcNavigation::m_keepBadTdc [private]

Definition at line 57 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), fillRecTrack(), and MdcNavigation().

bool MdcNavigation::m_keepUnmatch [private]

Definition at line 59 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), fillRecTrack(), and MdcNavigation().

int MdcNavigation::m_maxMdcDigi [private]

Definition at line 56 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), fillRecTrack(), and MdcNavigation().

int MdcNavigation::m_mc [private]

Definition at line 53 of file MdcNavigation.h.

Referenced by execute(), and MdcNavigation().

NTuple::Array<long> MdcNavigation::m_na_act [private]

Definition at line 152 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Array<double> MdcNavigation::m_na_Adc [private]

Definition at line 161 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<double> MdcNavigation::m_na_chi2 [private]

Definition at line 124 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Array<double> MdcNavigation::m_na_chi2add [private]

Definition at line 157 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<double> MdcNavigation::m_na_chi2Dof [private]

Definition at line 125 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_chi2Prob [private]

Definition at line 126 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_cpa [private]

Definition at line 90 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_cpaE [private]

Definition at line 96 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_cpaRes [private]

Definition at line 111 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_d0 [private]

Definition at line 88 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_d0E [private]

Definition at line 94 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_d0Res [private]

Definition at line 109 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_dCpa [private]

Definition at line 105 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_dD0 [private]

Definition at line 103 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Array<double> MdcNavigation::m_na_digiLayer [private]

Definition at line 167 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Array<double> MdcNavigation::m_na_digiTkId [private]

Definition at line 166 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Array<double> MdcNavigation::m_na_doca [private]

Definition at line 154 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<double> MdcNavigation::m_na_dP [private]

Definition at line 100 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_dPhi0 [private]

Definition at line 104 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_dPt [private]

Definition at line 101 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_dPz [private]

Definition at line 102 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Array<double> MdcNavigation::m_na_driftD [private]

Definition at line 151 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Array<double> MdcNavigation::m_na_driftT [private]

Definition at line 153 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<double> MdcNavigation::m_na_dTanl [private]

Definition at line 107 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_dZ0 [private]

Definition at line 106 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Array<double> MdcNavigation::m_na_entra [private]

Definition at line 155 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<double> MdcNavigation::m_na_evtNo [private]

Definition at line 149 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_fiTerm [private]

Definition at line 123 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Array<double> MdcNavigation::m_na_flaglr [private]

Definition at line 158 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Array<double> MdcNavigation::m_na_gwire [private]

Definition at line 164 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Array<double> MdcNavigation::m_na_hitStat [private]

Definition at line 159 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Array<double> MdcNavigation::m_na_hitTkId [private]

Definition at line 165 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Array<double> MdcNavigation::m_na_layer [private]

Definition at line 162 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<double> MdcNavigation::m_na_mccpa [private]

Definition at line 141 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcd0 [private]

Definition at line 137 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcfifin [private]

Definition at line 143 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcflag [private]

Definition at line 144 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcp [private]

Definition at line 132 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcphi0 [private]

Definition at line 138 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcpid [private]

Definition at line 131 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcpt [private]

Definition at line 133 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcpx [private]

Definition at line 134 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcpy [private]

Definition at line 135 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcpz [private]

Definition at line 136 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcq [private]

Definition at line 142 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mctheta [private]

Definition at line 140 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_mcTkId [private]

Definition at line 128 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_mcTkNum [private]

Definition at line 127 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_mcz0 [private]

Definition at line 139 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_nAct [private]

Definition at line 118 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<long> MdcNavigation::m_na_nDigi [private]

Definition at line 116 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_nDof [private]

Definition at line 122 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_nEvtNoise [private]

Definition at line 117 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<long> MdcNavigation::m_na_nHit [private]

Definition at line 115 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<double> MdcNavigation::m_na_nMatch [private]

Definition at line 120 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_nNoise [private]

Definition at line 119 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_nSt [private]

Definition at line 121 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_p [private]

Definition at line 85 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_phi0 [private]

Definition at line 89 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_phi0E [private]

Definition at line 95 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_phi0Res [private]

Definition at line 110 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_pt [private]

Definition at line 86 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_pz [private]

Definition at line 87 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_q [private]

Definition at line 93 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_recTkNum [private]

Definition at line 129 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Array<double> MdcNavigation::m_na_resid [private]

Definition at line 150 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<double> MdcNavigation::m_na_t2mcp [private]

Definition at line 169 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_t2mcphi [private]

Definition at line 171 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_t2mcpt [private]

Definition at line 170 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_t2mctheta [private]

Definition at line 172 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_t2mcTkNum [private]

Definition at line 175 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_t2p [private]

Definition at line 176 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_t2pt [private]

Definition at line 177 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_t2recTkNum [private]

Definition at line 174 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_t2tanl [private]

Definition at line 173 of file MdcNavigation.h.

NTuple::Item<long> MdcNavigation::m_na_t3Curl [private]

Definition at line 182 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<double> MdcNavigation::m_na_t3evtNo [private]

Definition at line 185 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Array<long> MdcNavigation::m_na_t3gwire [private]

Definition at line 195 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Array<long> MdcNavigation::m_na_t3layer [private]

Definition at line 193 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<double> MdcNavigation::m_na_t3mcTk [private]

Definition at line 180 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<long> MdcNavigation::m_na_t3nDigi [private]

Definition at line 192 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Array<long> MdcNavigation::m_na_t3ovfl [private]

Definition at line 202 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<long> MdcNavigation::m_na_t3PatRec [private]

Definition at line 183 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Array<double> MdcNavigation::m_na_t3phi [private]

Definition at line 199 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Array<double> MdcNavigation::m_na_t3rc [private]

Definition at line 198 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<double> MdcNavigation::m_na_t3recTk [private]

Definition at line 179 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Array<double> MdcNavigation::m_na_t3rt [private]

Definition at line 196 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Array<double> MdcNavigation::m_na_t3rtNot0 [private]

Definition at line 197 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<long> MdcNavigation::m_na_t3runNo [private]

Definition at line 191 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<double> MdcNavigation::m_na_t3t0 [private]

Definition at line 186 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<double> MdcNavigation::m_na_t3t0Stat [private]

Definition at line 188 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<double> MdcNavigation::m_na_t3t0Truth [private]

Definition at line 187 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Item<double> MdcNavigation::m_na_t3timing [private]

Definition at line 189 of file MdcNavigation.h.

NTuple::Array<long> MdcNavigation::m_na_t3tNum [private]

Definition at line 203 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Item<long> MdcNavigation::m_na_t3TrkReco [private]

Definition at line 181 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Array<long> MdcNavigation::m_na_t3wire [private]

Definition at line 194 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Array<double> MdcNavigation::m_na_t3xMid [private]

Definition at line 200 of file MdcNavigation.h.

NTuple::Item<long> MdcNavigation::m_na_t3XRec [private]

Definition at line 184 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillEvent().

NTuple::Array<double> MdcNavigation::m_na_t3yMid [private]

Definition at line 201 of file MdcNavigation.h.

NTuple::Item<double> MdcNavigation::m_na_tanl [private]

Definition at line 92 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_tanlE [private]

Definition at line 98 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_tanlRes [private]

Definition at line 113 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Array<double> MdcNavigation::m_na_Tdc [private]

Definition at line 160 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<long> MdcNavigation::m_na_tkId [private]

Definition at line 148 of file MdcNavigation.h.

NTuple::Item<long> MdcNavigation::m_na_tkStat [private]

Definition at line 145 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Array<double> MdcNavigation::m_na_wire [private]

Definition at line 163 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

NTuple::Item<double> MdcNavigation::m_na_z0 [private]

Definition at line 91 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_z0E [private]

Definition at line 97 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecTrack().

NTuple::Item<double> MdcNavigation::m_na_z0Res [private]

Definition at line 112 of file MdcNavigation.h.

Referenced by bookNTuple().

NTuple::Array<double> MdcNavigation::m_na_zhit [private]

Definition at line 156 of file MdcNavigation.h.

Referenced by bookNTuple(), and fillRecHits().

int MdcNavigation::m_nMcHit [private]

Definition at line 72 of file MdcNavigation.h.

Referenced by MdcNavigation(), and skipMcParticle().

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

Definition at line 43 of file MdcNavigation.h.

Referenced by initialize(), and skipMcParticle().

IMagneticFieldSvc* MdcNavigation::m_pIMF [private]

Definition at line 45 of file MdcNavigation.h.

Referenced by initialize(), and poca().

bool MdcNavigation::m_poca [private]

Definition at line 47 of file MdcNavigation.h.

Referenced by fillRecTrack(), and MdcNavigation().

bool MdcNavigation::m_rawData [private]

Definition at line 55 of file MdcNavigation.h.

Referenced by execute(), and fillInit().

RawDataProviderSvc* MdcNavigation::m_rawDataProviderSvc [private]

Definition at line 44 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), fillRecTrack(), and initialize().

double MdcNavigation::m_z0Cut [private]

Definition at line 75 of file MdcNavigation.h.

Referenced by fillRecTrack(), and MdcNavigation().

short MdcNavigation::multiTdcCount[43][288] [private]

Definition at line 51 of file MdcNavigation.h.

Referenced by fillInit().

long MdcNavigation::nDigiTk[100] [private]

Definition at line 77 of file MdcNavigation.h.

Referenced by fillInit().

double MdcNavigation::nNoise [private]

Definition at line 76 of file MdcNavigation.h.

Referenced by fillInit(), and fillRecTrack().

int MdcNavigation::t_curlTk [private]

Definition at line 69 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), and fillRecTrack().

long MdcNavigation::t_eventNo [private]

Definition at line 60 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), and fillRecTrack().

int MdcNavigation::t_mcTkNum [private]

Definition at line 67 of file MdcNavigation.h.

Referenced by execute(), and fillEvent().

int MdcNavigation::t_nTk [private]

Definition at line 65 of file MdcNavigation.h.

Referenced by execute(), finalize(), and initialize().

int MdcNavigation::t_patRecTk [private]

Definition at line 70 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), and fillRecTrack().

int MdcNavigation::t_recTkNum [private]

Definition at line 66 of file MdcNavigation.h.

Referenced by execute(), and fillEvent().

long MdcNavigation::t_runNo [private]

Definition at line 61 of file MdcNavigation.h.

Referenced by fillEvent(), and fillInit().

double MdcNavigation::t_t0 [private]

Definition at line 62 of file MdcNavigation.h.

Referenced by fillEvent(), and fillInit().

double MdcNavigation::t_t0Stat [private]

Definition at line 63 of file MdcNavigation.h.

Referenced by fillEvent(), and fillInit().

double MdcNavigation::t_t0Truth [private]

Definition at line 64 of file MdcNavigation.h.

int MdcNavigation::t_trkRecoTk [private]

Definition at line 68 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), and fillRecTrack().

int MdcNavigation::t_xRecTk [private]

Definition at line 71 of file MdcNavigation.h.

Referenced by fillEvent(), fillInit(), and fillRecTrack().


Generated on Tue Nov 29 23:20:15 2016 for BOSS_7.0.2 by  doxygen 1.4.7