00001 #ifndef RecoLocalCalo_EcalRecAlgos_ESRecHitAnalyticAlgo_HH 00002 #define RecoLocalCalo_EcalRecAlgos_ESRecHitAnalyticAlgo_HH 00003 00004 #include "DataFormats/EcalDigi/interface/ESDataFrame.h" 00005 #include "DataFormats/EcalRecHit/interface/EcalRecHit.h" 00006 #include "CondFormats/ESObjects/interface/ESPedestals.h" 00007 #include "CondFormats/ESObjects/interface/ESIntercalibConstants.h" 00008 #include "CondFormats/ESObjects/interface/ESChannelStatus.h" 00009 #include "CondFormats/ESObjects/interface/ESRecHitRatioCuts.h" 00010 #include "CondFormats/ESObjects/interface/ESAngleCorrectionFactors.h" 00011 00012 class ESRecHitAnalyticAlgo { 00013 00014 public: 00015 00016 ESRecHitAnalyticAlgo(); 00017 ~ESRecHitAnalyticAlgo(); 00018 00019 void setESGain(const double& value) { gain_ = value; } 00020 void setMIPGeV(const double& value) { MIPGeV_ = value; } 00021 void setPedestals(const ESPedestals* peds) { peds_ = peds; } 00022 void setIntercalibConstants(const ESIntercalibConstants* mips) { mips_ = mips; } 00023 void setChannelStatus(const ESChannelStatus* status) { channelStatus_ = status; } 00024 void setRatioCuts(const ESRecHitRatioCuts* ratioCuts) { ratioCuts_ = ratioCuts; } 00025 void setAngleCorrectionFactors(const ESAngleCorrectionFactors* ang) { ang_ = ang; } 00026 double* EvalAmplitude(const ESDataFrame& digi, double ped) const; 00027 EcalRecHit reconstruct(const ESDataFrame& digi) const; 00028 00029 private: 00030 00031 double gain_; 00032 const ESPedestals *peds_; 00033 const ESIntercalibConstants *mips_; 00034 const ESChannelStatus *channelStatus_; 00035 const ESRecHitRatioCuts *ratioCuts_; 00036 const ESAngleCorrectionFactors *ang_; 00037 double MIPGeV_; 00038 00039 }; 00040 00041 #endif