16 void vectorizedFit() {
18 gStyle->SetOptFit(111111);
21 ROOT::Math::MinimizerOptions::SetDefaultMinimizer(
"Minuit2");
24 auto h1 =
new TH1D(
"h1",
"h1",nbins,-3,3);
25 h1->FillRandom(
"gaus",nbins*50);
26 auto c1 =
new TCanvas(
"Fit",
"Fit",800,1000);
31 std::cout <<
"Doing Serial Gaussian Fit " << std::endl;
32 auto f1 =
new TF1(
"f1",
"gaus");
39 std::cout <<
"Doing Vectorized Gaussian Fit " << std::endl;
40 auto f2 =
new TF1(
"f2",
"gaus",-3,3,
"VEC");
49 h1->Scale(100./nbins);
50 ((TF1 *)h1->GetListOfFunctions()->At(0))->SetTitle(
"Chi2 Fit");
51 ((TF1 *)h1->GetListOfFunctions()->At(1))->SetTitle(
"Likelihood Fit");
52 ((TF1 *)h1->GetListOfFunctions()->At(1))->SetLineColor(kBlue);
57 auto f3 =
new TF1(
"f3",
"[A]*x^2+[B]*x+[C]",0,10);
58 f3->SetParameters(0.5,3,2);
61 auto h2 =
new TH1D(
"h2",
"h2",nbins,0,10);
62 h2->FillRandom(
"f3",10*nbins);
63 std::cout <<
"Doing Serial Polynomial Fit " << std::endl;
64 f3->SetParameters(2,2,2);
70 std::cout <<
"Doing Vectorized Polynomial Fit " << std::endl;
71 auto f4 =
new TF1(
"f4",
"[A]*x*x+[B]*x+[C]",0,10);
72 f4->SetVectorized(
true);
73 f4->SetParameters(2,2,2);
81 h2->Scale(100./nbins);
82 ((TF1 *)h2->GetListOfFunctions()->At(0))->SetTitle(
"Chi2 Fit");
83 ((TF1 *)h2->GetListOfFunctions()->At(1))->SetTitle(
"Likelihood Fit");
84 ((TF1 *)h2->GetListOfFunctions()->At(1))->SetLineColor(kBlue);