Skip to content

Commit 8d8b0a9

Browse files
committed
rm evaluateDecayLengthGenerated(), save mc_match::[pGen, lGen]
1 parent 9b9af19 commit 8d8b0a9

1 file changed

Lines changed: 47 additions & 27 deletions

File tree

‎PWGHF/TableProducer/treeCreatorXicToXiPiPi.cxx‎

Lines changed: 47 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,10 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiLites, "AOD", "HFXICXI2PILITE",
137137
full::ImpactParameterNormalisedPi0,
138138
full::ImpactParameterPi1,
139139
full::ImpactParameterNormalisedPi1,
140-
full::MaxNormalisedDeltaIP);
140+
full::MaxNormalisedDeltaIP,
141+
// parameters of matched MC particle
142+
mc_match::PGen,
143+
mc_match::DecayLengthGen);
141144

142145
DECLARE_SOA_TABLE(HfCandXicToXiPiPiLiteKfs, "AOD", "HFXICXI2PILITKF",
143146
full::ParticleFlag,
@@ -207,7 +210,10 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiLiteKfs, "AOD", "HFXICXI2PILITKF",
207210
hf_cand_xic_to_xi_pi_pi::DcaPi1Xi,
208211
hf_cand_xic_to_xi_pi_pi::DcaXYPi0Pi1,
209212
hf_cand_xic_to_xi_pi_pi::DcaXYPi0Xi,
210-
hf_cand_xic_to_xi_pi_pi::DcaXYPi1Xi);
213+
hf_cand_xic_to_xi_pi_pi::DcaXYPi1Xi,
214+
// parameters of matched MC particle
215+
mc_match::PGen,
216+
mc_match::DecayLengthGen);
211217

212218
DECLARE_SOA_TABLE(HfCandXicToXiPiPiLiteMLs, "AOD", "HFXICXI2PIMLITE",
213219
full::ParticleFlag,
@@ -231,7 +237,10 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiLiteMLs, "AOD", "HFXICXI2PIMLITE",
231237
hf_cand_xic_to_xi_pi_pi::NSigTpcPrFromLambda,
232238
full::MlScoreBkg,
233239
full::MlScorePrompt,
234-
full::MlScoreNonPrompt);
240+
full::MlScoreNonPrompt,
241+
// parameters of matched MC particle
242+
mc_match::PGen,
243+
mc_match::DecayLengthGen);
235244

236245
DECLARE_SOA_TABLE(HfCandXicToXiPiPiFulls, "AOD", "HFXICXI2PIFULL",
237246
full::ParticleFlag,
@@ -293,7 +302,10 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiFulls, "AOD", "HFXICXI2PIFULL",
293302
hf_cand_xic_to_xi_pi_pi::NSigTofPiFromXicPlus1,
294303
hf_cand_xic_to_xi_pi_pi::NSigTofBachelorPi,
295304
hf_cand_xic_to_xi_pi_pi::NSigTofPiFromLambda,
296-
hf_cand_xic_to_xi_pi_pi::NSigTofPrFromLambda);
305+
hf_cand_xic_to_xi_pi_pi::NSigTofPrFromLambda,
306+
// parameters of matched MC particle
307+
mc_match::PGen,
308+
mc_match::DecayLengthGen);
297309

298310
DECLARE_SOA_TABLE(HfCandXicToXiPiPiFullKfs, "AOD", "HFXICXI2PIFULKF",
299311
full::ParticleFlag,
@@ -375,7 +387,10 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiFullKfs, "AOD", "HFXICXI2PIFULKF",
375387
hf_cand_xic_to_xi_pi_pi::DcaPi1Xi,
376388
hf_cand_xic_to_xi_pi_pi::DcaXYPi0Pi1,
377389
hf_cand_xic_to_xi_pi_pi::DcaXYPi0Xi,
378-
hf_cand_xic_to_xi_pi_pi::DcaXYPi1Xi);
390+
hf_cand_xic_to_xi_pi_pi::DcaXYPi1Xi,
391+
// parameters of matched MC particle
392+
mc_match::PGen,
393+
mc_match::DecayLengthGen);
379394

