Skip to content

Commit dcd43d2

Browse files
author
Mattia Faggin
committed
Propagate changes to code related to Lc analyses.
Modifications done on core code - PWGHF/Core/HfMlResponseLcToPKPi.h - PWGHF/DataModel/CandidateReconstructionTables.h - PWGHF/TableProducer/candidateSelectorLc.cxx Analysis tasks + following code where modifications are needed: - [ MODIFIED ] PWGHF/TableProducer/treeCreatorLcToPKPi.cxx - [ MODIFIED ] PWGHF/TableProducer/candidateSelectorLcPidMl.cxx - [ MODIFIED ] PWGHF/TableProducer/treeCreatorLbToLcPi.cxx - [ MODIFIED ] PWGHF/TableProducer/derivedDataCreatorLcToPKPi.cxx Analysis tasks + following code where modifications are not needed (no explicit call of Lc-daughter PID): - [not modified] PWGHF/TableProducer/candidateSelectorLbToLcPi.cxx (*) - [not modified] PWGHF/D2H/Tasks/taskLb.cxx (*) - [not modified] PWGHF/TableProducer/candidateCreatorSigmac0plusplus.cxx (*) - [not modified] PWGHF/D2H/Tasks/taskSigmac.cxx (*) - [not modified] PWGHF/D2H/Tasks/taskLc.cxx - [not modified] PWGHF/D2H/Tasks/taskCharmPolarisation.cxx - [not modified] PWGHF/HFC/TableProducer/correlatorLcHadrons.cxx (*) - [not modified] PWGHF/HFC/Tasks/taskCorrelationLcHadrons.cxx (*) - [not modified] PWGHF/HFC/TableProducer/femtoDreamProducer.cxx (*) - [not modified] PWGHF/HFC/Tasks/taskFlow.cxx - [not modified] PWGHF/TableProducer/candidateCreatorMcGen.cxx - [not modified] PWGHF/TableProducer/candidateCreatorLb.cxx (*) any PID post-calibration for the additional/associated track needs to be added, if PID info for such track is used To be modified when also D+ and Ds are treated: - [not modified] PWGHF/D2H/Tasks/taskFlowCharmHadrons.cxx Ignored: - [not modified] PWGHF/Tasks/taskLcCentrality.cxx - [not modified] PWGHF/Tasks/taskSelOptimisation.cxx - [not modified] PWGHF/Tasks/taskMcEfficiency.cxx - [not modified] PWGHF/Tasks/taskMcValidation.cxx
1 parent 7b92d3c commit dcd43d2

File tree

7 files changed

+211
-198
lines changed

7 files changed

+211
-198
lines changed

PWGHF/Core/HfMlResponseLcToPKPi.h

Lines changed: 56 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,9 @@
2323
// Fill the map of available input features
2424
// the key is the feature's name (std::string)
2525
// the value is the corresponding value in EnumInputFeatures
26-
#define FILL_MAP_LCTOPKPI(FEATURE) \
27-
{ \
28-
#FEATURE, static_cast < uint8_t>(InputFeaturesLcToPKPi::FEATURE) \
29-
}
26+
#define FILL_MAP_LCTOPKPI(FEATURE) \
27+
{ \
28+
#FEATURE, static_cast<uint8_t>(InputFeaturesLcToPKPi::FEATURE)}
3029

3130
// Check if the index of mCachedIndices (index associated to a FEATURE)
3231
// matches the entry in EnumInputFeatures associated to this FEATURE
@@ -67,6 +66,18 @@
6766
break; \
6867
}
6968

69+
// Variation of CHECK_AND_FILL_VEC_LCTOPKPI_HFHELPER_SIGNED(OBJECT, FEATURE, GETTER1, GETTER2)
70+
// where GETTER1 and GETTER2 are methods of the OBJECT
71+
#define CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED(OBJECT, FEATURE, GETTER1, GETTER2) \
72+
case static_cast<uint8_t>(InputFeaturesLcToPKPi::FEATURE): { \
73+
if (caseLcToPKPi) { \
74+
inputFeatures.emplace_back(OBJECT.GETTER1()); \
75+
} else { \
76+
inputFeatures.emplace_back(OBJECT.GETTER2()); \
77+
} \
78+
break; \
79+
}
80+
7081
namespace o2::analysis
7182
{
7283
enum class InputFeaturesLcToPKPi : uint8_t {
@@ -135,9 +146,8 @@ class HfMlResponseLcToPKPi : public HfMlResponse<TypeOutputScore>
135146
/// \param prong1 is the candidate's prong1
136147
/// \param prong2 is the candidate's prong2
137148
/// \return inputFeatures vector
138-
template <typename T1, typename T2>
139-
std::vector<float> getInputFeatures(T1 const& candidate,
140-
T2 const& prong0, T2 const& prong1, T2 const& prong2, bool const& caseLcToPKPi)
149+
template <typename T1>
150+
std::vector<float> getInputFeatures(T1 const& candidate, bool const& caseLcToPKPi)
141151
{
142152
std::vector<float> inputFeatures;
143153

@@ -159,41 +169,47 @@ class HfMlResponseLcToPKPi : public HfMlResponse<TypeOutputScore>
159169
CHECK_AND_FILL_VEC_LCTOPKPI(cpaXY);
160170
CHECK_AND_FILL_VEC_LCTOPKPI(chi2PCA);
161171
// TPC PID variables
162-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong0, tpcNSigmaP0, tpcNSigmaPr);
163-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong0, tpcNSigmaKa0, tpcNSigmaKa);
164-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong0, tpcNSigmaPi0, tpcNSigmaPi);
165-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong1, tpcNSigmaP1, tpcNSigmaPr);
166-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong1, tpcNSigmaKa1, tpcNSigmaKa);
167-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong1, tpcNSigmaPi1, tpcNSigmaPi);
168-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong2, tpcNSigmaP2, tpcNSigmaPr);
169-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong2, tpcNSigmaKa2, tpcNSigmaKa);
170-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong2, tpcNSigmaPi2, tpcNSigmaPi);
171-
CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong0, prong2, tpcNSigmaPrExpPr0, tpcNSigmaPr);
172-
CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong2, prong0, tpcNSigmaPiExpPi2, tpcNSigmaPi);
172+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcNSigmaP0, nSigTpcPr0);
173+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcNSigmaKa0, nSigTpcKa0);
174+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcNSigmaPi0, nSigTpcPi0);
175+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcNSigmaP1, nSigTpcPr1);
176+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcNSigmaKa1, nSigTpcKa1);
177+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcNSigmaPi1, nSigTpcPi1);
178+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcNSigmaP2, nSigTpcPr2);
179+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcNSigmaKa2, nSigTpcKa2);
180+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcNSigmaPi2, nSigTpcPi2);
181+
// CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong0, prong2, tpcNSigmaPrExpPr0, tpcNSigmaPr);
182+
// CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong2, prong0, tpcNSigmaPiExpPi2, tpcNSigmaPi);
183+
CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED(candidate, tpcNSigmaPrExpPr0, nSigTpcPr0, nSigTpcPr2);
184+
CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED(candidate, tpcNSigmaPiExpPi2, nSigTpcPi2, nSigTpcPi0);
173185
// TOF PID variables
174-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong0, tofNSigmaP0, tofNSigmaPr);
175-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong0, tofNSigmaKa0, tofNSigmaKa);
176-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong0, tofNSigmaPi0, tofNSigmaPi);
177-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong1, tofNSigmaP1, tofNSigmaPr);
178-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong1, tofNSigmaKa1, tofNSigmaKa);
179-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong1, tofNSigmaPi1, tofNSigmaPi);
180-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong2, tofNSigmaP2, tofNSigmaPr);
181-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong2, tofNSigmaKa2, tofNSigmaKa);
182-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong2, tofNSigmaPi2, tofNSigmaPi);
183-
CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong0, prong2, tofNSigmaPrExpPr0, tofNSigmaPr);
184-
CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong2, prong0, tofNSigmaPiExpPi2, tofNSigmaPi);
186+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tofNSigmaP0, nSigTofPr0);
187+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tofNSigmaKa0, nSigTofKa0);
188+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tofNSigmaPi0, nSigTofPi0);
189+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tofNSigmaP1, nSigTofPr1);
190+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tofNSigmaKa1, nSigTofKa1);
191+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tofNSigmaPi1, nSigTofPi1);
192+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tofNSigmaP2, nSigTofPr2);
193+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tofNSigmaKa2, nSigTofKa2);
194+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tofNSigmaPi2, nSigTofPi2);
195+
// CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong0, prong2, tofNSigmaPrExpPr0, tofNSigmaPr);
196+
// CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong2, prong0, tofNSigmaPiExpPi2, tofNSigmaPi);
197+
CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED(candidate, tofNSigmaPrExpPr0, nSigTofPr0, nSigTofPr2);
198+
CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED(candidate, tofNSigmaPiExpPi2, nSigTofPi2, nSigTofPi0);
185199
// Combined PID variables
186-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong0, tpcTofNSigmaPi0, tpcTofNSigmaPi);
187-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong1, tpcTofNSigmaPi1, tpcTofNSigmaPi);
188-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong2, tpcTofNSigmaPi2, tpcTofNSigmaPi);
189-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong0, tpcTofNSigmaKa0, tpcTofNSigmaKa);
190-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong1, tpcTofNSigmaKa1, tpcTofNSigmaKa);
191-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong2, tpcTofNSigmaKa2, tpcTofNSigmaKa);
192-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong0, tpcTofNSigmaPr0, tpcTofNSigmaPr);
193-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong1, tpcTofNSigmaPr1, tpcTofNSigmaPr);
194-
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(prong2, tpcTofNSigmaPr2, tpcTofNSigmaPr);
195-
CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong0, prong2, tpcTofNSigmaPrExpPr0, tpcTofNSigmaPr);
196-
CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong2, prong0, tpcTofNSigmaPiExpPi2, tpcTofNSigmaPi);
200+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcTofNSigmaPi0, tpcTofNSigmaPi0);
201+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcTofNSigmaPi1, tpcTofNSigmaPi1);
202+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcTofNSigmaPi2, tpcTofNSigmaPi2);
203+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcTofNSigmaKa0, tpcTofNSigmaKa0);
204+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcTofNSigmaKa1, tpcTofNSigmaKa1);
205+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcTofNSigmaKa2, tpcTofNSigmaKa2);
206+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcTofNSigmaPr0, tpcTofNSigmaPr0);
207+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcTofNSigmaPr1, tpcTofNSigmaPr1);
208+
CHECK_AND_FILL_VEC_LCTOPKPI_FULL(candidate, tpcTofNSigmaPr2, tpcTofNSigmaPr2);
209+
// CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong0, prong2, tpcTofNSigmaPrExpPr0, tpcTofNSigmaPr);
210+
// CHECK_AND_FILL_VEC_LCTOPKPI_OBJECT_SIGNED(prong2, prong0, tpcTofNSigmaPiExpPi2, tpcTofNSigmaPi);
211+
CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED(candidate, tpcTofNSigmaPrExpPr0, tpcTofNSigmaPr0, tpcTofNSigmaPr2);
212+
CHECK_AND_FILL_VEC_LCTOPKPI_SIGNED(candidate, tpcTofNSigmaPiExpPi2, tpcTofNSigmaPi2, tpcTofNSigmaPi0);
197213
}
198214
}
199215

