Module flavio.physics.bdecays.bxlnu

Functions for inclusive semi-leptonic $B$ decays.

See arXiv:1107.3100.

Functions

def BR_BXclnu(par, wc_obj, lep)
Expand source code
def BR_BXclnu(par, wc_obj, lep):
    r"""Total branching ratio of $\bar B^0\to X_c \ell^- \bar\nu_\ell$"""
    return sum([_BR_BXclnu(par, wc_obj, lep, nu) for nu in ['e','mu','tau']])

Total branching ratio of $\bar B^0\to X_c \ell^- \bar\nu_\ell$

def BR_tot_function(lep)
Expand source code
def BR_tot_function(lep):
    if lep == 'l':
        return lambda wc_obj, par: (BR_BXclnu(par, wc_obj, 'e')+BR_BXclnu(par, wc_obj, 'mu'))/2
    else:
        return lambda wc_obj, par: BR_BXclnu(par, wc_obj, lep)
def BR_tot_leptonflavour(wc_obj, par, lnum, lden)
Expand source code
def BR_tot_leptonflavour(wc_obj, par, lnum, lden):
    if lnum == 'l':
        num = (BR_BXclnu(par, wc_obj, 'e') + BR_BXclnu(par, wc_obj, 'mu'))/2.
    else:
        num = BR_BXclnu(par, wc_obj, lnum)
    if num == 0:
        return 0
    if lden == 'l':
        den = (BR_BXclnu(par, wc_obj, 'e') + BR_BXclnu(par, wc_obj, 'mu'))/2.
    else:
        den = BR_BXclnu(par, wc_obj, lden)
    return num/den
def BR_tot_leptonflavour_function(lnum, lden)
Expand source code
def BR_tot_leptonflavour_function(lnum, lden):
    return lambda wc_obj, par: BR_tot_leptonflavour(wc_obj, par, lnum, lden)
def d(xc)
Expand source code
def d(xc):
    return (8*log(xc) - 10*xc**4/3. + 32*xc**3/3. - 8*xc**2 - 32*xc/3. + 34/3.).real
def g(xc, xl)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def g(xc, xl):
    if xl == 0:
        return (1 - 8*xc + 8*xc**3 - xc**4 - 12*xc**2*log(xc)).real
    else:
        return (sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 7*xc*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 7*xc**2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + xc**3*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 7*xl*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + 12*xc*xl*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 7*xc**2*xl*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 7*xl**2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 7*xc*xl**2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + xl**3*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + 24*xc**2*log(2) - 24*xl**2*log(2) - 24*(-1 + xc**2)*xl**2* log(1 - sqrt(xc))
        + 12*xc**2*log(xc) - 6*xl**2*log(xc) - 6*xc**2*xl**2*log(xc)
        - 12*xl**2*log(sqrt(xc) - 2*xc + xc**1.5)
        + 12*xc**2*xl**2* log(sqrt(xc) - 2*xc + xc**1.5)
        - 12*xl**2*log(xl) + 12*xc**2*xl**2*log(xl)
        - 24*xc**2*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 12*xl**2* log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 12*xc**2*xl**2* log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 12*xl**2* log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))))
        - 12*xc**2*xl**2* log(1 + xc**2 - xl
        + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))))).real
def gLR(xc, xl)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def gLR(xc, xl):
    if xl == 0:
        return (4*sqrt(xc)*(1 + 9*xc - 9*xc**2 - xc**3 + 6*xc*(1 + xc)*log(xc))).real
    else:
        return (4*sqrt(xc)*(sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + 10*xc*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + xc**2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 5*xl*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 5*xc*xl*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 2*xl**2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 12*xc*log(2) - 12*xc**2*log(2) + 24*xc*xl*log(2)
        - 12*xl**2*log(2) - 12*(-1 + xc)*xl**2* log(1 - sqrt(xc))
        - 6*xc*log(xc) - 6*xc**2*log(xc) + 12*xc*xl*log(xc) - 3*xl**2*log(xc)
        - 3*xc*xl**2*log(xc) - 6*xl**2*log(sqrt(xc) - 2*xc + xc**1.5)
        + 6*xc*xl**2* log(sqrt(xc) - 2*xc + xc**1.5) - 6*xl**2*log(xl)
        + 6*xc*xl**2*log(xl) + 12*xc*log(1 + xc - xl
        - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 12*xc**2*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        - 24*xc*xl*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 6*xl**2*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 6*xc*xl**2* log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 6*xl**2*log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))))
        - 6*xc*xl**2* log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl)))))).real
