ATLAS Offline Software
Loading...
Searching...
No Matches
PLR_OverlayConfig.py
Go to the documentation of this file.
1"""Define methods to construct configured PLR 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 PLR_OverlayAlgCfg(flags, name="PLR_Overlay", **kwargs):
11 """Return a ComponentAccumulator for PLR Overlay algorithm"""
12 acc = ComponentAccumulator()
13
14 kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}PLR_RDOs" if not flags.Overlay.IgnoreBkgInputs else "")
15 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}PLR_RDOs")
16 kwargs.setdefault("OutputKey", "PLR_RDOs")
17
18 # Input setup
19 if kwargs["BkgInputKey"]:
20 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
21 acc.merge(SGInputLoaderCfg(flags, [f'PixelRDO_Container#{kwargs["BkgInputKey"]}']))
22
23 # Do PLR overlay
24 acc.addEventAlgo(CompFactory.PixelOverlay(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 "PixelRDO_Container#PLR_RDOs"
31 ]))
32
33 if not flags.Input.isMC:
34 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
35 "IDCInDetBSErrContainer#PLR_ByteStreamErrs"
36 ]))
37
38 if flags.Output.doWriteRDO_SGNL:
39 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
40 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
41 f"PixelRDO_Container#{flags.Overlay.SigPrefix}PLR_RDOs"
42 ]))
43
44 return acc
45
46
47def PLR_TruthOverlayCfg(flags, name="PLR_SDOOverlay", **kwargs):
48 """Return a ComponentAccumulator for the PLR SDO overlay algorithm"""
49 acc = ComponentAccumulator()
50
51 # We do not need background PLR SDOs
52 kwargs.setdefault("BkgInputKey", "")
53
54 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}PLR_SDO_Map")
55 kwargs.setdefault("OutputKey", "PLR_SDO_Map")
56
57 # Do PLR truth overlay
58 acc.addEventAlgo(CompFactory.InDetSDOOverlay(name, **kwargs))
59
60 # Setup output
61 if flags.Output.doWriteRDO:
62 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
63 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
64 "InDetSimDataCollection#PLR_SDO_Map"
65 ]))
66
67 if flags.Output.doWriteRDO_SGNL:
68 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
69 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
70 f"InDetSimDataCollection#{flags.Overlay.SigPrefix}PLR_SDO_Map"
71 ]))
72
73 return acc
74
75
76def PLR_OverlayCfg(flags):
77 """Configure and return a ComponentAccumulator for PLR overlay"""
78 acc = ComponentAccumulator()
79
80 # Add PLR overlay digitization algorithm
81 from PixelDigitization.PLR_DigitizationConfig import PLR_OverlayDigitizationBasicCfg
82 acc.merge(PLR_OverlayDigitizationBasicCfg(flags))
83
84 # Add PLR overlay algorithm
85 acc.merge(PLR_OverlayAlgCfg(flags))
86
87 # Add PLR truth overlay
88 if flags.Digitization.EnableTruth:
89 acc.merge(PLR_TruthOverlayCfg(flags))
90
91 return acc
PLR_OverlayAlgCfg(flags, name="PLR_Overlay", **kwargs)
PLR_TruthOverlayCfg(flags, name="PLR_SDOOverlay", **kwargs)