Add RoutingBitsWriter to Moore configuration
The Routing bits serve several purposes:
- Streaming of events to monitoring and alignment tasks.
- Streaming of events to different offline streams.
A Routing bit is usually a requirement on the decision of a set of trigger lines. In the old Hlt they were defined here: https://gitlab.cern.ch/lhcb/Hlt/blob/2018-patches/Hlt%2FHltConf%2Fpython%2FHltConf%2FHltOutput.py#L374 .
E.g.
# RB 33 Lumi after HLT1
routingBits = { 33 : "HLT_PASS_RE('^Hlt1Lumi.*Decision$')"
# RB 35 Beam-Gas for Velo alignment
, 35 : "HLT_PASS_RE('Hlt1(?!BeamGasHighRhoVertices)BeamGas.*Decision')"}
The inputs to the Routing bits writer are the ODIN raw bank and the Hlt decision reports. The Routing bits are stored in a dedicated RawBank
.
Looking at the code in HltRoutingBitsWriter it has several issues with the new framework.
- The algorithm updates the RawEvent with a new RawBank and is not therefore not Functional. This per se is not a problem, as the same is currently done in the
HltDecReportsWriter
. See also here: LHCb!2202 (closed) . - The algorithm (implemented in
HltEvaluator.h
) relies on incidents to get the data of the next event. This is not supported byHLTControlFlowMgr
and therefore leads to segfaults. This needs to be fixed before includingHltRoutingBitsWriter
in the Moore configuration.