void example(){ using namespace RooFit ; gStyle->SetOptStat(0); RooRealVar Jpsi_M("Jpsi_M","Jpsi_M",3097,3010,3185); RooRealVar sigma_Jpsi_R2("sigma_Jpsi_R2","sigma",14, 7, 20); RooRealVar mu_Jpsi_R2("mu_Jpsi_R2","mu",3097, 3050, 3150); RooGaussian signal("signal","signal PDF",Jpsi_M,mu_Jpsi_R2,sigma_Jpsi_R2); RooRealVar slope("slope","exp slope",-0.005,-0.1,0.1); RooExponential exp_pdf("exp_pdf", "exp_pdf", Jpsi_M, slope); RooRealVar yield_comb("yield_comb","yield",100,0,1000); //exp RooRealVar yield_signal("yield_signal","yield",400,0,2000); //signal RooArgList shapes; shapes.add(exp_pdf); //combinatorial shapes.add(signal); //signal RooArgList yields; yields.add(yield_comb); //combinatorial yields.add(yield_signal); //signal //total PDF RooAddPdf* total = new RooAddPdf("total","total",shapes,yields); RooDataSet* dataset = total -> generate(RooArgSet(Jpsi_M),yield_signal.getValV() + yield_comb.getValV()); total->fitTo(*dataset, BatchMode(1), PrefitDataFraction(0.1)); //Plotting RooPlot* Jpsi_frame=Jpsi_M.frame(Bins(50),Name("Jpsi mass"),Title(" ")); dataset->plotOn(Jpsi_frame,MarkerSize(0.9)); total->plotOn(Jpsi_frame, Components(exp_pdf),FillStyle(1001),VLines(),DrawOption("F"),FillColor(kOrange-4),LineColor(kOrange-4),Name("comb")); total->plotOn(Jpsi_frame, Components(signal),LineColor(kRed),Name("signal")); total->plotOn(Jpsi_frame); // total->paramOn(Jpsi_frame,Layout(0.63,0.93,0.93)); TLegend* leg = new TLegend(0.17,0.75,0.35,0.9); leg->AddEntry(Jpsi_frame->findObject("signal"),"Signal","l"); leg->AddEntry(Jpsi_frame->findObject("comb"),"Background","l"); TCanvas* DCanvas = new TCanvas ("DCanvas","Fit",750,750); Jpsi_frame->GetYaxis()->SetTitleOffset(0.9); Jpsi_frame->GetXaxis()->SetTitle("m(J/#psi(#mu^{+}#mu^{-})) [MeV/c^{2}]"); Jpsi_frame->Draw(); leg->Draw(); DCanvas->SaveAs("fit_example.pdf"); }