@@ -265,6 +265,8 @@ struct cascadeFlow {
265265 Configurable<float> rapidityLambda{"rapidityLambda", 0.5, "rapidityLambda"};
266266 Configurable<float> etaLambda{"etaLambda", 0.8, "etaLambda"};
267267 Configurable<float> dauTrackV0Eta{"dauTrackV0Eta", 0.8, "dauTrackV0Eta"};
268+ Configurable<bool> isPositiveEta{"isPositiveEta", 0, "isPositiveEta"};
269+ Configurable<bool> isNegativeEta{"isNegativeEta", 0, "isNegativeEta"};
268270 } V0Configs;
269271
270272 Configurable<double> sideBandStart{"sideBandStart", 5, "Start of the sideband region in number of sigmas"};
@@ -443,10 +445,6 @@ struct cascadeFlow {
443445 return false;
444446
445447 counter++;
446-
447- // eta daughters)
448- // if (abs(posExtra.eta()) > V0Configs.dauTrackV0Eta || abs(negExtra.y()) > V0Configs.dauTrackV0Eta) return false;
449-
450448 return true;
451449 }
452450 template <typename TDaughter>
@@ -487,6 +485,28 @@ struct cascadeFlow {
487485 return false;
488486 if (std::abs(v0.eta()) > V0Configs.etaLambda)
489487 return false;
488+ Float_t posDauEta = RecoDecay::eta(std::array{v0.pxpos(), v0.pypos(), v0.pzpos()});
489+ Float_t negDauEta = RecoDecay::eta(std::array{v0.pxneg(), v0.pyneg(), v0.pzneg()});
490+ if (std::abs(posDauEta) > V0Configs.dauTrackV0Eta)
491+ return false;
492+ if (std::abs(negDauEta) > V0Configs.dauTrackV0Eta)
493+ return false;
494+ if (V0Configs.isPositiveEta) { // v0 and daughter tracks required to have positive eta
495+ if (v0.pzpos() <= 0)
496+ return false;
497+ if (v0.pzneg() <= 0)
498+ return false;
499+ if (v0.eta() <= 0)
500+ return false;
501+ }
502+ if (V0Configs.isNegativeEta) {
503+ if (v0.pzpos() >= 0)
504+ return false;
505+ if (v0.pzneg() >= 0)
506+ return false;
507+ if (v0.eta() >= 0)
508+ return false;
509+ }
490510
491511 return true;
492512 }
@@ -908,6 +928,9 @@ struct cascadeFlow {
908928 histos.add("hv2CEPvsv2CSP", "hv2CEPvsV2CSP", HistType::kTH2F, {{100, -1, 1}, {100, -1, 1}});
909929 histos.add("hv1EPvsv1SP", "hV1EPvsV1SP", HistType::kTH2F, {{100, -1, 1}, {100, -1, 1}});
910930 histos.add("hv1SP_ZDCA_vs_ZDCC", "hv1SP_ZDCA_vs_ZDCC", HistType::kTH2F, {{100, -1, 1}, {100, -1, 1}});
931+ histos.add("hEtaV0", "hEtaV0", HistType::kTH1F, {{100, -1, 1}});
932+ histos.add("hEtaV0posDau", "hEtaV0posDau", HistType::kTH1F, {{100, -1, 1}});
933+ histos.add("hEtaV0negDau", "hEtaV0negDau", HistType::kTH1F, {{100, -1, 1}});
911934
912935 const AxisSpec thnAxisFT0C{thnAxisConfigs.thnConfigAxisFT0C, "FT0C (%)"};
913936 const AxisSpec thnAxisEta{thnAxisConfigs.thnConfigAxisEta, "#eta"};
@@ -2001,6 +2024,11 @@ struct cascadeFlow {
20012024 if (!isSelectedV0[0] && !isSelectedV0[1])
20022025 continue;
20032026
2027+ histos.fill(HIST("hEtaV0"), v0.eta());
2028+ Float_t posDauEta = RecoDecay::eta(std::array{v0.pxpos(), v0.pypos(), v0.pzpos()});
2029+ histos.fill(HIST("hEtaV0posDau"), posDauEta);
2030+ Float_t negDauEta = RecoDecay::eta(std::array{v0.pxneg(), v0.pyneg(), v0.pzneg()});
2031+ histos.fill(HIST("hEtaV0negDau"), negDauEta);
20042032 ROOT::Math::XYZVector lambdaQvec{std::cos(2 * v0.phi()), std::sin(2 * v0.phi()), 0};
20052033 auto v2CSP = lambdaQvec.Dot(eventplaneVecT0C); // not normalised by amplitude
20062034 auto lambdaminuspsiT0C = GetPhiInRange(v0.phi() - psiT0CCorr);
0 commit comments