Ejemplo n.º 1
0
 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}")
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
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 = smeft_warsaw.flavor_rotation(C_in, Uq, Uu, Ud, Ul, Ue)
    C_out = smeftutil.arrays2wcxf_nonred(C_out)
    return C_out
Ejemplo n.º 4
0
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}