27x = ROOT.RooRealVar(
"x",
"x", -10, 10)
28y = ROOT.RooRealVar(
"y",
"y", -10, 10)
31ax = ROOT.RooRealVar(
"ax",
"ay", 0.6, 0, 1)
32bx = ROOT.RooRealVar(
"bx",
"by", 5)
33cx = ROOT.RooRealVar(
"cx",
"cy", -1, -10, 10)
35ay = ROOT.RooRealVar(
"ay",
"ay", 0.2, 0, 1)
36by = ROOT.RooRealVar(
"by",
"by", 5)
37cy = ROOT.RooRealVar(
"cy",
"cy", -1, -10, 10)
39effFunc = ROOT.RooFormulaVar(
"effFunc",
"((1-ax)+ax*cos((x-cx)/bx))*((1-ay)+ay*cos((y-cy)/by))", ROOT.RooArgList(ax, bx, cx, x, ay, by, cy, y))
42cut = ROOT.RooCategory(
"cut",
"cutr")
43cut.defineType(
"accept", 1)
44cut.defineType(
"reject", 0)
50effPdf = ROOT.RooEfficiency(
"effPdf",
"effPdf", effFunc, cut,
"accept")
57shapePdfX = ROOT.RooPolynomial(
"shapePdfX",
"shapePdfX", x, ROOT.RooArgList(ROOT.RooFit.RooConst(0
if flat
else -0.095)))
58shapePdfY = ROOT.RooPolynomial(
"shapePdfY",
"shapePdfY", y, ROOT.RooArgList(ROOT.RooFit.RooConst(0
if flat
else +0.095)))
59shapePdf = ROOT.RooProdPdf(
"shapePdf",
"shapePdf", ROOT.RooArgList(shapePdfX, shapePdfY))
60model = ROOT.RooProdPdf(
"model",
"model", ROOT.RooArgSet(shapePdf), ROOT.RooFit.Conditional(ROOT.RooArgSet(effPdf), ROOT.RooArgSet(cut)))
63data = model.generate(ROOT.RooArgSet(x, y, cut), 10000)
69effPdf.fitTo(data, ROOT.RooFit.ConditionalObservables(ROOT.RooArgSet(x, y)))
75hh_data_all = ROOT.RooAbsData.createHistogram(data,
"hh_data_all", x, ROOT.RooFit.Binning(
76 8), ROOT.RooFit.YVar(y, ROOT.RooFit.Binning(8)))
77hh_data_sel = ROOT.RooAbsData.createHistogram(data,
"hh_data_sel", x, ROOT.RooFit.Binning(
78 8), ROOT.RooFit.YVar(y, ROOT.RooFit.Binning(8)), ROOT.RooFit.Cut(
"cut==cut::accept"))
79hh_eff = effFunc.createHistogram(
80"hh_eff", x, ROOT.RooFit.Binning(
81 50), ROOT.RooFit.YVar(y, ROOT.RooFit.Binning(50)))
84hh_data_all.SetMinimum(0)
85hh_data_sel.SetMinimum(0)
87hh_eff.SetLineColor(ROOT.kBlue)
90ca = ROOT.TCanvas(
"rf702_efficiency_2D",
"rf702_efficiency_2D", 1200, 400)
93ROOT.gPad.SetLeftMargin(0.15)
94hh_data_all.GetZaxis().SetTitleOffset(1.8)
95hh_data_all.Draw(
"lego")
97ROOT.gPad.SetLeftMargin(0.15)
98hh_data_sel.GetZaxis().SetTitleOffset(1.8)
99hh_data_sel.Draw(
"lego")
101ROOT.gPad.SetLeftMargin(0.15)
102hh_eff.GetZaxis().SetTitleOffset(1.8)
105ca.SaveAs(
"rf702_efficiency_2D.png")