CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoMuon/MuonIsolation/interface/MuIsoByTrackPt.h

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