Go to the documentation of this file.00001 #ifndef PhysicsTools_IsolationAlgos_EventDependentAbsVetos_h
00002 #define PhysicsTools_IsolationAlgos_EventDependentAbsVetos_h
00003
00004 #include "PhysicsTools/IsolationAlgos/interface/EventDependentAbsVeto.h"
00005 #include "FWCore/Utilities/interface/InputTag.h"
00006
00007 namespace reco {
00008 namespace isodeposit {
00009 class OtherCandidatesDeltaRVeto : public EventDependentAbsVeto {
00010 public:
00012 OtherCandidatesDeltaRVeto(const edm::InputTag candidates, double deltaR) :
00013 src_(candidates), deltaR2_(deltaR*deltaR) { }
00014
00015
00016 virtual ~OtherCandidatesDeltaRVeto() {}
00017
00020 virtual bool veto(double eta, double phi, float value) const ;
00021
00023 virtual void centerOn(double eta, double phi) { }
00024
00026 virtual void setEvent(const edm::Event &iEvent, const edm::EventSetup &iSetup) ;
00027
00028 private:
00029 edm::InputTag src_;
00030 float deltaR2_;
00031 std::vector<Direction> items_;
00032 };
00033
00034 class OtherCandVeto : public EventDependentAbsVeto {
00035 public:
00037 OtherCandVeto(const edm::InputTag candidates, AbsVeto *veto) :
00038 src_(candidates), veto_(veto) { }
00039
00040
00041 virtual ~OtherCandVeto() {}
00042
00045 virtual bool veto(double eta, double phi, float value) const ;
00046
00048 virtual void centerOn(double eta, double phi) { }
00049
00051 virtual void setEvent(const edm::Event &iEvent, const edm::EventSetup &iSetup) ;
00052
00053 private:
00054 edm::InputTag src_;
00055 std::vector<Direction> items_;
00056 std::auto_ptr<AbsVeto> veto_;
00057 };
00058 }
00059 }
00060 #endif