1"""Define methods to construct configured Tracking conversion algorithms
3Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
5from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory
import CompFactory
13 if flags.Detector.GeometryITk:
14 name = name.replace(
"InDet",
"ITk")
17 result = ComponentAccumulator()
19 if "TrackParticleCreator" not in kwargs:
20 from TrkConfig.TrkParticleCreatorConfig
import (
21 TrackParticleCreatorToolCfg)
22 TrackParticleCreator = result.popToolsAndMerge(
23 TrackParticleCreatorToolCfg(flags))
24 result.addPublicTool(TrackParticleCreator)
25 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
27 result.setPrivateTools(
28 CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
32 isActsAmbi: bool =
False,
34 result = ComponentAccumulator()
36 if "TrackParticleCreator" not in kwargs:
37 from TrkConfig.TrkParticleCreatorConfig
import ITkTrackParticleCreatorToolCfg
38 TrackParticleCreator = result.popToolsAndMerge(
39 ITkTrackParticleCreatorToolCfg(flags, RunningTIDE_Ambi =
not isActsAmbi ))
40 result.addPublicTool(TrackParticleCreator)
41 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
43 result.setPrivateTools(CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
47 result = ComponentAccumulator()
49 if "TrackParticleCreator" not in kwargs:
50 from TrkConfig.TrkParticleCreatorConfig
import MuonCombinedParticleCreatorCfg
51 TrackParticleCreator = result.popToolsAndMerge(
52 MuonCombinedParticleCreatorCfg(flags))
53 result.addPublicTool(TrackParticleCreator)
54 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
56 result.setPrivateTools(CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
64 ClusterSplitProbabilityName = "",
65 AssociationMapName = "",
67 if flags.Detector.GeometryITk:
68 name = name.replace(
"InDet",
"ITk")
70 ClusterSplitProbabilityName,
74 result = ComponentAccumulator()
75 kwargs.setdefault(
"ConvertTracks",
True)
76 kwargs.setdefault(
"TrackContainerName",
"CombinedInDetTracks")
77 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetTrackParticles")
79 if "TrackParticleCreator" not in kwargs:
80 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolCfg
81 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
82 TrackParticleCreatorToolCfg(
84 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
86 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
87 AssociationMapName = AssociationMapName)))
89 if "TrackCollectionCnvTool" not in kwargs:
90 result.addPublicTool(kwargs[
"TrackParticleCreator"])
91 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
94 TrackParticleCreator = kwargs[
"TrackParticleCreator"])))
96 if flags.Tracking.doTruth:
97 kwargs.setdefault(
"TrackTruthContainerName",
98 kwargs[
"TrackContainerName"]+
"TruthCollection")
99 kwargs.setdefault(
"AddTruthLink",
True)
100 if "MCTruthClassifier" not in kwargs:
101 from MCTruthClassifier.MCTruthClassifierConfig
import MCTruthClassifierCfg
102 kwargs.setdefault(
"MCTruthClassifier", result.popToolsAndMerge(
103 MCTruthClassifierCfg(flags)))
105 kwargs.setdefault(
"AddTruthLink",
False)
107 if flags.Tracking.perigeeExpression ==
"Vertex":
108 from AthenaConfiguration.Enums
import ProductionStep
109 if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing:
110 kwargs.setdefault(
"PrimaryVerticesName", f
"{flags.Overlay.BkgPrefix}PrimaryVertices")
112 kwargs.setdefault(
"PrimaryVerticesName",
"PrimaryVertices")
114 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
119 ClusterSplitProbabilityName = "",
120 AssociationMapName = "",
123 if flags.Detector.GeometryITk:
124 name = name.replace(
"InDet",
"ITk")
126 ClusterSplitProbabilityName,
130 kwargs.setdefault(
"ConvertTracks",
True)
131 kwargs.setdefault(
"TrackContainerName",
"CombinedInDetTracks")
132 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetTrackParticles")
133 kwargs.setdefault(
"AddTruthLink",
False)
135 result = ComponentAccumulator()
137 if "TrackParticleCreator" not in kwargs:
138 from TrkConfig.TrkParticleCreatorConfig
import InDetTrigParticleCreatorToolCfg, \
139 InDetTrigParticleCreatorToolTRTPidCfg
141 if flags.Tracking.ActiveConfig.electronPID:
142 partCreatorToolCfg = InDetTrigParticleCreatorToolTRTPidCfg
144 partCreatorToolCfg = InDetTrigParticleCreatorToolCfg
147 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
150 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] +
"CreatorTool",
151 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
152 AssociationMapName = AssociationMapName)
155 if "TrackCollectionCnvTool" not in kwargs:
156 result.addPublicTool(kwargs[
"TrackParticleCreator"])
157 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
160 TrackParticleCreator = kwargs[
"TrackParticleCreator"])))
163 if flags.Tracking.ActiveConfig.perigeeExpression ==
"Vertex":
164 kwargs.setdefault(
"PrimaryVerticesName",
"PrimaryVertices")
166 kwargs.setdefault(
"PrimaryVerticesName",
"")
169 ClusterSplitProbabilityName,
178 ClusterSplitProbabilityName = "",
179 AssociationMapName = "",
181 result = ComponentAccumulator()
183 if "TrackParticleCreator" not in kwargs:
184 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolCfg
185 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
186 TrackParticleCreatorToolCfg(
188 name=
"InDetxAODParticleCreatorToolBeamLine",
189 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
190 AssociationMapName = AssociationMapName,
191 PerigeeExpression =
"BeamLine")))
193 if flags.Tracking.perigeeExpression ==
"Vertex":
194 kwargs.setdefault(
"PrimaryVerticesName",
"")
200 ClusterSplitProbabilityName = "",
201 AssociationMapName = "",
203 result = ComponentAccumulator()
205 if "TrackParticleCreator" not in kwargs:
206 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolPIDCheckCfg
207 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
208 TrackParticleCreatorToolPIDCheckCfg(
210 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
212 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
213 AssociationMapName = AssociationMapName)))
219 ClusterSplitProbabilityName = "",
220 AssociationMapName = "",
222 result = ComponentAccumulator()
224 if "TrackParticleCreator" not in kwargs:
225 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolNoPIDCfg
226 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
227 TrackParticleCreatorToolNoPIDCfg(
229 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
231 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
232 AssociationMapName = AssociationMapName)))
235 ClusterSplitProbabilityName,
236 AssociationMapName, **kwargs))
240 ClusterSplitProbabilityName = "",
241 AssociationMapName = "",
243 kwargs.setdefault(
"TrackContainerName",
"ObservedTracksCollection")
244 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetObservedTrackParticles")
245 kwargs.setdefault(
"AugmentObservedTracks",
True)
246 kwargs.setdefault(
"TracksMapName",
"ObservedTracksCollectionMap")
251 ClusterSplitProbabilityName = "",
252 AssociationMapName = "",
253 isActsAmbi: bool =
False,
255 result = ComponentAccumulator()
257 kwargs.setdefault(
"ConvertTracks",
True)
258 kwargs.setdefault(
"TrackContainerName",
"CombinedITkTracks")
259 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetTrackParticles")
260 if flags.Tracking.perigeeExpression ==
"Vertex":
261 kwargs.setdefault(
'PrimaryVerticesName',
'PrimaryVertices')
263 if "TrackParticleCreator" not in kwargs:
264 from TrkConfig.TrkParticleCreatorConfig
import ITkTrackParticleCreatorToolCfg
265 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
266 ITkTrackParticleCreatorToolCfg(
268 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
270 ClusterSplitProbabilityName = ClusterSplitProbabilityName
if not isActsAmbi
else "",
271 AssociationMapName = AssociationMapName)))
273 if "TrackCollectionCnvTool" not in kwargs:
274 result.addPublicTool(kwargs[
"TrackParticleCreator"])
275 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
278 TrackParticleCreator = kwargs[
"TrackParticleCreator"],
279 isActsAmbi = isActsAmbi)))
281 if flags.Tracking.doTruth:
282 kwargs.setdefault(
"TrackTruthContainerName",
283 kwargs[
"TrackContainerName"]+
"TruthCollection")
284 kwargs.setdefault(
"AddTruthLink",
True)
285 if "MCTruthClassifier" not in kwargs:
286 from MCTruthClassifier.MCTruthClassifierConfig
import MCTruthClassifierCfg
287 kwargs.setdefault(
"MCTruthClassifier", result.popToolsAndMerge(
288 MCTruthClassifierCfg(flags)))
290 kwargs.setdefault(
"AddTruthLink",
False)
292 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
296 ClusterSplitProbabilityName = "",
297 AssociationMapName = "",
298 isActsAmbi: bool =
False,
300 result = ComponentAccumulator()
302 kwargs.setdefault(
"ConvertTracks",
True)
303 kwargs.setdefault(
"TrackContainerName",
"CombinedITkTracks")
304 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetTrackParticles")
306 if flags.Tracking.ActiveConfig.perigeeExpression ==
"Vertex":
307 kwargs.setdefault(
'PrimaryVerticesName',
'PrimaryVertices')
309 if "TrackParticleCreator" not in kwargs:
310 from TrkConfig.TrkParticleCreatorConfig
import ITkTrackParticleCreatorToolCfg
311 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
312 ITkTrackParticleCreatorToolCfg(
314 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
316 ClusterSplitProbabilityName = ClusterSplitProbabilityName
if not isActsAmbi
else "",
317 AssociationMapName = AssociationMapName)))
319 if "TrackCollectionCnvTool" not in kwargs:
320 result.addPublicTool(kwargs[
"TrackParticleCreator"])
321 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
324 TrackParticleCreator = kwargs[
"TrackParticleCreator"],
325 isActsAmbi = isActsAmbi)))
327 if flags.Tracking.ActiveConfig.doTruth:
328 kwargs.setdefault(
"TrackTruthContainerName",
329 kwargs[
"TrackContainerName"]+
"TruthCollection")
330 kwargs.setdefault(
"AddTruthLink",
True)
331 if "MCTruthClassifier" not in kwargs:
332 from MCTruthClassifier.MCTruthClassifierConfig
import MCTruthClassifierCfg
333 kwargs.setdefault(
"MCTruthClassifier", result.popToolsAndMerge(
334 MCTruthClassifierCfg(flags)))
336 kwargs.setdefault(
"AddTruthLink",
False)
338 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
342 from TrkConfig.TrkParticleCreatorConfig
import MuonParticleCreatorToolCfg
343 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
345 result=ComponentAccumulator()
346 result.merge(BeamSpotCondAlgCfg(flags))
348 muonparticlecreatortool = result.popToolsAndMerge(MuonParticleCreatorToolCfg(flags))
349 result.addPublicTool(muonparticlecreatortool)
351 kwargs.setdefault(
"TrackParticleCreator", muonparticlecreatortool)
352 muontrackcollectioncnvtool = result.popToolsAndMerge(
354 kwargs.setdefault(
"TrackCollectionCnvTool", muontrackcollectioncnvtool)
356 kwargs.setdefault(
"TrackContainerName",
"MuonSpectrometerTracks")
357 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"MuonSpectrometerTrackParticles")
358 kwargs.setdefault(
"xAODTruthLinkVector",
"")
359 kwargs.setdefault(
"ConvertTracks",
True)
360 kwargs.setdefault(
"AddTruthLink",
False)
362 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
TrackCollectionCnvToolCfg(flags, name="TrackCollectionCnvTool", **kwargs)
TrackCollectionCnvTool.
ITkTrackParticleCnvAlgCfg(flags, name="ITkTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", bool isActsAmbi=False, **kwargs)
BeamLineTrackParticleCnvAlgCfg(flags, name="BeamLineTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrackParticleCnvAlgPIDCheckCfg(flags, name, ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrigITkTrackParticleCnvAlgCfg(flags, name="ITkTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", bool isActsAmbi=False, **kwargs)
MuonStandaloneTrackParticleCnvAlgCfg(flags, name="MuonStandaloneTrackParticleCnvAlg", **kwargs)
TrackParticleCnvAlgCfg(flags, name="TrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrackParticleCnvAlg.
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)