Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add B+/Bd lifetime ratio as observable #261

Draft
wants to merge 13 commits into
base: master
Choose a base branch
from
4 changes: 4 additions & 0 deletions flavio/data/citations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,15 @@
- Gubernari:2018wyi
- Huber:2015sra
- Inami:1980fz
- Jager:2017gal
- Jager:2019bgk
- Kitano:2002mt
- Kozachuk:2017mdk
- Kruger:2002gf
- Kuno:1999jp
- Leljak:2021vte
- Lenz:2022pgw
- Lenz:2022rbq
- Meinel:2020owd
- Melikhov:2004mk
- Mescia:2007kn
Expand Down
1 change: 1 addition & 0 deletions flavio/data/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ renormalization scale:
bxgamma: 2. # B->X gamma
bxlnu: 4.6 # B->X l nu
lambdab: 4.8 # Lambdab->Lambda l+ l-, Lambdab->Lambda(1520) l+ l-
b lifetime ratios: 4.5 # B meson lifetime ratios

# K decays
kdecays: 2. # K->pinunu
Expand Down
6 changes: 6 additions & 0 deletions flavio/data/measurements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22892,3 +22892,9 @@ LHCb Bs->K*mumu 2018:
inspire: LHCb:2018rym
values:
BR_LHCb(Bs->K*0mumu): 2.9 ± 1.0 ± 0.2 ± 0.3 1e-8

B lifetime ratios:
experiment: HFLAV
inspire: HFLAV:2022esi
values:
tau_B+/tau_Bd: 1.076 ± 0.004
44 changes: 43 additions & 1 deletion flavio/data/parameters_metadata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -945,7 +945,7 @@ Lambdab->Lambda(1520) hTperpPrim A:



# Meson bag parameters
# Meson mixing bag parameters

# SM operator
# for the bag parameters of the SM operator OVLL,
Expand Down Expand Up @@ -1133,6 +1133,48 @@ tau_Bc_SM:
tex: $\tau_{B_c}^\text{SM}$
description: Standard Model prediction for the $B_c$ lifetime


# Meson lifetime bag parameters
# As defined in 2211.02724, eqs 2.16 - 2.19
bag_lifetime_B1qtilde:
tex: $\tilde{B}^q_1$
description: Bag parameter of the $\tilde{O}_1^q$ operator at 1.5 GeV
bag_lifetime_B2qtilde:
tex: $\tilde{B}^q_2$
description: Bag parameter of the $\tilde{O}_2^q$ operator at 1.5 GeV
bag_lifetime_B3qtilde:
tex: $\tilde{B}^q_3$
description: Bag parameter of the $\tilde{O}_3^q$ operator at 1.5 GeV
bag_lifetime_B4qtilde:
tex: $\tilde{B}^q_4$
description: Bag parameter of the $\tilde{O}_4^q$ operator at 1.5 GeV
bag_lifetime_B5qtilde:
tex: $\tilde{B}^q_5$
description: Bag parameter of the $\tilde{O}_5^q$ operator at 1.5 GeV
bag_lifetime_B6qtilde:
tex: $\tilde{B}^q_6$
description: Bag parameter of the $\tilde{O}_6^q$ operator at 1.5 GeV
bag_lifetime_B7qtilde:
tex: $\tilde{B}^q_7$
description: Bag parameter of the $\tilde{O}_7^q$ operator at 1.5 GeV
bag_lifetime_B8qtilde:
tex: $\tilde{B}^q_8$
description: Bag parameter of the $\tilde{O}_8^q$ operator at 1.5 GeV
bag_lifetime_delta^ud_1tilde:
tex: $\tilde{\delta}^{ud}_1$
description: Eye-contraction parameter of the operator $\tilde{O}_1^q$ at 1.5 GeV
bag_lifetime_delta^ud_2tilde:
tex: $\tilde{\delta}^{ud}_2$
description: Eye-contraction parameter of the operator $\tilde{O}_2^q$ at 1.5 GeV
bag_lifetime_delta^ud_3tilde:
tex: $\tilde{\delta}^{ud}_3$
description: Eye-contraction parameter of the operator $\tilde{O}_3^q$ at 1.5 GeV
bag_lifetime_delta^ud_4tilde:
tex: $\tilde{\delta}^{ud}_4$
description: Eye-contraction parameter of the operator $\tilde{O}_4^q$ at 1.5 GeV



