Skip to content

Commit

Permalink
Propagate 2-prong cand. daughter PID usage up to candidateSelectorD0.
Browse files Browse the repository at this point in the history
 - Needed tables added
 - TrackSelectorPID patch added to force the usage of a custom PID nSigma value (from 2-prong candidate table)
 - Add process functions via macro for combined TPC-TOF PID for 2-prong candidates
 - ML response class updated accordingly

TODO: propagate it to the next pieces of the chain.
Files to be adjusted:
 - []  TableProducer/derivedDataCreatorD0ToKPi.cxx
 - []  TableProducer/treeCreatorD0ToKPi.cxx
 - []  HFC/TableProducer/correlatorDMesonPairs.cxx
 - []  D2H/Tasks/taskd0.cxx
 - []  D2H/Tasks/taskBplus.cxx
  • Loading branch information
Mattia Faggin committed Sep 26, 2024
1 parent 78e2a9f commit 2d63189
Show file tree
Hide file tree
Showing 5 changed files with 231 additions and 38 deletions.
97 changes: 85 additions & 12 deletions Common/Core/TrackSelectorPID.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,33 @@ class TrackSelectorPidBase
mNSigmaTpcMax = nsMax;
}

/// Set the custom value of TPC nσ vs. pion hypothesis to be used for selections
void setCustomNSigmaTpcPi(float nSigma) {
mUseCustomNSigmaTpcPi = true;
mCustomNSigmaTpcPi = nSigma;
}
/// Set the custom value of TPC nσ vs. kaon hypothesis to be used for selections
void setCustomNSigmaTpcKa(float nSigma) {
mUseCustomNSigmaTpcKa = true;
mCustomNSigmaTpcKa = nSigma;
}
/// Set the custom value of TPC nσ vs. proton hypothesis to be used for selections
void setCustomNSigmaTpcPr(float nSigma) {
mUseCustomNSigmaTpcPr = true;
mCustomNSigmaTpcPr = nSigma;
}
/// Set the custom value of TPC nσ vs. muon hypothesis to be used for selections
void setCustomNSigmaTpcMu(float nSigma) {
mUseCustomNSigmaTpcMu = true;
mCustomNSigmaTpcMu = nSigma;
}
/// Set the custom value of TPC nσ vs. electron hypothesis to be used for selections
void setCustomNSigmaTpcEl(float nSigma) {
mUseCustomNSigmaTpcEl = true;
mCustomNSigmaTpcEl = nSigma;
}


/// Set TPC nσ range in which a track should be conditionally accepted if combined with TOF. Set to 0 to disable.
void setRangeNSigmaTpcCondTof(float nsMin, float nsMax)
{
Expand Down Expand Up @@ -115,15 +142,15 @@ class TrackSelectorPidBase
// Get nσ for a given particle hypothesis.
double nSigma = 100.;
if constexpr (pdg == kElectron) {
nSigma = track.tpcNSigmaEl();
nSigma = mUseCustomNSigmaTpcEl ? mCustomNSigmaTpcEl : track.tpcNSigmaEl();
} else if constexpr (pdg == kMuonMinus) {
nSigma = track.tpcNSigmaMu();
nSigma = mUseCustomNSigmaTpcMu ? mCustomNSigmaTpcMu : track.tpcNSigmaMu();
} else if constexpr (pdg == kPiPlus) {
nSigma = track.tpcNSigmaPi();
nSigma = mUseCustomNSigmaTpcPi ? mCustomNSigmaTpcPi : track.tpcNSigmaPi();
} else if constexpr (pdg == kKPlus) {
nSigma = track.tpcNSigmaKa();
nSigma = mUseCustomNSigmaTpcKa ? mCustomNSigmaTpcKa : track.tpcNSigmaKa();
} else if constexpr (pdg == kProton) {
nSigma = track.tpcNSigmaPr();
nSigma = mUseCustomNSigmaTpcPr ? mCustomNSigmaTpcPr : track.tpcNSigmaPr();
} else {
errorPdg();
}
Expand Down Expand Up @@ -171,6 +198,32 @@ class TrackSelectorPidBase
mNSigmaTofMax = nsMax;
}