def gVS(xc, xl)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def gVS(xc, xl):
    if xl == 0:
        return 0
    else:
        return (2*sqrt(xl)*(sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 5*xc*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 2*xc**2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + 10*xl*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 5*xc*xl*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + xl**2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl)) + 12*xc**2*log(2)
        + 12*xl*log(2) - 24*xc*xl*log(2) + 12*xl**2*log(2)
        - 12*xl*(1 - 2*xc + xc**2 + xl)* log(1 - sqrt(xc)) + 6*xc**2*log(xc)
        + 3*xl*log(xc) - 6*xc*xl*log(xc) - 3*xc**2*xl*log(xc) + 3*xl**2*log(xc)
        + 6*xl*log(sqrt(xc) - 2*xc + xc**1.5) - 12*xc*xl*log(sqrt(xc) - 2*xc + xc**1.5)
        + 6*xc**2*xl* log(sqrt(xc) - 2*xc + xc**1.5)
        + 6*xl**2*log(sqrt(xc) - 2*xc + xc**1.5) + 6*xl*log(xl)
        - 12*xc*xl*log(xl) + 6*xc**2*xl*log(xl) + 6*xl**2*log(xl)
        - 12*xc**2*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        - 6*xl*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 12*xc*xl*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 6*xc**2*xl* log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        - 6*xl**2*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        - 6*xl*log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))))
        + 12*xc*xl*log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))))
        - 6*xc**2*xl* log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))))
        - 6*xl**2*log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl)))))).real
def gVSp(xc, xl)
Expand source code
@lru_cache(maxsize=config['settings']['cache size'])
def gVSp(xc, xl):
    if xl == 0:
        return 0
    else:
        return (2*sqrt(xc*xl)* (2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + 5*xc*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc**2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        + 5*xl*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - 10*xc*xl*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xl**2*sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl)) - 12*xc*log(2)
        + 12*xl*log(2) - 12*(1 + xc**2 + xc*(-2 + xl))*xl* log(1 - sqrt(xc))
        - 6*xc*log(xc) + 3*xl*log(xc) + 6*xc*xl*log(xc) - 3*xc**2*xl*log(xc)
        - 3*xc*xl**2*log(xc) + 6*xl*log(sqrt(xc) - 2*xc + xc**1.5)
        - 12*xc*xl*log(sqrt(xc) - 2*xc + xc**1.5)
        + 6*xc**2*xl* log(sqrt(xc) - 2*xc + xc**1.5)
        + 6*xc*xl**2* log(sqrt(xc) - 2*xc + xc**1.5)
        + 6*xl*log(xl) - 12*xc*xl*log(xl) + 6*xc**2*xl*log(xl) + 6*xc*xl**2*log(xl)
        + 12*xc*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        - 6*xl*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        - 12*xc*xl*log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 6*xc**2*xl* log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        + 6*xc*xl**2* log(1 + xc - xl - sqrt(1 + (xc - xl)**2 - 2*(xc + xl)))
        - 6*xl*log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))))
        + 12*xc*xl*log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))))
        - 6*xc**2*xl* log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))))
        - 6*xc*xl**2* log(1 + xc**2 - xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl))
        - xc*(2 + xl + sqrt(xc**2 + (-1 + xl)**2 - 2*xc*(1 + xl)))))).real
def pc1(r, mb)
Expand source code
def pc1(r, mb):
    # this is an expansion to 2nd order in mb around 4.6 and in r around 0.05
    # P. Gambino,  private communication
    # kinetic scheme cutoff is set to 1 GeV
    return ( 6.486085393242938 - 80.16227770322831*r + 207.37836204469366*r**2
            + mb*(-2.3090743981240274 + 14.029509187000471*r - 36.61694487623083*r**2)
            + mb**2*(0.18126017716432158 - 0.8813205571033417*r + 3.1906139935867635*r**2))
def pc2(r, mb)
Expand source code
def pc2(r, mb):
    # this is an expansion to 2nd order in mb around 4.6 and in r around 0.05
    # P. Gambino,  private communication
    # kinetic scheme cutoff is set to 1 GeV
    return  ( 63.344451026174276 - 1060.9791881246733*r + 4332.058337615373*r**2
             + mb*(-21.760717863346223 + 273.7460360545832*r - 1032.068345746423*r**2)
             + mb**2*(1.8406501267881998 - 20.26973707297946*r + 73.82649433414315*r**2))