Skip to content

Commit bfd5b07

Browse files
committed
preselection for lambda
1 parent e077a70 commit bfd5b07

File tree

1 file changed

+36
-17
lines changed

1 file changed

+36
-17
lines changed

EventFiltering/PWGLF/strangenessFilter.cxx

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,8 @@ struct strangenessFilter {
629629
const auto primaryVertex = getPrimaryVertex(collision);
630630
o2::dataformats::DCA impactParameterTrk;
631631

632-
for (auto& v00 : v0Base) { // loop over v0
632+
std::vector<int> v0sLambdaSel;
633+
for (auto& v00 : v0Base) { // loop over v0 for pre selection
633634
hCandidate->Fill(0.5); // All candidates
634635

635636
const auto posTrack0 = v00.posTrack_as<TrackCandidates>();
@@ -643,22 +644,47 @@ struct strangenessFilter {
643644
}
644645
int Tag = 0;
645646
if (cfgPIDPi > std::fabs(negTrack0.tpcNSigmaPi()) && cfgPIDPr > std::fabs(posTrack0.tpcNSigmaPr())) {
646-
if (cfgLambdaMassWindow > std::fabs(mStraHelper.v0.massLambda - o2::constants::physics::MassLambda0) || cfgCompV0Rej < std::fabs(mStraHelper.v0.massK0Short - o2::constants::physics::MassLambda0)) {
647-
Tag++;
647+
if (cfgLambdaMassWindow > std::fabs(mStraHelper.v0.massLambda - o2::constants::physics::MassLambda0)) {
648+
if (cfgCompV0Rej < std::fabs(mStraHelper.v0.massK0Short - o2::constants::physics::MassLambda0)) {
649+
Tag++;
650+
}
648651
}
649652
}
650653
if (cfgPIDPi > std::fabs(posTrack0.tpcNSigmaPi()) && cfgPIDPr > std::fabs(negTrack0.tpcNSigmaPr())) {
651-
if (cfgLambdaMassWindow > std::fabs(mStraHelper.v0.massAntiLambda - o2::constants::physics::MassLambda0) || cfgCompV0Rej < std::fabs(mStraHelper.v0.massK0Short - o2::constants::physics::MassLambda0)) {
652-
Tag++;
654+
if (cfgLambdaMassWindow > std::fabs(mStraHelper.v0.massAntiLambda - o2::constants::physics::MassLambda0)) {
655+
if (cfgCompV0Rej < std::fabs(mStraHelper.v0.massK0Short - o2::constants::physics::MassLambda0)) {
656+
Tag++;
657+
}
653658
}
654659
}
655660
if (Tag != 1) { // Select when only one option is satisfied
656661
continue;
657662
}
663+
v0sLambdaSel.push_back(v00.globalIndex());
664+
}
665+
666+
for (auto& v00 : v0Base) { // loop over lambda using previous selection
667+
if (std::find(v0sLambdaSel.begin(), v0sLambdaSel.end(), v00.globalIndex()) == v0sLambdaSel.end() ) {
668+
continue;
669+
}
670+
671+
const auto posTrack0 = v00.posTrack_as<TrackCandidates>();
672+
const auto negTrack0 = v00.negTrack_as<TrackCandidates>();
673+
674+
auto trackParPos0 = getTrackParCov(posTrack0);
675+
auto trackParNeg0 = getTrackParCov(negTrack0);
676+
677+
if (!mStraHelper.buildV0Candidate(v00.collisionId(), pvPos[0], pvPos[1], pvPos[2], posTrack0, negTrack0, trackParPos0, trackParNeg0)) {
678+
continue;
679+
}
680+
658681
TVector3 v00pos(mStraHelper.v0.position[0], mStraHelper.v0.position[1], mStraHelper.v0.position[2]);
659682
TVector3 v00mom(mStraHelper.v0.momentum[0], mStraHelper.v0.momentum[1], mStraHelper.v0.momentum[2]);
660683

661684
for (auto& v01 : v0Base) {
685+
if (std::find(v0sLambdaSel.begin(), v0sLambdaSel.end(), v01.globalIndex()) == v0sLambdaSel.end() ) {
686+
continue;
687+
}
662688
if (v00.globalIndex() <= v01.globalIndex()) {
663689
continue;
664690
}
@@ -672,24 +698,17 @@ struct strangenessFilter {
672698
if (!mStraHelper.buildV0Candidate(v01.collisionId(), pvPos[0], pvPos[1], pvPos[2], posTrack1, negTrack1, trackParPos1, trackParNeg1)) {
673699
continue;
674700
}
675-
Tag = 0;
676-
if (cfgPIDPi > std::fabs(negTrack1.tpcNSigmaPi()) && cfgPIDPr > std::fabs(posTrack1.tpcNSigmaPr())) {
677-
if (cfgLambdaMassWindow > std::fabs(mStraHelper.v0.massLambda - o2::constants::physics::MassLambda0) || cfgCompV0Rej < std::fabs(mStraHelper.v0.massK0Short - o2::constants::physics::MassLambda0)) {
678-
Tag++;
679-
}
680-
}
681-
if (cfgPIDPi > std::fabs(posTrack1.tpcNSigmaPi()) && cfgPIDPr > std::fabs(negTrack1.tpcNSigmaPr())) {
682-
if (cfgLambdaMassWindow > std::fabs(mStraHelper.v0.massAntiLambda - o2::constants::physics::MassLambda0) || cfgCompV0Rej < std::fabs(mStraHelper.v0.massK0Short - o2::constants::physics::MassLambda0)) {
683-
Tag++;
684-
}
685-
}
701+
686702
if (posTrack0.globalIndex() == posTrack1.globalIndex() || posTrack0.globalIndex() == negTrack1.globalIndex() || negTrack0.globalIndex() == posTrack1.globalIndex() || negTrack0.globalIndex() == negTrack1.globalIndex()) {
687703
continue;
688704
}
705+
689706
TVector3 v01pos(mStraHelper.v0.position[0], mStraHelper.v0.position[1], mStraHelper.v0.position[2]);
690707
TVector3 v01mom(mStraHelper.v0.momentum[0], mStraHelper.v0.momentum[1], mStraHelper.v0.momentum[2]);
691708

692-
keepEvent[12] = true;
709+
if (isSelectedV0V0(v00pos, v00mom, v01pos, v01mom)) {
710+
keepEvent[12] = true;
711+
}
693712
}
694713
}
695714

0 commit comments

Comments
 (0)