23x = ROOT.RooRealVar(
"x",
"x", -10, 10)
24y = ROOT.RooRealVar(
"y",
"y", -10, 10)
27ax = ROOT.RooRealVar(
"ax",
"ay", 0.6, 0, 1)
28bx = ROOT.RooRealVar(
"bx",
"by", 5)
29cx = ROOT.RooRealVar(
"cx",
"cy", -1, -10, 10)
31ay = ROOT.RooRealVar(
"ay",
"ay", 0.2, 0, 1)
32by = ROOT.RooRealVar(
"by",
"by", 5)
33cy = ROOT.RooRealVar(
"cy",
"cy", -1, -10, 10)
35effFunc = ROOT.RooFormulaVar(
37 "((1-ax)+ax*cos((x-cx)/bx))*((1-ay)+ay*cos((y-cy)/by))",
49cut = ROOT.RooCategory(
"cut",
"cutr")
50cut.defineType(
"accept", 1)
51cut.defineType(
"reject", 0)
57effPdf = ROOT.RooEfficiency(
"effPdf",
"effPdf", effFunc, cut,
"accept")
64shapePdfX = ROOT.RooPolynomial(
65 "shapePdfX",
"shapePdfX", x, ROOT.RooArgList(
67 0
if flat
else -0.095)))
68shapePdfY = ROOT.RooPolynomial(
69 "shapePdfY",
"shapePdfY", y, ROOT.RooArgList(
71 0
if flat
else +0.095)))
72shapePdf = ROOT.RooProdPdf(
78model = ROOT.RooProdPdf(
81 ROOT.RooArgSet(shapePdf),
82 ROOT.RooFit.Conditional(
83 ROOT.RooArgSet(effPdf),
87data = model.generate(ROOT.RooArgSet(x, y, cut), 10000)
93effPdf.fitTo(data, ROOT.RooFit.ConditionalObservables(ROOT.RooArgSet(x, y)))
99hh_data_all = ROOT.RooAbsData.createHistogram(
100 data,
"hh_data_all", x, ROOT.RooFit.Binning(8), ROOT.RooFit.YVar(
101 y, ROOT.RooFit.Binning(8)))
102hh_data_sel = ROOT.RooAbsData.createHistogram(
103 data,
"hh_data_sel", x, ROOT.RooFit.Binning(8), ROOT.RooFit.YVar(
104 y, ROOT.RooFit.Binning(8)), ROOT.RooFit.Cut(
"cut==cut::accept"))
105hh_eff = effFunc.createHistogram(
106 "hh_eff", x, ROOT.RooFit.Binning(
107 50), ROOT.RooFit.YVar(y, ROOT.RooFit.Binning(50)))
110hh_data_all.SetMinimum(0)
111hh_data_sel.SetMinimum(0)
113hh_eff.SetLineColor(ROOT.kBlue)
116ca = ROOT.TCanvas(
"rf702_efficiency_2D",
"rf702_efficiency_2D", 1200, 400)
119ROOT.gPad.SetLeftMargin(0.15)
120hh_data_all.GetZaxis().SetTitleOffset(1.8)
121hh_data_all.Draw(
"lego")
123ROOT.gPad.SetLeftMargin(0.15)
124hh_data_sel.GetZaxis().SetTitleOffset(1.8)
125hh_data_sel.Draw(
"lego")
127ROOT.gPad.SetLeftMargin(0.15)
128hh_eff.GetZaxis().SetTitleOffset(1.8)
131ca.SaveAs(
"rf702_efficiency_2D.png")