Add further checks in L1TriggerByteStreamDecoderAlg
Follow-up to !44943 (merged). Add the following new features in L1TriggerByteStreamDecoderAlg
and the L1 BS decoding configuration:
- Check the DetectorMask and don't fail if ROBs from disabled SubDetectors are missing.
- Add a property
MaybeMissingROBs
allowing to set a list of ROB IDs which can be missing even if the DetectorMask flag is enabled. Add L1Topo ROBs to this list if we're reading Run-2 data, because L1Topo was under commissioning during part of Run 2 and is not guaranteed to be present in the data. Fixes ATR-23804 - Disable L1Topo decoding if we're reading Run-1 data, as there was no L1Topo in Run 1. Fixes ATR-23802
- Add a check of ROB status word and a property
ROBStatusCheckLevel
deciding what to do in case non-zero status is detected. For now, keeping this to just "Warning", i.e. print a warning and continue. This is to avoid potential interference with Run-2 data reprocessing. The Run-3 policy needs to be discussed with L1 subsystems. Relevant tickets are ATR-20745, ATR-23697
Thanks to @wiedenma for consulting this solution