The simplest way to simulate collider events and extract jet observables.
jetgo generates collider events with pythia8mc, clusters
the particles into jets with fastjet, tags each jet with the
color charge of the parton that initiated it, and writes the observables out. You define the
simulator, the observables and the tagger, jetgo does the rest.
Installation
pip install jetgo[pythia]
PYTHIA8 is an optional dependency, because its wheels are Linux-only. Plain pip install jetgo
works everywhere and gives you every observable and tagger; only event generation needs the extra.
There are two ways to get PYTHIA8, and jetgo accepts either:
- The wheel. The
[pythia]extra above pulls in pythia8mc, the PyPI distribution of PYTHIA's own Python bindings. Nothing to compile, but the wheels are built for Linux only. - Your own build. Compile PYTHIA8 with its Python interface enabled, following
the PYTHIA manual, so that
import pythia8works. This is the route on macOS and Windows, and the one to take if you need a specific PYTHIA version or your own patches.
Quick usage preview
import numpy as np
from jetgo.observables import EEC
from jetgo.simulation import EventGenerator, JetFinder, ParticleSelector, Simulator
from jetgo.taggers import DescendancyTracing
####################################################################################################
# Define simulator #
####################################################################################################
event_generator = EventGenerator(
beam_1=2212,
beam_2=2212,
sqrt_s=5020,
pt_min=80,
pt_max=200,
random_seed=42
)
particle_selector = ParticleSelector(
max_abs_pseudorapidity=2.4
)
jet_finder = JetFinder(
radius=0.4,
pt_min=120,
pt_max=140,
max_abs_pseudorapidity=1.6
)
simulator = Simulator(
event_generator=event_generator,
particle_selector=particle_selector,
jet_finder=jet_finder
)
####################################################################################################
# Define observables #
####################################################################################################
observable = EEC(
bin_edges=np.geomspace(0.005, 0.8, 31),
charged_only=True,
use_pseudorapidity=True
)
####################################################################################################
# Define tagger #
####################################################################################################
jet_flavor_tagger = DescendancyTracing(
delta_r_max=0.4,
use_pseudorapidity=True
)
####################################################################################################
# Run #
####################################################################################################
simulator.simulate(
n_events=100_000,
observables=observable,
jet_flavor_taggers=jet_flavor_tagger,
output_path="jet_eec.json"
)
That run writes one file holding the inclusive energy-energy correlator, its quark-tagged and gluon-tagged counterparts, and the run metadata.
Documentation
Full documentation lives at maxencelarose.github.io/jetgo,
including how to write your own observable or your own flavor tagger. Runnable scripts are in
examples/.
License
This project is licensed under the terms of the BSD 3-Clause License.
Citation
If you use jetgo in your work, please cite the paper it was written for:
@article{Bossi:2026colors,
author = {Bossi, Hannah and Larose, Maxence and Mehtar-Tani, Yacine},
title = {The Colors of Jet Quenching},
year = {2026},
eprint = {2609.05609},
archivePrefix = {arXiv},
primaryClass = {hep-ph},
url = {https://arxiv.org/abs/2609.05609}
}
Contact
Maxence Larose — maxence.larose@stonybrook.edu
Metadata
Release files for jetgo 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jetgo-0.1.4.tar.gz | 43.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jetgo-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.0 kB
Release files / jetgo-0.1.4.tar.gz
| Download URL | jetgo-0.1.4.tar.gz |
|---|---|
| Size | 43.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e412c9410ce29ef014e44ad25bc3694332cb8c07268601e38c7972d9913e9b0e
|
|
BLAKE2b-256 checksum How to use checksums |
f73814d9b3fdc03f4170072321f22838a6802ad58a08d9b1545d6bc1e5bc0c6b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / jetgo-0.1.4-py3-none-any.whl
| Download URL | jetgo-0.1.4-py3-none-any.whl |
|---|---|
| Size | 40.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6697851e8beb2991f23eef82092352612e8255cc870689d9dd30c44d8eef879
|
|
BLAKE2b-256 checksum How to use checksums |
3225d210ae0485a7abd5132a0b1e796d24fc8299d559f432443a7e9ac43d0cb4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency log