Module flavio.physics.bdecays.matrixelements

Functions

def F_17(muh, z, sh)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def F_17(muh, z, sh):
    r"""Function $F_1^{(7)}$ giving the contribution of $O_7$ to the matrix element
    of $O_1$, as defined in arXiv:0810.4077.

    - `muh` is $\hat \mu=mu/m_b$,
    - `z` is $z=m_c^2/m_b^2$,
    - `sh` is $\hat s=q^2/m_b^2$.
    """
    flavio.citations.register("Greub:2008cy")
    return _F_17([muh, z, sh])[0]

Function $F_1^{(7)}$ giving the contribution of $O_7$ to the matrix element of $O_1$, as defined in arXiv:0810.4077.

  • muh is $\hat \mu=mu/m_b$,
  • z is $z=m_c^2/m_b^2$,
  • sh is $\hat s=q^2/m_b^2$.
def F_19(muh, z, sh)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def F_19(muh, z, sh):
    r"""Function $F_1^{(9)}$ giving the contribution of $O_9$ to the matrix element
    of $O_1$, as defined in arXiv:0810.4077.

    - `muh` is $\hat \mu=mu/m_b$,
    - `z` is $z=m_c^2/m_b^2$,
    - `sh` is $\hat s=q^2/m_b^2$.
    """
    flavio.citations.register("Greub:2008cy")
    if sh == 0:
        return 0
    return _sh_F_19([muh, z, sh])[0] / sh

Function $F_1^{(9)}$ giving the contribution of $O_9$ to the matrix element of $O_1$, as defined in arXiv:0810.4077.

  • muh is $\hat \mu=mu/m_b$,
  • z is $z=m_c^2/m_b^2$,
  • sh is $\hat s=q^2/m_b^2$.
def F_27(muh, z, sh)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def F_27(muh, z, sh):
    r"""Function $F_2^{(7)}$ giving the contribution of $O_7$ to the matrix element
    of $O_2$, as defined in arXiv:0810.4077.

    - `muh` is $\hat \mu=mu/m_b$,
    - `z` is $z=m_c^2/m_b^2$,
    - `sh` is $\hat s=q^2/m_b^2$.
    """
    flavio.citations.register("Greub:2008cy")
    return _F_27([muh, z, sh])[0]

Function $F_2^{(7)}$ giving the contribution of $O_7$ to the matrix element of $O_2$, as defined in arXiv:0810.4077.

  • muh is $\hat \mu=mu/m_b$,
  • z is $z=m_c^2/m_b^2$,
  • sh is $\hat s=q^2/m_b^2$.
def F_29(muh, z, sh)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def F_29(muh, z, sh):
    r"""Function $F_2^{(9)}$ giving the contribution of $O_9$ to the matrix element
    of $O_2$, as defined in arXiv:0810.4077.

    - `muh` is $\hat \mu=mu/m_b$,
    - `z` is $z=m_c^2/m_b^2$,
    - `sh` is $\hat s=q^2/m_b^2$.
    """
    flavio.citations.register("Greub:2008cy")
    if sh == 0:
        return 0
    return _sh_F_29([muh, z, sh])[0] / sh

Function $F_2^{(9)}$ giving the contribution of $O_9$ to the matrix element of $O_2$, as defined in arXiv:0810.4077.

  • muh is $\hat \mu=mu/m_b$,
  • z is $z=m_c^2/m_b^2$,
  • sh is $\hat s=q^2/m_b^2$.
def F_87(Lmu, sh)
Expand source code
def F_87(Lmu, sh):
    r"""Function $F_8^{(7)}$ giving the contribution of $O_7$ to the matrix element
    of $O_8$, as given in eq. (40) of hep-ph/0312063.

    - `sh` is $\hat s=q^2/m_b^2$,
    """
    flavio.citations.register("Asatrian:2003vq")
    if sh==0.:
        return (-4*(33 + 24*Lmu + 6j*pi - 2*pi**2))/27.
    return (-32/9. * Lmu + 8/27. * pi**2 - 44/9. - 8/9. * 1j * pi
    + (4/3. * pi**2 - 40/3.) * sh + (32/9. * pi**2 - 316/9.) * sh**2
    + (200/27. * pi**2 - 658/9.) * sh**3 - 8/9. * log(sh) * (sh + sh**2 + sh**3))

