Simple fitting example (1-d histogram with an interpreted function)
Formula based function: sqroot
sqroot : x*gaus(0) + [3]*form1 Ndim= 1, Npar= 4, Number= 0
Formula expression:
x*[p0]*exp(-0.5*((x-[p1])/[p2])*((x-[p1])/[p2]))+[p3]*(abs(sin(x)/x))
****************************************
Minimizer is Minuit2 / Migrad
Chi2 = 198.935
NDf = 190
Edm = 1.49283e-07
NCalls = 149
p0 = 33.1658 +/- 0.545703
p1 = 4.00667 +/- 0.0165304
p2 = 0.984663 +/- 0.0128238
p3 = 63.4464 +/- 1.33233
void fit1() {
c1->GetFrame()->SetFillColor(21);
c1->GetFrame()->SetBorderMode(-1);
c1->GetFrame()->SetBorderSize(5);
TF1 *sqroot =
new TF1(
"sqroot",
"x*gaus(0) + [3]*form1", 0.0, 10.0);
TH1D *h1d =
new TH1D(
"h1d",
"Test random numbers", 200, 0.0, 10.0);
fitlabel->SetTextAlign(12);
fitlabel->SetFillColor(42);
fitlabel->ReadFile(
Form(
"%sfit1_C.txt", dir.
Data()));
fitlabel->Draw();
}
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
void Print(Option_t *option="") const override
This method must be overridden when a class wants to print itself.
virtual void SetParameters(const Double_t *params)
1-D histogram with a double per channel (see TH1 documentation)
virtual void FillRandom(TF1 *f1, Int_t ntimes=5000, TRandom *rng=nullptr)
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.
const char * Data() const
TString & Append(const char *cs)
- Author
- Rene Brun
Definition in file fit1.C.