Module flavio.physics.quarkonium.Pll

$P\to ll^\prime$ branching ratio

Functions

def Pll_br(wc_obj, par, P, l1, l2, CeGGij, CeGGji)
Expand source code
def Pll_br(wc_obj, par,P, l1,l2,CeGGij,CeGGji):
    r"""Branching ratio for the lepton-flavour violating leptonic decay P -> l l' """
    #####branching ratio obtained from 2207.10913#####
    flavio.citations.register("Calibbi:2022ddo")
    mP = par['m_'+P]   
    tauP = par['tau_'+P]  
    ml1 = par['m_'+l1]
    ml2 = par['m_'+l2]
    y1=ml1/mP
    y2=ml2/mP
    y1s=y1**2
    y2s=y2**2
    SL,SR = getS_lfv(wc_obj,par,P,l1,l2,CeGGij,CeGGji)
    return  tauP*mP/(16.*np.pi) * np.sqrt(lambda_K(1,y1s,y2s)) * ((1-y1s-y2s)*(np.abs(SL)**2+np.abs(SR)**2) -4*y1*y2 *(SL*SR.conjugate()).real)

Branching ratio for the lepton-flavour violating leptonic decay P -> l l'

def Pll_br_comb_func(P, l1, l2)
Expand source code
def Pll_br_comb_func(P,  l1, l2):
    def fct(wc_obj, par,CeGGij=0,CeGGji=0):
        return Pll_br(wc_obj, par, P,  l1, l2,CeGGij,CeGGji)+ Pll_br(wc_obj, par, P,  l2, l1,CeGGij,CeGGji)
    return fct
def Pll_br_func(P, l1, l2)
Expand source code
def Pll_br_func(P,  l1, l2):
    def fct(wc_obj, par,CeGGij=0,CeGGji=0):
        return Pll_br(wc_obj, par, P,  l1, l2,CeGGij,CeGGji)
    return fct
def getS_lfv(wc_obj, par, P, l1, l2, CeGGij, CeGGji)
Expand source code
def getS_lfv(wc_obj,par,P,l1,l2,CeGGij,CeGGji):
    # renormalization scale
    scale = flavio.config['renormalization scale'][P]
    alphas = running.get_alpha_s(par, scale)
    # Wilson coefficients
    wc = wc_obj.get_wc(wc_sector[(l1,l2)], scale, par)

    ml1 = par['m_'+l1]
    ml2 = par['m_'+l2]
    mP = par['m_'+P]   
    fP=par['f_'+P] 
    aP=par['a_'+P]
    hP= mP**2 * fP -aP
    qq=meson_quark[P]
    mq=par['m_'+qq[0]]
    # for emu and taue the name of the Wilson coefficient sector agrees with the ordering of leptons in the vector bilinear
    # This is not the case for mutau. Thus distinguish between the two cases here.
    if wc_sector[(l1,l2)]=="mutau":
        ll="taumu"
    else:
        ll=wc_sector[(l1,l2)]
    aPfac=1j*aP*4.*np.pi/alphas
    SR= aPfac * CeGGij +  (hP/(4*mq))*(wc['CSRR_'+l1+l2+qq]-wc['CSRL_'+l1+l2+qq])  -(fP/2.)*(ml1*(wc['CVRR_'+ll+qq] - wc['CVLR_'+qq+ll])+ml2* (wc['CVLR_'+ll+qq] -wc['CVLL_'+ll+qq] ))  
    SL= aPfac * CeGGji + (hP/(4*mq))*(wc['CSRL_'+l2+l1+qq]-wc['CSRR_'+l2+l1+qq]).conjugate() -(fP/2.)*(ml2*(wc['CVRR_'+ll+qq] - wc['CVLR_'+qq+ll])+ml1* (wc['CVLR_'+ll+qq] -wc['CVLL_'+ll+qq] )) 
    return SL,SR