ATLAS Offline Software
MuonCombinedRecToolsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 # Defines the shared tools used in muon identification
4 # Based on :
5 # https://gitlab.cern.ch/atlas/athena/blob/release/22.0.8/Reconstruction/MuonIdentification/MuonCombinedRecExample/python/MuonCombinedTools.py
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaConfiguration.ComponentFactory import CompFactory
8 from AthenaConfiguration.Enums import BeamType
9 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
10 from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
11 from MuonConfig.MuonRecToolsConfig import MuonEDMPrinterToolCfg
12 from MuonConfig.MuonTrackBuildingConfig import MuonSegmentRegionRecoveryToolCfg
13 
14 from TrkConfig.AtlasExtrapolatorToolsConfig import AtlasEnergyLossUpdatorCfg
15 from AthenaCommon.SystemOfUnits import GeV, mm
16 
17 
18 def InDetCandidateToolCfg(flags, name="InDetCandidateTool", **kwargs):
19  from InDetConfig.InDetTrackSelectorToolConfig import MuonCombinedInDetDetailedTrackSelectorToolCfg
21  kwargs.setdefault("TrackSelector", result.popPrivateTools())
22  result.setPrivateTools(
23  CompFactory.MuonCombined.InDetCandidateTool(name, **kwargs))
24  return result
25 
26 
27 def MuonInDetForwardCandidateToolCfg(flags, name='InDetForwardCandidateTool', **kwargs):
28  from InDetConfig.InDetTrackSelectorToolConfig import MuonCombinedInDetDetailedForwardTrackSelectorToolCfg
30  kwargs.setdefault("TrackSelector", result.popPrivateTools())
31  kwargs.setdefault("FlagCandidatesAsSiAssociated", True)
32  result.setPrivateTools(result.popToolsAndMerge(
33  InDetCandidateToolCfg(flags, name, **kwargs)))
34  return result # FIXME - is this and the above, actually used?
35 
36 
37 def MuonCaloEnergyToolCfg(flags, name="MuonCaloEnergyTool", **kwargs):
38  from TrackToCalo.TrackToCaloConfig import ParticleCaloCellAssociationToolCfg, ParticleCaloExtensionToolCfg
39 
41  flags, name='MuonParticleCaloExtensionTool')
42  particle_calo_extension_tool = result.getPrimary()
43 
44  particle_calo_cell_association_tool = result.popToolsAndMerge(
45  ParticleCaloCellAssociationToolCfg(flags, name='MuonCaloCellAssociationTool', ParticleCaloExtensionTool=particle_calo_extension_tool))
46 
47  from TrkConfig.TrkParticleCreatorConfig import MuonCaloParticleCreatorCfg
48  track_particle_creator = result.popToolsAndMerge(
50 
51  muonCaloEnergyTool = CompFactory.Rec.MuonCaloEnergyTool(name, ParticleCaloExtensionTool=particle_calo_extension_tool,
52  ParticleCaloCellAssociationTool=particle_calo_cell_association_tool,
53  TrackParticleCreator=track_particle_creator)
54  result.setPrivateTools(muonCaloEnergyTool)
55  return result
56 
57 
58 def MuonMaterialProviderToolCfg(flags, name="MuonTrkMaterialProviderTool", **kwargs):
59  from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import TrackingGeometryCondAlgCfg
60  from TrkConfig.AtlasExtrapolatorToolsConfig import AtlasMultipleScatteringUpdatorCfg
61 
62  result = AtlasExtrapolatorCfg(flags)
63  atlas_extrapolator = result.popPrivateTools()
64  kwargs.setdefault("Extrapolator", atlas_extrapolator)
65  result.addPublicTool(atlas_extrapolator)
66  kwargs.setdefault("MuonCaloEnergyTool", result.popToolsAndMerge(
67  MuonCaloEnergyToolCfg(flags, name="MuonCaloEnergyTool")))
68 
69  # MuonCaloEnergyTool is actually a private tool
70  calo_meas_tool = result.popToolsAndMerge(MuidCaloEnergyMeasCfg(flags))
71  kwargs.setdefault("CaloMeasTool", calo_meas_tool)
72  result.addPublicTool(calo_meas_tool)
73 
74  calo_param_tool = MuidCaloEnergyParam(flags)
75  kwargs.setdefault("CaloParamTool", calo_param_tool)
76  result.addPublicTool(calo_param_tool)
77 
78  multiple_scattering_tool = result.popToolsAndMerge(
80  kwargs.setdefault("MultipleScatteringTool", multiple_scattering_tool)
81  result.addPublicTool(multiple_scattering_tool)
82 
83  useCaloEnergyMeas = True
84  if flags.Muon.MuonTrigger:
85  useCaloEnergyMeas = False
86  kwargs.setdefault("UseCaloEnergyMeasurement", useCaloEnergyMeas)
87  acc = TrackingGeometryCondAlgCfg(flags)
88  kwargs.setdefault("TrackingGeometryReadKey",
89  acc.getPrimary().TrackingGeometryWriteKey)
90  result.merge(acc)
91 
92  energy_loss_updator = result.popToolsAndMerge(
94  kwargs.setdefault("EnergyLossUpdator",
95  energy_loss_updator) # PublicToolHandle
96  result.addPublicTool(energy_loss_updator)
97 
98  track_isolation_tool = result.popToolsAndMerge(
99  MuidTrackIsolationCfg(flags))
100  kwargs.setdefault("TrackIsolationTool", track_isolation_tool)
101  result.addPublicTool(track_isolation_tool)
102 
103  tool = CompFactory.Trk.TrkMaterialProviderTool(name=name, **kwargs)
104  result.setPrivateTools(tool)
105  return result
106 
107 
108 def MuonSegmentHitSummaryToolCfg(flags, name="MuonSegmentHitSummaryTool", **kwargs):
109  from MuonConfig.MuonGeometryConfig import MuonDetectorCondAlgCfg
110 
111  result = MuonEDMPrinterToolCfg(flags)
112  kwargs.setdefault("Printer", result.getPrimary())
113  result.merge(MuonDetectorCondAlgCfg(flags))
114  kwargs.setdefault("DetectorManagerKey", "MuonDetectorManager")
115  tool = CompFactory.Muon.MuonSegmentHitSummaryTool(name, **kwargs)
116  result.setPrivateTools(tool)
117  return result
118 
119 
120 def MuonSegmentConverterToolCfg(flags, name="MuonSegmentConverterTool", **kwargs):
121  result = MuonSegmentHitSummaryToolCfg(flags)
122  kwargs.setdefault("MuonSegmentHitSummaryTool", result.popPrivateTools())
123  # HitTimingTool does not need specific configuration
124  tool = CompFactory.Muon.MuonSegmentConverterTool(name, **kwargs)
125  result.setPrivateTools(tool)
126  return result
127 
128 
129 def MuonDressingToolCfg(flags, name="MuonDressingTool", **kwargs):
130  from MuonConfig.MuonRecToolsConfig import MuonHitSummaryToolCfg
131  result = MuonHitSummaryToolCfg(flags)
132  kwargs.setdefault("MuonHitSummaryTool", result.popPrivateTools())
133  # HitTimingTool does not need specific configuration
134  tool = CompFactory.MuonCombined.MuonDressingTool(name, **kwargs)
135  result.setPrivateTools(tool)
136  return result
137 
138 
139 def MuonCreatorToolCfg(flags, name="MuonCreatorTool", **kwargs):
140  from TrackToCalo.TrackToCaloConfig import ParticleCaloExtensionToolCfg
141  result = ComponentAccumulator()
142  # Not explicitly setting up MuonIdHelperSvc, nor MuonEDMHelperSvc (configured in top level reco Cfg)
143  muon_edm_printer = result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags))
144  kwargs.setdefault("Printer", muon_edm_printer)
145 
146  kwargs.setdefault("MuonPrinter", CompFactory.Rec.MuonPrintingTool(name='MuonPrintingTool',
147  MuonStationPrinter=muon_edm_printer))
148 
149  kwargs.setdefault("ParticleCaloExtensionTool",
150  result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags,
151  name='MuonParticleCaloExtensionTool',
152  StartFromPerigee=True)))
153 
154  from TrkConfig.TrkParticleCreatorConfig import MuonCombinedParticleCreatorCfg
155  kwargs.setdefault("TrackParticleCreator", result.popToolsAndMerge(
157 
158  from MuonConfig.MuonRecToolsConfig import MuonAmbiProcessorCfg
159  kwargs.setdefault("AmbiguityProcessor", result.popToolsAndMerge(
160  MuonAmbiProcessorCfg(flags)))
161 
162  from TrkConfig.TrkExRungeKuttaPropagatorConfig import RungeKuttaPropagatorCfg
163  kwargs.setdefault("Propagator", result.popToolsAndMerge(
164  RungeKuttaPropagatorCfg(flags)))
165  kwargs.setdefault("MuonDressingTool", result.popToolsAndMerge(
166  MuonDressingToolCfg(flags)))
167  # Not explicitly setting up MomentumBalanceTool nor ScatteringAngleTool
168  # Not explicitly setting up MeanMDTdADCTool (but probably should FIXME)
169 
170  kwargs.setdefault("CaloMaterialProvider", result.popToolsAndMerge(
172 
173  kwargs.setdefault("TrackQuery", result.popToolsAndMerge(
174  MuonTrackQueryCfg(flags)))
175  # runCommissioningChain
176  if flags.Muon.SAMuonTrigger:
177  from TrkConfig.TrkTrackSummaryToolConfig import MuonTrackSummaryToolCfg
178  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
179  MuonTrackSummaryToolCfg(flags)))
180  else:
181  from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg
182  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
184 
185  if flags.Muon.MuonTrigger:
186  kwargs.setdefault("MuonSelectionTool", "")
187  kwargs.setdefault("UseCaloCells", False)
188  kwargs.setdefault("CopyUInt8SummaryKeys", [])
189  else:
190  from MuonSelectorTools.MuonSelectorToolsConfig import MuonSelectionToolCfg
191  kwargs.setdefault("MuonSelectionTool", result.popToolsAndMerge(
192  MuonSelectionToolCfg(flags, name='MuonRecoSelTool')))
193  kwargs.setdefault("RequireMSOEforSA", flags.Beam.Type is BeamType.Collisions)
194  kwargs.setdefault("RequireCaloForSA", flags.Beam.Type is BeamType.Collisions)
195 
196  tool = CompFactory.MuonCombined.MuonCreatorTool(name, **kwargs)
197  result.setPrivateTools(tool)
198  return result
199 
200 
201 def ExtrapolateMuonToIPToolCfg(flags, name="ExtrapolateMuonToIPTool", **kwargs):
202  result = AtlasExtrapolatorCfg(flags)
203  kwargs.setdefault("Extrapolator", result.popPrivateTools())
204  from TrkConfig.AtlasExtrapolatorConfig import MuonExtrapolatorCfg
205  kwargs.setdefault("MuonExtrapolator", result.popToolsAndMerge(
206  MuonExtrapolatorCfg(flags)))
207 
208  if flags.Muon.MuonTrigger:
209  from TrkConfig.TrkTrackSummaryToolConfig import MuonTrackSummaryToolCfg
210  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
211  MuonTrackSummaryToolCfg(flags)))
212  else:
213  from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg
214  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
216  kwargs.setdefault("Printer", result.getPrimaryAndMerge(
217  MuonEDMPrinterToolCfg(flags)))
218  result.setPrivateTools(CompFactory.ExtrapolateMuonToIPTool(name, **kwargs))
219  return result
220 
221 
222 def MuonCandidateToolCfg(flags, name="MuonCandidateTool", **kwargs):
223  from MuonConfig.MuonRecToolsConfig import MuonAmbiProcessorCfg
224  result = ComponentAccumulator()
225  muon_edm_printer = result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags))
226  kwargs.setdefault("Printer", muon_edm_printer)
227  if "TrackBuilder" not in kwargs:
228  kwargs.setdefault("TrackBuilder", result.popToolsAndMerge(
229  CombinedMuonTrackBuilderCfg(flags, name="CombinedMuonTrackBuilder")))
230  # Why was this dependent on cosmics? will now always create this
231  # if flags.Beam.Type is BeamType.Cosmics:
232  if flags.Muon.MuonTrigger and flags.Beam.Type is not BeamType.Cosmics:
233  # trigger definitely only uses the ExtrapolateToIPtool in cosmics mode
234  kwargs.setdefault("TrackExtrapolationTool", "")
235  else:
236  kwargs.setdefault("TrackExtrapolationTool", result.popToolsAndMerge(
238  kwargs.setdefault("SegmentContainer", "TrackMuonSegments")
239  kwargs.setdefault("AmbiguityProcessor", result.popToolsAndMerge(
240  MuonAmbiProcessorCfg(flags)))
241 
242  from TrkConfig.TrkTrackSummaryToolConfig import MuonTrackSummaryToolCfg
243  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
244  MuonTrackSummaryToolCfg(flags)))
245 
246  # MuonIDHelperSvc already configured
247 
248  if flags.Beam.Type is BeamType.Cosmics:
249  kwargs.setdefault("ExtrapolationStrategy", 1)
250 
251  track_segment_association_tool = CompFactory.MuonCombined.TrackSegmentAssociationTool(
252  MuonEDMPrinterTool=muon_edm_printer)
253  kwargs.setdefault("TrackSegmentAssociationTool",
254  track_segment_association_tool)
255  result.addPublicTool(track_segment_association_tool)
256 
257  tool = CompFactory.MuonCombined.MuonCandidateTool(name, **kwargs)
258  result.setPrivateTools(tool)
259  return result
260 
261 
262 def MuonCombinedDebuggerToolCfg(flags, name="MuonCombinedDebuggerTool", **kwargs):
263  result = ComponentAccumulator()
264  match_quality = CompFactory.Rec.MuonMatchQuality(
265  TrackQuery=result.popToolsAndMerge(MuonTrackQueryCfg(flags)))
266  kwargs.setdefault("MuonMatchQuality", match_quality)
267  tool = CompFactory.MuonCombined.MuonCombinedDebuggerTool(name, **kwargs)
268  result.setPrivateTools(tool)
269  return result
270 
271 
272 def MuonCombinedToolCfg(flags, name="MuonCombinedTool", **kwargs):
273  tools = []
274  result = ComponentAccumulator()
275  kwargs.setdefault("Printer", result.getPrimaryAndMerge(
276  MuonEDMPrinterToolCfg(flags)))
277 
278  if flags.MuonCombined.doCombinedFit:
279  tool = result.popToolsAndMerge(MuonCombinedFitTagToolCfg(flags))
280  tools.append(tool)
281  if flags.MuonCombined.doStatisticalCombination and flags.Beam.Type is not BeamType.Cosmics:
282  tool = result.popToolsAndMerge(MuonCombinedStacoTagToolCfg(flags))
283  tools.append(tool)
284 
285  kwargs.setdefault("MuonCombinedTagTools", tools)
286  kwargs.setdefault("MuonCombinedDebuggerTool", result.popToolsAndMerge(
288 
290  result.merge(acc)
291  kwargs.setdefault("AlignmentUncertTool", result.getPublicTool(
292  'MuonAlignmentUncertToolTheta'))
293 
294  kwargs.setdefault("DeltaEtaPreSelection", 0.2)
295  kwargs.setdefault("DeltaPhiPreSelection", 0.2)
296  tool = CompFactory.MuonCombined.MuonCombinedTool(name, **kwargs)
297  result.setPrivateTools(tool)
298  return result
299 
300 
301 def MuonCombinedFitTagToolCfg(flags, name="MuonCombinedFitTagTool", **kwargs):
302  if flags.Muon.MuonTrigger:
303  kwargs.setdefault("VertexContainer", "")
304 
305  result = ComponentAccumulator()
306  kwargs.setdefault("TrackBuilder", result.popToolsAndMerge(
308 
309  kwargs.setdefault("Printer", result.getPrimaryAndMerge(
310  MuonEDMPrinterToolCfg(flags)))
311 
312  kwargs.setdefault("TrackQuery", result.popToolsAndMerge(
313  MuonTrackQueryCfg(flags)))
314  kwargs.setdefault("MatchQuality", result.popToolsAndMerge(
315  MuonMatchQualityCfg(flags)))
316 
317  from MuonConfig.MuonRecToolsConfig import MuonTrackScoringToolCfg
318  kwargs.setdefault("TrackScoringTool", result.popToolsAndMerge(
319  MuonTrackScoringToolCfg(flags)))
320 
321  tool = CompFactory.MuonCombined.MuonCombinedFitTagTool(name, **kwargs)
322  result.setPrivateTools(tool)
323  return result
324 
325 
326 def EMEO_MuonCombinedFitTagToolCfg(flags, name="MuonCombinedFitTagTool_EMEO", **kwargs):
327  result = ComponentAccumulator()
328  track_builder = result.popToolsAndMerge(
330  fit_tag_tool = result.popToolsAndMerge(MuonCombinedFitTagToolCfg(flags, name=name,
331  TrackBuilder=track_builder,
332  **kwargs))
333  result.setPrivateTools(fit_tag_tool)
334  return result
335 
336 
337 def EMEO_MuonCombinedToolCfg(flags, name="MuonCombinedTool_EMEO", **kwargs):
338  tools = []
339  result = ComponentAccumulator()
340  kwargs.setdefault("Printer", result.getPrimaryAndMerge(
341  MuonEDMPrinterToolCfg(flags)))
342 
343  if flags.MuonCombined.doCombinedFit:
344  tool = result.popToolsAndMerge(EMEO_MuonCombinedFitTagToolCfg(flags))
345  tools.append(tool)
346  if flags.MuonCombined.doStatisticalCombination:
347  tool = result.popToolsAndMerge(MuonCombinedStacoTagToolCfg(flags))
348  tools.append(tool)
349 
350  kwargs.setdefault("MuonCombinedTagTools", tools)
351  kwargs.setdefault("MuonCombinedDebuggerTool", result.popToolsAndMerge(
353 
355  result.merge(acc)
356  kwargs.setdefault("AlignmentUncertTool", result.getPublicTool(
357  'MuonAlignmentUncertToolTheta'))
358 
359  kwargs.setdefault("DeltaEtaPreSelection", 0.2)
360  kwargs.setdefault("DeltaPhiPreSelection", 0.2)
361  tool = CompFactory.MuonCombined.MuonCombinedTool(name, **kwargs)
362  result.setPrivateTools(tool)
363  return result
364 
365 
366 def MuonCombinedStacoTagToolCfg(flags, name="MuonCombinedStacoTagTool", **kwargs):
367 
368  result = ComponentAccumulator()
369  kwargs.setdefault("Printer", result.getPrimaryAndMerge(
370  MuonEDMPrinterToolCfg(flags)))
371  kwargs.setdefault("TagTool", result.popToolsAndMerge(
373  kwargs.setdefault("Extrapolator", result.popToolsAndMerge(
374  AtlasExtrapolatorCfg(flags)))
375 
376  tool = CompFactory.MuonCombined.MuonCombinedStacoTagTool(name, **kwargs)
377  result.setPrivateTools(tool)
378  return result
379 
380 # From Combined fit tools.py
381 
382 
383 def MuidMaterialAllocatorCfg(flags, name='MuidMaterialAllocator', **kwargs):
384  from TrkConfig.TrkExSTEP_PropagatorConfig import AtlasSTEP_PropagatorCfg
385  kwargs.setdefault("AggregateMaterial", True)
386  kwargs.setdefault("AllowReordering", False)
387 
388  result = AtlasExtrapolatorCfg(flags)
389  kwargs.setdefault("Extrapolator", result.popPrivateTools())
390  # Intersector (a RungeKuttaIntersector) does not require explicit configuration
391  kwargs.setdefault("STEP_Propagator", result.popToolsAndMerge(
392  AtlasSTEP_PropagatorCfg(flags, name="AtlasSTEP_Propagator")))
393  from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import TrackingGeometryCondAlgCfg
394  result.merge(TrackingGeometryCondAlgCfg(flags))
395  kwargs.setdefault("TrackingGeometryReadKey", "AtlasTrackingGeometry")
396 
397  tool = CompFactory.Trk.MaterialAllocator(name, **kwargs)
398  result.setPrivateTools(tool)
399  return result
400 
401 # and the fitter
402 
403 
404 def iPatFitterCfg(flags, name='iPatFitter', **kwargs):
405  from TrkConfig.SolenoidalIntersectorConfig import SolenoidalIntersectorCfg
406  from TrkConfig.TrkExSTEP_PropagatorConfig import AtlasSTEP_PropagatorCfg
407 
408  kwargs.setdefault("AggregateMaterial", True)
409  kwargs.setdefault("FullCombinedFit", True)
410  result = MuidMaterialAllocatorCfg(flags)
411  kwargs.setdefault("MaterialAllocator", result.popPrivateTools())
412  # RungeKuttaIntersector needs a AtlasFieldCacheCondObj, but it's impossible to get here without that being configured already so let's be lazy
413  # It does not otherwise require explicit configuration
414  kwargs.setdefault('SolenoidalIntersector', result.popToolsAndMerge(
415  SolenoidalIntersectorCfg(flags)))
416  kwargs.setdefault('Propagator', result.popToolsAndMerge(
417  AtlasSTEP_PropagatorCfg(flags)))
418  # StraightLineIntersector does not need explicit configuration
419  if flags.Muon.MuonTrigger:
420  kwargs.setdefault("MaxIterations", 15)
421  if flags.Muon.SAMuonTrigger:
422  from TrkConfig.TrkTrackSummaryToolConfig import MuonTrackSummaryToolCfg
423  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
424  MuonTrackSummaryToolCfg(flags)))
425  else:
426  from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg
427  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
429  # This is only to match old-style config. Does nothing.
430  kwargs.setdefault("TrackingVolumesSvc", "TrackingVolumesSvc")
431 
432  tool = CompFactory.Trk.iPatFitter(name, **kwargs)
433  result.setPrivateTools(tool)
434  return result
435 
436 
437 def iPatSLFitterCfg(flags, name='iPatSLFitter', **kwargs):
438  kwargs.setdefault("LineFit", True)
439  kwargs.setdefault("LineMomentum", flags.Muon.straightLineFitMomentum)
440  return iPatFitterCfg(flags, name, **kwargs)
441 
442 # track cleaner configured to use the same fitter
443 
444 
445 def MuidTrackCleanerCfg(flags, name='MuidTrackCleaner', **kwargs):
446  from MuonConfig.MuonRecToolsConfig import MuonTrackCleanerCfg
447  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
448  if flags.Beam.Type is BeamType.Cosmics:
449  kwargs.setdefault("PullCut", 5.0)
450  kwargs.setdefault("PullCutPhi", 10.0)
451  else:
452  kwargs.setdefault("PullCut", 4.0)
453  kwargs.setdefault("PullCutPhi", 4.0)
454  result = ComponentAccumulator()
455  if flags.Muon.MuonTrigger:
456  kwargs.setdefault("Iterate", False)
457  kwargs.setdefault("RecoverOutliers", False)
458  kwargs.setdefault("Fitter", result.popToolsAndMerge(
459  iPatFitterCfg(flags, 'iPatFitterClean', MaxIterations=4)))
460  else:
461  kwargs.setdefault(
462  "Fitter", result.popToolsAndMerge(iPatFitterCfg(flags)))
463  kwargs.setdefault(
464  "SLFitter", result.popToolsAndMerge(iPatSLFitterCfg(flags)))
465 
466  # For these following items, set back to default, because overridden in MuonTrackCleaner and we don't want overrides.
467  # ALL properties that are set in old-style are: PullCut, PullCutPhi, Iterate, RecoverOutliers, Fitter and iPatSLFitter
468  # However since there are defaults we still DO need to explicitly set, it's still probably easier to use MuonTrackCleanerCfg
469  kwargs.setdefault("MaxAvePullSumPerChamber", 3.5)
470  kwargs.setdefault("Chi2Cut", 100.0)
471  kwargs.setdefault("Extrapolator", result.getPrimaryAndMerge(
472  AtlasExtrapolatorCfg(flags)))
473  result.setPrivateTools(result.popToolsAndMerge(
474  MuonTrackCleanerCfg(flags, name, **kwargs)))
475  return result
476 
477 
478 def MuidCaloEnergyParam(flags, name='MuidCaloEnergyParam', **kwargs):
479  kwargs.setdefault("Cosmics", flags.Beam.Type is BeamType.Cosmics)
480  return CompFactory.Rec.MuidCaloEnergyParam(name, **kwargs)
481 
482 
483 def MuidCaloEnergyMeasCfg(flags, name='MuidCaloEnergyMeas', **kwargs):
484  result = ComponentAccumulator()
485  muidcaloenergyparam = MuidCaloEnergyParam(flags)
486  kwargs.setdefault("CaloParamTool", muidcaloenergyparam)
487  # FIXME! Need to setup the folders for CaloNoiseKey (which is why this needs a CA)
488  # Not sure how to do : if flags.haveRIO.Calo_on() but TBH, if the cells aren't there it will abort anyway
489  kwargs.setdefault("CellContainerLocation", "AllCalo")
490  kwargs.setdefault("NoiseThresInSigmas", 4.)
491  tool = CompFactory.Rec.MuidCaloEnergyMeas(name, **kwargs)
492  result.setPrivateTools(tool)
493  return result
494 
495 
496 def MuidCaloEnergyToolParamCfg(flags, name='MuidCaloEnergyToolParam', **kwargs):
497  # Some duplication with MuidCaloEnergyToolCfg but probably safer like this, since
498  # we don't want to set e.g. MinFinalEnergy here
499  result = MuidCaloEnergyMeasCfg(flags)
500  kwargs.setdefault("CaloMeasTool", result.popPrivateTools())
501  kwargs.setdefault("EnergyLossMeasurement", False)
502 
503  kwargs.setdefault("CaloParamTool", MuidCaloEnergyParam(flags))
504  if flags.Beam.Type is BeamType.Cosmics:
505  kwargs.setdefault("Cosmics", True)
506  kwargs.setdefault("TrackIsolationTool", result.popToolsAndMerge(
507  MuidTrackIsolationCfg(flags)))
508 
509  result.setPrivateTools(CompFactory.Rec.MuidCaloEnergyTool(name, **kwargs))
510  return result
511 
512 
513 def MuidTrackIsolationCfg(flags, name='MuidTrackIsolation', **kwargs):
514  from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
515  kwargs.setdefault("InDetTracksLocation",
516  "CombinedInDetTracks" if flags.Detector.GeometryID else "CombinedITkTracks")
517  # RungeKuttaIntersector requires the magnetic field conditions
518  result = AtlasFieldCacheCondAlgCfg(flags)
519  tool = CompFactory.Rec.MuidTrackIsolation(name, **kwargs)
520  result.setPrivateTools(tool)
521  return result
522 
523 
524 def MuidCaloEnergyToolCfg(flags, name='MuidCaloEnergyTool', **kwargs):
525  result = MuidCaloEnergyMeasCfg(flags)
526  kwargs.setdefault("CaloMeasTool", result.popPrivateTools())
527  kwargs.setdefault("CaloParamTool", MuidCaloEnergyParam(flags))
528  kwargs.setdefault("MinFinalEnergy", 1.0*GeV)
529  kwargs.setdefault("MinMuonPt", 10.0*GeV)
530  kwargs.setdefault("MopParametrization", True)
531  if flags.Muon.MuonTrigger:
532  kwargs.setdefault("EnergyLossMeasurement", False)
533  kwargs.setdefault("TrackIsolation", False)
534  else:
535  kwargs.setdefault("EnergyLossMeasurement", True)
536  kwargs.setdefault("TrackIsolation", True)
537 
538  kwargs.setdefault("TrackIsolationTool", result.popToolsAndMerge(
539  MuidTrackIsolationCfg(flags)))
540  kwargs.setdefault("Cosmics", flags.Beam.Type is BeamType.Cosmics)
541  result.setPrivateTools(CompFactory.Rec.MuidCaloEnergyTool(name, **kwargs))
542  return result
543 
544 
545 def MuidCaloTrackStateOnSurfaceCfg(flags, name='MuidCaloTrackStateOnSurface', **kwargs):
546  result = ComponentAccumulator()
547  from TrkConfig.TrkExRungeKuttaPropagatorConfig import RungeKuttaPropagatorCfg
548  kwargs.setdefault("Propagator", result.popToolsAndMerge(
549  RungeKuttaPropagatorCfg(flags)))
550  kwargs.setdefault("MinRemainingEnergy", 0.2*GeV)
551  kwargs.setdefault("ParamPtCut", 3.0*GeV)
552  kwargs.setdefault("CaloEnergyDeposit", result.popToolsAndMerge(
553  MuidCaloEnergyToolCfg(flags)))
554  kwargs.setdefault("CaloEnergyParam", result.popToolsAndMerge(
556  # I don't think CaloMaterialParam i.e. MuidCaloMaterialParam needs explicit configuration
557  # Ditto for IntersectorWrapper, since it just uses RKIntersector which doesn't
558  tool = CompFactory.Rec.MuidCaloTrackStateOnSurface(name, **kwargs)
559  result.setPrivateTools(tool)
560  return result
561 
562 
563 def MuidCaloTrackStateOnSurfaceParamCfg(flags, name='MuidCaloTrackStateOnSurfaceParam', **kwargs):
564  result = ComponentAccumulator()
565  from TrkConfig.TrkExRungeKuttaPropagatorConfig import RungeKuttaPropagatorCfg
566  kwargs.setdefault("Propagator", result.popToolsAndMerge(
567  RungeKuttaPropagatorCfg(flags)))
568  kwargs.setdefault("MinRemainingEnergy", 0.2*GeV)
569  kwargs.setdefault("ParamPtCut", 3.0*GeV)
570  kwargs.setdefault("CaloEnergyDeposit", MuidCaloEnergyParam(flags))
571  kwargs.setdefault("CaloEnergyParam", MuidCaloEnergyParam(flags))
572  tool = CompFactory.Rec.MuidCaloTrackStateOnSurface(name, **kwargs)
573  result.setPrivateTools(tool)
574  return result
575 
576 
577 def MuidMaterialEffectsOnTrackProviderCfg(flags, name='MuidMaterialEffectsOnTrackProvider', **kwargs):
578  result = MuidCaloTrackStateOnSurfaceCfg(flags)
579  kwargs.setdefault("TSOSTool", result.popPrivateTools())
581  kwargs.setdefault("TSOSToolParam", acc.popPrivateTools())
582  result.merge(acc)
583  kwargs.setdefault("Cosmics", flags.Beam.Type is BeamType.Cosmics)
584  tool = CompFactory.Rec.MuidMaterialEffectsOnTrackProvider(name, **kwargs)
585  result.setPrivateTools(tool)
586  return result
587 
588 
589 def MuidMaterialEffectsOnTrackProviderParamCfg(flags, name='MuidMaterialEffectsOnTrackProviderParam', **kwargs):
591  muidtsosparam = result.popPrivateTools()
592  kwargs.setdefault("TSOSTool", muidtsosparam)
593  kwargs.setdefault("TSOSToolParam", muidtsosparam)
594  kwargs.setdefault("Cosmics", flags.Beam.Type is BeamType.Cosmics)
595  tool = CompFactory.Rec.MuidMaterialEffectsOnTrackProvider(name, **kwargs)
596  result.setPrivateTools(tool)
597  return result
598 
599 
600 def MuonTrackQueryCfg(flags, name="MuonTrackQuery", **kwargs):
601  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MdtDriftCircleOnTrackCreatorCfg
602  result = MdtDriftCircleOnTrackCreatorCfg(flags)
603  kwargs.setdefault("MdtRotCreator", result.popPrivateTools())
604  from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import TrackingGeometryCondAlgCfg
605  result.merge(TrackingGeometryCondAlgCfg(flags))
606  kwargs.setdefault("TrackingGeometryReadKey", "AtlasTrackingGeometry")
607 
608  acc = iPatFitterCfg(flags)
609  kwargs.setdefault("Fitter", acc.popPrivateTools())
610  result.merge(acc)
611 
612  tool = CompFactory.Rec.MuonTrackQuery(name, **kwargs)
613  result.setPrivateTools(tool)
614  return result
615 
616 
617 def EMEO_MuonSegmentRegionRecoveryToolCfg(flags, name="MuonSegmentRegionRecoveryTool_EMEO"):
618  result = ComponentAccumulator()
619  from MuonConfig.MuonTrackBuildingConfig import EMEO_MuonChamberHoleRecoveryToolCfg
620  chamber_recovery = result.popToolsAndMerge(
622  trk_builder = result.popToolsAndMerge(
624  from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg
625  muon_combined_track_summary = result.popToolsAndMerge(
627  tool = result.popToolsAndMerge(MuonSegmentRegionRecoveryToolCfg(flags,
628  name=name,
629  ChamberHoleRecoveryTool=chamber_recovery,
630  Builder=trk_builder,
631  TrackSummaryTool=muon_combined_track_summary,
632  STGCRegionSelector="",
633  MMRegionSelector="",
634  RecoverMM=False,
635  RecoverSTGC=False))
636  result.setPrivateTools(tool)
637  return result
638 
639 
640 def EMEO_CombinedMuonTrackBuilderCfg(flags, name="MuonCombinedTrackBuilder_EMEO"):
641  result = ComponentAccumulator()
642  recovery_tool = result.popToolsAndMerge(
644  acc = CombinedMuonTrackBuilderCfg(flags, name,
645  MuonRotCreator="",
646  MuonHoleRecovery=recovery_tool)
647  # Need to reset this to be the primary tool
648  tool = result.popToolsAndMerge(acc)
649  result.setPrivateTools(tool)
650  return result
651 
652 
653 def MuidErrorOptimisationToolCfg(flags, name='MuidErrorOptimisationTool', **kwargs):
654  from MuonConfig.MuonRecToolsConfig import MuonTrackSummaryHelperToolCfg, MuonRefitToolCfg
655  result = ComponentAccumulator()
656  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
658  useAlignErrs = True
659  if flags.IOVDb.DatabaseInstance == 'COMP200' or \
660  'HLT' in flags.IOVDb.GlobalTag or flags.Common.isOnline or flags.Muon.MuonTrigger:
661  useAlignErrs = False
662  kwargs.setdefault("RefitTool", result.popToolsAndMerge(MuonRefitToolCfg(
663  flags, name="MuidRefitTool", AlignmentErrors=useAlignErrs,
664  Fitter=result.popToolsAndMerge(iPatFitterCfg(flags)))))
665  tool = CompFactory.Muon.MuonErrorOptimisationTool(name, **kwargs)
666  result.setPrivateTools(tool)
667  return result
668 
669 
670 def MuonAlignmentUncertToolThetaCfg(flags, name="MuonAlignmentUncertToolTheta", **kwargs):
671  result = ComponentAccumulator()
672  from MuonConfig.MuonGeometryConfig import TrackingVolumesSvcCfg
673  kwargs.setdefault("TrackingVolumesSvc", result.getPrimaryAndMerge(TrackingVolumesSvcCfg(flags)))
674  kwargs.setdefault("HistoName", "ThetaScattering")
675  kwargs.setdefault(
676  "InFile", "MuonCombinedBaseTools/AlignmentUncertainties/201029_initial/ID_MS_Uncertainties.root")
677  tool = CompFactory.Muon.MuonAlignmentUncertTool(name, **kwargs)
678  result.addPublicTool(tool)
679  return result
680 
681 
682 def MuonAlignmentUncertToolPhiCfg(flags, name="MuonAlignmentUncertToolPhi", **kwargs):
683  result = ComponentAccumulator()
684  kwargs.setdefault("HistoName", "PhiScattering")
685  from MuonConfig.MuonGeometryConfig import TrackingVolumesSvcCfg
686  kwargs.setdefault("TrackingVolumesSvc", result.getPrimaryAndMerge(TrackingVolumesSvcCfg(flags)))
687  kwargs.setdefault(
688  "InFile", "MuonCombinedBaseTools/AlignmentUncertainties/201029_initial/ID_MS_Uncertainties.root")
689  tool = CompFactory.Muon.MuonAlignmentUncertTool(name, **kwargs)
690  result.addPublicTool(tool)
691  return result
692 
693 
694 @AccumulatorCache
695 def CombinedMuonTrackBuilderCfg(flags, name='CombinedMuonTrackBuilder', **kwargs):
696  from AthenaCommon.SystemOfUnits import meter
697  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import CscClusterOnTrackCreatorCfg, MdtDriftCircleOnTrackCreatorCfg, MuonClusterOnTrackCreatorCfg
698  from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg
699 
700  result = ComponentAccumulator()
701 
702  from MuonConfig.MuonGeometryConfig import TrackingVolumesSvcCfg
703  kwargs.setdefault("TrackingVolumesSvc", result.getPrimaryAndMerge(TrackingVolumesSvcCfg(flags)))
704 
705  kwargs.setdefault("CaloEnergyParam", result.popToolsAndMerge(
707  kwargs.setdefault("CaloTSOS", result.popToolsAndMerge(
709  kwargs.setdefault("Cleaner", result.popToolsAndMerge(
710  MuidTrackCleanerCfg(flags)))
711  result.merge(MuonAlignmentUncertToolPhiCfg(flags))
712  kwargs.setdefault("AlignmentUncertToolPhi",
713  result.getPublicTool('MuonAlignmentUncertToolPhi'))
714  result.merge(MuonAlignmentUncertToolThetaCfg(flags))
715  kwargs.setdefault("AlignmentUncertToolTheta",
716  result.getPublicTool('MuonAlignmentUncertToolTheta'))
717 
718  if flags.Detector.GeometryCSC and not flags.Muon.MuonTrigger:
719  kwargs.setdefault("CscRotCreator", result.popToolsAndMerge(
721  else:
722  kwargs.setdefault("CscRotCreator", "")
723 
724  kwargs.setdefault("Extrapolator", result.popToolsAndMerge(
725  AtlasExtrapolatorCfg(flags)))
726  kwargs.setdefault(
727  "Fitter", result.popToolsAndMerge(iPatFitterCfg(flags)))
728  kwargs.setdefault(
729  "SLFitter", result.popToolsAndMerge(iPatSLFitterCfg(flags)))
730  kwargs.setdefault("MaterialAllocator", result.popToolsAndMerge(
731  MuidMaterialAllocatorCfg(flags)))
732  kwargs.setdefault("MdtRotCreator", result.popToolsAndMerge(
734  kwargs.setdefault("MuonRotCreator", result.popToolsAndMerge(
736 
737  # Tracking Geometry
738  from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import (
739  TrackingGeometryCondAlgCfg)
740 
741  geom_cond_key = result.getPrimaryAndMerge(
742  TrackingGeometryCondAlgCfg(flags)).TrackingGeometryWriteKey
743  kwargs.setdefault("TrackingGeometryReadKey", geom_cond_key)
744 
745  kwargs.setdefault("CleanCombined", True)
746  kwargs.setdefault("CleanStandalone", True)
747  kwargs.setdefault("BadFitChi2", 2.5)
748  kwargs.setdefault("LargeMomentumError", 0.5)
749  kwargs.setdefault("LineMomentum", flags.Muon.straightLineFitMomentum)
750  kwargs.setdefault("LowMomentum", 10.*GeV)
751  kwargs.setdefault("MinEnergy", 0.3*GeV)
752  kwargs.setdefault("PerigeeAtSpectrometerEntrance", False)
753  kwargs.setdefault("ReallocateMaterial", False)
754  kwargs.setdefault("Vertex2DSigmaRPhi", 100.*mm)
755  kwargs.setdefault("Vertex3DSigmaRPhi", 6.*mm)
756  kwargs.setdefault("Vertex3DSigmaZ", 60.*mm)
757  kwargs.setdefault("UseCaloTG", True)
758 
759  kwargs.setdefault("CaloMaterialProvider", result.popToolsAndMerge(
761  kwargs.setdefault("TrackQuery", result.popToolsAndMerge(
762  MuonTrackQueryCfg(flags)))
763 
764  if flags.Muon.SAMuonTrigger:
765  from TrkConfig.TrkTrackSummaryToolConfig import MuonTrackSummaryToolCfg
766  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
767  MuonTrackSummaryToolCfg(flags)))
768  else:
769  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
771 
772  from TrkConfig.TrkExRungeKuttaPropagatorConfig import MuonCombinedPropagatorCfg, RungeKuttaPropagatorCfg
773  propagator = None
774  if flags.Muon.MuonTrigger:
775  propagator = result.popToolsAndMerge(RungeKuttaPropagatorCfg(flags))
776  else:
777  propagator = result.popToolsAndMerge(MuonCombinedPropagatorCfg(flags))
778  kwargs.setdefault("Propagator", propagator)
779  kwargs.setdefault("SLPropagator", propagator)
780  kwargs.setdefault("Printer", result.getPrimaryAndMerge(
781  MuonEDMPrinterToolCfg(flags)))
782 
783  if flags.Beam.Type is BeamType.Cosmics:
784  kwargs.setdefault("MdtRotCreator", "")
785  kwargs.setdefault("MuonRotCreator", "")
786  kwargs.setdefault("LowMomentum", 1.5*GeV)
787  kwargs.setdefault("ReallocateMaterial", False)
788  kwargs.setdefault("Vertex2DSigmaRPhi", 100.*mm)
789  kwargs.setdefault("Vertex3DSigmaRPhi", 100.*mm)
790  kwargs.setdefault("Vertex3DSigmaZ", 1.*meter)
791 
792  # configure tools for data reprocessing
793  if flags.Muon.enableErrorTuning and 'MuonErrorOptimizer' not in kwargs:
794  erroropt = result.popToolsAndMerge(MuidErrorOptimisationToolCfg(
795  flags, name="MuidErrorOptimisationTool", PrepareForFit=False, RecreateStartingParameters=False))
796  kwargs.setdefault("MuonErrorOptimizer", erroropt)
797  else:
798  kwargs.setdefault("MuonErrorOptimizer", "")
799 
800  if flags.Muon.MuonTrigger:
801  kwargs.setdefault("MuonHoleRecovery", "")
802  else:
803  if "MuonHoleRecovery" not in kwargs:
804  # Meeded to resolve circular dependency since MuonSegmentRegionRecoveryToolCfg calls CombinedMuonTrackBuilderCfg (i.e. this)!
805  muon_combined_track_summary = result.popToolsAndMerge(
808  flags, name="MuidSegmentRegionRecoveryTool", TrackSummaryTool=muon_combined_track_summary)
809  kwargs.setdefault("MuonHoleRecovery", acc.popPrivateTools())
810  result.merge(acc)
811 
812  if flags.Muon.doSegmentT0Fit:
813  kwargs.setdefault("MdtRotCreator", "")
814  tool = CompFactory.Rec.CombinedMuonTrackBuilder(name, **kwargs)
815  result.setPrivateTools(tool)
816  return result
817 
818 
819 def CombinedMuonTrackBuilderFitCfg(flags, name='CombinedMuonTrackBuilderFit', **kwargs):
820  # In the old configuration we had duplication between CombinedMuonTrackBuilder and CombinedMuonTrackBuilderFit
821  # Here we just call the Combined
822  from MuonConfig.MuonTrackBuildingConfig import MuonChamberHoleRecoveryToolCfg
823  result = ComponentAccumulator()
824  kwargs.setdefault("PerigeeAtSpectrometerEntrance", True)
825  kwargs.setdefault("UseCaloTG", False)
826  if flags.Muon.MuonTrigger:
827  kwargs.setdefault("MuonErrorOptimizer", "")
828  else:
829  kwargs.setdefault("MuonErrorOptimizer", result.popToolsAndMerge(
830  MuidErrorOptimisationToolCfg(flags, PrepareForFit=False, RecreateStartingParameters=False)))
831  kwargs.setdefault("MuonHoleRecovery", result.popToolsAndMerge(
833 
834  tool = result.popToolsAndMerge(CombinedMuonTrackBuilderCfg(
835  flags, name, **kwargs)) # Need to reset this to be the primary tool
836  result.setPrivateTools(tool)
837  return result
838 
839 
840 def EMEO_CombinedTrackBuilderFitCfg(flags, name="CombinedTrackBuilderFit_EMEO", **kwargs):
841  result = ComponentAccumulator()
842  from MuonConfig.MuonTrackBuildingConfig import EMEO_MuonChamberHoleRecoveryToolCfg
843  if not flags.Muon.MuonTrigger:
844  trk_builder = result.popToolsAndMerge(
846  kwargs.setdefault("MuonHoleRecovery", trk_builder)
847  else:
848  kwargs.setdefault("MuonHoleRecovery", "")
849  kwargs.setdefault("MuonRotCreator", "")
850  tool = result.popToolsAndMerge(CombinedMuonTrackBuilderFitCfg(
851  flags, name, **kwargs)) # Need to reset this to be the primary tool
852  result.setPrivateTools(tool)
853  return result
854 
855 
856 def MuonMatchQualityCfg(flags, name='MuonMatchQuality', **kwargs):
857  result = CombinedMuonTagTestToolCfg(flags)
858  kwargs.setdefault("TagTool", result.popPrivateTools())
859  kwargs.setdefault("TrackQuery", result.popToolsAndMerge(
860  MuonTrackQueryCfg(flags)))
861 
862  tool = CompFactory.Rec.MuonMatchQuality(name, **kwargs)
863  result.setPrivateTools(tool)
864  return result
865 
866 
867 def MuidMuonRecoveryCfg(flags, name='MuidMuonRecovery', **kwargs):
868  result = AtlasExtrapolatorCfg(flags)
869  kwargs.setdefault("Extrapolator", result.popPrivateTools())
870  kwargs.setdefault("TrackBuilder", result.popToolsAndMerge(
872 
873  if "ResidualPullCalculator" not in kwargs:
874  from TrkConfig.TrkResidualPullCalculatorConfig import (
875  ResidualPullCalculatorCfg)
876  kwargs.setdefault("ResidualPullCalculator", result.popToolsAndMerge(
878 
879  tool = CompFactory.Rec.MuidMuonRecovery(name, **kwargs)
880  result.setPrivateTools(tool)
881  return result
882 
883 
884 def CombinedMuonTagTestToolCfg(flags, name='CombinedMuonTagTestTool', **kwargs):
885  result = AtlasExtrapolatorCfg(flags)
886  kwargs.setdefault("ExtrapolatorTool", result.popPrivateTools())
887  kwargs.setdefault("Chi2Cut", 50000.)
888  from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import TrackingGeometryCondAlgCfg
889  result.merge(TrackingGeometryCondAlgCfg(flags))
890  kwargs.setdefault("TrackingGeometryReadKey", "AtlasTrackingGeometry")
891  tool = CompFactory.MuonCombined.MuonTrackTagTestTool(name, **kwargs)
892  result.setPrivateTools(tool)
893  return result
894 
895 # From MuonCaloTagTool.py
896 
897 
898 def TrackDepositInCaloToolCfg(flags, name='TrackDepositInCaloTool', **kwargs):
899  from TrackToCalo.TrackToCaloConfig import ParticleCaloExtensionToolCfg, ParticleCaloCellAssociationToolCfg
900  result = ComponentAccumulator()
901  kwargs.setdefault("ParticleCaloExtensionTool",
902  result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags)))
903  kwargs.setdefault("ExtrapolatorHandle", result.popToolsAndMerge(
904  AtlasExtrapolatorCfg(flags)))
905  kwargs.setdefault("ParticleCaloCellAssociationTool",
906  result.popToolsAndMerge(ParticleCaloCellAssociationToolCfg(flags, name="Rec::ParticleCaloCellAssociationTool")))
907  tool = CompFactory.TrackDepositInCaloTool(name, **kwargs)
908  result.setPrivateTools(tool)
909  return result
910 
911 
912 def CaloMuonLikelihoodToolCfg(flags, name='CaloMuonLikelihoodTool', **kwargs):
913  from TrackToCalo.TrackToCaloConfig import ParticleCaloExtensionToolCfg
914  result = ComponentAccumulator()
915  kwargs.setdefault("ParticleCaloExtensionTool",
916  result.popToolsAndMerge(ParticleCaloExtensionToolCfg(flags)))
917  tool = CompFactory.CaloMuonLikelihoodTool(name, **kwargs)
918  result.setPrivateTools(tool)
919  return result
920 
921 
922 def CaloMuonScoreToolCfg(flags, name='CaloMuonScoreTool', **kwargs):
923  from TrackToCalo.TrackToCaloConfig import ParticleCaloCellAssociationToolCfg
924  result = ComponentAccumulator()
925  kwargs.setdefault("ParticleCaloCellAssociationTool",
926  result.popToolsAndMerge(ParticleCaloCellAssociationToolCfg(flags)))
927  tool = CompFactory.CaloMuonScoreTool(name, **kwargs)
928  result.setPrivateTools(tool)
929  return result
930 
931 
932 def CaloMuonTagCfg(flags, name="CaloMuonTag", **kwargs):
933  result = ComponentAccumulator()
934  the_tool = CompFactory.CaloMuonTag(name, **kwargs)
935  result.setPrivateTools(the_tool)
936  return result
937 
938 
939 def MuonCaloTagToolCfg(flags, name='MuonCaloTagTool', **kwargs):
940  result = ComponentAccumulator()
941  kwargs.setdefault("CaloMuonTagLoose",
942  result.popToolsAndMerge(CaloMuonTagCfg(flags, name="CaloMuonTagLoose", TagMode="Loose")))
943  kwargs.setdefault("CaloMuonTagTight",
944  result.popToolsAndMerge(CaloMuonTagCfg(flags)))
945  kwargs.setdefault("CaloMuonLikelihoodTool",
946  result.popToolsAndMerge(CaloMuonLikelihoodToolCfg(flags)))
947  kwargs.setdefault("CaloMuonScoreTool",
948  result.popToolsAndMerge(CaloMuonScoreToolCfg(flags)))
949  kwargs.setdefault("TrackDepositInCaloTool",
950  result.popToolsAndMerge(TrackDepositInCaloToolCfg(flags)))
951  from InDetConfig.InDetTrackSelectorToolConfig import CaloTrkMuIdAlgTrackSelectorToolCfg
952  kwargs.setdefault("TrackSelectorTool",
953  result.popToolsAndMerge(CaloTrkMuIdAlgTrackSelectorToolCfg(flags)))
954  kwargs.setdefault("doCaloLR", False)
955  the_tool = CompFactory.MuonCombined.MuonCaloTagTool(name, **kwargs)
956  result.setPrivateTools(the_tool)
957  return result
958 
959 # Misc
960 
961 
962 def MuonLayerSegmentFinderToolCfg(flags, name="MuonLayerSegmentFinderTool", **kwargs):
963  from MuonConfig.MuonSegmentFindingConfig import DCMathSegmentMakerCfg, MuonNSWSegmentFinderToolCfg, MuonPRDSelectionToolCfg
964  result = ComponentAccumulator()
965 
966  from MuonConfig.MuonSegmentFindingConfig import Csc2dSegmentMakerCfg, Csc4dSegmentMakerCfg
967  kwargs.setdefault("Csc2DSegmentMaker", result.popToolsAndMerge(
968  Csc2dSegmentMakerCfg(flags)) if flags.Detector.GeometryCSC else "")
969  kwargs.setdefault("Csc4DSegmentMaker", result.popToolsAndMerge(
970  Csc4dSegmentMakerCfg(flags)) if flags.Detector.GeometryCSC else "")
971 
972  kwargs.setdefault("MuonPRDSelectionTool", result.popToolsAndMerge(
973  MuonPRDSelectionToolCfg(flags)))
974  kwargs.setdefault("SegmentMaker", result.popToolsAndMerge(
975  DCMathSegmentMakerCfg(flags, name="DCMathSegmentMaker")))
976  kwargs.setdefault("NSWMuonClusterSegmentFinderTool",
977  result.popToolsAndMerge(MuonNSWSegmentFinderToolCfg(flags, name="MuonNSWSegmentFinderTool")))
978 
979 
980  from AthenaConfiguration.Enums import LHCPeriod
981  if flags.GeoModel.Run < LHCPeriod.Run3 or flags.Muon.MuonTrigger:
982  kwargs.setdefault("InSegmentContainer", "")
983  kwargs.setdefault("MuonLayerSegmentMatchingTool", "")
984  else:
985  kwargs.setdefault("MuonLayerSegmentMatchingTool", result.popToolsAndMerge(
987  tool = CompFactory.Muon.MuonLayerSegmentFinderTool(name, **kwargs)
988  result.setPrivateTools(tool)
989  return result
990 
991 
992 def MuonLayerSegmentMatchingToolCfg(flags, name="MuonLayerSegmentMatchingTool", **kwargs):
993  result = AtlasExtrapolatorCfg(flags)
994  kwargs.setdefault("Extrapolator", result.popPrivateTools())
995  MuTagTool = result.getPrimaryAndMerge(MuTagMatchingToolCfg(flags))
996  kwargs.setdefault("MatchTool", MuTagTool)
997 
998  tool = CompFactory.Muon.MuonLayerSegmentMatchingTool(name, **kwargs)
999  result.setPrivateTools(tool)
1000  return result
1001 
1002 
1003 def MuonInsideOutRecoToolCfg(flags, name="MuonInsideOutRecoTool", **kwargs):
1004  from MuonConfig.MuonRecToolsConfig import MuonAmbiProcessorCfg
1005  if flags.Muon.MuonTrigger:
1006  kwargs.setdefault("VertexContainer", "")
1007 
1008  result = MuonEDMPrinterToolCfg(flags)
1009  kwargs.setdefault("MuonEDMPrinterTool", result.popPrivateTools())
1010 
1011  layersegmentfindertool = result.popToolsAndMerge(
1012  MuonLayerSegmentFinderToolCfg(flags, name="MuonLayerSegmentFinderTool"))
1013  kwargs.setdefault("MuonLayerSegmentFinderTool", layersegmentfindertool)
1014  kwargs.setdefault("MuonLayerSegmentMatchingTool", result.popToolsAndMerge(
1016  kwargs.setdefault("MuonLayerAmbiguitySolverTool", result.popToolsAndMerge(
1018  kwargs.setdefault("MuonCandidateTrackBuilderTool", result.popToolsAndMerge(
1020  from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg
1021  kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(
1023  kwargs.setdefault("MuonTrackBuilder", result.popToolsAndMerge(
1025  kwargs.setdefault("TrackAmbiguityProcessor",
1026  result.popToolsAndMerge(MuonAmbiProcessorCfg(flags)))
1027 
1028  tool = CompFactory.MuonCombined.MuonInsideOutRecoTool(name, **kwargs)
1029  result.setPrivateTools(tool)
1030  return result
1031 
1032 
1033 def MuonCandidateTrackBuilderToolCfg(flags, name="MuonCandidateTrackBuilderTool", **kwargs):
1034  result = CombinedMuonTrackBuilderCfg(flags)
1035  kwargs.setdefault("MuonTrackBuilder", result.popPrivateTools())
1036  muoncandidatetrackbuilder = CompFactory.Muon.MuonCandidateTrackBuilderTool(
1037  name, **kwargs)
1038  result.setPrivateTools(muoncandidatetrackbuilder)
1039  return result
1040 
1041 
1042 def MuonSegmentSelectionToolCfg(flags, name="MuonSegmentSelectionTool", **kwargs):
1043  if flags.Input.isMC is False:
1044  kwargs.setdefault("GoodADCFractionCut", 0.5)
1045  kwargs.setdefault("MinADCPerSegmentCut", 100)
1046  result = ComponentAccumulator()
1047  kwargs.setdefault("Printer", result.getPrimaryAndMerge(
1048  MuonEDMPrinterToolCfg(flags)))
1049  muon_segment_hit_summary_tool = result.popToolsAndMerge(
1051  kwargs.setdefault("MuonSegmentHitSummaryTool",
1052  muon_segment_hit_summary_tool)
1053  result.addPublicTool(muon_segment_hit_summary_tool)
1054 
1055  result.setPrivateTools(
1056  CompFactory.Muon.MuonSegmentSelectionTool(name, **kwargs))
1057  return result
1058 
1059 
1060 def MuonLayerAmbiguitySolverToolCfg(flags, name="MuonLayerAmbiguitySolverTool", **kwargs):
1061  from MuonConfig.MuonTrackBuildingConfig import MuonSegmentMatchingToolCfg, MooTrackBuilderCfg
1062  result = MuonSegmentSelectionToolCfg(flags)
1063  kwargs.setdefault("MuonSegmentSelectionTool", result.popPrivateTools())
1064  kwargs.setdefault("MuonSegmentMatchingTool", result.popToolsAndMerge(
1065  MuonSegmentMatchingToolCfg(flags, name='MuonSegmentMatchingToolTight', TightSegmentMatching=True)))
1066 
1067  kwargs.setdefault("MuonSegmentTrackBuilder",
1068  result.popToolsAndMerge(MooTrackBuilderCfg(flags, name='MooMuonTrackBuilder', prefix='MuSt_')))
1069  kwargs.setdefault("MuonEDMPrinterTool", result.getPrimaryAndMerge(
1070  MuonEDMPrinterToolCfg(flags)))
1071 
1072  result.setPrivateTools(
1073  CompFactory.Muon.MuonLayerAmbiguitySolverTool(name, **kwargs))
1074  return result
1075 
1076 
1077 def MdtDriftCircleOnTrackCreatorStauCfg(flags, name="MdtDriftCircleOnTrackCreatorStau", **kwargs):
1078  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MdtDriftCircleOnTrackCreatorCfg, MdtCalibWindowNumber, MdtCalibToolForRotsCfg
1079  result = ComponentAccumulator()
1080  kwargs.setdefault("TimingMode", 3)
1081  kwargs.setdefault("CalibrationTool", result.popToolsAndMerge(MdtCalibToolForRotsCfg(flags, TimeWindowSetting = MdtCalibWindowNumber('Collision_t0fit') )) )
1082  the_tool = result.popToolsAndMerge(MdtDriftCircleOnTrackCreatorCfg(flags, name, **kwargs))
1083  result.setPrivateTools(the_tool)
1084  return result
1085 
1086 
1087 def MuonStauRecoToolCfg(flags, name="MuonStauRecoTool", **kwargs):
1088  # In the old configuration this was split over several functions. But since these Stau tools are only used here,
1089  # trying a new approach. We can always refactorise later if necessary.
1090  from MuonConfig.MuonSegmentFindingConfig import DCMathSegmentMakerCfg, MuonPRDSelectionToolCfg
1091  from MuonConfig.MuonTrackBuildingConfig import MuonChamberHoleRecoveryToolCfg
1092  from MuonConfig.MuonRecToolsConfig import MuonAmbiProcessorCfg, MuonSeededSegmentFinderCfg
1093  from MuonConfig.MuonRIO_OnTrackCreatorToolConfig import MdtDriftCircleOnTrackCreatorCfg
1094  from MuonConfig.MuonSegmentFindingConfig import MuonLayerHoughAlgCfg
1095  kwargs.setdefault("DoSummary", flags.Muon.printSummary)
1096  kwargs.setdefault("ConsideredPDGs", [13, -13, 1000015, -1000015])
1097  kwargs.setdefault("DoTruth", flags.Input.isMC)
1098 
1099  result = ComponentAccumulator()
1100  result.merge(MuonLayerHoughAlgCfg(flags))
1101  # Not setting up MuonIdHelperSvc nor MuonEDMHelperSvc
1102  kwargs.setdefault("MuonEDMPrinterTool", result.getPrimaryAndMerge(MuonEDMPrinterToolCfg(flags)))
1103  kwargs.setdefault("MuonPRDSelectionTool", result.popToolsAndMerge(MuonPRDSelectionToolCfg(flags)))
1104 
1105  # This is going to be used in a few tools below
1106  staurotcreator = result.popToolsAndMerge(MdtDriftCircleOnTrackCreatorStauCfg(flags))
1107  kwargs.setdefault("MuonPRDSelectionToolStau",
1108  result.popToolsAndMerge(MuonPRDSelectionToolCfg(flags,
1109  "MuonPRDSelectionToolStau",
1110  MdtDriftCircleOnTrackCreator=staurotcreator)))
1111 
1112  segmentmaker = result.popToolsAndMerge(DCMathSegmentMakerCfg(
1113  flags, name="DCMathStauSegmentMaker", MdtCreator=staurotcreator))
1114  # segmentmaker also used by MuonSeededSegmentFinder below
1115  kwargs.setdefault("MuonSegmentMaker", segmentmaker)
1116  kwargs.setdefault("MuonSegmentMakerT0Fit", result.popToolsAndMerge(DCMathSegmentMakerCfg(
1117  flags, name="DCMathT0FitSegmentMaker", doSegmentT0Fit=True)))
1118  # ^ doSegmentT0Fit overrides several defaults, including MdtCreatorT0 and MdtSegmentFinder
1119 
1120  kwargs.setdefault("MuonLayerSegmentMatchingTool", result.popToolsAndMerge(
1122 
1123  # Not configuring MuonRecoValidationTool as it is off by default, but it would need configuring if used
1124  kwargs.setdefault("TrackAmbiguityProcessor",
1125  result.popToolsAndMerge(MuonAmbiProcessorCfg(flags)))
1126  # I don't believe MuonHitTimingTool needs configuration.
1127  kwargs.setdefault("MuonPRDSelectionTool", result.popToolsAndMerge(
1128  MuonPRDSelectionToolCfg(flags)))
1129  kwargs.setdefault("MuonPRDSelectionToolStau", result.popToolsAndMerge(
1130  MuonPRDSelectionToolCfg(flags, MdtDriftCircleOnTrackCreator=staurotcreator)))
1131  kwargs.setdefault("MdtDriftCircleOnTrackCreator", result.popToolsAndMerge(
1133  kwargs.setdefault("MdtDriftCircleOnTrackCreatorStau", staurotcreator)
1134  # Now setup MuonInsideOutRecoTool property of MuonStauRecoTool. Long chain here! Could split for clarity. Another option would be to have a Stau flag on
1135  # shared tool functions.
1136  chamberholerecoverytool = result.popToolsAndMerge(MuonChamberHoleRecoveryToolCfg(flags,
1137  sTgcPrepDataContainer="",
1138  MMPrepDataContainer=""))
1139  seededsegmentfinder = result.popToolsAndMerge(MuonSeededSegmentFinderCfg(flags, name="MuonStauSeededSegmentFinder", MdtRotCreator=staurotcreator,
1140  SegmentMaker=segmentmaker, SegmentMakerNoHoles=segmentmaker))
1141  fitter = result.popToolsAndMerge(CombinedMuonTrackBuilderFitCfg(
1142  flags, name="CombinedStauTrackBuilderFit", MdtRotCreator=staurotcreator))
1143  from TrkConfig.TrkTrackSummaryToolConfig import MuonCombinedTrackSummaryToolCfg
1144  muon_combined_track_summary = result.popToolsAndMerge(
1146  muidsegmentregionrecovery = result.popToolsAndMerge(MuonSegmentRegionRecoveryToolCfg(flags, name="MuonStauSegmentRegionRecoveryTool", SeededSegmentFinder=seededsegmentfinder,
1147  RecoverMM=False, RecoverSTGC=False, MMRegionSelector="", STGCRegionSelector="",
1148  ChamberHoleRecoveryTool=chamberholerecoverytool, Fitter=fitter, TrackSummaryTool=muon_combined_track_summary))
1149  trackbuilder = result.popToolsAndMerge(CombinedMuonTrackBuilderCfg(
1150  flags, name="CombinedStauTrackBuilder", MdtRotCreator=staurotcreator, MuonHoleRecovery=muidsegmentregionrecovery))
1151  muoncandidatetrackbuilder = CompFactory.Muon.MuonCandidateTrackBuilderTool(
1152  name="MuonStauCandidateTrackBuilderTool", MuonTrackBuilder=trackbuilder)
1153  kwargs.setdefault("MuonInsideOutRecoTool", result.popToolsAndMerge(
1154  MuonInsideOutRecoToolCfg(flags, name='MuonStauInsideOutRecoTool', MuonCandidateTrackBuilderTool=muoncandidatetrackbuilder)))
1155  # Rest
1156 
1157  tool = CompFactory.MuonCombined.MuonStauRecoTool(name, **kwargs)
1158  result.setPrivateTools(tool)
1159  return result
1160 
1161 
1162 def MuonSystemExtensionToolCfg(flags, **kwargs):
1163  result = ComponentAccumulator()
1164 
1165  from TrackToCalo.TrackToCaloConfig import ParticleCaloExtensionToolCfg
1166  particle_calo_extension_tool = result.popToolsAndMerge(
1167  ParticleCaloExtensionToolCfg(flags, name='MuonParticleCaloExtensionTool'))
1168 
1169  atlas_extrapolator = result.popToolsAndMerge(AtlasExtrapolatorCfg(flags))
1170 
1171  muon_ext_tool = CompFactory.Muon.MuonSystemExtensionTool("MuonSystemExtensionTool",
1172  ParticleCaloExtensionTool=particle_calo_extension_tool,
1173  Extrapolator=atlas_extrapolator)
1174  result.setPrivateTools(muon_ext_tool)
1175  return result
1176 
1177 
1178 def MuTagMatchingToolCfg(flags, name='MuTagMatchingTool', **kwargs):
1179  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
1180  from TrkConfig.TrkExRungeKuttaPropagatorConfig import RungeKuttaPropagatorCfg
1181 
1182  #TODO: defaults in cxx
1183  kwargs.setdefault("AssumeLocalErrors", True)
1184  kwargs.setdefault("PhiCut", 30.)
1185  kwargs.setdefault("GlobalPhiCut", 1.)
1186  kwargs.setdefault("ThetaCut", 5.)
1187  kwargs.setdefault("GlobalThetaCut", 0.5)
1188  kwargs.setdefault("ThetaAngleCut", 5.)
1189  kwargs.setdefault("DoDistanceCut", True)
1190  kwargs.setdefault("CombinedPullCut", 3.0)
1191 
1192  result = AtlasExtrapolatorCfg(flags)
1193  kwargs.setdefault("IExtrapolator", result.popPrivateTools())
1194  kwargs.setdefault("Propagator", result.popToolsAndMerge(
1195  RungeKuttaPropagatorCfg(flags)))
1196  kwargs.setdefault("Printer", result.getPrimaryAndMerge(
1197  MuonEDMPrinterToolCfg(flags)))
1198  kwargs.setdefault("MuonSegmentHitSummary", result.popToolsAndMerge(
1200  kwargs.setdefault("MuonSegmentSelection", result.popToolsAndMerge(
1202 
1203  if "ResidualPullCalculator" not in kwargs:
1204  from TrkConfig.TrkResidualPullCalculatorConfig import (
1205  ResidualPullCalculatorCfg)
1206  kwargs.setdefault("ResidualPullCalculator", result.popToolsAndMerge(
1207  ResidualPullCalculatorCfg(flags)))
1208 
1209  from TrackingGeometryCondAlg.AtlasTrackingGeometryCondAlgConfig import (
1210  TrackingGeometryCondAlgCfg)
1211  acc = TrackingGeometryCondAlgCfg(flags)
1212  geom_cond_key = acc.getPrimary().TrackingGeometryWriteKey
1213  result.merge(acc)
1214  kwargs.setdefault("TrackingGeometryReadKey", geom_cond_key)
1215 
1216  tool = CompFactory.MuTagMatchingTool(name, **kwargs)
1217 
1218  result.addPublicTool(tool, primary=True)
1219  return result
1220 
1221 
1222 def MuTagAmbiguitySolverToolCfg(flags, name='MuTagAmbiguitySolverTool', **kwargs):
1223  from MuonConfig.MuonTrackBuildingConfig import MuonSegmentMatchingToolCfg
1224  #TODO: defaults in cxx
1225  kwargs.setdefault("RejectOuterEndcap", True)
1226  kwargs.setdefault("RejectMatchPhi", True)
1227  result = MuonEDMPrinterToolCfg(flags)
1228  kwargs.setdefault("Printer", result.popPrivateTools())
1229  kwargs.setdefault("MuonSegmentMatchingTool", result.popToolsAndMerge(
1230  MuonSegmentMatchingToolCfg(flags, name='MuonSegmentMatchingTool', doPhiMatching=False)))
1231  # EJWM. Not sure where doPhiMatching is set to False in old, but this is what I see in configuration diffs
1232 
1233  tool = CompFactory.MuTagAmbiguitySolverTool(name, **kwargs)
1234  result.addPublicTool(tool, primary=True)
1235  return result
1236 
1237 
1238 def MuonSegmentTagToolCfg(flags, name="MuonSegmentTagTool", **kwargs):
1239  result = ComponentAccumulator()
1240  mu_tag_matching = result.getPrimaryAndMerge(MuTagMatchingToolCfg(flags))
1241  kwargs.setdefault("MuTagMatchingTool", mu_tag_matching)
1242 
1243  kwargs.setdefault("Printer", result.getPrimaryAndMerge(
1244  MuonEDMPrinterToolCfg(flags)))
1245  kwargs.setdefault("MuTagAmbiguitySolverTool", result.getPrimaryAndMerge(
1247  kwargs.setdefault("MuonSegmentSelectionTool", result.getPrimaryAndMerge(
1249  kwargs.setdefault("MuonSegmentHitSummaryTool", result.getPrimaryAndMerge(
1251 
1252  result.setPrivateTools(
1253  CompFactory.MuonCombined.MuonSegmentTagTool(name, **kwargs))
1254  return result
python.MuonRecToolsConfig.MuonAmbiProcessorCfg
def MuonAmbiProcessorCfg(flags, name="MuonAmbiProcessor", **kwargs)
Definition: MuonRecToolsConfig.py:135
python.MuonCombinedRecToolsConfig.MuidTrackCleanerCfg
def MuidTrackCleanerCfg(flags, name='MuidTrackCleaner', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:445
python.MuonCombinedRecToolsConfig.CombinedMuonTagTestToolCfg
def CombinedMuonTagTestToolCfg(flags, name='CombinedMuonTagTestTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:884
SystemOfUnits
python.MuonRecToolsConfig.MuonTrackSummaryHelperToolCfg
def MuonTrackSummaryHelperToolCfg(flags, name="MuonTrackSummaryHelperTool", **kwargs)
Definition: MuonRecToolsConfig.py:114
python.MuonTrackBuildingConfig.MooTrackBuilderCfg
def MooTrackBuilderCfg(flags, name="MooTrackBuilderTemplate", prefix="", doSegmentPhiMatching=True, **kwargs)
Definition: MuonTrackBuildingConfig.py:68
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.AtlasExtrapolatorToolsConfig.AtlasEnergyLossUpdatorCfg
def AtlasEnergyLossUpdatorCfg(flags, name='AtlasEnergyLossUpdator', **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:12
MuidCaloEnergyParam
python.MuonCombinedRecToolsConfig.ExtrapolateMuonToIPToolCfg
def ExtrapolateMuonToIPToolCfg(flags, name="ExtrapolateMuonToIPTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:201
python.MuonRecToolsConfig.MuonSeededSegmentFinderCfg
def MuonSeededSegmentFinderCfg(flags, name="MuonSeededSegmentFinder", **kwargs)
Definition: MuonRecToolsConfig.py:62
python.MuonCombinedRecToolsConfig.MuonTrackQueryCfg
def MuonTrackQueryCfg(flags, name="MuonTrackQuery", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:600
python.MuonCombinedRecToolsConfig.MuonAlignmentUncertToolPhiCfg
def MuonAlignmentUncertToolPhiCfg(flags, name="MuonAlignmentUncertToolPhi", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:682
python.MuonCombinedRecToolsConfig.MuonDressingToolCfg
def MuonDressingToolCfg(flags, name="MuonDressingTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:129
python.InDetTrackSelectorToolConfig.MuonCombinedInDetDetailedTrackSelectorToolCfg
def MuonCombinedInDetDetailedTrackSelectorToolCfg(flags, name="MuonCombinedInDetDetailedTrackSelectorTool", **kwargs)
Definition: InDetTrackSelectorToolConfig.py:125
python.MuonCombinedRecToolsConfig.MuidCaloEnergyToolParamCfg
def MuidCaloEnergyToolParamCfg(flags, name='MuidCaloEnergyToolParam', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:496
python.MuonCombinedRecToolsConfig.MuonLayerSegmentMatchingToolCfg
def MuonLayerSegmentMatchingToolCfg(flags, name="MuonLayerSegmentMatchingTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:992
python.MuonRIO_OnTrackCreatorToolConfig.MdtCalibWindowNumber
def MdtCalibWindowNumber(name)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:19
python.MuonRecToolsConfig.MuonTrackScoringToolCfg
def MuonTrackScoringToolCfg(flags, name="MuonTrackScoringTool", **kwargs)
Definition: MuonRecToolsConfig.py:123
python.MuonCombinedRecToolsConfig.EMEO_MuonCombinedFitTagToolCfg
def EMEO_MuonCombinedFitTagToolCfg(flags, name="MuonCombinedFitTagTool_EMEO", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:326
python.MuonCombinedRecToolsConfig.MuonMaterialProviderToolCfg
def MuonMaterialProviderToolCfg(flags, name="MuonTrkMaterialProviderTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:58
AtlasTrackingGeometryCondAlgConfig.TrackingGeometryCondAlgCfg
def TrackingGeometryCondAlgCfg(flags, name='AtlasTrackingGeometryCondAlg', doMaterialValidation=False, **kwargs)
Definition: AtlasTrackingGeometryCondAlgConfig.py:128
python.MuonCombinedRecToolsConfig.MuonCreatorToolCfg
def MuonCreatorToolCfg(flags, name="MuonCreatorTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:139
python.MuonCombinedRecToolsConfig.iPatFitterCfg
def iPatFitterCfg(flags, name='iPatFitter', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:404
python.MuonCombinedRecToolsConfig.MuonCandidateToolCfg
def MuonCandidateToolCfg(flags, name="MuonCandidateTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:222
python.MuonRecToolsConfig.MuonEDMPrinterToolCfg
def MuonEDMPrinterToolCfg(flags, name="MuonEDMPrinterTool", **kwargs)
Definition: MuonRecToolsConfig.py:10
python.TrkTrackSummaryToolConfig.MuonTrackSummaryToolCfg
def MuonTrackSummaryToolCfg(flags, name="MuonTrackSummaryTool", **kwargs)
Definition: TrkTrackSummaryToolConfig.py:143
python.MuonCombinedRecToolsConfig.MuidCaloEnergyToolCfg
def MuidCaloEnergyToolCfg(flags, name='MuidCaloEnergyTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:524
python.MuonSegmentFindingConfig.MuonNSWSegmentFinderToolCfg
def MuonNSWSegmentFinderToolCfg(flags, name='MuonNSWSegmentFinderTool', **kwargs)
Definition: MuonSegmentFindingConfig.py:362
python.MuonCombinedRecToolsConfig.MuonCombinedFitTagToolCfg
def MuonCombinedFitTagToolCfg(flags, name="MuonCombinedFitTagTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:301
python.MuonCombinedRecToolsConfig.MuonInDetForwardCandidateToolCfg
def MuonInDetForwardCandidateToolCfg(flags, name='InDetForwardCandidateTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:27
python.MuonCombinedRecToolsConfig.MuidCaloTrackStateOnSurfaceCfg
def MuidCaloTrackStateOnSurfaceCfg(flags, name='MuidCaloTrackStateOnSurface', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:545
python.MuonRecToolsConfig.MuonRefitToolCfg
def MuonRefitToolCfg(flags, name="MuonRefitTool", **kwargs)
Definition: MuonRecToolsConfig.py:270
python.TrkTrackSummaryToolConfig.MuonCombinedTrackSummaryToolCfg
def MuonCombinedTrackSummaryToolCfg(flags, name="CombinedMuonTrackSummary", **kwargs)
Definition: TrkTrackSummaryToolConfig.py:153
python.AtlasExtrapolatorToolsConfig.AtlasMultipleScatteringUpdatorCfg
def AtlasMultipleScatteringUpdatorCfg(flags, name="AtlasMultipleScatteringUpdator", **kwargs)
Definition: AtlasExtrapolatorToolsConfig.py:115
python.MuonCombinedRecToolsConfig.MuidMaterialAllocatorCfg
def MuidMaterialAllocatorCfg(flags, name='MuidMaterialAllocator', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:383
python.MuonCombinedRecToolsConfig.EMEO_CombinedTrackBuilderFitCfg
def EMEO_CombinedTrackBuilderFitCfg(flags, name="CombinedTrackBuilderFit_EMEO", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:840
python.MuonCombinedRecToolsConfig.InDetCandidateToolCfg
def InDetCandidateToolCfg(flags, name="InDetCandidateTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:18
python.MuonCombinedRecToolsConfig.MuonMatchQualityCfg
def MuonMatchQualityCfg(flags, name='MuonMatchQuality', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:856
python.AtlasExtrapolatorConfig.AtlasExtrapolatorCfg
def AtlasExtrapolatorCfg(flags, name='AtlasExtrapolator')
Definition: AtlasExtrapolatorConfig.py:63
python.TrkExRungeKuttaPropagatorConfig.RungeKuttaPropagatorCfg
def RungeKuttaPropagatorCfg(flags, name='AtlasRungeKuttaPropagator', **kwargs)
Definition: TrkExRungeKuttaPropagatorConfig.py:9
TrackToCaloConfig.ParticleCaloCellAssociationToolCfg
def ParticleCaloCellAssociationToolCfg(flags, name='ParticleCaloCellAssociationTool', **kwargs)
Definition: TrackToCaloConfig.py:72
python.MuonCombinedRecToolsConfig.MuidErrorOptimisationToolCfg
def MuidErrorOptimisationToolCfg(flags, name='MuidErrorOptimisationTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:653
python.MuonTrackBuildingConfig.MuonChamberHoleRecoveryToolCfg
def MuonChamberHoleRecoveryToolCfg(flags, name="MuonChamberHoleRecoveryTool", **kwargs)
Definition: MuonTrackBuildingConfig.py:326
python.MuonCombinedRecToolsConfig.CaloMuonTagCfg
def CaloMuonTagCfg(flags, name="CaloMuonTag", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:932
python.MuonCombinedRecToolsConfig.CombinedMuonTrackBuilderCfg
def CombinedMuonTrackBuilderCfg(flags, name='CombinedMuonTrackBuilder', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:695
python.MuonCombinedRecToolsConfig.CombinedMuonTrackBuilderFitCfg
def CombinedMuonTrackBuilderFitCfg(flags, name='CombinedMuonTrackBuilderFit', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:819
python.MuonGeometryConfig.TrackingVolumesSvcCfg
def TrackingVolumesSvcCfg(flags, name="TrackingVolumesSvc", **kwargs)
Definition: MuonGeometryConfig.py:10
python.MuonCombinedRecToolsConfig.MuTagAmbiguitySolverToolCfg
def MuTagAmbiguitySolverToolCfg(flags, name='MuTagAmbiguitySolverTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1222
python.MuonCombinedRecToolsConfig.MuonCombinedToolCfg
def MuonCombinedToolCfg(flags, name="MuonCombinedTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:272
python.MuonCombinedRecToolsConfig.MuonStauRecoToolCfg
def MuonStauRecoToolCfg(flags, name="MuonStauRecoTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1087
python.TrkParticleCreatorConfig.MuonCaloParticleCreatorCfg
def MuonCaloParticleCreatorCfg(flags, name="MuonCaloParticleCreator", **kwargs)
Definition: TrkParticleCreatorConfig.py:376
python.MuonCombinedRecToolsConfig.MuonCaloEnergyToolCfg
def MuonCaloEnergyToolCfg(flags, name="MuonCaloEnergyTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:37
python.TrkExSTEP_PropagatorConfig.AtlasSTEP_PropagatorCfg
def AtlasSTEP_PropagatorCfg(flags, name='AtlasSTEP_Propagator', **kwargs)
Definition: TrkExSTEP_PropagatorConfig.py:16
python.MuonRIO_OnTrackCreatorToolConfig.CscClusterOnTrackCreatorCfg
def CscClusterOnTrackCreatorCfg(flags, name="CscClusterOnTrackCreator", **kwargs)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:34
python.MuonCombinedRecToolsConfig.MuidTrackIsolationCfg
def MuidTrackIsolationCfg(flags, name='MuidTrackIsolation', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:513
python.MuonCombinedRecToolsConfig.MuidCaloEnergyParam
def MuidCaloEnergyParam(flags, name='MuidCaloEnergyParam', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:478
python.MuonCombinedRecToolsConfig.MuonAlignmentUncertToolThetaCfg
def MuonAlignmentUncertToolThetaCfg(flags, name="MuonAlignmentUncertToolTheta", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:670
python.MuonTrackBuildingConfig.EMEO_MuonChamberHoleRecoveryToolCfg
def EMEO_MuonChamberHoleRecoveryToolCfg(flags, name="MuonChamberRecovery_EMEO")
Definition: MuonTrackBuildingConfig.py:368
python.MuonCombinedRecToolsConfig.MuonSegmentTagToolCfg
def MuonSegmentTagToolCfg(flags, name="MuonSegmentTagTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1238
python.MuonSegmentFindingConfig.MuonLayerHoughAlgCfg
def MuonLayerHoughAlgCfg(flags, name="MuonLayerHoughAlg", **kwargs)
Definition: MuonSegmentFindingConfig.py:405
python.InDetTrackSelectorToolConfig.CaloTrkMuIdAlgTrackSelectorToolCfg
def CaloTrkMuIdAlgTrackSelectorToolCfg(flags, name='CaloTrkMuIdAlgTrackSelectorTool', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:178
python.MuonCombinedRecToolsConfig.MuonSegmentSelectionToolCfg
def MuonSegmentSelectionToolCfg(flags, name="MuonSegmentSelectionTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1042
python.MuonCombinedRecToolsConfig.MuidMuonRecoveryCfg
def MuidMuonRecoveryCfg(flags, name='MuidMuonRecovery', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:867
python.MuonCombinedRecToolsConfig.MdtDriftCircleOnTrackCreatorStauCfg
def MdtDriftCircleOnTrackCreatorStauCfg(flags, name="MdtDriftCircleOnTrackCreatorStau", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1077
python.TrkExRungeKuttaPropagatorConfig.MuonCombinedPropagatorCfg
def MuonCombinedPropagatorCfg(flags, name='MuonCombinedPropagator', **kwargs)
Definition: TrkExRungeKuttaPropagatorConfig.py:31
python.MuonCombinedRecToolsConfig.MuonCandidateTrackBuilderToolCfg
def MuonCandidateTrackBuilderToolCfg(flags, name="MuonCandidateTrackBuilderTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1033
python.MuonCombinedRecToolsConfig.EMEO_MuonCombinedToolCfg
def EMEO_MuonCombinedToolCfg(flags, name="MuonCombinedTool_EMEO", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:337
python.MuonCombinedRecToolsConfig.CaloMuonLikelihoodToolCfg
def CaloMuonLikelihoodToolCfg(flags, name='CaloMuonLikelihoodTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:912
python.MuonCombinedRecToolsConfig.MuonCombinedDebuggerToolCfg
def MuonCombinedDebuggerToolCfg(flags, name="MuonCombinedDebuggerTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:262
python.MuonCombinedRecToolsConfig.MuonSegmentHitSummaryToolCfg
def MuonSegmentHitSummaryToolCfg(flags, name="MuonSegmentHitSummaryTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:108
python.AtlasExtrapolatorConfig.MuonExtrapolatorCfg
def MuonExtrapolatorCfg(flags, name="MuonExtrapolator", **kwargs)
Definition: AtlasExtrapolatorConfig.py:376
python.MuonGeometryConfig.MuonDetectorCondAlgCfg
def MuonDetectorCondAlgCfg(flags, name="MuonDetectorCondAlg", **kwargs)
Definition: MuonGeometryConfig.py:195
python.MuonSelectorToolsConfig.MuonSelectionToolCfg
def MuonSelectionToolCfg(flags, name="MuonSelectionTool", **kwargs)
Standard configuration of the MuonSelectionTool used in reconstruction & validation jobs The snippet ...
Definition: MuonSelectorToolsConfig.py:16
python.InDetTrackSelectorToolConfig.MuonCombinedInDetDetailedForwardTrackSelectorToolCfg
def MuonCombinedInDetDetailedForwardTrackSelectorToolCfg(flags, name='MuonCombinedInDetDetailedForwardTrackSelectorTool', **kwargs)
Definition: InDetTrackSelectorToolConfig.py:174
python.MuonCombinedRecToolsConfig.MuidCaloEnergyMeasCfg
def MuidCaloEnergyMeasCfg(flags, name='MuidCaloEnergyMeas', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:483
python.MuonCombinedRecToolsConfig.MuTagMatchingToolCfg
def MuTagMatchingToolCfg(flags, name='MuTagMatchingTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1178
python.MuonCombinedRecToolsConfig.MuidMaterialEffectsOnTrackProviderCfg
def MuidMaterialEffectsOnTrackProviderCfg(flags, name='MuidMaterialEffectsOnTrackProvider', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:577
python.TrkParticleCreatorConfig.MuonCombinedParticleCreatorCfg
def MuonCombinedParticleCreatorCfg(flags, name="MuonCombinedParticleCreator", **kwargs)
Definition: TrkParticleCreatorConfig.py:315
python.MuonCombinedRecToolsConfig.MuonCaloTagToolCfg
def MuonCaloTagToolCfg(flags, name='MuonCaloTagTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:939
python.MuonRecToolsConfig.MuonTrackCleanerCfg
def MuonTrackCleanerCfg(flags, name="MuonTrackCleaner", seg=False, **kwargs)
Definition: MuonRecToolsConfig.py:150
python.MuonRIO_OnTrackCreatorToolConfig.MuonClusterOnTrackCreatorCfg
def MuonClusterOnTrackCreatorCfg(flags, name="MuonClusterOnTrackCreator", **kwargs)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:96
python.MuonRIO_OnTrackCreatorToolConfig.MdtDriftCircleOnTrackCreatorCfg
def MdtDriftCircleOnTrackCreatorCfg(flags, name="MdtDriftCircleOnTrackCreator", **kwargs)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:73
python.MuonCombinedRecToolsConfig.MuonInsideOutRecoToolCfg
def MuonInsideOutRecoToolCfg(flags, name="MuonInsideOutRecoTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1003
python.MuonCombinedRecToolsConfig.iPatSLFitterCfg
def iPatSLFitterCfg(flags, name='iPatSLFitter', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:437
python.MuonCombinedRecToolsConfig.EMEO_MuonSegmentRegionRecoveryToolCfg
def EMEO_MuonSegmentRegionRecoveryToolCfg(flags, name="MuonSegmentRegionRecoveryTool_EMEO")
Definition: MuonCombinedRecToolsConfig.py:617
python.MuonCombinedRecToolsConfig.EMEO_CombinedMuonTrackBuilderCfg
def EMEO_CombinedMuonTrackBuilderCfg(flags, name="MuonCombinedTrackBuilder_EMEO")
Definition: MuonCombinedRecToolsConfig.py:640
python.MuonCombinedRecToolsConfig.TrackDepositInCaloToolCfg
def TrackDepositInCaloToolCfg(flags, name='TrackDepositInCaloTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:898
python.MuonCombinedRecToolsConfig.MuidCaloTrackStateOnSurfaceParamCfg
def MuidCaloTrackStateOnSurfaceParamCfg(flags, name='MuidCaloTrackStateOnSurfaceParam', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:563
python.MuonCombinedRecToolsConfig.MuonLayerSegmentFinderToolCfg
def MuonLayerSegmentFinderToolCfg(flags, name="MuonLayerSegmentFinderTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:962
python.MuonSegmentFindingConfig.Csc4dSegmentMakerCfg
def Csc4dSegmentMakerCfg(flags, name="Csc4dSegmentMaker", **kwargs)
Definition: MuonSegmentFindingConfig.py:355
python.MuonCombinedRecToolsConfig.CaloMuonScoreToolCfg
def CaloMuonScoreToolCfg(flags, name='CaloMuonScoreTool', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:922
python.MuonCombinedRecToolsConfig.MuidMaterialEffectsOnTrackProviderParamCfg
def MuidMaterialEffectsOnTrackProviderParamCfg(flags, name='MuidMaterialEffectsOnTrackProviderParam', **kwargs)
Definition: MuonCombinedRecToolsConfig.py:589
python.MuonRIO_OnTrackCreatorToolConfig.MdtCalibToolForRotsCfg
def MdtCalibToolForRotsCfg(flags, name="MdtCalibrationTool", **kwargs)
Definition: MuonRIO_OnTrackCreatorToolConfig.py:62
python.MuonCombinedRecToolsConfig.MuonSystemExtensionToolCfg
def MuonSystemExtensionToolCfg(flags, **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1162
python.MagFieldServicesConfig.AtlasFieldCacheCondAlgCfg
def AtlasFieldCacheCondAlgCfg(flags, **kwargs)
Definition: MagFieldServicesConfig.py:8
python.TrkResidualPullCalculatorConfig.ResidualPullCalculatorCfg
def ResidualPullCalculatorCfg(flags, name='ResidualPullCalculator', **kwargs)
Definition: TrkResidualPullCalculatorConfig.py:6
python.MuonTrackBuildingConfig.MuonSegmentRegionRecoveryToolCfg
def MuonSegmentRegionRecoveryToolCfg(flags, name="MuonSegmentRegionRecoveryTool", **kwargs)
Definition: MuonTrackBuildingConfig.py:217
python.SolenoidalIntersectorConfig.SolenoidalIntersectorCfg
def SolenoidalIntersectorCfg(flags, name='SolenoidalIntersector', **kwargs)
Definition: SolenoidalIntersectorConfig.py:7
python.MuonRecToolsConfig.MuonHitSummaryToolCfg
def MuonHitSummaryToolCfg(flags, name="MuonHitSummaryTool", **kwargs)
Definition: MuonRecToolsConfig.py:52
python.MuonSegmentFindingConfig.DCMathSegmentMakerCfg
def DCMathSegmentMakerCfg(flags, name='DCMathSegmentMaker', doSegmentT0Fit=False, **kwargs)
Definition: MuonSegmentFindingConfig.py:114
python.MuonSegmentFindingConfig.Csc2dSegmentMakerCfg
def Csc2dSegmentMakerCfg(flags, name="Csc2dSegmentMaker", **kwargs)
Definition: MuonSegmentFindingConfig.py:337
python.MuonCombinedRecToolsConfig.MuonSegmentConverterToolCfg
def MuonSegmentConverterToolCfg(flags, name="MuonSegmentConverterTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:120
python.MuonTrackBuildingConfig.MuonSegmentMatchingToolCfg
def MuonSegmentMatchingToolCfg(flags, name="MuonSegmentMatchingTool", **kwargs)
Definition: MuonTrackBuildingConfig.py:152
python.MuonSegmentFindingConfig.MuonPRDSelectionToolCfg
def MuonPRDSelectionToolCfg(flags, name="MuonPRDSelectionTool", **kwargs)
Definition: MuonSegmentFindingConfig.py:387
python.MuonCombinedRecToolsConfig.MuonCombinedStacoTagToolCfg
def MuonCombinedStacoTagToolCfg(flags, name="MuonCombinedStacoTagTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:366
python.MuonCombinedRecToolsConfig.MuonLayerAmbiguitySolverToolCfg
def MuonLayerAmbiguitySolverToolCfg(flags, name="MuonLayerAmbiguitySolverTool", **kwargs)
Definition: MuonCombinedRecToolsConfig.py:1060
TrackToCaloConfig.ParticleCaloExtensionToolCfg
def ParticleCaloExtensionToolCfg(flags, name='ParticleCaloExtensionTool', **kwargs)
Definition: TrackToCaloConfig.py:10