updated MB classifier for O+O and species dependence - #4355
Conversation
|
Warning Review limit reached
Next review available in: 56 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthrough
ChangesEvent processing updates
Possibly related PRs
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 |
|
The GetNodes(topNode) method uses Fun4All return codes which then get reinterpreted to EVENT_OK in the process_event(). That is confusing and likely not what you want. In this case the classifier does not work and returning ok will just spew warnings for every single event (blowing up condor logs). If Fun4All return codes are used as return from GetNodes() they have to be passed up, otherwise change the return code to some classifier specific one and return the proper Fun4All return code from process_event() many of the hardcoded parameters in this list |
|
Can you fix the bug in the centrality reco while you are at it? The fact that the centrality reports the previous events centrality if the current event does not pass the minbias classifier. |
Build & test reportReport for commit 0fe9dc0ece4c7a464f6b7e03dfb1b3d412236ed1:
Automatically generated by sPHENIX Jenkins continuous integration |
Build & test reportReport for commit 8bc5f37c959027030b879cfbc51c39302dcf60d4:
Automatically generated by sPHENIX Jenkins continuous integration |
|
@pinkenburg I updated the structure. Could you take a look and see if this is okay to go? |
| return ret; | ||
| } | ||
|
|
||
| m_central->Reset(); |
There was a problem hiding this comment.
This is not necessary. The Reset() is called for all objects on the node tree after an event is processed. The problem here was that the centrality info object implemented an empty reset method so the node tree reset did not reset it. This line here should be removed to avoid confusion
The node tree reset already calls CentralityInfov2::Reset() after each event now that it is properly implemented. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Build & test reportReport for commit 87658d988856868999b7721af221991910649801:
Automatically generated by sPHENIX Jenkins continuous integration |
Build & test reportReport for commit de59c12ae8ed425092b2d14bdd3c85e2b2bc46ce:
Automatically generated by sPHENIX Jenkins continuous integration |



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)
Motivation / context
Update the minimum-bias (MB) classifier to better support O+O collisions with species-dependent selection criteria, including optional pileup rejection, and address event-centrality consistency issues when an event fails the MB classifier.
Key changes
MinimumBiasClassifier (offline/packages/trigger/MinimumBiasClassifier.cc / .h)
InitRunusing anif/else-ifsplit:m_max_charge_cut=400(was 300), enables additional vertex/MBd-related thresholds (includingm_z_vtx_cut), and initializes MBD charge/time cuts.FillMinimumBiasInfo: whenm_reject_pileupis enabled and total summed MBD charge exceedsm_pileup_charge_cut,minbiascheckis forced false.process_event()now returnsGetNodes(topNode)non-EVENT_OKcodes directly.GLOBALnode is absent.setRejectPileup(bool)and the associated per-instance state (m_reject_pileup,m_pileup_charge_cut).static constexprconstants) to support per-instance configuration.Centrality consistency fixes
CentralityReco::process_event()now callsm_central->Reset()before the MB check, preventing centrality from carrying over from the previous event when MB fails.CentralityInfov2::Reset()is now properly implemented to reset base state and clear_centrality_bin_map, ensuring v2 centrality bin info doesn’t persist across resets.Potential risk areas
setRejectPileupsetter should be reviewed for any shared-instance/threading assumptions.process_event()now propagatesGetNodes()return codes directly, which may affect how failures are handled/aborted in the running framework.Possible future improvements
m_pileup_charge_cutjust above/below)Note: AI-generated summaries can contain errors—please use these details as a starting point and rely on direct code/physics validation when making decisions.