diff --git a/PWGEM/Dilepton/DataModel/lmeeMLTables.h b/PWGEM/Dilepton/DataModel/lmeeMLTables.h index 86b24480660..fed4529ed29 100644 --- a/PWGEM/Dilepton/DataModel/lmeeMLTables.h +++ b/PWGEM/Dilepton/DataModel/lmeeMLTables.h @@ -261,6 +261,7 @@ DECLARE_SOA_COLUMN(CascadeType, cascadeType, uint8_t); //! cascade type, 0 = XiM // LH pair variables DECLARE_SOA_COLUMN(MassLH, massLH, float); //! invariant mass of LH assuming kaon DECLARE_SOA_COLUMN(PtLH, ptLH, float); //! pt of LH +DECLARE_SOA_COLUMN(PLH, pLH, float); //! p of LH DECLARE_SOA_COLUMN(PtSVL, ptSVL, float); //! pT of lepton at SV // DECLARE_SOA_COLUMN(PlSVL, plSVL, float); //! pL of lepton at SV @@ -275,10 +276,11 @@ DECLARE_SOA_COLUMN(PtSVH, ptSVH, float); //! pT of associated hadron at SV DECLARE_SOA_COLUMN(PtFD, ptFD, float); //! visible momentum of LH pair perpendicular to flight direction = - missing pT due to neutrino perpendicular to flight direction DECLARE_SOA_COLUMN(PlFD, plFD, float); //! visible momentum of LH pair in parallel to flight direction -DECLARE_SOA_COLUMN(DcaLH, dcalh, float); //! DCA between lepton and hadron -DECLARE_SOA_COLUMN(CPA, cpa, float); //! cosine of pointing angle of LH pair -DECLARE_SOA_COLUMN(CPAXY, cpaXY, float); //! cosine of pointing angle of LH pair in XY -DECLARE_SOA_COLUMN(CPARZ, cpaRZ, float); //! cosine of pointing angle of LH pair in RZ +// DECLARE_SOA_COLUMN(DcaLH, dcalh, float); //! DCA between lepton and hadron +DECLARE_SOA_COLUMN(Chi2PCA, chi2PCA, float); //! DCA between lepton and hadron +DECLARE_SOA_COLUMN(CPA, cpa, float); //! cosine of pointing angle of LH pair +DECLARE_SOA_COLUMN(CPAXY, cpaXY, float); //! cosine of pointing angle of LH pair in XY +DECLARE_SOA_COLUMN(CPARZ, cpaRZ, float); //! cosine of pointing angle of LH pair in RZ DECLARE_SOA_COLUMN(Lxy, lxy, float); //! decay length of LH pair DECLARE_SOA_COLUMN(Lz, lz, float); //! decay length of LH pair @@ -287,11 +289,11 @@ DECLARE_SOA_COLUMN(LxyErr, lxyErr, float); //! decay length resolution of LH p DECLARE_SOA_COLUMN(LzErr, lzErr, float); //! decay length resolution of LH pair DECLARE_SOA_COLUMN(LxyzErr, lxyzErr, float); //! decay length resolution of LH pair -DECLARE_SOA_COLUMN(ImpParXY, impParXY, float); //! impact parameter for LH in XY plane -DECLARE_SOA_COLUMN(ImpParZ, impParZ, float); //! impact parameter for LH in Z plane -DECLARE_SOA_COLUMN(ImpParCYY, impParCYY, float); //! sigma of impact parameter for LH in XY -DECLARE_SOA_COLUMN(ImpParCZY, impParCZY, float); //! sigma of impact parameter for LH, correlation term -DECLARE_SOA_COLUMN(ImpParCZZ, impParCZZ, float); //! sigma of impact parameter for LH in Z +// DECLARE_SOA_COLUMN(ImpParXY, impParXY, float); //! impact parameter for LH in XY plane +// DECLARE_SOA_COLUMN(ImpParZ, impParZ, float); //! impact parameter for LH in Z plane +// DECLARE_SOA_COLUMN(ImpParCYY, impParCYY, float); //! sigma of impact parameter for LH in XY +// DECLARE_SOA_COLUMN(ImpParCZY, impParCZY, float); //! sigma of impact parameter for LH, correlation term +// DECLARE_SOA_COLUMN(ImpParCZZ, impParCZZ, float); //! sigma of impact parameter for LH in Z DECLARE_SOA_COLUMN(PdgCodeH, pdgCodeH, int); //! pdg code of associated hadron DECLARE_SOA_COLUMN(PdgCodeIM, pdgCodeIM, int); //! pdg code of intermediate hadron from HF hadrons. e.g K*, D* @@ -305,11 +307,11 @@ DECLARE_SOA_TABLE(EMMLLTPairs, "AOD", "EMMLLTPAIR", //! // pidtpc::TPCNSigmaPi, pidtof::TOFNSigmaPi, pidtpc::TPCNSigmaKa, pidtof::TOFNSigmaKa, // pidtpc::TPCNSigmaPr, pidtof::TOFNSigmaPr, - emmllhpair::MassLH, emmllhpair::PtLH, emmllhpair::PtSVL, emmllhpair::PtSVH, - emmllhpair::PtFD, emmllhpair::PlFD, - emmllhpair::DcaLH, emmllhpair::CPA, emmllhpair::CPAXY, emmllhpair::CPARZ, + emmllhpair::MassLH, emmllhpair::PLH, + // emmllhpair::PtSVL, emmllhpair::PtSVH, emmllhpair::PtFD, emmllhpair::PlFD, + emmllhpair::Chi2PCA, emmllhpair::CPA, emmllhpair::CPAXY, emmllhpair::CPARZ, emmllhpair::Lxy, emmllhpair::Lz, emmllhpair::Lxyz, emmllhpair::LxyErr, emmllhpair::LzErr, emmllhpair::LxyzErr, - emmllhpair::ImpParXY, emmllhpair::ImpParZ, emmllhpair::ImpParCYY, emmllhpair::ImpParCZY, emmllhpair::ImpParCZZ, + // emmllhpair::ImpParXY, emmllhpair::ImpParZ, emmllhpair::ImpParCYY, emmllhpair::ImpParCZY, emmllhpair::ImpParCZZ, emmllhpair::PdgCodeH, emmllhpair::PdgCodeIM, emmllhpair::FoundCommonMother); // iterators using EMMLLTPair = EMMLLTPairs::iterator; @@ -319,11 +321,11 @@ DECLARE_SOA_TABLE(EMMLLV0Pairs, "AOD", "EMMLLV0PAIR", //! emmllhpair::PtH, emmllhpair::RapidityV0, emmllhpair::V0CPA, emmllhpair::V0CPAXY, emmllhpair::V0CPARZ, emmllhpair::ImpParXYH, emmllhpair::ImpParZH, emmllhpair::ImpParCYYH, emmllhpair::ImpParCZYH, emmllhpair::ImpParCZZH, - emmllhpair::MassLH, emmllhpair::PtLH, emmllhpair::PtSVL, emmllhpair::PtSVH, - emmllhpair::PtFD, emmllhpair::PlFD, - emmllhpair::DcaLH, emmllhpair::CPA, emmllhpair::CPAXY, emmllhpair::CPARZ, + emmllhpair::MassLH, emmllhpair::PLH, + // emmllhpair::PtSVL, emmllhpair::PtSVH, emmllhpair::PtFD, emmllhpair::PlFD, + emmllhpair::Chi2PCA, emmllhpair::CPA, emmllhpair::CPAXY, emmllhpair::CPARZ, emmllhpair::Lxy, emmllhpair::Lz, emmllhpair::Lxyz, emmllhpair::LxyErr, emmllhpair::LzErr, emmllhpair::LxyzErr, - emmllhpair::ImpParXY, emmllhpair::ImpParZ, emmllhpair::ImpParCYY, emmllhpair::ImpParCZY, emmllhpair::ImpParCZZ, + // emmllhpair::ImpParXY, emmllhpair::ImpParZ, emmllhpair::ImpParCYY, emmllhpair::ImpParCZY, emmllhpair::ImpParCZZ, emmllhpair::PdgCodeH, emmllhpair::PdgCodeIM, emmllhpair::FoundCommonMother); // iterators using EMMLLV0Pair = EMMLLV0Pairs::iterator; @@ -333,11 +335,11 @@ DECLARE_SOA_TABLE(EMMLLCascPairs, "AOD", "EMMLLCPAIR", //! emmllhpair::Signed1PtH, emmllhpair::RapidityC, emmllhpair::CascCPA, emmllhpair::CascCPAXY, emmllhpair::CascCPARZ, emmllhpair::ImpParXYH, emmllhpair::ImpParZH, emmllhpair::ImpParCYYH, emmllhpair::ImpParCZYH, emmllhpair::ImpParCZZH, - emmllhpair::MassLH, emmllhpair::PtLH, emmllhpair::PtSVL, emmllhpair::PtSVH, - emmllhpair::PtFD, emmllhpair::PlFD, - emmllhpair::DcaLH, emmllhpair::CPA, emmllhpair::CPAXY, emmllhpair::CPARZ, + emmllhpair::MassLH, emmllhpair::PLH, + // emmllhpair::PtSVL, emmllhpair::PtSVH, emmllhpair::PtFD, emmllhpair::PlFD, + emmllhpair::Chi2PCA, emmllhpair::CPA, emmllhpair::CPAXY, emmllhpair::CPARZ, emmllhpair::Lxy, emmllhpair::Lz, emmllhpair::Lxyz, emmllhpair::LxyErr, emmllhpair::LzErr, emmllhpair::LxyzErr, - emmllhpair::ImpParXY, emmllhpair::ImpParZ, emmllhpair::ImpParCYY, emmllhpair::ImpParCZY, emmllhpair::ImpParCZZ, + // emmllhpair::ImpParXY, emmllhpair::ImpParZ, emmllhpair::ImpParCYY, emmllhpair::ImpParCZY, emmllhpair::ImpParCZZ, emmllhpair::PdgCodeH, emmllhpair::PdgCodeIM, emmllhpair::FoundCommonMother); // iterators using EMMLLCascPair = EMMLLCascPairs::iterator; diff --git a/PWGEM/Dilepton/Tasks/taggingHFE.cxx b/PWGEM/Dilepton/Tasks/taggingHFE.cxx index d97f4837579..2b1d89a4436 100644 --- a/PWGEM/Dilepton/Tasks/taggingHFE.cxx +++ b/PWGEM/Dilepton/Tasks/taggingHFE.cxx @@ -273,21 +273,21 @@ struct taggingHFE { std::string prefix = "lKPairCut"; Configurable cfg_min_cospa{"cfg_min_cospa", -1e+10, "min cospa"}; Configurable cfg_max_lxyz{"cfg_max_lxyz", 1e+10, "min rxy for v0hadron"}; - Configurable cfg_max_dca2legs{"cfg_max_dca2legs", 1.0, "max distance between 2 legs"}; + Configurable cfg_max_chi2PCA{"cfg_max_chi2PCA", 1.0, "max chi2 at PCA"}; } lKPairCut; struct : ConfigurableGroup { std::string prefix = "lV0PairCut"; Configurable cfg_min_cospa{"cfg_min_cospa", -1e+10, "min cospa"}; Configurable cfg_max_lxyz{"cfg_max_lxyz", 1e+10, "min rxy for v0hadron"}; - Configurable cfg_max_dca2legs{"cfg_max_dca2legs", 1.0, "max distance between 2 legs"}; + Configurable cfg_max_chi2PCA{"cfg_max_chi2PCA", 1.0, "max chi2 at PCA"}; } lV0PairCut; struct : ConfigurableGroup { std::string prefix = "lCPairCut"; Configurable cfg_min_cospa{"cfg_min_cospa", -1e+10, "min cospa"}; Configurable cfg_max_lxyz{"cfg_max_lxyz", 1e+10, "min rxy for v0hadron"}; - Configurable cfg_max_dca2legs{"cfg_max_dca2legs", 1.0, "max distance between 2 legs"}; + Configurable cfg_max_chi2PCA{"cfg_max_chi2PCA", 1.0, "max chi2 at PCA"}; } lCPairCut; o2::aod::rctsel::RCTFlagsChecker rctChecker; @@ -1727,7 +1727,7 @@ struct taggingHFE { continue; } - if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_dca2legs < eKpair.dca2legs) { + if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA) { continue; } @@ -1762,11 +1762,11 @@ struct taggingHFE { // kaon.tpcNSigmaPi(), tofNSigmaPi, kaon.tpcNSigmaKa(), tofNSigmaKa, // kaon.tpcNSigmaPr(), tofNSigmaPr, - eKpair.mass, eKpair.pt, eKpair.ptSVL, eKpair.ptSVH, - eKpair.ptFD, eKpair.plFD, - eKpair.dca2legs, eKpair.cospa, eKpair.cospaXY, eKpair.cospaRZ, + eKpair.mass, eKpair.p, + // eKpair.ptSVL, eKpair.ptSVH, eKpair.ptFD, eKpair.plFD, + eKpair.chi2PCA, eKpair.cospa, eKpair.cospaXY, eKpair.cospaRZ, eKpair.lxy, eKpair.lz, eKpair.lxyz, eKpair.lxyErr, eKpair.lzErr, eKpair.lxyzErr, - eKpair.impParXY, eKpair.impParZ, eKpair.impParCYY, eKpair.impParCZY, eKpair.impParCZZ, + // eKpair.impParXY, eKpair.impParZ, eKpair.impParCYY, eKpair.impParCZY, eKpair.impParCZZ, mckaon.pdgCode(), pdgCodeIM, foundCommonMother); } // end of kaon loop @@ -1788,7 +1788,7 @@ struct taggingHFE { if (!eKpair.isOK) { continue; } - if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_dca2legs < eKpair.dca2legs) { + if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA) { continue; } @@ -1823,11 +1823,11 @@ struct taggingHFE { // kaon.tpcNSigmaPi(), tofNSigmaPi, kaon.tpcNSigmaKa(), tofNSigmaKa, // kaon.tpcNSigmaPr(), tofNSigmaPr, - eKpair.mass, eKpair.pt, eKpair.ptSVL, eKpair.ptSVH, - eKpair.ptFD, eKpair.plFD, - eKpair.dca2legs, eKpair.cospa, eKpair.cospaXY, eKpair.cospaRZ, + eKpair.mass, eKpair.p, + // eKpair.ptSVL, eKpair.ptSVH, eKpair.ptFD, eKpair.plFD, + eKpair.chi2PCA, eKpair.cospa, eKpair.cospaXY, eKpair.cospaRZ, eKpair.lxy, eKpair.lz, eKpair.lxyz, eKpair.lxyErr, eKpair.lzErr, eKpair.lxyzErr, - eKpair.impParXY, eKpair.impParZ, eKpair.impParCYY, eKpair.impParCZY, eKpair.impParCZZ, + // eKpair.impParXY, eKpair.impParZ, eKpair.impParCYY, eKpair.impParCZY, eKpair.impParCZZ, mckaon.pdgCode(), pdgCodeIM, foundCommonMother); } // end of kaon loop @@ -1858,7 +1858,7 @@ struct taggingHFE { if (!eV0pair.isOK) { continue; } - if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_dca2legs < eV0pair.dca2legs) { + if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA) { continue; } @@ -1902,11 +1902,11 @@ struct taggingHFE { RecoDecay::cpaXY(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{v0.x(), v0.y(), v0.z()}, std::array{v0.px(), v0.py(), v0.pz()}), RecoDecay::cpaRZ(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{v0.x(), v0.y(), v0.z()}, std::array{v0.px(), v0.py(), v0.pz()}), impactParameterV0.getY(), impactParameterV0.getZ(), impactParameterV0.getSigmaY2(), impactParameterV0.getSigmaYZ(), impactParameterV0.getSigmaZ2(), - eV0pair.mass, eV0pair.pt, eV0pair.ptSVL, eV0pair.ptSVH, - eV0pair.ptFD, eV0pair.plFD, - eV0pair.dca2legs, eV0pair.cospa, eV0pair.cospaXY, eV0pair.cospaRZ, + eV0pair.mass, eV0pair.p, + // eV0pair.ptSVL, eV0pair.ptSVH, eV0pair.ptFD, eV0pair.plFD, + eV0pair.chi2PCA, eV0pair.cospa, eV0pair.cospaXY, eV0pair.cospaRZ, eV0pair.lxy, eV0pair.lz, eV0pair.lxyz, eV0pair.lxyErr, eV0pair.lzErr, eV0pair.lxyzErr, - eV0pair.impParXY, eV0pair.impParZ, eV0pair.impParCYY, eV0pair.impParCZY, eV0pair.impParCZZ, + // eV0pair.impParXY, eV0pair.impParZ, eV0pair.impParCYY, eV0pair.impParCZY, eV0pair.impParCZZ, pdgCodeV0, pdgCodeIM, foundCommonMother); } // end of K0S loop @@ -1937,7 +1937,7 @@ struct taggingHFE { if (!eV0pair.isOK) { continue; } - if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_dca2legs < eV0pair.dca2legs) { + if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA) { continue; } @@ -1965,11 +1965,11 @@ struct taggingHFE { RecoDecay::cpaXY(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{v0.x(), v0.y(), v0.z()}, std::array{v0.px(), v0.py(), v0.pz()}), RecoDecay::cpaRZ(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{v0.x(), v0.y(), v0.z()}, std::array{v0.px(), v0.py(), v0.pz()}), impactParameterV0.getY(), impactParameterV0.getZ(), impactParameterV0.getSigmaY2(), impactParameterV0.getSigmaYZ(), impactParameterV0.getSigmaZ2(), - eV0pair.mass, eV0pair.pt, eV0pair.ptSVL, eV0pair.ptSVH, - eV0pair.ptFD, eV0pair.plFD, - eV0pair.dca2legs, eV0pair.cospa, eV0pair.cospaXY, eV0pair.cospaRZ, + eV0pair.mass, eV0pair.p, + // eV0pair.ptSVL, eV0pair.ptSVH, eV0pair.ptFD, eV0pair.plFD, + eV0pair.chi2PCA, eV0pair.cospa, eV0pair.cospaXY, eV0pair.cospaRZ, eV0pair.lxy, eV0pair.lz, eV0pair.lxyz, eV0pair.lxyErr, eV0pair.lzErr, eV0pair.lxyzErr, - eV0pair.impParXY, eV0pair.impParZ, eV0pair.impParCYY, eV0pair.impParCZY, eV0pair.impParCZZ, + // eV0pair.impParXY, eV0pair.impParZ, eV0pair.impParCYY, eV0pair.impParCZY, eV0pair.impParCZZ, pdgCodeV0, pdgCodeIM, foundCommonMother); } // end of Lambda loop @@ -1999,7 +1999,7 @@ struct taggingHFE { if (!eCpair.isOK) { continue; } - if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_dca2legs < eCpair.dca2legs) { + if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA) { continue; } @@ -2033,11 +2033,11 @@ struct taggingHFE { RecoDecay::cpaXY(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{cascade.x(), cascade.y(), cascade.z()}, std::array{cascade.px(), cascade.py(), cascade.pz()}), RecoDecay::cpaRZ(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{cascade.x(), cascade.y(), cascade.z()}, std::array{cascade.px(), cascade.py(), cascade.pz()}), impactParameterCasc.getY(), impactParameterCasc.getZ(), impactParameterCasc.getSigmaY2(), impactParameterCasc.getSigmaYZ(), impactParameterCasc.getSigmaZ2(), - eCpair.mass, eCpair.pt, eCpair.ptSVL, eCpair.ptSVH, - eCpair.ptFD, eCpair.plFD, - eCpair.dca2legs, eCpair.cospa, eCpair.cospaXY, eCpair.cospaRZ, + eCpair.mass, eCpair.p, + // eCpair.ptSVL, eCpair.ptSVH, eCpair.ptFD, eCpair.plFD, + eCpair.chi2PCA, eCpair.cospa, eCpair.cospaXY, eCpair.cospaRZ, eCpair.lxy, eCpair.lz, eCpair.lxyz, eCpair.lxyErr, eCpair.lzErr, eCpair.lxyzErr, - eCpair.impParXY, eCpair.impParZ, eCpair.impParCYY, eCpair.impParCZY, eCpair.impParCZZ, + // eCpair.impParXY, eCpair.impParZ, eCpair.impParCYY, eCpair.impParCZY, eCpair.impParCZZ, pdgCodeCascade, pdgCodeIM, foundCommonMother); } // end of Xi- loop @@ -2067,7 +2067,7 @@ struct taggingHFE { if (!eCpair.isOK) { continue; } - if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_dca2legs < eCpair.dca2legs) { + if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA) { continue; } @@ -2101,11 +2101,11 @@ struct taggingHFE { RecoDecay::cpaXY(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{cascade.x(), cascade.y(), cascade.z()}, std::array{cascade.px(), cascade.py(), cascade.pz()}), RecoDecay::cpaRZ(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{cascade.x(), cascade.y(), cascade.z()}, std::array{cascade.px(), cascade.py(), cascade.pz()}), impactParameterCasc.getY(), impactParameterCasc.getZ(), impactParameterCasc.getSigmaY2(), impactParameterCasc.getSigmaYZ(), impactParameterCasc.getSigmaZ2(), - eCpair.mass, eCpair.pt, eCpair.ptSVL, eCpair.ptSVH, - eCpair.ptFD, eCpair.plFD, - eCpair.dca2legs, eCpair.cospa, eCpair.cospaXY, eCpair.cospaRZ, + eCpair.mass, eCpair.p, + // eCpair.ptSVL, eCpair.ptSVH, eCpair.ptFD, eCpair.plFD, + eCpair.chi2PCA, eCpair.cospa, eCpair.cospaXY, eCpair.cospaRZ, eCpair.lxy, eCpair.lz, eCpair.lxyz, eCpair.lxyErr, eCpair.lzErr, eCpair.lxyzErr, - eCpair.impParXY, eCpair.impParZ, eCpair.impParCYY, eCpair.impParCZY, eCpair.impParCZZ, + // eCpair.impParXY, eCpair.impParZ, eCpair.impParCYY, eCpair.impParCZY, eCpair.impParCZZ, pdgCodeCascade, pdgCodeIM, foundCommonMother); } // end of Omega- loop @@ -2163,7 +2163,7 @@ struct taggingHFE { continue; } - if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_dca2legs < eKpair.dca2legs) { + if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA) { continue; } @@ -2198,11 +2198,11 @@ struct taggingHFE { // kaon.tpcNSigmaPi(), tofNSigmaPi, kaon.tpcNSigmaKa(), tofNSigmaKa, // kaon.tpcNSigmaPr(), tofNSigmaPr, - eKpair.mass, eKpair.pt, eKpair.ptSVL, eKpair.ptSVH, - eKpair.ptFD, eKpair.plFD, - eKpair.dca2legs, eKpair.cospa, eKpair.cospaXY, eKpair.cospaRZ, + eKpair.mass, eKpair.p, + // eKpair.ptSVL, eKpair.ptSVH, eKpair.ptFD, eKpair.plFD, + eKpair.chi2PCA, eKpair.cospa, eKpair.cospaXY, eKpair.cospaRZ, eKpair.lxy, eKpair.lz, eKpair.lxyz, eKpair.lxyErr, eKpair.lzErr, eKpair.lxyzErr, - eKpair.impParXY, eKpair.impParZ, eKpair.impParCYY, eKpair.impParCZY, eKpair.impParCZZ, + // eKpair.impParXY, eKpair.impParZ, eKpair.impParCYY, eKpair.impParCZY, eKpair.impParCZZ, mckaon.pdgCode(), pdgCodeIM, foundCommonMother); } // end of kaon loop @@ -2225,7 +2225,7 @@ struct taggingHFE { if (!eKpair.isOK) { continue; } - if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_dca2legs < eKpair.dca2legs) { + if (eKpair.cospa < lKPairCut.cfg_min_cospa || lKPairCut.cfg_max_lxyz < eKpair.lxyz || lKPairCut.cfg_max_chi2PCA < eKpair.chi2PCA) { continue; } @@ -2260,11 +2260,11 @@ struct taggingHFE { // kaon.tpcNSigmaPi(), tofNSigmaPi, kaon.tpcNSigmaKa(), tofNSigmaKa, // kaon.tpcNSigmaPr(), tofNSigmaPr, - eKpair.mass, eKpair.pt, eKpair.ptSVL, eKpair.ptSVH, - eKpair.ptFD, eKpair.plFD, - eKpair.dca2legs, eKpair.cospa, eKpair.cospaXY, eKpair.cospaRZ, + eKpair.mass, eKpair.p, + // eKpair.ptSVL, eKpair.ptSVH, eKpair.ptFD, eKpair.plFD, + eKpair.chi2PCA, eKpair.cospa, eKpair.cospaXY, eKpair.cospaRZ, eKpair.lxy, eKpair.lz, eKpair.lxyz, eKpair.lxyErr, eKpair.lzErr, eKpair.lxyzErr, - eKpair.impParXY, eKpair.impParZ, eKpair.impParCYY, eKpair.impParCZY, eKpair.impParCZZ, + // eKpair.impParXY, eKpair.impParZ, eKpair.impParCYY, eKpair.impParCZY, eKpair.impParCZZ, mckaon.pdgCode(), pdgCodeIM, foundCommonMother); } // end of kaon loop @@ -2295,7 +2295,7 @@ struct taggingHFE { if (!eV0pair.isOK) { continue; } - if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_dca2legs < eV0pair.dca2legs) { + if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA) { continue; } @@ -2338,11 +2338,11 @@ struct taggingHFE { RecoDecay::cpaXY(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{v0.x(), v0.y(), v0.z()}, std::array{v0.px(), v0.py(), v0.pz()}), RecoDecay::cpaRZ(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{v0.x(), v0.y(), v0.z()}, std::array{v0.px(), v0.py(), v0.pz()}), impactParameterV0.getY(), impactParameterV0.getZ(), impactParameterV0.getSigmaY2(), impactParameterV0.getSigmaYZ(), impactParameterV0.getSigmaZ2(), - eV0pair.mass, eV0pair.pt, eV0pair.ptSVL, eV0pair.ptSVH, - eV0pair.ptFD, eV0pair.plFD, - eV0pair.dca2legs, eV0pair.cospa, eV0pair.cospaXY, eV0pair.cospaRZ, + eV0pair.mass, eV0pair.p, + // eV0pair.ptSVL, eV0pair.ptSVH, eV0pair.ptFD, eV0pair.plFD, + eV0pair.chi2PCA, eV0pair.cospa, eV0pair.cospaXY, eV0pair.cospaRZ, eV0pair.lxy, eV0pair.lz, eV0pair.lxyz, eV0pair.lxyErr, eV0pair.lzErr, eV0pair.lxyzErr, - eV0pair.impParXY, eV0pair.impParZ, eV0pair.impParCYY, eV0pair.impParCZY, eV0pair.impParCZZ, + // eV0pair.impParXY, eV0pair.impParZ, eV0pair.impParCYY, eV0pair.impParCZY, eV0pair.impParCZZ, pdgCodeV0, pdgCodeIM, foundCommonMother); } // end of K0S loop @@ -2373,7 +2373,7 @@ struct taggingHFE { if (!eV0pair.isOK) { continue; } - if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_dca2legs < eV0pair.dca2legs) { + if (eV0pair.cospa < lV0PairCut.cfg_min_cospa || lV0PairCut.cfg_max_lxyz < eV0pair.lxyz || lV0PairCut.cfg_max_chi2PCA < eV0pair.chi2PCA) { continue; } @@ -2401,11 +2401,11 @@ struct taggingHFE { RecoDecay::cpaXY(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{v0.x(), v0.y(), v0.z()}, std::array{v0.px(), v0.py(), v0.pz()}), RecoDecay::cpaRZ(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{v0.x(), v0.y(), v0.z()}, std::array{v0.px(), v0.py(), v0.pz()}), impactParameterV0.getY(), impactParameterV0.getZ(), impactParameterV0.getSigmaY2(), impactParameterV0.getSigmaYZ(), impactParameterV0.getSigmaZ2(), - eV0pair.mass, eV0pair.pt, eV0pair.ptSVL, eV0pair.ptSVH, - eV0pair.ptFD, eV0pair.plFD, - eV0pair.dca2legs, eV0pair.cospa, eV0pair.cospaXY, eV0pair.cospaRZ, + eV0pair.mass, eV0pair.p, + // eV0pair.ptSVL, eV0pair.ptSVH, eV0pair.ptFD, eV0pair.plFD, + eV0pair.chi2PCA, eV0pair.cospa, eV0pair.cospaXY, eV0pair.cospaRZ, eV0pair.lxy, eV0pair.lz, eV0pair.lxyz, eV0pair.lxyErr, eV0pair.lzErr, eV0pair.lxyzErr, - eV0pair.impParXY, eV0pair.impParZ, eV0pair.impParCYY, eV0pair.impParCZY, eV0pair.impParCZZ, + // eV0pair.impParXY, eV0pair.impParZ, eV0pair.impParCYY, eV0pair.impParCZY, eV0pair.impParCZZ, pdgCodeV0, pdgCodeIM, foundCommonMother); } // end of Anti-Lambda loop @@ -2435,7 +2435,7 @@ struct taggingHFE { if (!eCpair.isOK) { continue; } - if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_dca2legs < eCpair.dca2legs) { + if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA) { continue; } @@ -2469,11 +2469,11 @@ struct taggingHFE { RecoDecay::cpaXY(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{cascade.x(), cascade.y(), cascade.z()}, std::array{cascade.px(), cascade.py(), cascade.pz()}), RecoDecay::cpaRZ(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{cascade.x(), cascade.y(), cascade.z()}, std::array{cascade.px(), cascade.py(), cascade.pz()}), impactParameterCasc.getY(), impactParameterCasc.getZ(), impactParameterCasc.getSigmaY2(), impactParameterCasc.getSigmaYZ(), impactParameterCasc.getSigmaZ2(), - eCpair.mass, eCpair.pt, eCpair.ptSVL, eCpair.ptSVH, - eCpair.ptFD, eCpair.plFD, - eCpair.dca2legs, eCpair.cospa, eCpair.cospaXY, eCpair.cospaRZ, + eCpair.mass, eCpair.p, + // eCpair.ptSVL, eCpair.ptSVH, eCpair.ptFD, eCpair.plFD, + eCpair.chi2PCA, eCpair.cospa, eCpair.cospaXY, eCpair.cospaRZ, eCpair.lxy, eCpair.lz, eCpair.lxyz, eCpair.lxyErr, eCpair.lzErr, eCpair.lxyzErr, - eCpair.impParXY, eCpair.impParZ, eCpair.impParCYY, eCpair.impParCZY, eCpair.impParCZZ, + // eCpair.impParXY, eCpair.impParZ, eCpair.impParCYY, eCpair.impParCZY, eCpair.impParCZZ, pdgCodeCascade, pdgCodeIM, foundCommonMother); } // end of Xi+ loop @@ -2503,7 +2503,7 @@ struct taggingHFE { if (!eCpair.isOK) { continue; } - if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_dca2legs < eCpair.dca2legs) { + if (eCpair.cospa < lCPairCut.cfg_min_cospa || lCPairCut.cfg_max_lxyz < eCpair.lxyz || lCPairCut.cfg_max_chi2PCA < eCpair.chi2PCA) { continue; } @@ -2537,11 +2537,11 @@ struct taggingHFE { RecoDecay::cpaXY(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{cascade.x(), cascade.y(), cascade.z()}, std::array{cascade.px(), cascade.py(), cascade.pz()}), RecoDecay::cpaRZ(std::array{collision.posX(), collision.posY(), collision.posZ()}, std::array{cascade.x(), cascade.y(), cascade.z()}, std::array{cascade.px(), cascade.py(), cascade.pz()}), impactParameterCasc.getY(), impactParameterCasc.getZ(), impactParameterCasc.getSigmaY2(), impactParameterCasc.getSigmaYZ(), impactParameterCasc.getSigmaZ2(), - eCpair.mass, eCpair.pt, eCpair.ptSVL, eCpair.ptSVH, - eCpair.ptFD, eCpair.plFD, - eCpair.dca2legs, eCpair.cospa, eCpair.cospaXY, eCpair.cospaRZ, + eCpair.mass, eCpair.p, + // eCpair.ptSVL, eCpair.ptSVH, eCpair.ptFD, eCpair.plFD, + eCpair.chi2PCA, eCpair.cospa, eCpair.cospaXY, eCpair.cospaRZ, eCpair.lxy, eCpair.lz, eCpair.lxyz, eCpair.lxyErr, eCpair.lzErr, eCpair.lxyzErr, - eCpair.impParXY, eCpair.impParZ, eCpair.impParCYY, eCpair.impParCZY, eCpair.impParCZZ, + // eCpair.impParXY, eCpair.impParZ, eCpair.impParCYY, eCpair.impParCZY, eCpair.impParCZZ, pdgCodeCascade, pdgCodeIM, foundCommonMother); } // end of Omega+ loop diff --git a/PWGEM/Dilepton/Utils/ElectronModule.h b/PWGEM/Dilepton/Utils/ElectronModule.h index 99a40c8d28b..6b4bbfb1a3f 100644 --- a/PWGEM/Dilepton/Utils/ElectronModule.h +++ b/PWGEM/Dilepton/Utils/ElectronModule.h @@ -2166,18 +2166,18 @@ class ElectronModule candidate.impParZHinSigma = candidate.impParZH / std::sqrt(trackParCov.getSigmaZ2()); candidate.impPar3DHinSigma = dca3DinSigmaOTF(candidate.impParXYH, candidate.impParZH, trackParCov.getSigmaY2(), trackParCov.getSigmaZ2(), trackParCov.getSigmaZY()); candidate.signLH = 0; - candidate.dcaLH = pair.dca2legs; - candidate.logChi2PCA = std::log10(std::pow(pair.dca2legs, 2)); + candidate.dcaLH = std::sqrt(pair.chi2PCA); + candidate.logChi2PCA = std::log10(pair.chi2PCA); candidate.massLH = pair.mass; candidate.signedMassLH = pair.mass; candidate.cpa = pair.cospa; candidate.cpaXY = pair.cospaXY; - candidate.impParXY = pair.impParXY; - candidate.impParZ = pair.impParZ; - candidate.impPar3D = std::sqrt(std::pow(candidate.impParXY, 2) + std::pow(candidate.impParZ, 2)); - candidate.impParXYinSigma = candidate.impParXY / std::sqrt(pair.impParCYY); - candidate.impParZinSigma = candidate.impParZ / std::sqrt(pair.impParCZZ); - candidate.impPar3DinSigma = dca3DinSigmaOTF(candidate.impParXY, candidate.impParZ, pair.impParCYY, pair.impParCZY, pair.impParCZZ); + // candidate.impParXY = pair.impParXY; + // candidate.impParZ = pair.impParZ; + // candidate.impPar3D = std::sqrt(std::pow(candidate.impParXY, 2) + std::pow(candidate.impParZ, 2)); + // candidate.impParXYinSigma = candidate.impParXY / std::sqrt(pair.impParCYY); + // candidate.impParZinSigma = candidate.impParZ / std::sqrt(pair.impParCZZ); + // candidate.impPar3DinSigma = dca3DinSigmaOTF(candidate.impParXY, candidate.impParZ, pair.impParCYY, pair.impParCZY, pair.impParCZZ); candidate.decayLengthXY = pair.lxy; candidate.decayLengthZ = pair.lz; candidate.decayLength3D = pair.lxyz; diff --git a/PWGEM/Dilepton/Utils/MlResponseSCT.h b/PWGEM/Dilepton/Utils/MlResponseSCT.h index c55e10da8c4..172b2043ce6 100644 --- a/PWGEM/Dilepton/Utils/MlResponseSCT.h +++ b/PWGEM/Dilepton/Utils/MlResponseSCT.h @@ -70,12 +70,12 @@ enum class InputFeaturesSCT : uint8_t { correctedMass, cpa, cpaXY, - impParXY, - impParZ, - impPar3D, - impParXYinSigma, - impParZinSigma, - impPar3DinSigma, + // impParXY, + // impParZ, + // impPar3D, + // impParXYinSigma, + // impParZinSigma, + // impPar3DinSigma, decayLengthXY, decayLengthZ, decayLength3D, @@ -117,12 +117,12 @@ struct candidate { float correctedMass{0}; float cpa{0}; float cpaXY{0}; - float impParXY{0}; - float impParZ{0}; - float impPar3D{0}; - float impParXYinSigma{0}; - float impParZinSigma{0}; - float impPar3DinSigma{0}; + // float impParXY{0}; + // float impParZ{0}; + // float impPar3D{0}; + // float impParXYinSigma{0}; + // float impParZinSigma{0}; + // float impPar3DinSigma{0}; float decayLengthXY{0}; float decayLengthZ{0}; float decayLength3D{0}; @@ -171,12 +171,12 @@ class MlResponseSCT : public MlResponse CHECK_AND_FILL_TRACK(correctedMass); CHECK_AND_FILL_TRACK(cpa); CHECK_AND_FILL_TRACK(cpaXY); - CHECK_AND_FILL_TRACK(impParXY); - CHECK_AND_FILL_TRACK(impParZ); - CHECK_AND_FILL_TRACK(impPar3D); - CHECK_AND_FILL_TRACK(impParXYinSigma); - CHECK_AND_FILL_TRACK(impParZinSigma); - CHECK_AND_FILL_TRACK(impPar3DinSigma); + // CHECK_AND_FILL_TRACK(impParXY); + // CHECK_AND_FILL_TRACK(impParZ); + // CHECK_AND_FILL_TRACK(impPar3D); + // CHECK_AND_FILL_TRACK(impParXYinSigma); + // CHECK_AND_FILL_TRACK(impParZinSigma); + // CHECK_AND_FILL_TRACK(impPar3DinSigma); CHECK_AND_FILL_TRACK(decayLengthXY); CHECK_AND_FILL_TRACK(decayLengthZ); CHECK_AND_FILL_TRACK(decayLength3D); @@ -250,12 +250,12 @@ class MlResponseSCT : public MlResponse FILL_MAP_TRACK(correctedMass), FILL_MAP_TRACK(cpa), FILL_MAP_TRACK(cpaXY), - FILL_MAP_TRACK(impParXY), - FILL_MAP_TRACK(impParZ), - FILL_MAP_TRACK(impPar3D), - FILL_MAP_TRACK(impParXYinSigma), - FILL_MAP_TRACK(impParZinSigma), - FILL_MAP_TRACK(impPar3DinSigma), + // FILL_MAP_TRACK(impParXY), + // FILL_MAP_TRACK(impParZ), + // FILL_MAP_TRACK(impPar3D), + // FILL_MAP_TRACK(impParXYinSigma), + // FILL_MAP_TRACK(impParZinSigma), + // FILL_MAP_TRACK(impPar3DinSigma), FILL_MAP_TRACK(decayLengthXY), FILL_MAP_TRACK(decayLengthZ), FILL_MAP_TRACK(decayLength3D), diff --git a/PWGEM/Dilepton/Utils/SemiCharmTag.h b/PWGEM/Dilepton/Utils/SemiCharmTag.h index b02b377330a..d390940398a 100644 --- a/PWGEM/Dilepton/Utils/SemiCharmTag.h +++ b/PWGEM/Dilepton/Utils/SemiCharmTag.h @@ -36,7 +36,9 @@ namespace o2::aod::pwgem::dilepton::utils struct LHPair { // struct to store electron-hadron pair information float mass{-999.f}; float pt{-999.f}; + float p{-999.f}; float dca2legs{-999.f}; + float chi2PCA{-999.f}; float cospa{-999.f}; float cospaXY{-999.f}; float cospaRZ{-999.f}; @@ -52,9 +54,9 @@ struct LHPair { // struct to store electron-hadron pair information float impParCZY{-999.f}; float impParCZZ{-999.f}; - float ptSVL{-999.f}; + // float ptSVL{-999.f}; // float plSVL{-999.f}; - float ptSVH{-999.f}; + // float ptSVH{-999.f}; // float plSVH{-999.f}; // float ptFDL{-999.f}; @@ -62,8 +64,8 @@ struct LHPair { // struct to store electron-hadron pair information // float ptFDH{-999.f}; // float plFDH{-999.f}; - float ptFD{-999.f}; - float plFD{-999.f}; + // float ptFD{-999.f}; + // float plFD{-999.f}; bool isOK{false}; }; @@ -107,8 +109,8 @@ LHPair makePairLeptonTrack(TFitter& fitter, TCollision const& collision, TLepton fitter.getTrack(1).getPxPyPzGlo(pvec1); // track std::array pvecSum = {pvec0[0] + pvec1[0], pvec0[1] + pvec1[1], pvec0[2] + pvec1[2]}; - pair.ptSVL = RecoDecay::sqrtSumOfSquares(pvec0[0], pvec0[1]); - pair.ptSVH = RecoDecay::sqrtSumOfSquares(pvec1[0], pvec1[1]); + // pair.ptSVL = RecoDecay::sqrtSumOfSquares(pvec0[0], pvec0[1]); + // pair.ptSVH = RecoDecay::sqrtSumOfSquares(pvec1[0], pvec1[1]); // pair.plSVL = pvec0[2]; // pair.plSVH = pvec1[2]; @@ -116,6 +118,7 @@ LHPair makePairLeptonTrack(TFitter& fitter, TCollision const& collision, TLepton pair.cospaXY = RecoDecay::cpaXY(vertex, svpos, pvecSum); pair.cospaRZ = RecoDecay::cpaRZ(vertex, svpos, pvecSum); pair.dca2legs = std::sqrt(fitter.getChi2AtPCACandidate()); + pair.chi2PCA = fitter.getChi2AtPCACandidate(); pair.lxy = std::sqrt(std::pow(svpos[0] - collision.posX(), 2) + std::pow(svpos[1] - collision.posY(), 2)); pair.lz = svpos[2] - collision.posZ(); pair.lxyz = std::sqrt(std::pow(svpos[0] - collision.posX(), 2) + std::pow(svpos[1] - collision.posY(), 2) + std::pow(svpos[2] - collision.posZ(), 2)); @@ -128,29 +131,29 @@ LHPair makePairLeptonTrack(TFitter& fitter, TCollision const& collision, TLepton pair.lxyErr = std::sqrt(getRotatedCovMatrixXX(primaryVertex.getCov(), phiLH, 0.) + getRotatedCovMatrixXX(covVtxLH, phiLH, 0.)); pair.lzErr = std::sqrt(getRotatedCovMatrixXX(primaryVertex.getCov(), 0, thetaLH) + getRotatedCovMatrixXX(covVtxLH, 0, thetaLH)); - std::array uvFD = {(svpos[0] - collision.posX()) / pair.lxyz, (svpos[1] - collision.posY()) / pair.lxyz, (svpos[2] - collision.posZ()) / pair.lxyz}; // unit vector of flight direction - pair.plFD = RecoDecay::dotProd(pvecSum, uvFD); - pair.ptFD = RecoDecay::sqrtSumOfSquares(pvecSum[0] - pair.plFD * uvFD[0], pvecSum[1] - pair.plFD * uvFD[1], pvecSum[2] - pair.plFD * uvFD[2]); + // std::array uvFD = {(svpos[0] - collision.posX()) / pair.lxyz, (svpos[1] - collision.posY()) / pair.lxyz, (svpos[2] - collision.posZ()) / pair.lxyz}; // unit vector of flight direction + // pair.plFD = RecoDecay::dotProd(pvecSum, uvFD); + // pair.ptFD = RecoDecay::sqrtSumOfSquares(pvecSum[0] - pair.plFD * uvFD[0], pvecSum[1] - pair.plFD * uvFD[1], pvecSum[2] - pair.plFD * uvFD[2]); // pair.plFDL = RecoDecay::dotProd(pvec0, uvFD); // pair.plFDH = RecoDecay::dotProd(pvec1, uvFD); // pair.ptFDL = RecoDecay::sqrtSumOfSquares(pvec0[0] - pair.plFDL * uvFD[0], pvec0[1] - pair.plFDL * uvFD[1], pvec0[2] - pair.plFDL * uvFD[2]); // pair.ptFDH = RecoDecay::sqrtSumOfSquares(pvec1[0] - pair.plFDH * uvFD[0], pvec1[1] - pair.plFDH * uvFD[1], pvec1[2] - pair.plFDH * uvFD[2]); - // propagate the 2 prongs to the secondary vertex - leptonParCov.propagateTo(vtx[0], fitter.getBz()); - trackParCov.propagateTo(vtx[0], fitter.getBz()); + // // propagate the 2 prongs to the secondary vertex + // leptonParCov.propagateTo(vtx[0], fitter.getBz()); + // trackParCov.propagateTo(vtx[0], fitter.getBz()); - // calculate impact parameter - o2::dataformats::DCA dcaLH; - auto trackParCovLH = o2::dataformats::V0(fitter.getPCACandidatePos(), pvecSum, fitter.calcPCACovMatrixFlat(), leptonParCov, trackParCov); - trackParCovLH.propagateToDCA(primaryVertex, fitter.getBz(), &dcaLH); + // // calculate impact parameter + // o2::dataformats::DCA dcaLH; + // auto trackParCovLH = o2::dataformats::V0(fitter.getPCACandidatePos(), pvecSum, fitter.calcPCACovMatrixFlat(), leptonParCov, trackParCov); + // trackParCovLH.propagateToDCA(primaryVertex, fitter.getBz(), &dcaLH); - pair.impParXY = dcaLH.getY(); - pair.impParZ = dcaLH.getZ(); - pair.impParCYY = dcaLH.getSigmaY2(); - pair.impParCZY = dcaLH.getSigmaYZ(); - pair.impParCZZ = dcaLH.getSigmaZ2(); + // pair.impParXY = dcaLH.getY(); + // pair.impParZ = dcaLH.getZ(); + // pair.impParCYY = dcaLH.getSigmaY2(); + // pair.impParCZY = dcaLH.getSigmaYZ(); + // pair.impParCZZ = dcaLH.getSigmaZ2(); // LOGF(info, "fitter.getBz() = %f, dcaLH.getY() = %f, dcaLH.getZ() = %f", fitter.getBz(), dcaLH.getY(), dcaLH.getZ()); @@ -169,9 +172,7 @@ LHPair makePairLeptonTrack(TFitter& fitter, TCollision const& collision, TLepton ROOT::Math::PxPyPzMVector v12 = v1 + v2; pair.mass = v12.M(); pair.pt = v12.Pt(); - - // float tmp = v12.P() * std::sin(std::acos(pair.cospa)); - // LOGF(info, "pair.ptFD = %f, tmp = %f", pair.ptFD, tmp); + pair.p = v12.P(); pair.isOK = true; return pair; @@ -226,8 +227,8 @@ LHPair makePairLeptonV0(TFitter& fitter, TCollision const& collision, TLepton co fitter.getTrack(1).getPxPyPzGlo(pvec1); // v0 std::array pvecSum = {pvec0[0] + pvec1[0], pvec0[1] + pvec1[1], pvec0[2] + pvec1[2]}; - pair.ptSVL = RecoDecay::sqrtSumOfSquares(pvec0[0], pvec0[1]); - pair.ptSVH = RecoDecay::sqrtSumOfSquares(pvec1[0], pvec1[1]); + // pair.ptSVL = RecoDecay::sqrtSumOfSquares(pvec0[0], pvec0[1]); + // pair.ptSVH = RecoDecay::sqrtSumOfSquares(pvec1[0], pvec1[1]); // pair.plSVL = pvec0[2]; // pair.plSVH = pvec1[2]; @@ -235,6 +236,7 @@ LHPair makePairLeptonV0(TFitter& fitter, TCollision const& collision, TLepton co pair.cospaXY = RecoDecay::cpaXY(vertex, svpos, pvecSum); pair.cospaRZ = RecoDecay::cpaRZ(vertex, svpos, pvecSum); pair.dca2legs = std::sqrt(fitter.getChi2AtPCACandidate()); + pair.chi2PCA = fitter.getChi2AtPCACandidate(); pair.lxy = std::sqrt(std::pow(svpos[0] - collision.posX(), 2) + std::pow(svpos[1] - collision.posY(), 2)); pair.lz = svpos[2] - collision.posZ(); pair.lxyz = std::sqrt(std::pow(svpos[0] - collision.posX(), 2) + std::pow(svpos[1] - collision.posY(), 2) + std::pow(svpos[2] - collision.posZ(), 2)); @@ -247,29 +249,29 @@ LHPair makePairLeptonV0(TFitter& fitter, TCollision const& collision, TLepton co pair.lxyErr = std::sqrt(getRotatedCovMatrixXX(primaryVertex.getCov(), phiLV0, 0.) + getRotatedCovMatrixXX(covVtxLV0, phiLV0, 0.)); pair.lzErr = std::sqrt(getRotatedCovMatrixXX(primaryVertex.getCov(), 0, thetaLV0) + getRotatedCovMatrixXX(covVtxLV0, 0, thetaLV0)); - std::array uvFD = {(svpos[0] - collision.posX()) / pair.lxyz, (svpos[1] - collision.posY()) / pair.lxyz, (svpos[2] - collision.posZ()) / pair.lxyz}; // unit vector of flight direction - pair.plFD = RecoDecay::dotProd(pvecSum, uvFD); - pair.ptFD = RecoDecay::sqrtSumOfSquares(pvecSum[0] - pair.plFD * uvFD[0], pvecSum[1] - pair.plFD * uvFD[1], pvecSum[2] - pair.plFD * uvFD[2]); + // std::array uvFD = {(svpos[0] - collision.posX()) / pair.lxyz, (svpos[1] - collision.posY()) / pair.lxyz, (svpos[2] - collision.posZ()) / pair.lxyz}; // unit vector of flight direction + // pair.plFD = RecoDecay::dotProd(pvecSum, uvFD); + // pair.ptFD = RecoDecay::sqrtSumOfSquares(pvecSum[0] - pair.plFD * uvFD[0], pvecSum[1] - pair.plFD * uvFD[1], pvecSum[2] - pair.plFD * uvFD[2]); // pair.plFDL = RecoDecay::dotProd(pvec0, uvFD); // pair.plFDH = RecoDecay::dotProd(pvec1, uvFD); // pair.ptFDL = RecoDecay::sqrtSumOfSquares(pvec0[0] - pair.plFDL * uvFD[0], pvec0[1] - pair.plFDL * uvFD[1], pvec0[2] - pair.plFDL * uvFD[2]); // pair.ptFDH = RecoDecay::sqrtSumOfSquares(pvec1[0] - pair.plFDH * uvFD[0], pvec1[1] - pair.plFDH * uvFD[1], pvec1[2] - pair.plFDH * uvFD[2]); - // propagate the 2 prongs to the secondary vertex - leptonParCov.propagateTo(vtx[0], fitter.getBz()); - v0ParCov.propagateTo(vtx[0], fitter.getBz()); + // // propagate the 2 prongs to the secondary vertex + // leptonParCov.propagateTo(vtx[0], fitter.getBz()); + // v0ParCov.propagateTo(vtx[0], fitter.getBz()); - // calculate impact parameter - o2::dataformats::DCA dcaLH; - auto trackParCovLH = o2::dataformats::V0(fitter.getPCACandidatePos(), pvecSum, fitter.calcPCACovMatrixFlat(), leptonParCov, v0ParCov); - trackParCovLH.propagateToDCA(primaryVertex, fitter.getBz(), &dcaLH); + // // calculate impact parameter + // o2::dataformats::DCA dcaLH; + // auto trackParCovLH = o2::dataformats::V0(fitter.getPCACandidatePos(), pvecSum, fitter.calcPCACovMatrixFlat(), leptonParCov, v0ParCov); + // trackParCovLH.propagateToDCA(primaryVertex, fitter.getBz(), &dcaLH); - pair.impParXY = dcaLH.getY(); - pair.impParZ = dcaLH.getZ(); - pair.impParCYY = dcaLH.getSigmaY2(); - pair.impParCZY = dcaLH.getSigmaYZ(); - pair.impParCZZ = dcaLH.getSigmaZ2(); + // pair.impParXY = dcaLH.getY(); + // pair.impParZ = dcaLH.getZ(); + // pair.impParCYY = dcaLH.getSigmaY2(); + // pair.impParCZY = dcaLH.getSigmaYZ(); + // pair.impParCZZ = dcaLH.getSigmaZ2(); ROOT::Math::PxPyPzMVector v1(pvec0[0], pvec0[1], pvec0[2], o2::constants::physics::MassElectron); if (leptonId == o2::track::PID::Electron) { @@ -296,6 +298,7 @@ LHPair makePairLeptonV0(TFitter& fitter, TCollision const& collision, TLepton co ROOT::Math::PxPyPzMVector v12 = v1 + v2; pair.mass = v12.M(); pair.pt = v12.Pt(); + pair.p = v12.P(); pair.isOK = true; return pair; @@ -354,8 +357,8 @@ LHPair makePairLeptonCascade(TFitter& fitter, TCollision const& collision, TLept fitter.getTrack(1).getPxPyPzGlo(pvec1); // cascade std::array pvecSum = {pvec0[0] + pvec1[0], pvec0[1] + pvec1[1], pvec0[2] + pvec1[2]}; - pair.ptSVL = RecoDecay::sqrtSumOfSquares(pvec0[0], pvec0[1]); - pair.ptSVH = RecoDecay::sqrtSumOfSquares(pvec1[0], pvec1[1]); + // pair.ptSVL = RecoDecay::sqrtSumOfSquares(pvec0[0], pvec0[1]); + // pair.ptSVH = RecoDecay::sqrtSumOfSquares(pvec1[0], pvec1[1]); // pair.plSVL = pvec0[2]; // pair.plSVH = pvec1[2]; @@ -363,6 +366,7 @@ LHPair makePairLeptonCascade(TFitter& fitter, TCollision const& collision, TLept pair.cospaXY = RecoDecay::cpaXY(vertex, svpos, pvecSum); pair.cospaRZ = RecoDecay::cpaRZ(vertex, svpos, pvecSum); pair.dca2legs = std::sqrt(fitter.getChi2AtPCACandidate()); + pair.chi2PCA = fitter.getChi2AtPCACandidate(); pair.lxy = std::sqrt(std::pow(svpos[0] - collision.posX(), 2) + std::pow(svpos[1] - collision.posY(), 2)); pair.lz = svpos[2] - collision.posZ(); pair.lxyz = std::sqrt(std::pow(svpos[0] - collision.posX(), 2) + std::pow(svpos[1] - collision.posY(), 2) + std::pow(svpos[2] - collision.posZ(), 2)); @@ -375,29 +379,29 @@ LHPair makePairLeptonCascade(TFitter& fitter, TCollision const& collision, TLept pair.lzErr = std::sqrt(getRotatedCovMatrixXX(primaryVertex.getCov(), 0, thetaLC) + getRotatedCovMatrixXX(covVtxLC, 0, thetaLC)); pair.lxyzErr = std::sqrt(getRotatedCovMatrixXX(primaryVertex.getCov(), phiLC, thetaLC) + getRotatedCovMatrixXX(covVtxLC, phiLC, thetaLC)); - std::array uvFD = {(svpos[0] - collision.posX()) / pair.lxyz, (svpos[1] - collision.posY()) / pair.lxyz, (svpos[2] - collision.posZ()) / pair.lxyz}; // unit vector of flight direction - pair.plFD = RecoDecay::dotProd(pvecSum, uvFD); - pair.ptFD = RecoDecay::sqrtSumOfSquares(pvecSum[0] - pair.plFD * uvFD[0], pvecSum[1] - pair.plFD * uvFD[1], pvecSum[2] - pair.plFD * uvFD[2]); + // std::array uvFD = {(svpos[0] - collision.posX()) / pair.lxyz, (svpos[1] - collision.posY()) / pair.lxyz, (svpos[2] - collision.posZ()) / pair.lxyz}; // unit vector of flight direction + // pair.plFD = RecoDecay::dotProd(pvecSum, uvFD); + // pair.ptFD = RecoDecay::sqrtSumOfSquares(pvecSum[0] - pair.plFD * uvFD[0], pvecSum[1] - pair.plFD * uvFD[1], pvecSum[2] - pair.plFD * uvFD[2]); // pair.plFDL = RecoDecay::dotProd(pvec0, uvFD); // pair.plFDH = RecoDecay::dotProd(pvec1, uvFD); // pair.ptFDL = RecoDecay::sqrtSumOfSquares(pvec0[0] - pair.plFDL * uvFD[0], pvec0[1] - pair.plFDL * uvFD[1], pvec0[2] - pair.plFDL * uvFD[2]); // pair.ptFDH = RecoDecay::sqrtSumOfSquares(pvec1[0] - pair.plFDH * uvFD[0], pvec1[1] - pair.plFDH * uvFD[1], pvec1[2] - pair.plFDH * uvFD[2]); - // propagate the 2 prongs to the secondary vertex - leptonParCov.propagateTo(vtx[0], fitter.getBz()); - cascParCov.propagateTo(vtx[0], fitter.getBz()); + // // propagate the 2 prongs to the secondary vertex + // leptonParCov.propagateTo(vtx[0], fitter.getBz()); + // cascParCov.propagateTo(vtx[0], fitter.getBz()); - // calculate impact parameter - o2::dataformats::DCA dcaLH; - auto trackParCovLH = o2::dataformats::V0(fitter.getPCACandidatePos(), pvecSum, fitter.calcPCACovMatrixFlat(), leptonParCov, cascParCov); - trackParCovLH.propagateToDCA(primaryVertex, fitter.getBz(), &dcaLH); + // // calculate impact parameter + // o2::dataformats::DCA dcaLH; + // auto trackParCovLH = o2::dataformats::V0(fitter.getPCACandidatePos(), pvecSum, fitter.calcPCACovMatrixFlat(), leptonParCov, cascParCov); + // trackParCovLH.propagateToDCA(primaryVertex, fitter.getBz(), &dcaLH); - pair.impParXY = dcaLH.getY(); - pair.impParZ = dcaLH.getZ(); - pair.impParCYY = dcaLH.getSigmaY2(); - pair.impParCZY = dcaLH.getSigmaYZ(); - pair.impParCZZ = dcaLH.getSigmaZ2(); + // pair.impParXY = dcaLH.getY(); + // pair.impParZ = dcaLH.getZ(); + // pair.impParCYY = dcaLH.getSigmaY2(); + // pair.impParCZY = dcaLH.getSigmaYZ(); + // pair.impParCZZ = dcaLH.getSigmaZ2(); ROOT::Math::PxPyPzMVector v1(pvec0[0], pvec0[1], pvec0[2], o2::constants::physics::MassElectron); if (leptonId == o2::track::PID::Electron) { @@ -424,6 +428,7 @@ LHPair makePairLeptonCascade(TFitter& fitter, TCollision const& collision, TLept ROOT::Math::PxPyPzMVector v12 = v1 + v2; pair.mass = v12.M(); pair.pt = v12.Pt(); + pair.p = v12.P(); pair.isOK = true; return pair;