This repository contains an example code for PyHEP 2021. Presentation slides are here.
At LHCb, b-jets are tagged using several methods, some of them with high efficiency but low purity or high purity and low efficiency. Particularly our aim is to identify jets produced by and
quarks, which is fundamental to perform important physics searches, e.g. the measurement of the
charge asymmetry, which could be sensitive to New Physics processes.
Since this is a classification task, Machine Learning (ML) algorithms can be used to achieve a good separation between - and
-jets: classical ML algorithms such as Deep Neural Networks have been proved to be far more efficient than standard methods since they rely on the whole jet substructure. In this work, we present a new approach to
-tagging based on Quantum Machine Learning (QML) which makes use of the QML Python library Pennylane integrated with the classical ML frameworks PyTorch and Tensorflow. Official LHCb simulated events of
di-jets are studied and different quantum circuit geometries are considered. Performances of QML algorithms are compared with standard tagging methods and classical ML algorithms, preliminarily showing that QML algorithms perform almost as good as classical ML algorithms, despite using fewer events due to time and computational constraints.
This exercise is based on official LHCb Open Data.
Just click here and wait for a Jupyter Notebook to show up and open the
qml4jets.ipynb
notebook.
This option is recommended for a quick evaluation of the code, however, if you want to feed the QML model with more events, you have to run it locally.
- Clone the repository. (This repository makes use of GitHub Large File Storage, you will probably need to install the
git-lfs
extention to properly download the datasets) - Build a new conda environment using the provided yml file
conda env create -f binder/environment.yml
. - Activate the environment, spawn a Jupyter Lab/Notebook
conda activate pyhepqml
jupyter-lab
- Finally, open the
qml4jets.ipynb
notebook.