26psi = ROOT.RooRealVar(
"psi",
"psi", 0, 3.14159268)
29Tpsi = ROOT.RooGenericPdf(
"Tpsi",
"1+sin(2*@0)", [psi])
32gbias = ROOT.RooRealVar(
"gbias",
"gbias", 0.2, 0.0, 1)
33greso = ROOT.RooRealVar(
"greso",
"greso", 0.3, 0.1, 1.0)
34Rpsi = ROOT.RooGaussian(
"Rpsi",
"Rpsi", psi, gbias, greso)
37cpsi = ROOT.RooRealVar(
"cpsi",
"cos(psi)", -1, 1)
38psif = ROOT.RooFormulaVar(
"psif",
"acos(cpsi)", [cpsi])
41Tcpsi = ROOT.RooGenericPdf(
"T",
"1+sin(2*@0)", [psif])
47Mpsi = ROOT.RooFFTConvPdf(
"Mf",
"Mf", psi, Tpsi, Rpsi)
51Mpsi.setBufferFraction(0)
57data_psi = Mpsi.generate({psi}, 10000)
63frame1 = psi.frame(Title=
"Cyclical convolution in angle psi")
64data_psi.plotOn(frame1)
68Tpsi.plotOn(frame1, LineColor=
"r")
77Mcpsi = ROOT.RooFFTConvPdf(
"Mf",
"Mf", psif, psi, Tpsi, Rpsi)
81Mcpsi.setBufferFraction(0)
87data_cpsi = Mcpsi.generate({cpsi}, 10000)
96frame2 = cpsi.frame(Title=
"Same convolution in psi, in cos(psi)")
97data_cpsi.plotOn(frame2)
101Tcpsi.plotOn(frame2, LineColor=
"r")
104c = ROOT.TCanvas(
"rf210_angularconv",
"rf210_angularconv", 800, 400)
107ROOT.gPad.SetLeftMargin(0.15)
108frame1.GetYaxis().SetTitleOffset(1.4)
111ROOT.gPad.SetLeftMargin(0.15)
112frame2.GetYaxis().SetTitleOffset(1.4)
115c.SaveAs(
"rf210_angularconv.png")