Skip to content

Commit 3f5c6cd

Browse files
[PWGHF] Add TofBetaDe column for deuteron candidates (#17565)
1 parent f3a1b8a commit 3f5c6cd

1 file changed

Lines changed: 43 additions & 2 deletions

File tree

PWGHF/D2H/Tasks/taskCd.cxx

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,9 @@ DECLARE_SOA_COLUMN(NSigmaTpcKa, nSigmaTpcKa, float); //! TPC nσ
100100
DECLARE_SOA_COLUMN(NSigmaTpcPi, nSigmaTpcPi, float); //! TPC nσ for pion hypothesis
101101
DECLARE_SOA_COLUMN(NSigmaItsDe, nSigmaItsDe, float); //! ITS nσ for deuteron hypothesis
102102
DECLARE_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)
103106
DECLARE_SOA_COLUMN(NSigmaTofKa, nSigmaTofKa, float); //! TOF nσ for kaon hypothesis
104107
DECLARE_SOA_COLUMN(NSigmaTofPi, nSigmaTofPi, float); //! TOF nσ for pion hypothesis
105108
DECLARE_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

Comments
 (0)