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