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
mattstools
and 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-t
and-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
.