22 dt = ROOT.RooRealVar(
"dt",
"dt", -10, 10)
26 dm = ROOT.RooRealVar(
"dm",
"delta m(B0)", 0.472)
27 tau = ROOT.RooRealVar(
"tau",
"tau (B0)", 1.547)
28 w = ROOT.RooRealVar(
"w",
"flavour mistag rate", 0.1)
29 dw = ROOT.RooRealVar(
"dw",
"delta mistag rate for B0/B0bar", 0.1)
31 mixState = ROOT.RooCategory(
"mixState",
"B0/B0bar mixing state")
32 mixState.defineType(
"mixed", -1)
33 mixState.defineType(
"unmixed", 1)
35 tagFlav = ROOT.RooCategory(
"tagFlav",
"Flavour of the tagged B0")
36 tagFlav.defineType(
"B0", 1)
37 tagFlav.defineType(
"B0bar", -1)
40 tm = ROOT.RooTruthModel(
"tm",
"truth model", dt)
43 bmix = ROOT.RooBMixDecay(
54 ROOT.RooBMixDecay.DoubleSided)
60 data = bmix.generate(ROOT.RooArgSet(dt, mixState, tagFlav), 10000)
65 frame1 = dt.frame(ROOT.RooFit.Title(
66 "B decay distribution with mixing (B0/B0bar)"))
68 data.plotOn(frame1, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
69 bmix.plotOn(frame1, ROOT.RooFit.Slice(tagFlav,
"B0"))
71 data.plotOn(frame1, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
72 ROOT.RooFit.MarkerColor(ROOT.kCyan))
73 bmix.plotOn(frame1, ROOT.RooFit.Slice(tagFlav,
"B0bar"),
74 ROOT.RooFit.LineColor(ROOT.kCyan))
77 frame2 = dt.frame(ROOT.RooFit.Title(
78 "B decay distribution of mixed events (B0/B0bar)"))
80 data.plotOn(frame2, ROOT.RooFit.Cut(
81 "mixState==mixState::mixed&&tagFlav==tagFlav::B0"))
82 bmix.plotOn(frame2, ROOT.RooFit.Slice(tagFlav,
"B0"),
83 ROOT.RooFit.Slice(mixState,
"mixed"))
87 ROOT.RooFit.Cut(
"mixState==mixState::mixed&&tagFlav==tagFlav::B0bar"),
88 ROOT.RooFit.MarkerColor(
90 bmix.plotOn(frame2, ROOT.RooFit.Slice(tagFlav,
"B0bar"), ROOT.RooFit.Slice(
91 mixState,
"mixed"), ROOT.RooFit.LineColor(ROOT.kCyan))
94 frame3 = dt.frame(ROOT.RooFit.Title(
95 "B decay distribution of unmixed events (B0/B0bar)"))
97 data.plotOn(frame3, ROOT.RooFit.Cut(
98 "mixState==mixState::unmixed&&tagFlav==tagFlav::B0"))
99 bmix.plotOn(frame3, ROOT.RooFit.Slice(tagFlav,
"B0"),
100 ROOT.RooFit.Slice(mixState,
"unmixed"))
104 ROOT.RooFit.Cut(
"mixState==mixState::unmixed&&tagFlav==tagFlav::B0bar"),
105 ROOT.RooFit.MarkerColor(
107 bmix.plotOn(frame3, ROOT.RooFit.Slice(tagFlav,
"B0bar"), ROOT.RooFit.Slice(
108 mixState,
"unmixed"), ROOT.RooFit.LineColor(ROOT.kCyan))
117 CPeigen = ROOT.RooRealVar(
"CPeigen",
"CP eigen value", -1)
118 absLambda = ROOT.RooRealVar(
"absLambda",
"|lambda|", 1, 0, 2)
119 argLambda = ROOT.RooRealVar(
"absLambda",
"|lambda|", 0.7, -1, 1)
120 effR = ROOT.RooRealVar(
"effR",
"B0/B0bar reco efficiency ratio", 1)
123 bcp = ROOT.RooBCPEffDecay(
137 ROOT.RooBCPEffDecay.DoubleSided)
143 data2 = bcp.generate(ROOT.RooArgSet(dt, tagFlav), 10000)
146 frame4 = dt.frame(ROOT.RooFit.Title(
147 "B decay distribution with CPV(|l|=1,Im(l)=0.7) (B0/B0bar)"))
149 data2.plotOn(frame4, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
150 bcp.plotOn(frame4, ROOT.RooFit.Slice(tagFlav,
"B0"))
152 data2.plotOn(frame4, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
153 ROOT.RooFit.MarkerColor(ROOT.kCyan))
154 bcp.plotOn(frame4, ROOT.RooFit.Slice(tagFlav,
"B0bar"),
155 ROOT.RooFit.LineColor(ROOT.kCyan))
160 absLambda.setVal(0.7)
163 data3 = bcp.generate(ROOT.RooArgSet(dt, tagFlav), 10000)
167 frame5 = dt.frame(ROOT.RooFit.Title(
168 "B decay distribution with CPV(|l|=0.7,Im(l)=0.7) (B0/B0bar)"))
170 data3.plotOn(frame5, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
171 bcp.plotOn(frame5, ROOT.RooFit.Slice(tagFlav,
"B0"))
173 data3.plotOn(frame5, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
174 ROOT.RooFit.MarkerColor(ROOT.kCyan))
175 bcp.plotOn(frame5, ROOT.RooFit.Slice(tagFlav,
"B0bar"),
176 ROOT.RooFit.LineColor(ROOT.kCyan))
186 DGbG = ROOT.RooRealVar(
"DGbG",
"DGamma/GammaAvg", 0.5, -1, 1)
187 Adir = ROOT.RooRealVar(
"Adir",
"-[1-abs(l)**2]/[1+abs(l)**2]", 0)
188 Amix = ROOT.RooRealVar(
"Amix",
"2Im(l)/[1+abs(l)**2]", 0.7)
189 Adel = ROOT.RooRealVar(
"Adel",
"2Re(l)/[1+abs(l)**2]", 0.7)
192 DG = ROOT.RooFormulaVar(
"DG",
"Delta Gamma",
"@1/@0",
193 ROOT.RooArgList(tau, DGbG))
197 fsin = ROOT.RooFormulaVar(
198 "fsin",
"fsin",
"@0*@1*(1-2*@2)", ROOT.RooArgList(Amix, tagFlav, w))
199 fcos = ROOT.RooFormulaVar(
200 "fcos",
"fcos",
"@0*@1*(1-2*@2)", ROOT.RooArgList(Adir, tagFlav, w))
201 fsinh = ROOT.RooFormulaVar(
"fsinh",
"fsinh",
"@0", ROOT.RooArgList(Adel))
204 bcpg = ROOT.RooBDecay(
"bcpg",
"bcpg", dt, tau, DG, ROOT.RooFit.RooConst(
205 1), fsinh, fcos, fsin, dm, tm, ROOT.RooBDecay.DoubleSided)
211 data4 = bcpg.generate(ROOT.RooArgSet(dt, tagFlav), 10000)
214 frame6 = dt.frame(ROOT.RooFit.Title(
215 "B decay distribution with CPV(Im(l)=0.7,Re(l)=0.7,|l|=1,dG/G=0.5) (B0/B0bar)"))
217 data4.plotOn(frame6, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
218 bcpg.plotOn(frame6, ROOT.RooFit.Slice(tagFlav,
"B0"))
220 data4.plotOn(frame6, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
221 ROOT.RooFit.MarkerColor(ROOT.kCyan))
222 bcpg.plotOn(frame6, ROOT.RooFit.Slice(tagFlav,
"B0bar"),
223 ROOT.RooFit.LineColor(ROOT.kCyan))
225 c = ROOT.TCanvas(
"rf708_bphysics",
"rf708_bphysics", 1200, 800)
228 ROOT.gPad.SetLeftMargin(0.15)
229 frame1.GetYaxis().SetTitleOffset(1.6)
232 ROOT.gPad.SetLeftMargin(0.15)
233 frame2.GetYaxis().SetTitleOffset(1.6)
236 ROOT.gPad.SetLeftMargin(0.15)
237 frame3.GetYaxis().SetTitleOffset(1.6)
240 ROOT.gPad.SetLeftMargin(0.15)
241 frame4.GetYaxis().SetTitleOffset(1.6)
244 ROOT.gPad.SetLeftMargin(0.15)
245 frame5.GetYaxis().SetTitleOffset(1.6)
248 ROOT.gPad.SetLeftMargin(0.15)
249 frame6.GetYaxis().SetTitleOffset(1.6)
252 c.SaveAs(
"rf708_bphysics.png")