/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 /* 00002 * StaticSimDataSvc 00003 * 00004 * Provides a static table of PMT / RPC simulation input data 00005 * 00006 * Created by Dan Dwyer on 2008/09/26 00007 */ 00008 00009 #ifndef DATASVC_STATICSIMDATASVC_H 00010 #define DATASVC_STATICSIMDATASVC_H 00011 00012 #include "DataSvc/ISimDataSvc.h" 00013 #include "GaudiKernel/Service.h" 00014 #include <string> 00015 00016 class StaticSimDataSvc : public Service, 00017 virtual public ISimDataSvc 00018 { 00019 public: 00020 // Service interface implementation 00021 StaticSimDataSvc(const std::string& name, ISvcLocator *svc); 00022 ~StaticSimDataSvc(); 00023 virtual StatusCode initialize(); 00024 virtual StatusCode finalize(); 00025 virtual StatusCode queryInterface(const InterfaceID& riid, 00026 void** ppvInterface); 00027 00028 // ISimDataSvc interface implementation 00029 // Return the PMT simulation input data 00030 const DayaBay::PmtSimData* pmtSimData( 00031 const DayaBay::DetectorSensor& pmtId, 00032 const ServiceMode& svcMode); 00033 00034 // Return the RPC simulation input data 00035 const DayaBay::RpcSimData* rpcSimData(const DayaBay::RpcSensor& rpcId, 00036 const ServiceMode& svcMode); 00037 00038 // Return the FEE simulation input data 00039 virtual const DayaBay::FeeSimData* feeSimData( 00040 const DayaBay::FeeChannelId& channelId, 00041 const ServiceMode& svcMode); 00042 00043 // Return the FEC simulation input data 00044 virtual const DayaBay::FecSimData* fecSimData( 00045 const DayaBay::FecChannelId& channelId, 00046 const ServiceMode& svcMode); 00047 00048 // Return the array of PMT simulation input data by detector 00049 const std::vector<DayaBay::PmtSimData>& pmtSimList( 00050 const DayaBay::Detector& detectorId, 00051 const ServiceMode& svcMode); 00052 00053 // Return the array of RPC simulation input data by detector 00054 const std::vector<DayaBay::RpcSimData>& rpcSimList( 00055 const DayaBay::Detector& detectorId, 00056 const ServiceMode& svcMode); 00057 00058 // Return the array of FEE simulation input data by detector 00059 virtual const std::vector<DayaBay::FeeSimData>& feeSimList( 00060 const DayaBay::Detector& detectorId, 00061 const ServiceMode& svcMode); 00062 00063 // Return the array of FEC simulation input data by detector 00064 virtual const std::vector<DayaBay::FecSimData>& fecSimList( 00065 const DayaBay::Detector& detectorId, 00066 const ServiceMode& svcMode); 00067 private: 00068 // Lists of PMT/RPC and electronics data by detector 00069 std::map<DayaBay::Detector, std::vector<DayaBay::PmtSimData> > m_pmtData; 00070 std::map<DayaBay::Detector, std::vector<DayaBay::RpcSimData> > m_rpcData; 00071 std::map<DayaBay::Detector, std::vector<DayaBay::FeeSimData> > m_feeData; 00072 std::map<DayaBay::Detector, std::vector<DayaBay::FecSimData> > m_fecData; 00073 00074 // Lookup map by Sensor ID 00075 std::map<DayaBay::DetectorSensor, DayaBay::PmtSimData> m_pmtDataBySensor; 00076 std::map<DayaBay::RpcSensor, DayaBay::RpcSimData> m_rpcDataBySensor; 00077 // Lookup map by Electronics Channel ID 00078 std::map<DayaBay::FeeChannelId, DayaBay::FeeSimData> m_feeDataByChannel; 00079 std::map<DayaBay::FecChannelId, DayaBay::FecSimData> m_fecDataByChannel; 00080 00081 // Property: Use optional text file of pmt data 00082 std::string m_pmtDataFileName; 00083 // Property: Use optional text file of rpc data 00084 std::string m_rpcDataFileName; 00085 // Property: Use optional text file of FEE data 00086 std::string m_feeDataFileName; 00087 // Property: Use optional text file of FEC data 00088 std::string m_fecDataFileName; 00089 }; 00090 00091 #endif // DATASVC_STATICSIMDATASVC_H