319def IDTIDECfg(flags):
320 """Main config fragment for IDTIDE"""
321 acc = ComponentAccumulator()
322
323
324 if flags.Detector.GeometryID:
325 acc.merge(IDTIDEKernelCfg(flags, StreamName='StreamDAOD_IDTIDE'))
326 if flags.Detector.GeometryITk:
327 acc.merge(ITkTIDEKernelCfg(flags, StreamName='StreamDAOD_IDTIDE'))
328
329
330
331
332 from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
333 from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
334 from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
336 "IDTIDESlimmingHelper",
337 NamesAndTypes=flags.Input.TypedCollections,
338 flags=flags)
339
340 AllVariables = []
341 StaticContent = []
342 SmartCollections = []
343 ExtraVariables = []
344
345 IDTIDESlimmingHelper.AppendToDictionary.update({
346 "EventInfo": "xAOD::EventInfo", "EventInfoAux": "xAOD::EventAuxInfo",
347 "CombinedMuonTrackParticles": "xAOD::TrackParticleContainer", "CombinedMuonTrackParticlesAux": "xAOD::TrackParticleAuxContainer",
348 "Muons": "xAOD::MuonContainer", "MuonsAux": "xAOD::MuonAuxContainer",
349 "Electrons": "xAOD::ElectronContainer",
350 "ElectronsAux": "xAOD::ElectronAuxContainer",
351 "Photons": "xAOD::PhotonContainer",
352 "PhotonsAux": "xAOD::PhotonAuxContainer",
353 "JetETMissNeutralParticleFlowObjects": "xAOD::FlowElementContainer",
354 "JetETMissNeutralParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
355 "JetETMissChargedParticleFlowObjects": "xAOD::FlowElementContainer",
356 "JetETMissChargedParticleFlowObjectsAux": "xAOD::FlowElementAuxContainer",
357 "TauJets": "xAOD::TauJetContainer",
358 "TauJetsAux": "xAOD::TauJetAuxContainer",
359 "InDetTrackParticles": "xAOD::TrackParticleContainer",
360 "InDetTrackParticlesAux": "xAOD::TrackParticleAuxContainer",
361 "InDetLargeD0TrackParticles": "xAOD::TrackParticleContainer",
362 "InDetLargeD0TrackParticlesAux": "xAOD::TrackParticleAuxContainer",
363 "Kt4EMTopoOriginEventShape": "xAOD::EventShape",
364 "Kt4EMTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
365 "Kt4LCTopoOriginEventShape": "xAOD::EventShape",
366 "Kt4LCTopoOriginEventShapeAux": "xAOD::EventShapeAuxInfo",
367 "NeutralParticleFlowIsoCentralEventShape": "xAOD::EventShape",
368 "NeutralParticleFlowIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
369 "NeutralParticleFlowIsoForwardEventShape": "xAOD::EventShape",
370 "NeutralParticleFlowIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo",
371 "TopoClusterIsoCentralEventShape": "xAOD::EventShape",
372 "TopoClusterIsoCentralEventShapeAux": "xAOD::EventShapeAuxInfo",
373 "TopoClusterIsoForwardEventShape": "xAOD::EventShape",
374 "TopoClusterIsoForwardEventShapeAux": "xAOD::EventShapeAuxInfo"}
375 )
376 if flags.Detector.GeometryID:
377 IDTIDESlimmingHelper.AppendToDictionary.update({
378 "PixelClusters": "xAOD::TrackMeasurementValidationContainer",
379 "PixelClustersAux": "xAOD::TrackMeasurementValidationAuxContainer",
380 "SCT_Clusters": "xAOD::TrackMeasurementValidationContainer",
381 "SCT_ClustersAux": "xAOD::TrackMeasurementValidationAuxContainer"
382 })
383 if flags.Detector.GeometryITk:
384 IDTIDESlimmingHelper.AppendToDictionary.update({
385 "ITkPixelMeasurements": "xAOD::TrackMeasurementValidationContainer",
386 "ITkPixelMeasurementsAux": "xAOD::TrackMeasurementValidationAuxContainer",
387 "ITkStripMeasurements": "xAOD::TrackMeasurementValidationContainer",
388 "ITkStripMeasurementsAux": "xAOD::TrackMeasurementValidationAuxContainer"
389 })
390
391 SmartCollections += ["Muons", "Electrons", "Photons"]
392
393 AllVariables += ["EventInfo",
394 "JetETMissNeutralParticleFlowObjects",
395 "JetETMissChargedParticleFlowObjects",
396 "InDetTrackParticles",
397 "InDetLargeD0TrackParticles",
398 "PixelClusters",
399 "SCT_Clusters",
400 "Kt4EMTopoOriginEventShape",
401 "Kt4LCTopoOriginEventShape",
402 "NeutralParticleFlowIsoCentralEventShape",
403 "NeutralParticleFlowIsoForwardEventShape",
404 "TopoClusterIsoCentralEventShape",
405 "TopoClusterIsoForwardEventShape",
406 ]
407 if flags.Detector.GeometryID:
408 AllVariables += ["PixelClusters", "SCT_Clusters"]
409 if flags.Detector.GeometryITk:
410 AllVariables += ["ITkPixelMeasurements", "ITkStripMeasurements"]
411
412 IDTIDESlimmingHelper.AppendToDictionary.update({
413 "Kt4EMPFlowEventShape": "xAOD::EventShape",
414 "Kt4EMPFlowEventShapeAux": "xAOD::EventShapeAuxInfo",
415 "PrimaryVertices": "xAOD::VertexContainer",
416 "PrimaryVerticesAux": "xAOD::VertexAuxContainer",
417 "InDetTrackParticlesClusterAssociations": "xAOD::TrackParticleClusterAssociationContainer",
418 "InDetTrackParticlesClusterAssociationsAux": "xAOD::TrackParticleClusterAssociationAuxContainer",
419 "AntiKt4EMTopoJets": "xAOD::JetContainer",
420 "AntiKt4EMTopoJetsAux": "xAOD::JetAuxContainer",
421 "AntiKt4EMPFlowJets": "xAOD::JetContainer",
422 "AntiKt4EMPFlowJetsAux": "xAOD::JetAuxContainer"})
423
424 ExtraVariables += ["TauJets.ABS_ETA_LEAD_TRACK.ClusterTotalEnergy.ClustersMeanCenterLambda.ClustersMeanEMProbability.ClustersMeanFirstEngDens.ClustersMeanPresamplerFrac.ClustersMeanSecondLambda.EMFracFixed.LeadClusterFrac.NNDecayMode.NNDecayModeProb_1p0n.NNDecayModeProb_1p1n.NNDecayModeProb_1pXn.NNDecayModeProb_3p0n.NNDecayModeProb_3pXn.PFOEngRelDiff.PanTau_DecayModeExtended.UpsilonCluster.absipSigLeadTrk.chargedFELinks.etHotShotWin.etHotShotWinOverPtLeadTrk.etaCombined.hadLeakFracFixed.leadTrackProbHT.mCombined.mu.nConversionTracks.nFakeTracks.nModifiedIsolationTracks.nVtxPU.neutralFELinks.passThinning.phiCombined.ptCombined.ptIntermediateAxisEM.rho"]
425 ExtraVariables += ["PrimaryVertices.sumPt2.x.y.z"]
426
427 AllVariables += ["Kt4EMPFlowEventShape",
428 "InDetTrackParticlesClusterAssociations",
429 "AntiKt4EMTopoJets", "AntiKt4EMPFlowJets"]
430
431 if flags.Detector.EnablePixel:
432 IDTIDESlimmingHelper.AppendToDictionary.update(
433 {'PixelMSOSs': 'xAOD::TrackStateValidationContainer',
434 'PixelMSOSsAux': 'xAOD::TrackStateValidationAuxContainer'})
435 AllVariables += ["PixelMSOSs"]
436
437 if flags.Detector.EnableSCT:
438 IDTIDESlimmingHelper.AppendToDictionary.update(
439 {'SCT_MSOSs': 'xAOD::TrackStateValidationContainer',
440 'SCT_MSOSsAux': 'xAOD::TrackStateValidationAuxContainer'})
441 AllVariables += ["SCT_MSOSs"]
442
443 if flags.Detector.EnableTRT:
444 IDTIDESlimmingHelper.AppendToDictionary.update(
445 {'TRT_MSOSs': 'xAOD::TrackStateValidationContainer',
446 'TRT_MSOSsAux': 'xAOD::TrackStateValidationAuxContainer'})
447 AllVariables += ["TRT_MSOSs"]
448
449 if flags.Detector.EnableITkPixel:
450 IDTIDESlimmingHelper.AppendToDictionary.update(
451 {'ITkPixelMSOSs': 'xAOD::TrackStateValidationContainer',
452 'ITkPixelMSOSsAux': 'xAOD::TrackStateValidationAuxContainer'})
453 AllVariables += ["ITkPixelMSOSs"]
454
455 if flags.Detector.EnableITkStrip:
456 IDTIDESlimmingHelper.AppendToDictionary.update(
457 {'ITkStripMSOSs': 'xAOD::TrackStateValidationContainer',
458 'ITkStripMSOSsAux': 'xAOD::TrackStateValidationAuxContainer'})
459 AllVariables += ["ITkStripMSOSs"]
460
461 if flags.Input.isMC:
462
463 IDTIDESlimmingHelper.AppendToDictionary.update({
464 "AntiKt4TruthJets": "xAOD::JetContainer",
465 "AntiKt4TruthJetsAux": "xAOD::JetAuxContainer",
466 "InTimeAntiKt4TruthJets": "xAOD::JetContainer",
467 "InTimeAntiKt4TruthJetsAux": "xAOD::JetAuxContainer",
468 "JetInputTruthParticles": "xAOD::TruthParticleContainer",
469 "JetInputTruthParticlesNoWZ": "xAOD::TruthParticleContainer",
470 "TruthEvents": "xAOD::TruthEventContainer",
471 "TruthEventsAux": "xAOD::TruthEventAuxContainer",
472 "TruthParticles": "xAOD::TruthParticleContainer",
473 "TruthParticlesAux": "xAOD::TruthParticleAuxContainer",
474 "egammaTruthParticles": "xAOD::TruthParticleContainer",
475 "egammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
476 "MuonTruthParticles": "xAOD::TruthParticleContainer",
477 "MuonTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
478 "LRTegammaTruthParticles": "xAOD::TruthParticleContainer",
479 "LRTegammaTruthParticlesAux": "xAOD::TruthParticleAuxContainer",
480 "TruthVertices": "xAOD::TruthVertexContainer",
481 "TruthVerticesAux": "xAOD::TruthVertexAuxContainer"})
482
483 AllVariables += ["AntiKt4TruthJets",
484 "InTimeAntiKt4TruthJets",
485 "JetInputTruthParticles",
486 "JetInputTruthParticlesNoWZ",
487 "TruthEvents",
488 "TruthParticles",
489 "egammaTruthParticles",
490 "MuonTruthParticles",
491 "LRTegammaTruthParticles",
492 "TruthVertices"]
493
494 list_aux = ["BHadronsFinal", "BHadronsInitial", "BQuarksFinal",
495 "CHadronsFinal", "CHadronsInitial", "CQuarksFinal",
496 "HBosons", "Partons", "TQuarksFinal", "TausFinal",
497 "WBosons", "ZBosons"]
498 for item in list_aux:
499 label = "TruthLabel"+item
500 labelAux = label+"Aux"
501 IDTIDESlimmingHelper.AppendToDictionary.update(
502 {label: "xAOD::TruthParticleContainer",
503 labelAux: "xAOD::TruthParticleAuxContainer"})
504 AllVariables += [label]
505
506
507
508 IDTIDESlimmingHelper.IncludeTriggerNavigation = True
509 IDTIDESlimmingHelper.IncludeAdditionalTriggerContent = True
510
511 IDTIDESlimmingHelper.AllVariables = AllVariables
512 IDTIDESlimmingHelper.StaticContent = StaticContent
513 IDTIDESlimmingHelper.SmartCollections = SmartCollections
514 IDTIDESlimmingHelper.ExtraVariables = ExtraVariables
515
516
517 IDTIDEItemList = IDTIDESlimmingHelper.GetItemList()
518 acc.merge(OutputStreamCfg(flags, "DAOD_IDTIDE",
519 ItemList=IDTIDEItemList, AcceptAlgs=["IDTIDEKernel"]))
520 acc.merge(SetupMetaDataForStreamCfg(
521 flags, "DAOD_IDTIDE", AcceptAlgs=["IDTIDEKernel"],
522 createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TriggerMenuMetaData]))
523
524 return acc