ATLAS Offline Software
Loading...
Searching...
No Matches
ITkPixelOverlayConfig.py
Go to the documentation of this file.
1"""Define methods to construct configured ITk Pixel 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 ITkPixelOverlayAlgCfg(flags, name="ITkPixelOverlay", **kwargs):
11 """Return a ComponentAccumulator for ITk PixelOverlay algorithm"""
12 acc = ComponentAccumulator()
13
14 kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}ITkPixelRDOs")
15 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}ITkPixelRDOs")
16 kwargs.setdefault("OutputKey", "ITkPixelRDOs")
17
18 # Input setup
19 if flags.Overlay.ByteStream:
20 pass
21 else:
22 from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
23 acc.merge(SGInputLoaderCfg(flags, [f'PixelRDO_Container#{kwargs["BkgInputKey"]}']))
24
25 # Do Pixel overlay
26 acc.addEventAlgo(CompFactory.PixelOverlay(name, **kwargs))
27
28 # Setup output
29 if flags.Output.doWriteRDO:
30 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
31 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
32 "PixelRDO_Container#ITkPixelRDOs"
33 ]))
34
35 if not flags.Input.isMC:
36 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
37 "IDCInDetBSErrContainer#ITkPixelByteStreamErrs"
38 ]))
39
40 if flags.Output.doWriteRDO_SGNL:
41 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
42 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
43 f"PixelRDO_Container#{flags.Overlay.SigPrefix}ITkPixelRDOs"
44 ]))
45
46 # for track overlay, write out the signal RDOs because reco tracking will only run on them
47 if flags.Overlay.doTrackOverlay:
48 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
49 f"PixelRDO_Container#{flags.Overlay.SigPrefix}ITkPixelRDOs"
50 ]))
51
52 return acc
53
54
55def ITkPixelTruthOverlayCfg(flags, name="ITkPixelSDOOverlay", **kwargs):
56 """Return a ComponentAccumulator for the ITk Pixel SDO overlay algorithm"""
57 acc = ComponentAccumulator()
58
59 # We do not need background Pixel SDOs
60 kwargs.setdefault("BkgInputKey", "")
61
62 kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}ITkPixelSDO_Map")
63 kwargs.setdefault("OutputKey", "ITkPixelSDO_Map")
64
65 # Do Pixel truth overlay
66 acc.addEventAlgo(CompFactory.InDetSDOOverlay(name, **kwargs))
67
68 # Setup output
69 if flags.Output.doWriteRDO:
70 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
71 acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
72 "InDetSimDataCollection#ITkPixelSDO_Map"
73 ]))
74
75 if flags.Output.doWriteRDO_SGNL:
76 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
77 acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
78 f"InDetSimDataCollection#{flags.Overlay.SigPrefix}ITkPixelSDO_Map"
79 ]))
80
81 return acc
82
83
85 """Configure and return a ComponentAccumulator for Pixel overlay"""
86 acc = ComponentAccumulator()
87
88 # Add ITk Pixel overlay digitization algorithm
89 from PixelDigitization.ITkPixelDigitizationConfig import ITkPixelOverlayDigitizationBasicCfg
90 acc.merge(ITkPixelOverlayDigitizationBasicCfg(flags))
91
92 # Add ITk Pixel overlay algorithm
93 acc.merge(ITkPixelOverlayAlgCfg(flags))
94
95 # Add ITk Pixel truth overlay
96 if flags.Digitization.EnableTruth:
97 acc.merge(ITkPixelTruthOverlayCfg(flags))
98
99 return acc
ITkPixelTruthOverlayCfg(flags, name="ITkPixelSDOOverlay", **kwargs)
ITkPixelOverlayAlgCfg(flags, name="ITkPixelOverlay", **kwargs)