24 using namespace RooFit;
36 RooRealVar dt(
"dt",
"dt", -10, 10);
40 RooRealVar dm(
"dm",
"delta m(B0)", 0.472);
41 RooRealVar tau(
"tau",
"tau (B0)", 1.547);
42 RooRealVar w(
"w",
"flavour mistag rate", 0.1);
43 RooRealVar dw(
"dw",
"delta mistag rate for B0/B0bar", 0.1);
45 RooCategory mixState(
"mixState",
"B0/B0bar mixing state");
46 mixState.defineType(
"mixed", -1);
47 mixState.defineType(
"unmixed", 1);
49 RooCategory tagFlav(
"tagFlav",
"Flavour of the tagged B0");
50 tagFlav.defineType(
"B0", 1);
51 tagFlav.defineType(
"B0bar", -1);
54 RooTruthModel truthModel(
"tm",
"truth model", dt);
57 RooBMixDecay bmix(
"bmix",
"decay", dt, mixState, tagFlav, tau, dm, w, dw, truthModel, RooBMixDecay::DoubleSided);
63 RooDataSet *data = bmix.generate(RooArgSet(dt, mixState, tagFlav), 10000);
68 RooPlot *frame1 = dt.frame(Title(
"B decay distribution with mixing (B0/B0bar)"));
70 data->plotOn(frame1, Cut(
"tagFlav==tagFlav::B0"));
71 bmix.plotOn(frame1, Slice(tagFlav,
"B0"));
73 data->plotOn(frame1, Cut(
"tagFlav==tagFlav::B0bar"), MarkerColor(kCyan));
74 bmix.plotOn(frame1, Slice(tagFlav,
"B0bar"), LineColor(kCyan));
77 RooPlot *frame2 = dt.frame(Title(
"B decay distribution of mixed events (B0/B0bar)"));
79 data->plotOn(frame2, Cut(
"mixState==mixState::mixed&&tagFlav==tagFlav::B0"));
80 bmix.plotOn(frame2, Slice(tagFlav,
"B0"), Slice(mixState,
"mixed"));
82 data->plotOn(frame2, Cut(
"mixState==mixState::mixed&&tagFlav==tagFlav::B0bar"), MarkerColor(kCyan));
83 bmix.plotOn(frame2, Slice(tagFlav,
"B0bar"), Slice(mixState,
"mixed"), LineColor(kCyan));
86 RooPlot *frame3 = dt.frame(Title(
"B decay distribution of unmixed events (B0/B0bar)"));
88 data->plotOn(frame3, Cut(
"mixState==mixState::unmixed&&tagFlav==tagFlav::B0"));
89 bmix.plotOn(frame3, Slice(tagFlav,
"B0"), Slice(mixState,
"unmixed"));
91 data->plotOn(frame3, Cut(
"mixState==mixState::unmixed&&tagFlav==tagFlav::B0bar"), MarkerColor(kCyan));
92 bmix.plotOn(frame3, Slice(tagFlav,
"B0bar"), Slice(mixState,
"unmixed"), LineColor(kCyan));
102 RooRealVar CPeigen(
"CPeigen",
"CP eigen value", -1);
103 RooRealVar absLambda(
"absLambda",
"|lambda|", 1, 0, 2);
104 RooRealVar argLambda(
"absLambda",
"|lambda|", 0.7, -1, 1);
105 RooRealVar effR(
"effR",
"B0/B0bar reco efficiency ratio", 1);
108 RooBCPEffDecay bcp(
"bcp",
"bcp", dt, tagFlav, tau, dm, w, CPeigen, absLambda, argLambda, effR, dw, truthModel,
109 RooBCPEffDecay::DoubleSided);
115 RooDataSet *data2 = bcp.generate(RooArgSet(dt, tagFlav), 10000);
118 RooPlot *frame4 = dt.frame(Title(
"B decay distribution with CPV(|l|=1,Im(l)=0.7) (B0/B0bar)"));
120 data2->plotOn(frame4, Cut(
"tagFlav==tagFlav::B0"));
121 bcp.plotOn(frame4, Slice(tagFlav,
"B0"));
123 data2->plotOn(frame4, Cut(
"tagFlav==tagFlav::B0bar"), MarkerColor(kCyan));
124 bcp.plotOn(frame4, Slice(tagFlav,
"B0bar"), LineColor(kCyan));
132 RooDataSet *data3 = bcp.generate(RooArgSet(dt, tagFlav), 10000);
135 RooPlot *frame5 = dt.frame(Title(
"B decay distribution with CPV(|l|=0.7,Im(l)=0.7) (B0/B0bar)"));
137 data3->plotOn(frame5, Cut(
"tagFlav==tagFlav::B0"));
138 bcp.plotOn(frame5, Slice(tagFlav,
"B0"));
140 data3->plotOn(frame5, Cut(
"tagFlav==tagFlav::B0bar"), MarkerColor(kCyan));
141 bcp.plotOn(frame5, Slice(tagFlav,
"B0bar"), LineColor(kCyan));
151 RooRealVar DGbG(
"DGbG",
"DGamma/GammaAvg", 0.5, -1, 1);
152 RooRealVar Adir(
"Adir",
"-[1-abs(l)**2]/[1+abs(l)**2]", 0);
153 RooRealVar Amix(
"Amix",
"2Im(l)/[1+abs(l)**2]", 0.7);
154 RooRealVar Adel(
"Adel",
"2Re(l)/[1+abs(l)**2]", 0.7);
157 RooFormulaVar DG(
"DG",
"Delta Gamma",
"@1/@0", RooArgList(tau, DGbG));
160 RooFormulaVar fsin(
"fsin",
"fsin",
"@0*@1*(1-2*@2)", RooArgList(Amix, tagFlav, w));
161 RooFormulaVar fcos(
"fcos",
"fcos",
"@0*@1*(1-2*@2)", RooArgList(Adir, tagFlav, w));
162 RooFormulaVar fsinh(
"fsinh",
"fsinh",
"@0", RooArgList(Adel));
165 RooBDecay bcpg(
"bcpg",
"bcpg", dt, tau, DG, RooConst(1), fsinh, fcos, fsin, dm, truthModel, RooBDecay::DoubleSided);
171 RooDataSet *data4 = bcpg.generate(RooArgSet(dt, tagFlav), 10000);
174 RooPlot *frame6 = dt.frame(Title(
"B decay distribution with CPV(Im(l)=0.7,Re(l)=0.7,|l|=1,dG/G=0.5) (B0/B0bar)"));
176 data4->plotOn(frame6, Cut(
"tagFlav==tagFlav::B0"));
177 bcpg.plotOn(frame6, Slice(tagFlav,
"B0"));
179 data4->plotOn(frame6, Cut(
"tagFlav==tagFlav::B0bar"), MarkerColor(kCyan));
180 bcpg.plotOn(frame6, Slice(tagFlav,
"B0bar"), LineColor(kCyan));
182 TCanvas *c =
new TCanvas(
"rf708_bphysics",
"rf708_bphysics", 1200, 800);
185 gPad->SetLeftMargin(0.15);
186 frame1->GetYaxis()->SetTitleOffset(1.6);
189 gPad->SetLeftMargin(0.15);
190 frame2->GetYaxis()->SetTitleOffset(1.6);
193 gPad->SetLeftMargin(0.15);
194 frame3->GetYaxis()->SetTitleOffset(1.6);
197 gPad->SetLeftMargin(0.15);
198 frame4->GetYaxis()->SetTitleOffset(1.6);
201 gPad->SetLeftMargin(0.15);
202 frame5->GetYaxis()->SetTitleOffset(1.6);
205 gPad->SetLeftMargin(0.15);
206 frame6->GetYaxis()->SetTitleOffset(1.6);