ATLAS Offline Software
Loading...
Searching...
No Matches
ReconstructionConfigR4.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3
5 toESD=[]
6 toESD += [f"xAOD::TrackSummaryContainer#{prefix}TrackSummary",
7 f"xAOD::TrackSummaryAuxContainer#{prefix}TrackSummaryAux.",
8 f"xAOD::TrackStateContainer#{prefix}TrackStates",
9 f"xAOD::TrackStateAuxContainer#{prefix}TrackStatesAux.-uncalibratedMeasurement",
10 f"xAOD::TrackParametersContainer#{prefix}TrackParameters",
11 f"xAOD::TrackParametersAuxContainer#{prefix}TrackParametersAux.",
12 f"xAOD::TrackJacobianContainer#{prefix}TrackJacobians",
13 f"xAOD::TrackJacobianAuxContainer#{prefix}TrackJacobiansAux.",
14 f"xAOD::TrackMeasurementContainer#{prefix}TrackMeasurements",
15 f"xAOD::TrackMeasurementAuxContainer#{prefix}TrackMeasurementsAux.",
16 f"xAOD::TrackSurfaceContainer#{prefix}TrackStateSurfaces",
17 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackStateSurfacesAux.",
18 f"xAOD::TrackSurfaceContainer#{prefix}TrackSurfaces",
19 f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackSurfacesAux."]
20 return toESD
21
23 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
24 result = ComponentAccumulator()
25
26 aod_items = []
27 esd_items = []
28
29
30 #Add the xAOD muon PRD containers to the ESD output
31 exclude = ["", "mdtTrkPrdLink", "rpcTrkPrdLink", "tgcTrkPrdLink", "segmentFitDriftSign"]
32 for cont_t, cont_name in [("MdtDriftCircle", "xMdtDriftCircles"),
33 ("MdtTwinDriftCircle", "xMdtTwinDriftCircles"),
34 ("sTgcStrip", "xAODsTgcStrips"),
35 ("sTgcPad", "xAODsTgcPads"),
36 ("sTgcWire", "xAODsTgcWires"),
37 ("MMCluster", "xAODMMClusters"),
38 ("TgcStrip", "xTgcStrips"),
39 ("RpcStrip", "xRpcStrips" ),
40 ("RpcStrip2D", "xRpcBILStrips"),
41 ("CombinedMuonStrip", "CombinedMuonPrds" )]:
42 esd_items+=[f"xAOD::{cont_t}Container#{cont_name}",
43 "xAOD::{cont_t}AuxContainer#{cont_name}Aux{exclude}".format(
44 cont_t = cont_t,cont_name = cont_name,
45 exclude = ".-".join(exclude))]
46
47 #add the SDOs to the ESD output if requested
48 if flags.Muon.writeSDOs:
49 for item in ["MDT_SDO","RPC_SDO","TGC_SDO","MM_SDO","sTGC_SDO"]:
50 esd_items += [f"xAOD::MuonSimHitContainer#{item}", f"xAOD::MuonSimHitAuxContainer#{item}Aux."]
51
52
53 #add the segments to the AOD output
54 aod_items += ["xAOD::MuonSegmentContainer#MuonSegmentsFromR4"]
55 aod_items += ["xAOD::MuonSegmentAuxContainer#MuonSegmentsFromR4Aux.-localSegPars.-parentSegment.-localSegCov"]
56
57 #add MS track and track particle containers to the ESD output
58 for trk in [ "MsTrksAtIpTrackParticles", "MsTrackParticlesR4"]:
59 aod_items += [f"xAOD::TrackParticleContainer#{trk}",
60 f"xAOD::TrackParticleAuxContainer#{trk}Aux."]
61 # convert the Acts muon track to its xAOD representation and add it to the ESD output
62 if flags.Output.doWriteESD:
63 from ActsConfig.ActsEventCnvConfig import ActsToXAODTrackConverterAlgCfg
64 result.merge(ActsToXAODTrackConverterAlgCfg(flags, name = "MsTracksToXAODTrackConverterAlg", InputActsTracksLocation = "MsTracks", OutputActsTracksLocation="MsTracks"))
65 esd_items += MuonTrackContainersToPersistify("Ms")
66
67 #for now add also the muon container here. This should go into the combined config at some point
68 aod_items += ["xAOD::MuonContainer#MuonsR4"]
69 aod_items += ["xAOD::MuonAuxContainerR4#MuonsR4Aux."]
70
71 esd_items += aod_items
72
73 if flags.Output.doWriteESD:
74 result.merge(OutputStreamCfg(flags, "ESD", esd_items))
75 if flags.Output.doWriteAOD:
76 result.merge(OutputStreamCfg(flags, "AOD", aod_items))
77 return result
78
79
81 result = ComponentAccumulator()
82
83 from MuonTrackFindingAlgs.TrackFindingConfig import MuonActsToTrkConvCfg
84 result.merge(MuonActsToTrkConvCfg(flags))
85 return result
86
87 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedMuonCandidateAlgCfg
88 result.merge(MuonCombinedMuonCandidateAlgCfg(flags,
89 name="MuonMSOECandidateAlgR4",
90 MuonSpectrometerTrackParticleLocation="MsTrackParticlesR4",
91 MuonCandidateLocation="MuonCandidatesR4",
92 MSOnlyExtrapolatedTrackLocation="MSOETrksR4"))
93
94
95 from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCreatorAlgCfg
96 result.merge(MuonCreatorAlgCfg(flags,
97 name="MuonCreatorAlgR4",
98 TagMaps=[],
99 CreateSAmuons = True,
100 MakeClusters= False,
101 MuonContainerLocation="MuonsR4",
102 MSOnlyExtrapolatedTrackLocation="MSOETrackParticlesR4",
103 MSOnlyExtrapolatedLocation="MSOEMuonTrackParticlesR4",
104 MuonCandidateLocation=["MuonCandidatesR4"],
105 ClusterContainerName=""))
106 return result
107
108
109
110
112 result = ComponentAccumulator()
113
114
115 from MuonConfig.MuonDataPrepConfig import xAODUncalibMeasPrepCfg
116 result.merge(xAODUncalibMeasPrepCfg(flags))
117
118
119 from MuonSpacePointFormation.SpacePointFormationConfig import MuonSpacePointFormationCfg
120 result.merge(MuonSpacePointFormationCfg(flags))
121
122
123 from MuonPatternRecognitionAlgs.MuonPatternRecognitionConfig import MuonPatternRecognitionCfg
124 result.merge(MuonPatternRecognitionCfg(flags))
125
126
127 from MuonTrackFindingAlgs.TrackFindingConfig import MSTrackFinderAlgCfg, MuidSaTagMakerAlgCfg, \
128 StandaloneTrackPartCnvCfg, MuonCreatorAlgCfg, \
129 MuonCombinedStacoAlgCfg, TrackSummaryLockCfg
130 result.merge(MSTrackFinderAlgCfg(flags))
131
132
133 result.merge(StandaloneTrackPartCnvCfg(flags))
134
135
136 MuonTags = ["MuonTagsSA"]
137
138 if flags.Reco.EnableTracking:
139 from MuonTrackFindingAlgs.TrackFindingConfig import MuonInDetTrackSelectionAlgCfg, \
140 MuonSegmentTaggingAlgCfg, \
141 BeamSpotPreparatorAlgCfg
142 if flags.Muon.buildMETrack: result.merge(BeamSpotPreparatorAlgCfg(flags))
143 result.merge(MuonInDetTrackSelectionAlgCfg(flags))
144 result.merge(MuonSegmentTaggingAlgCfg(flags))
145 MuonTags+= ["SegmentTags"]
146 result.merge(MuonCombinedStacoAlgCfg(flags))
147 MuonTags+=["MuonTagsSTACO"]
148
149 result.merge(MuidSaTagMakerAlgCfg(flags,
150 CombinedTags="MuonTagsSTACO" if flags.Reco.EnableTracking else ""))
151
152 if flags.Reco.EnableTracking:
153 result.merge(TrackSummaryLockCfg(flags, inContainer="MsTrksAtIpTrackParticles"))
154
155
156 result.merge(MuonCreatorAlgCfg(flags, name = "MuonActsCreatorAlg",
157 TagKeys=MuonTags))
158
159 from MuonTruthAlgsR4.MuonTruthAlgsConfig import MuonToTruthAssocAlgCfg
160 result.merge(MuonToTruthAssocAlgCfg(flags))
161 result.merge(MsTrkRecoChainConfig(flags))
162 if flags.Output.doWriteAOD or flags.Output.doWriteESD:
163 result.merge(StandaloneMuonOutputCfg(flags))
164 return result
MuonTrackContainersToPersistify(str prefix)