Skip to content

L1TriggerByteStreamDecoderAlg: add monitoring, improve error reporting, check for data corruption

Rafal Bielski requested to merge rbielski/athena:l1bsdecoder-improvements into 22.0

Improvements to the L1TriggerByteStreamDecoderAlg:

  1. In addition to checking for missing ROBs and ROBs with status!=0, check also for ROBs with corrupted data format (as implemented by ROBFragment::check_noex()). This is to prevent attempts to decode corrupted data as discovered/discussed in ATR-26340.
  2. Allow ROBs listed in the MaybeMissingROBs list to not only be missing, but also have non-zero status or corrupted data. No errors will be printed for them.
  3. Improve messages informing about ROB issues to be more meaningful and useful - add SourceIdentifier::human() printout of the ROB ID.
  4. Add online monitoring histogram for timing of various part of the algorithm and tools' execution, as well as for each class of ROB problems. For the latter, there are plots with total count of problems per ROB ID, and TProfiles showing average fraction of ROBs with a given problem in a lumi block.

Tested on physics_Main data from run 429137 with some erroneous or missing phase-1 L1Calo ROBs and on debug_HltError data from run 435080 including some erroneous and corrupted MUCTPI ROBs.

FYI @wiedenma

Edited by Rafal Bielski

Merge request reports