#include #include "ICOMETLog.hxx" #include "IECALTrigChannelId.hxx" #include ClassImp(COMET::IECALTrigChannelId); //======================================================================== // Constructor //======================================================================== COMET::IECALTrigChannelId::IECALTrigChannelId(UInt_t id): IChannelId(id) {} COMET::IECALTrigChannelId::IECALTrigChannelId(const COMET::IChannelId& src): IChannelId(src) {} COMET::IECALTrigChannelId::IECALTrigChannelId(const UInt_t subDet, const UInt_t Channel) { if (subDet != COMET::IChannelId::kECALTrig) { COMETSevere("Invalid sub-detector field: " << subDet); } SetChannel(Channel); } //======================================================================== // Destructor //======================================================================== COMET::IECALTrigChannelId::~IECALTrigChannelId() {} //======================================================================== // AsString //======================================================================== std::string COMET::IECALTrigChannelId::AsString() const { const char* det = SubDetAsString().c_str(); char buffer[50]; std::snprintf(buffer, 50, "%7s: ECALTrig:(CH=%024i)", det, GetChannel()); return std::string(buffer); } //======================================================================== // GetChannel //======================================================================== const UInt_t COMET::IECALTrigChannelId::GetChannel() const { return GetField(kChanMSB, kChanLSB); } //======================================================================== // SetChannel //======================================================================== void COMET::IECALTrigChannelId::SetChannel(int val) { SetGuardBit(); SetSubDetector(COMET::IChannelId::kECALTrig); SetField(val, kChanMSB, kChanLSB); SetField(0, kSpareMSB, kSpareLSB); } //======================================================================== // SetFromGeomComponentNumber //======================================================================== void COMET::IECALTrigChannelId::SetFromGeomComponentNumber(const UInt_t block, const UInt_t) { SetGuardBit(); SetSubDetector(COMET::IChannelId::kECALTrig); SetField(block, kBlockMSB, kBlockLSB ); SetField(0, kSpareMSB, kSpareLSB ); } //======================================================================== // GetComponentNumber //======================================================================== bool COMET::IECALTrigChannelId::GetComponentNumber(UInt_t& block) const { block = GetField(kBlockMSB, kBlockLSB ); COMETNamedVerbose("IECALTrigChannelId", "ECAL component nums: " << AsUInt() << " Block:" << block ); return true; }