00001 #ifndef MuonIsolation_TrackExtractor_H 00002 #define MuonIsolation_TrackExtractor_H 00003 00004 #include <string> 00005 #include <vector> 00006 00007 00008 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h" 00009 #include "DataFormats/TrackReco/interface/Track.h" 00010 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00011 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" 00012 00013 namespace muonisolation { 00014 00015 class TrackExtractor : public reco::isodeposit::IsoDepositExtractor { 00016 00017 public: 00018 00019 TrackExtractor(){}; 00020 TrackExtractor(const edm::ParameterSet& par); 00021 00022 virtual ~TrackExtractor(){} 00023 00024 virtual void fillVetos (const edm::Event & ev, 00025 const edm::EventSetup & evSetup, const reco::TrackCollection & track) {} 00026 00027 virtual reco::IsoDeposit::Vetos vetos(const edm::Event & ev, 00028 const edm::EventSetup & evSetup, const reco::Track & track)const; 00029 00030 virtual reco::IsoDeposit deposit (const edm::Event & ev, 00031 const edm::EventSetup & evSetup, const reco::Track & muon) const; 00032 00033 private: 00034 reco::IsoDeposit::Veto veto( const reco::IsoDeposit::Direction & dir) const; 00035 private: 00036 // Parameter set 00037 edm::InputTag theTrackCollectionTag; 00038 std::string theDepositLabel; 00039 double theDiff_r; 00040 double theDiff_z; 00041 double theDR_Max; 00042 double theDR_Veto; 00043 std::string theBeamlineOption; 00044 edm::InputTag theBeamSpotLabel; 00045 uint theNHits_Min; 00046 double theChi2Ndof_Max; 00047 double theChi2Prob_Min; 00048 double thePt_Min; 00049 }; 00050 00051 } 00052 00053 #endif