# Parameters for B->D* form factors in the CLN parametrization
B->D* CLN rho2:
tex: $\rho^2$
Expand Down
19 changes: 18 additions & 1 deletion flavio/data/parameters_uncorrelated.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ a1_para_rho+: 0
a1_perp_rho+: 0


# Meson bag parameters
# Meson mixing bag parameters

# SM operator
# for the bag parameters of the SM operator OVLL,
Expand Down Expand Up @@ -170,6 +170,23 @@ Gamma12_B0_a: 11.7(1.3)
DeltaGamma/Gamma_B0: -0.002(10) # HFAG Summer 2016
DeltaGamma/Gamma_Bs: 0.129(9) # HFAG Summer 2016


# Meson lifetime bag parameters
# Result from Table 7 of 2208.02643
bag_lifetime_B1qtilde: 1.0026+0.0198-0.0106
bag_lifetime_B2qtilde: 0.9982+0.0052-0.0066
bag_lifetime_B3qtilde: -0.0165+0.0209-0.0346
bag_lifetime_B4qtilde: -0.0004+0.0200-0.0326
bag_lifetime_B5qtilde: -1 +- 0.1 # These values and errors are guesstimates by M Kirk
bag_lifetime_B6qtilde: -1 +- 0.1 # These values and errors are guesstimates by M Kirk
bag_lifetime_B7qtilde: 0 +- 0.1 # These values and errors are guesstimates by M Kirk
bag_lifetime_B8qtilde: 0 +- 0.1 # These values and errors are guesstimates by M Kirk
bag_lifetime_delta^ud_1tilde: 0.0026+0.0142-0.0092
bag_lifetime_delta^ud_2tilde: -0.0018+0.0047-0.0072
bag_lifetime_delta^ud_3tilde: -0.0004+0.0015-0.0024
bag_lifetime_delta^ud_4tilde: 0.0003+0.0012-0.0008


# B->D* form factors
B->D* CLN R_0(1): 1.14(11) # 1203.2654 appendix B
B->D* CLN h_A1(1): 0.906(4)(12) # 1403.0635
Expand Down
1 change: 1 addition & 0 deletions flavio/physics/bdecays/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@
from . import lambdablambda1520ll
from . import bxll
from . import bc_lifetime
from . import lifetime_ratio
301 changes: 301 additions & 0 deletions flavio/physics/bdecays/lifetime_ratio.py

Large diffs are not rendered by default.

105 changes: 105 additions & 0 deletions flavio/physics/bdecays/test_lifetime_ratio.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
import unittest
import flavio


par = flavio.default_parameters.get_central_all()

wc_sm = flavio.WilsonCoefficients()

class TestTauBpoBd(unittest.TestCase):
def test_bag_params(self):
flavio_bag_params = flavio.physics.bdecays.lifetime_ratio.run_lifetime_bag_parameters(par, 4.5)
MLP_results = {
"bag_lifetime_B1qtilde": 1.0080976022,
"bag_lifetime_B2qtilde": 1.0012180386,
"bag_lifetime_B3qtilde": -0.04773286535,
"bag_lifetime_B4qtilde": -0.03431299826,
"bag_lifetime_B5qtilde": -1.0,
"bag_lifetime_B6qtilde": -1.0,
"bag_lifetime_B7qtilde": 0.0,
"bag_lifetime_B8qtilde": 0.0,
"bag_lifetime_deltaqq1tilde": 0.0026,
"bag_lifetime_deltaqq2tilde": -0.0018,
"bag_lifetime_deltaqq3tilde": -0.0004,
"bag_lifetime_deltaqq4tilde": 0.0003,
}
for bag_param in flavio_bag_params:
self.assertAlmostEqual(flavio_bag_params[bag_param], MLP_results[bag_param])

