CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoEgamma/EgammaIsolationAlgos/interface/EgammaTowerIsolation.h

Go to the documentation of this file.
00001 #ifndef EgammaTowerIsolation_h
00002 #define EgammaTowerIsolation_h
00003 
00004 //*****************************************************************************
00005 // File:      EgammaTowerIsolation.h
00006 // ----------------------------------------------------------------------------
00007 // OrigAuth:  Matthias Mozer
00008 // Institute: IIHE-VUB
00009 //  Adding feature to exclude towers used by H/E
00010 //=============================================================================
00011 //*****************************************************************************
00012 
00013 //C++ includes
00014 #include <vector>
00015 #include <functional>
00016 
00017 //CMSSW includes
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   //constructors
00032   EgammaTowerIsolation (double extRadius,
00033                 double intRadius,
00034                 double etLow,
00035                 signed int depth,
00036                 const CaloTowerCollection* ) ;
00037  
00038    //destructor 
00039   ~EgammaTowerIsolation() ;
00040     //methods
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