00001 #ifndef EgammaTowerIsolation_h 00002 #define EgammaTowerIsolation_h 00003 00004 //***************************************************************************** 00005 // File: EgammaTowerIsolation.h 00006 // ---------------------------------------------------------------------------- 00007 // OrigAuth: Matthias Mozer 00008 // Institute: IIHE-VUB 00009 //============================================================================= 00010 //***************************************************************************** 00011 00012 //C++ includes 00013 #include <vector> 00014 #include <functional> 00015 00016 //CMSSW includes 00017 #include "FWCore/Framework/interface/ESHandle.h" 00018 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" 00019 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h" 00020 #include "DataFormats/EgammaReco/interface/SuperCluster.h" 00021 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" 00022 00023 00024 00025 class EgammaTowerIsolation { 00026 public: 00027 00028 enum HcalDepth{AllDepths=-1,Undefined=0,Depth1=1,Depth2=2}; 00029 00030 //constructors 00031 EgammaTowerIsolation (double extRadius, 00032 double intRadius, 00033 double etLow, 00034 signed int depth, 00035 const CaloTowerCollection* ) ; 00036 00037 //destructor 00038 ~EgammaTowerIsolation() ; 00039 //methods 00040 00041 int getNumberTracks(const reco::Candidate*) const ; 00042 double getTowerEtSum (const reco::Candidate*) const ; 00043 double getTowerESum (const reco::Candidate*) const ; 00044 double getTowerEtSum(const reco::SuperCluster*) const; 00045 double getTowerESum(const reco::SuperCluster*) const; 00046 00047 private: 00048 00049 double extRadius_ ; 00050 double intRadius_ ; 00051 double etLow_ ; 00052 signed int depth_; 00053 00054 const CaloTowerCollection *towercollection_ ; 00055 00056 }; 00057 00058 #endif