Skip to content

[HLTSeeding] Extend RoI template code and use it for debug info in L1DataConsistencyChecker

The main goal of this MR is to print extra debug info for L1 TOB (RoI) objects in L1DataConsistencyChecker. This would've been far easier if the different TOB classes had a common base class, and slightly easier if they at least had consistent interfaces. Unfortunately, the ship has already sailed for this. Now, with no less than four different function signatures for conceptually the same method (xAOD::eFexEMRoI::word0, xAOD::jFexTauRoI::tobWord, xAOD::gFexJetRoI::word, xAOD::MuonRoI::roiWord), the only solution is to employ templates, function pointers, and some C++17 features to come up with a single interface to treat them all. The situation is even worse with "ET" accessors because not all TOB classes have a float ET accessor, so the best common thing I could find is the unsigned int "TOB ET" (in the internal integer units).

Anyway, the extra printouts are added with a reasonably simple modification in L1DataConsistencyChecker and hiding all the boilerplate code in the HLTSeedingRoIToolDefs header.

Requsted by @dzanzi to help debugging ATR-24829.

Merge request reports