1 Introduction

The experimental success of the Standard Model (SM) of particle physics and the absence of new physics (NP) signals after LHC run 2, seem to indicate the presence of a mass gap between the Electroweak (EW) scale and the scale of potential new dynamics. If this is the case, non-standard effects in processes at energy scales much smaller than the scale of NP can be described within Effective Field Theory (EFT).

Above the EW scale, the relevant EFT which contains the SM as the low-energy limit is called the Standard Model EFT (SMEFT). The SMEFT accounts for the effect of unknown heavy degrees of freedom by extending the SM Lagrangian with higher-dimensional operators invariant under the SM gauge group. The dominant NP contributions to most of the processes of phenomenological interest are then parametrized by Wilson Coefficients (WCs) of SMEFT operators of canonical dimension five and six [1].

Below the EW scale, heavy SM particles (massive bosons and the top quark) also decouple, and the dynamics is described by the Low-Energy EFT (LEFT). This theory consists of the QCD and QED Lagrangians for the light SM fermions complemented with a set of higher-dimensional operators compatible with the gauge symmetries of QED and QCD. The Wilson coefficients of these higher dimensional operators encode all the physics related to heavy SM states and the NP degrees of freedom, dominated again by operators of canonical dimension five and six [2]. The LEFT is more general than the SMEFT since it is still the correct low-energy EFT when there are new particles at the EW scale. However, under the SMEFT hypothesis, one can define the LEFT (fix its WCs) by doing a matching to the SMEFT at the EW scale.

The basis for automation of calculations within these two EFTs arises from work done within the last decade. First, a complete non-redundant operator basis for the SMEFT up to dimension six was derived in Ref. [3] (aka the Warsaw basis). The complete set of one-loop anomalous dimensions of the operators in the Warsaw basis was then calculated in a series of papers [4,5,6,7]. Similarly, a complete and non-redundant basis for the LEFT up to dimension six was constructed in Ref. [2] (aka the San Diego basis), and the full one-loop anomalous dimensions were calculated in Ref. [8]. Finally, the tree-level and one-loop matching between the LEFT and the SMEFT was performed in Refs. [2, 9], respectively (see also [10, 11]).

These advances, together with simultaneous theoretical developments occurring in the field (such as the matching of specific models to the SMEFT at one loop [12,13,14,15,16,17,18,19,20,21,22], or the automation of calculations by means of several computer tools [23,24,25,26,27,28,29,30,31,32,33,34,35]), pave the way to the systematic use of EFT methods in the analysis of new physics models. The power of the this approach is that it allows to relate physics at disparate energy scales, in our case properties of the high-energy dynamics at the new physics scale \(\Lambda _\mathrm{UV}\), with measurements that take place at low energies, while performing an expansion in \(1/\Lambda _\mathrm{UV}\) that allows to keep leading new physics effects in a consistent manner.

The MathematicaFootnote 1 package DsixTools  [24] was developed as a tool to implement such automated calculations. Since the first release of DsixTools in 2017, further development of the package has occurred in two directions: (1) implementation of new theory results (such as moving from the WET [37] to the LEFT, and the implementation of higher-order effects), and (2) improvements and refinements at the front-end and operational levels (new routines, input, documentation, faster methods for RG evolution, and notation). The result of these developments is the new release DsixTools  \(2.0\), which is available at

https://dsixtools.github.io

This paper presents a description of the program and its new features.

2 DsixTools in a nutshell

2.1 Overview of DsixTools  \(2.0\)

DsixTools is a Mathematica package for analytical and numerical computations within the SMEFT and the LEFT. It features routines devoted to RGE running (in the SMEFT and in the LEFT), matching between the two theories, basis transformation, input reading (with consistency checks) and output generation. DsixTools also contains a comprehensive and pedagogical repository with routines that allow the user to display lists of operators with certain properties, and information on WCs in the SMEFT and the LEFT.

The current version of DsixTools (DsixTools  \(2.0\)) fully implements the one-loop SMEFT RGEs, the complete one-loop matching between the SMEFT and the LEFT, and the one-loop LEFT RGEs, all up to operators of canonical dimension six. In what concerns the SMEFT RGE running, DsixTools contains:

  • Three-loop SM RGEs from Refs. [38,39,40,41], as well as five-loop QCD corrections to the running of the strong gauge coupling and quark Yukawa couplings from Refs. [42,43,44].Footnote 2

  • One-loop RGEs for the dimension-six operators in the Warsaw basis from Refs. [4,5,6].Footnote 3

  • One-loop RGEs for the dimension-six baryon-number-violating operators from Ref. [7].

  • One-loop RGE for the dimension-five lepton-number-violating operator from Ref. [49].

Regarding the SMEFT-LEFT matching, DsixTools implements:

  • The tree-level matching of the SMEFT Warsaw basis to the LEFT San Diego basis at the electroweak scale, using the results of Ref. [2]. We have independently derived the matching relations (in two different ways), finding full agreement.Footnote 4

  • The complete one-loop matching of the SMEFT Warsaw basis to the LEFT San Diego basis at the electroweak scale, using the results of Ref. [9].

Finally, DsixTools also implements several results related to the RGE running in the LEFT:

  • Four-loop QCD corrections to the strong coupling beta function and quark mass anomalous dimensions from Ref. [50].

  • One-loop RGEs for all LEFT operators up to dimension six in the San Diego basis from Ref. [8].

Fig. 1
figure 1

Scketch of the DsixTools matching-running routine. The DsixTools terminology is: , and . The default is

The structure of DsixTools is illustrated in Fig. 1, where one can also see how they relate to the different energy ranges and effective theories. Relevant details of the SMEFT and LEFT implementations are given in Appendices A–C, where our conventions are also presented.

2.2 Differences with DsixTools  \(1.0\)

