docs: def smeftpar(scale, C, basis):
      """Get the running parameters in SMEFT."""
      # start with a zero dict and update it with the input values
      MW = p['m_W']
      # MZ = p['m_Z']
      GF = p['GF']
      Mh = p['m_h']
      vb = sqrt(1 / sqrt(2) / GF)
      v = vb  # TODO
      _d = vMh2_to_m2Lambda(v=v, Mh2=Mh**2, C=C)
      m2 = _d['m2'].real
      Lambda = _d['Lambda'].real
      gsbar = sqrt(4 * pi * p['alpha_s'])
      gs = (1 - C['phiG'] * (v**2)) * gsbar
      gbar = 2 * MW / v
      g = gbar * (1 - C['phiW'] * (v**2))
      ebar = sqrt(4 * pi * p['alpha_e'])
      gp = get_gpbar(ebar, gbar, v, C)
      c = {}
      c['m2'] = m2
      c['Lambda'] = Lambda
      c['g'] = g
      c['gp'] = gp
      c['gs'] = gs
      K = ckmutil.ckm.ckm_tree(p['Vus'], p['Vub'], p['Vcb'], p['delta'])
      if basis == 'Warsaw':
          Mu = K.conj().T @ np.diag([p['m_u'], p['m_c'], p['m_t']])
          Md = np.diag([p['m_d'], p['m_s'], p['m_b']])
      elif basis == 'Warsaw up':
          Mu = np.diag([p['m_u'], p['m_c'], p['m_t']])
          Md = K @ np.diag([p['m_d'], p['m_s'], p['m_b']])
      else:
          raise ValueError("Basis '{}' not supported".format(basis))
      Me = np.diag([p['m_e'], p['m_mu'], p['m_tau']])
      c['Gd'] = Md / (v / sqrt(2)) + C['dphi'] * (v**2) / 2
      c['Gu'] = Mu / (v / sqrt(2)) + C['uphi'] * (v**2) / 2
      c['Ge'] = Me / (v / sqrt(2)) + C['ephi'] * (v**2) / 2
      return c