DsixTools
SMEFT-Tools 2025
Avelino Vicente

Start DsixTools

<<DsixTools`

User-friendly SMEFT & LEFT information

ObjectInfo[CHG]

ObjectInfo[CHl1]

ObjectInfo[Clq1]

ObjectInfo[LG]

ObjectInfo[LννSLL]

SMEFTOperatorsGrid

LEFTOperatorsMenu

Introducing input values

In DsixTools, the input values for the parameters of the effective theory at work (SMEFT or LEFT) are stored as replacement rules in a dispatch variable called InputValues.

There are two methods to introduce input values in DsixTools: With the NewInput routine or from a file. Let us focus on the first case. In this case the user loads the input values directly in the notebook. Only the non-zero Wilson coefficients must be given. The rest will be assumed to vanish.

Let us show an example with ((Subscript[C, lq])^((1)))[1,1,1,2] = ((Subscript[C, lq])^((1)))[1,1,2,1] = 1 and (Subscript[C, HBtilde]) = -0.5

NewInput[{Clq1[1,1,1,2]->1,Clq1[1,1,2,1]->1,CHBtilde->-0.5}];

We can now see the result:

(Subscript[C, HBtilde])

CHBtilde/.InputValues

((Subscript[C, lq])^((1)))

MClq1/.InputValues

One can also check individual elements in Wilson coefficients with flavor indices: ((Subscript[C, lq])^((1)))[1,1,1,2]

Clq1[1,1,1,2]/.InputValues

We can also check that the rest of Wilson coefficients vanish.

MCllHH/.InputValues

MCdd/.InputValues

The user may also give an invalid input using NewInput. In this case DsixTools will correct the input and save a valid set of input values.

NewInput[{Clq1[1,1,1,2]->1,CHBtilde->-0.5}];

We see that a warning message has been produced by DsixTools. This is because the Wilson coefficients provided by the user lead to an invalid set of input values. There are two possible reasons for this:

1) Non-Hermiticity errors: Some Wilson coefficients are related due to the Hermiticity of the Lagrangian. For instance ((Subscript[C, lq])^((1)))[1,1,1,2] = ((Subscript[C, lq])^((1)))[1,1,2,1] * must necessarily hold.
2) Antisymmetry errors: Some Wilson coefficients are antisymmetric under the exchange of two flavor indices. For instance (Subscript[L, νγ])[1,1] = 0 must necessarily hold.

When the user’s input is not consistent with any of these restrictions, a warning is issued and DsixTools corrects the input by replacing it by a new one that ensures a complete consistency of the Lagrangian. The list of invalid input values can be seen by clicking on the button Input errors. We note however that in some cases other Wilson coefficients, related to these by the two reasons given above, are also modified.

Clq1[1,1,1,2]/.InputValues
Clq1[1,1,2,1]/.InputValues
CHBtilde/.InputValues

How to change input values

Once the input values have been set, the user can change them individually at any moment in the notebook. This is done with the ChangeInput routine.

We can see some examples:

ChangeInput[{CHBtilde->0.6}]

CHBtilde/.InputValues

ChangeInput[{CHBtilde->-0.1}]

CHBtilde/.InputValues

RunDsixTools routine

We consider an example input with ((Subscript[C, lq])^((1)))[2,2,3,3] = 1 / (Λ^2), given at Λ, with Λ = HIGHSCALE = 10 TeV. The rest of SMEFT WCs are assumed to vanish at HIGHSCALE. We must introduce the energy scales too.  EWSCALE and LOWSCALE are taken to be equal to (Subscript[m, W]) and 5 GeV by default, and then only HIGHSCALE must be provided. All scales must be given in units of GeV. NewInput can also be used to introduce energy scales.

NewInput[{Clq1[2,2,3,3]->1.0/HIGHSCALE^2},HIGHSCALE->10^4];

Now we are ready to use the RunDsixTools routine.

RunDsixTools;

Results

The results of the running can be obtained by means of the D6run function, which returns interpolating functions that can be evaluated for any value of t = Log[10,μ].

We can now see some examples of the results:

D6run[Clq1[2,2,3,3]]/.μ->HIGHSCALE
D6run[Clq1[2,2,3,3]]/.μ->EWSCALE

Plot[D6run[HIGHSCALE^2Clq1[2,2,3,3],"log10"]/.t->x,{x,tEW,tHIGH},Frame->True,Axes->False,PlotRange->{{tEW,tHIGH},Automatic},FrameLabel->{"Log[μ/GeV]","((Subscript[Λ, UV])^2) (((Subscript[C, lq])^((1))))_2233",None,None},LabelStyle->Directive[14]]

Plot[D6run[EWSCALE^2LeuVLL[2,2,1,1],"log10"]/.t->x,{x,tLOW,tEW},Frame->True,Axes->False,PlotRange->{{tLOW,tEW},Automatic},FrameLabel->{"Log[μ/GeV]","((Subscript[Λ, EW])^2) (((Subscript[L, eu])^VLL))_2211",None,None},LabelStyle->Directive[14]]

The user can also print the values of the LEFT parameters at the matching scale using the dispatch Match

LeuVLL[2,2,1,1]/.Match

One can also use the dispatch MatchAnalytical to print the analytical expressions used for the SMEFT-LEFT matching

LeuVLL[2,2,1,1]/.MatchAnalytical

%/.LoopParameter->0

The analytical expressions for the beta functions of the SMEFT and LEFT parameters can also be shown

β[gs]

β[LeuVLL[1,1,1,2]]

Using MatchMakerEFT results

Since version 2.1, DsixTools admits input obtained with MatchMakerEFT.

If we are interested in a numerical application, we must introduce values for the parameters of the UV model.

YNbar[a_]:=Conjugate[YN[a]];
YSbar[a_]:=Conjugate[YS[a]];
ylbar[a_,b_]:=Conjugate[yl[a,b]];
yubar[a_,b_]:=Conjugate[yu[a,b]];
ydbar[a_,b_]:=Conjugate[yd[a,b]];

YNnum={0.001,0.4,-0.02};
YSnum={-0.7,0.9,-0.8};

We load the results obtained with MatchMakerEFT and generate the input for DsixTools.

NewInput[{MMEfile->"SN_MM/MatchingResult.dat",MN->1000,MS->1200,lam2->0.1,lam3->0.1,YN[a_]:>YNnum[[a]],YS[a_]:>YSnum[[a]]},HIGHSCALE->10^4]

We can now check some input values for the SMEFT WCs at Λ = HIGHSCALE = 10 TeV. Their analytical expressions in terms of the parameters of the UV model can also be printed thanks to the dispatch MatchAnalyticalUV

CH/.MatchAnalyticalUV

CH/.InputValues

Clq1[1,1,1,1]/.MatchAnalyticalUV

Clq1[1,1,1,1]/.InputValues

Now we are ready to use the RunDsixTools routine.