/// Set the custom value of TOF nσ vs. pion hypothesis to be used for selections
void setCustomNSigmaTofPi(float nSigma) {
mUseCustomNSigmaTofPi = true;
mCustomNSigmaTofPi = nSigma;
}
/// Set the custom value of TOF nσ vs. kaon hypothesis to be used for selections
void setCustomNSigmaTofKa(float nSigma) {
mUseCustomNSigmaTofKa = true;
mCustomNSigmaTofKa = nSigma;
}
/// Set the custom value of TOF nσ vs. proton hypothesis to be used for selections
void setCustomNSigmaTofPr(float nSigma) {
mUseCustomNSigmaTofPr = true;
mCustomNSigmaTofPr = nSigma;
}
/// Set the custom value of TOF nσ vs. muon hypothesis to be used for selections
void setCustomNSigmaTofMu(float nSigma) {
mUseCustomNSigmaTofMu = true;
mCustomNSigmaTofMu = nSigma;
}
/// Set the custom value of TOF nσ vs. electron hypothesis to be used for selections
void setCustomNSigmaTofEl(float nSigma) {
mUseCustomNSigmaTofEl = true;
mCustomNSigmaTofEl = nSigma;
}

/// Set TOF nσ range in which a track should be conditionally accepted if combined with TPC. Set to 0 to disable.
void setRangeNSigmaTofCondTpc(float nsMin, float nsMax)
{
Expand Down Expand Up @@ -203,15 +256,15 @@ class TrackSelectorPidBase
// Get nσ for a given particle hypothesis.
double nSigma = 100.;
if constexpr (pdg == kElectron) {
nSigma = track.tofNSigmaEl();
nSigma = mUseCustomNSigmaTofEl ? mCustomNSigmaTofEl : track.tofNSigmaEl();
} else if constexpr (pdg == kMuonMinus) {
nSigma = track.tofNSigmaMu();
nSigma = mUseCustomNSigmaTofMu ? mCustomNSigmaTofMu : track.tofNSigmaMu();
} else if constexpr (pdg == kPiPlus) {
nSigma = track.tofNSigmaPi();
nSigma = mUseCustomNSigmaTofPi ? mCustomNSigmaTofPi : track.tofNSigmaPi();
} else if constexpr (pdg == kKPlus) {
nSigma = track.tofNSigmaKa();
nSigma = mUseCustomNSigmaTofKa ? mCustomNSigmaTofKa : track.tofNSigmaKa();
} else if constexpr (pdg == kProton) {
nSigma = track.tofNSigmaPr();
nSigma = mUseCustomNSigmaTofPr ? mCustomNSigmaTofPr : track.tofNSigmaPr();
} else {
errorPdg();
}
Expand Down Expand Up @@ -454,8 +507,8 @@ class TrackSelectorPidBase
bool isSelRich = false;
bool hasRich = track.richId() > -1;
bool hasTof = isValidForTof(track);
auto nSigmaTofEl = track.tofNSigmaEl();
auto nSigmaTofPi = track.tofNSigmaPi();
auto nSigmaTofEl = mUseCustomNSigmaTofEl ? mCustomNSigmaTofEl : track.tofNSigmaEl();
auto nSigmaTofPi = mUseCustomNSigmaTofPi ? mCustomNSigmaTofPi : track.tofNSigmaPi();
auto nSigmaRichEl = hasRich ? track.rich().richNsigmaEl() : -1000.;
auto nSigmaRichPi = hasRich ? track.rich().richNsigmaPi() : -1000.;
auto p = track.p();
Expand Down Expand Up @@ -612,6 +665,16 @@ class TrackSelectorPidBase
float mNSigmaTpcMax = 3.; ///< maximum number of TPC σ
float mNSigmaTpcMinCondTof = 0.; ///< minimum number of TPC σ if combined with TOF
float mNSigmaTpcMaxCondTof = 0.; ///< maximum number of TPC σ if combined with TOF
bool mUseCustomNSigmaTpcPi = false; ///< enable the usage of a custom value of TPC nσ vs. pion hypothesis
bool mUseCustomNSigmaTpcKa = false; ///< enable the usage of a custom value of TPC nσ vs. kaon hypothesis
bool mUseCustomNSigmaTpcPr = false; ///< enable the usage of a custom value of TPC nσ vs. proton hypothesis
bool mUseCustomNSigmaTpcMu = false; ///< enable the usage of a custom value of TPC nσ vs. muon hypothesis
bool mUseCustomNSigmaTpcEl = false; ///< enable the usage of a custom value of TPC nσ vs. electron hypothesis
float mCustomNSigmaTpcPi = -99999.f; ///< custom value of TPC nσ vs. pion hypothesis to be used for selections
float mCustomNSigmaTpcKa = -99999.f; ///< custom value of TPC nσ vs. kaon hypothesis to be used for selections
float mCustomNSigmaTpcPr = -99999.f; ///< custom value of TPC nσ vs. proton hypothesis to be used for selections
float mCustomNSigmaTpcMu = -99999.f; ///< custom value of TPC nσ vs. muon hypothesis to be used for selections
float mCustomNSigmaTpcEl = -99999.f; ///< custom value of TPC nσ vs. electron hypothesis to be used for selections

// TOF
float mPtTofMin = 0.; ///< minimum pT for TOF PID [GeV/c]
Expand All @@ -620,6 +683,16 @@ class TrackSelectorPidBase
float mNSigmaTofMax = 3.; ///< maximum number of TOF σ
float mNSigmaTofMinCondTpc = 0.; ///< minimum number of TOF σ if combined with TPC
float mNSigmaTofMaxCondTpc = 0.; ///< maximum number of TOF σ if combined with TPC
bool mUseCustomNSigmaTofPi = false; ///< enable the usage of a custom value of TOF nσ vs. pion hypothesis
bool mUseCustomNSigmaTofKa = false; ///< enable the usage of a custom value of TOF nσ vs. kaon hypothesis
bool mUseCustomNSigmaTofPr = false; ///< enable the usage of a custom value of TOF nσ vs. proton hypothesis
bool mUseCustomNSigmaTofMu = false; ///< enable the usage of a custom value of TOF nσ vs. muon hypothesis
bool mUseCustomNSigmaTofEl = false; ///< enable the usage of a custom value of TOF nσ vs. electron hypothesis
float mCustomNSigmaTofPi = -99999.f; ///< custom value of TOF nσ vs. pion hypothesis to be used for selections
float mCustomNSigmaTofKa = -99999.f; ///< custom value of TOF nσ vs. kaon hypothesis to be used for selections
float mCustomNSigmaTofPr = -99999.f; ///< custom value of TOF nσ vs. proton hypothesis to be used for selections
float mCustomNSigmaTofMu = -99999.f; ///< custom value of TOF nσ vs. muon hypothesis to be used for selections
float mCustomNSigmaTofEl = -99999.f; ///< custom value of TOF nσ vs. electron hypothesis to be used for selections

// RICH
float mPtRichMin = 0.; ///< minimum pT for RICH PID [GeV/c]
Expand Down
73 changes: 49 additions & 24 deletions PWGHF/Core/HfMlResponseD0ToKPi.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,19 @@
break; \
}

