ATLAS Offline Software
Loading...
Searching...
No Matches
TrackFindingConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3from AthenaConfiguration.ComponentFactory import CompFactory
4
5
6def SegmentSelectorCfg(flags, name="SegmentSelectionTool", **kwargs):
7 result = ComponentAccumulator()
8 the_tool = CompFactory.MuonR4.SegmentSelectionTool(name, **kwargs)
9 result.setPrivateTools(the_tool)
10 return result
11
12def MSTrackFitterCfg(flags, name="MSTrackFitTool", **kwargs):
13 result = ComponentAccumulator()
14 from ActsConfig.ActsConfigFlags import TrackFitterType
15 from ActsConfig.ActsTrackFittingConfig import ActsFitterCfg
16 from MuonSpacePointCalibrator.CalibrationConfig import MuonSpacePointCalibratorCfg
17 kwargs.setdefault("fitterKind", TrackFitterType.GlobalChiSquareFitter)
18 kwargs.setdefault("OutlierChi2Cut", 200000)
19 kwargs.setdefault("IncludeScattering", flags.Muon.trackGeometryPassiveMaterial)
20 kwargs.setdefault("IncludeELoss", flags.Muon.trackGeometryPassiveMaterial)
21
22 kwargs.setdefault("MaxPropagationStep", 1000000)
23 kwargs.setdefault("MaxSurfacesPerNavStep", 10000000)
24 kwargs.setdefault("DoFreeToBoundCorrection", True)
25 kwargs.setdefault("MaxIterations", 100)
26
27
28 kwargs.setdefault("MuonCalibrationTool",result.popToolsAndMerge(MuonSpacePointCalibratorCfg(flags)))
29 fitTool = result.popToolsAndMerge(ActsFitterCfg(flags, name=name, **kwargs))
30 result.setPrivateTools(fitTool)
31 return result
32
33def TrackSummaryToolCfg(flags, name="MuonTrackSummaryTool", **kwargs) :
34 result = ComponentAccumulator()
35 theTool = CompFactory.MuonR4.TrackSummaryTool(name, **kwargs)
36 result.setPrivateTools(theTool)
37 return result
38
39def TrackSummaryLockCfg(flags,inContainer="", fillHoles = True, fillOutliers = True, **kwargs):
40
41 summaryDecors = [ "innerSmallHits", "innerLargeHits",
42 "middleSmallHits", "middleLargeHits",
43 "outerSmallHits", "outerLargeHits",
44 "extendedSmallHits", "extendedLargeHits",
45 "innerTriggerEtaHits", "innerTriggerPhiHits",
46 "middleTriggerEtaHits", "middleTriggerPhiHits",
47 "outerTriggerEtaHits", "outerTriggerPhiHits"]
48 if fillHoles:
49 summaryDecors +=["innerSmallHoles", "innerLargeHoles",
50 "middleSmallHoles", "middleLargeHoles",
51 "outerSmallHoles", "outerLargeHoles",
52 "extendedSmallHoles", "extendedLargeHoles",
53 "innerTriggerEtaHoles", "innerTriggerPhiHoles",
54 "middleTriggerEtaHoles", "middleTriggerPhiHoles",
55 "outerTriggerEtaHoles", "outerTriggerPhiHoles" ]
56 if fillOutliers:
57 summaryDecors += ["innerClosePrecisionHits", "middleClosePrecisionHits",
58 "outerClosePrecisionHits", "extendedClosePrecisionHits"]
59
60
61 result = ComponentAccumulator()
62 kwargs.setdefault("Decorations", [f"{inContainer}.{decor}" for decor in summaryDecors])
63 the_alg= CompFactory.DerivationFramework.LockDecorations(name=f"MuonTrackSummaryLockAlg_{inContainer}", **kwargs)
64 result.addEventAlgo(the_alg, primary = True)
65 return result
66
67def MsTrackSeedingToolCfg(flags, name="MsTrackSeedingTool", **kwargs):
68 result = ComponentAccumulator()
69 kwargs.setdefault("SegmentSelectionTool", result.popToolsAndMerge(SegmentSelectorCfg(flags)))
70 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
71 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(ActsExtrapolationToolCfg(flags,
72 MaxSteps=10000,
73 InteractionEloss = flags.Muon.trackGeometryPassiveMaterial,
74 InteractionMultiScatering = flags.Muon.trackGeometryPassiveMaterial )))
75 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
76 kwargs.setdefault("TrackingGeometryTool", result.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
77
78 the_tool = CompFactory.MuonR4.MsTrackSeederTool(name, **kwargs)
79 result.setPrivateTools(the_tool)
80 return result
81
82def MSTrackFinderAlgCfg(flags, name="MSTrackFinderAlg", **kwargs):
83 result = ComponentAccumulator()
84 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
85 result.merge(AtlasFieldCacheCondAlgCfg(flags))
86
87 kwargs.setdefault("SeedingTool", result.popToolsAndMerge(MsTrackSeedingToolCfg(flags)))
88 kwargs.setdefault("FittingTool", result.popToolsAndMerge(MSTrackFitterCfg(flags)))
89 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
90 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(ActsExtrapolationToolCfg(flags,
91 MaxSteps=10000,
92 InteractionEloss = flags.Muon.trackGeometryPassiveMaterial,
93 InteractionMultiScatering = flags.Muon.trackGeometryPassiveMaterial )))
94 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
95 kwargs.setdefault("TrackingGeometryTool", result.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
96 from MuonSpacePointCalibrator.CalibrationConfig import MuonSpacePointCalibratorCfg
97 kwargs.setdefault("Calibrator", result.popToolsAndMerge(MuonSpacePointCalibratorCfg(flags)))
98 kwargs.setdefault("SummaryTool", result.popToolsAndMerge(TrackSummaryToolCfg(flags)))
99
100 the_alg = CompFactory.MuonR4.MsTrackFindingAlg(name, **kwargs)
101 result.addEventAlgo(the_alg, primary = True)
102 return result
103
104
105def StandaloneTrackPartCnvCfg(flags, name="MuonMsTrackParticleCnvR4", **kwargs):
106 from ActsConfig.ActsEventCnvConfig import ActsTrackToTrackParticleCnvAlgCfg
107 kwargs.setdefault("BeamSpotKey", "")
108 kwargs.setdefault("VertexContainerKey", "")
109 kwargs.setdefault("ACTSTracksLocation" ,["MsTracks"])
110 kwargs.setdefault("TrackParticlesOutKey", "MsTrackParticlesR4")
111 kwargs.setdefault("PerigeeExpression", "DontRecalculate")
112 return ActsTrackToTrackParticleCnvAlgCfg(flags, name=name, **kwargs)
113
114def MuonActsToTrkConvCfg(flags, name="MuonActsToTrkConverterAlg", **kwargs):
115 result = ComponentAccumulator()
116 kwargs.setdefault('TrackParticles', "MsTrackParticlesR4")
117 kwargs.setdefault('OutTrackContainer', 'MsTracksTrkCnv')
118 from ActsConfig.ActsEventCnvConfig import xAODtoTrkConverterAlgCfg
119 result.merge(xAODtoTrkConverterAlgCfg(flags, name=name,
120 setupMuon = True, setupITk=False, **kwargs))
121 return result
122
123def MuidSaTagMakerAlgCfg(flags, name="MuonMuidTagSaAlg", **kwargs):
124 result = ComponentAccumulator()
125 kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(TrackSummaryToolCfg(flags)))
126 the_alg = CompFactory.MuonCombinedR4.StandaloneMuonTagAlg(name, **kwargs)
127 result.addEventAlgo(the_alg, primary = True)
128 return result
129
130
131def MuonInDetTrackSelectionAlgCfg(flags, name="MuonCombinedInDetCandidateAlgR4", **kwargs):
132 result = ComponentAccumulator()
133 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
134 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000,
135 InteractionEloss = True,
136 InteractionMultiScatering = True)))
137 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
138 kwargs.setdefault("TrackingGeometryTool", result.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
139 the_alg = CompFactory.MuonCombinedR4.InDetTrackSelectionAlg(name, **kwargs)
140 result.addEventAlgo(the_alg, primary = True)
141 return result
142
143def MuonSegmentTaggingAlgCfg(flags, name="MuonCombinedSegmentTaggingAlgR4", **kwargs):
144 result = ComponentAccumulator()
145 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
146 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)))
147 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
148 kwargs.setdefault("TrackingGeometryTool", result.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
149 the_alg = CompFactory.MuonCombinedR4.SegmentTaggingAlg(name, **kwargs)
150 result.addEventAlgo(the_alg, primary = True)
151 return result
152
153def MuonCreatorAlgCfg(flags, name="MuonCreatorAlgR4", **kwargs):
154 result = ComponentAccumulator()
155 from MuonSelectorTools.MuonSelectorToolsConfig import MuonLoosenedNonCalibratedSelectionToolCfg
156 kwargs.setdefault("SelectionTool", result.popToolsAndMerge(MuonLoosenedNonCalibratedSelectionToolCfg(flags)))
157 from MuonTrackFindingAlgs.TrackFindingConfig import TrackSummaryToolCfg
158 kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(TrackSummaryToolCfg(flags)))
159 the_alg = CompFactory.MuonCombinedR4.MuonCreatorAlg(name, **kwargs)
160 result.addEventAlgo(the_alg, primary = True)
161 return result
MSTrackFitterCfg(flags, name="MSTrackFitTool", **kwargs)
MuonCreatorAlgCfg(flags, name="MuonCreatorAlgR4", **kwargs)
MsTrackSeedingToolCfg(flags, name="MsTrackSeedingTool", **kwargs)
MuonSegmentTaggingAlgCfg(flags, name="MuonCombinedSegmentTaggingAlgR4", **kwargs)
MuonActsToTrkConvCfg(flags, name="MuonActsToTrkConverterAlg", **kwargs)
TrackSummaryToolCfg(flags, name="MuonTrackSummaryTool", **kwargs)
StandaloneTrackPartCnvCfg(flags, name="MuonMsTrackParticleCnvR4", **kwargs)
MuidSaTagMakerAlgCfg(flags, name="MuonMuidTagSaAlg", **kwargs)
MuonInDetTrackSelectionAlgCfg(flags, name="MuonCombinedInDetCandidateAlgR4", **kwargs)
MSTrackFinderAlgCfg(flags, name="MSTrackFinderAlg", **kwargs)
TrackSummaryLockCfg(flags, inContainer="", fillHoles=True, fillOutliers=True, **kwargs)
SegmentSelectorCfg(flags, name="SegmentSelectionTool", **kwargs)