50 ATH_MSG_DEBUG(
"Recorded TgcRdoContainer called " << rdoContainer.
name() <<
" in store " << rdoContainer.
store());
55 std::map<uint16_t, std::unique_ptr<TgcRdo>> tgcRdoMap{};
63 for (
const TgcDigit* tgcDigit : *tgcCollection) {
64 const Identifier channelId = tgcDigit->identify();
68 int subDetectorID{0}, rodID{0}, sswID{0}, slbID{0}, channelID{0};
71 for (
int iAd = 0; iAd < 2; ++iAd) {
76 bool a_found =
m_cabling->hasAdjacentChannel(channelId);
86 bool status =
m_cabling->getReadoutIDfromOfflineID(channelId, subDetectorID, rodID, sswID, slbID, channelID, adFlag);
89 ATH_MSG_DEBUG(
"MuonTGC_CablingSvc can't return an online ID for the channel : "
95 bool isStrip =
m_idHelperSvc->tgcIdHelper().isStrip(channelId);
100 else if (name[1] ==
'1')
105 auto rawData = std::make_unique<TgcRawData>(bctag, subDetectorID, rodID, sswID, slbID, 0, 0,
type, adFlag, 0, channelID);
108 ATH_MSG_DEBUG(MSG::hex <<
" Sub : " << subDetectorID <<
" ROD : " << rodID <<
" SSW : " << sswID <<
" SLB : " << slbID
109 <<
" Ch : " << channelID);
112 const uint16_t rdoId = identifyFragment(*rawData);
113 std::unique_ptr<TgcRdo>& tgcRdo = tgcRdoMap[rdoId];
118 tgcRdo = std::make_unique<TgcRdo>(rdoId, hashId);
119 tgcRdo->setOnlineId(rawData->subDetectorId(), rawData->rodId());
121 tgcRdo->push_back(std::move(rawData));
128 for (
auto&[onlineId, rdo] : tgcRdoMap) {
129 unsigned int elementHash = hashF(onlineId);
130 ATH_CHECK(rdoContainer->addCollection(rdo.release(), elementHash));
134 return StatusCode::SUCCESS;