| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DbiCalibDataSvc.h

Go to the documentation of this file.
00001 /*
00002  *  DbiCalibDataSvc
00003  *
00004  *  Provides a static table of PMT / RPC calibration data
00005  *
00006  *  Created by Dan Dwyer on 2008/09/26
00007  *  Modified for DBI access by Weili Zhong 2009/7/4
00008  *  Modified for adding FEE access by XiaosSu Chen 2010/2/1
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   // Service interface implementation
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   // ICalibDataSvc interface implementation
00034   // Return the PMT Calibration data
00035   const DayaBay::PmtCalibData* pmtCalibData(
00036                                        const DayaBay::DetectorSensor& pmtId,
00037                                        const ServiceMode& svcMode);
00038 
00039   // Return the RPC Calibration data
00040   const DayaBay::RpcCalibData* rpcCalibData(const DayaBay::RpcSensor& rpcId,
00041                                         const ServiceMode& svcMode);
00042 
00043   // Return the FEE Calibration data
00044   const DayaBay::FeeCalibData* feeCalibData(
00045                                          const DayaBay::FeeChannelId& channelId,
00046                                          const ServiceMode& svcMode);
00047 
00048   // Return the FEC Calibration data
00049   const DayaBay::FecCalibData* fecCalibData(
00050                                          const DayaBay::FecChannelId& channelId,
00051                                          const ServiceMode& svcMode);
00052 
00053   // Return the array of PMT Calibration data by detector
00054   const std::vector<DayaBay::PmtCalibData>& pmtCalibList(
00055                                            const DayaBay::Detector& detectorId,
00056                                            const ServiceMode& svcMode);
00057 
00058   // Return the array of RPC Calibration data by detector
00059   const std::vector<DayaBay::RpcCalibData>& rpcCalibList(
00060                                            const DayaBay::Detector& detectorId,
00061                                            const ServiceMode& svcMode);
00062 
00063   // Return the array of Calibration data by detector
00064   const std::vector<DayaBay::FeeCalibData>& feeCalibList(
00065                                            const DayaBay::Detector& detectorId,
00066                                            const ServiceMode& svcMode);
00067 
00068   // Return the array of Calibration data by detector
00069   const std::vector<DayaBay::FecCalibData>& fecCalibList(
00070                                            const DayaBay::Detector& detectorId,
00071                                            const ServiceMode& svcMode);
00072 
00073  private:
00074   // Lists of PMT/RPC and channel data by detector
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   // Lookup map by Sensor ID
00081   std::map<DayaBay::DetectorSensor, DayaBay::PmtCalibData> m_pmtDataBySensor;
00082   std::map<DayaBay::RpcSensor, DayaBay::RpcCalibData> m_rpcDataBySensor;
00083   // Lookup map by Channel ID
00084   std::map<DayaBay::FeeChannelId, DayaBay::FeeCalibData> m_feeDataByChannel;
00085   std::map<DayaBay::FecChannelId, DayaBay::FecCalibData> m_fecDataByChannel;
00086 
00087   // Property: Which cable map to use?
00088   std::string m_cableSvcName;
00089 // protected:
00090   Context feeLastContext;
00091   Context fecLastContext;
00092   Context pmtLastContext;
00093   //virtual int getContext();
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 //  virtual int writeCalibFeeTable(CalibFeeSpec*);
00100 
00101 };
00102 
00103 #endif  // DBIDATASVC_DBICALIBDATASVC_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:21:48 2011 for DbiDataSvc by doxygen 1.4.7