PWGHF/DataModel/CandidateReconstructionTables.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1042,6 +1042,7 @@ DECLARE_SOA_EXTENDED_TABLE_USER(HfCand3ProngExt, HfCand3ProngBase, "HFCAND3PEXT"
10421042
hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz);
10431043

10441044
using HfCand3Prong = HfCand3ProngExt;
1045+
using HfCand3ProngWPid = soa::Join<HfCand3Prong, HfProng0PidPi, HfProng0PidPr, HfProng0PidKa, HfProng1PidPi, HfProng1PidPr, HfProng1PidKa, HfProng2PidPi, HfProng2PidPr, HfProng2PidKa>;
10451046

10461047
DECLARE_SOA_TABLE(HfCand3ProngKF, "AOD", "HFCAND3PKF",
10471048
hf_cand_3prong::KfXError, hf_cand_3prong::KfYError, hf_cand_3prong::KfZError,

PWGHF/TableProducer/candidateSelectorLc.cxx

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -497,17 +497,17 @@ struct HfCandidateSelectorLc {
497497
TrackSelectorPID::Status pidTrackPos2Pion = TrackSelectorPID::Accepted;
498498
TrackSelectorPID::Status pidTrackNegKaon = TrackSelectorPID::Accepted;
499499
if (usePidTpcAndTof) {
500-
pidTrackPos1Proton = selectorProton.statusTpcAndTof(trackPos1);
501-
pidTrackPos2Proton = selectorProton.statusTpcAndTof(trackPos2);
502-
pidTrackPos1Pion = selectorPion.statusTpcAndTof(trackPos1);
503-
pidTrackPos2Pion = selectorPion.statusTpcAndTof(trackPos2);
504-
pidTrackNegKaon = selectorKaon.statusTpcAndTof(trackNeg);
500+
pidTrackPos1Proton = selectorProton.statusTpcAndTof(trackPos1, candidate.nSigTpcPr0(), candidate.nSigTofPr0());
501+
pidTrackPos2Proton = selectorProton.statusTpcAndTof(trackPos2, candidate.nSigTpcPr2(), candidate.nSigTofPr2());
502+
pidTrackPos1Pion = selectorPion.statusTpcAndTof(trackPos1, candidate.nSigTpcPi0(), candidate.nSigTofPi0());
503+
pidTrackPos2Pion = selectorPion.statusTpcAndTof(trackPos2, candidate.nSigTpcPi2(), candidate.nSigTofPi2());
504+
pidTrackNegKaon = selectorKaon.statusTpcAndTof(trackNeg, candidate.nSigTpcKa1(), candidate.nSigTofKa1());
505505
} else {
506-
pidTrackPos1Proton = selectorProton.statusTpcOrTof(trackPos1);
507-
pidTrackPos2Proton = selectorProton.statusTpcOrTof(trackPos2);
508-
pidTrackPos1Pion = selectorPion.statusTpcOrTof(trackPos1);
509-
pidTrackPos2Pion = selectorPion.statusTpcOrTof(trackPos2);
510-
pidTrackNegKaon = selectorKaon.statusTpcOrTof(trackNeg);
506+
pidTrackPos1Proton = selectorProton.statusTpcOrTof(trackPos1, candidate.nSigTpcPr0(), candidate.nSigTofPr0());
507+
pidTrackPos2Proton = selectorProton.statusTpcOrTof(trackPos2, candidate.nSigTpcPr2(), candidate.nSigTofPr2());
508+
pidTrackPos1Pion = selectorPion.statusTpcOrTof(trackPos1, candidate.nSigTpcPi0(), candidate.nSigTofPi0());
509+
pidTrackPos2Pion = selectorPion.statusTpcOrTof(trackPos2, candidate.nSigTpcPi2(), candidate.nSigTofPi2());
510+
pidTrackNegKaon = selectorKaon.statusTpcOrTof(trackNeg, candidate.nSigTpcKa1(), candidate.nSigTofKa1());
511511
}
512512

513513
if (!isSelectedPID(pidTrackPos1Proton, pidTrackNegKaon, pidTrackPos2Pion)) {
@@ -554,11 +554,11 @@ struct HfCandidateSelectorLc {
554554
isSelectedMlLcToPiKP = false;
555555

556556
if (pidLcToPKPi == 1 && pidBayesLcToPKPi == 1 && topolLcToPKPi) {
557-
std::vector<float> inputFeaturesLcToPKPi = hfMlResponse.getInputFeatures(candidate, trackPos1, trackNeg, trackPos2, true);
557+
std::vector<float> inputFeaturesLcToPKPi = hfMlResponse.getInputFeatures(candidate, true);
558558
isSelectedMlLcToPKPi = hfMlResponse.isSelectedMl(inputFeaturesLcToPKPi, candidate.pt(), outputMlLcToPKPi);
559559
}
560560
if (pidLcToPiKP == 1 && pidBayesLcToPiKP == 1 && topolLcToPiKP) {
561-
std::vector<float> inputFeaturesLcToPiKP = hfMlResponse.getInputFeatures(candidate, trackPos1, trackNeg, trackPos2, false);
561+
std::vector<float> inputFeaturesLcToPiKP = hfMlResponse.getInputFeatures(candidate, false);
562562
isSelectedMlLcToPiKP = hfMlResponse.isSelectedMl(inputFeaturesLcToPiKP, candidate.pt(), outputMlLcToPiKP);
563563
}
564564

@@ -588,7 +588,7 @@ struct HfCandidateSelectorLc {
588588
/// \brief process function w/o Bayes PID with DCAFitterN
589589
/// \param candidates Lc candidate table
590590
/// \param tracks track table
591-
void processNoBayesPidWithDCAFitterN(aod::HfCand3Prong const& candidates,
591+
void processNoBayesPidWithDCAFitterN(aod::HfCand3ProngWPid const& candidates,
592592
TracksSel const& tracks)
593593
{
594594
runSelectLc<false, aod::hf_cand::VertexerType::DCAFitter>(candidates, tracks);
@@ -598,7 +598,7 @@ struct HfCandidateSelectorLc {
598598
/// \brief process function with Bayes PID with DCAFitterN
599599
/// \param candidates Lc candidate table
600600
/// \param tracks track table with Bayes PID information
601-
void processBayesPidWithDCAFitterN(aod::HfCand3Prong const& candidates,
601+
void processBayesPidWithDCAFitterN(aod::HfCand3ProngWPid const& candidates,
602602
TracksSelBayesPid const& tracks)
603603
{
604604
runSelectLc<true, aod::hf_cand::VertexerType::DCAFitter>(candidates, tracks);
@@ -608,7 +608,7 @@ struct HfCandidateSelectorLc {
608608
/// \brief process function w/o Bayes PID with KFParticle
609609
/// \param candidates Lc candidate table
610610
/// \param tracks track table
611-
void processNoBayesPidWithKFParticle(soa::Join<aod::HfCand3Prong, aod::HfCand3ProngKF> const& candidates,
611+
void processNoBayesPidWithKFParticle(soa::Join<aod::HfCand3ProngWPid, aod::HfCand3ProngKF> const& candidates,
612612
TracksSel const& tracks)
613613
{
614614
runSelectLc<false, aod::hf_cand::VertexerType::KfParticle>(candidates, tracks);
@@ -618,7 +618,7 @@ struct HfCandidateSelectorLc {
618618
/// \brief process function with Bayes PID with KFParticle
619619
/// \param candidates Lc candidate table
620620
/// \param tracks track table with Bayes PID information
621-
void processBayesPidWithKFParticle(soa::Join<aod::HfCand3Prong, aod::HfCand3ProngKF> const& candidates,
621+
void processBayesPidWithKFParticle(soa::Join<aod::HfCand3ProngWPid, aod::HfCand3ProngKF> const& candidates,
622622
TracksSelBayesPid const& tracks)
623623
{
624624
runSelectLc<true, aod::hf_cand::VertexerType::KfParticle>(candidates, tracks);

PWGHF/TableProducer/candidateSelectorLcPidMl.cxx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ struct HfCandidateSelectorLcPidMl {
149149
}
150150
}
151151

152-
void process(aod::HfCand3Prong const& candidates,
152+
void process(aod::HfCand3ProngWPid const& candidates,
153153
TracksSel const&)
154154
{
155155
// looping over 3-prong candidates
@@ -181,11 +181,11 @@ struct HfCandidateSelectorLcPidMl {
181181
pidLcToPiKP = 1;
182182
} else {
183183
// track-level PID selection
184-
int pidTrackPos1Proton = selectorProton.statusTpcOrTof(trackPos1);
185-
int pidTrackPos2Proton = selectorProton.statusTpcOrTof(trackPos2);
186-
int pidTrackPos1Pion = selectorPion.statusTpcOrTof(trackPos1);
187-
int pidTrackPos2Pion = selectorPion.statusTpcOrTof(trackPos2);
188-
int pidTrackNegKaon = selectorKaon.statusTpcOrTof(trackNeg);
184+
int pidTrackPos1Proton = selectorProton.statusTpcOrTof(trackPos1, candidate.nSigTpcPr0(), candidate.nSigTofPr0());
185+
int pidTrackPos2Proton = selectorProton.statusTpcOrTof(trackPos2, candidate.nSigTpcPr2(), candidate.nSigTofPr2());
186+
int pidTrackPos1Pion = selectorPion.statusTpcOrTof(trackPos1, candidate.nSigTpcPi0(), candidate.nSigTofPi0());
187+
int pidTrackPos2Pion = selectorPion.statusTpcOrTof(trackPos2, candidate.nSigTpcPi2(), candidate.nSigTofPi2());
188+
int pidTrackNegKaon = selectorKaon.statusTpcOrTof(trackNeg, candidate.nSigTpcKa1(), candidate.nSigTofKa1());
189189

190190
if (pidTrackPos1Proton == TrackSelectorPID::Accepted &&
191191
pidTrackNegKaon == TrackSelectorPID::Accepted &&

PWGHF/TableProducer/derivedDataCreatorLcToPKPi.cxx

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,10 @@ struct HfDerivedDataCreatorLcToPKPi {
7979
using CollisionsWCentMult = soa::Join<aod::Collisions, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::PVMultZeqs>;
8080
using CollisionsWMcCentMult = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::PVMultZeqs>;
8181
using TracksWPid = soa::Join<aod::Tracks, aod::TracksPidPi, aod::PidTpcTofFullPi, aod::TracksPidKa, aod::PidTpcTofFullKa, aod::TracksPidPr, aod::PidTpcTofFullPr>;
82-
using SelectedCandidates = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelLc>>;
83-
using SelectedCandidatesMc = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfCand3ProngMcRec, aod::HfSelLc>>;
84-
using SelectedCandidatesMl = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelLc, aod::HfMlLcToPKPi>>;
85-
using SelectedCandidatesMcMl = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfCand3ProngMcRec, aod::HfSelLc, aod::HfMlLcToPKPi>>;
82+
using SelectedCandidates = soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfSelLc>>;
83+
using SelectedCandidatesMc = soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfCand3ProngMcRec, aod::HfSelLc>>;
84+
using SelectedCandidatesMl = soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfSelLc, aod::HfMlLcToPKPi>>;
85+
using SelectedCandidatesMcMl = soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfCand3ProngMcRec, aod::HfSelLc, aod::HfMlLcToPKPi>>;
8686
using MatchedGenCandidatesMc = soa::Filtered<soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>>;
8787
using TypeMcCollisions = soa::Join<aod::McCollisions, aod::McCentFT0Ms>;
8888

@@ -139,21 +139,21 @@ struct HfDerivedDataCreatorLcToPKPi {
139139
candidate.impactParameterNormalised0(),
140140
candidate.impactParameterNormalised1(),
141141
candidate.impactParameterNormalised2(),
142-
prong0.tpcNSigmaPi(),
143-
prong0.tpcNSigmaPr(),
144-
prong0.tofNSigmaPi(),
145-
prong0.tofNSigmaPr(),
146-
prong0.tpcTofNSigmaPi(),
147-
prong0.tpcTofNSigmaPr(),
148-
prong1.tpcNSigmaKa(),
149-
prong1.tofNSigmaKa(),
150-
prong1.tpcTofNSigmaKa(),
151-
prong2.tpcNSigmaPi(),
152-
prong2.tpcNSigmaPr(),
153-
prong2.tofNSigmaPi(),
154-
prong2.tofNSigmaPr(),
155-
prong2.tpcTofNSigmaPi(),
156-
prong2.tpcTofNSigmaPr());
142+
candidate.nSigTpcPi0(),
143+
candidate.nSigTpcPr0(),
144+
candidate.nSigTofPi0(),
145+
candidate.nSigTofPr0(),
146+
candidate.tpcTofNSigmaPi0(),
147+
candidate.tpcTofNSigmaPr0(),
148+
candidate.nSigTpcKa1(),
149+
candidate.nSigTofKa1(),
150+
candidate.tpcTofNSigmaKa1(),
151+
candidate.nSigTpcPi2(),
152+
candidate.nSigTpcPr2(),
153+
candidate.nSigTofPi2(),
154+
candidate.nSigTofPr2(),
155+
candidate.tpcTofNSigmaPi2(),
156+
candidate.tpcTofNSigmaPr2());
157157
}
158158
if (fillCandidateParE) {
159159
rowCandidateParE(

0 commit comments

Comments
 (0)