1 Introduction

The Standard Model (SM) [1,2,3] is considered to be an effective theory valid only up to a new physics scale \(\varLambda \), which negative searches for new particles at the LHC likely relegate to well above the electroweak (EW) scale. If no light degrees of freedom beyond the SM are assumed, any new physics effect in processes proceeding at energies well below \(\varLambda \) can be described by local interactions among SM fields invariant under the SM gauge symmetry [4, 5]. This effective field theory (EFT) approach [6, 7] to new physics not only allows to resum large logarithms that might invalidate calculations in perturbation theory for vastly different scales relevant in a given process, but also serves as a convenient intermediate step between “model building” in the UV and low-energy phenomenology. If new physics predictions for experimental observables are expressed in terms of Wilson coefficients of an EFT beyond the SM, the investigation of the low-energy implications of a concrete new physics model becomes much simpler since only the Wilson coefficients need to be calculated at the appropriate scale.

While the EFT approach to new physics has been ubiquitous in quark flavour physics – dealing with processes at energies of few GeV – for a long time already, the experimental indications that \(\varLambda \) lies well above the electroweak scale have led to the realization that this approach is also valuable for processes of electroweak scale energies like Higgs physics or electroweak precision tests (see [8] and references therein). In contrast to the EFT below the electroweak scale, that is conventionally called the weak effective theory (WET) [9,10,11] and only contains QED and QCD gauge interactions, the EFT above the electroweak scale, conventionally called SMEFTFootnote 1 [13,14,15], contains \(SU(2)_L\) interactions that do not conserve flavour. Consequently, quantum effects lead to an interesting interplay between processes with and without flavour change and call for a global approach.

Starting from the new physics scale \(\varLambda \), the phenomenological analysis of a UV model typically requires the following technical steps.Footnote 2

  1. 1.

    Compute the SMEFT Wilson coefficients at \(\varLambda \).

  2. 2.

    Perform the renormalization group (RG) evolution of the SMEFT Wilson coefficients down to the electroweak scale.

  3. 3.

    Match the complete set of SMEFT Wilson coefficients onto the WET.

  4. 4.

    Perform the RG evolution of WET Wilson coefficients.

  5. 5.

    If the process proceeds at energies below the b quark mass, repeat the last two steps for the WET with reduced numbers of quark and lepton flavours as appropriate.

  6. 6.

    Compute the process of interest as a function of the low-energy Wilson coefficients.

While the first five steps are straightforward in principle, the full procedure is technically challenging in practice due to the vast number of Wilson coefficients already at dimension six (cf. [9, 16]). The wilson package provides an automated solution to steps 2.–5. above. Given the SMEFT Wilson coefficients at the UV scale \(\varLambda \), it bridges the gap to the low-energy phenomenology in step 6., which is implemented in other public codes such as flavio [17]. The package makes use of the following results in the literature.

  • The complete basis of SMEFT operators first derived in [4] and for a non-redundant set of operators in [5].

  • The complete one-loop RG evolution in SMEFT [16, 18, 19].

  • Analytical solutions to the one-loop RG evolution of all flavour violating operators in WET [10].

  • The complete RG evolution of WET operators [11].

  • The complete tree-level matching of SMEFT onto the WET [9, 20].

  • The definition of a Wilson coefficient exchange format (WCxf) that allows to define EFTs, bases of Wilson coefficients, and facilitates exchanging numerical values of Wilson coefficients between different codes [21].

It benefits from the following public physics codes:

  • The SMEFT RG evolution was ported from (and is tested against) the DsixTools Mathematica package [22].

  • The QCD evolution of quark masses and the strong coupling constant is computed with the python-rundec package that wraps the CRunDec module [23].

  • The SM \(\overline{\text {MS}}\) parameters at the electroweak scale have been obtained with the mr package [24].

The rest of this note is organized as follows. In Sect. 2, we give some details on the implementation of running and matching in wilson. Section 3 describes how to install the package. Section 4 contains details on how to use the code. In Sect. 5, we present a simple example application, reproducing a well-known result from the literature.

2 Description

