// Integral (# counts with errors) of red, green and blue (dashed) in x = (11,13) region using namespace RooFit; void fitExample3() { // Declare observable x RooRealVar x("x", "x", 7, 15); // Create two Gaussian PDFs g1(x,mean1,sigma) anf g2(x,mean2,sigma) and their parameters RooRealVar mean1("mean1", "mean of gaussian1", 10); RooRealVar mean2("mean2", "mean of gaussian2", 11); RooRealVar sigma1("sigma1", "width of gaussians", 0.5); RooRealVar sigma2("sigma2", "width of gaussians", 1); RooGaussian sig1("sig1", "Signal component 1", x, mean1, sigma1); RooGaussian sig2("sig2", "Signal component 2", x, mean2, sigma2); RooRealVar nSig1("nSig1", "", 100, 0., 10000.); RooRealVar nSig2("nSig2", "", 100, 0., 10000.); RooAddPdf modelSig("modelSig", "modelSig", RooArgList(sig1, sig2), RooArgList(nSig1,nSig2)); RooRealVar slope("slope","slope",0.1); RooExponential modelBkg("Exp", "Exp", x, slope); RooRealVar Nsig("Nsig","number of signal events",500,0.,100000) ; RooRealVar Nbkg("Nbkg","number of background events",500,0,100000) ; RooAddPdf model2("model2","",RooArgList(modelSig,modelBkg), RooArgList(Nsig,Nbkg)); RooDataSet *data = model2.generate(x, 100000); model2.fitTo(*data); // Plot data and PDF overlaid RooPlot *xframe = x.frame(Title("Example of composite pdf=(sig1+sig2)+bkg")); data->plotOn(xframe); model2.plotOn(xframe); // Overlay the background component of model with a dashed line model2.plotOn(xframe); model2.plotOn(xframe, Components(sig1), LineStyle(kDashed)); model2.plotOn(xframe, Components(sig2), LineColor(kRed), LineStyle(kDashed)); model2.plotOn(xframe, Components(modelBkg), LineColor(kGreen), LineStyle(kDashed)); xframe->Draw(); }