Function $F_8^{(7)}$ giving the contribution of $O_7$ to the matrix element of $O_8$, as given in eq. (40) of hep-ph/0312063.

  • sh is $\hat s=q^2/m_b^2$,
def F_89(Ls, sh)
Expand source code
def F_89(Ls, sh):
    r"""Function $F_8^{(9)}$ giving the contribution of $O_9$ to the matrix element
    of $O_8$, as given in eq. (39) of hep-ph/0312063.

    - `sh` is $\hat s=q^2/m_b^2$,
    - `Ls` is $\ln(\hat s)$.
    """
    flavio.citations.register("Asatrian:2003vq")
    return (104/9. - 32/27. * pi**2 + (1184/27. - 40/9. * pi**2) * sh
    + (14212/135. - 32/3 * pi**2) * sh**2 + (193444/945.
    - 560/27. * pi**2) * sh**3 + 16/9. * Ls * (1 + sh + sh**2 + sh**3))

Function $F_8^{(9)}$ giving the contribution of $O_9$ to the matrix element of $O_8$, as given in eq. (39) of hep-ph/0312063.

  • sh is $\hat s=q^2/m_b^2$,
  • Ls is $\ln(\hat s)$.
def Fu_17(q2, mb, mu)
Expand source code
def Fu_17(q2, mb, mu):
    return -SeidelA(q2, mb, mu)
def Fu_19(q2, mb, mu)
Expand source code
def Fu_19(q2, mb, mu):
    return -(SeidelB(q2, mb, mu) + 4 * SeidelC(q2, mb, mu))
def Fu_27(q2, mb, mu)
Expand source code
def Fu_27(q2, mb, mu):
    return -(-6 * SeidelA(q2, mb, mu))
def Fu_29(q2, mb, mu)
Expand source code
def Fu_29(q2, mb, mu):
    return -(-6 * SeidelB(q2, mb, mu) + 3 * SeidelC(q2, mb, mu))
def SeidelA(q2, mb, mu)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def SeidelA(q2, mb, mu):
    r"""Function $A(s\equiv q^2)$ defined in eq. (29) of hep-ph/0403185v2.
    """
    flavio.citations.register("Seidel:2004jh")
    if q2==0:
        return 1/729. * (833 + 120j*pi - 312 * log(mb**2/mu**2))
    sh = min(q2/mb**2, 0.999)
    z = 4 / sh
    return (-(104)/(243) * log((mb**2)/(mu**2)) + (4 * sh)/(27 * (1 - sh)) *
    (li2(sh) + log(sh) * log( 1 - sh)) + (1)/(729 * (1 - sh)**2) * (6 * sh *
    (29 - 47 * sh) * log(sh) + 785 - 1600 * sh + 833 * sh**2 + 6 * pi * 1j * (20 -
    49 * sh + 47 * sh**2)) - (2)/(243 * (1 - sh)**3) * (2 * sqrt( z - 1) * (-4 +
    9 * sh - 15 * sh**2 + 4 * sh**3) * acot(sqrt(z - 1)) + 9 * sh**3 *
    log(sh)**2 + 18 * pi * 1j * sh * (1 - 2 * sh) * log(sh)) + (2 * sh)/(243 *
    (1 - sh)**4) * (36 * acot( sqrt(z - 1))**2 + pi**2 * (-4 + 9 * sh - 9 *
    sh**2 + 3 * sh**3)))

Function $A(s\equiv q^2)$ defined in eq. (29) of hep-ph/0403185v2.

