13 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
14 result = ComponentAccumulator()
17 from TrkEventCnvTools.TrkEventCnvToolsConfig
import (
18 TrkEventCnvSuperToolCfg)
19 result.merge(TrkEventCnvSuperToolCfg(flags))
22 if flags.Detector.EnableMM
or flags.Detector.EnablesTGC:
23 aod_items += [
"xAOD::MuonSegmentContainer#xAODNSWSegments"]
24 aod_items += [
"xAOD::MuonSegmentAuxContainer#xAODNSWSegmentsAux."]
26 aod_items += [
"xAOD::MuonSegmentContainer#NCB_MuonSegments"]
27 aod_items += [
"xAOD::MuonSegmentAuxContainer#NCB_MuonSegmentsAux."]
30 aod_items += [
"xAOD::TrackParticleContainer#MuonSpectrometerTrackParticles"]
31 aod_items += [
"xAOD::TrackParticleAuxContainer#MuonSpectrometerTrackParticlesAux."]
32 aod_items += [
"xAOD::TrackParticleContainer#MuonSpectrometerOnlyTrackParticles"]
33 aod_items += [
"xAOD::TrackParticleAuxContainer#MuonSpectrometerOnlyTrackParticlesAux."]
35 aod_items += [
"xAOD::TrackParticleContainer#MSonlyTracklets"]
36 aod_items += [
"xAOD::TrackParticleAuxContainer#MSonlyTrackletsAux."]
37 aod_items += [
"xAOD::VertexContainer#MSDisplacedVertex"]
38 aod_items += [
"xAOD::VertexAuxContainer#MSDisplacedVertexAux."]
40 if flags.Input.isMC
or flags.Overlay.DataOverlay:
42 aod_items += [
"xAOD::TruthParticleContainer#MuonTruthParticles"]
43 aod_items += [
"xAOD::TruthParticleAuxContainer#MuonTruthParticlesAux."]
46 aod_items += [
"xAOD::MuonSegmentContainer#MuonTruthSegments"]
47 aod_items += [
"xAOD::MuonSegmentAuxContainer#MuonTruthSegmentsAux.-localSegPars"]
51 esd_items += aod_items
54 if flags.Detector.EnableMM:
55 esd_items += [
"Muon::MMPrepDataContainer#MM_Measurements"]
56 esd_items += [
"xAOD::NSWMMTPRDOContainer#*",
"xAOD::NSWMMTPRDOAuxContainer#*"]
57 if flags.Detector.EnablesTGC:
58 esd_items += [
"Muon::sTgcPrepDataContainer#STGC_Measurements"]
59 esd_items += [
"Muon::NSW_PadTriggerDataContainer#NSW_PadTrigger_RDO"]
60 esd_items += [
"xAOD::NSWTPRDOContainer#*",
"xAOD::NSWTPRDOAuxContainer#*"]
63 if flags.Detector.EnableCSC:
64 esd_items += [
"Muon::CscPrepDataContainer#CSC_Clusters"]
65 esd_items += [
"Muon::CscStripPrepDataContainer#CSC_Measurements"]
66 esd_items += [
"Muon::RpcPrepDataContainer#RPC_Measurements"]
67 esd_items += [
"Muon::TgcPrepDataContainer#TGC_MeasurementsAllBCs"]
68 esd_items += [
"Muon::MdtPrepDataContainer#MDT_DriftCircles"]
72 esd_items += [
"Muon::TgcCoinDataContainer#TrigT1CoinDataCollection"]
73 esd_items += [
"Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionPriorBC"]
74 esd_items += [
"Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionNextBC"]
75 esd_items += [
"Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionNextNextBC"]
76 esd_items += [
"Muon::RpcCoinDataContainer#RPC_triggerHits"]
77 esd_items += [
"RpcSectorLogicContainer#RPC_SECTORLOGIC"]
80 if flags.Output.doWriteRDO
or flags.Muon.doWriteRpcRDO:
81 esd_items += [
"RpcPadContainer#RPCPAD"]
84 esd_items += [
"Trk::SegmentCollection#NCB_TrackMuonSegments"]
90 esd_items += [
"TrackCollection#MuonSpectrometerTracks"]
91 if flags.Detector.EnableMM
or flags.Detector.EnablesTGC:
92 esd_items += [
"Trk::SegmentCollection#TrackMuonNSWSegments"]
96 esd_items += [
"TrackRecordCollection#MuonEntryLayerFilter"]
97 esd_items += [
"TrackRecordCollection#MuonExitLayerFilter"]
99 esd_items += [
"PRD_MultiTruthCollection#MDT_TruthMap",
100 "PRD_MultiTruthCollection#RPC_TruthMap",
"PRD_MultiTruthCollection#TGC_TruthMap"]
101 if flags.Detector.EnableCSC:
102 esd_items += [
"PRD_MultiTruthCollection#CSC_TruthMap"]
103 if flags.Detector.EnablesTGC:
104 esd_items += [
"PRD_MultiTruthCollection#STGC_TruthMap"]
105 if flags.Detector.EnableMM:
106 esd_items += [
"PRD_MultiTruthCollection#MM_TruthMap"]
109 esd_items += [
"DetailedTrackTruthCollection#MuonSpectrometerTracksTruth"]
110 esd_items += [
"TrackTruthCollection#MuonSpectrometerTracksTruth"]
112 if flags.Muon.writeSDOs:
113 if flags.Detector.EnableCSC: esd_items+=[
"CscSimDataCollection#CSC_SDO"]
114 esd_items+=[
"MuonSimDataCollection#MDT_SDO"]
115 esd_items+=[
"MuonSimDataCollection#RPC_SDO"]
116 esd_items+=[
"MuonSimDataCollection#TGC_SDO"]
117 if flags.Detector.EnablesTGC: esd_items+=[
"MuonSimDataCollection#sTGC_SDO"]
118 if flags.Detector.EnableMM: esd_items+=[
"MuonSimDataCollection#MM_SDO"]
121 if flags.Output.doWriteESD:
122 result.merge(OutputStreamCfg(flags,
"ESD", esd_items))
123 if flags.Output.doWriteAOD:
124 result.merge(OutputStreamCfg(flags,
"AOD", aod_items))
129 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
130 result = ComponentAccumulator()
131 if flags.Muon.scheduleActsReco:
132 from MuonConfig.ReconstructionConfigR4
import MuonReconstructionConfig
134 if not flags.Muon.scheduleLegacyReco:
137 from MuonConfig.MuonPrepDataConvConfig
import MuonPrepDataConvCfg
138 from MuonConfig.MuonRecToolsConfig
import MuonTrackScoringToolCfg
139 from MuonConfig.MuonGeometryConfig
import MuonIdHelperSvcCfg
140 from MuonConfig.MuonRecToolsConfig
import MuonEDMHelperSvcCfg
141 from TrkConfig.TrkTrackSummaryToolConfig
import MuonTrackSummaryToolCfg
142 from TrkConfig.AtlasExtrapolatorConfig
import AtlasExtrapolatorCfg
145 result.merge(MuonIdHelperSvcCfg(flags))
146 result.merge(MuonEDMHelperSvcCfg(flags))
149 result.merge(MuonPrepDataConvCfg(flags))
150 result.merge(MuonSegmentFindingCfg(flags))
151 result.merge(MuonTrackBuildingCfg(flags))
152 result.merge(MuonStandaloneTrackParticleCnvAlgCfg(flags))
156 from AthenaConfiguration.Enums
import Format
157 if (flags.Input.isMC
or flags.Overlay.DataOverlay)
and flags.Input.Format!=Format.BS:
159 if "MuonEntryLayerFilter" not in flags.Input.Collections
and \
160 (
"MuonEntryLayer" in flags.Input.Collections):
161 result.addEventAlgo(CompFactory.TrackRecordFilter())
162 if "MuonExitLayerFilter" not in flags.Input.Collections
and \
163 (
"MuonExitLayer" in flags.Input.Collections):
164 result.addEventAlgo(CompFactory.TrackRecordFilter(
"TrackRecordFilterMuonExitLayer",
165 inputName=
"MuonExitLayer",
166 outputName=
"MuonExitLayerFilter"))
169 track_cols = [
"MuonSpectrometerTracks"]
170 track_colstp = [
"MuonSpectrometerTrackParticles"]
172 from MuonConfig.MuonTruthAlgsConfig
import MuonDetailedTrackTruthMakerCfg
173 result.merge(MuonDetailedTrackTruthMakerCfg(flags, name=
"MuonStandaloneDetailedTrackTruthMaker",
174 TrackCollectionNames=track_cols))
176 if not flags.Muon.usePhaseIIGeoSetup:
177 for i
in range(len(track_cols)):
178 from TrkConfig.TrkTruthAlgsConfig
import TrackTruthSelectorCfg, TrackParticleTruthAlgCfg
179 result.merge(TrackTruthSelectorCfg(flags, tracks=track_cols[i]))
180 result.merge(TrackParticleTruthAlgCfg(flags, tracks=track_cols[i],
181 TrackParticleName=track_colstp[i]))
185 if flags.Muon.makePRDs:
186 if not flags.Muon.usePhaseIIGeoSetup:
187 from MuonConfig.MuonTruthAlgsConfig
import MuonTruthAlgsCfg
188 result.merge(MuonTruthAlgsCfg(flags))
190 from MuonTruthAlgsR4.MuonTruthAlgsConfig
import MuonTruthAlgsCfg
191 result.merge(MuonTruthAlgsCfg(flags))
193 if flags.Muon.doMSVertex:
194 msvertexrecotool = CompFactory.Muon.MSVertexRecoTool(
195 MyExtrapolator=result.popToolsAndMerge(
196 AtlasExtrapolatorCfg(flags)),
197 TGCKey=
'TGC_MeasurementsAllBCs')
198 the_alg = CompFactory.MSVertexRecoAlg(
199 name=
"MSVertexRecoAlg", MSVertexRecoTool=msvertexrecotool)
201 result.addEventAlgo(the_alg)
206 result.addPublicTool(result.popToolsAndMerge(
207 MuonTrackScoringToolCfg(flags)))
209 result.addPublicTool(result.popToolsAndMerge(
210 MuonTrackSummaryToolCfg(flags)))
213 if flags.Output.doWriteESD
or flags.Output.doWriteAOD:
221 from MuonConfig.MuonConfigUtils
import SetupMuonStandaloneConfigFlags
222 flags = SetupMuonStandaloneConfigFlags()
224 from MuonConfig.MuonConfigUtils
import SetupMuonStandaloneCA
225 cfg = SetupMuonStandaloneCA(flags)
231 from SGComps.AddressRemappingConfig
import InputRenameCfg
232 cfg.merge(InputRenameCfg(
"TrackCollection",
233 "MuonSpectrometerTracks",
"MuonSpectrometerTracks_old"))
235 cfg.printConfig(withDetails=
True)
239 oldRemaps = cfg.getService(
"AddressRemappingSvc").TypeKeyRenameMaps
240 cfg.getService(
"AddressRemappingSvc").TypeKeyRenameMaps = [
241 remap
for remap
in oldRemaps
if "Trk::SegmentCollection" not in remap]
243 f = open(
"MuonReconstruction.pkl",
"wb")
247 from MuonConfig.MuonConfigUtils
import executeTest
255 This config (made for r24.0 in Nov 2024) is used to:
256 1] Switch setup of the segment making in the NSW to loosen constrain on the IP
257 2] Adapt and switch off various criteria in TrackSteering/building to be able to reconstruct track from the non-standards (non-collision background) segments
261 cfg.getEventAlgo(
"MuonSegmentMaker").NSWSegmentMaker.SeedMMStereos=
False
262 cfg.getEventAlgo(
"MuonSegmentMaker").NSWSegmentMaker.IPConstraint=
False
266 cfg.getEventAlgo(
"MuonCreatorAlg").MuonCreatorTool.RequireMSOEforSA=
False
267 cfg.getEventAlgo(
"MuonCreatorAlg").MuonCreatorTool.RequireCaloForSA=
False
269 cfg.getEventAlgo(
"MuonCombinedMuonCandidateAlg").MuonCandidateTool.ExtrapolationStrategy=1
272 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.SegSeedQCut = -2
273 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.Seg2ndQCut = -2
274 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.SegOtherQCut = -2
275 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.UseTightSegmentMatching =
False
277 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.TrackBuilderTool.CandidateMatchingTool.DoTrackSegmentMatching =
False
278 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.MooBuilderTool.CandidateMatchingTool.DoTrackSegmentMatching =
False
279 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.TrackBuilderTool.CandidateMatchingTool.DoTrackSegmentMatching =
False
281 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.CandidateMatchingTool.DoTrackSegmentMatching =
False
283 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.TrackRefinementTool.CandidateMatchingTool.DoTrackSegmentMatching =
False
286 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.CandidateMatchingTool.SegmentMatchingTool.UseEndcapExtrapolationMatching =
False
287 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.CandidateMatchingTool.SegmentMatchingTool.doThetaMatching =
False
288 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.CandidateMatchingTool.SegmentMatchingTool.doPhiMatching =
False
291 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.TrackBuilderTool.CandidateMatchingTool.SegmentMatchingTool.UseEndcapExtrapolationMatching =
False
292 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.TrackBuilderTool.CandidateMatchingTool.SegmentMatchingTool.doThetaMatching =
False
293 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.TrackBuilderTool.CandidateMatchingTool.SegmentMatchingTool.doPhiMatching =
False
295 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.MooBuilderTool.CandidateMatchingTool.SegmentMatchingTool.UseEndcapExtrapolationMatching =
False
296 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.MooBuilderTool.CandidateMatchingTool.SegmentMatchingTool.doThetaMatching =
False
297 cfg.getEventAlgo(
"MuPatTrackBuilder").TrackSteering.MooBuilderTool.CandidateMatchingTool.SegmentMatchingTool.doPhiMatching =
False