00001 // -*- C++ -*- 00002 // 00003 // Package: EgammaHLTProducers 00004 // Class: EgammaHLTBcHcalIsolationProducersRegional 00005 // 00006 // Original Author: Matteo Sani (UCSD) 00007 // Created: Thu Nov 24 11:38:00 CEST 2011 00008 // 00009 00010 #include <memory> 00011 00012 #include "FWCore/Framework/interface/Frameworkfwd.h" 00013 #include "FWCore/Framework/interface/EDProducer.h" 00014 #include "FWCore/Framework/interface/Event.h" 00015 #include "FWCore/Framework/interface/MakerMacros.h" 00016 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00017 00018 #include "RecoEgamma/EgammaElectronAlgos/interface/ElectronHcalHelper.h" 00019 00020 class EgammaTowerIsolation; 00021 00022 //this class produces either Hcal isolation or H for H/E depending if doEtSum=true or false 00023 //H for H/E = towers behind SC, hcal isolation has these towers excluded 00024 //a rho correction can be applied 00025 00026 class EgammaHLTBcHcalIsolationProducersRegional : public edm::EDProducer { 00027 public: 00028 explicit EgammaHLTBcHcalIsolationProducersRegional(const edm::ParameterSet&); 00029 ~EgammaHLTBcHcalIsolationProducersRegional(); 00030 00031 00032 private: 00033 EgammaHLTBcHcalIsolationProducersRegional(const EgammaHLTBcHcalIsolationProducersRegional& rhs){} 00034 EgammaHLTBcHcalIsolationProducersRegional& operator=(const EgammaHLTBcHcalIsolationProducersRegional& rhs){ return *this; } 00035 00036 public: 00037 virtual void produce(edm::Event&, const edm::EventSetup&); 00038 00039 private: 00040 edm::InputTag recoEcalCandidateProducer_; 00041 edm::InputTag caloTowerProducer_; 00042 edm::InputTag rhoProducer_; 00043 00044 bool doRhoCorrection_; 00045 float rhoScale_; 00046 float rhoMax_; 00047 bool doEtSum_; 00048 float etMin_; 00049 float innerCone_; 00050 float outerCone_; 00051 int depth_; 00052 float effectiveAreaBarrel_; 00053 float effectiveAreaEndcap_; 00054 00055 ElectronHcalHelper::Configuration hcalCfg_; 00056 ElectronHcalHelper *hcalHelper_; 00057 }; 00058