[2404] | 1 | // This may look like C code, but it is really -*- C++ -*-
|
---|
| 2 | #ifndef MINUITADAPT_SEEN
|
---|
| 3 | #define MINUITADAPT_SEEN
|
---|
| 4 |
|
---|
| 5 | #include "machdefs.h"
|
---|
| 6 | #include "tvector.h"
|
---|
| 7 | #include "tmatrix.h"
|
---|
| 8 |
|
---|
| 9 | namespace SOPHYA {
|
---|
| 10 |
|
---|
| 11 | class MinuitAdapt {
|
---|
| 12 | public:
|
---|
| 13 | MinuitAdapt(void (*myfcn)(int_4 *,double *,double *,double *,int_4 *,double (*f)(double *))
|
---|
| 14 | ,double (*myfutils)(double *)=NULL);
|
---|
| 15 | virtual ~MinuitAdapt(void);
|
---|
| 16 |
|
---|
| 17 | void SetTitle(char* title);
|
---|
| 18 | void Clear(void);
|
---|
| 19 | void Return(void);
|
---|
| 20 |
|
---|
| 21 | void PrintLevel(int_4 n=1);
|
---|
| 22 | void SetWidthPage(int_4 n=120);
|
---|
| 23 | void SetWarnings(bool w=true);
|
---|
| 24 | void SetErrorDef(double err=1.);
|
---|
| 25 | void SetEpsMachine(double eps=1.e-13);
|
---|
| 26 | void SetStrategy(int_4 n=1);
|
---|
| 27 | void SetGradient(int_4 n=-1);
|
---|
| 28 | void SetRandom(int_4 seed);
|
---|
| 29 |
|
---|
| 30 | void DefineParameter(int_4 n,char* name,double init,double step
|
---|
| 31 | ,double vmin=0.,double vmax=0.);
|
---|
| 32 | void SetParameter(int_4 n,double val);
|
---|
| 33 | void SetLimits(int_4 n,double val1=0.,double val2=0.);
|
---|
| 34 | void SetFix(int_4 n);
|
---|
| 35 | void Release(int_4 n);
|
---|
| 36 | void Restore(bool only_last_fixed=false);
|
---|
| 37 |
|
---|
| 38 | void DoFit(char *method="MIGRAD",int_4 maxcall=9999999,double tol=0.1);
|
---|
| 39 | inline void Migrad(int_4 maxcall=9999999,double tol=0.1)
|
---|
| 40 | {DoFit("MIGRAD",maxcall,tol);}
|
---|
| 41 | inline void Minimize(int_4 maxcall=-1,double tol=0.1)
|
---|
| 42 | {DoFit("MINIMIZE",maxcall,tol);}
|
---|
| 43 | inline void Simplex(int_4 maxcall=9999999,double tol=0.1)
|
---|
| 44 | {DoFit("SIMPLEX",maxcall,tol);}
|
---|
| 45 | void Improve(int_4 maxcall=9999999);
|
---|
| 46 | void Hesse(int_4 maxcall=9999999);
|
---|
| 47 | void Minos(int_4 maxcall=9999999);
|
---|
| 48 | void Seek(int_4 maxcall=9999999,double stdev=3.);
|
---|
| 49 |
|
---|
| 50 | void Call(int_4 iflag);
|
---|
| 51 | void DrawContour(int_4 n1,int_4 n2,int_4 npts=25);
|
---|
| 52 | int_4 GetContour(int_4 n1,int_4 n2,int_4 npts
|
---|
| 53 | ,TVector<r_8>& xpt,TVector<r_8>& ypt);
|
---|
| 54 | void Scan(int_4 n,double from,double to,int_4 npts=25);
|
---|
| 55 |
|
---|
| 56 | void ShowParameter(void);
|
---|
| 57 | void ShowRandom(void);
|
---|
| 58 | void ShowFcnValue(void);
|
---|
| 59 | void ShowCovariance(void);
|
---|
| 60 | void ShowCorrelations(void);
|
---|
| 61 | void ShowEigenValues(void);
|
---|
| 62 |
|
---|
| 63 | inline int_4 NPar(void) {return mNPar;}
|
---|
| 64 | inline int_4 ErrFlag(void) {return iErFlg;}
|
---|
| 65 | void GetParameter(int_4 n,string& name,double& val,double& err
|
---|
| 66 | ,double& bound1,double& bound2,int_4& ivarbl);
|
---|
| 67 | void GetErrors(int_4 n,double& eplus,double& eminus
|
---|
| 68 | ,double& eparab,double& globcc);
|
---|
| 69 | TMatrix<r_8> GetErrorsMatrix(void);
|
---|
| 70 |
|
---|
| 71 | protected:
|
---|
| 72 | int_4 mNPar,iErFlg;
|
---|
| 73 | void (*fcn)(int_4 *,double *,double *,double *,int_4 *,double (*f)(double *));
|
---|
| 74 | double (*futils)(double *);
|
---|
| 75 | };
|
---|
| 76 |
|
---|
| 77 | } // Fin du namespace
|
---|
| 78 |
|
---|
| 79 | #endif
|
---|