ATLAS Offline Software
Loading...
Searching...
No Matches
FastSiDigitizationConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5from DigitizationConfig.PileUpMergeSvcConfig import PileUpMergeSvcCfg, PileUpXingFolderCfg
6
7
8# The earliest bunch crossing time for which interactions will be sent
9# to the Fast Pixel Digitization code.
11 return 0
12
13
14# The latest bunch crossing time for which interactions will be sent
15# to the Fast Pixel Digitization code.
17 return 0
18
19
20# The earliest bunch crossing time for which interactions will be sent
21# to the Fast SCT Digitization code.
23 return 0
24
25
26# The latest bunch crossing time for which interactions will be sent
27# to the Fast SCT Digitization code.
29 return 0
30
31
32def commonPixelFastDigitizationCfg(flags, name,**kwargs):
33 acc = ComponentAccumulator()
34 from InDetConfig.SiClusterizationToolConfig import ClusterMakerToolCfg
35 kwargs.setdefault("ClusterMaker", acc.popToolsAndMerge(ClusterMakerToolCfg(flags)))
36
37 from RngComps.RngCompsConfig import AthRNGSvcCfg
38 kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
39 kwargs.setdefault("RndmEngine", "FastPixelDigitization")
40
41 if flags.Digitization.DoXingByXingPileUp:
42 kwargs.setdefault("FirstXing", FastPixel_FirstXing())
43 kwargs.setdefault("LastXing", FastPixel_LastXing() )
44
45 from PixelConditionsAlgorithms.PixelConditionsConfig import PixelConfigCondAlgCfg
46 acc.merge(PixelConfigCondAlgCfg(flags, name="PixelConfigCondAlg", ReadDeadMapKey = ""))
47
48 from SiLorentzAngleTool.PixelLorentzAngleConfig import PixelLorentzAngleToolCfg
49 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(PixelLorentzAngleToolCfg(flags)))
50
51 acc.setPrivateTools(CompFactory.PixelFastDigitizationTool(name,**kwargs))
52 return acc
53
54
55def commonSCT_FastDigitizationCfg(flags, name,**kwargs):
56 acc = ComponentAccumulator()
57 from InDetConfig.SiClusterizationToolConfig import ClusterMakerToolCfg
58 kwargs.setdefault("ClusterMaker", acc.popToolsAndMerge(ClusterMakerToolCfg(flags)))
59
60 from RngComps.RngCompsConfig import AthRNGSvcCfg
61 kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
62 kwargs.setdefault("RndmEngine", "FastSCT_Digitization")
63
64 if flags.Digitization.DoXingByXingPileUp:
65 kwargs.setdefault("FirstXing", FastSCT_FirstXing())
66 kwargs.setdefault("LastXing", FastSCT_LastXing() )
67
68 from SiLorentzAngleTool.SCT_LorentzAngleConfig import SCT_LorentzAngleToolCfg
69 kwargs.setdefault("LorentzAngleTool", acc.popToolsAndMerge(SCT_LorentzAngleToolCfg(flags)))
70
71 acc.setPrivateTools(CompFactory.SCT_FastDigitizationTool(name,**kwargs))
72 return acc
73
74
75
76def PixelFastDigitizationToolCfg(flags, name="PixelFastDigitizationTool", **kwargs):
77 acc = ComponentAccumulator()
78 intervals = []
79 if not flags.Digitization.DoXingByXingPileUp:
80 intervals += [acc.popToolsAndMerge(FastPixelRangeCfg(flags))]
81 kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
82 kwargs.setdefault("HardScatterSplittingMode", 0)
83 acc.setPrivateTools(commonPixelFastDigitizationCfg(flags, name, **kwargs))
84 return acc
85
86
87
88def PixelFastDigitizationToolHSCfg(flags, name="PixelFastDigitizationToolHS", **kwargs):
89 acc = ComponentAccumulator()
90 intervals = []
91 if not flags.Digitization.DoXingByXingPileUp:
92 intervals += [acc.popToolsAndMerge(FastPixelRangeCfg(flags))]
93 kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
94 kwargs.setdefault("HardScatterSplittingMode", 1)
95 acc.setPrivateTools(commonPixelFastDigitizationCfg(flags, name, **kwargs))
96 return acc
97
98
99
100def PixelFastDigitizationToolPUCfg(flags, name="PixelFastDigitizationToolPU", **kwargs):
101 acc = ComponentAccumulator()
102 intervals = []
103 if not flags.Digitization.DoXingByXingPileUp:
104 intervals += [acc.popToolsAndMerge(FastPixelRangeCfg(flags))]
105 kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
106 kwargs.setdefault("PixelClusterContainerName", "Pixel_PU_Clusters")
107 kwargs.setdefault("TruthNamePixel", "PRD_MultiTruthPixel_PU")
108 kwargs.setdefault("HardScatterSplittingMode", 2)
109 acc.setPrivateTools(commonPixelFastDigitizationCfg(flags, name, **kwargs))
110 return acc
111
112
113
114def PixelFastDigitizationToolSplitNoMergePUCfg(flags, name="PixelFastDigitizationToolSplitNoMergePU", **kwargs):
115 acc = ComponentAccumulator()
116 intervals = []
117 if not flags.Digitization.DoXingByXingPileUp:
118 intervals += [acc.popToolsAndMerge(FastPixelRangeCfg(flags))]
119 kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
120 kwargs.setdefault("InputObjectName", "PileupPixelHits")
121 kwargs.setdefault("PixelClusterContainerName", "PixelFast_PU_Clusters")
122 kwargs.setdefault("TruthNamePixel", "PRD_MultiTruthPixel_PU")
123 kwargs.setdefault("HardScatterSplittingMode", 0)
124 kwargs.setdefault("PixelClusterAmbiguitiesMapName", "PixelClusterAmbiguitiesMapPU")
125 acc.setPrivateTools(commonPixelFastDigitizationCfg(flags, name, **kwargs))
126 return acc
127
128
129
130def SCT_FastDigitizationToolCfg(flags, name="SCT_FastDigitizationTool", **kwargs):
131 acc = ComponentAccumulator()
132 intervals = []
133 if not flags.Digitization.DoXingByXingPileUp:
134 intervals += [acc.popToolsAndMerge(FastSCTRangeCfg(flags))]
135 kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
136 kwargs.setdefault("HardScatterSplittingMode", 0)
137 acc.setPrivateTools(commonSCT_FastDigitizationCfg(flags, name, **kwargs))
138 return acc
139 return commonSCT_FastDigitizationCfg(flags, name,**kwargs)
140
141
142
143def SCT_FastDigitizationToolHSCfg(flags, name="SCT_FastDigitizationToolHS",**kwargs):
144 acc = ComponentAccumulator()
145 intervals = []
146 if not flags.Digitization.DoXingByXingPileUp:
147 intervals += [acc.popToolsAndMerge(FastSCTRangeCfg(flags))]
148 kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
149 kwargs.setdefault("HardScatterSplittingMode", 1)
150 acc.setPrivateTools(commonSCT_FastDigitizationCfg(flags, name, **kwargs))
151 return acc
152
153
154
155def SCT_FastDigitizationToolPUCfg(flags, name="SCT_FastDigitizationToolPU",**kwargs):
156 acc = ComponentAccumulator()
157 intervals = []
158 if not flags.Digitization.DoXingByXingPileUp:
159 intervals += [acc.popToolsAndMerge(FastSCTRangeCfg(flags))]
160 kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
161 kwargs.setdefault("SCT_ClusterContainerName", "SCT_PU_Clusters")
162 kwargs.setdefault("TruthNameSCT", "PRD_MultiTruthSCT_PU")
163 kwargs.setdefault("HardScatterSplittingMode", 2)
164 acc.setPrivateTools(commonSCT_FastDigitizationCfg(flags, name, **kwargs))
165 return acc
166
167
168
169def SCT_FastDigitizationToolSplitNoMergePUCfg(flags, name="SCT_FastDigitizationToolSplitNoMergePU",**kwargs):
170 acc = ComponentAccumulator()
171 intervals = []
172 if not flags.Digitization.DoXingByXingPileUp:
173 intervals += [acc.popToolsAndMerge(FastSCTRangeCfg(flags))]
174 kwargs.setdefault("MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
175 kwargs.setdefault("InputObjectName", "PileupSCT_Hits")
176 kwargs.setdefault("SCT_ClusterContainerName", "SCT_PU_Clusters")
177 kwargs.setdefault("TruthNameSCT", "PRD_MultiTruthSCT_PU")
178 kwargs.setdefault("HardScatterSplittingMode", 0)
179 acc.setPrivateTools(commonSCT_FastDigitizationCfg(flags, name, **kwargs))
180 return acc
181
182
183
184def FastPixelRangeCfg(flags, name="FastPixelRange" , **kwargs):
185 kwargs.setdefault('FirstXing', FastPixel_FirstXing() )
186 kwargs.setdefault('LastXing', FastPixel_LastXing() )
187 kwargs.setdefault('CacheRefreshFrequency', 1.0 ) #default 0 no dataproxy reset
188 kwargs.setdefault('ItemList', ["SiHitCollection#PixelHits"] )
189 return PileUpXingFolderCfg(flags, name, **kwargs)
190
191
192
193def FastSCTRangeCfg(flags, name="FastSCTRange" , **kwargs):
194 #this is the time of the xing in ns
195 kwargs.setdefault('FirstXing', FastSCT_FirstXing() )
196 kwargs.setdefault('LastXing', FastSCT_LastXing() )
197 kwargs.setdefault('CacheRefreshFrequency', 1.0 ) #default 0 no dataproxy reset
198 kwargs.setdefault('ItemList', ["SiHitCollection#SCT_Hits"] )
199 return PileUpXingFolderCfg(flags, name, **kwargs)
SCT_FastDigitizationToolCfg(flags, name="SCT_FastDigitizationTool", **kwargs)
FastSCTRangeCfg(flags, name="FastSCTRange", **kwargs)
PixelFastDigitizationToolSplitNoMergePUCfg(flags, name="PixelFastDigitizationToolSplitNoMergePU", **kwargs)
SCT_FastDigitizationToolSplitNoMergePUCfg(flags, name="SCT_FastDigitizationToolSplitNoMergePU", **kwargs)
PixelFastDigitizationToolHSCfg(flags, name="PixelFastDigitizationToolHS", **kwargs)
FastPixelRangeCfg(flags, name="FastPixelRange", **kwargs)
PixelFastDigitizationToolCfg(flags, name="PixelFastDigitizationTool", **kwargs)
PixelFastDigitizationToolPUCfg(flags, name="PixelFastDigitizationToolPU", **kwargs)
commonSCT_FastDigitizationCfg(flags, name, **kwargs)
SCT_FastDigitizationToolPUCfg(flags, name="SCT_FastDigitizationToolPU", **kwargs)
SCT_FastDigitizationToolHSCfg(flags, name="SCT_FastDigitizationToolHS", **kwargs)
commonPixelFastDigitizationCfg(flags, name, **kwargs)