Skip to content
2 changes: 2 additions & 0 deletions PWGHF/DataModel/AliasTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ using TracksPidPr = soa::Join<aod::pidTPCFullPr, aod::pidTOFFullPr>;
using TracksPidDe = soa::Join<aod::pidTPCFullDe, aod::pidTOFFullDe>;
using TracksPidTr = soa::Join<aod::pidTPCFullTr, aod::pidTOFFullTr>;
using TracksPidHe = soa::Join<aod::pidTPCFullHe, aod::pidTOFFullHe>;
using TracksPidAl = soa::Join<aod::pidTPCFullAl, aod::pidTOFFullAl>;

using TracksPidTinyEl = soa::Join<aod::pidTPCEl, aod::pidTOFEl>;
using TracksPidTinyMu = soa::Join<aod::pidTPCMu, aod::pidTOFMu>;
Expand All @@ -56,6 +57,7 @@ using TracksPidTinyPr = soa::Join<aod::pidTPCPr, aod::pidTOFPr>;
using TracksPidTinyDe = soa::Join<aod::pidTPCDe, aod::pidTOFDe>;
using TracksPidTinyTr = soa::Join<aod::pidTPCTr, aod::pidTOFTr>;
using TracksPidTinyHe = soa::Join<aod::pidTPCHe, aod::pidTOFHe>;
using TracksPidTinyAl = soa::Join<aod::pidTPCAl, aod::pidTOFAl>;
} // namespace o2::aod

#endif // PWGHF_DATAMODEL_ALIASTABLES_H_
30 changes: 29 additions & 1 deletion PWGHF/DataModel/CandidateReconstructionTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ DECLARE_SOA_COLUMN(TpcTofNSigmaPr, tpcTofNSigmaPr, float); //! Combined NSigma s
DECLARE_SOA_COLUMN(TpcTofNSigmaDe, tpcTofNSigmaDe, float); //! Combined NSigma separation with the TPC & TOF detectors for deuteron
DECLARE_SOA_COLUMN(TpcTofNSigmaTr, tpcTofNSigmaTr, float); //! Combined NSigma separation with the TPC & TOF detectors for triton
DECLARE_SOA_COLUMN(TpcTofNSigmaHe, tpcTofNSigmaHe, float); //! Combined NSigma separation with the TPC & TOF detectors for helium
DECLARE_SOA_COLUMN(TpcTofNSigmaAl, tpcTofNSigmaAl, float); //! Combined NSigma separation with the TPC & TOF detectors for alpha
} // namespace pid_tpc_tof_static_full

namespace pid_tpc_tof_static_tiny
Expand All @@ -59,6 +60,7 @@ DECLARE_SOA_COLUMN(TpcTofNSigmaPr, tpcTofNSigmaPr, float); //! Combined NSigma s
DECLARE_SOA_COLUMN(TpcTofNSigmaDe, tpcTofNSigmaDe, float); //! Combined NSigma separation with the TPC & TOF detectors for deuteron
DECLARE_SOA_COLUMN(TpcTofNSigmaTr, tpcTofNSigmaTr, float); //! Combined NSigma separation with the TPC & TOF detectors for triton
DECLARE_SOA_COLUMN(TpcTofNSigmaHe, tpcTofNSigmaHe, float); //! Combined NSigma separation with the TPC & TOF detectors for helium
DECLARE_SOA_COLUMN(TpcTofNSigmaAl, tpcTofNSigmaAl, float); //! Combined NSigma separation with the TPC & TOF detectors for alpha
} // namespace pid_tpc_tof_static_tiny

