source: Sophya/trunk/SophyaExt/MinuitAdapt/minuitadapt.h@ 3076

Last change on this file since 3076 was 2404, checked in by cmv, 22 years ago

Creation du module (MinuitAdapt) d'adaptation de MINUIT pour Sophya

cmv 11/06/2003

File size: 2.5 KB
Line 
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
9namespace SOPHYA {
10
11class MinuitAdapt {
12public:
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
71protected:
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
Note: See TracBrowser for help on using the repository browser.