10 from AthenaConfiguration.ComponentAccumulator 
import ComponentAccumulator
 
   11 from AthenaConfiguration.ComponentFactory 
import CompFactory
 
   12 from AthenaConfiguration.Enums 
import MetadataCategory
 
   13 from AthenaCommon.Logging 
import logging
 
   14 logPHYS = logging.getLogger(
'PHYS')
 
   18     """Configure the derivation framework driving algorithm (kernel) for PHYS""" 
   21     from TrkConfig.VertexFindingFlags 
import VertexSortingSetup
 
   22     if flags.Tracking.PriVertex.sortingSetup 
is VertexSortingSetup.GNNSorting:
 
   23         from DerivationFrameworkPhys.GNNVertexConfig 
import GNNVertexCfg
 
   27     from DerivationFrameworkPhys.PhysCommonConfig 
import PhysCommonAugmentationsCfg
 
   30         TriggerListsHelper     = kwargs[
'TriggerListsHelper']
 
   35     nametag = name.replace(
'Kernel', 
'') 
 
   37         'TrackParticleThinningToolName'       : nametag+
"TrackParticleThinningTool",
 
   38         'MuonTPThinningToolName'              : nametag+
"MuonTPThinningTool",
 
   39         'TauJetThinningToolName'              : nametag+
"TauJetThinningTool",
 
   40         'TauJets_MuonRMThinningToolName'      : nametag+
"TauJets_MuonRMThinningTool",
 
   41         'DiTauThinningToolName'               : nametag+
"DiTauThinningTool",
 
   42         'DiTauTPThinningToolName'             : nametag+
"DiTauTPThinningTool",
 
   43         'DiTauLowPtThinningToolName'          : nametag+
"DiTauLowPtThinningTool",
 
   44         'DiTauLowPtTPThinningToolName'        : nametag+
"DiTauLowPtTPThinningTool",
 
   47     if flags.Tau.TauEleRM_isAvailable:
 
   48         thinningToolsArgs[
'TauJets_EleRMThinningToolName'] = nametag+
"TauJets_EleRMThinningTool" 
   50     from DerivationFrameworkPhys.PhysCommonThinningConfig 
import PhysCommonThinningCfg
 
   54     for key 
in thinningToolsArgs:
 
   55         thinningTools.append(acc.getPublicTool(thinningToolsArgs[key]))
 
   58     DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
 
   63 def PHYSCoreCfg(flags, name_tag='PHYS', StreamName='StreamDAOD_PHYS', TriggerListsHelper=None, addExtraVariables=None):
 
   65     if TriggerListsHelper 
is None:
 
   66         from DerivationFrameworkPhys.TriggerListsHelper 
import TriggerListsHelper
 
   67         TriggerListsHelper = TriggerListsHelper(flags)
 
   72     from DerivationFrameworkHiggs.HiggsPhysContent 
import  HiggsAugmentationAlgsCfg
 
   77     from IsolationSelection.IsolationSelectionConfig 
import  IsoCloseByAlgsCfg
 
   81     from LeptonTaggers.LeptonTaggersConfig 
import DecoratePLITAlgsCfg
 
   87     from DerivationFrameworkMCTruth.HFClassificationCommonConfig 
import HFClassificationCommonCfg
 
   93     from OutputStreamAthenaPool.OutputStreamConfig 
import OutputStreamCfg
 
   94     from xAODMetaDataCnv.InfileMetaDataConfig 
import SetupMetaDataForStreamCfg
 
   95     from DerivationFrameworkCore.SlimmingHelper 
import SlimmingHelper
 
   97     PHYSSlimmingHelper = 
