11 declareInterface<IMDT_RDO_Decoder>(
this);
17 return StatusCode::SUCCESS;
22 uint16_t subdetId, uint16_t mrodId, uint16_t csmId)
const {
30 cabling_data.tdcId = amtHit.
tdcId();
31 cabling_data.channelId = amtHit.
channelId();
32 cabling_data.subdetectorId = subdetId;
33 cabling_data.mrod = mrodId;
34 cabling_data.csm = csmId;
36 uint16_t coarse = amtHit.
coarse();
37 uint16_t fine = amtHit.
fine();
40 if (!readCdo->
getOfflineId(cabling_data, msgStream()))
return nullptr;
42 if (!readCdo->
convert(cabling_data, chanId,
false))
return nullptr;
43 int tdcCounts = coarse * 32 + fine;
44 return std::make_unique<MdtDigit>(chanId, tdcCounts,
width, amtHit.
isMasked());
#define ATH_CHECK
Evaluate an expression and check for errors.
MDT RDO's : data from a single channel of an AMT Atlas Muon TDC.
uint16_t channelId() const
MdtCablingData CablingData
bool getOfflineId(CablingData &cabling_data, MsgStream &log) const
return the offline id given the online id
bool convert(const CablingData &cabling_data, Identifier &id, bool check_valid=true) const
converts the cabling data into an identifier.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
std::unique_ptr< MdtDigit > getDigit(const EventContext &ctx, const MdtAmtHit &amtHit, uint16_t subdetId, uint16_t mrodId, uint16_t csmId) const override final
MdtRDO_Decoder(const std::string &type, const std::string &name, const IInterface *parent)
SG::ReadCondHandleKey< MuonMDT_CablingMap > m_readKey
StatusCode initialize() override final
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.