Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
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}