From efaa21ad3ad328116e424943e64943fdef1858e2 Mon Sep 17 00:00:00 2001 From: anovak10 Date: Wed, 8 May 2019 13:30:21 +0200 Subject: [PATCH] Adding DeepDoubleX --- PhysicsTools/NanoAOD/python/jets_cff.py | 3 +++ PhysicsTools/NanoAOD/python/nanoDQM_cfi.py | 3 +++ PhysicsTools/NanoAOD/python/nano_cff.py | 8 +++++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/PhysicsTools/NanoAOD/python/jets_cff.py b/PhysicsTools/NanoAOD/python/jets_cff.py index d26cc59f11731..c07dccb089f1a 100644 --- a/PhysicsTools/NanoAOD/python/jets_cff.py +++ b/PhysicsTools/NanoAOD/python/jets_cff.py @@ -356,6 +356,9 @@ btagDeepB = Var("bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')",float,doc="DeepCSV b+bb tag discriminator",precision=10), btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10), btagHbb = Var("bDiscriminator('pfBoostedDoubleSecondaryVertexAK8BJetTags')",float,doc="Higgs to BB tagger discriminator",precision=10), + btagDDBvL = Var("bDiscriminator('pfMassIndependentDeepDoubleBvLJetTags:probHbb')",float,doc="DeepDoubleX (mass-decorrelated) discriminator for H(Z)->bb vs QCD",precision=10), + btagDDCvL = Var("bDiscriminator('pfMassIndependentDeepDoubleCvLJetTags:probHcc')",float,doc="DeepDoubleX (mass-decorrelated) discriminator for H(Z)->cc vs QCD",precision=10), + btagDDCvB = Var("bDiscriminator('pfMassIndependentDeepDoubleCvBJetTags:probHcc')",float,doc="DeepDoubleX (mass-decorrelated) discriminator for H(Z)->cc vs H(Z)->bb",precision=10), deepTag_TvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:TvsQCD')",float,doc="DeepBoostedJet tagger top vs QCD discriminator",precision=10), deepTag_WvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:WvsQCD')",float,doc="DeepBoostedJet tagger W vs QCD discriminator",precision=10), deepTag_ZvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:ZvsQCD')",float,doc="DeepBoostedJet tagger Z vs QCD discriminator",precision=10), diff --git a/PhysicsTools/NanoAOD/python/nanoDQM_cfi.py b/PhysicsTools/NanoAOD/python/nanoDQM_cfi.py index 220c510a6529c..fd6f5434c6211 100644 --- a/PhysicsTools/NanoAOD/python/nanoDQM_cfi.py +++ b/PhysicsTools/NanoAOD/python/nanoDQM_cfi.py @@ -106,6 +106,9 @@ Plot1D('area', 'area', 20, 2, 4, 'jet catchment area, for JECs'), Plot1D('btagCMVA', 'btagCMVA', 20, -1, 1, 'CMVA V2 btag discriminator'), Plot1D('btagCSVV2', 'btagCSVV2', 20, -1, 1, ' pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)'), + Plot1D('btagDDBvL', 'btagDDBvL', 20, 0, 1, 'DeepDoubleX (mass-decorrelated) discriminator for H(Z)->bb vs QCD'), + Plot1D('btagDDCvB', 'btagDDCvB', 20, 0, 1, 'DeepDoubleX (mass-decorrelated) discriminator for H(Z)->cc vs H(Z)->bb'), + Plot1D('btagDDCvL', 'btagDDCvL', 20, 0, 1, 'DeepDoubleX (mass-decorrelated) discriminator for H(Z)->cc vs QCD'), Plot1D('btagDeepB', 'btagDeepB', 20, -1, 1, 'Deep B+BB btag discriminator'), Plot1D('btagHbb', 'btagHbb', 20, -1, 1, 'Higgs to BB tagger discriminator'), Plot1D('deepTagMD_H4qvsQCD', 'deepTagMD_H4qvsQCD', 20, 0, 1, 'Mass-decorrelated DeepBoostedJet tagger H->4q vs QCD discriminator'), diff --git a/PhysicsTools/NanoAOD/python/nano_cff.py b/PhysicsTools/NanoAOD/python/nano_cff.py index f887d56219c51..5c391b86c3fe2 100644 --- a/PhysicsTools/NanoAOD/python/nano_cff.py +++ b/PhysicsTools/NanoAOD/python/nano_cff.py @@ -207,7 +207,7 @@ def nanoAOD_activateVID(process): process.photonSequence.insert(process.photonSequence.index(bitmapVIDForPho),process.egmPhotonIDSequence) return process -def nanoAOD_addDeepInfoAK8(process,addDeepBTag,addDeepBoostedJet,jecPayload): +def nanoAOD_addDeepInfoAK8(process,addDeepBTag,addDeepBoostedJet, addDeepDoubleX, jecPayload): _btagDiscriminators=[] if addDeepBTag: print("Updating process to run DeepCSV btag to AK8 jets") @@ -216,6 +216,9 @@ def nanoAOD_addDeepInfoAK8(process,addDeepBTag,addDeepBoostedJet,jecPayload): print("Updating process to run DeepBoostedJet on datasets before 103X") from RecoBTag.MXNet.pfDeepBoostedJet_cff import _pfDeepBoostedJetTagsAll as pfDeepBoostedJetTagsAll _btagDiscriminators += pfDeepBoostedJetTagsAll + if addDeepDoubleX: + print("Updating process to run DeepDoubleX on datasets before 104X") + _btagDiscriminators += ['pfMassIndependentDeepDoubleBvLJetTags:probHbb', 'pfMassIndependentDeepDoubleCvLJetTags:probHcc', 'pfMassIndependentDeepDoubleCvBJetTags:probHcc'] if len(_btagDiscriminators)==0: return process print("Will recalculate the following discriminators on AK8 jets: "+", ".join(_btagDiscriminators)) updateJetCollection( @@ -257,16 +260,19 @@ def nanoAOD_customizeCommon(process): nanoAOD_addDeepInfoAK8_switch = cms.PSet( nanoAOD_addDeepBTag_switch = cms.untracked.bool(False), nanoAOD_addDeepBoostedJet_switch = cms.untracked.bool(True), # will deactivate this in future miniAOD releases + nanoAOD_addDeepDoubleX_switch = cms.untracked.bool(True), jecPayload = cms.untracked.string('AK8PFPuppi') ) # deepAK8 should not run on 80X, that contains ak8PFJetsCHS jets run2_miniAOD_80XLegacy.toModify(nanoAOD_addDeepInfoAK8_switch, nanoAOD_addDeepBTag_switch = cms.untracked.bool(True), nanoAOD_addDeepBoostedJet_switch = cms.untracked.bool(False), + nanoAOD_addDeepDoubleX_switch = cms.untracked.bool(False), jecPayload = cms.untracked.string('AK8PFchs')) process = nanoAOD_addDeepInfoAK8(process, addDeepBTag=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepBTag_switch, addDeepBoostedJet=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepBoostedJet_switch, + addDeepDoubleX=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepDoubleX_switch, jecPayload=nanoAOD_addDeepInfoAK8_switch.jecPayload) return process