00001 #ifndef TOFRAWDATAPROVIDER_H 00002 #define TOFRAWDATAPROVIDER_H 00003 00004 #include "GaudiKernel/ISvcLocator.h" 00005 #include "GaudiKernel/IMessageSvc.h" 00006 #include "GaudiKernel/IIncidentListener.h" 00007 #include "RawDataProviderSvc/RawDataProviderBase.h" 00008 #include "RawDataProviderSvc/TofData.h" 00009 00010 00011 const double timeDiff = 20.0; 00012 const double tClockDiff = 1.0; 00013 const double timeForward = 120.0; 00014 const double timeBackward = 24.0; 00015 const double tClockForward = 5.0; 00016 const double tClockBackward = 1.0; 00017 00018 const double timeDiffMRPC = 5.0; 00019 const double totForward = 0.0; 00020 const double totBackward = 50.0; 00021 00022 // RawDataProvider for TOF 00023 // author: Sun Shengsen 00024 class TofRawDataProvider : public RawDataProviderBase{ 00025 public: 00026 TofRawDataProvider(); 00027 TofRawDataProvider( const char* name ); 00028 ~TofRawDataProvider(); 00029 00030 // initialize service point 00031 StatusCode initialize( bool mode= false, ISvcLocator* svcLoc=0, IMessageSvc* pMsg=0 ); 00032 00033 // Incident handler 00034 void handle(const Incident&); 00035 00036 // get multimap or vector of the TofData 00037 void tofDataMapFull(); 00038 00039 // online mode 00040 TofDataMap& tofDataMapOnlineMode(uint32_t control=1); 00041 TofDataVector& tofDataVectorOnlineMode(uint32_t control=1); 00042 00043 // event start time 00044 TofDataMap& tofDataMapEstime(); 00045 TofDataVector& tofDataVectorEstime(); 00046 00047 // tof reconstruction 00048 TofDataMap& tofDataMapTof( double estime = 0.0 ); 00049 TofDataVector& tofDataVectorTof( double estime = 0.0 ); 00050 00051 // emc reconstruction 00052 TofDataMap& tofDataMapEmc( double estime = 0.0 ); 00053 TofDataVector& tofDataVectorEmc( double estime = 0.0 ); 00054 00055 private: 00056 int m_run, m_event; 00057 bool m_hasFilled; 00058 TofDataMap m_tofDataMap; // storage of result 00059 // OnlineMode 00060 TofDataMap m_tofDataMapOnline; 00061 TofDataVector m_tofDataVectorOnline; 00062 // Event Start Time 00063 TofDataMap m_tofDataMapEstime; 00064 TofDataVector m_tofDataVectorEstime; 00065 // TOF Reconstruction 00066 TofDataMap m_tofDataMapTof; 00067 TofDataVector m_tofDataVectorTof; 00068 // EMC Reconstruction using energy deposit in TOF 00069 TofDataMap m_tofDataMapEmc; 00070 TofDataVector m_tofDataVectorEmc; 00071 00072 }; 00073 #endif