{ using namespace RooFit; // Observable RooRealVar imass("imass","m [GeV]",105,140); // Signal distribution RooRealVar sigmean("sigmean","Resonance mass",115,105,120); RooRealVar sigwidth("sigwidth","Resonance width",1,0,4); RooGaussian signal("signal","signal PDF",imass,sigmean,sigwidth); // Background distribution RooRealVar exppar("exppar","Exponential parameter",-.1,-1.,0); RooExponential background("background","Exp PDF",imass,exppar); // Signal plus background distribution RooRealVar nsig("nsig","#signal events",150,0.,10000); RooRealVar nbkg("nbkg","#background events",1000,0.,10000); RooAddPdf model("model","g+a",RooArgList(signal,background),RooArgList(nsig,nbkg)); // Generate a toy sample according to the expected number of events RooDataSet *data = model.generate(imass,Extended()); // ML fit of the model to the data model.fitTo(*data); // Plot everything on a frame RooPlot* imassframe = imass.frame(); data->plotOn(imassframe); model.plotOn(imassframe); model.plotOn(imassframe,Components(background),LineStyle(kDashed)); imassframe->Draw(); }