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
7from TrkConfig.TrkConfigFlags
import PerigeeExpression
14 if flags.Detector.GeometryITk:
15 name = name.replace(
"InDet",
"ITk")
18 result = ComponentAccumulator()
20 if "TrackParticleCreator" not in kwargs:
21 from TrkConfig.TrkParticleCreatorConfig
import (
22 TrackParticleCreatorToolCfg)
23 TrackParticleCreator = result.popToolsAndMerge(
24 TrackParticleCreatorToolCfg(flags))
25 result.addPublicTool(TrackParticleCreator)
26 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
28 result.setPrivateTools(
29 CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
33 isActsAmbi: bool =
False,
35 result = ComponentAccumulator()
37 if "TrackParticleCreator" not in kwargs:
38 from TrkConfig.TrkParticleCreatorConfig
import ITkTrackParticleCreatorToolCfg
39 TrackParticleCreator = result.popToolsAndMerge(
40 ITkTrackParticleCreatorToolCfg(flags, RunningTIDE_Ambi =
not isActsAmbi ))
41 result.addPublicTool(TrackParticleCreator)
42 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
44 result.setPrivateTools(CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
48 result = ComponentAccumulator()
50 if "TrackParticleCreator" not in kwargs:
51 from TrkConfig.TrkParticleCreatorConfig
import MuonCombinedParticleCreatorCfg
52 TrackParticleCreator = result.popToolsAndMerge(
53 MuonCombinedParticleCreatorCfg(flags))
54 result.addPublicTool(TrackParticleCreator)
55 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
57 result.setPrivateTools(CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
65 ClusterSplitProbabilityName = "",
66 AssociationMapName = "",
68 if flags.Detector.GeometryITk:
69 name = name.replace(
"InDet",
"ITk")
71 ClusterSplitProbabilityName,
75 result = ComponentAccumulator()
76 kwargs.setdefault(
"ConvertTracks",
True)
77 kwargs.setdefault(
"TrackContainerName",
"CombinedInDetTracks")
78 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetTrackParticles")
80 if "TrackParticleCreator" not in kwargs:
81 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolCfg
82 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
83 TrackParticleCreatorToolCfg(
85 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
87 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
88 AssociationMapName = AssociationMapName)))
90 if "TrackCollectionCnvTool" not in kwargs:
91 result.addPublicTool(kwargs[
"TrackParticleCreator"])
92 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
95 TrackParticleCreator = kwargs[
"TrackParticleCreator"])))
97 if flags.Tracking.doTruth:
98 kwargs.setdefault(
"TrackTruthContainerName",
99 kwargs[
"TrackContainerName"]+
"TruthCollection")
100 kwargs.setdefault(
"AddTruthLink",
True)
101 if "MCTruthClassifier" not in kwargs:
102 from MCTruthClassifier.MCTruthClassifierConfig
import MCTruthClassifierCfg
103 kwargs.setdefault(
"MCTruthClassifier", result.popToolsAndMerge(
104 MCTruthClassifierCfg(flags)))
106 kwargs.setdefault(
"AddTruthLink",
False)
108 if flags.Tracking.perigeeExpression
is PerigeeExpression.Vertex:
109 from AthenaConfiguration.Enums
import ProductionStep
110 if flags.Common.ProductionStep
is ProductionStep.MinbiasPreprocessing:
111 kwargs.setdefault(
"PrimaryVerticesName", f
"{flags.Overlay.BkgPrefix}PrimaryVertices")
113 kwargs.setdefault(
"PrimaryVerticesName",
"PrimaryVertices")
115 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
120 ClusterSplitProbabilityName = "",
121 AssociationMapName = "",
124 if flags.Detector.GeometryITk:
125 name = name.replace(
"InDet",
"ITk")
127 ClusterSplitProbabilityName,
131 kwargs.setdefault(
"ConvertTracks",
True)
132 kwargs.setdefault(
"TrackContainerName",
"CombinedInDetTracks")
133 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetTrackParticles")
134 kwargs.setdefault(
"AddTruthLink",
False)
136 result = ComponentAccumulator()
138 if "TrackParticleCreator" not in kwargs:
139 from TrkConfig.TrkParticleCreatorConfig
import InDetTrigParticleCreatorToolCfg, \
140 InDetTrigParticleCreatorToolTRTPidCfg
142 if flags.Tracking.ActiveConfig.electronPID:
143 partCreatorToolCfg = InDetTrigParticleCreatorToolTRTPidCfg
145 partCreatorToolCfg = InDetTrigParticleCreatorToolCfg
148 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
151 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] +
"CreatorTool",
152 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
153 AssociationMapName = AssociationMapName)
156 if "TrackCollectionCnvTool" not in kwargs:
157 result.addPublicTool(kwargs[
"TrackParticleCreator"])
158 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
161 TrackParticleCreator = kwargs[
"TrackParticleCreator"])))
164 if flags.Tracking.ActiveConfig.perigeeExpression
is PerigeeExpression.Vertex:
165 kwargs.setdefault(
"PrimaryVerticesName",
"PrimaryVertices")
167 kwargs.setdefault(
"PrimaryVerticesName",
"")
170 ClusterSplitProbabilityName,
179 ClusterSplitProbabilityName = "",
180 AssociationMapName = "",
182 result = ComponentAccumulator()
184 if "TrackParticleCreator" not in kwargs:
185 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolCfg
186 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
187 TrackParticleCreatorToolCfg(
189 name=
"InDetxAODParticleCreatorToolBeamLine",
190 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
191 AssociationMapName = AssociationMapName,
192 PerigeeExpression =
"BeamLine")))
194 if flags.Tracking.perigeeExpression
is PerigeeExpression.Vertex:
195 kwargs.setdefault(
"PrimaryVerticesName",
"")
201 ClusterSplitProbabilityName = "",
202 AssociationMapName = "",
204 result = ComponentAccumulator()
206 if "TrackParticleCreator" not in kwargs:
207 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolPIDCheckCfg
208 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
209 TrackParticleCreatorToolPIDCheckCfg(
211 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
213 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
214 AssociationMapName = AssociationMapName)))
220 ClusterSplitProbabilityName = "",
221 AssociationMapName = "",
223 result = ComponentAccumulator()
225 if "TrackParticleCreator" not in kwargs:
226 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolNoPIDCfg
227 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
228 TrackParticleCreatorToolNoPIDCfg(
230 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
232 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
233 AssociationMapName = AssociationMapName)))
236 ClusterSplitProbabilityName,
237 AssociationMapName, **kwargs))
241 ClusterSplitProbabilityName = "",
242 AssociationMapName = "",
244 kwargs.setdefault(
"TrackContainerName",
"ObservedTracksCollection")
245 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetObservedTrackParticles")
246 kwargs.setdefault(
"AugmentObservedTracks",
True)
247 kwargs.setdefault(
"TracksMapName",
"ObservedTracksCollectionMap")
252 ClusterSplitProbabilityName = "",
253 AssociationMapName = "",
254 isActsAmbi: bool =
False,
256 result = ComponentAccumulator()
258 kwargs.setdefault(
"ConvertTracks",
True)
259 kwargs.setdefault(
"TrackContainerName",
"CombinedITkTracks")
260 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetTrackParticles")
261 if flags.Tracking.perigeeExpression
is PerigeeExpression.Vertex:
262 kwargs.setdefault(
'PrimaryVerticesName',
'PrimaryVertices')
264 if "TrackParticleCreator" not in kwargs:
265 from TrkConfig.TrkParticleCreatorConfig
import ITkTrackParticleCreatorToolCfg
266 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
267 ITkTrackParticleCreatorToolCfg(
269 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
271 ClusterSplitProbabilityName = ClusterSplitProbabilityName
if not isActsAmbi
else "",
272 AssociationMapName = AssociationMapName)))
274 if "TrackCollectionCnvTool" not in kwargs:
275 result.addPublicTool(kwargs[
"TrackParticleCreator"])
276 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
279 TrackParticleCreator = kwargs[
"TrackParticleCreator"],
280 isActsAmbi = isActsAmbi)))
282 if flags.Tracking.doTruth:
283 kwargs.setdefault(
"TrackTruthContainerName",
284 kwargs[
"TrackContainerName"]+
"TruthCollection")
285 kwargs.setdefault(
"AddTruthLink",
True)
286 if "MCTruthClassifier" not in kwargs:
287 from MCTruthClassifier.MCTruthClassifierConfig
import MCTruthClassifierCfg
288 kwargs.setdefault(
"MCTruthClassifier", result.popToolsAndMerge(
289 MCTruthClassifierCfg(flags)))
291 kwargs.setdefault(
"AddTruthLink",
False)
293 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
297 ClusterSplitProbabilityName = "",
298 AssociationMapName = "",
299 isActsAmbi: bool =
False,
301 result = ComponentAccumulator()
303 kwargs.setdefault(
"ConvertTracks",
True)
304 kwargs.setdefault(
"TrackContainerName",
"CombinedITkTracks")
305 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetTrackParticles")
307 if flags.Tracking.ActiveConfig.perigeeExpression
is PerigeeExpression.Vertex:
308 kwargs.setdefault(
'PrimaryVerticesName',
'PrimaryVertices')
310 if "TrackParticleCreator" not in kwargs:
311 from TrkConfig.TrkParticleCreatorConfig
import ITkTrackParticleCreatorToolCfg
312 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
313 ITkTrackParticleCreatorToolCfg(
315 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
317 ClusterSplitProbabilityName = ClusterSplitProbabilityName
if not isActsAmbi
else "",
318 AssociationMapName = AssociationMapName)))
320 if "TrackCollectionCnvTool" not in kwargs:
321 result.addPublicTool(kwargs[
"TrackParticleCreator"])
322 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
325 TrackParticleCreator = kwargs[
"TrackParticleCreator"],
326 isActsAmbi = isActsAmbi)))
328 if flags.Tracking.ActiveConfig.doTruth:
329 kwargs.setdefault(
"TrackTruthContainerName",
330 kwargs[
"TrackContainerName"]+
"TruthCollection")
331 kwargs.setdefault(
"AddTruthLink",
True)
332 if "MCTruthClassifier" not in kwargs:
333 from MCTruthClassifier.MCTruthClassifierConfig
import MCTruthClassifierCfg
334 kwargs.setdefault(
"MCTruthClassifier", result.popToolsAndMerge(
335 MCTruthClassifierCfg(flags)))
337 kwargs.setdefault(
"AddTruthLink",
False)
339 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
343 from TrkConfig.TrkParticleCreatorConfig
import MuonParticleCreatorToolCfg
344 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
346 result=ComponentAccumulator()
347 result.merge(BeamSpotCondAlgCfg(flags))
349 muonparticlecreatortool = result.popToolsAndMerge(MuonParticleCreatorToolCfg(flags))
350 result.addPublicTool(muonparticlecreatortool)
352 kwargs.setdefault(
"TrackParticleCreator", muonparticlecreatortool)
353 muontrackcollectioncnvtool = result.popToolsAndMerge(
355 kwargs.setdefault(
"TrackCollectionCnvTool", muontrackcollectioncnvtool)
357 kwargs.setdefault(
"TrackContainerName",
"MuonSpectrometerTracks")
358 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"MuonSpectrometerTrackParticles")
359 kwargs.setdefault(
"xAODTruthLinkVector",
"")
360 kwargs.setdefault(
"ConvertTracks",
True)
361 kwargs.setdefault(
"AddTruthLink",
False)
363 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
ObserverTrackParticleCnvAlgCfg(flags, name="ObserverTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrackParticleCnvAlgCfg(flags, name="TrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrackParticleCnvAlg.
MuonTrackCollectionCnvToolCfg(flags, name="MuonTrackCollectionCnvTool", **kwargs)
TrigTrackParticleCnvAlgCfg(flags, name="TrigTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrigITkTrackParticleCnvAlgCfg(flags, name="ITkTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", bool isActsAmbi=False, **kwargs)
BeamLineTrackParticleCnvAlgCfg(flags, name="BeamLineTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
ITkTrackParticleCnvAlgCfg(flags, name="ITkTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", bool isActsAmbi=False, **kwargs)
TrackCollectionCnvToolCfg(flags, name="TrackCollectionCnvTool", **kwargs)
TrackCollectionCnvTool.
TrackParticleCnvAlgPIDCheckCfg(flags, name, ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
ITkTrackCollectionCnvToolCfg(flags, name="ITkTrackCollectionCnvTool", bool isActsAmbi=False, **kwargs)
MuonStandaloneTrackParticleCnvAlgCfg(flags, name="MuonStandaloneTrackParticleCnvAlg", **kwargs)
TrackParticleCnvAlgNoPIDCfg(flags, name, ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)