From b7390796e1a258ad9f5fd92f73ca8b9df68c1081 Mon Sep 17 00:00:00 2001 From: David Dobrigkeit Chinellato Date: Thu, 20 Apr 2023 15:49:12 -0300 Subject: [PATCH 1/2] Add DCAxy/z distinction to LF stra dat mod --- PWGLF/DataModel/LFStrangenessTables.h | 9 +++++---- PWGLF/TableProducer/cascadebuilder.cxx | 11 ++++++++--- PWGLF/TableProducer/cascadefinder.cxx | 4 ++-- PWGLF/Tasks/QC/straRecoStudy.cxx | 4 ++-- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/PWGLF/DataModel/LFStrangenessTables.h b/PWGLF/DataModel/LFStrangenessTables.h index 8e2ec199226..6b238ed959f 100644 --- a/PWGLF/DataModel/LFStrangenessTables.h +++ b/PWGLF/DataModel/LFStrangenessTables.h @@ -320,7 +320,8 @@ DECLARE_SOA_COLUMN(DCACascDaughters, dcacascdaughters, float); //! DECLARE_SOA_COLUMN(DCAPosToPV, dcapostopv, float); //! DECLARE_SOA_COLUMN(DCANegToPV, dcanegtopv, float); //! DECLARE_SOA_COLUMN(DCABachToPV, dcabachtopv, float); //! -DECLARE_SOA_COLUMN(DCACascToPV, dcacasctopv, float); //! +DECLARE_SOA_COLUMN(DCAXYCascToPV, dcaXYCascToPV, float); //! +DECLARE_SOA_COLUMN(DCAZCascToPV, dcaZCascToPV, float); //! // Saved from finding: covariance matrix of parent track (on request) DECLARE_SOA_COLUMN(PositionCovMat, positionCovMat, float[6]); //! covariance matrix elements @@ -329,7 +330,7 @@ DECLARE_SOA_COLUMN(MomentumCovMat, momentumCovMat, float[6]); //! covariance mat // Saved from strangeness tracking DECLARE_SOA_COLUMN(MatchingChi2, matchingChi2, float); //! DECLARE_SOA_COLUMN(TopologyChi2, topologyChi2, float); //! -DECLARE_SOA_COLUMN(ItsClsSize, itsCluSize, int); //! +DECLARE_SOA_COLUMN(ItsClsSize, itsCluSize, float); //! // Derived expressions // Momenta @@ -392,7 +393,7 @@ DECLARE_SOA_TABLE(StoredCascDatas, "AOD", "CASCDATA", //! cascdata::PxBach, cascdata::PyBach, cascdata::PzBach, cascdata::Px, cascdata::Py, cascdata::Pz, cascdata::DCAV0Daughters, cascdata::DCACascDaughters, - cascdata::DCAPosToPV, cascdata::DCANegToPV, cascdata::DCABachToPV, cascdata::DCACascToPV, + cascdata::DCAPosToPV, cascdata::DCANegToPV, cascdata::DCABachToPV, cascdata::DCAXYCascToPV, cascdata::DCAZCascToPV, // Dynamic columns cascdata::Pt, @@ -422,7 +423,7 @@ DECLARE_SOA_TABLE(StoredTraCascDatas, "AOD", "TRACASCDATA", //! cascdata::PxBach, cascdata::PyBach, cascdata::PzBach, cascdata::Px, cascdata::Py, cascdata::Pz, cascdata::DCAV0Daughters, cascdata::DCACascDaughters, - cascdata::DCAPosToPV, cascdata::DCANegToPV, cascdata::DCABachToPV, cascdata::DCACascToPV, + cascdata::DCAPosToPV, cascdata::DCANegToPV, cascdata::DCABachToPV, cascdata::DCAXYCascToPV, cascdata::DCAZCascToPV, cascdata::MatchingChi2, cascdata::TopologyChi2, cascdata::ItsClsSize, // Dynamic columns diff --git a/PWGLF/TableProducer/cascadebuilder.cxx b/PWGLF/TableProducer/cascadebuilder.cxx index 6a3361602eb..edb5ba2ee62 100644 --- a/PWGLF/TableProducer/cascadebuilder.cxx +++ b/PWGLF/TableProducer/cascadebuilder.cxx @@ -105,6 +105,8 @@ struct cascadeBuilder { Configurable casccospa{"casccospa", 0.95, "casccospa"}; Configurable dcacascdau{"dcacascdau", 1.0, "DCA cascade Daughters"}; Configurable lambdaMassWindow{"lambdaMassWindow", .01, "Distance from Lambda mass"}; + Configurable dcaXYCascToPV{"dcaXYCascToPV", 1e+6, "dcaXYCascToPV"}; + Configurable dcaZCascToPV{"dcaZCascToPV", 1e+6, "dcaZCascToPV"}; // Operation and minimisation criteria Configurable d_bz_input{"d_bz", -999, "bz field, -999 is automatic"}; @@ -173,6 +175,7 @@ struct cascadeBuilder { float cosPA; float cascradius; float cascDCAxy; // cascade DCA xy (with bending) + float cascDCAz; // cascade DCA z std::array v0pos; std::array v0mompos; std::array v0momneg; @@ -632,6 +635,7 @@ struct cascadeBuilder { o2::base::Propagator::Instance()->propagateToDCABxByBz({collision.posX(), collision.posY(), collision.posZ()}, lCascadeTrack, 2.f, matCorrCascade, &dcaInfo); cascadecandidate.cascDCAxy = dcaInfo[0]; + cascadecandidate.cascDCAz = dcaInfo[1]; // Calculate masses a priori cascadecandidate.mXi = RecoDecay::m(array{array{cascadecandidate.bachP[0], cascadecandidate.bachP[1], cascadecandidate.bachP[2]}, array{v0.pxpos() + v0.pxneg(), v0.pypos() + v0.pyneg(), v0.pzpos() + v0.pzneg()}}, array{o2::constants::physics::MassPionCharged, o2::constants::physics::MassLambda}); @@ -728,7 +732,7 @@ struct cascadeBuilder { cascadecandidate.bachP[2] + cascadecandidate.v0mompos[2] + cascadecandidate.v0momneg[2], // <--- redundant but ok cascadecandidate.v0dcadau, cascadecandidate.dcacascdau, cascadecandidate.v0dcapostopv, cascadecandidate.v0dcanegtopv, - cascadecandidate.bachDCAxy, cascadecandidate.cascDCAxy); // <--- no corresponding stratrack information available + cascadecandidate.bachDCAxy, cascadecandidate.cascDCAxy, cascadecandidate.cascDCAz); // <--- no corresponding stratrack information available // populate cascade covariance matrices if required by any other task if (createCascCovMats) { @@ -796,7 +800,7 @@ struct cascadeBuilder { cascadecandidate.bachP[2] + cascadecandidate.v0mompos[2] + cascadecandidate.v0momneg[2], cascadecandidate.v0dcadau, cascadecandidate.dcacascdau, cascadecandidate.v0dcapostopv, cascadecandidate.v0dcanegtopv, - cascadecandidate.bachDCAxy, cascadecandidate.cascDCAxy); + cascadecandidate.bachDCAxy, cascadecandidate.cascDCAxy, cascadecandidate.cascDCAz); // populate cascade covariance matrices if required by any other task if (createCascCovMats) { @@ -901,6 +905,7 @@ struct cascadeBuilder { // Override cascDCAxy with the strangeness-tracked information cascadecandidate.cascDCAxy = dcaInfo[0]; + cascadecandidate.cascDCAz = dcaInfo[1]; std::array cascadeMomentumVector; cascadeTrackPar.getPxPyPzGlo(cascadeMomentumVector); @@ -918,7 +923,7 @@ struct cascadeBuilder { cascadeMomentumVector[0], cascadeMomentumVector[1], cascadeMomentumVector[2], // <--- stratrack momentum cascadecandidate.v0dcadau, cascadecandidate.dcacascdau, cascadecandidate.v0dcapostopv, cascadecandidate.v0dcanegtopv, - cascadecandidate.bachDCAxy, cascadecandidate.cascDCAxy, // <--- stratrack (cascDCAxy) + cascadecandidate.bachDCAxy, cascadecandidate.cascDCAxy, cascadecandidate.cascDCAz, // <--- stratrack (cascDCAxy/z) trackedCascade.matchingChi2(), trackedCascade.topologyChi2(), trackedCascade.itsClsSize()); // <--- stratrack fit info } } diff --git a/PWGLF/TableProducer/cascadefinder.cxx b/PWGLF/TableProducer/cascadefinder.cxx index fd6ae7a4e00..67ee62dbc68 100644 --- a/PWGLF/TableProducer/cascadefinder.cxx +++ b/PWGLF/TableProducer/cascadefinder.cxx @@ -267,7 +267,7 @@ struct cascadefinder { v0.dcapostopv(), v0.dcanegtopv(), t0id.dcaXY(), - dcaInfo[0]); + dcaInfo[0], dcaInfo[1]); } // end if cascade recoed } // end loop over bachelor } // end if v0 recoed @@ -357,7 +357,7 @@ struct cascadefinder { v0.dcapostopv(), v0.dcanegtopv(), t0id.dcaXY(), - dcaInfo[0]); + dcaInfo[0], dcaInfo[1]); } // end if cascade recoed } // end loop over bachelor } // end if v0 recoed diff --git a/PWGLF/Tasks/QC/straRecoStudy.cxx b/PWGLF/Tasks/QC/straRecoStudy.cxx index 0e8d077bee6..7825164fc73 100644 --- a/PWGLF/Tasks/QC/straRecoStudy.cxx +++ b/PWGLF/Tasks/QC/straRecoStudy.cxx @@ -652,7 +652,7 @@ struct straRecoStudy { histos.fill(HIST("h2dXiMinusQADCAPosToPV"), casc.pt(), casc.dcapostopv()); histos.fill(HIST("h2dXiMinusQADCANegToPV"), casc.pt(), casc.dcanegtopv()); histos.fill(HIST("h2dXiMinusQADCABachToPV"), casc.pt(), casc.dcabachtopv()); - histos.fill(HIST("h2dXiMinusQADCACascToPV"), casc.pt(), casc.dcacasctopv()); + histos.fill(HIST("h2dXiMinusQADCACascToPV"), casc.pt(), casc.dcaXYCascToPV()); histos.fill(HIST("h2dXiMinusQAPointingAngle"), casc.pt(), TMath::ACos(casc.casccosPA(collision.posX(), collision.posY(), collision.posZ()))); } if (cascmc.pdgCode() == 3334) { @@ -663,7 +663,7 @@ struct straRecoStudy { histos.fill(HIST("h2dOmegaMinusQADCAPosToPV"), casc.pt(), casc.dcapostopv()); histos.fill(HIST("h2dOmegaMinusQADCANegToPV"), casc.pt(), casc.dcanegtopv()); histos.fill(HIST("h2dOmegaMinusQADCABachToPV"), casc.pt(), casc.dcabachtopv()); - histos.fill(HIST("h2dOmegaMinusQADCACascToPV"), casc.pt(), casc.dcacasctopv()); + histos.fill(HIST("h2dOmegaMinusQADCACascToPV"), casc.pt(), casc.dcaXYCascToPV()); histos.fill(HIST("h2dOmegaMinusQAPointingAngle"), casc.pt(), TMath::ACos(casc.casccosPA(collision.posX(), collision.posY(), collision.posZ()))); } From 454a13596842fe4bce655e777a9ba33ef35f8f9a Mon Sep 17 00:00:00 2001 From: ALICE Builder Date: Thu, 20 Apr 2023 20:53:37 +0200 Subject: [PATCH 2/2] Please consider the following formatting changes (#104) --- PWGLF/DataModel/LFStrangenessTables.h | 2 +- PWGLF/TableProducer/cascadebuilder.cxx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGLF/DataModel/LFStrangenessTables.h b/PWGLF/DataModel/LFStrangenessTables.h index 6b238ed959f..e296226e13a 100644 --- a/PWGLF/DataModel/LFStrangenessTables.h +++ b/PWGLF/DataModel/LFStrangenessTables.h @@ -330,7 +330,7 @@ DECLARE_SOA_COLUMN(MomentumCovMat, momentumCovMat, float[6]); //! covariance mat // Saved from strangeness tracking DECLARE_SOA_COLUMN(MatchingChi2, matchingChi2, float); //! DECLARE_SOA_COLUMN(TopologyChi2, topologyChi2, float); //! -DECLARE_SOA_COLUMN(ItsClsSize, itsCluSize, float); //! +DECLARE_SOA_COLUMN(ItsClsSize, itsCluSize, float); //! // Derived expressions // Momenta diff --git a/PWGLF/TableProducer/cascadebuilder.cxx b/PWGLF/TableProducer/cascadebuilder.cxx index edb5ba2ee62..a04c1263f3a 100644 --- a/PWGLF/TableProducer/cascadebuilder.cxx +++ b/PWGLF/TableProducer/cascadebuilder.cxx @@ -175,7 +175,7 @@ struct cascadeBuilder { float cosPA; float cascradius; float cascDCAxy; // cascade DCA xy (with bending) - float cascDCAz; // cascade DCA z + float cascDCAz; // cascade DCA z std::array v0pos; std::array v0mompos; std::array v0momneg; @@ -923,7 +923,7 @@ struct cascadeBuilder { cascadeMomentumVector[0], cascadeMomentumVector[1], cascadeMomentumVector[2], // <--- stratrack momentum cascadecandidate.v0dcadau, cascadecandidate.dcacascdau, cascadecandidate.v0dcapostopv, cascadecandidate.v0dcanegtopv, - cascadecandidate.bachDCAxy, cascadecandidate.cascDCAxy, cascadecandidate.cascDCAz, // <--- stratrack (cascDCAxy/z) + cascadecandidate.bachDCAxy, cascadecandidate.cascDCAxy, cascadecandidate.cascDCAz, // <--- stratrack (cascDCAxy/z) trackedCascade.matchingChi2(), trackedCascade.topologyChi2(), trackedCascade.itsClsSize()); // <--- stratrack fit info } }