Particles Into Particles with Permutation Invariant Network
This repository contains the code to reproduce the results described in the paper:
G. Quétant, J. A. Raine, M. Leigh, D. Sengupta and T. Golling
PIPPIN: Generating variable length full events from partons
arXiv:2406.13074 [hep-ph]
Clone the repository and initialise the necessary submodule1:
git clone git@github.com:rodem-hep/pippin.git
cd pippin
git submodule update --init
Make sure to also install the required dependencies (See requirements.txt). For instance:
conda create -n pippin python=3.12
conda activate pippin
pip install --upgrade pip
pip install --upgrade -r requirements.txt
- The MLTools submodule should be called
mattstoolsand be pointing at the commit1cc1d7a80351232804bd4fa79ffa46f21bfc9af2.
Train and test the model with the following command:
python run.py
A debug config is available with less epochs and data:
python run.py +debug=debug
Note that data should be located at ./data. See Zenodo to download it.
Evaluate the model with the following command:
python eval.py --name <network_name> --metrics --plots --inclusive
The arguments are:
--name, -n: the network name--metrics, -m: compute the metrics--plots, -p: make the plots--inclusive, -i: consider the inclusive dataset (i.e. PIPPIN)
Other arguments can be added:
--compare, -c: make the comparison plots (i.e. restrained PIPPIN vs retrained Turbo-Sim). Needs both-tand-T--leading, -l: consider the leading particles (i.e. PIPPIN)--turbolike, -t: consider the Turbo-like outputs (i.e. restrained PIPPIN)--turbosim, -T: consider the Turbo-Sim outputs (i.e. retrained Turbo-Sim)
Note that several runs of the same model can be combined. See eval.py line 95 and change the list with the desired job_id. The runs outputs should be located at ./outputs/PIPPIN/ttbar/<network_name>/hdf5/test/<job_id>/outputs.h5.