222def DESDMCPOutputCfg(flags, **kwargs):
223 result = ComponentAccumulator()
224 from AthenaConfiguration.Enums import LHCPeriod, MetadataCategory
225 isRun3 = flags.GeoModel.Run == LHCPeriod.Run3
226
227 container_items = ["xAOD::EventInfo#*", "xAOD::EventAuxInfo#*",
228
229 "xAOD::TrigNavigation#TrigNavigation","xAOD::TrigNavigationAuxInfo#TrigNavigationAux.",
230 "xAOD::TrigDecision#xTrigDecision", "xAOD::TrigDecisionAuxInfo#xTrigDecisionAux.",
231 "xAOD::TrigCompositeContainer#HLTNav_Summary_OnlineSlimmed", "xAOD::TrigCompositeAuxContainer#HLTNav_Summary_OnlineSlimmedAux.",
232 "xAOD::TrigConfKeys#TrigConfKeys", "HLT::HLTResult#HLTResult_HLT",
233
234 "xAOD::VertexContainer#PrimaryVertices",
235 "xAOD::VertexAuxContainer#PrimaryVerticesAux.-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV",
236
237 "TileDigitsContainer#MuRcvDigitsCnt",
238 "TileRawChannelContainer#MuRcvRawChCnt",
239 "TileMuonReceiverContainer#TileMuRcvCnt",
240
241 "xAOD::L2StandAloneMuonContainer#HLT_xAOD__L2StandAloneMuonContainer_MuonL2SAInfo",
242 "xAOD::L2StandAloneMuonAuxContainer#HLT_xAOD__L2StandAloneMuonContainer_MuonL2SAInfoAux.",
243
244 "xAOD::L2CombinedMuonContainer#HLT_xAOD__L2CombinedMuonContainer_MuonL2CBInfo",
245 "xAOD::L2CombinedMuonAuxContainer#HLT_xAOD__L2CombinedMuonContainer_MuonL2CBInfoAux.",
246
247 "xAOD::L2IsoMuonContainer#HLT_xAOD__L2IsoMuonContainer_MuonL2ISInfo",
248 "xAOD::L2IsoMuonAuxContainer#HLT_xAOD__L2IsoMuonContainer_MuonL2ISInfoAux.",
249 ]
250
251 if flags.Muon.DESDM_MCP.doAlignmentFormat:
252 container_items.append("xAOD::L2CombinedMuonContainer#HLT_MuonL2CBInfo")
253 container_items.append("xAOD::L2CombinedMuonAuxContainer#HLT_MuonL2CBInfoAux.")
254
255 if flags.Input.isMC:
256 container_items +=["xAOD::TruthParticleContainer#MuonTruthParticles",
257 "xAOD::TruthParticleAuxContainer#MuonTruthParticlesAux."]
258
259 l1_muon = ["LVL1MuonRoIs", "LVL1MuonRoIsBCp1", "LVL1MuonRoIsBCp2", "LVL1MuonRoIsBCm1","LVL1MuonRoIsBCm2",
260 "HLT_xAOD__MuonRoIContainer_L1TopoMuon"]
261 for l1 in l1_muon:
262 container_items +=["xAOD::MuonRoIContainer#{roi}".format(roi = l1),
263 "xAOD::MuonRoIAuxContainer#{roi}Aux.".format(roi = l1)
264 ]
265
266
267 xaod_muon = [ "Muons",
268 "HLT_MuonsCB_RoI",
269 "HLT_xAOD__MuonContainer_MuonEFInfo",
270 "HLT_xAOD__MuonContainer_MuTagIMO_EF",
271 "HLT_xAOD__MuonContainer_eMuonEFInfo" ]
272 for muon in xaod_muon:
273 container_items+=["xAOD::MuonContainer#{muon}".format(muon = muon),
274 "xAOD::MuonAuxContainer#{muon}Aux.".format(muon = muon)]
275
276 if flags.Muon.DESDM_MCP.doExtendedAlignmentContent:
277 container_items+=['xAOD::ElectronContainer#Electrons','xAOD::ElectronAuxContainer#ElectronsAux.',
278 'xAOD::PhotonContainer#Photons','xAOD::PhotonAuxContainer#PhotonsAux.',
279 'xAOD::JetContainer#AntiKt4EMPFlowJets','xAOD::JetAuxContainer#AntiKt4EMPFlowJetsAux.-PseudoJet',
280 'xAOD::MissingETContainer#MET_Core_AntiKt4EMPFlow','xAOD::MissingETAuxContainer#MET_Core_AntiKt4EMPFlowAux.']
281
282 trackParticleAuxExclusions="-clusterAssociation.-trackParameterCovarianceMatrices.-parameterX.-parameterY.-parameterZ.-parameterPX.-parameterPY.-parameterPZ.-parameterPosition"
283
284 if flags.Muon.DESDM_MCP.doAlignmentFormat:
285 trackParticleAuxExclusions=""
286 track_parts = ["MuonSpectrometerTrackParticles",
287 "CombinedMuonTrackParticles",
288 "ExtrapolatedMuonTrackParticles",
289 "InDetTrackParticles",
290 "MSOnlyExtrapolatedMuonTrackParticles",
291
292 "HLT_xAOD__TrackParticleContainer_MuonEFInfo_CombTrackParticles",
293 "HLT_xAOD__TrackParticleContainer_MuonEFInfo_ExtrapTrackParticles",
294 "HLT_xAOD__TrackParticleContainer_MuTagIMO_EF_CombTrackParticles",
295 "HLT_xAOD__TrackParticleContainer_MuTagIMO_EF_ExtrapTrackParticles",
296 "HLT_xAOD__TrackParticleContainer_eMuonEFInfo_CombTrackParticles",
297 "HLT_xAOD__TrackParticleContainer_eMuonEFInfo_ExtrapTrackParticles",
298 "HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_MuonIso_EFID",
299 "HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_FTF",
300 "HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_EFID",
301 "HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_MuonIso_FTF"]
302 for trk in track_parts:
303 container_items +=["xAOD::TrackParticleContainer#{trk}".format(trk = trk),
304 "xAOD::TrackParticleAuxContainer#{trk}Aux.{excl}".format(trk = trk,
305 excl = trackParticleAuxExclusions )]
306 segment_cont = ["MuonSegments", "UnAssocMuonSegments" ] + (["xAODNSWSegments"] if isRun3 else [])
307 for seg in segment_cont:
308 container_items +=["xAOD::MuonSegmentContainer#{seg}".format(seg = seg),
309 "xAOD::MuonSegmentAuxContainer#{seg}Aux.".format(seg =seg)]
310
311 container_items += ["Muon::RpcPrepDataContainer#*", "Muon::TgcPrepDataContainer#*", "Muon::MdtPrepDataContainer#*"]
312
313 if not isRun3: container_items +=["Muon::CscPrepDataContainer#*", "Muon::CscStripPrepDataContainer#CSC_Measurements"]
314 else: container_items +=["Muon::MMPrepDataContainer#*",
315 "Muon::sTgcPrepDataContainer#*",
316 "xAOD::NSWTPRDOContainer#*","xAOD::NSWTPRDOAuxContainer#*",
317 "xAOD::NSWMMTPRDOContainer#*","xAOD::NSWMMTPRDOAuxContainer#*",
318 "Muon::NSW_PadTriggerDataContainer#*",
319 "Muon::NSW_TrigRawDataContainer#L1_NSWTrigContainer" ,
320 ]
321
322
323 container_items += ["MuCTPI_RDO#MUCTPI_RDO", "RpcPadContainer#RPCPAD",
324 "Muon::RpcCoinDataContainer#RPC_triggerHits",
325 "RpcSectorLogicContainer#RPC_SECTORLOGIC"]
326
327 container_items += ["Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionPriorBC",
328 "Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionNextBC",
329 "Muon::TgcCoinDataContainer#TrigT1CoinDataCollectionNextNextBC",
330 "Muon::TgcCoinDataContainer#TrigT1CoinDataCollection"]
331
332
333
334 trk_seg_cont = ["TrkMuonSegments", "UnAssocMuonTrkSegments"]+ (["TrackMuonNSWSegments"] if isRun3 else [])
335 container_items += ["Trk::SegmentCollection#{seg}".format(seg = seg) for seg in trk_seg_cont]
336
337 trk_cont = ["MuonSpectrometerTracks", "CombinedMuonTracks", "MSOnlyExtrapolatedTracks", "ExtrapolatedMuonTracks" ]
338 container_items += ["TrackCollection#{trk}".format(trk = trk) for trk in trk_cont]
339
340
341
342 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
343 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
344 kwargs.setdefault("ItemList", container_items)
345 result.merge(OutputStreamCfg(flags, **kwargs))
346 result.merge(
347 SetupMetaDataForStreamCfg(
348 flags,
349 kwargs.get("streamName"),
350 kwargs.get("AcceptAlgs"),
351 createMetadata=[
352 MetadataCategory.ByteStreamMetaData,
353 MetadataCategory.CutFlowMetaData,
354 MetadataCategory.LumiBlockMetaData,
355 MetadataCategory.TriggerMenuMetaData,
356 ],
357 )
358 )
359 return result
360
361