#include "TH1.h" #include "TF1.h" #include "TLegend.h" #include "TCanvas.h" void fit_pgp() { TCanvas *c1 = new TCanvas("n1", "T1"); c1->SetFillStyle(4000); c1->SetFillColor(kWhite); c1->SetBorderMode(0); c1->SetBorderSize(0); c1->SetFrameFillColor(10); c1->SetFrameFillStyle(0); gStyle->SetOptStat("nem"); gStyle->SetOptFit(1111); const Int_t n = 50000; Int_t cont8 = 0; ifstream in8; in8.open("file2.txt"); Float_t mmk_h_mc[n], mmk_h_mc_e[n], events[n], events_e[n]; while (in8) { in8 >> mmk_h_mc[cont8] >> events[cont8] >> events_e[cont8]; mmk_h_mc_e[cont8]=0; cont8++; } TGraphErrors *gr1 = new TGraphErrors(cont8,mmk_h_mc,events,mmk_h_mc_e,events_e); gr1->SetMarkerStyle(20); gr1->SetMarkerSize(0.6); gr1->Draw("AP"); Double_t par[9]; g1 = new TF1("m1","pol2",1.523,1.631); g2 = new TF1("m2","gaus",1.637,1.661); g2->FixParameter(2,0.006); g3 = new TF1("m3","pol2",1.667,1.775); total = new TF1("mctotal","pol2(0)+gaus(3)+pol2(6)",1.523,1.775); total->SetLineColor(4); gr1->Fit(g1,"R"); gr1->Fit(g2,"BR+"); gr1->Fit(g3,"R+"); g1->GetParameters(&par[0]); g2->GetParameters(&par[3]); g3->GetParameters(&par[6]); total->SetParameters(par); total->FixParameter(3+2,0.006); total->SetParNames ("PL1","PL2","PL3","Counts","Mean","Width","PL1","PL2","PL3"); gr1->Fit(total,"BR+"); gr1->Fit(total,"BR+","",1.523,1.775); }