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")
 
   31mixState.defineType(
"mixed", -1)
 
   32mixState.defineType(
"unmixed", 1)
 
   34tagFlav = ROOT.RooCategory(
"tagFlav", 
"Flavour of the tagged B0")
 
   35tagFlav.defineType(
"B0", 1)
 
   36tagFlav.defineType(
"B0bar", -1)
 
   39tm = ROOT.RooTruthModel(
"tm", 
"truth model", dt)
 
   42bmix = ROOT.RooBMixDecay(
 
   53    ROOT.RooBMixDecay.DoubleSided)
 
   59data = bmix.generate(ROOT.RooArgSet(dt, mixState, tagFlav), 10000)
 
   64frame1 = dt.frame(ROOT.RooFit.Title(
 
   65    "B decay distribution with mixing (B0/B0bar)"))
 
   67data.plotOn(frame1, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
 
   68bmix.plotOn(frame1, ROOT.RooFit.Slice(tagFlav, 
"B0"))
 
   70data.plotOn(frame1, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
 
   71            ROOT.RooFit.MarkerColor(ROOT.kCyan))
 
   72bmix.plotOn(frame1, ROOT.RooFit.Slice(tagFlav, 
"B0bar"),
 
   73            ROOT.RooFit.LineColor(ROOT.kCyan))
 
   76frame2 = dt.frame(ROOT.RooFit.Title(
 
   77    "B decay distribution of mixed events (B0/B0bar)"))
 
   79data.plotOn(frame2, ROOT.RooFit.Cut(
 
   80    "mixState==mixState::mixed&&tagFlav==tagFlav::B0"))
 
   81bmix.plotOn(frame2, ROOT.RooFit.Slice(tagFlav, 
"B0"),
 
   82            ROOT.RooFit.Slice(mixState, 
"mixed"))
 
   86    ROOT.RooFit.Cut(
"mixState==mixState::mixed&&tagFlav==tagFlav::B0bar"),
 
   87    ROOT.RooFit.MarkerColor(
 
   89bmix.plotOn(frame2, ROOT.RooFit.Slice(tagFlav, 
"B0bar"), ROOT.RooFit.Slice(
 
   90    mixState, 
"mixed"), ROOT.RooFit.LineColor(ROOT.kCyan))
 
   93frame3 = dt.frame(ROOT.RooFit.Title(
 
   94    "B decay distribution of unmixed events (B0/B0bar)"))
 
   96data.plotOn(frame3, ROOT.RooFit.Cut(
 
   97    "mixState==mixState::unmixed&&tagFlav==tagFlav::B0"))
 
   98bmix.plotOn(frame3, ROOT.RooFit.Slice(tagFlav, 
"B0"),
 
   99            ROOT.RooFit.Slice(mixState, 
"unmixed"))
 
  103    ROOT.RooFit.Cut(
"mixState==mixState::unmixed&&tagFlav==tagFlav::B0bar"),
 
  104    ROOT.RooFit.MarkerColor(
 
  106bmix.plotOn(frame3, ROOT.RooFit.Slice(tagFlav, 
"B0bar"), ROOT.RooFit.Slice(
 
  107    mixState, 
"unmixed"), ROOT.RooFit.LineColor(ROOT.kCyan))
 
  116CPeigen = ROOT.RooRealVar(
"CPeigen", 
"CP eigen value", -1)
 
  117absLambda = ROOT.RooRealVar(
"absLambda", 
"|lambda|", 1, 0, 2)
 
  118argLambda = ROOT.RooRealVar(
"absLambda", 
"|lambda|", 0.7, -1, 1)
 
  119effR = ROOT.RooRealVar(
"effR", 
"B0/B0bar reco efficiency ratio", 1)
 
  122bcp = ROOT.RooBCPEffDecay(
 
  136    ROOT.RooBCPEffDecay.DoubleSided)
 
  142data2 = bcp.generate(ROOT.RooArgSet(dt, tagFlav), 10000)
 
  145frame4 = dt.frame(ROOT.RooFit.Title(
 
  146    "B decay distribution with CPV(|l|=1,Im(l)=0.7) (B0/B0bar)"))
 
  148data2.plotOn(frame4, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
 
  149bcp.plotOn(frame4, ROOT.RooFit.Slice(tagFlav, 
"B0"))
 
  151data2.plotOn(frame4, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
 
  152             ROOT.RooFit.MarkerColor(ROOT.kCyan))
 
  153bcp.plotOn(frame4, ROOT.RooFit.Slice(tagFlav, 
"B0bar"),
 
  154           ROOT.RooFit.LineColor(ROOT.kCyan))
 
  162data3 = bcp.generate(ROOT.RooArgSet(dt, tagFlav), 10000)
 
  166frame5 = dt.frame(ROOT.RooFit.Title(
 
  167    "B decay distribution with CPV(|l|=0.7,Im(l)=0.7) (B0/B0bar)"))
 
  169data3.plotOn(frame5, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
 
  170bcp.plotOn(frame5, ROOT.RooFit.Slice(tagFlav, 
"B0"))
 
  172data3.plotOn(frame5, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
 
  173             ROOT.RooFit.MarkerColor(ROOT.kCyan))
 
  174bcp.plotOn(frame5, ROOT.RooFit.Slice(tagFlav, 
"B0bar"),
 
  175           ROOT.RooFit.LineColor(ROOT.kCyan))
 
  185DGbG = ROOT.RooRealVar(
"DGbG", 
"DGamma/GammaAvg", 0.5, -1, 1)
 
  186Adir = ROOT.RooRealVar(
"Adir", 
"-[1-abs(l)**2]/[1+abs(l)**2]", 0)
 
  187Amix = ROOT.RooRealVar(
"Amix", 
"2Im(l)/[1+abs(l)**2]", 0.7)
 
  188Adel = ROOT.RooRealVar(
"Adel", 
"2Re(l)/[1+abs(l)**2]", 0.7)
 
  191DG = ROOT.RooFormulaVar(
"DG", 
"Delta Gamma", 
"@1/@0",
 
  192                        ROOT.RooArgList(tau, DGbG))
 
  196fsin = ROOT.RooFormulaVar(
 
  197    "fsin", 
"fsin", 
"@0*@1*(1-2*@2)", ROOT.RooArgList(Amix, tagFlav, w))
 
  198fcos = ROOT.RooFormulaVar(
 
  199    "fcos", 
"fcos", 
"@0*@1*(1-2*@2)", ROOT.RooArgList(Adir, tagFlav, w))
 
  200fsinh = ROOT.RooFormulaVar(
"fsinh", 
"fsinh", 
"@0", ROOT.RooArgList(Adel))
 
  203bcpg = ROOT.RooBDecay(
"bcpg", 
"bcpg", dt, tau, DG, ROOT.RooFit.RooConst(
 
  204    1), fsinh, fcos, fsin, dm, tm, ROOT.RooBDecay.DoubleSided)
 
  210data4 = bcpg.generate(ROOT.RooArgSet(dt, tagFlav), 10000)
 
  213frame6 = dt.frame(ROOT.RooFit.Title(
 
  214    "B decay distribution with CPV(Im(l)=0.7,Re(l)=0.7,|l|=1,dG/G=0.5) (B0/B0bar)"))
 
  216data4.plotOn(frame6, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0"))
 
  217bcpg.plotOn(frame6, ROOT.RooFit.Slice(tagFlav, 
"B0"))
 
  219data4.plotOn(frame6, ROOT.RooFit.Cut(
"tagFlav==tagFlav::B0bar"),
 
  220             ROOT.RooFit.MarkerColor(ROOT.kCyan))
 
  221bcpg.plotOn(frame6, ROOT.RooFit.Slice(tagFlav, 
"B0bar"),
 
  222            ROOT.RooFit.LineColor(ROOT.kCyan))
 
  224c = ROOT.TCanvas(
"rf708_bphysics", 
"rf708_bphysics", 1200, 800)
 
  227ROOT.gPad.SetLeftMargin(0.15)
 
  228frame1.GetYaxis().SetTitleOffset(1.6)
 
  231ROOT.gPad.SetLeftMargin(0.15)
 
  232frame2.GetYaxis().SetTitleOffset(1.6)
 
  235ROOT.gPad.SetLeftMargin(0.15)
 
  236frame3.GetYaxis().SetTitleOffset(1.6)
 
  239ROOT.gPad.SetLeftMargin(0.15)
 
  240frame4.GetYaxis().SetTitleOffset(1.6)
 
  243ROOT.gPad.SetLeftMargin(0.15)
 
  244frame5.GetYaxis().SetTitleOffset(1.6)
 
  247ROOT.gPad.SetLeftMargin(0.15)
 
  248frame6.GetYaxis().SetTitleOffset(1.6)
 
  251c.SaveAs(
"rf708_bphysics.png")