The wilson package consists of several submodules taking care of the RG evolution, basis translation, and matching. A typical internal workflow is shown in Fig. 1, where a set of SMEFT Wilson coefficients in the “Warsaw up” basis [9] at the scale \(\varLambda \) is the input and the WET Wilson coefficients at the scale \(\mu _\text {low}\) are returned in the basis used by the flavio package. Internally, the Warsaw basis as defined in WCxf [21] is used for the SMEFT running, and the JMS basis [9] for the matching and WET running. From a user’s perspective, the entire procedure is performed automatically when using the match_run method described in Sect. 4.2, as indicated by the dashed arrow. Below, we discuss some implementation details of the individual submodules.

Fig. 1
figure 1

Typical internal workflow in the wilson package: Starting from the SMEFT Wilson coefficients at the scale \(\varLambda \), various submodules take care of the necessary basis translations, RG running, and matching to finally obtain the WET Wilson coefficients at the low scale. From a user perspective, the match_run method (see Sect. 4.2) performs all these steps automatically

2.1 Extraction of standard model parameters in SMEFT

Starting from a set of Wilson coefficients at the UV scale, given e.g. in WCxf format, to solve the SMEFT RGEs one additionally requires the values of SM parameters like gauge couplings, Yukawa couplings, and Higgs potential parameters. This is challenging for two reasons. First, these parameters are experimentally determined at the electroweak scale or below, and their evolution to the UV scale depends on the SMEFT Wilson coefficients themselves. Second, the experimental extraction itself is subject to dimension six corrections already at tree level. To solve these two problems, we proceed in three steps.

  1. 1.

    We determine all the SM parameters in the \(\overline{\text {MS}}\) scheme [25] at the scale \(M_Z\).

  2. 2.

    We invert the relations between the effective \(\overline{\text {MS}}\) SM parameters and their counterparts in SMEFT, that are given e.g. in [26].

  3. 3.

    We iteratively determine the SM parameters at the UV scale by running up and down with the SM boundary conditions imposed at the scale \(M_Z\) and the Wilson coefficient boundary conditions at the UV scale \(\varLambda \).

Concerning the first step, the SM \(\overline{\text {MS}}\) parameters used by us are listed in Table 1. The following comments are in order.

  • For the running of the quark masses to the scale \(M_Z\), we have used the python-rundec package [23].

  • For the determination of the running top, W, Z, and Higgs masses, we have used the mr package [24].

  • For the lepton masses, we have neglected the \(O(\alpha _e)\) shift from the conversion to the \(\overline{\text {MS}}\) scheme.

  • We do not display uncertainties as fixed values are used in the code. We expect the parametric errors to be subdominant to other uncertainties in the calculation, e.g. from the iterative determination of high-scale SM parameters.Footnote 3

Table 1 SM \(\overline{\text {MS}}\) parameters at the scale \(M_Z\). Masses are given in units of GeV

We note that we treat the CKM elements as elements of a unitary \(3\times 3\) matrix. Dimension-six contributions to the W coupling to quarks are thus not absorbed in effective CKM elements, as done e.g. in [26]. We find this procedure more convenient for our purposes; in particular, it allows to continue to use unitarity relations in low-energy calculations in flavour physics. While this blurs the connection between these CKM elements and the semi-leptonic decays that are used to measure them, we note that this connection is anyway blurred in SMEFT due to direct dimension-six four-fermion contributions to these decays that can lead to a process-dependent shift of the apparent CKM element (see e.g. [27] for a discussion of \(s\rightarrow u\) transitions and [28] for \(b\rightarrow c\) transitions).

2.2 RG evolution in SMEFT

Once the SM parameters at the input scale have been determined, the SMEFT RGEs, that have the form

$$\begin{aligned} \frac{d C_i}{d\ln \mu } = \frac{1}{16\pi ^2} \sum _j \gamma _{ji} C_i \,, \end{aligned}$$
(1)

can be solved numerically by integrating the right-hand side. Our implementation closely follows the DsixTools package [22].

As an important caveat, we caution the reader that the numerical inputs and outputs, using the non-redundant basis defined by the WCxf convention, differ from the conventions used in [16, 18, 19], where a redundant basis of flavour indices is employed, by symmetry factors in some cases. We refer to appendix A of [29], where this issue is discussed in detail.

2.3 Matching from SMEFT to WET

We implement the complete tree-level matching from SMEFT to WET as derived in [9]. It includes the full set of non-redundant gauge-invariant dimension six operators in both theories. The matching is performed at the EW scale.

2.4 RG evolution in WET

