/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 /* 00002 * ICableSvc.h 00003 * 00004 * Interface for relating: 00005 * Hardware IDs: PMT and RPC IDs provided by the hardware groups 00006 * Sensor IDs: Specify a sensor by location in the detector 00007 * Electronics Channel IDs: Specify a channel in electronics/DAQ 00008 * 00009 * Created by Dan Dwyer on 2008/08/19 00010 */ 00011 00012 #ifndef DATASVC_ICABLESVC_H 00013 #define DATASVC_ICABLESVC_H 00014 00015 #include "GaudiKernel/IInterface.h" 00016 #include <vector> 00017 #include "Conventions/Hardware.h" 00018 #include "Conventions/Electronics.h" 00019 #include "Context/ServiceMode.h" 00020 00021 // Declaration of the interface ID 00022 static const InterfaceID IID_ICableSvc("ICableSvc",1,0); 00023 00024 class ICableSvc : virtual public IInterface 00025 { 00026 public: 00027 // Retrieve interface ID 00028 static const InterfaceID& interfaceID(){ 00029 return IID_ICableSvc; 00030 } 00031 00032 /* Hardware Lists */ 00033 virtual const std::vector<DayaBay::HardwareId>& hardwareIds(const ServiceMode& svcMode) = 0; 00034 virtual const std::vector<DayaBay::PmtHardwareId>& pmtHardwareIds(const ServiceMode& svcMode) = 0; 00035 virtual const std::vector<DayaBay::RpcHardwareId>& rpcHardwareIds(const ServiceMode& svcMode) = 0; 00036 virtual const std::vector<DayaBay::FeeHardwareId>& feeHardwareIds(const ServiceMode& svcMode) = 0; 00037 virtual const std::vector<DayaBay::FecHardwareId>& fecHardwareIds(const ServiceMode& svcMode) = 0; 00038 //virtual const std::vector<DayaBay::RotHardwareId>& rotHardwareIds(const ServiceMode& svcMode) = 0; 00039 //virtual const std::vector<DayaBay::RomHardwareId>& romHardwareIds(const ServiceMode& svcMode) = 0; 00040 //virtual const std::vector<DayaBay::RtmHardwareId>& rtmHardwareIds(const ServiceMode& svcMode) = 0; 00041 00042 /* Sensor Lists */ 00043 virtual const std::vector<DayaBay::DetectorSensor>& sensors(const ServiceMode& svcMode) = 0; 00044 virtual const std::vector<DayaBay::AdPmtSensor>& adPmtSensors(const ServiceMode& svcMode) = 0; 00045 virtual const std::vector<DayaBay::PoolPmtSensor>& poolPmtSensors(const ServiceMode& svcMode) = 0; 00046 virtual const std::vector<DayaBay::RpcSensor>& rpcSensors(const ServiceMode& svcMode) = 0; 00047 00048 /* Channel Lists */ 00049 virtual const std::vector<DayaBay::ElecChannelId>& elecChannelIds(const ServiceMode& svcMode) = 0; 00050 virtual const std::vector<DayaBay::FeeChannelId>& feeChannelIds(const ServiceMode& svcMode) = 0; 00051 virtual const std::vector<DayaBay::FecChannelId>& fecChannelIds(const ServiceMode& svcMode) = 0; 00052 00053 /* PMT/RPC to Electronics connections ********************************/ 00054 00055 // Return the Electronics Channel ID connected to the given Detector Sensor 00056 virtual DayaBay::ElecChannelId elecChannelId( 00057 const DayaBay::DetectorSensor& sensId, 00058 const ServiceMode& svcMode) = 0; 00059 00060 // Return the Front-End Channel ID connected to the given AD PMT 00061 virtual DayaBay::FeeChannelId feeChannelId(const DayaBay::AdPmtSensor& sensId, 00062 const ServiceMode& svcMode) = 0; 00063 00064 // Return the Front-End Channel ID connected to the given Water Shield PMT 00065 virtual DayaBay::FeeChannelId feeChannelId( 00066 const DayaBay::PoolPmtSensor& sensId, 00067 const ServiceMode& svcMode) = 0; 00068 00069 // Return the FEC Channel ID connected to the given RPC strip 00070 virtual DayaBay::FecChannelId fecChannelId(const DayaBay::RpcSensor& sensId, 00071 const ServiceMode& svcMode) = 0; 00072 00073 /* Electronics to PMT/RPC connections ********************************/ 00074 00075 // Return the Detector Sensor connected to the given Electronics Channel ID 00076 virtual DayaBay::DetectorSensor sensor( 00077 const DayaBay::ElecChannelId& elecChannel, 00078 const ServiceMode& svcMode) = 0; 00079 00080 // Return the AD PMT connected to the given Front-End Channel ID 00081 virtual DayaBay::AdPmtSensor adPmtSensor( 00082 const DayaBay::FeeChannelId& feeChannel, 00083 const ServiceMode& svcMode) = 0; 00084 00085 // Return the Water Shield PMT connected to the given Front-End Channel ID 00086 virtual DayaBay::PoolPmtSensor poolPmtSensor( 00087 const DayaBay::FeeChannelId& feeChannel, 00088 const ServiceMode& svcMode) = 0; 00089 00090 // Return the RPC strip connected to the given FEC Channel ID 00091 virtual DayaBay::RpcSensor rpcSensor(const DayaBay::FecChannelId& fecChannel, 00092 const ServiceMode& svcMode) = 0; 00093 00094 /* Hardware IDs for the Detector Sensors ********************************/ 00095 00096 // Return the Hardware ID for the given Detector Sensor 00097 virtual DayaBay::HardwareId hardwareId(const DayaBay::DetectorSensor& sensId, 00098 const ServiceMode& svcMode) = 0; 00099 00100 // Return the PMT Hardware ID for the given AD PMT sensor 00101 virtual DayaBay::PmtHardwareId pmtHardwareId( 00102 const DayaBay::AdPmtSensor& sensId, 00103 const ServiceMode& svcMode) = 0; 00104 00105 // Return the PMT Hardware ID for the given Pool PMT sensor 00106 virtual DayaBay::PmtHardwareId pmtHardwareId( 00107 const DayaBay::PoolPmtSensor& sensId, 00108 const ServiceMode& svcMode) = 0; 00109 00110 // Return the RPC Hardware ID for the given RPC sensor 00111 virtual DayaBay::RpcHardwareId rpcHardwareId(const DayaBay::RpcSensor& sensId, 00112 const ServiceMode& svcMode) = 0; 00113 00114 /* Detector Sensors for the Hardware IDs ********************************/ 00115 00116 // Return the Detector Sensor for the given Hardware ID 00117 virtual DayaBay::DetectorSensor sensor(const DayaBay::HardwareId& hardwareId, 00118 const ServiceMode& svcMode) = 0; 00119 00120 // Return the sensor for the given PMT Hardware ID 00121 virtual DayaBay::AdPmtSensor adPmtSensor(const DayaBay::PmtHardwareId& pmtId, 00122 const ServiceMode& svcMode) = 0; 00123 00124 // Return the sensor for the given PMT Hardware ID 00125 virtual DayaBay::PoolPmtSensor poolPmtSensor( 00126 const DayaBay::PmtHardwareId& pmtId, 00127 const ServiceMode& svcMode) = 0; 00128 00129 // Return the sensor for the given RPC Hardware ID 00130 virtual DayaBay::RpcSensor rpcSensor(const DayaBay::RpcHardwareId& rpcId, 00131 const ServiceMode& svcMode) = 0; 00132 00133 /* Hardware IDs for the Electronics Channels ****************************/ 00134 00135 // Return the Hardware ID for the given Electronics Channel 00136 virtual DayaBay::HardwareId hardwareId( 00137 const DayaBay::ElecChannelId& elecChannel, 00138 const ServiceMode& svcMode) = 0; 00139 00140 // Return the FEE Board Hardware ID for the given FEE Channel 00141 virtual DayaBay::FeeHardwareId feeHardwareId( 00142 const DayaBay::FeeChannelId& feeChannel, 00143 const ServiceMode& svcMode) = 0; 00144 00145 // Return the FEC Board Hardware ID for the given FEC Channel 00146 virtual DayaBay::FecHardwareId fecHardwareId( 00147 const DayaBay::FecChannelId& fecChannel, 00148 const ServiceMode& svcMode) = 0; 00149 00150 /* Electronics Channels for the Hardware IDs ****************************/ 00151 00152 // Return the Electronics Channel for the given Hardware ID 00153 virtual DayaBay::ElecChannelId elecChannelId( 00154 const DayaBay::HardwareId& hardwareId, 00155 const ServiceMode& svcMode) = 0; 00156 00157 // Return the FEE Channel for the given FEE Board Hardware ID 00158 virtual DayaBay::FeeChannelId feeChannelId( 00159 const DayaBay::FeeHardwareId& feeHardwareId, 00160 const ServiceMode& svcMode) = 0; 00161 00162 // Return the FEC Channel for the given FEC Board Hardware ID 00163 virtual DayaBay::FecChannelId fecChannelId( 00164 const DayaBay::FecHardwareId& fecHardwareId, 00165 const ServiceMode& svcMode) = 0; 00166 00167 }; 00168 00169 #endif // DATASVC_ICABLESVC_H