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());