00001
00002
00003
00004 #ifndef TOFQELECSVC_H
00005 #define TOFQELECSVC_H
00006
00007 #include "GaudiKernel/Service.h"
00008 #include "GaudiKernel/IInterface.h"
00009 #include "GaudiKernel/Property.h"
00010 #include "GaudiKernel/IIncidentListener.h"
00011 #include "GaudiKernel/IDataProviderSvc.h"
00012 #include "TofQElecSvc/ITofQElecSvc.h"
00013 #include "CalibData/Tof/TofElecData.h"
00014 #include "CalibData/Tof/BarrelElec.h"
00015 #include "CalibData/Tof/EndcapElec.h"
00016
00017 class TofQElecSvc : public Service, virtual public ITofQElecSvc,virtual public IIncidentListener
00018 {
00019 public:
00020
00021 TofQElecSvc( const std::string& name, ISvcLocator* svcloc );
00022 ~TofQElecSvc();
00023
00024 virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvUnknown);
00025 virtual StatusCode initialize ( );
00026 virtual StatusCode finalize ( );
00027
00028 void handle(const Incident&);
00029
00030 const unsigned int Board( bool barrel, int id, bool eastEnd );
00031 const unsigned int Crate( bool barrel, int id, bool eastEnd );
00032 const unsigned int Fee( bool barrel, int id, bool eastEnd );
00033 const unsigned int Channel( bool barrel, int id, bool eastEnd );
00034 const double BQTC1(int id, double q);
00035 const double BQTC2(int id, double q);
00036 const double EQTC(int id, double q);
00037 const double BQChannel1(int id, double qtc);
00038 const double BQChannel2(int id, double qtc);
00039 const double EQChannel(int id, double qtc);
00040
00041 private:
00042 StatusCode FillfromDatabase();
00043 bool m_hasbeeninitialized;
00044
00045 private:
00046 IDataProviderSvc* m_pCalibDataSvc;
00047 IntegerProperty m_run;
00048
00049 CalibData::TofElecData* m_data;
00050
00051
00052
00053
00054 };
00055
00056 #endif // TOFQELECSVC_H