JG ROOT Tools libraries  version 5.0 - august 2014
RFitDataBase.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file RFitDataBase.hh
3  *
4  * Include file for class RFitDataBase
5  */
6 //======================================================================
7 
8 #ifndef R_FIT_BASE_DATA_HH
9 #define R_FIT_BASE_DATA_HH
10 
11 #include "RBase.hh"
12 
13 ///! Maximum number of fit parameters
14 #define RFIT_MAX_PAR 50
15 
16 /*! Fit options namespace.*/
17 namespace RFitOptions
18 {
19  ///! Global option for uncertainties normalisation with normalised Chi2.
20  static const u_int modeErrNorm = 0x00000001;
21 }
22 
23 
24 /*! Fit modes namespace.*/
25 namespace RFitModes
26 {
27  static const int fitChi2 = 0; ///< Chi2 minimisation fit
28  static const int fitLikelyhood = 1; ///< Maximum likelyhood fit
29 }
30 
31 //======================================================================
32 /*! \class RFitDataBase
33  *
34  * Base data, fit conditions and results (parameters, errors,...) for fits.
35  *
36  * The class does not define functions to change fit results, but
37  * it can change fit options, for use in a new fit initialisation.
38  */
40 {
41  //------------------------------------------------------------
42  /*! \object_doc{RFitDataBase} */
44  //------------------------------------------------------------
45 
46  protected:
47  UInt_t fit_options; ///< Fit options
48  Int_t fit_mode; ///< Fit mode (Chi2 or Log-likelyhood)
49 
50  Int_t fit_result; ///< Fit result
51  Double_t fit_chi2; ///< Chi2
52  Int_t fit_ndf; ///< Number of degrees of freedom
53  Double_t fit_fcn; ///< Minimized function value (FCN)
54  Double_t fit_edm; ///< Estimated distance to minimum
55  Double_t fit_err_def; ///< Error matrix status
56 
57  Int_t par_number; ///< Number of fit parameters (total)
58 
59  Double_t par_val[RFIT_MAX_PAR]; ///< Parameters values
60  Double_t par_err[RFIT_MAX_PAR]; ///< Uncertainties values
61  bool par_fix[RFIT_MAX_PAR]; ///< Fix parameters
62  Double_t par_cov[RFIT_MAX_PAR][RFIT_MAX_PAR]; ///< Covariance matrix
63 
64  //------------------------------------------------------------
65  // Constructors / affectation / destructor
66  public:
67  RFitDataBase ( );
68  RFitDataBase ( const RFitDataBase & original );
69 
70  RFitDataBase & operator = ( const RFitDataBase & original );
71 
72  virtual ~RFitDataBase ( );
73 
74  //------------------------------------------------------------
75  virtual void Reset ( );
76 
77  virtual UInt_t GetFitOptions ( ) const; // inline
78  virtual Int_t GetFitMode ( ) const; // inline
79  virtual Int_t GetParNumber ( ) const; // inline
80  virtual Int_t GetFixNumber ( ) const;
81 
82  virtual Double_t GetParValue ( const Int_t p ) const;
83  virtual Double_t GetParError ( const Int_t p ) const;
84  virtual Double_t GetCovariance ( const Int_t p, const Int_t q ) const;
85  virtual bool IsFixParameter ( const Int_t p ) const;
86 
87  virtual Int_t GetFitResult ( ) const;
88  virtual Double_t GetFitChi2 ( ) const;
89  virtual Int_t GetFitNDF ( ) const;
90  virtual Double_t GetFitFCN ( ) const;
91  virtual Double_t GetFitEDM ( ) const;
92  virtual Double_t GetFitErrDef ( ) const;
93 
94  //------------------------------------------------------------
95  protected:
96  virtual Int_t WriteData ( FILE * fp ) const;
97  static Int_t ReadData ( FILE * fp, RFitDataBase & fdata );
98 
99  public:
100  /*! Save fit data to file (see derived classes).
101  * \param fname file name*/
102  virtual Int_t SaveFitData ( const string &fname ) const = 0;
103 
104  /*! Load fit data from file (see derived classes).
105  * \param fname file name*/
106  virtual Int_t LoadFitData ( const string &fname ) = 0;
107 
108  //------------------------------------------------------------
109  /*! For ROOT dictionary.*/
110  public:
112 };
113 
114 //----------------------------------------------------------------------
115 // Inline functions
116 #include "icc/RFitDataBase.icc"
117 
118 //======================================================================
119 #endif
Double_t par_err[50]
Uncertainties values.
Definition: RFitDataBase.hh:60
virtual Int_t GetFixNumber() const
Definition: RFitDataBase.cpp:135
virtual UInt_t GetFitOptions() const
Definition: RFitDataBase.icc:9
#define RFIT_MAX_PAR
! Maximum number of fit parameters
Definition: RFitDataBase.hh:14
ClassDef(RFitDataBase, 0)
RFitDataBase()
Definition: RFitDataBase.cpp:15
Double_t par_cov[50][50]
Covariance matrix.
Definition: RFitDataBase.hh:62
Int_t par_number
Number of fit parameters (total)
Definition: RFitDataBase.hh:57
Definition: RFitDataBase.hh:39
virtual bool IsFixParameter(const Int_t p) const
Definition: RFitDataBase.icc:71
static const u_int modeErrNorm
! Global option for uncertainties normalisation with normalised Chi2.
Definition: RFitDataBase.hh:20
virtual Int_t SaveFitData(const string &fname) const =0
virtual ~RFitDataBase()
Definition: RFitDataBase.cpp:101
Double_t fit_edm
Estimated distance to minimum.
Definition: RFitDataBase.hh:54
virtual Double_t GetParError(const Int_t p) const
Definition: RFitDataBase.icc:39
virtual Double_t GetFitEDM() const
Definition: RFitDataBase.icc:108
Int_t fit_mode
Fit mode (Chi2 or Log-likelyhood)
Definition: RFitDataBase.hh:48
virtual Double_t GetFitFCN() const
Definition: RFitDataBase.icc:104
GObjectV(RFitDataBase)
virtual Int_t LoadFitData(const string &fname)=0
static const int fitChi2
Chi2 minimisation fit.
Definition: RFitDataBase.hh:27
virtual Int_t WriteData(FILE *fp) const
Definition: RFitDataBase.cpp:155
Double_t fit_chi2
Chi2.
Definition: RFitDataBase.hh:51
static const int fitLikelyhood
Maximum likelyhood fit.
Definition: RFitDataBase.hh:28
Int_t fit_result
Fit result.
Definition: RFitDataBase.hh:50
Double_t par_val[50]
Parameters values.
Definition: RFitDataBase.hh:59
virtual Int_t GetFitMode() const
Definition: RFitDataBase.icc:13
Int_t fit_ndf
Number of degrees of freedom.
Definition: RFitDataBase.hh:52
Double_t fit_fcn
Minimized function value (FCN)
Definition: RFitDataBase.hh:53
virtual Int_t GetFitResult() const
Definition: RFitDataBase.icc:91
virtual Double_t GetFitErrDef() const
Definition: RFitDataBase.icc:112
RFitDataBase & operator=(const RFitDataBase &original)
Definition: RFitDataBase.cpp:69
static Int_t ReadData(FILE *fp, RFitDataBase &fdata)
Definition: RFitDataBase.cpp:203
bool par_fix[50]
Fix parameters.
Definition: RFitDataBase.hh:61
virtual Int_t GetFitNDF() const
Definition: RFitDataBase.icc:100
virtual void Reset()
Definition: RFitDataBase.cpp:111
UInt_t fit_options
Fit options.
Definition: RFitDataBase.hh:47
virtual Int_t GetParNumber() const
Definition: RFitDataBase.icc:17
virtual Double_t GetFitChi2() const
Definition: RFitDataBase.icc:96
virtual Double_t GetCovariance(const Int_t p, const Int_t q) const
Definition: RFitDataBase.icc:55
virtual Double_t GetParValue(const Int_t p) const
Definition: RFitDataBase.icc:23
Double_t fit_err_def
Error matrix status.
Definition: RFitDataBase.hh:55