12def StandaloneMuonOutputCfg(flags):
13 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
14 result = ComponentAccumulator()
15
16
17 from TrkEventCnvTools.TrkEventCnvToolsConfig import (
18 TrkEventCnvSuperToolCfg)
19 result.merge(TrkEventCnvSuperToolCfg(flags))
20
21 aod_items = []
22 if flags.Detector.EnableMM or flags.Detector.EnablesTGC:
23 aod_items += ["xAOD::MuonSegmentContainer#xAODNSWSegments"]
24 aod_items += ["xAOD::MuonSegmentAuxContainer#xAODNSWSegmentsAux."]
25
26 aod_items += ["xAOD::MuonSegmentContainer#NCB_MuonSegments"]
27 aod_items += ["xAOD::MuonSegmentAuxContainer#NCB_MuonSegmentsAux."]
28
29 if flags.Muon.scheduleActsReco:
30 aod_items += ["xAOD::MuonSegmentContainer#MuonSegmentsFromR4"]
31 aod_items += ["xAOD::MuonSegmentAuxContainer#MuonSegmentsFromR4Aux.-localSegPars.-parentSegment"]
32
33
34 aod_items += ["xAOD::TrackParticleContainer#MuonSpectrometerTrackParticles"]
35 aod_items += ["xAOD::TrackParticleAuxContainer#MuonSpectrometerTrackParticlesAux."]
36 aod_items += ["xAOD::TrackParticleContainer#MuonSpectrometerOnlyTrackParticles"]
37 aod_items += ["xAOD::TrackParticleAuxContainer#MuonSpectrometerOnlyTrackParticlesAux."]
38
39 aod_items += ["xAOD::TrackParticleContainer#MSonlyTracklets"]
40 aod_items += ["xAOD::TrackParticleAuxContainer#MSonlyTrackletsAux."]
41 aod_items += ["xAOD::VertexContainer#MSDisplacedVertex"]
42 aod_items += ["xAOD::VertexAuxContainer#MSDisplacedVertexAux."]
43
44 if flags.Input.isMC or flags.Overlay.DataOverlay:
45
46 aod_items += ["xAOD::TruthParticleContainer#MuonTruthParticles"]
47 aod_items += ["xAOD::TruthParticleAuxContainer#MuonTruthParticlesAux."]
48
49
50 aod_items += ["xAOD::MuonSegmentContainer#MuonTruthSegments"]
51 aod_items += ["xAOD::MuonSegmentAuxContainer#MuonTruthSegmentsAux.-localSegPars"]
52
53
54 esd_items = []
55 esd_items += aod_items
56
57
58 if flags.Detector.EnableMM:
59 esd_items += ["Muon::MMPrepDataContainer#MM_Measurements"]
60 esd_items += ["xAOD::NSWMMTPRDOContainer#*", "xAOD::NSWMMTPRDOAuxContainer#*"]
61 if flags.Detector.EnablesTGC:
62 esd_items += ["Muon::sTgcPrepDataContainer#STGC_Measurements"]
63 esd_items += ["Muon::NSW_PadTriggerDataContainer#NSW_PadTrigger_RDO"]
64 esd_items += ["xAOD::NSWTPRDOContainer#*", "xAOD::NSWTPRDOAuxContainer#*"]
65
66
67 if flags.Detector.EnableCSC:
68 esd_items += ["Muon::CscPrepDataContainer#CSC_Clusters"]
69 esd_items += ["Muon::CscStripPrepDataContainer#CSC_Measurements"]
70 esd_items += ["Muon::RpcPrepDataContainer#RPC_Measurements"]
71 esd_items += ["Muon::TgcPrepDataContainer#TGC_MeasurementsAllBCs"]
72 esd_items += ["Muon::MdtPrepDataContainer#MDT_DriftCircles"]
73
74 if flags.Muon.writexAODPRD:
75 esd_items += ["xAOD::MdtDriftCircleContainer#xMdtDriftCircles", "xAOD::MdtDriftCircleAuxContainer#xMdtDriftCirclesAux." ]
76 esd_items += ["xAOD::MdtTwinDriftCircleContainer#xMdtTwinDriftCircles", "xAOD::MdtTwinDriftCircleAuxContainer#xMdtTwinDriftCirclesAux." ]
77 esd_items += ["xAOD::sTgcStripContainer#xAODsTgcStrips", "xAOD::sTgcStripAuxContainer#xAODsTgcStripsAux." ]
78 esd_items += ["xAOD::sTgcPadContainer#xAODsTgcPads", "xAOD::sTgcPadAuxContainer#xAODsTgcPadsAux." ]
79 esd_items += ["xAOD::sTgcWireContainer#xAODsTgcWires", "xAOD::sTgcWireAuxContainer#xAODsTgcWiresAux." ]
80 esd_items += ["xAOD::MMClusterContainer#xAODMMClusters", "xAOD::MMClusterAuxContainer#xAODMMClustersAux." ]
81 esd_items += ["xAOD::TgcStripContainer#xTgcStrips", "xAOD::TgcStripAuxContainer#xTgcStripsAux." ]
82 esd_items += ["xAOD::RpcStripContainer#xRpcStrips", "xAOD::RpcStripAuxContainer#xRpcStripsAux." ]
83 esd_items += ["xAOD::RpcStrip2DContainer#xRpcBILStrips", "xAOD::RpcStrip2DAuxContainer#xRpcBILStripsAux." ]
84 esd_items += ["xAOD::CombinedMuonStripContainer#CombinedMuonPrds", "xAOD::CombinedMuonStripAuxContainer#CombinedMuonPrdsAux."]
85
86
87
88
89 esd_items += ["Muon::TgcCoinDataContainer#TrigT1CoinDataCollection"]
90 esd_items += ["Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionPriorBC"]
91 esd_items += ["Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionNextBC"]
92 esd_items += ["Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionNextNextBC"]
93 esd_items += ["Muon::RpcCoinDataContainer#RPC_triggerHits"]
94 esd_items += ["RpcSectorLogicContainer#RPC_SECTORLOGIC"]
95
96
97 if flags.Output.doWriteRDO or flags.Muon.doWriteRpcRDO:
98 esd_items += ["RpcPadContainer#RPCPAD"]
99
100
101 esd_items += ["Trk::SegmentCollection#NCB_TrackMuonSegments"]
102
105
106
107 esd_items += ["TrackCollection#MuonSpectrometerTracks"]
108 if flags.Detector.EnableMM or flags.Detector.EnablesTGC:
109 esd_items += ["Trk::SegmentCollection#TrackMuonNSWSegments"]
110
111
112 if flags.Input.isMC:
113 esd_items += ["TrackRecordCollection#MuonEntryLayerFilter"]
114 esd_items += ["TrackRecordCollection#MuonExitLayerFilter"]
115
116 esd_items += ["PRD_MultiTruthCollection#MDT_TruthMap",
117 "PRD_MultiTruthCollection#RPC_TruthMap", "PRD_MultiTruthCollection#TGC_TruthMap"]
118 if flags.Detector.EnableCSC:
119 esd_items += ["PRD_MultiTruthCollection#CSC_TruthMap"]
120 if flags.Detector.EnablesTGC:
121 esd_items += ["PRD_MultiTruthCollection#STGC_TruthMap"]
122 if flags.Detector.EnableMM:
123 esd_items += ["PRD_MultiTruthCollection#MM_TruthMap"]
124
125
126 esd_items += ["DetailedTrackTruthCollection#MuonSpectrometerTracksTruth"]
127 esd_items += ["TrackTruthCollection#MuonSpectrometerTracksTruth"]
128
129 if flags.Muon.writeSDOs:
130 if flags.Detector.EnableCSC: esd_items+=["CscSimDataCollection#CSC_SDO"]
131 esd_items+=["MuonSimDataCollection#MDT_SDO"]
132 esd_items+=["MuonSimDataCollection#RPC_SDO"]
133 esd_items+=["MuonSimDataCollection#TGC_SDO"]
134 if flags.Detector.EnablesTGC: esd_items+=["MuonSimDataCollection#sTGC_SDO"]
135 if flags.Detector.EnableMM: esd_items+=["MuonSimDataCollection#MM_SDO"]
136
137 if flags.Muon.writexAODPRD:
138 for item in ["MDT_SDO","RPC_SDO","TGC_SDO","MM_SDO","sTGC_SDO"]:
139 esd_items += [f"xAOD::MuonSimHitContainer#{item}", f"xAOD::MuonSimHitAuxContainer#{item}Aux."]
140
141 if flags.Output.doWriteESD:
142 result.merge(OutputStreamCfg(flags, "ESD", esd_items))
143 if flags.Output.doWriteAOD:
144 result.merge(OutputStreamCfg(flags, "AOD", aod_items))
145 return result
146
147