20 using namespace RooFit;
 
   22 void rf202_extendedmlfit()
 
   29    RooRealVar x(
"x", 
"x", 0, 10);
 
   32    RooRealVar mean(
"mean", 
"mean of gaussians", 5);
 
   33    RooRealVar sigma1(
"sigma1", 
"width of gaussians", 0.5);
 
   34    RooRealVar sigma2(
"sigma2", 
"width of gaussians", 1);
 
   36    RooGaussian sig1(
"sig1", 
"Signal component 1", x, mean, sigma1);
 
   37    RooGaussian sig2(
"sig2", 
"Signal component 2", x, mean, sigma2);
 
   40    RooRealVar a0(
"a0", 
"a0", 0.5, 0., 1.);
 
   41    RooRealVar a1(
"a1", 
"a1", 0.2, 0., 1.);
 
   42    RooChebychev bkg(
"bkg", 
"Background", x, RooArgSet(a0, a1));
 
   45    RooRealVar sig1frac(
"sig1frac", 
"fraction of component 1 in signal", 0.8, 0., 1.);
 
   46    RooAddPdf sig(
"sig", 
"Signal", RooArgList(sig1, sig2), sig1frac);
 
   56    RooRealVar nsig(
"nsig", 
"number of signal events", 500, 0., 10000);
 
   57    RooRealVar nbkg(
"nbkg", 
"number of background events", 500, 0, 10000);
 
   58    RooAddPdf model(
"model", 
"(g1+g2)+a", RooArgList(bkg, sig), RooArgList(nbkg, nsig));
 
   65    RooDataSet *data = model.generate(x);
 
   72    RooPlot *xframe = x.frame(Title(
"extended ML fit example"));
 
   74    model.plotOn(xframe, Normalization(1.0, RooAbsReal::RelativeExpected));
 
   77    model.plotOn(xframe, Components(bkg), LineStyle(kDashed), Normalization(1.0, RooAbsReal::RelativeExpected));
 
   80    model.plotOn(xframe, Components(RooArgSet(bkg, sig2)), LineStyle(kDotted),
 
   81                 Normalization(1.0, RooAbsReal::RelativeExpected));
 
   94    RooExtendPdf esig(
"esig", 
"extended signal p.d.f", sig, nsig);
 
   95    RooExtendPdf ebkg(
"ebkg", 
"extended background p.d.f", bkg, nbkg);
 
  101    RooAddPdf model2(
"model2", 
"(g1+g2)+a", RooArgList(ebkg, esig));
 
  104    new TCanvas(
"rf202_composite", 
"rf202_composite", 600, 600);
 
  105    gPad->SetLeftMargin(0.15);
 
  106    xframe->GetYaxis()->SetTitleOffset(1.4);