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
47 kwargs.setdefault("BkgInputKey", "")
48
49 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}HGTD_SDO_Map")
50 kwargs.setdefault("OutputKey", "HGTD_SDO_Map")
51
52 # Do HGTD truth overlay
53 acc.addEventAlgo(CompFactory.InDetSDOOverlay(name, **kwargs))
54
55 # Setup output
56 if flags.Output.doWriteRDO:
57 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
58 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
59 "InDetSimDataCollection#HGTD_SDO_Map"
60 ]))
61
62 if flags.Output.doWriteRDO_SGNL:
63 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
64 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
65 f"InDetSimDataCollection#{flags.Overlay.SigPrefix}HGTD_SDO_Map"
66 ]))
67
68 return acc
69
70
71def HGTD_OverlayCfg(flags):
72 """Configure and return a ComponentAccumulator for HGTD overlay"""
73 acc = ComponentAccumulator()
74
75 # Add HGTD overlay digitization algorithm
76 from HGTD_Digitization.HGTD_DigitizationConfig import HGTD_OverlayDigitizationBasicCfg
77 acc.merge(HGTD_OverlayDigitizationBasicCfg(flags))
78
79 # Add HGTD overlay algorithm
80 acc.merge(HGTD_OverlayAlgCfg(flags))
81
82 # Add HGTD truth overlay
83 if flags.Digitization.EnableTruth:
84 acc.merge(HGTD_TruthOverlayCfg(flags))
85
86 return acc
HGTD_TruthOverlayCfg(flags, name="HGTD_SDOOverlay", **kwargs)
HGTD_OverlayAlgCfg(flags, name="HGTD_Overlay", **kwargs)