From 63b0b1d9c61cee2170b3d4a7409bf46f68ff4329 Mon Sep 17 00:00:00 2001 From: Johannes Date: Wed, 21 Oct 2015 16:34:14 +0200 Subject: [PATCH 1/5] offline fix for cut-based jet id --- .../JetReco/interface/PileupJetIdentifier.h | 7 +- .../plugins/MVAJetPuIdProducer.cc | 16 +- .../python/PileupJetIDParams_cfi.py | 42 ++-- .../JetProducers/python/hltPUIdAlgo_cff.py | 16 +- RecoJets/JetProducers/src/MVAJetPuId.cc | 50 ++--- RecoJets/JetProducers/src/PileupJetIdAlgo.cc | 200 ++++++++---------- .../JetProducers/test/testJetTools_cfg.py | 6 +- 7 files changed, 163 insertions(+), 174 deletions(-) diff --git a/DataFormats/JetReco/interface/PileupJetIdentifier.h b/DataFormats/JetReco/interface/PileupJetIdentifier.h index 588866b33281f..6c0489caf0183 100644 --- a/DataFormats/JetReco/interface/PileupJetIdentifier.h +++ b/DataFormats/JetReco/interface/PileupJetIdentifier.h @@ -42,6 +42,9 @@ class StoredPileupJetIdentifier { DECLARE_VARIABLE(dRMean ,float); + DECLARE_VARIABLE(majW ,float); + DECLARE_VARIABLE(minW ,float); + DECLARE_VARIABLE(frac01 ,float); DECLARE_VARIABLE(frac02 ,float); DECLARE_VARIABLE(frac03 ,float); @@ -155,8 +158,8 @@ class PileupJetIdentifier : public StoredPileupJetIdentifier { DECLARE_VARIABLE(etaW ,float); DECLARE_VARIABLE(phiW ,float); - DECLARE_VARIABLE(majW ,float); - DECLARE_VARIABLE(minW ,float); + //DECLARE_VARIABLE(majW ,float); + //DECLARE_VARIABLE(minW ,float); DECLARE_VARIABLE(chFrac01 ,float); DECLARE_VARIABLE(chFrac02 ,float); diff --git a/RecoJets/JetProducers/plugins/MVAJetPuIdProducer.cc b/RecoJets/JetProducers/plugins/MVAJetPuIdProducer.cc index 12a28d8a3e701..746d9412fc78d 100644 --- a/RecoJets/JetProducers/plugins/MVAJetPuIdProducer.cc +++ b/RecoJets/JetProducers/plugins/MVAJetPuIdProducer.cc @@ -223,14 +223,14 @@ MVAJetPuIdProducer::MVAJetPuIdProducer(const edm::ParameterSet& iConfig) edm::ParameterSetDescription vpsd1; vpsd1.add>("tmvaVariables", { "rho", - "nTot", - "nCh", - "axisMajor", - "axisMinor", - "fRing0", - "fRing1", - "fRing2", - "fRing3", + "nParticles", + "nCharged", + "majW", + "minW", + "frac01", + "frac02", + "frac03", + "frac04", "ptD", "beta", "betaStar", diff --git a/RecoJets/JetProducers/python/PileupJetIDParams_cfi.py b/RecoJets/JetProducers/python/PileupJetIDParams_cfi.py index e7d6b8370a962..05425201d275a 100644 --- a/RecoJets/JetProducers/python/PileupJetIDParams_cfi.py +++ b/RecoJets/JetProducers/python/PileupJetIDParams_cfi.py @@ -13,40 +13,40 @@ tmvaMethod = cms.string("JetIDMVAHighPt"), version = cms.int32(-1), tmvaVariables_jteta_0_3 = cms.vstring( - "DRweighted" , + "DR_weighted" , "rho" , - "nTot" , - "nCh" , - "axisMajor" , - "axisMinor", - "fRing0" , - "fRing1" , - "fRing2" , - "fRing3" , + "nParticles" , + "nCharged" , + "majW" , + "minW", + "frac01" , + "frac02" , + "frac03" , + "frac04" , "ptD" , "beta" , "betaStar" , - "min(pull,0.1)" , + "pull" , "jetR" , "jetRchg" , ), tmvaVariables_jteta_3_5 = cms.vstring( - "DRweighted" , + "DR_weighted" , "rho" , - "nTot" , - "axisMajor" , - "axisMinor", - "fRing0" , - "fRing1" , - "fRing2" , - "fRing3" , + "nParticles" , + "majW" , + "minW", + "frac01" , + "frac02" , + "frac03" , + "frac04" , "ptD" , - "min(pull,0.1)" , + "pull" , "jetR" , ), tmvaSpectators = cms.vstring( - "p4.fCoordinates.fPt" , - "p4.fCoordinates.fEta" , + "jetPt" , + "jetEta" , "nTrueInt" , "dRMatch" , ), diff --git a/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py b/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py index 549286dcae200..00a29b2d6be2d 100644 --- a/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py +++ b/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py @@ -9,14 +9,14 @@ version = cms.int32(-1), tmvaVariables = cms.vstring( "rho" , - "nTot" , - "nCh" , - "axisMajor" , - "axisMinor", - "fRing0", - "fRing1", - "fRing2", - "fRing3", + "nParticles" , + "nCharged" , + "majW" , + "minW", + "frac01", + "frac02", + "frac03", + "frac04", "ptD" , "beta" , "betaStar" , diff --git a/RecoJets/JetProducers/src/MVAJetPuId.cc b/RecoJets/JetProducers/src/MVAJetPuId.cc index 8486437018aae..26279f045b601 100644 --- a/RecoJets/JetProducers/src/MVAJetPuId.cc +++ b/RecoJets/JetProducers/src/MVAJetPuId.cc @@ -75,14 +75,14 @@ void MVAJetPuId::setup() tmvaVariables_.clear(); tmvaVariables_.push_back( "rho" ); - tmvaVariables_.push_back( "nTot" ); - tmvaVariables_.push_back( "nCh" ); - tmvaVariables_.push_back( "axisMajor" ); - tmvaVariables_.push_back( "axisMinor" ); - tmvaVariables_.push_back( "fRing0" ); - tmvaVariables_.push_back( "fRing1" ); - tmvaVariables_.push_back( "fRing2" ); - tmvaVariables_.push_back( "fRing3" ); + tmvaVariables_.push_back( "nParticles" ); + tmvaVariables_.push_back( "nCharged" ); + tmvaVariables_.push_back( "majW" ); + tmvaVariables_.push_back( "minW" ); + tmvaVariables_.push_back( "frac01" ); + tmvaVariables_.push_back( "frac02" ); + tmvaVariables_.push_back( "frac03" ); + tmvaVariables_.push_back( "frac04" ); tmvaVariables_.push_back( "ptD" ); tmvaVariables_.push_back( "beta" ); tmvaVariables_.push_back( "betaStar" ); @@ -92,14 +92,14 @@ void MVAJetPuId::setup() tmvaVariables_.push_back( "jetRchg"); tmvaNames_["rho"] = "rho"; - tmvaNames_["nTot"] = "nParticles"; - tmvaNames_["nCh"] = "nCharged"; - tmvaNames_["axisMajor"] = "majW"; - tmvaNames_["axisMinor"] = "minW"; - tmvaNames_["fRing0"] = "frac01"; - tmvaNames_["fRing1"] = "frac02"; - tmvaNames_["fRing2"] = "frac03"; - tmvaNames_["fRing3"] = "frac04"; + tmvaNames_["nParticles"] = "nParticles"; + tmvaNames_["nCharged"] = "nCharged"; + tmvaNames_["majW"] = "majW"; + tmvaNames_["minW"] = "minW"; + tmvaNames_["frac01"] = "frac01"; + tmvaNames_["frac02"] = "frac02"; + tmvaNames_["frac03"] = "frac03"; + tmvaNames_["frac04"] = "frac04"; tmvaNames_["ptD"] = "ptD"; tmvaNames_["beta"] = "beta"; tmvaNames_["betaStar"] = "betaStar"; @@ -165,7 +165,7 @@ void MVAJetPuId::set(const PileupJetIdentifier & id) void MVAJetPuId::runMva() { - if( ! reader_ ) { bookReader();} + if( ! reader_ ) { bookReader();} if(fabs(internalId_.jetEta_) < 5.0) internalId_.mva_ = reader_->EvaluateMVA( tmvaMethod_.c_str() ); if(fabs(internalId_.jetEta_) >= 5.0) internalId_.mva_ = -2.; internalId_.idFlag_ = computeIDflag(internalId_.mva_,internalId_.jetPt_,internalId_.jetEta_); @@ -496,7 +496,7 @@ void MVAJetPuId::initVariables() INIT_VARIABLE(jetEta , "jetEta", large_val); INIT_VARIABLE(jetPhi , "", large_val); INIT_VARIABLE(jetM , "", 0.); - INIT_VARIABLE(nCharged , "nCh", 0.); + INIT_VARIABLE(nCharged , "nCharged", 0.); INIT_VARIABLE(nNeutrals , "", 0.); INIT_VARIABLE(chgEMfrac , "", 0.); @@ -506,7 +506,7 @@ void MVAJetPuId::initVariables() INIT_VARIABLE(d0 , "" , -1000.); INIT_VARIABLE(dZ , "" , -1000.); - INIT_VARIABLE(nParticles , "nTot" , 0.); + INIT_VARIABLE(nParticles , "nParticles" , 0.); INIT_VARIABLE(leadPt , "" , 0.); INIT_VARIABLE(leadEta , "" , large_val); @@ -549,12 +549,12 @@ void MVAJetPuId::initVariables() INIT_VARIABLE(jetW ,"" ,1.); INIT_VARIABLE(etaW ,"" ,1.); INIT_VARIABLE(phiW ,"" ,1.); - INIT_VARIABLE(majW ,"axisMajor" ,1.); - INIT_VARIABLE(minW ,"axisMinor" ,1.); - INIT_VARIABLE(frac01 ,"fRing0" ,0.); - INIT_VARIABLE(frac02 ,"fRing1" ,0.); - INIT_VARIABLE(frac03 ,"fRing2" ,0.); - INIT_VARIABLE(frac04 ,"fRing3" ,0.); + INIT_VARIABLE(majW ,"majW" ,1.); + INIT_VARIABLE(minW ,"minW" ,1.); + INIT_VARIABLE(frac01 ,"frac01" ,0.); + INIT_VARIABLE(frac02 ,"frac02" ,0.); + INIT_VARIABLE(frac03 ,"frac03" ,0.); + INIT_VARIABLE(frac04 ,"frac04" ,0.); INIT_VARIABLE(beta ,"beta" ,0.); INIT_VARIABLE(betaStar ,"betaStar" ,0.); diff --git a/RecoJets/JetProducers/src/PileupJetIdAlgo.cc b/RecoJets/JetProducers/src/PileupJetIdAlgo.cc index 4c21cd7a345e2..ef1da68508050 100644 --- a/RecoJets/JetProducers/src/PileupJetIdAlgo.cc +++ b/RecoJets/JetProducers/src/PileupJetIdAlgo.cc @@ -109,90 +109,8 @@ PileupJetIdAlgo::PileupJetIdAlgo(int version, void PileupJetIdAlgo::setup() { initVariables(); - - if(etaBinnedWeights_){ - tmvaNames_["DRweighted"] = "dR2Mean"; - tmvaNames_["rho"] = "nvtx"; - tmvaNames_["nTot"] = "nParticles"; - tmvaNames_["nCh"] = "nCharged"; - tmvaNames_["p4.fCoordinates.fPt"] ="jetPt"; - tmvaNames_["p4.fCoordinates.fEta"] ="jetEta"; - tmvaNames_["axisMajor"] = "majW"; - tmvaNames_["axisMinor"] = "minW"; - tmvaNames_["fRing0"] = "frac01"; - tmvaNames_["fRing1"] = "frac02"; - tmvaNames_["fRing2"] = "frac03"; - tmvaNames_["fRing3"] = "frac04"; - tmvaNames_["min(pull,0.1)"] = "dRMean"; - tmvaNames_["dRMatch"] = "chFrac02"; - } - - if( version_ == PHILv0 ) { - tmvaVariables_.clear(); - tmvaVariables_.push_back( "jspt_1" ); - tmvaVariables_.push_back( "jseta_1" ); - tmvaVariables_.push_back( "jsphi_1" ); - tmvaVariables_.push_back( "jd0_1" ); - tmvaVariables_.push_back( "jdZ_1" ); - tmvaVariables_.push_back( "jm_1" ); - tmvaVariables_.push_back( "npart_1" ); - tmvaVariables_.push_back( "lpt_1" ); - tmvaVariables_.push_back( "leta_1" ); - tmvaVariables_.push_back( "lphi_1" ); - tmvaVariables_.push_back( "spt_1" ); - tmvaVariables_.push_back( "seta_1" ); - tmvaVariables_.push_back( "sphi_1" ); - tmvaVariables_.push_back( "lnept_1" ); - tmvaVariables_.push_back( "lneeta_1"); - tmvaVariables_.push_back( "lnephi_1"); - tmvaVariables_.push_back( "lempt_1" ); - tmvaVariables_.push_back( "lemeta_1"); - tmvaVariables_.push_back( "lemphi_1"); - tmvaVariables_.push_back( "lchpt_1" ); - // tmvaVariables_.push_back( "lcheta_1"); FIXME missing in weights file - tmvaVariables_.push_back( "lchphi_1"); - tmvaVariables_.push_back( "lLfr_1" ); - tmvaVariables_.push_back( "drlc_1" ); - tmvaVariables_.push_back( "drls_1" ); - tmvaVariables_.push_back( "drm_1" ); - tmvaVariables_.push_back( "drmne_1" ); - tmvaVariables_.push_back( "drem_1" ); - tmvaVariables_.push_back( "drch_1" ); - - tmvaNames_["jspt_1"] = "jetPt"; - tmvaNames_["jseta_1"] = "jetEta"; - tmvaNames_["jsphi_1"] = "jetPhi"; - tmvaNames_["jm_1"] = "jetM"; - tmvaNames_["jd0_1"] = "d0"; - tmvaNames_["jdZ_1"] = "dZ"; - tmvaNames_["npart_1"] = "nParticles"; - - tmvaNames_["lpt_1"] = "leadPt"; - tmvaNames_["leta_1"] = "leadEta"; - tmvaNames_["lphi_1"] = "leadPhi"; - tmvaNames_["spt_1"] = "secondPt"; - tmvaNames_["seta_1"] = "secondEta"; - tmvaNames_["sphi_1"] = "secondPhi"; - tmvaNames_["lnept_1"] = "leadNeutPt"; - tmvaNames_["lneeta_1"] = "leadNeutEta"; - tmvaNames_["lnephi_1"] = "leadNeutPhi"; - tmvaNames_["lempt_1"] = "leadEmPt"; - tmvaNames_["lemeta_1"] = "leadEmEta"; - tmvaNames_["lemphi_1"] = "leadEmPhi"; - tmvaNames_["lchpt_1"] = "leadChPt"; - tmvaNames_["lcheta_1"] = "leadChEta"; - tmvaNames_["lchphi_1"] = "leadChPhi"; - tmvaNames_["lLfr_1"] = "leadFrac"; - - tmvaNames_["drlc_1"] = "dRLeadCent"; - tmvaNames_["drls_1"] = "dRLead2nd"; - tmvaNames_["drm_1"] = "dRMean"; - tmvaNames_["drmne_1"] = "dRMeanNeut"; - tmvaNames_["drem_1"] = "dRMeanEm"; - tmvaNames_["drch_1"] = "dRMeanCh"; - - } else if( ! cutBased_ ){ + if( ! cutBased_ ){ assert( tmvaMethod_.empty() || ((! tmvaVariables_.empty() || ( !tmvaVariables_jteta_0_3_.empty() && !tmvaVariables_jteta_3_5_.empty() )) && version_ == USER) ); } if(( ! cutBased_ ) && (runMvas_)) { bookReader();} @@ -287,8 +205,27 @@ void PileupJetIdAlgo::set(const PileupJetIdentifier & id) void PileupJetIdAlgo::runMva() { if( cutBased_ ) { - internalId_.idFlag_ = computeCutIDflag(internalId_.betaStarClassic_,internalId_.dR2Mean_,internalId_.nvtx_,internalId_.jetPt_,internalId_.jetEta_); + internalId_.idFlag_ = computeCutIDflag(internalId_.betaStarClassic_,internalId_.DR_weighted_,internalId_.nvtx_,internalId_.jetPt_,internalId_.jetEta_); } else { + std::cout << "jetPt " << internalId_.jetPt_ << std::endl; + std::cout << "jetEta " << internalId_.jetEta_ << std::endl; + std::cout << "DR_weightd " << internalId_.DR_weighted_ << std::endl; + std::cout << "rho " << internalId_.rho_ << std::endl; + std::cout << "nParticles " << internalId_.nParticles_ << std::endl; + std::cout << "nCharged " << internalId_.nCharged_ << std::endl; + std::cout << "majW " << internalId_.majW_ << std::endl; + std::cout << "minW " << internalId_.minW_ << std::endl; + std::cout << "frac01 " << internalId_.frac01_ << std::endl; + std::cout << "frac02 " << internalId_.frac02_ << std::endl; + std::cout << "frac03 " << internalId_.frac03_ << std::endl; + std::cout << "frac04 " << internalId_.frac04_ << std::endl; + std::cout << "ptD " << internalId_.ptD_ << std::endl; + std::cout << "beta " << internalId_.beta_ << std::endl; + std::cout << "betaStar " << internalId_.betaStar_ << std::endl; + std::cout << "pull " << internalId_.pull_ << std::endl; + std::cout << "jetR " << internalId_.pull_ << std::endl; + std::cout << "jetRchg " << internalId_.pull_ << std::endl; + if(std::abs(internalId_.jetEta_) >= 5.0) { internalId_.mva_ = -2.; } else { @@ -321,21 +258,21 @@ std::pair PileupJetIdAlgo::getJetIdKey(float jetPt, float jetEta) return std::pair(ptId,etaId); } // ------------------------------------------------------------------------------------------ -int PileupJetIdAlgo::computeCutIDflag(float betaStarClassic,float dR2Mean,float nvtx, float jetPt, float jetEta) +int PileupJetIdAlgo::computeCutIDflag(float betaStarClassic,float DR_weighted,float nvtx, float jetPt, float jetEta) { std::pair jetIdKey = getJetIdKey(jetPt,jetEta); float betaStarModified = betaStarClassic/log(nvtx-0.64); int idFlag(0); if(betaStarModified < betaStarCut_[PileupJetIdentifier::kTight ][jetIdKey.first][jetIdKey.second] && - dR2Mean < rmsCut_ [PileupJetIdentifier::kTight ][jetIdKey.first][jetIdKey.second] + DR_weighted < rmsCut_ [PileupJetIdentifier::kTight ][jetIdKey.first][jetIdKey.second] ) idFlag += 1 << PileupJetIdentifier::kTight; if(betaStarModified < betaStarCut_[PileupJetIdentifier::kMedium ][jetIdKey.first][jetIdKey.second] && - dR2Mean < rmsCut_ [PileupJetIdentifier::kMedium ][jetIdKey.first][jetIdKey.second] + DR_weighted < rmsCut_ [PileupJetIdentifier::kMedium ][jetIdKey.first][jetIdKey.second] ) idFlag += 1 << PileupJetIdentifier::kMedium; if(betaStarModified < betaStarCut_[PileupJetIdentifier::kLoose ][jetIdKey.first][jetIdKey.second] && - dR2Mean < rmsCut_ [PileupJetIdentifier::kLoose ][jetIdKey.first][jetIdKey.second] + DR_weighted < rmsCut_ [PileupJetIdentifier::kLoose ][jetIdKey.first][jetIdKey.second] ) idFlag += 1 << PileupJetIdentifier::kLoose; return idFlag; } @@ -439,6 +376,7 @@ PileupJetIdentifier PileupJetIdAlgo::computeIdVariables(const reco::Jet * jet, f // // average shapes internalId_.dRMean_ += candPtDr; internalId_.dR2Mean_ += candPtDr*candPtDr; + internalId_.DR_weighted_ += candPtDr*candPtDr; covMatrix(0,0) += candPt*candPt*candDeta*candDeta; covMatrix(0,1) += candPt*candPt*candDeta*candDphi; covMatrix(1,1) += candPt*candPt*candDphi*candDphi; @@ -582,7 +520,56 @@ PileupJetIdentifier PileupJetIdAlgo::computeIdVariables(const reco::Jet * jet, f internalId_.neuEMfrac_ = pfjet->neutralEmEnergy() /jet->energy(); internalId_.chgHadrfrac_ = pfjet->chargedHadronEnergy()/jet->energy(); internalId_.neuHadrfrac_ = pfjet->neutralHadronEnergy()/jet->energy(); - internalId_.nParticles_ = jet->numberOfDaughters(); + internalId_.nParticles_ = jet->numberOfDaughters(); + + + ///////////////////////pull variable/////////////////////////////////// + float sumW(0.0), sumW2(0.0); + float sum_deta(0.0),sum_dphi(0.0); + float ave_deta(0.0), ave_dphi(0.0); + for (size_t j = 0; j < jet->numberOfDaughters(); j++) { + const auto& part = jet->daughterPtr(j); + if (!(part.isAvailable() && part.isNonnull()) ){ + continue; + } + + float weight = part->pt(); + float weight2 = weight * weight; + sumW2 += weight2; + float deta = part->eta() - jet->eta(); + float dphi = reco::deltaPhi(*part, *jet); + sum_deta += deta*weight2; + sum_dphi += dphi*weight2; + if (sumW > 0) { + ave_deta = sum_deta/sumW2; + ave_dphi = sum_dphi/sumW2; + } + } + + float ddetaR_sum(0.0), ddphiR_sum(0.0), pull_tmp(0.0); + for (size_t i = 0; i < jet->numberOfDaughters(); i++) { + const auto& part = jet->daughterPtr(i); + if (!(part.isAvailable() && part.isNonnull()) ){ + continue; + } + float weight =part->pt()*part->pt(); + float deta = part->eta() - jet->eta(); + float dphi = reco::deltaPhi(*part, *jet); + float ddeta, ddphi, ddR; + ddeta = deta - ave_deta ; + ddphi = 2*atan(tan((dphi - ave_dphi)/2.)) ; + ddR = sqrt(ddeta*ddeta + ddphi*ddphi); + ddetaR_sum += ddR*ddeta*weight; + ddphiR_sum += ddR*ddphi*weight; + } + if (sumW2 > 0) { + float ddetaR_ave = ddetaR_sum/sumW2; + float ddphiR_ave = ddphiR_sum/sumW2; + pull_tmp = sqrt(ddetaR_ave*ddetaR_ave+ddphiR_ave*ddphiR_ave); + } + internalId_.pull_ = pull_tmp; + /////////////////////////////////////////////////////////////////////// + setPtEtaPhi(*lLead,internalId_.leadPt_,internalId_.leadEta_,internalId_.leadPhi_); setPtEtaPhi(*lSecond,internalId_.secondPt_,internalId_.secondEta_,internalId_.secondPhi_); @@ -618,6 +605,7 @@ PileupJetIdentifier PileupJetIdAlgo::computeIdVariables(const reco::Jet * jet, f internalId_.dRMeanEm_ /= jetPt; internalId_.dRMeanCh_ /= jetPt; internalId_.dR2Mean_ /= sumPt2; + internalId_.DR_weighted_ /= sumPt2; for(size_t ic=0; ic Date: Wed, 21 Oct 2015 16:59:21 +0200 Subject: [PATCH 2/5] fix for full_74x_wp --- .../JetProducers/python/hltPUIdAlgo_cff.py | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py b/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py index 00a29b2d6be2d..dd13d393cc636 100644 --- a/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py +++ b/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py @@ -1,6 +1,30 @@ import FWCore.ParameterSet.Config as cms #################################################################################################################### +full_74x_wp = cms.PSet( + #4 Eta Categories 0-2.5 2.5-2.75 2.75-3.0 3.0-5.0 + + #Tight Id + Pt010_Tight = cms.vdouble(-0.83,-0.81,-0.74,-0.81), + Pt1020_Tight = cms.vdouble(-0.83,-0.81,-0.74,-0.81), + Pt2030_Tight = cms.vdouble( 0.73, 0.05,-0.26,-0.42), + Pt3050_Tight = cms.vdouble( 0.73, 0.05,-0.26,-0.42), + + #Medium Id + Pt010_Medium = cms.vdouble(-0.83,-0.92,-0.90,-0.92), + Pt1020_Medium = cms.vdouble(-0.83,-0.92,-0.90,-0.92), + Pt2030_Medium = cms.vdouble( 0.10,-0.36,-0.54,-0.54), + Pt3050_Medium = cms.vdouble( 0.10,-0.36,-0.54,-0.54), + + #Loose Id + Pt010_Loose = cms.vdouble(-0.95,-0.96,-0.94,-0.95), + Pt1020_Loose = cms.vdouble(-0.95,-0.96,-0.94,-0.95), + Pt2030_Loose = cms.vdouble(-0.63,-0.60,-0.55,-0.45), + Pt3050_Loose = cms.vdouble(-0.63,-0.60,-0.55,-0.45), + + ) + + full_74x = cms.PSet( impactParTkThreshold = cms.double(1.) , cutBased = cms.bool(False), @@ -34,27 +58,5 @@ ) -full_74x_wp = cms.PSet( - #4 Eta Categories 0-2.5 2.5-2.75 2.75-3.0 3.0-5.0 - - #Tight Id - Pt010_Tight = cms.vdouble(-0.83,-0.81,-0.74,-0.81), - Pt1020_Tight = cms.vdouble(-0.83,-0.81,-0.74,-0.81), - Pt2030_Tight = cms.vdouble( 0.73, 0.05,-0.26,-0.42), - Pt3050_Tight = cms.vdouble( 0.73, 0.05,-0.26,-0.42), - - #Medium Id - Pt010_Medium = cms.vdouble(-0.83,-0.92,-0.90,-0.92), - Pt1020_Medium = cms.vdouble(-0.83,-0.92,-0.90,-0.92), - Pt2030_Medium = cms.vdouble( 0.10,-0.36,-0.54,-0.54), - Pt3050_Medium = cms.vdouble( 0.10,-0.36,-0.54,-0.54), - - #Loose Id - Pt010_Loose = cms.vdouble(-0.95,-0.96,-0.94,-0.95), - Pt1020_Loose = cms.vdouble(-0.95,-0.96,-0.94,-0.95), - Pt2030_Loose = cms.vdouble(-0.63,-0.60,-0.55,-0.45), - Pt3050_Loose = cms.vdouble(-0.63,-0.60,-0.55,-0.45), - - ) From 699ddc3e8ee2b70e14d6f0be2c45269c098b723b Mon Sep 17 00:00:00 2001 From: Johannes Date: Thu, 22 Oct 2015 16:55:43 +0200 Subject: [PATCH 3/5] changing DR_weightd to dRMean --- .../JetReco/interface/PileupJetIdentifier.h | 1 - .../plugins/MVAJetPuIdProducer.cc | 2 +- .../python/PileupJetIDParams_cfi.py | 12 +++--- .../JetProducers/python/hltPUIdAlgo_cff.py | 4 +- RecoJets/JetProducers/src/MVAJetPuId.cc | 10 ++--- RecoJets/JetProducers/src/PileupJetIdAlgo.cc | 40 +++++-------------- .../JetProducers/test/testJetTools_cfg.py | 8 +--- 7 files changed, 25 insertions(+), 52 deletions(-) diff --git a/DataFormats/JetReco/interface/PileupJetIdentifier.h b/DataFormats/JetReco/interface/PileupJetIdentifier.h index 6c0489caf0183..3c68cd42599d2 100644 --- a/DataFormats/JetReco/interface/PileupJetIdentifier.h +++ b/DataFormats/JetReco/interface/PileupJetIdentifier.h @@ -66,7 +66,6 @@ class StoredPileupJetIdentifier { DECLARE_VARIABLE(nTrueInt ,float); DECLARE_VARIABLE(nvtx ,float); - DECLARE_VARIABLE(DR_weighted,float); DECLARE_VARIABLE(pull,float); }; diff --git a/RecoJets/JetProducers/plugins/MVAJetPuIdProducer.cc b/RecoJets/JetProducers/plugins/MVAJetPuIdProducer.cc index 746d9412fc78d..8e121f0a33184 100644 --- a/RecoJets/JetProducers/plugins/MVAJetPuIdProducer.cc +++ b/RecoJets/JetProducers/plugins/MVAJetPuIdProducer.cc @@ -234,7 +234,7 @@ MVAJetPuIdProducer::MVAJetPuIdProducer(const edm::ParameterSet& iConfig) "ptD", "beta", "betaStar", - "DR_weighted", + "dR2Mean", "pull", "jetR", "jetRchg", diff --git a/RecoJets/JetProducers/python/PileupJetIDParams_cfi.py b/RecoJets/JetProducers/python/PileupJetIDParams_cfi.py index 05425201d275a..dda2318de89aa 100644 --- a/RecoJets/JetProducers/python/PileupJetIDParams_cfi.py +++ b/RecoJets/JetProducers/python/PileupJetIDParams_cfi.py @@ -6,14 +6,14 @@ impactParTkThreshold = cms.double(1.) , cutBased = cms.bool(False), etaBinnedWeights = cms.bool(True), - tmvaWeights_jteta_0_2 = cms.string("RecoJets/JetProducers/data/TMVAClassificationCategory_BDTG.weights_jteta_0_2.xml.gz"), - tmvaWeights_jteta_2_2p5 = cms.string("RecoJets/JetProducers/data/TMVAClassificationCategory_BDTG.weights_jteta_2_2p5.xml.gz"), - tmvaWeights_jteta_2p5_3 = cms.string("RecoJets/JetProducers/data/TMVAClassificationCategory_BDTG.weights_jteta_2p5_3.xml.gz"), - tmvaWeights_jteta_3_5 = cms.string("RecoJets/JetProducers/data/TMVAClassificationCategory_BDTG.weights_jteta_3_5.xml.gz"), + tmvaWeights_jteta_0_2 = cms.string("RecoJets/JetProducers/data/TMVAClassificationCategory_BDTG.weights_jteta_0_2_newNames.xml.gz"), + tmvaWeights_jteta_2_2p5 = cms.string("RecoJets/JetProducers/data/TMVAClassificationCategory_BDTG.weights_jteta_2_2p5_newNames.xml.gz"), + tmvaWeights_jteta_2p5_3 = cms.string("RecoJets/JetProducers/data/TMVAClassificationCategory_BDTG.weights_jteta_2p5_3_newNames.xml.gz"), + tmvaWeights_jteta_3_5 = cms.string("RecoJets/JetProducers/data/TMVAClassificationCategory_BDTG.weights_jteta_3_5_newNames.xml.gz"), tmvaMethod = cms.string("JetIDMVAHighPt"), version = cms.int32(-1), tmvaVariables_jteta_0_3 = cms.vstring( - "DR_weighted" , + "dR2Mean" , "rho" , "nParticles" , "nCharged" , @@ -31,7 +31,7 @@ "jetRchg" , ), tmvaVariables_jteta_3_5 = cms.vstring( - "DR_weighted" , + "dR2Mean" , "rho" , "nParticles" , "majW" , diff --git a/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py b/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py index dd13d393cc636..2d6a66ad75d70 100644 --- a/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py +++ b/RecoJets/JetProducers/python/hltPUIdAlgo_cff.py @@ -28,7 +28,7 @@ full_74x = cms.PSet( impactParTkThreshold = cms.double(1.) , cutBased = cms.bool(False), - tmvaWeights = cms.string("RecoJets/JetProducers/data/MVAJetPuID.weights.xml.gz"), + tmvaWeights = cms.string("RecoJets/JetProducers/data/MVAJetPuID.weights_newNames.xml.gz"), tmvaMethod = cms.string("BDTG"), version = cms.int32(-1), tmvaVariables = cms.vstring( @@ -44,7 +44,7 @@ "ptD" , "beta" , "betaStar" , - "DR_weighted" , + "dR2Mean" , "pull" , "jetR" , "jetRchg" diff --git a/RecoJets/JetProducers/src/MVAJetPuId.cc b/RecoJets/JetProducers/src/MVAJetPuId.cc index 26279f045b601..c374e8f0ebe9f 100644 --- a/RecoJets/JetProducers/src/MVAJetPuId.cc +++ b/RecoJets/JetProducers/src/MVAJetPuId.cc @@ -86,7 +86,7 @@ void MVAJetPuId::setup() tmvaVariables_.push_back( "ptD" ); tmvaVariables_.push_back( "beta" ); tmvaVariables_.push_back( "betaStar" ); - tmvaVariables_.push_back( "DR_weighted" ); + tmvaVariables_.push_back( "dR2Mean" ); tmvaVariables_.push_back( "pull" ); tmvaVariables_.push_back( "jetR"); tmvaVariables_.push_back( "jetRchg"); @@ -103,7 +103,7 @@ void MVAJetPuId::setup() tmvaNames_["ptD"] = "ptD"; tmvaNames_["beta"] = "beta"; tmvaNames_["betaStar"] = "betaStar"; - tmvaNames_["DR_weighted"] = "DR_weighted"; + tmvaNames_["dR2Mean"] = "dR2Mean"; tmvaNames_["pull"] = "pull"; tmvaNames_["jetR"] = "jetR"; tmvaNames_["jetRchg"] = "jetRchg"; @@ -258,7 +258,7 @@ PileupJetIdentifier MVAJetPuId::computeIdVariables(const reco::Jet * jet, float } //internalId_.dRMean_ += candPtDr; - internalId_.DR_weighted_ += candPtDr*candPtDr; + internalId_.dR2Mean_ += candPtDr*candPtDr; internalId_.ptD_ += candPt*candPt; sumPt += candPt; @@ -382,7 +382,7 @@ PileupJetIdentifier MVAJetPuId::computeIdVariables(const reco::Jet * jet, float internalId_.dRMeanNeut_ /= jetPt; internalId_.dRMeanEm_ /= jetPt; //internalId_.jetRchg_ /= jetPt; - internalId_.DR_weighted_ /= sumPt2; + internalId_.dR2Mean_ /= sumPt2; for(size_t ic=0; ic= 5.0) { + if(std::abs(internalId_.jetEta_) >= 5.0) { internalId_.mva_ = -2.; } else { if(etaBinnedWeights_){ @@ -258,21 +239,21 @@ std::pair PileupJetIdAlgo::getJetIdKey(float jetPt, float jetEta) return std::pair(ptId,etaId); } // ------------------------------------------------------------------------------------------ -int PileupJetIdAlgo::computeCutIDflag(float betaStarClassic,float DR_weighted,float nvtx, float jetPt, float jetEta) +int PileupJetIdAlgo::computeCutIDflag(float betaStarClassic,float dR2Mean,float nvtx, float jetPt, float jetEta) { std::pair jetIdKey = getJetIdKey(jetPt,jetEta); float betaStarModified = betaStarClassic/log(nvtx-0.64); int idFlag(0); if(betaStarModified < betaStarCut_[PileupJetIdentifier::kTight ][jetIdKey.first][jetIdKey.second] && - DR_weighted < rmsCut_ [PileupJetIdentifier::kTight ][jetIdKey.first][jetIdKey.second] + dR2Mean < rmsCut_ [PileupJetIdentifier::kTight ][jetIdKey.first][jetIdKey.second] ) idFlag += 1 << PileupJetIdentifier::kTight; if(betaStarModified < betaStarCut_[PileupJetIdentifier::kMedium ][jetIdKey.first][jetIdKey.second] && - DR_weighted < rmsCut_ [PileupJetIdentifier::kMedium ][jetIdKey.first][jetIdKey.second] + dR2Mean < rmsCut_ [PileupJetIdentifier::kMedium ][jetIdKey.first][jetIdKey.second] ) idFlag += 1 << PileupJetIdentifier::kMedium; if(betaStarModified < betaStarCut_[PileupJetIdentifier::kLoose ][jetIdKey.first][jetIdKey.second] && - DR_weighted < rmsCut_ [PileupJetIdentifier::kLoose ][jetIdKey.first][jetIdKey.second] + dR2Mean < rmsCut_ [PileupJetIdentifier::kLoose ][jetIdKey.first][jetIdKey.second] ) idFlag += 1 << PileupJetIdentifier::kLoose; return idFlag; } @@ -376,7 +357,6 @@ PileupJetIdentifier PileupJetIdAlgo::computeIdVariables(const reco::Jet * jet, f // // average shapes internalId_.dRMean_ += candPtDr; internalId_.dR2Mean_ += candPtDr*candPtDr; - internalId_.DR_weighted_ += candPtDr*candPtDr; covMatrix(0,0) += candPt*candPt*candDeta*candDeta; covMatrix(0,1) += candPt*candPt*candDeta*candDphi; covMatrix(1,1) += candPt*candPt*candDphi*candDphi; @@ -605,8 +585,7 @@ PileupJetIdentifier PileupJetIdAlgo::computeIdVariables(const reco::Jet * jet, f internalId_.dRMeanEm_ /= jetPt; internalId_.dRMeanCh_ /= jetPt; internalId_.dR2Mean_ /= sumPt2; - internalId_.DR_weighted_ /= sumPt2; - + for(size_t ic=0; ic Date: Fri, 23 Oct 2015 09:08:54 +0200 Subject: [PATCH 4/5] adding delete statement to the PileupJetIdProducer --- RecoJets/JetProducers/plugins/PileupJetIdProducer.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RecoJets/JetProducers/plugins/PileupJetIdProducer.cc b/RecoJets/JetProducers/plugins/PileupJetIdProducer.cc index dd51cb77392f6..4bd24b409887c 100644 --- a/RecoJets/JetProducers/plugins/PileupJetIdProducer.cc +++ b/RecoJets/JetProducers/plugins/PileupJetIdProducer.cc @@ -64,6 +64,10 @@ PileupJetIdProducer::PileupJetIdProducer(const edm::ParameterSet& iConfig) // ------------------------------------------------------------------------------------------ PileupJetIdProducer::~PileupJetIdProducer() { + for(std::vector >::iterator + ialgo = algos_.begin(); ialgo!=algos_.end(); ++ialgo) { + delete ialgo->second; + } } From 832c2c05438b9fc6370f78e6488a11d0be6c6483 Mon Sep 17 00:00:00 2001 From: Johannes Date: Tue, 27 Oct 2015 19:23:08 +0100 Subject: [PATCH 5/5] changing ddphi definition --- RecoJets/JetProducers/src/PileupJetIdAlgo.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RecoJets/JetProducers/src/PileupJetIdAlgo.cc b/RecoJets/JetProducers/src/PileupJetIdAlgo.cc index 170fcf1d93724..2cb16d2fa2014 100644 --- a/RecoJets/JetProducers/src/PileupJetIdAlgo.cc +++ b/RecoJets/JetProducers/src/PileupJetIdAlgo.cc @@ -537,7 +537,7 @@ PileupJetIdentifier PileupJetIdAlgo::computeIdVariables(const reco::Jet * jet, f float dphi = reco::deltaPhi(*part, *jet); float ddeta, ddphi, ddR; ddeta = deta - ave_deta ; - ddphi = 2*atan(tan((dphi - ave_dphi)/2.)) ; + ddphi = dphi-ave_dphi; ddR = sqrt(ddeta*ddeta + ddphi*ddphi); ddetaR_sum += ddR*ddeta*weight; ddphiR_sum += ddR*ddphi*weight;