QLogNormExpFit.hh
00001 #ifndef _Q_LOGNORMEXPFIT_HH_
00002 #define _Q_LOGNORMEXPFIT_HH_
00003
00011 #include "QPulseFitter.hh"
00012
00013
00014 class TH1D;
00015
00016 class QLogNormExpFit : public QPulseFitter {
00017 public:
00019 QLogNormExpFit();
00020
00021 ~QLogNormExpFit() {};
00022
00024 QError Initialize();
00025
00027 QError Fit(const QVector& pulse);
00028
00030 QVector& GetResiduals() {return fResiduals;};
00031
00033 int* GetFitArrows() {return fArrows;};
00034
00036 int* GetConstrain() {return &fConstrain;}
00037
00039 double* GetGoodness() {return &fGoodness;}
00040
00041
00042 private:
00043 void ComputeBaseStat(const QVector& pulse, int first);
00044 void ComputeFitEnd(const QVector& pulse, size_t meansize, double peakperc);
00045 int ComputeExpRange(const QVector& pulse, int bufsize, double peakperc, double fastpeakperc);
00046 int ComputeLgnStart(const QVector& pulse, int bufsize);
00047 void ComputeExpParams(const QVector& pulse);
00048 bool ComputeLgnParams(const QVector& pulse);
00049
00050 double fBaseline;
00051 double fRMS;
00052 double fPeakHeight;
00053 double fLgn_m;
00054 double fLgn_s;
00055 double fLgn_A;
00056 double fExp_A;
00057 double fExp_b;
00058 double fExp_b_MAX;
00059 double fGoodness;
00060 double fChiSquare;
00061 int fConstrain;
00062
00063 int fFitStart;
00064 int fFitEnd;
00065 int fExpStart;
00066 int fExpEnd;
00067 int fLgnStart;
00068
00069 QVector fResiduals;
00070 int fArrows[6];
00071 int fFastStatus;
00072
00073 size_t fNPoints;
00074
00075 };
00076
00077 #endif