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)
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 ...