00001 #ifndef HoECalculator_h 00002 #define HoECalculator_h 00003 00004 #include "FWCore/Framework/interface/Event.h" 00005 #include "FWCore/Framework/interface/EventSetup.h" 00006 #include "FWCore/Framework/interface/ESHandle.h" 00007 00008 #include "DataFormats/EgammaReco/interface/BasicCluster.h" 00009 #include "DataFormats/EgammaReco/interface/SuperCluster.h" 00010 00011 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00012 00013 #include "RecoCaloTools/MetaCollections/interface/CaloRecHitMetaCollections.h" 00014 00015 00016 class HoECalculator 00017 { 00018 public: 00019 00020 HoECalculator() ; 00021 HoECalculator(const edm::ESHandle<CaloGeometry>&) ; 00022 00023 double operator() ( const reco::BasicCluster* , 00024 const edm::Event& e , 00025 const edm::EventSetup& c ) ; 00026 00027 double operator() ( const reco::SuperCluster* , 00028 const edm::Event& e , 00029 const edm::EventSetup& c ) ; 00030 00031 double operator() ( const reco::SuperCluster* , 00032 HBHERecHitMetaCollection *mhbhe); 00033 00034 double operator() ( const reco::BasicCluster* , 00035 HBHERecHitMetaCollection *mhbhe); 00036 00037 private: 00038 00039 double getHoE(GlobalPoint pos, float energy, 00040 const edm::Event& e , 00041 const edm::EventSetup& c ) ; 00042 double getHoE(GlobalPoint pos, float energy, 00043 HBHERecHitMetaCollection *mhbhe); 00044 00045 00046 edm::ESHandle<CaloGeometry> theCaloGeom_ ; 00047 const HBHERecHitCollection* hithbhe_ ; 00048 }; 00049 00050 #endif