#include <MdcPrintSvc.h>
Inheritance diagram for MdcPrintSvc:
Public Member Functions | |
MdcPrintSvc (const std::string &name, ISvcLocator *svcloc) | |
~MdcPrintSvc () | |
StatusCode | initialize () |
StatusCode | finalize () |
virtual StatusCode | queryInterface (const InterfaceID &riid, void **ppvUnknown) |
void | printRecMdcTrackCol () const |
void | printRecMdcTrack (const RecMdcTrack *tk) const |
void | printDigi (uint32_t getDigiFlag=0) const |
void | printMdcMcHitCol () const |
Static Public Member Functions | |
static const InterfaceID & | interfaceID () |
Private Attributes | |
IDataProviderSvc * | eventSvc |
RawDataProviderSvc * | m_rawDataProviderSvc |
bool | m_printMcTk |
bool | m_printHit |
bool | m_printTrackDetail |
bool | m_printErrMat |
bool | m_printTdcAdc |
Definition at line 21 of file MdcPrintSvc.h.
MdcPrintSvc::MdcPrintSvc | ( | const std::string & | name, | |
ISvcLocator * | svcloc | |||
) |
MdcPrintSvc::~MdcPrintSvc | ( | ) |
StatusCode MdcPrintSvc::finalize | ( | ) |
Definition at line 70 of file MdcPrintSvc.cxx.
References Bes_Common::INFO.
00070 { 00071 MsgStream log(messageService(), name()); 00072 log << MSG::INFO << "MdcPrintSvc::finalize()" << endreq; 00073 00074 return StatusCode::SUCCESS; 00075 }
StatusCode MdcPrintSvc::initialize | ( | ) |
Definition at line 44 of file MdcPrintSvc.cxx.
References eventSvc, Bes_Common::FATAL, Bes_Common::INFO, and m_rawDataProviderSvc.
00044 { 00045 MsgStream log(messageService(), name()); 00046 log << MSG::INFO << "MdcPrintSvc::initialize()" << endreq; 00047 00048 StatusCode sc = Service::initialize(); 00049 if( sc.isFailure() ) return sc; 00050 00051 ISvcLocator* svcLocator = Gaudi::svcLocator(); 00052 svcLocator->service("EventDataSvc",eventSvc,true); 00053 if (NULL == eventSvc){ 00054 std::cout << "ERROR Could not load service DataSvc" << std::endl; 00055 return StatusCode::FAILURE; 00056 } 00057 00058 IRawDataProviderSvc* irawDataProviderSvc; 00059 sc = service ("RawDataProviderSvc", irawDataProviderSvc); 00060 m_rawDataProviderSvc = dynamic_cast<RawDataProviderSvc*> (irawDataProviderSvc); 00061 if ( sc.isFailure() ){ 00062 log << MSG::FATAL << "Could not load RawDataProviderSvc!" << endreq; 00063 return StatusCode::FAILURE; 00064 } 00065 00066 00067 return StatusCode::SUCCESS; 00068 }
static const InterfaceID& IMdcPrintSvc::interfaceID | ( | ) | [inline, static, inherited] |
Definition at line 18 of file IMdcPrintSvc.h.
References IID_IMdcPrintSvc().
00018 { return IID_IMdcPrintSvc; }
void MdcPrintSvc::printDigi | ( | uint32_t | getDigiFlag = 0 |
) | const [virtual] |
Implements IMdcPrintSvc.
Definition at line 86 of file MdcPrintSvc.cxx.
References RawDataProviderSvc::getMdcDigiVec(), iter(), MdcID::layer(), m_printMcTk, m_printTdcAdc, m_rawDataProviderSvc, RawDataUtil::MdcCharge(), RawDataUtil::MdcTime(), w, and MdcID::wire().
00086 { 00087 MdcDigiVec mdcDigiVec = m_rawDataProviderSvc->getMdcDigiVec(getDigiFlag); 00088 MdcDigiCol::iterator iter = mdcDigiVec.begin(); 00089 std::cout<<"//==== "<<name()<<" print MdcDigiVec, nDigi="<<mdcDigiVec.size()<<" :"<<std::endl; 00090 for (int iDigi=0;iter!= mdcDigiVec.end(); iter++,iDigi++ ) { 00091 long l = MdcID::layer((*iter)->identify()); 00092 long w = MdcID::wire((*iter)->identify()); 00093 cout<<"("<<l<<","<<w; 00094 if(m_printMcTk) { 00095 int tkTruth = (*iter)->getTrackIndex(); 00096 cout<<";"<<tkTruth; 00097 } 00098 if(m_printTdcAdc) { 00099 double tdc = RawDataUtil::MdcTime((*iter)->getTimeChannel()); 00100 double adc = RawDataUtil::MdcCharge((*iter)->getChargeChannel()); 00101 cout<<",t "<<tdc<<",c "<<adc; 00102 } 00103 cout<<")"; 00104 if(iDigi%4==0) std::cout<<std::endl; 00105 } 00106 std::cout<<std::endl; 00107 }
void MdcPrintSvc::printMdcMcHitCol | ( | ) | const [virtual] |
Implements IMdcPrintSvc.
Definition at line 200 of file MdcPrintSvc.cxx.
References eventSvc, MdcID::layer(), Bes_Common::WARNING, and MdcID::wire().
00200 { 00201 MsgStream log(messageService(), name()); 00202 00203 SmartDataPtr<MdcMcHitCol> mdcMcHitCol(eventSvc,"/Event/MC/MdcMcHitCol"); 00204 if (!mdcMcHitCol) { 00205 log << MSG::WARNING << "Could not find MdcMcHitCol" << endreq; 00206 return; 00207 } 00208 00209 int ihit= 0; 00210 cout<< "//==== "<<name()<<" print MdcMcHitCol nMcHit="<<mdcMcHitCol->size()<< endl; 00211 if (mdcMcHitCol->size()>0){ 00212 cout<<"No. (layer,wire) mcTk (x,y,z) lr driftdist(cm) energy"<<endl; 00213 } 00214 MdcMcHitCol::iterator iter_mchit = mdcMcHitCol->begin(); 00215 for (;iter_mchit != mdcMcHitCol->end(); iter_mchit++,ihit++ ) { 00216 const Identifier id= (*iter_mchit)->identify(); 00217 int layer = MdcID::layer(id); 00218 int wire = MdcID::wire(id); 00219 int iMcTk = (*iter_mchit)->getTrackIndex(); 00220 double mcX = (*iter_mchit)->getPositionX()/10.; 00221 double mcY = (*iter_mchit)->getPositionY()/10.; 00222 double mcZ = (*iter_mchit)->getPositionZ()/10.; 00223 double mcLR = (*iter_mchit)->getPositionFlag(); 00224 double mcDrift = (*iter_mchit)->getDriftDistance()/10.; 00225 double mcEnergy = (*iter_mchit)->getDepositEnergy()/10.; 00226 if (mcLR == 0) mcLR = -1; 00227 cout<<ihit <<" ("<<layer<<","<<wire<<") "<< iMcTk 00228 <<" ("<< mcX<<"," <<mcY<<","<< mcZ 00229 <<") " <<mcLR 00230 <<" " <<mcDrift 00231 <<" " <<mcEnergy 00232 <<endl; 00233 } 00234 }
void MdcPrintSvc::printRecMdcTrack | ( | const RecMdcTrack * | tk | ) | const [virtual] |
Implements IMdcPrintSvc.
Definition at line 126 of file MdcPrintSvc.cxx.
References DstMdcTrack::charge(), DstMdcTrack::chi2(), DstMdcTrack::err(), RawDataProviderSvc::getMdcDigiVec(), RecMdcTrack::getNhits(), RecMdcTrack::getVecHits(), DstMdcTrack::helix(), genRecEmupikp::i, iter(), MdcID::layer(), m_printErrMat, m_printHit, m_printMcTk, m_printTrackDetail, m_rawDataProviderSvc, DstMdcTrack::ndof(), DstMdcTrack::nster(), DstMdcTrack::p(), DstMdcTrack::phi(), DstMdcTrack::px(), DstMdcTrack::pxy(), DstMdcTrack::py(), DstMdcTrack::pz(), DstMdcTrack::r(), DstMdcTrack::stat(), DstMdcTrack::theta(), DstMdcTrack::trackId(), w, MdcID::wire(), DstMdcTrack::x(), DstMdcTrack::y(), and DstMdcTrack::z().
Referenced by printRecMdcTrackCol().
00126 { 00127 std::cout<< "//==== "<<name()<<" print RecMdcTrack No."<<tk->trackId()<<" :"<< std::endl; 00128 cout <<" dr "<<tk->helix(0) 00129 <<" phi0 "<<tk->helix(1) 00130 <<" cpa "<<tk->helix(2) 00131 <<" z0 "<<tk->helix(3) 00132 <<" tanl "<<tk->helix(4) 00133 <<endl; 00134 if(m_printTrackDetail){ 00135 std::cout<<" q "<<tk->charge() 00136 <<" theta "<<tk->theta() 00137 <<" phi "<<tk->phi() 00138 <<" x0 "<<tk->x() 00139 <<" y0 "<<tk->y() 00140 <<" z0 "<<tk->z() 00141 <<" r0 "<<tk->r() 00142 <<endl; 00143 std::cout <<" p "<<tk->p() 00144 <<" pt "<<tk->pxy() 00145 <<" pxyz("<<tk->px() 00146 <<","<<tk->py() 00147 <<","<<tk->pz() 00148 <<")"<<endl; 00149 std::cout<<" tkStat "<<tk->stat() 00150 <<" chi2 "<<tk->chi2() 00151 <<" ndof "<<tk->ndof() 00152 <<" nhit "<<tk->getNhits() 00153 <<" nst "<<tk->nster() 00154 <<endl; 00155 if(m_printErrMat){ 00156 std::cout<< "errmat " << std::endl; 00157 for (int i=0; i<15; i++){ std::cout<< " "<<tk->err(i); } 00158 std::cout<< " " << std::endl; 00159 } 00160 } 00161 00162 if(m_printHit){ 00163 int haveDigi[43][288]; 00164 if(m_printMcTk) { 00165 for(int ii=0;ii<43;ii++){ 00166 for(int jj=0;jj<43;jj++){ 00167 haveDigi[ii][jj]=-9999; 00168 } 00169 } 00170 MdcDigiVec mdcDigiVec = m_rawDataProviderSvc->getMdcDigiVec(); 00171 MdcDigiCol::iterator iter = mdcDigiVec.begin(); 00172 std::cout<<name()<<"//==== "<<name()<<" print MdcDigiVec, nDigi="<<mdcDigiVec.size()<<" :"<<std::endl; 00173 for (int iDigi=0;iter!= mdcDigiVec.end(); iter++,iDigi++ ) { 00174 long l = MdcID::layer((*iter)->identify()); 00175 long w = MdcID::wire((*iter)->identify()); 00176 haveDigi[l][w]=(*iter)->getTrackIndex(); 00177 } 00178 } 00179 00180 int nhits = tk->getVecHits().size(); 00181 std::cout<<"nHits=" <<nhits<< std::endl; 00182 cout<<"No. "; 00183 if(m_printMcTk) cout<<"mcTkId "; 00184 cout<<"(layer,wire,lr) stat z"<<endl; 00185 for(int ii=0; ii <nhits ; ii++){ 00186 Identifier id(tk->getVecHits()[ii]->getMdcId()); 00187 int layer = MdcID::layer(id); 00188 int wire = MdcID::wire(id); 00189 cout<<ii<<":"; 00190 if(m_printMcTk) { cout<<haveDigi[layer][wire]; } 00191 cout<<" ("<<layer<<","<<wire 00192 <<","<<tk->getVecHits()[ii]->getFlagLR() 00193 <<") "<<tk->getVecHits()[ii]->getStat() 00194 <<" "<<tk->getVecHits()[ii]->getZhit()<< " "<<std::endl; 00195 }//end of hit list 00196 std::cout << " "<< std::endl; 00197 } 00198 }
void MdcPrintSvc::printRecMdcTrackCol | ( | ) | const |
Definition at line 109 of file MdcPrintSvc.cxx.
References eventSvc, printRecMdcTrack(), and Bes_Common::WARNING.
Referenced by MdcxCosmicSewer::execute(), MdcTrkRecon::execute(), and HoughValidUpdate::execute().
00109 { 00110 MsgStream log(messageService(), name()); 00111 00112 SmartDataPtr<RecMdcTrackCol> recMdcTrackCol(eventSvc,"/Event/Recon/RecMdcTrackCol"); 00113 if (!recMdcTrackCol) { 00114 log << MSG::WARNING << "Could not find RecMdcTrackCol" << endreq; 00115 return; 00116 } 00117 00118 std::cout<< "//======= "<<name()<<" RecMdcTrackCol size = "<<recMdcTrackCol->size() << std::endl; 00119 RecMdcTrackCol::iterator it = recMdcTrackCol->begin(); 00120 for (;it!= recMdcTrackCol->end();it++){ 00121 printRecMdcTrack(*it); 00122 } 00123 00124 }
StatusCode MdcPrintSvc::queryInterface | ( | const InterfaceID & | riid, | |
void ** | ppvUnknown | |||
) | [virtual] |
Definition at line 77 of file MdcPrintSvc.cxx.
References IID_IMdcPrintSvc().
00077 { 00078 if( IID_IMdcPrintSvc.versionMatch(riid) ){ 00079 *ppvInterface = static_cast<IMdcPrintSvc*> (this); 00080 } else{ 00081 return Service::queryInterface(riid, ppvInterface); 00082 } 00083 return StatusCode::SUCCESS; 00084 }
IDataProviderSvc* MdcPrintSvc::eventSvc [private] |
Definition at line 37 of file MdcPrintSvc.h.
Referenced by initialize(), printMdcMcHitCol(), and printRecMdcTrackCol().
bool MdcPrintSvc::m_printErrMat [private] |
bool MdcPrintSvc::m_printHit [private] |
bool MdcPrintSvc::m_printMcTk [private] |
bool MdcPrintSvc::m_printTdcAdc [private] |
bool MdcPrintSvc::m_printTrackDetail [private] |
Definition at line 38 of file MdcPrintSvc.h.
Referenced by initialize(), printDigi(), and printRecMdcTrack().