using namespace RooFit; void PlotSumPDF() { // Build two Gaussian PDFs RooRealVar x("x","x",0,10) ; RooRealVar mean1("mean1","mean of gaussian 1",2) ; RooRealVar mean2("mean2","mean of gaussian 2",3) ; RooRealVar sigma1("sigma1","width of gaussian 1",1) ; RooRealVar sigma2("sigma2","width of gaussian 2",1.5) ; RooGaussian gauss1("gauss1","gaussian PDF",x,mean1,sigma1) ; RooGaussian gauss2("gauss2","gaussian PDF",x,mean2,sigma2) ; // Build Argus background PDF RooRealVar argpar("argpar","argus shape parameter",-1.0) ; RooRealVar cutoff("cutoff","argus cutoff",10.0) ; RooArgusBG argus("argus","Argus PDF",x,cutoff,argpar) ; // Add the components RooRealVar g1frac("g1frac","fraction of gauss1",0.5) ; RooRealVar g2frac("g2frac","fraction of gauss2",0.1) ; RooAddPdf sum("sum","g1+g2+a",RooArgList(gauss1,gauss2,argus), RooArgList(g1frac,g2frac)) ; // Generate a toyMC sample RooDataSet *data = sum.generate(x,10000) ; // Plot data and PDF overlaid RooPlot* xframe = x.frame(Title("MC data and PDFs overlaid")) ; data->plotOn(xframe) ; sum->plotOn(xframe) ; sum->plotOn(xframe, Components(argus), LineStyle(kDashed)); sum->plotOn(xframe,LineColor(kRed), Components(RooArgSet(gauss2))) ; // Plot only argus and gauss2 //sum->plotOn(xframe, Components(RooArgSet(argus, gauss2)), LineStyle(kDashed)); xframe->Draw() ; }