The list of improvements and changes that features the new version with respect to the original version published in 2017 is substantial, and programs written with DsixTools  \(1.0\) will most likely not work with DsixTools  \(2.0\). Thus we collect here a summary of the most relevant changes:

  • DsixTools  \(2.0\) is now very easy to install, directly within Mathematica. See Sect. 3.

  • The notation for WCs has changed such that now they are dimensionful. For example the SMEFT Lagrangian is given by:

    $$\begin{aligned} \mathcal {L}_\mathrm{SMEFT} = \mathcal {L}_\mathrm{SM}^{(4)} + \sum _k C_k^{(5)} Q_k^{(5)} + \sum _k C_k^{(6)} Q_k^{(6)} + \mathcal {O}\left( \frac{1}{\Lambda _\mathrm{UV}^3} \right) \, , \end{aligned}$$
    (2.1)

    with \(C_k^{(5)}\sim \Lambda _\mathrm{UV}^{-1}\) and \(C_k^{(6)}\sim \Lambda _\mathrm{UV}^{-2}\). Same principle applies also to the LEFT WCs.

  • The WET [37] basis has been superseded by the LEFT, in order to implement all the new results derived within the latter.

  • Nomenclature for operators and Wilson coefficients has been modified, mainly for global convenience and consistency, and in part to make it closer to more common standards (e.g. WCxf [51] or FeynRules [27]).

    First, all operators in the SMEFT start with Q (e.g. ) while the ones in the LEFT start with O (e.g. ).

    Second, Wilson coefficients in the SMEFT start with C (e.g. ) while the ones in the LEFT start with L (e.g. ). In DsixTools  \(1.0\), flavor matrices were specified as WC[ name ], where name was not the same as the name of the Wilson coefficient (e.g. WC[\(\varphi \)l3] vs. \(\varphi \)L3[1,2]). Flavor matrices in DsixTools  \(2.0\) have the same name as the WCs but with an ‘M’ in front, e.g.

    In addition, characters that are not trivially easy to type in Mathematica have been avoided (e.g. or ).

  • Besides the two options to solve the RGEs available in DsixTools  \(1.0\) (exact numerical solution and leading logarithm), DsixTools  \(2.0\) includes a third method as the default setting. This method employs the Evolution Matrix approach, described in Appendix D. This method is numerically very precise and it is computationally faster than solving the RGEs exactly.

  • Many of the routines inherited from DsixTools  \(1.0\) have changed names. For example, all routines related to the SMEFT now start with and similarly for the LEFT (e.g. and ), which makes it easier to use Mathematica ’s autocompletion feature. In addition, some routines in DsixTools  \(1.0\) have been eliminated (or replaced by improved ones), and new routines have been implemented. See Sect. 4.6 for the complete list of routines in DsixTools  \(2.0\).

  • DsixTools  \(2.0\) incorporates a reference repository of information about the SMEFT and the LEFT accessible through the routines and , and , and and , and . In addition, DsixTools  \(2.0\) contains a full Mathematica documentation system.

  • Setting the input values for the Wilson coefficients in the SMEFT or the LEFT through or now checks the consistency of the given input, printing warnings when necessary. The same is done when setting scales through . The input in DsixTools  \(2.0\) is basis-independent. See Sect. 4.2 for details. The user can also check the input values for the WCs at any time using the routines or .

  • DsixTools  \(2.0\) includes higher order corrections to matching coefficients and RG coefficients as compared to DsixTools  \(1.0\). In particular it includes SM beta functions up to five loops, and LEFT matching conditions in the SMEFT at one loop.

3 Downloading, installing and loading DsixTools

DsixTools  is free software under the copyright of the GNU General Public License. There are two ways to download the package and install it:

3.1 Automatic installation

The simplest way to download and install DsixTools is to run the following command in a Mathematica session:

figure q

This will download and install DsixTools in the Applications folder of the Mathematica  base directory, activate the documentation and load the package. During the installation process, a pop up window will appear asking if you want to convert the .m files to .mx format. This option is recommended, since it significantly reduces the DsixTools loading time.

3.2 Manual installation

Alternatively, the user can also download and install DsixTools manually. The package can be downloaded from the web page [52]:

https://dsixtools.github.io

We recommend placing the DsixTools  folder inside the Applications folder of Mathematica ’s base directory, after which loading the package will be automatic. Alternatively, the user can place the DsixTools  folder in a different directory. In this case, loading the package will require specifying previously its location via

figure r

As a final step, the user can activate the documentation by moving the contents of the zip file Documentation.zip inside the DsixTools folder, and applying

figure s

inside a Mathematica notebook.

3.3 Loading DsixTools

Once installed, the user can load DsixTools  anytime with the command

figure t

When DsixTools is loaded, a message is printed out with information about the version, the authors, and links to the relevant references and to the DsixTools website:

figure u

A typical loading time is about 5–10 s depending on the machine, if the .m to .mx conversion is done. When DsixTools is loaded, several (relatively heavy) Mathematica files containing SMEFT and LEFT beta functions, RGEs and evolution matrices, as well as the SMEFT-LEFT one-loop matching relations are loaded as well. This may be unnecessary for some DsixTools applications. In this case the user can force DsixTools to load without importing such files, by evaluating the line

figure v

before loading DsixTools. This will reduce the loading time to under a second. If running or matching is required after loading DsixTools in this mode, the corresponding files can be loaded by the user a posteriori, there is no need to reload DsixTools.

4 Using DsixTools

In this Section we describe how to use DsixTools in some detail, explaining the main features of the package with specific examples of use. At the end of the section we provide a complete list of DsixTools routines and functions with a brief explanation of each one of them.

4.1 A DsixTools program

The following is a simple but complete DsixTools program which takes input from the user for the SMEFT Lagrangian at the UV scale , and calculates the LEFT WCs at the scale \(\mu \), chosen here equal to , printing out one specific WC for illustration:

