Repository navigation
Conversation
correlation (Δφ, Δη) analysis in pp collisions at 13 TeV, structured in parallel with the AliRoot AliMESppColTask analysis, to PWGCF/TwoParticleCorrelations. Adds an analysis task (o2-analysis-cf-two-particle-correlations-mult-spher) that fills same-event and mixed-event Δφ-Δη correlation histograms (THnSparse for the full multi-dimensional binning, plus direct TH2D SE/ME pairs for both per-trigger and per-pair normalisation), differential in multiplicity class and transverse sphericity class, at both MC generator level and reconstructed level. Some selection variants are kept togglable via Configurables for methodology cross-checks. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YbYBgosEJaDJTkCuqAtNHk
|
O2 linter results: ❌ 0 errors, |
Applies clang-format (project style) and converts C-style casts to static_cast, as flagged by the cpplint check in CI. No behavior change: rebuilt and re-ran the single-file smoke test, same histogram counts as before. Also adds the <memory> include cpplint pointed out for shared_ptr<>. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YbYBgosEJaDJTkCuqAtNHk
Framework/*.h headers must use angle brackets (<...>), not quotes, per the O2Physics include-style convention (Scripts/format_includes.awk) enforced by the PR formatting / clang-format CI check. Re-ran clang-format after the change; rebuilt and re-ran the single-file smoke test, same result as before. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YbYBgosEJaDJTkCuqAtNHk
|
Hi @jaelpark @wenyaCern @lauraser @dsarkaralice @victor-gonzalez , this PR adds a new two-particle angular correlation analysis task (Δφ-Δη, differential in multiplicity and transverse sphericity) to PWGCF/TwoParticleCorrelations, and adds the corresponding workflow block to PWGCF/TwoParticleCorrelations/Tasks/CMakeLists.txt, which needs a PWGCF |
resolution. The web-based merge-conflict editor used to resolve the upstream/master merge dropped the "COMPONENT_NAME Analysis)" line closing the two-particle-correlations-mult-spher workflow block, running it into the next block (hparticle-correlation) and breaking CMake configuration. Verified: CMake reconfigure, incremental rebuild, and single-file smoke test all clean after the fix. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YbYBgosEJaDJTkCuqAtNHk
|
Error while checking build/O2Physics/code-check for 4b4b132 at 2026-10-07 14:47: Full log here. |
|
Error while checking build/O2Physics/o2 for 4b4b132 at 2026-10-07 14:51: Full log here. |
|
Error while checking build/O2Physics/staging for 4b4b132 at 2026-10-07 15:01: Full log here. |
…orrectness Removes the dead kSphMin constant and yLead variable, adds [[maybe_unused]] to the struct members and bookChannel lambda parameters that are only referenced inside the disabled histogram-budget blocks, and adds const to those same lambda parameters per cppcheck's constParameterReference suggestion. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YbYBgosEJaDJTkCuqAtNHk
Head branch was pushed to by a user without write access
vkucera
left a comment
There was a problem hiding this comment.
Dear @matarzil , since you are adding a new file, I strongly recommend to fix all reported errors and warnings, otherwise they will keep popping up in all future PRs.
Formatting the includes is mandatory because it's part of the required formatting check.
| #include <Framework/OutputObjHeader.h> | ||
| #include <Framework/runDataProcessing.h> | ||
|
|
||
| // Reco headers — compiled but used only by processReco (switched off for now) |
There was a problem hiding this comment.
Please do not insert comments between includes. It prevents the automatic sorting done by the formatting check.
| auto* pdgPtr = TDatabasePDG::Instance()->GetParticle(p.pdgCode()); | ||
| if (!pdgPtr || std::fabs(pdgPtr->Charge()) < 0.1) | ||
| continue; |
There was a problem hiding this comment.
Please use the PDG database plugin instead, as advised by the O2 linter.
| #if 0 | ||
| // Helper: maps PidSpecies (0=unid,1=pion,2=kaon,3=proton) | ||
| // to pidStudy index (0=all,1=pion,2=kaon,3=proton) | ||
| // All tracks fill index 0 ("all") always, plus their specific PID | ||
| auto fillPtStudy = [&](std::array<std::array<std::shared_ptr<TH2>, nPidStudy>, nSphClasses>& arr, |
There was a problem hiding this comment.
Why is this dead code needed?
| #if 0 | ||
| fillPtStudy(hPtAssoc_sph_pid_MC, sphCls, mBin, static_cast<double>(assoc.pt), pidAssoc); | ||
| #endif |
| static double computeDeltaPhi(double phi1, double phi2) | ||
| { | ||
| double dphi = phi1 - phi2; | ||
| while (dphi <= -TMath::Pi()) | ||
| dphi += 2. * TMath::Pi(); | ||
| while (dphi > TMath::Pi()) | ||
| dphi -= 2. * TMath::Pi(); | ||
| if (dphi <= -0.5 * TMath::Pi()) | ||
| dphi += 2. * TMath::Pi(); | ||
| return dphi; | ||
| } |
There was a problem hiding this comment.
Please do not reinvent the wheel and use existing utilities from RecoDecay.
| static int zvtxBin(double z) | ||
| { | ||
| if (z >= -10. && z < -5.) | ||
| return 0; | ||
| if (z >= -5. && z < -2.5) | ||
| return 1; | ||
| if (z >= -2.5 && z < 2.5) | ||
| return 2; | ||
| if (z >= 2.5 && z < 5.) | ||
| return 3; | ||
| if (z >= 5. && z <= 10.) | ||
| return 4; | ||
| return -1; | ||
| } | ||
|
|
||
| static int multBin(int n) | ||
| { | ||
| if (n >= 1 && n <= 9) | ||
| return 0; | ||
| if (n >= 10 && n <= 14) | ||
| return 1; | ||
| if (n >= 15 && n <= 19) | ||
| return 2; | ||
| if (n >= 20 && n <= 29) | ||
| return 3; | ||
| if (n >= 30 && n <= 45) | ||
| return 4; | ||
| if (n >= 46 && n <= 80) | ||
| return 5; | ||
| return -1; | ||
| } |
There was a problem hiding this comment.
Hard-coding magic numbers is very bug-prone and hard to maintain. Consider using an array and a utility search function (look for findBin in the repository).
|
|
||
| // ---- one-pass: build selTracks + find leading --------------- | ||
| std::vector<TrackSimple> selTracks; | ||
| selTracks.reserve(64); |
This is the first commit of this task. It adds the two-particle angular correlation (Δφ, Δη) analysis in pp collisions at 13 TeV, structured in parallel with the AliRoot AliMESppColTask analysis, to PWGCF/TwoParticleCorrelations.
Adds an analysis task (o2-analysis-cf-two-particle-correlations-mult-spher) that fills same-event and mixed-event Δφ-Δη correlation histograms (THnSparse for the full multi-dimensional binning, plus direct TH2D SE/ME pairs for both per-trigger and per-pair normalisation), differential in multiplicity class and transverse sphericity class, at both MC generator level and reconstructed level. Some selection variants are kept togglable via Configurables for methodology cross-checks.