@@ -100,6 +100,9 @@ DECLARE_SOA_COLUMN(NSigmaTpcKa, nSigmaTpcKa, float); //! TPC nσ
100100DECLARE_SOA_COLUMN (NSigmaTpcPi, nSigmaTpcPi, float ); // ! TPC nσ for pion hypothesis
101101DECLARE_SOA_COLUMN (NSigmaItsDe, nSigmaItsDe, float ); // ! ITS nσ for deuteron hypothesis
102102DECLARE_SOA_COLUMN (NSigmaTofDe, nSigmaTofDe, float ); // ! TOF nσ for deuteron hypothesis
103+ DECLARE_SOA_COLUMN (TofBetaDe, tofBetaDe, float ); // ! TOF beta for deuteron candidate
104+ DECLARE_SOA_COLUMN (TpcInnerParamDe, tpcInnerParamDe, float ); // ! TPC inner-wall momentum for deuteron candidate (GeV/c)
105+ DECLARE_SOA_COLUMN (TofExpMomDe, tofExpMomDe, float ); // ! TOF expected momentum for deuteron candidate (GeV/c)
103106DECLARE_SOA_COLUMN (NSigmaTofKa, nSigmaTofKa, float ); // ! TOF nσ for kaon hypothesis
104107DECLARE_SOA_COLUMN (NSigmaTofPi, nSigmaTofPi, float ); // ! TOF nσ for pion hypothesis
105108DECLARE_SOA_COLUMN (NItsClusters, nItsClusters, float ); // ! Number of ITS clusters used in the track fit
@@ -145,6 +148,9 @@ DECLARE_SOA_TABLE(HfCandCdLite, "AOD", "HFCANDCDLITE",
145148 full::NSigmaTpcPr,
146149 full::NSigmaItsDe,
147150 full::NSigmaTofDe,
151+ full::TofBetaDe,
152+ full::TpcInnerParamDe,
153+ full::TofExpMomDe,
148154 full::CtRec,
149155 full::CandidateSelFlag,
150156 full::CandidateSign,
@@ -175,6 +181,9 @@ DECLARE_SOA_TABLE(HfCandCdFull, "AOD", "HFCANDCDFULL",
175181 full::NSigmaTpcPr,
176182 full::NSigmaItsDe,
177183 full::NSigmaTofDe,
184+ full::TofBetaDe,
185+ full::TpcInnerParamDe,
186+ full::TofExpMomDe,
178187 full::NSigmaTpcPi,
179188 full::NSigmaTofPi,
180189 full::NSigmaTpcKa,
@@ -235,8 +244,8 @@ struct HfTaskCd {
235244 using CdCandidates = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelCd, aod::HfCand3ProngWPidPiKaDe>>;
236245 using CdCandidatesMc = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelCd, aod::HfCand3ProngWPidPiKaDe, aod::HfCand3ProngMcRec>>;
237246 using McParticles3ProngMatched = soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>;
238- using HFTracks = soa::Join<aod::FullTracks, aod::TracksDCA, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullDe, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullDe>;
239- using HFTracksMc = soa::Join<aod::FullTracks, aod::TracksDCA, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullDe, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullDe, aod::McTrackLabels>;
247+ using HFTracks = soa::Join<aod::FullTracks, aod::TracksDCA, aod::pidTOFbeta, aod:: pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullDe, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullDe>;
248+ using HFTracksMc = soa::Join<aod::FullTracks, aod::TracksDCA, aod::pidTOFbeta, aod:: pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullDe, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullDe, aod::McTrackLabels>;
240249
241250 Filter filterSelectCandidates = aod::hf_sel_candidate_cd::isSelCdToDeKPi >= selectionFlagCd || aod::hf_sel_candidate_cd::isSelCdToPiKDe >= selectionFlagCd;
242251 Preslice<aod::HfCand3Prong> candCdPerCollision = aod::hf_cand::collisionId;
@@ -518,13 +527,18 @@ struct HfTaskCd {
518527 float nSigmaTpcDe = 0 .f , nSigmaTpcKa = 0 .f , nSigmaTpcPi = 0 .f , nSigmaTpcPr = 0 .f ;
519528 float nSigmaItsDe = 0 .f ;
520529 float nSigmaTofDe = 0 .f , nSigmaTofKa = 0 .f , nSigmaTofPi = 0 .f ;
530+ float tofBetaDe = -999 .f ;
531+ float tpcInnerParamDe = -999 .f ;
532+ float tofExpMomDe = -999 .f ;
521533
522534 float dcaDeuteron = 0 .f , dcaKaon = 0 .f , dcaPion = 0 .f ;
523535
524536 const bool selDeKPi = (candidate.isSelCdToDeKPi () >= selectionFlagCd);
525537 const bool selPiKDe = (candidate.isSelCdToPiKDe () >= selectionFlagCd);
526538
539+ auto prong0 = candidate.template prong0_as <HFTracksMc>();
527540 auto prong1 = candidate.template prong1_as <HFTracksMc>();
541+ auto prong2 = candidate.template prong2_as <HFTracksMc>();
528542
529543 auto prong0Its = tracksWithItsPid.iteratorAt (candidate.prong0Id () - tracksWithItsPid.offset ());
530544 auto prong2Its = tracksWithItsPid.iteratorAt (candidate.prong2Id () - tracksWithItsPid.offset ());
@@ -540,6 +554,9 @@ struct HfTaskCd {
540554 nSigmaTpcDe = candidate.nSigTpcDe0 ();
541555 nSigmaTpcPr = candidate.nSigTpcPr0 ();
542556 nSigmaTofDe = candidate.nSigTofDe0 ();
557+ tofBetaDe = (prong0.hasTOF () && prong0.beta () > 0 .f ) ? prong0.beta () : -999 .f ;
558+ tpcInnerParamDe = prong0.tpcInnerParam ();
559+ tofExpMomDe = prong0.hasTOF () ? prong0.tofExpMom () : -999 .f ;
543560 nSigmaTpcPi = candidate.nSigTpcPi2 ();
544561 nSigmaTofPi = candidate.nSigTofPi2 ();
545562 nSigmaItsDe = prong0Its.itsNSigmaDe ();
@@ -553,6 +570,9 @@ struct HfTaskCd {
553570 nSigmaTpcDe = candidate.nSigTpcDe2 ();
554571 nSigmaTpcPr = candidate.nSigTpcPr2 ();
555572 nSigmaTofDe = candidate.nSigTofDe2 ();
573+ tofBetaDe = (prong2.hasTOF () && prong2.beta () > 0 .f ) ? prong2.beta () : -999 .f ;
574+ tpcInnerParamDe = prong2.tpcInnerParam ();
575+ tofExpMomDe = prong2.hasTOF () ? prong2.tofExpMom () : -999 .f ;
556576 nSigmaTpcPi = candidate.nSigTpcPi0 ();
557577 nSigmaTofPi = candidate.nSigTofPi0 ();
558578 nSigmaItsDe = prong2Its.itsNSigmaDe ();
@@ -591,6 +611,9 @@ struct HfTaskCd {
591611 nSigmaTpcPr,
592612 nSigmaItsDe,
593613 nSigmaTofDe,
614+ tofBetaDe,
615+ tpcInnerParamDe,
616+ tofExpMomDe,
594617 candidate.ct (o2::constants::physics::MassCDeuteron) * cmToMum,
595618 candFlag,
596619 candSign,
@@ -622,6 +645,9 @@ struct HfTaskCd {
622645 nSigmaTpcPr,
623646 nSigmaItsDe,
624647 nSigmaTofDe,
648+ tofBetaDe,
649+ tpcInnerParamDe,
650+ tofExpMomDe,
625651 nSigmaTpcPi,
626652 nSigmaTofPi,
627653 nSigmaTpcKa,
@@ -833,6 +859,9 @@ struct HfTaskCd {
833859 float nSigmaTpcDe = 0 .f , nSigmaTpcKa = 0 .f , nSigmaTpcPi = 0 .f , nSigmaTpcPr = 0 .f ;
834860 float nSigmaItsDe = 0 .f ;
835861 float nSigmaTofDe = 0 .f , nSigmaTofKa = 0 .f , nSigmaTofPi = 0 .f ;
862+ float tofBetaDe = -999 .f ;
863+ float tpcInnerParamDe = -999 .f ;
864+ float tofExpMomDe = -999 .f ;
836865
837866 float dcaDeuteron = 0 .f , dcaKaon = 0 .f , dcaPion = 0 .f ;
838867 // int itsNClusterSizeDe = 0;
@@ -870,6 +899,9 @@ struct HfTaskCd {
870899 nSigmaTpcDe = candidate.nSigTpcDe0 ();
871900 nSigmaTpcPr = candidate.nSigTpcPr0 ();
872901 nSigmaTofDe = candidate.nSigTofDe0 ();
902+ tofBetaDe = (prong0.hasTOF () && prong0.beta () > 0 .f ) ? prong0.beta () : -999 .f ;
903+ tpcInnerParamDe = prong0.tpcInnerParam ();
904+ tofExpMomDe = prong0.hasTOF () ? prong0.tofExpMom () : -999 .f ;
873905 nSigmaTpcPi = candidate.nSigTpcPi2 ();
874906 nSigmaTofPi = candidate.nSigTofPi2 ();
875907 nSigmaItsDe = prong0Its.itsNSigmaDe ();
@@ -888,6 +920,9 @@ struct HfTaskCd {
888920 nSigmaTpcDe = candidate.nSigTpcDe2 ();
889921 nSigmaTpcPr = candidate.nSigTpcPr2 ();
890922 nSigmaTofDe = candidate.nSigTofDe2 ();
923+ tofBetaDe = (prong2.hasTOF () && prong2.beta () > 0 .f ) ? prong2.beta () : -999 .f ;
924+ tpcInnerParamDe = prong2.tpcInnerParam ();
925+ tofExpMomDe = prong2.hasTOF () ? prong2.tofExpMom () : -999 .f ;
891926 nSigmaTpcPi = candidate.nSigTpcPi0 ();
892927 nSigmaTofPi = candidate.nSigTofPi0 ();
893928 nSigmaItsDe = prong2Its.itsNSigmaDe ();
@@ -945,6 +980,9 @@ struct HfTaskCd {
945980 nSigmaTpcPr,
946981 nSigmaItsDe,
947982 nSigmaTofDe,
983+ tofBetaDe,
984+ tpcInnerParamDe,
985+ tofExpMomDe,
948986 candidate.ct (o2::constants::physics::MassCDeuteron),
949987 candFlag,
950988 candSign,
@@ -977,6 +1015,9 @@ struct HfTaskCd {
9771015 nSigmaTpcPr,
9781016 nSigmaItsDe,
9791017 nSigmaTofDe,
1018+ tofBetaDe,
1019+ tpcInnerParamDe,
1020+ tofExpMomDe,
9801021 nSigmaTpcPi,
9811022 nSigmaTofPi,
9821023 nSigmaTpcKa,
0 commit comments