Skip to content

Commit 60474a4

Browse files
spucilloalibuild
andauthored
[PWGLF] Cascades in jets fix selections for derived data (#14624)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 80c5a01 commit 60474a4

File tree

1 file changed

+88
-95
lines changed

1 file changed

+88
-95
lines changed

PWGLF/Tasks/Strangeness/strangenessInJets.cxx

Lines changed: 88 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1881,6 +1881,45 @@ struct StrangenessInJets {
18811881
continue;
18821882
if (std::fabs(v0.v0dcanegtopv()) < dcanegtoPVmin)
18831883
continue;
1884+
// PID selections (TPC) -- K0s
1885+
if (v0.ntpcsigmapospi() < nsigmaTPCmin || v0.ntpcsigmapospi() > nsigmaTPCmax)
1886+
continue;
1887+
if (v0.ntpcsigmanegpi() < nsigmaTPCmin || v0.ntpcsigmanegpi() > nsigmaTPCmax)
1888+
continue;
1889+
1890+
// PID selections (TOF) -- K0s
1891+
if (requireTOF) {
1892+
if (v0.ntofsigmapospi() < nsigmaTOFmin || v0.ntofsigmapospi() > nsigmaTOFmax)
1893+
continue;
1894+
if (v0.ntofsigmanegpi() < nsigmaTOFmin || v0.ntofsigmanegpi() > nsigmaTOFmax)
1895+
continue;
1896+
}
1897+
// PID selections (TPC): positive track = proton, negative track = pion -- Lam
1898+
if (v0.ntpcsigmapospr() < nsigmaTPCmin || v0.ntpcsigmapospr() > nsigmaTPCmax)
1899+
continue;
1900+
if (v0.ntpcsigmanegpi() < nsigmaTPCmin || v0.ntpcsigmanegpi() > nsigmaTPCmax)
1901+
continue;
1902+
1903+
// PID selections (TOF): positive track = proton, negative track = pion -- Lam
1904+
if (requireTOF) {
1905+
if (v0.ntofsigmapospr() < nsigmaTOFmin || v0.ntofsigmapospr() > nsigmaTOFmax)
1906+
continue;
1907+
if (v0.ntofsigmanegpi() < nsigmaTOFmin || v0.ntofsigmanegpi() > nsigmaTOFmax)
1908+
continue;
1909+
}
1910+
// PID selections (TPC): negative track = proton, positive track = pion --- ALam
1911+
if (v0.ntpcsigmapospi() < nsigmaTPCmin || v0.ntpcsigmapospi() > nsigmaTPCmax)
1912+
continue;
1913+
if (v0.ntpcsigmanegpr() < nsigmaTPCmin || v0.ntpcsigmanegpr() > nsigmaTPCmax)
1914+
continue;
1915+
1916+
// PID selections (TOF): negative track = proton, positive track = pion --- ALam
1917+
if (requireTOF) {
1918+
if (v0.ntofsigmapospi() < nsigmaTOFmin || v0.ntofsigmapospi() > nsigmaTOFmax)
1919+
continue;
1920+
if (v0.ntofsigmanegpr() < nsigmaTOFmin || v0.ntofsigmanegpr() > nsigmaTOFmax)
1921+
continue;
1922+
}
18841923

18851924
// PID selections
18861925
Bool_t isPIDK0s = false, isPIDLam = false, isPIDALam = false;
@@ -1928,13 +1967,16 @@ struct StrangenessInJets {
19281967

19291968
for (const auto& casc : cascades) {
19301969

1931-
if (casc.v0negITSlayers() < minITSnCls || casc.v0posITSlayers() < minITSnCls || casc.bachITSlayers() < minITSnCls)
1970+
// Track selections
1971+
if (requireITS && (casc.v0negITSlayers() < minITSnCls || casc.v0posITSlayers() < minITSnCls || casc.bachITSlayers() < minITSnCls))
19321972
continue;
19331973
if (casc.v0negtpcCrossedRows() < minNCrossedRowsTPC || casc.v0postpcCrossedRows() < minNCrossedRowsTPC ||
19341974
casc.bachtpcCrossedRows() < minNCrossedRowsTPC)
19351975
continue;
19361976
if (casc.v0negTPCChi2() > maxChi2TPC || casc.v0posTPCChi2() > maxChi2TPC || casc.bachTPCChi2() > maxChi2TPC)
19371977
continue;
1978+
1979+
// Topological selections
19381980
if (casc.v0cospa() < v0cospaMin)
19391981
continue;
19401982
if (casc.casccospa() < casccospaMin)
@@ -1955,124 +1997,75 @@ struct StrangenessInJets {
19551997
continue;
19561998
if (std::fabs(casc.dcacascdaughters()) > dcaCascDaughtersMax)
19571999
continue;
1958-
// Xi
1959-
// Xi+ selection (Xi+ -> antiL + pi+)
1960-
if (casc.sign() > 0) {
1961-
// PID selections (TPC)
1962-
if (casc.ntpcsigmanegpr() < nsigmaTPCmin || casc.ntpcsigmanegpr() > nsigmaTPCmax)
1963-
continue;
1964-
if (casc.ntpcsigmapospi() < nsigmaTPCmin || casc.ntpcsigmapospi() > nsigmaTPCmax)
1965-
continue;
19662000

1967-
// PID selections (TOF)
1968-
if (requireTOF) {
1969-
if (casc.ntofsigmanegpr() < nsigmaTOFmin || casc.ntofsigmanegpr() > nsigmaTOFmax)
1970-
continue;
1971-
if (casc.ntofsigmapospi() < nsigmaTOFmin || casc.ntofsigmapospi() > nsigmaTOFmax)
1972-
continue;
1973-
}
1974-
}
1975-
// Xi- selection (Xi- -> L + pi-)
1976-
if (casc.sign() < 0) {
1977-
// PID selections (TPC)
1978-
if (casc.ntpcsigmapospr() < nsigmaTPCmin || casc.ntpcsigmapospr() > nsigmaTPCmax)
1979-
continue;
1980-
if (casc.ntpcsigmanegpi() < nsigmaTPCmin || casc.ntpcsigmanegpi() > nsigmaTPCmax)
1981-
continue;
2001+
// PID selection
2002+
Bool_t isPIDXiminus = false, isPIDXiplus = false, isPIDOmminus = false, isPIDOmplus = false;
19822003

1983-
// PID selections (TOF)
1984-
if (requireTOF) {
1985-
if (casc.ntofsigmapospr() < nsigmaTOFmin || casc.ntofsigmapospr() > nsigmaTOFmax)
1986-
continue;
1987-
if (casc.ntofsigmanegpi() < nsigmaTOFmin || casc.ntofsigmanegpi() > nsigmaTOFmax)
1988-
continue;
2004+
// PID selection bachelor
2005+
Bool_t isPIDLam = false, isPIDALam = false;
2006+
if (casc.sign() > 0) {
2007+
// antiLambda: (p-)neg + (pi+)pos
2008+
if (casc.ntpcsigmanegpr() >= nsigmaTPCmin && casc.ntpcsigmanegpr() <= nsigmaTPCmax &&
2009+
casc.ntpcsigmapospi() >= nsigmaTPCmin && casc.ntpcsigmapospi() <= nsigmaTPCmax) {
2010+
isPIDALam = true;
2011+
}
2012+
} else if (casc.sign() < 0) {
2013+
// lambda: (p+)pos + (pi-)neg
2014+
if (casc.ntpcsigmapospr() >= nsigmaTPCmin && casc.ntpcsigmapospr() <= nsigmaTPCmax &&
2015+
casc.ntpcsigmanegpi() >= nsigmaTPCmin && casc.ntpcsigmanegpi() <= nsigmaTPCmax) {
2016+
isPIDLam = true;
19892017
}
19902018
}
19912019

1992-
// PID selection on bachelor
1993-
if (casc.ntpcsigmabachpi() < nsigmaTPCmin || casc.ntpcsigmabachpi() > nsigmaTPCmax)
2020+
if (!(isPIDLam || isPIDALam))
19942021
continue;
19952022

1996-
// PID selections (TOF)
1997-
if (requireTOF) {
1998-
if (casc.ntofsigmabachpi() < nsigmaTOFmin || casc.ntofsigmabachpi() > nsigmaTOFmax)
1999-
continue;
2000-
}
20012023
// V0 mass window
20022024
if (std::fabs(casc.masslambda() - o2::constants::physics::MassLambda0) > deltaMassLambda)
20032025
continue;
2004-
// Reject candidates compatible with Omega
2005-
if (std::fabs(casc.massomega() - o2::constants::physics::MassOmegaMinus) < deltaMassOmega)
2006-
continue;
20072026

2008-
// Omega
2009-
// Omega+ selection (Omega+ -> antiL + K+)
2010-
if (casc.sign() > 0) {
2011-
// PID selections (TPC)
2012-
if (casc.ntpcsigmanegpr() < nsigmaTPCmin || casc.ntpcsigmanegpr() > nsigmaTPCmax)
2013-
continue;
2014-
if (casc.ntpcsigmapospi() < nsigmaTPCmin || casc.ntpcsigmapospi() > nsigmaTPCmax)
2015-
continue;
2016-
2017-
// PID selections (TOF)
2018-
if (requireTOF) {
2019-
if (casc.ntofsigmanegpr() < nsigmaTOFmin || casc.ntofsigmanegpr() > nsigmaTOFmax)
2020-
continue;
2021-
if (casc.ntofsigmapospi() < nsigmaTOFmin || casc.ntofsigmapospi() > nsigmaTOFmax)
2022-
continue;
2023-
}
2024-
}
2025-
2026-
// Omega- selection (Omega- -> L + K-)
2027-
if (casc.sign() < 0) {
2028-
// PID selections (TPC)
2029-
if (casc.ntpcsigmapospr() < nsigmaTPCmin || casc.ntpcsigmapospr() > nsigmaTPCmax)
2030-
continue;
2031-
if (casc.ntpcsigmanegpi() < nsigmaTPCmin || casc.ntpcsigmanegpi() > nsigmaTPCmax)
2032-
continue;
2027+
// PID selection on bachelor
2028+
const Bool_t isBachPi =
2029+
(casc.ntpcsigmabachpi() >= nsigmaTPCmin && casc.ntpcsigmabachpi() <= nsigmaTPCmax);
20332030

2034-
// PID selections (TOF)
2035-
if (requireTOF) {
2036-
if (casc.ntofsigmapospr() < nsigmaTOFmin || casc.ntofsigmapospr() > nsigmaTOFmax)
2037-
continue;
2038-
if (casc.ntofsigmanegpi() < nsigmaTOFmin || casc.ntofsigmanegpi() > nsigmaTOFmax)
2039-
continue;
2040-
}
2041-
}
2031+
const Bool_t isBachKa =
2032+
(casc.ntpcsigmabachka() >= nsigmaTPCmin && casc.ntpcsigmabachka() <= nsigmaTPCmax);
20422033

2043-
// PID selection on bachelor
2044-
if (casc.ntpcsigmabachka() < nsigmaTPCmin || casc.ntpcsigmabachka() > nsigmaTPCmax)
2045-
continue;
2034+
// Cross-contamination rejection flags
2035+
const Bool_t isOmegaLike = (std::fabs(casc.massomega() - o2::constants::physics::MassOmegaMinus) < deltaMassOmega);
2036+
const Bool_t isXiLike = (std::fabs(casc.massxi() - o2::constants::physics::MassXiMinus) < deltaMassXi);
20462037

2047-
// PID selections (TOF)
2048-
if (requireTOF) {
2049-
if (casc.ntofsigmabachka() < nsigmaTOFmin || casc.ntofsigmabachka() > nsigmaTOFmax)
2050-
continue;
2038+
// Final PID flags
2039+
if (casc.sign() > 0) {
2040+
if (isPIDALam && isBachPi && !isOmegaLike)
2041+
isPIDXiplus = true;
2042+
if (isPIDALam && isBachKa && !isXiLike)
2043+
isPIDOmplus = true;
2044+
} else if (casc.sign() < 0) {
2045+
if (isPIDLam && isBachPi && !isOmegaLike)
2046+
isPIDXiminus = true;
2047+
if (isPIDLam && isBachKa && !isXiLike)
2048+
isPIDOmminus = true;
20512049
}
2052-
// V0 mass window
2053-
if (std::fabs(casc.masslambda() - o2::constants::physics::MassLambda0) > deltaMassLambda)
2054-
continue;
2055-
2056-
// Reject candidates compatible with Xi
2057-
if (std::fabs(casc.massxi() - o2::constants::physics::MassXiMinus) < deltaMassXi)
2058-
continue;
20592050

20602051
if (casc.isUE()) {
2061-
if (casc.sign() < 0) {
2052+
if (isPIDXiminus)
20622053
registryData.fill(HIST("XiNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massxi());
2063-
registryData.fill(HIST("OmegaNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massomega());
2064-
} else if (casc.sign() > 0) {
2054+
if (isPIDXiplus)
20652055
registryData.fill(HIST("XiPos_in_ue"), casc.multft0m(), casc.pt(), casc.massxi());
2056+
if (isPIDOmminus)
2057+
registryData.fill(HIST("OmegaNeg_in_ue"), casc.multft0m(), casc.pt(), casc.massomega());
2058+
if (isPIDOmplus)
20662059
registryData.fill(HIST("OmegaPos_in_ue"), casc.multft0m(), casc.pt(), casc.massomega());
2067-
}
20682060
} else if (casc.isJC()) {
2069-
if (casc.sign() < 0) {
2061+
if (isPIDXiminus)
20702062
registryData.fill(HIST("XiNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massxi());
2071-
registryData.fill(HIST("OmegaNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massomega());
2072-
} else if (casc.sign() > 0) {
2063+
if (isPIDXiplus)
20732064
registryData.fill(HIST("XiPos_in_jet"), casc.multft0m(), casc.pt(), casc.massxi());
2065+
if (isPIDOmminus)
2066+
registryData.fill(HIST("OmegaNeg_in_jet"), casc.multft0m(), casc.pt(), casc.massomega());
2067+
if (isPIDOmplus)
20742068
registryData.fill(HIST("OmegaPos_in_jet"), casc.multft0m(), casc.pt(), casc.massomega());
2075-
}
20762069
}
20772070
}
20782071
}

0 commit comments

Comments
 (0)