diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/python/SlimmingHelper.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/python/SlimmingHelper.py index e188fc1d44e4f274d254eea7e5d5e4253cbe9f56..e16942d800b7aaa360fd9a4ae1b428cd71d9f4c5 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/python/SlimmingHelper.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkCore/python/SlimmingHelper.py @@ -487,6 +487,8 @@ class SlimmingHelper: elif collectionName=="AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets": from DerivationFrameworkJetEtMiss.AntiKt10UFOCSSKSoftDropBeta100Zcut10JetsCPContent import AntiKt10UFOCSSKSoftDropBeta100Zcut10JetsCPContent items.extend(AntiKt10UFOCSSKSoftDropBeta100Zcut10JetsCPContent) + from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingLargeRContent + items.extend(BTaggingLargeRContent("AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets", self.flags)) elif collectionName=="AntiKtVR30Rmax4Rmin02PV0TrackJets": from DerivationFrameworkJetEtMiss.AntiKtVR30Rmax4Rmin02PV0TrackJetsCPContent import AntiKtVR30Rmax4Rmin02PV0TrackJetsCPContent items.extend(AntiKtVR30Rmax4Rmin02PV0TrackJetsCPContent) diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/BTaggingContent.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/BTaggingContent.py index ea1fe03481b58450356ad8ca0be311c994fe3248..ef9b8906bd42f0cc2cfdda6f55b455bfadafe000 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/BTaggingContent.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkFlavourTag/python/BTaggingContent.py @@ -40,6 +40,13 @@ def _getVars(name, extra_flavours=None, flip_modes=None): variants = [""] + flip_modes return [f'{name}{v}_p{f}' for v in variants for f in flavors] +def _getVarsXbb(name, extra_flavours=None): + """Convenience function for getting output variable names, here for Xbb tagging (typically GN2X)""" + if extra_flavours is None: + extra_flavours = [] + flavors = ["hbb", "hcc", "top", "qcd"] + extra_flavours + return [f'{name}_p{f}' for f in flavors] + def _getTruthVars(): vals = ['ID', 'Pt', 'Lxy', 'DR', 'PdgId', 'Barcode'] algs = ['HadronConeExcl', 'HadronGhost'] @@ -74,11 +81,24 @@ JetExtendedAux = [ "PartonTruthLabelEnergy", ] +# standard largeR jets truth outputs +LargeRJetStandardAux = [ + "R10TruthLabel_R22v1", + "R10TruthLabel_R22v1_TruthJetMass", + "R10TruthLabel_R22v1_TruthJetPt" +] + # standard outputs for Run 3 BTaggingRun3Aux = ["SV1_NGTinSvx", "SV1_masssvx",] BTaggingRun3Aux += _getVars("DL1dv01", flip_modes=['Flip']) # 202 r22 pre-rec tagger BTaggingRun3Aux += _getVars("GN2v01", extra_flavours=['tau'], flip_modes=['SimpleFlip']) # planned GN2 tagger for 2024 recommendations +# Xbb taggers outputs +BTaggingLargeRAux = [] +BTaggingLargeRAux += _getVarsXbb("GN2Xv01") +BTaggingLargeRAux += _getVarsXbb("GN2Xv02") +BTaggingLargeRAux += _getVarsXbb("GN2XTauV00", extra_flavours=['htautauhad']) + # standard outputs for Run 4 BTaggingRun4Aux = [ "SV1_NGTinSvx", @@ -162,7 +182,6 @@ def BTaggingExpertContent(jetcol, ConfigFlags = None): def BTaggingStandardContent(jetcol, ConfigFlags = None): btagging = _getBtagging(jetcol) - # jet variables jetcontent = _getVariableList(jetcol, JetStandardAux) @@ -171,22 +190,15 @@ def BTaggingStandardContent(jetcol, ConfigFlags = None): aux = BTaggingRun4Aux if isRun4 else BTaggingRun3Aux btagcontent = _getVariableList(btagging, aux) - return jetcontent + btagcontent - -def BTaggingXbbContent(jetcol, ConfigFlags = None): - btagging = _getBtagging(jetcol) + return jetcontent + btagcontent - # jet variables - jetAllAux = JetStandardAux + JetExtendedAux - jetcontent = _getVariableList(jetcol, jetAllAux) +def BTaggingLargeRContent(jetcol, ConfigFlags = None): + jetcontent = _getVariableList(jetcol, LargeRJetStandardAux) # b-tagging variables - isRun4 = _isRun4(ConfigFlags) - aux = BTaggingRun4Aux if isRun4 else BTaggingRun3Aux - aux += BTaggingHighLevelAux - btagcontent = _getVariableList(btagging, aux) - + aux = BTaggingLargeRAux + btagcontent = _getVariableList(jetcol, aux) return jetcontent + btagcontent def BTagginglessContent(jetcol, ConfigFlags=None): diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG1D1.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG1D1.py index c99c35142deb1ef34ba76a9c0ab1a35ae5f3e103..97a66eaec74fa51831a84621800df5e9def82f5d 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG1D1.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG1D1.py @@ -418,11 +418,9 @@ def HIGG1D1Cfg(flags): "AFPVertexContainer", "AFPToFTrackContainer"] # Add Btagging information - from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent,BTaggingXbbContent + from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent HIGG1D1SlimmingHelper.ExtraVariables += BTaggingStandardContent("AntiKt4EMPFlowCustomVtxJets", flags) HIGG1D1SlimmingHelper.ExtraVariables += BTaggingStandardContent("AntiKt4EMPFlowJets", flags) - HIGG1D1SlimmingHelper.ExtraVariables += BTaggingXbbContent("AntiKt4EMPFlowCustomVtxJets", flags) - HIGG1D1SlimmingHelper.ExtraVariables += BTaggingXbbContent("AntiKt4EMPFlowJets", flags) # is this really needed given Photons are in the AllVariables list ? from DerivationFrameworkEGamma.PhotonsCPDetailedContent import PhotonsCPDetailedContent diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG1D2.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG1D2.py index adb4d946170816804280f2f6026c48ed45ee95bb..408268fa5aceb91f9a6bbbf665dd0f006a702963 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG1D2.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkHiggs/python/HIGG1D2.py @@ -255,9 +255,8 @@ def HIGG1D2Cfg(flags): "EventInfo.hardScatterVertexLink.timeStampNSOffset"] # Add Btagging information - from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent, BTaggingXbbContent + from DerivationFrameworkFlavourTag.BTaggingContent import BTaggingStandardContent HIGG1D2SlimmingHelper.ExtraVariables += BTaggingStandardContent("AntiKt4EMPFlowJets", flags) - HIGG1D2SlimmingHelper.ExtraVariables += BTaggingXbbContent("AntiKt4EMPFlowJets", flags) # Truth containers if flags.Input.isMC: diff --git a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS.py b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS.py index 50ed3d9842959bfa5627103cfe425bc606b24cad..20b79c09566478746219409b3a46c16d8162bce5 100644 --- a/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS.py +++ b/PhysicsAnalysis/DerivationFramework/DerivationFrameworkPhys/python/PHYS.py @@ -144,13 +144,6 @@ def PHYSCoreCfg(flags, name_tag='PHYS', StreamName='StreamDAOD_PHYS', TriggerLis if flags.Tau.TauEleRM_isAvailable: PHYSSlimmingHelper.ExtraVariables += ["TauJets_EleRM.dRmax.etOverPtLeadTrk"] - # FTAG Xbb extra content - extraList = [] - for tagger in ["GN2Xv01", "GN2Xv02"]: - for score in ["phbb", "phcc", "ptop", "pqcd"]: - extraList.append(f"{tagger}_{score}") - PHYSSlimmingHelper.ExtraVariables += ["AntiKt10UFOCSSKSoftDropBeta100Zcut10Jets." + ".".join(extraList)] - # IFF extra content from LeptonTaggers.LeptonTaggersConfig import GetExtraPLITVariablesForDxAOD PHYSSlimmingHelper.ExtraVariables += GetExtraPLITVariablesForDxAOD() diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagConfig.py index 6e2d1fbd8b2cf0bc79b25b8d06435c53ad520f56..0ffdd136eb2ba5e5b4ca4edc1611e2727ac4303c 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagConfig.py +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagConfig.py @@ -58,6 +58,7 @@ def GetTaggerTrainingMap(inputFlags, jet_col): "BTagging/20230413/gn2xwithmassv00/antikt10ufo/network.onnx", "BTagging/20230705/gn2xv01/antikt10ufo/network.onnx", "BTagging/20240925/GN2Xv02/antikt10ufo/network.onnx", + "BTagging/20250310/antikt10ufo/GN2XTauV00.onnx", "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/MC20_bbJES_ak10csskufo_Sep24_calibFactors.onnx", # bJR10v00 "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/bbJESJMS_calibFactors_R22_MC20_CSSKUFO_bJR10v00Ext_20250212.onnx", # bJR10v00Ext "JetCalibTools/CalibArea-00-04-83/CalibrationFactors/bbJESJMS_calibFactors_R22_MC20MC23_CSSKUFO_bJR10v01_20250212.onnx" # bJR10v01 diff --git a/Tools/WorkflowTestRunner/python/References.py b/Tools/WorkflowTestRunner/python/References.py index c43fdd11899757d2e4f37fe609392c39fc8c9f95..0b7025286c1b8b81b4915db3bfa76134443dd277 100644 --- a/Tools/WorkflowTestRunner/python/References.py +++ b/Tools/WorkflowTestRunner/python/References.py @@ -30,16 +30,16 @@ references_map = { "q452": "v35", "q454": "v51", # Derivations - "data_PHYS_Run2": "v47", + "data_PHYS_Run2": "v48", "data_PHYSLITE_Run2": "v26", - "data_PHYS_Run3": "v48", + "data_PHYS_Run3": "v49", "data_PHYSLITE_Run3": "v28", - "mc_PHYS_Run2": "v59", + "mc_PHYS_Run2": "v60", "mc_PHYSLITE_Run2": "v30", - "mc_PHYS_Run3": "v63", + "mc_PHYS_Run3": "v64", "mc_PHYSLITE_Run3": "v34", - "af3_PHYS_Run2": "v9", + "af3_PHYS_Run2": "v10", "af3_PHYSLITE_Run2": "v7", - "af3_PHYS_Run3": "v44", + "af3_PHYS_Run3": "v45", "af3_PHYSLITE_Run3": "v35", }