Repository navigation
Conversation
baasingh
commented
Oct 16, 2026
- The task no longer subsamples events: each event is hashed into one of nSlots buckets (slot = splitmix64(globalBC) % nSlots) and only merge-safe partial sums are stored — slots/nEv, slots/sumOcc_pt{i}, slots/sumFq_pt{i}_o{q} — as plain histograms, so hadd adds them cell-by-cell; a merged campaign file is then the same object as a single one-go run (no per-file counter, no RNG in the subsampling).
- The subsample size K becomes a post-processing choice: local code pools consecutive non-empty slots greedily into K-event groups (any K; keepTail option; K=0 = ratio-of-sums limit) and evaluates Fq exactly as the old path did: Fq = mean over groups of (Sfq/n)/(Socc/n)^q.
- slots/params (bin1 = number of jobs, bin2 = sum of their nSlots) makes a hadd mixing jobs with different nSlots fail loudly — otherwise invisible, because hadd keeps the first axis and the event totals still balance.
- Fixes vs the current upstream task: explicit falling-factorial product loop (upstream's TMath::Factorial overflows for n ≥ 171 and poisons pt bin 1, M=4 at all orders); smearPhi option (Gaussian phi randomisation, default off; shipped configs on).`
|
O2 linter results: ❌ 0 errors, |
|
Error while checking build/O2Physics/code-check for 6a47396 at 2026-10-17 08:03: Full log here. |
|
Hi @baasingh , please try to make it clearer from the PR title what you changed and where. You can find some tips in the contribution guidelines. https://aliceo2group.github.io/analysis-framework/docs/gettingstarted/contributingtocode.html#pull-requests |
Thanks — Renamed PR to name the task and the change. |
Thank you! |