Skip to content

Add ghost association of truth particles to jets - #549

Open
afroch wants to merge 1 commit into
HEP-FCC:masterfrom
afroch:ghost-association
Open

afroch wants to merge 1 commit into
HEP-FCC:masterfrom
afroch:ghost-association

Conversation

@afroch

@afroch afroch commented Sep 16, 2026

Copy link
Copy Markdown

Summary

Adds JetGhostLabels::associate_ghosts, which reruns the jet clustering with a set of truth particles added at a negligible momentum (1e-18 of their own) and returns for each of them the index of the jet it ended up in. The ghosts are matched back to the jets the analysis already built through their shared constituents, so the result does not depend on the jet ordering and works with any JetClustering::clustering_* functor, inclusive or exclusive. A ghost that ends up outside every jet gets -1.

ExclusiveJetClusteringHelper now exposes its clustering call (clustering_spec), its input pseudojets and the constituent index column, so the same clustering can be rerun from Python. The clustering itself is unchanged.

This is the first of six PRs adding ATLAS-style truth information for flavour tagging studies: ghost-associated hadron and parton labels, truth labels for jet constituents and matched truth jets. The series builds on the truth labelling that @vincentriechers developed on his truth-labelling branch.

Testing

  • Unit tests check that ghosts leave the jet momenta unchanged and that ghosts along two separate prongs end up in different jets.
  • In a standalone check with the same ee_kt clustering on 2000 wzp6 H→ss and 1000 Pythia8 Z→bb events, every b and c hadron ghost ended up in a jet and no jet axis moved.
  • ctest: 54/54.

Re-run the analysis' own jet clustering with truth particles added at
negligible momentum and report which jet each one lands in. Ghosts are
matched back to the existing jets by shared constituents, so this works for
any clustering functor, including inclusive algorithms. The exclusive
clustering helper now exposes its clustering so it can be re-run.
@afroch
afroch marked this pull request as ready for review September 16, 2026 11:27

This branch has not been deployed

No deployments
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.

1 participant