From fb2bca56a922abaf31e171cc6bb275607b6d2d09 Mon Sep 17 00:00:00 2001 From: Zuzanna Chochulska Date: Tue, 14 Nov 2023 13:23:14 +0100 Subject: [PATCH 1/2] Adding swaping to same and mixed events in the MCTruth track-track --- .../Tasks/femtoUniversePairTaskTrackTrackMcTruth.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackMcTruth.cxx b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackMcTruth.cxx index a7dab8bc872..ae9a39d4ef7 100644 --- a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackMcTruth.cxx +++ b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackMcTruth.cxx @@ -15,6 +15,7 @@ /// \author Zuzanna Chochulska, WUT Warsaw, zuzanna.chochulska.stud@pw.edu.pl #include +#include #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" #include "Framework/HistogramRegistry.h" @@ -169,6 +170,11 @@ struct femtoUniversePairTaskTrackTrackMcTruth { } /// Now build the combinations for (auto& [p1, p2] : combinations(CombinationsStrictlyUpperIndexPolicy(groupPartsOne, groupPartsTwo))) { + if (std::rand() > RAND_MAX / 2) { + auto& tmp = p1; + p1 = p2; + p2 = tmp; + } // track cleaning if (!pairCleaner.isCleanPair(p1, p2, parts)) { @@ -208,7 +214,11 @@ struct femtoUniversePairTaskTrackTrackMcTruth { { for (auto& [p1, p2] : combinations(CombinationsFullIndexPolicy(groupPartsOne, groupPartsTwo))) { - + if (std::rand() > RAND_MAX / 2) { + auto& tmp = p1; + p1 = p2; + p2 = tmp; + } mixedEventCont.setPair(p1, p2, multCol, ConfUse3D); } } From 8eceab1642aeeda20cbc064f9a2985b2f38f8522 Mon Sep 17 00:00:00 2001 From: Zuzanna Chochulska Date: Tue, 14 Nov 2023 16:22:21 +0100 Subject: [PATCH 2/2] Add swapping to the MC Truth track track task --- ...femtoUniversePairTaskTrackTrackMcTruth.cxx | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackMcTruth.cxx b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackMcTruth.cxx index ae9a39d4ef7..96b4bcfbeed 100644 --- a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackMcTruth.cxx +++ b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackTrackMcTruth.cxx @@ -116,6 +116,9 @@ struct femtoUniversePairTaskTrackTrackMcTruth { HistogramRegistry resultRegistry{"Correlations", {}, OutputObjHandlingPolicy::AnalysisObject}; HistogramRegistry MixQaRegistry{"MixQaRegistry", {}, OutputObjHandlingPolicy::AnalysisObject}; + /// @brief Counter for particle swapping + int fNeventsProcessed = 0; + void init(InitContext&) { @@ -155,6 +158,8 @@ struct femtoUniversePairTaskTrackTrackMcTruth { template void doSameEvent(PartitionType groupPartsOne, PartitionType groupPartsTwo, PartType parts, float magFieldTesla, int multCol) { + bool swpart = fNeventsProcessed % 2; + fNeventsProcessed++; /// Histogramming same event for (auto& part : groupPartsOne) { @@ -170,17 +175,16 @@ struct femtoUniversePairTaskTrackTrackMcTruth { } /// Now build the combinations for (auto& [p1, p2] : combinations(CombinationsStrictlyUpperIndexPolicy(groupPartsOne, groupPartsTwo))) { - if (std::rand() > RAND_MAX / 2) { - auto& tmp = p1; - p1 = p2; - p2 = tmp; - } - // track cleaning if (!pairCleaner.isCleanPair(p1, p2, parts)) { continue; } - sameEventCont.setPair(p1, p2, multCol, ConfUse3D); + if (swpart) + sameEventCont.setPair(p1, p2, multCol, ConfUse3D); + else + sameEventCont.setPair(p2, p1, multCol, ConfUse3D); + + swpart = !swpart; } } @@ -212,14 +216,16 @@ struct femtoUniversePairTaskTrackTrackMcTruth { template void doMixedEvent(PartitionType groupPartsOne, PartitionType groupPartsTwo, PartType parts, float magFieldTesla, int multCol) { + bool swpart = fNeventsProcessed % 2; + fNeventsProcessed++; for (auto& [p1, p2] : combinations(CombinationsFullIndexPolicy(groupPartsOne, groupPartsTwo))) { - if (std::rand() > RAND_MAX / 2) { - auto& tmp = p1; - p1 = p2; - p2 = tmp; - } - mixedEventCont.setPair(p1, p2, multCol, ConfUse3D); + if (swpart) + mixedEventCont.setPair(p1, p2, multCol, ConfUse3D); + else + mixedEventCont.setPair(p2, p1, multCol, ConfUse3D); + + swpart = !swpart; } }