00001
00013 #ifndef DATASVC_STATICCABLESVC_H
00014 #define DATASVC_STATICCABLESVC_H
00015
00016 #include "DataSvc/ICableSvc.h"
00017 #include "GaudiKernel/Service.h"
00018
00019 class IMessageSvc;
00020
00021 class StaticCableSvc : public Service,
00022 virtual public ICableSvc
00023 {
00024 public:
00025
00026 StaticCableSvc(const std::string& name, ISvcLocator *svc);
00027 ~StaticCableSvc();
00028 virtual StatusCode initialize();
00029 virtual StatusCode finalize();
00030 virtual StatusCode queryInterface(const InterfaceID& riid,
00031 void** ppvInterface);
00032
00033
00034
00035 const std::vector<DayaBay::HardwareId>& hardwareIds(const ServiceMode& svcMode);
00036 const std::vector<DayaBay::PmtHardwareId>& pmtHardwareIds(const ServiceMode& svcMode);
00037 const std::vector<DayaBay::RpcHardwareId>& rpcHardwareIds(const ServiceMode& svcMode);
00038 const std::vector<DayaBay::FeeHardwareId>& feeHardwareIds(const ServiceMode& svcMode);
00039 const std::vector<DayaBay::FecHardwareId>& fecHardwareIds(const ServiceMode& svcMode);
00040
00041
00042 const std::vector<DayaBay::DetectorSensor>& sensors(const ServiceMode& svcMode);
00043 const std::vector<DayaBay::AdPmtSensor>& adPmtSensors(const ServiceMode& svcMode);
00044 const std::vector<DayaBay::PoolPmtSensor>& poolPmtSensors(const ServiceMode& svcMode);
00045 const std::vector<DayaBay::RpcSensor>& rpcSensors(const ServiceMode& svcMode);
00046
00047
00048 const std::vector<DayaBay::ElecChannelId>& elecChannelIds(const ServiceMode& svcMode);
00049 const std::vector<DayaBay::FeeChannelId>& feeChannelIds(const ServiceMode& svcMode);
00050 const std::vector<DayaBay::FecChannelId>& fecChannelIds(const ServiceMode& svcMode);
00051
00052
00053
00054
00055 DayaBay::ElecChannelId elecChannelId(const DayaBay::DetectorSensor& sensId,
00056 const ServiceMode& svcMode);
00057
00058
00059 DayaBay::FeeChannelId feeChannelId(const DayaBay::AdPmtSensor& sensId,
00060 const ServiceMode& svcMode);
00061
00062
00063 DayaBay::FeeChannelId feeChannelId(const DayaBay::PoolPmtSensor& sensId,
00064 const ServiceMode& svcMode);
00065
00066
00067 DayaBay::FecChannelId fecChannelId(const DayaBay::RpcSensor& sensId,
00068 const ServiceMode& svcMode);
00069
00070
00071
00072
00073 DayaBay::DetectorSensor sensor(const DayaBay::ElecChannelId& elecChannel,
00074 const ServiceMode& svcMode);
00075
00076
00077 DayaBay::AdPmtSensor adPmtSensor(const DayaBay::FeeChannelId& feeChannel,
00078 const ServiceMode& svcMode);
00079
00080
00081 DayaBay::PoolPmtSensor poolPmtSensor(
00082 const DayaBay::FeeChannelId& feeChannel,
00083 const ServiceMode& svcMode);
00084
00085
00086 DayaBay::RpcSensor rpcSensor(const DayaBay::FecChannelId& fecChannel,
00087 const ServiceMode& svcMode);
00088
00089
00090
00091
00092 DayaBay::HardwareId hardwareId(const DayaBay::DetectorSensor& sensId,
00093 const ServiceMode& svcMode);
00094
00095
00096 DayaBay::PmtHardwareId pmtHardwareId(const DayaBay::AdPmtSensor& sensId,
00097 const ServiceMode& svcMode);
00098
00099
00100 DayaBay::PmtHardwareId pmtHardwareId(const DayaBay::PoolPmtSensor& sensId,
00101 const ServiceMode& svcMode);
00102
00103
00104 DayaBay::RpcHardwareId rpcHardwareId(const DayaBay::RpcSensor& sensId,
00105 const ServiceMode& svcMode);
00106
00107
00108
00109
00110 DayaBay::DetectorSensor sensor(const DayaBay::HardwareId& hardwareId,
00111 const ServiceMode& svcMode);
00112
00113
00114 DayaBay::AdPmtSensor adPmtSensor(const DayaBay::PmtHardwareId& pmtId,
00115 const ServiceMode& svcMode);
00116
00117
00118 DayaBay::PoolPmtSensor poolPmtSensor(const DayaBay::PmtHardwareId& pmtId,
00119 const ServiceMode& svcMode);
00120
00121
00122 DayaBay::RpcSensor rpcSensor(const DayaBay::RpcHardwareId& rpcId,
00123 const ServiceMode& svcMode);
00124
00125
00126
00127
00128 DayaBay::HardwareId hardwareId(const DayaBay::ElecChannelId& elecChannel,
00129 const ServiceMode& svcMode);
00130
00131
00132 DayaBay::FeeHardwareId feeHardwareId(
00133 const DayaBay::FeeChannelId& feeChannel,
00134 const ServiceMode& svcMode);
00135
00136
00137 DayaBay::FecHardwareId fecHardwareId(
00138 const DayaBay::FecChannelId& fecChannel,
00139 const ServiceMode& svcMode);
00140
00141
00142
00143
00144 DayaBay::ElecChannelId elecChannelId(const DayaBay::HardwareId& hardwareId,
00145 const ServiceMode& svcMode);
00146
00147
00148 DayaBay::FeeChannelId feeChannelId(
00149 const DayaBay::FeeHardwareId& feeHardwareId,
00150 const ServiceMode& svcMode);
00151
00152
00153 DayaBay::FecChannelId fecChannelId(
00154 const DayaBay::FecHardwareId& fecHardwareId,
00155 const ServiceMode& svcMode);
00156
00157 private:
00158
00159 IMessageSvc* msg;
00160
00161
00162 static DayaBay::Detector s_unknownSiteDet;
00163 static DayaBay::Detector s_allSiteDet;
00164
00165
00166 std::string m_feeCableFileName;
00167
00168
00169 std::string m_fecCableFileName;
00170
00172 bool m_first;
00173
00175 StatusCode initMap(const ServiceMode& svcMode);
00176
00177
00178 std::vector<DayaBay::HardwareId> m_hardwareIds;
00179 std::vector<DayaBay::PmtHardwareId> m_pmtHardwareIds;
00180 std::vector<DayaBay::RpcHardwareId> m_rpcHardwareIds;
00181 std::vector<DayaBay::FeeHardwareId> m_feeHardwareIds;
00182 std::vector<DayaBay::FecHardwareId> m_fecHardwareIds;
00183
00184
00185 std::vector<DayaBay::DetectorSensor> m_sensors;
00186 std::vector<DayaBay::AdPmtSensor> m_adPmtSensors;
00187 std::vector<DayaBay::PoolPmtSensor> m_poolPmtSensors;
00188 std::vector<DayaBay::RpcSensor> m_rpcSensors;
00189
00190
00191 std::vector<DayaBay::ElecChannelId> m_elecChannelIds;
00192 std::vector<DayaBay::FeeChannelId> m_feeChannelIds;
00193 std::vector<DayaBay::FecChannelId> m_fecChannelIds;
00194
00195
00196 std::map<DayaBay::Detector,std::vector<DayaBay::DetectorSensor> > m_sensorsBySiteDet;
00197 std::map<DayaBay::Detector,std::vector<DayaBay::AdPmtSensor> > m_adPmtSensorsBySiteDet;
00198 std::map<DayaBay::Detector,std::vector<DayaBay::PoolPmtSensor> > m_poolPmtSensorsBySiteDet;
00199 std::map<DayaBay::Detector,std::vector<DayaBay::RpcSensor> > m_rpcSensorsBySiteDet;
00200
00201
00202 std::map<DayaBay::Detector,std::vector<DayaBay::ElecChannelId> > m_elecChannelIdsBySiteDet;
00203 std::map<DayaBay::Detector,std::vector<DayaBay::FeeChannelId> > m_feeChannelIdsBySiteDet;
00204 std::map<DayaBay::Detector,std::vector<DayaBay::FecChannelId> > m_fecChannelIdsBySiteDet;
00205
00206
00207 std::map<DayaBay::DetectorSensor,DayaBay::ElecChannelId> m_channelBySensor;
00208 std::map<DayaBay::ElecChannelId,DayaBay::DetectorSensor> m_sensorByChannel;
00209
00210
00211 std::map<DayaBay::DetectorSensor,DayaBay::HardwareId> m_hardwareBySensor;
00212 std::map<DayaBay::HardwareId,DayaBay::DetectorSensor> m_sensorByHardware;
00213
00214
00215 std::map<DayaBay::ElecChannelId,DayaBay::HardwareId> m_hardwareByChannel;
00216 std::map<DayaBay::HardwareId,DayaBay::ElecChannelId> m_channelByHardware;
00217 };
00218
00219 #endif // DATASVC_STATICCABLESVC_H