ATLAS Offline Software
Loading...
Searching...
No Matches
InDetTrackScoringToolsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2# Configuration of InDetTrackScoringTools package
3
4from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
5from AthenaConfiguration.ComponentFactory import CompFactory
6from AthenaConfiguration.Enums import LHCPeriod
7from TrkConfig.TrkConfigFlags import PrimaryPassConfig
8
9
12
13def InDetAmbiScoringToolBaseCfg(flags, name='InDetAmbiScoringTool', **kwargs):
14 acc = ComponentAccumulator()
15
16 if "Extrapolator" not in kwargs:
17 from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg
18 kwargs.setdefault("Extrapolator", acc.popToolsAndMerge(
19 InDetExtrapolatorCfg(flags)))
20
21 if 'DriftCircleCutTool' not in kwargs:
22 from InDetConfig.InDetTrackSelectorToolConfig import (
23 InDetTRTDriftCircleCutToolCfg)
24 kwargs.setdefault("DriftCircleCutTool", acc.popToolsAndMerge(
25 InDetTRTDriftCircleCutToolCfg(flags)))
26
27 have_calo_rois = (flags.Tracking.doCaloSeededBrem and
28 kwargs.get("doEmCaloSeed", True))
29
30 if have_calo_rois:
31 from InDetConfig.InDetCaloClusterROISelectorConfig import (
32 CaloClusterROIPhiRZContainerMakerCfg)
33 acc.merge(CaloClusterROIPhiRZContainerMakerCfg(flags))
34 kwargs.setdefault("EMROIPhiRZContainer",
35 "InDetCaloClusterROIPhiRZ5GeV")
36
37 kwargs.setdefault("doEmCaloSeed", have_calo_rois)
38 kwargs.setdefault("useAmbigFcn", True)
39 kwargs.setdefault("useTRT_AmbigFcn", False)
40 kwargs.setdefault("maxZImp", flags.Tracking.ActiveConfig.maxZImpact)
41 kwargs.setdefault("maxEta", flags.Tracking.ActiveConfig.maxEta)
42 kwargs.setdefault("usePixel", flags.Tracking.ActiveConfig.usePixel)
43 kwargs.setdefault("useSCT", flags.Tracking.ActiveConfig.useSCT)
44
45 acc.setPrivateTools(CompFactory.InDet.InDetAmbiScoringTool(name, **kwargs))
46 return acc
47
48
49def InDetAmbiScoringToolCfg(flags, name='InDetAmbiScoringTool', **kwargs):
50 kwargs.setdefault("minTRTonTrk", 0)
51 kwargs.setdefault("minTRTPrecisionFraction", 0)
52 kwargs.setdefault("minPt", flags.Tracking.ActiveConfig.minPT)
53 kwargs.setdefault("maxRPhiImp",
54 flags.Tracking.ActiveConfig.maxPrimaryImpact)
55 kwargs.setdefault("maxRPhiImpEM", flags.Tracking.ActiveConfig.maxEMImpact)
56 kwargs.setdefault("minSiClusters", flags.Tracking.ActiveConfig.minClusters)
57 kwargs.setdefault("minPixel", flags.Tracking.ActiveConfig.minPixel)
58 kwargs.setdefault("maxSiHoles", flags.Tracking.ActiveConfig.maxHoles)
59 kwargs.setdefault("maxPixelHoles",
60 flags.Tracking.ActiveConfig.maxPixelHoles)
61 kwargs.setdefault("maxSCTHoles", flags.Tracking.ActiveConfig.maxSctHoles)
62 kwargs.setdefault("maxDoubleHoles",
63 flags.Tracking.ActiveConfig.maxDoubleHoles)
64
66 flags, name + flags.Tracking.ActiveConfig.extension, **kwargs)
67
68
69def InDetAmbiScoringToolSiCfg(flags, name='InDetAmbiScoringToolSi', **kwargs):
70 kwargs.setdefault('DriftCircleCutTool', None)
71 return InDetAmbiScoringToolCfg(flags, name, **kwargs)
72
73
74def InDetExtenScoringToolCfg(flags, name='InDetExtenScoringTool', **kwargs):
75 kwargs.setdefault("minTRTonTrk",
76 flags.Tracking.ActiveConfig.minTRTonTrk)
77 kwargs.setdefault("minTRTPrecisionFraction",
78 flags.Tracking.ActiveConfig.minTRTPrecFrac)
79 return InDetAmbiScoringToolCfg(flags, name, **kwargs)
80
81
83 flags, name='InDetTRT_SeededScoringTool', **kwargs):
84 kwargs.setdefault("useAmbigFcn", False)
85 kwargs.setdefault("useTRT_AmbigFcn", True)
86 kwargs.setdefault("minTRTonTrk", flags.Tracking.BackTracking.minTRT)
87 kwargs.setdefault("minTRTPrecisionFraction",
88 flags.Tracking.BackTracking.minTRTPrecFrac)
89 kwargs.setdefault("minPt", flags.Tracking.BackTracking.minPt)
90 kwargs.setdefault("maxRPhiImp", flags.Tracking.BackTracking.maxSecondaryImpact)
91 kwargs.setdefault("minSiClusters", flags.Tracking.BackTracking.minClusters)
92 kwargs.setdefault("maxSiHoles", flags.Tracking.BackTracking.maxHoles)
93 kwargs.setdefault("maxPixelHoles", flags.Tracking.BackTracking.maxPixelHoles)
94 kwargs.setdefault("maxSCTHoles", flags.Tracking.BackTracking.maxSCTHoles)
95 kwargs.setdefault("maxDoubleHoles", flags.Tracking.BackTracking.maxDoubleHoles)
96
97 return InDetAmbiScoringToolBaseCfg(flags, name, **kwargs)
98
100 flags,
101 name='TrigAmbiguityScoringTool', **kwargs):
102
103 if flags.Detector.GeometryITk:
104 tool = ITkTrigAmbiScoringToolCfg(flags, name, **kwargs)
105 else:
106 tool = InDetTrigAmbiScoringToolCfg(flags, name, **kwargs)
107
108 return tool
109
110
112 flags,
113 name='TrigAmbiguityScoringTool', **kwargs):
114
115 acc = ComponentAccumulator()
116
117 if flags.Tracking.ActiveConfig.input_name == "cosmics":
118 ambiScoringFactory = CompFactory.InDet.InDetCosmicScoringTool
119 kwargs.setdefault("nWeightedClustersMin",
120 flags.Tracking.ActiveConfig.nWeightedClustersMin)
121 kwargs.setdefault("minTRTHits", 0)
122
123 else:
124 ambiScoringFactory = CompFactory.InDet.InDetAmbiScoringTool
125
126 if "Extrapolator" not in kwargs:
127 # TODO using offline, consider porting
128 from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg
129 kwargs.setdefault("Extrapolator", acc.popToolsAndMerge(
130 InDetExtrapolatorCfg(flags)))
131
132 if "DriftCircleCutTool" not in kwargs:
133 from InDetConfig.InDetTrackSelectorToolConfig import (
134 InDetTrigTRTDriftCircleCutToolCfg)
135 kwargs.setdefault("DriftCircleCutTool", acc.popToolsAndMerge(
136 InDetTrigTRTDriftCircleCutToolCfg(flags)))
137
138 if flags.Tracking.ActiveConfig.name == 'minBiasPixel':
139 kwargs.setdefault("minSiClusters", flags.Tracking.ActiveConfig.nClustersMin)
140 kwargs.setdefault("minPt", flags.Tracking.ActiveConfig.minPT)
141 kwargs.setdefault("useAmbigFcn", True)
142 kwargs.setdefault("useTRT_AmbigFcn", False)
143 kwargs.setdefault("maxZImp", flags.Tracking.ActiveConfig.maxZImpact)
144 kwargs.setdefault("maxRPhiImp", flags.Tracking.ActiveConfig.maxPrimaryImpact)
145 kwargs.setdefault("maxEta", flags.Tracking.ActiveConfig.maxEta)
146 kwargs.setdefault("maxSCTHoles", flags.Tracking.ActiveConfig.maxSCTHoles)
147 kwargs.setdefault("maxSiHoles", flags.Tracking.ActiveConfig.maxSiHoles)
148 kwargs.setdefault("usePixel", flags.Tracking.ActiveConfig.usePixel)
149 kwargs.setdefault("useSCT", flags.Tracking.ActiveConfig.useSCT)
150 kwargs.setdefault("doEmCaloSeed", False)
151 kwargs.setdefault("EMROIPhiRZContainer", "")
152 kwargs.setdefault("minTRTonTrk", 0)
153 kwargs.setdefault("minTRTPrecisionFraction", 0)
154
155
156 acc.setPrivateTools(ambiScoringFactory(name=name, **kwargs))
157
158 return acc
159
160
161def InDetCosmicsScoringToolCfg(flags, name='InDetCosmicsScoringTool', **kwargs):
162 acc = ComponentAccumulator()
163
164 kwargs.setdefault("nWeightedClustersMin",
165 flags.Tracking.ActiveConfig.nWeightedClustersMin)
166 kwargs.setdefault("minTRTHits", 0)
167 kwargs.setdefault("maxZImp", flags.Tracking.ActiveConfig.maxZImpact)
168
169 acc.setPrivateTools(CompFactory.InDet.InDetCosmicScoringTool(
170 name+flags.Tracking.ActiveConfig.extension, **kwargs))
171 return acc
172
173
175 flags, name='InDetCosmicExtenScoringTool', **kwargs):
176 kwargs.setdefault("nWeightedClustersMin", 0)
177 kwargs.setdefault("minTRTHits", flags.Tracking.ActiveConfig.minTRTonTrk)
178 return InDetCosmicsScoringToolCfg(flags, name, **kwargs)
179
180
182 flags, name='InDetCosmicScoringTool_TRT', **kwargs):
183 kwargs.setdefault("minTRTHits", flags.Tracking.BackTracking.minTRT)
184 return InDetCosmicExtenScoringToolCfg(flags, name, **kwargs)
185
186
187def InDetNNScoringToolBaseCfg(flags, name='InDetNNScoringTool', **kwargs):
188 acc = ComponentAccumulator()
189
190 if flags.Tracking.doCaloSeededBrem:
191 from InDetConfig.InDetCaloClusterROISelectorConfig import (
192 CaloClusterROIPhiRZContainerMakerCfg)
193 acc.merge(CaloClusterROIPhiRZContainerMakerCfg(flags))
194 kwargs.setdefault("EMROIPhiRZContainer",
195 "InDetCaloClusterROIPhiRZ5GeV")
196
197 if "Extrapolator" not in kwargs:
198 from TrkConfig.AtlasExtrapolatorConfig import InDetExtrapolatorCfg
199 kwargs.setdefault("Extrapolator", acc.popToolsAndMerge(
200 InDetExtrapolatorCfg(flags)))
201
202 if 'DriftCircleCutTool' not in kwargs:
203 from InDetConfig.InDetTrackSelectorToolConfig import (
204 InDetTRTDriftCircleCutToolCfg)
205 kwargs.setdefault("DriftCircleCutTool", acc.popToolsAndMerge(
206 InDetTRTDriftCircleCutToolCfg(flags)))
207
208 kwargs.setdefault("nnCutConfig",
209 "dev/TrackingCP/LRTAmbiNetwork/20200727_225401/nn-config.json")
210 kwargs.setdefault("nnCutThreshold",
211 flags.Tracking.nnCutLargeD0Threshold)
212
213 kwargs.setdefault("useAmbigFcn", True)
214 kwargs.setdefault("useTRT_AmbigFcn", False)
215 kwargs.setdefault("maxZImp", flags.Tracking.ActiveConfig.maxZImpact)
216 kwargs.setdefault("maxEta", flags.Tracking.ActiveConfig.maxEta)
217 kwargs.setdefault("usePixel", flags.Tracking.ActiveConfig.usePixel)
218 kwargs.setdefault("useSCT", flags.Tracking.ActiveConfig.useSCT)
219 kwargs.setdefault("doEmCaloSeed", flags.Tracking.doCaloSeededBrem)
220
221 acc.setPrivateTools(CompFactory.InDet.InDetNNScoringTool(name, **kwargs))
222 return acc
223
224
225def InDetNNScoringToolCfg(flags, name='InDetNNScoringTool', **kwargs):
226 kwargs.setdefault("minTRTonTrk", 0)
227 kwargs.setdefault("minTRTPrecisionFraction", 0)
228 kwargs.setdefault("minPt", flags.Tracking.ActiveConfig.minPT)
229 kwargs.setdefault("maxRPhiImp",
230 flags.Tracking.ActiveConfig.maxPrimaryImpact)
231 kwargs.setdefault("maxRPhiImpEM", flags.Tracking.ActiveConfig.maxEMImpact)
232 kwargs.setdefault("minSiClusters", flags.Tracking.ActiveConfig.minClusters)
233 kwargs.setdefault("minPixel", flags.Tracking.ActiveConfig.minPixel)
234 kwargs.setdefault("maxSiHoles", flags.Tracking.ActiveConfig.maxHoles)
235 kwargs.setdefault("maxPixelHoles",
236 flags.Tracking.ActiveConfig.maxPixelHoles)
237 kwargs.setdefault("maxSCTHoles", flags.Tracking.ActiveConfig.maxSctHoles)
238 kwargs.setdefault("maxDoubleHoles",
239 flags.Tracking.ActiveConfig.maxDoubleHoles)
240
242 flags, name+flags.Tracking.ActiveConfig.extension, **kwargs)
243
244
245def InDetNNScoringToolSiCfg(flags, name='InDetNNScoringToolSi', **kwargs):
246 kwargs.setdefault('DriftCircleCutTool', None)
247 return InDetNNScoringToolCfg(flags, name, **kwargs)
248
249
250def InDetTRT_StandaloneScoringToolCfg(flags, name='InDetTRT_StandaloneScoringTool', **kwargs):
251 acc = ComponentAccumulator()
252
253 #
254 # --- set up special Scoring Tool for standalone TRT tracks
255 #
256 if "DriftCircleCutTool" not in kwargs:
257 from InDetConfig.InDetTrackSelectorToolConfig import (
258 InDetTRTDriftCircleCutToolCfg)
259 kwargs.setdefault("DriftCircleCutTool", acc.popToolsAndMerge(
260 InDetTRTDriftCircleCutToolCfg(flags)))
261
262 kwargs.setdefault("useAmbigFcn", True)
263 kwargs.setdefault("useSigmaChi2", False)
264 kwargs.setdefault("PtMin", flags.Tracking.TRTStandalone.minPt)
265 kwargs.setdefault("minTRTonTrk", flags.Tracking.TRTStandalone.minTRT)
266 kwargs.setdefault("maxEta", 2.1)
267 kwargs.setdefault("OldTransitionLogic", (
268 flags.Tracking.PrimaryPassConfig is PrimaryPassConfig.MinBias))
269 kwargs.setdefault("minTRTPrecisionFraction",
270 flags.Tracking.TRTStandalone.minTRTPrecFrac)
271 # eta bins (10) for eta-dep cuts on TRT conversion tracks
272 kwargs.setdefault("TRTTrksEtaBins",
273 [0.7, 0.8, 0.9, 1.2, 1.3, 1.6, 1.7, 1.8, 1.9, 999])
274 # eta-dep nTRT for TRT conversion tracks (> 15 is applied elsewhere)
275 kwargs.setdefault("TRTTrksMinTRTHitsThresholds",
276 [25, 18, 18, 18, 26, 28, 26, 24, 22, 0]
277 if flags.GeoModel.Run is LHCPeriod.Run3 else
278 [27, 18, 18, 18, 26, 28, 26, 24, 22, 0])
279 # mu dependence for TRT conversion tracks
280 kwargs.setdefault("TRTTrksMinTRTHitsMuDependencies",
281 [0.2, 0.05, 0.05, 0.05,
282 0.15, 0.15, 0.15, 0.15, 0.15, 0.])
283
284 acc.setPrivateTools(
285 CompFactory.InDet.InDetTrtTrackScoringTool(name, **kwargs))
286 return acc
287
288
289def InDetTRT_TrackSegmentScoringToolCfg(flags, name='InDetTRT_TrackSegmentScoringTool', **kwargs):
290 kwargs.setdefault("PtMin", flags.Tracking.ActiveConfig.minPT)
291 return InDetTRT_StandaloneScoringToolCfg(flags, name, **kwargs)
292
293
296
297
298def ITkAmbiScoringToolCfg(flags, name='ITkAmbiScoringTool', **kwargs):
299 acc = ComponentAccumulator()
300
301 if 'Extrapolator' not in kwargs:
302 from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
303 kwargs.setdefault("Extrapolator", acc.popToolsAndMerge(
304 AtlasExtrapolatorCfg(flags)))
305
306 if 'InDetEtaDependentCutsSvc' not in kwargs:
307 from InDetConfig.InDetEtaDependentCutsConfig import (
308 ITkEtaDependentCutsSvcCfg)
309 acc.merge(ITkEtaDependentCutsSvcCfg(flags))
310 kwargs.setdefault("InDetEtaDependentCutsSvc", acc.getService(
311 "ITkEtaDependentCutsSvc"+flags.Tracking.ActiveConfig.extension))
312
313 if flags.Tracking.ActiveConfig.doCaloSeededBremSi:
314 from InDetConfig.InDetCaloClusterROISelectorConfig import (
315 ITkCaloClusterROIPhiRZContainerMakerCfg)
316 acc.merge(ITkCaloClusterROIPhiRZContainerMakerCfg(flags))
317 kwargs.setdefault("EMROIPhiRZContainer", "ITkCaloClusterROIPhiRZ5GeV")
318
319 kwargs.setdefault("DriftCircleCutTool", None)
320 kwargs.setdefault("useAmbigFcn", True)
321 kwargs.setdefault("useTRT_AmbigFcn", False)
322 kwargs.setdefault("maxEta", flags.Tracking.ActiveConfig.maxEta)
323 kwargs.setdefault("usePixel", flags.Tracking.ActiveConfig.useITkPixel)
324 kwargs.setdefault("useSCT", flags.Tracking.ActiveConfig.useITkStrip)
325 kwargs.setdefault("doEmCaloSeed", flags.Tracking.ActiveConfig.doCaloSeededBremSi)
326 kwargs.setdefault("useITkAmbigFcn", True)
327 kwargs.setdefault("minTRTonTrk", 0)
328 kwargs.setdefault("minTRTPrecisionFraction", 0)
329
330 acc.setPrivateTools(CompFactory.InDet.InDetAmbiScoringTool(
331 name + flags.Tracking.ActiveConfig.extension, **kwargs))
332 return acc
333
334def ITkTrigAmbiScoringToolCfg(flags, name='ITkTrigAmbiScoringTool', **kwargs):
335 kwargs.setdefault("InDetEtaDependentCutsSvc", None) #TODO
336 return ITkAmbiScoringToolCfg(flags, name, **kwargs)
337
338def ITkCosmicsScoringToolCfg(flags, name='ITkCosmicsScoringTool', **kwargs):
339 acc = ComponentAccumulator()
340
341 kwargs.setdefault("nWeightedClustersMin",
342 flags.Tracking.ActiveConfig.nWeightedClustersMin)
343 kwargs.setdefault("minTRTHits", 0)
344 kwargs.setdefault("maxZImp", flags.Tracking.ActiveConfig.maxZImpact)
345
346 acc.setPrivateTools(CompFactory.InDet.InDetCosmicScoringTool(
347 name+flags.ITk.Tracking.ActiveConfig.extension, **kwargs))
348 return acc
InDetAmbiScoringToolCfg(flags, name='InDetAmbiScoringTool', **kwargs)
InDetTRT_TrackSegmentScoringToolCfg(flags, name='InDetTRT_TrackSegmentScoringTool', **kwargs)
InDetExtenScoringToolCfg(flags, name='InDetExtenScoringTool', **kwargs)
InDetCosmicScoringTool_TRTCfg(flags, name='InDetCosmicScoringTool_TRT', **kwargs)
TrigAmbiScoringToolCfg(flags, name='TrigAmbiguityScoringTool', **kwargs)
InDetTRT_SeededScoringToolCfg(flags, name='InDetTRT_SeededScoringTool', **kwargs)
InDetAmbiScoringToolBaseCfg(flags, name='InDetAmbiScoringTool', **kwargs)
InDet configs.
InDetNNScoringToolSiCfg(flags, name='InDetNNScoringToolSi', **kwargs)
InDetNNScoringToolBaseCfg(flags, name='InDetNNScoringTool', **kwargs)
InDetCosmicsScoringToolCfg(flags, name='InDetCosmicsScoringTool', **kwargs)
ITkTrigAmbiScoringToolCfg(flags, name='ITkTrigAmbiScoringTool', **kwargs)
InDetTRT_StandaloneScoringToolCfg(flags, name='InDetTRT_StandaloneScoringTool', **kwargs)
InDetNNScoringToolCfg(flags, name='InDetNNScoringTool', **kwargs)
ITkCosmicsScoringToolCfg(flags, name='ITkCosmicsScoringTool', **kwargs)
InDetCosmicExtenScoringToolCfg(flags, name='InDetCosmicExtenScoringTool', **kwargs)
InDetTrigAmbiScoringToolCfg(flags, name='TrigAmbiguityScoringTool', **kwargs)
ITkAmbiScoringToolCfg(flags, name='ITkAmbiScoringTool', **kwargs)
ITk configs.
InDetAmbiScoringToolSiCfg(flags, name='InDetAmbiScoringToolSi', **kwargs)