figure w
Fig. 2
figure 2

Example of a minimal DsixTools program flowchart

The program begins by loading DsixTools, as explained in Sect. 3. In the next line we provide the numerical value for the global variable which corresponds to \(\Lambda _\mathrm{UV}\)

In DsixTools  all scales are given in GeV. The third line defines the input values by means of the DsixTools routine. In this case the user is implicitly specifying that the input WCs correspond to the SMEFT, and these take the values

$$\begin{aligned}&\left[ C_{\ell q}^{(1)} \right] _{1112} = \left[ C_{\ell q}^{(1)} \right] _{1121} = \, \, \frac{1}{\Lambda _\mathrm{UV}^2} \, \, = 10^{-8} \, \, \text {GeV}^{-2} \ ,\nonumber \\&\quad C_\varphi = - \frac{0.5}{\Lambda _\mathrm{UV}^2} = - 5 \cdot 10^{-9} \, \, \text {GeV}^{-2} \, , \end{aligned}$$
(4.1)

at the new physics scale \(\Lambda _\mathrm{UV} = 10\) TeV, with all the other WCs set to zero. We note that \([C_{\ell q}^{(1)}]_{1112} = [C_{\ell q}^{(1)}]_{1121}\) follows from the hermiticity of the Lagrangian, which implies the general relation \([C_{\ell q}^{(1)}]_{aabc} = [C_{\ell q}^{(1)}]_{aacb}^*\). If this condition were not respected by the arguments of the routine, a message would be issued by DsixTools and a modification of the input values in order to restore consistency would be applied (see Sect. 4.2). In the next line, the program makes use of the routine. This can be regarded as the master DsixTools routine, since it performs the three main tasks this package is designed for: it runs the SMEFT parameters from to , matches to the LEFT, and finally runs the LEFT parameters from to . The variable takes the default value . After evaluating , the function becomes available. The last line of the program precisely reads these results by printing the value of the LEFT WC \([ L_{eu}^{V,LL} ]_{2211}\) at \(\mu = \Lambda _\mathrm{IR} = 5\) GeV, obtaining a numerical result

$$\begin{aligned} \left[ L_{eu}^{V,LL} \right] _{2211} \simeq 6.22 \cdot 10^{-6} \, \, \text {GeV}^{-2} \, . \end{aligned}$$

The general flowchart of this minimal program can be seen in Fig. 2. It clearly involves most of the main routines of DsixTools and serves as an example of use in a practical scenario. However, some of the functionalities used in this program offer alternative possibilities and methods of application. For this reason, in the rest of the paper we explain in greater detail how to take full advantage of DsixTools.

4.2 Input values in DsixTools

One of the first steps in every DsixTools program is to define the input. This includes the numerical values of the SMEFT or LEFT parameters at the input scale, the relevant scales for matching and RGE running (, and ), and some DsixTools options. The input values for the SM parameters, which are used by default and in the evolution matrix method, are given in Table 1.

Table 1 Default DsixTools inputs for the SM parameters, taken in the \(\overline{\mathrm{MS}}\) scheme at the renormalization scale \(M_Z = 91.1876~\text {GeV}\). See also footnote 5

There are two ways of defining an input. The first way, which we call notebook input, is to introduce the input values directly in the Mathematica notebook. This is the method used in the example program shown in Sect. 4.1. Alternatively, the user can also set the input by reading external files containing the input values. We will refer to this approach as external files input. We now explain these two approaches and how to use them. For definiteness, we will concentrate on the SMEFT. For setting input in the LEFT, the steps and routines are completely analogous.

4.2.1 Notebook input

The simplest way of setting the input in DsixTools is to introduce the values directly in the Mathematica notebook. The DsixTools options and the relevant scales for the RGE running can be introduced easily. For instance,

figure ae

would set the option to 0 and the high-energy scale \(\Lambda _\mathrm{UV}=10~\text {TeV}\). The SMEFT or LEFT parameters (including the SM or QCD & QED inputs) can be introduced by means of the routine. This routine resets the input so that the WCs take their default values and then applies the changes indicated by the user.Footnote 5 For instance, the program of Sect. 4.1 includes the line

figure ah

which, as discussed already, sets \([ C_{\ell q}^{(1)} ]_{1112} = [ C_{\ell q}^{(1)} ]_{1121} = 1 / \Lambda _\mathrm{UV}^2 = 10^{-8}~\hbox {GeV}^{-2}\) and \(C_\varphi = - 0.5 / \Lambda _\mathrm{UV}^2 = - 5 \cdot 10^{-9}~\hbox {GeV}^{-2}\), if the new physics scale \(\Lambda _\mathrm{UV}\) is previously set to 10 TeV. We note that only the non-vanishing WCs must be given and the rest are assumed to be zero.

As explained in Appendix C, some of the 2- and 4-fermion operators in the SMEFT and the LEFT possess specific symmetries under the exchange of flavor indices. In particular, these symmetries imply conditions to be enforced in the input WCs in order to avoid two types of inconsistencies:

  1. 1.

    Hermiticity: The hermiticity of the Lagrangian imposes certain conditions on some WCs, and these must be respected by the input provided by the user. For instance, an input with \([ C_{\ell q}^{(1)}]_{1112} \ne [ C_{\ell q}^{(1)}]_{1121}^*\) would be inconsistent.

  2. 2.

    Antisymmetry: Some LEFT operators are antisymmetric under the exchange of two flavor indices and thus vanish. For practical reasons, we have not excluded these operators from the WC input list, but rather require that the corresponding WCs vanish. For instance, an input with \([ L_{\nu \gamma }]_{11} \ne 0\) would be inconsistent.