def SeidelB(q2, mb, mu)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def SeidelB(q2, mb, mu):
    r"""Function $A(s\equiv q^2)$ defined in eq. (30) of hep-ph/0403185v2.
    """
    flavio.citations.register("Seidel:2004jh")
    sh = min(q2/mb**2, 0.999)
    z = 4 / sh
    x1 = 1/2 + 1j/2 * sqrt(z - 1)
    x2 = 1/2 - 1j/2 * sqrt(z - 1)
    x3 = 1/2 + 1j/(2 * sqrt(z - 1))
    x4 = 1/2 - 1j/(2 * sqrt(z - 1))
    return ((8)/(243 * sh) * ((4 - 34 * sh - 17 * pi * 1j * sh) *
    log((mb**2)/(mu**2)) + 8 * sh * log((mb**2)/(mu**2))**2 + 17 * sh * log(sh) *
    log((mb**2)/(mu**2))) + ((2 + sh) * sqrt( z - 1))/(729 * sh) * (-48 *
    log((mb**2)/(mu**2)) * acot( sqrt(z - 1)) - 18 * pi * log(z - 1) + 3 * 1j *
    log(z - 1)**2 - 24 * 1j * li2(-x2/x1) - 5 * pi**2 * 1j + 6 * 1j * (-9 *
    log(x1)**2 + log(x2)**2 - 2 * log(x4)**2 + 6 * log(x1) * log(x2) - 4 * log(x1) *
    log(x3) + 8 * log(x1) * log(x4)) - 12 * pi * (2 * log(x1) + log(x3) + log(x4))) -
    (2)/(243 * sh * (1 - sh)) * (4 * sh * (-8 + 17 * sh) * (li2(sh) + log(sh) *
    log(1 - sh)) + 3 * (2 + sh) * (3 - sh) * log(x2/x1)**2 + 12 * pi * (-6 - sh +
    sh**2) * acot( sqrt(z - 1))) + (2)/(2187 * sh * (1 - sh)**2) * (-18 * sh * (120 -
    211 * sh + 73 * sh**2) * log(sh) - 288 - 8 * sh + 934 * sh**2 - 692 * sh**3 + 18 *
    pi * 1j * sh * (82 - 173 * sh + 73 * sh**2)) - (4)/(243 * sh * (1 - sh)**3) *
    (-2 * sqrt( z - 1) * (4 - 3 * sh - 18 * sh**2 + 16 * sh**3 - 5 * sh**4) * acot(
    sqrt(z - 1)) - 9 * sh**3 * log(sh)**2 + 2 * pi * 1j * sh * (8 - 33 * sh + 51 *
    sh**2 - 17 * sh**3) * log( sh)) + (2)/(729 * sh * (1 - sh)**4) * (72 * (3 - 8 *
    sh + 2 * sh**2) * acot( sqrt(z - 1))**2 - pi**2 * (54 - 53 * sh - 286 * sh**2 +
    612 * sh**3 - 446 * sh**4 + 113 * sh**5)) )

Function $A(s\equiv q^2)$ defined in eq. (30) of hep-ph/0403185v2.

def SeidelC(q2, mb, mu)
Expand source code
def SeidelC(q2, mb, mu):
    r"""Function $A(s\equiv q^2)$ defined in eq. (31) of hep-ph/0403185v2.
    """
    flavio.citations.register("Seidel:2004jh")
    return (-(16)/(81) * log((q2)/(mu**2)) + (428)/(243)
            - (64)/(27) * zeta(3) + (16)/(81) * pi * 1j)

Function $A(s\equiv q^2)$ defined in eq. (31) of hep-ph/0403185v2.

def Y(q2, wc, par, scale, qiqj)
Expand source code
def Y(q2, wc, par, scale, qiqj):
    r"""Function $Y$ that contains the contributions of the matrix
    elements of four-quark operators to the effective Wilson coefficient
    $C_9^{\mathrm{eff}}=C_9 + Y(q^2)$.

    See e.g. eq. (10) of 0811.1214v5."""
    mb = running.get_mb_pole(par)
    mc = running.get_mc_pole(par)
    F_c = 4/3.*wc['C1_'+qiqj] +       wc['C2_'+qiqj] +      6*wc['C3_'+qiqj] +    60*wc['C5_'+qiqj]
    F_b =    7*wc['C3_'+qiqj] +  4/3.*wc['C4_'+qiqj] +     76*wc['C5_'+qiqj] + 64/3.*wc['C6_'+qiqj]
    F_u =      wc['C3_'+qiqj] +  4/3.*wc['C4_'+qiqj] +     16*wc['C5_'+qiqj] + 64/3.*wc['C6_'+qiqj]
    F_4 = 4/3.*wc['C3_'+qiqj] + 64/9.*wc['C5_'+qiqj] + 64/27.*wc['C6_'+qiqj]
    return ( h(s=q2, mq=mc, mu=scale) * F_c
    - 1/2. * h(s=q2, mq=mb, mu=scale) * F_b
    - 1/2. * h(s=q2, mq=0., mu=scale) * F_u
    + F_4 )

