31x = ROOT.RooRealVar(
"x",
"x", -11, 11)
32y = ROOT.RooRealVar(
"y",
"y", -10, 200)
33dxy = ROOT.RooDataSet(
"dxy",
"dxy", ROOT.RooArgSet(
34 x, y), ROOT.RooFit.StoreError(ROOT.RooArgSet(x, y)))
39 x.setError((0.5 / 1.)
if (i < 5)
else (1.0 / 1.))
42 y.setVal(x.getVal() * x.getVal() + 4 * abs(ROOT.gRandom.Gaus()))
43 y.setError(math.sqrt(y.getVal()))
45 dxy.add(ROOT.RooArgSet(x, y))
51a = ROOT.RooRealVar(
"a",
"a", 0.0, -10, 10)
52b = ROOT.RooRealVar(
"b",
"b", 0.0, -100, 100)
53f = ROOT.RooPolyVar(
"f",
"f", x, ROOT.RooArgList(b, a, ROOT.RooFit.RooConst(1)))
56frame = x.frame(ROOT.RooFit.Title(
57 "Chi^2 fit of function set of (X#pmdX,Y#pmdY) values"))
58dxy.plotOnXY(frame, ROOT.RooFit.YVar(y))
61f.chi2FitTo(dxy, ROOT.RooFit.YVar(y))
68f.chi2FitTo(dxy, ROOT.RooFit.YVar(y), ROOT.RooFit.Integrate(ROOT.kTRUE))
71f.plotOn(frame, ROOT.RooFit.LineStyle(ROOT.kDashed),
72 ROOT.RooFit.LineColor(ROOT.kRed))
75c = ROOT.TCanvas(
"rf609_xychi2fit",
"rf609_xychi2fit", 600, 600)
76ROOT.gPad.SetLeftMargin(0.15)
77frame.GetYaxis().SetTitleOffset(1.4)
80c.SaveAs(
"rf609_xychi2fit.png")