00001 #ifndef _Q_PULSE_FITTER_HH_ 00002 #define _Q_PULSE_FITTER_HH_ 00003 00011 #include "QNamed.hh" 00012 #include "QError.hh" 00013 #include "QVector.hh" 00014 00015 using namespace Cuore; 00016 00017 class QPulseFitter : public QNamed { 00018 00019 public: 00021 QPulseFitter(std::string name); 00022 00024 virtual ~QPulseFitter() {} 00025 00027 virtual QError Initialize() = 0; 00028 00030 virtual QError Fit(const QVector& pulse) = 0; 00031 00033 const QVector& GetFittedPulse() {return fFittedPulse;} 00034 00036 const QVector& GetParameters() {return fParameters;} 00037 00039 const double& GetHeight() {return fHeight;} //in mV 00040 00042 const bool& GetIsFitted() {return fIsFitted;} 00043 00045 void SetDebug(bool fitdebug) {fFitDebug=fitdebug;}; 00046 00048 void SetVerbose(bool fitverbose) {fFitVerbose=fitverbose;}; 00049 00050 00051 00052 protected: 00054 QError fErr; 00056 QVector fFittedPulse; 00058 QVector fParameters; 00060 double fHeight; 00062 bool fIsFitted; 00064 bool fFitDebug; 00066 bool fFitVerbose; 00067 00068 }; 00069 00070 #endif