int null_fit() { double xdata[11] = {1.49E-01, 3.32E-01, 7.40E-01, 1.65E+00, 3.67E+00, 8.17E+00, 1.82E+01, 5.17E+01, 8.03E+01, 1.24E+02, 1.93E+02}; double ydata[11] = {6.19E-09, 1.62E-09, 3.83E-10, 9.51E-11, 1.08E-11, 3.90E-12, 4.95E-13, 3.82E-14, 8.69E-15, 1.47E-15, 6.67E-16}; double xerr_l[11] = {4.90E-02, 1.09E-01, 2.44E-01, 5.50E-01, 1.21E+00, 2.69E+00, 6.00E+00, 1.01E+01, 1.57E+01, 2.38E+01, 3.82E+01}; double xerr_r[11] = {7.40E-02, 1.64E-01, 3.60E-01, 8.10E-01, 1.81E+00, 4.03E+00, 9.00E+00, 1.29E+01, 1.97E+01, 3.08E+01, 4.73E+01}; double yerr_u[11] = {9.39E-10, 2.16E-10, 5.61E-11, 1.67E-11, 3.73E-12, 1.47E-12, 3.52E-13, 5.79E-15, 1.51E-15, 4.41E-16, 2.78E-16}; double yerr_d[11] = {9.39E-10, 2.16E-10, 5.61E-11, 1.67E-11, 3.73E-12, 1.47E-12, 3.52E-13, 5.79E-15, 1.51E-15, 4.41E-16, 2.78E-16}; // Canvas for plotting TCanvas *c1 = new TCanvas("c1","spectra"); c1->SetLogx(1); c1->SetLogy(1); // Plot graph TGraphAsymmErrors *gr = new TGraphAsymmErrors(11, xdata, ydata, xerr_l, xerr_r, yerr_u, yerr_d); gr->SetMarkerColor(4); gr->SetMarkerStyle(21); gr->Draw("AP"); Double_t xmin= xdata[0]; Double_t xmax = xdata[10]; // Define fit function //TF1 *f = new TF1("fun1", [=](double *x, double *p){ return (p[0] * TMath::Power(x[0]/1.0, -p[1]) * exp(-x[0]/p[2])); }, xmin, xmax, 3); TF1 *f = new TF1("fun2", [=](double *x, double *p){ return (p[0] * TMath::Power(x[0]/1.0, -p[1]) * exp(-1.0 * TMath::Power(x[0]/p[2], p[3]))); }, xmin, xmax, 4); //TF1 *f = new TF1("fun3", "[0] * (x/[1])**-[2]-[3]*log10(x/[1])", xmin, xmax); //f->SetParameters(1.0e-10, 2.0, 70.0); // for fun1 f->SetParameters(1.0e-10, 2.0, 10.0, 0.4); // for fun2 //f->SetParameters(1.0e-10, 1.0, 2.0, 0.1); // for fun3 gr->Fit(f, "WRQN"); // initial pre-fit gr->Fit(f, "R"); // final fit return 0; }