00001 #ifndef RecoLocalCalo_EcalRecProducers_EcalUncalibRecHitRecWorkerRatio_hh 00002 #define RecoLocalCalo_EcalRecProducers_EcalUncalibRecHitRecWorkerRatio_hh 00003 00014 #include "RecoLocalCalo/EcalRecProducers/interface/EcalUncalibRecHitWorkerBaseClass.h" 00015 #include "RecoLocalCalo/EcalRecAlgos/interface//EcalUncalibRecHitRatioMethodAlgo.h" 00016 #include "FWCore/Framework/interface/ESHandle.h" 00017 #include "CondFormats/EcalObjects/interface/EcalPedestals.h" 00018 #include "CondFormats/EcalObjects/interface/EcalGainRatios.h" 00019 00020 namespace edm { 00021 class Event; 00022 class EventSetup; 00023 class ParameterSet; 00024 } 00025 00026 class EcalUncalibRecHitWorkerRatio : public EcalUncalibRecHitWorkerBaseClass { 00027 00028 public: 00029 EcalUncalibRecHitWorkerRatio(const edm::ParameterSet&); 00030 virtual ~EcalUncalibRecHitWorkerRatio() {}; 00031 00032 void set(const edm::EventSetup& es); 00033 bool run(const edm::Event& evt, const EcalDigiCollection::const_iterator & digi, EcalUncalibratedRecHitCollection & result); 00034 00035 protected: 00036 00037 edm::ESHandle<EcalPedestals> peds; 00038 edm::ESHandle<EcalGainRatios> gains; 00039 00040 double pedVec[3]; 00041 double pedRMSVec[3]; 00042 double gainRatios[3]; 00043 00044 std::vector<double> EBtimeFitParameters_; 00045 std::vector<double> EEtimeFitParameters_; 00046 00047 std::vector<double> EBamplitudeFitParameters_; 00048 std::vector<double> EEamplitudeFitParameters_; 00049 00050 std::pair<double,double> EBtimeFitLimits_; 00051 std::pair<double,double> EEtimeFitLimits_; 00052 00053 double EBtimeConstantTerm_; 00054 double EEtimeConstantTerm_; 00055 00056 EcalUncalibRecHitRatioMethodAlgo<EBDataFrame> uncalibMaker_barrel_; 00057 EcalUncalibRecHitRatioMethodAlgo<EEDataFrame> uncalibMaker_endcap_; 00058 }; 00059 00060 #endif