#ifndef TBaseBadChannels_hxx_seen #define TBaseBadChannels_hxx_seen #include #include namespace COMET { class IBaseBadChannels; }; /// Base class for the sub-detector bad channel information. /// Sub-detectors must implement the two methods: IsChannelBad and ExcludeChannel. class COMET::IBaseBadChannels{ public: virtual ~IBaseBadChannels(){} /// Is channel bad in any way? /// The method is meant to identify any channels that are bad in /// any different ways (ie dead, bad gain, bad time calibration, etc). /// Return value = true means channel is bad. virtual bool IsChannelBad(COMET::IChannelId id)=0; /// Should channel be excluded completely? /// The method is meant to be used for channels that should be excluded from /// any analysis. It is this method that would be used in either CalibGlobal or /// SimDetectorResponse to completely exclude a particular set of hits. The ExcludeChannel /// method would therefore identify a subset of the channels identified /// by the IsChannelBad method. /// Return value = true means channel should be excluded. virtual bool ExcludeChannel(COMET::IChannelId id)=0; protected: /// Provide a special method for getting the context. /// This will retrieve the context of the current event from the event folder. /// However, it allows for some optional modification of the context /// before it is used by the methods. In particular, it allows for the /// possible modification of the partition code for treating simulated /// data like real data. COMET::ICOMETContext GetContext(); }; #endif