Skip to content

Commit bf1dbbb

Browse files
authored
[PWGLF] Update datamodel for hypertriton kink analysis (#12751)
1 parent d7f1bef commit bf1dbbb

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

PWGLF/DataModel/LFHyperNucleiKinkTables.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ DECLARE_SOA_COLUMN(DcaKinkTopo, dcaKinkTopo, float); //! DCA
4747
DECLARE_SOA_COLUMN(ItsChi2Moth, itsChi2Moth, float); //! ITS chi2 of the mother track
4848
DECLARE_SOA_COLUMN(ItsClusterSizesMoth, itsClusterSizesMoth, uint32_t); //! ITS cluster size of the mother track
4949
DECLARE_SOA_COLUMN(ItsClusterSizesDaug, itsClusterSizesDaug, uint32_t); //! ITS cluster size of the daughter track
50+
DECLARE_SOA_COLUMN(TpcMomDaug, tpcMomDaug, float); //! TPC momentum of the daughter track
51+
DECLARE_SOA_COLUMN(TpcSignalDaug, tpcSignalDaug, float); //! TPC signal of the daughter track
52+
DECLARE_SOA_COLUMN(TpcNClsPIDDaug, tpcNClsPIDDaug, int16_t); //! Number of TPC clusters used for PID of the daughter track
5053
DECLARE_SOA_COLUMN(NSigmaTPCDaug, nSigmaTPCDaug, float); //! Number of tpc sigmas of the daughter track
5154
DECLARE_SOA_COLUMN(NSigmaITSDaug, nSigmaITSDaug, float); //! Number of ITS sigmas of the daughter track
5255
DECLARE_SOA_COLUMN(NSigmaTOFDaug, nSigmaTOFDaug, float); //! Number of TOF sigmas of the daughter track
@@ -87,6 +90,7 @@ DECLARE_SOA_TABLE(HypKinkCand, "AOD", "HYPKINKCANDS",
8790
hyperkink::PxDaugSV, hyperkink::PyDaugSV, hyperkink::PzDaugSV,
8891
hyperkink::DcaMothPv, hyperkink::DcaDaugPv, hyperkink::DcaKinkTopo,
8992
hyperkink::ItsChi2Moth, hyperkink::ItsClusterSizesMoth, hyperkink::ItsClusterSizesDaug,
93+
hyperkink::TpcMomDaug, hyperkink::TpcSignalDaug, hyperkink::TpcNClsPIDDaug,
9094
hyperkink::NSigmaTPCDaug, hyperkink::NSigmaITSDaug, hyperkink::NSigmaTOFDaug,
9195
hyperkink::PxMothPV, hyperkink::PyMothPV, hyperkink::PzMothPV,
9296
hyperkink::UpdatePxMothPV, hyperkink::UpdatePyMothPV, hyperkink::UpdatePzMothPV);
@@ -102,6 +106,7 @@ DECLARE_SOA_TABLE(MCHypKinkCand, "AOD", "MCHYPKINKCANDS",
102106
hyperkink::PxDaugSV, hyperkink::PyDaugSV, hyperkink::PzDaugSV,
103107
hyperkink::DcaMothPv, hyperkink::DcaDaugPv, hyperkink::DcaKinkTopo,
104108
hyperkink::ItsChi2Moth, hyperkink::ItsClusterSizesMoth, hyperkink::ItsClusterSizesDaug,
109+
hyperkink::TpcMomDaug, hyperkink::TpcSignalDaug, hyperkink::TpcNClsPIDDaug,
105110
hyperkink::NSigmaTPCDaug, hyperkink::NSigmaITSDaug, hyperkink::NSigmaTOFDaug,
106111
hyperkink::IsSignal, hyperkink::IsSignalReco, hyperkink::IsCollReco, hyperkink::IsSurvEvSelection,
107112
hyperkink::TrueXSV, hyperkink::TrueYSV, hyperkink::TrueZSV,

PWGLF/TableProducer/Nuspex/hyperkinkRecoTask.cxx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,9 @@ struct HypKinkCandidate {
336336
float chi2ITSMoth = 0.0f;
337337
uint32_t itsClusterSizeMoth = 0u;
338338
uint32_t itsClusterSizeDaug = 0u;
339+
float tpcMomDaug = -999.f;
340+
float tpcSignalDaug = -999.f;
341+
int16_t tpcNClsPIDDaug = 0u;
339342
float nSigmaTPCDaug = -999.f;
340343
float nSigmaITSDaug = -999.f;
341344
float nSigmaTOFDaug = -999.f; // recalculated TOF NSigma
@@ -555,6 +558,9 @@ struct HyperkinkRecoTask {
555558
fillCandidateRecoMoth(hypkinkCand, collision, trackMoth);
556559

557560
hypkinkCand.itsClusterSizeDaug = trackDaug.itsClusterSizes();
561+
hypkinkCand.tpcMomDaug = trackDaug.tpcInnerParam() * trackDaug.sign();
562+
hypkinkCand.tpcSignalDaug = trackDaug.tpcSignal();
563+
hypkinkCand.tpcNClsPIDDaug = trackDaug.tpcNClsPID();
558564
hypkinkCand.nSigmaTPCDaug = getTPCNSigma(trackDaug, pidTypeDaug);
559565
hypkinkCand.nSigmaITSDaug = getITSNSigma(trackDaug, itsResponse, pidTypeDaug);
560566

@@ -641,10 +647,7 @@ struct HyperkinkRecoTask {
641647
if (std::abs(tpcNSigmaDaug) > cutTPCNSigmaDaug) {
642648
continue;
643649
}
644-
float invMass = RecoDecay::m(std::array{std::array{kinkCand.pxDaug(), kinkCand.pyDaug(), kinkCand.pzDaug()}, std::array{kinkCand.pxDaugNeut(), kinkCand.pyDaugNeut(), kinkCand.pzDaugNeut()}}, std::array{massChargedDaug, massNeutralDaug});
645650
registry.fill(HIST("hCandidateCounter"), 2);
646-
registry.fill(HIST("h2MothMassPt"), kinkCand.mothSign() * kinkCand.ptMoth(), invMass);
647-
registry.fill(HIST("h2DaugTPCNSigmaPt"), kinkCand.mothSign() * kinkCand.ptDaug(), tpcNSigmaDaug);
648651

649652
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
650653
initCCDB(bc);
@@ -683,6 +686,10 @@ struct HyperkinkRecoTask {
683686
}
684687
registry.fill(HIST("hCandidateCounter"), 7);
685688

689+
float invMass = RecoDecay::m(std::array{std::array{kinkCand.pxDaug(), kinkCand.pyDaug(), kinkCand.pzDaug()}, std::array{kinkCand.pxDaugNeut(), kinkCand.pyDaugNeut(), kinkCand.pzDaugNeut()}}, std::array{massChargedDaug, massNeutralDaug});
690+
registry.fill(HIST("h2MothMassPt"), kinkCand.mothSign() * kinkCand.ptMoth(), invMass);
691+
registry.fill(HIST("h2DaugTPCNSigmaPt"), kinkCand.mothSign() * kinkCand.ptDaug(), tpcNSigmaDaug);
692+
686693
HypKinkCandidate hypkinkCand;
687694
fillCandidate(hypkinkCand, collision, kinkCand, motherTrack, daugTrack);
688695
hypkinkCand.nSigmaTOFDaug = nSigmaTOF;
@@ -697,6 +704,7 @@ struct HyperkinkRecoTask {
697704
hypkinkCand.momDaugSV[0], hypkinkCand.momDaugSV[1], hypkinkCand.momDaugSV[2],
698705
hypkinkCand.dcaXYMothPv, hypkinkCand.dcaXYDaugPv, hypkinkCand.dcaKinkTopo,
699706
hypkinkCand.chi2ITSMoth, hypkinkCand.itsClusterSizeMoth, hypkinkCand.itsClusterSizeDaug,
707+
hypkinkCand.tpcMomDaug, hypkinkCand.tpcSignalDaug, hypkinkCand.tpcNClsPIDDaug,
700708
hypkinkCand.nSigmaTPCDaug, hypkinkCand.nSigmaITSDaug, hypkinkCand.nSigmaTOFDaug,
701709
hypkinkCand.momMothPV[0], hypkinkCand.momMothPV[1], hypkinkCand.momMothPV[2],
702710
hypkinkCand.updateMomMothPV[0], hypkinkCand.updateMomMothPV[1], hypkinkCand.updateMomMothPV[2]);
@@ -766,7 +774,6 @@ struct HyperkinkRecoTask {
766774
if (std::abs(tpcNSigmaDaug) > cutTPCNSigmaDaug) {
767775
continue;
768776
}
769-
float invMass = RecoDecay::m(std::array{std::array{kinkCand.pxDaug(), kinkCand.pyDaug(), kinkCand.pzDaug()}, std::array{kinkCand.pxDaugNeut(), kinkCand.pyDaugNeut(), kinkCand.pzDaugNeut()}}, std::array{massChargedDaug, massNeutralDaug});
770777
registry.fill(HIST("hCandidateCounter"), 2);
771778
if (isKinkSignal) {
772779
registry.fill(HIST("hTrueCandidateCounter"), 2);
@@ -831,6 +838,7 @@ struct HyperkinkRecoTask {
831838
registry.fill(HIST("hTrueCandidateCounter"), 7);
832839
}
833840

841+
float invMass = RecoDecay::m(std::array{std::array{kinkCand.pxDaug(), kinkCand.pyDaug(), kinkCand.pzDaug()}, std::array{kinkCand.pxDaugNeut(), kinkCand.pyDaugNeut(), kinkCand.pzDaugNeut()}}, std::array{massChargedDaug, massNeutralDaug});
834842
registry.fill(HIST("h2MothMassPt"), kinkCand.mothSign() * kinkCand.ptMoth(), invMass);
835843
registry.fill(HIST("h2DaugTPCNSigmaPt"), kinkCand.mothSign() * kinkCand.ptDaug(), tpcNSigmaDaug);
836844

@@ -897,6 +905,7 @@ struct HyperkinkRecoTask {
897905
hypkinkCand.momDaugSV[0], hypkinkCand.momDaugSV[1], hypkinkCand.momDaugSV[2],
898906
hypkinkCand.dcaXYMothPv, hypkinkCand.dcaXYDaugPv, hypkinkCand.dcaKinkTopo,
899907
hypkinkCand.chi2ITSMoth, hypkinkCand.itsClusterSizeMoth, hypkinkCand.itsClusterSizeDaug,
908+
hypkinkCand.tpcMomDaug, hypkinkCand.tpcSignalDaug, hypkinkCand.tpcNClsPIDDaug,
900909
hypkinkCand.nSigmaTPCDaug, hypkinkCand.nSigmaITSDaug, hypkinkCand.nSigmaTOFDaug,
901910
hypkinkCand.isSignal, hypkinkCand.isSignalReco, hypkinkCand.isCollReco, hypkinkCand.isSurvEvSelection,
902911
hypkinkCand.truePosSV[0], hypkinkCand.truePosSV[1], hypkinkCand.truePosSV[2],
@@ -955,6 +964,7 @@ struct HyperkinkRecoTask {
955964
-1, -1, -1,
956965
-1, -1, -1,
957966
-1, -1, -1,
967+
-1, -1, -1,
958968
true, false, isReconstructedMCCollisions[mcparticle.mcCollisionId()], isSelectedMCCollisions[mcparticle.mcCollisionId()],
959969
hypkinkCand.truePosSV[0], hypkinkCand.truePosSV[1], hypkinkCand.truePosSV[2],
960970
hypkinkCand.trueMomMothPV[0], hypkinkCand.trueMomMothPV[1], hypkinkCand.trueMomMothPV[2],

0 commit comments

Comments
 (0)