// Extension of per particle tables
Expand All @@ -78,6 +80,8 @@ DECLARE_SOA_TABLE(PidTpcTofFullTr, "AOD", "PIDTPCTOFFULLTr", //! Table of the TP
pid_tpc_tof_static_full::TpcTofNSigmaTr);
DECLARE_SOA_TABLE(PidTpcTofFullHe, "AOD", "PIDTPCTOFFULLHe", //! Table of the TPC & TOF Combined NSigma for helium
pid_tpc_tof_static_full::TpcTofNSigmaHe);
DECLARE_SOA_TABLE(PidTpcTofFullAl, "AOD", "PIDTPCTOFFULLAl", //! Table of the TPC & TOF Combined NSigma for alpha
pid_tpc_tof_static_full::TpcTofNSigmaAl);
// Extension of per particle tables
DECLARE_SOA_TABLE(PidTpcTofTinyEl, "AOD", "PIDTPCTOFTINYEL", //! Table of the TPC & TOF Combined NSigma for electron
pid_tpc_tof_static_tiny::TpcTofNSigmaEl);
Expand All @@ -95,6 +99,8 @@ DECLARE_SOA_TABLE(PidTpcTofTinyTr, "AOD", "PIDTPCTOFTINYTr", //! Table of the TP
pid_tpc_tof_static_tiny::TpcTofNSigmaTr);
DECLARE_SOA_TABLE(PidTpcTofTinyHe, "AOD", "PIDTPCTOFTINYHe", //! Table of the TPC & TOF Combined NSigma for helium
pid_tpc_tof_static_tiny::TpcTofNSigmaHe);
DECLARE_SOA_TABLE(PidTpcTofTinyAl, "AOD", "PIDTPCTOFTINYAl", //! Table of the TPC & TOF Combined NSigma for alpha
pid_tpc_tof_static_tiny::TpcTofNSigmaAl);
// general decay properties
namespace hf_cand
{
Expand Down Expand Up @@ -197,6 +203,9 @@ DECLARE_SOA_COLUMN(NSigTpcTr2, nSigTpcTr2, float); //! TPC nSigma for
DECLARE_SOA_COLUMN(NSigTpcHe0, nSigTpcHe0, float); //! TPC nSigma for helium hypothesis - prong 0
DECLARE_SOA_COLUMN(NSigTpcHe1, nSigTpcHe1, float); //! TPC nSigma for helium hypothesis - prong 1
DECLARE_SOA_COLUMN(NSigTpcHe2, nSigTpcHe2, float); //! TPC nSigma for helium hypothesis - prong 2
DECLARE_SOA_COLUMN(NSigTpcAl0, nSigTpcAl0, float); //! TPC nSigma for alpha hypothesis - prong 0
DECLARE_SOA_COLUMN(NSigTpcAl1, nSigTpcAl1, float); //! TPC nSigma for alpha hypothesis - prong 1
DECLARE_SOA_COLUMN(NSigTpcAl2, nSigTpcAl2, float); //! TPC nSigma for alpha hypothesis - prong 2
DECLARE_SOA_COLUMN(NSigTofPi0, nSigTofPi0, float); //! TOF nSigma for pion hypothesis - prong 0
DECLARE_SOA_COLUMN(NSigTofPi1, nSigTofPi1, float); //! TOF nSigma for pion hypothesis - prong 1
DECLARE_SOA_COLUMN(NSigTofPi2, nSigTofPi2, float); //! TOF nSigma for pion hypothesis - prong 2
Expand All @@ -215,6 +224,9 @@ DECLARE_SOA_COLUMN(NSigTofTr2, nSigTofTr2, float); //! TOF nSigma for
DECLARE_SOA_COLUMN(NSigTofHe0, nSigTofHe0, float); //! TOF nSigma for helium hypothesis - prong 0
DECLARE_SOA_COLUMN(NSigTofHe1, nSigTofHe1, float); //! TOF nSigma for helium hypothesis - prong 1
DECLARE_SOA_COLUMN(NSigTofHe2, nSigTofHe2, float); //! TOF nSigma for helium hypothesis - prong 2
DECLARE_SOA_COLUMN(NSigTofAl0, nSigTofAl0, float); //! TOF nSigma for alpha hypothesis - prong 0
DECLARE_SOA_COLUMN(NSigTofAl1, nSigTofAl1, float); //! TOF nSigma for alpha hypothesis - prong 1
DECLARE_SOA_COLUMN(NSigTofAl2, nSigTofAl2, float); //! TOF nSigma for alpha hypothesis - prong 2
DECLARE_SOA_DYNAMIC_COLUMN(TpcTofNSigmaPi0, tpcTofNSigmaPi0, //! Combined NSigma separation with the TPC & TOF detectors for pion - prong 0
[](float tpcNSigmaPi0, float tofNSigmaPi0) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaPi0, tofNSigmaPi0); });
DECLARE_SOA_DYNAMIC_COLUMN(TpcTofNSigmaPi1, tpcTofNSigmaPi1, //! Combined NSigma separation with the TPC & TOF detectors for pion - prong 1
Expand Down Expand Up @@ -251,6 +263,12 @@ DECLARE_SOA_DYNAMIC_COLUMN(TpcTofNSigmaHe1, tpcTofNSigmaHe1, //! Combined NSigma
[](float tpcNSigmaHe1, float tofNSigmaHe1) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaHe1, tofNSigmaHe1); });
DECLARE_SOA_DYNAMIC_COLUMN(TpcTofNSigmaHe2, tpcTofNSigmaHe2, //! Combined NSigma separation with the TPC & TOF detectors for helium - prong 2
[](float tpcNSigmaHe2, float tofNSigmaHe2) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaHe2, tofNSigmaHe2); });
DECLARE_SOA_DYNAMIC_COLUMN(TpcTofNSigmaAl0, tpcTofNSigmaAl0, //! Combined NSigma separation with the TPC & TOF detectors for alpha - prong 0
[](float tpcNSigmaAl0, float tofNSigmaAl0) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaAl0, tofNSigmaAl0); });
DECLARE_SOA_DYNAMIC_COLUMN(TpcTofNSigmaAl1, tpcTofNSigmaAl1, //! Combined NSigma separation with the TPC & TOF detectors for alpha - prong 1
[](float tpcNSigmaAl1, float tofNSigmaAl1) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaAl1, tofNSigmaAl1); });
DECLARE_SOA_DYNAMIC_COLUMN(TpcTofNSigmaAl2, tpcTofNSigmaAl2, //! Combined NSigma separation with the TPC & TOF detectors for alpha - prong 2
[](float tpcNSigmaAl2, float tofNSigmaAl2) -> float { return pid_tpc_tof_utils::combineNSigma<false /*tiny*/>(tpcNSigmaAl2, tofNSigmaAl2); });
// tiny (binned) option
DECLARE_SOA_DYNAMIC_COLUMN(TpcTofNSigmaTinyPi0, tpcTofNSigmaTinyPi0, //! Combined NSigma separation with the TPC & TOF detectors for pion - prong 0
[](float tpcNSigmaPi0, float tofNSigmaPi0) -> float { return pid_tpc_tof_utils::combineNSigma<true /*tiny*/>(tpcNSigmaPi0, tofNSigmaPi0); });
Expand Down Expand Up @@ -811,20 +829,30 @@ DECLARE_SOA_TABLE(HfCand3Prong2PidTr, "AOD", "HFCAND3P2PIDTR", //!
hf_cand::TpcTofNSigmaTr2<hf_cand::NSigTpcTr2, hf_cand::NSigTofTr2>);
DECLARE_SOA_TABLE(HfCand3Prong0PidHe, "AOD", "HFCAND3P0PIDHe", //!
hf_cand::NSigTpcHe0, hf_cand::NSigTofHe0,
hf_cand::TpcTofNSigmaTr0<hf_cand::NSigTpcHe0, hf_cand::NSigTofHe0>);
hf_cand::TpcTofNSigmaHe0<hf_cand::NSigTpcHe0, hf_cand::NSigTofHe0>);
DECLARE_SOA_TABLE(HfCand3Prong1PidHe, "AOD", "HFCAND3P1PIDHe", //!
hf_cand::NSigTpcHe1, hf_cand::NSigTofHe1,
hf_cand::TpcTofNSigmaHe1<hf_cand::NSigTpcHe1, hf_cand::NSigTofHe1>);
DECLARE_SOA_TABLE(HfCand3Prong2PidHe, "AOD", "HFCAND3P2PIDHe", //!
hf_cand::NSigTpcHe2, hf_cand::NSigTofHe2,
hf_cand::TpcTofNSigmaHe2<hf_cand::NSigTpcHe2, hf_cand::NSigTofHe2>);
DECLARE_SOA_TABLE(HfCand3Prong0PidAl, "AOD", "HFCAND3P0PIDAl", //!
hf_cand::NSigTpcAl0, hf_cand::NSigTofAl0,
hf_cand::TpcTofNSigmaAl0<hf_cand::NSigTpcAl0, hf_cand::NSigTofAl0>);
DECLARE_SOA_TABLE(HfCand3Prong1PidAl, "AOD", "HFCAND3P1PIDAl", //!
hf_cand::NSigTpcAl1, hf_cand::NSigTofAl1,
hf_cand::TpcTofNSigmaAl1<hf_cand::NSigTpcAl1, hf_cand::NSigTofAl1>);
DECLARE_SOA_TABLE(HfCand3Prong2PidAl, "AOD", "HFCAND3P2PIDAl", //!
hf_cand::NSigTpcAl2, hf_cand::NSigTofAl2,
hf_cand::TpcTofNSigmaAl2<hf_cand::NSigTpcAl2, hf_cand::NSigTofAl2>);

