ATLAS Offline Software
Loading...
Searching...
No Matches
ReconstructionConfigR4 Namespace Reference

Functions

 MuonTrackContainersToPersistify (str prefix)
 StandaloneMuonOutputCfg (flags)
 MsTrkRecoChainConfig (flags)
 MuonCombinedReconstructionConfigR4 (flags)
 LRT_MuonCombinedReconstructionConfigR4 (flags)
 MuonTruthChainCfg (flags)
 MuonReconstructionConfig (flags)
 Standard reconstruction chain of phase II.

Function Documentation

◆ LRT_MuonCombinedReconstructionConfigR4()

LRT_MuonCombinedReconstructionConfigR4 ( flags)

Definition at line 186 of file ReconstructionConfigR4.py.

186def LRT_MuonCombinedReconstructionConfigR4(flags):
187 result = ComponentAccumulator()
188 if not flags.Reco.EnableTracking or not flags.Acts.doLargeRadius:
189 return result
190
191 MuonTags = []
192 from MuonCombinedAlgsR4.MuonCombinedAlgsConfigR4 import LRT_MuonInDetTrackSelectionAlgCfg, \
193 LRT_MuonCombinedStacoAlgCfg, \
194 LRT_MuonLegacyCaloTagAlgCfg, \
195 LRT_MuonSegmentTaggingAlgCfg, \
196 LRT_MuonCombinedFitAlgCfg, \
197 MuonCreatorAlgCfg
198 from ActsConfig.CaloExtensionBuilderConfig import ActsCaloExtensionBuilderCfg
199
200 result.merge(ActsCaloExtensionBuilderCfg(flags, name="ActsCaloExtensionBuilderLRT",TrackParticleContainerName="InDetLargeD0TrackParticles", CaloExtensionName="CaloExtensionLRT"))
201 result.merge(LRT_MuonInDetTrackSelectionAlgCfg(flags))
202
203 result.merge(LRT_MuonSegmentTaggingAlgCfg(flags))
204 MuonTags+= ["SegmentTagsLRT"]
205
206 result.merge(LRT_MuonCombinedStacoAlgCfg(flags))
207 MuonTags+=["MuonTagsSTACOLRT"]
208
209 result.merge(LRT_MuonCombinedFitAlgCfg(flags))
210 MuonTags+=["MuonTagsMuidCoLRT"]
211
212
213 if flags.MuonCombined.doCaloTrkMuId:
214 result.merge(LRT_MuonLegacyCaloTagAlgCfg(flags))
215 MuonTags+=["LegacyCaloTagsLRT"]
216
217 result.merge(MuonCreatorAlgCfg(flags, name = "MuonActsCreatorAlg_LRT",
218 TagKeys=MuonTags, MuonKey="MuonsLRT"))
219 return result
220
221

◆ MsTrkRecoChainConfig()

MsTrkRecoChainConfig ( flags)

Definition at line 120 of file ReconstructionConfigR4.py.

120def MsTrkRecoChainConfig(flags):
121 result = ComponentAccumulator()
122
123 from MuonTrackFindingAlgs.TrackFindingConfig import MuonActsToTrkConvCfg
124 result.merge(MuonActsToTrkConvCfg(flags))
125 return result
126
127 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedMuonCandidateAlgCfg
128 result.merge(MuonCombinedMuonCandidateAlgCfg(flags,
129 name="MuonMSOECandidateAlgR4",
130 MuonSpectrometerTrackParticleLocation="MuonMsTrackParticles",
131 MuonCandidateLocation="MuonCandidatesR4",
132 MSOnlyExtrapolatedTrackLocation="MSOETrksR4"))
133
134
135 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCreatorAlgCfg
136 result.merge(MuonCreatorAlgCfg(flags,
137 name="MuonCreatorAlgR4",
138 TagMaps=[],
139 CreateSAmuons = True,
140 MakeClusters= False,
141 MuonContainerLocation="MuonsR4",
142 MSOnlyExtrapolatedTrackLocation="MSOETrackParticlesR4",
143 MSOnlyExtrapolatedLocation="MSOEMuonTrackParticlesR4",
144 MuonCandidateLocation=["MuonCandidatesR4"],
145 ClusterContainerName=""))
146 return result
147

◆ MuonCombinedReconstructionConfigR4()

MuonCombinedReconstructionConfigR4 ( flags)

Definition at line 148 of file ReconstructionConfigR4.py.

