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.
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