Implement tools decorating L1 xAOD RoI objects with threshold patterns
Implement tools which decorate L1 xAOD RoI objects with threshold patterns, as discussed in ATR-23290. The decoration is a 64-bit mask where each bit corresponds to L1 trigger threshold number of a given type and the value indicates whether the threshold passed or not for the given RoI object (TOB).
There is an interface class IRoIThresholdsTool
to be used by clients to call the decorateThresholds
method. There is also a base class RoIThresholdsTool
taking care of the menu information retrieval, input and output data handles, and the act of adding the decoration. The concrete implementations only need to provide the getPatterns
method which translate the information from the menu and the RoI object (TOB) into the 64-bit mask.
For xAOD::eFexEMRoI
a new tool is created - eFexEMRoIThresholdsTool
.
For xAOD::MuonRoI
(MUCTPI), the existing TrigThresholdDecisionTool
is adapted to derive from the new base class and follow the new interfaces and logic. cc @armbrust
The clients, eFex EM and MU "RoI unpacking tools" in L1Decoder, are adapted to depend on and read the new decoration for seeding the HLT chains.
Left to do in a separate MR: Implement the getPattern
logic for xAOD::eFexEMRoI
(eFexEMRoIThresholdsTool
). For now it returns an all-pass mask.
NB: As there was no opposition in Jira, I opted for a 64-bit mask instead of 32-bit to be on the safe side regarding the possible number of thresholds.