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
12
13def MSExtrapolatorCfg(flags, name="MsExtrapolationTool", **kwargs):
14 from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
15 return ActsExtrapolationToolCfg(flags,
16 MaxSteps=10000,
17 InteractionEloss = flags.Muon.trackGeometryPassiveMaterial,
18 InteractionMultiScatering = flags.Muon.trackGeometryPassiveMaterial)
19
20def MSTrackFitterCfg(flags, name="MSTrackFitTool", **kwargs):
21 result = ComponentAccumulator()
22 from ActsConfig.ActsTrackFittingConfig import ActsFitterCfg
23 from MuonSpacePointCalibrator.CalibrationConfig import MuonSpacePointCalibratorCfg
24 from ActsConfig.ActsConfigFlags import TrackFitterType
25 kwargs.setdefault("fitterKind", flags.Muon.TrackFitterType)
26 kwargs.setdefault("OutlierChi2Cut", 200000)
27 kwargs.setdefault("MuonCalibrationTool", result.popToolsAndMerge(MuonSpacePointCalibratorCfg(flags)))
28
29 if kwargs["fitterKind"] == TrackFitterType.GlobalChiSquareFitter:
30 kwargs.setdefault("IncludeScattering", flags.Muon.trackGeometryPassiveMaterial)
31 kwargs.setdefault("IncludeELoss", flags.Muon.trackGeometryPassiveMaterial)
32 kwargs.setdefault("MaxPropagationStep", 1000000)
33 kwargs.setdefault("MaxSurfacesPerNavStep", 10000000)
34 kwargs.setdefault("DoFreeToBoundCorrection", True)
35 kwargs.setdefault("MaxIterations", 30)
36 elif kwargs["fitterKind"] == TrackFitterType.KalmanFitter:
37 kwargs.setdefault("UseDirectNavigation", False)
38
39
40 fitTool = result.popToolsAndMerge(ActsFitterCfg(flags, name=name, **kwargs))
41 result.setPrivateTools(fitTool)
42 return result
43
44def TrackSummaryToolCfg(flags, name="MuonTrackSummaryTool", **kwargs) :
45 result = ComponentAccumulator()
46 theTool = CompFactory.MuonR4.TrackSummaryTool(name, **kwargs)
47 result.setPrivateTools(theTool)
48 return result
49
50def TrackSummaryLockCfg(flags,inContainer="", fillHoles = True, fillOutliers = True, **kwargs):
51
52 summaryDecors = [ "innerSmallHits", "innerLargeHits",
53 "middleSmallHits", "middleLargeHits",
54 "outerSmallHits", "outerLargeHits",
55 "extendedSmallHits", "extendedLargeHits",
56 "innerTriggerEtaHits", "innerTriggerPhiHits",
57 "middleTriggerEtaHits", "middleTriggerPhiHits",
58 "outerTriggerEtaHits", "outerTriggerPhiHits"]
59 if fillHoles:
60 summaryDecors +=["innerSmallHoles", "innerLargeHoles",
61 "middleSmallHoles", "middleLargeHoles",
62 "outerSmallHoles", "outerLargeHoles",
63 "extendedSmallHoles", "extendedLargeHoles",
64 "innerTriggerEtaHoles", "innerTriggerPhiHoles",
65 "middleTriggerEtaHoles", "middleTriggerPhiHoles",
66 "outerTriggerEtaHoles", "outerTriggerPhiHoles" ]
67 if fillOutliers:
68 summaryDecors += ["innerClosePrecisionHits", "middleClosePrecisionHits",
69 "outerClosePrecisionHits", "extendedClosePrecisionHits"]
70
71
72 result = ComponentAccumulator()
73 kwargs.setdefault("Decorations", [f"{inContainer}.{decor}" for decor in summaryDecors])
74 the_alg= CompFactory.DerivationFramework.LockDecorations(name=f"MuonTrackSummaryLockAlg_{inContainer}", **kwargs)
75 result.addEventAlgo(the_alg, primary = True)
76 return result
77
78def MsTrackSeedingToolCfg(flags, name="MsTrackSeedingTool", **kwargs):
79 result = ComponentAccumulator()
80 kwargs.setdefault("SegmentSelectionTool", result.popToolsAndMerge(SegmentSelectorCfg(flags)))
81
82 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
83 result.merge(ActsTrackingGeometrySvcCfg(flags))
84 the_tool = CompFactory.MuonR4.MsTrackSeederTool(name, **kwargs)
85 result.setPrivateTools(the_tool)
86 return result
87
88def MSTrackFinderAlgCfg(flags, name="MSTrackFinderAlg", **kwargs):
89 result = ComponentAccumulator()
90 if not flags.Acts.TrackingGeometry.UseBlueprint:
91 raise RuntimeError("Cannot setup the track finding alg with Gen 1 geometry")
92 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
93 result.merge(AtlasFieldCacheCondAlgCfg(flags))
94
95 kwargs.setdefault("SeedingTool", result.popToolsAndMerge(MsTrackSeedingToolCfg(flags)))
96 kwargs.setdefault("FittingTool", result.popToolsAndMerge(MSTrackFitterCfg(flags)))
97 from MuonSpacePointCalibrator.CalibrationConfig import MuonSpacePointCalibratorCfg
98 kwargs.setdefault("Calibrator", result.popToolsAndMerge(MuonSpacePointCalibratorCfg(flags)))
99 kwargs.setdefault("SummaryTool", result.popToolsAndMerge(TrackSummaryToolCfg(flags)))
100 kwargs.setdefault("expressAtMsEntrance", flags.Muon.expressMsTrackAtEntrance)
101 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(MSExtrapolatorCfg(flags)))
102 the_alg = CompFactory.MuonR4.MsTrackFindingAlg(name, **kwargs)
103 result.addEventAlgo(the_alg, primary = True)
104 return result
105
106
107def StandaloneTrackPartCnvCfg(flags, name="MuonMsTrackParticleCnvR4", **kwargs):
108 from ActsConfig.ActsEventCnvConfig import ActsTrackToTrackParticleCnvAlgCfg
109 kwargs.setdefault("BeamSpotKey", "")
110 kwargs.setdefault("VertexContainerKey", "")
111 kwargs.setdefault("ACTSTracksLocation" ,["MsTracks"])
112 kwargs.setdefault("TrackParticlesOutKey", "MsTrackParticlesR4")
113 kwargs.setdefault("PerigeeExpression", "DontRecalculate")
114 return ActsTrackToTrackParticleCnvAlgCfg(flags, name=name, **kwargs)
115
116def MuonActsToTrkConvCfg(flags, name="MuonActsToTrkConverterAlg", **kwargs):
117 result = ComponentAccumulator()
118 kwargs.setdefault('TrackParticles', "MsTrackParticlesR4")
119 kwargs.setdefault('OutTrackContainer', 'MsTracksTrkCnv')
120 from ActsConfig.ActsEventCnvConfig import xAODtoTrkConverterAlgCfg
121 result.merge(xAODtoTrkConverterAlgCfg(flags, name=name,
122 setupMuon = True, setupITk=False, **kwargs))
123 return result
124
125
126def BeamSpotPreparatorAlgCfg(flags, name="MuonBeamSpotPreparator", **kwargs):
127 result = ComponentAccumulator()
128 from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
129 result.merge(BeamSpotCondAlgCfg(flags))
130 from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg
131 result.merge(AtlasFieldCacheCondAlgCfg(flags))
132 the_alg = CompFactory.MuonCombinedR4.BeamSpotPreparatorAlg(name, **kwargs)
133 result.addEventAlgo(the_alg, primary = True)
134 return result
135
136def MuidSaTagMakerAlgCfg(flags, name="MuonMuidTagSaAlg", **kwargs):
137 result = ComponentAccumulator()
138 kwargs.setdefault("ExtrapolateToIP", flags.Muon.buildMETrack )
139 kwargs.setdefault("RefitWithBeamSpot", flags.Muon.buildMETrack )
140 kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(TrackSummaryToolCfg(flags)))
141 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
142 result.merge(ActsTrackingGeometrySvcCfg(flags))
143 if kwargs["ExtrapolateToIP"]:
144 kwargs.setdefault("FittingTool", result.popToolsAndMerge(MSTrackFitterCfg(flags)))
145 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(MSExtrapolatorCfg(flags)))
146 from ActsConfig.ActsEventCnvConfig import ActsTrackToTrackParticleCnvToolCfg
147 kwargs.setdefault("TrackToTrackParticleCnvTool",
148 result.popToolsAndMerge(ActsTrackToTrackParticleCnvToolCfg(flags)))
149
150 the_alg = CompFactory.MuonCombinedR4.StandaloneMuonTagAlg(name, **kwargs)
151 result.addEventAlgo(the_alg, primary = True)
152 return result
153
154
155def MuonCombinedStacoAlgCfg(flags, name="MuonCombinedStacoAlgR4", **kwargs ):
156 result = ComponentAccumulator()
157 the_alg = CompFactory.MuonCombinedR4.CombinedStacoAlg(name, **kwargs)
158 result.addEventAlgo(the_alg, primary = True)
159 return result
160
161def MuonInDetTrackSelectionAlgCfg(flags, name="MuonCombinedInDetCandidateAlgR4", **kwargs):
162 result = ComponentAccumulator()
163 if not flags.Acts.TrackingGeometry.UseBlueprint:
164 raise RuntimeError("Cannot setup the InDet Candidate selection with Gen 1 geometry")
165 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(MSExtrapolatorCfg(flags)))
166 from ActsConfig.ActsGeometryConfig import ActsTrackingGeometrySvcCfg
167 result.merge(ActsTrackingGeometrySvcCfg(flags))
168 kwargs.setdefault("matchTracksOnSameSurface", flags.Muon.expressMsTrackAtEntrance)
169 the_alg = CompFactory.MuonCombinedR4.InDetTrackSelectionAlg(name, **kwargs)
170 result.addEventAlgo(the_alg, primary = True)
171 return result
172
173def MuonSegmentTaggingAlgCfg(flags, name="MuonCombinedSegmentTaggingAlgR4", **kwargs):
174 result = ComponentAccumulator()
175 kwargs.setdefault("ExtrapolationTool", result.popToolsAndMerge(MSExtrapolatorCfg(flags, MaxSteps=10000)))
176 the_alg = CompFactory.MuonCombinedR4.SegmentTaggingAlg(name, **kwargs)
177 result.addEventAlgo(the_alg, primary = True)
178 return result
179
180def MuonCreatorAlgCfg(flags, name="MuonCreatorAlgR4", **kwargs):
181 result = ComponentAccumulator()
182 from MuonSelectorTools.MuonSelectorToolsConfig import MuonLoosenedNonCalibratedSelectionToolCfg
183 kwargs.setdefault("SelectionTool", result.popToolsAndMerge(MuonLoosenedNonCalibratedSelectionToolCfg(flags)))
184 from MuonTrackFindingAlgs.TrackFindingConfig import TrackSummaryToolCfg
185 kwargs.setdefault("TrackSummaryTool", result.popToolsAndMerge(TrackSummaryToolCfg(flags)))
186 the_alg = CompFactory.MuonCombinedR4.MuonCreatorAlg(name, **kwargs)
187 result.addEventAlgo(the_alg, primary = True)
188 return result
MSTrackFinderAlgCfg(flags, name="MSTrackFinderAlg", **kwargs)
TrackSummaryToolCfg(flags, name="MuonTrackSummaryTool", **kwargs)
MuonCombinedStacoAlgCfg(flags, name="MuonCombinedStacoAlgR4", **kwargs)
StandaloneTrackPartCnvCfg(flags, name="MuonMsTrackParticleCnvR4", **kwargs)
MSExtrapolatorCfg(flags, name="MsExtrapolationTool", **kwargs)
MuonActsToTrkConvCfg(flags, name="MuonActsToTrkConverterAlg", **kwargs)
MuidSaTagMakerAlgCfg(flags, name="MuonMuidTagSaAlg", **kwargs)
MuonSegmentTaggingAlgCfg(flags, name="MuonCombinedSegmentTaggingAlgR4", **kwargs)
BeamSpotPreparatorAlgCfg(flags, name="MuonBeamSpotPreparator", **kwargs)
TrackSummaryLockCfg(flags, inContainer="", fillHoles=True, fillOutliers=True, **kwargs)
SegmentSelectorCfg(flags, name="SegmentSelectionTool", **kwargs)
MuonInDetTrackSelectionAlgCfg(flags, name="MuonCombinedInDetCandidateAlgR4", **kwargs)
MsTrackSeedingToolCfg(flags, name="MsTrackSeedingTool", **kwargs)
MSTrackFitterCfg(flags, name="MSTrackFitTool", **kwargs)
MuonCreatorAlgCfg(flags, name="MuonCreatorAlgR4", **kwargs)