// Variation of CHECK_AND_FILL_VEC_D0_HFHELPER_SIGNED(OBJECT, FEATURE, GETTER1, GETTER2)
// where GETTER1 and GETTER2 are methods of the OBJECT, and the variable
// is filled depending on whether it is a D0 or a D0bar
#define CHECK_AND_FILL_VEC_D0_SIGNED(OBJECT, FEATURE, GETTER1, GETTER2) \
case static_cast<uint8_t>(InputFeaturesD0ToKPi::FEATURE): { \
if (pdgCode == o2::constants::physics::kD0) { \
inputFeatures.emplace_back(OBJECT.GETTER1()); \
} else { \
inputFeatures.emplace_back(OBJECT.GETTER2()); \
} \
break; \
}

namespace o2::analysis
{
enum class InputFeaturesD0ToKPi : uint8_t {
Expand Down Expand Up @@ -169,32 +182,44 @@ class HfMlResponseD0ToKPi : public HfMlResponse<TypeOutputScore>
CHECK_AND_FILL_VEC_D0(impactParameterZ0);
CHECK_AND_FILL_VEC_D0(impactParameterZ1);
// TPC PID variables
CHECK_AND_FILL_VEC_D0_FULL(prong0, nSigTpcPi0, tpcNSigmaPi);
CHECK_AND_FILL_VEC_D0_FULL(prong0, nSigTpcKa0, tpcNSigmaKa);
CHECK_AND_FILL_VEC_D0_FULL(prong1, nSigTpcPi1, tpcNSigmaPi);
CHECK_AND_FILL_VEC_D0_FULL(prong1, nSigTpcKa1, tpcNSigmaKa);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTpcPiExpPi, tpcNSigmaPi);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTpcKaExpPi, tpcNSigmaKa);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTpcPiExpKa, tpcNSigmaPi);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTpcKaExpKa, tpcNSigmaKa);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTpcPi0, /*getter*/ nSigTpcPi0);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTpcKa0, /*getter*/ nSigTpcKa0);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTpcPi1, /*getter*/ nSigTpcPi1);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTpcKa1, /*getter*/ nSigTpcKa1);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTpcPiExpPi, tpcNSigmaPi);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTpcKaExpPi, tpcNSigmaKa);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTpcPiExpKa, tpcNSigmaPi);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTpcKaExpKa, tpcNSigmaKa);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTpcPiExpPi, nSigTpcPi0, nSigTpcPi1);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTpcKaExpPi, nSigTpcKa0, nSigTpcKa1);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTpcPiExpKa, nSigTpcPi1, nSigTpcPi0);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTpcKaExpKa, nSigTpcKa1, nSigTpcKa0);
// TOF PID variables
CHECK_AND_FILL_VEC_D0_FULL(prong0, nSigTofPi0, tofNSigmaPi);
CHECK_AND_FILL_VEC_D0_FULL(prong0, nSigTofKa0, tofNSigmaKa);
CHECK_AND_FILL_VEC_D0_FULL(prong1, nSigTofPi1, tofNSigmaPi);
CHECK_AND_FILL_VEC_D0_FULL(prong1, nSigTofKa1, tofNSigmaKa);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTofPiExpPi, tofNSigmaPi);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTofKaExpPi, tofNSigmaKa);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTofPiExpKa, tofNSigmaPi);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTofKaExpKa, tofNSigmaKa);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTofPi0, /*getter*/ nSigTofPi0);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTofKa0, /*getter*/ nSigTofKa0);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTofPi1, /*getter*/ nSigTofPi1);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTofKa1, /*getter*/ nSigTofKa1);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTofPiExpPi, tofNSigmaPi);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTofKaExpPi, tofNSigmaKa);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTofPiExpKa, tofNSigmaPi);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTofKaExpKa, tofNSigmaKa);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTofPiExpPi, nSigTofPi0, nSigTofPi1);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTofKaExpPi, nSigTofKa0, nSigTofKa1);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTofPiExpKa, nSigTofPi1, nSigTofPi0);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTofKaExpKa, nSigTofKa1, nSigTofKa0);
// Combined PID variables
CHECK_AND_FILL_VEC_D0_FULL(prong0, nSigTpcTofPi0, tpcTofNSigmaPi);
CHECK_AND_FILL_VEC_D0_FULL(prong0, nSigTpcTofKa0, tpcTofNSigmaKa);
CHECK_AND_FILL_VEC_D0_FULL(prong1, nSigTpcTofPi1, tpcTofNSigmaPi);
CHECK_AND_FILL_VEC_D0_FULL(prong1, nSigTpcTofKa1, tpcTofNSigmaKa);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTpcTofPiExpPi, tpcTofNSigmaPi);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTpcTofKaExpPi, tpcTofNSigmaKa);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTpcTofPiExpKa, tpcTofNSigmaPi);
CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTpcTofKaExpKa, tpcTofNSigmaKa);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTpcTofPi0, tpcTofNSigmaPi0);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTpcTofKa0, tpcTofNSigmaKa0);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTpcTofPi1, tpcTofNSigmaPi1);
CHECK_AND_FILL_VEC_D0_FULL(candidate, nSigTpcTofKa1, tpcTofNSigmaKa1);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTpcTofPiExpPi, tpcTofNSigmaPi);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong0, prong1, nSigTpcTofKaExpPi, tpcTofNSigmaKa);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTpcTofPiExpKa, tpcTofNSigmaPi);
//CHECK_AND_FILL_VEC_D0_OBJECT_HFHELPER_SIGNED(prong1, prong0, nSigTpcTofKaExpKa, tpcTofNSigmaKa);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTpcTofPiExpPi, tpcTofNSigmaPi0, tpcTofNSigmaPi1);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTpcTofKaExpPi, tpcTofNSigmaKa0, tpcTofNSigmaKa1);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTpcTofPiExpKa, tpcTofNSigmaPi1, tpcTofNSigmaPi0);
CHECK_AND_FILL_VEC_D0_SIGNED(candidate, nSigTpcTofKaExpKa, tpcTofNSigmaKa1, tpcTofNSigmaKa0);

