FittingFunctionGaussianWithBackground.h

Go to the documentation of this file.
00001 // FittingFunctionGaussianWithBackground.h: interface for the FittingFunctionGaussianWithBackground class.
00002 //
00004 
00005 #if !defined(AFX_FITTINGFUNCTIONGAUSSIANWITHBACKGROUND_H__D5D48CC1_0CF7_4D31_93F4_43A21F7659E6__INCLUDED_)
00006 #define AFX_FITTINGFUNCTIONGAUSSIANWITHBACKGROUND_H__D5D48CC1_0CF7_4D31_93F4_43A21F7659E6__INCLUDED_
00007 
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011 
00012 #include "FittingFunction.h"
00013 
00014 #define SEARCH_LIMIT            1.0E-4
00015 #define NB_ITERATION_MAX        100
00016 
00017 //##ModelId=43849A020390
00018 class FittingFunctionGaussianWithBackground : public FittingFunction  
00019 {
00020 public:
00021         
00022         //##ModelId=43849A020392
00023         FittingFunctionGaussianWithBackground();
00024         //##ModelId=43849A02039F
00025         FittingFunctionGaussianWithBackground(long lNbIteration,double dLimitSearch);
00026         //##ModelId=43849A0203A2
00027         virtual ~FittingFunctionGaussianWithBackground();
00028 
00029         //##ModelId=43849A0203A4
00030         virtual PtrFunction                             getFunction() const;
00031         //##ModelId=43849A0203A6
00032         virtual PtrFunctionDerivate             getFunctionDerivate() const; 
00033         //##ModelId=43849A0203A8
00034         virtual PtrFunctionAndDerivate  getFunctionAndDerivate() const;
00035         
00036         //##ModelId=43849A0203AF
00037         static int Function                             (const gsl_vector *peak_params, void *calc_data, gsl_vector *func);
00038         //##ModelId=43849A0203B4
00039         static int FunctionDerivate             (const gsl_vector *peak_params, void *calc_data, gsl_matrix *Jacobian);
00040         //##ModelId=43849A0203B9
00041         static int FunctionAndDerivate  (const gsl_vector *peak_params, void *calc_data ,gsl_vector *func, gsl_matrix *Jacobian);
00042 
00043         //##ModelId=43849A0203C4
00044         virtual int doFit(long points, gsl_vector *x,gsl_vector *y,gsl_vector *sigma,gsl_vector *guess,  bool bEstimateGuess,int iSearchStoppingMethod=1, bool bUseScaled=true);
00045         //##ModelId=43849A0203D0
00046         virtual int generateFunctionFit(double dValMinX,double dResolutionX,long lNbPoints,gsl_vector* funcX,gsl_vector* funcY);
00047         
00048         virtual int generateFunctionFit(long lNbPoints, gsl_vector *x, gsl_vector* funcX,gsl_vector* funcY);
00049         
00050         //##ModelId=43849A0203D7
00051         void printState (size_t iter, gsl_multifit_fdfsolver * s);
00052         //##ModelId=43849A0203E0
00053         void printResults();
00054 
00055         double  computeValue(double dX,double dPosition, double dWidth, double dHeight, double dBackground);
00056         double  computeDerivateValue(double dX,double dPosition, double dWidth, double dHeight);
00057 
00058         void    initializeInitialsParameters(gsl_vector* vExperimentalDataX,gsl_vector* vExperimentalDataY,gsl_vector* vInitialGuess,bool bEstimate);
00059 
00060         virtual void    estimateInitialGuess(gsl_vector* vExperimentalDataX,gsl_vector* vExperimentalDataY);
00061 
00062         double  estimateInitialPosition(gsl_vector *vExperimentalDataX, gsl_vector *vExperimentalDataY);
00063         double  estimateInitialSigma(gsl_vector *vExperimentalDataX, gsl_vector *vExperimentalDataY);
00064         double  estimateInitialHeight(gsl_vector *vExperimentalDataX, gsl_vector *vExperimentalDataY);
00065         double  estimateInitialBackground(gsl_vector *vExperimentalDataX, gsl_vector *vExperimentalDataY);
00066 
00067         std::string     getEquation() const;
00068 };
00069 
00070 #endif // !defined(AFX_FITTINGFUNCTIONGAUSSIANWITHBACKGROUND_H__D5D48CC1_0CF7_4D31_93F4_43A21F7659E6__INCLUDED_)

Generated on Tue Apr 14 09:34:27 2009 for Data Fitting Library by  doxygen 1.4.5