Function $Y$ that contains the contributions of the matrix elements of four-quark operators to the effective Wilson coefficient $C_9^{\mathrm{eff}}=C_9 + Y(q^2)$.

See e.g. eq. (10) of 0811.1214v5.

def Yu(q2, wc, par, scale, qiqj)
Expand source code
def Yu(q2, wc, par, scale, qiqj):
    flavio.citations.register("Beneke:2004dp")
    mc = running.get_mc_pole(par)
    return ( (4/3.*wc['C1_'+qiqj] + wc['C2_'+qiqj])
            * ( h(s=q2, mq=mc, mu=scale) - h(s=q2, mq=0, mu=scale) ))
def acot(x)
Expand source code
def acot(x):
    return pi/2.-atan(x)
def delta_C7(par, wc, q2, scale, qiqj)
Expand source code
def delta_C7(par, wc, q2, scale, qiqj):
    alpha_s = running.get_alpha(par, scale)['alpha_s']
    mb = running.get_mb_pole(par)
    mc = par['m_c BVgamma']
    xi_t = ckm.xi('t', qiqj)(par)
    xi_u = ckm.xi('u', qiqj)(par)
    muh = scale/mb
    sh = q2/mb**2
    z = mc**2/mb**2
    Lmu = log(scale/mb)
    # computing this once to save time
    delta_tmp = wc['C1_'+qiqj] * F_17(muh, z, sh) + wc['C2_'+qiqj] * F_27(muh, z, sh)
    delta_t = wc['C8eff_'+qiqj] * F_87(Lmu, sh) + delta_tmp
    delta_u = delta_tmp + wc['C1_'+qiqj] * Fu_17(q2, mb, scale) + wc['C2_'+qiqj] * Fu_27(q2, mb, scale)
    # note the minus sign between delta_t and delta_u. This is because of a sign
    # switch in the definition of the "Fu" functions between hep-ph/0403185
    # (used here) and hep-ph/0412400, see footnote 5 of 0811.1214.
    return -alpha_s/(4*pi) * (delta_t - xi_u/xi_t * delta_u)
def delta_C9(par, wc, q2, scale, qiqj)
Expand source code
def delta_C9(par, wc, q2, scale, qiqj):
    alpha_s = running.get_alpha(par, scale)['alpha_s']
    mb = running.get_mb_pole(par)
    mc = running.get_mc_pole(par)
    xi_t = ckm.xi('t', qiqj)(par)
    xi_u = ckm.xi('u', qiqj)(par)
    muh = scale/mb
    sh = q2/mb**2
    z = mc**2/mb**2
    Lmu = log(scale/mb)
    Ls = log(sh)
    # computing this once to save time
    delta_tmp = wc['C1_'+qiqj] * F_19(muh, z, sh) + wc['C2_'+qiqj] * F_29(muh, z, sh)
    delta_t = wc['C8eff_'+qiqj] * F_89(Ls, sh) + delta_tmp
    delta_u = delta_tmp + wc['C1_'+qiqj] * Fu_19(q2, mb, scale) + wc['C2_'+qiqj] * Fu_29(q2, mb, scale)
    # note the minus sign between delta_t and delta_u. This is because of a sign
    # switch in the definition of the "Fu" functions between hep-ph/0403185
    # (used here) and hep-ph/0412400, see footnote 5 of 0811.1214.
    return -alpha_s/(4*pi) * (delta_t - xi_u/xi_t * delta_u)
def h(s, mq, mu)
Expand source code
def h(s, mq, mu):
  """Fermion loop function as defined e.g. in eq. (11) of hep-ph/0106067v2."""
  if mq == 0.:
      return 8/27. + (4j*pi)/9. + (8 * log(mu))/9. - (4 * log(s))/9.
  if s == 0.:
      return -4/9. * (1 + log(mq**2/mu**2))
  z = 4 * mq**2/s
  if z > 1:
      A = atan(1/sqrt(z-1))
  else:
      A = log((1+sqrt(1-z))/sqrt(z)) - 1j*pi/2.
  return (-4/9. * log(mq**2/mu**2) + 8/27. + 4/9. * z
          -4/9. * (2 + z) * sqrt(abs(z - 1)) * A)

Fermion loop function as defined e.g. in eq. (11) of hep-ph/0106067v2.