CHECK_AND_FILL_VEC_D0(maxNormalisedDeltaIP);
CHECK_AND_FILL_VEC_D0_FULL(candidate, impactParameterProduct, impactParameterProduct);
Expand Down
38 changes: 38 additions & 0 deletions PWGHF/DataModel/CandidateReconstructionTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -551,6 +551,43 @@ enum VertexerType { DCAFitter = 0,
KfParticle };
} // namespace hf_cand

namespace pid_tpc_tof_static_full_cand
{
// Combined TPC and TOF NSigma
DECLARE_SOA_COLUMN(TpcTofNSigmaEl0, tpcTofNSigmaEl0, float); //! Combined NSigma separation with the TPC & TOF detectors for electron - prong 0
DECLARE_SOA_COLUMN(TpcTofNSigmaEl1, tpcTofNSigmaEl1, float); //! Combined NSigma separation with the TPC & TOF detectors for electron - prong 1
DECLARE_SOA_COLUMN(TpcTofNSigmaEl2, tpcTofNSigmaEl2, float); //! Combined NSigma separation with the TPC & TOF detectors for electron - prong 2
DECLARE_SOA_COLUMN(TpcTofNSigmaMu0, tpcTofNSigmaMu0, float); //! Combined NSigma separation with the TPC & TOF detectors for muon - prong 0
DECLARE_SOA_COLUMN(TpcTofNSigmaMu1, tpcTofNSigmaMu1, float); //! Combined NSigma separation with the TPC & TOF detectors for muon - prong 1
DECLARE_SOA_COLUMN(TpcTofNSigmaMu2, tpcTofNSigmaMu2, float); //! Combined NSigma separation with the TPC & TOF detectors for muon - prong 2
DECLARE_SOA_COLUMN(TpcTofNSigmaPi0, tpcTofNSigmaPi0, float); //! Combined NSigma separation with the TPC & TOF detectors for pion - prong 0
DECLARE_SOA_COLUMN(TpcTofNSigmaPi1, tpcTofNSigmaPi1, float); //! Combined NSigma separation with the TPC & TOF detectors for pion - prong 1
DECLARE_SOA_COLUMN(TpcTofNSigmaPi2, tpcTofNSigmaPi2, float); //! Combined NSigma separation with the TPC & TOF detectors for pion - prong 2
DECLARE_SOA_COLUMN(TpcTofNSigmaKa0, tpcTofNSigmaKa0, float); //! Combined NSigma separation with the TPC & TOF detectors for kaon - prong 0
DECLARE_SOA_COLUMN(TpcTofNSigmaKa1, tpcTofNSigmaKa1, float); //! Combined NSigma separation with the TPC & TOF detectors for kaon - prong 1
DECLARE_SOA_COLUMN(TpcTofNSigmaKa2, tpcTofNSigmaKa2, float); //! Combined NSigma separation with the TPC & TOF detectors for kaon - prong 2
DECLARE_SOA_COLUMN(TpcTofNSigmaPr0, tpcTofNSigmaPr0, float); //! Combined NSigma separation with the TPC & TOF detectors for proton - prong 0
DECLARE_SOA_COLUMN(TpcTofNSigmaPr1, tpcTofNSigmaPr1, float); //! Combined NSigma separation with the TPC & TOF detectors for proton - prong 1
DECLARE_SOA_COLUMN(TpcTofNSigmaPr2, tpcTofNSigmaPr2, float); //! Combined NSigma separation with the TPC & TOF detectors for proton - prong 2
} // namespace pid_tpc_tof_static_full_cand

