00001 00002 #include "PhysicsTools/IsolationAlgos/interface/EventDependentAbsVetos.h" 00003 #include "DataFormats/Common/interface/View.h" 00004 #include "DataFormats/Candidate/interface/Candidate.h" 00005 #include "DataFormats/Math/interface/deltaR.h" 00006 00007 bool 00008 reco::isodeposit::OtherCandidatesDeltaRVeto::veto(double eta, double phi, float value) const 00009 { 00010 for (std::vector<Direction>::const_iterator it = items_.begin(), ed = items_.end(); it != ed; ++it) { 00011 if (::deltaR2(it->eta(), it->phi(), eta, phi) < deltaR2_) return true; 00012 } 00013 return false; 00014 } 00015 00016 void 00017 reco::isodeposit::OtherCandidatesDeltaRVeto::setEvent(const edm::Event &iEvent, const edm::EventSetup &iSetup) { 00018 items_.clear(); 00019 edm::Handle<edm::View<reco::Candidate> > candidates; 00020 iEvent.getByLabel(src_, candidates); 00021 for (edm::View<reco::Candidate>::const_iterator it = candidates->begin(), ed = candidates->end(); it != ed; ++it) { 00022 items_.push_back(Direction(it->eta(), it->phi())); 00023 } 00024 } 00025