ATLAS Offline Software
IDAlignToolsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 # File: InDetAlignConfig/python/IDAlignToolsConfig.py
4 # Author: David Brunner (david.brunner@cern.ch), Thomas Strebler (thomas.strebler@cern.ch)
5 
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaConfiguration.ComponentFactory import CompFactory
8 
9 
10 
11 
12 def InDetAlignModuleToolCfg(flags, name="InDetAlignModuleTool", **kwargs):
13  cfg = ComponentAccumulator()
14  cfg.setPrivateTools(CompFactory.InDet.InDetAlignModuleTool(name, **kwargs))
15  return cfg
16 
17 
19  flags, name="PixelGeometryManagerTool", **kwargs):
20  cfg = ComponentAccumulator()
21 
22  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
23  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
24 
25  kwargs.setdefault("AlignmentLevel", 1)
26  kwargs.setdefault("AlignmentLevelBarrel", 12)
27  kwargs.setdefault("AlignmentLevelEndcaps", 12)
28 
29  kwargs.setdefault("SetSoftCutBarrelX", 0.02)
30  kwargs.setdefault("SetSoftCutBarrelY", 0.02)
31  kwargs.setdefault("SetSoftCutBarrelZ", 0.02)
32  kwargs.setdefault("SetSoftCutBarrelRotX", 0.05)
33  kwargs.setdefault("SetSoftCutBarrelRotY", 0.05)
34  kwargs.setdefault("SetSoftCutBarrelRotZ", 0.05)
35  kwargs.setdefault("SetSoftCutEndcapX", 0.02)
36  kwargs.setdefault("SetSoftCutEndcapY", 0.02)
37  kwargs.setdefault("SetSoftCutEndcapZ", 0.02)
38  kwargs.setdefault("SetSoftCutEndcapRotX", 0.05)
39  kwargs.setdefault("SetSoftCutEndcapRotY", 0.05)
40  kwargs.setdefault("SetSoftCutEndcapRotZ", 0.05)
41 
42  cfg.setPrivateTools(
43  CompFactory.InDet.PixelGeometryManagerTool(name, **kwargs))
44  return cfg
45 
46 
47 def SCTGeometryManagerToolCfg(flags, name="SCTGeometryManagerTool", **kwargs):
48  cfg = ComponentAccumulator()
49 
50  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
51  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
52 
53  kwargs.setdefault("AlignmentLevel", 2)
54  kwargs.setdefault("AlignmentLevelBarrel", 2)
55  kwargs.setdefault("AlignmentLevelEndcaps", 2)
56 
57  kwargs.setdefault("SetSoftCutBarrelX", 0.05)
58  kwargs.setdefault("SetSoftCutBarrelY", 0.05)
59  kwargs.setdefault("SetSoftCutBarrelZ", 0.05)
60  kwargs.setdefault("SetSoftCutBarrelRotX", 0.05)
61  kwargs.setdefault("SetSoftCutBarrelRotY", 0.05)
62  kwargs.setdefault("SetSoftCutBarrelRotZ", 0.05)
63  kwargs.setdefault("SetSoftCutEndcapX", 0.05)
64  kwargs.setdefault("SetSoftCutEndcapY", 0.05)
65  kwargs.setdefault("SetSoftCutEndcapZ", 0.005)
66  kwargs.setdefault("SetSoftCutEndcapRotX", 0.005)
67  kwargs.setdefault("SetSoftCutEndcapRotY", 0.05)
68  kwargs.setdefault("SetSoftCutEndcapRotZ", 0.05)
69 
70  cfg.setPrivateTools(
71  CompFactory.InDet.SCTGeometryManagerTool(name, **kwargs))
72  return cfg
73 
74 
75 def SiGeometryManagerToolCfg(flags, name="SiGeometryManagerTool", **kwargs):
76  cfg = ComponentAccumulator()
77 
78  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
79  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
80 
81  kwargs.setdefault("AlignPixel", flags.InDet.Align.alignPixel)
82  kwargs.setdefault("AlignSCT", flags.InDet.Align.alignSCT)
83  kwargs.setdefault("AlignmentLevel", 2)
84  kwargs.setdefault("ModuleSelection", [])
85 
86  if kwargs["AlignPixel"]:
87  kwargs.setdefault("PixelGeometryManager", cfg.addPublicTool(
88  cfg.popToolsAndMerge(PixelGeometryManagerToolCfg(flags))))
89 
90  if kwargs["AlignSCT"]:
91  kwargs.setdefault("SCTGeometryManager", cfg.addPublicTool(
92  cfg.popToolsAndMerge(SCTGeometryManagerToolCfg(flags))))
93 
94  cfg.setPrivateTools(CompFactory.InDet.SiGeometryManagerTool(name, **kwargs))
95  return cfg
96 
97 
98 def TRTGeometryManagerToolCfg(flags, name="TRTGeometryManagerTool", **kwargs):
99  cfg = ComponentAccumulator()
100 
101  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
102  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
103 
104  kwargs.setdefault("AlignmentLevel", 2)
105  kwargs.setdefault("AlignmentLevelBarrel", 2)
106  kwargs.setdefault("AlignmentLevelEndcaps", 2)
107  kwargs.setdefault("AlignBarrelZ", True)
108 
109  kwargs.setdefault("SetSoftCutBarrelX", 0.1)
110  kwargs.setdefault("SetSoftCutBarrelY", 0.1)
111  kwargs.setdefault("SetSoftCutBarrelZ", 0.1)
112  kwargs.setdefault("SetSoftCutBarrelRotX", 0.05)
113  kwargs.setdefault("SetSoftCutBarrelRotY", 0.05)
114  kwargs.setdefault("SetSoftCutBarrelRotZ", 0.05)
115  kwargs.setdefault("SetSoftCutEndcapX", 0.1)
116  kwargs.setdefault("SetSoftCutEndcapY", 0.1)
117  kwargs.setdefault("SetSoftCutEndcapZ", 0.001)
118  kwargs.setdefault("SetSoftCutEndcapRotX", 0.05)
119  kwargs.setdefault("SetSoftCutEndcapRotY", 0.05)
120  kwargs.setdefault("SetSoftCutEndcapRotZ", 0.05)
121 
122  cfg.setPrivateTools(
123  CompFactory.InDet.TRTGeometryManagerTool(name, **kwargs))
124  return cfg
125 
126 
128  flags, name="InDetGeometryManagerTool", **kwargs):
129  cfg = ComponentAccumulator()
130 
131  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
132  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
133 
134  kwargs.setdefault("AlignSilicon", flags.InDet.Align.alignSilicon)
135  kwargs.setdefault("AlignTRT", flags.InDet.Align.alignTRT)
136  kwargs.setdefault("AlignmentLevel", 2)
137 
138  if kwargs["AlignSilicon"]:
139  kwargs.setdefault("SiGeometryManager", cfg.addPublicTool(
140  cfg.popToolsAndMerge(SiGeometryManagerToolCfg(flags))))
141 
142  if kwargs["AlignTRT"]:
143  kwargs.setdefault("TRTGeometryManager", cfg.addPublicTool(
144  cfg.popToolsAndMerge(TRTGeometryManagerToolCfg(flags))))
145 
146  cfg.setPrivateTools(
147  CompFactory.InDet.InDetGeometryManagerTool(name, **kwargs))
148 
149  return cfg
150 
151 
152 
153 
154 def SiTrkAlignDBToolCfg(flags, name="SiTrkAlignDBTool", **kwargs):
155  cfg = ComponentAccumulator()
156 
157  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
158  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
159  kwargs.setdefault("PixelGeometryManager", cfg.addPublicTool(
160  cfg.popToolsAndMerge(PixelGeometryManagerToolCfg(flags))))
161  kwargs.setdefault("SCTGeometryManager", cfg.addPublicTool(
162  cfg.popToolsAndMerge(SCTGeometryManagerToolCfg(flags))))
163  kwargs.setdefault("SiGeometryManager", cfg.addPublicTool(
164  cfg.popToolsAndMerge(SiGeometryManagerToolCfg(flags))))
165 
166  kwargs.setdefault("WriteOldConstants", True)
167 
168  cfg.setPrivateTools(CompFactory.InDet.SiTrkAlignDBTool(name, **kwargs))
169  return cfg
170 
171 
172 def TRT_AlignDbSvcCfg(flags, name="TRT_AlignDbSvc", **kwargs):
173  cfg = ComponentAccumulator()
174  cfg.addService(CompFactory.TRT_AlignDbSvc(name, **kwargs))
175  return cfg
176 
177 
178 def TRTTrkAlignDBToolCfg(flags, name="TRTTrkAlignDBTool", **kwargs):
179  cfg = ComponentAccumulator()
180 
181  kwargs.setdefault("TrtAlignDbSvc", cfg.getPrimaryAndMerge(
182  TRT_AlignDbSvcCfg(flags)))
183  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
184  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
185  kwargs.setdefault("TRTGeometryManager", cfg.addPublicTool(
186  cfg.popToolsAndMerge(TRTGeometryManagerToolCfg(flags))))
187 
188  kwargs.setdefault("WriteOldConstants", True)
189 
190  cfg.setPrivateTools(CompFactory.InDet.TRTTrkAlignDBTool(name, **kwargs))
191  return cfg
192 
193 
194 def InDetTrkAlignDBToolCfg(flags, name="InDetTrkAlignDBTool", **kwargs):
195  cfg = ComponentAccumulator()
196 
197  kwargs.setdefault("SiTrkAlignDBTool", cfg.addPublicTool(
198  cfg.popToolsAndMerge(SiTrkAlignDBToolCfg(flags))))
199  kwargs.setdefault("TRTTrkAlignDBTool", cfg.addPublicTool(
200  cfg.popToolsAndMerge(TRTTrkAlignDBToolCfg(flags))))
201 
202  cfg.setPrivateTools(CompFactory.InDet.InDetTrkAlignDBTool(name, **kwargs))
203  return cfg
204 
205 
206 def GeometryManagerToolCfg(flags, **kwargs):
207 
209  if flags.InDet.Align.alignInDet:
210  return InDetGeometryManagerToolCfg(flags, **kwargs)
211  elif flags.InDet.Align.alignTRT:
212  return TRTGeometryManagerToolCfg(flags, **kwargs)
213  elif flags.InDet.Align.alignSilicon:
214  return SiGeometryManagerToolCfg(flags, **kwargs)
215  elif flags.InDet.Align.alignPixel:
216  return PixelGeometryManagerToolCfg(flags, **kwargs)
217  elif flags.InDetAlign.alignSCT:
218  return SCTGeometryManagerToolCfg(flags, **kwargs)
219 
220 def AlignDBToolCfg(flags, **kwargs):
221 
223  if flags.InDet.Align.alignInDet:
224  return InDetTrkAlignDBToolCfg(flags, **kwargs)
225  elif flags.InDet.Align.alignTRT:
226  return TRTTrkAlignDBToolCfg(flags, **kwargs)
227  elif (flags.InDet.Align.alignSilicon or flags.InDet.Align.alignPixel
228  or flags.InDetAlign.alignSCT):
229  return SiTrkAlignDBToolCfg(flags, **kwargs)
230 
231 
232 
233 
234 def MatrixToolCfg(flags, name="MatrixTool", **kwargs):
235  cfg = ComponentAccumulator()
236 
237  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
238  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
239 
240  kwargs.setdefault("SolveOption", 3)
241  kwargs.setdefault("MinNumHitsPerModule", 10)
242 
243  kwargs.setdefault("WriteTFile", True)
244  kwargs.setdefault("ReadTFile", True)
245  kwargs.setdefault("ScaleMatrix", True)
246  kwargs.setdefault("WriteEigenMat", False)
247  kwargs.setdefault("WriteEigenMatTxt", False)
248 
249  cfg.setPrivateTools(CompFactory.Trk.MatrixTool(name, **kwargs))
250  return cfg
251 
252 
253 def GlobalChi2AlignToolCfg(flags, name="GlobalChi2AlignTool", **kwargs):
254  cfg = ComponentAccumulator()
255 
256  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
257  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
258 
259  kwargs.setdefault("MatrixTool", cfg.popToolsAndMerge(MatrixToolCfg(flags)))
260 
261  kwargs.setdefault("StoreLocalDerivOnly", flags.InDet.Align.solveLocal)
262  kwargs.setdefault("SecondDerivativeCut", 0)
263 
264  cfg.setPrivateTools(CompFactory.Trk.GlobalChi2AlignTool(name, **kwargs))
265  return cfg
266 
267 
268 
269 
270 def AlignResidualCalculatorCfg(flags, name="AlignResidualCalculator", **kwargs):
271  cfg = ComponentAccumulator()
272 
273  kwargs.setdefault("ResidualType", 0)
274 
275  cfg.setPrivateTools(CompFactory.Trk.AlignResidualCalculator(name, **kwargs))
276  return cfg
277 
278 
279 def AlignTrackCreatorCfg(flags, name="AlignTrackCreator", **kwargs):
280  cfg = ComponentAccumulator()
281 
282  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
283  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
284 
285  kwargs.setdefault("ResidualCalculator", cfg.popToolsAndMerge(
287 
288  kwargs.setdefault("IncludeScatterers", False)
289  kwargs.setdefault("RemoveATSOSNotInAlignModule", False)
290 
291  cfg.setPrivateTools(CompFactory.Trk.AlignTrackCreator(name, **kwargs))
292  return cfg
293 
294 
295 
296 
298  flags, name="BeamspotVertexPreProcessor", **kwargs):
299  cfg = ComponentAccumulator()
300 
301  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
302  cfg.popToolsAndMerge(InDetAlignModuleToolCfg(flags))))
303 
304  if "TrackFitter" not in kwargs:
305  from TrkConfig.CommonTrackFitterConfig import InDetTrackFitterCfg
306  kwargs.setdefault("TrackFitter", cfg.addPublicTool(
307  cfg.popToolsAndMerge(InDetTrackFitterCfg(
308  flags, FillDerivativeMatrix = True))))
309 
310  if "TrackToVertexIPEstimatorTool" not in kwargs:
311  from TrkConfig.TrkVertexFitterUtilsConfig import (
312  TrackToVertexIPEstimatorCfg)
313  kwargs.setdefault("TrackToVertexIPEstimatorTool", cfg.addPublicTool(
314  cfg.popToolsAndMerge(TrackToVertexIPEstimatorCfg(flags))))
315 
316  if "BSConstraintTrackSelector" not in kwargs:
317  from InDetConfig.InDetTrackSelectionToolConfig import (
318  Align_InDetTrackSelectionToolCfg)
319  kwargs.setdefault("BSConstraintTrackSelector", cfg.addPublicTool(
320  cfg.popToolsAndMerge(Align_InDetTrackSelectionToolCfg(flags))))
321 
322  if "Extrapolator" not in kwargs:
323  from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg
324  kwargs.setdefault("Extrapolator", cfg.addPublicTool(
325  cfg.popToolsAndMerge(InDetExtrapolatorCfg(flags))))
326 
327  kwargs.setdefault("UseSingleFitter", True)
328  kwargs.setdefault("RunOutlierRemoval", False)
329  kwargs.setdefault("DoBSConstraint", False)
330  kwargs.setdefault("DoAssociatedToPVSelection", False)
331 
332  cfg.setPrivateTools(
333  CompFactory.Trk.BeamspotVertexPreProcessor(name, **kwargs))
334  return cfg
IDAlignToolsConfig.AlignTrackCreatorCfg
def AlignTrackCreatorCfg(flags, name="AlignTrackCreator", **kwargs)
Definition: IDAlignToolsConfig.py:279
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
IDAlignToolsConfig.MatrixToolCfg
def MatrixToolCfg(flags, name="MatrixTool", **kwargs)
--— GlobalChi2AlignTool Setup --—##
Definition: IDAlignToolsConfig.py:234
IDAlignToolsConfig.SiTrkAlignDBToolCfg
def SiTrkAlignDBToolCfg(flags, name="SiTrkAlignDBTool", **kwargs)
--— Inner Detector DB I/O Setup --—##
Definition: IDAlignToolsConfig.py:154
IDAlignToolsConfig.TRTGeometryManagerToolCfg
def TRTGeometryManagerToolCfg(flags, name="TRTGeometryManagerTool", **kwargs)
Definition: IDAlignToolsConfig.py:98
python.TrkVertexFitterUtilsConfig.TrackToVertexIPEstimatorCfg
def TrackToVertexIPEstimatorCfg(flags, name='TrackToVertexIPEstimator', **kwargs)
Definition: TrkVertexFitterUtilsConfig.py:48
IDAlignToolsConfig.InDetTrkAlignDBToolCfg
def InDetTrkAlignDBToolCfg(flags, name="InDetTrkAlignDBTool", **kwargs)
Definition: IDAlignToolsConfig.py:194
IDAlignToolsConfig.TRT_AlignDbSvcCfg
def TRT_AlignDbSvcCfg(flags, name="TRT_AlignDbSvc", **kwargs)
Definition: IDAlignToolsConfig.py:172
python.CommonTrackFitterConfig.InDetTrackFitterCfg
def InDetTrackFitterCfg(flags, name='InDetTrackFitter', **kwargs)
InDet configs #####.
Definition: CommonTrackFitterConfig.py:10
IDAlignToolsConfig.GeometryManagerToolCfg
def GeometryManagerToolCfg(flags, **kwargs)
Definition: IDAlignToolsConfig.py:206
IDAlignToolsConfig.PixelGeometryManagerToolCfg
def PixelGeometryManagerToolCfg(flags, name="PixelGeometryManagerTool", **kwargs)
Definition: IDAlignToolsConfig.py:18
IDAlignToolsConfig.InDetAlignModuleToolCfg
def InDetAlignModuleToolCfg(flags, name="InDetAlignModuleTool", **kwargs)
--— Geometry mangager tool config functions --—##
Definition: IDAlignToolsConfig.py:12
IDAlignToolsConfig.TRTTrkAlignDBToolCfg
def TRTTrkAlignDBToolCfg(flags, name="TRTTrkAlignDBTool", **kwargs)
Definition: IDAlignToolsConfig.py:178
IDAlignToolsConfig.AlignResidualCalculatorCfg
def AlignResidualCalculatorCfg(flags, name="AlignResidualCalculator", **kwargs)
--— AlignTrackCreator Setup --—##
Definition: IDAlignToolsConfig.py:270
python.InDetTrackSelectionToolConfig.Align_InDetTrackSelectionToolCfg
def Align_InDetTrackSelectionToolCfg(flags, name="Align_InDetTrackSelectionTool", **kwargs)
Configs for alignment #####.
Definition: InDetTrackSelectionToolConfig.py:216
IDAlignToolsConfig.SiGeometryManagerToolCfg
def SiGeometryManagerToolCfg(flags, name="SiGeometryManagerTool", **kwargs)
Definition: IDAlignToolsConfig.py:75
IDAlignToolsConfig.GlobalChi2AlignToolCfg
def GlobalChi2AlignToolCfg(flags, name="GlobalChi2AlignTool", **kwargs)
Definition: IDAlignToolsConfig.py:253
IDAlignToolsConfig.SCTGeometryManagerToolCfg
def SCTGeometryManagerToolCfg(flags, name="SCTGeometryManagerTool", **kwargs)
Definition: IDAlignToolsConfig.py:47
IDAlignToolsConfig.BeamspotVertexPreProcessorCfg
def BeamspotVertexPreProcessorCfg(flags, name="BeamspotVertexPreProcessor", **kwargs)
--— BeamspotVertexPreProcessor Setup --—##
Definition: IDAlignToolsConfig.py:297
IDAlignToolsConfig.AlignDBToolCfg
def AlignDBToolCfg(flags, **kwargs)
Definition: IDAlignToolsConfig.py:220
IDAlignToolsConfig.InDetGeometryManagerToolCfg
def InDetGeometryManagerToolCfg(flags, name="InDetGeometryManagerTool", **kwargs)
Definition: IDAlignToolsConfig.py:127
python.AtlasExtrapolatorConfig.InDetExtrapolatorCfg
def InDetExtrapolatorCfg(flags, name='InDetExtrapolator', **kwargs)
Definition: AtlasExtrapolatorConfig.py:315