ATLAS Offline Software
xAODTrackingCnvConfig.py
Go to the documentation of this file.
1 """Define methods to construct configured Tracking conversion algorithms
2 
3 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
4 """
5 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory import CompFactory
7 
8 
11 
12 def 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(
20  result.addPublicTool(TrackParticleCreator)
21  kwargs.setdefault("TrackParticleCreator", TrackParticleCreator)
22 
23  result.setPrivateTools(
24  CompFactory.xAODMaker.RecTrackParticleContainerCnvTool(name, **kwargs))
25  return result
26 
27 def 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(
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 
46 def 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(
58  result.addPublicTool(TrackParticleCreator)
59  kwargs.setdefault("TrackParticleCreator", TrackParticleCreator)
60 
61  result.setPrivateTools(
62  CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
63  return result
64 
65 def 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 
80 def 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(
87  result.addPublicTool(TrackParticleCreator)
88  kwargs.setdefault("TrackParticleCreator", TrackParticleCreator)
89 
90  result.setPrivateTools(CompFactory.xAODMaker.TrackCollectionCnvTool(name, **kwargs))
91  return result
92 
93 
96 
97 def 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(
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  kwargs.setdefault("PrimaryVerticesName", "PrimaryVertices")
145 
146  result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
147  return result
148 
149 
150 def TrigTrackParticleCnvAlgCfg(flags, name="TrigTrackParticleCnvAlg",
151  ClusterSplitProbabilityName = "",
152  AssociationMapName = "",
153  **kwargs):
154 
155  if flags.Detector.GeometryITk:
156  name = name.replace("InDet", "ITk")
157  return ITkTrackParticleCnvAlgCfg(flags, name,
158  ClusterSplitProbabilityName,
159  AssociationMapName,
160  **kwargs)
161 
162  kwargs.setdefault("ConvertTracks", True)
163  kwargs.setdefault("ConvertTrackParticles", False)
164  kwargs.setdefault("TrackContainerName", "CombinedInDetTracks")
165  kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "InDetTrackParticles")
166  kwargs.setdefault("AddTruthLink", False)
167 
168  result = ComponentAccumulator()
169 
170  if "TrackParticleCreator" not in kwargs:
171  from TrkConfig.TrkParticleCreatorConfig import InDetTrigParticleCreatorToolCfg, \
172  InDetTrigParticleCreatorToolTRTPidCfg
173 
174  if flags.Tracking.ActiveConfig.electronPID:
175  partCreatorToolCfg = InDetTrigParticleCreatorToolTRTPidCfg
176  else:
177  partCreatorToolCfg = InDetTrigParticleCreatorToolCfg
178 
179 
180  kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
181  partCreatorToolCfg(
182  flags,
183  name = kwargs["xAODTrackParticlesFromTracksContainerName"] + "CreatorTool",
184  ClusterSplitProbabilityName = ClusterSplitProbabilityName,
185  AssociationMapName = AssociationMapName)
186  ))
187 
188  if "TrackCollectionCnvTool" not in kwargs:
189  result.addPublicTool(kwargs["TrackParticleCreator"])
190  kwargs.setdefault("TrackCollectionCnvTool", result.popToolsAndMerge(
192  flags,
193  TrackParticleCreator = kwargs["TrackParticleCreator"])))
194 
195  #temporarily - move base methods to ActiveConfig
196  if flags.Tracking.ActiveConfig.perigeeExpression == "Vertex":
197  kwargs.setdefault("PrimaryVerticesName", "PrimaryVertices")
198  else:
199  kwargs.setdefault("PrimaryVerticesName", "")
200 
201  result.merge(TrackParticleCnvAlgCfg(flags, name,
202  ClusterSplitProbabilityName,
203  AssociationMapName,
204  **kwargs)
205  )
206 
207  return result
208 
209 
210 def BeamLineTrackParticleCnvAlgCfg(flags, name="BeamLineTrackParticleCnvAlg",
211  ClusterSplitProbabilityName = "",
212  AssociationMapName = "",
213  **kwargs):
214  result = ComponentAccumulator()
215 
216  if "TrackParticleCreator" not in kwargs:
217  from TrkConfig.TrkParticleCreatorConfig import TrackParticleCreatorToolCfg
218  kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
220  flags,
221  name="InDetxAODParticleCreatorToolBeamLine",
222  ClusterSplitProbabilityName = ClusterSplitProbabilityName,
223  AssociationMapName = AssociationMapName,
224  PerigeeExpression = "BeamLine")))
225 
226  if flags.Tracking.perigeeExpression == "Vertex":
227  kwargs.setdefault("PrimaryVerticesName", "")
228 
229  result.merge(TrackParticleCnvAlgCfg(flags, name, **kwargs))
230  return result
231 
233  ClusterSplitProbabilityName = "",
234  AssociationMapName = "",
235  **kwargs):
236  result = ComponentAccumulator()
237 
238  if "TrackParticleCreator" not in kwargs:
239  from TrkConfig.TrkParticleCreatorConfig import TrackParticleCreatorToolPIDCheckCfg
240  kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
242  flags,
243  name = kwargs["xAODTrackParticlesFromTracksContainerName"] \
244  + "CreatorTool",
245  ClusterSplitProbabilityName = ClusterSplitProbabilityName,
246  AssociationMapName = AssociationMapName)))
247 
248  result.merge(TrackParticleCnvAlgCfg(flags, name, **kwargs))
249  return result
250 
252  ClusterSplitProbabilityName = "",
253  AssociationMapName = "",
254  **kwargs):
255  result = ComponentAccumulator()
256 
257  if "TrackParticleCreator" not in kwargs:
258  from TrkConfig.TrkParticleCreatorConfig import TrackParticleCreatorToolNoPIDCfg
259  kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
261  flags,
262  name = kwargs["xAODTrackParticlesFromTracksContainerName"] \
263  + "CreatorTool",
264  ClusterSplitProbabilityName = ClusterSplitProbabilityName,
265  AssociationMapName = AssociationMapName)))
266 
267  result.merge(TrackParticleCnvAlgCfg(flags, name,
268  ClusterSplitProbabilityName,
269  AssociationMapName, **kwargs))
270  return result
271 
272 def ObserverTrackParticleCnvAlgCfg(flags, name="ObserverTrackParticleCnvAlg",
273  ClusterSplitProbabilityName = "",
274  AssociationMapName = "",
275  **kwargs):
276  kwargs.setdefault("TrackContainerName", "ObservedTracksCollection")
277  kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "InDetObservedTrackParticles")
278  kwargs.setdefault("AugmentObservedTracks", True)
279  kwargs.setdefault("TracksMapName", "ObservedTracksCollectionMap")
280 
281  return TrackParticleCnvAlgCfg(flags, name, ClusterSplitProbabilityName, AssociationMapName, **kwargs)
282 
283 def ITkTrackParticleCnvAlgCfg(flags, name="ITkTrackParticleCnvAlg",
284  ClusterSplitProbabilityName = "",
285  AssociationMapName = "",
286  isActsAmbi: bool = False,
287  **kwargs):
288  result = ComponentAccumulator()
289 
290  kwargs.setdefault("ConvertTracks", True)
291  kwargs.setdefault("ConvertTrackParticles", False)
292  kwargs.setdefault("TrackContainerName", "CombinedITkTracks")
293  kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "InDetTrackParticles")
294 
295  if "TrackParticleCreator" not in kwargs:
296  from TrkConfig.TrkParticleCreatorConfig import ITkTrackParticleCreatorToolCfg
297  kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
299  flags,
300  name = kwargs["xAODTrackParticlesFromTracksContainerName"] \
301  + "CreatorTool",
302  ClusterSplitProbabilityName = ClusterSplitProbabilityName if not isActsAmbi else "",
303  AssociationMapName = AssociationMapName)))
304 
305  if "TrackCollectionCnvTool" not in kwargs:
306  result.addPublicTool(kwargs["TrackParticleCreator"])
307  kwargs.setdefault("TrackCollectionCnvTool", result.popToolsAndMerge(
309  flags,
310  TrackParticleCreator = kwargs["TrackParticleCreator"],
311  isActsAmbi = isActsAmbi)))
312 
313  if flags.Tracking.doTruth:
314  kwargs.setdefault("TrackTruthContainerName",
315  kwargs["TrackContainerName"]+"TruthCollection")
316  kwargs.setdefault("AddTruthLink", True)
317  if "MCTruthClassifier" not in kwargs:
318  from MCTruthClassifier.MCTruthClassifierConfig import MCTruthClassifierCfg
319  kwargs.setdefault("MCTruthClassifier", result.popToolsAndMerge(
320  MCTruthClassifierCfg(flags)))
321  else:
322  kwargs.setdefault("AddTruthLink", False)
323 
324  result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
325  return result
326 
327 def MuonStandaloneTrackParticleCnvAlgCfg(flags, name = "MuonStandaloneTrackParticleCnvAlg",**kwargs):
328  from TrkConfig.TrkParticleCreatorConfig import MuonParticleCreatorToolCfg
329  from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
330 
331  result=ComponentAccumulator()
332  result.merge(BeamSpotCondAlgCfg(flags))
333 
334  muonparticlecreatortool = result.popToolsAndMerge(MuonParticleCreatorToolCfg(flags))
335  result.addPublicTool(muonparticlecreatortool) # Public in TrackCollectionCnvTool
336 
337  kwargs.setdefault("TrackParticleCreator", muonparticlecreatortool)
338  kwargs.setdefault("RecTrackParticleContainerCnvTool", result.popToolsAndMerge(
339  MuonRecTrackParticleContainerCnvToolCfg(flags, TrackParticleCreator = muonparticlecreatortool)))
340  muontrackcollectioncnvtool = result.popToolsAndMerge(
341  MuonTrackCollectionCnvToolCfg(flags, TrackParticleCreator = muonparticlecreatortool))
342  kwargs.setdefault("TrackCollectionCnvTool", muontrackcollectioncnvtool)
343 
344  kwargs.setdefault("TrackContainerName", "MuonSpectrometerTracks")
345  kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "MuonSpectrometerTrackParticles")
346  kwargs.setdefault("AODContainerName", "")
347  kwargs.setdefault("AODTruthContainerName", "")
348  kwargs.setdefault("xAODTruthLinkVector", "")
349  kwargs.setdefault("ConvertTrackParticles", False)
350  kwargs.setdefault("ConvertTracks", True)
351  kwargs.setdefault("AddTruthLink", False)
352 
353  result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
354  return result
355 
356 def MuonTrackParticleCnvCfg(flags, name = "MuonTrackParticleCnvAlg",**kwargs):
357  result=ComponentAccumulator()
358  from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
359  result.merge(BeamSpotCondAlgCfg(flags))
360 
361 
362  if "TrackParticleCreator" not in kwargs:
363  from TrkConfig.TrkParticleCreatorConfig import MuonCombinedParticleCreatorCfg
364  kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(MuonCombinedParticleCreatorCfg(flags)))
365 
366  if "TrackCollectionCnvTool" not in kwargs:
367  from xAODTrackingCnv.xAODTrackingCnvConfig import MuonTrackCollectionCnvToolCfg
368  kwargs.setdefault("TrackCollectionCnvTool", result.popToolsAndMerge(MuonTrackCollectionCnvToolCfg(flags)))
369 
370  kwargs.setdefault("TrackContainerName", "MuonSpectrometerTracks")
371  kwargs.setdefault("xAODTrackParticlesFromTracksContainerName", "MuonSpectrometerTrackParticles")
372  kwargs.setdefault("ConvertTrackParticles", False)
373  kwargs.setdefault("ConvertTracks", True)
374  kwargs.setdefault("AddTruthLink", False)
375 
376  result.addEventAlgo(CompFactory.xAODMaker.TrackParticleCnvAlg(name, **kwargs))
377  return result
MCTruthClassifierConfig.MCTruthClassifierCfg
def MCTruthClassifierCfg(flags, **kwargs)
Definition: MCTruthClassifier/python/MCTruthClassifierConfig.py:8
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
xAODTrackingCnvConfig.MuonRecTrackParticleContainerCnvToolCfg
def MuonRecTrackParticleContainerCnvToolCfg(flags, name="MuonRecTrackParticleContainerCnvTool", **kwargs)
Definition: xAODTrackingCnvConfig.py:27
xAODTrackingCnvConfig.ObserverTrackParticleCnvAlgCfg
def ObserverTrackParticleCnvAlgCfg(flags, name="ObserverTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
Definition: xAODTrackingCnvConfig.py:272
xAODTrackingCnvConfig.ITkTrackCollectionCnvToolCfg
def ITkTrackCollectionCnvToolCfg(flags, name="ITkTrackCollectionCnvTool", bool isActsAmbi=False, **kwargs)
Definition: xAODTrackingCnvConfig.py:65
python.BeamSpotConditionsConfig.BeamSpotCondAlgCfg
def BeamSpotCondAlgCfg(flags, name="BeamSpotCondAlg", **kwargs)
Definition: BeamSpotConditionsConfig.py:7
xAODTrackingCnvConfig.TrackParticleCnvAlgNoPIDCfg
def TrackParticleCnvAlgNoPIDCfg(flags, name, ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
Definition: xAODTrackingCnvConfig.py:251
xAODTrackingCnvConfig.MuonTrackCollectionCnvToolCfg
def MuonTrackCollectionCnvToolCfg(flags, name="MuonTrackCollectionCnvTool", **kwargs)
Definition: xAODTrackingCnvConfig.py:80
python.TrkParticleCreatorConfig.TrackParticleCreatorToolCfg
def TrackParticleCreatorToolCfg(flags, name="InDetxAODParticleCreatorTool", **kwargs)
InDet/ITk #####.
Definition: TrkParticleCreatorConfig.py:14
xAODTrackingCnvConfig.TrackParticleCnvAlgPIDCheckCfg
def TrackParticleCnvAlgPIDCheckCfg(flags, name, ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
Definition: xAODTrackingCnvConfig.py:232
xAODTrackingCnvConfig.MuonStandaloneTrackParticleCnvAlgCfg
def MuonStandaloneTrackParticleCnvAlgCfg(flags, name="MuonStandaloneTrackParticleCnvAlg", **kwargs)
Definition: xAODTrackingCnvConfig.py:327
xAODTrackingCnvConfig.MuonTrackParticleCnvCfg
def MuonTrackParticleCnvCfg(flags, name="MuonTrackParticleCnvAlg", **kwargs)
Definition: xAODTrackingCnvConfig.py:356
xAODTrackingCnvConfig.ITkTrackParticleCnvAlgCfg
def ITkTrackParticleCnvAlgCfg(flags, name="ITkTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", bool isActsAmbi=False, **kwargs)
Definition: xAODTrackingCnvConfig.py:283
python.TrkParticleCreatorConfig.ITkTrackParticleCreatorToolCfg
def ITkTrackParticleCreatorToolCfg(flags, name="ITkTrackParticleCreatorTool", **kwargs)
Definition: TrkParticleCreatorConfig.py:189
xAODTrackingCnvConfig.TrigTrackParticleCnvAlgCfg
def TrigTrackParticleCnvAlgCfg(flags, name="TrigTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
Definition: xAODTrackingCnvConfig.py:150
xAODTrackingCnvConfig.TrackCollectionCnvToolCfg
def TrackCollectionCnvToolCfg(flags, name="TrackCollectionCnvTool", **kwargs)
TrackCollectionCnvTool.
Definition: xAODTrackingCnvConfig.py:46
python.TrkParticleCreatorConfig.MuonParticleCreatorToolCfg
def MuonParticleCreatorToolCfg(flags, name="MuonParticleCreatorTool", **kwargs)
Muons #####.
Definition: TrkParticleCreatorConfig.py:287
xAODTrackingCnvConfig.BeamLineTrackParticleCnvAlgCfg
def BeamLineTrackParticleCnvAlgCfg(flags, name="BeamLineTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
Definition: xAODTrackingCnvConfig.py:210
xAODTrackingCnvConfig.RecTrackParticleContainerCnvToolCfg
def RecTrackParticleContainerCnvToolCfg(flags, name="RecTrackParticleContainerCnvTool", **kwargs)
RecTrackParticleContainerCnvTool.
Definition: xAODTrackingCnvConfig.py:12
python.TrkParticleCreatorConfig.MuonCombinedParticleCreatorCfg
def MuonCombinedParticleCreatorCfg(flags, name="MuonCombinedParticleCreator", **kwargs)
Definition: TrkParticleCreatorConfig.py:315
python.TrkParticleCreatorConfig.TrackParticleCreatorToolNoPIDCfg
def TrackParticleCreatorToolNoPIDCfg(flags, name="InDetxAODParticleCreatorToolNoPID", **kwargs)
Definition: TrkParticleCreatorConfig.py:101
python.TrkParticleCreatorConfig.TrackParticleCreatorToolPIDCheckCfg
def TrackParticleCreatorToolPIDCheckCfg(flags, name="InDetxAODParticleCreatorTool", **kwargs)
Definition: TrkParticleCreatorConfig.py:76
xAODTrackingCnvConfig.TrackParticleCnvAlgCfg
def TrackParticleCnvAlgCfg(flags, name="TrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", **kwargs)
TrackParticleCnvAlg.
Definition: xAODTrackingCnvConfig.py:97