Diana Software
QFitter.hh
Go to the documentation of this file.
1 #ifndef _Q_FITTER_HH_
2 #define _Q_FITTER_HH_
3 
11 #include "QError.hh"
12 #include "QDiana.hh"
13 #include "QVector.hh"
14 #include "QMathFunction.hh"
15 
17 
18 class QFitter : public QMathFunction
19 {
20  public:
21 
23  #ifndef __CINT__
24  QFitter(QRoutinePointer funcpointer, unsigned int NParameters, double LowBound, double UpBound);
25  #endif
26 
28  QFitter(const QMathFunction& func);
29 
31  ~QFitter();
32 
34  void SetParameter(unsigned int p, double val, double min, double max);
35 
37  void SetParameter(unsigned int p, const char* name, double val, double min, double max);
38 
40  void FixParameter(unsigned int p, double val);
41 
43  void FixParameter(unsigned int p, const char* name, double val);
44 
46  void Print();
47 
49  void PrintResult();
50 
52  QError Fit(const QVector& data, double minfit, double maxfit, double binsize);
53 
56  QError Fit(const QVector& data, double error, double minfit, double maxfit, double binsize);
57 
63  QError Fit(const QVector& data, const QVector& errors, double minfit, double maxfit, double binsize);
64 
67 
70 
72  double GetChiSquare() {return fChiSquare;}
73 
75  void SetTF1(TF1& f1);
76 
77  private:
78 
80  static double RootRoutine(double* x, double* params);
81 
83  static const QMathFunction* fFunctionP;
84 
85  double* fParMin;
86  double* fParMax;
87  double* fParErr;
88  bool* fIsFixed;
89 
92  double fChiSquare;
93 
94 };
95 
97 
98 #endif
double max
Definition: CheckOF.C:53
#define Q_END_NAMESPACE
Definition: QDiana.hh:22
#define Q_BEGIN_NAMESPACE
Definition: QDiana.hh:20
double min(const Diana::QVector &v)
Definition: QVector.cc:878
error class with error type and description
Definition: QError.hh:115
fitter
Definition: QFitter.hh:19
void FixParameter(unsigned int p, double val)
fix parameter
Definition: QFitter.cc:85
QVector fResiduals
Definition: QFitter.hh:90
void PrintResult()
print fitted parameters
Definition: QFitter.cc:54
double fChiSquare
Definition: QFitter.hh:92
QVector fErrors
Definition: QFitter.hh:91
QMathFunction GetFittedFunction()
Get fitted function.
bool * fIsFixed
Definition: QFitter.hh:88
void SetParameter(unsigned int p, double val, double min, double max)
set parameter and its range
Definition: QFitter.cc:68
double GetChiSquare()
Get chi square over NDOF.
Definition: QFitter.hh:72
void Print()
print parameters
Definition: QFitter.cc:40
static double RootRoutine(double *x, double *params)
function intercace used to fit with root
Definition: QFitter.cc:98
double * fParErr
Definition: QFitter.hh:87
QError Fit(const QVector &data, double minfit, double maxfit, double binsize)
fit QVector between minfit and max fits
Definition: QFitter.cc:103
QVector & GetResiduals()
Get residuals.
Definition: QFitter.hh:69
static const QMathFunction * fFunctionP
pointer to this fitting function
Definition: QFitter.hh:83
~QFitter()
destructor
Definition: QFitter.cc:33
double * fParMin
Definition: QFitter.hh:85
double * fParMax
Definition: QFitter.hh:86
void SetTF1(TF1 &f1)
set parameters and ranges from TF1
Definition: QFitter.cc:179
QFitter(QRoutinePointer funcpointer, unsigned int NParameters, double LowBound, double UpBound)
constructor
Definition: QFitter.cc:12
generic C++ interface on static functions
double(* QRoutinePointer)(double, double *params)
pointer to function
Interface for vectors in Diana analysis.
Definition: QVector.hh:30