00001 #ifndef TOFSIMSVC_H 00002 #define TOFSIMSVC_H 00003 00004 #include "GaudiKernel/Service.h" 00005 #include "GaudiKernel/IInterface.h" 00006 #include "GaudiKernel/Property.h" 00007 #include "GaudiKernel/IIncidentListener.h" 00008 #include "GaudiKernel/IDataProviderSvc.h" 00009 #include "TofSimSvc/ITofSimSvc.h" 00010 #include "TofSimSvc/TofConst.h" 00011 #include "TofSimSvc/BTofSim.h" 00012 #include "TofSimSvc/ETofSim.h" 00013 00014 class TofSimSvc : public Service, virtual public ITofSimSvc,virtual public IIncidentListener 00015 { 00016 public: 00017 // Constructors and destructors 00018 TofSimSvc( const std::string& name, ISvcLocator* svcloc ); 00019 ~TofSimSvc(); 00020 00021 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvUnknown); 00022 virtual StatusCode initialize ( ); 00023 virtual StatusCode finalize ( ); 00024 void handle(const Incident&); 00025 00026 const double BarLowThres(); 00027 const double BarHighThres(); 00028 const double EndLowThres(); 00029 const double EndHighThres(); 00030 const double BarPMTGain(); 00031 const double EndPMTGain(); 00032 const double BarConstant(); 00033 const double EndConstant(); 00034 const double EndNoiseSwitch(); 00035 00036 const double BarGain1(unsigned int id); 00037 const double BarGain2(unsigned int id); 00038 const double EndGain(unsigned int id); 00039 const double BarAttenLength(unsigned int id); 00040 const double EndAttenLength(unsigned int id); 00041 const double EndNoiseSmear(unsigned int id); 00042 00043 void Dump(); 00044 00045 private: 00046 StatusCode FillfromDatabase(); 00047 bool m_hasbeeninitialized; 00048 00049 private: 00050 IDataProviderSvc* m_pSimDataSvc; 00051 IntegerProperty m_run; 00052 00053 std::vector<TofConst*> fTofConst; 00054 std::vector<BTofSim*> fBTofSim; 00055 std::vector<ETofSim*> fETofSim; 00056 00057 }; 00058 00059 #endif // TOFSIMSVC