RecMakerAlg Class Reference

#include <RecMakerAlg.h>

List of all members.

Public Member Functions

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


Detailed Description

Definition at line 4 of file RecMakerAlg.h.


Constructor & Destructor Documentation

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

Definition at line 36 of file RecMakerAlg.cxx.

00036                                                                         :
00037   Algorithm(name, pSvcLocator)
00038 {
00039 }


Member Function Documentation

StatusCode RecMakerAlg::execute (  ) 

Definition at line 51 of file RecMakerAlg.cxx.

References Bes_Common::FATAL, Bes_Common::INFO, msgSvc(), EventModel::Recon::RecEmcShowerCol, EventModel::Recon::RecExtTrackCol, EventModel::Recon::RecMdcDedxCol, EventModel::Recon::RecMdcKalTrackCol, EventModel::Recon::RecMdcTrackCol, EventModel::Recon::RecMucTrackCol, and EventModel::Recon::RecTofTrackCol.

00051                                 {
00052 
00053   MsgStream log(msgSvc(), name());
00054   log << MSG::INFO << "in execute()" << endreq;
00055 
00056   // Get the event header, print out event and run number
00057   
00058   SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
00059   if (!eventHeader) {
00060     log << MSG::FATAL << "Could not find Event Header" << endreq;
00061     return( StatusCode::FAILURE);
00062   }
00063 
00064   int eventId = eventHeader->eventNumber() ;
00065   int runId = eventHeader->runNumber();
00066   log << MSG::INFO << "event: " << eventId 
00067       << "  run: " <<runId  << endreq;
00068   
00069   StatusCode sc = StatusCode::SUCCESS ;
00070   int trackID;
00071 
00072   // Retrieve Mdc Track 
00073   SmartDataPtr<RecMdcTrackCol> recMdcTrackCol(eventSvc(),"/Event/Recon/RecMdcTrackCol");
00074   if(!recMdcTrackCol)
00075   {
00076     log << MSG::INFO << "Could not find RecMdcTrackCol" << endreq;
00077     SmartDataPtr<DstMdcTrackCol> dstMdcTrackCol(eventSvc(),"/Event/Dst/DstMdcTrackCol");
00078     if (!dstMdcTrackCol) {
00079       log << MSG::INFO << "Could not find DstMdcTrackCol" << endreq;
00080     } 
00081     else {
00082       RecMdcTrackCol* recMdcTrackCol = new RecMdcTrackCol();
00083       DstMdcTrackCol::iterator iter_mdc = dstMdcTrackCol->begin();
00084       trackID = 0;
00085       for (;iter_mdc != dstMdcTrackCol->end(); iter_mdc++, trackID++) {
00086         RecMdcTrack* recMdcTrack = new RecMdcTrack(); 
00087         *recMdcTrack = **iter_mdc;
00088         (*recMdcTrackCol).push_back(recMdcTrack);
00089         log << MSG::INFO 
00090                 << " Mdc Track ID = " << trackID
00091                   << " Mdc Track Nster = " << (*iter_mdc)->nster()
00092                   << endreq; 
00093       } 
00094       sc = eventSvc()->registerObject(EventModel::Recon::RecMdcTrackCol,recMdcTrackCol);
00095     }
00096   }
00097 
00098   // Retrieve MdcKal track 
00099   SmartDataPtr<RecMdcKalTrackCol> recMdcKalTrackCol(eventSvc(),"/Event/Recon/RecMdcKalTrackCol");
00100   if (!recMdcKalTrackCol) {
00101     log << MSG::INFO << "Could not find RecMdcKalTrackCol" << endreq;
00102     SmartDataPtr<DstMdcKalTrackCol> dstMdcKalTrackCol(eventSvc(),"/Event/Dst/DstMdcKalTrackCol");
00103     if(!dstMdcKalTrackCol) {
00104       log << MSG::INFO << "Could not find DstMdcKalTrackCol" << endreq;
00105     }
00106     else {
00107       RecMdcKalTrackCol* recMdcKalTrackCol = new RecMdcKalTrackCol();
00108       DstMdcKalTrackCol::iterator iter_mdc = dstMdcKalTrackCol->begin();
00109       trackID = 0;
00110       for (;iter_mdc != dstMdcKalTrackCol->end(); iter_mdc++, trackID++) {
00111         RecMdcKalTrack* recMdcKalTrack = new RecMdcKalTrack();
00112         *recMdcKalTrack = **iter_mdc;
00113         (*recMdcKalTrackCol).push_back(recMdcKalTrack);
00114         log << MSG::INFO
00115             << " MdcKalTrack ID = " << trackID
00116             << " MdcKalTrack Nster = " << (*iter_mdc)->nster()
00117             << " MdcKalTrack poca = " << (*iter_mdc)->poca()
00118             << endreq;
00119       }
00120       sc = eventSvc()->registerObject(EventModel::Recon::RecMdcKalTrackCol, recMdcKalTrackCol); 
00121     }
00122   }
00123 
00124   // Retrieve MdcDedx 
00125   SmartDataPtr<RecMdcDedxCol> recMdcDedxCol(eventSvc(),"/Event/Recon/RecMdcDedxCol");
00126   if (!recMdcDedxCol) {
00127     log <<MSG::INFO << "Could not find RecMdcDedxCol" << endreq;
00128     SmartDataPtr<DstMdcDedxCol> dstMdcDedxCol(eventSvc(),"/Event/Dst/DstMdcDedxCol");
00129     if(!dstMdcDedxCol) {
00130       log <<MSG::INFO << "Could not find DstMdcDedxCol" << endreq;
00131     }
00132     else {
00133       RecMdcDedxCol* recMdcDedxCol = new RecMdcDedxCol();
00134       DstMdcDedxCol::iterator iter_mdc = dstMdcDedxCol->begin();
00135       trackID=0;
00136       for (;iter_mdc != dstMdcDedxCol->end(); iter_mdc++, trackID++) {
00137         RecMdcDedx* recMdcDedx = new RecMdcDedx();
00138         *recMdcDedx= **iter_mdc;
00139         (*recMdcDedxCol).push_back(recMdcDedx);
00140         log << MSG::INFO
00141             << " MdcDedx ID = " << trackID
00142             << " MdcDedx " 
00143             << endreq;
00144       }
00145       sc = eventSvc()->registerObject(EventModel::Recon::RecMdcDedxCol, recMdcDedxCol);
00146     }
00147   } 
00148   
00149   // Retrieve Ext track 
00150   SmartDataPtr<RecExtTrackCol> recExtTrackCol(eventSvc(),"/Event/Recon/RecExtTrackCol");
00151   if (!recExtTrackCol) {
00152     log <<MSG::INFO << "Could not find RecExtTrackCol" << endreq;
00153     SmartDataPtr<DstExtTrackCol> dstExtTrackCol(eventSvc(),"/Event/Dst/DstExtTrackCol");
00154     if(!dstExtTrackCol) {
00155       log <<MSG::INFO << "Could not find DstExtTrackCol" << endreq;
00156     }
00157     else {
00158       RecExtTrackCol* recExtTrackCol = new RecExtTrackCol();
00159       DstExtTrackCol::iterator iter_ext = dstExtTrackCol->begin();
00160       trackID=0;
00161       for (;iter_ext != dstExtTrackCol->end(); iter_ext++, trackID++) {
00162         RecExtTrack* recExtTrack = new RecExtTrack();
00163         *recExtTrack = **iter_ext;
00164         (*recExtTrackCol).push_back(recExtTrack);
00165         log << MSG::INFO
00166             << " ExtTrack ID = " << trackID
00167             << endreq;
00168       }
00169       sc = eventSvc()->registerObject(EventModel::Recon::RecExtTrackCol, recExtTrackCol);
00170     }
00171   }
00172       
00173   // Retrieve Tof Track 
00174   SmartDataPtr<RecTofTrackCol> tofTrackCol(eventSvc(),"/Event/Recon/RecTofTrackCol");
00175   if ( !tofTrackCol ) {
00176     log << MSG::INFO << "Could not find TofTrackCol" << endreq;
00177     SmartDataPtr<DstTofTrackCol> dstTofTrackCol(eventSvc(),"/Event/Dst/DstTofTrackCol");
00178     if(!dstTofTrackCol) {
00179       log << MSG::INFO << "Could not find DstTofTrackCol" << endreq;
00180     }
00181     else {
00182       RecTofTrackCol* recTofTrackCol = new RecTofTrackCol();
00183       DstTofTrackCol::iterator iter_tof = dstTofTrackCol->begin();
00184       for (;iter_tof != dstTofTrackCol->end(); iter_tof++) {
00185         RecTofTrack* recTofTrack = new RecTofTrack();
00186         *recTofTrack = **iter_tof;
00187         (*recTofTrackCol).push_back(recTofTrack);
00188         log << MSG::INFO
00189             << "Tof Track ID = " << (*iter_tof)->tofTrackID()
00190             << " Track ID = " << (*iter_tof)->trackID()
00191             << " Tof Counter ID = "<<(*iter_tof)->tofID()
00192             << " Quality = "<< (*iter_tof)->quality()
00193             << endreq;
00194       }
00195       sc = eventSvc()->registerObject(EventModel::Recon::RecTofTrackCol, recTofTrackCol);
00196     }
00197   }
00198 
00199 
00200   // Retrieve Emc shower 
00201   SmartDataPtr<RecEmcShowerCol> recEmcShowerCol(eventSvc(),"/Event/Recon/RecEmcShowerCol");
00202   if (!recEmcShowerCol) {
00203     log << MSG::INFO << "Could not find RecEmcShowerCol" << endreq;
00204     SmartDataPtr<DstEmcShowerCol> dstEmcShowerCol(eventSvc(),"/Event/Dst/DstEmcShowerCol");
00205     if(!dstEmcShowerCol) {
00206       log << MSG::INFO << "Could not find DstEmcShowerCol" << endreq;
00207     }
00208     else {
00209       RecEmcShowerCol* recEmcShowerCol = new RecEmcShowerCol();
00210       DstEmcShowerCol::iterator iter_emc = dstEmcShowerCol->begin();
00211       trackID=0;
00212       for (;iter_emc != dstEmcShowerCol->end(); iter_emc++, trackID++) {
00213         RecEmcShower* recEmcShower = new RecEmcShower();
00214         *recEmcShower = **iter_emc;
00215         (*recEmcShowerCol).push_back(recEmcShower);
00216         log << MSG::INFO
00217             << " EmcShower ID = " << trackID
00218             << " EmcShower energy = " << (*iter_emc)->energy()
00219             << endreq;
00220       }
00221       sc = eventSvc()->registerObject(EventModel::Recon::RecEmcShowerCol, recEmcShowerCol);
00222     }
00223   }
00224 
00225   // Retrieve Muc Track 
00226   SmartDataPtr<RecMucTrackCol> recMucTrackCol(eventSvc(),"/Event/Recon/RecMucTrackCol");
00227   if (!recMucTrackCol) {
00228     log <<MSG::INFO << "Could not find RecMucTrackCol" << endreq;
00229     SmartDataPtr<DstMucTrackCol> dstMucTrackCol(eventSvc(),"/Event/Dst/DstMucTrackCol");
00230     if(!dstMucTrackCol) {
00231       log <<MSG::INFO << "Could not find DstMucTrackCol" << endreq;
00232     }
00233     else {
00234       RecMucTrackCol* recMucTrackCol = new RecMucTrackCol();
00235       DstMucTrackCol::iterator iter_muc = dstMucTrackCol->begin();
00236       trackID=0;
00237       for (;iter_muc != dstMucTrackCol->end(); iter_muc++, trackID++) {
00238         RecMucTrack* recMucTrack = new RecMucTrack();
00239         *recMucTrack = **iter_muc;
00240         (*recMucTrackCol).push_back(recMucTrack);
00241         log << MSG::INFO
00242             << " MucTrack ID = "<< trackID
00243             <<endreq;
00244       }
00245       sc = eventSvc()->registerObject(EventModel::Recon::RecMucTrackCol, recMucTrackCol);
00246     }
00247   }
00248   return sc;
00249 }

StatusCode RecMakerAlg::finalize (  ) 

Definition at line 252 of file RecMakerAlg.cxx.

References Bes_Common::INFO, and msgSvc().

00252                                  {
00253 
00254   MsgStream log(msgSvc(), name());
00255   log << MSG::INFO << "in finalize()" << endreq;
00256 
00257   return StatusCode::SUCCESS;
00258 }

StatusCode RecMakerAlg::initialize (  ) 

Definition at line 42 of file RecMakerAlg.cxx.

References Bes_Common::INFO, and msgSvc().

00042                                   {
00043 
00044   MsgStream log(msgSvc(), name());
00045   log << MSG::INFO << "in initialize()" << endreq;
00046 
00047   return StatusCode::SUCCESS;
00048 }


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