// Extension of 2-prong candidate table
DECLARE_SOA_TABLE(PidTpcTofCand2ProngFullEl, "AOD", "PIDTPCTOF2PEL", //! Table of the TPC & TOF Combined NSigma for electron
pid_tpc_tof_static_full_cand::TpcTofNSigmaEl0,
pid_tpc_tof_static_full_cand::TpcTofNSigmaEl1);
DECLARE_SOA_TABLE(PidTpcTofCand2ProngFullMu, "AOD", "PIDTPCTOF2PMU", //! Table of the TPC & TOF Combined NSigma for muon
pid_tpc_tof_static_full_cand::TpcTofNSigmaMu0,
pid_tpc_tof_static_full_cand::TpcTofNSigmaMu1);
DECLARE_SOA_TABLE(PidTpcTofCand2ProngFullPi, "AOD", "PIDTPCTOF2PPI", //! Table of the TPC & TOF Combined NSigma for pion
pid_tpc_tof_static_full_cand::TpcTofNSigmaPi0,
pid_tpc_tof_static_full_cand::TpcTofNSigmaPi1);
DECLARE_SOA_TABLE(PidTpcTofCand2ProngFullKa, "AOD", "PIDTPCTOF2PKA", //! Table of the TPC & TOF Combined NSigma for kaon
pid_tpc_tof_static_full_cand::TpcTofNSigmaKa0,
pid_tpc_tof_static_full_cand::TpcTofNSigmaKa1);
DECLARE_SOA_TABLE(PidTpcTofCand2ProngFullPr, "AOD", "PIDTPCTOF2PPR", //! Table of the TPC & TOF Combined NSigma for proton
pid_tpc_tof_static_full_cand::TpcTofNSigmaPr0,
pid_tpc_tof_static_full_cand::TpcTofNSigmaPr1);

// specific 2-prong decay properties
namespace hf_cand_2prong
{
Expand Down Expand Up @@ -656,6 +693,7 @@ DECLARE_SOA_EXTENDED_TABLE_USER(HfCand2ProngExt, HfCand2ProngBase, "HFCAND2PEXT"
hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz);

using HfCand2Prong = HfCand2ProngExt;
using HfCand2ProngPidPiKa = soa::Join<HfCand2Prong, PidTpcTofCand2ProngFullPi, PidTpcTofCand2ProngFullKa>;

DECLARE_SOA_TABLE(HfCand2ProngKF, "AOD", "HFCAND2PKF",
hf_cand::KfTopolChi2OverNdf,
Expand Down
Loading

0 comments on commit 2d63189

Please sign in to comment.