#include <RecMakerAlg.h>
Public Member Functions | |
RecMakerAlg (const std::string &name, ISvcLocator *pSvcLocator) | |
StatusCode | initialize () |
StatusCode | execute () |
StatusCode | finalize () |
Definition at line 4 of file RecMakerAlg.h.
RecMakerAlg::RecMakerAlg | ( | const std::string & | name, | |
ISvcLocator * | pSvcLocator | |||
) |
Definition at line 36 of file RecMakerAlg.cxx.
00036 : 00037 Algorithm(name, pSvcLocator) 00038 { 00039 }
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 }