Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TofRecTDS Class Reference

#include <TofRecTDS.h>

List of all members.

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)


Member Function Documentation

StatusCode TofRecTDS::InitializeTDS  ) 
 

StatusCode TofRecTDS::InitializeTDS  ) 
 

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  ) 
 

StatusCode TofRecTDS::RegisterNullRecTofTrackCol  ) 
 

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
 

StatusCode TofRecTDS::RegisterRecBTofCalHitCol int  runNumber,
int  eventNumber,
std::vector< TofTrack * > *&  tofTrackVec,
std::string  calibData
 

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 }

StatusCode TofRecTDS::RegisterRecETofCalHitCol int  runNumber,
int  eventNumber,
std::vector< TofTrack * > *&  tofTrackVec,
std::string  calibData
 

StatusCode TofRecTDS::RegisterRecETofCalHitCol int  runNumber,
int  eventNumber,
std::vector< TofTrack * > *&  tofTrackVec,
std::string  calibData
 

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 }

StatusCode TofRecTDS::RegisterReconEvent  ) 
 

StatusCode TofRecTDS::RegisterReconEvent  ) 
 

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  ) 
 

StatusCode TofRecTDS::RegisterRecTofTrackCol std::vector< TofTrack * > *&  tofTrackVec  ) 
 

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
 

StatusCode TofRecTDS::RegisterTDS int  runNumber,
int  eventNumber,
std::vector< TofTrack * > *&  tofTrackVec,
bool  m_forCalibration,
std::string  m_calibData
 

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 }


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 19:00:07 2011 for BOSS6.5.5 by  doxygen 1.3.9.1