#include #include #include #include #include //linear background function Double_t background(Double_t *x, Double_t *par) { return par[0]; } //Breit Wigner function Double_t BreitWig(Double_t *x, Double_t *par) { return par[0]*par[2]*par[2]/TMath::Max(1.e-10,(x[0]*x[0]-4*0.938272013*0.938272013)*((x[0]-par[1])*(x[0]-par[1])+.25*par[2]*par[2])); } // Sum of background and peak function Double_t fitFunction(Double_t *x, Double_t *par) { return background(x,par) + BreitWig(x,&par[1]); } void test(){ gStyle->SetOptFit(); //Try a fit with simple breitwigner and background TF1 *fitsimple = new TF1("fitsimple",fitFunction,3.85,3.9,4); fitsimple->SetParNames("back","Constant","Mean","Width"); fitsimple->SetParameters(30,150,3.872,120*1e-06); fitsimple->SetNpx(500); //Data Points Double_t stepsize = 0.00005;Double_t mass = 3.872;const int numberofscanpoints=20; Double_t x[numberofscanpoints];Double_t xerr1[numberofscanpoints];Double_t xerr2[numberofscanpoints]; Double_t yerr[numberofscanpoints]; Double_t y[] = {30,25,19,40,22,22,28,35,55,75,100,90,50,40,45,30,35,35,20,25}; for(int i=0;iDivide(2,1); canvas->cd(1); graph1->Draw("APZ"); graph1->Fit("gaus"); canvas->cd(2); graph2->Draw("APZ"); graph2->Fit("gaus"); }