00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef ROOT_TFitter
00012 #define ROOT_TFitter
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef ROOT_TVirtualFitter
00025 #include "TVirtualFitter.h"
00026 #endif
00027
00028 class TMinuit;
00029
00030 class TFitter : public TVirtualFitter {
00031
00032 private:
00033 Int_t fNlog;
00034 Double_t *fCovar;
00035 Double_t *fSumLog;
00036 TMinuit *fMinuit;
00037
00038 TFitter(const TFitter&);
00039 TFitter& operator=(const TFitter&);
00040
00041 public:
00042 TFitter(Int_t maxpar = 25);
00043 virtual ~TFitter();
00044 virtual Double_t Chisquare(Int_t npar, Double_t *params) const ;
00045 virtual void Clear(Option_t *option="");
00046 virtual Int_t ExecuteCommand(const char *command, Double_t *args, Int_t nargs);
00047 virtual void FitChisquare(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag);
00048 virtual void FitChisquareI(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag);
00049 virtual void FitLikelihood(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag);
00050 virtual void FitLikelihoodI(Int_t &npar, Double_t *gin, Double_t &f, Double_t *u, Int_t flag);
00051 virtual void FixParameter(Int_t ipar);
00052 virtual void GetConfidenceIntervals(Int_t n, Int_t ndim, const Double_t *x, Double_t *ci, Double_t cl=0.95);
00053 virtual void GetConfidenceIntervals(TObject *obj, Double_t cl=0.95);
00054 virtual Double_t *GetCovarianceMatrix() const;
00055 virtual Double_t GetCovarianceMatrixElement(Int_t i, Int_t j) const;
00056 virtual Int_t GetErrors(Int_t ipar,Double_t &eplus, Double_t &eminus, Double_t &eparab, Double_t &globcc) const;
00057 TMinuit *GetMinuit() const {return fMinuit;}
00058 virtual Int_t GetNumberTotalParameters() const;
00059 virtual Int_t GetNumberFreeParameters() const;
00060 virtual Double_t GetParError(Int_t ipar) const;
00061 virtual Double_t GetParameter(Int_t ipar) const;
00062 virtual Int_t GetParameter(Int_t ipar,char *name,Double_t &value,Double_t &verr,Double_t &vlow, Double_t &vhigh) const;
00063 virtual const char *GetParName(Int_t ipar) const;
00064 virtual Int_t GetStats(Double_t &amin, Double_t &edm, Double_t &errdef, Int_t &nvpar, Int_t &nparx) const;
00065 virtual Double_t GetSumLog(Int_t i);
00066 virtual Bool_t IsFixed(Int_t ipar) const;
00067 virtual void PrintResults(Int_t level, Double_t amin) const;
00068 virtual void ReleaseParameter(Int_t ipar);
00069 virtual void SetFCN(void *fcn);
00070 virtual void SetFCN(void (*fcn)(Int_t &, Double_t *, Double_t &f, Double_t *, Int_t));
00071 virtual void SetFitMethod(const char *name);
00072 virtual Int_t SetParameter(Int_t ipar,const char *parname,Double_t value,Double_t verr,Double_t vlow, Double_t vhigh);
00073
00074 ClassDef(TFitter,0)
00075 };
00076
00077 #endif