00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef DBIDATASVC_DBICALIBDATASVC_H
00012 #define DBIDATASVC_DBICALIBDATASVC_H
00013
00014 #include "DataSvc/ICalibDataSvc.h"
00015 #include "GaudiKernel/Service.h"
00016 #include <string>
00017
00018 class DbiResultKey;
00019 class Context;
00020 class ServiceMode;
00021 class DbiCalibDataSvc : public Service,
00022 virtual public ICalibDataSvc
00023 {
00024 public:
00025
00026 DbiCalibDataSvc(const std::string& name, ISvcLocator *svc);
00027 ~DbiCalibDataSvc();
00028 virtual StatusCode initialize();
00029 virtual StatusCode finalize();
00030 virtual StatusCode queryInterface(const InterfaceID& riid,
00031 void** ppvInterface);
00032
00033
00034
00035 const DayaBay::PmtCalibData* pmtCalibData(
00036 const DayaBay::DetectorSensor& pmtId,
00037 const ServiceMode& svcMode);
00038
00039
00040 const DayaBay::RpcCalibData* rpcCalibData(const DayaBay::RpcSensor& rpcId,
00041 const ServiceMode& svcMode);
00042
00043
00044 const DayaBay::FeeCalibData* feeCalibData(
00045 const DayaBay::FeeChannelId& channelId,
00046 const ServiceMode& svcMode);
00047
00048
00049 const DayaBay::FecCalibData* fecCalibData(
00050 const DayaBay::FecChannelId& channelId,
00051 const ServiceMode& svcMode);
00052
00053
00054 const std::vector<DayaBay::PmtCalibData>& pmtCalibList(
00055 const DayaBay::Detector& detectorId,
00056 const ServiceMode& svcMode);
00057
00058
00059 const std::vector<DayaBay::RpcCalibData>& rpcCalibList(
00060 const DayaBay::Detector& detectorId,
00061 const ServiceMode& svcMode);
00062
00063
00064 const std::vector<DayaBay::FeeCalibData>& feeCalibList(
00065 const DayaBay::Detector& detectorId,
00066 const ServiceMode& svcMode);
00067
00068
00069 const std::vector<DayaBay::FecCalibData>& fecCalibList(
00070 const DayaBay::Detector& detectorId,
00071 const ServiceMode& svcMode);
00072
00073 private:
00074
00075 std::map<DayaBay::Detector, std::vector<DayaBay::PmtCalibData> > m_pmtData;
00076 std::map<DayaBay::Detector, std::vector<DayaBay::RpcCalibData> > m_rpcData;
00077 std::map<DayaBay::Detector, std::vector<DayaBay::FeeCalibData> > m_feeData;
00078 std::map<DayaBay::Detector, std::vector<DayaBay::FecCalibData> > m_fecData;
00079
00080
00081 std::map<DayaBay::DetectorSensor, DayaBay::PmtCalibData> m_pmtDataBySensor;
00082 std::map<DayaBay::RpcSensor, DayaBay::RpcCalibData> m_rpcDataBySensor;
00083
00084 std::map<DayaBay::FeeChannelId, DayaBay::FeeCalibData> m_feeDataByChannel;
00085 std::map<DayaBay::FecChannelId, DayaBay::FecCalibData> m_fecDataByChannel;
00086
00087
00088 std::string m_cableSvcName;
00089
00090 Context feeLastContext;
00091 Context fecLastContext;
00092 Context pmtLastContext;
00093
00094 const DbiResultKey* feeLastResult;
00095 const DbiResultKey* fecLastResult;
00096 const DbiResultKey* pmtLastResult;
00097 inline virtual int readCalibPmtTable(const ServiceMode&);
00098 inline virtual int readCalibFeeTable(const ServiceMode&);
00099
00100
00101 };
00102
00103 #endif // DBIDATASVC_DBICALIBDATASVC_H