From e603807fb39f1c6ba4bfa0cbf4b228f6c9dce1d0 Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Tue, 26 Mar 2024 16:07:19 +0100 Subject: [PATCH 1/2] PWGLF: deal with TPC-only duplicates in findable exercise --- PWGLF/TableProducer/lambdakzeromcfinder.cxx | 23 ++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/PWGLF/TableProducer/lambdakzeromcfinder.cxx b/PWGLF/TableProducer/lambdakzeromcfinder.cxx index a86e7f315c0..bf1cd736097 100644 --- a/PWGLF/TableProducer/lambdakzeromcfinder.cxx +++ b/PWGLF/TableProducer/lambdakzeromcfinder.cxx @@ -82,6 +82,7 @@ struct lambdakzeromcfinder { Configurable findAntiHyperTriton{"findAntiHyperTriton", false, "findAntiHyperTriton"}; Configurable requireTPC{"requireTPC", true, "require TPC"}; Configurable skipTPConly{"skipTPConly", false, "skip tracks that are TPC-only"}; + Configurable storeSingleTPCOnlyProng{"storeSingleTPCOnlyProng", false, "in case a TPC-only track is found, do not allow another TPC-only for the same mcParticle. Works only in MC particle path."}; Configurable doUnassociatedV0s{"doUnassociatedV0s", true, "generate also unassociated V0s (for cascades!)"}; Configurable doSameCollisionOnly{"doSameCollisionOnly", false, "stick to decays in which tracks are assoc to same collision"}; Configurable qaNbins{"qaNbins", 200, "qa plots: binning"}; @@ -208,9 +209,15 @@ struct lambdakzeromcfinder { continue; // skip deltarays (if ever), stick to decay products only if (daughter.pdgCode() == positivePdg) { auto const& thisDaughterTracks = daughter.template tracks_as(); + bool tpcOnlyFound = false; for (auto const& track : thisDaughterTracks) { - if (track.detectorMap() == o2::aod::track::TPC && skipTPConly) - continue; + if (track.detectorMap() == o2::aod::track::TPC){ + if(tpcOnlyFound==true && storeSingleTPCOnlyProng) + continue; // in case a previous TPC-only version of this mcParticle was found + we want to store only one copy, skip + if(skipTPConly) + continue; + tpcOnlyFound = true; + } if (track.sign() > 0 && (track.hasTPC() || !requireTPC)) { trackIndexPositive[nPosReco] = track.globalIndex(); // assign only if TPC present nPosReco++; @@ -219,15 +226,21 @@ struct lambdakzeromcfinder { } // end positive pdg check if (daughter.pdgCode() == negativePdg) { auto const& thisDaughterTracks = daughter.template tracks_as(); + bool tpcOnlyFound = false; for (auto const& track : thisDaughterTracks) { - if (track.detectorMap() == o2::aod::track::TPC && skipTPConly) - continue; + if (track.detectorMap() == o2::aod::track::TPC){ + if(tpcOnlyFound==true && storeSingleTPCOnlyProng) + continue; // in case a previous TPC-only version of this mcParticle was found + we want to store only one copy, skip + if(skipTPConly) + continue; + tpcOnlyFound = true; + } if (track.sign() < 0 && (track.hasTPC() || !requireTPC)) { trackIndexNegative[nNegReco] = track.globalIndex(); // assign only if TPC present nNegReco++; } } // end track list loop - } // end positive pdg check + } // end negative pdg check } } } From 0062a406aba3c5eb4b054487c985c5c1d6b475a9 Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Tue, 26 Mar 2024 16:08:19 +0100 Subject: [PATCH 2/2] Please consider the following formatting changes (#268) --- PWGLF/TableProducer/lambdakzeromcfinder.cxx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/PWGLF/TableProducer/lambdakzeromcfinder.cxx b/PWGLF/TableProducer/lambdakzeromcfinder.cxx index bf1cd736097..ac3c7b436b4 100644 --- a/PWGLF/TableProducer/lambdakzeromcfinder.cxx +++ b/PWGLF/TableProducer/lambdakzeromcfinder.cxx @@ -211,11 +211,11 @@ struct lambdakzeromcfinder { auto const& thisDaughterTracks = daughter.template tracks_as(); bool tpcOnlyFound = false; for (auto const& track : thisDaughterTracks) { - if (track.detectorMap() == o2::aod::track::TPC){ - if(tpcOnlyFound==true && storeSingleTPCOnlyProng) + if (track.detectorMap() == o2::aod::track::TPC) { + if (tpcOnlyFound == true && storeSingleTPCOnlyProng) continue; // in case a previous TPC-only version of this mcParticle was found + we want to store only one copy, skip - if(skipTPConly) - continue; + if (skipTPConly) + continue; tpcOnlyFound = true; } if (track.sign() > 0 && (track.hasTPC() || !requireTPC)) { @@ -228,11 +228,11 @@ struct lambdakzeromcfinder { auto const& thisDaughterTracks = daughter.template tracks_as(); bool tpcOnlyFound = false; for (auto const& track : thisDaughterTracks) { - if (track.detectorMap() == o2::aod::track::TPC){ - if(tpcOnlyFound==true && storeSingleTPCOnlyProng) + if (track.detectorMap() == o2::aod::track::TPC) { + if (tpcOnlyFound == true && storeSingleTPCOnlyProng) continue; // in case a previous TPC-only version of this mcParticle was found + we want to store only one copy, skip - if(skipTPConly) - continue; + if (skipTPConly) + continue; tpcOnlyFound = true; } if (track.sign() < 0 && (track.hasTPC() || !requireTPC)) {