![]() |
![]() |
00001 #ifndef EgammaIsolationProducers_EgammaHcalIsolation_h 00002 #define EgammaIsolationProducers_EgammaHcalIsolation_h 00003 //***************************************************************************** 00004 // File: EgammaHcalExtractor.h 00005 // ---------------------------------------------------------------------------- 00006 // OrigAuth: Matthias Mozer 00007 // Institute: IIHE-VUB 00008 //============================================================================= 00009 //***************************************************************************** 00010 00011 //C++ includes 00012 #include <vector> 00013 #include <functional> 00014 00015 //CMSSW includes 00016 #include "FWCore/Framework/interface/ESHandle.h" 00017 #include "DataFormats/Candidate/interface/Candidate.h" 00018 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00019 #include "RecoCaloTools/MetaCollections/interface/CaloRecHitMetaCollections.h" 00020 #include "RecoCaloTools/Selectors/interface/CaloDualConeSelector.h" 00021 00022 #include "FWCore/Framework/interface/Event.h" 00023 #include "FWCore/Framework/interface/EventSetup.h" 00024 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00025 #include "FWCore/ParameterSet/interface/InputTag.h" 00026 00027 #include "DataFormats/TrackReco/interface/Track.h" 00028 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00029 00030 #include "PhysicsTools/IsolationAlgos/interface/IsoDepositExtractor.h" 00031 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h" 00032 00033 00034 00035 00036 namespace egammaisolation { 00037 00038 class EgammaHcalExtractor : public reco::isodeposit::IsoDepositExtractor { 00039 public: 00040 EgammaHcalExtractor ( const edm::ParameterSet& par ); 00041 00042 virtual ~EgammaHcalExtractor() ; 00043 00044 virtual void fillVetos(const edm::Event & ev, const edm::EventSetup & evSetup, 00045 const reco::TrackCollection & tracks) { } 00046 virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup, 00047 const reco::Track & track) const { 00048 throw cms::Exception("Configuration Error") << 00049 "This extractor " << (typeid(this).name()) << " is not made for tracks"; 00050 } 00051 virtual reco::IsoDeposit deposit(const edm::Event & ev, const edm::EventSetup & evSetup, 00052 const reco::Candidate & c) const ; 00053 00054 private: 00055 double minCandEt_ ; 00056 double extRadius_ ; 00057 double intRadius_ ; 00058 double etLow_ ; 00059 00060 edm::InputTag barrelEcalHitsTag_; 00061 edm::InputTag endcapEcalHitsTag_; 00062 edm::InputTag hcalRecHitProducer_; 00063 //HBHERecHitMetaCollection* mhbhe_ ; // to recover later when we add begin(), end() 00064 00065 std::vector<double> paramForIsolBarrel_; //Barrel requirements to check if isolated 00066 std::vector<double> paramForIsolEndcap_; //Endcap requirements to check if isolated 00067 }; 00068 } 00069 #endif