Skip to content

feat: add track kinematics panel with config-driven columns#848

Open
rx18-eng wants to merge 1 commit intoHSF:mainfrom
rx18-eng:feat/kinematics-panel
Open

feat: add track kinematics panel with config-driven columns#848
rx18-eng wants to merge 1 commit intoHSF:mainfrom
rx18-eng:feat/kinematics-panel

Conversation

@rx18-eng
Copy link
Copy Markdown
Collaborator

@rx18-eng rx18-eng commented Mar 25, 2026

Closes #844

Summary

  • Adds a track kinematics panel (sortable table showing pT, η, φ, charge, and |p| for all tracks in the event) - Config-driven architecture via KinematicsConfig so experiments define their own columns, units, and data extraction without modifying panel code
  • Includes ATLAS default config (ATLAS_KINEMATICS) with MeV→GeV conversion,charge from dparams[4]

Why this matters for students

In masterclass exercises, students need to identify particles by inspecting track properties (high-pT tracks are Z/W decay products, charge determines) particle/antiparticle, and η tells you where in the detector the track goes.Currently students have to click individual tracks in 3D to see properties one at a time. This panel gives them the full picture at a glance with sorting and filtering so they can quickly spot the interesting tracks, similar to what
tools like HYPATIA provide.

Features

  • Column sorting (click header), default pT descending — highest-energy tracks first
  • pT threshold filter to cut low-momentum background
  • Collection dropdown for multiple track collections
  • Charge-colored index numbers and q values (red +, blue −)
  • TSV export for students to use data in their analysis
  • Keyboard navigation (arrow keys, enter to look at track)
  • Physics tooltips on column headers explaining what each quantity means
  • Auto-refreshes on event change

Adding kinematics for another experiment

const LHCb_KINEMATICS: KinematicsConfig = {                                   
   title: 'Track Momenta',
   columns: [
     { id: 'p', label: '|p|', unit: 'GeV', getter: (t) => t.momentum / 1000 },
     { id: 'charge', label: 'q', getter: (t) => t.charge ?? 0 },                   
     ],
 };                                                                            
       
Recording.2026-03-25.161646.mp4

Signed-off-by: rx18-eng <remopanda78@gmail.com>
@rx18-eng
Copy link
Copy Markdown
Collaborator Author

@EdwardMoyse @sponce , please let me know your thoughts on this !

@rx18-eng rx18-eng requested review from EdwardMoyse and sponce April 4, 2026 01:11
@EdwardMoyse
Copy link
Copy Markdown
Collaborator

I think this is absolutely beautiful, and really really nice. But... it is really duplicating what we already have in the collections panel isn't it?

image

I completely agree for the masterclasses it is probably a much better and cleaner interface, but then I worry that the phoenix menu is becoming very cluttered. I think perhaps it could work however if we made a masterclass version of phoenix, either by adding a new option to the splashpage or if I create a new concrete implemention (with CERN hosted webpage) as with https://github.com/ATLAS-experiment/PhoenixATLAS ... another option would be to improve the existing collection panel, to make it more friendly (and even perhaps make it possible to limit the information it shows in "masterclass mode"?)

I think in any case we need a plan for how to incorporate all your new developments into a flexible, compact UI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Track Kinematics Panel

2 participants