Skip to content

Implement Run-3 HLT result per-module truncation

Rafal Bielski requested to merge rbielski/athena:hlt-truncation into master

Implemented most of the functionality needed for HLT result truncation handling in Run 3, as discussed in ATR-19852. The largest changes are in the TriggerEDMSerialiserTool, so tagging the author @tbold.

The following changes are done in this MR:

  • Add PSC error code for result truncation (TrigKernel)
  • Add new field with getter/setter functions in HLTResultMT for storing IDs of truncated results (TrigSteeringEvent)
  • Detect and handle the truncation in HltEventLoopMgr, sending the event to a dedicated debug stream (TrigServices)
  • Define truncation thresholds map in TriggerEDMRun3 (TrigEDMConfig)
  • Truncation checks and handling in TriggerEDMSerialiserTool (TrigOutputHandling)
    • Factor out seralisation list parsing and serialisation calls into separate functions
    • Use new tryAddData method to either add serialised data to result or flag it as truncated if threshold is exceeded
    • Keep track of recorded and dropped collections in a new structure TruncationInfo during the fill method
    • In case of truncation:
      • Fill monitoring histograms with moduleID, result size, largest collection name and size
      • Print a useful error message with the same information and the threshold value
      • Create, serialise and record a xAOD::TrigComposite object HLTNav_TruncationDebugInfo with information about type, name, size of all collections - both recorded and dropped. This will be used in offline debugging script for the debug shifter (still to be implemented) for easy diagnostics without rerunning HLT.

Tagging also @okuprash, @dzanzi, @morgens, @ballbroo, @mamuzic

Edited by Rafal Bielski

Merge request reports