SlimmingHelper(name_tag+
"SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
 
   98     PHYSSlimmingHelper.SmartCollections = [
"EventInfo",
 
  103                                            "InDetTrackParticles",
 
  105                                            "AntiKt4EMPFlowJets",
 
  106                                            "BTagging_AntiKt4EMPFlow",
 
  107                                            "AntiKt4EMPFlowJets_FTAG",
 
  108                                            "MET_Baseline_AntiKt4EMTopo",
 
  109                                            "MET_Baseline_AntiKt4EMPFlow",
 
  114                                            "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets",
 
  115                                            "AntiKtVR30Rmax4Rmin02PV0TrackJets",
 
  117     if flags.Tau.TauEleRM_isAvailable:
 
  118         PHYSSlimmingHelper.SmartCollections.append(
"TauJets_EleRM")
 
  120     excludedVertexAuxData = 
"-vxTrackAtVertex.-MvfFitInfo.-isInitialized.-VTAV" 
  122     StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Tight_Vertices"]
 
  123     StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Tight_VerticesAux." + excludedVertexAuxData]
 
  124     StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Medium_Vertices"]
 
  125     StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Medium_VerticesAux." + excludedVertexAuxData]
 
  126     StaticContent += [
"xAOD::VertexContainer#SoftBVrtClusterTool_Loose_Vertices"]
 
  127     StaticContent += [
"xAOD::VertexAuxContainer#SoftBVrtClusterTool_Loose_VerticesAux." + excludedVertexAuxData]   
 
  129     PHYSSlimmingHelper.StaticContent = StaticContent
 
  132     PHYSSlimmingHelper.ExtraVariables += [
"AntiKt4EMTopoJets.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.IsoFixedCone5PtPUsub",
 
  133                                               "AntiKt4EMPFlowJets.QGTransformer_ConstScore.DFCommonJets_QGTagger_truthjet_nCharged.DFCommonJets_QGTagger_truthjet_pt.DFCommonJets_QGTagger_truthjet_eta.DFCommonJets_QGTagger_NTracks.DFCommonJets_QGTagger_TracksWidth.DFCommonJets_QGTagger_TracksC1.ConeExclBHadronsFinal.ConeExclCHadronsFinal.GhostBHadronsFinal.GhostCHadronsFinal.GhostBHadronsFinalCount.GhostBHadronsFinalPt.GhostCHadronsFinalCount.GhostCHadronsFinalPt.isJvtHS.isJvtPU.IsoFixedCone5PtPUsub",
 
  134                                               "TruthPrimaryVertices.t.x.y.z",
 
  135                                               "InDetTrackParticles.TTVA_AMVFVertices.TTVA_AMVFWeights.eProbabilityHT.numberOfTRTHits.numberOfTRTOutliers",
 
  136                                               "EventInfo.GenFiltHT.GenFiltMET.GenFiltHTinclNu.GenFiltPTZ.GenFiltFatJ.HF_Classification.HF_SimpleClassification",
 
  137                                               "TauJets.dRmax.etOverPtLeadTrk",
 
  138                                               "TauJets_MuonRM.dRmax.etOverPtLeadTrk",
 
  139                                               "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET.ex.ey",
 
  140                                               "HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_mht.ex.ey"]
 
  142     if addExtraVariables:
 
  143         PHYSSlimmingHelper.ExtraVariables += addExtraVariables
 
  145     if flags.Tau.TauEleRM_isAvailable:
 
  146         PHYSSlimmingHelper.ExtraVariables += [
"TauJets_EleRM.dRmax.etOverPtLeadTrk"]
 
  149     from LeptonTaggers.LeptonTaggersConfig 
import GetExtraPLITVariablesForDxAOD
 
  153     PHYSSlimmingHelper.ExtraVariables += [
"AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.TopTransformer_ConstScore", 
 
  154                                           "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.WTransformer_ConstScore", 
 
  155                                           "AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets.WTransformer_massdec_ConstScore"]
 
  160         from DerivationFrameworkMCTruth.MCTruthCommonConfig 
import addTruth3ContentToSlimmerTool
 
  162         PHYSSlimmingHelper.AllVariables += [
'TruthLHEParticles', 
'TruthHFWithDecayParticles',
'TruthHFWithDecayVertices',
'TruthCharm',
'TruthPileupParticles',
'InTimeAntiKt4TruthJets',
'OutOfTimeAntiKt4TruthJets']
 
  163         PHYSSlimmingHelper.ExtraVariables += [
"Electrons.TruthLink",
 
  166                                               "AntiKt4TruthDressedWZJets.IsoFixedCone5Pt.HFHadronOriginID"]
 
  168         from DerivationFrameworkMCTruth.MCTruthCommonConfig 
import AddTauAndDownstreamParticlesCfg
 
  170         PHYSSlimmingHelper.AllVariables += [
'TruthTausWithDecayParticles',
'TruthTausWithDecayVertices']
 
  173     from DerivationFrameworkHiggs.HiggsPhysContent 
import  setupHiggsSlimmingVariables
 
  177     PHYSSlimmingHelper.AllVariables += [ 
'AFPSiHitContainer', 
'AFPToFHitContainer' ]
 
  180     PHYSSlimmingHelper.IncludeTriggerNavigation = 
False 
  181     PHYSSlimmingHelper.IncludeJetTriggerContent = 
False 
  182     PHYSSlimmingHelper.IncludeMuonTriggerContent = 
False 
  183     PHYSSlimmingHelper.IncludeEGammaTriggerContent = 
False 
  184     PHYSSlimmingHelper.IncludeTauTriggerContent = 
False 
  185     PHYSSlimmingHelper.IncludeEtMissTriggerContent = 
False 
  186     PHYSSlimmingHelper.IncludeBJetTriggerContent = 
False 
  187     PHYSSlimmingHelper.IncludeBPhysTriggerContent = 
False 
  188     PHYSSlimmingHelper.IncludeMinBiasTriggerContent = 
False 
  190     PHYSSlimmingHelper.IncludeBJetTriggerByYearContent = 
True 
  194     if flags.Trigger.EDMVersion == 2:
 
  195         from DerivationFrameworkPhys.TriggerMatchingCommonConfig 
import AddRun2TriggerMatchingToSlimmingHelper
 
  197                                                OutputContainerPrefix = 
"TrigMatch_", 
 
  198                                                TriggerList = TriggerListsHelper.Run2TriggerNamesTau)
 
  200                                                OutputContainerPrefix = 
"TrigMatch_",
 
  201                                                TriggerList = TriggerListsHelper.Run2TriggerNamesNoTau)
 
  203     if flags.Trigger.EDMVersion == 3 
