1 """Define methods to construct configured Tracking conversion algorithms
3 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory
import CompFactory
15 if "TrackParticleCreator" not in kwargs:
16 from TrkConfig.TrkParticleCreatorConfig
import (
17 TrackParticleCreatorToolCfg)
18 TrackParticleCreator = result.popToolsAndMerge(
20 result.addPublicTool(TrackParticleCreator)
21 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
23 result.setPrivateTools(
24 CompFactory.xAODMaker.RecTrackParticleContainerCnvTool(name, **kwargs))
30 if "TrackParticleCreator" not in kwargs:
31 from TrkConfig.TrkParticleCreatorConfig
import (
32 MuonCombinedParticleCreatorCfg)
33 TrackParticleCreator = result.popToolsAndMerge(
35 result.addPublicTool(TrackParticleCreator)
36 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
38 result.setPrivateTools(
39 CompFactory.xAODMaker.RecTrackParticleContainerCnvTool(name, **kwargs))
47 if flags.Detector.GeometryITk:
48 name = name.replace(
"InDet",
"ITk")
53 if "TrackParticleCreator" not in kwargs:
54 from TrkConfig.TrkParticleCreatorConfig
import (
55 TrackParticleCreatorToolCfg)
56 TrackParticleCreator = result.popToolsAndMerge(
58 result.addPublicTool(TrackParticleCreator)
59 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
61 result.setPrivateTools(
62 CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
66 isActsAmbi: bool =
False,
70 if "TrackParticleCreator" not in kwargs:
71 from TrkConfig.TrkParticleCreatorConfig
import ITkTrackParticleCreatorToolCfg
72 TrackParticleCreator = result.popToolsAndMerge(
74 result.addPublicTool(TrackParticleCreator)
75 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
77 result.setPrivateTools(CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
83 if "TrackParticleCreator" not in kwargs:
84 from TrkConfig.TrkParticleCreatorConfig
import MuonCombinedParticleCreatorCfg
85 TrackParticleCreator = result.popToolsAndMerge(
87 result.addPublicTool(TrackParticleCreator)
88 kwargs.setdefault(
"TrackParticleCreator", TrackParticleCreator)
90 result.setPrivateTools(CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
98 ClusterSplitProbabilityName = "",
99 AssociationMapName = "",
101 if flags.Detector.GeometryITk:
102 name = name.replace(
"InDet",
"ITk")
104 ClusterSplitProbabilityName,
110 kwargs.setdefault(
"ConvertTracks",
True)
111 kwargs.setdefault(
"ConvertTrackParticles",
False)
112 kwargs.setdefault(
"TrackContainerName",
"CombinedInDetTracks")
113 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetTrackParticles")
115 if "TrackParticleCreator" not in kwargs:
116 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolCfg
117 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
120 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
122 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
123 AssociationMapName = AssociationMapName)))
125 if "TrackCollectionCnvTool" not in kwargs:
126 result.addPublicTool(kwargs[
"TrackParticleCreator"])
127 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
130 TrackParticleCreator = kwargs[
"TrackParticleCreator"])))
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(
141 kwargs.setdefault(
"AddTruthLink",
False)
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")
148 kwargs.setdefault(
"PrimaryVerticesName",
"PrimaryVertices")
150 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
155 ClusterSplitProbabilityName = "",
156 AssociationMapName = "",
159 if flags.Detector.GeometryITk:
160 name = name.replace(
"InDet",
"ITk")
162 ClusterSplitProbabilityName,
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)
174 if "TrackParticleCreator" not in kwargs:
175 from TrkConfig.TrkParticleCreatorConfig
import InDetTrigParticleCreatorToolCfg, \
176 InDetTrigParticleCreatorToolTRTPidCfg
178 if flags.Tracking.ActiveConfig.electronPID:
179 partCreatorToolCfg = InDetTrigParticleCreatorToolTRTPidCfg
181 partCreatorToolCfg = InDetTrigParticleCreatorToolCfg
184 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
187 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] +
"CreatorTool",
188 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
189 AssociationMapName = AssociationMapName)
192 if "TrackCollectionCnvTool" not in kwargs:
193 result.addPublicTool(kwargs[
"TrackParticleCreator"])
194 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
197 TrackParticleCreator = kwargs[
"TrackParticleCreator"])))
200 if flags.Tracking.ActiveConfig.perigeeExpression ==
"Vertex":
201 kwargs.setdefault(
"PrimaryVerticesName",
"PrimaryVertices")
203 kwargs.setdefault(
"PrimaryVerticesName",
"")
206 ClusterSplitProbabilityName,
215 ClusterSplitProbabilityName = "",
216 AssociationMapName = "",
220 if "TrackParticleCreator" not in kwargs:
221 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolCfg
222 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
225 name=
"InDetxAODParticleCreatorToolBeamLine",
226 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
227 AssociationMapName = AssociationMapName,
228 PerigeeExpression =
"BeamLine")))
230 if flags.Tracking.perigeeExpression ==
"Vertex":
231 kwargs.setdefault(
"PrimaryVerticesName",
"")
237 ClusterSplitProbabilityName = "",
238 AssociationMapName = "",
242 if "TrackParticleCreator" not in kwargs:
243 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolPIDCheckCfg
244 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
247 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
249 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
250 AssociationMapName = AssociationMapName)))
256 ClusterSplitProbabilityName = "",
257 AssociationMapName = "",
261 if "TrackParticleCreator" not in kwargs:
262 from TrkConfig.TrkParticleCreatorConfig
import TrackParticleCreatorToolNoPIDCfg
263 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
266 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
268 ClusterSplitProbabilityName = ClusterSplitProbabilityName,
269 AssociationMapName = AssociationMapName)))
272 ClusterSplitProbabilityName,
273 AssociationMapName, **kwargs))
277 ClusterSplitProbabilityName = "",
278 AssociationMapName = "",
280 kwargs.setdefault(
"TrackContainerName",
"ObservedTracksCollection")
281 kwargs.setdefault(
"xAODTrackParticlesFromTracksContainerName",
"InDetObservedTrackParticles")
282 kwargs.setdefault(
"AugmentObservedTracks",
True)
283 kwargs.setdefault(
"TracksMapName",
"ObservedTracksCollectionMap")
288 ClusterSplitProbabilityName = "",
289 AssociationMapName = "",
290 isActsAmbi: bool =
False,
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')
301 if "TrackParticleCreator" not in kwargs:
302 from TrkConfig.TrkParticleCreatorConfig
import ITkTrackParticleCreatorToolCfg
303 kwargs.setdefault(
"TrackParticleCreator", result.popToolsAndMerge(
306 name = kwargs[
"xAODTrackParticlesFromTracksContainerName"] \
308 ClusterSplitProbabilityName = ClusterSplitProbabilityName
if not isActsAmbi
else "",
309 AssociationMapName = AssociationMapName)))
311 if "TrackCollectionCnvTool" not in kwargs:
312 result.addPublicTool(kwargs[
"TrackParticleCreator"])
313 kwargs.setdefault(
"TrackCollectionCnvTool", result.popToolsAndMerge(
316 TrackParticleCreator = kwargs[
"TrackParticleCreator"],
317 isActsAmbi = isActsAmbi)))
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(
328 kwargs.setdefault(
"AddTruthLink",
False)
330 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
334 from TrkConfig.TrkParticleCreatorConfig
import MuonParticleCreatorToolCfg
335 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
341 result.addPublicTool(muonparticlecreatortool)
343 kwargs.setdefault(
"TrackParticleCreator", muonparticlecreatortool)
344 kwargs.setdefault(
"RecTrackParticleContainerCnvTool", result.popToolsAndMerge(
346 muontrackcollectioncnvtool = result.popToolsAndMerge(
348 kwargs.setdefault(
"TrackCollectionCnvTool", muontrackcollectioncnvtool)
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)
359 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
364 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
368 if "TrackParticleCreator" not in kwargs:
369 from TrkConfig.TrkParticleCreatorConfig
import MuonCombinedParticleCreatorCfg
372 if "TrackCollectionCnvTool" not in kwargs:
373 from xAODTrackingCnv.xAODTrackingCnvConfig
import MuonTrackCollectionCnvToolCfg
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)
382 result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))