21 using namespace RooFit;
 
   23 void rf312_multirangefit()
 
   30    RooRealVar x(
"x", 
"x", -10, 10);
 
   31    RooRealVar y(
"y", 
"y", -10, 10);
 
   34    RooRealVar mx(
"mx", 
"mx", 1, -10, 10);
 
   35    RooRealVar my(
"my", 
"my", 1, -10, 10);
 
   37    RooGaussian gx(
"gx", 
"gx", x, mx, RooConst(1));
 
   38    RooGaussian gy(
"gy", 
"gy", y, my, RooConst(1));
 
   40    RooProdPdf sig(
"sig", 
"sig", gx, gy);
 
   43    RooPolynomial px(
"px", 
"px", x);
 
   44    RooPolynomial py(
"py", 
"py", y);
 
   45    RooProdPdf bkg(
"bkg", 
"bkg", px, py);
 
   48    RooRealVar f(
"f", 
"f", 0., 1.);
 
   49    RooAddPdf model(
"model", 
"model", RooArgList(sig, bkg), f);
 
   52    RooDataSet *modelData = model.generate(RooArgSet(x, y), 10000);
 
   73    x.setRange(
"SB1", -10, +10);
 
   74    y.setRange(
"SB1", -10, 0);
 
   76    x.setRange(
"SB2", -10, 0);
 
   77    y.setRange(
"SB2", 0, +10);
 
   79    x.setRange(
"SIG", 0, +10);
 
   80    y.setRange(
"SIG", 0, +10);
 
   82    x.setRange(
"FULL", -10, +10);
 
   83    y.setRange(
"FULL", -10, +10);
 
   89    RooFitResult *r_sb1 = model.fitTo(*modelData, Range(
"SB1"), Save());
 
   92    RooFitResult *r_sb2 = model.fitTo(*modelData, Range(
"SB2"), Save());
 
   99    RooFitResult *r_sb12 = model.fitTo(*modelData, Range(
"SB1,SB2"), Save());