#include <RootIoAlg.h>
Public Member Functions | |
RootIoAlg (const std::string &name, ISvcLocator *pSvcLocator) | |
StatusCode | initialize () |
StatusCode | execute () |
StatusCode | finalize () |
Definition at line 5 of file RootIoAlg.h.
RootIoAlg::RootIoAlg | ( | const std::string & | name, | |
ISvcLocator * | pSvcLocator | |||
) |
Definition at line 44 of file RootIoAlg.cxx.
00044 : 00045 Algorithm(name, pSvcLocator) 00046 { 00047 // Declare the properties 00048 // declareProperty("FittingMethod", m_fittingMethod = 2); 00049 // declareProperty("ConfigFile", m_configFile = "MDCConfig.xml"); 00050 }
StatusCode RootIoAlg::execute | ( | ) |
Definition at line 73 of file RootIoAlg.cxx.
References EventModel::Dst::DstEmcShowerCol, EventModel::Dst::DstExtTrackCol, EventModel::Dst::DstMdcDedxCol, EventModel::Dst::DstMdcKalTrackCol, EventModel::Dst::DstMdcTrackCol, EventModel::Dst::DstMucTrackCol, EventModel::Dst::DstTofTrackCol, Bes_Common::FATAL, Bes_Common::INFO, and msgSvc().
00073 { 00074 00075 MsgStream log(msgSvc(), name()); 00076 log << MSG::INFO << "in execute()" << endreq; 00077 00078 // Part 1: Get the event header, print out event and run number 00079 00080 int event, run; 00081 00082 00083 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader"); 00084 if (!eventHeader) { 00085 log << MSG::FATAL << "Could not find Event Header" << endreq; 00086 return( StatusCode::FAILURE); 00087 } 00088 log << MSG::INFO << "RootIoAlg: retrieved event: " << eventHeader->eventNumber() << " run: " << eventHeader->runNumber() << endreq; 00089 00090 00091 int digiId; 00092 00093 //Part 3: Retrieve MDC digi 00094 SmartDataPtr<MdcDigiCol> mdcDigiCol(eventSvc(),"/Event/Digi/MdcDigiCol"); 00095 if (!mdcDigiCol) { 00096 log << /*MSG::FATAL*/MSG::INFO << "Could not find MDC digi" << endreq; 00097 //return( StatusCode::FAILURE); 00098 } 00099 else { 00100 MdcDigiCol::iterator iter1 = mdcDigiCol->begin(); 00101 digiId = 0; 00102 for (;iter1 != mdcDigiCol->end(); iter1++, digiId++) { 00103 log << MSG::INFO << "MDC digit No: " << digiId << endreq; 00104 00105 log << MSG::INFO 00106 << " time_channel = " << (*iter1)->getTimeChannel() 00107 << " charge_channel = " << (*iter1)->getChargeChannel() 00108 << endreq; 00109 } 00110 } 00111 00112 00113 //Part 4: Retrieve TOF digi 00114 SmartDataPtr<TofDigiCol> tofDigiCol(eventSvc(),"/Event/Digi/TofDigiCol"); 00115 if (!tofDigiCol) { 00116 log <</* MSG::FATAL*/MSG::INFO << "Could not find TOF digi" << endreq; 00117 // return( StatusCode::FAILURE); 00118 } 00119 else { 00120 TofDigiCol::iterator iter2 = tofDigiCol->begin(); 00121 digiId = 0; 00122 for (;iter2 != tofDigiCol->end(); iter2++, digiId++) { 00123 log << MSG::INFO << "TOF digit No: " << digiId << endreq; 00124 log << MSG::INFO 00125 << " time_channel = " << (*iter2)->getTimeChannel() 00126 << " charge_channel = " << (*iter2)->getChargeChannel() 00127 << endreq; 00128 00129 00130 } 00131 } 00132 //Part 5: Retrieve EMC digi 00133 SmartDataPtr<EmcDigiCol> emcDigiCol(eventSvc(),"/Event/Digi/EmcDigiCol"); 00134 if (!emcDigiCol) { 00135 log <</* MSG::FATAL*/MSG::INFO << "Could not find EMC digi" << endreq; 00136 // return( StatusCode::FAILURE); 00137 } 00138 else { 00139 EmcDigiCol::iterator iter3 = emcDigiCol->begin(); 00140 digiId = 0; 00141 for (;iter3 != emcDigiCol->end(); iter3++, digiId++) { 00142 log << MSG::INFO << "Emc digit No: " << digiId << endreq; 00143 00144 log << MSG::INFO 00145 << " time_channel = " << (*iter3)->getTimeChannel() 00146 << " charge_channel = " << (*iter3)->getChargeChannel() 00147 << endreq; 00148 } 00149 } 00150 00151 00152 //Part 6: Retrieve DST Tof Track 00153 SmartDataPtr<DstTofTrackCol> dstTofTrackCol(eventSvc(),EventModel::Dst::DstTofTrackCol); 00154 if (!dstTofTrackCol) { 00155 log <</* MSG::FATAL*/MSG::INFO << "Could not find Dst Tof Track" << endreq; 00156 // return( StatusCode::FAILURE); 00157 } 00158 else { 00159 DstTofTrackCol::iterator iter4 = dstTofTrackCol->begin(); 00160 digiId = 0; 00161 for (;iter4 != dstTofTrackCol->end(); iter4++, digiId++) { 00162 log << MSG::INFO << "Dst Tof No: " << digiId << endreq; 00163 00164 log << MSG::INFO 00165 <<" TrackID = " << (*iter4)->trackID() 00166 <<" TofID = " <<(*iter4)->tofID() 00167 <<" TofTrackID = " <<(*iter4)->tofTrackID() 00168 <<" Beta = " << (*iter4)->beta() 00169 << endreq; 00170 } 00171 } 00172 00173 //Part 7: Retrieve DST Emc Track 00174 SmartDataPtr<DstEmcShowerCol> dstEmcShowerCol(eventSvc(),EventModel::Dst::DstEmcShowerCol); 00175 if (!dstEmcShowerCol) { 00176 log <</* MSG::FATAL*/MSG::INFO << "Could not find Dst Emc Track" << endreq; 00177 // return( StatusCode::FAILURE); 00178 } 00179 else { 00180 DstEmcShowerCol::iterator iter5 = dstEmcShowerCol->begin(); 00181 digiId = 0; 00182 for (;iter5 != dstEmcShowerCol->end(); iter5++, digiId++) { 00183 log << MSG::INFO << "Dst Emc No: " << digiId << endreq; 00184 00185 log << MSG::INFO 00186 << " Track ID = " << (*iter5)->trackId() 00187 <<" Cell ID = " << (*iter5)->cellId() 00188 <<" Total energy observed in Emc = " << (*iter5)->energy() 00189 << endreq ; 00190 } 00191 } 00192 00193 //Part 8: Retrieve DST Mdc Track 00194 SmartDataPtr<DstMdcTrackCol> dstMdcTrackCol(eventSvc(),EventModel::Dst::DstMdcTrackCol); 00195 if (!dstMdcTrackCol) { 00196 log <</* MSG::FATAL*/MSG::INFO << "Could not find Dst Mdc Track" << endreq; 00197 // return( StatusCode::FAILURE); 00198 } 00199 else { 00200 DstMdcTrackCol::iterator iter6 = dstMdcTrackCol->begin(); 00201 digiId = 0; 00202 for (;iter6 != dstMdcTrackCol->end(); iter6++, digiId++) { 00203 log << MSG::INFO << "Dst Mdc No: " << digiId << endreq; 00204 00205 log << MSG::INFO 00206 << " Track ID = " << (*iter6)->trackId() 00207 <<" number of total hits contained = " << (*iter6)->nster() 00208 <<"px = "<<(*iter6)->px() 00209 <<"p = "<<(*iter6)->p() 00210 <<endreq; 00211 } 00212 } 00213 00214 //Part 9: Retrieve DST Dedx Track 00215 SmartDataPtr<DstMdcDedxCol> dstMdcDedxCol(eventSvc(),EventModel::Dst::DstMdcDedxCol); 00216 if (!dstMdcDedxCol) { 00217 log << /*MSG::FATAL*/MSG::INFO << "Could not find Dst Mdc Dedx " << endreq; 00218 // return( StatusCode::FAILURE); 00219 } 00220 else { 00221 DstMdcDedxCol::iterator iter7 = dstMdcDedxCol->begin(); 00222 digiId = 0; 00223 for (;iter7 != dstMdcDedxCol->end(); iter7++, digiId++) { 00224 log << MSG::INFO << "Dst Mdc Dedx No: " << digiId << endreq; 00225 00226 log << MSG::INFO 00227 << " Track ID = " << (*iter7)->trackId() 00228 <<"Chi of E = " << (*iter7)->chi(0) 00229 <<"Chi of Mu = " << (*iter7)->chi(1) 00230 <<"Chi of Pi = " << (*iter7)->chi(2) 00231 <<endreq; 00232 } 00233 } 00234 00235 //Part 9: Retrieve DST Muc Track 00236 SmartDataPtr<DstMucTrackCol> dstMucTrackCol(eventSvc(),EventModel::Dst::DstMucTrackCol); 00237 if (!dstMucTrackCol) { 00238 log <</* MSG::FATAL*/MSG::INFO << "Could not find Muc Track " << endreq; 00239 // return( StatusCode::FAILURE); 00240 } 00241 else { 00242 DstMucTrackCol::iterator iter8 = dstMucTrackCol->begin(); 00243 digiId = 0; 00244 for (;iter8 != dstMucTrackCol->end(); iter8++, digiId++) { 00245 log << MSG::INFO << "Dst Muc Track No: " << digiId << endreq; 00246 00247 log << MSG::INFO 00248 << " Track ID = " << (*iter8)->trackId() 00249 <<" Number of hits on track = " << (*iter8)->numHits() 00250 <<" maxHitsInLayer " << (*iter8)->maxHitsInLayer() 00251 <<" xPos = " << (*iter8)->xPos() 00252 <<" yPos = " << (*iter8)->yPos() 00253 <<" zPos = " << (*iter8)->zPos() 00254 << endreq; 00255 } 00256 } 00257 00258 //Part 10: Retrieve DST Ext Track 00259 SmartDataPtr<DstExtTrackCol> dstExtTrackCol(eventSvc(),EventModel::Dst::DstExtTrackCol); 00260 if (!dstExtTrackCol) { 00261 log <</* MSG::FATAL*/MSG::INFO << "Could not find DstExt Track " << endreq; 00262 // return( StatusCode::FAILURE); 00263 } 00264 else { 00265 DstExtTrackCol::iterator iter9 = dstExtTrackCol->begin(); 00266 00267 digiId = 0; 00268 for (;iter9 != dstExtTrackCol->end(); iter9++, digiId++) { 00269 log << MSG::INFO << "Dst Ext Track No: " << digiId << endreq; 00270 log << MSG::INFO 00271 << "volume name of Tof1= "<< (*iter9)->tof1VolumeName() 00272 << "volume number of Tof1 = "<< (*iter9)->tof1VolumeNumber() 00273 << "Tof1 = "<< (*iter9)->tof1() 00274 <<endreq; 00275 log << MSG::INFO 00276 << "volume name of Tof2= "<< (*iter9)->tof2VolumeName() 00277 << "volume number of Tof2 = "<< (*iter9)->tof2VolumeNumber() 00278 << "Tof2 = "<< (*iter9)->tof2() 00279 <<endreq; 00280 log << MSG::INFO 00281 <<" Ext Tof1 Error Z = " << (*iter9)->tof1PosSigmaAlongZ() 00282 <<" Ext Tof2 Error Z = " << (*iter9)->tof2PosSigmaAlongZ() 00283 <<" Ext Emc Error theta = " << (*iter9)->emcPosSigmaAlongTheta() 00284 <<" Ext Muc Error Z = " << (*iter9)->mucPosSigmaAlongZ() 00285 << endreq; 00286 } 00287 } 00288 //Part 11: Retrieve MdcKal Track 00289 SmartDataPtr<DstMdcKalTrackCol> dstMdcKalTrackCol(eventSvc(),EventModel::Dst::DstMdcKalTrackCol); 00290 if (!dstMdcKalTrackCol) { 00291 log <</* MSG::FATAL*/MSG::INFO << "Could not find DstMdcKal Track " << endreq; 00292 } 00293 else { 00294 DstMdcKalTrackCol::iterator iter10 = dstMdcKalTrackCol->begin(); 00295 digiId = 0; 00296 for (;iter10 != dstMdcKalTrackCol->end(); iter10++, digiId++) { 00297 //log << MSG::INFO << "Dst MdcKal Track No: " << digiId << endreq; 00298 //log << MSG::INFO 00299 // << " stat of the fit of pid=0:" << (*iter10)->getStat(0) <<endreq; 00300 //log << MSG::INFO 00301 // << "mass assumption during the fit of pid =0 :" << ((*iter10)->getZHelix(0)) <<endreq; 00302 // 00303 } 00304 } 00305 00306 /* 00307 // register ReconEvent Data Object to TDS; 00308 //ReconEvent* recevt = new ReconEvent; 00309 //StatusCode sc = eventSvc()->registerObject("/Event/Recon",recevt ); 00310 00311 //Part 6: Retrieve Tof Track 00312 // register Tof Track Data Object to TDS; 00313 int trackID = 0; 00314 DstTofTrackCol* dstTofTrackCol = new DstTofTrackCol(); 00315 00316 for (trackID = 0;trackID < 10 ; trackID++) { 00317 log << MSG::INFO << "Tof Track No: " << trackID << endreq; 00318 00319 DstTofTrack* dstTofTrack = new DstTofTrack(); 00320 00321 dstTofTrack->setId(trackID*100); 00322 dstTofTrack->setFlightTime(trackID*1.1); 00323 dstTofTrack->setBeta(trackID*1.11); 00324 00325 log << MSG::INFO 00326 <<" Counter Number = " << dstTofTrack->id() 00327 <<" Time of Flight = " << dstTofTrack->flightTime() 00328 <<" Beta = " << dstTofTrack->beta() 00329 << endreq; 00330 00331 (*dstTofTrackCol).push_back(dstTofTrack); 00332 } 00333 StatusCode sc = eventSvc()->registerObject("/Event/Digi/DstTofTrackCol",dstTofTrackCol); 00334 00335 //Part 7: Retrieve Mdc Track 00336 // register Mdc Track Data Object to TDS; 00337 trackID = 0; 00338 DstMdcTrackCol* dstMdcTrackCol = new DstMdcTrackCol(); 00339 00340 for ( trackID = 0;trackID < 10 ; trackID++) { 00341 log << MSG::INFO << "Mdc Track No: " << trackID << endreq; 00342 00343 DstMdcTrack* dstMdcTrack = new DstMdcTrack(); 00344 00345 dstMdcTrack->setCharge(trackID*100); 00346 dstMdcTrack->setPxy(trackID*1.1); 00347 dstMdcTrack->setPx(trackID*1.11); 00348 00349 log << MSG::INFO 00350 <<" Charge = " << dstMdcTrack->charge() 00351 <<" Pxy = " << dstMdcTrack->pxy() 00352 <<" Px = " << dstMdcTrack->px() 00353 << endreq; 00354 00355 (*dstMdcTrackCol).push_back(dstMdcTrack); 00356 } 00357 sc = eventSvc()->registerObject("/Event/Digi/DstMdcTrackCol",dstMdcTrackCol); 00358 00359 //Part 8: Retrieve Emc Track 00360 // register Tof Track Data Object to TDS; 00361 trackID = 0; 00362 DstEmcShowerCol* dstEmcShowerCol = new DstEmcShowerCol(); 00363 00364 for ( trackID = 0;trackID < 10 ; trackID++) { 00365 log << MSG::INFO << "Emc Track No: " << trackID << endreq; 00366 00367 DstEmcShower* dstEmcShower = new DstEmcShower(); 00368 00369 dstEmcShower->setNumHits(trackID*100); 00370 dstEmcShower->setX(trackID*1.1); 00371 dstEmcShower->setDx(trackID*1.11); 00372 00373 log << MSG::INFO 00374 <<" NumHits = " << dstEmcShower->numHits() 00375 <<" X = " << dstEmcShower->x() 00376 <<" Dx = " << dstEmcShower->dx() 00377 << endreq; 00378 00379 (*dstEmcShowerCol).push_back(dstEmcShower); 00380 } 00381 sc = eventSvc()->registerObject("/Event/Digi/DstEmcShowerCol",dstEmcShowerCol); 00382 00383 //Part 9: Retrieve Muc Track 00384 SmartDataPtr<DstMucTrackCol> dstMucTrackCol(eventSvc(),"/Event/Digi/DstMucTrackCol"); 00385 if (!dstMucTrackCol) { 00386 log << MSG::FATAL << "Could not find Dst Muc Track " << endreq; 00387 return( StatusCode::FAILURE); 00388 } 00389 trackID = 0; 00390 DstMucTrackCol::iterator iter9 = dstMucTrackCol->begin(); 00391 00392 for (;iter9 != dstMucTrackCol->end(); iter9++, trackID++) { 00393 log << MSG::INFO << "Dst Muc Track No.: " << trackID << endreq; 00394 log << MSG::INFO 00395 << " Projected x = " << (*iter9)->xProj() 00396 << " Projected y = " << (*iter9)->yProj() 00397 << " Projected z = " << (*iter9)->zProj() 00398 << endreq; 00399 } 00400 00401 00402 //Part 10: Retrieve Dedx 00403 // register Dedx Data Object to TDS; 00404 trackID = 0; 00405 DstDedxCol* dstDedxCol = new DstDedxCol(); 00406 00407 for ( trackID = 0;trackID < 10 ; trackID++) { 00408 log << MSG::INFO << "Dedx No: " << trackID << endreq; 00409 00410 DstDedx* dstDedx = new DstDedx(); 00411 00412 dstDedx->setParticleId(trackID*100); 00413 dstDedx->setNumSigmaE(trackID*1.1); 00414 dstDedx->setNumSigmaMu(trackID*1.11); 00415 00416 log << MSG::INFO 00417 <<" Particle ID from De/Dx fit = " << dstDedx->particleId() 00418 <<" Number of sigama from e = " << dstDedx->numSigmaE() 00419 <<" Number of sigama from muon = " << dstDedx->numSigmaMu() 00420 << endreq; 00421 00422 (*dstDedxCol).push_back(dstDedx); 00423 } 00424 sc = eventSvc()->registerObject("/Event/Digi/DstDedxCol",dstDedxCol); 00425 */ 00426 return StatusCode::SUCCESS; 00427 }
StatusCode RootIoAlg::finalize | ( | ) |
Definition at line 430 of file RootIoAlg.cxx.
References Bes_Common::INFO, and msgSvc().
00430 { 00431 00432 MsgStream log(msgSvc(), name()); 00433 log << MSG::INFO << "in finalize()" << endreq; 00434 00435 return StatusCode::SUCCESS; 00436 }
StatusCode RootIoAlg::initialize | ( | ) |
Definition at line 53 of file RootIoAlg.cxx.
References Bes_Common::INFO, and msgSvc().
00053 { 00054 00055 MsgStream log(msgSvc(), name()); 00056 log << MSG::INFO << "in initialize()" << endreq; 00057 /* 00058 IMdcGeomSvc* mdcGeomSvc; 00059 StatusCode sc = service("MdcGeomSvc", mdcGeomSvc); 00060 if (sc == StatusCode::SUCCESS) { 00061 std::cout <<"dump"<<std::endl; 00062 mdcGeomSvc->Dump(); 00063 std::cout<<"Hi, event routine is running"<<std::endl; 00064 std::cout<<"1st wire id:"<<mdcGeomSvc->Wire(0)->Id()<<std::endl; 00065 } else { 00066 return StatusCode::FAILURE; 00067 } 00068 */ 00069 return StatusCode::SUCCESS; 00070 }