00001 #ifndef CalFailureModeSvc_H 00002 #define CalFailureModeSvc_H 1 00003 00004 00005 // Include files 00006 #include "ICalFailureModeSvc.h" 00007 #include "GaudiKernel/Service.h" 00008 00017 class CalFailureModeSvc : public Service, virtual public ICalFailureModeSvc { 00018 00019 public: 00020 00021 CalFailureModeSvc(const std::string& name, ISvcLocator* pSvcLocator); 00022 00023 StatusCode initialize(); 00024 StatusCode execute(); 00025 StatusCode finalize(); 00026 00028 int getFailureConditions() {return m_failureModes;}; 00029 00030 enum {TOWER, TOWERLAYER}; 00031 00033 bool matchChannel(idents::CalXtalId id); 00034 00036 StatusCode queryInterface(const IID& riid, void** ppvUnknown); 00037 00038 static const InterfaceID& interfaceID() { 00039 return ICalFailureModeSvc::interfaceID(); 00040 } 00041 00043 const IID& type() const; 00044 00045 protected: 00046 00048 bool matchTower(idents::CalXtalId id); 00049 00051 bool matchTowerLayer(idents::CalXtalId id); 00052 00054 void processTowerList(); 00055 00057 void processTowerLayerList(); 00058 00059 private: 00060 00062 StringArrayProperty m_towerListProperty; 00063 00065 StringArrayProperty m_towerLayerListProperty; 00066 00068 int m_failureModes; 00069 00071 std::vector<int> m_towerList; 00072 00074 std::map<int,std::vector<int> > m_towerLayerList; 00075 00076 }; 00077 00078 00079 #endif // CalFailureModeSvc_H