00001 #ifndef RecoLocalCalo_EcalRecAlgos_ESRecHitSimAlgo_HH 00002 #define RecoLocalCalo_EcalRecAlgos_ESRecHitSimAlgo_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 ESRecHitSimAlgo { 00013 00014 public: 00015 00016 ESRecHitSimAlgo(); 00017 ~ESRecHitSimAlgo(){} 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 void setW0(const double& value) { w0_ = value; } 00027 void setW1(const double& value) { w1_ = value; } 00028 void setW2(const double& value) { w2_ = value; } 00029 00030 double* EvalAmplitude(const ESDataFrame& digi, const double& ped, const double& w0, const double& w1, const double& w2) const; 00031 EcalRecHit reconstruct(const ESDataFrame& digi) const; 00032 00033 private: 00034 00035 int gain_; 00036 const ESPedestals *peds_; 00037 const ESIntercalibConstants *mips_; 00038 const ESChannelStatus *channelStatus_; 00039 const ESRecHitRatioCuts *ratioCuts_; 00040 const ESAngleCorrectionFactors *ang_; 00041 double w0_; 00042 double w1_; 00043 double w2_; 00044 double MIPGeV_; 00045 00046 }; 00047 00048 #endif