380395
DECLARE_SOA_TABLE(HfCandXicToXiPiPiFullPs, "AOD", "HFXICXI2PIFULLP",
381396
hf_cand_mc_flag::FlagMcMatchGen,
@@ -419,6 +434,7 @@ struct HfTreeCreatorXicToXiPiPi {
419434
Configurable<float> ptMaxForDownSample{"ptMaxForDownSample", 10., "Maximum pt for the application of the downsampling factor"};
420435

421436
static constexpr int kNumBinaryClasses = 2;
437+
static constexpr float UndefValueFloat = -999.f;
422438

423439
using SelectedCandidates = soa::Filtered<soa::Join<aod::HfCandXic, aod::HfSelXicToXiPiPi>>;
424440
using SelectedCandidatesKf = soa::Filtered<soa::Join<aod::HfCandXic, aod::HfCandXicKF, aod::HfSelXicToXiPiPi>>;
@@ -448,9 +464,15 @@ struct HfTreeCreatorXicToXiPiPi {
448464
{
449465
int8_t particleFlag = candidate.sign();
450466
int8_t originMc = 0;
467+
float pGen{UndefValueFloat};
468+
float decayLengthGen{UndefValueFloat};
451469
if constexpr (DoMc) {
452470
particleFlag = candidate.flagMcMatchRec();
453471
originMc = candidate.originMcRec();
472+
if (particle.has_value()) {
473+
pGen = particle->p();
474+
decayLengthGen = particle->decayLengthMcGen();
475+
}
454476
}
455477
if constexpr (!DoKf && !DoMl) {
456478
if (fillCandidateLiteTable) {
@@ -489,7 +511,10 @@ struct HfTreeCreatorXicToXiPiPi {
489511
candidate.impactParameterNormalised1(),
490512
candidate.impactParameter2(),
491513
candidate.impactParameterNormalised2(),
492-
candidate.maxNormalisedDeltaIP());
514+
candidate.maxNormalisedDeltaIP(),
515+
// parameters of matched MC particle
516+
pGen,
517+
decayLengthGen);
493518
} else {
494519
rowCandidateFull(
495520
particleFlag,
@@ -551,7 +576,10 @@ struct HfTreeCreatorXicToXiPiPi {
551576
candidate.nSigTofPiFromXicPlus1(),
552577
candidate.nSigTofBachelorPi(),
553578
candidate.nSigTofPiFromLambda(),
554-
candidate.nSigTofPrFromLambda());
579+
candidate.nSigTofPrFromLambda(),
580+
// parameters of matched MC particle
581+
pGen,
582+
decayLengthGen);
555583
}
556584
} else if constexpr (DoKf) {
557585
if (fillCandidateLiteTable) {
@@ -623,7 +651,10 @@ struct HfTreeCreatorXicToXiPiPi {
623651
candidate.dcaPi1Xi(),
624652
candidate.dcaXYPi0Pi1(),
625653
candidate.dcaXYPi0Xi(),
626-
candidate.dcaXYPi1Xi());
654+
candidate.dcaXYPi1Xi(),
655+
// parameters of matched MC particle
656+
pGen,
657+
decayLengthGen);
627658
} else {
628659
rowCandidateFullKf(
629660
particleFlag,
@@ -705,7 +736,10 @@ struct HfTreeCreatorXicToXiPiPi {
705736
candidate.dcaPi1Xi(),
706737
candidate.dcaXYPi0Pi1(),
707738
candidate.dcaXYPi0Xi(),
708-
candidate.dcaXYPi1Xi());
739+
candidate.dcaXYPi1Xi(),
740+
// parameters of matched MC particle
741+
pGen,
742+
decayLengthGen);
709743
}
710744
}
711745
if constexpr (DoMl) {
@@ -740,7 +774,10 @@ struct HfTreeCreatorXicToXiPiPi {
740774
candidate.nSigTpcPrFromLambda(),
741775
mlScoreBkg,
742776
mlScorePrompt,
743-
mlScoreNonPrompt);
777+
mlScoreNonPrompt,
778+
// parameters of matched MC particle
779+
pGen,
780+
decayLengthGen);
744781
}
745782
}
746783

@@ -811,23 +848,6 @@ struct HfTreeCreatorXicToXiPiPi {
811848
return particleMother;
812849
}
813850

814-
template <typename CandType>
815-
float evaluateDecayLengthGenerated(CandType const& candidate, MatchedGenXicToXiPiPi::iterator const& particle)
816-
{
817-
const auto mcParticlePi0 = candidate.template pi0_as<o2::aod::TracksWMc>().template mcParticle_as<MatchedGenXicToXiPiPi>();
818-
const auto decayVertexX = mcParticlePi0.vx();
819-
const auto decayVertexY = mcParticlePi0.vy();
820-
const auto decayVertexZ = mcParticlePi0.vz();
821-
822-
const auto mcCollision = particle.template mcCollision_as<aod::McCollisions>();
823-
const auto primaryVertexX = mcCollision.posX();
824-
const auto primaryVertexY = mcCollision.posY();
825-
const auto primaryVertexZ = mcCollision.posZ();
826-
827-
const auto decayLendth = RecoDecay::distance(std::array<float, 3>{primaryVertexX, primaryVertexY, primaryVertexZ}, std::array<float, 3>{decayVertexX, decayVertexY, decayVertexZ});
828-
return decayLendth;
829-
}
830-
831851
void processData(SelectedCandidates const& candidates)
832852
{
833853
// Filling candidate properties

0 commit comments

Comments
 (0)