![]() |
![]() |
00001 #ifndef MuonIsolation_MuIsoByTrackPt_H 00002 #define MuonIsolation_MuIsoByTrackPt_H 00003 00004 #include "RecoMuon/MuonIsolation/interface/MuIsoBaseAlgorithm.h" 00005 #include "RecoMuon/MuonIsolation/interface/CutsConeSizeFunction.h" 00006 00007 namespace reco { namespace isodeposit { class IsoDepositExtractor; }} 00008 namespace muonisolation { class IsolatorByDeposit; } 00009 namespace reco { class Track; } 00010 namespace edm { class Event; } 00011 namespace edm { class EventSetup; } 00012 namespace edm { class ParameterSet; } 00013 00014 00015 class MuIsoByTrackPt : public MuIsoBaseAlgorithm { 00016 public: 00017 MuIsoByTrackPt(const edm::ParameterSet& conf); 00018 virtual ~MuIsoByTrackPt(); 00019 00020 virtual float isolation(const edm::Event&, const edm::EventSetup&, const reco::Track& muon); 00021 virtual float isolation(const edm::Event& ev, const edm::EventSetup& es, const reco::TrackRef& muon) 00022 { 00023 return isolation(ev, es, *muon); 00024 } 00025 virtual bool isIsolated(const edm::Event&, const edm::EventSetup&, const reco::Track& muon); 00026 virtual bool isIsolated(const edm::Event& ev, const edm::EventSetup& es, const reco::TrackRef& muon) 00027 { 00028 return isIsolated(ev, es, *muon); 00029 } 00030 00031 void setConeSize(float dr); 00032 void setCut(float cut) { theCut = cut; } 00033 00034 virtual reco::isodeposit::IsoDepositExtractor * extractor() { return theExtractor; } 00035 virtual muonisolation::IsolatorByDeposit * isolator() { return theIsolator; } 00036 00037 private: 00038 float theCut; 00039 reco::isodeposit::IsoDepositExtractor * theExtractor; 00040 muonisolation::IsolatorByDeposit * theIsolator; 00041 }; 00042 00043 #endif