using HfCand3Prong = HfCand3ProngExt;
using HfCand3ProngWPidPiKaPr = soa::Join<HfCand3Prong, HfCand3Prong0PidPi, HfCand3Prong0PidPr, HfCand3Prong0PidKa, HfCand3Prong1PidPi, HfCand3Prong1PidPr, HfCand3Prong1PidKa, HfCand3Prong2PidPi, HfCand3Prong2PidPr, HfCand3Prong2PidKa>;
using HfCand3ProngWPidPiKa = soa::Join<HfCand3Prong, HfCand3Prong0PidPi, HfCand3Prong0PidKa, HfCand3Prong1PidPi, HfCand3Prong1PidKa, HfCand3Prong2PidPi, HfCand3Prong2PidKa>;
using HfCand3ProngWPidPiKaDe = soa::Join<HfCand3Prong, HfCand3Prong0PidPi, HfCand3Prong0PidDe, HfCand3Prong0PidKa, HfCand3Prong1PidPi, HfCand3Prong1PidDe, HfCand3Prong1PidKa, HfCand3Prong2PidPi, HfCand3Prong2PidDe, HfCand3Prong2PidKa>;
using HfCand3ProngWPidPiKaTr = soa::Join<HfCand3Prong, HfCand3Prong0PidPi, HfCand3Prong0PidTr, HfCand3Prong0PidKa, HfCand3Prong1PidPi, HfCand3Prong1PidTr, HfCand3Prong1PidKa, HfCand3Prong2PidPi, HfCand3Prong2PidTr, HfCand3Prong2PidKa>;
using HfCand3ProngWPidPiKaHe = soa::Join<HfCand3Prong, HfCand3Prong0PidPi, HfCand3Prong0PidHe, HfCand3Prong0PidKa, HfCand3Prong1PidPi, HfCand3Prong1PidHe, HfCand3Prong1PidKa, HfCand3Prong2PidPi, HfCand3Prong2PidHe, HfCand3Prong2PidKa>;
using HfCand3ProngWPidPiKaAl = soa::Join<HfCand3Prong, HfCand3Prong0PidPi, HfCand3Prong0PidAl, HfCand3Prong0PidKa, HfCand3Prong1PidPi, HfCand3Prong1PidAl, HfCand3Prong1PidKa, HfCand3Prong2PidPi, HfCand3Prong2PidAl, HfCand3Prong2PidKa>;

