New silicon seed pruning module (PHSiliconSeedPruner and PHSiliconSeedPrunerHelper) - #4446
Conversation
|
Understand this PR’s impact Explore downstream dependencies and potential security impact with Blast Radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: sPHENIX-Collaboration/coresoftware/.coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe pull request adds ChangesSilicon seed pruning
Sequence Diagram(s)sequenceDiagram
participant PHSiliconSeedPruner
participant TrackSeedContainer
participant SelectSeeds
participant gsl_rng
PHSiliconSeedPruner->>TrackSeedContainer: read input seeds by crossing
PHSiliconSeedPruner->>SelectSeeds: pass candidate indices and pruning parameters
SelectSeeds->>gsl_rng: draw representatives
SelectSeeds-->>PHSiliconSeedPruner: return selected and uncertified indices
PHSiliconSeedPruner->>TrackSeedContainer: write selected seeds to output
Priority: ⬇️ Low Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Build & test reportReport for commit 43420dc6a83774ebd34a88756ee58a0ee8cf83d0:
Automatically generated by sPHENIX Jenkins continuous integration |
Build & test reportReport for commit 27d77a0f1232df70e9d45425fde81e0d783a3768:
Automatically generated by sPHENIX Jenkins continuous integration |
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: sPHENIX-Collaboration/coresoftware/.coderabbit.yaml
Review profile: CHILL
Plan: Advanced
Run ID: 16cc44fa-1308-4d5e-82e2-7bb894e9fa30
📒 Files selected for processing (5)
offline/packages/trackreco/Makefile.amoffline/packages/trackreco/PHSiliconSeedPruner.ccoffline/packages/trackreco/PHSiliconSeedPruner.hoffline/packages/trackreco/PHSiliconSeedPrunerHelper.ccoffline/packages/trackreco/PHSiliconSeedPrunerHelper.h
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.
Build & test reportReport for commit 140cee686c71cc06ac62443f40a267863402c3ac:
Automatically generated by sPHENIX Jenkins continuous integration |
Build & test reportReport for commit bf832539067082bb14b4f2f13c137155da604b13:
Automatically generated by sPHENIX Jenkins continuous integration |




Types of changes
What kind of change does this PR introduce? (Bug fix, feature, ...)
This PR adds a new Fun4All module,
PHSiliconSeedPruner(and the helperPHSiliconSeedPrunerHelper), that handles the silicon-seed cluster ambiguity and produces a new container for the pruned seeds. For each valid crossing, the module first groups seeds that share clusters (prioritizing seeds with a complete MVTX triplet), collapses identical triplets, and finally retains the largest set of seeds with mutually independent MVTX clusters through the recursive include-exclude search.The pruning algorithm is isolated in an helper
PHSiliconSeedPrunerHelper, whilePHSiliconSeedPrunerhandles Fun4All node access and creates a new TrackSeedContainer. Random selections use a GSL generator initialized through PHRandomSeed(), with a public seed setter for reproducibility and systematic variations.This module is a re-implementation of an analysis helper for the charged hadron multiplicity measurement in p+p and O+O. An example that walks through the pruning algorithm could be found in this presentation: https://indico.bnl.gov/event/33530/#4-hao-rens-update
(Marking this as a draft PR now for internal review and Jenkins checks)TODOs (if applicable)
Links to other PRs in macros and calibration repositories (if applicable)
Motivation / context
Silicon seeds can share MVTX clusters and create reconstruction ambiguities. This PR adds
PHSiliconSeedPrunerto retain a large set of mutually independent seeds for each valid crossing.Key changes
PHSiliconSeedPrunerFun4All module.PHSiliconSeedPrunerHelperwith ambiguity grouping, MVTX triplet prioritization, duplicate-triplet handling, budgeted exact search, heuristic fallback, and GSL-based random selection.PrunedSiliconTrackSeedContainer.SHRT_MAXcrossings.DST/SVTXwhen needed.Potential risk areas
Possible future improvements
AI-generated summaries can contain mistakes. Contributors should verify these points against the implementation and integration tests.