148def MuonCombinedReconstructionConfigR4(flags):
149 result = ComponentAccumulator()
150
151 MuonTags = ["MuonTagsSA"]
152
153 from MuonCombinedAlgsR4.MuonCombinedAlgsConfigR4 import MuonInDetTrackSelectionAlgCfg, \
154 MuonSegmentTaggingAlgCfg, \
155 BeamSpotPreparatorAlgCfg, \
156 MuonLegacyCaloTagAlgCfg, \
157 MuonCombinedStacoAlgCfg, \
158 MuonCombinedFitAlgCfg, \
159 MuidSaTagMakerAlgCfg, \
160 MuonCreatorAlgCfg
161 if flags.Reco.EnableTracking:
162 if flags.Muon.buildMETrack: result.merge(BeamSpotPreparatorAlgCfg(flags))
163 result.merge(MuonInDetTrackSelectionAlgCfg(flags))
164 result.merge(MuonSegmentTaggingAlgCfg(flags))
165 MuonTags+= ["SegmentTags"]
166 result.merge(MuonCombinedStacoAlgCfg(flags))
167 MuonTags+=["MuonTagsSTACO"]
168 result.merge(MuonCombinedFitAlgCfg(flags))
169 MuonTags+=["MuonTagsMuidCo"]
170 if flags.MuonCombined.doCaloTrkMuId:
171 result.merge(MuonLegacyCaloTagAlgCfg(flags))
172 MuonTags+=["LegacyCaloTags"]
173
174 result.merge(MuidSaTagMakerAlgCfg(flags,
175 CombinedTags="MuonTagsSTACO" if flags.Reco.EnableTracking else ""))
176
177 if flags.Muon.buildMETrack:
178 from MuonTrackFindingAlgs.TrackFindingConfig import TrackSummaryLockCfg
179 result.merge(TrackSummaryLockCfg(flags, inContainer="MuonMsAtIpTrackParticles"))
180
181
182 result.merge(MuonCreatorAlgCfg(flags, name = "MuonActsCreatorAlg",
183 TagKeys=MuonTags))
184 return result
185

◆ MuonReconstructionConfig()

MuonReconstructionConfig ( flags)

Standard reconstruction chain of phase II.

Definition at line 265 of file ReconstructionConfigR4.py.

265def MuonReconstructionConfig(flags):
266 result = ComponentAccumulator()
267
268
269
270 from MuonConfig.MuonDataPrepConfig import xAODUncalibMeasPrepCfg
271 result.merge(xAODUncalibMeasPrepCfg(flags))
272
273
274 from MuonSpacePointFormation.SpacePointFormationConfig import MuonSpacePointFormationCfg
275 result.merge(MuonSpacePointFormationCfg(flags))
276
277
278 from MuonPatternRecognitionAlgs.MuonPatternRecognitionConfig import MuonPatternRecognitionCfg
279 result.merge(MuonPatternRecognitionCfg(flags))
280
281
282 from MuonTrackFindingAlgs.TrackFindingConfig import MSTrackFinderAlgCfg, \
283 StandaloneTrackPartCnvCfg
284 result.merge(MSTrackFinderAlgCfg(flags))
285
286
287 result.merge(StandaloneTrackPartCnvCfg(flags))
288
289 if flags.Muon.scheduleLegacyReco:
290 result.merge(MsTrkRecoChainConfig(flags))
291
292 result.merge(MuonCombinedReconstructionConfigR4(flags))
293 if flags.Acts.doLargeRadius:
294 result.merge(LRT_MuonCombinedReconstructionConfigR4(flags))
295
296 if flags.Output.doWriteAOD or flags.Output.doWriteESD:
297 result.merge(StandaloneMuonOutputCfg(flags))
298
299 result.merge(MuonTruthChainCfg(flags))
300
301 return result

◆ MuonTrackContainersToPersistify()

MuonTrackContainersToPersistify ( str prefix)

Definition at line 5 of file ReconstructionConfigR4.py.

