using namespace RooFit; void ForumPost(){ TFile *f = new TFile("$HOME/Downloads/Linefit.root"); TTree *t = (TTree*)f->Get("G2 m4 T"); RooRealVar En("Energy","Energy",300,1000); RooRealVar mean("mean","mean",735); RooRealVar fwhm("fwhm","fwhm",5); RooGaussian gss("gss","gss",En,mean,fwhm); RooRealVar mean630("mean630","mean",630, 610, 660); RooRealVar fwhm630("fwhm630","fwhm", 30, 1, 50); RooBreitWigner gss630("gss630","gss",En, mean630, fwhm630); RooRealVar mean700("mean700","mean",700, 695, 710); RooRealVar fwhm700("fwhm700","fwhm", 2, 0.01, 50); RooBreitWigner gss700("gss700","gss",En, mean700, fwhm700); RooRealVar mean800("mean800","mean",800, 790, 820); RooRealVar fwhm800("fwhm800","fwhm",10, 1, 50); RooGaussian gss800("gss800","gss", En, mean800, fwhm800); RooRealVar c1("c1","c1",1,-1000,1000); RooRealVar c2("c2","c2",1,1.E-5,1000); RooGenericPdf linear("linear","c1+c2*(Energy)",RooArgList(c1,c2,En)); RooRealVar coef1("coef1","c1",1,-30,30); RooRealVar coef2("coef2","c2",1,-30,30); RooRealVar coef3("coef3","c2",1,-30,30); RooPolynomial pol("pol", "pol", En, RooArgList(coef1, coef2, coef3)); RooRealVar sigy("sigy","sigy",1,0,10000); RooRealVar sig630("sig630","sigy",500,0,10000); RooRealVar sig700("sig700","sigy",100,20,200); RooRealVar sig800("sig800","sigy",1,0,10000); RooRealVar bkgy("bkgy","bkgy",1,0,10000); RooAddPdf model("model","model",RooArgList(gss, gss630, gss700, gss800, pol), RooArgList(sigy, sig630, sig700, sig800, bkgy)); RooDataSet data("data","data",RooArgSet(En),Import(*t)); model.fitTo(data,Range(400, 1000),Extended()); RooPlot *P = En.frame(); data.plotOn(P); model.plotOn(P); model.plotOn(P,Components(gss),LineColor(kRed)); model.paramOn(P); P->Draw(); }