[PWGEM] add new deduplication modes + MC information - #17407
Open
Steffimro wants to merge 3 commits into
Open
Conversation
|
O2 linter results: ❌ 31 errors, |
Steffimro
marked this pull request as ready for review
August 11, 2026 12:12
Steffimro
requested review from
alibuild,
amaringarcia,
dsekihat,
hscheid,
jokonig,
mhemmer-cern and
reygers
as code owners
August 11, 2026 12:12
| /// \param track track with an MC label | ||
| /// \param mcparticles the full McParticles table | ||
| /// \return index of the mother if it is a photon, -1 otherwise | ||
| template <typename TTrack, typename TMCParticles> |
Collaborator
There was a problem hiding this comment.
replace typename with the correct concept for iterators and tables to speed up build time please
| /// \param motherPos photon mother of the positive leg, -1 if none | ||
| /// \param motherEle photon mother of the negative leg, -1 if none | ||
| /// \return kV0True, kV0CrossLegFake or kV0OtherFake | ||
| template <typename TTrack, typename TMCParticles> |
Collaborator
There was a problem hiding this comment.
replace typename with the correct concept for iterators and tables to speed up build time please
| Configurable<int> useMatCorrType{"useMatCorrType", 0, "0: none, 1: TGeo, 2: LUT"}; | ||
| Configurable<int> modeTrackPropagation{"modeTrackPropagation", 0, "0: use real track propagation, including material, 1: use fast approximation using only geometry, 2: Use real track propagation and make comparison to fast propagation (only for debugging and testing)"}; | ||
| Configurable<int> deduplicationMode{"deduplicationMode", 0, "0: Pairwise deduplication, 1: Based on Greedy matching (best score wins)"}; | ||
| Configurable<int> deduplicationMode{"deduplicationMode", 0, "0: Pairwise deduplication, 1: Based on Greedy matching (best score wins), 2: Based on Group matching (crossed pairs are both kept), 3: Keep all V0s"}; |
Collaborator
There was a problem hiding this comment.
Maybe add comment that method 1 is fall back method
Collaborator
|
Error while checking build/O2Physics/code-check for 4990761 at 2026-08-11 14:29: Full log here. |
mhemmer-cern
requested changes
Aug 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two new deduplication modes added:
Deduplaction Mode 2: Instead of ranking V0 candidates by score and accepting them one by one, as the greedy mode does, the whole group of candidates connected through shared tracks is decided at once, keeping the maximum number of V0s that do not share a track. Among equally large solutions the one with the smallest sum of scores wins, so the score still decides, but only between solutions of the same size.
Dedpulication Mode 3: Keeps all V0s. No deduplication - more for cross-checks.
For better diagnostics of the deduplication procedure truth categories where added. processMC now classifies every candidate from the MC mothers of its two legs: true (both legs from the same photon), cross-leg fake (legs from two different photons), other fake (at least one leg is not a conversion leg) — and records which surviving candidate took a leg from a rejected one. A true photon counts as lost when all of its true candidates were rejected, and those blockers give the reason.