6 #include "TVirtualFitter.h"
12 QFitter::QFitter(QRoutinePointer funcpointer,
unsigned int NParameters,
double LowBound,
double UpBound):
QMathFunction(funcpointer,NParameters,LowBound,UpBound)
46 printf(
"%u ",(
unsigned int)p);
60 printf(
"%u ",(
unsigned int)p);
107 return Fit(data,errors,minfit,maxfit,binsize);
114 return Fit(data,errors,minfit,maxfit,binsize);
125 err.SetDescription(
"Fit range greater than function range");
136 size_t nPoints = data.
Size();
137 TH1D
histo(
"hQFitter",
"",nPoints,-binsize/2,nPoints*binsize-binsize/2);
138 for(
size_t i = 0; i < nPoints; i++) {
139 histo.SetBinContent(i+1,data[i]);
140 double error = errors[i];
141 if(error == 0.0) error = 1.0;
142 histo.SetBinError(i+1,error);
151 else fiterr =
histo.Fit(&f1,
"N R Q",
"",minfit,maxfit);
159 fParErr[p] = f1.GetParError(p);
162 for(
size_t i = 0; i < nPoints; i++) {
163 double x = binsize*i;
164 if(x < minfit || x > maxfit)
fResiduals[i] = 0.0;
173 err.SetDescription(
"Fit failed");
TH1D histo("histo","My histogram", 10,-5, 5)
#define Q_BEGIN_NAMESPACE
double min(const Diana::QVector &v)
error class with error type and description
void FixParameter(unsigned int p, double val)
fix parameter
void PrintResult()
print fitted parameters
void SetParameter(unsigned int p, double val, double min, double max)
set parameter and its range
void Print()
print parameters
static double RootRoutine(double *x, double *params)
function intercace used to fit with root
QError Fit(const QVector &data, double minfit, double maxfit, double binsize)
fit QVector between minfit and max fits
static const QMathFunction * fFunctionP
pointer to this fitting function
void SetTF1(TF1 &f1)
set parameters and ranges from TF1
QFitter(QRoutinePointer funcpointer, unsigned int NParameters, double LowBound, double UpBound)
constructor
generic C++ interface on static functions
size_t fNParameters
number of parameters
double fUpBound
high function bound
double Eval(double x) const
evaluate function
void SetParName(unsigned int p, const char *name)
set parameter name
std::vector< const char * > fParNames
parameters names
double fLowBound
low function bound
double * fParameters
array of parameters
virtual void SetTF1(TF1 &tf1)
set parameters from ROOT TF1
Interface for vectors in Diana analysis.
UInt_t Size() const
size of QVector
virtual void Clear()
clear the vector
void Resize(const UInt_t newsize)
resize a QVector
void Initialize(const double val=0)
initialize elements (default to 0)