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")
15 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}HGTD_RDOs")
16 kwargs.setdefault("OutputKey", "HGTD_RDOs")
17
18 # Input setup
19 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
20 acc.merge(SGInputLoaderCfg(flags, [f'HGTD_RDO_Container#{kwargs["BkgInputKey"]}']))
21
22 # Do HGTD overlay
23 acc.addEventAlgo(CompFactory.HGTD_Overlay(name, **kwargs))
24
25 # Setup output
26 if flags.Output.doWriteRDO:
27 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
28 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
29 "HGTD_RDO_Container#HGTD_RDOs"
30 ]))
31
32 if flags.Output.doWriteRDO_SGNL:
33 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
34 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
35 f"HGTD_RDO_Container#{flags.Overlay.SigPrefix}HGTD_RDOs"
36 ]))
37
38 return acc
39
40
41def HGTD_TruthOverlayCfg(flags, name="HGTD_SDOOverlay", **kwargs):
42 """Return a ComponentAccumulator for the HGTD SDO overlay algorithm"""
43 acc = ComponentAccumulator()
44
45 # We do not need background HGTD SDOs
46 kwargs.setdefault("BkgInputKey", "")
47
48 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}HGTD_SDO_Map")
49 kwargs.setdefault("OutputKey", "HGTD_SDO_Map")
50
51 # Do HGTD truth overlay
52 acc.addEventAlgo(CompFactory.InDetSDOOverlay(name, **kwargs))
53
54 # Setup output
55 if flags.Output.doWriteRDO:
56 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
57 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
58 "InDetSimDataCollection#HGTD_SDO_Map"
59 ]))
60
61 if flags.Output.doWriteRDO_SGNL:
62 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
63 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
64 f"InDetSimDataCollection#{flags.Overlay.SigPrefix}HGTD_SDO_Map"
65 ]))
66
67 return acc
68
69
70def HGTD_OverlayCfg(flags):
71 """Configure and return a ComponentAccumulator for HGTD overlay"""
72 acc = ComponentAccumulator()
73
74 # Add HGTD overlay digitization algorithm
75 from HGTD_Digitization.HGTD_DigitizationConfig import HGTD_OverlayDigitizationBasicCfg
76 acc.merge(HGTD_OverlayDigitizationBasicCfg(flags))
77
78 # Add HGTD overlay algorithm
79 acc.merge(HGTD_OverlayAlgCfg(flags))
80
81 # Add HGTD truth overlay
82 if flags.Digitization.EnableTruth:
83 acc.merge(HGTD_TruthOverlayCfg(flags))
84
85 return acc
HGTD_TruthOverlayCfg(flags, name="HGTD_SDOOverlay", **kwargs)
HGTD_OverlayAlgCfg(flags, name="HGTD_Overlay", **kwargs)