RootIoAlg Class Reference

#include <RootIoAlg.h>

List of all members.

Public Member Functions

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


Detailed Description

Definition at line 5 of file RootIoAlg.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }


Generated on Tue Nov 29 23:35:52 2016 for BOSS_7.0.2 by  doxygen 1.4.7