Transition benchmark analyses from Associations to Links - #325
Conversation
There was a problem hiding this comment.
Pull request overview
Updates detector benchmark analyses to consume EICrecon’s current link-based truth↔reco navigation model, replacing deprecated *Associations collections and legacy ID-based traversal so the benchmarks remain compatible with modern EICrecon PODIO output.
Changes:
- Switched benchmark inputs from
*Associationsto*Linkscollections (including collection/type updates in the RICH benchmark and collection lists in runner scripts). - Updated DIS tracking benchmark configuration and analysis to read link-backed
CentralCKF*TrackLinks.weightbranches. - Migrated nHCal analyses from association ID traversal (
getSimID()/getRecID()) to link handle navigation (getTo()/getFrom()).
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| benchmarks/tracking_performances_dis/Snakefile | Requests CentralCKF*TrackLinks collections in produced PODIO output. |
| benchmarks/tracking_performances_dis/analysis/trk_dis_plots.cxx | Updates plot annotations/comments to refer to links rather than associations. |
| benchmarks/tracking_performances_dis/analysis/trk_dis_analysis.cxx | Reads CentralCKF*TrackLinks.weight branches instead of association weights. |
| benchmarks/rich/src/ReconstructedParticleAnalysis.cc | Switches reco↔MC traversal to MCRecoParticleLinkCollection using getFrom()/getTo(). |
| benchmarks/rich/src/RawHitAnalysis.cc | Updates raw-hit truth navigation to MCRecoTrackerHitLinkCollection. |
| benchmarks/rich/src/benchmark.cc | Updates frame collection names/types to *Links for RICH processing. |
| benchmarks/rich/run_benchmark.rb | Updates requested output collections to DRICHRawHitsLinks and ReconstructedChargedParticleLinks. |
| benchmarks/rich/include/ReconstructedParticleAnalysis.h | Updates includes/signature from association to link collection. |
| benchmarks/rich/include/RawHitAnalysis.h | Updates includes/signature from association to link collection. |
| benchmarks/nhcal_pion_rejection/scripts/pion_rejection_analysis.cxx | Migrates MC↔reco matching to MCRecoParticleLinkCollection (getTo()/getFrom()). |
| benchmarks/nhcal_dimuon_photoproduction/scripts/dimuon_photoproduction_analysis.cxx | Migrates MC↔reco matching to MCRecoParticleLinkCollection (getTo()/getFrom()). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
@veprbl This passes a full CI run (for what that's worth). It would need to be uploaded into hydra with all channels activated for actual comparison since there are 1934 artifacts. But based on a download of the artifact archive here and for a reference run, and running ImageMagick's |
|
E.g. https://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/jobs/8389718/artifacts/file/results/emcal_barrel_electron_fsam.png vs https://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/jobs/8390711/artifacts/file/results/emcal_barrel_electron_fsam.png But that's generated by code not actually changed in this PR... |
|
It's fine, this is apparently broken in main too now... 🆘 https://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks/-/jobs/8392454/artifacts/file/results/emcal_barrel_electron_fsam.png |
…llections Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
3d0a2dc to
9dd7989
Compare
The benchmark analyses were still consuming the legacy
*Associationscollections and the oldergetSimID()/getRecID()traversal pattern. EICrecon has moved to link-based truth/reco navigation, so the benchmark code needs to follow the current*Linksmodel to remain compatible with generated output.Summary
What changed
*Associationsto*Linksand updated the corresponding C++ collection types fromMCReco*AssociationCollectiontoMCReco*LinkCollection.getSimID(),getRecID()) with the link-based accessors (getTo(),getFrom()).CentralCKFTrackLinks.weightandCentralCKFTruthSeededTrackLinks.weight.Example