Skip to main content

SHAPER (v1.2.0)

GitHub Project DOI

PyPI version Supported Python versions

SHAPER is a framework for defining, building, and evaluating generalized shape observables for collider physics, as defined in "SHAPER: Can You Hear the Shape of a Jet?" (arxiv:2302.12266). This package can be used for evaluating an extremely large class of IRC-safe observables, with modules in place to define custom observables and jet algorithms using an intuitive geometric language.

3-point-ellipsiness-plus-pileup_event_0

Pictured: Example of a custom jet algorithm, "3-(Ellipse+Point)iness+Pileup", as evaluated on an example top jet, as the SHAPER algorithm computes the value of the observable and optimal parameters.

The SHAPER framework contains::

  • Pre-built observables, including N-subjettiness and isotropy.
  • Novel pre-built observables and jet algorithms for finding ring, disk, or ellipse-like jets, with optional centers for collinear radiation and optional pileup radiation
  • Modules for defining arbitrary shape observables using parameterized manifolds, and building new complex observables from old ones.
  • Modules for evaluating defined shape observables on event data, using the Sinkhorn divergence approximation of the Wasserstein metric. This returns both the shape value ("shapiness") and the optimal shape parameters.
  • Modules for visualizing shape observables and their optimization, as in the GIF above.

Installation

From PyPI

In your Python environment run

python -m pip install pyshaper
# python -m pip install --upgrade 'pyshaper[all]'  # for all extras

From this repository locally

In your Python environment from the top level of this repository run

python -m pip install .
# python -m pip install --upgrade '.[all]'  # for all extras

From GitHub

In your Python environment run

python -m pip install "pyshaper @ git+https://github.com/rikab/shaper.git"
# python -m pip install --upgrade "pyshaper[all] @ git+https://github.com/rikab/shaper.git"  # for all extras

Example Usage

For an example of how to use SHAPER, see the notebook examples/example.ipynb. This notebook contains example code for loading data, using pre-built shape observables, defining custom shape observables, running the SHAPER algorithm to evaluate these observables, and making plots.

To run the example, you will need to have pyshaper installed with all extras. This can be done using (assuming a PyPi installation):

python -m pip install --upgrade 'pyshaper[all]'

See the Installation section above for more details.

Dependencies

To use SHAPER, the following packages must be installed as prerequisites:

  • PyTorch: A standard tensor operation library.
  • GeomLoss: A library for optimal transport.
  • pyjet: A package for jet clustering, needed for default observable definitions.
  • Energyflow: A suite of particle physics tools. This package is OPTIONAL; however, many of the example datasets within SHAPER require this package to load. Not necessary if you provide and format your own data. Included as part of the 'energyflow' extra.
  • imageio: An image manipulation package. Needed for automatic gif creation -- not needed otherwise. Included as part of the 'viz' extra.
  • Standard python packages: numpy, scipy, matplotlib

Citation

If you use SHAPER, please cite both this code archive and the corresponding paper, "Can You Hear the Shape of a Jet"?:

@software{SHAPER,
  author = {Rikab Gambhir, Akshunna S. Dogra, Abiy Tasissa, Demba Ba, Jesse Thaler},
  title = "{pyshaper: v1.1.0}",
  version = {1.1.0},
  doi = {10.5281/zenodo.7689890},
  url = {doi.org/10.5281/zenodo.7689890},
  note = {https://github.com/rikab/SHAPER/releases/tag/v1.1.0}
}

@article{Ba:2023hix,
author = "Ba, Demba and Dogra, Akshunna S. and Gambhir, Rikab and Tasissa, Abiy and Thaler, Jesse",
title = "{SHAPER: Can You Hear the Shape of a Jet?}",
eprint = "2302.12266",
archivePrefix = "arXiv",
primaryClass = "hep-ph",
reportNumber = "MIT-CTP 5535",
month = "2",
year = "2023"
}

Changelog

  • v1.2.0: 27 February 2024. New Default array format. New functions for pairwise and isometric EMD. Bugfix in CommonObservables beta assignment.
  • v1.1.1: 28 June 2023. Pairwise EMDs added.
  • v1.1.0: 5 May 2023. Updated Geomloss dependency.
  • v1.0.1: 10 March 2023. PyPi-installable release. Minor changes to example and optional dependency handling.
  • v1.0.0: 24 February 2023. Official public release.

Based on the work in "SHAPER: Can You Hear the Shape of a Jet?" (arxiv:2302.12266)

Bugs, Fixes, Ideas, or Questions? Contact me at rikab@mit.edu

To discuss finer mathematical details (model convergence, optimization guarantees, etc), you may also contact Akshunna S. Dogra at adogra@nyu.edu

Metadata

Release files for pyshaper 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyshaper 1.2.0
File Size Uploaded
pyshaper-1.2.0.tar.gz 17.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyshaper 1.2.0
File Interpreter ABI Platform
pyshaper-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 35.8 kB

Release files / pyshaper-1.2.0.tar.gz

Download URL pyshaper-1.2.0.tar.gz
Size 17.2 kB
Tags Source
SHA-256 checksum
How to use checksums
6357ac9e264bb5c8df9c362e517d8b3496d920da9f91d5800189a64dc9ff4916
BLAKE2b-256 checksum
How to use checksums
95b2d2237ea19496a58acdacd2003a9b5b31fb3230b129b53fb1d40093ad462d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.2

Release files / pyshaper-1.2.0-py3-none-any.whl

Download URL pyshaper-1.2.0-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1d35f8be3ce9829eb595bd13bc45fc01bb9eba74ec4d8d6ff9da93f3f14380d
BLAKE2b-256 checksum
How to use checksums
408dfd0315bf0d1c6131da1c44ce3574f46334dcd9a133350733c88e6f14cf9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.8.2

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page