Skip to content

Commit 7765649

Browse files
committed
Update KF output tables in treeCreatorXicToXiPiPi:
- Add missing trigger features to KF output trees - Remove unused variables and uptdate naming convention of chi2 deviations LF strangenessbuilder: store unconstrained V0 and cascade mass in cascKF outpuut table in all cases
1 parent c3a3c8c commit 7765649

4 files changed

Lines changed: 71 additions & 45 deletions

File tree

PWGHF/DataModel/CandidateReconstructionTables.h

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1450,7 +1450,9 @@ DECLARE_SOA_COLUMN(CpaLambda, cpaLambda, float);
14501450
DECLARE_SOA_COLUMN(CpaXYLambda, cpaXYLambda, float);
14511451
DECLARE_SOA_COLUMN(CpaLambdaToXi, cpaLambdaToXi, float);
14521452
DECLARE_SOA_COLUMN(CpaXYLambdaToXi, cpaXYLambdaToXi, float);
1453+
DECLARE_SOA_COLUMN(RadiusLambda, radiusLambda, float);
14531454
DECLARE_SOA_COLUMN(PBachelorPi, pBachelorPi, float);
1455+
DECLARE_SOA_COLUMN(PtBachelorPi, ptBachelorPi, float);
14541456
DECLARE_SOA_COLUMN(PPiFromLambda, pPiFromLambda, float);
14551457
DECLARE_SOA_COLUMN(PPrFromLambda, pPrFromLambda, float);
14561458
DECLARE_SOA_COLUMN(DcaXiDaughters, dcaXiDaughters, float);
@@ -1462,10 +1464,10 @@ DECLARE_SOA_COLUMN(DcaXYCascToPV, dcaXYCascToPV, float);
14621464
DECLARE_SOA_COLUMN(DcaZCascToPV, dcaZCascToPV, float);
14631465
// KF specific columns
14641466
DECLARE_SOA_COLUMN(Chi2TopoXicPlusToPV, chi2TopoXicPlusToPV, float);
1465-
DECLARE_SOA_COLUMN(Chi2TopoXicPlusToPVBefConst, chi2TopoXicPlusToPVBefConst, float);
1466-
DECLARE_SOA_COLUMN(Chi2PrimXi, chi2PrimXi, float);
1467-
DECLARE_SOA_COLUMN(Chi2PrimPi0, chi2PrimPi0, float);
1468-
DECLARE_SOA_COLUMN(Chi2PrimPi1, chi2PrimPi1, float);
1467+
DECLARE_SOA_COLUMN(Chi2XicPlusToPV, chi2XicPlusToPV, float);
1468+
DECLARE_SOA_COLUMN(Chi2XiToPV, chi2XiToPV, float);
1469+
DECLARE_SOA_COLUMN(Chi2Pi0ToPV, chi2Pi0ToPV, float);
1470+
DECLARE_SOA_COLUMN(Chi2Pi1ToPV, chi2Pi1ToPV, float);
14691471
DECLARE_SOA_COLUMN(Chi2DevPi0Pi1, chi2DevPi0Pi1, float);
14701472
DECLARE_SOA_COLUMN(Chi2DevPi0Xi, chi2DevPi0Xi, float);
14711473
DECLARE_SOA_COLUMN(Chi2DevPi1Xi, chi2DevPi1Xi, float);
@@ -1535,9 +1537,10 @@ DECLARE_SOA_TABLE(HfCandXicBase, "AOD", "HFCANDXICBASE",
15351537
hf_cand::ImpactParameter0, hf_cand::ImpactParameter1, hf_cand::ImpactParameter2,
15361538
hf_cand::ErrorImpactParameter0, hf_cand::ErrorImpactParameter1, hf_cand::ErrorImpactParameter2,
15371539
// cascade specific columns
1538-
hf_cand_xic_to_xi_pi_pi::PBachelorPi, hf_cand_xic_to_xi_pi_pi::PPiFromLambda, hf_cand_xic_to_xi_pi_pi::PPrFromLambda,
1540+
hf_cand_xic_to_xi_pi_pi::PBachelorPi, hf_cand_xic_to_xi_pi_pi::PPiFromLambda, hf_cand_xic_to_xi_pi_pi::PPrFromLambda, hf_cand_xic_to_xi_pi_pi::PtBachelorPi,
15391541
hf_cand_xic_to_xi_pi_pi::CpaXi, hf_cand_xic_to_xi_pi_pi::CpaXYXi, hf_cand_xic_to_xi_pi_pi::CpaLambda, hf_cand_xic_to_xi_pi_pi::CpaXYLambda, hf_cand_xic_to_xi_pi_pi::CpaLambdaToXi, hf_cand_xic_to_xi_pi_pi::CpaXYLambdaToXi,
15401542
hf_cand_xic_to_xi_pi_pi::InvMassXi, hf_cand_xic_to_xi_pi_pi::InvMassLambda, hf_cand_xic_to_xi_pi_pi::InvMassXiPi0, hf_cand_xic_to_xi_pi_pi::InvMassXiPi1,
1543+
hf_cand_xic_to_xi_pi_pi::RadiusLambda,
15411544
// DCA
15421545
hf_cand_xic_to_xi_pi_pi::DcaXiDaughters, hf_cand_xic_to_xi_pi_pi::DcaV0Daughters, hf_cand_xic_to_xi_pi_pi::DcaPosToPV, hf_cand_xic_to_xi_pi_pi::DcaNegToPV, hf_cand_xic_to_xi_pi_pi::DcaBachelorToPV, hf_cand_xic_to_xi_pi_pi::DcaXYCascToPV, hf_cand_xic_to_xi_pi_pi::DcaZCascToPV,
15431546
// PID
@@ -1580,8 +1583,8 @@ using HfCandXic = HfCandXicExt;
15801583
DECLARE_SOA_TABLE(HfCandXicKF, "AOD", "HFCANDXICKF",
15811584
hf_cand_xic_to_xi_pi_pi::KfDecayLength, hf_cand_xic_to_xi_pi_pi::KfDecayLengthNormalised, hf_cand_xic_to_xi_pi_pi::KfDecayLengthXY, hf_cand_xic_to_xi_pi_pi::KfDecayLengthXYNormalised,
15821585
cascdata::KFCascadeChi2, cascdata::KFV0Chi2,
1583-
hf_cand_xic_to_xi_pi_pi::Chi2TopoXicPlusToPVBefConst, hf_cand_xic_to_xi_pi_pi::Chi2TopoXicPlusToPV,
1584-
hf_cand_xic_to_xi_pi_pi::Chi2PrimXi, hf_cand_xic_to_xi_pi_pi::Chi2PrimPi0, hf_cand_xic_to_xi_pi_pi::Chi2PrimPi1,
1586+
hf_cand_xic_to_xi_pi_pi::Chi2XicPlusToPV, hf_cand_xic_to_xi_pi_pi::Chi2TopoXicPlusToPV,
1587+
hf_cand_xic_to_xi_pi_pi::Chi2XiToPV, hf_cand_xic_to_xi_pi_pi::Chi2Pi0ToPV, hf_cand_xic_to_xi_pi_pi::Chi2Pi1ToPV,
15851588
hf_cand_xic_to_xi_pi_pi::Chi2DevPi0Pi1, hf_cand_xic_to_xi_pi_pi::Chi2DevPi0Xi, hf_cand_xic_to_xi_pi_pi::Chi2DevPi1Xi,
15861589
hf_cand_xic_to_xi_pi_pi::DcaPi0Pi1, hf_cand_xic_to_xi_pi_pi::DcaPi0Xi, hf_cand_xic_to_xi_pi_pi::DcaPi1Xi,
15871590
hf_cand_xic_to_xi_pi_pi::DcaXYPi0Pi1, hf_cand_xic_to_xi_pi_pi::DcaXYPi0Xi, hf_cand_xic_to_xi_pi_pi::DcaXYPi1Xi);

PWGHF/TableProducer/candidateCreatorXicToXiPiPi.cxx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ struct HfCandidateCreatorXicToXiPiPi {
107107
Configurable<bool> useAbsDCA{"useAbsDCA", false, "Minimise abs. distance rather than chi2"};
108108
Configurable<bool> useWeightedFinalPCA{"useWeightedFinalPCA", false, "Recalculate vertex position using track covariances, effective only if useAbsDCA is true"};
109109
// KFParticle
110-
Configurable<bool> useXiMassConstraint{"useXiMassConstraint", true, "Use mass constraint for Xi"};
110+
Configurable<bool> useXiMassConstraint{"useXiMassConstraint", true, "Use mass constraint for Xi. WARNING: Only disable if you know what you are doing!"};
111111
Configurable<bool> constrainXicPlusToPv{"constrainXicPlusToPv", false, "Constrain XicPlus to PV"};
112112
Configurable<int> kfConstructMethod{"kfConstructMethod", 2, "Construct method of XicPlus: 0 fast mathematics without constraint of fixed daughter particle masses, 2 daughter particle masses stay fixed in construction process"};
113113
Configurable<bool> rejDiffCollTrack{"rejDiffCollTrack", true, "Reject tracks coming from different collisions (effective only for KFParticle w/o derived data)"};
@@ -414,6 +414,9 @@ struct HfCandidateCreatorXicToXiPiPi {
414414
float const cpaLambdaToXi = RecoDecay::cpa(vertexCasc, vertexV0, pVecV0);
415415
float const cpaXYLambdaToXi = RecoDecay::cpaXY(vertexCasc, vertexV0, pVecV0);
416416

417+
// calculate Lambda radius
418+
float const radiusLambda = std::hypot(vertexV0[0], vertexV0[1]);
419+
417420
// get invariant mass of Xi-pi pairs
418421
auto arrayMomentaXiPi0 = std::array{pVecXi, pVecPi0};
419422
massXiPi0 = RecoDecay::m(arrayMomentaXiPi0, std::array{MassXiMinus, MassPiPlus});
@@ -495,9 +498,10 @@ struct HfCandidateCreatorXicToXiPiPi {
495498
impactParameterCasc.getY(), impactParameter0.getY(), impactParameter1.getY(),
496499
std::sqrt(impactParameterCasc.getSigmaY2()), std::sqrt(impactParameter0.getSigmaY2()), std::sqrt(impactParameter1.getSigmaY2()),
497500
/*cascade specific columns*/
498-
trackPionFromXi.p(), pPiFromLambda, pPrFromLambda,
501+
trackPionFromXi.p(), pPiFromLambda, pPrFromLambda, trackPionFromXi.pt(),
499502
cpaXi, cpaXYXi, cpaLambda, cpaXYLambda, cpaLambdaToXi, cpaXYLambdaToXi,
500503
casc.mXi(), casc.mLambda(), massXiPi0, massXiPi1,
504+
radiusLambda,
501505
/*DCA information*/
502506
casc.dcacascdaughters(), casc.dcaV0daughters(), casc.dcapostopv(), casc.dcanegtopv(), casc.dcabachtopv(),
503507
casc.dcaXYCascToPV(), casc.dcaZCascToPV(),
@@ -598,6 +602,10 @@ struct HfCandidateCreatorXicToXiPiPi {
598602
float parPosMom[NElementsStateVector];
599603
std::copy(xyzpxpypz.begin(), xyzpxpypz.end(), parPosMom);
600604
// create KFParticle
605+
// README: The Xi KFParticle in this case is constructed from the parameters stored in the LF cascade table.
606+
// The LF strangenessbuilder should in this case be run WITHOUT the mass constraint on the Xi to consistently store the unconstrained parameters and invariant mass of the Xi.
607+
// The mass constraint on the Xi is applied here only after the KFParticle object was created from the unconstrained parameters and covariance matrix of the Xi.
608+
// WARNING: If the Xi gets already constrained in the LF strangenessbuilder, the parameters and cov matrix passed to the KFParticle.Create() function will be constrained while the mass won't be. The stored energy, mass, and momentum will not be correctly related anymore!
601609
KFParticle kfXi;
602610
float const massXi = casc.mXi();
603611
kfXi.Create(parPosMom, casc.kfTrackCovMat(), casc.sign(), massXi);
@@ -663,6 +671,9 @@ struct HfCandidateCreatorXicToXiPiPi {
663671
float const cpaLambdaToXi = RecoDecay::cpa(vertexCasc, vertexV0, pVecV0);
664672
float const cpaXYLambdaToXi = RecoDecay::cpaXY(vertexCasc, vertexV0, pVecV0);
665673

674+
// calculate Lambda radius
675+
float const radiusLambda = std::hypot(vertexV0[0], vertexV0[1]);
676+
666677
// get chi2 deviation of Pi0-Pi1, Pi0-Xi, Pi1-Xi
667678
float chi2DevPi0Pi1 = kfCharmBachelor0.GetDeviationFromParticle(kfCharmBachelor1);
668679
float chi2DevPi0Xi = kfCharmBachelor0.GetDeviationFromParticle(kfXi);
@@ -779,9 +790,10 @@ struct HfCandidateCreatorXicToXiPiPi {
779790
impactParameterXiXY, impactParameterPi0XY, impactParameterPi1XY,
780791
errImpactParameterXiXY, errImpactParameterPi0XY, errImpactParameterPi1XY,
781792
/*cascade specific columns*/
782-
trackPionFromXi.p(), pPiFromLambda, pPrFromLambda,
793+
trackPionFromXi.p(), pPiFromLambda, pPrFromLambda, trackPionFromXi.pt(),
783794
cpaXi, cpaXYXi, cpaLambda, cpaXYLambda, cpaLambdaToXi, cpaXYLambdaToXi,
784795
massXi, casc.mLambda(), massXiPi0, massXiPi1,
796+
radiusLambda,
785797
/*DCA information*/
786798
casc.dcacascdaughters(), casc.dcaV0daughters(), casc.dcapostopv(), casc.dcanegtopv(), casc.dcabachtopv(),
787799
casc.dcaXYCascToPV(), casc.dcaZCascToPV(),

PWGHF/TableProducer/treeCreatorXicToXiPiPi.cxx

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiLiteKfs, "AOD", "HFXICXI2PILITKF",
132132
full::PtXi,
133133
full::PtPi0,
134134
full::PtPi1,
135+
hf_cand_xic_to_xi_pi_pi::PtBachelorPi,
135136
full::M,
136137
full::Chi2SV,
137138
full::Ct,
@@ -145,15 +146,15 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiLiteKfs, "AOD", "HFXICXI2PILITKF",
145146
hf_cand_xic_to_xi_pi_pi::CpaXYXi,
146147
hf_cand_xic_to_xi_pi_pi::CpaLambda,
147148
hf_cand_xic_to_xi_pi_pi::CpaXYLambda,
148-
hf_cand_xic_to_xi_pi_pi::CpaLambdaToXi,
149-
hf_cand_xic_to_xi_pi_pi::CpaXYLambdaToXi,
149+
hf_cand_xic_to_xi_pi_pi::RadiusLambda,
150+
hf_cand_xic_to_xi_pi_pi::InvMassXi,
151+
hf_cand_xic_to_xi_pi_pi::InvMassLambda,
150152
full::ImpactParameterXi,
151153
full::ImpactParameterNormalisedXi,
152154
full::ImpactParameterPi0,
153155
full::ImpactParameterNormalisedPi0,
154156
full::ImpactParameterPi1,
155157
full::ImpactParameterNormalisedPi1,
156-
full::MaxNormalisedDeltaIP,
157158
hf_cand_xic_to_xi_pi_pi::DcaXiDaughters,
158159
hf_cand_xic_to_xi_pi_pi::DcaV0Daughters,
159160
hf_cand_xic_to_xi_pi_pi::DcaXYCascToPV,
@@ -175,11 +176,11 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiLiteKfs, "AOD", "HFXICXI2PILITKF",
175176
// KF specific columns
176177
full::Chi2GeoXi,
177178
full::Chi2GeoLambda,
178-
hf_cand_xic_to_xi_pi_pi::Chi2TopoXicPlusToPVBefConst,
179+
hf_cand_xic_to_xi_pi_pi::Chi2XicPlusToPV,
179180
hf_cand_xic_to_xi_pi_pi::Chi2TopoXicPlusToPV,
180-
hf_cand_xic_to_xi_pi_pi::Chi2PrimXi,
181-
hf_cand_xic_to_xi_pi_pi::Chi2PrimPi0,
182-
hf_cand_xic_to_xi_pi_pi::Chi2PrimPi1,
181+
hf_cand_xic_to_xi_pi_pi::Chi2XiToPV,
182+
hf_cand_xic_to_xi_pi_pi::Chi2Pi0ToPV,
183+
hf_cand_xic_to_xi_pi_pi::Chi2Pi1ToPV,
183184
hf_cand_xic_to_xi_pi_pi::Chi2DevPi0Pi1,
184185
hf_cand_xic_to_xi_pi_pi::Chi2DevPi0Xi,
185186
hf_cand_xic_to_xi_pi_pi::Chi2DevPi1Xi,
@@ -294,6 +295,7 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiFullKfs, "AOD", "HFXICXI2PIFULKF",
294295
full::PtXi,
295296
full::PtPi0,
296297
full::PtPi1,
298+
hf_cand_xic_to_xi_pi_pi::PtBachelorPi,
297299
full::M,
298300
full::Chi2SV,
299301
full::Ct,
@@ -309,6 +311,9 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiFullKfs, "AOD", "HFXICXI2PIFULKF",
309311
hf_cand_xic_to_xi_pi_pi::CpaXYLambda,
310312
hf_cand_xic_to_xi_pi_pi::CpaLambdaToXi,
311313
hf_cand_xic_to_xi_pi_pi::CpaXYLambdaToXi,
314+
hf_cand_xic_to_xi_pi_pi::RadiusLambda,
315+
hf_cand_xic_to_xi_pi_pi::InvMassXi,
316+
hf_cand_xic_to_xi_pi_pi::InvMassLambda,
312317
full::ImpactParameterXi,
313318
full::ImpactParameterNormalisedXi,
314319
full::ImpactParameterPi0,
@@ -324,10 +329,8 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiFullKfs, "AOD", "HFXICXI2PIFULKF",
324329
hf_cand_xic_to_xi_pi_pi::DcaPosToPV,
325330
hf_cand_xic_to_xi_pi_pi::DcaNegToPV,
326331
// additional columns only stored in the full candidate table
327-
hf_cand_xic_to_xi_pi_pi::InvMassXi,
328332
hf_cand_xic_to_xi_pi_pi::InvMassXiPi0,
329333
hf_cand_xic_to_xi_pi_pi::InvMassXiPi1,
330-
hf_cand_xic_to_xi_pi_pi::InvMassLambda,
331334
full::P,
332335
full::PPi0,
333336
full::PPi1,
@@ -348,11 +351,11 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiFullKfs, "AOD", "HFXICXI2PIFULKF",
348351
// KF-specific columns
349352
full::Chi2GeoXi,
350353
full::Chi2GeoLambda,
351-
hf_cand_xic_to_xi_pi_pi::Chi2TopoXicPlusToPVBefConst,
354+
hf_cand_xic_to_xi_pi_pi::Chi2XicPlusToPV,
352355
hf_cand_xic_to_xi_pi_pi::Chi2TopoXicPlusToPV,
353-
hf_cand_xic_to_xi_pi_pi::Chi2PrimXi,
354-
hf_cand_xic_to_xi_pi_pi::Chi2PrimPi0,
355-
hf_cand_xic_to_xi_pi_pi::Chi2PrimPi1,
356+
hf_cand_xic_to_xi_pi_pi::Chi2XiToPV,
357+
hf_cand_xic_to_xi_pi_pi::Chi2Pi0ToPV,
358+
hf_cand_xic_to_xi_pi_pi::Chi2Pi1ToPV,
356359
hf_cand_xic_to_xi_pi_pi::Chi2DevPi0Pi1,
357360
hf_cand_xic_to_xi_pi_pi::Chi2DevPi0Xi,
358361
hf_cand_xic_to_xi_pi_pi::Chi2DevPi1Xi,
@@ -541,6 +544,7 @@ struct HfTreeCreatorXicToXiPiPi {
541544
candidate.ptProng0(),
542545
candidate.ptProng1(),
543546
candidate.ptProng2(),
547+
candidate.ptBachelorPi(),
544548
candidate.invMassXicPlus(),
545549
candidate.chi2PCA(),
546550
candidate.ct(o2::constants::physics::MassXiCPlus),
@@ -554,15 +558,15 @@ struct HfTreeCreatorXicToXiPiPi {
554558
candidate.cpaXYXi(),
555559
candidate.cpaLambda(),
556560
candidate.cpaXYLambda(),
557-
candidate.cpaLambdaToXi(),
558-
candidate.cpaXYLambdaToXi(),
561+
candidate.radiusLambda(),
562+
candidate.invMassXi(),
563+
candidate.invMassLambda(),
559564
candidate.impactParameter0(),
560565
candidate.impactParameterNormalised0(),
561566
candidate.impactParameter1(),
562567
candidate.impactParameterNormalised1(),
563568
candidate.impactParameter2(),
564569
candidate.impactParameterNormalised2(),
565-
candidate.maxNormalisedDeltaIP(),
566570
candidate.dcaXiDaughters(),
567571
candidate.dcaV0Daughters(),
568572
candidate.dcaXYCascToPV(),
@@ -584,11 +588,11 @@ struct HfTreeCreatorXicToXiPiPi {
584588
// KF-specific columns
585589
candidate.kfCascadeChi2(),
586590
candidate.kfV0Chi2(),
587-
candidate.chi2TopoXicPlusToPVBefConst(),
591+
candidate.chi2XicPlusToPV(),
588592
candidate.chi2TopoXicPlusToPV(),
589-
candidate.chi2PrimXi(),
590-
candidate.chi2PrimPi0(),
591-
candidate.chi2PrimPi1(),
593+
candidate.chi2XiToPV(),
594+
candidate.chi2Pi0ToPV(),
595+
candidate.chi2Pi1ToPV(),
592596
candidate.chi2DevPi0Pi1(),
593597
candidate.chi2DevPi0Xi(),
594598
candidate.chi2DevPi1Xi(),
@@ -610,6 +614,7 @@ struct HfTreeCreatorXicToXiPiPi {
610614
candidate.ptProng0(),
611615
candidate.ptProng1(),
612616
candidate.ptProng2(),
617+
candidate.ptBachelorPi(),
613618
candidate.invMassXicPlus(),
614619
candidate.chi2PCA(),
615620
candidate.ct(o2::constants::physics::MassXiCPlus),
@@ -625,6 +630,9 @@ struct HfTreeCreatorXicToXiPiPi {
625630
candidate.cpaXYLambda(),
626631
candidate.cpaLambdaToXi(),
627632
candidate.cpaXYLambdaToXi(),
633+
candidate.radiusLambda(),
634+
candidate.invMassXi(),
635+
candidate.invMassLambda(),
628636
candidate.impactParameter0(),
629637
candidate.impactParameterNormalised0(),
630638
candidate.impactParameter1(),
@@ -640,10 +648,8 @@ struct HfTreeCreatorXicToXiPiPi {
640648
candidate.dcaPosToPV(),
641649
candidate.dcaNegToPV(),
642650
// additional columns only stored in the full candidate table
643-
candidate.invMassXi(),
644651
candidate.invMassXiPi0(),
645652
candidate.invMassXiPi1(),
646-
candidate.invMassLambda(),
647653
candidate.p(),
648654
candidate.pProng1(),
649655
candidate.pProng2(),
@@ -664,11 +670,11 @@ struct HfTreeCreatorXicToXiPiPi {
664670
// KF-specific columns
665671
candidate.kfCascadeChi2(),
666672
candidate.kfV0Chi2(),
667-
candidate.chi2TopoXicPlusToPVBefConst(),
673+
candidate.chi2XicPlusToPV(),
668674
candidate.chi2TopoXicPlusToPV(),
669-
candidate.chi2PrimXi(),
670-
candidate.chi2PrimPi0(),
671-
candidate.chi2PrimPi1(),
675+
candidate.chi2XiToPV(),
676+
candidate.chi2Pi0ToPV(),
677+
candidate.chi2Pi1ToPV(),
672678
candidate.chi2DevPi0Pi1(),
673679
candidate.chi2DevPi0Xi(),
674680
candidate.chi2DevPi1Xi(),

PWGLF/Utils/strangenessBuilderHelper.h

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1059,6 +1059,11 @@ class strangenessBuilderHelper
10591059
return false;
10601060
}
10611061

1062+
// Calculate V0 mass before mass constraint
1063+
float MLambda, SigmaLambda;
1064+
KFV0.GetMass(MLambda, SigmaLambda);
1065+
cascade.kfMLambda = MLambda;
1066+
10621067
if (kfUseV0MassConstraint) {
10631068
KFV0.SetNonlinearMassConstraint(o2::constants::physics::MassLambda);
10641069
}
@@ -1117,9 +1122,18 @@ class strangenessBuilderHelper
11171122
cascade = {};
11181123
return false;
11191124
}
1125+
1126+
// Calculate masses a priori before potentially applying mass constraint --> this is the invariant mass of the decay products, not the mass-constrained value
1127+
float MXi, SigmaXi, MOmega, SigmaOmega;
1128+
KFXi.GetMass(MXi, SigmaXi);
1129+
KFOmega.GetMass(MOmega, SigmaOmega);
1130+
cascade.massXi = MXi;
1131+
cascade.massOmega = MOmega;
1132+
11201133
if (kfUseCascadeMassConstraint) {
11211134
// set mass constraint if requested
11221135
// WARNING: this is only adequate for decay chains, i.e. XiC -> Xi or OmegaC -> Omega
1136+
// WARNING: be aware of the fact that if enabled, the stored particle momentum and covariance matrix will be mass-constrained while the stored mass will be the invariant mass of the decay products (i.e. not mass-constrained)
11231137
KFXi.SetNonlinearMassConstraint(o2::constants::physics::MassXiMinus);
11241138
KFOmega.SetNonlinearMassConstraint(o2::constants::physics::MassOmegaMinus);
11251139
}
@@ -1215,15 +1229,6 @@ class strangenessBuilderHelper
12151229
}
12161230
cascade.pointingAngle = TMath::ACos(cosPA);
12171231

1218-
// Calculate masses a priori
1219-
float MLambda, SigmaLambda, MXi, SigmaXi, MOmega, SigmaOmega;
1220-
KFV0.GetMass(MLambda, SigmaLambda);
1221-
KFXi.GetMass(MXi, SigmaXi);
1222-
KFOmega.GetMass(MOmega, SigmaOmega);
1223-
cascade.kfMLambda = MLambda;
1224-
cascade.massXi = MXi;
1225-
cascade.massOmega = MOmega;
1226-
12271232
// KF Cascade covariance matrix
12281233
std::array<float, 21> covCascKF;
12291234
for (int i = 0; i < 21; i++) { // get covariance matrix elements (lower triangle)

0 commit comments

Comments
 (0)