In order to avoid potential issues associated to inconsistent inputs, DsixTools includes user-friendly input routines that simplify the user’s task. DsixTools accepts input values for the WCs of any set of operators (belonging to the Warsaw or San Diego bases) and then checks for possible consistency problems. When the user’s input is not consistent, a warning is issued and DsixTools corrects the input by replacing it by a new one that ensures a complete consistency of the Lagrangian. For instance, this would be case if the user initializes and then runs

figure aj

since this command sets \([ C_{\ell q}^{(1)}]_{1112} = 1 / \Lambda _\mathrm{UV}^2\) and \([ C_{\ell q}^{(1)}]_{1121} = 0 \ne [ C_{\ell q}^{(1)}]_{1112}^*\). The list of invalid input values can be seen by clicking on a button named Input errors that appears after running . DsixTools fixes this inconsistency by defining \(\mathcal {L} = \frac{1}{2} \left( \mathcal {L}_\mathrm{in} + \mathcal {L}_\mathrm{in}^*\right) \), where \(\mathcal {L}_\mathrm{in}\) is the input Lagrangian containing the inconsistency.Footnote 6 The resulting input values after this correction are \([ C_{\ell q}^{(1)}]_{1112} = [ C_{\ell q}^{(1)}]_{1121} = 1 / ( 2 \Lambda _\mathrm{UV}^2 )\), now satisfying \([ C_{\ell q}^{(1)}]_{1121} = [ C_{\ell q}^{(1)}]_{1112}^*\). The hermiticity correction only needs to be applied to those operators for which we do not need to add explicitly its hermitian conjugates in the Lagrangian because they are already included among their flavor components.

We finally note that our prescription can modify other flavor components of the Wilson coefficient of the operator that is related to the inconsistent input by the two reasons given above. In order to make sure that the input has been correctly introduced, the user should pay attention to the input error messages, and check the values of the Wilson coefficients that could have been potentially affected using, for instance, the routine (see below).

Aside from these consistency issues, DsixTools also transforms all WCs to the symmetric basis, defined as the basis in which the WCs follow the same symmetry conditions as the associated operators. We refer to Appendix C.3 for more information about this basis. For example, in the symmetric basis \([C_{\ell \ell }]_{1122} = [C_{\ell \ell }]_{2211}\) since \([Q_{\ell \ell }]_{1122} = [Q_{\ell \ell }]_{2211}\). This is the basis used internally by DsixTools. Nevertheless, the user needs not to worry about this, since the input is always unambiguous. In fact, this is one of the virtues of the input system in DsixTools  \(2.0\): the user introduces directly a Lagrangian, which as such is basis-independent, e.g.,

figure am

sets the input SMEFT Lagrangian

$$\begin{aligned} \mathcal {L}_\mathrm{SMEFT} = \mathcal {L}_\mathrm{SM} + x\,[Q_{\ell \ell }]_{1122} + y\,[Q_{\ell \ell }]_{2211}\ , \end{aligned}$$
(4.2)

which is unambiguous, and understood by DsixTools with no regard to the index symmetry relation \([Q_{\ell \ell }]_{1122} = [Q_{\ell \ell }]_{2211}\).

After defining the input values with the routine the dispatch gets (re)initialized. This dispatch can be used to print the input value of any SMEFT or LEFT parameter. For instance, after running

figure ap

one can evaluate

figure aq

and obtain the result \(5 \cdot 10^{-9}~\hbox {GeV}^{-2}\). This is the input value given with the routine to the SMEFT WC \([ C_{\ell \ell } ]_{1122}\), after transforming to the symmetric basis. In this basis \([ C_{\ell \ell }]_{2211} = [ C_{\ell \ell } ]_{1122}\), and due to \([ Q_{\ell \ell } ]_{2211} = [ Q_{\ell \ell }]_{1122}\) this is equivalent to the input given by the user:

$$\begin{aligned} \text {User's input:} \quad&\left[ C_{\ell \ell } \right] _{1122} = 10^{-8} \, \, \text {GeV}^{-2} \quad \text {and} \quad \left[ C_{\ell \ell } \right] _{2211} = 0 \, , \\ \text {In symmetric basis:} \quad&\left[ C_{\ell \ell } \right] _{1122} = 5 \cdot 10^{-9} \, \, \text {GeV}^{-2} \quad \text {and}\\&\quad \left[ C_{\ell \ell } \right] _{2211} = 5 \cdot 10^{-9} \, \, \text {GeV}^{-2} \, . \end{aligned}$$

This can be clearly seen by evaluating the command

figure as

which prints the complete \(C_{\ell \ell }\) WC in array form. The input values in the independent basis (see Appendix C.3) can be obtained by applying the routine :

figure au

which in this case results in the same input introduced before since \([ C_{\ell \ell } ]_{1122}\) is one of the independent WCs.

Finally, once the input values have been set, the user can change them individually at any moment in the notebook. This is done with the routine. In contrast to , this routine does not reset the input to default values, but just applies the changes demanded by the user. For instance,

figure ax

would change the value of \(C_{\varphi G}\) to \(10^{-6}\) GeV\(^{-2}\) in the current dispatch, without altering the values of the other SMEFT parameters. Exactly as , the routine also checks the consistency of the input Lagrangian provided by the user and then translates the 2- and 4-fermion WCs to the symmetric basis.

4.2.2 External files input

Alternatively, the user can set the program options and provide input values from external files. This is done with the routine. For instance,

figure bc

applies the content of three SMEFT input files.Footnote 7 The file Options.dat contains the option values to be used in the program, the file WCsInput.dat contains the input values for the SMEFT WCs at \(\mu =\Lambda _\mathrm{UV}\), and the file SMInput.dat contains the input values for the SM parameters. Examples for all of these files (and the corresponding ones for the LEFT) can be found in the IO folder of DsixTools. Each of the entries in these files are accompanied by comments that make them self-explanatory. Similarly to the case of notebook input, the dispatch gets initialized and can be used after using .

The default DsixTools input and output format is inspired by the Supersymmetry Les Houches Accord (SLHA) [54, 55]. Input files are distributed in blocks, each devoted to a set of parameters. Any complex parameter is given in two blocks, so that real and imaginary parts should be provided separately. Furthermore, WCs carrying flavor indices should be provided individually for each flavor combination. Analogously to the notebook input case, all WCs are assumed to vanish by default. Therefore, it suffices to include the non-zero WCs (and only these) in the input card. Furthermore, the routine will also check that the set of input values provided by the user is consistent. If any of the hermiticity or antisymmetry conditions on the WCs are not satisfied, a message will be issued and the corresponding input values modified in order to restore consistency.

Additionally, DsixTools can also read WCs input files in WCxf format [51], a standard data exchange format for numerical values of Wilson coefficients. In this case, the WCs input card can be a JSON or YAML file. Note however that reading YAML input files requires previous installation of a YAML importer for Mathematica  [56]. For more details about the WCxf format, such as the specific fermion basis that is implicitly assumed, we refer to [51].

4.3 RGE running

Once the initial conditions at some energy scale \(\Lambda _\mathrm{start}\) are defined, the user can apply the RGEs to obtain the resulting Lagrangian parameters at the different energy scale \(\Lambda _\mathrm{end}\). The SMEFT running between and is performed with the routine, while the LEFT running between and is performed with the routine. Alternatively, the user can also perform the full RGE evolution from \(\Lambda _\mathrm{UV}>\Lambda _\mathrm{EW}\) down to \(\Lambda _\mathrm{IR}<\Lambda _\mathrm{EW}\) by means of the master routine, which internally makes use of and and also applies the SMEFT-LEFT matching at \(\Lambda _\mathrm{EW}\) with .

DsixTools has three different methods for the resolution of the RGEs, which the user can choose by setting the flag :

  • “Exact” (): This method applies the Mathematica internal command NDSolve for the numerical resolution of the differential equations. Given the large number of differential equations involved in this case (several thousands), this might be time consuming, with each evaluation requiring a few (\(< 10\)) seconds, the exact number depending on the particular case and computer.

  • “First leading log” (): This approximate method might be sufficient for many phenomenological studies, in particular when the initial and final scales are not too far from each other. The solution of the RGEs is obtained as

    $$\begin{aligned} C_i(\mu ) = C_i(\Lambda _\mathrm{start}) + \frac{\beta _i}{16 \pi ^2} \log \left( \frac{\mu }{\Lambda _\mathrm{start}} \right) \,, \end{aligned}$$
    (4.3)

    where \(C_i\) is any of the running parameters, \(\mu \) is the renormalization scale and \(\beta _i\) is the beta function for the \(C_i\) parameter evaluated at \(\mu = \Lambda _\mathrm{start}\). This method is much faster but neglects leading log resummation.

  • “Evolution matrix” (): This method uses an evolution matrix formalism, explained in detail in Appendix D.

By default, the SM parameters are assumed to be given at the electroweak scale \(\Lambda _\mathrm{EW}=M_Z=91.1876~\text {GeV}\). Therefore, before running down from \(\Lambda _\mathrm{UV}\) to \(\Lambda _\mathrm{EW}\) they must be computed at \(\Lambda _\mathrm{UV}\). In case the user chooses to solve the RGEs with (NDSolve) or (leading log), this can be done by running up from the electroweak scale using pure SM RGEs, hence neglecting possible deviations caused by non-zero SMEFT WCs.Footnote 8 However, in case the user prefers to give the SM parameters directly at the high-energy scale \(\Lambda _\mathrm{UV}\), this can be done by setting the option to 0. This choice is recommended when the user wants to use the First leading log method to solve the RGEs. In the case the user chooses (DsixTools default) for the resolution of the RGEs (the evolution matrix method), this is implicitly taken into account. Our derivation of the evolution matrix already enforces the SM parameters to be fixed to their measured values at the EW scale.

The user chooses between these three methods by setting the global option to 1 (for the “Exact” method), to 2 (for the “First leading log” method) or to 3 (for the “Evolution matrix” method), via the routine . After running, the results are saved in the function  , such that returns the parameter parameter after RGE running as a function of the renormalization scale \(\mu \). Therefore, the user can easily read the results by running commands such as

figure bv

which would give the result for \([C_{\ell q}^{(1)}(\Lambda _\text {EW})]_{2233}\).

The results obtained after running can be also exported to a text file. This is done with the routines and , which generates the files Output_SMEFTrunner.dat or Output_LEFTrunner.dat in each case, with SLHA format (completely analogous to the WCs input card in this format). Alternatively, the user can export the results into text files following the WCxf convention [51] by adding an argument to the previous routines: and , with format being JSON or YAML.

The evolution matrix method is also used internally by default when evaluating the routines and . These routines provide a semi-analytical solution of the RGEs. For example,

figure cc

returns an analytical expression for the SMEFT WC \(\left[ C_{dG} \right] _{22}\) at \(\mu = \Lambda _\mathrm{EW}\) as a function of the SMEFT parameters at \(\mu = \Lambda _\mathrm{UV}\), with numerical coefficients. This easily allows the user to identify the most relevant contributions to the running, as well as running fast numerical scans of the EFT parameter space.

Finally, we point out that DsixTools can also be used for analytical calculations involving the SMEFT or LEFT beta functions, since these are available to the user right after loading the package. They can be printed simply by evaluating , where parameter must be a valid SMEFT or LEFT parameter (a member of or ). For instance, returns the beta function of the LEFT WC \([ L_{ddd}^{S,RR}]_{2333}\).

4.4 SMEFT-LEFT matching at the electroweak scale

In the first step of the matching process, DsixTools transforms all the SMEFT parameters at the EW scale to the up basis, applying the required biunitary transformations to the fermion mass matrices (which include contributions from dimension-six operators). The up basis, defined in Appendix A, allows one to properly identify the top quark, one of the fields that decouples in the matching. After this transformation, the LEFT parameters at the electroweak scale are computed, using either the full tree-level matching [2]Footnote 9 (if ) or the full one-loop matching [9] (if ). In order to set the value of prior to the matching procedure, the user can use the routine . The result of the matching of the LEFT coefficients at the EW scale is given in the tree-level mass basis.

The SMEFT-LEFT matching is performed by evaluating

figure cj

This routine (re)initializes the dispatch, which can be used to obtain the numerical values of the LEFT parameters after the matching at the electroweak scale. Therefore

figure cl

would return the numerical value of \([ L_{ee}^{V,LL}(\Lambda _\text {EW})]_{1111}\) in units of \(~\text {GeV}^{-2}\). The corresponding analytical expressions can be obtained by using , e.g.

figure cn

Note that does not require running .

Since the LEFT is more general than the SMEFT low-energy limit, not all the LEFT operators are generated from a matching to the SMEFT. For instance, applying the command would return a \(3 \times 3\) matrix full of zeros, since the LEFT operator \(\mathcal {O}_{\nu \gamma }\) is not present in the SMEFT.

Furthermore, as explained, the first step of the routine is to rotate all SMEFT parameters to the fermion up basis. These rotations can be readily obtained by means of the routine by evaluating e.g.,

figure cs

This will create the dispatches ToUpBasis and ToDownBasis, which can be used to obtain any SMEFT parameter in the up and down bases at the electroweak scale. For instance,

figure ct

would return \([ C_{u \varphi } ]_{12}\) in GeV in the up and down bases at \(\Lambda _\mathrm{EW}\). We also note that the routine can be used to obtain the SMEFT parameters in the up and down bases at any scale \(\mu \ge \Lambda _\text {EW}\). For instance, running

figure cv

creates the dispatches ToUpBasis and ToDownBasis, now applicable to obtain any SMEFT parameter in the up and down bases at 500 GeV. Finally, if the user is interested in only one of the two fermion bases, up or down, the routine to be used is . For instance,

figure cx

would only create the ToUpBasis dispatch.

All these results can be exported to external text files with the routine . This generates the file Output_EWmatcher.dat, in SLHA format. The results can also be exported in WCxf convention by adding two arguments (format and name) to the previous routine: , with format being "JSON" or "YAML". The resulting file will always be in the up basis, denoted as Warsaw Up basis in the WCxf exchange format documentation [51].

4.5 Reference guide and tools in DsixTools

DsixTools aims at a simple and visual experience. This is accomplished via a variety of routines, some of which grant the user simple access to the most basic, useful and comprehensive information about the LEFT and the SMEFT, while others implement practical operations on the Wilson coefficients.

The first repository of information available is contained in the variables and , which are lists of certain objects, one for each operator of the EFT (75 for the SMEFT, 103 for the LEFT, up to dimension six). Each object is itself a list containing: the flavor matrix of WCs, the name of the (head of) the WCs, the name of the operator, the symmetry category, the flavor dimension, the canonical dimension, the EFT, the operator class, the broken symmetry (if any), and the LaTeX form for both the operator and its definition. A flattened list of all the parameters appearing in the first position of the objects in and is given in and :

which are all the parameters that might receive input values or output results. However, not all these parameters are independent, and not all are complex-valued. The function returns the number of independent real parameters in a given parameter: 2 for a general complex parameter, 1 for a real parameter and 0 for a redundant one (as chosen by DsixTools convention). The list of independent parameters are contained in the lists and , which match the operators in and . For example the LEFT Lagrangian in the “independent basis” (containing only non-redundant operators) is given by

figure dl

In addition, in order to find the position that a parameter occupies in or one can use the routines and .

The routines and also admit arguments in order to choose subsets of parameters with certain properties. For example

figure ds

lists the non-redundant Lepton-Number-violating SMEFT parameters of canonical dimension six. For a list of attributes that can be chosen as arguments in and see Sect. 4.6.

Fig. 3
figure 3

Information about the SMEFT WC \(C_{\varphi u}\) obtained after evaluating , or by using the interfaces or

Fig. 4
figure 4

Result of evaluating . Positioning the mouse on top of any operator displays its definition, and clicking on it opens a pop-up containing the corresponding chart of Fig. 3. This grid can be saved in a notebook and used later in a fresh Kernel without loading DsixTools

More visual information on the properties of operators and parameters can be obtained via a series of new routines. The routine displays a large amount of useful information on any WC, or operator of the SMEFT or the LEFT specified by the user. For instance,

figure ea

displays a menu with information about the SMEFT WC \(C_{\varphi u}\), including the EFT to which it belongs, the name of the associated WC, the dimension (2, 3, 4, 5 or 6) and type (0F, 2F or 4F), whether it corresponds to an Hermitian operator or not, the number of independent real parameters, the number of flavor indices and the list of elements, as shown in Fig. 3. A clickable menu with information about the SMEFT and LEFT parameters can be loaded with and , while grid menus with all the SMEFT or LEFT parameters can be generated with and . These grids are interactive, and the definition of any operator appears on screen when dragging the mouse pointer on top (see Fig. 4). In addition, clicking on the corresponding operator creates a pop-up window with the same chart created by . The Mathematica notebook OperatorsGrid.nb can be found in the main DsixTools folder. This notebook already contains the result of using and , and the two grid menus can be used right after opening the notebook, without any need to load DsixTools. This can be useful as an out of the box visual reference on the SMEFT and the LEFT.

Concerning handy routines for handling WCs and expressions with WCs (such as amplitudes or cross-sections), we highlight . This routine is used to simplify expressions involving SMEFT or LEFT parameters, by replacing all redundant WCs in terms of non-redundant ones and eliminating complex conjugates on real parameters. For instance,

figure ej

returns 2 m2 CHq1[2,3]\(^*\) Gd[3,1]\(^*\), where the hermiticity relation \([C_{\varphi q}^{(1)}]_{32} = [C_{\varphi q}^{(1)}]_{23}^*\) for the SMEFT object \(C_{\varphi q}^{(1)}\) has been used in order to express the result in terms of the independent parameter \([C_{\varphi q}^{(1)}]_{23}\). As already mentioned, the function returns the number of independent real parameters in a given parameter. Finally, the routines and can be used to transform WCs to the symmetric and independent bases (see Appendix C.3 for the definition of these bases). The routine also checks whether all hermiticity and antisymmetry conditions are satisfied in a given argument.

4.6 Summary of DsixTools routines

Ass soon as the package is loaded, the user can already execute all DsixTools functions and routines. Several DsixTools global variables are also introduced at this stage. Here we summarize the DsixTools routines available to the user.

4.6.1 General variables and routines

  • : Returns the loaded version of DsixTools.

  • : Returns the directory holding the loaded version of DsixTools.

  • : UV scale (in units of \(~\text {GeV}\)) at which the SMEFT input is set and where the running in the SMEFT starts.

  • : Electroweak scale (in units of \(~\text {GeV}\)). This is the scale at which the LEFT input is set (either directly or through matching with the SMEFT), and where the running in the LEFT starts. By default , but it can be modified by means of or .

  • : IR scale (in units of \(~\text {GeV}\)) which sets the lower limit beyond which the solution of the LEFT RGEs are only extrapolations. Since the LEFT in DsixTools  \(2.0\) is the five-flavor theory, the default DsixTools value is .

  • : Master DsixTools routine. It runs the SMEFT parameters from to , matches to the LEFT, and then runs the LEFT parameters from \(\Lambda _\mathrm{EW}\) to .

4.6.2 Reference

  • and : List of SMEFT and LEFT objects, where an object is defined as a list of properties of a SMEFT or LEFT operator and its Wilson coefficients.

  • and : List of all SMEFT and LEFT operators in DsixTools notation.

  • and : List of all SMEFT and LEFT parameters (i.e. couplings, mass parameters and WCs) in DsixTools notation.

  • and : List of all independent SMEFT/LEFT parameters satisfying the condition given by attributes. The sequence of attributes can be chosen from the following predefined lists in the cases of the SMEFT and the LEFT, respectively:

    $$ \begin{aligned} \text {SMEFT}\ :&\ \mathtt{\{``SM", ``D6", ``D5", ``D4", ``D2", ``BNV",}\\&\mathtt{``BNC", ``LNV", ``LNC", ``CPodd",} \\&\mathtt{``CPeven", ``X3", ``H6", ``H4D2", ``X2H2",}\\&\mathtt{``F2H3",``F2XH", ``F2H2D", ``LLLL",} \\&\mathtt{``RRRR", ``LLRR", ``LRLR", ``LRRL", }\\&\mathtt{``B-violating", ``L-violating",} \\&\mathtt{``LFV", ``QFV", ``0F", ``2F", ``4F"\}} \\ \text {LEFT}\ :&\ \mathtt{\{``QED \& QCD", ``D6", ``D5", ``D4", ``D3", }\\&\mathtt{``D2", ``BNV", ``BNC", ``LNV", ``LNC",} \\&\mathtt{``CPodd",``CPeven",``X3",``\nu \nu X",}\\&\mathtt{``LRX", ``LLLL", ``RRRR", ``LLRR", ``LRLR",} \\&\mathtt{``LRRL", ``\Delta L=4", ``\Delta L=2",}\\&\mathtt{``\Delta B=\Delta L=1", ``\Delta B=-\Delta L=1",} \\&\mathtt{``LFV", ``QFV", ``0F", ``2F", ``4F"\}} \end{aligned}$$

    The meaning of each of these attributes is rather self-explanatory; however the user can consult the meaning through the Mathematica documentation. and list all independent SMEFT and LEFT parameters.

  • and : Returns the position of parameter in the list or . If the optional entry attributes is given, the position refers to the corresponding restricted list.

  • : Prints information about parameter.

  • and : Displays a clickable menu with information about the operators and parameters of the SMEFT and the LEFT.

  • and : Creates a grid with all the SMEFT or LEFT operators. Moving the mouse on top of each entry displays the definition of the operator, and clicking on it a window with information about it is displayed.

  • and : Returns the SMEFT or LEFT Lagrangians at the renormalization scale given in the argument, corresponding to the current values given by . If necessary, running and/or matching is performed internally.

4.6.3 Input & Output

  • and : Turn on or off the messages written by the DsixTools routines.

  • : Sets (or resets) the values of the scales indicated in list. For example, if will set (or reset) \(\Lambda _\text {UV}=5~\text {TeV}\) and \(\Lambda _\text {IR}=5~\text {GeV}\).

  • : DispatchFootnote 10 that contains the current values of the Wilson coefficients at the input scale. It might refer to the SMEFT or the LEFT, depending on the last input defined by the user.

  • : Indicates the SMEFT flavor basis of the input in . It can be “up” or “down” (default).

  • : Resets the variable putting to zero all \(d>4\) WCs, and then replaces it by a new one in which the changes in list are applied. The optional additional entries may also contain changes in the scales and , as well as in , e.g.,

    .

  • : Replaces (without resetting) the current dispatch by a new one in which the changes in list are applied. s

  • : Resets the variable with the LEFT coefficients obtained from a matching to the SM.

  • : Reads all input files.

  • : Translates the WCs file in WCxf format WCXF_file into an SLHA format file named SLHA_file.

  • : Translates the WCs file in SLHA format SLHA_file into an WCxf format file named WCXF_file.

  • : List containing the accumulated set of errors fixed by or due to input not consistent with flavor-index symmetries.

  • : List containing the accumulated set of errors fixed by or due to input not consistent with hermiticity of the Lagrangian.

4.6.4 Operations with Wilson coefficients

  • : Replaces all redundant Wilson coefficients in expression by their expressions in terms of the non-redundant ones. It also eliminates complex conjugates on real parameters.

  • : Dispatch that replaces all redundant Wilson coefficients by their expressions in terms of the independent ones present in and .

  • : Returns the number of independent real parameters in parameter: 2 for a general complex parameter, 1 for a real parameter, and 0 for a redundant WC.

  • : Returns X in the symmetric basis, where X is an object of category cat in array form.

  • : Returns the form of the SMEFT or LEFT parameter in the symmetric basis.

  • : Returns X in the independent basis, where X is an object of category cat in array form.

  • : Returns the form of the SMEFT or LEFT parameter in the independent basis.

  • : Returns X in the symmetric basis, where X is an object of category cat in array form, after checking that all hermiticity and antisymmetry conditions are respected. If any of the conditions are violated, some entries of X are modified.

4.6.5 SMEFT and LEFT running

  • : Indicates the method that DsixTools is going to use to solve the RGEs. It is either 1 (exact numerical solution), 2 (first leading log) or 3 (via the evolution matrix formalism). This variable is protected.

  • : Sets the value of to \(n = 1,2\) or 3.

  • : Indicates the order that DsixTools is going to use for the SM beta functions when running in the SMEFT. The maximum (and default) in DsixTools  \(2.0\) is . This variable is protected.

  • : Indicates the order in QCD that DsixTools is going to use for the strong coupling beta function and quark-mass anomalous dimensions when running in the LEFT. The maximum (and default) in DsixTools  \(2.0\) is . This variable is protected.

  • and :Set the values of and

  • : If , DsixTools will use the pure SM RGEs to run the SM parameters to the initial scale .

  • : Gives the beta function of the SMEFT or LEFT parameter.

  • : Gives the SM beta function of the SM parameter.

  • and : Solve the SMEFT and LEFT RGEs in each case.

  • : Gives the SMEFT or LEFT parameter as a function of the renormalization scale \(\mu \). Including the optional argument "log10" gives the function in terms of \(t=\log _{10}(\mu /~\text {GeV})\).

  • : Returns the SMEFT parameter at \(\mu = { final}\) in terms of the SMEFT parameters at \(\mu = { initial}\) using the evolution matrix method.

  • : Returns the LEFT parameter at \(\mu = { final}\) in terms of the LEFT parameters at \(\mu = { initial}\) using the evolution matrix method.

  • : Exports the numerical values of the SMEFT parameters at the scale (after running). If no argument is given, generates a default output file named Output_SMEFTrunner.dat. This routine can also export the output to file with a name (without extension) and format chosen by the user (both arguments are required). The available formats are "SLHA" (default DsixTools format), "JSON" and "YAML".

  • : Exports the numerical values of the LEFT parameters at the scale (after running). If no argument is given, generates a default output file named Output_LEFTrunner.dat. This routine can also export the output to file with a name (without extension) and format chosen by the user (both arguments are required). The available formats are "SLHA" (default DsixTools format), "JSON" and "YAML".

4.6.6 Matching at the EW scale

  • : Indicates if the SMEFT-LEFT matching will be done at tree-level ( =0) or at one-loop (). This variable is protected.

  • : Sets the value of to n.

  • : Dispatch that replaces all LEFT parameters by their numerical values at the matching scale, obtained after matching to the SMEFT.

  • : Returns the matching condition of the LEFT parameter in terms of SMEFT parameters at the EW scale, in analytical form.

  • : Dispatch that replaces all LEFT parameters by their analytical matching conditions, in terms of SMEFT parameters.

  • : Perfoms the matching between the SMEFT and the LEFT, at the order specified by .

  • : Returns a list containing two dispatches that transform the SMEFT parameters to the “up” and “down” bases at \(\mu = scale\).

  • : Dispatch that transforms the SMEFT parameters to a specific flavor basis (“up” or “down”) at \(\mu =scale\).

  • : Dispatch that transforms the LEFT parameters to the mass basis at \(\mu =scale\).

  • : Exports the numerical values of the LEFT parameters at the scale \(\Lambda _\mathrm{EW}\) obtained after matching to the SMEFT. If no argument is given, generates a default output file named Output_EWmatcher.dat. This routine can also export the output to file with a name (without extension) and format chosen by the user (both arguments are required). The available formats are "SLHA" (default DsixTools format), "JSON" and "YAML".

4.6.7 Other variables and routines

  • : Applies a biunitary transformation diagonalizing the square matrix, and provides the rotation matrices and the eigenvalues.

  • : Appears in analytical expressions such as beta functions and matching conditions, separating different loop orders. An n-loop term is proportional to (except for \(n=1\) in the beta functions). This variable is protected.

5 Summary

DsixTools is a Mathematica package for simbolic and numerical operations within the SMEFT and the LEFT, facilitating the treatment of these two effective theories in a systematic and complete manner.

Here we have presented DsixTools  \(2.0\), a new and improved version of DsixTools. This version features the complete one-loop evolution from a high-energy scale \(\Lambda _\mathrm{UV}>\Lambda _\mathrm{EW}\) (where the physics is described by the SMEFT) down to a low-energy scale \(\Lambda _\mathrm{IR}<\Lambda _\mathrm{EW}\) (where the physics is described by the LEFT). This includes complete one-loop RGE evolution and complete one-loop matching at the EW scale. In addition, the new version contains a large number of improvements regarding notation and utilities, operational efficiency and simplicity, user interface, input and output, a set of reference tools for the SMEFT and the LEFT, and a complete Mathematica documentation system.

DsixTools is a project that can be extended with future improvements, including additional tools and functionalities. The final outcome of this endeavour will be a complete and powerful framework for the systematic exploration of new physics models using the language of Effective Field Theories.