Skip to content
Snippets Groups Projects

Update UTGeomCache to handle subsector bit

Merged Hangyi Wu requested to merge ut-subsector-in-readoutmap into 2024-patches
All threads resolved!
1 file
+ 6
6
Compare changes
  • Side-by-side
  • Inline
@@ -38,21 +38,21 @@ namespace LHCb::Pr::UT {
@@ -38,21 +38,21 @@ namespace LHCb::Pr::UT {
UTGeomCache( const DeUTDetector& utDet, const IUTReadoutTool& ro, const IUTReadoutTool::ReadoutInfo& roInfo ) {
UTGeomCache( const DeUTDetector& utDet, const IUTReadoutTool& ro, const IUTReadoutTool::ReadoutInfo& roInfo ) {
sectors.fill( nullptr );
sectors.fill( nullptr );
for ( unsigned int srcId = 0; srcId < ro.nBoard( &roInfo ); srcId++ ) {
for ( unsigned int srcId = 0; srcId < ro.nBoard( &roInfo ); srcId++ ) {
for ( const auto& [idx, sector] :
for ( const auto& [idx, subsector] :
range::enumerate( ro.findBySourceID( srcId, &roInfo ),
range::enumerate( ro.findBySourceID( srcId, &roInfo ),
ro.TELLNumberToSourceID( srcId + 1, &roInfo ) *
ro.TELLNumberToSourceID( srcId + 1, &roInfo ) *
static_cast<unsigned>( UTInfo::SectorNumbers::MaxSectorsPerBoard ) ) ) {
static_cast<unsigned>( UTInfo::SectorNumbers::MaxSectorsPerBoard ) ) ) {
assert( idx < UTInfo::MaxSectorsAllBoards );
assert( idx < UTInfo::MaxSectorsAllBoards );
#ifdef USE_DD4HEP
#ifdef USE_DD4HEP
if ( sectors[idx].isValid() ) throw std::runtime_error( "UTGeomCache: duplicate sector???" );
if ( sectors[idx].isValid() ) throw std::runtime_error( "UTGeomCache: duplicate sector???" );
sectors[idx] = utDet.getSector( sector );
sectors[idx] = utDet.getSector( subsector );
#else
#else
if ( sectors[idx] ) throw std::runtime_error( "UTGeomCache: duplicate sector???" );
if ( sectors[idx] ) throw std::runtime_error( "UTGeomCache: duplicate sector???" );
sectors[idx] = &utDet.getSector( sector );
sectors[idx] = &utDet.getSector( subsector );
#endif
#endif
fullchan[idx] = {LHCb::UTDAQ::sectorFullID( sector.side(), sector.layer(), sector.stave(), sector.face(),
fullchan[idx] = {LHCb::UTDAQ::sectorFullID( subsector.side(), subsector.layer(), subsector.stave(),
sector.module(), sector.sector() ),
subsector.face(), subsector.module(), subsector.sector() ),
sector.channelID()};
subsector.getFullSector()};
}
}
}
}
}
}
Loading