DECLARE_SOA_TABLE(HfCand3ProngKF, "AOD", "HFCAND3PKF",
hf_cand_3prong::KfXError, hf_cand_3prong::KfYError, hf_cand_3prong::KfZError,
Expand Down
38 changes: 30 additions & 8 deletions PWGHF/TableProducer/candidateCreator3Prong.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

#include "PWGHF/Core/CentralityEstimation.h"
#include "PWGHF/Core/DecayChannels.h"
#include "PWGHF/Core/SelectorCuts.h"
#include "PWGHF/DataModel/AliasTables.h"
#include "PWGHF/DataModel/CandidateReconstructionTables.h"
#include "PWGHF/DataModel/TrackIndexSkimmingTables.h"
Expand Down Expand Up @@ -78,6 +79,7 @@
#include <vector>

using namespace o2;
using namespace o2::analysis;
using namespace o2::hf_evsel;
using namespace o2::hf_trkcandsel;
using namespace o2::aod::hf_cand_3prong;
Expand All @@ -98,14 +100,23 @@ struct HfCandidateCreator3Prong {
Produces<aod::HfCand3Prong0PidKa> rowProng0PidKa;
Produces<aod::HfCand3Prong0PidPr> rowProng0PidPr;
Produces<aod::HfCand3Prong0PidDe> rowProng0PidDe;
Produces<aod::HfCand3Prong0PidTr> rowProng0PidTr;
Produces<aod::HfCand3Prong0PidHe> rowProng0PidHe;
Produces<aod::HfCand3Prong0PidAl> rowProng0PidAl;
Produces<aod::HfCand3Prong1PidPi> rowProng1PidPi;
Produces<aod::HfCand3Prong1PidKa> rowProng1PidKa;
Produces<aod::HfCand3Prong1PidPr> rowProng1PidPr;
Produces<aod::HfCand3Prong1PidDe> rowProng1PidDe;
Produces<aod::HfCand3Prong1PidTr> rowProng1PidTr;
Produces<aod::HfCand3Prong1PidHe> rowProng1PidHe;
Produces<aod::HfCand3Prong1PidAl> rowProng1PidAl;
Produces<aod::HfCand3Prong2PidPi> rowProng2PidPi;
Produces<aod::HfCand3Prong2PidKa> rowProng2PidKa;
Produces<aod::HfCand3Prong2PidPr> rowProng2PidPr;
Produces<aod::HfCand3Prong2PidDe> rowProng2PidDe;
Produces<aod::HfCand3Prong2PidTr> rowProng2PidTr;
Produces<aod::HfCand3Prong2PidHe> rowProng2PidHe;
Produces<aod::HfCand3Prong2PidAl> rowProng2PidAl;

// vertexing
Configurable<bool> propagateToPCA{"propagateToPCA", true, "create tracks version propagated to PCA"};
Expand All @@ -126,11 +137,13 @@ struct HfCandidateCreator3Prong {
Configurable<bool> createDs{"createDs", false, "enable Ds+/- candidate creation"};
Configurable<bool> createLc{"createLc", false, "enable Lc+/- candidate creation"};
Configurable<bool> createXic{"createXic", false, "enable Xic+/- candidate creation"};
Configurable<bool> createCd{"createCd", false, "enable Cd candidate creation"};
Configurable<bool> createCharmNuclei{"createCharmNuclei", false, "enable createCharmNuclei candidate creation"};
// KF
Configurable<bool> applyTopoConstraint{"applyTopoConstraint", false, "apply origin from PV hypothesis for created candidate, works only in KF mode"};
Configurable<bool> applyInvMassConstraint{"applyInvMassConstraint", false, "apply particle type hypothesis to recalculate created candidate's momentum, works only in KF mode"};

Configurable<LabeledArray<float>> tpcPidBBParamsLightNuclei{"tpcPidBBParamsLightNuclei", {hf_presel_lightnuclei::BetheBlochParams[0], hf_presel_lightnuclei::NParticleRows, hf_presel_lightnuclei::NBetheBlochParams, hf_presel_lightnuclei::labelsRowsNucleiType, hf_presel_lightnuclei::labelsBetheBlochParams}, "TPC PID Bethe–Bloch parameter configurations for light nuclei (deuteron, triton, helium-3)"};
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You did not include header that provides LabeledArray.


HfEventSelection hfEvSel; // event selection and monitoring
o2::vertexing::DCAFitterN<3> df; // 3-prong vertex fitter
Service<o2::ccdb::BasicCCDBManager> ccdb{};
Expand All @@ -143,10 +156,10 @@ struct HfCandidateCreator3Prong {

using FilteredHf3Prongs = soa::Filtered<aod::Hf3Prongs>;
using FilteredPvRefitHf3Prongs = soa::Filtered<soa::Join<aod::Hf3Prongs, aod::HfPvRefit3Prong>>;
using TracksWCovExtraPidPiKaPrDe = soa::Join<aod::TracksWCovExtra, aod::TracksPidPi, aod::PidTpcTofFullPi, aod::TracksPidKa, aod::PidTpcTofFullKa, aod::TracksPidPr, aod::PidTpcTofFullPr, aod::TracksPidDe, aod::PidTpcTofFullDe>;
using TracksWCovExtraPidPiKaPrDe = soa::Join<aod::TracksWCovExtra, aod::TracksPidPi, aod::PidTpcTofFullPi, aod::TracksPidKa, aod::PidTpcTofFullKa, aod::TracksPidPr, aod::PidTpcTofFullPr, aod::TracksPidDe, aod::PidTpcTofFullDe, aod::TracksPidHe, aod::PidTpcTofFullHe, aod::TracksPidTr, aod::PidTpcTofFullTr, aod::TracksPidAl, aod::PidTpcTofFullAl>;

// filter candidates
Filter filterSelected3Prongs = (createDplus && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::DplusToPiKPi))) != static_cast<uint8_t>(0)) || (createDs && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::DsToKKPi))) != static_cast<uint8_t>(0)) || (createLc && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::LcToPKPi))) != static_cast<uint8_t>(0)) || (createXic && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::XicToPKPi))) != static_cast<uint8_t>(0)) || (createCd && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::CdToDeKPi))) != static_cast<uint8_t>(0));
Filter filterSelected3Prongs = (createDplus && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::DplusToPiKPi))) != static_cast<uint8_t>(0)) || (createDs && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::DsToKKPi))) != static_cast<uint8_t>(0)) || (createLc && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::LcToPKPi))) != static_cast<uint8_t>(0)) || (createXic && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::XicToPKPi))) != static_cast<uint8_t>(0)) || (createCharmNuclei && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::CdToDeKPi))) != static_cast<uint8_t>(0)) || (createCharmNuclei && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::CtToTrKPi))) != static_cast<uint8_t>(0)) || (createCharmNuclei && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::ChToHeKPi))) != static_cast<uint8_t>(0)) || (createCharmNuclei && (o2::aod::hf_track_index::hfflag & static_cast<uint8_t>(BIT(DecayType::CaToAlKPi))) != static_cast<uint8_t>(0));

