From 5e2faef56ebf969960512f45c100324f4a6cff8c Mon Sep 17 00:00:00 2001 From: root Date: Thu, 17 Oct 2024 22:05:34 +0800 Subject: [PATCH 1/3] fixing bugs and errors --- .../candidateCreatorXic0Omegac0.cxx | 94 ++++++++++--------- 1 file changed, 48 insertions(+), 46 deletions(-) diff --git a/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx b/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx index 2fb7cdedd06..932816bfc62 100644 --- a/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx +++ b/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx @@ -692,7 +692,8 @@ struct HfCandidateCreatorXic0Omegac0 { if (kfUseV0MassConstraint) { KFParticle kfV0 = kfV0MassConstrained; } - + kfV0.TransportToDecayVertex(); + //__________________________________________ //*>~<* step 2 : reconstruct cascade(Omega) with KF const KFParticle* omegaDaugthers[2] = {&kfBachKaon, &kfV0}; @@ -723,14 +724,15 @@ struct HfCandidateCreatorXic0Omegac0 { KFParticle kfOmega = kfOmegaMassConstrained; } registry.fill(HIST("hInvMassOmegaMinus"), massCasc); - + kfOmega.TransportToDecayVertex(); + //__________________________________________ //*>~<* step 3 : reconstruc Omegac0 with KF // Create KF charm bach Pion from track KFPTrack kfTrackBachPion = createKFPTrackFromTrack(trackCharmBachelor); KFParticle kfBachPion(kfTrackBachPion, kPiPlus); const KFParticle* omegaC0Daugthers[2] = {&kfBachPion, &kfOmega}; - + // construct OmegaC0 KFParticle kfOmegaC0; kfOmegaC0.SetConstructMethod(kfConstructMethod); @@ -749,7 +751,7 @@ struct HfCandidateCreatorXic0Omegac0 { continue; hFitterStatus->Fill(0); hCandidateCounter->Fill(2); - + kfOmegaC0.TransportToDecayVertex(); // PV KFPVertex kfVertex = createKFPVertexFromCollision(collision); KFParticle kfPV(kfVertex); @@ -779,17 +781,17 @@ struct HfCandidateCreatorXic0Omegac0 { kfOmegac0ToPv.SetProductionVertex(kfPV); kfPiFromOmegacToPv.SetProductionVertex(kfPV); //------------get updated daughter tracks after vertex fit --------------- - auto trackParVarCharmBachelor = getTrackParCovFromKFP(kfBachPionToOmegaC, o2::track::PID::Pion, kfBachPionToOmegaC.GetQ()); // chrambaryon bach pion + auto trackParVarCharmBachelor = getTrackParCovFromKFP(kfBachPionToOmegaC, o2::track::PID::Pion, -bachCharge); // chrambaryon bach pion trackParVarCharmBachelor.setAbsCharge(1); - omegaDauChargedTrackParCov = getTrackParCovFromKFP(kfBachKaonToOmega, o2::track::PID::Kaon, kfBachKaonToOmega.GetQ()); // Cascade bach kaon + omegaDauChargedTrackParCov = getTrackParCovFromKFP(kfBachKaonToOmega, o2::track::PID::Kaon, bachCharge); // Cascade bach kaon omegaDauChargedTrackParCov.setAbsCharge(1); - o2::track::TrackParCov trackCasc = getTrackParCovFromKFP(kfOmegaToOmegaC, kfOmegaToOmegaC.GetPDG(), 0); - trackCasc.setAbsCharge(0); + o2::track::TrackParCov trackCasc = getTrackParCovFromKFP(kfOmegaToOmegaC, kfOmegaToOmegaC.GetPDG(), bachCharge); + trackCasc.setAbsCharge(1); - trackParCovV0Dau0 = getTrackParCovFromKFP(kfPos, kfPos.GetPDG(), kfPos.GetQ()); // V0 postive daughter + trackParCovV0Dau0 = getTrackParCovFromKFP(kfPos, kfPos.GetPDG(), 1); // V0 postive daughter trackParCovV0Dau0.setAbsCharge(1); - trackParCovV0Dau1 = getTrackParCovFromKFP(kfNeg, kfNeg.GetPDG(), kfNeg.GetQ()); // V0 negtive daughter + trackParCovV0Dau1 = getTrackParCovFromKFP(kfNeg, kfNeg.GetPDG(), -1); // V0 negtive daughter trackParCovV0Dau1.setAbsCharge(1); //-------------------------- V0 info--------------------------- @@ -798,8 +800,8 @@ struct HfCandidateCreatorXic0Omegac0 { float pseudorapV0Dau1 = kfNeg.GetEta(); // info from from KFParticle - std::array pVecV0 = {kfV0ToCasc.GetPx(), kfV0ToCasc.GetPy(), kfV0ToCasc.GetPz()}; // pVec stands for vector containing the 3-momentum components - std::array vertexV0 = {kfV0ToCasc.GetX(), kfV0ToCasc.GetY(), kfV0ToCasc.GetZ()}; + std::array pVecV0 = {kfV0.GetPx(), kfV0.GetPy(), kfV0.GetPz()}; // pVec stands for vector containing the 3-momentum components + std::array vertexV0 = {kfV0.GetX(), kfV0.GetY(), kfV0.GetZ()}; std::array pVecV0Dau0 = {kfPos.GetPx(), kfPos.GetPy(), kfPos.GetPz()}; std::array pVecV0Dau1 = {kfNeg.GetPx(), kfNeg.GetPy(), kfNeg.GetPz()}; @@ -808,7 +810,7 @@ struct HfCandidateCreatorXic0Omegac0 { float pseudorapCascBachelor = kfBachKaonToOmega.GetEta(); // info from KFParticle - std::array vertexCasc = {kfOmegaToOmegaC.GetX(), kfOmegaToOmegaC.GetY(), kfOmegaToOmegaC.GetZ()}; + std::array vertexCasc = {kfOmega.GetX(), kfOmega.GetY(), kfOmega.GetZ()}; std::array pVecCascBachelor = {kfBachKaonToOmega.GetPx(), kfBachKaonToOmega.GetPy(), kfBachKaonToOmega.GetPz()}; auto primaryVertex = getPrimaryVertex(collision); @@ -826,18 +828,18 @@ struct HfCandidateCreatorXic0Omegac0 { kfVertex.GetCovarianceMatrix(covMatrixPV); // impact parameters - o2::dataformats::DCA impactParameterV0Dau0; - o2::dataformats::DCA impactParameterV0Dau1; - o2::dataformats::DCA impactParameterKaFromCasc; - o2::base::Propagator::Instance()->propagateToDCABxByBz(primaryVertex, trackParCovV0Dau0, 2.f, matCorr, &impactParameterV0Dau0); - o2::base::Propagator::Instance()->propagateToDCABxByBz(primaryVertex, trackParCovV0Dau1, 2.f, matCorr, &impactParameterV0Dau1); - o2::base::Propagator::Instance()->propagateToDCABxByBz(primaryVertex, omegaDauChargedTrackParCov, 2.f, matCorr, &impactParameterKaFromCasc); - float dcaxyV0Dau0 = impactParameterV0Dau0.getY(); - float dcaxyV0Dau1 = impactParameterV0Dau1.getY(); - float dcaxyCascBachelor = impactParameterKaFromCasc.getY(); - float dcazV0Dau0 = impactParameterV0Dau0.getZ(); - float dcazV0Dau1 = impactParameterV0Dau1.getZ(); - float dcazCascBachelor = impactParameterKaFromCasc.getZ(); + gpu::gpustd::array impactParameterV0Dau0; + gpu::gpustd::array impactParameterV0Dau1; + gpu::gpustd::array impactParameterKaFromCasc; + o2::base::Propagator::Instance()->propagateToDCABxByBz({collision.posX(), collision.posY(), collision.posZ()}, trackParCovV0Dau0, 2.f, matCorr, &impactParameterV0Dau0); + o2::base::Propagator::Instance()->propagateToDCABxByBz({collision.posX(), collision.posY(), collision.posZ()}, trackParCovV0Dau1, 2.f, matCorr, &impactParameterV0Dau1); + o2::base::Propagator::Instance()->propagateToDCABxByBz({collision.posX(), collision.posY(), collision.posZ()}, omegaDauChargedTrackParCov, 2.f, matCorr, &impactParameterKaFromCasc); + float dcaxyV0Dau0 = impactParameterV0Dau0[0]; + float dcaxyV0Dau1 = impactParameterV0Dau1[0]; + float dcaxyCascBachelor = impactParameterKaFromCasc[0]; + float dcazV0Dau0 = impactParameterV0Dau0[1]; + float dcazV0Dau1 = impactParameterV0Dau1[1]; + float dcazCascBachelor = impactParameterKaFromCasc[1]; // pseudorapidity float pseudorapCharmBachelor = kfBachPionToOmegaC.GetEta(); @@ -856,7 +858,7 @@ struct HfCandidateCreatorXic0Omegac0 { float decLenV0 = RecoDecay::distance(vertexCasc, vertexV0); double phiCharmBaryon, thetaCharmBaryon; - getPointDirection(std::array{kfV0ToCasc.GetX(), kfV0ToCasc.GetY(), kfV0ToCasc.GetZ()}, coordVtxCharmBaryon, phiCharmBaryon, thetaCharmBaryon); + getPointDirection(std::array{kfV0.GetX(), kfV0.GetY(), kfV0.GetZ()}, coordVtxCharmBaryon, phiCharmBaryon, thetaCharmBaryon); auto errorDecayLengthCharmBaryon = std::sqrt(getRotatedCovMatrixXX(covMatrixPV, phiCharmBaryon, thetaCharmBaryon) + getRotatedCovMatrixXX(covVtxCharmBaryon, phiCharmBaryon, thetaCharmBaryon)); auto errorDecayLengthXYCharmBaryon = std::sqrt(getRotatedCovMatrixXX(covMatrixPV, phiCharmBaryon, 0.) + getRotatedCovMatrixXX(covVtxCharmBaryon, phiCharmBaryon, 0.)); @@ -908,29 +910,29 @@ struct HfCandidateCreatorXic0Omegac0 { // KF decay length float DecayLxy_Lam, err_DecayLxy_Lam; - kfV0ToCasc.GetDecayLengthXY(DecayLxy_Lam, err_DecayLxy_Lam); + kfV0.GetDecayLengthXY(DecayLxy_Lam, err_DecayLxy_Lam); kfOmegac0Candidate.decayLenXYLambda = DecayLxy_Lam; float DecayLxy_Casc, err_DecayLxy_Casc; - kfOmegaToOmegaC.GetDecayLengthXY(DecayLxy_Casc, err_DecayLxy_Casc); + kfOmega.GetDecayLengthXY(DecayLxy_Casc, err_DecayLxy_Casc); kfOmegac0Candidate.decayLenXYCasc = DecayLxy_Casc; float DecayLxy_Omegac0, err_DecayLxy_Omegac0; - kfOmegac0ToPv.GetDecayLengthXY(DecayLxy_Omegac0, err_DecayLxy_Omegac0); + kfOmegaC0.GetDecayLengthXY(DecayLxy_Omegac0, err_DecayLxy_Omegac0); kfOmegac0Candidate.decayLenXYOmegac = DecayLxy_Omegac0; // KF cosPA - kfOmegac0Candidate.cosPaV0ToPv = cpaFromKF(kfV0ToCasc, kfPV); - kfOmegac0Candidate.cosPaCascToPv = cpaFromKF(kfOmegaToOmegaC, kfPV); - kfOmegac0Candidate.cosPaOmegacToPv = cpaFromKF(kfOmegac0ToPv, kfPV); - kfOmegac0Candidate.cosPaXYV0ToPv = cpaXYFromKF(kfV0ToCasc, kfPV); - kfOmegac0Candidate.cosPaXYCascToPv = cpaXYFromKF(kfOmegaToOmegaC, kfPV); - kfOmegac0Candidate.cosPaXYOmegacToPv = cpaXYFromKF(kfOmegac0ToPv, kfPV); - - kfOmegac0Candidate.cosPaV0ToCasc = cpaFromKF(kfV0ToCasc, kfOmega); - kfOmegac0Candidate.cosPaCascToOmegac = cpaFromKF(kfOmegaToOmegaC, kfOmegaC0); - kfOmegac0Candidate.cosPaXYV0ToCasc = cpaXYFromKF(kfV0ToCasc, kfOmega); - kfOmegac0Candidate.cosPaXYCascToOmegac = cpaXYFromKF(kfOmegaToOmegaC, kfOmegaC0); + kfOmegac0Candidate.cosPaV0ToPv = cpaFromKF(kfV0, kfPV); + kfOmegac0Candidate.cosPaCascToPv = cpaFromKF(kfOmega, kfPV); + kfOmegac0Candidate.cosPaOmegacToPv = cpaFromKF(kfOmegaC0, kfPV); + kfOmegac0Candidate.cosPaXYV0ToPv = cpaXYFromKF(kfV0, kfPV); + kfOmegac0Candidate.cosPaXYCascToPv = cpaXYFromKF(kfOmega, kfPV); + kfOmegac0Candidate.cosPaXYOmegacToPv = cpaXYFromKF(kfOmegaC0, kfPV); + + kfOmegac0Candidate.cosPaV0ToCasc = cpaFromKF(kfV0, kfOmega); + kfOmegac0Candidate.cosPaCascToOmegac = cpaFromKF(kfOmega, kfOmegaC0); + kfOmegac0Candidate.cosPaXYV0ToCasc = cpaXYFromKF(kfV0, kfOmega); + kfOmegac0Candidate.cosPaXYCascToOmegac = cpaXYFromKF(kfOmega, kfOmegaC0); // KF mass kfOmegac0Candidate.massV0 = massLam; kfOmegac0Candidate.massCasc = massCasc; @@ -938,21 +940,21 @@ struct HfCandidateCreatorXic0Omegac0 { // KF pT kfOmegac0Candidate.ptPiFromOmegac = kfBachPionToOmegaC.GetPt(); - kfOmegac0Candidate.ptOmegac = kfOmegac0ToPv.GetPt(); + kfOmegac0Candidate.ptOmegac = kfOmegaC0.GetPt(); // KF rapidity - kfOmegac0Candidate.rapOmegac = kfOmegac0ToPv.GetRapidity(); + kfOmegac0Candidate.rapOmegac = kfOmegaC0.GetRapidity(); // KF cosThetaStar kfOmegac0Candidate.cosThetaStarPiFromOmegac = cosThetaStarFromKF(0, 4332, 211, 3312, kfBachPionToOmegaC, kfOmegaToOmegaC); // KF ct - kfOmegac0Candidate.ctV0 = kfV0ToCasc.GetLifeTime(); - kfOmegac0Candidate.ctCasc = kfOmegaToOmegaC.GetLifeTime(); - kfOmegac0Candidate.ctOmegac = kfOmegac0ToPv.GetLifeTime(); + kfOmegac0Candidate.ctV0 = kfV0.GetLifeTime(); + kfOmegac0Candidate.ctCasc = kfOmega.GetLifeTime(); + kfOmegac0Candidate.ctOmegac = kfOmegaC0.GetLifeTime(); // KF eta - kfOmegac0Candidate.etaOmegac = kfOmegac0ToPv.GetEta(); + kfOmegac0Candidate.etaOmegac = kfOmegaC0.GetEta(); // fill KF hist registry.fill(HIST("hKFParticleCascBachTopoChi2"), cascBachTopoChi2); From 851201a1207e26bd6eca5574526bfc4b012cc5b5 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 17 Oct 2024 22:55:46 +0800 Subject: [PATCH 2/3] adding new tables to output --- PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx b/PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx index 99128171973..a5b21467d62 100644 --- a/PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx +++ b/PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx @@ -181,6 +181,7 @@ DECLARE_SOA_TABLE(HfKfOmegacFulls, "AOD", "HFKFOMEGACFULL", full::NSigmaTPCPiFromOmegac, full::NSigmaTOFPiFromOmegac, full::NSigmaTPCKaFromCasc, full::NSigmaTOFKaFromCasc, full::NSigmaTPCPiFromV0, full::NSigmaTPCPrFromV0, full::KfDcaXYPiFromOmegac, full::DcaCascDau, full::DcaCharmBaryonDau, full::KfDcaXYCascToPv, + full::DcaXYToPvV0Dau0, full::DcaXYToPvV0Dau1, full::DcaXYToPvCascDau, full::Chi2GeoV0, full::Chi2GeoCasc, full::Chi2GeoOmegac, full::Chi2MassV0, full::Chi2MassCasc, full::V0ldl, full::Cascldl, full::Omegacldl, @@ -310,6 +311,9 @@ struct HfTreeCreatorOmegac0ToOmegaPi { candidate.dcaCascDau(), candidate.dcaCharmBaryonDau(), candidate.kfDcaXYCascToPv(), + candidate.dcaXYToPvV0Dau0(), + candidate.dcaXYToPvV0Dau1(), + candidate.dcaXYToPvCascDau(), candidate.chi2GeoV0(), candidate.chi2GeoCasc(), candidate.chi2GeoOmegac(), From 9fab786d08507cefb52b14673afacc99eddc04e1 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Thu, 17 Oct 2024 15:31:22 +0000 Subject: [PATCH 3/3] Please consider the following formatting changes --- PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx | 10 +++++----- PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx b/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx index 932816bfc62..2af61fd214b 100644 --- a/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx +++ b/PWGHF/TableProducer/candidateCreatorXic0Omegac0.cxx @@ -693,7 +693,7 @@ struct HfCandidateCreatorXic0Omegac0 { KFParticle kfV0 = kfV0MassConstrained; } kfV0.TransportToDecayVertex(); - + //__________________________________________ //*>~<* step 2 : reconstruct cascade(Omega) with KF const KFParticle* omegaDaugthers[2] = {&kfBachKaon, &kfV0}; @@ -724,15 +724,15 @@ struct HfCandidateCreatorXic0Omegac0 { KFParticle kfOmega = kfOmegaMassConstrained; } registry.fill(HIST("hInvMassOmegaMinus"), massCasc); - kfOmega.TransportToDecayVertex(); - + kfOmega.TransportToDecayVertex(); + //__________________________________________ //*>~<* step 3 : reconstruc Omegac0 with KF // Create KF charm bach Pion from track KFPTrack kfTrackBachPion = createKFPTrackFromTrack(trackCharmBachelor); KFParticle kfBachPion(kfTrackBachPion, kPiPlus); const KFParticle* omegaC0Daugthers[2] = {&kfBachPion, &kfOmega}; - + // construct OmegaC0 KFParticle kfOmegaC0; kfOmegaC0.SetConstructMethod(kfConstructMethod); @@ -751,7 +751,7 @@ struct HfCandidateCreatorXic0Omegac0 { continue; hFitterStatus->Fill(0); hCandidateCounter->Fill(2); - kfOmegaC0.TransportToDecayVertex(); + kfOmegaC0.TransportToDecayVertex(); // PV KFPVertex kfVertex = createKFPVertexFromCollision(collision); KFParticle kfPV(kfVertex); diff --git a/PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx b/PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx index a5b21467d62..42b40686a15 100644 --- a/PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx +++ b/PWGHF/TableProducer/treeCreatorOmegacToOmegaPi.cxx @@ -181,7 +181,7 @@ DECLARE_SOA_TABLE(HfKfOmegacFulls, "AOD", "HFKFOMEGACFULL", full::NSigmaTPCPiFromOmegac, full::NSigmaTOFPiFromOmegac, full::NSigmaTPCKaFromCasc, full::NSigmaTOFKaFromCasc, full::NSigmaTPCPiFromV0, full::NSigmaTPCPrFromV0, full::KfDcaXYPiFromOmegac, full::DcaCascDau, full::DcaCharmBaryonDau, full::KfDcaXYCascToPv, - full::DcaXYToPvV0Dau0, full::DcaXYToPvV0Dau1, full::DcaXYToPvCascDau, + full::DcaXYToPvV0Dau0, full::DcaXYToPvV0Dau1, full::DcaXYToPvCascDau, full::Chi2GeoV0, full::Chi2GeoCasc, full::Chi2GeoOmegac, full::Chi2MassV0, full::Chi2MassCasc, full::V0ldl, full::Cascldl, full::Omegacldl,