CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoEgamma/EgammaIsolationAlgos/plugins/EgammaHcalExtractor.h

Go to the documentation of this file.
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/Utilities/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 extRadius_ ;
00056          double intRadius_ ;
00057          double etLow_ ;
00058 
00059          edm::InputTag hcalRecHitProducer_;
00060          //HBHERecHitMetaCollection* mhbhe_ ;    // to recover later when we add begin(), end()
00061 
00062    };
00063 }
00064 #endif