2 """Code to setup MET reconstruction during the end-of-event sequence"""
4 from typing
import List
6 from AthenaCommon.CFElements
import parOR
7 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
8 from .ConfigHelpers
import AlgConfig, stringToMETRecoDict
9 from ..CommonSequences.FullScanDefs
import caloFSRoI, trkFSRoI
13 "metcalo": [
"cell",
"tcpufit",
"tcpufit_sig30"],
29 """Create the full reconstruction sequences to run at the end of the event
34 The purpose keys given in the associated acceptedevts chain
38 An OR containing the configured algorithms
39 A list of the required RoIs
40 A list of the required streams
43 for purpose
in purposes:
45 alg
for alg
in _algs_by_purpose.get(purpose, [])
if alg
not in ef_reco_algs
47 seqname = f
"{''.join(purposes)}EndOfEventRecoSequence"
50 merged_ca.addSequence(
parOR(seqname), primary=
True)
52 for alg
in ef_reco_algs:
54 step_output = cfg.make_reco_algs(flags, **cfg.interpret_reco_dict())
55 max_step_idx =
max(max_step_idx, step_output.max_step_idx)
56 for ca
in step_output.steps:
57 merged_ca.merge(ca, seqname)
64 streams = [
"Main",
"VBFDelayed"]
65 return merged_ca, rois, streams