In the weak effective theory, the dimension-6 operators are renormalized by QCD and QED. Analytical solutions to the one-loop RGEs of all quark flavour violating operators have been presented in [10].Footnote 4 To extend this to the complete operator basisFootnote 5 of WET, we proceed in three steps.

  1. 1.

    We take the beta functions from [9], discarding terms that are quadratic in dipole operator coefficients (these terms correspond to dimension eight contributions when matching from the SMEFT with linearly realized electroweak symmetry breaking).

  2. 2.

    We rescale dipole operators and three-gluon operators in the following way:

    $$\begin{aligned}&{\bar{f}}^i_{L} \sigma ^{\mu \nu } f^j_{R}\, F_{\mu \nu } \rightarrow \frac{e}{g_s^2}m_f{\bar{f}}^i_{L} \sigma ^{\mu \nu } f^j_{R}\, F_{\mu \nu } \,, \end{aligned}$$
    (2)
    $$\begin{aligned}&{\bar{f}}^i_{L} \sigma ^{\mu \nu } T^A f^j_{R}\, G^A_{\mu \nu } \rightarrow \frac{1}{g_s} m_f {\bar{f}}^i_{L} \sigma ^{\mu \nu } T^A f^j_{R}\, G^A_{\mu \nu } \,, \end{aligned}$$
    (3)
    $$\begin{aligned}&G_\mu ^{A\nu } G_\nu ^{B\rho } G_\rho ^{C\mu } \rightarrow \frac{1}{g_s}G_\mu ^{A\nu } G_\nu ^{B\rho } G_\rho ^{C\mu } \,, \end{aligned}$$
    (4)

    where \(m_f=\text {max}(m_{f_i}, m_{f_j})\). This allows us to write the RGEs in the simple form

    $$\begin{aligned} \frac{d C_i}{d\ln \mu } = \frac{g_s^2}{16\pi ^2} \sum _j \gamma ^s_{ji} C_i+ \frac{e^2}{16\pi ^2} \sum _j \gamma ^e_{ji} C_i \,. \end{aligned}$$
    (5)

    Note in particular that there are no linear or mixed terms in \(g_s\) or e. Thanks to the rescalings, the anomalous dimension matrices \(\gamma ^{s,e}\) only contain numbers and ratios of fermion masses, which are RG invariant to \(O(\alpha _s)\) and thus can be treated as constants to good approximation.

  3. 3.

    Having rewritten the RGEs in the simple form (5), we can use the procedure described in [10] to obtain the QCD and QED evolution matrices that solve the RGE as

    $$\begin{aligned} C_i(\mu ) = \left[ U_s(\mu , \mu _0)_{ij} + \varDelta U_e(\mu , \mu _0)_{ij}\right] C_j(\mu _0) \,. \end{aligned}$$
    (6)

3 Installation

Installing wilson only requires a system with Python version 3.5 or above. It works on Linux, Mac OS, and Windows. The most recent version can be installed directly from the Python package index by issuing the commandFootnote 6

figure b

in the terminal, without root privileges. This will automatically install the wcxf package and command line interface as well, if not already available on the system. When a new version is available, the package can be upgraded with

figure c

4 Usage

4.1 Initializiation

Using the wilson package in a Python script or interactive session starts by creating a Wilson object that represents a point in EFT parameter space. On creating the instance, initial values of the Wilson coefficients have to be specified at some scale, e.g. the new physics scale \(\varLambda \), in a given EFT and basis. For example, the commands

figure d

create a new Wilson instance where the Wilson coefficient of the chromomagnetic operator with two top quarks in the SMEFT Warsaw basis,

$$\begin{aligned} O_{uG}^{33} = \left( {\bar{q}}_3 \sigma ^{\mu \nu } T^A u_3 \right) {\widetilde{\varphi }} G_{\mu \nu }^A, \end{aligned}$$
(7)

is set to the value \(1 /\text {TeV}^2\) at the scale 1 TeV (note that all dimensionful quantities have to be specified in appropriate powers of GeV, as required by WCxf). At this point, it is important to emphasize the difference between wilson’s Wilson class and the WC class provided by the wcxf Python package:

  • wcxf.WC represents a set of numerical Wilson coefficients at a fixed scale in a fixed EFT and basis;

  • wilson.Wilson represents a point in the parameter space of the EFT beyond the SM, that can be evolved to different scales and translated to different bases within the same EFT without loss of generality, or matched to EFTs valid at lower energies.