5def MuonTrackContainersToPersistify(prefix : str):
6 toESD=[]
7 toESD += [f"xAOD::TrackSummaryContainer#{prefix}TrackSummary",
8 f"xAOD::TrackSummaryAuxContainer#{prefix}TrackSummaryAux.",
9 f"xAOD::TrackStateContainer#{prefix}TrackStates",
10 f"xAOD::TrackStateAuxContainer#{prefix}TrackStatesAux.-uncalibratedMeasurement",
11 f"xAOD::TrackParametersContainer#{prefix}TrackParameters",
12 f"xAOD::TrackParametersAuxContainer#{prefix}TrackParametersAux.",
13 f"xAOD::TrackJacobianContainer#{prefix}TrackJacobians",
14 f"xAOD::TrackJacobianAuxContainer#{prefix}TrackJacobiansAux.",
15 f"xAOD::TrackMeasurementContainer#{prefix}TrackMeasurements",
16 f"xAOD::TrackMeasurementAuxContainer#{prefix}TrackMeasurementsAux.",
17 f"xAOD::TrackSurfaceContainer#{prefix}TrackStateSurfaces",
18 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackStateSurfacesAux.",
19 f"xAOD::TrackSurfaceContainer#{prefix}TrackSurfaces",
20 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackSurfacesAux."]
21 return toESD
22

◆ MuonTruthChainCfg()

MuonTruthChainCfg ( flags)

Definition at line 222 of file ReconstructionConfigR4.py.

222def MuonTruthChainCfg(flags):
223 result = ComponentAccumulator()
224 if not flags.Input.isMC:
225 return result
226
227 from MuonTruthAlgsR4.MuonTruthAlgsConfig import MuonTruthAlgsCfg
228 result.merge(MuonTruthAlgsCfg(flags))
229
230 from MuonTruthAlgsR4.MuonTruthAlgsConfig import MuonActsTruthMatchingCfg, MuonToTruthAssocAlgCfg
231 tracks = ["MuonMsTrackParticles"]
232 result.merge(MuonActsTruthMatchingCfg(flags, TrackContainer="MuonMsTracks",
233 ParticleContainer="MuonMsTrackParticles"))
234 if flags.Muon.buildMETrack:
235 tracks+=["MuonMsAtIpTrackParticles"]
236 result.merge(MuonActsTruthMatchingCfg(flags, TrackContainer="MuonMsAtIpTracks",
237 ParticleContainer="MuonMsAtIpTrackParticles"))
238
239 if flags.Reco.EnableTracking:
240 tracks+=["MuonCmbTrackParticles", "InDetTrackParticles"]
241 result.merge(MuonActsTruthMatchingCfg(flags, TrackContainer="MuonCmbTracks",
242 ParticleContainer="MuonCmbTrackParticles",
243 isCombined =True))
244 if flags.Muon.buildMETrack:
245 tracks+=["MuonMeTrackParticles"]
246 result.merge(MuonActsTruthMatchingCfg(flags, TrackContainer="MuonMeTracks",
247 ParticleContainer="MuonMeTrackParticles"))
248 if flags.Acts.doLargeRadius:
249 tracks+=["MuonCmbTrackParticlesLRT"]
250 result.merge(MuonActsTruthMatchingCfg(flags, TrackContainer="MuonCmbTracksLRT",
251 ParticleContainer="MuonCmbTrackParticlesLRT",
252 isCombined =True))
253 if flags.Muon.buildMETrack:
254 tracks+=["MuonMeTrackParticlesLRT"]
255 result.merge(MuonActsTruthMatchingCfg(flags, TrackContainer="MuonMeTracksLRT",
256 ParticleContainer="MuonMeTrackParticlesLRT"))
257
258 result.merge(MuonToTruthAssocAlgCfg(flags, TrackKeys = tracks))
259 if flags.Acts.doLargeRadius and flags.Reco.EnableTracking:
260 result.merge(MuonToTruthAssocAlgCfg(flags, name = "MuonToTruthAssocAlgLRT",
261 TrackKeys= tracks, MuonKey="MuonsLRT"))
262 return result
263

◆ StandaloneMuonOutputCfg()

StandaloneMuonOutputCfg ( flags)

Definition at line 23 of file ReconstructionConfigR4.py.

23def StandaloneMuonOutputCfg(flags):
24 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
25 result = ComponentAccumulator()
26
27 aod_items = []
28 esd_items = []
29
30 if flags.Input.isMC or flags.Overlay.DataOverlay:
31 # Truth Particle Container
32 aod_items += ["xAOD::TruthParticleContainer#MuonTruthParticles"]
33 aod_items += ["xAOD::TruthParticleAuxContainer#MuonTruthParticlesAux."]
34
35 # Truth Segment Container
36 aod_items += ["xAOD::MuonSegmentContainer#MuonTruthSegments"]
37 aod_items += ["xAOD::MuonSegmentAuxContainer#MuonTruthSegmentsAux.-localSegPars"]
38
39 from AthenaConfiguration.Enums import Format
40 if (flags.Input.isMC or flags.Overlay.DataOverlay) and flags.Input.Format!=Format.BS:
41 # filter TrackRecordCollection (true particles in muon spectrometer)
42 if "MuonEntryLayerFilter" not in flags.Input.Collections and \
43 ("MuonEntryLayer" in flags.Input.Collections):
44 result.addEventAlgo(CompFactory.TrackRecordFilter())
45 if "MuonExitLayerFilter" not in flags.Input.Collections and \
46 ("MuonExitLayer" in flags.Input.Collections):
47 result.addEventAlgo(CompFactory.TrackRecordFilter("TrackRecordFilterMuonExitLayer",
48 inputName="MuonExitLayer",
49 outputName="MuonExitLayerFilter"))
50
51 esd_items += ["TrackRecordCollection#MuonEntryLayerFilter"]
52 esd_items += ["TrackRecordCollection#MuonExitLayerFilter"]
53
54
55 #add the SDOs to the ESD output if requested
56 if flags.Muon.writeSDOs:
57 for item in ["MDT_SDO","RPC_SDO","TGC_SDO","MM_SDO","sTGC_SDO"]:
58 esd_items += [f"xAOD::MuonSimHitContainer#{item}", f"xAOD::MuonSimHitAuxContainer#{item}Aux."]
59
60
61 #Add the xAOD muon PRD containers to the ESD output
62 exclude = ["", "mdtTrkPrdLink", "rpcTrkPrdLink", "tgcTrkPrdLink", "segmentFitDriftSign"]
63 contList = [("MdtDriftCircle", "xMdtDriftCircles"),
64 ("MdtTwinDriftCircle", "xMdtTwinDriftCircles"),
65 ("sTgcStrip", "xAODsTgcStrips"),
66 ("sTgcPad", "xAODsTgcPads"),
67 ("sTgcWire", "xAODsTgcWires"),
68 ("MMCluster", "xAODMMClusters"),
69 ("TgcStrip", "xTgcStrips"),
70 ("CombinedMuonStrip", "CombinedMuonPrds")]
71
72 from AthenaConfiguration.Enums import LHCPeriod
73 if flags.GeoModel.Run >= LHCPeriod.Run4:
74 contList += [ ("RpcStrip", "xRpcStrips" ), ("RpcStrip2D", "xRpcBILStrips") ]
75 else:
76 contList += [("RpcStrip", "xRpcMeasurements")]
77
78 for cont_t, cont_name in contList:
79 esd_items+=[f"xAOD::{cont_t}Container#{cont_name}",
80 "xAOD::{cont_t}AuxContainer#{cont_name}Aux{exclude}".format(
81 cont_t = cont_t,cont_name = cont_name,
82 exclude = ".-".join(exclude))]
83
84 #add the segments to the AOD output
85 aod_items += ["xAOD::MuonSegmentContainer#MsSegments"]
86 aod_items += ["xAOD::MuonSegmentAuxContainer#MsSegmentsAux.-localSegPars.-parentSegment.-localSegCov"]
87
88 #add MS track and track particle containers to the ESD output
89 for trk in ["MuonMsAtIpTrackParticles", "MuonMsTrackParticles","MuonSTACOTrackParticles"]:
90 aod_items += [f"xAOD::TrackParticleContainer#{trk}",
91 f"xAOD::TrackParticleAuxContainer#{trk}Aux."]
92 # convert the Acts muon track to its xAOD representation and add it to the ESD output
93 if flags.Output.doWriteESD:
94 from ActsConfig.ActsEventCnvConfig import ActsToXAODTrackConverterAlgCfg
95 result.merge(ActsToXAODTrackConverterAlgCfg(flags, name = "MsTracksToXAODTrackConverterAlg",
96 InputActsTracksLocation = "MuonMsTracks",
97 OutputActsTracksLocation="MuonMsTracks"))
98 esd_items += MuonTrackContainersToPersistify("MuonMs")
99 if flags.Muon.buildMETrack:
100 result.merge(ActsToXAODTrackConverterAlgCfg(flags, name = "MsAtIpTracksToXAODTrackConverterAlg",
101 InputActsTracksLocation = "MuonMsAtIpTracks",
102 OutputActsTracksLocation="MuonMsAtIpTracks"))
103 esd_items += MuonTrackContainersToPersistify("MuonMsAtIp")
104 #for now add also the muon container here. This should go into the combined config at some point
105 aod_items += ["xAOD::MuonContainer#Muons"]
106 aod_items += ["xAOD::MuonAuxContainerR4#MuonsAux."]
107
108 aod_items += ["xAOD::MuonContainer#MuonsLRT"]
109 aod_items += ["xAOD::MuonAuxContainerR4#MuonsLRTAux."]
110
111 esd_items += aod_items
112
113 if flags.Output.doWriteESD:
114 result.merge(OutputStreamCfg(flags, "ESD", esd_items))
115 if flags.Output.doWriteAOD:
116 result.merge(OutputStreamCfg(flags, "AOD", aod_items))
117 return result
118
119