53 ATH_MSG_DEBUG(
"Recorded TgcRdoContainer called " << rdoContainer.
name() <<
" in store " << rdoContainer.
store());
59 std::map<uint16_t, std::unique_ptr<TgcRdo>> tgcRdoMap{};
67 for (
const TgcDigit* tgcDigit : *tgcCollection) {
68 const Identifier channelId = tgcDigit->identify();
72 int subDetectorID{0}, rodID{0}, sswID{0}, slbID{0}, channelID{0};
75 for (
int iAd = 0; iAd < 2; ++iAd) {
80 bool a_found = cabling->hasAdjacentChannel(channelId);
91 bool status = cabling->getReadoutIDfromOfflineID(channelId, subDetectorID,
92 rodID, sswID, slbID, channelID, adFlag);
95 ATH_MSG_DEBUG(
"MuonTGC_CablingSvc can't return an online ID for the channel : "
101 bool isStrip =
m_idHelperSvc->tgcIdHelper().isStrip(channelId);
106 else if (name[1] ==
'1')
111 auto rawData = std::make_unique<TgcRawData>(bctag, subDetectorID, rodID, sswID, slbID, 0, 0,
type, adFlag, 0, channelID);
114 ATH_MSG_DEBUG(MSG::hex <<
" Sub : " << subDetectorID <<
" ROD : " << rodID <<
" SSW : " << sswID <<
" SLB : " << slbID
115 <<
" Ch : " << channelID);
118 const uint16_t rdoId = identifyFragment(*rawData);
119 std::unique_ptr<TgcRdo>& tgcRdo = tgcRdoMap[rdoId];
124 tgcRdo = std::make_unique<TgcRdo>(rdoId, hashId);
125 tgcRdo->setOnlineId(rawData->subDetectorId(), rawData->rodId());
127 tgcRdo->push_back(std::move(rawData));
134 for (
auto&[onlineId, rdo] : tgcRdoMap) {
135 unsigned int elementHash = hashF(onlineId);
136 ATH_CHECK(rdoContainer->addCollection(rdo.release(), elementHash));
140 return StatusCode::SUCCESS;