def test_smeftpar_small(self): wc = get_random_wc('SMEFT', 'Warsaw', cmax=1e-24) smeft = SMEFT(wc=None) smeft.scale_in = 160 smeft._set_initial_wcxf(wc, get_smpar=False) with self.assertRaises(ValueError): smpar.smeftpar(smeft.scale_in, smeft.C_in, 'flavio') CSM = smpar.smeftpar(smeft.scale_in, smeft.C_in, 'Warsaw') p = smpar.p self.assertAlmostEqual(CSM['m2'], p['m_h']**2 / 2) v = sqrt(1 / sqrt(2) / p['GF']) self.assertAlmostEqual(CSM['Lambda'], p['m_h']**2 / v**2) self.assertAlmostEqual(CSM['g'], 2 * p['m_W'] / v) # self.assertAlmostEqual(CSM['gp']) self.assertAlmostEqual(CSM['gs'], sqrt(4 * pi * p['alpha_s'])) self.assertAlmostEqual(CSM['Gd'][0, 0], p['m_d'] / (v / sqrt(2))) self.assertAlmostEqual(CSM['Gd'][1, 1], p['m_s'] / (v / sqrt(2))) self.assertAlmostEqual(CSM['Gd'][2, 2], p['m_b'] / (v / sqrt(2))) self.assertAlmostEqual(CSM['Ge'][0, 0], p['m_e'] / (v / sqrt(2))) self.assertAlmostEqual(CSM['Ge'][1, 1], p['m_mu'] / (v / sqrt(2))) self.assertAlmostEqual(CSM['Ge'][2, 2], p['m_tau'] / (v / sqrt(2))) UL, S, UR = ckmutil.diag.msvd(CSM['Gu']) V = UL.conj().T self.assertAlmostEqual(S[0], p['m_u'] / (v / sqrt(2))) self.assertAlmostEqual(S[1], p['m_c'] / (v / sqrt(2))) self.assertAlmostEqual(S[2], p['m_t'] / (v / sqrt(2))) self.assertAlmostEqual(abs(V[0, 2]), p['Vub']) self.assertAlmostEqual(abs(V[1, 2]), p['Vcb']) self.assertAlmostEqual(abs(V[0, 1]), p['Vus'])
def test_smpar_roundtrip(self): wc = get_random_wc('SMEFT', 'Warsaw', cmax=1e-6) smeft = SMEFT(wc=None) smeft.scale_in = 160 smeft._set_initial_wcxf(wc, get_smpar=False) CSM = smpar.smeftpar(smeft.scale_in, smeft.C_in, 'Warsaw') Cboth = CSM.copy() Cboth.update(smeft.C_in) Cback = smpar.smpar(Cboth) for k in smpar.p: if k in ['m_Z']: self.assertAlmostEqual(smpar.p[k] / Cback[k], 1, msg="Failed for {}".format(k), delta=0.05) elif k in ['delta']: self.assertAlmostEqual(smpar.p[k] / Cback[k], 1, msg="Failed for {}".format(k), delta=1e-3) else: self.assertAlmostEqual(smpar.p[k] / Cback[k], 1, msg="Failed for {}".format(k), delta=1e-5)
def test_smpar_small(self): wc = get_random_wc('SMEFT', 'Warsaw', cmax=1e-24) smeft = SMEFT(wc=None) smeft.scale_in = 160 smeft._set_initial_wcxf(wc, get_smpar=False) CSM = smpar.smeftpar(smeft.scale_in, smeft.C_in, 'Warsaw') Cboth = CSM.copy() Cboth.update(smeft.C_in) Cback = smpar.smpar(Cboth) for k in smpar.p: if k not in ['m_Z', 'gamma']: self.assertAlmostEqual(smpar.p[k], Cback[k], msg="Failed for {}".format(k))