21dt = ROOT.RooRealVar(
"dt",
"dt", -10, 10)
25dm = ROOT.RooRealVar(
"dm",
"delta m(B0)", 0.472)
26tau = ROOT.RooRealVar(
"tau",
"tau (B0)", 1.547)
27w = ROOT.RooRealVar(
"w",
"flavour mistag rate", 0.1)
28dw = ROOT.RooRealVar(
"dw",
"delta mistag rate for B0/B0bar", 0.1)
30mixState = ROOT.RooCategory(
"mixState",
"B0/B0bar mixing state", {
"mixed": -1,
"unmixed": 1})
32tagFlav = ROOT.RooCategory(
"tagFlav",
"Flavour of the tagged B0", {
"B0": 1,
"B0bar": -1})
35tm = ROOT.RooTruthModel(
"tm",
"truth model", dt)
38bmix = ROOT.RooBMixDecay(
"bmix",
"decay", dt, mixState, tagFlav, tau, dm, w, dw, tm, type=
"DoubleSided")
44data = bmix.generate({dt, mixState, tagFlav}, 10000)
49frame1 = dt.frame(Title=
"B decay distribution with mixing (B0/B0bar)")
51data.plotOn(frame1, Cut=
"tagFlav==tagFlav::B0")
52bmix.plotOn(frame1, Slice=(tagFlav,
"B0"))
54data.plotOn(frame1, Cut=
"tagFlav==tagFlav::B0bar", MarkerColor=
"c")
55bmix.plotOn(frame1, Slice=(tagFlav,
"B0bar"), LineColor=
"c")
58frame2 = dt.frame(Title=
"B decay distribution of mixed events (B0/B0bar)")
60data.plotOn(frame2, Cut=
"mixState==mixState::mixed&&tagFlav==tagFlav::B0")
61bmix.plotOn(frame2, Slice={tagFlav:
"B0", mixState:
"mixed"})
63data.plotOn(frame2, Cut=
"mixState==mixState::mixed&&tagFlav==tagFlav::B0bar", MarkerColor=
"c")
64bmix.plotOn(frame2, Slice={tagFlav:
"B0bar", mixState:
"mixed"}, LineColor=
"c")
67frame3 = dt.frame(Title=
"B decay distribution of unmixed events (B0/B0bar)")
69data.plotOn(frame3, Cut=
"mixState==mixState::unmixed&&tagFlav==tagFlav::B0")
70bmix.plotOn(frame3, Slice={tagFlav:
"B0", mixState:
"unmixed"})
72data.plotOn(frame3, Cut=
"mixState==mixState::unmixed&&tagFlav==tagFlav::B0bar", MarkerColor=
"c")
73bmix.plotOn(frame3, Slice={tagFlav:
"B0bar", mixState:
"unmixed"}, LineColor=
"c")
82CPeigen = ROOT.RooRealVar(
"CPeigen",
"CP eigen value", -1)
83absLambda = ROOT.RooRealVar(
"absLambda",
"|lambda|", 1, 0, 2)
84argLambda = ROOT.RooRealVar(
"absLambda",
"|lambda|", 0.7, -1, 1)
85effR = ROOT.RooRealVar(
"effR",
"B0/B0bar reco efficiency ratio", 1)
88bcp = ROOT.RooBCPEffDecay(
89 "bcp",
"bcp", dt, tagFlav, tau, dm, w, CPeigen, absLambda, argLambda, effR, dw, tm, type=
"DoubleSided"
96data2 = bcp.generate({dt, tagFlav}, 10000)
99frame4 = dt.frame(Title=
"B decay distribution with CPV(|l|=1,Im(l)=0.7) (B0/B0bar)")
101data2.plotOn(frame4, Cut=
"tagFlav==tagFlav::B0")
102bcp.plotOn(frame4, Slice=(tagFlav,
"B0"))
104data2.plotOn(frame4, Cut=
"tagFlav==tagFlav::B0bar", MarkerColor=
"c")
105bcp.plotOn(frame4, Slice=(tagFlav,
"B0bar"), LineColor=
"c")
113data3 = bcp.generate({dt, tagFlav}, 10000)
117frame5 = dt.frame(Title=
"B decay distribution with CPV(|l|=0.7,Im(l)=0.7) (B0/B0bar)")
119data3.plotOn(frame5, Cut=
"tagFlav==tagFlav::B0")
120bcp.plotOn(frame5, Slice=(tagFlav,
"B0"))
122data3.plotOn(frame5, Cut=
"tagFlav==tagFlav::B0bar", MarkerColor=
"c")
123bcp.plotOn(frame5, Slice=(tagFlav,
"B0bar"), LineColor=
"c")
133DGbG = ROOT.RooRealVar(
"DGbG",
"DGamma/GammaAvg", 0.5, -1, 1)
134Adir = ROOT.RooRealVar(
"Adir",
"-[1-abs(l)**2]/[1+abs(l)**2]", 0)
135Amix = ROOT.RooRealVar(
"Amix",
"2Im(l)/[1+abs(l)**2]", 0.7)
136Adel = ROOT.RooRealVar(
"Adel",
"2Re(l)/[1+abs(l)**2]", 0.7)
139DG = ROOT.RooFormulaVar(
"DG",
"Delta Gamma",
"@1/@0", [tau, DGbG])
143fsin = ROOT.RooFormulaVar(
"fsin",
"fsin",
"@0*@1*(1-2*@2)", [Amix, tagFlav, w])
144fcos = ROOT.RooFormulaVar(
"fcos",
"fcos",
"@0*@1*(1-2*@2)", [Adir, tagFlav, w])
145fsinh = ROOT.RooFormulaVar(
"fsinh",
"fsinh",
"@0", [Adel])
148bcpg = ROOT.RooBDecay(
149 "bcpg",
"bcpg", dt, tau, DG, ROOT.RooFit.RooConst(1), fsinh, fcos, fsin, dm, tm, type=
"DoubleSided"
156data4 = bcpg.generate({dt, tagFlav}, 10000)
159frame6 = dt.frame(Title=
"B decay distribution with CPV(Im(l)=0.7,Re(l)=0.7,|l|=1,dG/G=0.5) (B0/B0bar)")
161data4.plotOn(frame6, Cut=
"tagFlav==tagFlav::B0")
162bcpg.plotOn(frame6, Slice=(tagFlav,
"B0"))
164data4.plotOn(frame6, Cut=
"tagFlav==tagFlav::B0bar", MarkerColor=
"c")
165bcpg.plotOn(frame6, Slice=(tagFlav,
"B0bar"), LineColor=
"c")
167c = ROOT.TCanvas(
"rf708_bphysics",
"rf708_bphysics", 1200, 800)
170ROOT.gPad.SetLeftMargin(0.15)
171frame1.GetYaxis().SetTitleOffset(1.6)
174ROOT.gPad.SetLeftMargin(0.15)
175frame2.GetYaxis().SetTitleOffset(1.6)
178ROOT.gPad.SetLeftMargin(0.15)
179frame3.GetYaxis().SetTitleOffset(1.6)
182ROOT.gPad.SetLeftMargin(0.15)
183frame4.GetYaxis().SetTitleOffset(1.6)
186ROOT.gPad.SetLeftMargin(0.15)
187frame5.GetYaxis().SetTitleOffset(1.6)
190ROOT.gPad.SetLeftMargin(0.15)
191frame6.GetYaxis().SetTitleOffset(1.6)
194c.SaveAs(
"rf708_bphysics.png")