From b64027faf3905017e80e11bd8ffde899d144142f Mon Sep 17 00:00:00 2001 From: mjongerh Date: Thu, 14 Jul 2022 16:12:01 +0200 Subject: [PATCH 01/10] Add final version Lb tree creator --- PWGHF/TableProducer/CMakeLists.txt | 5 + PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 355 ++++++++++++++++++ 2 files changed, 360 insertions(+) create mode 100644 PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx diff --git a/PWGHF/TableProducer/CMakeLists.txt b/PWGHF/TableProducer/CMakeLists.txt index 01fca030835..685a37d3413 100644 --- a/PWGHF/TableProducer/CMakeLists.txt +++ b/PWGHF/TableProducer/CMakeLists.txt @@ -74,6 +74,11 @@ o2physics_add_dpl_workflow(tree-creator-lc-topkpi PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsVertexing ROOT::EG COMPONENT_NAME Analysis) +o2physics_add_dpl_workflow(tree-creator-lb-tolcpi + SOURCES HFTreeCreatorLbToLcPi.cxx + PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsVertexing ROOT::EG + COMPONENT_NAME Analysis) + o2physics_add_dpl_workflow(tree-creator-x-tojpsipipi SOURCES HFTreeCreatorXToJpsiPiPi.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsVertexing ROOT::EG diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx new file mode 100644 index 00000000000..66e736cff54 --- /dev/null +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -0,0 +1,355 @@ +// Copyright 2019-2020 CERN and copyright holders of ALICE O2. +// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. +// All rights not expressly granted are reserved. +// +// This software is distributed under the terms of the GNU General Public +// License v3 (GPL Version 3), copied verbatim in the file "COPYING". +// +// In applying this license CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +/// \file HFTreeCreatorLbToLcPi.cxx +/// \brief Writer of the 2 prong candidates in the form of flat tables to be stored in TTrees. +/// Intended for debug or for the local optimization of analysis on small samples. +/// In this file are defined and filled the output tables +/// \note Extended from HFTreeCreatorD0ToKPi, HFTreeCreatorLcToPKPi, HFTreeCreatorXToJpsiPiPi +/// +/// \author Panos Christakoglou , Nikhef +/// \author Maurice Jongerhuis , University Utrecht + +#include "Framework/runDataProcessing.h" +#include "Framework/AnalysisTask.h" +#include "DetectorsVertexing/DCAFitterN.h" +#include "PWGHF/DataModel/HFSecondaryVertex.h" +#include "PWGHF/DataModel/HFCandidateSelectionTables.h" +#include "Common/Core/trackUtilities.h" +#include "ReconstructionDataFormats/DCA.h" +#include "Common/Core/TrackSelectorPID.h" +#include "ALICE3/DataModel/RICH.h" +#include "Common/Core/PID/PIDResponse.h" +#include "ReconstructionDataFormats/PID.h" + + +using namespace o2; +using namespace o2::framework; +using namespace o2::aod::hf_cand; +using namespace o2::aod::hf_cand_lb; + +namespace o2::aod +{ +namespace full +{ +DECLARE_SOA_COLUMN(RSecondaryVertex, rSecondaryVertex, float); +DECLARE_SOA_COLUMN(PtProng0, ptProng0, float); +DECLARE_SOA_COLUMN(PProng0, pProng0, float); +DECLARE_SOA_COLUMN(ImpactParameterNormalised0, impactParameterNormalised0, float); +DECLARE_SOA_COLUMN(PtProng1, ptProng1, float); +DECLARE_SOA_COLUMN(PProng1, pProng1, float); +DECLARE_SOA_COLUMN(ImpactParameterNormalised1, impactParameterNormalised1, float); +DECLARE_SOA_COLUMN(CandidateSelFlag, candidateSelFlag, int8_t); +DECLARE_SOA_COLUMN(M, m, float); +DECLARE_SOA_COLUMN(Pt, pt, float); +DECLARE_SOA_COLUMN(P, p, float); +DECLARE_SOA_COLUMN(Eta, eta, float); +DECLARE_SOA_COLUMN(Phi, phi, float); +DECLARE_SOA_COLUMN(Y, y, float); +DECLARE_SOA_COLUMN(DecayLength, decayLength, float); +DECLARE_SOA_COLUMN(DecayLengthXY, decayLengthXY, float); +DECLARE_SOA_COLUMN(DecayLengthNormalised, decayLengthNormalised, float); +DECLARE_SOA_COLUMN(DecayLengthXYNormalised, decayLengthXYNormalised, float); +DECLARE_SOA_COLUMN(CPA, cpa, float); +DECLARE_SOA_COLUMN(CPAXY, cpaXY, float); +DECLARE_SOA_COLUMN(Ct, ct, float); +DECLARE_SOA_COLUMN(MCflag, mcflag, int8_t); +DECLARE_SOA_COLUMN(NSigRICHPi0, nsigRICHPi0, float); +DECLARE_SOA_COLUMN(NSigfRICHPi0, nsigfRICHPi0, float); +DECLARE_SOA_COLUMN(NSigTOFPi0, nsigTOFPi0, float); +//Lc selection parameters +DECLARE_SOA_COLUMN(LcM, lcM, float); +DECLARE_SOA_COLUMN(LcCt, lcCt, float); +DECLARE_SOA_COLUMN(LcY, lcY, float); +DECLARE_SOA_COLUMN(LcE, lcE, float); +DECLARE_SOA_COLUMN(LcEta, lcEta, float); +DECLARE_SOA_COLUMN(LcCPA, lcCPA, float); +DECLARE_SOA_COLUMN(LcCPAXY, lcCPAXY, float); +DECLARE_SOA_COLUMN(LcChi2PCA, lcChi2PCA, float); +DECLARE_SOA_COLUMN(LcDecayLength, lcDecayLength, float); +DECLARE_SOA_COLUMN(LcDecayLengthXY, lcDecayLengthXY, float); +DECLARE_SOA_COLUMN(LcDecayLengthNormalised, lcDecayLengthNormalised, float); +DECLARE_SOA_COLUMN(LcImpactParameter0, lcImpactParameter0, float); +DECLARE_SOA_COLUMN(LcImpactParameter1, lcImpactParameter1, float); +DECLARE_SOA_COLUMN(LcImpactParameter2, lcImpactParameter2, float); +DECLARE_SOA_COLUMN(NSigRICHTrk1Pi, nSigRICHTrk1Pi, float); +DECLARE_SOA_COLUMN(NSigRICHTrk1Pr, nSigRICHTrk1Pr, float); +DECLARE_SOA_COLUMN(NSigRICHTrk2Ka, nSigRICHTrk2Ka, float); +DECLARE_SOA_COLUMN(NSigRICHTrk3Pi, nSigRICHTrk3Pi, float); +DECLARE_SOA_COLUMN(NSigRICHTrk3Pr, nSigRICHTrk3Pr, float); +DECLARE_SOA_COLUMN(NSigfRICHTrk1Pi, nSigfRICHTrk1Pi, float); +DECLARE_SOA_COLUMN(NSigfRICHTrk1Pr, nSigfRICHTrk1Pr, float); +DECLARE_SOA_COLUMN(NSigfRICHTrk2Ka, nSigfRICHTrk2Ka, float); +DECLARE_SOA_COLUMN(NSigfRICHTrk3Pi, nSigfRICHTrk3Pi, float); +DECLARE_SOA_COLUMN(NSigfRICHTrk3Pr, nSigfRICHTrk3Pr, float); +DECLARE_SOA_COLUMN(NSigTOFTrk1Pi, nSigTOFrk1Pi, float); +DECLARE_SOA_COLUMN(NSigTOFTrk1Pr, nSigTOFrk1Pr, float); +DECLARE_SOA_COLUMN(NSigTOFTrk2Ka, nSigTOFrk2Ka, float); +DECLARE_SOA_COLUMN(NSigTOFTrk3Pi, nSigTOFrk3Pi, float); +DECLARE_SOA_COLUMN(NSigTOFTrk3Pr, nSigTOFrk3Pr, float); +// Events +DECLARE_SOA_COLUMN(IsEventReject, isEventReject, int); +DECLARE_SOA_COLUMN(RunNumber, runNumber, int); +} // namespace full + +// put the arguments into the table +DECLARE_SOA_TABLE(HfCandLbFull, "AOD", "HFCANDLbFull", + full::RSecondaryVertex, + full::DecayLength, + full::DecayLengthXY, + full::DecayLengthNormalised, + full::DecayLengthXYNormalised, + hf_cand::Chi2PCA, + full::ImpactParameterNormalised0, + full::PtProng0, + full::PProng0, + full::ImpactParameterNormalised1, + full::PtProng1, + full::PProng1, + hf_cand::PxProng0, + hf_cand::PyProng0, + hf_cand::PzProng0, + hf_cand::PxProng1, + hf_cand::PyProng1, + hf_cand::PzProng1, + hf_cand::ImpactParameter0, + hf_cand::ImpactParameter1, + hf_cand::ErrorImpactParameter0, + hf_cand::ErrorImpactParameter1, + full::NSigTOFPi0, + full::NSigRICHPi0, + full::NSigRICHTrk1Pi, + full::NSigRICHTrk1Pr, + full::NSigRICHTrk2Ka, + full::NSigRICHTrk3Pi, + full::NSigRICHTrk3Pr, + full::NSigfRICHPi0, + full::NSigfRICHTrk1Pi, + full::NSigfRICHTrk1Pr, + full::NSigfRICHTrk2Ka, + full::NSigfRICHTrk3Pi, + full::NSigfRICHTrk3Pr, + full::NSigTOFTrk1Pi, + full::NSigTOFTrk1Pr, + full::NSigTOFTrk2Ka, + full::NSigTOFTrk3Pi, + full::NSigTOFTrk3Pr, + full::LcM, + full::LcCt, + full::LcY, + full::LcE, + full::LcEta, + full::LcCPA, + full::LcCPAXY, + full::LcChi2PCA, + full::LcDecayLength, + full::LcDecayLengthXY, + full::LcDecayLengthNormalised, + full::LcImpactParameter0, + full::LcImpactParameter1, + full::LcImpactParameter2, + full::CandidateSelFlag, + full::M, + full::Pt, + full::P, + full::CPA, + full::CPAXY, + full::Ct, + full::Eta, + full::Phi, + full::Y, + full::MCflag); + +DECLARE_SOA_TABLE(HfCandLbFullEvents, "AOD", "HFCANDLbFullE", + collision::BCId, + collision::NumContrib, + collision::PosX, + collision::PosY, + collision::PosZ, + full::IsEventReject, + full::RunNumber); + +DECLARE_SOA_TABLE(HfCandLbFullParticles, "AOD", "HFCANDLbFullP", + collision::BCId, + full::Pt, + full::Eta, + full::Phi, + full::Y, + full::MCflag); + +} // namespace o2::aod + + namespace o2::aod +{ + namespace hf_track_index_alice3_pid +{ + DECLARE_SOA_INDEX_COLUMN(Track, track); //! + DECLARE_SOA_INDEX_COLUMN(RICH, rich); //! + DECLARE_SOA_INDEX_COLUMN(FRICH, frich); //! + } // namespace hf_track_index_alice3_pid + + DECLARE_SOA_INDEX_TABLE_USER(HfTrackIndexALICE3PID, Tracks, "HFTRKIDXA3PID", //! + hf_track_index_alice3_pid::TrackId, + hf_track_index_alice3_pid::RICHId, + hf_track_index_alice3_pid::FRICHId); + } // namespace o2::aod + + struct Alice3PidIndexBuilder { + Builds index; + void init(o2::framework::InitContext&) {} + }; + +/// Writes the full information in an output TTree +struct HfTreeCreatorLbToLcPi { + Produces rowCandidateFull; + Produces rowCandidateFullEvents; + Produces rowCandidateFullParticles; + + void init(InitContext const&) + { + } + + using TracksPID = soa::Join; + using ExtendedTracksPID = soa::Join; + + void process(aod::Collisions const& collisions, + aod::McCollisions const& mccollisions, + soa::Join const& candidates, + soa::Join const& Lccandidates, + soa::Join const& particles, + aod::BigTracksMC const& bigtracksmc, + ExtendedTracksPID const&, + aod::FRICHs const&, + aod::RICHs const&) + { + + // Filling candidate properties + rowCandidateFull.reserve(candidates.size()); + for (auto& candidate : candidates) { + auto fillTable = [&](int FunctionSelection, + float FunctionInvMass, + float FunctionCt, + float FunctionY) { + if (FunctionSelection >= 1) { + auto LcCand = candidate.index0_as>(); + auto track0 = candidate.index1_as(); //daughter pion track + auto track1 = LcCand.index0_as(); //granddaughter tracks (lc decay particles) + auto track2 = LcCand.index1_as(); + auto track3 = LcCand.index2_as(); + + auto RICHPi0 = -5000.0; + auto RICHTrk1Pi = -5000.0; + auto RICHTrk1p = -5000.0; + auto RICHTrk2K = -5000.0; + auto RICHTrk3Pi = -5000.0; + auto RICHTrk3p = -5000.0; + + auto fRICHPi0 = -5000.0; + auto fRICHTrk1Pi = -5000.0; + auto fRICHTrk1p = -5000.0; + auto fRICHTrk2K = -5000.0; + auto fRICHTrk3Pi = -5000.0; + auto fRICHTrk3p = -5000.0; + + if (track0.has_rich()) RICHPi0 = track0.rich().richNsigmaPi(); + if (track1.has_rich()) RICHTrk1Pi = track1.rich().richNsigmaPi(); + if (track1.has_rich()) RICHTrk1p = track1.rich().richNsigmaPr(); + if (track2.has_rich()) RICHTrk2K = track2.rich().richNsigmaKa(); + if (track3.has_rich()) RICHTrk3Pi = track3.rich().richNsigmaPi(); + if (track3.has_rich()) RICHTrk3p = track3.rich().richNsigmaPr(); + + if (track0.has_frich()) fRICHPi0 = track0.frich().frichNsigmaPi(); + if (track1.has_frich()) fRICHTrk1Pi = track1.frich().frichNsigmaPi(); + if (track1.has_frich()) fRICHTrk1p = track1.frich().frichNsigmaPr(); + if (track2.has_frich()) fRICHTrk2K = track2.frich().frichNsigmaKa(); + if (track3.has_frich()) fRICHTrk3Pi = track3.frich().frichNsigmaPi(); + if (track3.has_frich()) fRICHTrk3p = track3.frich().frichNsigmaPr(); + + rowCandidateFull( + candidate.rSecondaryVertex(), + candidate.decayLength(), + candidate.decayLengthXY(), + candidate.decayLengthNormalised(), + candidate.decayLengthXYNormalised(), + candidate.chi2PCA(), + candidate.impactParameterNormalised0(), + candidate.ptProng0(), + RecoDecay::P(candidate.pxProng0(), candidate.pyProng0(), candidate.pzProng0()), + candidate.impactParameterNormalised1(), + candidate.ptProng1(), + RecoDecay::P(candidate.pxProng1(), candidate.pyProng1(), candidate.pzProng1()), + candidate.pxProng0(), + candidate.pyProng0(), + candidate.pzProng0(), + candidate.pxProng1(), + candidate.pyProng1(), + candidate.pzProng1(), + candidate.impactParameter0(), + candidate.impactParameter1(), + candidate.errorImpactParameter0(), + candidate.errorImpactParameter1(), + track0.tofNSigmaPi(), + RICHPi0, + RICHTrk1Pi, + RICHTrk1p, + RICHTrk2K, + RICHTrk3Pi, + RICHTrk3p, + fRICHPi0, + fRICHTrk1Pi, + fRICHTrk1p, + fRICHTrk2K, + fRICHTrk3Pi, + fRICHTrk3p, + track1.tofNSigmaPi(), + track1.tofNSigmaPr(), + track2.tofNSigmaKa(), + track3.tofNSigmaPi(), + track3.tofNSigmaPr(), + o2::aod::hf_cand_prong3::InvMassLcpKpi(LcCand), + o2::aod::hf_cand_prong3::CtLc(LcCand), + o2::aod::hf_cand_prong3::YLc(LcCand), + o2::aod::hf_cand_prong3::ELc(LcCand), + LcCand.eta(), + LcCand.cpa(), + LcCand.cpaXY(), + LcCand.chi2PCA(), + LcCand.decayLength(), + LcCand.decayLengthXY(), + LcCand.decayLengthXYNormalised(), + LcCand.impactParameter0(), + LcCand.impactParameter1(), + LcCand.impactParameter2(), + FunctionSelection, + FunctionInvMass, + candidate.pt(), + candidate.p(), + candidate.cpa(), + candidate.cpaXY(), + FunctionCt, + candidate.eta(), + candidate.phi(), + FunctionY, + candidate.flagMCMatchRec()); + } + }; + fillTable(candidate.isSelLbToLcPi(), InvMassLbToLcPi(candidate), CtLb(candidate), YLb(candidate)); + } + } +}; + +WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +{ + WorkflowSpec workflow; + workflow.push_back(adaptAnalysisTask(cfgc)); + workflow.push_back(adaptAnalysisTask(cfgc)); + return workflow; +} \ No newline at end of file From ef859c884bf8bd915cbece74a6478195ef4fdcd7 Mon Sep 17 00:00:00 2001 From: mjongerh Date: Thu, 14 Jul 2022 16:19:31 +0200 Subject: [PATCH 02/10] Update HFTreeCreatorLbToLcPi.cxx remove white space --- PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx index 66e736cff54..5c25eba3cb9 100644 --- a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -238,7 +238,7 @@ struct HfTreeCreatorLbToLcPi { float FunctionInvMass, float FunctionCt, float FunctionY) { - if (FunctionSelection >= 1) { + if (FunctionSelection >= 1) { auto LcCand = candidate.index0_as>(); auto track0 = candidate.index1_as(); //daughter pion track auto track1 = LcCand.index0_as(); //granddaughter tracks (lc decay particles) @@ -352,4 +352,4 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) workflow.push_back(adaptAnalysisTask(cfgc)); workflow.push_back(adaptAnalysisTask(cfgc)); return workflow; -} \ No newline at end of file +} From e6b36494c99dc8916d76af1ef2e876236c2db52a Mon Sep 17 00:00:00 2001 From: mjongerh Date: Thu, 14 Jul 2022 16:48:36 +0200 Subject: [PATCH 03/10] Attempt to fix clang style --- PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 105 ++++++++++-------- 1 file changed, 58 insertions(+), 47 deletions(-) diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx index 66e736cff54..0a43e653703 100644 --- a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -30,7 +30,6 @@ #include "Common/Core/PID/PIDResponse.h" #include "ReconstructionDataFormats/PID.h" - using namespace o2; using namespace o2::framework; using namespace o2::aod::hf_cand; @@ -65,7 +64,7 @@ DECLARE_SOA_COLUMN(MCflag, mcflag, int8_t); DECLARE_SOA_COLUMN(NSigRICHPi0, nsigRICHPi0, float); DECLARE_SOA_COLUMN(NSigfRICHPi0, nsigfRICHPi0, float); DECLARE_SOA_COLUMN(NSigTOFPi0, nsigTOFPi0, float); -//Lc selection parameters +// Lc selection parameters DECLARE_SOA_COLUMN(LcM, lcM, float); DECLARE_SOA_COLUMN(LcCt, lcCt, float); DECLARE_SOA_COLUMN(LcY, lcY, float); @@ -187,25 +186,25 @@ DECLARE_SOA_TABLE(HfCandLbFullParticles, "AOD", "HFCANDLbFullP", } // namespace o2::aod - namespace o2::aod +namespace o2::aod { - namespace hf_track_index_alice3_pid +namespace hf_track_index_alice3_pid { - DECLARE_SOA_INDEX_COLUMN(Track, track); //! - DECLARE_SOA_INDEX_COLUMN(RICH, rich); //! - DECLARE_SOA_INDEX_COLUMN(FRICH, frich); //! - } // namespace hf_track_index_alice3_pid +DECLARE_SOA_INDEX_COLUMN(Track, track); //! +DECLARE_SOA_INDEX_COLUMN(RICH, rich); //! +DECLARE_SOA_INDEX_COLUMN(FRICH, frich); //! +} // namespace hf_track_index_alice3_pid - DECLARE_SOA_INDEX_TABLE_USER(HfTrackIndexALICE3PID, Tracks, "HFTRKIDXA3PID", //! - hf_track_index_alice3_pid::TrackId, - hf_track_index_alice3_pid::RICHId, - hf_track_index_alice3_pid::FRICHId); - } // namespace o2::aod +DECLARE_SOA_INDEX_TABLE_USER(HfTrackIndexALICE3PID, Tracks, "HFTRKIDXA3PID", //! + hf_track_index_alice3_pid::TrackId, + hf_track_index_alice3_pid::RICHId, + hf_track_index_alice3_pid::FRICHId); +} // namespace o2::aod - struct Alice3PidIndexBuilder { - Builds index; - void init(o2::framework::InitContext&) {} - }; +struct Alice3PidIndexBuilder { + Builds index; + void init(o2::framework::InitContext&) {} +}; /// Writes the full information in an output TTree struct HfTreeCreatorLbToLcPi { @@ -238,40 +237,52 @@ struct HfTreeCreatorLbToLcPi { float FunctionInvMass, float FunctionCt, float FunctionY) { - if (FunctionSelection >= 1) { - auto LcCand = candidate.index0_as>(); - auto track0 = candidate.index1_as(); //daughter pion track - auto track1 = LcCand.index0_as(); //granddaughter tracks (lc decay particles) - auto track2 = LcCand.index1_as(); - auto track3 = LcCand.index2_as(); + if (FunctionSelection >= 1) { + auto LcCand = candidate.index0_as>(); + auto track0 = candidate.index1_as(); // daughter pion track + auto track1 = LcCand.index0_as(); // granddaughter tracks (lc decay particles) + auto track2 = LcCand.index1_as(); + auto track3 = LcCand.index2_as(); - auto RICHPi0 = -5000.0; - auto RICHTrk1Pi = -5000.0; - auto RICHTrk1p = -5000.0; - auto RICHTrk2K = -5000.0; - auto RICHTrk3Pi = -5000.0; - auto RICHTrk3p = -5000.0; + auto RICHPi0 = -5000.0; + auto RICHTrk1Pi = -5000.0; + auto RICHTrk1p = -5000.0; + auto RICHTrk2K = -5000.0; + auto RICHTrk3Pi = -5000.0; + auto RICHTrk3p = -5000.0; - auto fRICHPi0 = -5000.0; - auto fRICHTrk1Pi = -5000.0; - auto fRICHTrk1p = -5000.0; - auto fRICHTrk2K = -5000.0; - auto fRICHTrk3Pi = -5000.0; - auto fRICHTrk3p = -5000.0; + auto fRICHPi0 = -5000.0; + auto fRICHTrk1Pi = -5000.0; + auto fRICHTrk1p = -5000.0; + auto fRICHTrk2K = -5000.0; + auto fRICHTrk3Pi = -5000.0; + auto fRICHTrk3p = -5000.0; - if (track0.has_rich()) RICHPi0 = track0.rich().richNsigmaPi(); - if (track1.has_rich()) RICHTrk1Pi = track1.rich().richNsigmaPi(); - if (track1.has_rich()) RICHTrk1p = track1.rich().richNsigmaPr(); - if (track2.has_rich()) RICHTrk2K = track2.rich().richNsigmaKa(); - if (track3.has_rich()) RICHTrk3Pi = track3.rich().richNsigmaPi(); - if (track3.has_rich()) RICHTrk3p = track3.rich().richNsigmaPr(); + if (track0.has_rich()) + RICHPi0 = track0.rich().richNsigmaPi(); + if (track1.has_rich()) + RICHTrk1Pi = track1.rich().richNsigmaPi(); + if (track1.has_rich()) + RICHTrk1p = track1.rich().richNsigmaPr(); + if (track2.has_rich()) + RICHTrk2K = track2.rich().richNsigmaKa(); + if (track3.has_rich()) + RICHTrk3Pi = track3.rich().richNsigmaPi(); + if (track3.has_rich()) + RICHTrk3p = track3.rich().richNsigmaPr(); - if (track0.has_frich()) fRICHPi0 = track0.frich().frichNsigmaPi(); - if (track1.has_frich()) fRICHTrk1Pi = track1.frich().frichNsigmaPi(); - if (track1.has_frich()) fRICHTrk1p = track1.frich().frichNsigmaPr(); - if (track2.has_frich()) fRICHTrk2K = track2.frich().frichNsigmaKa(); - if (track3.has_frich()) fRICHTrk3Pi = track3.frich().frichNsigmaPi(); - if (track3.has_frich()) fRICHTrk3p = track3.frich().frichNsigmaPr(); + if (track0.has_frich()) + fRICHPi0 = track0.frich().frichNsigmaPi(); + if (track1.has_frich()) + fRICHTrk1Pi = track1.frich().frichNsigmaPi(); + if (track1.has_frich()) + fRICHTrk1p = track1.frich().frichNsigmaPr(); + if (track2.has_frich()) + fRICHTrk2K = track2.frich().frichNsigmaKa(); + if (track3.has_frich()) + fRICHTrk3Pi = track3.frich().frichNsigmaPi(); + if (track3.has_frich()) + fRICHTrk3p = track3.frich().frichNsigmaPr(); rowCandidateFull( candidate.rSecondaryVertex(), From bd9f234bd76a7fecfc5d1f0271c3a8ce5d7d244e Mon Sep 17 00:00:00 2001 From: mjongerh Date: Thu, 14 Jul 2022 19:48:47 +0200 Subject: [PATCH 04/10] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Vít Kučera --- PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx index 2be1ac98cdc..3a481bf06cf 100644 --- a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -216,16 +216,11 @@ struct HfTreeCreatorLbToLcPi { { } - using TracksPID = soa::Join; - using ExtendedTracksPID = soa::Join; + using TracksExtendedPID = soa::Join; - void process(aod::Collisions const& collisions, - aod::McCollisions const& mccollisions, - soa::Join const& candidates, - soa::Join const& Lccandidates, - soa::Join const& particles, - aod::BigTracksMC const& bigtracksmc, - ExtendedTracksPID const&, + void process(soa::Join const& candidates, + soa::Join const&, + TracksExtendedPID const&, aod::FRICHs const&, aod::RICHs const&) { @@ -238,18 +233,18 @@ struct HfTreeCreatorLbToLcPi { float FunctionCt, float FunctionY) { if (FunctionSelection >= 1) { - auto LcCand = candidate.index0_as>(); + auto candLc = candidate.index0_as>(); auto track0 = candidate.index1_as(); // daughter pion track auto track1 = LcCand.index0_as(); // granddaughter tracks (lc decay particles) auto track2 = LcCand.index1_as(); auto track3 = LcCand.index2_as(); - auto RICHPi0 = -5000.0; + auto RICHTrk0Pi = -5000.0; auto RICHTrk1Pi = -5000.0; - auto RICHTrk1p = -5000.0; + auto RICHTrk1P = -5000.0; auto RICHTrk2K = -5000.0; auto RICHTrk3Pi = -5000.0; - auto RICHTrk3p = -5000.0; + auto RICHTrk3P = -5000.0; auto fRICHPi0 = -5000.0; auto fRICHTrk1Pi = -5000.0; @@ -293,10 +288,10 @@ struct HfTreeCreatorLbToLcPi { candidate.chi2PCA(), candidate.impactParameterNormalised0(), candidate.ptProng0(), - RecoDecay::P(candidate.pxProng0(), candidate.pyProng0(), candidate.pzProng0()), + RecoDecay::p(candidate.pxProng0(), candidate.pyProng0(), candidate.pzProng0()), candidate.impactParameterNormalised1(), candidate.ptProng1(), - RecoDecay::P(candidate.pxProng1(), candidate.pyProng1(), candidate.pzProng1()), + RecoDecay::p(candidate.pxProng1(), candidate.pyProng1(), candidate.pzProng1()), candidate.pxProng0(), candidate.pyProng0(), candidate.pzProng0(), From bf9dd214ced6dd1d3a6d642723a090972fad9ec5 Mon Sep 17 00:00:00 2001 From: mjongerh Date: Thu, 14 Jul 2022 19:56:07 +0200 Subject: [PATCH 05/10] Update HFTreeCreatorLbToLcPi.cxx Implement suggestions --- PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 70 +++++++++---------- 1 file changed, 33 insertions(+), 37 deletions(-) diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx index 3a481bf06cf..3282a34f3e2 100644 --- a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -24,10 +24,10 @@ #include "PWGHF/DataModel/HFSecondaryVertex.h" #include "PWGHF/DataModel/HFCandidateSelectionTables.h" #include "Common/Core/trackUtilities.h" -#include "ReconstructionDataFormats/DCA.h" #include "Common/Core/TrackSelectorPID.h" -#include "ALICE3/DataModel/RICH.h" #include "Common/Core/PID/PIDResponse.h" +#include "ALICE3/DataModel/RICH.h" +#include "ReconstructionDataFormats/DCA.h" #include "ReconstructionDataFormats/PID.h" using namespace o2; @@ -235,9 +235,9 @@ struct HfTreeCreatorLbToLcPi { if (FunctionSelection >= 1) { auto candLc = candidate.index0_as>(); auto track0 = candidate.index1_as(); // daughter pion track - auto track1 = LcCand.index0_as(); // granddaughter tracks (lc decay particles) - auto track2 = LcCand.index1_as(); - auto track3 = LcCand.index2_as(); + auto track1 = candLc.index0_as(); // granddaughter tracks (lc decay particles) + auto track2 = candLc.index1_as(); + auto track3 = candLc.index2_as(); auto RICHTrk0Pi = -5000.0; auto RICHTrk1Pi = -5000.0; @@ -246,38 +246,34 @@ struct HfTreeCreatorLbToLcPi { auto RICHTrk3Pi = -5000.0; auto RICHTrk3P = -5000.0; - auto fRICHPi0 = -5000.0; + auto fRICHTrk0Pi = -5000.0; auto fRICHTrk1Pi = -5000.0; - auto fRICHTrk1p = -5000.0; + auto fRICHTrk1P = -5000.0; auto fRICHTrk2K = -5000.0; auto fRICHTrk3Pi = -5000.0; - auto fRICHTrk3p = -5000.0; + auto fRICHTrk3P = -5000.0; if (track0.has_rich()) RICHPi0 = track0.rich().richNsigmaPi(); - if (track1.has_rich()) + if (track1.has_rich()) { RICHTrk1Pi = track1.rich().richNsigmaPi(); - if (track1.has_rich()) - RICHTrk1p = track1.rich().richNsigmaPr(); + RICHTrk1p = track1.rich().richNsigmaPr();} if (track2.has_rich()) RICHTrk2K = track2.rich().richNsigmaKa(); - if (track3.has_rich()) + if (track3.has_rich()) { RICHTrk3Pi = track3.rich().richNsigmaPi(); - if (track3.has_rich()) - RICHTrk3p = track3.rich().richNsigmaPr(); + RICHTrk3p = track3.rich().richNsigmaPr();} if (track0.has_frich()) fRICHPi0 = track0.frich().frichNsigmaPi(); - if (track1.has_frich()) + if (track1.has_frich()) { fRICHTrk1Pi = track1.frich().frichNsigmaPi(); - if (track1.has_frich()) - fRICHTrk1p = track1.frich().frichNsigmaPr(); + fRICHTrk1p = track1.frich().frichNsigmaPr();} if (track2.has_frich()) fRICHTrk2K = track2.frich().frichNsigmaKa(); - if (track3.has_frich()) + if (track3.has_frich()) { fRICHTrk3Pi = track3.frich().frichNsigmaPi(); - if (track3.has_frich()) - fRICHTrk3p = track3.frich().frichNsigmaPr(); + fRICHTrk3p = track3.frich().frichNsigmaPr();} rowCandidateFull( candidate.rSecondaryVertex(), @@ -303,37 +299,37 @@ struct HfTreeCreatorLbToLcPi { candidate.errorImpactParameter0(), candidate.errorImpactParameter1(), track0.tofNSigmaPi(), - RICHPi0, + RICHTrk0Pi, RICHTrk1Pi, - RICHTrk1p, + RICHTrk1P, RICHTrk2K, RICHTrk3Pi, - RICHTrk3p, - fRICHPi0, + RICHTrk3P, + fRICHTrk0Pi, fRICHTrk1Pi, - fRICHTrk1p, + fRICHTrk1P, fRICHTrk2K, fRICHTrk3Pi, - fRICHTrk3p, + fRICHTrk3P, track1.tofNSigmaPi(), track1.tofNSigmaPr(), track2.tofNSigmaKa(), track3.tofNSigmaPi(), track3.tofNSigmaPr(), - o2::aod::hf_cand_prong3::InvMassLcpKpi(LcCand), + o2::aod::hf_cand_prong3::InvMassLcpKpi(candLc), o2::aod::hf_cand_prong3::CtLc(LcCand), o2::aod::hf_cand_prong3::YLc(LcCand), o2::aod::hf_cand_prong3::ELc(LcCand), - LcCand.eta(), - LcCand.cpa(), - LcCand.cpaXY(), - LcCand.chi2PCA(), - LcCand.decayLength(), - LcCand.decayLengthXY(), - LcCand.decayLengthXYNormalised(), - LcCand.impactParameter0(), - LcCand.impactParameter1(), - LcCand.impactParameter2(), + candLc.eta(), + candLc.cpa(), + candLc.cpaXY(), + candLc.chi2PCA(), + candLc.decayLength(), + candLc.decayLengthXY(), + candLc.decayLengthXYNormalised(), + candLc.impactParameter0(), + candLc.impactParameter1(), + candLc.impactParameter2(), FunctionSelection, FunctionInvMass, candidate.pt(), From 403fecdf656a3a6363c95498aa5f62ce9d829cdc Mon Sep 17 00:00:00 2001 From: mjongerh Date: Thu, 14 Jul 2022 20:06:45 +0200 Subject: [PATCH 06/10] fix clang style --- PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx index 3282a34f3e2..e2cbf3890b8 100644 --- a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -257,23 +257,27 @@ struct HfTreeCreatorLbToLcPi { RICHPi0 = track0.rich().richNsigmaPi(); if (track1.has_rich()) { RICHTrk1Pi = track1.rich().richNsigmaPi(); - RICHTrk1p = track1.rich().richNsigmaPr();} + RICHTrk1p = track1.rich().richNsigmaPr(); + } if (track2.has_rich()) RICHTrk2K = track2.rich().richNsigmaKa(); if (track3.has_rich()) { RICHTrk3Pi = track3.rich().richNsigmaPi(); - RICHTrk3p = track3.rich().richNsigmaPr();} + RICHTrk3p = track3.rich().richNsigmaPr(); + } if (track0.has_frich()) fRICHPi0 = track0.frich().frichNsigmaPi(); if (track1.has_frich()) { fRICHTrk1Pi = track1.frich().frichNsigmaPi(); - fRICHTrk1p = track1.frich().frichNsigmaPr();} + fRICHTrk1p = track1.frich().frichNsigmaPr(); + } if (track2.has_frich()) fRICHTrk2K = track2.frich().frichNsigmaKa(); if (track3.has_frich()) { fRICHTrk3Pi = track3.frich().frichNsigmaPi(); - fRICHTrk3p = track3.frich().frichNsigmaPr();} + fRICHTrk3p = track3.frich().frichNsigmaPr(); + } rowCandidateFull( candidate.rSecondaryVertex(), From 11fbeb3e8155feb833d3441b7e2c22ea5a80c6fd Mon Sep 17 00:00:00 2001 From: mjongerh Date: Fri, 15 Jul 2022 16:37:41 +0200 Subject: [PATCH 07/10] Update HFTreeCreatorLbToLcPi.cxx remove unneeded tables --- PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 2 -- 1 file changed, 2 deletions(-) diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx index e2cbf3890b8..44ba9797145 100644 --- a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -209,8 +209,6 @@ struct Alice3PidIndexBuilder { /// Writes the full information in an output TTree struct HfTreeCreatorLbToLcPi { Produces rowCandidateFull; - Produces rowCandidateFullEvents; - Produces rowCandidateFullParticles; void init(InitContext const&) { From 69e3cdb6598f84804a765511e6abc8edc2dbe92c Mon Sep 17 00:00:00 2001 From: mjongerh Date: Tue, 19 Jul 2022 10:26:35 +0200 Subject: [PATCH 08/10] remove unnecessary declarations remove unnecessary declarations --- PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx index 44ba9797145..55bc5798cf3 100644 --- a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -94,9 +94,6 @@ DECLARE_SOA_COLUMN(NSigTOFTrk1Pr, nSigTOFrk1Pr, float); DECLARE_SOA_COLUMN(NSigTOFTrk2Ka, nSigTOFrk2Ka, float); DECLARE_SOA_COLUMN(NSigTOFTrk3Pi, nSigTOFrk3Pi, float); DECLARE_SOA_COLUMN(NSigTOFTrk3Pr, nSigTOFrk3Pr, float); -// Events -DECLARE_SOA_COLUMN(IsEventReject, isEventReject, int); -DECLARE_SOA_COLUMN(RunNumber, runNumber, int); } // namespace full // put the arguments into the table @@ -167,23 +164,6 @@ DECLARE_SOA_TABLE(HfCandLbFull, "AOD", "HFCANDLbFull", full::Y, full::MCflag); -DECLARE_SOA_TABLE(HfCandLbFullEvents, "AOD", "HFCANDLbFullE", - collision::BCId, - collision::NumContrib, - collision::PosX, - collision::PosY, - collision::PosZ, - full::IsEventReject, - full::RunNumber); - -DECLARE_SOA_TABLE(HfCandLbFullParticles, "AOD", "HFCANDLbFullP", - collision::BCId, - full::Pt, - full::Eta, - full::Phi, - full::Y, - full::MCflag); - } // namespace o2::aod namespace o2::aod From 5b57a6ca5ae3ffa0864168a5db4e72a8a6eebb93 Mon Sep 17 00:00:00 2001 From: mjongerh Date: Tue, 19 Jul 2022 12:26:58 +0200 Subject: [PATCH 09/10] Update HFTreeCreatorLbToLcPi.cxx --- PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx index 55bc5798cf3..be536fc7636 100644 --- a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -61,9 +61,9 @@ DECLARE_SOA_COLUMN(CPA, cpa, float); DECLARE_SOA_COLUMN(CPAXY, cpaXY, float); DECLARE_SOA_COLUMN(Ct, ct, float); DECLARE_SOA_COLUMN(MCflag, mcflag, int8_t); -DECLARE_SOA_COLUMN(NSigRICHPi0, nsigRICHPi0, float); -DECLARE_SOA_COLUMN(NSigfRICHPi0, nsigfRICHPi0, float); -DECLARE_SOA_COLUMN(NSigTOFPi0, nsigTOFPi0, float); +DECLARE_SOA_COLUMN(NSigRICHTrk0Pi, nsigRICHTrk0Pi, float); +DECLARE_SOA_COLUMN(NSigfRICHTrk0Pi, nsigfRICHTrk0Pi, float); +DECLARE_SOA_COLUMN(NSigTOFTrk0Pi, nsigTOFTrk0Pi, float); // Lc selection parameters DECLARE_SOA_COLUMN(LcM, lcM, float); DECLARE_SOA_COLUMN(LcCt, lcCt, float); @@ -232,7 +232,7 @@ struct HfTreeCreatorLbToLcPi { auto fRICHTrk3P = -5000.0; if (track0.has_rich()) - RICHPi0 = track0.rich().richNsigmaPi(); + RICHTrk0Pi = track0.rich().richNsigmaPi(); if (track1.has_rich()) { RICHTrk1Pi = track1.rich().richNsigmaPi(); RICHTrk1p = track1.rich().richNsigmaPr(); From e985c793cd0c4e988a265bfd9620f6b12f915e48 Mon Sep 17 00:00:00 2001 From: mjongerh Date: Tue, 19 Jul 2022 20:16:44 +0200 Subject: [PATCH 10/10] Update HFTreeCreatorLbToLcPi.cxx fix labels --- PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx | 38 +++++++++---------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx index be536fc7636..e4299936c89 100644 --- a/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx +++ b/PWGHF/TableProducer/HFTreeCreatorLbToLcPi.cxx @@ -25,7 +25,7 @@ #include "PWGHF/DataModel/HFCandidateSelectionTables.h" #include "Common/Core/trackUtilities.h" #include "Common/Core/TrackSelectorPID.h" -#include "Common/Core/PID/PIDResponse.h" +#include "Common/DataModel/PIDResponse.h" #include "ALICE3/DataModel/RICH.h" #include "ReconstructionDataFormats/DCA.h" #include "ReconstructionDataFormats/PID.h" @@ -120,14 +120,14 @@ DECLARE_SOA_TABLE(HfCandLbFull, "AOD", "HFCANDLbFull", hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter0, hf_cand::ErrorImpactParameter1, - full::NSigTOFPi0, - full::NSigRICHPi0, + full::NSigTOFTrk0Pi, + full::NSigRICHTrk0Pi, full::NSigRICHTrk1Pi, full::NSigRICHTrk1Pr, full::NSigRICHTrk2Ka, full::NSigRICHTrk3Pi, full::NSigRICHTrk3Pr, - full::NSigfRICHPi0, + full::NSigfRICHTrk0Pi, full::NSigfRICHTrk1Pi, full::NSigfRICHTrk1Pr, full::NSigfRICHTrk2Ka, @@ -190,11 +190,7 @@ struct Alice3PidIndexBuilder { struct HfTreeCreatorLbToLcPi { Produces rowCandidateFull; - void init(InitContext const&) - { - } - - using TracksExtendedPID = soa::Join; + using TracksExtendedPID = soa::Join; void process(soa::Join const& candidates, soa::Join const&, @@ -212,10 +208,10 @@ struct HfTreeCreatorLbToLcPi { float FunctionY) { if (FunctionSelection >= 1) { auto candLc = candidate.index0_as>(); - auto track0 = candidate.index1_as(); // daughter pion track - auto track1 = candLc.index0_as(); // granddaughter tracks (lc decay particles) - auto track2 = candLc.index1_as(); - auto track3 = candLc.index2_as(); + auto track0 = candidate.index1_as(); // daughter pion track + auto track1 = candLc.index0_as(); // granddaughter tracks (lc decay particles) + auto track2 = candLc.index1_as(); + auto track3 = candLc.index2_as(); auto RICHTrk0Pi = -5000.0; auto RICHTrk1Pi = -5000.0; @@ -235,26 +231,26 @@ struct HfTreeCreatorLbToLcPi { RICHTrk0Pi = track0.rich().richNsigmaPi(); if (track1.has_rich()) { RICHTrk1Pi = track1.rich().richNsigmaPi(); - RICHTrk1p = track1.rich().richNsigmaPr(); + RICHTrk1P = track1.rich().richNsigmaPr(); } if (track2.has_rich()) RICHTrk2K = track2.rich().richNsigmaKa(); if (track3.has_rich()) { RICHTrk3Pi = track3.rich().richNsigmaPi(); - RICHTrk3p = track3.rich().richNsigmaPr(); + RICHTrk3P = track3.rich().richNsigmaPr(); } if (track0.has_frich()) - fRICHPi0 = track0.frich().frichNsigmaPi(); + fRICHTrk0Pi = track0.frich().frichNsigmaPi(); if (track1.has_frich()) { fRICHTrk1Pi = track1.frich().frichNsigmaPi(); - fRICHTrk1p = track1.frich().frichNsigmaPr(); + fRICHTrk1P = track1.frich().frichNsigmaPr(); } if (track2.has_frich()) fRICHTrk2K = track2.frich().frichNsigmaKa(); if (track3.has_frich()) { fRICHTrk3Pi = track3.frich().frichNsigmaPi(); - fRICHTrk3p = track3.frich().frichNsigmaPr(); + fRICHTrk3P = track3.frich().frichNsigmaPr(); } rowCandidateFull( @@ -299,9 +295,9 @@ struct HfTreeCreatorLbToLcPi { track3.tofNSigmaPi(), track3.tofNSigmaPr(), o2::aod::hf_cand_prong3::InvMassLcpKpi(candLc), - o2::aod::hf_cand_prong3::CtLc(LcCand), - o2::aod::hf_cand_prong3::YLc(LcCand), - o2::aod::hf_cand_prong3::ELc(LcCand), + o2::aod::hf_cand_prong3::CtLc(candLc), + o2::aod::hf_cand_prong3::YLc(candLc), + o2::aod::hf_cand_prong3::ELc(candLc), candLc.eta(), candLc.cpa(), candLc.cpaXY(),