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