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