Go to the documentation of this file.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