diff --git a/PWGCF/TwoParticleCorrelations/Tasks/flowDecorrelation.cxx b/PWGCF/TwoParticleCorrelations/Tasks/flowDecorrelation.cxx index d1ff0dc929a..0e55c1fa1d9 100644 --- a/PWGCF/TwoParticleCorrelations/Tasks/flowDecorrelation.cxx +++ b/PWGCF/TwoParticleCorrelations/Tasks/flowDecorrelation.cxx @@ -1841,6 +1841,23 @@ struct FlowDecorrelation { for (auto it = pairs.begin(); it != pairs.end(); it++) { auto& [collision1, tracks1, collision2, tracks2] = *it; + int tpcMult1 = 0; + for (const auto& track : tracks1) { + if (std::abs(track.eta()) < cfgMcTrue.cfgEtaTpcCut) + tpcMult1 += 1; + } + int tpcMult2 = 0; + for (const auto& track : tracks2) { + if (std::abs(track.eta()) < cfgMcTrue.cfgEtaTpcCut) + tpcMult2 += 1; + } + + if (cfgSelCollByNch && (tpcMult1 < cfgGeneralCuts.cfgCutMultMin || tpcMult1 >= cfgGeneralCuts.cfgCutMultMax)) + continue; + + if (cfgSelCollByNch && (tpcMult2 < cfgGeneralCuts.cfgCutMultMin || tpcMult2 >= cfgGeneralCuts.cfgCutMultMax)) + continue; + auto groupedCollisions1 = collisions.sliceBy(collisionPerMCCollision, collision1.globalIndex()); auto groupedCollisions2 = collisions.sliceBy(collisionPerMCCollision, collision2.globalIndex()); float cent1 = -1; @@ -1939,10 +1956,21 @@ struct FlowDecorrelation { for (auto it = pairs.begin(); it != pairs.end(); it++) { auto& [collision1, tracks1, collision2, tracks2] = *it; - if (cfgSelCollByNch && (tracks1.size() < cfgGeneralCuts.cfgCutMultMin || tracks1.size() >= cfgGeneralCuts.cfgCutMultMax)) + int tpcMult1 = 0; + for (const auto& track : tracks1) { + if (std::abs(track.eta()) < cfgMcTrue.cfgEtaTpcCut) + tpcMult1 += 1; + } + int tpcMult2 = 0; + for (const auto& track : tracks2) { + if (std::abs(track.eta()) < cfgMcTrue.cfgEtaTpcCut) + tpcMult2 += 1; + } + + if (cfgSelCollByNch && (tpcMult1 < cfgGeneralCuts.cfgCutMultMin || tpcMult1 >= cfgGeneralCuts.cfgCutMultMax)) continue; - if (cfgSelCollByNch && (tracks2.size() < cfgGeneralCuts.cfgCutMultMin || tracks2.size() >= cfgGeneralCuts.cfgCutMultMax)) + if (cfgSelCollByNch && (tpcMult2 < cfgGeneralCuts.cfgCutMultMin || tpcMult2 >= cfgGeneralCuts.cfgCutMultMax)) continue; auto groupedCollisions1 = collisions.sliceBy(collisionPerMCCollision, collision1.globalIndex()); diff --git a/PWGCF/TwoParticleCorrelations/Tasks/longRangeDihadronCor.cxx b/PWGCF/TwoParticleCorrelations/Tasks/longRangeDihadronCor.cxx index 513ed42dbd8..c716056e223 100644 --- a/PWGCF/TwoParticleCorrelations/Tasks/longRangeDihadronCor.cxx +++ b/PWGCF/TwoParticleCorrelations/Tasks/longRangeDihadronCor.cxx @@ -2105,10 +2105,21 @@ struct LongRangeDihadronCor { for (auto it = pairs.begin(); it != pairs.end(); it++) { auto& [collision1, tracks1, collision2, tracks2] = *it; - if (cfgGeneral.cfgSelCollByNch && (tracks1.size() < cfgGeneral.cfgCutMultMin || tracks1.size() >= cfgGeneral.cfgCutMultMax)) + int tpcMult1 = 0; + for (const auto& track : tracks1) { + if (std::abs(track.eta()) < cfgGeneral.cfgEtaTpcCut) + tpcMult1 += 1; + } + int tpcMult2 = 0; + for (const auto& track : tracks2) { + if (std::abs(track.eta()) < cfgGeneral.cfgEtaTpcCut) + tpcMult2 += 1; + } + + if (cfgGeneral.cfgSelCollByNch && (tpcMult1 < cfgGeneral.cfgCutMultMin || tpcMult1 >= cfgGeneral.cfgCutMultMax)) continue; - if (cfgGeneral.cfgSelCollByNch && (tracks2.size() < cfgGeneral.cfgCutMultMin || tracks2.size() >= cfgGeneral.cfgCutMultMax)) + if (cfgGeneral.cfgSelCollByNch && (tpcMult2 < cfgGeneral.cfgCutMultMin || tpcMult2 >= cfgGeneral.cfgCutMultMax)) continue; auto groupedCollisions1 = collisions.sliceBy(collisionPerMCCollision, collision1.globalIndex()); @@ -2164,10 +2175,21 @@ struct LongRangeDihadronCor { for (auto it = pairs.begin(); it != pairs.end(); it++) { auto& [collision1, tracks1, collision2, tracks2] = *it; - if (cfgGeneral.cfgSelCollByNch && (tracks1.size() < cfgGeneral.cfgCutMultMin || tracks1.size() >= cfgGeneral.cfgCutMultMax)) + int tpcMult1 = 0; + for (const auto& track : tracks1) { + if (std::abs(track.eta()) < cfgGeneral.cfgEtaTpcCut) + tpcMult1 += 1; + } + int tpcMult2 = 0; + for (const auto& track : tracks2) { + if (std::abs(track.eta()) < cfgGeneral.cfgEtaTpcCut) + tpcMult2 += 1; + } + + if (cfgGeneral.cfgSelCollByNch && (tpcMult1 < cfgGeneral.cfgCutMultMin || tpcMult1 >= cfgGeneral.cfgCutMultMax)) continue; - if (cfgGeneral.cfgSelCollByNch && (tracks2.size() < cfgGeneral.cfgCutMultMin || tracks2.size() >= cfgGeneral.cfgCutMultMax)) + if (cfgGeneral.cfgSelCollByNch && (tpcMult2 < cfgGeneral.cfgCutMultMin || tpcMult2 >= cfgGeneral.cfgCutMultMax)) continue; auto groupedCollisions1 = collisions.sliceBy(collisionPerMCCollision, collision1.globalIndex()); @@ -2363,6 +2385,16 @@ struct LongRangeDihadronCor { cent1 = getCentrality(collision1); cent2 = getCentrality(collision2); } + + int tpcMult = 0; + for (const auto& track : tracksTruth1) { + if (std::abs(track.eta()) < cfgGeneral.cfgEtaTpcCut) + tpcMult += 1; + } + + if (cfgGeneral.cfgSelCollByNch && (tpcMult < cfgGeneral.cfgCutMultMin || tpcMult >= cfgGeneral.cfgCutMultMax)) + continue; + if (cfgGeneral.cfgUseAdditionalEventCut && !eventSelected(collision1, tracksRecon1.size(), cent1, false)) continue; if (cfgGeneral.cfgUseAdditionalEventCut && !eventSelected(collision2, tracksRecon2.size(), cent2, false)) @@ -2429,6 +2461,16 @@ struct LongRangeDihadronCor { cent1 = getCentrality(collision1); cent2 = getCentrality(collision2); } + + int tpcMult = 0; + for (const auto& track : tracksTruth1) { + if (std::abs(track.eta()) < cfgGeneral.cfgEtaTpcCut) + tpcMult += 1; + } + + if (cfgGeneral.cfgSelCollByNch && (tpcMult < cfgGeneral.cfgCutMultMin || tpcMult >= cfgGeneral.cfgCutMultMax)) + continue; + if (cfgGeneral.cfgUseAdditionalEventCut && !eventSelected(collision1, tracksRecon1.size(), cent1, false)) continue; if (cfgGeneral.cfgUseAdditionalEventCut && !eventSelected(collision2, tracksRecon2.size(), cent2, false))