Implement Run-3 HLT result per-module truncation
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 thefill
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
objectHLTNav_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