Module flavio.physics.bdecays.formfactors.b_v.bsz

Functions

def ff(process, q2, par, n=2, omit_A='A0')
Expand source code
def ff(process, q2, par, n=2, omit_A='A0'):
    r"""Central value of $B\to V$ form factors in the lattice convention
    and BSZ parametrization.

    The lattice convention defines the form factors
    $A_0$, $A_1$, $A_{12}$, $V$, $T_1$, $T_2$, $T_{23}$.

    The BSZ parametrization defines

    $$F_i(q^2) = P_i(q^2) \sum_k a_k^i \,\left[z(q^2)-z(0)\right]^k$$

    where $P_i(q^2)=(1-q^2/m_{R,i}^2)^{-1}$ is a simple pole.
    """
    pd = process_dict[process]
    mres = (par[process + ' BCL m0'],
            par[process + ' BCL m1-'],
            par[process + ' BCL m1+'])
    mB = par['m_'+pd['B']]
    mV = par['m_'+pd['V']]
    ff = {}
    # setting a0_A0 and a0_T2 according to the exact kinematical relations,
    # cf. eq. (16) of arXiv:1503.05534
    flavio.citations.register("Straub:2015ica")
    par_prefix = process + ' BSZ'
    par[par_prefix + ' a0_A12'] = par[par_prefix + ' a0_A0'] / (8*mB*mV / (mB**2-mV**2))
    par[par_prefix + ' a0_T2'] = par[par_prefix + ' a0_T1']
    for i in ["A0","A1","A12","V","T1","T2","T23"]:
        a = [ par[par_prefix + ' a' + str(j) + '_' + i] for j in range(n) ]
        ff[i] = pole(i, mres, q2)*np.dot(a, zs(mB, mV, q2, t0=None)[:n])
    return ff

Central value of $B\to V$ form factors in the lattice convention and BSZ parametrization.

The lattice convention defines the form factors $A_0$, $A_1$, $A_{12}$, $V$, $T_1$, $T_2$, $T_{23}$.

The BSZ parametrization defines

$$F_i(q^2) = P_i(q^2) \sum_k a_k^i \,\left[z(q^2)-z(0)\right]^k$$

where $P_i(q^2)=(1-q^2/m_{R,i}^2)^{-1}$ is a simple pole.

def pole(ff, mres, q2)
Expand source code
def pole(ff,mres,q2):
    mresdict = {'A0': 0,'A1': 2,'A12': 2,'V': 1,'T1': 1,'T2': 2,'T23': 2}
    m = mres[mresdict[ff]]
    return 1/(1-q2/m**2)
def zs(mB, mV, q2, t0)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def zs(mB, mV, q2, t0):
    zq2 = z(mB, mV, q2, t0)
    z0 = z(mB, mV, 0, t0)
    return np.array([1, zq2-z0, (zq2-z0)**2])