#include <DstEventMaker.h>
Public Member Functions | |
DstEventMaker (const std::string &name, ISvcLocator *pSvcLocator) | |
StatusCode | initialize () |
StatusCode | execute () |
StatusCode | finalize () |
Definition at line 4 of file DstEventMaker.h.
DstEventMaker::DstEventMaker | ( | const std::string & | name, | |
ISvcLocator * | pSvcLocator | |||
) |
Definition at line 55 of file DstEventMaker.cxx.
00055 : 00056 Algorithm(name, pSvcLocator) 00057 { 00058 // Declare the properties 00059 // declareProperty("FittingMethod", m_fittingMethod = 2); 00060 // declareProperty("ConfigFile", m_configFile = "MDCConfig.xml"); 00061 }
StatusCode DstEventMaker::execute | ( | ) |
Definition at line 73 of file DstEventMaker.cxx.
References EventModel::Dst::DstEmcShowerCol, EventModel::Dst::DstExtTrackCol, EventModel::Dst::DstMdcDedxCol, EventModel::Dst::DstMdcKalTrackCol, EventModel::Dst::DstMdcTrackCol, EventModel::Dst::DstMucTrackCol, EventModel::Dst::DstTofTrackCol, EventModel::Dst::Event, Bes_Common::FATAL, genRecEmupikp::i, 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 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader"); 00081 if (!eventHeader) { 00082 log << MSG::FATAL << "Could not find Event Header" << endreq; 00083 return( StatusCode::FAILURE); 00084 } 00085 00086 00087 int eventId = eventHeader->eventNumber() ; 00088 int runId = eventHeader->runNumber(); 00089 log << MSG::INFO << "DstEventMaker: retrieved event: " <<" Event Number "<< eventId << " run: " <<runId << endreq; 00090 00091 StatusCode sc = StatusCode::SUCCESS ; 00092 int trackID; 00093 00094 // register ReconEvent Data Object to TDS; 2005/09/14 00095 DstEvent* dstEvt = new DstEvent(); 00096 //dstEvt->setEventId(eventId); 00097 //dstEvt->setRunId(runId); 00098 sc = eventSvc()->registerObject(EventModel::Dst::Event, dstEvt); 00099 00100 00101 //Part 2: Retrieve Mdc Track 00102 SmartDataPtr<RecMdcTrackCol> recMdcTrackCol(eventSvc(),"/Event/Recon/RecMdcTrackCol"); 00103 if (!recMdcTrackCol) { 00104 log << MSG::INFO << "Could not find RecMdcTrackCol" << endreq; 00105 } else { 00106 DstMdcTrackCol* dstMdcTrackCol = new DstMdcTrackCol(); 00107 RecMdcTrackCol::iterator iter_mdc = recMdcTrackCol->begin(); 00108 trackID = 0; 00109 for (;iter_mdc != recMdcTrackCol->end(); iter_mdc++, trackID++) { 00110 DstMdcTrack* dstMdcTrack = new DstMdcTrack(); 00111 *dstMdcTrack = **iter_mdc; 00112 (*dstMdcTrackCol).push_back(dstMdcTrack); 00113 00114 log << MSG::INFO 00115 << " Mdc Track ID = " << trackID 00116 << " Mdc Track Nster = " << (*iter_mdc)->nster() 00117 << endreq; 00118 } 00119 sc = eventSvc()->registerObject(EventModel::Dst::DstMdcTrackCol,dstMdcTrackCol); 00120 } 00121 00122 //Part 3: Retrieve Tof Track 00123 SmartDataPtr<RecTofTrackCol> tofTrackCol(eventSvc(),"/Event/Recon/RecTofTrackCol"); 00124 if ( !tofTrackCol ) { 00125 log << MSG::INFO << "Could not find TofTrackCol" << endreq; 00126 } 00127 else { 00128 DstTofTrackCol* dstTofTrackCol = new DstTofTrackCol(); 00129 RecTofTrackCol::iterator iter_tof = tofTrackCol->begin(); 00130 for( ; iter_tof != tofTrackCol->end(); iter_tof++ ) { 00131 DstTofTrack* dstTofTrack = new DstTofTrack(); 00132 *dstTofTrack = **iter_tof; 00133 (*dstTofTrackCol).push_back(dstTofTrack); 00134 00135 log << MSG::INFO 00136 << "Tof Track ID = " << (*iter_tof)->tofTrackID() 00137 << " Track ID = " << (*iter_tof)->trackID() 00138 << " Tof Counter ID = "<<(*iter_tof)->tofID() 00139 << " Quality = "<< (*iter_tof)->quality() 00140 << endreq; 00141 } 00142 sc = eventSvc()->registerObject(EventModel::Dst::DstTofTrackCol,dstTofTrackCol); 00143 } 00144 00145 00146 //Part 4: Retrieve Muc Track 00147 SmartDataPtr<RecMucTrackCol> mucTrackCol(eventSvc(),"/Event/Recon/RecMucTrackCol"); 00148 if (!mucTrackCol) { 00149 log <<MSG::INFO << "Could not find RecMucTrackCol" << endreq; 00150 } else { 00151 DstMucTrackCol* dstMucTrackCol = new DstMucTrackCol(); 00152 RecMucTrackCol::iterator iter_muc = mucTrackCol->begin(); 00153 trackID = 0; 00154 for (;iter_muc != mucTrackCol->end(); iter_muc++, trackID++) { 00155 DstMucTrack* dstMucTrack = new DstMucTrack(); 00156 *dstMucTrack = **iter_muc; 00157 (*dstMucTrackCol).push_back(dstMucTrack); 00158 log<< MSG::INFO 00159 << "Muc Track ID = " << trackID 00160 << " Muc NumHits = " << (*iter_muc)->GetTotalHits() 00161 << " Muc Pos x = " << (*iter_muc)->getMucPos().x() 00162 << " Muc Pos y = " << (*iter_muc)->getMucPos().y() 00163 << " Muc Pos z = " << (*iter_muc)->getMucPos().z() 00164 << endreq; 00165 } 00166 sc = eventSvc()->registerObject(EventModel::Dst::DstMucTrackCol,dstMucTrackCol); 00167 } 00168 00169 00170 //Part 5: Retrieve MdcDedx Track 00171 00172 SmartDataPtr<RecMdcDedxCol> mdcDedxCol(eventSvc(),"/Event/Recon/RecMdcDedxCol"); 00173 if (!mdcDedxCol) { 00174 log <<MSG::INFO << "Could not find RecMdcDedxCol" << endreq; 00175 } else { 00176 trackID = 0; 00177 DstMdcDedxCol* dstMdcDedxCol = new DstMdcDedxCol(); 00178 RecMdcDedxCol::iterator iter_dedx = mdcDedxCol->begin(); 00179 for (;iter_dedx != mdcDedxCol->end(); iter_dedx++, trackID++) { 00180 DstMdcDedx* dstMdcDedx = new DstMdcDedx(); 00181 *dstMdcDedx = **iter_dedx; 00182 (*dstMdcDedxCol).push_back(dstMdcDedx); 00183 log << MSG::INFO 00184 << " Dedx TrackID = "<< trackID 00185 // << " Num Sigma E = " << (*iter_dedx)->getSigmaDedx(1) 00186 // << " Num Sigma Mu = " << (*iter_dedx)->getSigmaDedx(2) 00187 << endreq; 00188 } 00189 sc = eventSvc()->registerObject(EventModel::Dst::DstMdcDedxCol,dstMdcDedxCol); 00190 } 00191 00192 00193 00194 //Part 6: Retrieve Emc shower 00195 00196 SmartDataPtr<RecEmcShowerCol> emcRecShowerCol(eventSvc(),"/Event/Recon/RecEmcShowerCol"); 00197 if (!emcRecShowerCol) { 00198 log <</* MSG::FATAL*/MSG::INFO << "Could not find RecEmcShowerCol" << endreq; 00199 // return( StatusCode::FAILURE); 00200 } 00201 else { 00202 trackID = 0; 00203 DstEmcShowerCol* dstEmcTrackCol = new DstEmcShowerCol(); 00204 RecEmcShowerCol::iterator iter_emc = emcRecShowerCol->begin(); 00205 for (;iter_emc != emcRecShowerCol->end(); iter_emc++, trackID++) { 00206 DstEmcShower* dstEmcTrack = new DstEmcShower(*(*iter_emc)); 00207 (*dstEmcTrackCol).push_back(dstEmcTrack); 00208 log << MSG::INFO 00209 << " Emc Track Id = " << trackID 00210 //<< " Emc Shower Cell Id = " << (*iter_emc)->ShowerId() 00211 << endreq; 00212 } 00213 sc = eventSvc()->registerObject(EventModel::Dst::DstEmcShowerCol,dstEmcTrackCol); 00214 } 00215 00216 //Part 7: Retrieve Ext shower 00217 00218 SmartDataPtr<RecExtTrackCol> extTrackCol(eventSvc(),"/Event/Recon/RecExtTrackCol"); 00219 if (!extTrackCol) { 00220 log <</* MSG::FATAL*/MSG::INFO << "Could not find RecExtTrackCol" << endreq; 00221 //return( StatusCode::FAILURE); 00222 } 00223 else { 00224 trackID = 0; 00225 DstExtTrackCol* dstExtTrackCol = new DstExtTrackCol(); 00226 RecExtTrackCol::iterator iter_ext = extTrackCol->begin(); 00227 for (;iter_ext != extTrackCol->end(); iter_ext++, trackID++) { 00228 DstExtTrack* dstExtTrack = new DstExtTrack(); 00229 *dstExtTrack = **iter_ext; 00230 (*dstExtTrackCol).push_back(dstExtTrack); 00231 log << MSG::INFO 00232 << " Ext Track Id = " << trackID 00233 << "volume name of Tof1 : " << (*iter_ext)->tof1VolumeName() 00234 <<" Ext Tof1 Error Z = " << (*iter_ext)->tof1PosSigmaAlongZ() 00235 <<" Ext Tof2 Error Z = " << (*iter_ext)->tof2PosSigmaAlongZ() 00236 <<" Ext Emc Error theta = " << (*iter_ext)->emcPosSigmaAlongTheta() 00237 <<" Ext Muc Error Z = " << (*iter_ext)->mucPosSigmaAlongZ() 00238 << endreq; 00239 } 00240 00241 sc = eventSvc()->registerObject(EventModel::Dst::DstExtTrackCol,dstExtTrackCol); 00242 } 00243 //Part 8: Retrieve MdcKal track 00244 00245 SmartDataPtr<RecMdcKalTrackCol> mdcKalTrackCol(eventSvc(),"/Event/Recon/RecMdcKalTrackCol"); 00246 if (!mdcKalTrackCol) { 00247 log <</* MSG::FATAL*/ MSG::INFO<< "Could not find MdcKalTrackCol" << endreq; 00248 //return( StatusCode::FAILURE); 00249 } 00250 else { 00251 trackID = 0; 00252 int nhits[5]; 00253 int stat[2][5]; 00254 float chisq[2][5]; 00255 int ndf[2][5]; 00256 int nster[2][5]; 00257 int fL[2][5]; 00258 int lL[2][5]; 00259 00260 DstMdcKalTrackCol* dstMdcKalTrackCol = new DstMdcKalTrackCol(); 00261 RecMdcKalTrackCol::iterator iter_kal = mdcKalTrackCol->begin(); 00262 for (;iter_kal != mdcKalTrackCol->end(); iter_kal++, trackID++) { 00263 DstMdcKalTrack* dstMdcKalTrack = new DstMdcKalTrack(); 00264 *dstMdcKalTrack = **iter_kal; 00265 00266 /* 00267 for (int i=0; i<5; i++){ 00268 nhits[i] = (*iter_kal)->getNhits(i); 00269 stat[i] = (*iter_kal)->getStat(0,i); 00270 chisq[i] = (*iter_kal)->getChisq(0,i); 00271 ndf[i] = (*iter_kal)->getNdf(0,i); 00272 nster[i] = (*iter_kal)->getNster(0,i); 00273 fL[i] = (*iter_kal)->getFirstLayer(0,i); 00274 lL[i] = (*iter_kal)->getLastLayer(0,i); 00275 00276 dstMdcKalTrack->setNhits(nhits[i],i); 00277 dstMdcKalTrack->setStat(stat[i],i); 00278 dstMdcKalTrack->setChisq(chisq[i],i); 00279 dstMdcKalTrack->setNdf(ndf[i],i); 00280 dstMdcKalTrack->setNster(nster[i],i); 00281 dstMdcKalTrack->setFirstLayer(fL[i],i); 00282 dstMdcKalTrack->setLastLayer(lL[i],i); 00283 } 00284 dstMdcKalTrack->setTrackId((*iter_kal)->getTrackId()); 00285 00286 for(int j=0; j<5; j++){ 00287 dstMdcKalTrack->setPoca((*iter_kal)->getPoca(j),j); 00288 dstMdcKalTrack->setZHelix((*iter_kal)->getZHelix(j),j); 00289 dstMdcKalTrack->setZError((*iter_kal)->getZError(j),j); 00290 } 00291 00292 */ 00293 00294 (*dstMdcKalTrackCol).push_back(dstMdcKalTrack); 00295 00296 log<<MSG::INFO<<" * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endreq; 00297 for(int i =0 ; i < 5; i++){ 00298 log << MSG::INFO<<"dstMdcKalTrack ZHelix["<<i<<"] = " <<dstMdcKalTrack->getZHelix(i) <<endreq; 00299 log << MSG::INFO << "number of total hits contained ["<<i<<"]"<<nhits[i]<<endreq; 00300 log << MSG::INFO<< "status flag ["<<i<<"]"<<stat[i]<<endreq; 00301 log << MSG::INFO<< "dstMdcKalTrack ZError ["<<i<<"]"<<dstMdcKalTrack->getZError(i)<<endreq; 00302 log << MSG::INFO<< "dstMdcKalTrack Poca ["<<i<<"]"<<dstMdcKalTrack->getPoca(i)<<endreq; 00303 } 00304 } 00305 sc = eventSvc()->registerObject(EventModel::Dst::DstMdcKalTrackCol, dstMdcKalTrackCol); 00306 } 00307 00308 return sc; 00309 }
StatusCode DstEventMaker::finalize | ( | ) |
Definition at line 312 of file DstEventMaker.cxx.
References Bes_Common::INFO, and msgSvc().
00312 { 00313 00314 MsgStream log(msgSvc(), name()); 00315 log << MSG::INFO << "in finalize()" << endreq; 00316 00317 return StatusCode::SUCCESS; 00318 }
StatusCode DstEventMaker::initialize | ( | ) |
Definition at line 64 of file DstEventMaker.cxx.
References Bes_Common::INFO, and msgSvc().
00064 { 00065 00066 MsgStream log(msgSvc(), name()); 00067 log << MSG::INFO << "in initialize()" << endreq; 00068 00069 return StatusCode::SUCCESS; 00070 }