/// \file /// \ingroup tutorial_math /// \notebook /// Example of CrystalBall Function and its distribution (pdf and cdf) /// /// \macro_image /// \macro_code /// /// \author Lorenzo Moneta void CrystalBall() { auto c1 = new TCanvas(); c1->Divide(1,3); // crystal ball function c1->cd(1); auto f1 = new TF1("f1","crystalball",-5,5); f1->SetParameters(1, 0, 1, 2, 0.5); f1->SetLineColor(kRed); f1->Draw(); // use directly the functionin ROOT::MATH note that the parameters definition is different is (alpha, n sigma, mu) auto f2 = new TF1("f2","ROOT::Math::crystalball_function(x, 2, 1, 1, 0)",-5,5); f2->SetLineColor(kGreen); f2->Draw("same"); auto f3 = new TF1("f3","ROOT::Math::crystalball_function(x, 2, 2, 1, 0)",-5,5); f3->SetLineColor(kBlue); f3->Draw("same"); auto legend = new TLegend(0.7,0.6,0.9,1.); legend->AddEntry(f1,"N=0.5 alpha=2","L"); legend->AddEntry(f2,"N=1 alpha=2","L"); legend->AddEntry(f3,"N=2 alpha=2","L"); legend->Draw(); c1->cd(2); auto pdf1 = new TF1("pdf","crystalballn",-5,5); pdf1->SetParameters(2, 0, 1, 2, 3); pdf1->Draw(); auto pdf2 = new TF1("pdf","ROOT::Math::crystalball_pdf(x, 3, 1.01, 1, 0)",-5,5); pdf2->SetLineColor(kBlue); pdf2->Draw("same"); auto pdf3 = new TF1("pdf","ROOT::Math::crystalball_pdf(x, 2, 2, 1, 0)",-5,5); pdf3->SetLineColor(kGreen); pdf3->Draw("same"); legend = new TLegend(0.7,0.6,0.9,1.); legend->AddEntry(pdf1,"N=3 alpha=2","L"); legend->AddEntry(pdf2,"N=1.01 alpha=3","L"); legend->AddEntry(pdf3,"N=2 alpha=3","L"); legend->Draw(); c1->cd(3); auto cdf = new TF1("cdf","ROOT::Math::crystalball_cdf(x, 1.2, 2, 1, 0)",-5,5); auto cdfc = new TF1("cdfc","ROOT::Math::crystalball_cdf_c(x, 1.2, 2, 1, 0)",-5,5); cdf->SetLineColor(kRed-3); cdf->SetMinimum(0.); cdf->SetMaximum(1.); cdf->Draw(); cdfc->SetLineColor(kMagenta); cdfc->Draw("Same"); legend = new TLegend(0.7,0.7,0.9,1.); legend->AddEntry(cdf,"N=1.2 alpha=2","L"); legend->AddEntry(cdfc,"N=1.2 alpha=2","L"); legend->Draw(); }