00001 #ifndef MuonIsolation_PixelTrackExtractor_H 00002 #define MuonIsolation_PixelTrackExtractor_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 PixelTrackExtractor : public reco::isodeposit::IsoDepositExtractor { 00016 00017 public: 00018 00019 PixelTrackExtractor(){}; 00020 PixelTrackExtractor(const edm::ParameterSet& par); 00021 00022 virtual ~PixelTrackExtractor(){} 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 00036 reco::isodeposit::Direction directionAtPresetRadius(const reco::Track& tk, double bz) const; 00037 private: 00038 // Parameter set 00039 edm::InputTag theTrackCollectionTag; 00040 std::string theDepositLabel; 00041 double theDiff_r; 00042 double theDiff_z; 00043 double theDR_Max; 00044 double theDR_Veto; 00045 std::string theBeamlineOption; 00046 edm::InputTag theBeamSpotLabel; 00047 unsigned int theNHits_Min; 00048 double theChi2Ndof_Max; 00049 double theChi2Prob_Min; 00050 double thePt_Min; 00051 00052 bool thePropagateTracksToRadius; 00053 double theReferenceRadius; 00054 00055 bool theVetoLeadingTrack; 00056 double thePtVeto_Min; 00057 double theDR_VetoPt; 00058 }; 00059 00060 } 00061 00062 #endif