ATLAS Offline Software
ITkAlignToolsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 
6 def ITkAlignModuleToolCfg(flags, name="ITkAlignModuleTool", **kwargs):
8  cfg.setPrivateTools(CompFactory.InDet.InDetAlignModuleTool(name, **kwargs))
9  return cfg
10 
11 def ITkGeometryManagerToolCfg(flags, name="ITkGeometryManagerTool", **kwargs):
12 
13  cfg = ComponentAccumulator()
14 
15  kwargs.setdefault("PixelDetectorManager","ITkPixel")
16  kwargs.setdefault("StripDetectorManager","ITkStrip")
17  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
18  cfg.popToolsAndMerge(ITkAlignModuleToolCfg(flags))))
19 
20  kwargs.setdefault("AlignPixel", flags.ITk.Align.alignITkPixel)
21  kwargs.setdefault("AlignSCT", flags.ITk.Align.alignITkStrip)
22  kwargs.setdefault("AlignmentLevel", -1)
23  kwargs.setdefault("ModuleSelection", [])
24 
25  if flags.ITk.Align.alignITkPixel:
26  kwargs.setdefault("PixelGeometryManager", cfg.addPublicTool(
27  cfg.popToolsAndMerge(ITkPixelGeometryManagerToolCfg(flags))))
28 
29  if flags.ITk.Align.alignITkStrip:
30  kwargs.setdefault("SCTGeometryManager", cfg.addPublicTool(
31  cfg.popToolsAndMerge(ITkStripGeometryManagerToolCfg(flags))))
32 
33  cfg.setPrivateTools(CompFactory.InDet.SiGeometryManagerTool(name, **kwargs))
34  return cfg
35 
36 def ITkPixelGeometryManagerToolCfg(flags, name="ITkPixelManagerTool", **kwargs):
37 
38  cfg = ComponentAccumulator()
39 
40  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
41  cfg.popToolsAndMerge(ITkAlignModuleToolCfg(flags))))
42 
43  kwargs.setdefault("PixelDetectorManager","ITkPixel")
44  kwargs.setdefault("EtaCorrection",False)
45 
46 
47  kwargs.setdefault("AlignmentLevel", 1)
48  # kwargs.setdefault("AlignmentLevelBarrel", 12)
49  # kwargs.setdefault("AlignmentLevelEndcaps", 12)
50 
51  kwargs.setdefault("SetSoftCutBarrelX", 0.02)
52  kwargs.setdefault("SetSoftCutBarrelY", 0.02)
53  kwargs.setdefault("SetSoftCutBarrelZ", 0.02)
54  kwargs.setdefault("SetSoftCutBarrelRotX", 0.05)
55  kwargs.setdefault("SetSoftCutBarrelRotY", 0.05)
56  kwargs.setdefault("SetSoftCutBarrelRotZ", 0.05)
57  kwargs.setdefault("SetSoftCutEndcapX", 0.02)
58  kwargs.setdefault("SetSoftCutEndcapY", 0.02)
59  kwargs.setdefault("SetSoftCutEndcapZ", 0.02)
60  kwargs.setdefault("SetSoftCutEndcapRotX", 0.05)
61  kwargs.setdefault("SetSoftCutEndcapRotY", 0.05)
62  kwargs.setdefault("SetSoftCutEndcapRotZ", 0.05)
63 
64  cfg.setPrivateTools(
65  CompFactory.InDet.PixelGeometryManagerTool(name, **kwargs))
66  return cfg
67 
68 def ITkStripGeometryManagerToolCfg(flags, name="ITkStripManagerTool", **kwargs):
69 
70  cfg = ComponentAccumulator()
71 
72  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
73  cfg.popToolsAndMerge(ITkAlignModuleToolCfg(flags))))
74 
75  kwargs.setdefault("StripDetectorManager","ITkStrip")
76 
77 
78  kwargs.setdefault("AlignmentLevel", 0)
79  # kwargs.setdefault("AlignmentLevelBarrel", 2)
80  # kwargs.setdefault("AlignmentLevelEndcaps", 2)
81 
82  kwargs.setdefault("SetSoftCutBarrelX", 0.05)
83  kwargs.setdefault("SetSoftCutBarrelY", 0.05)
84  kwargs.setdefault("SetSoftCutBarrelZ", 0.05)
85  kwargs.setdefault("SetSoftCutBarrelRotX", 0.05)
86  kwargs.setdefault("SetSoftCutBarrelRotY", 0.05)
87  kwargs.setdefault("SetSoftCutBarrelRotZ", 0.05)
88  kwargs.setdefault("SetSoftCutEndcapX", 0.05)
89  kwargs.setdefault("SetSoftCutEndcapY", 0.05)
90  kwargs.setdefault("SetSoftCutEndcapZ", 0.005)
91  kwargs.setdefault("SetSoftCutEndcapRotX", 0.005)
92  kwargs.setdefault("SetSoftCutEndcapRotY", 0.05)
93  kwargs.setdefault("SetSoftCutEndcapRotZ", 0.05)
94 
95  cfg.setPrivateTools(
96  CompFactory.InDet.SCTGeometryManagerTool(name, **kwargs))
97  return cfg
98 
99 def ITkTrkAlignDBToolCfg(flags, name="ITkTrkAlignDBTool", **kwargs):
100  cfg = ComponentAccumulator()
101 
102  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
103  cfg.popToolsAndMerge(ITkAlignModuleToolCfg(flags))))
104 
105  kwargs.setdefault("SiGeometryManager", cfg.addPublicTool(
106  cfg.popToolsAndMerge(ITkGeometryManagerToolCfg(flags))))
107 
108  kwargs.setdefault("PixelGeometryManager", cfg.addPublicTool(
109  cfg.popToolsAndMerge(ITkPixelGeometryManagerToolCfg(flags))))
110 
111  kwargs.setdefault("SCTGeometryManager", cfg.addPublicTool(
112  cfg.popToolsAndMerge(ITkStripGeometryManagerToolCfg(flags))))
113 
114  from InDetAlignGenTools.InDetAlignGenToolsConfig import ITkAlignDBTool
115  kwargs.setdefault("IDAlignDBTool", cfg.addPublicTool(cfg.popToolsAndMerge(ITkAlignDBTool(flags))))
116 
117  kwargs.setdefault("WriteOldConstants", not flags.ITk.Align.accumulate)
118  kwargs.setdefault("UpdateConstants", not flags.ITk.Align.accumulate)
119 
120  #Set filenames empty to suppress writing
121  kwargs.setdefault("OutputIBLDistFile","")
122  kwargs.setdefault("OldIBLDistFile","")
123 
124  cfg.setPrivateTools(CompFactory.InDet.SiTrkAlignDBTool(name, **kwargs))
125  return cfg
126 
127 def ITkMatrixToolCfg(flags, name="ITkMatrixTool", **kwargs):
128  cfg = ComponentAccumulator()
129 
130  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
131  cfg.popToolsAndMerge(ITkAlignModuleToolCfg(flags))))
132 
133  kwargs.setdefault("PathBinName", f"{flags.ITk.Align.baseDir}/Accumulate/")
134  kwargs.setdefault("PathTxtName", f"{flags.ITk.Align.baseDir}/Accumulate/")
135  kwargs.setdefault("InputTFiles", [f"{flags.ITk.Align.baseDir}/Accumulate/{flags.ITk.Align.inputTFiles}"])
136  kwargs.setdefault("SolveOption", 3)
137  kwargs.setdefault("MinNumHitsPerModule", 10)
138 
139  kwargs.setdefault("WriteTFile", flags.ITk.Align.accumulate)
140  kwargs.setdefault("ReadTFile", not flags.ITk.Align.accumulate)
141  kwargs.setdefault("ScaleMatrix", True)
142  kwargs.setdefault("WriteEigenMat", False)
143  kwargs.setdefault("WriteEigenMatTxt", False)
144 
145  cfg.setPrivateTools(CompFactory.Trk.MatrixTool(name, **kwargs))
146  return cfg
147 
148 def ITkGlobalChi2AlignToolCfg(flags, name="ITkGlobalChi2AlignTool", **kwargs):
149  cfg = ComponentAccumulator()
150 
151  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
152  cfg.popToolsAndMerge(ITkAlignModuleToolCfg(flags))))
153 
154  kwargs.setdefault("MatrixTool", cfg.popToolsAndMerge(ITkMatrixToolCfg(flags)))
155 
156  kwargs.setdefault("StoreLocalDerivOnly", flags.ITk.Align.solveLocal)
157  kwargs.setdefault("SecondDerivativeCut", 0)
158  #kwargs.setdefault("OutputLevel", 1)
159 
160  cfg.setPrivateTools(CompFactory.Trk.GlobalChi2AlignTool(name, **kwargs))
161  return cfg
162 
163 def ITkAlignResidualCalculatorCfg(flags, name="ITkAlignResidualCalculator", **kwargs):
164  cfg = ComponentAccumulator()
165 
166  if "ResidualPullCalculator" not in kwargs:
167  from TrkConfig.TrkResidualPullCalculatorConfig import (
168  ResidualPullCalculatorCfg)
169  kwargs.setdefault("ResidualPullCalculator", cfg.popToolsAndMerge(
171 
172  if "UpdatorTool" not in kwargs:
173  from TrkConfig.TrkMeasurementUpdatorConfig import KalmanUpdatorCfg
174  kwargs.setdefault("UpdatorTool", cfg.popToolsAndMerge(
175  KalmanUpdatorCfg(flags)))
176 
177  kwargs.setdefault("ResidualType", 0)
178 
179  cfg.setPrivateTools(CompFactory.Trk.AlignResidualCalculator(name, **kwargs))
180  return cfg
181 
182 
183 def ITkAlignTrackCreatorCfg(flags, name="ITkAlignTrackCreator", **kwargs):
184  cfg = ComponentAccumulator()
185 
186  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
187  cfg.popToolsAndMerge(ITkAlignModuleToolCfg(flags))))
188 
189  kwargs.setdefault("ResidualCalculator", cfg.popToolsAndMerge(
191 
192  kwargs.setdefault("IncludeScatterers", False)
193  kwargs.setdefault("RemoveATSOSNotInAlignModule", False)
194 
195  cfg.setPrivateTools(CompFactory.Trk.AlignTrackCreator(name, **kwargs))
196  return cfg
197 
198 def ITkBeamspotVertexPreProcessorCfg(flags, name="ITkBeamspotVertexPreProcessor", **kwargs):
199  cfg = ComponentAccumulator()
200 
201  kwargs.setdefault("AlignModuleTool", cfg.addPublicTool(
202  cfg.popToolsAndMerge(ITkAlignModuleToolCfg(flags))))
203 
204  if "TrackFitter" not in kwargs:
205  from TrkConfig.CommonTrackFitterConfig import ITkStandaloneTrackFitterCfg
206  kwargs.setdefault("TrackFitter", cfg.addPublicTool(
207  cfg.popToolsAndMerge(ITkStandaloneTrackFitterCfg(flags,
208  FillDerivativeMatrix = True))))
209 
210  if "TrackToVertexIPEstimatorTool" not in kwargs:
211  from TrkConfig.TrkVertexFitterUtilsConfig import TrackToVertexIPEstimatorCfg
212  kwargs.setdefault("TrackToVertexIPEstimatorTool", cfg.addPublicTool(
213  cfg.popToolsAndMerge(TrackToVertexIPEstimatorCfg(flags))))
214 
215  if "BSConstraintTrackSelector" not in kwargs:
216  from InDetConfig.InDetTrackSelectionToolConfig import Align_InDetTrackSelectionToolCfg
217  kwargs.setdefault("BSConstraintTrackSelector", cfg.addPublicTool(
218  cfg.popToolsAndMerge(Align_InDetTrackSelectionToolCfg(flags))))
219 
220  if "Extrapolator" not in kwargs:
221  from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg
222  kwargs.setdefault("Extrapolator", cfg.addPublicTool(
223  cfg.popToolsAndMerge(InDetExtrapolatorCfg(flags))))
224 
225  kwargs.setdefault("UseSingleFitter", True)
226  kwargs.setdefault("RunOutlierRemoval", False)
227  kwargs.setdefault("DoBSConstraint", False)
228  kwargs.setdefault("DoAssociatedToPVSelection", False)
229 
230  cfg.setPrivateTools(
231  CompFactory.Trk.BeamspotVertexPreProcessor(name, **kwargs))
232  return cfg
233 
234 
235 
ITkAlignToolsConfig.ITkAlignModuleToolCfg
def ITkAlignModuleToolCfg(flags, name="ITkAlignModuleTool", **kwargs)
Definition: ITkAlignToolsConfig.py:6
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.TrkVertexFitterUtilsConfig.TrackToVertexIPEstimatorCfg
def TrackToVertexIPEstimatorCfg(flags, name='TrackToVertexIPEstimator', **kwargs)
Definition: TrkVertexFitterUtilsConfig.py:48
ITkAlignToolsConfig.ITkPixelGeometryManagerToolCfg
def ITkPixelGeometryManagerToolCfg(flags, name="ITkPixelManagerTool", **kwargs)
Definition: ITkAlignToolsConfig.py:36
ITkAlignToolsConfig.ITkGeometryManagerToolCfg
def ITkGeometryManagerToolCfg(flags, name="ITkGeometryManagerTool", **kwargs)
Definition: ITkAlignToolsConfig.py:11
python.TrkMeasurementUpdatorConfig.KalmanUpdatorCfg
def KalmanUpdatorCfg(flags, name='KalmanUpdator', **kwargs)
Definition: TrkMeasurementUpdatorConfig.py:20
ITkAlignToolsConfig.ITkMatrixToolCfg
def ITkMatrixToolCfg(flags, name="ITkMatrixTool", **kwargs)
Definition: ITkAlignToolsConfig.py:127
ITkAlignToolsConfig.ITkTrkAlignDBToolCfg
def ITkTrkAlignDBToolCfg(flags, name="ITkTrkAlignDBTool", **kwargs)
Definition: ITkAlignToolsConfig.py:99
python.InDetTrackSelectionToolConfig.Align_InDetTrackSelectionToolCfg
def Align_InDetTrackSelectionToolCfg(flags, name="Align_InDetTrackSelectionTool", **kwargs)
Configs for alignment #####.
Definition: InDetTrackSelectionToolConfig.py:216
ITkAlignToolsConfig.ITkAlignTrackCreatorCfg
def ITkAlignTrackCreatorCfg(flags, name="ITkAlignTrackCreator", **kwargs)
Definition: ITkAlignToolsConfig.py:183
ITkAlignToolsConfig.ITkStripGeometryManagerToolCfg
def ITkStripGeometryManagerToolCfg(flags, name="ITkStripManagerTool", **kwargs)
Definition: ITkAlignToolsConfig.py:68
ITkAlignToolsConfig.ITkAlignResidualCalculatorCfg
def ITkAlignResidualCalculatorCfg(flags, name="ITkAlignResidualCalculator", **kwargs)
Definition: ITkAlignToolsConfig.py:163
ITkAlignToolsConfig.ITkGlobalChi2AlignToolCfg
def ITkGlobalChi2AlignToolCfg(flags, name="ITkGlobalChi2AlignTool", **kwargs)
Definition: ITkAlignToolsConfig.py:148
InDetAlignGenToolsConfig.ITkAlignDBTool
def ITkAlignDBTool(flags, name="ITkAlignDBTool", **kwargs)
Definition: InDetAlignGenToolsConfig.py:6
ITkAlignToolsConfig.ITkBeamspotVertexPreProcessorCfg
def ITkBeamspotVertexPreProcessorCfg(flags, name="ITkBeamspotVertexPreProcessor", **kwargs)
Definition: ITkAlignToolsConfig.py:198
python.CommonTrackFitterConfig.ITkStandaloneTrackFitterCfg
def ITkStandaloneTrackFitterCfg(flags, name='ITkTrackFitter', **kwargs)
Definition: CommonTrackFitterConfig.py:147
python.AtlasExtrapolatorConfig.InDetExtrapolatorCfg
def InDetExtrapolatorCfg(flags, name='InDetExtrapolator', **kwargs)
Definition: AtlasExtrapolatorConfig.py:318
python.TrkResidualPullCalculatorConfig.ResidualPullCalculatorCfg
def ResidualPullCalculatorCfg(flags, name='ResidualPullCalculator', **kwargs)
Definition: TrkResidualPullCalculatorConfig.py:6