00001 #ifndef MuonIsolation_JetExtractor_H 00002 #define MuonIsolation_JetExtractor_H 00003 00017 #include <string> 00018 00019 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" 00020 00021 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h" 00022 #include "DataFormats/TrackReco/interface/Track.h" 00023 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00024 00025 00026 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h" 00027 00028 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00029 00030 class TrackAssociatorParameters; 00031 class TrackDetectorAssociator; 00032 class MuonServiceProxy; 00033 00034 namespace muonisolation { 00035 00036 class JetExtractor : public reco::isodeposit::IsoDepositExtractor { 00037 00038 public: 00039 00040 JetExtractor(){}; 00041 JetExtractor(const edm::ParameterSet& par); 00042 00043 virtual ~JetExtractor(); 00044 00045 virtual void fillVetos (const edm::Event & ev, const edm::EventSetup & evSetup, const reco::TrackCollection & tracks); 00046 virtual reco::IsoDeposit 00047 deposit(const edm::Event & ev, const edm::EventSetup & evSetup, const reco::Track & track) const; 00048 00049 private: 00050 edm::InputTag theJetCollectionLabel; 00051 00052 std::string thePropagatorName; 00053 00054 // Cone cuts and thresholds 00055 double theThreshold; 00056 double theDR_Veto; 00057 double theDR_Max; 00058 00059 //excludes sumEt of towers that are inside muon veto cone 00060 bool theExcludeMuonVeto; 00061 00063 MuonServiceProxy* theService; 00064 00065 TrackAssociatorParameters* theAssociatorParameters; 00066 TrackDetectorAssociator* theAssociator; 00067 00068 bool thePrintTimeReport; 00069 00070 }; 00071 00072 } 00073 00074 #endif