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