Doing Serial Gaussian Fit
****************************************
Minimizer is Minuit2 / Migrad
Chi2 = 40217.9
NDf = 39409
Edm = 3.38976e-08
NCalls = 75
Constant = 120.018 +/- 0.105817
Mean = 0.00114402 +/- 0.000709328
Sigma = 0.979817 +/- 0.000519995 (limited)
****************************************
Minimizer is Minuit2 / Migrad
MinFCN = 20355.3
Chi2 = 45321.3
NDf = 39997
Edm = 8.97826e-10
NCalls = 65
Constant = 120.024 +/- 0.105551
Mean = 0.000138332 +/- 0.000716607
Sigma = 0.99985 +/- 0.000537073 (limited)
Real time 0:00:00, CP time 0.500
Doing Vectorized Gaussian Fit
****************************************
Minimizer is Minuit2 / Migrad
Chi2 = 40217.9
NDf = 39409
Edm = 3.38976e-08
NCalls = 75
Constant = 120.018 +/- 0.105817
Mean = 0.00114402 +/- 0.000709328
Sigma = 0.979817 +/- 0.000519995 (limited)
****************************************
Minimizer is Minuit2 / Migrad
MinFCN = 20355.3
Chi2 = 45321.3
NDf = 39997
Edm = 8.97826e-10
NCalls = 65
Constant = 120.024 +/- 0.105551
Mean = 0.000138332 +/- 0.000716607
Sigma = 0.99985 +/- 0.000537073 (limited)
Real time 0:00:00, CP time 0.390
Doing Serial Polynomial Fit
****************************************
Minimizer is Minuit2 / Migrad
Chi2 = 37690
NDf = 38075
Edm = 3.47827e-15
NCalls = 72
A = 0.202001 +/- 0.00176461
B = 0.268032 +/- 0.0153893
C = 1.05504 +/- 0.0248331
****************************************
Minimizer is Minuit2 / Migrad
MinFCN = 20527.5
Chi2 = 48394.2
NDf = 39997
Edm = 8.16351e-08
NCalls = 90
A = 0.149763 +/- 0.00165111
B = 0.880262 +/- 0.0135143
C = 0.6066 +/- 0.0181308
Real time 0:00:00, CP time 0.330
Doing Vectorized Polynomial Fit
****************************************
Minimizer is Minuit2 / Migrad
Chi2 = 37690
NDf = 38075
Edm = 3.15424e-16
NCalls = 70
A = 0.202001 +/- 0.00176461
B = 0.268032 +/- 0.0153893
C = 1.05504 +/- 0.0248331
****************************************
Minimizer is Minuit2 / Migrad
MinFCN = 20527.5
Chi2 = 48394.2
NDf = 39997
Edm = 8.16253e-08
NCalls = 90
A = 0.149763 +/- 0.0016511
B = 0.880262 +/- 0.0135143
C = 0.6066 +/- 0.0181308
Real time 0:00:00, CP time 0.310
void vectorizedFit() {
int nbins = 40000;
auto h1 =
new TH1D(
"h1",
"h1",nbins,-3,3);
std::cout << "Doing Serial Gaussian Fit " << std::endl;
auto f1 =
new TF1(
"f1",
"gaus");
std::cout << "Doing Vectorized Gaussian Fit " << std::endl;
auto f2 =
new TF1(
"f2",
"gaus",-3,3,
"VEC");
auto f3 =
new TF1(
"f3",
"[A]*x^2+[B]*x+[C]",0,10);
f3->SetParameters(0.5,3,2);
f3->SetNpx(nbins*10);
auto h2 =
new TH1D(
"h2",
"h2",nbins,0,10);
h2->FillRandom("f3",10*nbins);
std::cout << "Doing Serial Polynomial Fit " << std::endl;
f3->SetParameters(2,2,2);
h2->Fit(f3);
h2->Fit(f3,"L+");
std::cout << "Doing Vectorized Polynomial Fit " << std::endl;
auto f4 =
new TF1(
"f4",
"[A]*x*x+[B]*x+[C]",0,10);
f4->SetVectorized(true);
f4->SetParameters(2,2,2);
h2->Fit(f4);
h2->Fit(f4,"L+");
h2->Rebin(nbins/100);
h2->Scale(100./nbins);
((
TF1 *)h2->GetListOfFunctions()->At(0))->SetTitle(
"Chi2 Fit");
((
TF1 *)h2->GetListOfFunctions()->At(1))->SetTitle(
"Likelihood Fit");
}
R__EXTERN TStyle * gStyle
static void SetDefaultMinimizer(const char *type, const char *algo=0)
virtual void SetNpx(Int_t npx=100)
Set the number of points used to draw the function.
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.
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.
TList * GetListOfFunctions() const
virtual void Scale(Double_t c1=1, Option_t *option="")
Multiply this histogram by a constant c1.
virtual TH1 * Rebin(Int_t ngroup=2, const char *newname="", const Double_t *xbins=0)
Rebin this histogram.
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
void Start(Bool_t reset=kTRUE)
Start the stopwatch.
void Print(Option_t *option="") const
Print the real and cpu time passed between the start and stop events.
void SetOptFit(Int_t fit=1)
The type of information about fit parameters printed in the histogram statistics box can be selected ...