Skip to content

Commit

Permalink
[bdecays] Corrected EW correction to charged-current kaon and pion de…
Browse files Browse the repository at this point in the history
…cays
  • Loading branch information
DavidMStraub committed Sep 5, 2016
1 parent 1c2c0e6 commit 2a866ad
Show file tree
Hide file tree
Showing 8 changed files with 14 additions and 14 deletions.
2 changes: 1 addition & 1 deletion flavio/physics/bdecays/blnu.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def br_blnu(wc_obj, par, lep):
# Wilson coefficients
wc = wc_obj.get_wc('bu' + lep + 'nu', scale, par)
# add SM contribution to Wilson coefficient
wc['CV_bu'+lep+'nu'] += flavio.physics.bdecays.wilsoncoefficients.get_CVSM(par, scale)
wc['CV_bu'+lep+'nu'] += flavio.physics.bdecays.wilsoncoefficients.get_CVSM(par, scale, nf=5)
return br_plnu_general(wc, par, Vub, 'B+', lep, delta=0)

# function returning function needed for prediction instance
Expand Down
2 changes: 1 addition & 1 deletion flavio/physics/bdecays/bplnu.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def get_angularcoeff(q2, wc_obj, par, B, P, lep):
mP = par['m_'+P]
scale = config['renormalization scale']['bpll']
mb = running.get_mb(par, scale)
wc = get_wceff_fccc(wc_obj, par, meson_quark[(B,P)], lep, mb, scale)
wc = get_wceff_fccc(wc_obj, par, meson_quark[(B,P)], lep, mb, scale, nf=5)
N = prefactor(q2, par, B, P, lep)
ff = get_ff(q2, par, B, P)
qi_qj = meson_quark[(B, P)]
Expand Down
2 changes: 1 addition & 1 deletion flavio/physics/bdecays/bvlnu.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def prefactor(q2, par, B, V, lep):
def get_angularcoeff(q2, wc_obj, par, B, V, lep):
scale = config['renormalization scale']['bvll']
mb = running.get_mb(par, scale)
wc = get_wceff_fccc(wc_obj, par, meson_quark[(B,V)], lep, mb, scale)
wc = get_wceff_fccc(wc_obj, par, meson_quark[(B,V)], lep, mb, scale, nf=5)
ml = par['m_'+lep]
mB = par['m_'+B]
mV = par['m_'+V]
Expand Down
12 changes: 6 additions & 6 deletions flavio/physics/bdecays/wilsoncoefficients.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,23 +148,23 @@ def get_wceff_nunu(q2, wc, par, B, M, nu1, nu2, scale):
c['tp'] = 0
return c

def get_CVSM(par, scale):
def get_CVSM(par, scale, nf):
r"""Get the Wilson coefficient of the operator $C_V$ in $d_i\to d_j\ell\nu$
in the SM including EW corrections."""
if scale > 2: # for B physics
if nf >= 4: # for B and D physics
alpha_e = running.get_alpha(par, scale)['alpha_e']
return 1 + alpha_e/pi * log(par['m_Z']/scale)
else: # for K and pi physocs
else: # for K and pi physics
# Marciano & Sirlin 1993
return 1.0232
return sqrt(1.0232)

def get_wceff_fccc(wc_obj, par, qiqj, lep, mqi, scale):
def get_wceff_fccc(wc_obj, par, qiqj, lep, mqi, scale, nf=5):
r"""Get a dictionary with the $d_i\to d_j$ Wilson coefficients
in the convention appropriate for the generalized angular distributions.
"""
qqlnu = qiqj + lep + 'nu'
wc = wc_obj.get_wc(qqlnu, scale, par)
c_sm = get_CVSM(par, scale)
c_sm = get_CVSM(par, scale, nf)
c = {}
c['7'] = 0
c['7p'] = 0
Expand Down
2 changes: 1 addition & 1 deletion flavio/physics/kdecays/klnu.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def br_plnu(wc_obj, par, P, lep):
# Wilson coefficients
wc = wc_obj.get_wc(qiqj + lep + 'nu', scale, par)
# add SM contribution to Wilson coefficient
wc['CV_'+qiqj+lep+'nu'] += flavio.physics.bdecays.wilsoncoefficients.get_CVSM(par, scale)
wc['CV_'+qiqj+lep+'nu'] += flavio.physics.bdecays.wilsoncoefficients.get_CVSM(par, scale, nf=3)
return br_plnu_general(wc, par, Vij, P, lep, delta=delta_Plnu(par, P, lep))

def r_plnu(wc_obj, par, P):
Expand Down
2 changes: 1 addition & 1 deletion flavio/physics/kdecays/kpilnu.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def get_angularcoeff(q2, wc_obj, par, K, P, lep):
# renormalization scale is m_rho
scale = par['m_rho0']
ms = flavio.physics.running.running.get_ms(par, scale)
wc = flavio.physics.bdecays.wilsoncoefficients.get_wceff_fccc(wc_obj, par, 'su', lep, ms, scale)
wc = flavio.physics.bdecays.wilsoncoefficients.get_wceff_fccc(wc_obj, par, 'su', lep, ms, scale, nf=3)
N = 4*GF/sqrt(2)*Vus
ff = get_ff(q2, par, K)
h = flavio.physics.bdecays.angular.helicity_amps_p(q2, mK, mP, ms, 0, ml, 0, ff, wc, N)
Expand Down
2 changes: 1 addition & 1 deletion flavio/physics/kdecays/test_klnu.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def test_klnu(self):
# compare to the experimental values
self.assertAlmostEqual(
flavio.Observable.get_instance("BR(K+->enu)").prediction_central(constraints, wc_obj),
1.582e-5, delta=3*0.007e-5)
1.582e-5, delta=4*0.007e-5)
self.assertAlmostEqual(
flavio.Observable.get_instance("BR(K+->munu)").prediction_central(constraints, wc_obj),
63.56e-2, delta=8*0.11e-2)
Expand Down
4 changes: 2 additions & 2 deletions flavio/physics/kdecays/test_kpilnu.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def test_kpilnu(self):
self.assertEqual(flavio.physics.kdecays.kpilnu.dBRdq2(1.5, wc_obj, par, 'KL', 'pi+', 'mu'), 0)
self.assertEqual(flavio.physics.kdecays.kpilnu.dBRdq2(0.1, wc_obj, par, 'KL', 'pi+', 'tau'), 0)
# compare central predictions to PDG values
self.assertAlmostEqual(flavio.sm_prediction('BR(KL->pienu)')*1e2/40.55, 1, delta=0.02)
self.assertAlmostEqual(flavio.sm_prediction('BR(K+->pienu)')*1e2/5.07, 1, delta=0.03)
self.assertAlmostEqual(flavio.sm_prediction('BR(KL->pienu)')*1e2/40.55, 1, delta=0.04)
self.assertAlmostEqual(flavio.sm_prediction('BR(K+->pienu)')*1e2/5.07, 1, delta=0.04)
self.assertAlmostEqual(flavio.sm_prediction('BR(KL->pimunu)')*1e2/27.04, 1, delta=0.02)
self.assertAlmostEqual(flavio.sm_prediction('BR(K+->pimunu)')*1e2/3.352, 1, delta=0.03)

0 comments on commit 2a866ad

Please sign in to comment.