20x = ROOT.RooRealVar(
"x",
"x", 0, 10)
24mean = ROOT.RooRealVar(
"mean",
"mean of gaussians", 5)
25sigma1 = ROOT.RooRealVar(
"sigma1",
"width of gaussians", 0.5)
26sigma2 = ROOT.RooRealVar(
"sigma2",
"width of gaussians", 1)
28sig1 = ROOT.RooGaussian(
"sig1",
"Signal component 1", x, mean, sigma1)
29sig2 = ROOT.RooGaussian(
"sig2",
"Signal component 2", x, mean, sigma2)
32a0 = ROOT.RooRealVar(
"a0",
"a0", 0.5, 0., 1.)
33a1 = ROOT.RooRealVar(
"a1",
"a1", -0.2, 0., 1.)
34bkg = ROOT.RooChebychev(
"bkg",
"Background", x, ROOT.RooArgList(a0, a1))
37sig1frac = ROOT.RooRealVar(
38 "sig1frac",
"fraction of component 1 in signal", 0.8, 0., 1.)
40 "sig",
"Signal", ROOT.RooArgList(sig1, sig2), ROOT.RooArgList(sig1frac))
46x.setRange(
"signalRange", 4, 6)
50nsig = ROOT.RooRealVar(
51 "nsig",
"number of signal events in signalRange", 500, 0., 10000)
52nbkg = ROOT.RooRealVar(
53 "nbkg",
"number of background events in signalRange", 500, 0, 10000)
54esig = ROOT.RooExtendPdf(
55 "esig",
"extended signal p.d.f", sig, nsig,
"signalRange")
56ebkg = ROOT.RooExtendPdf(
57 "ebkg",
"extended background p.d.f", bkg, nbkg,
"signalRange")
63model = ROOT.RooAddPdf(
"model",
"(g1+g2)+a", ROOT.RooArgList(ebkg, esig))
70data = model.generate(ROOT.RooArgSet(x), 1000)
73r = model.fitTo(data, ROOT.RooFit.Extended(ROOT.kTRUE), ROOT.RooFit.Save())