//Breit-Wigner + quadratic background function Double_t f(Double_t* x, Double_t* par) { //M=par[0], Gamma=par[1] Double_t A = 2* sqrt(2)*par[0]*par[1]*sqrt(par[0]*par[0]*(par[0]*par[0]+par[1]*par[1])); Double_t B = 3.14159* sqrt(par[0]*par[0] + sqrt(par[0]*par[0]*(par[0]*par[0]+par[1]*par[1]))); Double_t C = (x[0]*x[0]-par[0]*par[0])*(x[0]*x[0]-par[0]*par[0]) + par[0]*par[0]*par[1]*par[1]; Double_t BW = par[2]*(A/B)/C; Double_t pol2 = par[3] + par[4] * x[0] + par[5] * x[0] * x[0]; return BW+pol2; } void fit_GT_gamma_BW2() { TFile *f1 = new TFile("../Carbon_07192023_152610.root"); TH1F* hist = (TH1F*)f1->Get("hEgamma_dc_c_eff"); Float_t xmin = 430; Float_t xmax = 990; TF1 *fit_func = new TF1("fit_func",f,xmin,xmax,6); fit_func->SetParameter(0,700.0); fit_func->SetParameter(1,100.0); fit_func->SetParameter(2,1000.0); fit_func->SetParameter(3,1000.0); fit_func->SetParameter(4,-1.0); fit_func->SetParameter(5,0.009); hist->Fit("fit_func","R"); // Create a canvas for plotting TCanvas* canvas = new TCanvas("canvas", "Fitted Histogram", 800, 600); // Plot the histogram hist->Draw(); // Plot the fit function fit_func->SetLineColor(kRed); fit_func->Draw("same"); // Customize the plot appearance if needed gPad->SetGrid(); gStyle->SetOptFit(111); // Show fit statistics on the plot // Save the plot as an image (optional) canvas->SaveAs("fit_result.png"); }