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

In This Package:

ICableSvc.h

Go to the documentation of this file.
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 
00039   /* Sensor Lists */
00040   virtual const std::vector<DayaBay::DetectorSensor>& sensors(const ServiceMode& svcMode) = 0;
00041   virtual const std::vector<DayaBay::AdPmtSensor>& adPmtSensors(const ServiceMode& svcMode) = 0;
00042   virtual const std::vector<DayaBay::PoolPmtSensor>& poolPmtSensors(const ServiceMode& svcMode) = 0;
00043   virtual const std::vector<DayaBay::RpcSensor>& rpcSensors(const ServiceMode& svcMode) = 0;
00044 
00045   /* Channel Lists */
00046   virtual const std::vector<DayaBay::ElecChannelId>& elecChannelIds(const ServiceMode& svcMode) = 0;
00047   virtual const std::vector<DayaBay::FeeChannelId>& feeChannelIds(const ServiceMode& svcMode) = 0;
00048   virtual const std::vector<DayaBay::FecChannelId>& fecChannelIds(const ServiceMode& svcMode) = 0;
00049 
00050   /* PMT/RPC to Electronics connections ********************************/
00051 
00052   // Return the Electronics Channel ID connected to the given Detector Sensor
00053   virtual DayaBay::ElecChannelId elecChannelId(
00054                                          const DayaBay::DetectorSensor& sensId,
00055                                          const ServiceMode& svcMode) = 0;
00056 
00057   // Return the Front-End Channel ID connected to the given AD PMT
00058   virtual DayaBay::FeeChannelId feeChannelId(const DayaBay::AdPmtSensor& sensId,
00059                                              const ServiceMode& svcMode) = 0;
00060 
00061   // Return the Front-End Channel ID connected to the given Water Shield PMT
00062   virtual DayaBay::FeeChannelId feeChannelId(
00063                                            const DayaBay::PoolPmtSensor& sensId,
00064                                            const ServiceMode& svcMode) = 0;
00065 
00066   // Return the FEC Channel ID connected to the given RPC strip
00067   virtual DayaBay::FecChannelId fecChannelId(const DayaBay::RpcSensor& sensId,
00068                                              const ServiceMode& svcMode) = 0;
00069 
00070   /* Electronics to PMT/RPC connections ********************************/
00071 
00072   // Return the Detector Sensor connected to the given Electronics Channel ID 
00073   virtual DayaBay::DetectorSensor sensor(
00074                                       const DayaBay::ElecChannelId& elecChannel,
00075                                       const ServiceMode& svcMode) = 0;
00076 
00077   // Return the AD PMT connected to the given Front-End Channel ID 
00078   virtual DayaBay::AdPmtSensor adPmtSensor(
00079                                         const DayaBay::FeeChannelId& feeChannel,
00080                                         const ServiceMode& svcMode) = 0;
00081 
00082   // Return the Water Shield PMT connected to the given Front-End Channel ID 
00083   virtual DayaBay::PoolPmtSensor poolPmtSensor(
00084                                         const DayaBay::FeeChannelId& feeChannel,
00085                                         const ServiceMode& svcMode) = 0;
00086 
00087   // Return the RPC strip connected to the given FEC Channel ID 
00088   virtual DayaBay::RpcSensor rpcSensor(const DayaBay::FecChannelId& fecChannel,
00089                                        const ServiceMode& svcMode) = 0;
00090 
00091   /* Hardware IDs for the Detector Sensors ********************************/
00092 
00093   // Return the Hardware ID for the given Detector Sensor
00094   virtual DayaBay::HardwareId hardwareId(const DayaBay::DetectorSensor& sensId,
00095                                          const ServiceMode& svcMode) = 0;
00096 
00097   // Return the PMT Hardware ID for the given AD PMT sensor
00098   virtual DayaBay::PmtHardwareId pmtHardwareId(
00099                                             const DayaBay::AdPmtSensor& sensId,
00100                                             const ServiceMode& svcMode) = 0;
00101 
00102   // Return the PMT Hardware ID for the given Pool PMT sensor
00103   virtual DayaBay::PmtHardwareId pmtHardwareId(
00104                                            const DayaBay::PoolPmtSensor& sensId,
00105                                            const ServiceMode& svcMode) = 0;
00106 
00107   // Return the RPC Hardware ID for the given RPC sensor
00108   virtual DayaBay::RpcHardwareId rpcHardwareId(const DayaBay::RpcSensor& sensId,
00109                                                const ServiceMode& svcMode) = 0;
00110      
00111   /* Detector Sensors for the Hardware IDs ********************************/
00112 
00113   // Return the Detector Sensor for the given Hardware ID
00114   virtual DayaBay::DetectorSensor sensor(const DayaBay::HardwareId& hardwareId,
00115                                          const ServiceMode& svcMode) = 0;
00116 
00117   // Return the sensor for the given PMT Hardware ID
00118   virtual DayaBay::AdPmtSensor adPmtSensor(const DayaBay::PmtHardwareId& pmtId,
00119                                            const ServiceMode& svcMode) = 0;
00120 
00121   // Return the sensor for the given PMT Hardware ID
00122   virtual DayaBay::PoolPmtSensor poolPmtSensor(
00123                                             const DayaBay::PmtHardwareId& pmtId,
00124                                             const ServiceMode& svcMode) = 0;
00125 
00126   // Return the sensor for the given RPC Hardware ID
00127   virtual DayaBay::RpcSensor rpcSensor(const DayaBay::RpcHardwareId& rpcId,
00128                                        const ServiceMode& svcMode) = 0;
00129      
00130   /* Hardware IDs for the Electronics Channels ****************************/
00131 
00132   // Return the Hardware ID for the given Electronics Channel
00133   virtual DayaBay::HardwareId hardwareId(
00134                                       const DayaBay::ElecChannelId& elecChannel,
00135                                       const ServiceMode& svcMode) = 0;
00136 
00137   // Return the FEE Board Hardware ID for the given FEE Channel
00138   virtual DayaBay::FeeHardwareId feeHardwareId(
00139                                         const DayaBay::FeeChannelId& feeChannel,
00140                                         const ServiceMode& svcMode) = 0;
00141 
00142   // Return the FEC Board Hardware ID for the given FEC Channel
00143   virtual DayaBay::FecHardwareId fecHardwareId(
00144                                        const DayaBay::FecChannelId& fecChannel,
00145                                        const ServiceMode& svcMode) = 0;
00146 
00147   /* Electronics Channels for the Hardware IDs ****************************/
00148 
00149   // Return the Electronics Channel for the given Hardware ID
00150   virtual DayaBay::ElecChannelId elecChannelId(
00151                                           const DayaBay::HardwareId& hardwareId,
00152                                           const ServiceMode& svcMode) = 0;
00153 
00154   // Return the FEE Channel for the given FEE Board Hardware ID 
00155   virtual DayaBay::FeeChannelId feeChannelId(
00156                                     const DayaBay::FeeHardwareId& feeHardwareId,
00157                                     const ServiceMode& svcMode) = 0;
00158 
00159   // Return the FEC Channel for the given FEC Board Hardware ID 
00160   virtual DayaBay::FecChannelId fecChannelId(
00161                                    const DayaBay::FecHardwareId& fecHardwareId,
00162                                    const ServiceMode& svcMode) = 0;
00163 
00164 };
00165 
00166 #endif  // DATASVC_ICABLESVC_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:21:03 2011 for DataSvc by doxygen 1.4.7