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