Fix writing HLT result in failed events (debug stream) + extend tooling and testing
A couple of changes improving the HLT online error handling and the related tooling/testing:
-
HLTResultMTMaker
: Split the "create" and "fill" functionality into separate functions to allow the next change. -
HltEventLoopMgr
: Fill HLT result after adding debug stream tag, not before. This ensures the event is already marked as accepted (force-accepted to debug stream) and thus the optimisation skipping EDM serialisation on rejected events (!33290 (merged)) doesn't kick in. This was the primary cause of bug ATR-25981. -
HltEventLoopMgr
: Improve error handling, trying to avoid the possibility of dropping event processing without communicating it to data collector (DCM) when result building/recording/sending fails. When unavoidable, instead of continuing event loop, now the error message specifically highlights this issue and aborts the event loop. -
MTCalibPebConfig
: Add some useful framework EDM objects to the job output. In particular includingTrigConfKeysOnline
andHLT_RuntimeMetadata
. -
trigbs_dumpHLTContentInBS_run3.py
: Add option to printHLT_RuntimeMetadata
(currently only containing the hostname). -
test_trigP1_timeout_build.py
: Add a check ensuring theTrigConfKeysOnline
andHLT_RuntimeMetadata
are always written, also in debug stream events.
Fixes ATR-25981 and hopefully prevents such a problem in the future