25dt = ROOT.RooRealVar(
"dt",
"dt", -10, 10)
29dm = ROOT.RooRealVar(
"dm",
"delta m(B0)", 0.472)
30tau = ROOT.RooRealVar(
"tau",
"tau (B0)", 1.547)
31w = ROOT.RooRealVar(
"w",
"flavour mistag rate", 0.1)
32dw = ROOT.RooRealVar(
"dw",
"delta mistag rate for B0/B0bar", 0.1)
34mixState = ROOT.RooCategory(
"mixState",
"B0/B0bar mixing state")
35mixState.defineType(
"mixed", -1)
36mixState.defineType(
"unmixed", 1)
38tagFlav = ROOT.RooCategory(
"tagFlav",
"Flavour of the tagged B0")
39tagFlav.defineType(
"B0", 1)
40tagFlav.defineType(
"B0bar", -1)
43tm = ROOT.RooTruthModel(
"tm",
"truth model", dt)
46bmix = ROOT.RooBMixDecay(
"bmix",
"decay", dt, mixState,
47 tagFlav, tau, dm, w, dw, tm, ROOT.RooBMixDecay.DoubleSided)
53data = bmix.generate(ROOT.RooArgSet(dt, mixState, tagFlav), 10000)
58frame1 = dt.frame(ROOT.RooFit.Title(
59 "B decay distribution with mixing (B0/B0bar)"))
61data.plotOn(frame1, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
62bmix.plotOn(frame1, ROOT.RooFit.Slice(tagFlav,
"B0"))
64data.plotOn(frame1, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
65 ROOT.RooFit.MarkerColor(ROOT.kCyan))
66bmix.plotOn(frame1, ROOT.RooFit.Slice(tagFlav,
"B0bar"),
67 ROOT.RooFit.LineColor(ROOT.kCyan))
70frame2 = dt.frame(ROOT.RooFit.Title(
71 "B decay distribution of mixed events (B0/B0bar)"))
73data.plotOn(frame2, ROOT.RooFit.Cut(
74 "mixState==mixState::mixed&&tagFlav==tagFlav::B0"))
75bmix.plotOn(frame2, ROOT.RooFit.Slice(tagFlav,
"B0"),
76 ROOT.RooFit.Slice(mixState,
"mixed"))
78data.plotOn(frame2, ROOT.RooFit.Cut(
79 "mixState==mixState::mixed&&tagFlav==tagFlav::B0bar"), ROOT.RooFit.MarkerColor(ROOT.kCyan))
80bmix.plotOn(frame2, ROOT.RooFit.Slice(tagFlav,
"B0bar"), ROOT.RooFit.Slice(
81 mixState,
"mixed"), ROOT.RooFit.LineColor(ROOT.kCyan))
84frame3 = dt.frame(ROOT.RooFit.Title(
85 "B decay distribution of unmixed events (B0/B0bar)"))
87data.plotOn(frame3, ROOT.RooFit.Cut(
88 "mixState==mixState::unmixed&&tagFlav==tagFlav::B0"))
89bmix.plotOn(frame3, ROOT.RooFit.Slice(tagFlav,
"B0"),
90 ROOT.RooFit.Slice(mixState,
"unmixed"))
92data.plotOn(frame3, ROOT.RooFit.Cut(
93 "mixState==mixState::unmixed&&tagFlav==tagFlav::B0bar"), ROOT.RooFit.MarkerColor(ROOT.kCyan))
94bmix.plotOn(frame3, ROOT.RooFit.Slice(tagFlav,
"B0bar"), ROOT.RooFit.Slice(
95 mixState,
"unmixed"), ROOT.RooFit.LineColor(ROOT.kCyan))
104CPeigen = ROOT.RooRealVar(
"CPeigen",
"CP eigen value", -1)
105absLambda = ROOT.RooRealVar(
"absLambda",
"|lambda|", 1, 0, 2)
106argLambda = ROOT.RooRealVar(
"absLambda",
"|lambda|", 0.7, -1, 1)
107effR = ROOT.RooRealVar(
"effR",
"B0/B0bar reco efficiency ratio", 1)
110bcp = ROOT.RooBCPEffDecay(
"bcp",
"bcp", dt, tagFlav, tau, dm, w, CPeigen,
111 absLambda, argLambda, effR, dw, tm, ROOT.RooBCPEffDecay.DoubleSided)
117data2 = bcp.generate(ROOT.RooArgSet(dt, tagFlav), 10000)
120frame4 = dt.frame(ROOT.RooFit.Title(
121 "B decay distribution with CPV(|l|=1,Im(l)=0.7) (B0/B0bar)"))
123data2.plotOn(frame4, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
124bcp.plotOn(frame4, ROOT.RooFit.Slice(tagFlav,
"B0"))
126data2.plotOn(frame4, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
127 ROOT.RooFit.MarkerColor(ROOT.kCyan))
128bcp.plotOn(frame4, ROOT.RooFit.Slice(tagFlav,
"B0bar"),
129 ROOT.RooFit.LineColor(ROOT.kCyan))
137data3 = bcp.generate(ROOT.RooArgSet(dt, tagFlav), 10000)
141frame5 = dt.frame(ROOT.RooFit.Title(
142 "B decay distribution with CPV(|l|=0.7,Im(l)=0.7) (B0/B0bar)"))
144data3.plotOn(frame5, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
145bcp.plotOn(frame5, ROOT.RooFit.Slice(tagFlav,
"B0"))
147data3.plotOn(frame5, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
148 ROOT.RooFit.MarkerColor(ROOT.kCyan))
149bcp.plotOn(frame5, ROOT.RooFit.Slice(tagFlav,
"B0bar"),
150 ROOT.RooFit.LineColor(ROOT.kCyan))
160DGbG = ROOT.RooRealVar(
"DGbG",
"DGamma/GammaAvg", 0.5, -1, 1)
161Adir = ROOT.RooRealVar(
"Adir",
"-[1-abs(l)**2]/[1+abs(l)**2]", 0)
162Amix = ROOT.RooRealVar(
"Amix",
"2Im(l)/[1+abs(l)**2]", 0.7)
163Adel = ROOT.RooRealVar(
"Adel",
"2Re(l)/[1+abs(l)**2]", 0.7)
166DG = ROOT.RooFormulaVar(
"DG",
"Delta Gamma",
"@1/@0",
167 ROOT.RooArgList(tau, DGbG))
171fsin = ROOT.RooFormulaVar(
172 "fsin",
"fsin",
"@0*@1*(1-2*@2)", ROOT.RooArgList(Amix, tagFlav, w))
173fcos = ROOT.RooFormulaVar(
174 "fcos",
"fcos",
"@0*@1*(1-2*@2)", ROOT.RooArgList(Adir, tagFlav, w))
175fsinh = ROOT.RooFormulaVar(
"fsinh",
"fsinh",
"@0", ROOT.RooArgList(Adel))
178bcpg = ROOT.RooBDecay(
"bcpg",
"bcpg", dt, tau, DG, ROOT.RooFit.RooConst(
179 1), fsinh, fcos, fsin, dm, tm, ROOT.RooBDecay.DoubleSided)
185data4 = bcpg.generate(ROOT.RooArgSet(dt, tagFlav), 10000)
188frame6 = dt.frame(ROOT.RooFit.Title(
189 "B decay distribution with CPV(Im(l)=0.7,Re(l)=0.7,|l|=1,dG/G=0.5) (B0/B0bar)"))
191data4.plotOn(frame6, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
192bcpg.plotOn(frame6, ROOT.RooFit.Slice(tagFlav,
"B0"))
194data4.plotOn(frame6, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
195 ROOT.RooFit.MarkerColor(ROOT.kCyan))
196bcpg.plotOn(frame6, ROOT.RooFit.Slice(tagFlav,
"B0bar"),
197 ROOT.RooFit.LineColor(ROOT.kCyan))
199c = ROOT.TCanvas(
"rf708_bphysics",
"rf708_bphysics", 1200, 800)
202ROOT.gPad.SetLeftMargin(0.15)
203frame1.GetYaxis().SetTitleOffset(1.6)
206ROOT.gPad.SetLeftMargin(0.15)
207frame2.GetYaxis().SetTitleOffset(1.6)
210ROOT.gPad.SetLeftMargin(0.15)
211frame3.GetYaxis().SetTitleOffset(1.6)
214ROOT.gPad.SetLeftMargin(0.15)
215frame4.GetYaxis().SetTitleOffset(1.6)
218ROOT.gPad.SetLeftMargin(0.15)
219frame5.GetYaxis().SetTitleOffset(1.6)
222ROOT.gPad.SetLeftMargin(0.15)
223frame6.GetYaxis().SetTitleOffset(1.6)
226c.SaveAs(
"rf708_bphysics.png")