std::shared_ptr<TH1> hCandidates;
HistogramRegistry registry{"registry"};
Expand Down Expand Up @@ -189,7 +202,7 @@ struct HfCandidateCreator3Prong {
if (nProcessesUpc > 0 && isRun2) {
LOGP(fatal, "Process function for UPC is only available in Run 3!");
}
std::array<bool, 5> creationFlags = {createDplus, createDs, createLc, createXic, createCd};
std::array<bool, 5> creationFlags = {createDplus, createDs, createLc, createXic, createCharmNuclei};
if (std::accumulate(creationFlags.begin(), creationFlags.end(), 0) == 0) {
LOGP(fatal, "At least one particle specie should be enabled for the creation.");
}
Expand Down Expand Up @@ -258,10 +271,19 @@ struct HfCandidateCreator3Prong {
fillProngPid<HfProngSpecies::Proton>(track1, rowProng1PidPr);
fillProngPid<HfProngSpecies::Proton>(track2, rowProng2PidPr);
}
if (createCd) {
fillProngPid<HfProngSpecies::Deuteron>(track0, rowProng0PidDe);
fillProngPid<HfProngSpecies::Deuteron>(track1, rowProng1PidDe);
fillProngPid<HfProngSpecies::Deuteron>(track2, rowProng2PidDe);
if (createCharmNuclei) {
fillProngPidLightNuclei<HfProngSpecies::Deuteron>(track0, rowProng0PidDe, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Deuteron>(track1, rowProng1PidDe, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Deuteron>(track2, rowProng2PidDe, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Helium3>(track0, rowProng0PidHe, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Helium3>(track1, rowProng1PidHe, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Helium3>(track2, rowProng2PidHe, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Triton>(track0, rowProng0PidTr, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Triton>(track1, rowProng1PidTr, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Triton>(track2, rowProng2PidTr, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Alpha>(track0, rowProng0PidAl, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Alpha>(track1, rowProng1PidAl, tpcPidBBParamsLightNuclei);
fillProngPidLightNuclei<HfProngSpecies::Alpha>(track2, rowProng2PidAl, tpcPidBBParamsLightNuclei);
}
}

Expand Down
Loading
Loading