Module flavio.physics.bdecays.bxgamma
Functions for inclusive $B\to X_q\gamma$ decays.
Functions
def ACPBXgamma(wc_obj, par, E0)-
Expand source code
def ACPBXgamma(wc_obj, par, E0): r"""Direct CP asymmetry of $B\to X_{s+d}\gamma$. `E0` is the photon energy cutoff $E_0$ in GeV (currently works only for `E0=1.6`).""" scale = flavio.config['renormalization scale']['bxgamma'] # these are the b->qee Wilson coefficients - they contain the b->qgamma ones as a subset xi_t_d = flavio.physics.ckm.xi('t', 'bd')(par) xi_t_s = flavio.physics.ckm.xi('t', 'bs')(par) wc_d = flavio.physics.bdecays.wilsoncoefficients.wctot_dict(wc_obj, 'bdee', scale, par, nf_out=5) wc_s = flavio.physics.bdecays.wilsoncoefficients.wctot_dict(wc_obj, 'bsee', scale, par, nf_out=5) br_d = abs(xi_t_d)**2 * PE0_BR_BXgamma(wc_d, par, 'd', E0) br_s = abs(xi_t_s)**2 * PE0_BR_BXgamma(wc_s, par, 's', E0) as_d = abs(xi_t_d)**2 * PE0_ACP_BXgamma(wc_d, par, 'd', E0) as_s = abs(xi_t_s)**2 * PE0_ACP_BXgamma(wc_s, par, 's', E0) # return (as_s)/(br_s + br_d) return (as_s + as_d)/(br_s + br_d)Direct CP asymmetry of $B\to X_{s+d}\gamma$.
E0is the photon energy cutoff $E_0$ in GeV (currently works only forE0=1.6). def BRBXgamma(wc_obj, par, q, E0)-
Expand source code
def BRBXgamma(wc_obj, par, q, E0): r"""Branching ratio of $B\to X_q\gamma$ ($q=s$ or $d$) normalized to $B\to X_c\ell\nu$ taken from experiment. `E0` is the photon energy cutoff $E_0$ in GeV (currently works only for `E0=1.6`). See arXiv:1503.01789 and references therein.""" flavio.citations.register("Misiak:2015xwa") scale = flavio.config['renormalization scale']['bxgamma'] alphaem = 1/137.035999139 # this is alpha_e(0), a constant for our purposes bq = 'b' + q xi_t = flavio.physics.ckm.xi('t',bq)(par) Vcb = flavio.physics.ckm.get_ckm(par)[1,2] C = par['C_BXlnu'] BRSL = par['BR(B->Xcenu)_exp'] # these are the b->qee Wilson coefficients - they contain the b->qgamma ones as a subset wc = flavio.physics.bdecays.wilsoncoefficients.wctot_dict(wc_obj, bq+'ee', scale, par, nf_out=5) PE0 = PE0_BR_BXgamma(wc, par, q, E0) # uncertainty due to higher order contributions, interpolation, and nonperturbative effects P_uncertainty = 0.1249 * par['delta_BX'+q+'gamma'] # PE0_NLO * delta # central value of non-perturbative correction (M. Misiak, private communication) P_nonpert = 0.00381745 # eq. (2.1) of hep-ph/0609241 flavio.citations.register("Misiak:2006ab") return BRSL * abs(xi_t)**2/abs(Vcb)**2 * 6*alphaem/pi/C * (PE0 + P_nonpert + P_uncertainty)Branching ratio of $B\to X_q\gamma$ ($q=s$ or $d$) normalized to $B\to X_c\ell\nu$ taken from experiment.
E0is the photon energy cutoff $E_0$ in GeV (currently works only forE0=1.6). See arXiv:1503.01789 and references therein. def PE0_ACP_BXgamma(wc, par, q, E0)-
Expand source code
def PE0_ACP_BXgamma(wc, par, q, E0): r"""Numerator of the direct CP asymmetry of $B\to X_q\gamma$ without the prefactor. This is the CP asymmetric analogue of PE0_BR_BXgamma.""" bq = 'b' + q if E0 != 1.6: raise ValueError("ACP(B->Xgamma) is not implemented for E0 different from 1.6 GeV") scale = flavio.config['renormalization scale']['bxgamma'] alphas = flavio.physics.running.running.get_alpha(par, scale, nf_out=5)['alpha_s'] at = alphas/4./pi coeffs = ['C1_'+bq, 'C2_'+bq, 'C3_'+bq, 'C4_'+bq, 'C5_'+bq, 'C6_'+bq, 'C7eff_'+bq, 'C8eff_'+bq] coeffs_p = ['C1p_'+bq, 'C2p_'+bq, 'C3p_'+bq, 'C4p_'+bq, 'C5p_'+bq, 'C6p_'+bq, 'C7effp_'+bq, 'C8effp_'+bq] wc1_8 = np.array([wc[name] for name in coeffs]) wc1p_8p = np.array([wc[name] for name in coeffs_p]) P1 = at * np.dot(wc1_8, np.dot(ka1_i, wc1_8.conj())).imag P1_p = at * np.dot(wc1p_8p, np.dot(ka1_i, wc1p_8p.conj())).imag r_u = flavio.physics.ckm.xi('u',bq)(par)/flavio.physics.ckm.xi('t',bq)(par) PVub = 0.0596211 * r_u.imag return P1 + P1_p + PVubNumerator of the direct CP asymmetry of $B\to X_q\gamma$ without the prefactor. This is the CP asymmetric analogue of PE0_BR_BXgamma.
def PE0_BR_BXgamma(wc, par, q, E0)-
Expand source code
def PE0_BR_BXgamma(wc, par, q, E0): r"""Branching ratio of $B\to X_q\gamma$ without the prefactor. At leading order in the SM, this function is equal to $(C_7^{\mathrm{eff}})^2$.""" bq = 'b' + q if E0 != 1.6: raise ValueError("BR(B->Xqgamma) is not implemented for E0 different from 1.6 GeV") P0 = abs(wc['C7eff_'+bq])**2 + abs(wc['C7effp_'+bq])**2 scale = flavio.config['renormalization scale']['bxgamma'] alphas = flavio.physics.running.running.get_alpha(par, scale, nf_out=5)['alpha_s'] at = alphas/4./pi coeffs = ['C1_'+bq, 'C2_'+bq, 'C3_'+bq, 'C4_'+bq, 'C5_'+bq, 'C6_'+bq, 'C7eff_'+bq, 'C8eff_'+bq] coeffs_p = ['C1p_'+bq, 'C2p_'+bq, 'C3p_'+bq, 'C4p_'+bq, 'C5p_'+bq, 'C6p_'+bq, 'C7effp_'+bq, 'C8effp_'+bq] wc1_8 = np.array([wc[name] for name in coeffs]) wc1p_8p = np.array([wc[name] for name in coeffs_p]) P1 = at * np.dot(wc1_8, np.dot(ka1_r, wc1_8.conj())).real P1_p = at * np.dot(wc1p_8p, np.dot(ka1_r, wc1p_8p.conj())).real P2 = at**2 * np.dot(wc1_8, np.dot(ka2_r, wc1_8.conj())).real P2_p = at**2 * np.dot(wc1p_8p, np.dot(ka2_r, wc1p_8p.conj())).real Prest = P1 + P2 + P1_p + P2_p r_u = flavio.physics.ckm.xi('u',bq)(par)/flavio.physics.ckm.xi('t',bq)(par) PVub = -0.0296854 * r_u.real + 0.123411 * abs(r_u)**2 return P0 + Prest + PVubBranching ratio of $B\to X_q\gamma$ without the prefactor. At leading order in the SM, this function is equal to $(C_7^{\mathrm{eff}})^2$.