Skip to content

Jorge-Alda/SMEFT19

Repository files navigation

SMEFT19

DOI

In this repository you can find the code that I have used to investigate the impact of New Physics in the form of the SMEFT operators Olq(1) and Olq(3), with various flavour structures, to a large range of physical observables.

This code was used for the following papers:

  • Jorge Alda, Jaume Guasch, Siannah Penaranda, Anomalies in B mesons decays: A phenomenological approach.
  • Jorge Alda, Jaume Guasch, Siannah Penaranda, Anomalies in B mesons decays: Present status and future collider prospects. Contribution to LCWS2021.
  • Jorge Alda, Jaume Guasch, Siannah Penaranda, Using Machine Learning techniques in phenomenological studies in flavour physics.
  • Jorge Alda, Jaume Guasch, Siannah Penaranda, Exploring B-physics anomalies at colliders. Contribution to EPS-HEP2021.

How to run this code

The recommended way to run SMEFT19 is using the Docker containers. In this way, you will have the right dependencies without having to worry about conflicts with the rest of your system. First, download the container (it may take some time, only needed for the first time) using the command

docker pull jorgealda/smeft19

and launch it in interactive mode

docker run -it jorgealda/smeft19

This will start an ubuntu shell, meaning that you have the basic Unix tools (less, ls, cp, sed,...) at your disposal. There is also a python3.8 interpreter installed, that you can start by typing

python3

Python has all the SMEFT19 dependecies already installed: numpy, scipy, pandas, matplotlib (but there is no graphic display), wilson, flavio, smelli, sklearn, xgboost and shap.

Let's see a simple example which loads SMEFT19, computes the prediction for RK+ in scenario IV and writes it to a file. Enter the following in the Python3 interpreter:

from SMEFT19.SMEFTglob import prediction
from SMEFT19.scenarios import scIV
pred = prediction([-0.2, 0.21], ('<Rmue>(B+->Kll)', 1.1, 6.0), scIV)
with open('prediction.txt', 'wt') as f:
    f.write(f'RK+ = {pred}')
exit()

To see the contents of the file that you created, execute

less prediction.txt

and you should get the following: RK+ = 0.8175725039919868

For now, we can stop the container simply typing

exit

If you want to retrieve a file saved in the container, you first need to know the ID of the container that created it, by running the command

docker ps -a | grep smeft19

This will produce a list of all smeft19 currently running or stopped:

b11cd92478b9   jorgealda/smeft19                              "bash"    9 minutes ago   Exited (0) 2 minutes ago             recursing_rubin

Once you have localized the right container (if you have more than one, check the start and exit times), its ID will be the hexadecimal string at the begining of the line, in this case b11cd92478b9 (yours will be different).

You can copy the file from the container to your system using Docker's cp:

docker cp b11cd92478b9:/prediction.txt ./prediction.txt

You can return to a stopped container using

docker start b11cd92478b9 && docker attach b11cd92478b9

And finally you can delete a container that you no longer need (you will loose all files in the container that are not cp'ed to your system) with the command

docker rm b11cd92478b9