Skip to content

[ATR-21216][ATR-21780] Make EDM creation conditional on one or more chains passing the event

Tim Martin requested to merge tamartin/athena:hltFinaliseSeq into master

Splits off a new small sequencer inside HLTEndSeq in order to enforce strict algorithm execution ordering and to save CPU for events which do not pass any chains.

New structure (oldJO formalism)

            HLTEndSeq [Seq]  [Concurrent]  [OR]
              TriggerSummaryFinal [Alg]  [n= 0]
              TrigSignatureMoniMT [Alg]  [n= 0]
              HLTFinalizeSeq [Seq]  [Sequential]  [Prompt]
                DecisionSummaryMakerAlg [Alg]  [n= 0]
                HLTAcceptedEventAlgsSeq [Seq]  [Concurrent]  [OR]
                EDMCreatorAlg [Alg]  [n= 0]

HLTFinalizeSeq is [Sequential AND StopOverride=False] meaning that it will short-circuit / exit-early upon getting a single false filter decision from a child.

DecisionSummaryMakerAlg now communicates a filter decision to the scheduler. It only sets its filter status to true if one or more chains pass the event (any stream).

HLTAcceptedEventAlgsSeq is unused, but is somewhere for signatures to put algorithms in the future. It will run only on accepted events.

Finally EDMCreatorAlg is only allowed to run once both DecisionSummaryMakerAlg has finished (w positive filter) and all of HLTAcceptedEventAlgsSeq has finished executing too.

TODO: Needs testing in newJO formalism. Wasn't able to do so today due to crashes elsewhere.

Merge request reports