TRACE-HEP

See what's inside a collider event.

TRACE-HEP is a lightweight, format-agnostic Python toolkit for reconstructed-level collider event and vertex displays -- Delphes, ATLAS/CMS Open Data, samples of different formats, in 2D and interactive 3D, plus a live browser GUI.

$ pip install --index-url https://test.pypi.org/simple/ \ --extra-index-url https://pypi.org/simple/ "trace-hep[gui,delphes]"

See it in action

Screenshots of trace-gui, the live interactive viewer -- point it at a file (or build an event by hand), pick a display, and it renders in your browser.

trace-gui landing form

Single event

Pick a loader, the Display dropdown updates automatically to that format's valid views.

a rendered ttbar event

Rendered live

A real ttbar Delphes event, loaded and drawn on demand -- with a Download-image button.

vertex display auto-detection

Vertex display

One loader auto-detects calo-timing vs. PHYSLITE vertex ntuples from their branches.

many events gallery mode

Many events

List event numbers ("1, 2, 4-6") and browse them all as a filterable gallery, no categorizing needed.

failure-mode gallery mode

Failure-mode gallery

Compare two algorithms' pass/fail lists, or apply custom labels, and review the split visually.

build an event by hand

Build an event by hand

No file at all -- type jets/leptons/photons/MET directly and render the same displays.

Live examples

These are real, self-contained HTML pages -- fully interactive right here, no server, no install. The gallery below filters by category and downloads images; the 3D views are genuine WebGL plots you can drag to rotate and scroll to zoom.

What it can do

A format-agnostic core, plus optional loaders for the ROOT ntuples you actually have.

📡

Multiple formats

Delphes, flat-ntuple, ATLAS & CMS Open Data, PHYSLITE, and calo-timing vertex ntuples -- auto-detected where possible.

📈

2D and interactive 3D

Polar (φ, |η|), beam-axis 2D, and a real WebGL 3D view for every event.

📍

Vertex & pileup diagnostics

z-R vertex displays, per-vertex track/jet detail, hard-scatter vs. pileup coloring when truth exists.

🔍

Failure-mode & anomaly review

Turn a list of event numbers plus a category into one browsable, filterable HTML gallery.

🖥️

Live interactive GUI

trace-gui: single event, many events, or failure-mode gallery, all in one page.

✅

Zero-dependency core

The plotting core never requires ROOT or uproot -- loaders pull them in only when you use them.

Try it yourself

This page is a static showcase -- GitHub Pages can't run the Python backend trace-gui needs to read a ROOT file. Running it locally takes under a minute:

  1. Install the package (only on TestPyPI for now, so both index flags are needed):

    pip install --index-url https://test.pypi.org/simple/ \
        --extra-index-url https://pypi.org/simple/ "trace-hep[gui,delphes]"
  2. Launch the viewer -- it opens in your browser automatically:

    trace-gui
  3. Point it at a file (a path or a public https:// URL), or switch to "Build an event by hand" and skip files entirely.

Have a ROOT file you can't share publicly? Everything above runs entirely on your own machine -- nothing is uploaded anywhere.