From a717de7779cc4d32acc02e8ecb71d7b3279e88ec Mon Sep 17 00:00:00 2001 From: Andreas Hinzmann Date: Thu, 6 Jul 2017 16:20:30 +0200 Subject: [PATCH 1/7] fix in puppi photon matching --- CommonTools/PileupAlgos/plugins/PuppiPhoton.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc index d28cfd2ccd3bd..df8d9d2f077d9 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc @@ -186,6 +186,7 @@ void PuppiPhoton::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { } // ------------------------------------------------------------------------------------------ bool PuppiPhoton::matchPFCandidate(const reco::Candidate *iPF,const reco::Candidate *iPho) { + if(iPF->pdgId() != iPho->pdgId()) return false; double lDR = deltaR(iPF->eta(),iPF->phi(),iPho->eta(),iPho->phi()); for(unsigned int i0 = 0; i0 < pdgIds_.size(); i0++) { if(std::abs(iPF->pdgId()) == pdgIds_[i0] && lDR < dRMatch_[i0]) return true; From 9d86e3c237d98170aab0264d04d52aa160eba5cc Mon Sep 17 00:00:00 2001 From: Andreas Hinzmann Date: Thu, 13 Jul 2017 16:44:21 +0200 Subject: [PATCH 2/7] merge --- .../PileupAlgos/interface/PuppiContainer.h | 1 + CommonTools/PileupAlgos/plugins/PuppiPhoton.cc | 15 ++++++++++++++- CommonTools/PileupAlgos/plugins/PuppiPhoton.h | 1 + CommonTools/PileupAlgos/plugins/PuppiProducer.cc | 1 + CommonTools/PileupAlgos/plugins/PuppiProducer.h | 1 + CommonTools/PileupAlgos/python/PhotonPuppi_cff.py | 11 ++++++----- CommonTools/PileupAlgos/python/Puppi_cff.py | 1 + CommonTools/PileupAlgos/src/PuppiContainer.cc | 3 +++ 8 files changed, 28 insertions(+), 6 deletions(-) diff --git a/CommonTools/PileupAlgos/interface/PuppiContainer.h b/CommonTools/PileupAlgos/interface/PuppiContainer.h index 644343d5ba7f9..0c5df114bffa6 100644 --- a/CommonTools/PileupAlgos/interface/PuppiContainer.h +++ b/CommonTools/PileupAlgos/interface/PuppiContainer.h @@ -76,6 +76,7 @@ class PuppiContainer{ double fNeutralMinPt; double fNeutralSlope; double fPuppiWeightCut; + double fPtMax; int fNAlgos; int fNPV; double fPVFrac; diff --git a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc index df8d9d2f077d9..a6052d9e7ebeb 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc @@ -34,6 +34,7 @@ PuppiPhoton::PuppiPhoton(const edm::ParameterSet& iConfig) { usePhotonId_ = (iConfig.getParameter("photonId")).label().size() != 0; if(usePhotonId_) tokenPhotonId_ = consumes >(iConfig.getParameter("photonId")); + usePFphotons_ = iConfig.getParameter("usePFphotons"); runOnMiniAOD_ = iConfig.getParameter("runOnMiniAOD"); if(!runOnMiniAOD_) reco2pf_ = consumes > >(iConfig.getParameter("recoToPFMap")); @@ -76,7 +77,18 @@ void PuppiPhoton::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { edm::Handle hPuppiProduct; iEvent.getByToken(tokenPuppiCandidates_,hPuppiProduct); const CandidateView *pupCol = hPuppiProduct.product(); - for(CandidateView::const_iterator itPho = phoCol->begin(); itPho!=phoCol->end(); itPho++) { + if(usePFphotons_) { + for(CandidateView::const_iterator itPho = pfCol->begin(); itPho!=pfCol->end(); itPho++) { + iC++; + if(itPho->pt() < pt_) continue; + if(abs(itPho->pdgId())!=22) continue; + if(fabs(itPho->eta()) < eta_ ) { + phoIndx.push_back(iC); + phoCands.push_back(&(*itPho)); + } + } + } else { + for(CandidateView::const_iterator itPho = phoCol->begin(); itPho!=phoCol->end(); itPho++) { iC++; bool passObject = false; if(itPho->isPhoton() && usePhotonId_) passObject = (*photonId) [phoCol->ptrAt(iC)]; @@ -109,6 +121,7 @@ void PuppiPhoton::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { } } } + } } //Get Weights edm::Handle > pupWeights; diff --git a/CommonTools/PileupAlgos/plugins/PuppiPhoton.h b/CommonTools/PileupAlgos/plugins/PuppiPhoton.h index 8494ffddf5227..b542d4d720292 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiPhoton.h +++ b/CommonTools/PileupAlgos/plugins/PuppiPhoton.h @@ -40,6 +40,7 @@ class PuppiPhoton : public edm::stream::EDProducer<> { double pt_; double eta_; bool usePFRef_; + bool usePFphotons_; bool runOnMiniAOD_; bool usePhotonId_; std::vector dRMatch_; diff --git a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc index 3376ba914cd6c..6d41377921732 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc @@ -33,6 +33,7 @@ PuppiProducer::PuppiProducer(const edm::ParameterSet& iConfig) { fPuppiForLeptons = iConfig.getParameter("puppiForLeptons"); fUseDZ = iConfig.getParameter("UseDeltaZCut"); fDZCut = iConfig.getParameter("DeltaZCut"); + fPtMax = iConfig.getParameter("MaxPt"); fUseExistingWeights = iConfig.getParameter("useExistingWeights"); fUseWeightsNoLep = iConfig.getParameter("useWeightsNoLep"); fClonePackedCands = iConfig.getParameter("clonePackedCands"); diff --git a/CommonTools/PileupAlgos/plugins/PuppiProducer.h b/CommonTools/PileupAlgos/plugins/PuppiProducer.h index 84aecffbe1003..575d49bf3116f 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiProducer.h +++ b/CommonTools/PileupAlgos/plugins/PuppiProducer.h @@ -51,6 +51,7 @@ class PuppiProducer : public edm::stream::EDProducer<> { bool fPuppiForLeptons; bool fUseDZ; float fDZCut; + float fPtMax; bool fUseExistingWeights; bool fUseWeightsNoLep; bool fClonePackedCands; diff --git a/CommonTools/PileupAlgos/python/PhotonPuppi_cff.py b/CommonTools/PileupAlgos/python/PhotonPuppi_cff.py index 1631e61bed4bf..1b65a7b9305ae 100644 --- a/CommonTools/PileupAlgos/python/PhotonPuppi_cff.py +++ b/CommonTools/PileupAlgos/python/PhotonPuppi_cff.py @@ -6,10 +6,11 @@ puppiCandName = cms.InputTag('puppi'), photonName = cms.InputTag('reducedEgamma','reducedGedPhotons'), recoToPFMap = cms.InputTag("reducedEgamma","reducedPhotonPfCandMap"), - photonId = cms.InputTag("egmPhotonIDs:cutBasedPhotonID-Spring15-25ns-V1-standalone-loose"), - pt = cms.double(10), + photonId = cms.InputTag(""), # Add once available and validated (Note that Spring16 cut based photon ID fails for high pT photons in 93X) + pt = cms.double(20), eta = cms.double(2.5), - runOnMiniAOD = cms.bool(False), + usePFphotons = cms.bool(True), # Use PF photons and not GED photons + runOnMiniAOD = cms.bool(False), # If set to true photon ID is taken from pat::Photon, otherwise from the value map at RECO/AOD level useRefs = cms.bool(True), dRMatch = cms.vdouble(0.005,0.005,0.005,0.005), pdgids = cms.vint32 (22,11,211,130), @@ -20,14 +21,14 @@ def setupPuppiPhoton(process): - my_id_modules = ['RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Spring15_25ns_V1_cff'] + my_id_modules = [] # Add photon ID used by puppiPhoton producer here switchOnVIDPhotonIdProducer(process, DataFormat.AOD) for idmod in my_id_modules: setupAllVIDIdsInModule(process,idmod,setupVIDPhotonSelection) def setupPuppiPhotonMiniAOD(process): - my_id_modules = ['RecoEgamma.PhotonIdentification.Identification.cutBasedPhotonID_Spring15_25ns_V1_cff'] + my_id_modules = [] # Add photon ID used by puppiPhoton producer here switchOnVIDPhotonIdProducer(process, DataFormat.MiniAOD) for idmod in my_id_modules: setupAllVIDIdsInModule(process,idmod,setupVIDPhotonSelection) diff --git a/CommonTools/PileupAlgos/python/Puppi_cff.py b/CommonTools/PileupAlgos/python/Puppi_cff.py index 2ea8db93760f5..0db9331533e5a 100644 --- a/CommonTools/PileupAlgos/python/Puppi_cff.py +++ b/CommonTools/PileupAlgos/python/Puppi_cff.py @@ -29,6 +29,7 @@ puppiForLeptons = cms.bool(False), UseDeltaZCut = cms.bool(True), DeltaZCut = cms.double(0.3), + MaxPt = cms.double(200.), candName = cms.InputTag('particleFlow'), vertexName = cms.InputTag('offlinePrimaryVertices'), #candName = cms.string('packedPFCandidates'), diff --git a/CommonTools/PileupAlgos/src/PuppiContainer.cc b/CommonTools/PileupAlgos/src/PuppiContainer.cc index 70ce26fb1d383..a723e15f6735f 100644 --- a/CommonTools/PileupAlgos/src/PuppiContainer.cc +++ b/CommonTools/PileupAlgos/src/PuppiContainer.cc @@ -18,6 +18,7 @@ PuppiContainer::PuppiContainer(const edm::ParameterSet &iConfig) { fInvert = iConfig.getParameter("invertPuppi"); fUseExp = iConfig.getParameter("useExp"); fPuppiWeightCut = iConfig.getParameter("MinPuppiWeight"); + fPtMax = iConfig.getParameter("MaxPt"); std::vector lAlgos = iConfig.getParameter >("algos"); fNAlgos = lAlgos.size(); for(unsigned int i0 = 0; i0 < lAlgos.size(); i0++) { @@ -262,6 +263,8 @@ std::vector const & PuppiContainer::puppiWeights() { if(pWeight*fPFParticles[i0].pt() < fPuppiAlgo[pPupId].neutralPt(fNPV) && fRecoParticles[i0].id == 0 ) pWeight = 0; //threshold cut on the neutral Pt if(fInvert) pWeight = 1.-pWeight; //std::cout << "fRecoParticles[i0].pt = " << fRecoParticles[i0].pt << ", fRecoParticles[i0].charge = " << fRecoParticles[i0].charge << ", fRecoParticles[i0].id = " << fRecoParticles[i0].id << ", weight = " << pWeight << std::endl; + if(fPFParticles[i0].pt()>0) + pWeight=min(max(pWeight,fPFParticles[i0].pt()/fPtMax),1.); fWeights .push_back(pWeight); fAlphaMed.push_back(fPuppiAlgo[pPupId].median()); From 0529f080e4950fb0808a08c5522fe8810234b628 Mon Sep 17 00:00:00 2001 From: Andreas Hinzmann Date: Fri, 14 Jul 2017 09:29:20 +0200 Subject: [PATCH 3/7] max pt only for neutrals --- CommonTools/PileupAlgos/src/PuppiContainer.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CommonTools/PileupAlgos/src/PuppiContainer.cc b/CommonTools/PileupAlgos/src/PuppiContainer.cc index a723e15f6735f..97c30064841ba 100644 --- a/CommonTools/PileupAlgos/src/PuppiContainer.cc +++ b/CommonTools/PileupAlgos/src/PuppiContainer.cc @@ -263,8 +263,7 @@ std::vector const & PuppiContainer::puppiWeights() { if(pWeight*fPFParticles[i0].pt() < fPuppiAlgo[pPupId].neutralPt(fNPV) && fRecoParticles[i0].id == 0 ) pWeight = 0; //threshold cut on the neutral Pt if(fInvert) pWeight = 1.-pWeight; //std::cout << "fRecoParticles[i0].pt = " << fRecoParticles[i0].pt << ", fRecoParticles[i0].charge = " << fRecoParticles[i0].charge << ", fRecoParticles[i0].id = " << fRecoParticles[i0].id << ", weight = " << pWeight << std::endl; - if(fPFParticles[i0].pt()>0) - pWeight=min(max(pWeight,fPFParticles[i0].pt()/fPtMax),1.); + if(fRecoParticles[i0].id == 0) pWeight=min(max(pWeight,fPFParticles[i0].pt()/fPtMax),1.); fWeights .push_back(pWeight); fAlphaMed.push_back(fPuppiAlgo[pPupId].median()); From 5d7c53c53a62751e7c8afafb9fb4ba02d4bd373f Mon Sep 17 00:00:00 2001 From: Andreas Hinzmann Date: Fri, 14 Jul 2017 10:18:59 +0200 Subject: [PATCH 4/7] allow to disable maxpt cut --- CommonTools/PileupAlgos/plugins/PuppiProducer.cc | 2 +- CommonTools/PileupAlgos/python/Puppi_cff.py | 2 +- CommonTools/PileupAlgos/src/PuppiContainer.cc | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc index 6d41377921732..60326842cb8d0 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiProducer.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiProducer.cc @@ -33,7 +33,7 @@ PuppiProducer::PuppiProducer(const edm::ParameterSet& iConfig) { fPuppiForLeptons = iConfig.getParameter("puppiForLeptons"); fUseDZ = iConfig.getParameter("UseDeltaZCut"); fDZCut = iConfig.getParameter("DeltaZCut"); - fPtMax = iConfig.getParameter("MaxPt"); + fPtMax = iConfig.getParameter("PtMaxNeutrals"); fUseExistingWeights = iConfig.getParameter("useExistingWeights"); fUseWeightsNoLep = iConfig.getParameter("useWeightsNoLep"); fClonePackedCands = iConfig.getParameter("clonePackedCands"); diff --git a/CommonTools/PileupAlgos/python/Puppi_cff.py b/CommonTools/PileupAlgos/python/Puppi_cff.py index 0db9331533e5a..2c944000ec733 100644 --- a/CommonTools/PileupAlgos/python/Puppi_cff.py +++ b/CommonTools/PileupAlgos/python/Puppi_cff.py @@ -29,7 +29,7 @@ puppiForLeptons = cms.bool(False), UseDeltaZCut = cms.bool(True), DeltaZCut = cms.double(0.3), - MaxPt = cms.double(200.), + PtMaxNeutrals = cms.double(200.), candName = cms.InputTag('particleFlow'), vertexName = cms.InputTag('offlinePrimaryVertices'), #candName = cms.string('packedPFCandidates'), diff --git a/CommonTools/PileupAlgos/src/PuppiContainer.cc b/CommonTools/PileupAlgos/src/PuppiContainer.cc index 97c30064841ba..ccf1e101fbaef 100644 --- a/CommonTools/PileupAlgos/src/PuppiContainer.cc +++ b/CommonTools/PileupAlgos/src/PuppiContainer.cc @@ -18,7 +18,7 @@ PuppiContainer::PuppiContainer(const edm::ParameterSet &iConfig) { fInvert = iConfig.getParameter("invertPuppi"); fUseExp = iConfig.getParameter("useExp"); fPuppiWeightCut = iConfig.getParameter("MinPuppiWeight"); - fPtMax = iConfig.getParameter("MaxPt"); + fPtMax = iConfig.getParameter("PtMaxNeutrals"); std::vector lAlgos = iConfig.getParameter >("algos"); fNAlgos = lAlgos.size(); for(unsigned int i0 = 0; i0 < lAlgos.size(); i0++) { @@ -263,7 +263,7 @@ std::vector const & PuppiContainer::puppiWeights() { if(pWeight*fPFParticles[i0].pt() < fPuppiAlgo[pPupId].neutralPt(fNPV) && fRecoParticles[i0].id == 0 ) pWeight = 0; //threshold cut on the neutral Pt if(fInvert) pWeight = 1.-pWeight; //std::cout << "fRecoParticles[i0].pt = " << fRecoParticles[i0].pt << ", fRecoParticles[i0].charge = " << fRecoParticles[i0].charge << ", fRecoParticles[i0].id = " << fRecoParticles[i0].id << ", weight = " << pWeight << std::endl; - if(fRecoParticles[i0].id == 0) pWeight=min(max(pWeight,fPFParticles[i0].pt()/fPtMax),1.); + if((fPtMax>0) && (fRecoParticles[i0].id == 0)) pWeight=min(max(pWeight,fPFParticles[i0].pt()/fPtMax),1.); fWeights .push_back(pWeight); fAlphaMed.push_back(fPuppiAlgo[pPupId].median()); From 9fb93691ab56cee65d114ce8f5bfe1d97cacda90 Mon Sep 17 00:00:00 2001 From: Andreas Hinzmann Date: Fri, 21 Jul 2017 15:47:26 +0200 Subject: [PATCH 5/7] indentation and consume --- CommonTools/PileupAlgos/plugins/PuppiPhoton.cc | 5 +++-- CommonTools/PileupAlgos/python/PhotonPuppi_cff.py | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc index a6052d9e7ebeb..d2e4904dd95a5 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc @@ -30,11 +30,12 @@ PuppiPhoton::PuppiPhoton(const edm::ParameterSet& iConfig) { tokenPFCandidates_ = consumes(iConfig.getParameter("candName")); tokenPuppiCandidates_ = consumes(iConfig.getParameter("puppiCandName")); - tokenPhotonCandidates_ = consumes(iConfig.getParameter("photonName")); + usePFphotons_ = iConfig.getParameter("usePFphotons"); + if(!usePFphotons_) + tokenPhotonCandidates_ = consumes(iConfig.getParameter("photonName")); usePhotonId_ = (iConfig.getParameter("photonId")).label().size() != 0; if(usePhotonId_) tokenPhotonId_ = consumes >(iConfig.getParameter("photonId")); - usePFphotons_ = iConfig.getParameter("usePFphotons"); runOnMiniAOD_ = iConfig.getParameter("runOnMiniAOD"); if(!runOnMiniAOD_) reco2pf_ = consumes > >(iConfig.getParameter("recoToPFMap")); diff --git a/CommonTools/PileupAlgos/python/PhotonPuppi_cff.py b/CommonTools/PileupAlgos/python/PhotonPuppi_cff.py index 1b65a7b9305ae..589d719e95d8b 100644 --- a/CommonTools/PileupAlgos/python/PhotonPuppi_cff.py +++ b/CommonTools/PileupAlgos/python/PhotonPuppi_cff.py @@ -4,13 +4,13 @@ puppiPhoton = cms.EDProducer("PuppiPhoton", candName = cms.InputTag('particleFlow'), puppiCandName = cms.InputTag('puppi'), + usePFphotons = cms.bool(True), # Use PF photons and not GED photons photonName = cms.InputTag('reducedEgamma','reducedGedPhotons'), - recoToPFMap = cms.InputTag("reducedEgamma","reducedPhotonPfCandMap"), - photonId = cms.InputTag(""), # Add once available and validated (Note that Spring16 cut based photon ID fails for high pT photons in 93X) + recoToPFMap = cms.InputTag("reducedEgamma","reducedPhotonPfCandMap"), + photonId = cms.InputTag(""), pt = cms.double(20), eta = cms.double(2.5), - usePFphotons = cms.bool(True), # Use PF photons and not GED photons - runOnMiniAOD = cms.bool(False), # If set to true photon ID is taken from pat::Photon, otherwise from the value map at RECO/AOD level + runOnMiniAOD = cms.bool(False), # If set to true photon ID is taken from pat::Photon, otherwise from the value map at RECO/AOD level useRefs = cms.bool(True), dRMatch = cms.vdouble(0.005,0.005,0.005,0.005), pdgids = cms.vint32 (22,11,211,130), From 95ced9e66b0570dd17c9f9f2f0122a8df30bc879 Mon Sep 17 00:00:00 2001 From: Andreas Hinzmann Date: Sat, 22 Jul 2017 02:59:27 +0200 Subject: [PATCH 6/7] fix photon collection reading --- CommonTools/PileupAlgos/plugins/PuppiPhoton.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc index d2e4904dd95a5..1589934c5179d 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc @@ -56,13 +56,6 @@ PuppiPhoton::PuppiPhoton(const edm::ParameterSet& iConfig) { PuppiPhoton::~PuppiPhoton(){} // ------------------------------------------------------------------------------------------ void PuppiPhoton::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - - edm::Handle hPhoProduct; - iEvent.getByToken(tokenPhotonCandidates_,hPhoProduct); - const CandidateView *phoCol = hPhoProduct.product(); - - edm::Handle > photonId; - if(usePhotonId_) iEvent.getByToken(tokenPhotonId_,photonId); int iC = -1; std::vector phoCands; std::vector phoIndx; @@ -89,6 +82,13 @@ void PuppiPhoton::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { } } } else { + edm::Handle hPhoProduct; + iEvent.getByToken(tokenPhotonCandidates_,hPhoProduct); + const CandidateView *phoCol = hPhoProduct.product(); + + edm::Handle > photonId; + if(usePhotonId_) iEvent.getByToken(tokenPhotonId_,photonId); + for(CandidateView::const_iterator itPho = phoCol->begin(); itPho!=phoCol->end(); itPho++) { iC++; bool passObject = false; From e03aaaad8b0450e6be0f876ebf25412839bc7a24 Mon Sep 17 00:00:00 2001 From: Andreas Hinzmann Date: Fri, 28 Jul 2017 16:30:24 +0200 Subject: [PATCH 7/7] comments by david --- CommonTools/PileupAlgos/plugins/PuppiPhoton.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc index 1589934c5179d..57b60a2d3f4fd 100644 --- a/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc +++ b/CommonTools/PileupAlgos/plugins/PuppiPhoton.cc @@ -72,13 +72,13 @@ void PuppiPhoton::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { iEvent.getByToken(tokenPuppiCandidates_,hPuppiProduct); const CandidateView *pupCol = hPuppiProduct.product(); if(usePFphotons_) { - for(CandidateView::const_iterator itPho = pfCol->begin(); itPho!=pfCol->end(); itPho++) { + for(const auto & pho : *pfCol) { iC++; - if(itPho->pt() < pt_) continue; - if(abs(itPho->pdgId())!=22) continue; - if(fabs(itPho->eta()) < eta_ ) { + if(pho.pt() < pt_) continue; + if(std::abs(pho.pdgId())!=22) continue; + if(fabs(pho.eta()) < eta_ ) { phoIndx.push_back(iC); - phoCands.push_back(&(*itPho)); + phoCands.push_back(&pho); } } } else {