ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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  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 
154 def 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 
214 def 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(
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(
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(
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 
276 def 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 
287 def 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(
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 
333 def 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 
362 def 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
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:276
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:255
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:236
xAODTrackingCnvConfig.MuonStandaloneTrackParticleCnvAlgCfg
def MuonStandaloneTrackParticleCnvAlgCfg(flags, name="MuonStandaloneTrackParticleCnvAlg", **kwargs)
Definition: xAODTrackingCnvConfig.py:333
xAODTrackingCnvConfig.MuonTrackParticleCnvCfg
def MuonTrackParticleCnvCfg(flags, name="MuonTrackParticleCnvAlg", **kwargs)
Definition: xAODTrackingCnvConfig.py:362
xAODTrackingCnvConfig.ITkTrackParticleCnvAlgCfg
def ITkTrackParticleCnvAlgCfg(flags, name="ITkTrackParticleCnvAlg", ClusterSplitProbabilityName="", AssociationMapName="", bool isActsAmbi=False, **kwargs)
Definition: xAODTrackingCnvConfig.py:287
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:154
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:214
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
MCTruthClassifierConfig.MCTruthClassifierCfg
def MCTruthClassifierCfg(flags, name="MCTruthClassifier", **kwargs)
Definition: MCTruthClassifier/python/MCTruthClassifierConfig.py:12
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