Skip to content
This repository has been archived by the owner on Apr 12, 2018. It is now read-only.

Python package for the numerical renormalization group (RG) evolution in the Standard Model Effective Field Theory (SMEFT)

License

Notifications You must be signed in to change notification settings

DsixTools/python-smeftrunner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Note: this project has been merged into the wilson package.


python-smeftrunner

A Python package for the renormalization group (RG) evolution in the Standard Model Effective Field Theory (SMEFT).

This is a Python implementation of the SMEFTrunner module of the DSixTools Mathematica package by Alejandro Celis, Javier Fuentes-Martín, Avelino Vicente, and Javier Virto (arXiv:1704.04504).

The renormalization group equations have been calculated in arXiv:1308.2627, arXiv:1310.4838, and arXiv:1312.2014 by Rodrigo Alonso, Elizabeth Jenkins, Aneesh Manohar, and Michael Trott.

The Python package was written by Xuanyou Pan and David Straub.

Installation

The package requires Python version 3.5 or above. It can be installed with

python3 -m pip install smeftrunner

Usage

The main interface is the SMEFT class that corresponds to a point in SMEFT parameter space and can be instantiated as

from smeftrunner import SMEFT
smeft = SMEFT()

As input to the RG evolution, the values of all Standard Model (SM) parameters and SMEFT Wilson coefficients, as well as the initial scale and the new physics scale Λ (which can but don't have to coincide) have to be specified. The initial values can be read from a DSixTools input file:

with open('my_input_file.dat', 'r') as f:
  smeft.load_initial((f,))

Note that the argument must always be a tuple; multiple input files can be specified in this way and will be read in turn (e.g. one file with SM parameters, one with Wilson coefficients):

with open('my_sm_input.dat', 'r') as f1:
  with open('my_wc_input.dat', 'r') as f2:
    smeft.load_initial((f1, f2,))

The order of reading in the files is irrelevant.

The scales can simply be specified as

smeft.scale_in = 1e4
smeft.scale_high = 1e4

Note that all dimensionful parameters are in units of GeV. The RGEs can now be solved numerically using e.g.

C_out = smeft.rgevolve(scale_out=160)

The result can be exported to a DSixTools output file using

smeft.dump(C_out, open('my_output_file.dat', 'w'))

Alternatively to the numerical solution of the RGEs, the leading logarithmic approximation can be accessed using

C_out = smeft.rgevolve_leadinglog(scale_out=160)

This is much faster but less precise than the exact solution.

Command-line interface

While using smeftrunner directly as a Python module is the most flexible option, the package also provides a convenient command-line script smeftrunner-cli that performs the steps described above in a single line. It is used like

smeftrunner-cli 1e16 160 my_sm_input.dat my_wc_input.dat --output my_output_file.dat

where the first number is the input scale (assumed to be equal to the high scale), the second number is the output scale, the following files are an arbitrary number of input files, and the last options specifies an output file name. If omitted, the output is printed to the console.