5 List of functions to skim events containing :math:`B\\to X_c + h` decays,
6 where :math:`X_c` stays for :math:`D^0`, :math:`D^{\\pm}`, :math:`D^{*0}` and :math:`D^{*\\pm}`,
7 and :math:`h` stays for :math:`\\pi^{\\pm}`, :math:`K^{\\pm}`, :math:`\\rho^{\\pm}` and :math:`a_1^{\\pm}`.
18 import modularAnalysis
as ma
19 from skim.standardlists.charm
import (loadD0_hh_loose, loadD0_Kshh_loose,
20 loadD0_Kspi0_loose, loadD0_Kspipipi0,
21 loadKForBtoHadrons, loadPiForBtoHadrons,
22 loadStdD0_Kpi, loadStdD0_Kpipi0,
23 loadStdD0_Kpipipi, loadStdDplus_Kpipi,
25 loadStdDstar0_D0pi0_Kpi,
26 loadStdDstar0_D0pi0_Kpipi0,
27 loadStdDstar0_D0pi0_Kpipipi,
28 loadStdDstarPlus_D0pi_Kpi,
29 loadStdDstarPlus_D0pi_Kpipi0,
30 loadStdDstarPlus_D0pi_Kpipipi,
31 loadStdDstarPlus_Dpi0_Kpipi,
32 loadCharmlessD0_Kpipi0)
33 from skim.standardlists.lightmesons
import (loadStdAllRhoPlus,
34 loadStdPi0ForBToHadrons)
35 from skim.standardlists.charmless
import (loadStdPi0ForBToCharmless,
36 loadStdVeryLooseTracks)
37 from skimExpertFunctions
import BaseSkim, fancy_skim_header
38 from stdCharged
import stdK, stdPi
39 from stdPi0s
import stdPi0s
40 from stdV0s
import stdKshorts
42 __liaison__ =
"Yi Zhang <yi.zhang2@desy.de>"
48 Reconstructed decay modes:
50 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 \\pi^0) \\pi^+`,
51 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 \\pi^0) K^+`,
55 * ``1.5 < M_D0 < 2.2``
57 * ``abs(deltaE) < 0.3``
60 This skim uses `skim.standardlists.charm.loadD0_Kspi0_loose`, where :math:`D^0`
63 __authors__ = [
"Minakshi Nayak"]
65 __contact__ = __liaison__
66 __category__ =
"physics, hadronic B to charm"
68 ApplyHLTHadronCut =
True
71 stdK(
"all", path=path)
72 stdPi(
"all", path=path)
74 loadStdPi0ForBToHadrons(path=path)
75 loadD0_Kspi0_loose(path=path)
78 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
80 BsigChannels = [
"anti-D0:Kspi0 pi+:all",
81 "anti-D0:Kspi0 K+:all"]
83 for chID, channel
in enumerate(BsigChannels):
84 ma.reconstructDecay(
"B+:BtoD0h_Kspi0" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
85 BsigList.append(
"B+:BtoD0h_Kspi0" + str(chID))
90 ma.reconstructDecay(
'D0 -> K_S0:merged pi0:veryLooseFit',
'1.84 < M < 1.89', path=path)
91 ma.reconstructDecay(
'B-:ch3 ->D0 K-:all',
'5.24 < Mbc < 5.3 and abs(deltaE) < 0.15', path=path)
94 ma.variablesToHistogram(
95 filename=
'BtoDh_Kspi0_Validation.root',
98 (
'Mbc', 100, 5.2, 5.3),
99 (
'deltaE', 100, -1, 1),
100 (
'daughter(0, InvM)', 100, 1.8, 1.9)],
102 (
'Mbc', 50, 5.23, 5.31,
'deltaE', 50, -0.7, 0.7)], path=path)
108 Reconstructed decay modes:
110 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 \\pi^+ \\pi^- \\pi^0) \\pi^+`,
111 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 \\pi^+ \\pi^- \\pi^0) K^+`,
115 * ``1.8 < M_D0 < 1.9``
117 * ``abs(deltaE) < 0.2``
120 This skim uses `skim.standardlists.charm.loadD0_Kspipipi0`, where :math:`D^0`
121 channels are defined.
124 __authors__ = [
"Niharika Rout"]
126 __contact__ = __liaison__
127 __category__ =
"physics, hadronic B to charm"
129 ApplyHLTHadronCut =
True
130 produce_on_tau_samples =
False
133 stdK(
"all", path=path)
134 stdPi(
"all", path=path)
135 stdPi0s(
"eff40_Jan2020Fit", path=path)
136 stdKshorts(path=path)
137 loadStdPi0ForBToHadrons(path=path)
138 loadPiForBtoHadrons(path=path)
139 loadD0_Kspipipi0(path=path)
142 Bcuts =
"Mbc > 5.25 and abs(deltaE) < 0.2"
144 BsigChannels = [
"anti-D0:Kspipipi0 pi+:all",
145 "anti-D0:Kspipipi0 K+:all"
148 for chID, channel
in enumerate(BsigChannels):
149 ma.reconstructDecay(
"B+:BtoD0h_Kspipipi0" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
150 BsigList.append(
"B+:BtoD0h_Kspipipi0" + str(chID))
155 ma.reconstructDecay(
'D0 -> K_S0:merged pi-:all pi+:all pi0:eff40_Jan2020Fit',
'1.84 < M < 1.89', path=path)
156 ma.reconstructDecay(
'B-:ch3 ->D0 K-:all',
'5.24 < Mbc < 5.3 and abs(deltaE) < 0.15', path=path)
159 ma.variablesToHistogram(
160 filename=
'BtoDh_Kspipipi0_Validation.root',
161 decayString=
'B-:ch3',
163 (
'Mbc', 100, 5.2, 5.3),
164 (
'deltaE', 100, -1, 1),
165 (
'daughter(0, InvM)', 100, 1.8, 1.9)],
167 (
'Mbc', 50, 5.23, 5.31,
'deltaE', 50, -0.7, 0.7)], path=path)
173 Reconstructed decay modes:
175 * :math:`B^{0}\\to D^{-} (D^{0} \\to K^+ \\pi^- \\pi^-) \\pi^+`
180 * ``abs(deltaE) < 0.3``
183 This skim uses `skim.standardlists.charm.loadStdDplus_Kpipi`, where :math:`D^-`
187 __authors__ = [
"Chiara La Licata"]
189 __contact__ = __liaison__
190 __category__ =
"physics, hadronic B to charm"
192 ApplyHLTHadronCut =
True
195 loadPiForBtoHadrons(path=path)
196 loadKForBtoHadrons(path=path)
197 loadStdDplus_Kpipi(path=path)
200 Bcuts =
"5.2 < Mbc and abs(deltaE) < 0.3"
201 ma.reconstructDecay(
"B0:Dpi_Kpipi -> D-:Kpipi pi+:GoodTrack", Bcuts, 0, path=path)
209 Reconstructed decay modes:
211 * :math:`B^{0}\\to D^{-} (\\to K_{\\rm S}^0 \\pi^-) \\pi^+`,
215 * ``1.8 < M_D < 1.9``
217 * ``abs(deltaE) < 0.3``
220 This skim uses `stdV0s.stdKshorts` and
221 `skim.standardlists.charm.loadStdDplus_Kpipi`, where :math:`D^0` channels are defined.
224 __authors__ = [
"Fernando Abudinen",
"Chiara La Licata"]
226 __contact__ = __liaison__
227 __category__ =
"physics, hadronic B to charm"
229 ApplyHLTHadronCut =
True
230 produce_on_tau_samples =
False
233 stdKshorts(path=path)
234 loadStdPi0ForBToHadrons(path=path)
235 loadPiForBtoHadrons(path=path)
236 loadStdDplus_Kspi(path=path)
239 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
240 ma.reconstructDecay(
"B0:B0toDpi_Kspi -> D-:Kspi pi+:GoodTrack", Bcuts, 1, path=path)
248 Reconstructed decay modes:
250 * :math:`B^{0}\\to D^{*-} (D^{0} \\to K^+ \\pi^-) \\pi^+`
255 * ``abs(deltaE) < 0.3``
258 This skim uses `skim.standardlists.charm.loadStdDstarPlus_D0pi_Kpi`, where the
259 :math:`D^{*-}` channel is defined.
262 __authors__ = [
"Chiara La Licata"]
264 __contact__ = __liaison__
265 __category__ =
"physics, hadronic B to charm"
267 ApplyHLTHadronCut =
True
268 produce_on_tau_samples =
False
271 loadPiForBtoHadrons(path=path)
272 loadKForBtoHadrons(path=path)
273 loadStdD0_Kpi(path=path)
274 loadStdDstarPlus_D0pi_Kpi(path=path)
277 Bcuts =
"5.2 < Mbc and abs(deltaE) < 0.3"
278 ma.reconstructDecay(
"B0:Dstarpi_Kpi -> D*-:D0_Kpi pi+:GoodTrack", Bcuts, 0, path=path)
286 Reconstructed decay modes:
288 * :math:`B^{0}\\to \\overline{D}^{*-} (\\to \\overline{D}^{0}
289 (\\to K^+ \\pi^- \\pi^- \\pi^+, K^+\\pi^-\\pi^0) \\pi^-) \\pi^+`
294 * ``abs(deltaE) < 0.3``
297 __authors__ = [
"Chiara La Licata"]
299 __contact__ = __liaison__
300 __category__ =
"physics, hadronic B to charm"
302 ApplyHLTHadronCut =
True
303 produce_on_tau_samples =
False
306 loadStdPi0ForBToHadrons(path=path)
307 loadPiForBtoHadrons(path=path)
308 loadKForBtoHadrons(path=path)
309 loadStdD0_Kpipi0(path=path)
310 loadStdD0_Kpipipi(path=path)
311 loadStdDstarPlus_D0pi_Kpipi0(path=path)
312 loadStdDstarPlus_D0pi_Kpipipi(path=path)
315 Bcuts =
"5.2 < Mbc and abs(deltaE) < 0.3"
317 "D*-:D0_Kpipipi pi+:GoodTrack",
318 "D*-:D0_Kpipi0 pi+:GoodTrack"
322 for chID, channel
in enumerate(BsigChannels):
323 ma.reconstructDecay(
"B0:Dstarpi_Kpipipi_Kpipi0" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
324 BsigList.append(
"B0:Dstarpi_Kpipipi_Kpipi0" + str(chID))
332 Reconstructed decay modes:
334 * :math:`B^{0}\\to D^{-} (\\to K^+ \\pi^- \\pi^-) \\rho^+`,
338 * ``1.8 < M_D < 1.9``
339 * ``0.47 < M_rho < 1.07``
341 * ``abs(deltaE) < 0.3``
344 This skim uses `skim.standardlists.charm.loadStdDplus_Kpipi`, where :math:`D^0` channels
345 are defined, and `skim.standardlists.lightmesons.loadStdAllRhoPlus`.
348 __authors__ = [
"Fernando Abudinen"]
350 __contact__ = __liaison__
351 __category__ =
"physics, hadronic B to charm"
353 ApplyHLTHadronCut =
True
356 stdPi(
"all", path=path)
357 loadPiForBtoHadrons(path=path)
358 loadKForBtoHadrons(path=path)
359 loadStdDplus_Kpipi(path=path)
360 loadStdPi0ForBToHadrons(path=path)
361 loadStdAllRhoPlus(path=path)
364 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
365 ma.reconstructDecay(
"B0:B0toDrho_Kpipi -> D-:Kpipi rho+:all", Bcuts, 1, path=path)
373 Reconstructed decay modes:
375 * :math:`B^{0}\\to D^{-} (\\to K_{\\rm S}^0 \\pi^-) \\rho^+`,
379 * ``1.8 < M_D < 1.9``
380 * ``0.47 < M_rho < 1.07``
382 * ``abs(deltaE) < 0.3``
385 This skim uses `stdV0s.stdKshorts` and
386 `skim.standardlists.charm.loadStdDplus_Kspi`, where :math:`D^0` channels are defined, and
387 `skim.standardlists.lightmesons.loadStdAllRhoPlus`.
390 __authors__ = [
"Fernando Abudinen"]
392 __contact__ = __liaison__
393 __category__ =
"physics, hadronic B to charm"
395 ApplyHLTHadronCut =
True
396 produce_on_tau_samples =
False
399 stdPi(
"all", path=path)
400 stdKshorts(path=path)
401 loadPiForBtoHadrons(path=path)
402 loadStdDplus_Kspi(path=path)
403 loadStdPi0ForBToHadrons(path=path)
404 loadStdAllRhoPlus(path=path)
407 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
409 ma.reconstructDecay(
"B0:B0toDrho_Kspi -> D-:Kspi rho+:all", Bcuts, 1, path=path)
417 Reconstructed decay modes:
419 * :math:`B^{0}\\to D^{*-} (\\to \\overline{D}^{0} (\\to K^+ \\pi^-) \\pi^-) \\rho^+`,
423 * ``1.7 < M_D < 2.0``
424 * ``0.47 < M_rho < 1.07``
425 * ``DM_Dstar_D < 0.16``
427 * ``abs(deltaE) < 0.3``
430 This skim uses `skim.standardlists.charm.loadStdD0_Kpi` and
431 `skim.standardlists.charm.loadStdDstarPlus_D0pi_Kpi` where :math:`D^0` channels are
432 defined, and `skim.standardlists.lightmesons.loadStdAllRhoPlus`.
435 __authors__ = [
"Fernando Abudinen"]
437 __contact__ = __liaison__
438 __category__ =
"physics, hadronic B to charm"
440 ApplyHLTHadronCut =
True
441 produce_on_tau_samples =
False
444 stdPi(
"all", path=path)
445 loadStdPi0ForBToHadrons(path=path)
446 loadStdAllRhoPlus(path=path)
447 loadPiForBtoHadrons(path=path)
448 loadKForBtoHadrons(path=path)
449 loadStdD0_Kpi(path=path)
450 loadStdDstarPlus_D0pi_Kpi(path=path)
453 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
454 ma.reconstructDecay(
"B0:BtoDstarRho_D0pi_Kpi -> D*-:D0_Kpi rho+:all", Bcuts, 1, path=path)
456 self.
SkimLists = [
"B0:BtoDstarRho_D0pi_Kpi"]
462 Reconstructed decay modes:
464 * :math:`B^{0}\\to D^{*-} (\\to \\overline{D}^{0}
465 (\\to K^+2\\pi^-\\pi^+, K^+\\pi^-\\pi^0)\\pi^-) \\rho^+`,
469 * ``1.7 < M_D < 2.0``
470 * ``0.47 < M_rho < 1.07``
471 * ``DM_Dstar_D < 0.16``
473 * ``abs(deltaE) < 0.3``
476 This skim uses `skim.standardlists.charm.loadStdD0_Kpipi0`,
477 `skim.standardlists.charm.loadStdD0_Kpipipi`,
478 `skim.standardlists.charm.loadStdDstarPlus_D0pi_Kpipi0` and
479 `skim.standardlists.charm.loadStdDstarPlus_D0pi_Kpipipi` where :math:`D^0`
480 channels are defined, and `skim.standardlists.lightmesons.loadStdAllRhoPlus`.
483 __authors__ = [
"Fernando Abudinen"]
485 __contact__ = __liaison__
486 __category__ =
"physics, hadronic B to charm"
488 ApplyHLTHadronCut =
True
489 produce_on_tau_samples =
False
492 stdPi(
"all", path=path)
493 loadStdPi0ForBToHadrons(path=path)
494 loadStdAllRhoPlus(path=path)
495 loadPiForBtoHadrons(path=path)
496 loadKForBtoHadrons(path=path)
497 loadStdD0_Kpipi0(path=path)
498 loadStdD0_Kpipipi(path=path)
499 loadStdDstarPlus_D0pi_Kpipi0(path=path)
500 loadStdDstarPlus_D0pi_Kpipipi(path=path)
503 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
506 "D*-:D0_Kpipipi rho+:all",
507 "D*-:D0_Kpipi0 rho+:all",
510 for chID, channel
in enumerate(BsigChannels):
511 ma.reconstructDecay(
"B+:B0toDstarRho" + str(chID) +
" -> " + channel, Bcuts, chID, path=path, allowChargeViolation=
True)
512 BsigList.append(
"B+:B0toDstarRho" + str(chID))
520 Skim list definitions for all charged B to charm 2 body decays.
522 Reconstructed decay modes:
524 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+ \\pi^-) \\pi^+`,
525 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^- \\pi^+) \\pi^+`,
526 * :math:`B^{+}\\to \\overline{D}^{0} (\\to \\pi^+ \\pi^-) \\pi^+`,
527 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+ K^-) \\pi^+`,
528 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+ \\pi^-) K^+`,
529 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^- \\pi^+) K^+`,
530 * :math:`B^{+}\\to \\overline{D}^{0} (\\to \\pi^+ \\pi^-) K^+`,
531 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+ K^-) K^+`,
535 * ``1.5 < M_D0 < 2.2``
537 * ``abs(deltaE) < 0.3``
540 This skim uses `skim.standardlists.charm.loadD0_hh_loose`, where :math:`D^0`
541 channels are defined.
544 __authors__ = [
"Hulya Atmacan"]
546 __contact__ = __liaison__
547 __category__ =
"physics, hadronic B to charm"
549 ApplyHLTHadronCut =
True
552 loadPiForBtoHadrons(path=path)
553 loadKForBtoHadrons(path=path)
554 loadD0_hh_loose(path=path)
557 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
560 "anti-D0:hh pi+:GoodTrack",
561 "anti-D0:hh K+:GoodTrack"
564 for chID, channel
in enumerate(BsigChannels):
565 ma.reconstructDecay(
"B+:BtoD0h_hh" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
566 BsigList.append(
"B+:BtoD0h_hh" + str(chID))
571 ma.reconstructDecay(
'D0 -> K-:GoodTrack pi+:GoodTrack',
'1.84 < M < 1.89', path=path)
572 ma.reconstructDecay(
'B-:ch3 ->D0 K-:GoodTrack',
'5.24 < Mbc < 5.3 and abs(deltaE) < 0.15', path=path)
576 ma.variablesToHistogram(
577 filename=
'BtoDh_hh_Validation.root',
578 decayString=
'B-:ch3',
580 (
'Mbc', 100, 5.2, 5.3),
581 (
'deltaE', 100, -1, 1),
582 (
'daughter(0, InvM)', 100, 1.8, 1.9)],
584 (
'Mbc', 50, 5.23, 5.31,
'deltaE', 50, -0.7, 0.7)], path=path)
590 Skim list definitions for all charged B to charm 3 body decays.
592 Reconstructed decay modes:
594 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+ \\pi^-) \\pi^+`,
595 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+ \\pi^-) K^+`,
599 * ``1.7 < M_D0 < 2.0``
601 * ``abs(deltaE) < 0.5``
604 This skim uses `skim.standardlists.charm.loadStdD0_Kpi`, where :math:`D^0`
605 channels are defined.
608 __authors__ = [
"Niharika Rout"]
610 __contact__ = __liaison__
611 __category__ =
"physics, hadronic B to charm"
613 ApplyHLTHadronCut =
True
616 loadPiForBtoHadrons(path=path)
617 loadKForBtoHadrons(path=path)
618 loadStdD0_Kpi(path=path)
621 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.5"
623 BsigChannels = [
"anti-D0:Kpi pi+:GoodTrack",
624 "anti-D0:Kpi K+:GoodTrack"
627 for chID, channel
in enumerate(BsigChannels):
628 ma.reconstructDecay(
"B+:BtoD0h_Kpi" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
629 BsigList.append(
"B+:BtoD0h_Kpi" + str(chID))
637 Reconstructed decay modes:
639 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+ pi^- pi^- pi^+, \\to K^+ pi^- pi^0) \\pi^+`,
640 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+ pi^- pi^- pi^+, \\to K^+ pi^- pi^0) K^+`,
641 * :math:`B^{+}\\to \\overline{D}^{*0} (\\to \\overline{D}^{0} (\\to K^+2\\pi^-\\pi^+, K^+\\pi^-\\pi^0)
643 * :math:`B^{+}\\to \\overline{D}^{*0} (\\to \\overline{D}^{0} (\\to K^+2\\pi^-\\pi^+, K^+\\pi^-\\pi^0)
648 * ``1.7 < M_D0 < 2.0``
650 * ``abs(deltaE) < 0.3``
653 This skim uses `skim.standardlists.charm.loadStdD0_Kpipipi` and
654 `skim.standardlists.charm.loadStdD0_Kpipi0`, where :math:`D^0` channels are
658 __authors__ = [
"Chiara La Licata"]
660 __contact__ = __liaison__
661 __category__ =
"physics, hadronic B to charm"
663 ApplyHLTHadronCut =
True
666 loadStdPi0ForBToHadrons(path=path)
667 loadPiForBtoHadrons(path=path)
668 loadKForBtoHadrons(path=path)
669 loadStdD0_Kpipi0(path=path)
670 loadStdD0_Kpipipi(path=path)
671 loadStdDstar0_D0pi0_Kpipipi(path=path)
672 loadStdDstar0_D0pi0_Kpipi0(path=path)
675 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
677 BsigChannels = [
"anti-D0:Kpipipi pi+:GoodTrack",
678 "anti-D0:Kpipipi K+:GoodTrack",
679 "anti-D0:Kpipi0 pi+:GoodTrack",
680 "anti-D0:Kpipi0 K+:GoodTrack",
681 "anti-D*0:D0_Kpipipi pi+:GoodTrack",
682 "anti-D*0:D0_Kpipipi K+:GoodTrack",
683 "anti-D*0:D0_Kpipi0 pi+:GoodTrack",
684 "anti-D*0:D0_Kpipi0 K+:GoodTrack"
687 for chID, channel
in enumerate(BsigChannels):
688 ma.reconstructDecay(
"B+:BtoD0h_Khh_Khpi0" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
689 BsigList.append(
"B+:BtoD0h_Khh_Khpi0" + str(chID))
691 ma.copyLists(outputListName=
"B+:BtoD0h_merged", inputListNames=BsigList, path=path)
694 ma.rankByHighest(particleList=
"B+:BtoD0h_merged", variable=
"cos(mdstIndex)", numBest=3,
695 outputVariable=
"cosMdstIndex_rank", path=path)
703 Reconstructed decay modes:
705 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 K^+ \\pi^-) \\pi^+`,
706 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 K^- \\pi^+) \\pi^+`,
707 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 \\pi^+ \\pi^-) \\pi^+`,
708 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 K^+ K^-) \\pi^+`,
709 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 K^+ \\pi^-) K^+`,
710 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 K^- \\pi^+) K^+`,
711 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 \\pi^+ \\pi^-) K^+`,
712 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K_{\\rm S}^0 K^+ K^-) K^+`,
716 * ``1.5 < M_D0 < 2.2``
718 * ``abs(deltaE) < 0.3``
721 This skim uses `skim.standardlists.charm.loadD0_Kshh_loose`, where :math:`D^0`
722 channels are defined.
725 __authors__ = [
"Minakshi Nayak"]
727 __contact__ = __liaison__
728 __category__ =
"physics, hadronic B to charm"
730 ApplyHLTHadronCut =
True
733 stdKshorts(path=path)
734 loadPiForBtoHadrons(path=path)
735 loadKForBtoHadrons(path=path)
736 loadD0_Kshh_loose(path=path)
739 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
741 BsigChannels = [
"anti-D0:Kshh pi+:GoodTrack",
742 "anti-D0:Kshh K+:GoodTrack"
745 for chID, channel
in enumerate(BsigChannels):
746 ma.reconstructDecay(
"B+:BtoD0h_Kshh" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
747 BsigList.append(
"B+:BtoD0h_Kshh" + str(chID))
752 ma.reconstructDecay(
'D0 -> K_S0:merged pi+:GoodTrack pi-:GoodTrack',
'1.84 < M < 1.89', path=path)
753 ma.reconstructDecay(
'B-:ch3 ->D0 K-:GoodTrack',
'5.24 < Mbc < 5.3 and abs(deltaE) < 0.15', path=path)
756 ma.variablesToHistogram(
757 filename=
'BtoDh_Kshh_Validation.root',
758 decayString=
'B-:ch3',
760 (
'Mbc', 100, 5.2, 5.3),
761 (
'deltaE', 100, -1, 1),
762 (
'daughter(0, InvM)', 100, 1.8, 1.9)],
764 (
'Mbc', 50, 5.23, 5.31,
'deltaE', 50, -0.7, 0.7)], path=path)
770 Reconstructed decay modes:
772 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+ \\pi^-) \\rho^+`,
773 * :math:`B^{+}\\to \\overline{D}^{*0} (\\to \\overline{D}^{0} (\\to K^+ \\pi^-) \\pi^0) \\rho^+`,
777 * ``1.7 < M_D0 < 2.0``
778 * ``0.47 < M_rho < 1.07``
779 * ``DM_Dstar_D < 0.16``
781 * ``abs(deltaE) < 0.3``
784 This skim uses `skim.standardlists.charm.loadStdD0_Kpi` and
785 `skim.standardlists.charm.loadStdDstar0_D0pi0_Kpi`, where :math:`D^0` channels
786 are defined, and `skim.standardlists.lightmesons.loadStdAllRhoPlus`.
789 __authors__ = [
"Fernando Abudinen"]
791 __contact__ = __liaison__
792 __category__ =
"physics, hadronic B to charm"
794 ApplyHLTHadronCut =
True
797 stdPi(
"all", path=path)
798 loadStdPi0ForBToHadrons(path=path)
799 loadStdAllRhoPlus(path=path)
800 loadPiForBtoHadrons(path=path)
801 loadKForBtoHadrons(path=path)
802 loadStdD0_Kpi(path=path)
803 loadStdDstar0_D0pi0_Kpi(path=path)
806 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3"
808 BsigChannels = [
"anti-D0:Kpi rho+:all",
809 "anti-D*0:D0_Kpi rho+:all"]
811 for chID, channel
in enumerate(BsigChannels):
812 ma.reconstructDecay(
"B+:BtoD0rho_Kpi" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
813 BsigList.append(
"B+:BtoD0rho_Kpi" + str(chID))
821 Reconstructed decay modes:
823 * :math:`B^{+}\\to \\overline{D}^{0} (\\to K^+2\\pi^-\\pi^+, K^+\\pi^-\\pi^0) \\rho^+`
824 * :math:`B^{+}\\to \\overline{D}^{*0} (\\to \\overline{D}^{0} (\\to K^+2 \\pi^-
825 \\pi^+, K^+\\pi^-\\pi^0) \\pi^0) \\rho^+`
829 * ``1.7 < M_D0 < 2.0``
830 * ``DM_Dstar_D < 0.16``
831 * ``0.6 < M_rho < 0.9``
832 * ``cosHel_rho < 0.90``
834 * ``abs(deltaE) < 0.3``
837 This skim uses `skim.standardlists.charm.loadStdD0_Kpipi0`,
838 `skim.standardlists.charm.loadStdD0_Kpipipi`,
839 `skim.standardlists.charm.loadStdDstar0_D0pi0_Kpipi0`, and
840 `skim.standardlists.charm.loadStdDstar0_D0pi0_Kpipipi`, where :math:`D^0`
841 channels are defined, and `skim.standardlists.lightmesons.loadStdAllRhoPlus`.
844 This skim saves only three randomly-chosen :math:`B^{+}` candidates in a
845 ``B+:BtoD0rho_merged`` list, since the candidate multiplicity of this skim is
848 __authors__ = [
"Fernando Abudinen"]
850 __contact__ = __liaison__
851 __category__ =
"physics, hadronic B to charm"
853 ApplyHLTHadronCut =
True
856 stdPi(
"all", path=path)
857 loadStdPi0ForBToHadrons(path=path)
858 loadStdAllRhoPlus(path=path)
859 loadPiForBtoHadrons(path=path)
860 loadKForBtoHadrons(path=path)
861 loadStdD0_Kpipi0(path=path)
862 loadStdD0_Kpipipi(path=path)
863 loadStdDstar0_D0pi0_Kpipi0(path=path)
864 loadStdDstar0_D0pi0_Kpipipi(path=path)
867 Bcuts =
"Mbc > 5.2 and abs(deltaE) < 0.3 and cosHelicityAngle(1,0) < 0.9 and 0.6 <= daughter(1,M) <= 0.9"
870 "anti-D0:Kpipipi rho+:all",
871 "anti-D0:Kpipi0 rho+:all",
872 "anti-D*0:D0_Kpipipi rho+:all",
873 "anti-D*0:D0_Kpipi0 rho+:all"
876 for chID, channel
in enumerate(BsigChannels):
877 ma.reconstructDecay(
"B+:BtoD0rho_merged" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
878 BsigList.append(
"B+:BtoD0rho_merged" + str(chID))
880 ma.copyLists(outputListName=
"B+:BtoD0rho_merged", inputListNames=BsigList, path=path)
883 ma.rankByHighest(particleList=
"B+:BtoD0rho_merged", variable=
"cos(mdstIndex)", numBest=3,
884 outputVariable=
"cosMdstIndex_rank", path=path)
892 Reconstructed decay modes:
894 * :math:`B^{0}\\to D^{+}(\\to K^- \\pi^+ \\pi^+) D^{-}(\\to K^+ \\pi^- \\pi^-)`
895 * :math:`B^{0}\\to D^{+}(\\to K^- \\pi^+ \\pi^+) D^{-}(\\to K_{\\rm S}^0 \\pi^-)`
896 * :math:`B^{0}\\to D^{+}(\\to K_{\\rm S}^0 \\pi^-) D^{-}(\\to K_{\\rm S}^0 \\pi^-)`
901 * ``abs(deltaE) < 0.3``
902 * ``1.8 < M_D < 1.9``
905 This skim uses `skim.standardlists.charm.loadStdDplus_Kpipi` and
906 `skim.standardlists.charm.loadStdDplus_Kspi`, where :math:`D^-`
910 produce_on_tau_samples =
False
912 __authors__ = [
"Chiara La Licata"]
914 __contact__ = __liaison__
915 __category__ =
"physics, hadronic B to charm"
917 ApplyHLTHadronCut =
True
920 stdKshorts(path=path)
921 loadPiForBtoHadrons(path=path)
922 loadKForBtoHadrons(path=path)
923 loadStdDplus_Kpipi(path=path)
924 loadStdDplus_Kspi(path=path)
927 Bcuts =
"5.2 < Mbc and abs(deltaE) < 0.3"
935 for chID, channel
in enumerate(BsigChannels):
936 ma.reconstructDecay(
"B0:B0toDD" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
937 BsigList.append(
"B0:B0toDD" + str(chID))
945 Reconstructed decay modes:
947 * :math:`B^{0}\\to \\overline{D}^{*-} (\\to \\overline{D}^{0}
948 (\\to K^+ \\pi^-, \\to K^+ \\pi^- \\pi^- \\pi^+, K^+ \\pi^- \\pi^0) \\pi^-) \\D^+(\\to K^- \\pi^+ \\pi^+)`
949 * :math:`B^{0}\\to \\overline{D}^{*-} (\\to D^{-} \\pi^0) \\D^+(\\to K^- \\pi^+ \\pi^+)`
954 * ``abs(deltaE) < 0.3``
955 * ``DM_Dstar_D < 0.16``
956 * ``1.8 < M_D < 1.9``
959 __authors__ = [
"Chiara La Licata"]
961 __contact__ = __liaison__
962 __category__ =
"physics, hadronic B to charm"
964 ApplyHLTHadronCut =
True
965 produce_on_tau_samples =
False
968 loadStdPi0ForBToHadrons(path=path)
969 loadPiForBtoHadrons(path=path)
970 loadKForBtoHadrons(path=path)
971 loadStdD0_Kpi(path=path)
972 loadStdD0_Kpipi0(path=path)
973 loadStdD0_Kpipipi(path=path)
974 loadStdDplus_Kpipi(path=path)
975 loadStdDstarPlus_D0pi_Kpi(path=path)
976 loadStdDstarPlus_D0pi_Kpipipi(path=path)
977 loadStdDstarPlus_D0pi_Kpipi0(path=path)
978 loadStdDstarPlus_Dpi0_Kpipi(path=path)
981 Bcuts =
"5.2 < Mbc and abs(deltaE) < 0.3"
983 "D*+:D0_Kpi D-:Kpipi",
984 "D*+:D0_Kpipipi D-:Kpipi",
985 "D*+:D0_Kpipi0 D-:Kpipi",
986 "D*+:Dpi0_Kpipi D-:Kpipi"
990 for chID, channel
in enumerate(BsigChannels):
991 ma.reconstructDecay(
"B0:B0toDstarD" + str(chID) +
" -> " + channel, Bcuts, chID, path=path)
992 BsigList.append(
"B0:B0toDstarD" + str(chID))
1000 Reconstructed decay modes:
1002 * :math:`B^{0}\\to \\bar{D}^{0} (\\to K^+ \\pi^- \\pi^0) \\pi^0`
1007 * ``abs(deltaE) < 0.5``
1010 This skim uses `skim.standardlists.charm.loadStdD0_Kpipi0`, where the
1011 :math:`\\bar{D}^{0}` channel is defined.
1014 __authors__ = [
"Francis Pham"]
1015 __description__ =
""
1016 __contact__ = __liaison__
1017 __category__ =
"physics, hadronic B to charm"
1019 ApplyHLTHadronCut =
True
1020 produce_on_tau_samples =
False
1023 loadStdPi0ForBToCharmless(path=path)
1024 loadStdVeryLooseTracks(
'K', path=path)
1025 loadStdVeryLooseTracks(
'pi', path=path)
1026 loadCharmlessD0_Kpipi0(path=path)
1029 Bcuts =
"5.2 < Mbc and abs(deltaE) < 0.5"
1031 ma.reconstructDecay(
"B0:D0Kpipi0_pi0 -> anti-D0:Kpipi0 pi0:charmlessFit", Bcuts, path=path)