In fact, after initializing the above object, the Wilson coefficient values at the initial scale can be returned as a WC object simply with mywilson.wc. Likewise, a Wilson object can be easily initialized by loading Wilson coefficient values from a file in WCxf format:

figure e

4.2 Matching and running

Running, i.e. performing the RG evolution in SMEFT and WET, as well as matching from SMEFT to WET (and from WET with five active quark flavours to the variants of WET valid below the bottom and charm mass scales) is the main purpose of the wilson package. Having initialized a Wilson object as described in Sect. 4.1 – we will continue to call this instance mywilson – the user can obtain Wilson coefficient values (in the form of wcxf.WC instances) in different EFTs, at different scales, in different bases, through the method match_run:Footnote 7

figure f

The names of admissible EFTs and bases can be found on the WCxf website [32].

We note that the output scale can also be higher than the input scale, but only if the output EFT is the same as the input EFT. In this case, the RG evolution (in WET or SMEFT) will be performed from the low input scale to the high output scale. Since the matching is not bijective, this cannot be done across EFT thresholds.

The default behaviour of the Wilson class can be modified with a few user options that can be modified either on a single instance or globally for all future instances of the class (e.g. when importing the package),

figure g

The following options are implemented as of version 1.4,

  • ’smeft_accuracy’ – set accuracy of the SMEFT RG evolution to numerical integration (value ’integrate’, default) or leading-logarithmic approximation (’leadinglog’), which is less accurate but much faster.

  • ’qcd_order’, ’qed_order’ – set the order of QED and QCD anomalous dimensions to be taken into account in the WET RG running. Currently both values are restricted to 1 (default, leading order) or 0 (off).

  • ’smeft_matchingscale’ – set the scale (in GeV) where SMEFT is matched onto WET. Defaults to 91.1876 (the central value of the \(Z^0\) mass).

  • ’mb_matchingscale’, ’mc_matchingscale’ – set the scales (in GeV) where WET is matched onto WET-4 and WET-4 onto WET-3. Default to 4.2 and 1.3, respectively.

4.3 Interfacing with other codes

Since wilson builds on the Wilson coefficient exchange format WCxf, it is straightforward to import and export from and to programs supporting this standard. While the import has already been discussed above, the export can simply leverage the methods provided by the wcxf Python package, e.g.

figure h

An even simpler data exchange is possible for codes written in Python themselves. In particular, the flavio package [17], that can compute predictions for a plethora of observables in quark and lepton flavour physics, directly makes use of the wilson package for the RG evolution, matching, and translation, starting from version v0.28. Functions that accept new physics Wilson coefficient values can be directly provided with a Wilson instance. This also allows to compute observables in terms of SMEFT Wilson coefficients. For example,

figure i

computes the observable \(R_{D^*}\) given a value of \(1/\text {TeV}^2\) for the Wilson coefficient of the SMEFT operator

$$\begin{aligned} \left[ O_{lq}^{(3)}\right] _{3333} = \left( {\bar{\ell }}_3 \gamma _\mu \tau ^I \ell _3 \right) \left( {\bar{q}}_3 \gamma ^\mu \tau ^I q_3 \right) , \end{aligned}$$
(8)

at the scale 1 TeV. The SMEFT running, matching, WET running, and conversion to the flavio basis used in the calculation of the observable is done behind the curtains by wilson.

Fig. 2
figure 2

Constraints on simultaneous solutions to B anomalies through left-handed currents dominantly coupling to the third generation, reproducing fig. 5 of [34]

5 Example

An interesting example where SMEFT RG effects lead to important constraints on NP scenarios was discussed in Refs. [33,34,35]. It investigates scenarios attempting to simultaneously explain the deviations from lepton flavour universality observed in \(b\rightarrow s\ell ^+\ell ^-\) transitions (with \(\ell =e\) vs. \(\mu \) ) and \(b\rightarrow c\tau \nu \) transitions (with \(\ell =\tau \) vs. e or \(\mu \)) [36,37,38,39,40,41],

