N.B. this macro must be compiled with ACliC
****************************************
Minimizer is Minuit2 / Migrad
MinFCN = 131.104
NDf = 115
Edm = 2.11602e-08
NCalls = 225
Par_0 = 5.5396 +/- 0.0354094
Par_1 = 4.66089 +/- 0.050106
Par_2 = -0.0514037 +/- 0.00108539 (limited)
Par_3 = 77.2733 +/- 3.93105 (limited)
Par_4 = 30 (fixed)
Par_5 = 4.864 +/- 0.243005
int iparB[2] = {
0,
2
};
int iparSB[5] = {
1,
2,
3,
4,
5
};
struct GlobalChi2 {
{
double p1[2];
for (int i = 0; i < 2; ++i)
p1[i] = par[iparB[i]];
double p2[5];
for (int i = 0; i < 5; ++i)
p2[i] = par[iparSB[i]];
return (*fChi2_1)(p1) + (*fChi2_2)(p2);
}
};
{
TH1D *hB =
new TH1D(
"hB",
"histo B", 100, 0, 100);
TH1D *hSB =
new TH1D(
"hSB",
"histo S+B", 100, 0, 100);
TF1 *fB =
new TF1(
"fB",
"expo", 0, 100);
TF1 *fS =
new TF1(
"fS",
"gaus", 0, 100);
TF1 *fSB =
new TF1(
"fSB",
"expo + gaus(2)", 0, 100);
GlobalChi2 globalChi2(chi2_B, chi2_SB);
const int Npar = 6;
double par0[Npar] = {5, 5, -0.1, 100, 30, 10};
fitter.
FitFCN(6, globalChi2,
nullptr, dataB.Size() + dataSB.Size(),
true);
TCanvas *
c1 =
new TCanvas(
"Simfit",
"Simultaneous fit of two histograms", 10, 10, 700, 700);
}
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
TRObject operator()(const T1 &t1) const
R__EXTERN TStyle * gStyle
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
Chi2FCN class for binned fits using the least square methods.
class describing the range in the coordinates it supports multiple range in a coordinate.
void SetRange(unsigned int icoord, double xmin, double xmax)
set a range [xmin,xmax] for the new coordinate icoord If more range exists for other coordinates,...
void SetMinimizer(const char *type, const char *algo=nullptr)
set minimizer type
void SetParamsSettings(unsigned int npar, const double *params, const double *vstep=nullptr)
set the parameter settings from number of parameters and a vector of values and optionally step value...
const ParameterSettings & ParSettings(unsigned int i) const
get the parameter settings for the i-th parameter (const method)
ROOT::Math::MinimizerOptions & MinimizerOptions()
access to the minimizer control parameter (non const method)
class containing the result of the fit and all the related information (fitted parameter values,...
Fitter class, entry point for performing all type of fits.
const FitResult & Result() const
get fit result
const FitConfig & Config() const
access to the fit configuration (const method)
bool FitFCN(unsigned int npar, Function &fcn, const double *params=nullptr, unsigned int dataSize=0, bool chi2fit=false)
Fit using the a generic FCN function as a C++ callable object implementing double () (const double *)...
void SetStepSize(double err)
set the step size
void SetLimits(double low, double up)
set a double side limit, if low == up the parameter is fixed if low > up the limits are removed The c...
void Fix()
fix the parameter
Documentation for the abstract class IBaseFunctionMultiDim.
void SetPrintLevel(int level)
set print level
Class to Wrap a ROOT Function class (like TF1) in a IParamMultiFunction interface of multi-dimensions...
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual void SetRange(Double_t xmin, Double_t xmax)
Initialize the upper and lower bounds to draw the function.
virtual void SetParameters(const Double_t *params)
virtual void SetFitResult(const ROOT::Fit::FitResult &result, const Int_t *indpar=nullptr)
Set the result from the fit parameter values, errors, chi2, etc... Optionally a pointer to a vector (...
1-D histogram with a double per channel (see TH1 documentation)}
virtual void FillRandom(const char *fname, Int_t ntimes=5000, TRandom *rng=nullptr)
Fill histogram following distribution in function fname.
void Draw(Option_t *option="") override
Draw this histogram with options.
TList * GetListOfFunctions() const
void Add(TObject *obj) override
void SetOptFit(Int_t fit=1)
The type of information about fit parameters printed in the histogram statistics box can be selected ...
void FillData(BinData &dv, const TH1 *hist, TF1 *func=nullptr)
fill the data vector from a TH1.
DataOptions : simple structure holding the options on how the data are filled.