def rotate_defaultbasis(self, C): """Rotate all parameters to the basis where the running down-type quark and charged lepton mass matrices are diagonal and where the running up-type quark mass matrix has the form V.S, with V unitary and S real diagonal, and where the CKM and PMNS matrices have the standard phase convention.""" v = 246.22 Mep = v / sqrt(2) * (C['Ge'] - C['ephi'] * v**2 / self.scale_high**2 / 2) Mup = v / sqrt(2) * (C['Gu'] - C['uphi'] * v**2 / self.scale_high**2 / 2) Mdp = v / sqrt(2) * (C['Gd'] - C['dphi'] * v**2 / self.scale_high**2 / 2) Mnup = -v**2 * C['llphiphi'] UeL, Me, UeR = ckmutil.diag.msvd(Mep) UuL, Mu, UuR = ckmutil.diag.msvd(Mup) UdL, Md, UdR = ckmutil.diag.msvd(Mdp) Unu, Mnu = ckmutil.diag.mtakfac(Mnup) UuL, UdL, UuR, UdR = ckmutil.phases.rephase_standard( UuL, UdL, UuR, UdR) Unu, UeL, UeR = ckmutil.phases.rephase_pmns_standard(Unu, UeL, UeR) return smeftutil.flavor_rotation(C, Uq=UdL, Uu=UuR, Ud=UdR, Ul=UeL, Ue=UeR)
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 = smeftutil.flavor_rotation(C_in, Uq, Uu, Ud, Ul, Ue) C_out = smeftutil.arrays2wcxf_nonred(C_out) warsaw = wcxf.Basis['SMEFT', 'Warsaw'] all_wcs = set(warsaw.all_wcs) # to speed up lookup return {k: v for k, v in C_out.items() if k in all_wcs}