00001 #ifndef RecoLocalCalo_EcalRecAlgos_ESRecHitFitAlgo_HH 00002 #define RecoLocalCalo_EcalRecAlgos_ESRecHitFitAlgo_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 #include "TF1.h" 00013 00014 class ESRecHitFitAlgo { 00015 00016 public: 00017 00018 ESRecHitFitAlgo(); 00019 ~ESRecHitFitAlgo(); 00020 00021 void setESGain(const double& value) { gain_ = value; } 00022 void setMIPGeV(const double& value) { MIPGeV_ = value; } 00023 void setPedestals(const ESPedestals* peds) { peds_ = peds; } 00024 void setIntercalibConstants(const ESIntercalibConstants* mips) { mips_ = mips; } 00025 void setChannelStatus(const ESChannelStatus* status) { channelStatus_ = status; } 00026 void setRatioCuts(const ESRecHitRatioCuts* ratioCuts) { ratioCuts_ = ratioCuts; } 00027 void setAngleCorrectionFactors(const ESAngleCorrectionFactors* ang) { ang_ = ang; } 00028 double* EvalAmplitude(const ESDataFrame& digi, double ped) const; 00029 EcalRecHit reconstruct(const ESDataFrame& digi) const; 00030 00031 private: 00032 00033 TF1 *fit_; 00034 double gain_; 00035 const ESPedestals *peds_; 00036 const ESIntercalibConstants *mips_; 00037 const ESChannelStatus *channelStatus_; 00038 const ESRecHitRatioCuts *ratioCuts_; 00039 const ESAngleCorrectionFactors *ang_; 00040 double MIPGeV_; 00041 00042 }; 00043 00044 #endif