From 862a9c6d822d14f03955f96b93ab41ceefe45d44 Mon Sep 17 00:00:00 2001 From: Kevin Date: Wed, 12 Jun 2019 13:03:35 +0200 Subject: [PATCH 1/7] add 2018 jetid --- .../interface/PFJetIDSelectionFunctor.h | 135 ++++++++++++++++-- 1 file changed, 121 insertions(+), 14 deletions(-) diff --git a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h index 71896f81b597c..b2589cc69147f 100644 --- a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h +++ b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h @@ -25,7 +25,7 @@ class PFJetIDSelectionFunctor : public Selector { public: // interface - enum Version_t { FIRSTDATA, RUNIISTARTUP, WINTER16, WINTER17, WINTER17PUPPI, N_VERSIONS }; + enum Version_t { FIRSTDATA, RUNIISTARTUP, WINTER16, WINTER17, WINTER17PUPPI, SUMMER18, N_VERSIONS }; enum Quality_t { LOOSE, TIGHT, TIGHTLEPVETO, N_QUALITY}; PFJetIDSelectionFunctor() {} @@ -53,6 +53,8 @@ class PFJetIDSelectionFunctor : public Selector { version_ = WINTER17; else if( versionStr == "WINTER17PUPPI") version_ = WINTER17PUPPI; + else if( versionStr == "SUMMER18") + version_ = SUMMER18; else version_ = WINTER17;//set WINTER17 as default @@ -66,7 +68,7 @@ class PFJetIDSelectionFunctor : public Selector { // Now check the configuration to see if the user changed anything if ( params.exists("CHF") ) set("CHF", params.getParameter("CHF") ); if ( params.exists("NHF") ) set("NHF", params.getParameter("NHF") ); - if ((version_ != WINTER17 && version_ != WINTER17PUPPI) || quality_ != TIGHT ) {if ( params.exists("CEF") ) set("CEF", params.getParameter("CEF") );} + if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18) || quality_ != TIGHT ) {if ( params.exists("CEF") ) set("CEF", params.getParameter("CEF") );} if ( params.exists("NEF") ) set("NEF", params.getParameter("NEF") ); if ( params.exists("NCH") ) set("NCH", params.getParameter ("NCH") ); if ( params.exists("nConstituents") ) set("nConstituents", params.getParameter ("nConstituents") ); @@ -99,6 +101,22 @@ class PFJetIDSelectionFunctor : public Selector { if ( params.exists("nNeutrals_FW_U") ) set("nNeutrals_FW_U", params.getParameter ("nNeutrals_FW_U") ); if ( quality_ == TIGHTLEPVETO ) {if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} } + if(version_ == SUMMER18){ + if ( params.exists("NHF_TR") ) set("NHF_TR", params.getParameter ("NHF_TR") ); + if ( params.exists("NEF_TR") ) set("NEF_TR", params.getParameter ("NEF_TR") ); + if ( params.exists("NCH_TR") ) set("NCH_TR", params.getParameter ("NCH_TR") ); + if ( params.exists("NEF_EC_L") ) set("NEF_EC_L", params.getParameter ("NEF_EC_L") ); + if ( params.exists("NEF_EC_U") ) set("NEF_EC_U", params.getParameter ("NEF_EC_U") ); + if ( params.exists("nNeutrals_EC") ) set("nNeutrals_EC", params.getParameter ("nNeutrals_EC") ); + if ( params.exists("NHF_FW") ) set("NHF_FW", params.getParameter ("NHF_FW") ); + if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); + if ( params.exists("nNeutrals_FW") ) set("nNeutrals_FW", params.getParameter ("nNeutrals_FW") ); + if ( quality_ == TIGHTLEPVETO ) { + if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") ); + if ( params.exists("MUF_TR") ) set("MUF_TR", params.getParameter ("MUF_TR") ); + if ( params.exists("CEF_TR") ) set("CEF_TR", params.getParameter("CEF_TR") ); + } + } if ( params.exists("cutsToIgnore") ) @@ -123,7 +141,7 @@ class PFJetIDSelectionFunctor : public Selector { // bool operator()( const pat::Jet & jet, pat::strbitset & ret ) override { - if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI) { + if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18) { if ( jet.currentJECLevel() == "Uncorrected" || !jet.jecSetsAvailable() ) return firstDataCuts( jet, ret, version_); else @@ -141,7 +159,7 @@ class PFJetIDSelectionFunctor : public Selector { // bool operator()( const reco::PFJet & jet, pat::strbitset & ret ) { - if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI ){ return firstDataCuts( jet, ret, version_); + if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18 ){ return firstDataCuts( jet, ret, version_); } else { return false; @@ -289,10 +307,10 @@ class PFJetIDSelectionFunctor : public Selector { } } // end if basic jet - - - // Cuts for |eta| < 2.4 for FIRSTDATA, RUNIISTARTUP, WINTER16 and WINTER17 - if((version_ != WINTER17 && version_ != WINTER17PUPPI) || quality_ != TIGHT ) {if ( ignoreCut(indexCEF_) || ( cef < cut(indexCEF_, double()) || std::abs(jet.eta()) > 2.4 ) ) passCut( ret, indexCEF_);} + float etaB=2.4; + // Cuts for |eta| < 2.6 for Summer18 + if (version_ != SUMMER18) etaB=2.6; + if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18) || quality_ != TIGHT ) {if ( ignoreCut(indexCEF_) || ( cef < cut(indexCEF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCEF_);} if ( ignoreCut(indexCHF_) || ( chf > cut(indexCHF_, double()) || std::abs(jet.eta()) > 2.4 ) ) passCut( ret, indexCHF_); if ( ignoreCut(indexNCH_) || ( nch > cut(indexNCH_, int()) || std::abs(jet.eta()) > 2.4 ) ) passCut( ret, indexNCH_); @@ -363,6 +381,33 @@ class PFJetIDSelectionFunctor : public Selector { if ( ignoreCut(indexNNeutrals_FW_U_) || ( nneutrals < cut(indexNNeutrals_FW_U_, int()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNNeutrals_FW_U_); } + else if(version_ == SUMMER18){ + + // Cuts for |eta| <= 2.6 for SUMMER18 scenario + if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNConstituents_); + if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNEF_); + if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNHF_); + if ( quality_ == TIGHTLEPVETO ) {if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexMUF_);} + + // Cuts for 2.6 <= |eta| <= 2.7 for SUMMER18 scenario + if ( ignoreCut(indexNHF_TR_) || ( nhf < cut(indexNHF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNHF_TR_); + if ( ignoreCut(indexNEF_TR_) || ( nef < cut(indexNEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNEF_TR_); + if ( ignoreCut(indexNCH_TR_) || ( nch > cut(indexNCH_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNCH_TR_); + if ( quality_ == TIGHTLEPVETO ) { + if ( ignoreCut(indexMUF_TR_) || ( muf < cut(indexMUF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexMUF_TR_); + if ( ignoreCut(indexCEF_TR_) || ( cef < cut(indexCEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexCEF_TR_); + } + + // Cuts for 2.7 < |eta| <= 3.0 for SUMMER18 scenario + if ( ignoreCut(indexNEF_EC_L_) || ( nef > cut(indexNEF_EC_L_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNEF_EC_L_); + if ( ignoreCut(indexNEF_EC_U_) || ( nef < cut(indexNEF_EC_U_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNEF_EC_U_); + if ( ignoreCut(indexNNeutrals_EC_) || ( nneutrals > cut(indexNNeutrals_EC_, int()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNNeutrals_EC_); + + // Cuts for |eta| > 3.0 for SUMMER18 scenario + if ( ignoreCut(indexNHF_FW_) || ( nhf > cut(indexNHF_FW_, double()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNHF_FW_); + if ( ignoreCut(indexNEF_FW_) || ( nef < cut(indexNEF_FW_, double()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNEF_FW_); + if ( ignoreCut(indexNNeutrals_FW_) || ( nneutrals > cut(indexNNeutrals_FW_, int()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNNeutrals_FW_); + } //std::cout << ":" << std::endl; @@ -379,7 +424,7 @@ class PFJetIDSelectionFunctor : public Selector { { push_back("CHF" ); push_back("NHF" ); - if( (version_ != WINTER17 && version_!=WINTER17PUPPI) || quality_ != TIGHT ) push_back("CEF" ); + if( (version_ != WINTER17 && version_!=WINTER17PUPPI && version_!=SUMMER18) || quality_ != TIGHT ) push_back("CEF" ); push_back("NEF" ); push_back("NCH" ); push_back("nConstituents"); @@ -412,9 +457,24 @@ class PFJetIDSelectionFunctor : public Selector { push_back("nNeutrals_FW_U"); if (quality_ == TIGHTLEPVETO) push_back("MUF"); } - + if(version_ == SUMMER18 ){ + push_back("NHF_TR"); + push_back("NEF_TR"); + push_back("NCH_TR"); + push_back("NEF_EC_L"); + push_back("NEF_EC_U"); + push_back("nNeutrals_EC"); + push_back("NEF_FW"); + push_back("NHF_FW"); + push_back("nNeutrals_FW"); - if( (version_ == WINTER17 || version_ == WINTER17PUPPI) && quality_ == LOOSE ){ + if (quality_ == TIGHTLEPVETO) { + push_back("MUF"); + push_back("MUF_TR"); + push_back("CEF_TR"); + } + } + if( (version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18) && quality_ == LOOSE ){ edm::LogWarning("BadJetIDVersion") << "Winter17 JetID version does not support the LOOSE operating point -- defaulting to TIGHT"; quality_ = TIGHT; } @@ -443,7 +503,7 @@ class PFJetIDSelectionFunctor : public Selector { } else if ( quality_ == TIGHT ) { set("CHF", 0.0); set("NHF", 0.9); - if(version_ != WINTER17 && version_ != WINTER17PUPPI ) set("CEF", 0.99); + if(version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 ) set("CEF", 0.99); set("NEF", 0.9); set("NCH", 0); set("nConstituents", 1); @@ -473,6 +533,17 @@ class PFJetIDSelectionFunctor : public Selector { set("nNeutrals_FW_L",2); set("nNeutrals_FW_U",15); } + else if(version_ == SUMMER18){ + set("NHF_TR",0.9); + set("NEF_TR",0.99); + set("NCH_TR",0); + set("NEF_EC_L",0.02); + set("NEF_EC_U",0.99); + set("nNeutrals_EC",2); + set("NHF_FW",0.2); + set("NEF_FW",0.90); + set("nNeutrals_FW",10); + } }else if ( quality_ == TIGHTLEPVETO ) { set("CHF", 0.0); @@ -508,6 +579,21 @@ class PFJetIDSelectionFunctor : public Selector { set("NEF_FW",0.90); set("MUF", 0.8); } + else if(version_ == SUMMER18){ + set("CEF", 0.8); + set("MUF", 0.8); + set("NHF_TR",0.9); + set("NEF_TR",0.99); + set("MUF_TR",0.8); + set("NCH_TR",0); + set("CEF_TR",0.8); + set("NEF_EC_L",0.02); + set("NEF_EC_U",0.99); + set("nNeutrals_EC",2); + set("NHF_FW",0.2); + set("NEF_FW",0.90); + set("nNeutrals_FW",10); + } } } @@ -517,7 +603,7 @@ class PFJetIDSelectionFunctor : public Selector { indexNConstituents_ = index_type (&bits_, "nConstituents"); indexNEF_ = index_type (&bits_, "NEF"); indexNHF_ = index_type (&bits_, "NHF"); - if((version_ != WINTER17 && version_ != WINTER17PUPPI) || quality_ != TIGHT ) indexCEF_ = index_type (&bits_, "CEF"); + if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 ) || quality_ != TIGHT ) indexCEF_ = index_type (&bits_, "CEF"); indexCHF_ = index_type (&bits_, "CHF"); indexNCH_ = index_type (&bits_, "NCH"); @@ -550,7 +636,22 @@ class PFJetIDSelectionFunctor : public Selector { indexNNeutrals_FW_U_ = index_type (&bits_, "nNeutrals_FW_U"); if ( quality_ == TIGHTLEPVETO ) {indexMUF_ = index_type (&bits_, "MUF");} } - + if(version_ == SUMMER18){ + indexNHF_TR_ = index_type (&bits_, "NHF_TR"); + indexNEF_TR_ = index_type (&bits_, "NEF_TR"); + indexNCH_TR_ = index_type (&bits_, "NCH_TR"); + indexNEF_EC_L_ = index_type (&bits_, "NEF_EC_L"); + indexNEF_EC_U_ = index_type (&bits_, "NEF_EC_U"); + indexNNeutrals_EC_ = index_type (&bits_, "nNeutrals_EC"); + indexNHF_FW_ = index_type (&bits_, "NHF_FW"); + indexNEF_FW_ = index_type (&bits_, "NEF_FW"); + indexNNeutrals_FW_ = index_type (&bits_, "nNeutrals_FW"); + if ( quality_ == TIGHTLEPVETO ) { + indexMUF_ = index_type (&bits_, "MUF"); + indexMUF_TR_ = index_type (&bits_, "MUF_TR"); + indexCEF_TR_ = index_type (&bits_, "CEF_TR"); + } + } retInternal_ = getBitTemplate(); } @@ -565,6 +666,12 @@ class PFJetIDSelectionFunctor : public Selector { index_type indexCHF_; index_type indexNCH_; + index_type indexNHF_TR_; + index_type indexNEF_TR_; + index_type indexNCH_TR_; + index_type indexMUF_TR_; + index_type indexCEF_TR_; + index_type indexNHF_FW_; index_type indexNEF_FW_; index_type indexNNeutrals_FW_; From c2c0af6c38303afdda80495aa914cd1bd410ee71 Mon Sep 17 00:00:00 2001 From: Kevin Date: Wed, 12 Jun 2019 15:32:14 +0200 Subject: [PATCH 2/7] fix --- .../SelectorUtils/interface/PFJetIDSelectionFunctor.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h index b2589cc69147f..3537b283eec2f 100644 --- a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h +++ b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h @@ -312,8 +312,8 @@ class PFJetIDSelectionFunctor : public Selector { if (version_ != SUMMER18) etaB=2.6; if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18) || quality_ != TIGHT ) {if ( ignoreCut(indexCEF_) || ( cef < cut(indexCEF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCEF_);} - if ( ignoreCut(indexCHF_) || ( chf > cut(indexCHF_, double()) || std::abs(jet.eta()) > 2.4 ) ) passCut( ret, indexCHF_); - if ( ignoreCut(indexNCH_) || ( nch > cut(indexNCH_, int()) || std::abs(jet.eta()) > 2.4 ) ) passCut( ret, indexNCH_); + if ( ignoreCut(indexCHF_) || ( chf > cut(indexCHF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCHF_); + if ( ignoreCut(indexNCH_) || ( nch > cut(indexNCH_, int()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexNCH_); if(version_ == FIRSTDATA){// Cuts for all eta for FIRSTDATA if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) ) ) passCut( ret, indexNConstituents_); From de306d2fb80ad13a7c10dbbbd16aeaf82430f31c Mon Sep 17 00:00:00 2001 From: Kevin Date: Fri, 21 Jun 2019 17:56:57 +0200 Subject: [PATCH 3/7] cosmetic fixes and fix to eta region typo --- .../interface/PFJetIDSelectionFunctor.h | 77 ++++++++++--------- 1 file changed, 41 insertions(+), 36 deletions(-) diff --git a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h index 3537b283eec2f..b3ac40bae3fbe 100644 --- a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h +++ b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h @@ -68,7 +68,8 @@ class PFJetIDSelectionFunctor : public Selector { // Now check the configuration to see if the user changed anything if ( params.exists("CHF") ) set("CHF", params.getParameter("CHF") ); if ( params.exists("NHF") ) set("NHF", params.getParameter("NHF") ); - if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18) || quality_ != TIGHT ) {if ( params.exists("CEF") ) set("CEF", params.getParameter("CEF") );} + if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18) || quality_ != TIGHT ) { + if ( params.exists("CEF") ) set("CEF", params.getParameter("CEF") );} if ( params.exists("NEF") ) set("NEF", params.getParameter("NEF") ); if ( params.exists("NCH") ) set("NCH", params.getParameter ("NCH") ); if ( params.exists("nConstituents") ) set("nConstituents", params.getParameter ("nConstituents") ); @@ -82,7 +83,8 @@ class PFJetIDSelectionFunctor : public Selector { if ( params.exists("nNeutrals_EC") ) set("nNeutrals_EC", params.getParameter ("nNeutrals_EC") ); if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); if ( params.exists("nNeutrals_FW") ) set("nNeutrals_FW", params.getParameter ("nNeutrals_FW") ); - if ( quality_ == TIGHTLEPVETO ) {if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} + if ( quality_ == TIGHTLEPVETO ) { + if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} } if(version_ == WINTER17){ if ( params.exists("NEF_EC_L") ) set("NEF_EC_L", params.getParameter ("NEF_EC_L") ); @@ -91,7 +93,8 @@ class PFJetIDSelectionFunctor : public Selector { if ( params.exists("NHF_FW") ) set("NHF_FW", params.getParameter ("NHF_FW") ); if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); if ( params.exists("nNeutrals_FW") ) set("nNeutrals_FW", params.getParameter ("nNeutrals_FW") ); - if ( quality_ == TIGHTLEPVETO ) {if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} + if ( quality_ == TIGHTLEPVETO ) { + if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} } if(version_ == WINTER17PUPPI){ if ( params.exists("NHF_EC") ) set("NHF_EC", params.getParameter ("NHF_EC") ); @@ -99,7 +102,8 @@ class PFJetIDSelectionFunctor : public Selector { if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); if ( params.exists("nNeutrals_FW_L") ) set("nNeutrals_FW_L", params.getParameter ("nNeutrals_FW_L") ); if ( params.exists("nNeutrals_FW_U") ) set("nNeutrals_FW_U", params.getParameter ("nNeutrals_FW_U") ); - if ( quality_ == TIGHTLEPVETO ) {if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} + if ( quality_ == TIGHTLEPVETO ) { + if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} } if(version_ == SUMMER18){ if ( params.exists("NHF_TR") ) set("NHF_TR", params.getParameter ("NHF_TR") ); @@ -112,10 +116,10 @@ class PFJetIDSelectionFunctor : public Selector { if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); if ( params.exists("nNeutrals_FW") ) set("nNeutrals_FW", params.getParameter ("nNeutrals_FW") ); if ( quality_ == TIGHTLEPVETO ) { - if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") ); - if ( params.exists("MUF_TR") ) set("MUF_TR", params.getParameter ("MUF_TR") ); - if ( params.exists("CEF_TR") ) set("CEF_TR", params.getParameter("CEF_TR") ); - } + if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") ); + if ( params.exists("MUF_TR") ) set("MUF_TR", params.getParameter ("MUF_TR") ); + if ( params.exists("CEF_TR") ) set("CEF_TR", params.getParameter("CEF_TR") ); + } } @@ -309,12 +313,11 @@ class PFJetIDSelectionFunctor : public Selector { float etaB=2.4; // Cuts for |eta| < 2.6 for Summer18 - if (version_ != SUMMER18) etaB=2.6; - if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18) || quality_ != TIGHT ) {if ( ignoreCut(indexCEF_) || ( cef < cut(indexCEF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCEF_);} - + if (version_ == SUMMER18) etaB=2.6; + if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18) || quality_ != TIGHT ) { + if ( ignoreCut(indexCEF_) || ( cef < cut(indexCEF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCEF_);} if ( ignoreCut(indexCHF_) || ( chf > cut(indexCHF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCHF_); if ( ignoreCut(indexNCH_) || ( nch > cut(indexNCH_, int()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexNCH_); - if(version_ == FIRSTDATA){// Cuts for all eta for FIRSTDATA if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) ) ) passCut( ret, indexNConstituents_); if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) ) ) passCut( ret, indexNEF_); @@ -333,7 +336,8 @@ class PFJetIDSelectionFunctor : public Selector { if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNConstituents_); if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNEF_); if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNHF_); - if ( quality_ == TIGHTLEPVETO ) {if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexMUF_);} + if ( quality_ == TIGHTLEPVETO ) { + if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexMUF_);} // Cuts for 2.7 < |eta| <= 3.0 for WINTER16 scenario if ( ignoreCut(indexNHF_EC_) || ( nhf < cut(indexNHF_EC_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNHF_EC_); @@ -349,7 +353,8 @@ class PFJetIDSelectionFunctor : public Selector { if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNConstituents_); if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNEF_); if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNHF_); - if ( quality_ == TIGHTLEPVETO ) {if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexMUF_);} + if ( quality_ == TIGHTLEPVETO ) { + if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexMUF_);} // Cuts for 2.7 < |eta| <= 3.0 for WINTER17 scenario @@ -368,7 +373,8 @@ class PFJetIDSelectionFunctor : public Selector { if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNConstituents_); if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNEF_); if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNHF_); - if ( quality_ == TIGHTLEPVETO ) {if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexMUF_);} + if ( quality_ == TIGHTLEPVETO ) { + if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexMUF_);} // Cuts for 2.7 < |eta| <= 3.0 for WINTER17 scenario @@ -387,16 +393,17 @@ class PFJetIDSelectionFunctor : public Selector { if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNConstituents_); if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNEF_); if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNHF_); - if ( quality_ == TIGHTLEPVETO ) {if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexMUF_);} + if ( quality_ == TIGHTLEPVETO ){ + if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexMUF_);} // Cuts for 2.6 <= |eta| <= 2.7 for SUMMER18 scenario if ( ignoreCut(indexNHF_TR_) || ( nhf < cut(indexNHF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNHF_TR_); if ( ignoreCut(indexNEF_TR_) || ( nef < cut(indexNEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNEF_TR_); if ( ignoreCut(indexNCH_TR_) || ( nch > cut(indexNCH_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNCH_TR_); - if ( quality_ == TIGHTLEPVETO ) { - if ( ignoreCut(indexMUF_TR_) || ( muf < cut(indexMUF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexMUF_TR_); - if ( ignoreCut(indexCEF_TR_) || ( cef < cut(indexCEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexCEF_TR_); - } + if ( quality_ == TIGHTLEPVETO ){ + if ( ignoreCut(indexMUF_TR_) || ( muf < cut(indexMUF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexMUF_TR_); + if ( ignoreCut(indexCEF_TR_) || ( cef < cut(indexCEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexCEF_TR_); + } // Cuts for 2.7 < |eta| <= 3.0 for SUMMER18 scenario if ( ignoreCut(indexNEF_EC_L_) || ( nef > cut(indexNEF_EC_L_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNEF_EC_L_); @@ -468,14 +475,14 @@ class PFJetIDSelectionFunctor : public Selector { push_back("NHF_FW"); push_back("nNeutrals_FW"); - if (quality_ == TIGHTLEPVETO) { - push_back("MUF"); - push_back("MUF_TR"); - push_back("CEF_TR"); - } + if (quality_ == TIGHTLEPVETO) { + push_back("MUF"); + push_back("MUF_TR"); + push_back("CEF_TR"); + } } if( (version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18) && quality_ == LOOSE ){ - edm::LogWarning("BadJetIDVersion") << "Winter17 JetID version does not support the LOOSE operating point -- defaulting to TIGHT"; + edm::LogWarning("BadJetIDVersion") << "The LOOSE operating point is only supported for the WINTER16 JetID version -- defaulting to TIGHT"; quality_ = TIGHT; } @@ -498,9 +505,8 @@ class PFJetIDSelectionFunctor : public Selector { set("NEF_FW",0.90); set("nNeutrals_FW",10); } - - - } else if ( quality_ == TIGHT ) { + } + else if ( quality_ == TIGHT ) { set("CHF", 0.0); set("NHF", 0.9); if(version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 ) set("CEF", 0.99); @@ -544,8 +550,8 @@ class PFJetIDSelectionFunctor : public Selector { set("NEF_FW",0.90); set("nNeutrals_FW",10); } - - }else if ( quality_ == TIGHTLEPVETO ) { + } + else if ( quality_ == TIGHTLEPVETO ) { set("CHF", 0.0); set("NHF", 0.9); set("NEF", 0.9); @@ -594,7 +600,6 @@ class PFJetIDSelectionFunctor : public Selector { set("NEF_FW",0.90); set("nNeutrals_FW",10); } - } } @@ -647,10 +652,10 @@ class PFJetIDSelectionFunctor : public Selector { indexNEF_FW_ = index_type (&bits_, "NEF_FW"); indexNNeutrals_FW_ = index_type (&bits_, "nNeutrals_FW"); if ( quality_ == TIGHTLEPVETO ) { - indexMUF_ = index_type (&bits_, "MUF"); - indexMUF_TR_ = index_type (&bits_, "MUF_TR"); - indexCEF_TR_ = index_type (&bits_, "CEF_TR"); - } + indexMUF_ = index_type (&bits_, "MUF"); + indexMUF_TR_ = index_type (&bits_, "MUF_TR"); + indexCEF_TR_ = index_type (&bits_, "CEF_TR"); + } } retInternal_ = getBitTemplate(); } From b4e829e5e6592de05e7b04033dfadf367ac28e46 Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 8 Jul 2019 14:30:25 +0200 Subject: [PATCH 4/7] add PUPPI OP and add 2018 customization to nanoAOD --- PhysicsTools/NanoAOD/python/jets_cff.py | 11 +- .../interface/PFJetIDSelectionFunctor.h | 119 ++++++++++++++++-- 2 files changed, 117 insertions(+), 13 deletions(-) diff --git a/PhysicsTools/NanoAOD/python/jets_cff.py b/PhysicsTools/NanoAOD/python/jets_cff.py index 8dedf104d3842..2f8c3ff89b587 100644 --- a/PhysicsTools/NanoAOD/python/jets_cff.py +++ b/PhysicsTools/NanoAOD/python/jets_cff.py @@ -1,6 +1,9 @@ import FWCore.ParameterSet.Config as cms from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff import run2_miniAOD_80XLegacy from Configuration.Eras.Modifier_run2_nanoAOD_94X2016_cff import run2_nanoAOD_94X2016 +from Configuration.Eras.Era_Run2_2018_cff import Run2_2018 +from Configuration.Eras.Modifier_run2_nanoAOD_102Xv1_cff import run2_nanoAOD_102Xv1 + from PhysicsTools.NanoAOD.common_cff import * from RecoJets.JetProducers.ak4PFJetsBetaStar_cfi import * @@ -74,7 +77,9 @@ for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: modifier.toModify( tightJetId.filterParams, version = "WINTER16" ) modifier.toModify( tightJetIdLepVeto.filterParams, version = "WINTER16" ) - +#Nano without modifier? +run2_nanoAOD_102Xv1.toModify( tightJetId.filterParams, version = "SUMMER18" ) +run2_nanoAOD_102Xv1.toModify( tightJetIdLepVeto.filterParams, version = "SUMMER18" ) looseJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer", filterParams=cms.PSet( @@ -100,7 +105,9 @@ for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: modifier.toModify( tightJetIdAK8.filterParams, version = "WINTER16" ) modifier.toModify( tightJetIdLepVetoAK8.filterParams, version = "WINTER16" ) - +#Nano without modifier? +run2_nanoAOD_102Xv1.toModify( tightJetIdAK8.filterParams, version = "SUMMER18" ) +run2_nanoAOD_102Xv1.toModify( tightJetIdAK8.filterParams, version = "SUMMER18" ) bJetVars = cms.EDProducer("JetRegressionVarProducer", pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"), diff --git a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h index b3ac40bae3fbe..74516ed9697a7 100644 --- a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h +++ b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h @@ -25,7 +25,7 @@ class PFJetIDSelectionFunctor : public Selector { public: // interface - enum Version_t { FIRSTDATA, RUNIISTARTUP, WINTER16, WINTER17, WINTER17PUPPI, SUMMER18, N_VERSIONS }; + enum Version_t { FIRSTDATA, RUNIISTARTUP, WINTER16, WINTER17, WINTER17PUPPI, SUMMER18, SUMMER18PUPPI, N_VERSIONS }; enum Quality_t { LOOSE, TIGHT, TIGHTLEPVETO, N_QUALITY}; PFJetIDSelectionFunctor() {} @@ -55,6 +55,8 @@ class PFJetIDSelectionFunctor : public Selector { version_ = WINTER17PUPPI; else if( versionStr == "SUMMER18") version_ = SUMMER18; + else if( versionStr == "SUMMER18PUPPI") + version_ = SUMMER18PUPPI; else version_ = WINTER17;//set WINTER17 as default @@ -68,7 +70,7 @@ class PFJetIDSelectionFunctor : public Selector { // Now check the configuration to see if the user changed anything if ( params.exists("CHF") ) set("CHF", params.getParameter("CHF") ); if ( params.exists("NHF") ) set("NHF", params.getParameter("NHF") ); - if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18) || quality_ != TIGHT ) { + if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || quality_ != TIGHT ) { if ( params.exists("CEF") ) set("CEF", params.getParameter("CEF") );} if ( params.exists("NEF") ) set("NEF", params.getParameter("NEF") ); if ( params.exists("NCH") ) set("NCH", params.getParameter ("NCH") ); @@ -121,6 +123,20 @@ class PFJetIDSelectionFunctor : public Selector { if ( params.exists("CEF_TR") ) set("CEF_TR", params.getParameter("CEF_TR") ); } } + if(version_ == SUMMER18PUPPI){ + if ( params.exists("NHF_TR") ) set("NHF_TR", params.getParameter ("NHF_TR") ); + if ( params.exists("NEF_TR") ) set("NEF_TR", params.getParameter ("NEF_TR") ); + if ( params.exists("NHF_EC") ) set("NHF_EC", params.getParameter ("NHF_EC") ); + if ( params.exists("NHF_FW") ) set("NHF_FW", params.getParameter ("NHF_FW") ); + if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); + if ( params.exists("nNeutrals_FW_L") ) set("nNeutrals_FW_L", params.getParameter ("nNeutrals_FW_L") ); + if ( params.exists("nNeutrals_FW_U") ) set("nNeutrals_FW_U", params.getParameter ("nNeutrals_FW_U") ); + if ( quality_ == TIGHTLEPVETO ) { + if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") ); + if ( params.exists("MUF_TR") ) set("MUF_TR", params.getParameter ("MUF_TR") ); + if ( params.exists("CEF_TR") ) set("CEF_TR", params.getParameter("CEF_TR") ); + } + } if ( params.exists("cutsToIgnore") ) @@ -145,7 +161,7 @@ class PFJetIDSelectionFunctor : public Selector { // bool operator()( const pat::Jet & jet, pat::strbitset & ret ) override { - if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18) { + if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18 || version_ == SUMMER18PUPPI) { if ( jet.currentJECLevel() == "Uncorrected" || !jet.jecSetsAvailable() ) return firstDataCuts( jet, ret, version_); else @@ -163,7 +179,7 @@ class PFJetIDSelectionFunctor : public Selector { // bool operator()( const reco::PFJet & jet, pat::strbitset & ret ) { - if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18 ){ return firstDataCuts( jet, ret, version_); + if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18 || version_ == SUMMER18PUPPI ){ return firstDataCuts( jet, ret, version_); } else { return false; @@ -313,8 +329,8 @@ class PFJetIDSelectionFunctor : public Selector { float etaB=2.4; // Cuts for |eta| < 2.6 for Summer18 - if (version_ == SUMMER18) etaB=2.6; - if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18) || quality_ != TIGHT ) { + if (version_ == SUMMER18 || version_ == SUMMER18PUPPI) etaB=2.6; + if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || quality_ != TIGHT ) { if ( ignoreCut(indexCEF_) || ( cef < cut(indexCEF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCEF_);} if ( ignoreCut(indexCHF_) || ( chf > cut(indexCHF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCHF_); if ( ignoreCut(indexNCH_) || ( nch > cut(indexNCH_, int()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexNCH_); @@ -417,10 +433,39 @@ class PFJetIDSelectionFunctor : public Selector { } + + + else if(version_ == SUMMER18PUPPI){ + + // Cuts for |eta| <= 2.6 for SUMMER18PUPPI scenario + if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNConstituents_); + if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNEF_); + if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNHF_); + if ( quality_ == TIGHTLEPVETO ){ + if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexMUF_);} + + // Cuts for 2.6 <= |eta| <= 2.7 for SUMMER18PUPPI scenario + if ( ignoreCut(indexNHF_TR_) || ( nhf < cut(indexNHF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNHF_TR_); + if ( ignoreCut(indexNEF_TR_) || ( nef < cut(indexNEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNEF_TR_); + if ( quality_ == TIGHTLEPVETO ){ + if ( ignoreCut(indexMUF_TR_) || ( muf < cut(indexMUF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexMUF_TR_); + if ( ignoreCut(indexCEF_TR_) || ( cef < cut(indexCEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexCEF_TR_); + } + + // Cuts for 2.7 < |eta| <= 3.0 for SUMMER18PUPPI scenario + if ( ignoreCut(indexNHF_EC_) || ( nhf < cut(indexNHF_EC_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNHF_EC_); + + // Cuts for |eta| > 3.0 for SUMMER18PUPPI scenario + if ( ignoreCut(indexNHF_FW_) || ( nhf > cut(indexNHF_FW_, double()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNHF_FW_); + if ( ignoreCut(indexNEF_FW_) || ( nef < cut(indexNEF_FW_, double()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNEF_FW_); + if ( ignoreCut(indexNNeutrals_FW_L_) || ( nneutrals > cut(indexNNeutrals_FW_L_, int()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNNeutrals_FW_L_); + if ( ignoreCut(indexNNeutrals_FW_U_) || ( nneutrals < cut(indexNNeutrals_FW_U_, int()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNNeutrals_FW_U_); + } + + //std::cout << ":" << std::endl; //std::cout << " jet: Pt = " << jet.pt() << ", eta = " << jet.eta() << ", phi = " << jet.phi() << std::endl; //ret.print(std::cout); - setIgnored( ret ); return (bool)ret; } @@ -431,7 +476,7 @@ class PFJetIDSelectionFunctor : public Selector { { push_back("CHF" ); push_back("NHF" ); - if( (version_ != WINTER17 && version_!=WINTER17PUPPI && version_!=SUMMER18) || quality_ != TIGHT ) push_back("CEF" ); + if( (version_ != WINTER17 && version_!=WINTER17PUPPI && version_!=SUMMER18 && version_!=SUMMER18PUPPI) || quality_ != TIGHT ) push_back("CEF" ); push_back("NEF" ); push_back("NCH" ); push_back("nConstituents"); @@ -481,7 +526,23 @@ class PFJetIDSelectionFunctor : public Selector { push_back("CEF_TR"); } } - if( (version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18) && quality_ == LOOSE ){ + if(version_ == SUMMER18PUPPI ){ + push_back("NHF_TR"); + push_back("NEF_TR"); + push_back("NHF_EC"); + push_back("NEF_FW"); + push_back("NHF_FW"); + push_back("nNeutrals_FW_L"); + push_back("nNeutrals_FW_U"); + + if (quality_ == TIGHTLEPVETO) { + push_back("MUF"); + push_back("MUF_TR"); + push_back("CEF_TR"); + } + } + + if( (version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18 || version_ == SUMMER18PUPPI) && quality_ == LOOSE ){ edm::LogWarning("BadJetIDVersion") << "The LOOSE operating point is only supported for the WINTER16 JetID version -- defaulting to TIGHT"; quality_ = TIGHT; } @@ -509,7 +570,7 @@ class PFJetIDSelectionFunctor : public Selector { else if ( quality_ == TIGHT ) { set("CHF", 0.0); set("NHF", 0.9); - if(version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 ) set("CEF", 0.99); + if(version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI ) set("CEF", 0.99); set("NEF", 0.9); set("NCH", 0); set("nConstituents", 1); @@ -550,6 +611,15 @@ class PFJetIDSelectionFunctor : public Selector { set("NEF_FW",0.90); set("nNeutrals_FW",10); } + else if(version_ == SUMMER18PUPPI){ + set("NHF_TR",0.9); + set("NEF_TR",0.99); + set("NHF_EC",0.99); + set("NHF_FW",0.02); + set("NEF_FW",0.90); + set("nNeutrals_FW_L",2); + set("nNeutrals_FW_U",15); + } } else if ( quality_ == TIGHTLEPVETO ) { set("CHF", 0.0); @@ -600,6 +670,19 @@ class PFJetIDSelectionFunctor : public Selector { set("NEF_FW",0.90); set("nNeutrals_FW",10); } + else if(version_ == SUMMER18PUPPI){ + set("CEF", 0.8); + set("MUF", 0.8); + set("NHF_TR",0.9); + set("NEF_TR",0.99); + set("MUF_TR",0.8); + set("CEF_TR",0.8); + set("NHF_EC",0.99); + set("NHF_FW",0.02); + set("NEF_FW",0.90); + set("nNeutrals_FW_L",2); + set("nNeutrals_FW_U",15); + } } } @@ -608,7 +691,7 @@ class PFJetIDSelectionFunctor : public Selector { indexNConstituents_ = index_type (&bits_, "nConstituents"); indexNEF_ = index_type (&bits_, "NEF"); indexNHF_ = index_type (&bits_, "NHF"); - if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 ) || quality_ != TIGHT ) indexCEF_ = index_type (&bits_, "CEF"); + if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || quality_ != TIGHT ) indexCEF_ = index_type (&bits_, "CEF"); indexCHF_ = index_type (&bits_, "CHF"); indexNCH_ = index_type (&bits_, "NCH"); @@ -657,6 +740,20 @@ class PFJetIDSelectionFunctor : public Selector { indexCEF_TR_ = index_type (&bits_, "CEF_TR"); } } + if(version_ == SUMMER18PUPPI){ + indexNHF_TR_ = index_type (&bits_, "NHF_TR"); + indexNEF_TR_ = index_type (&bits_, "NEF_TR"); + indexNHF_EC_ = index_type (&bits_, "NHF_EC"); + indexNHF_FW_ = index_type (&bits_, "NHF_FW"); + indexNEF_FW_ = index_type (&bits_, "NEF_FW"); + indexNNeutrals_FW_L_ = index_type (&bits_, "nNeutrals_FW_L"); + indexNNeutrals_FW_U_ = index_type (&bits_, "nNeutrals_FW_U"); + if ( quality_ == TIGHTLEPVETO ) { + indexMUF_ = index_type (&bits_, "MUF"); + indexMUF_TR_ = index_type (&bits_, "MUF_TR"); + indexCEF_TR_ = index_type (&bits_, "CEF_TR"); + } + } retInternal_ = getBitTemplate(); } From 02914da4bbe619d7dae9275bc561c09c5698a7c4 Mon Sep 17 00:00:00 2001 From: Kevin Date: Thu, 11 Jul 2019 11:38:53 +0200 Subject: [PATCH 5/7] format changes --- .../interface/PFJetIDSelectionFunctor.h | 717 ++++++++++-------- 1 file changed, 416 insertions(+), 301 deletions(-) diff --git a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h index 3f30dfa7712c0..565074e4de73e 100644 --- a/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h +++ b/PhysicsTools/SelectorUtils/interface/PFJetIDSelectionFunctor.h @@ -22,13 +22,10 @@ #include -class PFJetIDSelectionFunctor : public Selector { - - public: // interface - +class PFJetIDSelectionFunctor : public Selector { +public: // interface enum Version_t { FIRSTDATA, RUNIISTARTUP, WINTER16, WINTER17, WINTER17PUPPI, SUMMER18, SUMMER18PUPPI, N_VERSIONS }; - enum Quality_t { LOOSE, TIGHT, TIGHTLEPVETO, N_QUALITY}; - + enum Quality_t { LOOSE, TIGHT, TIGHTLEPVETO, N_QUALITY }; PFJetIDSelectionFunctor() {} @@ -37,108 +34,163 @@ class PFJetIDSelectionFunctor : public Selector { : PFJetIDSelectionFunctor(params) {} #endif + PFJetIDSelectionFunctor(edm::ParameterSet const ¶ms) { + std::string versionStr = params.getParameter("version"); + std::string qualityStr = params.getParameter("quality"); + + if (versionStr == "FIRSTDATA") + version_ = FIRSTDATA; + else if (versionStr == "RUNIISTARTUP") + version_ = RUNIISTARTUP; + // WINTER16 implements most recent (as of Feb 2017) JetID criteria + // See: https://twiki.cern.ch/twiki/bin/view/CMS/JetID13TeVRun2016 + else if (versionStr == "WINTER16") + version_ = WINTER16; + else if (versionStr == "WINTER17") + version_ = WINTER17; + else if (versionStr == "WINTER17PUPPI") + version_ = WINTER17PUPPI; + else if (versionStr == "SUMMER18") + version_ = SUMMER18; + else if (versionStr == "SUMMER18PUPPI") + version_ = SUMMER18PUPPI; + else + version_ = WINTER17; //set WINTER17 as default + + if (qualityStr == "LOOSE") + quality_ = LOOSE; + else if (qualityStr == "TIGHT") + quality_ = TIGHT; + else if (qualityStr == "TIGHTLEPVETO") + quality_ = TIGHTLEPVETO; + else + quality_ = TIGHT; - PFJetIDSelectionFunctor( edm::ParameterSet const & params ) - { - std::string versionStr = params.getParameter("version"); - std::string qualityStr = params.getParameter("quality"); - - if ( versionStr == "FIRSTDATA" ) - version_ = FIRSTDATA; - else if( versionStr == "RUNIISTARTUP") - version_ = RUNIISTARTUP; - // WINTER16 implements most recent (as of Feb 2017) JetID criteria - // See: https://twiki.cern.ch/twiki/bin/view/CMS/JetID13TeVRun2016 - else if( versionStr == "WINTER16") - version_ = WINTER16; - else if( versionStr == "WINTER17") - version_ = WINTER17; - else if( versionStr == "WINTER17PUPPI") - version_ = WINTER17PUPPI; - else if( versionStr == "SUMMER18") - version_ = SUMMER18; - else if( versionStr == "SUMMER18PUPPI") - version_ = SUMMER18PUPPI; - else version_ = WINTER17;//set WINTER17 as default - - - if ( qualityStr == "LOOSE") quality_ = LOOSE; - else if ( qualityStr == "TIGHT") quality_ = TIGHT; - else if ( qualityStr == "TIGHTLEPVETO") quality_ = TIGHTLEPVETO; - else quality_ = TIGHT; - - initCuts(); + initCuts(); // Now check the configuration to see if the user changed anything - if ( params.exists("CHF") ) set("CHF", params.getParameter("CHF") ); - if ( params.exists("NHF") ) set("NHF", params.getParameter("NHF") ); - if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || quality_ != TIGHT ) { - if ( params.exists("CEF") ) set("CEF", params.getParameter("CEF") );} - if ( params.exists("NEF") ) set("NEF", params.getParameter("NEF") ); - if ( params.exists("NCH") ) set("NCH", params.getParameter ("NCH") ); - if ( params.exists("nConstituents") ) set("nConstituents", params.getParameter ("nConstituents") ); - if(version_ == RUNIISTARTUP){ - if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); - if ( params.exists("nNeutrals_FW") ) set("nNeutrals_FW", params.getParameter ("nNeutrals_FW") ); + if (params.exists("CHF")) + set("CHF", params.getParameter("CHF")); + if (params.exists("NHF")) + set("NHF", params.getParameter("NHF")); + if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || + quality_ != TIGHT) { + if (params.exists("CEF")) + set("CEF", params.getParameter("CEF")); } - if(version_ == WINTER16){ - if ( params.exists("NHF_EC") ) set("NHF_EC", params.getParameter ("NHF_EC") ); - if ( params.exists("NEF_EC") ) set("NEF_EC", params.getParameter ("NEF_EC") ); - if ( params.exists("nNeutrals_EC") ) set("nNeutrals_EC", params.getParameter ("nNeutrals_EC") ); - if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); - if ( params.exists("nNeutrals_FW") ) set("nNeutrals_FW", params.getParameter ("nNeutrals_FW") ); - if ( quality_ == TIGHTLEPVETO ) { - if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} + if (params.exists("NEF")) + set("NEF", params.getParameter("NEF")); + if (params.exists("NCH")) + set("NCH", params.getParameter("NCH")); + if (params.exists("nConstituents")) + set("nConstituents", params.getParameter("nConstituents")); + if (version_ == RUNIISTARTUP) { + if (params.exists("NEF_FW")) + set("NEF_FW", params.getParameter("NEF_FW")); + if (params.exists("nNeutrals_FW")) + set("nNeutrals_FW", params.getParameter("nNeutrals_FW")); } - if(version_ == WINTER17){ - if ( params.exists("NEF_EC_L") ) set("NEF_EC_L", params.getParameter ("NEF_EC_L") ); - if ( params.exists("NEF_EC_U") ) set("NEF_EC_U", params.getParameter ("NEF_EC_U") ); - if ( params.exists("nNeutrals_EC") ) set("nNeutrals_EC", params.getParameter ("nNeutrals_EC") ); - if ( params.exists("NHF_FW") ) set("NHF_FW", params.getParameter ("NHF_FW") ); - if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); - if ( params.exists("nNeutrals_FW") ) set("nNeutrals_FW", params.getParameter ("nNeutrals_FW") ); - if ( quality_ == TIGHTLEPVETO ) { - if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} + if (version_ == WINTER16) { + if (params.exists("NHF_EC")) + set("NHF_EC", params.getParameter("NHF_EC")); + if (params.exists("NEF_EC")) + set("NEF_EC", params.getParameter("NEF_EC")); + if (params.exists("nNeutrals_EC")) + set("nNeutrals_EC", params.getParameter("nNeutrals_EC")); + if (params.exists("NEF_FW")) + set("NEF_FW", params.getParameter("NEF_FW")); + if (params.exists("nNeutrals_FW")) + set("nNeutrals_FW", params.getParameter("nNeutrals_FW")); + if (quality_ == TIGHTLEPVETO) { + if (params.exists("MUF")) + set("MUF", params.getParameter("MUF")); + } } - if(version_ == WINTER17PUPPI){ - if ( params.exists("NHF_EC") ) set("NHF_EC", params.getParameter ("NHF_EC") ); - if ( params.exists("NHF_FW") ) set("NHF_FW", params.getParameter ("NHF_FW") ); - if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); - if ( params.exists("nNeutrals_FW_L") ) set("nNeutrals_FW_L", params.getParameter ("nNeutrals_FW_L") ); - if ( params.exists("nNeutrals_FW_U") ) set("nNeutrals_FW_U", params.getParameter ("nNeutrals_FW_U") ); - if ( quality_ == TIGHTLEPVETO ) { - if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") );} + if (version_ == WINTER17) { + if (params.exists("NEF_EC_L")) + set("NEF_EC_L", params.getParameter("NEF_EC_L")); + if (params.exists("NEF_EC_U")) + set("NEF_EC_U", params.getParameter("NEF_EC_U")); + if (params.exists("nNeutrals_EC")) + set("nNeutrals_EC", params.getParameter("nNeutrals_EC")); + if (params.exists("NHF_FW")) + set("NHF_FW", params.getParameter("NHF_FW")); + if (params.exists("NEF_FW")) + set("NEF_FW", params.getParameter("NEF_FW")); + if (params.exists("nNeutrals_FW")) + set("nNeutrals_FW", params.getParameter("nNeutrals_FW")); + if (quality_ == TIGHTLEPVETO) { + if (params.exists("MUF")) + set("MUF", params.getParameter("MUF")); + } } - if(version_ == SUMMER18){ - if ( params.exists("NHF_TR") ) set("NHF_TR", params.getParameter ("NHF_TR") ); - if ( params.exists("NEF_TR") ) set("NEF_TR", params.getParameter ("NEF_TR") ); - if ( params.exists("NCH_TR") ) set("NCH_TR", params.getParameter ("NCH_TR") ); - if ( params.exists("NEF_EC_L") ) set("NEF_EC_L", params.getParameter ("NEF_EC_L") ); - if ( params.exists("NEF_EC_U") ) set("NEF_EC_U", params.getParameter ("NEF_EC_U") ); - if ( params.exists("nNeutrals_EC") ) set("nNeutrals_EC", params.getParameter ("nNeutrals_EC") ); - if ( params.exists("NHF_FW") ) set("NHF_FW", params.getParameter ("NHF_FW") ); - if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); - if ( params.exists("nNeutrals_FW") ) set("nNeutrals_FW", params.getParameter ("nNeutrals_FW") ); - if ( quality_ == TIGHTLEPVETO ) { - if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") ); - if ( params.exists("MUF_TR") ) set("MUF_TR", params.getParameter ("MUF_TR") ); - if ( params.exists("CEF_TR") ) set("CEF_TR", params.getParameter("CEF_TR") ); - } + if (version_ == WINTER17PUPPI) { + if (params.exists("NHF_EC")) + set("NHF_EC", params.getParameter("NHF_EC")); + if (params.exists("NHF_FW")) + set("NHF_FW", params.getParameter("NHF_FW")); + if (params.exists("NEF_FW")) + set("NEF_FW", params.getParameter("NEF_FW")); + if (params.exists("nNeutrals_FW_L")) + set("nNeutrals_FW_L", params.getParameter("nNeutrals_FW_L")); + if (params.exists("nNeutrals_FW_U")) + set("nNeutrals_FW_U", params.getParameter("nNeutrals_FW_U")); + if (quality_ == TIGHTLEPVETO) { + if (params.exists("MUF")) + set("MUF", params.getParameter("MUF")); + } } - if(version_ == SUMMER18PUPPI){ - if ( params.exists("NHF_TR") ) set("NHF_TR", params.getParameter ("NHF_TR") ); - if ( params.exists("NEF_TR") ) set("NEF_TR", params.getParameter ("NEF_TR") ); - if ( params.exists("NHF_EC") ) set("NHF_EC", params.getParameter ("NHF_EC") ); - if ( params.exists("NHF_FW") ) set("NHF_FW", params.getParameter ("NHF_FW") ); - if ( params.exists("NEF_FW") ) set("NEF_FW", params.getParameter ("NEF_FW") ); - if ( params.exists("nNeutrals_FW_L") ) set("nNeutrals_FW_L", params.getParameter ("nNeutrals_FW_L") ); - if ( params.exists("nNeutrals_FW_U") ) set("nNeutrals_FW_U", params.getParameter ("nNeutrals_FW_U") ); - if ( quality_ == TIGHTLEPVETO ) { - if ( params.exists("MUF") ) set("MUF", params.getParameter ("MUF") ); - if ( params.exists("MUF_TR") ) set("MUF_TR", params.getParameter ("MUF_TR") ); - if ( params.exists("CEF_TR") ) set("CEF_TR", params.getParameter("CEF_TR") ); - } - + if (version_ == SUMMER18) { + if (params.exists("NHF_TR")) + set("NHF_TR", params.getParameter("NHF_TR")); + if (params.exists("NEF_TR")) + set("NEF_TR", params.getParameter("NEF_TR")); + if (params.exists("NCH_TR")) + set("NCH_TR", params.getParameter("NCH_TR")); + if (params.exists("NEF_EC_L")) + set("NEF_EC_L", params.getParameter("NEF_EC_L")); + if (params.exists("NEF_EC_U")) + set("NEF_EC_U", params.getParameter("NEF_EC_U")); + if (params.exists("nNeutrals_EC")) + set("nNeutrals_EC", params.getParameter("nNeutrals_EC")); + if (params.exists("NHF_FW")) + set("NHF_FW", params.getParameter("NHF_FW")); + if (params.exists("NEF_FW")) + set("NEF_FW", params.getParameter("NEF_FW")); + if (params.exists("nNeutrals_FW")) + set("nNeutrals_FW", params.getParameter("nNeutrals_FW")); + if (quality_ == TIGHTLEPVETO) { + if (params.exists("MUF")) + set("MUF", params.getParameter("MUF")); + if (params.exists("MUF_TR")) + set("MUF_TR", params.getParameter("MUF_TR")); + if (params.exists("CEF_TR")) + set("CEF_TR", params.getParameter("CEF_TR")); + } + } + if (version_ == SUMMER18PUPPI) { + if (params.exists("NHF_TR")) + set("NHF_TR", params.getParameter("NHF_TR")); + if (params.exists("NEF_TR")) + set("NEF_TR", params.getParameter("NEF_TR")); + if (params.exists("NHF_EC")) + set("NHF_EC", params.getParameter("NHF_EC")); + if (params.exists("NHF_FW")) + set("NHF_FW", params.getParameter("NHF_FW")); + if (params.exists("NEF_FW")) + set("NEF_FW", params.getParameter("NEF_FW")); + if (params.exists("nNeutrals_FW_L")) + set("nNeutrals_FW_L", params.getParameter("nNeutrals_FW_L")); + if (params.exists("nNeutrals_FW_U")) + set("nNeutrals_FW_U", params.getParameter("nNeutrals_FW_U")); + if (quality_ == TIGHTLEPVETO) { + if (params.exists("MUF")) + set("MUF", params.getParameter("MUF")); + if (params.exists("MUF_TR")) + set("MUF_TR", params.getParameter("MUF_TR")); + if (params.exists("CEF_TR")) + set("CEF_TR", params.getParameter("CEF_TR")); + } } if (params.exists("cutsToIgnore")) @@ -155,11 +207,11 @@ class PFJetIDSelectionFunctor : public Selector { // // Accessor from PAT jets // - bool operator()( const pat::Jet & jet, pat::strbitset & ret ) override - { - if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18 || version_ == SUMMER18PUPPI) { - if ( jet.currentJECLevel() == "Uncorrected" || !jet.jecSetsAvailable() ) - return firstDataCuts( jet, ret, version_); + bool operator()(const pat::Jet &jet, pat::strbitset &ret) override { + if (version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || + version_ == WINTER17PUPPI || version_ == SUMMER18 || version_ == SUMMER18PUPPI) { + if (jet.currentJECLevel() == "Uncorrected" || !jet.jecSetsAvailable()) + return firstDataCuts(jet, ret, version_); else return firstDataCuts(jet.correctedJet("Uncorrected"), ret, version_); } else { @@ -172,12 +224,11 @@ class PFJetIDSelectionFunctor : public Selector { // Accessor from *CORRECTED* 4-vector, EMF, and Jet ID. // This can be used with reco quantities. // - bool operator()( const reco::PFJet & jet, pat::strbitset & ret ) - { - if ( version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18 || version_ == SUMMER18PUPPI ){ return firstDataCuts( jet, ret, version_); - } - else { - + bool operator()(const reco::PFJet &jet, pat::strbitset &ret) { + if (version_ == FIRSTDATA || version_ == RUNIISTARTUP || version_ == WINTER16 || version_ == WINTER17 || + version_ == WINTER17PUPPI || version_ == SUMMER18 || version_ == SUMMER18PUPPI) { + return firstDataCuts(jet, ret, version_); + } else { return false; } } @@ -313,20 +364,29 @@ class PFJetIDSelectionFunctor : public Selector { cef = e_cef / e; nef = e_nef / e; } - } // end if basic jet + } // end if basic jet - float etaB=2.4; + float etaB = 2.4; // Cuts for |eta| < 2.6 for Summer18 - if (version_ == SUMMER18 || version_ == SUMMER18PUPPI) etaB=2.6; - if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || quality_ != TIGHT ) { - if ( ignoreCut(indexCEF_) || ( cef < cut(indexCEF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCEF_);} - if ( ignoreCut(indexCHF_) || ( chf > cut(indexCHF_, double()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexCHF_); - if ( ignoreCut(indexNCH_) || ( nch > cut(indexNCH_, int()) || std::abs(jet.eta()) > etaB ) ) passCut( ret, indexNCH_); - if(version_ == FIRSTDATA){// Cuts for all eta for FIRSTDATA - if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) ) ) passCut( ret, indexNConstituents_); - if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) ) ) passCut( ret, indexNEF_); - if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) ) ) passCut( ret, indexNHF_); - }else if(version_ == RUNIISTARTUP){ + if (version_ == SUMMER18 || version_ == SUMMER18PUPPI) + etaB = 2.6; + if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || + quality_ != TIGHT) { + if (ignoreCut(indexCEF_) || (cef < cut(indexCEF_, double()) || std::abs(jet.eta()) > etaB)) + passCut(ret, indexCEF_); + } + if (ignoreCut(indexCHF_) || (chf > cut(indexCHF_, double()) || std::abs(jet.eta()) > etaB)) + passCut(ret, indexCHF_); + if (ignoreCut(indexNCH_) || (nch > cut(indexNCH_, int()) || std::abs(jet.eta()) > etaB)) + passCut(ret, indexNCH_); + if (version_ == FIRSTDATA) { // Cuts for all eta for FIRSTDATA + if (ignoreCut(indexNConstituents_) || (nconstituents > cut(indexNConstituents_, int()))) + passCut(ret, indexNConstituents_); + if (ignoreCut(indexNEF_) || (nef < cut(indexNEF_, double()))) + passCut(ret, indexNEF_); + if (ignoreCut(indexNHF_) || (nhf < cut(indexNHF_, double()))) + passCut(ret, indexNHF_); + } else if (version_ == RUNIISTARTUP) { // Cuts for |eta| <= 3.0 for RUNIISTARTUP scenario if (ignoreCut(indexNConstituents_) || (nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 3.0)) @@ -342,11 +402,17 @@ class PFJetIDSelectionFunctor : public Selector { passCut(ret, indexNNeutrals_FW_); } else if (version_ == WINTER16) { // Cuts for |eta| <= 2.7 for WINTER16 scenario - if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNConstituents_); - if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNEF_); - if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNHF_); - if ( quality_ == TIGHTLEPVETO ) { - if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexMUF_);} + if (ignoreCut(indexNConstituents_) || + (nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNConstituents_); + if (ignoreCut(indexNEF_) || (nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNEF_); + if (ignoreCut(indexNHF_) || (nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNHF_); + if (quality_ == TIGHTLEPVETO) { + if (ignoreCut(indexMUF_) || (muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexMUF_); + } // Cuts for 2.7 < |eta| <= 3.0 for WINTER16 scenario if (ignoreCut(indexNHF_EC_) || @@ -366,11 +432,17 @@ class PFJetIDSelectionFunctor : public Selector { passCut(ret, indexNNeutrals_FW_); } else if (version_ == WINTER17) { // Cuts for |eta| <= 2.7 for WINTER17 scenario - if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNConstituents_); - if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNEF_); - if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNHF_); - if ( quality_ == TIGHTLEPVETO ) { - if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexMUF_);} + if (ignoreCut(indexNConstituents_) || + (nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNConstituents_); + if (ignoreCut(indexNEF_) || (nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNEF_); + if (ignoreCut(indexNHF_) || (nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNHF_); + if (quality_ == TIGHTLEPVETO) { + if (ignoreCut(indexMUF_) || (muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexMUF_); + } // Cuts for 2.7 < |eta| <= 3.0 for WINTER17 scenario @@ -394,11 +466,17 @@ class PFJetIDSelectionFunctor : public Selector { } else if (version_ == WINTER17PUPPI) { // Cuts for |eta| <= 2.7 for WINTER17 scenario - if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNConstituents_); - if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNEF_); - if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexNHF_); - if ( quality_ == TIGHTLEPVETO ) { - if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7 ) ) passCut( ret, indexMUF_);} + if (ignoreCut(indexNConstituents_) || + (nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNConstituents_); + if (ignoreCut(indexNEF_) || (nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNEF_); + if (ignoreCut(indexNHF_) || (nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNHF_); + if (quality_ == TIGHTLEPVETO) { + if (ignoreCut(indexMUF_) || (muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexMUF_); + } // Cuts for 2.7 < |eta| <= 3.0 for WINTER17 scenario @@ -417,82 +495,123 @@ class PFJetIDSelectionFunctor : public Selector { if (ignoreCut(indexNNeutrals_FW_U_) || (nneutrals < cut(indexNNeutrals_FW_U_, int()) || std::abs(jet.eta()) <= 3.0)) passCut(ret, indexNNeutrals_FW_U_); - } - else if(version_ == SUMMER18){ - + } else if (version_ == SUMMER18) { // Cuts for |eta| <= 2.6 for SUMMER18 scenario - if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNConstituents_); - if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNEF_); - if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNHF_); - if ( quality_ == TIGHTLEPVETO ){ - if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexMUF_);} + if (ignoreCut(indexNConstituents_) || + (nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.6)) + passCut(ret, indexNConstituents_); + if (ignoreCut(indexNEF_) || (nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.6)) + passCut(ret, indexNEF_); + if (ignoreCut(indexNHF_) || (nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.6)) + passCut(ret, indexNHF_); + if (quality_ == TIGHTLEPVETO) { + if (ignoreCut(indexMUF_) || (muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.6)) + passCut(ret, indexMUF_); + } // Cuts for 2.6 <= |eta| <= 2.7 for SUMMER18 scenario - if ( ignoreCut(indexNHF_TR_) || ( nhf < cut(indexNHF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNHF_TR_); - if ( ignoreCut(indexNEF_TR_) || ( nef < cut(indexNEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNEF_TR_); - if ( ignoreCut(indexNCH_TR_) || ( nch > cut(indexNCH_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNCH_TR_); - if ( quality_ == TIGHTLEPVETO ){ - if ( ignoreCut(indexMUF_TR_) || ( muf < cut(indexMUF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexMUF_TR_); - if ( ignoreCut(indexCEF_TR_) || ( cef < cut(indexCEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexCEF_TR_); + if (ignoreCut(indexNHF_TR_) || + (nhf < cut(indexNHF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNHF_TR_); + if (ignoreCut(indexNEF_TR_) || + (nef < cut(indexNEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNEF_TR_); + if (ignoreCut(indexNCH_TR_) || + (nch > cut(indexNCH_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNCH_TR_); + if (quality_ == TIGHTLEPVETO) { + if (ignoreCut(indexMUF_TR_) || + (muf < cut(indexMUF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexMUF_TR_); + if (ignoreCut(indexCEF_TR_) || + (cef < cut(indexCEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexCEF_TR_); } // Cuts for 2.7 < |eta| <= 3.0 for SUMMER18 scenario - if ( ignoreCut(indexNEF_EC_L_) || ( nef > cut(indexNEF_EC_L_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNEF_EC_L_); - if ( ignoreCut(indexNEF_EC_U_) || ( nef < cut(indexNEF_EC_U_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNEF_EC_U_); - if ( ignoreCut(indexNNeutrals_EC_) || ( nneutrals > cut(indexNNeutrals_EC_, int()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNNeutrals_EC_); + if (ignoreCut(indexNEF_EC_L_) || + (nef > cut(indexNEF_EC_L_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0)) + passCut(ret, indexNEF_EC_L_); + if (ignoreCut(indexNEF_EC_U_) || + (nef < cut(indexNEF_EC_U_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0)) + passCut(ret, indexNEF_EC_U_); + if (ignoreCut(indexNNeutrals_EC_) || + (nneutrals > cut(indexNNeutrals_EC_, int()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0)) + passCut(ret, indexNNeutrals_EC_); // Cuts for |eta| > 3.0 for SUMMER18 scenario - if ( ignoreCut(indexNHF_FW_) || ( nhf > cut(indexNHF_FW_, double()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNHF_FW_); - if ( ignoreCut(indexNEF_FW_) || ( nef < cut(indexNEF_FW_, double()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNEF_FW_); - if ( ignoreCut(indexNNeutrals_FW_) || ( nneutrals > cut(indexNNeutrals_FW_, int()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNNeutrals_FW_); + if (ignoreCut(indexNHF_FW_) || (nhf > cut(indexNHF_FW_, double()) || std::abs(jet.eta()) <= 3.0)) + passCut(ret, indexNHF_FW_); + if (ignoreCut(indexNEF_FW_) || (nef < cut(indexNEF_FW_, double()) || std::abs(jet.eta()) <= 3.0)) + passCut(ret, indexNEF_FW_); + if (ignoreCut(indexNNeutrals_FW_) || (nneutrals > cut(indexNNeutrals_FW_, int()) || std::abs(jet.eta()) <= 3.0)) + passCut(ret, indexNNeutrals_FW_); } - - - - else if(version_ == SUMMER18PUPPI){ - + else if (version_ == SUMMER18PUPPI) { // Cuts for |eta| <= 2.6 for SUMMER18PUPPI scenario - if ( ignoreCut(indexNConstituents_) || ( nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNConstituents_); - if ( ignoreCut(indexNEF_) || ( nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNEF_); - if ( ignoreCut(indexNHF_) || ( nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexNHF_); - if ( quality_ == TIGHTLEPVETO ){ - if ( ignoreCut(indexMUF_) || ( muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.6 ) ) passCut( ret, indexMUF_);} + if (ignoreCut(indexNConstituents_) || + (nconstituents > cut(indexNConstituents_, int()) || std::abs(jet.eta()) > 2.6)) + passCut(ret, indexNConstituents_); + if (ignoreCut(indexNEF_) || (nef < cut(indexNEF_, double()) || std::abs(jet.eta()) > 2.6)) + passCut(ret, indexNEF_); + if (ignoreCut(indexNHF_) || (nhf < cut(indexNHF_, double()) || std::abs(jet.eta()) > 2.6)) + passCut(ret, indexNHF_); + if (quality_ == TIGHTLEPVETO) { + if (ignoreCut(indexMUF_) || (muf < cut(indexMUF_, double()) || std::abs(jet.eta()) > 2.6)) + passCut(ret, indexMUF_); + } // Cuts for 2.6 <= |eta| <= 2.7 for SUMMER18PUPPI scenario - if ( ignoreCut(indexNHF_TR_) || ( nhf < cut(indexNHF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNHF_TR_); - if ( ignoreCut(indexNEF_TR_) || ( nef < cut(indexNEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexNEF_TR_); - if ( quality_ == TIGHTLEPVETO ){ - if ( ignoreCut(indexMUF_TR_) || ( muf < cut(indexMUF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexMUF_TR_); - if ( ignoreCut(indexCEF_TR_) || ( cef < cut(indexCEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7) ) passCut( ret, indexCEF_TR_); + if (ignoreCut(indexNHF_TR_) || + (nhf < cut(indexNHF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNHF_TR_); + if (ignoreCut(indexNEF_TR_) || + (nef < cut(indexNEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexNEF_TR_); + if (quality_ == TIGHTLEPVETO) { + if (ignoreCut(indexMUF_TR_) || + (muf < cut(indexMUF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexMUF_TR_); + if (ignoreCut(indexCEF_TR_) || + (cef < cut(indexCEF_TR_, double()) || std::abs(jet.eta()) <= 2.6 || std::abs(jet.eta()) > 2.7)) + passCut(ret, indexCEF_TR_); } // Cuts for 2.7 < |eta| <= 3.0 for SUMMER18PUPPI scenario - if ( ignoreCut(indexNHF_EC_) || ( nhf < cut(indexNHF_EC_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0) ) passCut( ret, indexNHF_EC_); + if (ignoreCut(indexNHF_EC_) || + (nhf < cut(indexNHF_EC_, double()) || std::abs(jet.eta()) <= 2.7 || std::abs(jet.eta()) > 3.0)) + passCut(ret, indexNHF_EC_); // Cuts for |eta| > 3.0 for SUMMER18PUPPI scenario - if ( ignoreCut(indexNHF_FW_) || ( nhf > cut(indexNHF_FW_, double()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNHF_FW_); - if ( ignoreCut(indexNEF_FW_) || ( nef < cut(indexNEF_FW_, double()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNEF_FW_); - if ( ignoreCut(indexNNeutrals_FW_L_) || ( nneutrals > cut(indexNNeutrals_FW_L_, int()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNNeutrals_FW_L_); - if ( ignoreCut(indexNNeutrals_FW_U_) || ( nneutrals < cut(indexNNeutrals_FW_U_, int()) || std::abs(jet.eta()) <= 3.0 ) ) passCut( ret, indexNNeutrals_FW_U_); + if (ignoreCut(indexNHF_FW_) || (nhf > cut(indexNHF_FW_, double()) || std::abs(jet.eta()) <= 3.0)) + passCut(ret, indexNHF_FW_); + if (ignoreCut(indexNEF_FW_) || (nef < cut(indexNEF_FW_, double()) || std::abs(jet.eta()) <= 3.0)) + passCut(ret, indexNEF_FW_); + if (ignoreCut(indexNNeutrals_FW_L_) || + (nneutrals > cut(indexNNeutrals_FW_L_, int()) || std::abs(jet.eta()) <= 3.0)) + passCut(ret, indexNNeutrals_FW_L_); + if (ignoreCut(indexNNeutrals_FW_U_) || + (nneutrals < cut(indexNNeutrals_FW_U_, int()) || std::abs(jet.eta()) <= 3.0)) + passCut(ret, indexNNeutrals_FW_U_); } //std::cout << ":" << std::endl; //std::cout << " jet: Pt = " << jet.pt() << ", eta = " << jet.eta() << ", phi = " << jet.phi() << std::endl; //ret.print(std::cout); - setIgnored( ret ); + setIgnored(ret); return (bool)ret; } - private: // member variables - - void initCuts() - { - push_back("CHF" ); - push_back("NHF" ); - if( (version_ != WINTER17 && version_!=WINTER17PUPPI && version_!=SUMMER18 && version_!=SUMMER18PUPPI) || quality_ != TIGHT ) push_back("CEF" ); - push_back("NEF" ); - push_back("NCH" ); +private: // member variables + void initCuts() { + push_back("CHF"); + push_back("NHF"); + if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || + quality_ != TIGHT) + push_back("CEF"); + push_back("NEF"); + push_back("NCH"); push_back("nConstituents"); if (version_ == RUNIISTARTUP) { push_back("NEF_FW"); @@ -526,7 +645,7 @@ class PFJetIDSelectionFunctor : public Selector { if (quality_ == TIGHTLEPVETO) push_back("MUF"); } - if(version_ == SUMMER18 ){ + if (version_ == SUMMER18) { push_back("NHF_TR"); push_back("NEF_TR"); push_back("NCH_TR"); @@ -543,7 +662,7 @@ class PFJetIDSelectionFunctor : public Selector { push_back("CEF_TR"); } } - if(version_ == SUMMER18PUPPI ){ + if (version_ == SUMMER18PUPPI) { push_back("NHF_TR"); push_back("NEF_TR"); push_back("NHF_EC"); @@ -559,8 +678,10 @@ class PFJetIDSelectionFunctor : public Selector { } } - if( (version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18 || version_ == SUMMER18PUPPI) && quality_ == LOOSE ){ - edm::LogWarning("BadJetIDVersion") << "The LOOSE operating point is only supported for the WINTER16 JetID version -- defaulting to TIGHT"; + if ((version_ == WINTER17 || version_ == WINTER17PUPPI || version_ == SUMMER18 || version_ == SUMMER18PUPPI) && + quality_ == LOOSE) { + edm::LogWarning("BadJetIDVersion") + << "The LOOSE operating point is only supported for the WINTER16 JetID version -- defaulting to TIGHT"; quality_ = TIGHT; } @@ -582,11 +703,11 @@ class PFJetIDSelectionFunctor : public Selector { set("NEF_FW", 0.90); set("nNeutrals_FW", 10); } - } - else if ( quality_ == TIGHT ) { + } else if (quality_ == TIGHT) { set("CHF", 0.0); set("NHF", 0.9); - if(version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI ) set("CEF", 0.99); + if (version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) + set("CEF", 0.99); set("NEF", 0.9); set("NCH", 0); set("nConstituents", 1); @@ -612,29 +733,26 @@ class PFJetIDSelectionFunctor : public Selector { set("NEF_FW", 0.90); set("nNeutrals_FW_L", 2); set("nNeutrals_FW_U", 15); + } else if (version_ == SUMMER18) { + set("NHF_TR", 0.9); + set("NEF_TR", 0.99); + set("NCH_TR", 0); + set("NEF_EC_L", 0.02); + set("NEF_EC_U", 0.99); + set("nNeutrals_EC", 2); + set("NHF_FW", 0.2); + set("NEF_FW", 0.90); + set("nNeutrals_FW", 10); + } else if (version_ == SUMMER18PUPPI) { + set("NHF_TR", 0.9); + set("NEF_TR", 0.99); + set("NHF_EC", 0.99); + set("NHF_FW", 0.02); + set("NEF_FW", 0.90); + set("nNeutrals_FW_L", 2); + set("nNeutrals_FW_U", 15); } - else if(version_ == SUMMER18){ - set("NHF_TR",0.9); - set("NEF_TR",0.99); - set("NCH_TR",0); - set("NEF_EC_L",0.02); - set("NEF_EC_U",0.99); - set("nNeutrals_EC",2); - set("NHF_FW",0.2); - set("NEF_FW",0.90); - set("nNeutrals_FW",10); - } - else if(version_ == SUMMER18PUPPI){ - set("NHF_TR",0.9); - set("NEF_TR",0.99); - set("NHF_EC",0.99); - set("NHF_FW",0.02); - set("NEF_FW",0.90); - set("nNeutrals_FW_L",2); - set("nNeutrals_FW_U",15); - } - } - else if ( quality_ == TIGHTLEPVETO ) { + } else if (quality_ == TIGHTLEPVETO) { set("CHF", 0.0); set("NHF", 0.9); set("NEF", 0.9); @@ -665,68 +783,65 @@ class PFJetIDSelectionFunctor : public Selector { set("nNeutrals_FW", 10); set("NEF_FW", 0.90); set("MUF", 0.8); - } - else if(version_ == WINTER17PUPPI){ - set("CEF", 0.8); - set("NHF_EC",0.99); - set("NHF_FW",0.02); - set("NEF_FW",0.90); - set("nNeutrals_FW_L",2); - set("nNeutrals_FW_U",15); - set("MUF", 0.8); - } - else if(version_ == WINTER16){ - set("CEF", 0.9); - set("NEF_EC",0.01); - set("NHF_EC",0.98); - set("nNeutrals_EC",2); - set("nNeutrals_FW",10); - set("NEF_FW",0.90); - set("MUF", 0.8); - } - else if(version_ == SUMMER18){ - set("CEF", 0.8); - set("MUF", 0.8); - set("NHF_TR",0.9); - set("NEF_TR",0.99); - set("MUF_TR",0.8); - set("NCH_TR",0); - set("CEF_TR",0.8); - set("NEF_EC_L",0.02); - set("NEF_EC_U",0.99); - set("nNeutrals_EC",2); - set("NHF_FW",0.2); - set("NEF_FW",0.90); - set("nNeutrals_FW",10); - } - else if(version_ == SUMMER18PUPPI){ - set("CEF", 0.8); - set("MUF", 0.8); - set("NHF_TR",0.9); - set("NEF_TR",0.99); - set("MUF_TR",0.8); - set("CEF_TR",0.8); - set("NHF_EC",0.99); - set("NHF_FW",0.02); - set("NEF_FW",0.90); - set("nNeutrals_FW_L",2); - set("nNeutrals_FW_U",15); + } else if (version_ == WINTER17PUPPI) { + set("CEF", 0.8); + set("NHF_EC", 0.99); + set("NHF_FW", 0.02); + set("NEF_FW", 0.90); + set("nNeutrals_FW_L", 2); + set("nNeutrals_FW_U", 15); + set("MUF", 0.8); + } else if (version_ == WINTER16) { + set("CEF", 0.9); + set("NEF_EC", 0.01); + set("NHF_EC", 0.98); + set("nNeutrals_EC", 2); + set("nNeutrals_FW", 10); + set("NEF_FW", 0.90); + set("MUF", 0.8); + } else if (version_ == SUMMER18) { + set("CEF", 0.8); + set("MUF", 0.8); + set("NHF_TR", 0.9); + set("NEF_TR", 0.99); + set("MUF_TR", 0.8); + set("NCH_TR", 0); + set("CEF_TR", 0.8); + set("NEF_EC_L", 0.02); + set("NEF_EC_U", 0.99); + set("nNeutrals_EC", 2); + set("NHF_FW", 0.2); + set("NEF_FW", 0.90); + set("nNeutrals_FW", 10); + } else if (version_ == SUMMER18PUPPI) { + set("CEF", 0.8); + set("MUF", 0.8); + set("NHF_TR", 0.9); + set("NEF_TR", 0.99); + set("MUF_TR", 0.8); + set("CEF_TR", 0.8); + set("NHF_EC", 0.99); + set("NHF_FW", 0.02); + set("NEF_FW", 0.90); + set("nNeutrals_FW_L", 2); + set("nNeutrals_FW_U", 15); } } } - void initIndex() - { - indexNConstituents_ = index_type (&bits_, "nConstituents"); - indexNEF_ = index_type (&bits_, "NEF"); - indexNHF_ = index_type (&bits_, "NHF"); - if((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || quality_ != TIGHT ) indexCEF_ = index_type (&bits_, "CEF"); - - indexCHF_ = index_type (&bits_, "CHF"); - indexNCH_ = index_type (&bits_, "NCH"); - if(version_ == RUNIISTARTUP){ - indexNEF_FW_ = index_type (&bits_, "NEF_FW"); - indexNNeutrals_FW_ = index_type (&bits_, "nNeutrals_FW"); + void initIndex() { + indexNConstituents_ = index_type(&bits_, "nConstituents"); + indexNEF_ = index_type(&bits_, "NEF"); + indexNHF_ = index_type(&bits_, "NHF"); + if ((version_ != WINTER17 && version_ != WINTER17PUPPI && version_ != SUMMER18 && version_ != SUMMER18PUPPI) || + quality_ != TIGHT) + indexCEF_ = index_type(&bits_, "CEF"); + + indexCHF_ = index_type(&bits_, "CHF"); + indexNCH_ = index_type(&bits_, "NCH"); + if (version_ == RUNIISTARTUP) { + indexNEF_FW_ = index_type(&bits_, "NEF_FW"); + indexNNeutrals_FW_ = index_type(&bits_, "nNeutrals_FW"); } if (version_ == WINTER16) { indexNHF_EC_ = index_type(&bits_, "NHF_EC"); @@ -759,34 +874,34 @@ class PFJetIDSelectionFunctor : public Selector { indexMUF_ = index_type(&bits_, "MUF"); } } - if(version_ == SUMMER18){ - indexNHF_TR_ = index_type (&bits_, "NHF_TR"); - indexNEF_TR_ = index_type (&bits_, "NEF_TR"); - indexNCH_TR_ = index_type (&bits_, "NCH_TR"); - indexNEF_EC_L_ = index_type (&bits_, "NEF_EC_L"); - indexNEF_EC_U_ = index_type (&bits_, "NEF_EC_U"); - indexNNeutrals_EC_ = index_type (&bits_, "nNeutrals_EC"); - indexNHF_FW_ = index_type (&bits_, "NHF_FW"); - indexNEF_FW_ = index_type (&bits_, "NEF_FW"); - indexNNeutrals_FW_ = index_type (&bits_, "nNeutrals_FW"); - if ( quality_ == TIGHTLEPVETO ) { - indexMUF_ = index_type (&bits_, "MUF"); - indexMUF_TR_ = index_type (&bits_, "MUF_TR"); - indexCEF_TR_ = index_type (&bits_, "CEF_TR"); + if (version_ == SUMMER18) { + indexNHF_TR_ = index_type(&bits_, "NHF_TR"); + indexNEF_TR_ = index_type(&bits_, "NEF_TR"); + indexNCH_TR_ = index_type(&bits_, "NCH_TR"); + indexNEF_EC_L_ = index_type(&bits_, "NEF_EC_L"); + indexNEF_EC_U_ = index_type(&bits_, "NEF_EC_U"); + indexNNeutrals_EC_ = index_type(&bits_, "nNeutrals_EC"); + indexNHF_FW_ = index_type(&bits_, "NHF_FW"); + indexNEF_FW_ = index_type(&bits_, "NEF_FW"); + indexNNeutrals_FW_ = index_type(&bits_, "nNeutrals_FW"); + if (quality_ == TIGHTLEPVETO) { + indexMUF_ = index_type(&bits_, "MUF"); + indexMUF_TR_ = index_type(&bits_, "MUF_TR"); + indexCEF_TR_ = index_type(&bits_, "CEF_TR"); } } - if(version_ == SUMMER18PUPPI){ - indexNHF_TR_ = index_type (&bits_, "NHF_TR"); - indexNEF_TR_ = index_type (&bits_, "NEF_TR"); - indexNHF_EC_ = index_type (&bits_, "NHF_EC"); - indexNHF_FW_ = index_type (&bits_, "NHF_FW"); - indexNEF_FW_ = index_type (&bits_, "NEF_FW"); - indexNNeutrals_FW_L_ = index_type (&bits_, "nNeutrals_FW_L"); - indexNNeutrals_FW_U_ = index_type (&bits_, "nNeutrals_FW_U"); - if ( quality_ == TIGHTLEPVETO ) { - indexMUF_ = index_type (&bits_, "MUF"); - indexMUF_TR_ = index_type (&bits_, "MUF_TR"); - indexCEF_TR_ = index_type (&bits_, "CEF_TR"); + if (version_ == SUMMER18PUPPI) { + indexNHF_TR_ = index_type(&bits_, "NHF_TR"); + indexNEF_TR_ = index_type(&bits_, "NEF_TR"); + indexNHF_EC_ = index_type(&bits_, "NHF_EC"); + indexNHF_FW_ = index_type(&bits_, "NHF_FW"); + indexNEF_FW_ = index_type(&bits_, "NEF_FW"); + indexNNeutrals_FW_L_ = index_type(&bits_, "nNeutrals_FW_L"); + indexNNeutrals_FW_U_ = index_type(&bits_, "nNeutrals_FW_U"); + if (quality_ == TIGHTLEPVETO) { + indexMUF_ = index_type(&bits_, "MUF"); + indexMUF_TR_ = index_type(&bits_, "MUF_TR"); + indexCEF_TR_ = index_type(&bits_, "CEF_TR"); } } retInternal_ = getBitTemplate(); From abb539311f89cae61b57dee76cc535d350bcc07e Mon Sep 17 00:00:00 2001 From: Kevin Date: Tue, 16 Jul 2019 10:22:51 +0200 Subject: [PATCH 6/7] make review changes --- PhysicsTools/NanoAOD/python/jets_cff.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/PhysicsTools/NanoAOD/python/jets_cff.py b/PhysicsTools/NanoAOD/python/jets_cff.py index 2f8c3ff89b587..eabea4518523b 100644 --- a/PhysicsTools/NanoAOD/python/jets_cff.py +++ b/PhysicsTools/NanoAOD/python/jets_cff.py @@ -1,7 +1,6 @@ import FWCore.ParameterSet.Config as cms from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff import run2_miniAOD_80XLegacy from Configuration.Eras.Modifier_run2_nanoAOD_94X2016_cff import run2_nanoAOD_94X2016 -from Configuration.Eras.Era_Run2_2018_cff import Run2_2018 from Configuration.Eras.Modifier_run2_nanoAOD_102Xv1_cff import run2_nanoAOD_102Xv1 @@ -90,14 +89,14 @@ ) tightJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer", filterParams=cms.PSet( - version = cms.string('WINTER17'), + version = cms.string('WINTER17PUPPI'), quality = cms.string('TIGHT'), ), src = cms.InputTag("updatedJetsAK8") ) tightJetIdLepVetoAK8 = cms.EDProducer("PatJetIDValueMapProducer", filterParams=cms.PSet( - version = cms.string('WINTER17'), + version = cms.string('WINTER17PUPPI'), quality = cms.string('TIGHTLEPVETO'), ), src = cms.InputTag("updatedJetsAK8") @@ -105,9 +104,8 @@ for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: modifier.toModify( tightJetIdAK8.filterParams, version = "WINTER16" ) modifier.toModify( tightJetIdLepVetoAK8.filterParams, version = "WINTER16" ) -#Nano without modifier? -run2_nanoAOD_102Xv1.toModify( tightJetIdAK8.filterParams, version = "SUMMER18" ) -run2_nanoAOD_102Xv1.toModify( tightJetIdAK8.filterParams, version = "SUMMER18" ) +run2_nanoAOD_102Xv1.toModify( tightJetIdAK8.filterParams, version = "SUMMER18PUPPI" ) +run2_nanoAOD_102Xv1.toModify( tightJetIdLepVetoAK8.filterParams, version = "SUMMER18PUPPI" ) bJetVars = cms.EDProducer("JetRegressionVarProducer", pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"), From 2b76803982126895650f13119e5bbf9e2cc18438 Mon Sep 17 00:00:00 2001 From: Kevin Date: Thu, 1 Aug 2019 22:27:33 +0200 Subject: [PATCH 7/7] revert jets --- PhysicsTools/NanoAOD/python/jets_cff.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/PhysicsTools/NanoAOD/python/jets_cff.py b/PhysicsTools/NanoAOD/python/jets_cff.py index eabea4518523b..8dedf104d3842 100644 --- a/PhysicsTools/NanoAOD/python/jets_cff.py +++ b/PhysicsTools/NanoAOD/python/jets_cff.py @@ -1,8 +1,6 @@ import FWCore.ParameterSet.Config as cms from Configuration.Eras.Modifier_run2_miniAOD_80XLegacy_cff import run2_miniAOD_80XLegacy from Configuration.Eras.Modifier_run2_nanoAOD_94X2016_cff import run2_nanoAOD_94X2016 -from Configuration.Eras.Modifier_run2_nanoAOD_102Xv1_cff import run2_nanoAOD_102Xv1 - from PhysicsTools.NanoAOD.common_cff import * from RecoJets.JetProducers.ak4PFJetsBetaStar_cfi import * @@ -76,9 +74,7 @@ for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: modifier.toModify( tightJetId.filterParams, version = "WINTER16" ) modifier.toModify( tightJetIdLepVeto.filterParams, version = "WINTER16" ) -#Nano without modifier? -run2_nanoAOD_102Xv1.toModify( tightJetId.filterParams, version = "SUMMER18" ) -run2_nanoAOD_102Xv1.toModify( tightJetIdLepVeto.filterParams, version = "SUMMER18" ) + looseJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer", filterParams=cms.PSet( @@ -89,14 +85,14 @@ ) tightJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer", filterParams=cms.PSet( - version = cms.string('WINTER17PUPPI'), + version = cms.string('WINTER17'), quality = cms.string('TIGHT'), ), src = cms.InputTag("updatedJetsAK8") ) tightJetIdLepVetoAK8 = cms.EDProducer("PatJetIDValueMapProducer", filterParams=cms.PSet( - version = cms.string('WINTER17PUPPI'), + version = cms.string('WINTER17'), quality = cms.string('TIGHTLEPVETO'), ), src = cms.InputTag("updatedJetsAK8") @@ -104,8 +100,7 @@ for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: modifier.toModify( tightJetIdAK8.filterParams, version = "WINTER16" ) modifier.toModify( tightJetIdLepVetoAK8.filterParams, version = "WINTER16" ) -run2_nanoAOD_102Xv1.toModify( tightJetIdAK8.filterParams, version = "SUMMER18PUPPI" ) -run2_nanoAOD_102Xv1.toModify( tightJetIdLepVetoAK8.filterParams, version = "SUMMER18PUPPI" ) + bJetVars = cms.EDProducer("JetRegressionVarProducer", pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"),