$$\begin{aligned} R_{K^{(*)}}^{\mu /e}&= \frac{{\mathcal {B}}(B \rightarrow K^{(*)} \mu ^+ \mu ^-)}{{\mathcal {B}}(B \rightarrow K^{(*)} e^+ e^-)}, \nonumber \\ R_{D^{(*)}}^{\tau /\ell }&= \frac{{\mathcal {B}}(B \rightarrow D^{(*)} \tau {\bar{\nu }})_{exp}/{\mathcal {B}}(B \rightarrow D^{(*)} \tau {\bar{\nu }})_{SM}}{{\mathcal {B}}(B \rightarrow D^{(*)} \ell {\bar{\nu }})_{exp}/{\mathcal {B}}(B \rightarrow D^{(*)} \ell {\bar{\nu }})_{SM}}. \end{aligned}$$
(9)

Since NP effects in semi-leptonic four-fermion operators with all left-handed fields are well known to fit the low-energy flavour data [42,43,44,45,46], it is interesting to consider NP models coupling dominantly to the third generation of left-handed quarks and leptons, such that the \(b\rightarrow c\tau \nu \) transition, generated at tree level in the SM, receives sizable NP contributions, while the \(b\rightarrow s\mu \mu \) transition is suppressed by flavour mixing angles that are assumed to be small [47, 48]. It was then shown that strong constraints arise on the simultaneous explanation of charged and neutral current anomalies from lepton flavour non-universality induced in leptonic tau decays, from lepton flavour violating tau decays, and from Z pole observables.

The scenario considered in [34] corresponds to the presence of the operators \([O_{lq}^{(1,3)}]_{3333}\) at a scale \(\varLambda \) in some weak basis that is related to the mass basis by small mixing angles. Choosing a definite weak basis, namely the one conventionally used for the Warsaw basis in WCxf [21], where the down-type quark and charged lepton masses are diagonal, the following Wilson coefficients are present at the scale \(\varLambda \):

$$\begin{aligned} \left[ C_{lq}^{(1)}\right] _{ijkl}&= \lambda ^{\ell }_{ij} \lambda ^{q}_{kl} \,C_1 \,,&\left[ C_{lq}^{(3)}\right] _{ijkl}&= \lambda ^{\ell }_{ij} \lambda ^{q}_{kl} \,C_3 \,. \end{aligned}$$
(10)

Assuming without loss of generality \(\lambda ^q_{33}=\lambda ^{\ell }_{33}=1\) and adopting the simplified scenario where \(\lambda ^{q,\ell }_{22} = (\lambda ^{q,\ell }_{23})^2\), a scenario can be initialized in wilson as a function of the parameters \(\mathtt {C1}=C_1\), \(\mathtt {C3}=C_3\), \(\mathtt {lq_{-} {23}}=\lambda ^q_{23}\), \(\mathtt {ll_{-}} {{23}}=\lambda ^{\ell }_{23}\) and \(\mathtt {Lambda}=\varLambda \) as

figure j

where the parameter variables have been set to numerical values.Footnote 8 This Wilson instance can now be used to compute predictions for the relevant constraints using flavio, as discussed in Sect. 4.3:

figure k

Using this procedure, in Fig. 2 we have reproduced the result of Refs. [33, 34], where the four free parameters are scanned as: \(\lambda _{23}^q \in [-0.05,0]\), \(\lambda _{23}^{\ell } \in [-0.5,0.5], C_{1,3} \in [-4,0]\), and the scale \(\varLambda \) is set at 1 TeV. This shows that a simultaneous explanation of the charged and neutral current anomalies is disfavoured in this simplified scenario.

6 Summary

We have presented wilson, a Python package for the RG evolution, matching, and basis translation of Wilson coefficients beyond the SM. Starting from numerical values of Wilson coefficients at a high scale \(\varLambda \), it automatically performs the necessary steps to return the Wilson coefficients at low energies relevant for precision measurements probing physics beyond the SM. Built on the Wilson coefficient exchange format (WCxf), wilson can be easily linked with a number of public codes, e.g. to directly compute the predictions for low-energy observables, as demonstrated in Sect. 5.

While wilson is currently limited to one-loop RG evolution in SMEFT and WET and to tree-level matching, the structure of the code is general enough to be generalized to higher loop orders in the running and to loop-level matching (which is partially known, see e.g. [20]) in the future. It has already been used in several NP analyses in the context of B anomalies [49] and \(\varepsilon /'\varepsilon \) [50,51,52]. Being an open source project with a permissive license,Footnote 9 contributions from the community are welcome via the public code repository [53]. Further information to wilson can be found on the wilson web page https://wilson-eft.github.io/.