CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoEgamma/EgammaElectronAlgos/interface/ElectronHcalHelper.h

Go to the documentation of this file.
00001 
00002 #ifndef ElectronHcalHelper_h
00003 #define ElectronHcalHelper_h
00004 
00005 class EgammaHcalIsolation ;
00006 class EgammaTowerIsolation ;
00007 
00008 #include "RecoCaloTools/MetaCollections/interface/CaloRecHitMetaCollections.h"
00009 #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h"
00010 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00011 #include "FWCore/Framework/interface/Event.h"
00012 #include "FWCore/Framework/interface/EventSetup.h"
00013 #include "FWCore/Framework/interface/ESHandle.h"
00014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00015 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
00016 #include "DataFormats/Common/interface/Handle.h"
00017 
00018 class ElectronHcalHelper
00019  {
00020   public:
00021 
00022     struct Configuration
00023      {
00024       // common parameters
00025       double hOverEConeSize ;
00026 
00027       // strategy
00028       bool useTowers ;
00029 
00030       // specific parameters if use towers
00031       edm::InputTag hcalTowers ;
00032       double hOverEPtMin ;            // min tower Et for H/E evaluation
00033 
00034       // specific parameters if use rechits
00035       edm::InputTag hcalRecHits ;
00036       double hOverEHBMinE ;
00037       double hOverEHFMinE ;
00038      } ;
00039 
00040     ElectronHcalHelper( const Configuration & ) ;
00041     void checkSetup( const edm::EventSetup & ) ;
00042     void readEvent( edm::Event & ) ;
00043     double hcalESum( const reco::SuperCluster & ) ;
00044     double hcalESumDepth1( const reco::SuperCluster & ) ;
00045     double hcalESumDepth2( const reco::SuperCluster & ) ;
00046     ~ElectronHcalHelper() ;
00047 
00048     double hOverEConeSize() const { return cfg_.hOverEConeSize ; }
00049 
00050 
00051   private:
00052 
00053     const Configuration cfg_ ;
00054 
00055     // event setup data (rechits strategy)
00056     unsigned long long caloGeomCacheId_ ;
00057     edm::ESHandle<CaloGeometry> caloGeom_ ;
00058 
00059     // event data (rechits strategy)
00060     edm::Handle<HBHERecHitCollection> * hbhe_ ;
00061     HBHERecHitMetaCollection * mhbhe_ ;
00062     EgammaHcalIsolation * hcalIso_ ;
00063 
00064     // event data (towers strategy)
00065     edm::Handle<CaloTowerCollection> * towersH_ ;
00066     EgammaTowerIsolation * towerIso1_ ;
00067     EgammaTowerIsolation * towerIso2_ ;
00068 
00069  } ;
00070 
00071 #endif
00072 
00073 
00074