From 6b2c1be9e2d5be0dd745a43ffbee68cbca21c234 Mon Sep 17 00:00:00 2001 From: matthieu Date: Tue, 23 Aug 2016 09:47:33 +0200 Subject: [PATCH] fix Puppi JEC/JER MET uncertainties --- CommonTools/PileupAlgos/plugins/PuppiPhoton.cc | 1 - CommonTools/PileupAlgos/python/Puppi_cff.py | 2 +- PhysicsTools/PatAlgos/test/corMETFromMiniAOD.py | 4 ++-- .../tools/runMETCorrectionsAndUncertainties.py | 14 ++++++++++++-- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc index 8839523ceeedc..8c3de9688e603 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc @@ -123,7 +123,6 @@ void PuppiPhoton::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { if(pupCol->refAt(iPF).key() != *itPho) continue; pWeight = weight_; if(!useValueMap_ && itPF->pt() != 0) pWeight = pWeight*(phoCands[iPho]->pt()/itPF->pt()); - //if(!useValueMap_ && itPF->pt() == 0) pVec.SetPxPyPzE(phoCands[iPho]->px()*pWeight,phoCands[iPho]->py()*pWeight,phoCands[iPho]->pz()*pWeight,phoCands[iPho]->energy()*pWeight); foundPhoIndex.push_back(iPho); } } diff --git a/CommonTools/PileupAlgos/python/Puppi_cff.py b/CommonTools/PileupAlgos/python/Puppi_cff.py index 56c0be09f4a3d..02b4adc5da6fb 100644 --- a/CommonTools/PileupAlgos/python/Puppi_cff.py +++ b/CommonTools/PileupAlgos/python/Puppi_cff.py @@ -58,7 +58,7 @@ etaMin = cms.vdouble( 2.5, 3.0), etaMax = cms.vdouble( 3.0, 10.0), ptMin = cms.vdouble( 0.0, 0.0), - MinNeutralPt = cms.vdouble( 1.7, 2.0), + MinNeutralPt = cms.vdouble( 0.2, 2.0), MinNeutralPtSlope = cms.vdouble(0.08, 0.07), RMSEtaSF = cms.vdouble(1.20, 0.95), MedEtaSF = cms.vdouble(0.90, 0.75), diff --git a/PhysicsTools/PatAlgos/test/corMETFromMiniAOD.py b/PhysicsTools/PatAlgos/test/corMETFromMiniAOD.py index 870d8c8fc5fe8..2885da381c7d4 100644 --- a/PhysicsTools/PatAlgos/test/corMETFromMiniAOD.py +++ b/PhysicsTools/PatAlgos/test/corMETFromMiniAOD.py @@ -75,9 +75,9 @@ ### ===================================================================================================== # Define the input source if runOnData: - fname = 'root://eoscms.cern.ch//store/relval/CMSSW_8_1_0_pre9/DoubleEG/MINIAOD/81X_dataRun2_relval_v2_RelVal_doubEG2015D-v1/10000/029C887F-2D53-E611-92EE-0CC47A74525A.root' + fname = 'root://eoscms.cern.ch//store/relval/CMSSW_8_1_0_pre10/DoubleEG/MINIAOD/81X_dataRun2_relval_v4_RelVal_doubEG2015D-v1/00000/88859857-6168-E611-9E79-0025905A60AA.root' else: - fname = 'root://eoscms.cern.ch//store/relval/CMSSW_8_1_0_pre9/RelValTTbar_13/MINIAODSIM/PU25ns_81X_mcRun2_asymptotic_v2-v1/10000/8C46B127-3253-E611-BEBF-0025905A605E.root' + fname = 'root://eoscms.cern.ch//store/relval/CMSSW_8_1_0_pre10/RelValTTbar_13/MINIAODSIM/81X_mcRun2_asymptotic_v5_recycle-v1/00000/B49E8325-6E67-E611-BFE7-0025905A60D0.root' # Define the input source process.source = cms.Source("PoolSource", diff --git a/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py b/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py index 52d14cfc1f796..cb9f4f5e28074 100644 --- a/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py +++ b/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py @@ -1195,7 +1195,11 @@ def createSmearedJetModule(self, process, jetCollection, smear, varyByNsigmas, v enabled = cms.bool(smear), variation = cms.int32( int(varyByNsigmas) ), ) - + + if self._parameters["Puppi"].value: + smearedJetModule.algo = cms.string('AK4PFPuppi') + smearedJetModule.algopt = cms.string('AK4PFPuppi_pt') + #MM: FIXME MVA #if "MVA" == self._parameters["metType"].value: # from RecoMET.METProducers.METSigParams_cfi import * @@ -1403,13 +1407,17 @@ def ak4JetReclustering(self,process, pfCandCollection, patMetModuleSequence, pos jetCorrections = ('AK4PF'+CHSname, corLevels , ''), postfix=postfix ) - + getattr(process,"patJets"+postfix).addGenJetMatch = False getattr(process,"patJets"+postfix).addGenPartonMatch = False getattr(process,"patJets"+postfix).addPartonJetMatch = False + getattr(process,"patJets"+postfix).embedGenPartonMatch = False + getattr(process,"patJets"+postfix).embedGenJetMatch = False if self._parameters['onMiniAOD'].value: del getattr(process,"patJets"+postfix).JetFlavourInfoSource del getattr(process,"patJets"+postfix).JetPartonMapSource + del getattr(process,"patJets"+postfix).genPartonMatch + del getattr(process,"patJets"+postfix).genJetMatch getattr(process,"patJets"+postfix).getJetMCFlavour = False getattr(process,"patJetCorrFactors"+postfix).src=cms.InputTag(jetColName) @@ -1507,6 +1515,8 @@ def jetConfiguration(self): jetCorLabelL3ResName += "CHS" elif "Puppi" in jetFlavor: self.setParameter("CHS",False) + jetCorLabelUpToL3Name += "Puppi" + jetCorLabelL3ResName += "Puppi" else: self.setParameter("CHS",False)