51double gauss2D(
double *
x,
double *par) {
54 return par[0]*exp(-0.5*(
z1*
z1+
z2*
z2));
80 int nbinX2 = h2->GetNbinsX();
81 int nbinY2 = h2->GetNbinsY();
87 for (
int ix = 1; ix <=
nbinX1; ++ix) {
88 x[0] =
xaxis1->GetBinCenter(ix);
89 for (
int iy = 1; iy <=
nbinY1; ++iy) {
91 x[1] =
yaxis1->GetBinCenter(iy);
98 for (
int ix = 1; ix <=
nbinX2; ++ix) {
99 x[0] =
xaxis2->GetBinCenter(ix);
100 for (
int iy = 1; iy <=
nbinY2; ++iy) {
101 if ( h2->GetBinError(ix,iy) > 0 ) {
102 x[1] =
yaxis2->GetBinCenter(iy);
116 const double mx1 =
p[1];
117 const double my1 =
p[3];
118 const double sx1 =
p[2];
119 const double sy1 =
p[4];
120 const double mx2 =
p[6];
121 const double my2 =
p[8];
122 const double sx2 =
p[7];
123 const double sy2 =
p[9];
125 const double w1 = 0.5;
128 for (
int i = 0; i <
n; ++i) {
169 double iniParams[10] = { 100, 6., 2., 7., 3, 100, 12., 3., 11., 2. };
194 std::cout <<
"Do global fit" << std::endl;
202 if (
option%10 == 2) fitter.
Config().SetMinimizer(
"Minuit2");
205 for (
int i = 0; i < 10; ++i) {
211 Error(
"fit2DHist",
"Fit Failed to converge");
218 for (
int i = 0; i < 10; ++i) {
223 double edm = fitter.
Result().Edm();
234 h2->GetListOfFunctions()->Add(func);
243 TCanvas *
c1 =
new TCanvas(
"c1",
"Two HIstogram Fit example",100,10,900,800);
262 func->
Draw(
"surf1 same");
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
winID h TVirtualViewer3D TVirtualGLPainter p
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 r
TRObject operator()(const T1 &t1) const
R__EXTERN TRandom * gRandom
R__EXTERN TStyle * gStyle
Fitter class, entry point for performing all type of fits.
const FitResult & Result() const
get fit result
bool FitFCN(unsigned int npar, Function &fcn, const double *params=nullptr, unsigned int dataSize=0, int fitType=0)
Fit using the a generic FCN function as a C++ callable object implementing double () (const double *)...
const FitConfig & Config() const
access to the fit configuration (const method)
bool SetFCN(unsigned int npar, Function &fcn, const double *params=nullptr, unsigned int dataSize=0, int fitType=0)
Set a generic FCN function as a C++ callable object implementing double () (const double *) Note that...
Class, describing value, limits and step size of the parameters Provides functionality also to set/re...
Class to manage histogram axis.
virtual void SetNDF(Int_t ndf)
Set the number of degrees of freedom ndf should be the number of points used in a fit - the number of...
virtual void SetChisquare(Double_t chi2)
virtual void SetParErrors(const Double_t *errors)
Set errors for all active parameters when calling this function, the array errors must have at least ...
virtual const char * GetParName(Int_t ipar) const
virtual void SetParameters(const Double_t *params)
virtual Double_t GetParameter(Int_t ipar) const
A 2-Dim function with parameters.
TF1 * DrawCopy(Option_t *option="") const override
Draw a copy of this function with its current attributes-*.
void Draw(Option_t *option="") override
Draw this function with its current attributes.
void SetRange(Double_t xmin, Double_t xmax) override
Initialize the upper and lower bounds to draw the function.
virtual Int_t GetNbinsY() const
virtual Double_t GetBinError(Int_t bin) const
Return value of error associated to bin number bin.
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
Fit histogram with function fname.
virtual Int_t GetNbinsX() const
void Draw(Option_t *option="") override
Draw this histogram with options.
TList * GetListOfFunctions() const
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
2-D histogram with a double per channel (see TH1 documentation)
void Add(TObject *obj) override
Double_t Rndm() override
Machine independent random number generator.
virtual void Rannor(Float_t &a, Float_t &b)
Return 2 numbers distributed following a gaussian with mean=0 and sigma=1.
void SetStatY(Float_t y=0)
void SetOptFit(Int_t fit=1)
The type of information about fit parameters printed in the histogram statistics box can be selected ...