ATLAS Offline Software
Loading...
Searching...
No Matches
xAODTrackingCnvConfig.py
Go to the documentation of this file.
1"""Define methods to construct configured Tracking conversion algorithms
2
3Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
4"""
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7
8
11
12def RecTrackParticleContainerCnvToolCfg(flags, name="RecTrackParticleContainerCnvTool", **kwargs):
13 result = ComponentAccumulator()
14
15 if "TrackParticleCreator" not in kwargs:
16 from TrkConfig.TrkParticleCreatorConfig import (
17 TrackParticleCreatorToolCfg)
18 TrackParticleCreator = result.popToolsAndMerge(
19 TrackParticleCreatorToolCfg(flags))
20 result.addPublicTool(TrackParticleCreator)
21 kwargs.setdefault("TrackParticleCreator", TrackParticleCreator)
22
23 result.setPrivateTools(
24 CompFactory.xAODMaker.RecTrackParticleContainerCnvTool(name, **kwargs))
25 return result
26
27def MuonRecTrackParticleContainerCnvToolCfg(flags, name = "MuonRecTrackParticleContainerCnvTool", **kwargs):
28 result = ComponentAccumulator()
29
30 if "TrackParticleCreator" not in kwargs:
31 from TrkConfig.TrkParticleCreatorConfig import (
32 MuonCombinedParticleCreatorCfg)
33 TrackParticleCreator = result.popToolsAndMerge(
34 MuonCombinedParticleCreatorCfg(flags))
35 result.addPublicTool(TrackParticleCreator)
36 kwargs.setdefault("TrackParticleCreator", TrackParticleCreator)
37
38 result.setPrivateTools(
39 CompFactory.xAODMaker.RecTrackParticleContainerCnvTool(name, **kwargs))
40 return result
41
42
45
46def TrackCollectionCnvToolCfg(flags, name="TrackCollectionCnvTool", **kwargs):
47 if flags.Detector.GeometryITk:
48 name = name.replace("InDet", "ITk")
49 return ITkTrackCollectionCnvToolCfg(flags, name, **kwargs)
50
51 result = ComponentAccumulator()
52
53 if "TrackParticleCreator" not in kwargs:
54 from TrkConfig.TrkParticleCreatorConfig import (
55 TrackParticleCreatorToolCfg)
56 TrackParticleCreator = result.popToolsAndMerge(
57 TrackParticleCreatorToolCfg(flags))
58 result.addPublicTool(TrackParticleCreator)
59 kwargs.setdefault("TrackParticleCreator", TrackParticleCreator)
60
61 result.setPrivateTools(
62 CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
63 return result
64
65def ITkTrackCollectionCnvToolCfg(flags, name="ITkTrackCollectionCnvTool",
66 isActsAmbi: bool = False,
67 **kwargs):
68 result = ComponentAccumulator()
69
70 if "TrackParticleCreator" not in kwargs:
71 from TrkConfig.TrkParticleCreatorConfig import ITkTrackParticleCreatorToolCfg
72 TrackParticleCreator = result.popToolsAndMerge(
73 ITkTrackParticleCreatorToolCfg(flags, RunningTIDE_Ambi = not isActsAmbi ))
74 result.addPublicTool(TrackParticleCreator)
75 kwargs.setdefault("TrackParticleCreator", TrackParticleCreator)
76
77 result.setPrivateTools(CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
78 return result
79
80def MuonTrackCollectionCnvToolCfg(flags, name = "MuonTrackCollectionCnvTool", **kwargs):
81 result = ComponentAccumulator()
82
83 if "TrackParticleCreator" not in kwargs:
84 from TrkConfig.TrkParticleCreatorConfig import MuonCombinedParticleCreatorCfg
85 TrackParticleCreator = result.popToolsAndMerge(
86 MuonCombinedParticleCreatorCfg(flags))
87 result.addPublicTool(TrackParticleCreator)
88 kwargs.setdefault("TrackParticleCreator", TrackParticleCreator)
89
90 result.setPrivateTools(CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
91 return result
92
93
96
97def TrackParticleCnvAlgCfg(flags, name="TrackParticleCnvAlg",
98 ClusterSplitProbabilityName = "",
99 AssociationMapName = "",
100 **kwargs):
101 if flags.Detector.GeometryITk:
102 name = name.replace("InDet", "ITk")
103 return ITkTrackParticleCnvAlgCfg(flags, name,
104 ClusterSplitProbabilityName,
105 AssociationMapName,
106 **kwargs)
107
108 result = ComponentAccumulator()
109
110 kwargs.setdefault("ConvertTracks", True)
111 kwargs.setdefault("ConvertTrackParticles", False)
112 kwargs.setdefault("TrackContainerName", "CombinedInDetTracks")
113 kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "InDetTrackParticles")
114
115 if "TrackParticleCreator" not in kwargs:
116 from TrkConfig.TrkParticleCreatorConfig import TrackParticleCreatorToolCfg
117 kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
118 TrackParticleCreatorToolCfg(
119 flags,
120 name = kwargs["xAODTrackParticlesFromTracksContainerName"] \
121 + "CreatorTool",
122 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
123 AssociationMapName = AssociationMapName)))
124
125 if "TrackCollectionCnvTool" not in kwargs:
126 result.addPublicTool(kwargs["TrackParticleCreator"])
127 kwargs.setdefault("TrackCollectionCnvTool", result.popToolsAndMerge(
129 flags,
130 TrackParticleCreator = kwargs["TrackParticleCreator"])))
131
132 if flags.Tracking.doTruth:
133 kwargs.setdefault("TrackTruthContainerName",
134 kwargs["TrackContainerName"]+"TruthCollection")
135 kwargs.setdefault("AddTruthLink", True)
136 if "MCTruthClassifier" not in kwargs:
137 from MCTruthClassifier.MCTruthClassifierConfig import MCTruthClassifierCfg
138 kwargs.setdefault("MCTruthClassifier", result.popToolsAndMerge(
139 MCTruthClassifierCfg(flags)))
140 else:
141 kwargs.setdefault("AddTruthLink", False)
142
143 if flags.Tracking.perigeeExpression == "Vertex":
144 from AthenaConfiguration.Enums import ProductionStep
145 if flags.Common.ProductionStep is ProductionStep.MinbiasPreprocessing:
146 kwargs.setdefault("PrimaryVerticesName", f"{flags.Overlay.BkgPrefix}PrimaryVertices")
147 else:
148 kwargs.setdefault("PrimaryVerticesName", "PrimaryVertices")
149
150 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
151 return result
152
153
154def TrigTrackParticleCnvAlgCfg(flags, name="TrigTrackParticleCnvAlg",
155 ClusterSplitProbabilityName = "",
156 AssociationMapName = "",
157 **kwargs):
158
159 if flags.Detector.GeometryITk:
160 name = name.replace("InDet", "ITk")
161 return ITkTrackParticleCnvAlgCfg(flags, name,
162 ClusterSplitProbabilityName,
163 AssociationMapName,
164 **kwargs)
165
166 kwargs.setdefault("ConvertTracks", True)
167 kwargs.setdefault("ConvertTrackParticles", False)
168 kwargs.setdefault("TrackContainerName", "CombinedInDetTracks")
169 kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "InDetTrackParticles")
170 kwargs.setdefault("AddTruthLink", False)
171
172 result = ComponentAccumulator()
173
174 if "TrackParticleCreator" not in kwargs:
175 from TrkConfig.TrkParticleCreatorConfig import InDetTrigParticleCreatorToolCfg, \
176 InDetTrigParticleCreatorToolTRTPidCfg
177
178 if flags.Tracking.ActiveConfig.electronPID:
179 partCreatorToolCfg = InDetTrigParticleCreatorToolTRTPidCfg
180 else:
181 partCreatorToolCfg = InDetTrigParticleCreatorToolCfg
182
183
184 kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
185 partCreatorToolCfg(
186 flags,
187 name = kwargs["xAODTrackParticlesFromTracksContainerName"] + "CreatorTool",
188 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
189 AssociationMapName = AssociationMapName)
190 ))
191
192 if "TrackCollectionCnvTool" not in kwargs:
193 result.addPublicTool(kwargs["TrackParticleCreator"])
194 kwargs.setdefault("TrackCollectionCnvTool", result.popToolsAndMerge(
196 flags,
197 TrackParticleCreator = kwargs["TrackParticleCreator"])))
198
199 #temporarily - move base methods to ActiveConfig
200 if flags.Tracking.ActiveConfig.perigeeExpression == "Vertex":
201 kwargs.setdefault("PrimaryVerticesName", "PrimaryVertices")
202 else:
203 kwargs.setdefault("PrimaryVerticesName", "")
204
205 result.merge(TrackParticleCnvAlgCfg(flags, name,
206 ClusterSplitProbabilityName,
207 AssociationMapName,
208 **kwargs)
209 )
210
211 return result
212
213
214def BeamLineTrackParticleCnvAlgCfg(flags, name="BeamLineTrackParticleCnvAlg",
215 ClusterSplitProbabilityName = "",
216 AssociationMapName = "",
217 **kwargs):
218 result = ComponentAccumulator()
219
220 if "TrackParticleCreator" not in kwargs:
221 from TrkConfig.TrkParticleCreatorConfig import TrackParticleCreatorToolCfg
222 kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
223 TrackParticleCreatorToolCfg(
224 flags,
225 name="InDetxAODParticleCreatorToolBeamLine",
226 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
227 AssociationMapName = AssociationMapName,
228 PerigeeExpression = "BeamLine")))
229
230 if flags.Tracking.perigeeExpression == "Vertex":
231 kwargs.setdefault("PrimaryVerticesName", "")
232
233 result.merge(TrackParticleCnvAlgCfg(flags, name, **kwargs))
234 return result
235
237 ClusterSplitProbabilityName = "",
238 AssociationMapName = "",
239 **kwargs):
240 result = ComponentAccumulator()
241
242 if "TrackParticleCreator" not in kwargs:
243 from TrkConfig.TrkParticleCreatorConfig import TrackParticleCreatorToolPIDCheckCfg
244 kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
245 TrackParticleCreatorToolPIDCheckCfg(
246 flags,
247 name = kwargs["xAODTrackParticlesFromTracksContainerName"] \
248 + "CreatorTool",
249 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
250 AssociationMapName = AssociationMapName)))
251
252 result.merge(TrackParticleCnvAlgCfg(flags, name, **kwargs))
253 return result
254
256 ClusterSplitProbabilityName = "",
257 AssociationMapName = "",
258 **kwargs):
259 result = ComponentAccumulator()
260
261 if "TrackParticleCreator" not in kwargs:
262 from TrkConfig.TrkParticleCreatorConfig import TrackParticleCreatorToolNoPIDCfg
263 kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
264 TrackParticleCreatorToolNoPIDCfg(
265 flags,
266 name = kwargs["xAODTrackParticlesFromTracksContainerName"] \
267 + "CreatorTool",
268 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
269 AssociationMapName = AssociationMapName)))
270
271 result.merge(TrackParticleCnvAlgCfg(flags, name,
272 ClusterSplitProbabilityName,
273 AssociationMapName, **kwargs))
274 return result
275
276def ObserverTrackParticleCnvAlgCfg(flags, name="ObserverTrackParticleCnvAlg",
277 ClusterSplitProbabilityName = "",
278 AssociationMapName = "",
279 **kwargs):
280 kwargs.setdefault("TrackContainerName", "ObservedTracksCollection")
281 kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "InDetObservedTrackParticles")
282 kwargs.setdefault("AugmentObservedTracks", True)
283 kwargs.setdefault("TracksMapName", "ObservedTracksCollectionMap")
284
285 return TrackParticleCnvAlgCfg(flags, name, ClusterSplitProbabilityName, AssociationMapName, **kwargs)
286
287def ITkTrackParticleCnvAlgCfg(flags, name="ITkTrackParticleCnvAlg",
288 ClusterSplitProbabilityName = "",
289 AssociationMapName = "",
290 isActsAmbi: bool = False,
291 **kwargs):
292 result = ComponentAccumulator()
293
294 kwargs.setdefault("ConvertTracks", True)
295 kwargs.setdefault("ConvertTrackParticles", False)
296 kwargs.setdefault("TrackContainerName", "CombinedITkTracks")
297 kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "InDetTrackParticles")
298 if flags.Tracking.perigeeExpression == "Vertex":
299 kwargs.setdefault('PrimaryVerticesName', 'PrimaryVertices')
300
301 if "TrackParticleCreator" not in kwargs:
302 from TrkConfig.TrkParticleCreatorConfig import ITkTrackParticleCreatorToolCfg
303 kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
304 ITkTrackParticleCreatorToolCfg(
305 flags,
306 name = kwargs["xAODTrackParticlesFromTracksContainerName"] \
307 + "CreatorTool",
308 ClusterSplitProbabilityName = ClusterSplitProbabilityName if not isActsAmbi else "",
309 AssociationMapName = AssociationMapName)))
310
311 if "TrackCollectionCnvTool" not in kwargs:
312 result.addPublicTool(kwargs["TrackParticleCreator"])
313 kwargs.setdefault("TrackCollectionCnvTool", result.popToolsAndMerge(
315 flags,
316 TrackParticleCreator = kwargs["TrackParticleCreator"],
317 isActsAmbi = isActsAmbi)))
318
319 if flags.Tracking.doTruth:
320 kwargs.setdefault("TrackTruthContainerName",
321 kwargs["TrackContainerName"]+"TruthCollection")
322 kwargs.setdefault("AddTruthLink", True)
323 if "MCTruthClassifier" not in kwargs:
324 from MCTruthClassifier.MCTruthClassifierConfig import MCTruthClassifierCfg
325 kwargs.setdefault("MCTruthClassifier", result.popToolsAndMerge(
326 MCTruthClassifierCfg(flags)))
327 else:
328 kwargs.setdefault("AddTruthLink", False)
329
330 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
331 return result
332
333def MuonStandaloneTrackParticleCnvAlgCfg(flags, name = "MuonStandaloneTrackParticleCnvAlg",**kwargs):
334 from TrkConfig.TrkParticleCreatorConfig import MuonParticleCreatorToolCfg
335 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
336
337 result=ComponentAccumulator()
338 result.merge(BeamSpotCondAlgCfg(flags))
339
340 muonparticlecreatortool = result.popToolsAndMerge(MuonParticleCreatorToolCfg(flags))
341 result.addPublicTool(muonparticlecreatortool) # Public in TrackCollectionCnvTool
342
343 kwargs.setdefault("TrackParticleCreator", muonparticlecreatortool)
344 kwargs.setdefault("RecTrackParticleContainerCnvTool", result.popToolsAndMerge(
345 MuonRecTrackParticleContainerCnvToolCfg(flags, TrackParticleCreator = muonparticlecreatortool)))
346 muontrackcollectioncnvtool = result.popToolsAndMerge(
347 MuonTrackCollectionCnvToolCfg(flags, TrackParticleCreator = muonparticlecreatortool))
348 kwargs.setdefault("TrackCollectionCnvTool", muontrackcollectioncnvtool)
349
350 kwargs.setdefault("TrackContainerName", "MuonSpectrometerTracks")
351 kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "MuonSpectrometerTrackParticles")
352 kwargs.setdefault("AODContainerName", "")
353 kwargs.setdefault("AODTruthContainerName", "")
354 kwargs.setdefault("xAODTruthLinkVector", "")
355 kwargs.setdefault("ConvertTrackParticles", False)
356 kwargs.setdefault("ConvertTracks", True)
357 kwargs.setdefault("AddTruthLink", False)
358
359 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
360 return result
361
362def MuonTrackParticleCnvCfg(flags, name = "MuonTrackParticleCnvAlg",**kwargs):
363 result=ComponentAccumulator()
364 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
365 result.merge(BeamSpotCondAlgCfg(flags))
366
367
368 if "TrackParticleCreator" not in kwargs:
369 from TrkConfig.TrkParticleCreatorConfig import MuonCombinedParticleCreatorCfg
370 kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(MuonCombinedParticleCreatorCfg(flags)))
371
372 if "TrackCollectionCnvTool" not in kwargs:
373 from xAODTrackingCnv.xAODTrackingCnvConfig import MuonTrackCollectionCnvToolCfg
374 kwargs.setdefault("TrackCollectionCnvTool", result.popToolsAndMerge(MuonTrackCollectionCnvToolCfg(flags)))
375
376 kwargs.setdefault("TrackContainerName", "MuonSpectrometerTracks")
377 kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "MuonSpectrometerTrackParticles")
378 kwargs.setdefault("ConvertTrackParticles", False)
379 kwargs.setdefault("ConvertTracks", True)
380 kwargs.setdefault("AddTruthLink", False)
381
382 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
383 return result
TrackCollectionCnvToolCfg(flags, name="TrackCollectionCnvTool", **kwargs)
TrackCollectionCnvTool.
ITkTrackParticleCnvAlgCfg(flags, name="ITkTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", bool isActsAmbi=False, **kwargs)
RecTrackParticleContainerCnvToolCfg(flags, name="RecTrackParticleContainerCnvTool", **kwargs)
RecTrackParticleContainerCnvTool.
BeamLineTrackParticleCnvAlgCfg(flags, name="BeamLineTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrackParticleCnvAlgPIDCheckCfg(flags, name, ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
MuonStandaloneTrackParticleCnvAlgCfg(flags, name="MuonStandaloneTrackParticleCnvAlg", **kwargs)
TrackParticleCnvAlgCfg(flags, name="TrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrackParticleCnvAlg.
MuonRecTrackParticleContainerCnvToolCfg(flags, name="MuonRecTrackParticleContainerCnvTool", **kwargs)
MuonTrackParticleCnvCfg(flags, name="MuonTrackParticleCnvAlg", **kwargs)
ObserverTrackParticleCnvAlgCfg(flags, name="ObserverTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrackParticleCnvAlgNoPIDCfg(flags, name, ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
ITkTrackCollectionCnvToolCfg(flags, name="ITkTrackCollectionCnvTool", bool isActsAmbi=False, **kwargs)
TrigTrackParticleCnvAlgCfg(flags, name="TrigTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
MuonTrackCollectionCnvToolCfg(flags, name="MuonTrackCollectionCnvTool", **kwargs)