or (flags.Trigger.EDMVersion == 2 
and flags.Trigger.doEDMVersionConversion):
 
  204         from TrigNavSlimmingMT.TrigNavSlimmingMTConfig 
import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
 
  208     from DerivationFrameworkPhys.TriggerMatchingCommonConfig 
import getDataYear
 
  211         from DerivationFrameworkPhys.TriggerMatchingCommonConfig 
import AddjFexRoIsToSlimmingHelper
 
  215         from DerivationFrameworkPhys.TriggerMatchingCommonConfig 
import AddLegacyL1JetRoIsToSlimmingHelper
 
  219     PHYSItemList = PHYSSlimmingHelper.GetItemList()
 
  220     acc.merge(
OutputStreamCfg(flags, 
"DAOD_"+name_tag, ItemList=PHYSItemList, AcceptAlgs=[name_tag+
"Kernel"]))
 
  221     acc.merge(
SetupMetaDataForStreamCfg(flags, 
"DAOD_"+name_tag, AcceptAlgs=[name_tag+
"Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData, MetadataCategory.TruthMetaData]))
 
  227     logPHYS.info(
'****************** STARTING PHYS *****************')
 
  229     stream_name = 
'StreamDAOD_PHYS' 
  236     from DerivationFrameworkPhys.TriggerListsHelper 
import TriggerListsHelper
 
  237     PHYSTriggerListsHelper = TriggerListsHelper(flags)
 
  243         StreamName = stream_name,
 
  244         TriggerListsHelper = PHYSTriggerListsHelper
 
  250         StreamName = stream_name,
 
  251         TriggerListsHelper = PHYSTriggerListsHelper