Skip to content

[TrigT1ResultByteStream] Allow L1TriggerResultByteStreamCnv to run without phase-1 L1Muon

Correct the behaviour of phase-1 LVL1 ByteStream encoding in case phase-1 L1Calo path is enabled but phase-1 L1Muon path is disabled. In this case, L1Muon BS encoding goes through the legacy path (RoIBResult). Since this is all sadly done with Gaudi Converter which cannot hold properties or own tools, use a trick of peeking the job options during initialisation to find if the phase-1 Muon encoding tool is configured. If not - disable this part of L1TriggerResultByteStreamCnv.

With this MR, we have the correct behaviour as follows.

  1. With enableL1CaloPhase1=True and enableL1MuonPhase1=True
    L1Muon encoding is done via the phase-1 path (L1TriggerResult)
L1TriggerResultByteStreamCnv               1   0   DEBUG MUCTPI BS encoding is enabled
L1TriggerResultByteStreamCnv               1   0   DEBUG Created 1 L1Muon ROB Fragments
L1TriggerResultByteStreamCnv               1   0   DEBUG Added ROB fragment 760001 to the output raw event
ToolSvc.RoIBResultBSEncoderTool            1   0   DEBUG MUCTPI encoding is disabled
  1. With enableL1CaloPhase1=True and enableL1MuonPhase1=False
    L1Muon encoding is done via the legacy path (RoIBResult). Before this MR, this was crashing as reported in ATR-23703.
L1TriggerResultByteStreamCnv               1   0   DEBUG MUCTPI BS encoding is disabled
ToolSvc.RoIBResultBSEncoderTool            1   0   DEBUG MUCTPI encoding is enabled
RoIBResultByteStreamCnv                    1   0   DEBUG Added ROB fragment 760001 to the output raw event

Merge request reports