def test_wcxf2array(self): wc = get_random_wc('SMEFT', 'Warsaw', 160) C = smeftutil.wcxf2arrays_symmetrized(wc.dict) d = smeftutil.arrays2wcxf_nonred(C) self.assertEqual(wc.dict.keys(), d.keys()) for k, v in wc.dict.items(): self.assertAlmostEqual(v, d[k], msg=f"Failed for {k}")
def test_wcxf2array_incomplete(self): wc = wcxf.WC('SMEFT', 'Warsaw', 160, {'G': 1e-10}) C = smeftutil.wcxf2arrays_symmetrized(wc.dict) d = smeftutil.arrays2wcxf_nonred(C) for k, v in d.items(): self.assertEqual(v, wc[k], msg="Failed for {}".format(k)) self.assertIsInstance(v, Number)
def warsaw_up_to_warsaw(C, parameters=None, sectors=None): """Translate from the 'Warsaw up' basis to the Warsaw basis. Parameters used: - `Vus`, `Vub`, `Vcb`, `gamma`: elements of the unitary CKM matrix (defined as the mismatch between left-handed quark mass matrix diagonalization matrices). """ C_in = smeftutil.wcxf2arrays_symmetrized(C) p = default_parameters.copy() if parameters is not None: # if parameters are passed in, overwrite the default values p.update(parameters) Uu = Ud = Ul = Ue = np.eye(3) V = ckmutil.ckm.ckm_tree(p["Vus"], p["Vub"], p["Vcb"], p["delta"]) Uq = V C_out = smeft_warsaw.flavor_rotation(C_in, Uq, Uu, Ud, Ul, Ue) C_out = smeftutil.arrays2wcxf_nonred(C_out) return C_out
def warsaw_to_warsaw_up(C, parameters=None, sectors=None): """Translate from the Warsaw basis to the 'Warsaw mass' basis. Parameters used: - `Vus`, `Vub`, `Vcb`, `gamma`: elements of the unitary CKM matrix (defined as the mismatch between left-handed quark mass matrix diagonalization matrices). """ C_in = smeftutil.wcxf2arrays_symmetrized(C) p = default_parameters.copy() if parameters is not None: # if parameters are passed in, overwrite the default values p.update(parameters) Uu = Ud = Ul = Ue = np.eye(3) V = ckmutil.ckm.ckm_tree(p["Vus"], p["Vub"], p["Vcb"], p["delta"]) Uq = V.conj().T C_out = smeftutil.flavor_rotation(C_in, Uq, Uu, Ud, Ul, Ue) C_out = smeftutil.arrays2wcxf_nonred(C_out) warsawup = wcxf.Basis['SMEFT', 'Warsaw up'] allkeys = set(warsawup.all_wcs) # to speed up lookup return {k: v for k, v in C_out.items() if k in allkeys}