From 4ca1787fff292494aef9053751adccdb2241579f Mon Sep 17 00:00:00 2001 From: Moritz Wolf Date: Tue, 17 Jan 2023 21:42:11 +0100 Subject: [PATCH 1/3] Add function to refine FastSim DeepJet discriminators --- .../NanoAOD/python/jetsAK4_CHS_cff.py | 60 +++++++++++++++++++ .../interface/BaseMVAValueMapProducer.h | 15 ++++- 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/PhysicsTools/NanoAOD/python/jetsAK4_CHS_cff.py b/PhysicsTools/NanoAOD/python/jetsAK4_CHS_cff.py index cf81c8c02c157..2e0116ae24d6e 100644 --- a/PhysicsTools/NanoAOD/python/jetsAK4_CHS_cff.py +++ b/PhysicsTools/NanoAOD/python/jetsAK4_CHS_cff.py @@ -350,6 +350,66 @@ def nanoAOD_addDeepInfoAK4CHS(process,addDeepBTag,addDeepFlavour): ## DeepInfoAK4CHS:End ################################################# +# +# ML-based FastSim refinement +# +from Configuration.Eras.Modifier_fastSim_cff import fastSim +def nanoAOD_refineFastSim_bTagDeepFlav(process): + + fastSim.toModify( process.jetTable.variables, + btagDeepFlavBunrefined = process.jetTable.variables.btagDeepFlavB.clone(), + btagDeepFlavCvBunrefined = process.jetTable.variables.btagDeepFlavCvB.clone(), + btagDeepFlavCvLunrefined = process.jetTable.variables.btagDeepFlavCvL.clone(), + btagDeepFlavQGunrefined = process.jetTable.variables.btagDeepFlavQG.clone(), + ) + + fastSim.toModify( process.jetTable.variables, + btagDeepFlavB = None, + btagDeepFlavCvB = None, + btagDeepFlavCvL = None, + btagDeepFlavQG = None, + ) + + fastSim.toModify( process.jetTable.externalVariables, + btagDeepFlavB = ExtVar(cms.InputTag("btagDeepFlavRefineNN:btagDeepFlavBrefined"), float, doc="DeepJet b+bb+lepb tag discriminator", precision=10), + btagDeepFlavCvB = ExtVar(cms.InputTag("btagDeepFlavRefineNN:btagDeepFlavCvBrefined"), float, doc="DeepJet c vs b+bb+lepb discriminator", precision=10), + btagDeepFlavCvL = ExtVar(cms.InputTag("btagDeepFlavRefineNN:btagDeepFlavCvLrefined"), float, doc="DeepJet c vs uds+g discriminator", precision=10), + btagDeepFlavQG = ExtVar(cms.InputTag("btagDeepFlavRefineNN:btagDeepFlavQGrefined"), float, doc="DeepJet g vs uds discriminator", precision=10), + ) + + process.btagDeepFlavRefineNN= cms.EDProducer("JetBaseMVAValueMapProducer", + backend = cms.string("ONNX"), + batch_eval = cms.bool(True), + disableONNXGraphOpt = cms.bool(True), + + src = cms.InputTag("linkedObjects","jets"), + + weightFile=cms.FileInPath("PhysicsTools/NanoAOD/data/btagDeepFlavRefineNN_CHS.onnx"), + name = cms.string("btagDeepFlavRefineNN"), + + isClassifier = cms.bool(False), + variablesOrder = cms.vstring(["GenJet_pt","GenJet_eta","Jet_hadronFlavour", + "Jet_btagDeepFlavB","Jet_btagDeepFlavCvB","Jet_btagDeepFlavCvL","Jet_btagDeepFlavQG"]), + variables = cms.PSet( + GenJet_pt = cms.string("?genJetFwdRef().backRef().isNonnull()?genJetFwdRef().backRef().pt():pt"), + GenJet_eta = cms.string("?genJetFwdRef().backRef().isNonnull()?genJetFwdRef().backRef().eta():eta"), + Jet_hadronFlavour = cms.string("hadronFlavour()"), + Jet_btagDeepFlavB = cms.string("bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')"), + Jet_btagDeepFlavCvB = cms.string("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')):-1"), + Jet_btagDeepFlavCvL = cms.string("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg')):-1"), + Jet_btagDeepFlavQG = cms.string("?(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds'))>0?bDiscriminator('pfDeepFlavourJetTags:probg')/(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds')):-1"), + ), + inputTensorName = cms.string("input"), + outputTensorName = cms.string("output"), + outputNames = cms.vstring(["btagDeepFlavBrefined","btagDeepFlavCvBrefined","btagDeepFlavCvLrefined","btagDeepFlavQGrefined"]), + outputFormulas = cms.vstring(["at(0)","at(1)","at(2)","at(3)"]), + ) + + fastSim.toModify(process.jetTablesTask, process.jetTablesTask.add(process.btagDeepFlavRefineNN)) + + return process + + ################################################################################ # JETS FOR MET type1 ################################################################################ diff --git a/PhysicsTools/PatAlgos/interface/BaseMVAValueMapProducer.h b/PhysicsTools/PatAlgos/interface/BaseMVAValueMapProducer.h index 7dd63af543fe6..c501a444736f9 100644 --- a/PhysicsTools/PatAlgos/interface/BaseMVAValueMapProducer.h +++ b/PhysicsTools/PatAlgos/interface/BaseMVAValueMapProducer.h @@ -55,12 +55,19 @@ class BaseMVACache { public: - BaseMVACache(const std::string& model_path, const std::string& backend) { + BaseMVACache(const std::string& model_path, const std::string& backend, const bool disableONNXGraphOpt) { if (backend == "TF") { graph_.reset(tensorflow::loadGraphDef(model_path)); tf_session_ = tensorflow::createSession(graph_.get()); } else if (backend == "ONNX") { - ort_ = std::make_unique(model_path); + if (disableONNXGraphOpt) { + Ort::SessionOptions sess_opts; + sess_opts = cms::Ort::ONNXRuntime::defaultSessionOptions(); + sess_opts.SetGraphOptimizationLevel(GraphOptimizationLevel::ORT_DISABLE_ALL); + ort_ = std::make_unique(model_path, &sess_opts); + } else { + ort_ = std::make_unique(model_path); + } } } ~BaseMVACache() { tensorflow::closeSession(tf_session_); } @@ -270,7 +277,8 @@ void BaseMVAValueMapProducer::produce(edm::Event& iEvent, const edm::EventSet template std::unique_ptr BaseMVAValueMapProducer::initializeGlobalCache(const edm::ParameterSet& cfg) { return std::make_unique(cfg.getParameter("weightFile").fullPath(), - cfg.getParameter("backend")); + cfg.getParameter("backend"), + cfg.getParameter("disableONNXGraphOpt")); } template @@ -295,6 +303,7 @@ edm::ParameterSetDescription BaseMVAValueMapProducer::getDescription() { desc.add>("outputFormulas", std::vector()) ->setComment("Formulas to be used to post process the output"); desc.add("batch_eval", false)->setComment("Run inference in batch instead of per-object"); + desc.add("disableONNXGraphOpt", false)->setComment("Disable ONNX runtime graph optimization"); return desc; } From 20856534d7468af21af5201c1525df358d787a7d Mon Sep 17 00:00:00 2001 From: Kevin Pedro Date: Fri, 20 Jan 2023 14:12:33 -0600 Subject: [PATCH 2/3] add nanoAOD to run2 FS matrix workflows --- .../python/relval_standard.py | 60 +++++++++---------- .../python/relval_steps.py | 4 ++ 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/Configuration/PyReleaseValidation/python/relval_standard.py b/Configuration/PyReleaseValidation/python/relval_standard.py index 212fda82d1ec6..81d4397b5a8f2 100644 --- a/Configuration/PyReleaseValidation/python/relval_standard.py +++ b/Configuration/PyReleaseValidation/python/relval_standard.py @@ -521,32 +521,32 @@ workflows[5.7] = ['H130GGgluonfusionFS', ['H130GGgluonfusionFS','HARVESTFS']] ### fastsim_13 TeV ### -workflows[135.1] = ['TTbarFS_13', ['TTbarFS_13','HARVESTUP15FS','MINIAODMCUP15FS']] -workflows[135.2] = ['SingleMuPt10FS_UP15', ['SingleMuPt10FS_UP15','HARVESTUP15FS','MINIAODMCUP15FS']] -workflows[135.3] = ['SingleMuPt100FS_UP15', ['SingleMuPt100FS_UP15','HARVESTUP15FS','MINIAODMCUP15FS']] -workflows[135.4] = ['ZEEFS_13', ['ZEEFS_13','HARVESTUP15FS','MINIAODMCUP15FS']] -workflows[135.5] = ['ZTTFS_13',['ZTTFS_13','HARVESTUP15FS','MINIAODMCUP15FS']] -workflows[135.6] = ['QCD_FlatPt_15_3000FS_13', ['QCDFlatPt153000FS_13','HARVESTUP15FS','MINIAODMCUP15FS']] -workflows[135.7] = ['H125GGgluonfusionFS_13', ['H125GGgluonfusionFS_13','HARVESTUP15FS','MINIAODMCUP15FS']] -workflows[135.9] = ['ZMMFS_13',['ZMMFS_13','HARVESTUP15FS','MINIAODMCUP15FS']] -workflows[135.11] = ['SMS-T1tttt_mGl-1500_mLSP-100FS_13', ['SMS-T1tttt_mGl-1500_mLSP-100FS_13','HARVESTUP15FS','MINIAODMCUP15FS']] -workflows[135.12] = ['QCD_Pt_80_120FS_13', ['QCD_Pt_80_120FS_13','HARVESTUP15FS','MINIAODMCUP15FS']] +workflows[135.1] = ['TTbarFS_13', ['TTbarFS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] +workflows[135.2] = ['SingleMuPt10FS_UP15', ['SingleMuPt10FS_UP15','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] +workflows[135.3] = ['SingleMuPt100FS_UP15', ['SingleMuPt100FS_UP15','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] +workflows[135.4] = ['ZEEFS_13', ['ZEEFS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] +workflows[135.5] = ['ZTTFS_13',['ZTTFS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] +workflows[135.6] = ['QCD_FlatPt_15_3000FS_13', ['QCDFlatPt153000FS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] +workflows[135.7] = ['H125GGgluonfusionFS_13', ['H125GGgluonfusionFS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] +workflows[135.9] = ['ZMMFS_13',['ZMMFS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] +workflows[135.11] = ['SMS-T1tttt_mGl-1500_mLSP-100FS_13', ['SMS-T1tttt_mGl-1500_mLSP-100FS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] +workflows[135.12] = ['QCD_Pt_80_120FS_13', ['QCD_Pt_80_120FS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] workflows[135.13] = ['TTbarFS_13', ['TTbarFS_13_trackingOnlyValidation','HARVESTUP15FS_trackingOnly']] ### MinBias fastsim_13 TeV for mixing ### workflows[135.8] = ['MinBiasFS_13',['MinBiasFS_13_ForMixing']] ### Phase1 FastSim 13TeV ### -workflows[2017.1] = ['TTbarFS_13_UP17', ['TTbarFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] -workflows[2017.2] = ['SingleMuPt10FS_UP17', ['SingleMuPt10FS_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] -workflows[2017.3] = ['SingleMuPt100FS_UP17', ['SingleMuPt100FS_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] -workflows[2017.4] = ['ZEEFS_13_UP17', ['ZEEFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] -workflows[2017.5] = ['ZTTFS_13_UP17',['ZTTFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] -workflows[2017.6] = ['QCD_FlatPt_15_3000FS_13_UP17', ['QCDFlatPt153000FS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] -workflows[2017.7] = ['H125GGgluonfusionFS_13_UP17', ['H125GGgluonfusionFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] -workflows[2017.9] = ['ZMMFS_13_UP17',['ZMMFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] -workflows[2017.11] = ['SMS-T1tttt_mGl-1500_mLSP-100FS_13_UP17', ['SMS-T1tttt_mGl-1500_mLSP-100FS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] -workflows[2017.12] = ['QCD_Pt_80_120FS_13_UP17', ['QCD_Pt_80_120FS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS']] +workflows[2017.1] = ['TTbarFS_13_UP17', ['TTbarFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] +workflows[2017.2] = ['SingleMuPt10FS_UP17', ['SingleMuPt10FS_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] +workflows[2017.3] = ['SingleMuPt100FS_UP17', ['SingleMuPt100FS_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] +workflows[2017.4] = ['ZEEFS_13_UP17', ['ZEEFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] +workflows[2017.5] = ['ZTTFS_13_UP17',['ZTTFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] +workflows[2017.6] = ['QCD_FlatPt_15_3000FS_13_UP17', ['QCDFlatPt153000FS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] +workflows[2017.7] = ['H125GGgluonfusionFS_13_UP17', ['H125GGgluonfusionFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] +workflows[2017.9] = ['ZMMFS_13_UP17',['ZMMFS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] +workflows[2017.11] = ['SMS-T1tttt_mGl-1500_mLSP-100FS_13_UP17', ['SMS-T1tttt_mGl-1500_mLSP-100FS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] +workflows[2017.12] = ['QCD_Pt_80_120FS_13_UP17', ['QCD_Pt_80_120FS_13_UP17','HARVESTUP17FS','MINIAODMCUP17FS','NANOUP17FS']] workflows[2017.13] = ['TTbarFS_13_UP17', ['TTbarFS_13_trackingOnlyValidation_UP17','HARVESTUP17FS_trackingOnly']] ### MinBias fastsim_13 TeV for mixing ### @@ -556,16 +556,16 @@ workflows[2018.8] = ['MinBiasFS_13_UP18',['MinBiasFS_13_UP18_ForMixing']] ### Phase1 FastSim 13TeV, 2018 ### -workflows[2018.1] = ['TTbarFS_13_UP18', ['TTbarFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] -workflows[2018.2] = ['SingleMuPt10FS_UP18', ['SingleMuPt10FS_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] -workflows[2018.3] = ['SingleMuPt100FS_UP18', ['SingleMuPt100FS_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] -workflows[2018.4] = ['ZEEFS_13_UP18', ['ZEEFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] -workflows[2018.5] = ['ZTTFS_13_UP18',['ZTTFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] -workflows[2018.6] = ['QCD_FlatPt_15_3000FS_13_UP18', ['QCDFlatPt153000FS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] -workflows[2018.7] = ['H125GGgluonfusionFS_13_UP18', ['H125GGgluonfusionFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] -workflows[2018.9] = ['ZMMFS_13_UP18',['ZMMFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] -workflows[2018.11] = ['SMS-T1tttt_mGl-1500_mLSP-100FS_13_UP18', ['SMS-T1tttt_mGl-1500_mLSP-100FS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] -workflows[2018.12] = ['QCD_Pt_80_120FS_13_UP18', ['QCD_Pt_80_120FS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS']] +workflows[2018.1] = ['TTbarFS_13_UP18', ['TTbarFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] +workflows[2018.2] = ['SingleMuPt10FS_UP18', ['SingleMuPt10FS_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] +workflows[2018.3] = ['SingleMuPt100FS_UP18', ['SingleMuPt100FS_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] +workflows[2018.4] = ['ZEEFS_13_UP18', ['ZEEFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] +workflows[2018.5] = ['ZTTFS_13_UP18',['ZTTFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] +workflows[2018.6] = ['QCD_FlatPt_15_3000FS_13_UP18', ['QCDFlatPt153000FS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] +workflows[2018.7] = ['H125GGgluonfusionFS_13_UP18', ['H125GGgluonfusionFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] +workflows[2018.9] = ['ZMMFS_13_UP18',['ZMMFS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] +workflows[2018.11] = ['SMS-T1tttt_mGl-1500_mLSP-100FS_13_UP18', ['SMS-T1tttt_mGl-1500_mLSP-100FS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] +workflows[2018.12] = ['QCD_Pt_80_120FS_13_UP18', ['QCD_Pt_80_120FS_13_UP18','HARVESTUP18FS','MINIAODMCUP18FS','NANOUP18FS']] workflows[2018.13] = ['TTbarFS_13_UP18', ['TTbarFS_13_trackingOnlyValidation_UP18','HARVESTUP18FS_trackingOnly']] ### standard set ### diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 15e228724a5f2..bda18cb450757 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -3728,6 +3728,10 @@ def gen2021HiMix(fragment,howMuch): steps['NANOUP18Had']=merge([{'--filein':'file:step4_inMINIAODSIM.root'},steps['NANOUP18']]) steps['NANOPRODUP18']=merge([{'--filein':'file:step4.root'},steps['NANOUP18']]) +steps['NANOUP15FS'] = merge([{'--filein':'file:step3.root','--fast':''}, steps['NANOUP15']]) +steps['NANOUP17FS'] = merge([{'--filein':'file:step3.root','--fast':'','--era':'Run2_2017_FastSim'}, steps['NANOUP17']]) +steps['NANOUP18FS'] = merge([{'--filein':'file:step3.root','--fast':'','--era':'Run2_2018_FastSim'}, steps['NANOUP18']]) + steps['HEfail'] = {'--conditions':'auto:phase1_2018_realistic_HEfail', '-n':'10', From 565306c27001ff483e1e995fd6777aca4b59b623 Mon Sep 17 00:00:00 2001 From: Kevin Pedro Date: Fri, 20 Jan 2023 18:21:24 -0600 Subject: [PATCH 3/3] add test 2016 workflow for fastsim refinement --- Configuration/PyReleaseValidation/python/relval_standard.py | 1 + Configuration/PyReleaseValidation/python/relval_steps.py | 1 + 2 files changed, 2 insertions(+) diff --git a/Configuration/PyReleaseValidation/python/relval_standard.py b/Configuration/PyReleaseValidation/python/relval_standard.py index 81d4397b5a8f2..7b61a1ce392d2 100644 --- a/Configuration/PyReleaseValidation/python/relval_standard.py +++ b/Configuration/PyReleaseValidation/python/relval_standard.py @@ -532,6 +532,7 @@ workflows[135.11] = ['SMS-T1tttt_mGl-1500_mLSP-100FS_13', ['SMS-T1tttt_mGl-1500_mLSP-100FS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] workflows[135.12] = ['QCD_Pt_80_120FS_13', ['QCD_Pt_80_120FS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FS']] workflows[135.13] = ['TTbarFS_13', ['TTbarFS_13_trackingOnlyValidation','HARVESTUP15FS_trackingOnly']] +workflows[135.14] = ['TTbarFS_13', ['TTbarFS_13','HARVESTUP15FS','MINIAODMCUP15FS','NANOUP15FSrefine']] ### MinBias fastsim_13 TeV for mixing ### workflows[135.8] = ['MinBiasFS_13',['MinBiasFS_13_ForMixing']] diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index bda18cb450757..d701ed7e329a0 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -3732,6 +3732,7 @@ def gen2021HiMix(fragment,howMuch): steps['NANOUP17FS'] = merge([{'--filein':'file:step3.root','--fast':'','--era':'Run2_2017_FastSim'}, steps['NANOUP17']]) steps['NANOUP18FS'] = merge([{'--filein':'file:step3.root','--fast':'','--era':'Run2_2018_FastSim'}, steps['NANOUP18']]) +steps['NANOUP15FSrefine'] = merge([{'--customise':'PhysicsTools/NanoAOD/jetsAK4_CHS_cff.nanoAOD_refineFastSim_bTagDeepFlav'}, steps['NANOUP15FS']]) steps['HEfail'] = {'--conditions':'auto:phase1_2018_realistic_HEfail', '-n':'10',