Skip to content

Commit 7d9f1c4

Browse files
lauraserlserksny
andauthored
Updated lambda selection and added separate lambda selection task (#1005)
Co-authored-by: lserksny <laura.serksnyte@cern.ch>
1 parent 2022982 commit 7d9f1c4

5 files changed

Lines changed: 343 additions & 12 deletions

File tree

PWGCF/FemtoDream/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,7 @@ o2physics_add_executable(femtodream-cutculator
4949
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
5050
COMPONENT_NAME Analysis)
5151

52+
o2physics_add_dpl_workflow(femtodream-producer-v0
53+
SOURCES femtoDreamProducerTaskV0Only.cxx
54+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
55+
COMPONENT_NAME Analysis)

PWGCF/FemtoDream/FemtoDreamTrackSelection.h

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@ class FemtoDreamTrackSelection : public FemtoDreamObjectSelection<float, femtoDr
188188
return outString;
189189
}
190190

191+
int getSigmaPIDMax()
192+
{
193+
return nSigmaPIDMax;
194+
}
195+
191196
private:
192197
int nPtMinSel;
193198
int nPtMaxSel;
@@ -410,13 +415,15 @@ bool FemtoDreamTrackSelection::isSelectedMinimal(T const& track)
410415
if (nDCAMinSel > 0 && std::abs(dca) < dcaMin) {
411416
return false;
412417
}
418+
if (std::abs(dca) > 1e3) {
419+
return false;
420+
}
421+
413422
if (nPIDnSigmaSel > 0) {
414423
bool isFulfilled = false;
415424
for (size_t i = 0; i < pidTPC.size(); ++i) {
416425
auto pidTPCVal = pidTPC.at(i);
417-
auto pidTOFVal = pidTOF.at(i);
418-
auto pidComb = std::sqrt(pidTPCVal * pidTPCVal + pidTOFVal * pidTOFVal);
419-
if (std::abs(pidTPCVal) < nSigmaPIDMax || pidComb < nSigmaPIDMax) {
426+
if (std::abs(pidTPCVal) < nSigmaPIDMax) {
420427
isFulfilled = true;
421428
}
422429
}

PWGCF/FemtoDream/FemtoDreamV0Selection.h

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,6 @@ bool FemtoDreamV0Selection::isSelectedMinimal(C const& col, V const& v0, T const
305305
if ((invMassLambda < fInvMassLowLimit or invMassLambda > fInvMassUpLimit) and (invMassAntiLambda < fInvMassLowLimit or invMassAntiLambda > fInvMassUpLimit)) {
306306
return false;
307307
}
308-
309308
if (nPtV0MinSel > 0 && pT < pTV0Min) {
310309
return false;
311310
}
@@ -329,15 +328,25 @@ bool FemtoDreamV0Selection::isSelectedMinimal(C const& col, V const& v0, T const
329328
return false;
330329
}
331330
}
332-
// const auto dcaXYpos = posTrack.dcaXY();
333-
// const auto dcaZpos = posTrack.dcaZ();
334-
// const auto dcapos = std::sqrt(pow(dcaXYpos, 2.) + pow(dcaZpos, 2.));
335331
if (!PosDaughTrack.isSelectedMinimal(posTrack)) {
336332
return false;
337333
}
338334
if (!NegDaughTrack.isSelectedMinimal(negTrack)) {
339335
return false;
340336
}
337+
338+
// check that track combinations for V0 or antiV0 would be fulfilling PID
339+
int nSigmaPIDMax = PosDaughTrack.getSigmaPIDMax();
340+
// antiV0
341+
auto nSigmaPrNeg = negTrack.tpcNSigmaPr();
342+
auto nSigmaPiPos = posTrack.tpcNSigmaPi();
343+
// v0
344+
auto nSigmaPiNeg = negTrack.tpcNSigmaPi();
345+
auto nSigmaPrPos = posTrack.tpcNSigmaPr();
346+
if (!(abs(nSigmaPrNeg) < nSigmaPIDMax and abs(nSigmaPiPos) < nSigmaPIDMax) and !(abs(nSigmaPrPos) < nSigmaPIDMax and abs(nSigmaPiNeg) < nSigmaPIDMax)) {
347+
return false;
348+
}
349+
341350
return true;
342351
}
343352

@@ -411,16 +420,17 @@ std::array<cutContainerType, 5> FemtoDreamV0Selection::getCutContainer(C const&
411420
for (auto& sel : mSelections) {
412421
const auto selVariable = sel.getSelectionVariable();
413422
if (selVariable == femtoDreamV0Selection::kV0Sign) {
423+
int nSigmaPIDMax = PosDaughTrack.getSigmaPIDMax();
414424
if (sel.getSelectionValue() < 0) {
415425
auto nSigmaPr = negTrack.tpcNSigmaPr();
416426
auto nSigmaPi = posTrack.tpcNSigmaPi();
417-
if (abs(nSigmaPr) < 5 && abs(nSigmaPi) < 5) {
427+
if (abs(nSigmaPr) < nSigmaPIDMax && abs(nSigmaPi) < nSigmaPIDMax) {
418428
sign = -1.;
419429
}
420430
} else {
421431
auto nSigmaPi = negTrack.tpcNSigmaPi();
422432
auto nSigmaPr = posTrack.tpcNSigmaPr();
423-
if (abs(nSigmaPr) < 5 && abs(nSigmaPi) < 5) {
433+
if (abs(nSigmaPr) < nSigmaPIDMax && abs(nSigmaPi) < nSigmaPIDMax) {
424434
sign = 1.;
425435
}
426436
}

PWGCF/FemtoDream/femtoDreamProducerTask.cxx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ struct femtoDreamProducerTask {
126126
Configurable<std::vector<float>> ConfV0DaughDCAMin{"ConfV0DaughDCAMin", std::vector<float>{0.05f, 0.06f}, "V0 Daugh sel: Max. DCA Daugh to PV (cm)"};
127127
Configurable<std::vector<float>> ConfV0DaughPIDnSigmaMax{"ConfV0DaughPIDnSigmaMax", std::vector<float>{5.f, 4.f}, "V0 Daugh sel: Max. PID nSigma TPC"};
128128

129-
Configurable<std::vector<int>> ConfV0DaughTPIDspecies{"ConfV0DaughTPIDspecies", std::vector<int>{o2::track::PID::Pion, o2::track::PID::Kaon, o2::track::PID::Proton}, "V0 Daugh sel: Particles species for PID"};
129+
Configurable<std::vector<int>> ConfV0DaughTPIDspecies{"ConfV0DaughTPIDspecies", std::vector<int>{o2::track::PID::Pion, o2::track::PID::Proton}, "V0 Daugh sel: Particles species for PID"};
130130

131131
Configurable<float> ConfInvMassLowLimit{"ConfInvMassLowLimit", 1.05, "Lower limit of the V0 invariant mass"};
132132
Configurable<float> ConfInvMassUpLimit{"ConfInvMassUpLimit", 1.30, "Upper limit of the V0 invariant mass"};
@@ -170,12 +170,12 @@ struct femtoDreamProducerTask {
170170
v0Cuts.setChildCuts(femtoDreamV0Selection::kPosTrack, ConfTrkCharge, femtoDreamTrackSelection::kSign, femtoDreamSelection::kEqual);
171171
v0Cuts.setChildCuts(femtoDreamV0Selection::kPosTrack, ConfTrkEta, femtoDreamTrackSelection::kEtaMax, femtoDreamSelection::kAbsUpperLimit);
172172
v0Cuts.setChildCuts(femtoDreamV0Selection::kPosTrack, ConfV0DaughTPCnclsMin, femtoDreamTrackSelection::kTPCnClsMin, femtoDreamSelection::kLowerLimit);
173-
// v0Cuts.setChildCuts(femtoDreamV0Selection::kPosTrack, ConfV0DaughDCAMin, femtoDreamTrackSelection::kDCAMin, femtoDreamSelection::kAbsLowerLimit);
173+
v0Cuts.setChildCuts(femtoDreamV0Selection::kPosTrack, ConfV0DaughDCAMin, femtoDreamTrackSelection::kDCAMin, femtoDreamSelection::kAbsLowerLimit);
174174
v0Cuts.setChildCuts(femtoDreamV0Selection::kPosTrack, ConfV0DaughPIDnSigmaMax, femtoDreamTrackSelection::kPIDnSigmaMax, femtoDreamSelection::kAbsUpperLimit);
175175
v0Cuts.setChildCuts(femtoDreamV0Selection::kNegTrack, ConfTrkCharge, femtoDreamTrackSelection::kSign, femtoDreamSelection::kEqual);
176176
v0Cuts.setChildCuts(femtoDreamV0Selection::kNegTrack, ConfTrkEta, femtoDreamTrackSelection::kEtaMax, femtoDreamSelection::kAbsUpperLimit);
177177
v0Cuts.setChildCuts(femtoDreamV0Selection::kNegTrack, ConfV0DaughTPCnclsMin, femtoDreamTrackSelection::kTPCnClsMin, femtoDreamSelection::kLowerLimit);
178-
// v0Cuts.setChildCuts(femtoDreamV0Selection::kNegTrack, ConfV0DaughDCAMin, femtoDreamTrackSelection::kDCAMin, femtoDreamSelection::kAbsLowerLimit);
178+
v0Cuts.setChildCuts(femtoDreamV0Selection::kNegTrack, ConfV0DaughDCAMin, femtoDreamTrackSelection::kDCAMin, femtoDreamSelection::kAbsLowerLimit);
179179
v0Cuts.setChildCuts(femtoDreamV0Selection::kNegTrack, ConfV0DaughPIDnSigmaMax, femtoDreamTrackSelection::kPIDnSigmaMax, femtoDreamSelection::kAbsUpperLimit);
180180
v0Cuts.setChildPIDSpecies(femtoDreamV0Selection::kPosTrack, ConfV0DaughTPIDspecies);
181181
v0Cuts.setChildPIDSpecies(femtoDreamV0Selection::kNegTrack, ConfV0DaughTPIDspecies);

0 commit comments

Comments
 (0)