Problem
When loading multi-event files (PHYSLITE, CMS .ig, EDM4hep), Phoenix shows a simple dropdown with event keys ("Event 1", "Event 2"...). There's no way to know what's inside each event without loading it. Users click through events blindly looking for interesting topologies.
For PHYSLITE files with 100+ events, or masterclass datasets with 50 events, this wastes significant time. Students spend more time clicking "next" than analyzing physics.
Proposed Solution
An event dataset browser panel that pre-scans all loaded events and shows a sortable, filterable physics summary.
Core features:
- Pre-scan events on load, build summary index (object counts per collection, MET, total energy)
- Sortable table (click column header to sort by # jets, # muons, MET, etc.)
- Filter controls (e.g. "events with >= 2 muons", "MET > 20 GeV")
- Click a row to load that event
- Keyboard navigation (arrow keys to browse, Enter to load)
- Active event highlighted in the table
Design principles:
- Config-driven columns and filters (experiment-agnostic, works for ATLAS/CMS/LHCb/FCC)
- No new dependencies (reuses existing Angular patterns)
- Works with any data format that Phoenix supports
Example column config:
{
columns: [
{ key: 'eventNumber', label: 'Event' },
{ key: 'Jets', label: 'Jets', countCollection: true },
{ key: 'Tracks', label: 'Tracks', countCollection: true },
{ key: 'Muons', label: 'Muons', countCollection: true },
],
filters: [
{ field: 'Muons', operator: '>=', label: 'Min Muons' },
{ field: 'MET', operator: '>=', label: 'Min MET (GeV)' },
]
}
Use Cases
- Students in masterclasses filtering to "2 muon events" to find Z candidates instead of clicking blindly through 50 events
- Researchers finding events with specific topologies (high MET, many jets, isolated leptons)
- Developers verifying that their loader produces the expected object counts across events
- Presenters picking the cleanest event for a talk or demo
Additional Context
Currently the event selector is a <select> dropdown (event-selector.component.ts) with no search, filter, or preview capability. Events are already all held in memory (eventsData in EventDisplay), so pre-scanning requires no additional data loading.
No keyboard shortcuts exist for event navigation (next/prev). This feature would also add arrow key and Enter support for event browsing.
Problem
When loading multi-event files (PHYSLITE, CMS .ig, EDM4hep), Phoenix shows a simple dropdown with event keys ("Event 1", "Event 2"...). There's no way to know what's inside each event without loading it. Users click through events blindly looking for interesting topologies.
For PHYSLITE files with 100+ events, or masterclass datasets with 50 events, this wastes significant time. Students spend more time clicking "next" than analyzing physics.
Proposed Solution
An event dataset browser panel that pre-scans all loaded events and shows a sortable, filterable physics summary.
Core features:
Design principles:
Example column config:
Use Cases
Additional Context
Currently the event selector is a
<select>dropdown (event-selector.component.ts) with no search, filter, or preview capability. Events are already all held in memory (eventsData in EventDisplay), so pre-scanning requires no additional data loading.No keyboard shortcuts exist for event navigation (next/prev). This feature would also add arrow key and Enter support for event browsing.