ATLAS Offline Software
Loading...
Searching...
No Matches
HGTD_OverlayConfig.py
Go to the documentation of this file.
1"""Define methods to construct configured HGTD overlay algorithms
2
3Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
4"""
5
6from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7from AthenaConfiguration.ComponentFactory import CompFactory
8
9
10def HGTD_OverlayAlgCfg(flags, name="HGTD_Overlay", **kwargs):
11 """Return a ComponentAccumulator for HGTD overlay algorithm"""
12 acc = ComponentAccumulator()
13
14 kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}HGTD_RDOs" if not flags.Overlay.IgnoreBkgInputs else "")
15 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}HGTD_RDOs")
16 kwargs.setdefault("OutputKey", "HGTD_RDOs")
17
18 # Input setup
19 if kwargs["BkgInputKey"]:
20 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
21 acc.merge(SGInputLoaderCfg(flags, [f'HGTD_RDO_Container#{kwargs["BkgInputKey"]}']))
22
23 # Do HGTD overlay
24 acc.addEventAlgo(CompFactory.HGTD_Overlay(name, **kwargs))
25
26 # Setup output
27 if flags.Output.doWriteRDO:
28 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
29 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
30 "HGTD_RDO_Container#HGTD_RDOs"
31 ]))
32
33 if flags.Output.doWriteRDO_SGNL:
34 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
35 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
36 f"HGTD_RDO_Container#{flags.Overlay.SigPrefix}HGTD_RDOs"
37 ]))
38
39 return acc
40
41
42def HGTD_TruthOverlayCfg(flags, name="HGTD_SDOOverlay", **kwargs):
43 """Return a ComponentAccumulator for the HGTD SDO overlay algorithm"""
44 acc = ComponentAccumulator()
45
46 # We do not need background HGTD SDOs for data overlay
47 if not flags.Input.isMC:
48 kwargs.setdefault("BkgInputKey", "")
49 else:
50 kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}HGTD_SDO_Map")
51
52 if kwargs["BkgInputKey"]:
53 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
54 acc.merge(SGInputLoaderCfg(flags, [f'InDetSimDataCollection#{kwargs["BkgInputKey"]}']))
55
56 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}HGTD_SDO_Map")
57 kwargs.setdefault("OutputKey", "HGTD_SDO_Map")
58
59 # Do HGTD truth overlay
60 acc.addEventAlgo(CompFactory.InDetSDOOverlay(name, **kwargs))
61
62 # Setup output
63 if flags.Output.doWriteRDO:
64 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
65 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
66 "InDetSimDataCollection#HGTD_SDO_Map"
67 ]))
68
69 if flags.Output.doWriteRDO_SGNL:
70 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
71 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
72 f"InDetSimDataCollection#{flags.Overlay.SigPrefix}HGTD_SDO_Map"
73 ]))
74
75 return acc
76
77
78def HGTD_OverlayCfg(flags):
79 """Configure and return a ComponentAccumulator for HGTD overlay"""
80 acc = ComponentAccumulator()
81
82 # Add HGTD overlay digitization algorithm
83 from HGTD_Digitization.HGTD_DigitizationConfig import HGTD_OverlayDigitizationBasicCfg
84 acc.merge(HGTD_OverlayDigitizationBasicCfg(flags))
85
86 # Add HGTD overlay algorithm
87 acc.merge(HGTD_OverlayAlgCfg(flags))
88
89 # Add HGTD truth overlay
90 if flags.Digitization.EnableTruth:
91 acc.merge(HGTD_TruthOverlayCfg(flags))
92
93 return acc
HGTD_TruthOverlayCfg(flags, name="HGTD_SDOOverlay", **kwargs)
HGTD_OverlayAlgCfg(flags, name="HGTD_Overlay", **kwargs)