#include <TofRecTDS.h>
Public Member Functions | |
StatusCode | InitializeTDS () |
StatusCode | RegisterNullRecTofTrackCol () |
StatusCode | RegisterTDS (int runNumber, int eventNumber, std::vector< TofTrack * > *&tofTrackVec, bool m_forCalibration, std::string m_calibData) |
StatusCode | RegisterReconEvent () |
StatusCode | RegisterRecTofTrackCol (std::vector< TofTrack * > *&tofTrackVec) |
StatusCode | RegisterRecBTofCalHitCol (int runNumber, int eventNumber, std::vector< TofTrack * > *&tofTrackVec, std::string calibData) |
StatusCode | RegisterRecETofCalHitCol (int runNumber, int eventNumber, std::vector< TofTrack * > *&tofTrackVec, std::string calibData) |
Definition at line 7 of file TofRecTDS.h.
StatusCode TofRecTDS::InitializeTDS | ( | ) |
Definition at line 15 of file TofRecTDS.cxx.
References RegisterNullRecTofTrackCol(), and RegisterReconEvent().
00015 { 00016 if( RegisterReconEvent() == StatusCode::FAILURE ) return StatusCode::FAILURE; 00017 if( RegisterNullRecTofTrackCol() == StatusCode::FAILURE ) return StatusCode::FAILURE; 00018 return StatusCode::SUCCESS; 00019 }
StatusCode TofRecTDS::RegisterNullRecTofTrackCol | ( | ) |
Definition at line 22 of file TofRecTDS.cxx.
References Bes_Common::FATAL, Bes_Common::INFO, msgSvc(), and EventModel::Recon::RecTofTrackCol.
Referenced by TofRec::execute(), and InitializeTDS().
00022 { 00023 IMessageSvc* msgSvc; 00024 Gaudi::svcLocator()->service("MessageSvc", msgSvc); 00025 MsgStream log(msgSvc, "TofRecTDS"); 00026 log << MSG::INFO << "Initialize: TofRecTDS::RegisterNullRecTofTrack()" << endreq; 00027 00028 IDataProviderSvc* eventSvc; 00029 Gaudi::svcLocator()->service("EventDataSvc", eventSvc); 00030 00031 RecTofTrackCol* recTofTrackCol = new RecTofTrackCol; 00032 00033 // Check whether the RecTofTrackCol has been registered. 00034 StatusCode sc; 00035 DataObject *aRecTofTrackCol; 00036 eventSvc->findObject( "/Event/Recon/RecTofTrackCol", aRecTofTrackCol ); 00037 if( aRecTofTrackCol != NULL ) { 00038 sc = eventSvc->unregisterObject( "/Event/Recon/RecTofTrackCol" ); 00039 if( sc != StatusCode::SUCCESS ) { 00040 log << MSG::FATAL << "Initialize: Could not unregister RecTofTrack collection!" << endreq; 00041 delete recTofTrackCol; 00042 return StatusCode::FAILURE; 00043 } 00044 } 00045 delete aRecTofTrackCol; 00046 00047 sc = eventSvc->registerObject("/Event/Recon/RecTofTrackCol", recTofTrackCol); 00048 if( sc != StatusCode::SUCCESS ) { 00049 log << MSG::FATAL << "Initialize: TofRec could not register Null Rec TOF track collection!" << endreq; 00050 delete recTofTrackCol; 00051 return StatusCode::FAILURE; 00052 } 00053 00054 return StatusCode::SUCCESS; 00055 }
StatusCode TofRecTDS::RegisterRecBTofCalHitCol | ( | int | runNumber, | |
int | eventNumber, | |||
std::vector< TofTrack * > *& | tofTrackVec, | |||
std::string | calibData | |||
) |
Definition at line 156 of file TofRecTDS.cxx.
References DoubleLayer, EastEndcapMRPC, Bes_Common::FATAL, Bes_Common::INFO, InnerLayer, iter(), msgSvc(), EventModel::Recon::RecBTofCalHitCol, and WestEndcapMRPC.
Referenced by RegisterTDS().
00156 { 00157 IMessageSvc* msgSvc; 00158 Gaudi::svcLocator()->service("MessageSvc", msgSvc); 00159 MsgStream log(msgSvc, "TofRecTDS"); 00160 log << MSG::INFO << "TofRecTDS::RegisterRecBTofCalHitCol()" << endreq; 00161 00162 IDataProviderSvc* eventSvc; 00163 Gaudi::svcLocator()->service("EventDataSvc", eventSvc); 00164 00165 RecBTofCalHitCol* recBTofCalHitCol = new RecBTofCalHitCol; 00166 00167 std::vector<TofTrack*>::iterator iter = tofTrackVec->begin(); 00168 for( ; iter < tofTrackVec->end(); iter++ ) { 00169 ExtTrackCase hitcase = (*iter)->hitCase(); 00170 // if( ( hitcase == InnerLayer ) || ( hitcase == OuterLayer ) || ( hitcase == DoubleLayer ) ) { 00171 if( ( hitcase == InnerLayer ) || ( hitcase == DoubleLayer ) ) { 00172 (*iter)->convert2RecBTofCalHitColBarrel( runNumber, eventNumber, recBTofCalHitCol, m_calibData ); 00173 } 00174 if( ( hitcase == EastEndcapMRPC ) || ( hitcase == WestEndcapMRPC ) ) { 00175 (*iter)->convert2RecBTofCalHitColETF( runNumber, eventNumber, recBTofCalHitCol, m_calibData ); 00176 } 00177 } 00178 00179 // Check whether the RecBTofCalHitCol has been registered. 00180 StatusCode scb; 00181 DataObject *aRecBTofCalHitCol; 00182 eventSvc->findObject( "/Event/Recon/RecBTofCalhitCol", aRecBTofCalHitCol ); 00183 if( aRecBTofCalHitCol != NULL ) { 00184 scb = eventSvc->unregisterObject( "/Event/Recon/RecBTofCalHitCol" ); 00185 if( scb != StatusCode::SUCCESS ) { 00186 log << MSG::FATAL << "Could not unregister RecBTofCalHit collection!" << endreq; 00187 00188 RecBTofCalHitCol::iterator iter_btof = recBTofCalHitCol->begin(); 00189 for( ; iter_btof!=recBTofCalHitCol->end(); iter_btof++ ) { 00190 delete (*iter_btof); 00191 } 00192 recBTofCalHitCol->clear(); 00193 delete recBTofCalHitCol; 00194 00195 std::vector<TofTrack*>::iterator iter_data = tofTrackVec->begin(); 00196 for( ; iter_data!=tofTrackVec->end(); iter_data++ ) { 00197 delete (*iter_data); 00198 } 00199 tofTrackVec->clear(); 00200 delete tofTrackVec; 00201 00202 return StatusCode::FAILURE; 00203 } 00204 } 00205 00206 StatusCode sh1 = eventSvc->registerObject("/Event/Recon/RecBTofCalHitCol", recBTofCalHitCol); 00207 if(sh1!=StatusCode::SUCCESS) { 00208 log << MSG::FATAL << "TofRec could not register BTOF CalHit collection!!" << endreq; 00209 RecBTofCalHitCol::iterator iter_btof = recBTofCalHitCol->begin(); 00210 for( ; iter_btof!=recBTofCalHitCol->end(); iter_btof++ ) { 00211 delete (*iter_btof); 00212 } 00213 recBTofCalHitCol->clear(); 00214 delete recBTofCalHitCol; 00215 return StatusCode::FAILURE; 00216 } 00217 00218 return StatusCode::SUCCESS; 00219 }
StatusCode TofRecTDS::RegisterRecETofCalHitCol | ( | int | runNumber, | |
int | eventNumber, | |||
std::vector< TofTrack * > *& | tofTrackVec, | |||
std::string | calibData | |||
) |
Definition at line 222 of file TofRecTDS.cxx.
References abs, EastEndcap, Bes_Common::FATAL, Bes_Common::INFO, iter(), msgSvc(), EventModel::Recon::RecETofCalHitCol, and WestEndcap.
Referenced by RegisterTDS().
00222 { 00223 IMessageSvc* msgSvc; 00224 Gaudi::svcLocator()->service("MessageSvc", msgSvc); 00225 MsgStream log(msgSvc, "TofRecTDS"); 00226 log << MSG::INFO << "TofRecTDS::RegisterRecETofCalHitCol()" << endreq; 00227 00228 IDataProviderSvc* eventSvc; 00229 Gaudi::svcLocator()->service("EventDataSvc", eventSvc); 00230 00231 //sunss add 08/10/16 00232 00233 if( tofTrackVec->size() != 2 ) return StatusCode::SUCCESS; 00234 std::vector<TofTrack*>::iterator iter1 = tofTrackVec->begin(); 00235 std::vector<TofTrack*>::iterator iter2 = iter1+1; 00236 if( (*iter1)->tdc1() < 0.0 || (*iter2)->tdc1() < 0.0 ) return StatusCode::SUCCESS; 00237 if( abs( (*iter1)->tdc1() - (*iter2)->tdc1() ) > 2.0 ) return StatusCode::SUCCESS; 00238 00239 //sunss add 08/10/16 00240 00241 RecETofCalHitCol* recETofCalHitCol = new RecETofCalHitCol; 00242 00243 std::vector<TofTrack*>::iterator iter = tofTrackVec->begin(); 00244 for( ; iter < tofTrackVec->end(); iter++ ) { 00245 ExtTrackCase hitcase = (*iter)->hitCase(); 00246 if( ( hitcase == EastEndcap ) || ( hitcase == WestEndcap ) ) { 00247 (*iter)->convert2RecETofCalHitCol( runNumber, eventNumber, recETofCalHitCol, m_calibData ); 00248 } 00249 } 00250 00251 // Check whether the RecETofCalHitCol has been registered. 00252 StatusCode sce; 00253 00254 DataObject *aRecETofCalHitCol; 00255 eventSvc->findObject( "/Event/Recon/RecETofCalhitCol", aRecETofCalHitCol ); 00256 if( aRecETofCalHitCol != NULL ) { 00257 sce = eventSvc->unregisterObject( "/Event/Recon/RecETofCalHitCol" ); 00258 if( sce != StatusCode::SUCCESS ) { 00259 log << MSG::FATAL << "Could not unregister RecETofCalHit collection!" << endreq; 00260 00261 RecETofCalHitCol::iterator iter_etof = recETofCalHitCol->begin(); 00262 for( ; iter_etof!=recETofCalHitCol->end(); iter_etof++ ) { 00263 delete (*iter_etof); 00264 } 00265 recETofCalHitCol->clear(); 00266 delete recETofCalHitCol; 00267 00268 std::vector<TofTrack*>::iterator iter_data = tofTrackVec->begin(); 00269 for( ; iter_data!=tofTrackVec->end(); iter_data++ ) { 00270 delete (*iter_data); 00271 } 00272 tofTrackVec->clear(); 00273 delete tofTrackVec; 00274 00275 return StatusCode::FAILURE; 00276 } 00277 } 00278 00279 StatusCode sh2 = eventSvc->registerObject("/Event/Recon/RecETofCalHitCol",recETofCalHitCol); 00280 if(sh2!=StatusCode::SUCCESS) { 00281 log << MSG::FATAL << "TofRec could not register ETOF CalHit collection!!" << endreq; 00282 RecETofCalHitCol::iterator iter_etof = recETofCalHitCol->begin(); 00283 for( ; iter_etof!=recETofCalHitCol->end(); iter_etof++ ) { 00284 delete (*iter_etof); 00285 } 00286 recETofCalHitCol->clear(); 00287 delete recETofCalHitCol; 00288 return StatusCode::FAILURE; 00289 } 00290 00291 return StatusCode::SUCCESS; 00292 }
StatusCode TofRecTDS::RegisterReconEvent | ( | ) |
Definition at line 69 of file TofRecTDS.cxx.
References Bes_Common::FATAL, Bes_Common::INFO, and msgSvc().
Referenced by InitializeTDS().
00069 { 00070 IMessageSvc* msgSvc; 00071 Gaudi::svcLocator()->service("MessageSvc", msgSvc); 00072 MsgStream log(msgSvc, "TofRecTDS"); 00073 00074 IDataProviderSvc* eventSvc; 00075 Gaudi::svcLocator()->service("EventDataSvc", eventSvc); 00076 00077 // Register Reconstructed Track To TDS 00078 DataObject *aReconEvent ; 00079 eventSvc->findObject("/Event/Recon",aReconEvent); 00080 if(aReconEvent==NULL) { 00081 log << MSG::INFO << "TofRecTDS::RegisterReconEvent()" << endreq; 00082 aReconEvent = new ReconEvent(); 00083 StatusCode sc = eventSvc->registerObject("/Event/Recon",aReconEvent); 00084 if(sc!=StatusCode::SUCCESS) { 00085 log << MSG::FATAL << "TofRec could not register ReconEvent!" <<endreq; 00086 return StatusCode::FAILURE; 00087 } 00088 } 00089 return StatusCode::SUCCESS; 00090 }
StatusCode TofRecTDS::RegisterRecTofTrackCol | ( | std::vector< TofTrack * > *& | tofTrackVec | ) |
Definition at line 93 of file TofRecTDS.cxx.
References Bes_Common::FATAL, Bes_Common::INFO, iter(), msgSvc(), and EventModel::Recon::RecTofTrackCol.
Referenced by RegisterTDS().
00093 { 00094 IMessageSvc* msgSvc; 00095 Gaudi::svcLocator()->service("MessageSvc", msgSvc); 00096 MsgStream log(msgSvc, "TofRecTDS"); 00097 log << MSG::INFO << "TofRecTDS::RegisterRecTofTrack()" << endreq; 00098 00099 IDataProviderSvc* eventSvc; 00100 Gaudi::svcLocator()->service("EventDataSvc", eventSvc); 00101 00102 RecTofTrackCol* recTofTrackCol = new RecTofTrackCol; 00103 00104 std::vector<TofTrack*>::iterator iter = tofTrackVec->begin(); 00105 for( ; iter < tofTrackVec->end(); iter++ ) { 00106 (*iter)->convert2RecTofTrackCol( recTofTrackCol ); 00107 } 00108 00109 // Check whether the RecTofTrackCol has been registered. 00110 StatusCode sc; 00111 DataObject *aRecTofTrackCol; 00112 eventSvc->findObject( "/Event/Recon/RecTofTrackCol", aRecTofTrackCol ); 00113 if( aRecTofTrackCol != NULL ) { 00114 00115 sc = eventSvc->unregisterObject( "/Event/Recon/RecTofTrackCol" ); 00116 00117 delete aRecTofTrackCol; 00118 00119 if( sc != StatusCode::SUCCESS ) { 00120 log << MSG::FATAL << "Could not unregister RecTofTrack collection!" << endreq; 00121 00122 RecTofTrackCol::iterator iter_tof = recTofTrackCol->begin(); 00123 for( ; iter_tof!=recTofTrackCol->end(); iter_tof++ ) { 00124 delete (*iter_tof); 00125 } 00126 recTofTrackCol->clear(); 00127 delete recTofTrackCol; 00128 00129 std::vector<TofTrack*>::iterator iter_data = tofTrackVec->begin(); 00130 for( ; iter_data!=tofTrackVec->end(); iter_data++ ) { 00131 delete (*iter_data); 00132 } 00133 tofTrackVec->clear(); 00134 delete tofTrackVec; 00135 00136 return StatusCode::FAILURE; 00137 } 00138 } 00139 00140 sc = eventSvc->registerObject("/Event/Recon/RecTofTrackCol", recTofTrackCol); 00141 if( sc != StatusCode::SUCCESS ) { 00142 log << MSG::FATAL << "TofRec could not register Rec TOF track collection!" << endreq; 00143 RecTofTrackCol::iterator iter_tof = recTofTrackCol->begin(); 00144 for( ; iter_tof!=recTofTrackCol->end(); iter_tof++ ) { 00145 delete (*iter_tof); 00146 } 00147 recTofTrackCol->clear(); 00148 delete recTofTrackCol; 00149 return StatusCode::FAILURE; 00150 } 00151 00152 return StatusCode::SUCCESS; 00153 }
StatusCode TofRecTDS::RegisterTDS | ( | int | runNumber, | |
int | eventNumber, | |||
std::vector< TofTrack * > *& | tofTrackVec, | |||
bool | m_forCalibration, | |||
std::string | m_calibData | |||
) |
Definition at line 58 of file TofRecTDS.cxx.
References RegisterRecBTofCalHitCol(), RegisterRecETofCalHitCol(), and RegisterRecTofTrackCol().
Referenced by TofRec::execute().
00058 { 00059 // if( RegisterReconEvent() == StatusCode::FAILURE ) return StatusCode::FAILURE; 00060 if( RegisterRecTofTrackCol( tofTrackVec ) == StatusCode::FAILURE ) return StatusCode::FAILURE; 00061 if( forCalibration ) { 00062 if( RegisterRecBTofCalHitCol( runNumber, eventNumber, tofTrackVec, calibData ) == StatusCode::FAILURE ) return StatusCode::FAILURE; 00063 if( RegisterRecETofCalHitCol( runNumber, eventNumber, tofTrackVec, calibData ) == StatusCode::FAILURE ) return StatusCode::FAILURE; 00064 } 00065 return StatusCode::SUCCESS; 00066 }