#include <TofRecTDS.h>
Public Member Functions | |
StatusCode | InitializeTDS () |
StatusCode | InitializeTDS () |
StatusCode | RegisterNullRecTofTrackCol () |
StatusCode | RegisterNullRecTofTrackCol () |
StatusCode | RegisterRecBTofCalHitCol (int runNumber, int eventNumber, std::vector< TofTrack * > *&tofTrackVec, std::string calibData) |
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) |
StatusCode | RegisterRecETofCalHitCol (int runNumber, int eventNumber, std::vector< TofTrack * > *&tofTrackVec, std::string calibData) |
StatusCode | RegisterReconEvent () |
StatusCode | RegisterReconEvent () |
StatusCode | RegisterRecTofTrackCol (std::vector< TofTrack * > *&tofTrackVec) |
StatusCode | RegisterRecTofTrackCol (std::vector< TofTrack * > *&tofTrackVec) |
StatusCode | RegisterTDS (int runNumber, int eventNumber, std::vector< TofTrack * > *&tofTrackVec, bool m_forCalibration, std::string m_calibData) |
StatusCode | RegisterTDS (int runNumber, int eventNumber, std::vector< TofTrack * > *&tofTrackVec, bool m_forCalibration, std::string m_calibData) |
|
|
|
00015 { 00016 if( RegisterReconEvent() == StatusCode::FAILURE ) return StatusCode::FAILURE; 00017 if( RegisterNullRecTofTrackCol() == StatusCode::FAILURE ) return StatusCode::FAILURE; 00018 return StatusCode::SUCCESS; 00019 }
|
|
|
|
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 }
|
|
|
|
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)->convert2RecBTofCalHitCol( runNumber, eventNumber, recBTofCalHitCol, m_calibData ); 00173 } 00174 } 00175 00176 // Check whether the RecBTofCalHitCol has been registered. 00177 StatusCode scb; 00178 DataObject *aRecBTofCalHitCol; 00179 eventSvc->findObject( "/Event/Recon/RecBTofCalhitCol", aRecBTofCalHitCol ); 00180 if( aRecBTofCalHitCol != NULL ) { 00181 scb = eventSvc->unregisterObject( "/Event/Recon/RecBTofCalHitCol" ); 00182 if( scb != StatusCode::SUCCESS ) { 00183 log << MSG::FATAL << "Could not unregister RecBTofCalHit collection!" << endreq; 00184 00185 RecBTofCalHitCol::iterator iter_btof = recBTofCalHitCol->begin(); 00186 for( ; iter_btof!=recBTofCalHitCol->end(); iter_btof++ ) { 00187 delete (*iter_btof); 00188 } 00189 recBTofCalHitCol->clear(); 00190 delete recBTofCalHitCol; 00191 00192 std::vector<TofTrack*>::iterator iter_data = tofTrackVec->begin(); 00193 for( ; iter_data!=tofTrackVec->end(); iter_data++ ) { 00194 delete (*iter_data); 00195 } 00196 tofTrackVec->clear(); 00197 delete tofTrackVec; 00198 00199 return StatusCode::FAILURE; 00200 } 00201 } 00202 00203 StatusCode sh1 = eventSvc->registerObject("/Event/Recon/RecBTofCalHitCol", recBTofCalHitCol); 00204 if(sh1!=StatusCode::SUCCESS) { 00205 log << MSG::FATAL << "TofRec could not register BTOF CalHit collection!!" << endreq; 00206 RecBTofCalHitCol::iterator iter_btof = recBTofCalHitCol->begin(); 00207 for( ; iter_btof!=recBTofCalHitCol->end(); iter_btof++ ) { 00208 delete (*iter_btof); 00209 } 00210 recBTofCalHitCol->clear(); 00211 delete recBTofCalHitCol; 00212 return StatusCode::FAILURE; 00213 } 00214 00215 return StatusCode::SUCCESS; 00216 }
|
|
|
|
00219 { 00220 IMessageSvc* msgSvc; 00221 Gaudi::svcLocator()->service("MessageSvc", msgSvc); 00222 MsgStream log(msgSvc, "TofRecTDS"); 00223 log << MSG::INFO << "TofRecTDS::RegisterRecETofCalHitCol()" << endreq; 00224 00225 IDataProviderSvc* eventSvc; 00226 Gaudi::svcLocator()->service("EventDataSvc", eventSvc); 00227 00228 //sunss add 08/10/16 00229 00230 if( tofTrackVec->size() != 2 ) return StatusCode::SUCCESS; 00231 std::vector<TofTrack*>::iterator iter1 = tofTrackVec->begin(); 00232 std::vector<TofTrack*>::iterator iter2 = iter1+1; 00233 if( (*iter1)->tdc1() < 0.0 || (*iter2)->tdc1() < 0.0 ) return StatusCode::SUCCESS; 00234 if( abs( (*iter1)->tdc1() - (*iter2)->tdc1() ) > 2.0 ) return StatusCode::SUCCESS; 00235 00236 //sunss add 08/10/16 00237 00238 RecETofCalHitCol* recETofCalHitCol = new RecETofCalHitCol; 00239 00240 std::vector<TofTrack*>::iterator iter = tofTrackVec->begin(); 00241 for( ; iter < tofTrackVec->end(); iter++ ) { 00242 ExtTrackCase hitcase = (*iter)->hitCase(); 00243 if( ( hitcase == EastEndcap ) || ( hitcase == WestEndcap ) ) { 00244 (*iter)->convert2RecETofCalHitCol( runNumber, eventNumber, recETofCalHitCol, m_calibData ); 00245 } 00246 } 00247 00248 // Check whether the RecETofCalHitCol has been registered. 00249 StatusCode sce; 00250 00251 DataObject *aRecETofCalHitCol; 00252 eventSvc->findObject( "/Event/Recon/RecETofCalhitCol", aRecETofCalHitCol ); 00253 if( aRecETofCalHitCol != NULL ) { 00254 sce = eventSvc->unregisterObject( "/Event/Recon/RecETofCalHitCol" ); 00255 if( sce != StatusCode::SUCCESS ) { 00256 log << MSG::FATAL << "Could not unregister RecETofCalHit collection!" << endreq; 00257 00258 RecETofCalHitCol::iterator iter_etof = recETofCalHitCol->begin(); 00259 for( ; iter_etof!=recETofCalHitCol->end(); iter_etof++ ) { 00260 delete (*iter_etof); 00261 } 00262 recETofCalHitCol->clear(); 00263 delete recETofCalHitCol; 00264 00265 std::vector<TofTrack*>::iterator iter_data = tofTrackVec->begin(); 00266 for( ; iter_data!=tofTrackVec->end(); iter_data++ ) { 00267 delete (*iter_data); 00268 } 00269 tofTrackVec->clear(); 00270 delete tofTrackVec; 00271 00272 return StatusCode::FAILURE; 00273 } 00274 } 00275 00276 StatusCode sh2 = eventSvc->registerObject("/Event/Recon/RecETofCalHitCol",recETofCalHitCol); 00277 if(sh2!=StatusCode::SUCCESS) { 00278 log << MSG::FATAL << "TofRec could not register ETOF CalHit collection!!" << endreq; 00279 RecETofCalHitCol::iterator iter_etof = recETofCalHitCol->begin(); 00280 for( ; iter_etof!=recETofCalHitCol->end(); iter_etof++ ) { 00281 delete (*iter_etof); 00282 } 00283 recETofCalHitCol->clear(); 00284 delete recETofCalHitCol; 00285 return StatusCode::FAILURE; 00286 } 00287 00288 return StatusCode::SUCCESS; 00289 }
|
|
|
|
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 }
|
|
|
|
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 }
|
|
|
|
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 }
|