feat: reject edge clusters in track fit#4128
feat: reject edge clusters in track fit#4128osbornjd merged 3 commits intosPHENIX-Collaboration:masterfrom
Conversation
📝 WalkthroughWalkthroughAdds cluster-edge-rejection configuration and threading from PHActsTrkFitter into MakeSourceLinks, plus defensive checks, expanded logging, minor API additions (setters, member), operator<< spacing normalization, and a const-correctness change to resetTransientTransformMap. Changes
✨ Finishing touches
Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
offline/packages/trackreco/MakeSourceLinks.cc (1)
359-425: Filter edge clusters before_clusterMover.processTrackto prevent biasing the fitted trajectory.The mover fits a circle and line through input cluster positions to calculate corrections for all clusters. Edge clusters included in this fit will bias these parameters, degrading corrections for good clusters. Edge filtering must occur in the first loop before
global_rawis passed to the mover, not after.Proposed fix
for (auto clusIter = track->begin_cluster_keys(); clusIter != track->end_cluster_keys(); ++clusIter) { auto key = *clusIter; auto cluster = clusterContainer->findCluster(key); if (!cluster) { ... continue; } + + if (cluster->getEdge() > m_cluster_edge_rejection) + { + continue; + } /// Make a safety check for clusters that couldn't be attached /// to a surface auto surf = tGeometry->maps().getSurface(key, cluster); if (!surf) { continue; } ... global_raw.emplace_back(std::make_pair(key, global)); }
Build & test reportReport for commit 147009b249d97bd8d5ef7d60f25800e833763e49:
Automatically generated by sPHENIX Jenkins continuous integration |
Build & test reportReport for commit 6ce581e35841fffaf9e131986ede27c969427ed3:
Automatically generated by sPHENIX Jenkins continuous integration |
Build & test reportReport for commit 435537f4adb086205857a252f97ee8911af17037:
Automatically generated by sPHENIX Jenkins continuous integration |



Per @bogui56 , this PR rejects any cluster on the edge from the track fit and creates an API that allows you to set it from the macro level. Let's see what it does per jenkins
Types of changes
What kind of change does this PR introduce? (Bug fix, feature, ...)
TODOs (if applicable)
Links to other PRs in macros and calibration repositories (if applicable)
Edge Cluster Rejection in Track Fitting
Motivation / Context
Key changes
Potential risk areas
Possible future improvements
Note on AI analysis