diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileHid2RESrcID.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileHid2RESrcID.cxx index 523bc3ba1d9e27cc37fb2605ee00384a1d3ff854..d4e2960f355d601b191daf021b1140c2e3935fe2 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileHid2RESrcID.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileHid2RESrcID.cxx @@ -154,13 +154,6 @@ void TileHid2RESrcID::setROD2ROBmap(const std::vector<std::string> & ROD2ROB, uint32_t frag = strtol(ROD2ROB[i-1].data(),NULL,0); uint32_t rob = strtol(ROD2ROB[i].data(),NULL,0) & 0xFFFFFF; if ( frag < 0x1000 ) { - if ( rob < 0x500000 ) { - log << MSG::ERROR << "You are using obsolete mapping" << endmsg; - log << MSG::ERROR << "Please, upgrade it to event format V3" << endmsg; - assert(0); - log << MSG::ERROR << "TileHid2RESrcID:: mapping frag 0x"<< MSG::hex - << frag << " to ROB 0x" << rob << MSG::dec << endmsg; - } // this is actually remapping for fragments inside ROB, bypassing ROD ID m_frag2ROD[frag] = rob; log << MSG::INFO << "TileHid2RESrcID:: mapping frag 0x"<< MSG::hex @@ -203,7 +196,12 @@ void TileHid2RESrcID::setROD2ROBmap (const eformat::FullEventFragment<const uint event->child(fpdet, idet); const eformat::ROBFragment<const uint32_t*> robf(fpdet); - uint32_t ROBid = robf.source_id(); + uint32_t ROBid = robf.source_id(); + + const auto ROBSubDetID = eformat::helper::SourceIdentifier(ROBid).subdetector_id(); + const auto ROBSubDetGroup = eformat::helper::SourceIdentifier(ROBid).subdetector_group(); + if (ROBSubDetGroup == eformat::SubDetectorGroup::TILECAL || + ROBSubDetID == eformat::SubDetector::TDAQ_BEAM_CRATE || ROBSubDetID == 0) { // SubDetID=00 used in testbeam unsigned int source_id = robf.rod_source_id(); eformat::helper::SourceIdentifier id = eformat::helper::SourceIdentifier(source_id); @@ -330,6 +328,7 @@ void TileHid2RESrcID::setROD2ROBmap (const eformat::FullEventFragment<const uint break; } } + } } if (!cisparFound) { if (lascisROB) { diff --git a/TileCalorimeter/TileSvc/TileByteStream/src/TileROD_Decoder.cxx b/TileCalorimeter/TileSvc/TileByteStream/src/TileROD_Decoder.cxx index 83c9b12ba8fb336190f34ef71163c4b518aedf5e..b2c2072a556e5b034d3b59a54f0fa045d46454ef 100644 --- a/TileCalorimeter/TileSvc/TileByteStream/src/TileROD_Decoder.cxx +++ b/TileCalorimeter/TileSvc/TileByteStream/src/TileROD_Decoder.cxx @@ -136,14 +136,25 @@ StatusCode TileROD_Decoder::initialize() { const TileCablingService *cablingService = TileCablingService::getInstance(); m_maxChannels = cablingService->getMaxChannels(); m_runPeriod = cablingService->runPeriod(); + std::ostringstream os; if (m_runPeriod==3) { if ( m_demoFragIDs.empty() ) { std::vector<int> v = { 0x10d }; // LBA14 is demonstrator in RUN3 m_demoFragIDs = v; - } else { - std::sort(m_demoFragIDs.begin(),m_demoFragIDs.end()); } - ATH_MSG_INFO("Enable channel remapping for demonstrator in RUN3," << m_demoFragIDs); + os << " in RUN3"; + } + + if ( !m_demoFragIDs.empty() ) { + std::sort(m_demoFragIDs.begin(),m_demoFragIDs.end()); + os << " (frag IDs):"; + for (int fragID : m_demoFragIDs) { + if (fragID>0) + os << " 0x" << std::hex << fragID << std::dec; + else + os << " " << fragID; + } + ATH_MSG_INFO("Enable channel remapping for demonstrator modules" << os.str()); } m_Rw2Cell[0].reserve(m_maxChannels);