Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion PWGHF/DataModel/CandidateReconstructionTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -1500,6 +1500,7 @@ DECLARE_SOA_COLUMN(NSigTofPiFromLambda, nSigTofPiFromLambda, float);
DECLARE_SOA_COLUMN(NSigTofPrFromLambda, nSigTofPrFromLambda, float);
// MC
DECLARE_SOA_COLUMN(DecayLengthMcGen, decayLengthMcGen, float);
DECLARE_SOA_COLUMN(MassMcGen, massMcGen, float);
// Residuals and pulls
DECLARE_SOA_COLUMN(PtResidual, ptResidual, float);
DECLARE_SOA_COLUMN(PResidual, pResidual, float);
Expand Down Expand Up @@ -1605,7 +1606,8 @@ DECLARE_SOA_TABLE(HfCandXicMcGen, "AOD", "HFCANDXICMCGEN",
hf_cand_mc_flag::FlagMcMatchGen,
hf_cand_mc_flag::OriginMcGen,
hf_cand_mc_flag::PdgBhadMotherPart,
hf_cand_xic_to_xi_pi_pi::DecayLengthMcGen);
hf_cand_xic_to_xi_pi_pi::DecayLengthMcGen,
hf_cand_xic_to_xi_pi_pi::MassMcGen);