def test_sm(self):
self.assertAlmostEqual(flavio.sm_prediction('tau_B+/tau_Bd'), 1.08381512025)

def test_WE_cu(self):
self.assertEqual(flavio.physics.bdecays.lifetime_ratio.weak_exchange(wc_sm, par, "B0"), 0)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLL_bcud": 1}, scale=4.5)
self.assertAlmostEqual(1e15*flavio.physics.bdecays.lifetime_ratio.weak_exchange(wc, par, "B0"), 3.03733567, places=6)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLLt_bcud": 1}, scale=4.5)
self.assertAlmostEqual(1e15*flavio.physics.bdecays.lifetime_ratio.weak_exchange(wc, par, "B0"), 9.79346592, places=5)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLLt_bcus": 1}, scale=4.5)
self.assertEqual(flavio.physics.bdecays.lifetime_ratio.weak_exchange(wc, par, "B0"), 0)

def test_PI_cd(self):
self.assertEqual(flavio.physics.bdecays.lifetime_ratio.pauli_interference(wc_sm, par, "B+"), 0)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLL_bcud": 1}, scale=4.5)
self.assertAlmostEqual(1e14*flavio.physics.bdecays.lifetime_ratio.pauli_interference(wc, par, "B+"), 2.82494420, places=6)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLL_bcus": 1}, scale=4.5)
self.assertAlmostEqual(1e14*flavio.physics.bdecays.lifetime_ratio.pauli_interference(wc, par, "B+"), 0.1503590699, places=6)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLLt_bcud": 1}, scale=4.5)
self.assertAlmostEqual(1e13*flavio.physics.bdecays.lifetime_ratio.pauli_interference(wc, par, "B+"), 1.38771099, places=6)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLLt_bcus": 1}, scale=4.5)
Vud = flavio.physics.ckm.get_ckm(par)[0,0]
Vus = flavio.physics.ckm.get_ckm(par)[0,1]
self.assertAlmostEqual(1e13*flavio.physics.bdecays.lifetime_ratio.pauli_interference(wc, par, "B+"), 1.38771099*(Vus/Vud)**2, places=6)

def test_NP_bcud(self):
wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLL_bcud": -2}, scale=4.5)
self.assertAlmostEqual(flavio.np_prediction("tau_B+/tau_Bd", wc), 1.011517673)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLLt_bcud": 3}, scale=4.5)
self.assertAlmostEqual(flavio.np_prediction("tau_B+/tau_Bd", wc), 0.007740969, places=6)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVRLt_bcud": -0.15, "CSLL_bcud": 0.2}, scale=4.5)
self.assertAlmostEqual(flavio.np_prediction("tau_B+/tau_Bd", wc), 1.113086143)

def test_NP_bcus(self):
wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLL_bcus": -2}, scale=4.5)
self.assertAlmostEqual(flavio.np_prediction("tau_B+/tau_Bd", wc), 1.079837520)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLLt_bcus": 3}, scale=4.5)
self.assertAlmostEqual(flavio.np_prediction("tau_B+/tau_Bd", wc), 1.017205203)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVRLt_bcus": -0.15, "CSLL_bcus": 0.2}, scale=4.5)
self.assertAlmostEqual(flavio.np_prediction("tau_B+/tau_Bd", wc), 1.083496791)

def test_NP_dbcc(self):
wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLL_bdcc": -2}, scale=4.5)
self.assertAlmostEqual(flavio.np_prediction("tau_B+/tau_Bd", wc), 1.084098486)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVLLt_bdcc": 3}, scale=4.5)
self.assertAlmostEqual(flavio.np_prediction("tau_B+/tau_Bd", wc), 1.102675260)

wc = flavio.WilsonCoefficients()
wc.set_initial({"CVRLt_bdcc": -0.15, "CSLL_bdcc": 0.2}, scale=4.5)
self.assertAlmostEqual(flavio.np_prediction("tau_B+/tau_Bd", wc), 1.085435224)
Loading