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.