// table with residuals and pulls of PV
DECLARE_SOA_TABLE(HfCandXicResid, "AOD", "HFCANDXICRESID",
Expand Down
11 changes: 8 additions & 3 deletions PWGHF/TableProducer/candidateCreatorXicToXiPiPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -1093,6 +1093,7 @@ struct HfCandidateCreatorXicToXiPiPiExpressions {
registry.add("hDecayedPions", "hDecayedPions", {HistType::kTH1F, {{5, -0.5, 4.5}}});
registry.add("hInteractionsWithMaterial", "hInteractionsWithMaterial", {HistType::kTH1F, {{6, -0.5, 5.5}}});
registry.add("hDebugRec", "hDebugRec", {HistType::kTH1F, {{4, -0.5, 3.5}}});
registry.add("hy_pt_gen", "Generated MC", {HistType::kTH2F, {{20, -1.0, 1.0}, {200, 0, 20}}});
registry.get<TH1>(HIST("hDebugRec"))->GetXaxis()->SetBinLabel(1 + TotalRec, "total");
registry.get<TH1>(HIST("hDebugRec"))->GetXaxis()->SetBinLabel(1 + XicToFinalState, "#Xi^{+}_{c} #rightarrow #pi^{#plus} #pi^{#plus} #pi^{#minus} p #pi^{#minus}");
registry.get<TH1>(HIST("hDebugRec"))->GetXaxis()->SetBinLabel(1 + XiToPiPPi, "#Xi^{#minus} #rightarrow #pi^{#minus} p #pi^{#minus}");
Expand Down Expand Up @@ -1300,12 +1301,13 @@ struct HfCandidateCreatorXicToXiPiPiExpressions {
if (rejectionMask != 0) {
// at least one event selection not satisfied --> reject all particles from this collision
for (unsigned int i = 0; i < mcParticlesPerMcColl.size(); ++i) {
rowMcMatchGen(-99, -99, -99, decayLengthGen);
rowMcMatchGen(-99, -99, -99, decayLengthGen, -1.f);
}
continue;
}

for (const auto& particle : mcParticlesPerMcColl) {
const float massGen = RecoDecay::m(particle.pVector(), particle.e());
sign = 0;
flag = 0;
origin = RecoDecay::OriginType::None;
Expand Down Expand Up @@ -1345,6 +1347,9 @@ struct HfCandidateCreatorXicToXiPiPiExpressions {

// Check whether the charm baryon is non-prompt (from a b quark).
if (flag != 0) {
// fill inclusive generated Xic+
registry.fill(HIST("hy_pt_gen"), particle.y(), particle.pt());

origin = RecoDecay::getCharmHadronOrigin(mcParticles, particle, false, &idxBhadMothers);
// Calculate the decay length of the generated particle
auto dau0 = particle.template daughters_as<aod::McParticles>().begin();
Expand All @@ -1355,9 +1360,9 @@ struct HfCandidateCreatorXicToXiPiPiExpressions {
// Fill table
if (origin == RecoDecay::OriginType::NonPrompt) {
auto bHadMother = mcParticles.rawIteratorAt(idxBhadMothers[0]);
rowMcMatchGen(flag, origin, bHadMother.pdgCode(), decayLengthGen);
rowMcMatchGen(flag, origin, bHadMother.pdgCode(), decayLengthGen, massGen);
} else {
rowMcMatchGen(flag, origin, 0, decayLengthGen);
rowMcMatchGen(flag, origin, 0, decayLengthGen, massGen);
}
} // close loop over generated particles
} // close loop over McCollisions
Expand Down
3 changes: 3 additions & 0 deletions PWGHF/TableProducer/candidateSelectorXicToXiPiPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,8 @@ struct HfCandidateSelectorXicToXiPiPi {
registry.add("hNCrossedRowsTpcBachelorPionRecBkg", "Reconstructed background;#it{N}_{rows}^{TPC} (#pi #leftarrow #Xi);entries", {HistType::kTH1F, {{103, 49.5, 152.5}}});
registry.add("hNCrossedRowsTpcV0PosDauRecBkg", "Reconstructed background;#it{N}_{rows}^{TPC} (V0 pos. dau.);entries", {HistType::kTH1F, {{103, 49.5, 152.5}}});
registry.add("hNCrossedRowsTpcV0NegDauRecBkg", "Reconstructed background;#it{N}_{rows}^{TPC} (V0 neg. dau.);entries", {HistType::kTH1F, {{103, 49.5, 152.5}}});
/// reconstructed MC
registry.add("hmass_pt_reco_truth", "Reconstructed truth matching MC;inv.mass(#Xi#pi#pi) [GeV/c^{2}];p_{T} [GeV/c]", {HistType::kTH2F, {{40, 2.3, 2.7}, {200, 0, 20}}});
}
}

Expand Down Expand Up @@ -641,6 +643,7 @@ struct HfCandidateSelectorXicToXiPiPi {
if constexpr (IsMc) {
if (isMatchedSignal) {
registry.fill(HIST("hSelCandidatesRecSig"), PidSelected);
registry.fill(HIST("hmass_pt_reco_truth"), hfCandXic.invMassXicPlus(), hfCandXic.pt());
} else {
registry.fill(HIST("hSelCandidatesRecBkg"), PidSelected);
}
Expand Down
4 changes: 4 additions & 0 deletions PWGHF/TableProducer/treeCreatorXicToXiPiPi.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,7 @@ DECLARE_SOA_TABLE(HfCandXicToXiPiPiFullPs, "AOD", "HFXICXI2PIFULLP",
hf_cand_mc_flag::OriginMcGen,
hf_cand_mc_flag::PdgBhadMotherPart,
full::Pt,
full::M,
full::Eta,
full::Phi,
full::Y,
Expand Down Expand Up @@ -811,6 +812,7 @@ struct HfTreeCreatorXicToXiPiPi {
particle.originMcGen(),
particle.pdgBhadMotherPart(),
particle.pt(),
particle.massMcGen(),
particle.eta(),
particle.phi(),
RecoDecay::y(particle.pVector(), o2::constants::physics::MassXiCPlus),
Expand Down Expand Up @@ -865,6 +867,7 @@ struct HfTreeCreatorXicToXiPiPi {
particle.originMcGen(),
particle.pdgBhadMotherPart(),
particle.pt(),
particle.massMcGen(),
particle.eta(),
particle.phi(),
RecoDecay::y(particle.pVector(), o2::constants::physics::MassXiCPlus),
Expand Down Expand Up @@ -911,6 +914,7 @@ struct HfTreeCreatorXicToXiPiPi {
particle.originMcGen(),
particle.pdgBhadMotherPart(),
particle.pt(),
particle.massMcGen(),
particle.eta(),
particle.phi(),
RecoDecay::y(particle.pVector(), o2::constants::physics::MassXiCPlus),
Expand Down
Loading