diff --git a/PWGHF/DataModel/CandidateReconstructionTables.h b/PWGHF/DataModel/CandidateReconstructionTables.h index 97cc4c6e6ea..86ac3c092c9 100644 --- a/PWGHF/DataModel/CandidateReconstructionTables.h +++ b/PWGHF/DataModel/CandidateReconstructionTables.h @@ -1030,9 +1030,9 @@ DECLARE_SOA_INDEX_COLUMN(Collision, collision); DECLARE_SOA_COLUMN(XPv, xPv, float); DECLARE_SOA_COLUMN(YPv, yPv, float); DECLARE_SOA_COLUMN(ZPv, zPv, float); -DECLARE_SOA_COLUMN(XDecayVtxOmegac, xDecayVtxOmegac, float); -DECLARE_SOA_COLUMN(YDecayVtxOmegac, yDecayVtxOmegac, float); -DECLARE_SOA_COLUMN(ZDecayVtxOmegac, zDecayVtxOmegac, float); +DECLARE_SOA_COLUMN(XDecayVtxCharmBaryon, xDecayVtxCharmBaryon, float); +DECLARE_SOA_COLUMN(YDecayVtxCharmBaryon, yDecayVtxCharmBaryon, float); +DECLARE_SOA_COLUMN(ZDecayVtxCharmBaryon, zDecayVtxCharmBaryon, float); DECLARE_SOA_COLUMN(XDecayVtxCascade, xDecayVtxCascade, float); DECLARE_SOA_COLUMN(YDecayVtxCascade, yDecayVtxCascade, float); DECLARE_SOA_COLUMN(ZDecayVtxCascade, zDecayVtxCascade, float); @@ -1040,34 +1040,22 @@ DECLARE_SOA_COLUMN(XDecayVtxV0, xDecayVtxV0, float); DECLARE_SOA_COLUMN(YDecayVtxV0, yDecayVtxV0, float); DECLARE_SOA_COLUMN(ZDecayVtxV0, zDecayVtxV0, float); DECLARE_SOA_COLUMN(SignDecay, signDecay, int8_t); // sign of pi <- xi -DECLARE_SOA_COLUMN(Chi2PCAOmegac, chi2PcaOmegac, float); -DECLARE_SOA_COLUMN(CovVtxOmegac0, covVtxOmegac0, float); -DECLARE_SOA_COLUMN(CovVtxOmegac1, covVtxOmegac1, float); -DECLARE_SOA_COLUMN(CovVtxOmegac2, covVtxOmegac2, float); -DECLARE_SOA_COLUMN(CovVtxOmegac3, covVtxOmegac3, float); -DECLARE_SOA_COLUMN(CovVtxOmegac4, covVtxOmegac4, float); -DECLARE_SOA_COLUMN(CovVtxOmegac5, covVtxOmegac5, float); -DECLARE_SOA_COLUMN(CovVtxV00, covVtxV00, float); -DECLARE_SOA_COLUMN(CovVtxV01, covVtxV01, float); -DECLARE_SOA_COLUMN(CovVtxV02, covVtxV02, float); -DECLARE_SOA_COLUMN(CovVtxV03, covVtxV03, float); -DECLARE_SOA_COLUMN(CovVtxV04, covVtxV04, float); -DECLARE_SOA_COLUMN(CovVtxV05, covVtxV05, float); -DECLARE_SOA_COLUMN(CovVtxCasc0, covVtxCasc0, float); -DECLARE_SOA_COLUMN(CovVtxCasc1, covVtxCasc1, float); -DECLARE_SOA_COLUMN(CovVtxCasc2, covVtxCasc2, float); -DECLARE_SOA_COLUMN(CovVtxCasc3, covVtxCasc3, float); -DECLARE_SOA_COLUMN(CovVtxCasc4, covVtxCasc4, float); -DECLARE_SOA_COLUMN(CovVtxCasc5, covVtxCasc5, float); -DECLARE_SOA_COLUMN(PxOmegac, pxOmegac, float); -DECLARE_SOA_COLUMN(PyOmegac, pyOmegac, float); -DECLARE_SOA_COLUMN(PzOmegac, pzOmegac, float); +DECLARE_SOA_COLUMN(Chi2PCACharmBaryon, chi2PCACharmBaryon, float); +DECLARE_SOA_COLUMN(CovVtxCharmBaryon0, covVtxCharmBaryon0, float); +DECLARE_SOA_COLUMN(CovVtxCharmBaryon1, covVtxCharmBaryon1, float); +DECLARE_SOA_COLUMN(CovVtxCharmBaryon2, covVtxCharmBaryon2, float); +DECLARE_SOA_COLUMN(CovVtxCharmBaryon3, covVtxCharmBaryon3, float); +DECLARE_SOA_COLUMN(CovVtxCharmBaryon4, covVtxCharmBaryon4, float); +DECLARE_SOA_COLUMN(CovVtxCharmBaryon5, covVtxCharmBaryon5, float); +DECLARE_SOA_COLUMN(PxCharmBaryon, pxCharmBaryon, float); +DECLARE_SOA_COLUMN(PyCharmBaryon, pyCharmBaryon, float); +DECLARE_SOA_COLUMN(PzCharmBaryon, pzCharmBaryon, float); DECLARE_SOA_COLUMN(PxCasc, pxCasc, float); DECLARE_SOA_COLUMN(PyCasc, pyCasc, float); DECLARE_SOA_COLUMN(PzCasc, pzCasc, float); -DECLARE_SOA_COLUMN(PxPrimaryPi, pxPrimaryPi, float); -DECLARE_SOA_COLUMN(PyPrimaryPi, pyPrimaryPi, float); -DECLARE_SOA_COLUMN(PzPrimaryPi, pzPrimaryPi, float); +DECLARE_SOA_COLUMN(PxPiFromCharmBaryon, pxPiFromCharmBaryon, float); +DECLARE_SOA_COLUMN(PyPiFromCharmBaryon, pyPiFromCharmBaryon, float); +DECLARE_SOA_COLUMN(PzPiFromCharmBaryon, pzPiFromCharmBaryon, float); DECLARE_SOA_COLUMN(PxLambda, pxLambda, float); DECLARE_SOA_COLUMN(PyLambda, pyLambda, float); DECLARE_SOA_COLUMN(PzLambda, pzLambda, float); @@ -1081,27 +1069,22 @@ DECLARE_SOA_COLUMN(PxNegV0Dau, pxNegV0Dau, float); DECLARE_SOA_COLUMN(PyNegV0Dau, pyNegV0Dau, float); DECLARE_SOA_COLUMN(PzNegV0Dau, pzNegV0Dau, float); DECLARE_SOA_COLUMN(ImpactParCascXY, impactParCascXY, float); -DECLARE_SOA_COLUMN(ImpactParPrimaryPiXY, impactParPrimaryPiXY, float); +DECLARE_SOA_COLUMN(ImpactParPiFromCharmBaryonXY, impactParPiFromCharmBaryonXY, float); DECLARE_SOA_COLUMN(ImpactParCascZ, impactParCascZ, float); -DECLARE_SOA_COLUMN(ImpactParPrimaryPiZ, impactParPrimaryPiZ, float); -DECLARE_SOA_COLUMN(ImpactParV0XY, impactParV0XY, float); -DECLARE_SOA_COLUMN(ImpactParV0Z, impactParV0Z, float); +DECLARE_SOA_COLUMN(ImpactParPiFromCharmBaryonZ, impactParPiFromCharmBaryonZ, float); DECLARE_SOA_COLUMN(ErrImpactParCascXY, errImpactParCascXY, float); -DECLARE_SOA_COLUMN(ErrImpactParPrimaryPiXY, errImpactParPrimaryPiXY, float); -DECLARE_SOA_COLUMN(ErrImpactParV0XY, errImpactParV0XY, float); +DECLARE_SOA_COLUMN(ErrImpactParPiFromCharmBaryonXY, errImpactParPiFromCharmBaryonXY, float); DECLARE_SOA_INDEX_COLUMN(V0, v0); DECLARE_SOA_INDEX_COLUMN(Cascade, cascade); -DECLARE_SOA_INDEX_COLUMN_FULL(PrimaryPi, primaryPi, int, Tracks, "_primarypi"); -DECLARE_SOA_COLUMN(ImpactParOmegacXY, impactParOmegacXY, float); -DECLARE_SOA_COLUMN(ImpactParOmegacZ, impactParOmegacZ, float); +DECLARE_SOA_INDEX_COLUMN_FULL(PiFromCharmBaryon, piFromCharmBaryon, int, Tracks, "_pifromcharmbaryon"); DECLARE_SOA_COLUMN(InvMassLambda, invMassLambda, double); DECLARE_SOA_COLUMN(InvMassCascade, invMassCascade, double); -DECLARE_SOA_COLUMN(InvMassOmegac, invMassOmegac, double); +DECLARE_SOA_COLUMN(InvMassCharmBaryon, invMassCharmBaryon, double); DECLARE_SOA_COLUMN(CosPAV0, cosPAV0, double); -DECLARE_SOA_COLUMN(CosPAOmegac, cosPAOmegac, double); +DECLARE_SOA_COLUMN(CosPACharmBaryon, cosPACharmBaryon, double); DECLARE_SOA_COLUMN(CosPACasc, cosPACasc, double); DECLARE_SOA_COLUMN(CosPAXYV0, cosPAXYV0, double); -DECLARE_SOA_COLUMN(CosPAXYOmegac, cosPAXYOmegac, double); +DECLARE_SOA_COLUMN(CosPAXYCharmBaryon, cosPAXYCharmBaryon, double); DECLARE_SOA_COLUMN(CosPAXYCasc, cosPAXYCasc, double); DECLARE_SOA_COLUMN(CTauOmegac, ctauOmegac, double); DECLARE_SOA_COLUMN(CTauCascade, ctauCascade, double); @@ -1110,8 +1093,8 @@ DECLARE_SOA_COLUMN(CTauXic, ctauXic, double); DECLARE_SOA_COLUMN(EtaV0PosDau, etaV0PosDau, double); DECLARE_SOA_COLUMN(EtaV0NegDau, etaV0NegDau, double); DECLARE_SOA_COLUMN(EtaPiFromCasc, etaPiFromCasc, double); -DECLARE_SOA_COLUMN(EtaPiFromOme, etaPiFromOme, double); -DECLARE_SOA_COLUMN(EtaOmegac, etaOmegac, double); +DECLARE_SOA_COLUMN(EtaPiFromCharmBaryon, etaPiFromCharmBaryon, double); +DECLARE_SOA_COLUMN(EtaCharmBaryon, etaCharmBaryon, double); DECLARE_SOA_COLUMN(EtaCascade, etaCascade, double); DECLARE_SOA_COLUMN(EtaV0, etaV0, double); DECLARE_SOA_COLUMN(DcaXYToPvV0Dau0, dcaXYToPvV0Dau0, float); @@ -1122,14 +1105,19 @@ DECLARE_SOA_COLUMN(DcaZToPvV0Dau1, dcaZToPvV0Dau1, float); DECLARE_SOA_COLUMN(DcaZToPvCascDau, dcaZToPvCascDau, float); DECLARE_SOA_COLUMN(DcaCascDau, dcaCascDau, float); DECLARE_SOA_COLUMN(DcaV0Dau, dcaV0Dau, float); -DECLARE_SOA_COLUMN(DcaOmegacDau, dcaOmegacDau, float); +DECLARE_SOA_COLUMN(DcaCharmBaryonDau, dcaCharmBaryonDau, float); +DECLARE_SOA_COLUMN(DecLenCharmBaryon, decLenCharmBaryon, double); +DECLARE_SOA_COLUMN(DecLenCascade, decLenCascade, double); +DECLARE_SOA_COLUMN(DecLenV0, decLenV0, double); +DECLARE_SOA_COLUMN(ErrorDecayLengthCharmBaryon, errorDecayLengthCharmBaryon, float); +DECLARE_SOA_COLUMN(ErrorDecayLengthXYCharmBaryon, errorDecayLengthXYCharmBaryon, float); // MC matching result: DECLARE_SOA_COLUMN(FlagMcMatchRec, flagMcMatchRec, int8_t); // reconstruction level DECLARE_SOA_COLUMN(DebugMcRec, debugMcRec, int8_t); // debug flag for mis-association reconstruction level DECLARE_SOA_COLUMN(FlagMcMatchGen, flagMcMatchGen, int8_t); // generator level DECLARE_SOA_COLUMN(DebugGenCharmBar, debugGenCharmBar, int8_t); -DECLARE_SOA_COLUMN(DebugGenXi, debugGennXi, int8_t); +DECLARE_SOA_COLUMN(DebugGenXi, debugGenXi, int8_t); DECLARE_SOA_COLUMN(DebugGenLambda, debugGenLambda, int8_t); // mapping of decay types @@ -1143,34 +1131,32 @@ enum DecayType { DecayToXiPi = 0, DECLARE_SOA_TABLE(HfCandToXiPi, "AOD", "HFCANDTOXIPI", o2::soa::Index<>, hf_cand_toxipi::CollisionId, hf_cand_toxipi::XPv, hf_cand_toxipi::YPv, hf_cand_toxipi::ZPv, - hf_cand_toxipi::XDecayVtxOmegac, hf_cand_toxipi::YDecayVtxOmegac, hf_cand_toxipi::ZDecayVtxOmegac, + hf_cand_toxipi::XDecayVtxCharmBaryon, hf_cand_toxipi::YDecayVtxCharmBaryon, hf_cand_toxipi::ZDecayVtxCharmBaryon, hf_cand_toxipi::XDecayVtxCascade, hf_cand_toxipi::YDecayVtxCascade, hf_cand_toxipi::ZDecayVtxCascade, hf_cand_toxipi::XDecayVtxV0, hf_cand_toxipi::YDecayVtxV0, hf_cand_toxipi::ZDecayVtxV0, hf_cand_toxipi::SignDecay, // charge pi<-cascade (neg -> omegac, pos -> antiomegac) - hf_cand_toxipi::Chi2PCAOmegac, - hf_cand_toxipi::CovVtxOmegac0, hf_cand_toxipi::CovVtxOmegac1, hf_cand_toxipi::CovVtxOmegac2, hf_cand_toxipi::CovVtxOmegac3, hf_cand_toxipi::CovVtxOmegac4, hf_cand_toxipi::CovVtxOmegac5, - hf_cand_toxipi::CovVtxV00, hf_cand_toxipi::CovVtxV01, hf_cand_toxipi::CovVtxV02, hf_cand_toxipi::CovVtxV03, hf_cand_toxipi::CovVtxV04, hf_cand_toxipi::CovVtxV05, - hf_cand_toxipi::CovVtxCasc0, hf_cand_toxipi::CovVtxCasc1, hf_cand_toxipi::CovVtxCasc2, hf_cand_toxipi::CovVtxCasc3, hf_cand_toxipi::CovVtxCasc4, hf_cand_toxipi::CovVtxCasc5, - hf_cand_toxipi::PxOmegac, hf_cand_toxipi::PyOmegac, hf_cand_toxipi::PzOmegac, + hf_cand_toxipi::Chi2PCACharmBaryon, + hf_cand_toxipi::CovVtxCharmBaryon0, hf_cand_toxipi::CovVtxCharmBaryon1, hf_cand_toxipi::CovVtxCharmBaryon2, hf_cand_toxipi::CovVtxCharmBaryon3, hf_cand_toxipi::CovVtxCharmBaryon4, hf_cand_toxipi::CovVtxCharmBaryon5, + hf_cand_toxipi::PxCharmBaryon, hf_cand_toxipi::PyCharmBaryon, hf_cand_toxipi::PzCharmBaryon, hf_cand_toxipi::PxCasc, hf_cand_toxipi::PyCasc, hf_cand_toxipi::PzCasc, - hf_cand_toxipi::PxPrimaryPi, hf_cand_toxipi::PyPrimaryPi, hf_cand_toxipi::PzPrimaryPi, + hf_cand_toxipi::PxPiFromCharmBaryon, hf_cand_toxipi::PyPiFromCharmBaryon, hf_cand_toxipi::PzPiFromCharmBaryon, hf_cand_toxipi::PxLambda, hf_cand_toxipi::PyLambda, hf_cand_toxipi::PzLambda, hf_cand_toxipi::PxPiFromCasc, hf_cand_toxipi::PyPiFromCasc, hf_cand_toxipi::PzPiFromCasc, hf_cand_toxipi::PxPosV0Dau, hf_cand_toxipi::PyPosV0Dau, hf_cand_toxipi::PzPosV0Dau, hf_cand_toxipi::PxNegV0Dau, hf_cand_toxipi::PyNegV0Dau, hf_cand_toxipi::PzNegV0Dau, - hf_cand_toxipi::ImpactParCascXY, hf_cand_toxipi::ImpactParPrimaryPiXY, hf_cand_toxipi::ImpactParCascZ, hf_cand_toxipi::ImpactParPrimaryPiZ, - hf_cand_toxipi::ImpactParV0XY, hf_cand_toxipi::ImpactParV0Z, - hf_cand_toxipi::ErrImpactParCascXY, hf_cand_toxipi::ErrImpactParPrimaryPiXY, hf_cand_toxipi::ErrImpactParV0XY, - hf_cand_toxipi::V0Id, v0data::PosTrackId, v0data::NegTrackId, hf_cand_toxipi::CascadeId, hf_cand_toxipi::PrimaryPiId, cascdata::BachelorId, - hf_cand_toxipi::ImpactParOmegacXY, hf_cand_toxipi::ImpactParOmegacZ, - hf_cand_toxipi::InvMassLambda, hf_cand_toxipi::InvMassCascade, hf_cand_toxipi::InvMassOmegac, - hf_cand_toxipi::CosPAV0, hf_cand_toxipi::CosPAOmegac, hf_cand_toxipi::CosPACasc, hf_cand_toxipi::CosPAXYV0, hf_cand_toxipi::CosPAXYOmegac, hf_cand_toxipi::CosPAXYCasc, + hf_cand_toxipi::ImpactParCascXY, hf_cand_toxipi::ImpactParPiFromCharmBaryonXY, hf_cand_toxipi::ImpactParCascZ, hf_cand_toxipi::ImpactParPiFromCharmBaryonZ, + hf_cand_toxipi::ErrImpactParCascXY, hf_cand_toxipi::ErrImpactParPiFromCharmBaryonXY, + hf_cand_toxipi::V0Id, v0data::PosTrackId, v0data::NegTrackId, hf_cand_toxipi::CascadeId, hf_cand_toxipi::PiFromCharmBaryonId, cascdata::BachelorId, + hf_cand_toxipi::InvMassLambda, hf_cand_toxipi::InvMassCascade, hf_cand_toxipi::InvMassCharmBaryon, + hf_cand_toxipi::CosPAV0, hf_cand_toxipi::CosPACharmBaryon, hf_cand_toxipi::CosPACasc, hf_cand_toxipi::CosPAXYV0, hf_cand_toxipi::CosPAXYCharmBaryon, hf_cand_toxipi::CosPAXYCasc, hf_cand_toxipi::CTauOmegac, hf_cand_toxipi::CTauCascade, hf_cand_toxipi::CTauV0, hf_cand_toxipi::CTauXic, - hf_cand_toxipi::EtaV0PosDau, hf_cand_toxipi::EtaV0NegDau, hf_cand_toxipi::EtaPiFromCasc, hf_cand_toxipi::EtaPiFromOme, - hf_cand_toxipi::EtaOmegac, hf_cand_toxipi::EtaCascade, hf_cand_toxipi::EtaV0, + hf_cand_toxipi::EtaV0PosDau, hf_cand_toxipi::EtaV0NegDau, hf_cand_toxipi::EtaPiFromCasc, hf_cand_toxipi::EtaPiFromCharmBaryon, + hf_cand_toxipi::EtaCharmBaryon, hf_cand_toxipi::EtaCascade, hf_cand_toxipi::EtaV0, hf_cand_toxipi::DcaXYToPvV0Dau0, hf_cand_toxipi::DcaXYToPvV0Dau1, hf_cand_toxipi::DcaXYToPvCascDau, hf_cand_toxipi::DcaZToPvV0Dau0, hf_cand_toxipi::DcaZToPvV0Dau1, hf_cand_toxipi::DcaZToPvCascDau, - hf_cand_toxipi::DcaCascDau, hf_cand_toxipi::DcaV0Dau, hf_cand_toxipi::DcaOmegacDau, hf_track_index::HFflag); + hf_cand_toxipi::DcaCascDau, hf_cand_toxipi::DcaV0Dau, hf_cand_toxipi::DcaCharmBaryonDau, + hf_cand_toxipi::DecLenCharmBaryon, hf_cand_toxipi::DecLenCascade, hf_cand_toxipi::DecLenV0, hf_cand_toxipi::ErrorDecayLengthCharmBaryon, hf_cand_toxipi::ErrorDecayLengthXYCharmBaryon, + hf_track_index::HFflag); // table with results of reconstruction level MC matching DECLARE_SOA_TABLE(HfToXiPiMCRec, "AOD", "HFTOXIPIMCREC", //! diff --git a/PWGHF/DataModel/CandidateSelectionTables.h b/PWGHF/DataModel/CandidateSelectionTables.h index b27dacb5113..48498a5f208 100644 --- a/PWGHF/DataModel/CandidateSelectionTables.h +++ b/PWGHF/DataModel/CandidateSelectionTables.h @@ -285,16 +285,16 @@ namespace hf_sel_toxipi { DECLARE_SOA_COLUMN(StatusPidLambda, statusPidLambda, bool); DECLARE_SOA_COLUMN(StatusPidCascade, statusPidCascade, bool); -DECLARE_SOA_COLUMN(StatusPidOmegac, statusPidOmegac, bool); +DECLARE_SOA_COLUMN(StatusPidCharmBaryon, statusPidCharmBaryon, bool); DECLARE_SOA_COLUMN(StatusInvMassLambda, statusInvMassLambda, bool); DECLARE_SOA_COLUMN(StatusInvMassCascade, statusInvMassCascade, bool); -DECLARE_SOA_COLUMN(StatusInvMassOmegac, statusInvMassOmegac, bool); +DECLARE_SOA_COLUMN(StatusInvMassCharmBaryon, statusInvMassCharmBaryon, bool); DECLARE_SOA_COLUMN(ResultSelections, resultSelections, bool); -DECLARE_SOA_COLUMN(TpcNSigmaPiFromOmega, tpcNSigmaPiFromOmega, float); +DECLARE_SOA_COLUMN(TpcNSigmaPiFromCharmBaryon, tpcNSigmaPiFromCharmBaryon, float); DECLARE_SOA_COLUMN(TpcNSigmaPiFromCasc, tpcNSigmaPiFromCasc, float); DECLARE_SOA_COLUMN(TpcNSigmaPiFromLambda, tpcNSigmaPiFromLambda, float); DECLARE_SOA_COLUMN(TpcNSigmaPrFromLambda, tpcNSigmaPrFromLambda, float); -DECLARE_SOA_COLUMN(TofNSigmaPiFromOmega, tofNSigmaPiFromOmega, float); +DECLARE_SOA_COLUMN(TofNSigmaPiFromCharmBaryon, tofNSigmaPiFromCharmBaryon, float); DECLARE_SOA_COLUMN(TofNSigmaPiFromCasc, tofNSigmaPiFromCasc, float); DECLARE_SOA_COLUMN(TofNSigmaPiFromLambda, tofNSigmaPiFromLambda, float); DECLARE_SOA_COLUMN(TofNSigmaPrFromLambda, tofNSigmaPrFromLambda, float); @@ -303,11 +303,11 @@ DECLARE_SOA_COLUMN(PidTofInfoStored, pidTofInfoStored, int); } // namespace hf_sel_toxipi DECLARE_SOA_TABLE(HfSelToXiPi, "AOD", "HFSELTOXIPI", - hf_sel_toxipi::StatusPidLambda, hf_sel_toxipi::StatusPidCascade, hf_sel_toxipi::StatusPidOmegac, - hf_sel_toxipi::StatusInvMassLambda, hf_sel_toxipi::StatusInvMassCascade, hf_sel_toxipi::StatusInvMassOmegac, + hf_sel_toxipi::StatusPidLambda, hf_sel_toxipi::StatusPidCascade, hf_sel_toxipi::StatusPidCharmBaryon, + hf_sel_toxipi::StatusInvMassLambda, hf_sel_toxipi::StatusInvMassCascade, hf_sel_toxipi::StatusInvMassCharmBaryon, hf_sel_toxipi::ResultSelections, hf_sel_toxipi::PidTpcInfoStored, hf_sel_toxipi::PidTofInfoStored, - hf_sel_toxipi::TpcNSigmaPiFromOmega, hf_sel_toxipi::TpcNSigmaPiFromCasc, hf_sel_toxipi::TpcNSigmaPiFromLambda, hf_sel_toxipi::TpcNSigmaPrFromLambda, - hf_sel_toxipi::TofNSigmaPiFromOmega, hf_sel_toxipi::TofNSigmaPiFromCasc, hf_sel_toxipi::TofNSigmaPiFromLambda, hf_sel_toxipi::TofNSigmaPrFromLambda); + hf_sel_toxipi::TpcNSigmaPiFromCharmBaryon, hf_sel_toxipi::TpcNSigmaPiFromCasc, hf_sel_toxipi::TpcNSigmaPiFromLambda, hf_sel_toxipi::TpcNSigmaPrFromLambda, + hf_sel_toxipi::TofNSigmaPiFromCharmBaryon, hf_sel_toxipi::TofNSigmaPiFromCasc, hf_sel_toxipi::TofNSigmaPiFromLambda, hf_sel_toxipi::TofNSigmaPrFromLambda); } // namespace o2::aod diff --git a/PWGHF/TableProducer/candidateCreatorToXiPi.cxx b/PWGHF/TableProducer/candidateCreatorToXiPi.cxx index a100cb2c875..e68c582d109 100644 --- a/PWGHF/TableProducer/candidateCreatorToXiPi.cxx +++ b/PWGHF/TableProducer/candidateCreatorToXiPi.cxx @@ -11,8 +11,7 @@ /// \file candidateCreatorToXiPi.cxx /// \brief Reconstruction of Omegac0 and Xic0 -> xi pi candidates -/// \author Federica Zanone , HEIDELBERG UNIVERSITY & GSI - +/// \author Federica Zanone , Heidelberg University #include "CCDB/BasicCCDBManager.h" #include "DataFormatsParameters/GRPMagField.h" #include "DataFormatsParameters/GRPObject.h" @@ -47,7 +46,7 @@ using namespace o2::aod::v0data; using namespace o2::framework; using namespace o2::framework::expressions; -// Reconstruction of omegac candidates +// Reconstruction of omegac0 and xic0 candidates struct HfCandidateCreatorToXiPi { Produces rowCandidate; @@ -96,7 +95,7 @@ struct HfCandidateCreatorToXiPi { Preslice trackIndicesPerCollision = aod::track_association::collisionId; // aod::hf_track_association::collisionId Preslice cascadesPerCollision = aod::cascdata::collisionId; - OutputObj hInvMassOmegac{TH1F("hInvMassOmegac", "Omegac invariant mass;inv mass;entries", 500, 2.2, 3.1)}; + OutputObj hInvMassCharmBaryon{TH1F("hInvMassCharmBaryon", "Charm baryon invariant mass;inv mass;entries", 500, 2.2, 3.1)}; void init(InitContext const&) { @@ -116,6 +115,24 @@ struct HfCandidateCreatorToXiPi { aod::V0sLinked const&) { + double massPionFromPDG = o2::analysis::pdg::MassPiPlus; // pdg code 211 + double massLambdaFromPDG = o2::analysis::pdg::MassLambda0; // pdg code 3122 + double massXiFromPDG = o2::analysis::pdg::MassXiMinus; // pdg code 3312 + double massOmegacFromPDG = o2::analysis::pdg::MassOmegaC0; // pdg code 4332 + double massXicFromPDG = o2::analysis::pdg::MassXiCZero; // pdg code 4132 + + // 2-prong vertex fitter to build the omegac/xic vertex + o2::vertexing::DCAFitterN<2> df; + df.setPropagateToPCA(propagateToPCA); + df.setMaxR(maxR); + df.setMaxDZIni(maxDZIni); + df.setMaxDXYIni(maxDXYIni); + df.setMinParamChange(minParamChange); + df.setMinRelChi2Change(minRelChi2Change); + df.setMaxChi2(maxChi2); + df.setUseAbsDCA(useAbsDCA); + df.setWeightedFinalPCA(useWeightedFinalPCA); + for (const auto& collision : collisions) { // set the magnetic field from CCDB @@ -123,26 +140,9 @@ struct HfCandidateCreatorToXiPi { initCCDB(bc, runNumber, ccdb, isRun2 ? ccdbPathGrp : ccdbPathGrpMag, lut, isRun2); auto magneticField = o2::base::Propagator::Instance()->getNominalBz(); // z component - // 2-prong vertex fitter to build the omegac vertex - o2::vertexing::DCAFitterN<2> df; df.setBz(magneticField); - df.setPropagateToPCA(propagateToPCA); - df.setMaxR(maxR); - df.setMaxDZIni(maxDZIni); - df.setMaxDXYIni(maxDXYIni); - df.setMinParamChange(minParamChange); - df.setMinRelChi2Change(minRelChi2Change); - df.setMaxChi2(maxChi2); - df.setUseAbsDCA(useAbsDCA); - df.setWeightedFinalPCA(useWeightedFinalPCA); df.setRefitWithMatCorr(refitWithMatCorr); - double massPionFromPDG = o2::analysis::pdg::MassPiPlus; // pdg code 211 - double massLambdaFromPDG = o2::analysis::pdg::MassLambda0; // pdg code 3122 - double massXiFromPDG = o2::analysis::pdg::MassXiMinus; // pdg code 3312 - double massOmegacFromPDG = o2::analysis::pdg::MassOmegaC0; // pdg code 4332 - double massXicFromPDG = o2::analysis::pdg::MassXiCZero; // pdg code 4132 - // loop over cascades reconstructed by cascadebuilder.cxx auto thisCollId = collision.globalIndex(); auto groupedCascades = cascades.sliceBy(cascadesPerCollision, thisCollId); @@ -181,7 +181,7 @@ struct HfCandidateCreatorToXiPi { } } - //--------------------------reconstruct V0 track--------------------------- + //-------------------------- V0 info--------------------------- // pseudorapidity double pseudorapV0PosDau = trackV0Dau0.eta(); double pseudorapV0NegDau = trackV0Dau1.eta(); @@ -193,22 +193,9 @@ struct HfCandidateCreatorToXiPi { // info from LF table std::array pVecV0 = {casc.pxlambda(), casc.pylambda(), casc.pzlambda()}; // pVec stands for vector containing the 3-momentum components std::array vertexV0 = {casc.xlambda(), casc.ylambda(), casc.zlambda()}; - std::array covV0 = {0.}; - constexpr int MomInd[6] = {9, 13, 14, 18, 19, 20}; // cov matrix elements for momentum component - for (int i = 0; i < 6; i++) { - covV0[MomInd[i]] = v0Element.momentumCovMat()[i]; - covV0[i] = v0Element.positionCovMat()[i]; - } - // create V0 track - auto trackV0 = o2::track::TrackParCov(vertexV0, pVecV0, covV0, 0, true); - trackV0.setAbsCharge(0); - trackV0.setPID(o2::track::PID::Lambda); - std::array pVecV0Dau0 = {casc.pxpos(), casc.pypos(), casc.pzpos()}; std::array pVecV0Dau1 = {casc.pxneg(), casc.pyneg(), casc.pzneg()}; - auto trackV0Copy = trackV0; - //-----------------------------reconstruct cascade track----------------------------- // pseudorapidity double pseudorapPiFromCas = trackXiDauCharged.eta(); @@ -220,6 +207,7 @@ struct HfCandidateCreatorToXiPi { std::array vertexCasc = {casc.x(), casc.y(), casc.z()}; std::array pVecCasc = {casc.px(), casc.py(), casc.pz()}; std::array covCasc = {0.}; + constexpr int MomInd[6] = {9, 13, 14, 18, 19, 20}; // cov matrix elements for momentum component for (int i = 0; i < 6; i++) { covCasc[MomInd[i]] = casc.momentumCovMat()[i]; covCasc[i] = casc.positionCovMat()[i]; @@ -238,8 +226,6 @@ struct HfCandidateCreatorToXiPi { std::array pVecPionFromCasc = {casc.pxbach(), casc.pybach(), casc.pzbach()}; - auto trackCascCopy = trackCasc; - //-------------------combining cascade and pion tracks-------------------------- auto groupedTrackIndices = trackIndices.sliceBy(trackIndicesPerCollision, thisCollId); for (const auto& trackIndexPion : groupedTrackIndices) { @@ -250,7 +236,7 @@ struct HfCandidateCreatorToXiPi { continue; } - // ask for opposite sign daughters (omegac daughters) + // ask for opposite sign daughters (charm baryon daughters) if (trackPion.sign() * trackXiDauCharged.sign() >= 0) { continue; } @@ -261,35 +247,30 @@ struct HfCandidateCreatorToXiPi { } // pseudorapidity - double pseudorapPiFromOme = trackPion.eta(); + double pseudorapPiFromCharmBaryon = trackPion.eta(); - // primary pion track to be processed with DCAFitter + // charm bachelor pion track to be processed with DCAFitter auto trackParVarPi = getTrackParCov(trackPion); - auto trackParVarPiCopy = trackParVarPi; - // reconstruct omegac with DCAFitter - int nVtxFromFitterOmegac = df.process(trackCasc, trackParVarPi); - if (nVtxFromFitterOmegac == 0) { + // reconstruct charm baryon with DCAFitter + int nVtxFromFitterCharmBaryon = df.process(trackCasc, trackParVarPi); + if (nVtxFromFitterCharmBaryon == 0) { continue; } - auto vertexOmegacFromFitter = df.getPCACandidate(); - auto chi2PCAOmegac = df.getChi2AtPCACandidate(); + auto vertexCharmBaryonFromFitter = df.getPCACandidate(); + auto chi2PCACharmBaryon = df.getChi2AtPCACandidate(); std::array pVecCascAsD; - std::array pVecPionFromOmegac; + std::array pVecPionFromCharmBaryon; df.propagateTracksToVertex(); if (!df.isPropagateTracksToVertexDone()) { continue; } df.getTrack(0).getPxPyPzGlo(pVecCascAsD); - df.getTrack(1).getPxPyPzGlo(pVecPionFromOmegac); - std::array pVecOmegac = {pVecCascAsD[0] + pVecPionFromOmegac[0], pVecCascAsD[1] + pVecPionFromOmegac[1], pVecCascAsD[2] + pVecPionFromOmegac[2]}; + df.getTrack(1).getPxPyPzGlo(pVecPionFromCharmBaryon); + std::array pVecCharmBaryon = {pVecCascAsD[0] + pVecPionFromCharmBaryon[0], pVecCascAsD[1] + pVecPionFromCharmBaryon[1], pVecCascAsD[2] + pVecPionFromCharmBaryon[2]}; - std::array coordVtxOmegac = df.getPCACandidatePos(); - std::array covVtxOmegac = df.calcPCACovMatrixFlat(); - - // create omegac track - o2::track::TrackParCov trackOmegac = df.createParentTrackParCov(); - trackOmegac.setAbsCharge(0); + std::array coordVtxCharmBaryon = df.getPCACandidatePos(); + std::array covVtxCharmBaryon = df.calcPCACovMatrixFlat(); // DCAxy (computed with propagateToDCABxByBz method) float dcaxyV0Dau0 = trackV0Dau0.dcaXY(); @@ -332,85 +313,87 @@ struct HfCandidateCreatorToXiPi { // impact parameters o2::dataformats::DCA impactParameterCasc; - o2::dataformats::DCA impactParameterPrimaryPi; - o2::dataformats::DCA impactParameterV0; - o2::dataformats::DCA impactParameterOmegac; - o2::base::Propagator::Instance()->propagateToDCABxByBz(primaryVertex, trackCascCopy, 2.f, matCorr, &impactParameterCasc); - o2::base::Propagator::Instance()->propagateToDCABxByBz(primaryVertex, trackParVarPiCopy, 2.f, matCorr, &impactParameterPrimaryPi); - o2::base::Propagator::Instance()->propagateToDCABxByBz(primaryVertex, trackV0Copy, 2.f, matCorr, &impactParameterV0); - o2::base::Propagator::Instance()->propagateToDCABxByBz(primaryVertex, trackOmegac, 2.f, matCorr, &impactParameterOmegac); + o2::dataformats::DCA impactParameterPiFromCharmBaryon; + o2::base::Propagator::Instance()->propagateToDCABxByBz(primaryVertex, trackCasc, 2.f, matCorr, &impactParameterCasc); + o2::base::Propagator::Instance()->propagateToDCABxByBz(primaryVertex, trackParVarPi, 2.f, matCorr, &impactParameterPiFromCharmBaryon); + float impactParPiFromCharmBaryonXY = impactParameterPiFromCharmBaryon.getY(); + float impactParPiFromCharmBaryonZ = impactParameterPiFromCharmBaryon.getZ(); // invariant mass under the hypothesis of particles ID corresponding to the decay chain double mLambda = casc.mLambda(); // from LF table, V0 mass under lambda hypothesis double mCasc = casc.mXi(); - const std::array arrMassOmegac = {massXiFromPDG, massPionFromPDG}; - double mOmegac = RecoDecay::m(std::array{pVecCascAsD, pVecPionFromOmegac}, arrMassOmegac); + const std::array arrMassCharmBaryon = {massXiFromPDG, massPionFromPDG}; + double mCharmBaryon = RecoDecay::m(std::array{pVecCascAsD, pVecPionFromCharmBaryon}, arrMassCharmBaryon); // computing cosPA double cpaV0 = RecoDecay::cpa(vertexCasc, vertexV0, pVecV0); - double cpaOmegac = RecoDecay::cpa(pvCoord, coordVtxOmegac, pVecOmegac); - double cpaCasc = RecoDecay::cpa(coordVtxOmegac, vertexCasc, pVecCasc); + double cpaCharmBaryon = RecoDecay::cpa(pvCoord, coordVtxCharmBaryon, pVecCharmBaryon); + double cpaCasc = RecoDecay::cpa(coordVtxCharmBaryon, vertexCasc, pVecCasc); double cpaxyV0 = RecoDecay::cpaXY(vertexCasc, vertexV0, pVecV0); - double cpaxyOmegac = RecoDecay::cpaXY(pvCoord, coordVtxOmegac, pVecOmegac); - double cpaxyCasc = RecoDecay::cpaXY(coordVtxOmegac, vertexCasc, pVecCasc); + double cpaxyCharmBaryon = RecoDecay::cpaXY(pvCoord, coordVtxCharmBaryon, pVecCharmBaryon); + double cpaxyCasc = RecoDecay::cpaXY(coordVtxCharmBaryon, vertexCasc, pVecCasc); // computing decay length and ctau - double decLenOmegac = RecoDecay::distance(pvCoord, coordVtxOmegac); - double decLenCascade = RecoDecay::distance(coordVtxOmegac, vertexCasc); + double decLenCharmBaryon = RecoDecay::distance(pvCoord, coordVtxCharmBaryon); + double decLenCascade = RecoDecay::distance(coordVtxCharmBaryon, vertexCasc); double decLenV0 = RecoDecay::distance(vertexCasc, vertexV0); - double ctOmegac = RecoDecay::ct(pVecOmegac, decLenOmegac, massOmegacFromPDG); - double ctXic = RecoDecay::ct(pVecOmegac, decLenOmegac, massXicFromPDG); + + double phiCharmBaryon, thetaCharmBaryon; + getPointDirection(std::array{primaryVertex.getX(), primaryVertex.getY(), primaryVertex.getZ()}, coordVtxCharmBaryon, phiCharmBaryon, thetaCharmBaryon); + auto errorDecayLengthCharmBaryon = std::sqrt(getRotatedCovMatrixXX(primaryVertex.getCov(), phiCharmBaryon, thetaCharmBaryon) + getRotatedCovMatrixXX(covVtxCharmBaryon, phiCharmBaryon, thetaCharmBaryon)); + auto errorDecayLengthXYCharmBaryon = std::sqrt(getRotatedCovMatrixXX(primaryVertex.getCov(), phiCharmBaryon, 0.) + getRotatedCovMatrixXX(covVtxCharmBaryon, phiCharmBaryon, 0.)); + + double ctOmegac = RecoDecay::ct(pVecCharmBaryon, decLenCharmBaryon, massOmegacFromPDG); + double ctXic = RecoDecay::ct(pVecCharmBaryon, decLenCharmBaryon, massXicFromPDG); double ctCascade = RecoDecay::ct(pVecCasc, decLenCascade, massXiFromPDG); double ctV0 = RecoDecay::ct(pVecV0, decLenV0, massLambdaFromPDG); // computing eta - double pseudorapOmegac = RecoDecay::eta(pVecOmegac); + double pseudorapCharmBaryon = RecoDecay::eta(pVecCharmBaryon); double pseudorapCascade = RecoDecay::eta(pVecCasc); double pseudorapV0 = RecoDecay::eta(pVecV0); // DCA between daughters float dcaCascDau = casc.dcacascdaughters(); float dcaV0Dau = casc.dcaV0daughters(); - float dcaOmegacDau = std::sqrt(df.getChi2AtPCACandidate()); + float dcaCharmBaryonDau = std::sqrt(df.getChi2AtPCACandidate()); // set hfFlag int hfFlag = 1 << aod::hf_cand_toxipi::DecayType::DecayToXiPi; // fill test histograms - hInvMassOmegac->Fill(mOmegac); + hInvMassCharmBaryon->Fill(mCharmBaryon); // fill the table rowCandidate(collision.globalIndex(), pvCoord[0], pvCoord[1], pvCoord[2], - vertexOmegacFromFitter[0], vertexOmegacFromFitter[1], vertexOmegacFromFitter[2], + vertexCharmBaryonFromFitter[0], vertexCharmBaryonFromFitter[1], vertexCharmBaryonFromFitter[2], vertexCasc[0], vertexCasc[1], vertexCasc[2], vertexV0[0], vertexV0[1], vertexV0[2], trackXiDauCharged.sign(), - chi2PCAOmegac, covVtxOmegac[0], covVtxOmegac[1], covVtxOmegac[2], covVtxOmegac[3], covVtxOmegac[4], covVtxOmegac[5], - covV0[0], covV0[1], covV0[2], covV0[3], covV0[4], covV0[5], - covCasc[0], covCasc[1], covCasc[2], covCasc[3], covCasc[4], covCasc[5], - pVecOmegac[0], pVecOmegac[1], pVecOmegac[2], + chi2PCACharmBaryon, covVtxCharmBaryon[0], covVtxCharmBaryon[1], covVtxCharmBaryon[2], covVtxCharmBaryon[3], covVtxCharmBaryon[4], covVtxCharmBaryon[5], + pVecCharmBaryon[0], pVecCharmBaryon[1], pVecCharmBaryon[2], pVecCasc[0], pVecCasc[1], pVecCasc[2], - pVecPionFromOmegac[0], pVecPionFromOmegac[1], pVecPionFromOmegac[2], + pVecPionFromCharmBaryon[0], pVecPionFromCharmBaryon[1], pVecPionFromCharmBaryon[2], pVecV0[0], pVecV0[1], pVecV0[2], pVecPionFromCasc[0], pVecPionFromCasc[1], pVecPionFromCasc[2], pVecV0Dau0[0], pVecV0Dau0[1], pVecV0Dau0[2], pVecV0Dau1[0], pVecV0Dau1[1], pVecV0Dau1[2], - impactParameterCasc.getY(), impactParameterPrimaryPi.getY(), - impactParameterCasc.getZ(), impactParameterPrimaryPi.getZ(), - impactParameterV0.getY(), impactParameterV0.getZ(), - std::sqrt(impactParameterCasc.getSigmaY2()), std::sqrt(impactParameterPrimaryPi.getSigmaY2()), std::sqrt(impactParameterV0.getSigmaY2()), + impactParameterCasc.getY(), impactParPiFromCharmBaryonXY, + impactParameterCasc.getZ(), impactParPiFromCharmBaryonZ, + std::sqrt(impactParameterCasc.getSigmaY2()), std::sqrt(impactParameterPiFromCharmBaryon.getSigmaY2()), v0Element.globalIndex(), v0Element.posTrackId(), v0Element.negTrackId(), casc.globalIndex(), trackPion.globalIndex(), trackXiDauCharged.globalIndex(), - impactParameterOmegac.getY(), impactParameterOmegac.getZ(), - mLambda, mCasc, mOmegac, - cpaV0, cpaOmegac, cpaCasc, cpaxyV0, cpaxyOmegac, cpaxyCasc, + mLambda, mCasc, mCharmBaryon, + cpaV0, cpaCharmBaryon, cpaCasc, cpaxyV0, cpaxyCharmBaryon, cpaxyCasc, ctOmegac, ctCascade, ctV0, ctXic, - pseudorapV0PosDau, pseudorapV0NegDau, pseudorapPiFromCas, pseudorapPiFromOme, - pseudorapOmegac, pseudorapCascade, pseudorapV0, + pseudorapV0PosDau, pseudorapV0NegDau, pseudorapPiFromCas, pseudorapPiFromCharmBaryon, + pseudorapCharmBaryon, pseudorapCascade, pseudorapV0, dcaxyV0Dau0, dcaxyV0Dau1, dcaxyPiFromCasc, dcazV0Dau0, dcazV0Dau1, dcazPiFromCasc, - dcaCascDau, dcaV0Dau, dcaOmegacDau, hfFlag); + dcaCascDau, dcaV0Dau, dcaCharmBaryonDau, + decLenCharmBaryon, decLenCascade, decLenV0, errorDecayLengthCharmBaryon, errorDecayLengthXYCharmBaryon, + hfFlag); } // loop over pions } // loop over cascades @@ -460,10 +443,10 @@ struct HfCandidateCreatorToXiPiMc { flag = 0; // origin = 0; debug = 0; - auto arrayDaughters = std::array{candidate.primaryPi_as(), // pi <- omegac - candidate.bachelor_as(), // pi <- cascade - candidate.posTrack_as(), // p <- lambda - candidate.negTrack_as()}; // pi <- lambda + auto arrayDaughters = std::array{candidate.piFromCharmBaryon_as(), // pi <- charm baryon + candidate.bachelor_as(), // pi <- cascade + candidate.posTrack_as(), // p <- lambda + candidate.negTrack_as()}; // pi <- lambda auto arrayDaughtersCasc = std::array{candidate.bachelor_as(), candidate.posTrack_as(), candidate.negTrack_as()}; diff --git a/PWGHF/TableProducer/candidateSelectorToXiPi.cxx b/PWGHF/TableProducer/candidateSelectorToXiPi.cxx index e647777c691..7962224f4d3 100644 --- a/PWGHF/TableProducer/candidateSelectorToXiPi.cxx +++ b/PWGHF/TableProducer/candidateSelectorToXiPi.cxx @@ -9,9 +9,9 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. -/// \file candidateSelectorOmegac.cxx -/// \brief Xic and Omegac → Xi Pi selection task -/// \author Federica Zanone , Heidelberg University & GSI +/// \file candidateSelectorToXiPi.cxx +/// \brief Xic0 and Omegac0 → Xi Pi selection task +/// \author Federica Zanone , Heidelberg University #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" @@ -34,36 +34,36 @@ enum pidInfoStored { kPiFromCharm }; -/// Struct for applying Omegac selection cuts +/// Struct for applying Omegac0/Xic0 selection cuts struct HfCandidateSelectorToXiPi { Produces hfSelToXiPi; // LF analysis selections // zPV -> can be already set in HFeventselection -> 10 cm // sel8 -> can be already set in HFeventselection -> true - Configurable radiusCascMin{"radiusCascMin", 0.5, "Min cascade radius"}; - Configurable radiusV0Min{"radiusV0Min", 2, "Min V0 radius"}; - Configurable cosPAV0Min{"cosPAV0Min", 0.95, "Min valueCosPA V0"}; - Configurable cosPACascMin{"cosPACascMin", 0.95, "Min value CosPA cascade"}; - Configurable dcaCascDauMax{"dcaCascDauMax", 5.0, "Max DCA cascade daughters"}; - Configurable dcaV0DauMax{"dcaV0DauMax", 5.0, "Max DCA V0 daughters"}; + Configurable radiusCascMin{"radiusCascMin", 0.6, "Min cascade radius"}; + Configurable radiusV0Min{"radiusV0Min", 1.2, "Min V0 radius"}; + Configurable cosPAV0Min{"cosPAV0Min", 0.97, "Min valueCosPA V0"}; + Configurable cosPACascMin{"cosPACascMin", 0.97, "Min value CosPA cascade"}; + Configurable dcaCascDauMax{"dcaCascDauMax", 1.0, "Max DCA cascade daughters"}; + Configurable dcaV0DauMax{"dcaV0DauMax", 1.0, "Max DCA V0 daughters"}; - Configurable dcaOmegacDauMax{"dcaOmegacDauMax", 5.0, "Max DCA omegac daughters"}; + Configurable dcaCharmBaryonDauMax{"dcaCharmBaryonDauMax", 2.0, "Max DCA charm baryon daughters"}; // limit charm baryon invariant mass spectrum - Configurable invMassOmegacMin{"invMassOmegacMin", 2.0, "Lower limit invariant mass spectrum charm baryon"}; // 2.4 Omegac0 only - Configurable invMassOmegacMax{"invMassOmegacMax", 3.1, "Upper limit invariant mass spectrum charm baryon"}; + Configurable invMassCharmBaryonMin{"invMassCharmBaryonMin", 2.0, "Lower limit invariant mass spectrum charm baryon"}; // 2.4 Omegac0 only + Configurable invMassCharmBaryonMax{"invMassCharmBaryonMax", 3.1, "Upper limit invariant mass spectrum charm baryon"}; // kinematic selections Configurable etaTrackCharmBachMax{"etaTrackCharmBachMax", 0.8, "Max absolute value of eta for charm baryon bachelor"}; Configurable etaTrackLFDauMax{"etaTrackLFDauMax", 1.0, "Max absolute value of eta for V0 and cascade daughters"}; Configurable ptPiFromCascMin{"ptPiFromCascMin", 0.15, "Min pT pi <- casc"}; - Configurable ptPiFromOmeMin{"ptPiFromOmeMin", 0.2, "Min pT pi <- omegac"}; + Configurable ptPiFromCharmBaryonMin{"ptPiFromCharmBaryonMin", 0.2, "Min pT pi <- charm baryon"}; - Configurable impactParameterXYPriPiMin{"impactParameterXYPriPiMin", 0., "Min dcaxy primary pi track to PV"}; - Configurable impactParameterXYPriPiMax{"impactParameterXYPriPiMax", 10., "Max dcaxy primary pi track to PV"}; - Configurable impactParameterZPriPiMin{"impactParameterZPriPiMin", 0., "Min dcaz primary pi track to PV"}; - Configurable impactParameterZPriPiMax{"impactParameterZPriPiMax", 10., "Max dcaz primary pi track to PV"}; + Configurable impactParameterXYPiFromCharmBaryonMin{"impactParameterXYPiFromCharmBaryonMin", 0., "Min dcaxy pi from charm baryon track to PV"}; + Configurable impactParameterXYPiFromCharmBaryonMax{"impactParameterXYPiFromCharmBaryonMax", 10., "Max dcaxy pi from charm baryon track to PV"}; + Configurable impactParameterZPiFromCharmBaryonMin{"impactParameterZPiFromCharmBaryonMin", 0., "Min dcaz pi from charm baryon track to PV"}; + Configurable impactParameterZPiFromCharmBaryonMax{"impactParameterZPiFromCharmBaryonMax", 10., "Max dcaz pi from charm baryon track to PV"}; Configurable impactParameterXYCascMin{"impactParameterXYCascMin", 0., "Min dcaxy cascade track to PV"}; Configurable impactParameterXYCascMax{"impactParameterXYCascMax", 10., "Max dcaxy cascade track to PV"}; @@ -74,28 +74,28 @@ struct HfCandidateSelectorToXiPi { Configurable ptCandMax{"ptCandMax", 50., "Upper bound of candidate pT"}; // PID options - Configurable usePidTpcOnly{"usePidTpcOnly", true, "Perform PID using only TPC"}; - Configurable usePidTpcTofCombined{"usePidTpcTofCombined", false, "Perform PID using TPC & TOF"}; + Configurable usePidTpcOnly{"usePidTpcOnly", false, "Perform PID using only TPC"}; + Configurable usePidTpcTofCombined{"usePidTpcTofCombined", true, "Perform PID using TPC & TOF"}; // PID - TPC selections - Configurable ptPiPidTpcMin{"ptPiPidTpcMin", 0.1, "Lower bound of track pT for TPC PID for pion selection"}; - Configurable ptPiPidTpcMax{"ptPiPidTpcMax", 999.9, "Upper bound of track pT for TPC PID for pion selection"}; + Configurable ptPiPidTpcMin{"ptPiPidTpcMin", -1, "Lower bound of track pT for TPC PID for pion selection"}; + Configurable ptPiPidTpcMax{"ptPiPidTpcMax", 9999.9, "Upper bound of track pT for TPC PID for pion selection"}; Configurable nSigmaTpcPiMax{"nSigmaTpcPiMax", 3., "Nsigma cut on TPC only for pion selection"}; Configurable nSigmaTpcCombinedPiMax{"nSigmaTpcCombinedPiMax", 0., "Nsigma cut on TPC combined with TOF for pion selection"}; - Configurable ptPrPidTpcMin{"ptPrPidTpcMin", 0.1, "Lower bound of track pT for TPC PID for proton selection"}; - Configurable ptPrPidTpcMax{"ptPrPidTpcMax", 999.9, "Upper bound of track pT for TPC PID for proton selection"}; + Configurable ptPrPidTpcMin{"ptPrPidTpcMin", -1, "Lower bound of track pT for TPC PID for proton selection"}; + Configurable ptPrPidTpcMax{"ptPrPidTpcMax", 9999.9, "Upper bound of track pT for TPC PID for proton selection"}; Configurable nSigmaTpcPrMax{"nSigmaTpcPrMax", 3., "Nsigma cut on TPC only for proton selection"}; Configurable nSigmaTpcCombinedPrMax{"nSigmaTpcCombinedPrMax", 0., "Nsigma cut on TPC combined with TOF for proton selection"}; // PID - TOF selections - Configurable ptPiPidTofMin{"ptPiPidTofMin", 0.1, "Lower bound of track pT for TOF PID for pion selection"}; - Configurable ptPiPidTofMax{"ptPiPidTofMax", 999.9, "Upper bound of track pT for TOF PID for pion selection"}; + Configurable ptPiPidTofMin{"ptPiPidTofMin", -1, "Lower bound of track pT for TOF PID for pion selection"}; + Configurable ptPiPidTofMax{"ptPiPidTofMax", 9999.9, "Upper bound of track pT for TOF PID for pion selection"}; Configurable nSigmaTofPiMax{"nSigmaTofPiMax", 3., "Nsigma cut on TOF only for pion selection"}; Configurable nSigmaTofCombinedPiMax{"nSigmaTofCombinedPiMax", 0., "Nsigma cut on TOF combined with TPC for pion selection"}; - Configurable ptPrPidTofMin{"ptPrPidTofMin", 0.1, "Lower bound of track pT for TOF PID for proton selection"}; - Configurable ptPrPidTofMax{"ptPrPidTofMax", 999.9, "Upper bound of track pT for TOF PID for proton selection"}; + Configurable ptPrPidTofMin{"ptPrPidTofMin", -1, "Lower bound of track pT for TOF PID for proton selection"}; + Configurable ptPrPidTofMax{"ptPrPidTofMax", 9999.9, "Upper bound of track pT for TOF PID for proton selection"}; Configurable nSigmaTofPrMax{"nSigmaTofPrMax", 3., "Nsigma cut on TOF only for proton selection"}; Configurable nSigmaTofCombinedPrMax{"nSigmaTofCombinedPrMax", 0., "Nsigma cut on TOF combined with TPC for proton selection"}; @@ -108,8 +108,8 @@ struct HfCandidateSelectorToXiPi { Configurable nClustersTpcMin{"nClustersTpcMin", 70, "Minimum number of TPC clusters requirement"}; Configurable nTpcCrossedRowsMin{"nTpcCrossedRowsMin", 70, "Minimum number of TPC crossed rows requirement"}; Configurable tpcCrossedRowsOverFindableClustersRatioMin{"tpcCrossedRowsOverFindableClustersRatioMin", 0.8, "Minimum ratio TPC crossed rows over findable clusters requirement"}; - Configurable nClustersItsMin{"nClustersItsMin", 3, "Minimum number of ITS clusters requirement for pi <- Omegac"}; - Configurable nClustersItsInnBarrMin{"nClustersItsInnBarrMin", 1, "Minimum number of ITS clusters in inner barrel requirement for pi <- Omegac"}; + Configurable nClustersItsMin{"nClustersItsMin", 3, "Minimum number of ITS clusters requirement for pi <- charm baryon"}; + Configurable nClustersItsInnBarrMin{"nClustersItsInnBarrMin", 1, "Minimum number of ITS clusters in inner barrel requirement for pi <- charm baryon"}; TrackSelectorPi selectorPion; TrackSelectorPr selectorProton; @@ -118,8 +118,7 @@ struct HfCandidateSelectorToXiPi { HistogramRegistry registry{"registry"}; // for QA of selections - OutputObj hInvMassOmegac{TH1F("hInvMassOmegac", "Omegac invariant mass;inv mass;entries", 500, 2.2, 3.1)}; - OutputObj hNEventsSaved{TH1F("hNEventsSaved", "Events with a charmed baryon candidate;Events source;N. events", 3, 0, 3)}; + OutputObj hInvMassCharmBaryon{TH1F("hInvMassCharmBaryon", "Charm baryon invariant mass;inv mass;entries", 500, 2.2, 3.1)}; void init(InitContext const&) { @@ -138,41 +137,41 @@ struct HfCandidateSelectorToXiPi { selectorProton.setRangeNSigmaTofCondTpc(-nSigmaTofCombinedPrMax, nSigmaTofCombinedPrMax); registry.add("hSelPID", "hSelPID;status;entries", {HistType::kTH1F, {{12, 0., 12.}}}); - registry.add("hTest", "Test status consecutive;status;entries", {HistType::kTH1F, {{12, 0., 12.}}}); + registry.add("hStatusCheck", "Check consecutive selections status;status;entries", {HistType::kTH1F, {{12, 0., 12.}}}); // for QA of the selections (bin 0 -> candidates that did not pass the selection, bin 1 -> candidates that passed the selection) registry.add("hSelSignDec", "hSelSignDec;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelEtaPosV0Dau", "hSelEtaPosV0Dau;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelEtaNegV0Dau", "hSelEtaNegV0Dau;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelEtaPiFromCasc", "hSelEtaPiFromCasc;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); - registry.add("hSelEtaPiFromOme", "hSelEtaPiFromOme;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); + registry.add("hSelEtaPiFromCharm", "hSelEtaPiFromCharm;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelRadCasc", "hSelRadCasc;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelRadV0", "hSelRadV0;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelCosPACasc", "hSelCosPACasc;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelCosPAV0", "hSelCosPAV0;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelDCACascDau", "hSelDCACascDau;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelDCAV0Dau", "hSelDCAV0Dau;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); - registry.add("hSelDCAOmeDau", "hSelDCAOmeDau;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); + registry.add("hSelDCACharmDau", "hSelDCACharmDau;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelDCAXYPrimPi", "hSelDCAXYPrimPi;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelDCAZPrimPi", "hSelDCAZPrimPi;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelDCAXYCasc", "hSelDCAXYCasc;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelDCAZCasc", "hSelDCAZCasc;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelPtPiFromCasc", "hSelPtPiFromCasc;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); - registry.add("hSelPtPiFromOme", "hSelPtPiFromOme;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); - registry.add("hSelNClsTPCPiFromOme", "hSelNClsTPCPiFromOme;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); + registry.add("hSelPtPiFromCharm", "hSelPtPiFromCharm;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); + registry.add("hSelNClsTPCPiFromCharm", "hSelNClsTPCPiFromCharm;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelNClsTPCPiFromLam", "hSelNClsTPCPiFromLam;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelNClsTPCPrFromLam", "hSelNClsTPCPrFromLam;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelNClsTPCPiFromCasc", "hSelNClsTPCPiFromCasc;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); - registry.add("hSelNCrossRowsTPCPiFromOme", "hSelNCrossRowsTPCPiFromOme;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); + registry.add("hSelNCrossRowsTPCPiFromCharm", "hSelNCrossRowsTPCPiFromCharm;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelNCrossRowsTPCPiFromLam", "hSelNCrossRowsTPCPiFromLam;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelNCrossRowsTPCPrFromLam", "hSelNCrossRowsTPCPrFromLam;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelNCrossRowsTPCPiFromCasc", "hSelNCrossRowsTPCPiFromCasc;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelCrossRowsOverFindClsTPCAllTracks", "hSelCrossRowsOverFindClsTPCAllTracks;status;entries", {HistType::kTH1F, {{10, 0., 10.}}}); - registry.add("hSelNClsITSPiFromOme", "hSelNClsITSPiFromOme;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); - registry.add("hSelNClsITSInnerPiFromOme", "hSelNClsITSInnerPiFromOme;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); + registry.add("hSelNClsITSPiFromCharm", "hSelNClsITSPiFromCharm;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); + registry.add("hSelNClsITSInnerPiFromCharm", "hSelNClsITSInnerPiFromCharm;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelMassLam", "hSelMassLam;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); registry.add("hSelMassCasc", "hSelMassCasc;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); - registry.add("hSelMassOme", "hSelMassOme;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); + registry.add("hSelMassCharmBaryon", "hSelMassCharmBaryon;status;entries", {HistType::kTH1F, {{5, 0., 5.}}}); } void process(aod::HfCandToXiPi const& candidates, @@ -181,9 +180,7 @@ struct HfCandidateSelectorToXiPi { double massLambdaFromPDG = o2::analysis::pdg::MassLambda0; double massXiFromPDG = o2::analysis::pdg::MassXiMinus; - int collId = -999; - - // looping over omegac candidates + // looping over charm baryon candidates for (const auto& candidate : candidates) { bool resultSelections = true; // True if the candidate passes all the selections, False otherwise @@ -191,7 +188,7 @@ struct HfCandidateSelectorToXiPi { auto trackV0PosDau = candidate.posTrack_as(); // positive V0 daughter auto trackV0NegDau = candidate.negTrack_as(); // negative V0 daughter auto trackPiFromCasc = candidate.bachelor_as(); // pion <- cascade - auto trackPiFromOmeg = candidate.primaryPi_as(); // pion <- omegac + auto trackPiFromCharm = candidate.piFromCharmBaryon_as(); // pion <- charm baryon auto trackPiFromLam = trackV0NegDau; auto trackPrFromLam = trackV0PosDau; @@ -213,7 +210,7 @@ struct HfCandidateSelectorToXiPi { double etaV0PosDau = candidate.etaV0PosDau(); double etaV0NegDau = candidate.etaV0NegDau(); double etaPiFromCasc = candidate.etaPiFromCasc(); - double etaPiFromOme = candidate.etaPiFromOme(); + double etaPiFromCharmBaryon = candidate.etaPiFromCharmBaryon(); if (std::abs(etaV0PosDau) > etaTrackLFDauMax) { resultSelections = false; registry.fill(HIST("hSelEtaPosV0Dau"), 0); @@ -232,11 +229,11 @@ struct HfCandidateSelectorToXiPi { } else { registry.fill(HIST("hSelEtaPiFromCasc"), 1); } - if (std::abs(etaPiFromOme) > etaTrackCharmBachMax) { + if (std::abs(etaPiFromCharmBaryon) > etaTrackCharmBachMax) { resultSelections = false; - registry.fill(HIST("hSelEtaPiFromOme"), 0); + registry.fill(HIST("hSelEtaPiFromCharm"), 0); } else { - registry.fill(HIST("hSelEtaPiFromOme"), 1); + registry.fill(HIST("hSelEtaPiFromCharm"), 1); } // minimum radius cut (LFcut) @@ -282,22 +279,22 @@ struct HfCandidateSelectorToXiPi { registry.fill(HIST("hSelDCAV0Dau"), 1); } - // dca omegac daughters cut - if (candidate.dcaOmegacDau() > dcaOmegacDauMax) { + // dca charm baryon daughters cut + if (candidate.dcaCharmBaryonDau() > dcaCharmBaryonDauMax) { resultSelections = false; - registry.fill(HIST("hSelDCAOmeDau"), 0); + registry.fill(HIST("hSelDCACharmDau"), 0); } else { - registry.fill(HIST("hSelDCAOmeDau"), 1); + registry.fill(HIST("hSelDCACharmDau"), 1); } - // cut on primary pion dcaXY and dcaZ - if ((std::abs(candidate.impactParPrimaryPiXY()) < impactParameterXYPriPiMin) || (std::abs(candidate.impactParPrimaryPiXY()) > impactParameterXYPriPiMax)) { + // cut on charm bachelor pion dcaXY and dcaZ + if ((std::abs(candidate.impactParPiFromCharmBaryonXY()) < impactParameterXYPiFromCharmBaryonMin) || (std::abs(candidate.impactParPiFromCharmBaryonXY()) > impactParameterXYPiFromCharmBaryonMax)) { resultSelections = false; registry.fill(HIST("hSelDCAXYPrimPi"), 0); } else { registry.fill(HIST("hSelDCAXYPrimPi"), 1); } - if ((std::abs(candidate.impactParPrimaryPiZ()) < impactParameterZPriPiMin) || (std::abs(candidate.impactParPrimaryPiZ()) > impactParameterZPriPiMax)) { + if ((std::abs(candidate.impactParPiFromCharmBaryonZ()) < impactParameterZPiFromCharmBaryonMin) || (std::abs(candidate.impactParPiFromCharmBaryonZ()) > impactParameterZPiFromCharmBaryonMax)) { resultSelections = false; registry.fill(HIST("hSelDCAZPrimPi"), 0); } else { @@ -320,26 +317,26 @@ struct HfCandidateSelectorToXiPi { // pT selections double ptPiFromCasc = RecoDecay::sqrtSumOfSquares(candidate.pxPiFromCasc(), candidate.pyPiFromCasc()); - double ptPiFromOme = RecoDecay::sqrtSumOfSquares(candidate.pxPrimaryPi(), candidate.pyPrimaryPi()); + double ptPiFromCharmBaryon = RecoDecay::sqrtSumOfSquares(candidate.pxPiFromCharmBaryon(), candidate.pyPiFromCharmBaryon()); if (std::abs(ptPiFromCasc) < ptPiFromCascMin) { resultSelections = false; registry.fill(HIST("hSelPtPiFromCasc"), 0); } else { registry.fill(HIST("hSelPtPiFromCasc"), 1); } - if (std::abs(ptPiFromOme) < ptPiFromOmeMin) { + if (std::abs(ptPiFromCharmBaryon) < ptPiFromCharmBaryonMin) { resultSelections = false; - registry.fill(HIST("hSelPtPiFromOme"), 0); + registry.fill(HIST("hSelPtPiFromCharm"), 0); } else { - registry.fill(HIST("hSelPtPiFromOme"), 1); + registry.fill(HIST("hSelPtPiFromCharm"), 1); } // TPC clusters selections - if (trackPiFromOmeg.tpcNClsFound() < nClustersTpcMin) { + if (trackPiFromCharm.tpcNClsFound() < nClustersTpcMin) { resultSelections = false; - registry.fill(HIST("hSelNClsTPCPiFromOme"), 0); + registry.fill(HIST("hSelNClsTPCPiFromCharm"), 0); } else { - registry.fill(HIST("hSelNClsTPCPiFromOme"), 1); + registry.fill(HIST("hSelNClsTPCPiFromCharm"), 1); } if (trackPiFromLam.tpcNClsFound() < nClustersTpcMin) { resultSelections = false; @@ -361,11 +358,11 @@ struct HfCandidateSelectorToXiPi { } // TPC crossed rows selection - if (trackPiFromOmeg.tpcNClsCrossedRows() < nTpcCrossedRowsMin) { + if (trackPiFromCharm.tpcNClsCrossedRows() < nTpcCrossedRowsMin) { resultSelections = false; - registry.fill(HIST("hSelNCrossRowsTPCPiFromOme"), 0); + registry.fill(HIST("hSelNCrossRowsTPCPiFromCharm"), 0); } else { - registry.fill(HIST("hSelNCrossRowsTPCPiFromOme"), 1); + registry.fill(HIST("hSelNCrossRowsTPCPiFromCharm"), 1); } if (trackPiFromLam.tpcNClsCrossedRows() < nTpcCrossedRowsMin) { resultSelections = false; @@ -387,7 +384,7 @@ struct HfCandidateSelectorToXiPi { } // further TPC selection - if (trackPiFromOmeg.tpcCrossedRowsOverFindableCls() < tpcCrossedRowsOverFindableClustersRatioMin) { + if (trackPiFromCharm.tpcCrossedRowsOverFindableCls() < tpcCrossedRowsOverFindableClustersRatioMin) { resultSelections = false; registry.fill(HIST("hSelCrossRowsOverFindClsTPCAllTracks"), 0); } else { @@ -413,17 +410,17 @@ struct HfCandidateSelectorToXiPi { } // ITS clusters selection - if (trackPiFromOmeg.itsNCls() < nClustersItsMin) { + if (trackPiFromCharm.itsNCls() < nClustersItsMin) { resultSelections = false; - registry.fill(HIST("hSelNClsITSPiFromOme"), 0); + registry.fill(HIST("hSelNClsITSPiFromCharm"), 0); } else { - registry.fill(HIST("hSelNClsITSPiFromOme"), 1); + registry.fill(HIST("hSelNClsITSPiFromCharm"), 1); } - if (trackPiFromOmeg.itsNClsInnerBarrel() < nClustersItsInnBarrMin) { + if (trackPiFromCharm.itsNClsInnerBarrel() < nClustersItsInnBarrMin) { resultSelections = false; - registry.fill(HIST("hSelNClsITSInnerPiFromOme"), 0); + registry.fill(HIST("hSelNClsITSInnerPiFromCharm"), 0); } else { - registry.fill(HIST("hSelNClsITSInnerPiFromOme"), 1); + registry.fill(HIST("hSelNClsITSInnerPiFromCharm"), 1); } // track-level PID selection @@ -432,11 +429,11 @@ struct HfCandidateSelectorToXiPi { int statusPidPrFromLam = -999; int statusPidPiFromLam = -999; int statusPidPiFromCasc = -999; - int statusPidPiFromCharm = -999; + int statusPidPiFromCharmBaryon = -999; bool statusPidLambda = false; bool statusPidCascade = false; - bool statusPidCharm = false; + bool statusPidCharmBaryon = false; int infoTpcStored = 0; int infoTofStored = 0; @@ -454,7 +451,7 @@ struct HfCandidateSelectorToXiPi { if (trackPiFromCasc.hasTPC()) { SETBIT(infoTpcStored, kPiFromCasc); } - if (trackPiFromOmeg.hasTPC()) { + if (trackPiFromCharm.hasTPC()) { SETBIT(infoTpcStored, kPiFromCharm); } if (trackPiFromLam.hasTOF()) { @@ -466,7 +463,7 @@ struct HfCandidateSelectorToXiPi { if (trackPiFromCasc.hasTOF()) { SETBIT(infoTofStored, kPiFromCasc); } - if (trackPiFromOmeg.hasTOF()) { + if (trackPiFromCharm.hasTOF()) { SETBIT(infoTofStored, kPiFromCharm); } @@ -474,49 +471,49 @@ struct HfCandidateSelectorToXiPi { statusPidPrFromLam = selectorProton.statusTpc(trackPrFromLam); statusPidPiFromLam = selectorPion.statusTpc(trackPiFromLam); statusPidPiFromCasc = selectorPion.statusTpc(trackPiFromCasc); - statusPidPiFromCharm = selectorPion.statusTpc(trackPiFromOmeg); + statusPidPiFromCharmBaryon = selectorPion.statusTpc(trackPiFromCharm); } else if (usePidTpcTofCombined) { statusPidPrFromLam = selectorProton.statusTpcOrTof(trackPrFromLam); statusPidPiFromLam = selectorPion.statusTpcOrTof(trackPiFromLam); statusPidPiFromCasc = selectorPion.statusTpcOrTof(trackPiFromCasc); - statusPidPiFromCharm = selectorPion.statusTpcOrTof(trackPiFromOmeg); + statusPidPiFromCharmBaryon = selectorPion.statusTpcOrTof(trackPiFromCharm); } if (statusPidPrFromLam == TrackSelectorPID::Accepted && statusPidPiFromLam == TrackSelectorPID::Accepted) { statusPidLambda = true; if (resultSelections) { - registry.fill(HIST("hTest"), 0.5); + registry.fill(HIST("hStatusCheck"), 0.5); } } if (statusPidPrFromLam == TrackSelectorPID::Accepted && statusPidPiFromLam == TrackSelectorPID::Accepted && statusPidPiFromCasc == TrackSelectorPID::Accepted) { statusPidCascade = true; if (resultSelections) { - registry.fill(HIST("hTest"), 1.5); + registry.fill(HIST("hStatusCheck"), 1.5); } } - if (statusPidPrFromLam == TrackSelectorPID::Accepted && statusPidPiFromLam == TrackSelectorPID::Accepted && statusPidPiFromCasc == TrackSelectorPID::Accepted && statusPidPiFromCharm == TrackSelectorPID::Accepted) { - statusPidCharm = true; + if (statusPidPrFromLam == TrackSelectorPID::Accepted && statusPidPiFromLam == TrackSelectorPID::Accepted && statusPidPiFromCasc == TrackSelectorPID::Accepted && statusPidPiFromCharmBaryon == TrackSelectorPID::Accepted) { + statusPidCharmBaryon = true; if (resultSelections) { - registry.fill(HIST("hTest"), 2.5); + registry.fill(HIST("hStatusCheck"), 2.5); } } // invariant mass cuts bool statusInvMassLambda = false; bool statusInvMassCascade = false; - bool statusInvMassOmegac = false; + bool statusInvMassCharmBaryon = false; double invMassLambda = candidate.invMassLambda(); double invMassCascade = candidate.invMassCascade(); - double invMassOmegac = candidate.invMassOmegac(); + double invMassCharmBaryon = candidate.invMassCharmBaryon(); if (std::abs(invMassLambda - massLambdaFromPDG) < (nSigmaInvMassCut * sigmaInvMassLambda)) { statusInvMassLambda = true; registry.fill(HIST("hSelMassLam"), 1); - if (statusPidLambda && statusPidCascade && statusPidCharm && resultSelections) { - registry.fill(HIST("hTest"), 3.5); + if (statusPidLambda && statusPidCascade && statusPidCharmBaryon && resultSelections) { + registry.fill(HIST("hStatusCheck"), 3.5); } } else { registry.fill(HIST("hSelMassLam"), 0); @@ -525,26 +522,26 @@ struct HfCandidateSelectorToXiPi { if (std::abs(invMassCascade - massXiFromPDG) < (nSigmaInvMassCut * sigmaInvMassCascade)) { statusInvMassCascade = true; registry.fill(HIST("hSelMassCasc"), 1); - if (statusPidLambda && statusPidCascade && statusPidCharm && statusInvMassLambda && resultSelections) { - registry.fill(HIST("hTest"), 4.5); + if (statusPidLambda && statusPidCascade && statusPidCharmBaryon && statusInvMassLambda && resultSelections) { + registry.fill(HIST("hStatusCheck"), 4.5); } } else { registry.fill(HIST("hSelMassCasc"), 0); } - if ((invMassOmegac >= invMassOmegacMin) && (invMassOmegac <= invMassOmegacMax)) { - statusInvMassOmegac = true; - registry.fill(HIST("hSelMassOme"), 1); - if (statusPidLambda && statusPidCascade && statusPidCharm && statusInvMassLambda && statusInvMassCascade && resultSelections) { - registry.fill(HIST("hTest"), 5.5); + if ((invMassCharmBaryon >= invMassCharmBaryonMin) && (invMassCharmBaryon <= invMassCharmBaryonMax)) { + statusInvMassCharmBaryon = true; + registry.fill(HIST("hSelMassCharmBaryon"), 1); + if (statusPidLambda && statusPidCascade && statusPidCharmBaryon && statusInvMassLambda && statusInvMassCascade && resultSelections) { + registry.fill(HIST("hStatusCheck"), 5.5); } } else { - registry.fill(HIST("hSelMassOme"), 0); + registry.fill(HIST("hSelMassCharmBaryon"), 0); } - hfSelToXiPi(statusPidLambda, statusPidCascade, statusPidCharm, statusInvMassLambda, statusInvMassCascade, statusInvMassOmegac, resultSelections, infoTpcStored, infoTofStored, - trackPiFromOmeg.tpcNSigmaPi(), trackPiFromCasc.tpcNSigmaPi(), trackPiFromLam.tpcNSigmaPi(), trackPrFromLam.tpcNSigmaPr(), - trackPiFromOmeg.tofNSigmaPi(), trackPiFromCasc.tofNSigmaPi(), trackPiFromLam.tofNSigmaPi(), trackPrFromLam.tofNSigmaPr()); + hfSelToXiPi(statusPidLambda, statusPidCascade, statusPidCharmBaryon, statusInvMassLambda, statusInvMassCascade, statusInvMassCharmBaryon, resultSelections, infoTpcStored, infoTofStored, + trackPiFromCharm.tpcNSigmaPi(), trackPiFromCasc.tpcNSigmaPi(), trackPiFromLam.tpcNSigmaPi(), trackPrFromLam.tpcNSigmaPr(), + trackPiFromCharm.tofNSigmaPi(), trackPiFromCasc.tofNSigmaPi(), trackPiFromLam.tofNSigmaPi(), trackPrFromLam.tofNSigmaPr()); if (resultSelections) { if (!statusPidLambda) { @@ -559,10 +556,10 @@ struct HfCandidateSelectorToXiPi { if (statusPidCascade) { registry.fill(HIST("hSelPID"), 3.5); } - if (!statusPidCharm) { + if (!statusPidCharmBaryon) { registry.fill(HIST("hSelPID"), 4.5); } - if (statusPidCharm) { + if (statusPidCharmBaryon) { registry.fill(HIST("hSelPID"), 5.5); } if (!statusInvMassLambda) { @@ -577,21 +574,16 @@ struct HfCandidateSelectorToXiPi { if (statusInvMassCascade) { registry.fill(HIST("hSelPID"), 9.5); } - if (!statusInvMassOmegac) { + if (!statusInvMassCharmBaryon) { registry.fill(HIST("hSelPID"), 10.5); } - if (statusInvMassOmegac) { + if (statusInvMassCharmBaryon) { registry.fill(HIST("hSelPID"), 11.5); } } - if (statusPidLambda && statusPidCascade && statusPidCharm && statusInvMassLambda && statusInvMassCascade && statusInvMassOmegac && resultSelections) { - hInvMassOmegac->Fill(invMassOmegac); - - if (candidate.collisionId() != collId) { - hNEventsSaved->Fill(0.5); - collId = candidate.collisionId(); - } + if (statusPidLambda && statusPidCascade && statusPidCharmBaryon && statusInvMassLambda && statusInvMassCascade && statusInvMassCharmBaryon && resultSelections) { + hInvMassCharmBaryon->Fill(invMassCharmBaryon); } } } diff --git a/PWGHF/TableProducer/treeCreatorToXiPi.cxx b/PWGHF/TableProducer/treeCreatorToXiPi.cxx index 0fc439841d1..9bd7a678cc8 100644 --- a/PWGHF/TableProducer/treeCreatorToXiPi.cxx +++ b/PWGHF/TableProducer/treeCreatorToXiPi.cxx @@ -13,7 +13,7 @@ /// \brief Writer of the omegac0 or xic0 to Xi Pi candidates in the form of flat tables to be stored in TTrees. /// In this file are defined and filled the output tables /// -/// \author Federica Zanone , Heidelberg University & GSI +/// \author Federica Zanone , Heidelberg University #include "Framework/AnalysisTask.h" #include "Framework/runDataProcessing.h" @@ -29,13 +29,12 @@ namespace o2::aod namespace full { // from creator -DECLARE_SOA_INDEX_COLUMN(Collision, collision); DECLARE_SOA_COLUMN(XPv, xPv, float); DECLARE_SOA_COLUMN(YPv, yPv, float); DECLARE_SOA_COLUMN(ZPv, zPv, float); -DECLARE_SOA_COLUMN(XDecayVtxOmegac, xDecayVtxOmegac, float); -DECLARE_SOA_COLUMN(YDecayVtxOmegac, yDecayVtxOmegac, float); -DECLARE_SOA_COLUMN(ZDecayVtxOmegac, zDecayVtxOmegac, float); +DECLARE_SOA_COLUMN(XDecayVtxCharmBaryon, xDecayVtxCharmBaryon, float); +DECLARE_SOA_COLUMN(YDecayVtxCharmBaryon, yDecayVtxCharmBaryon, float); +DECLARE_SOA_COLUMN(ZDecayVtxCharmBaryon, zDecayVtxCharmBaryon, float); DECLARE_SOA_COLUMN(XDecayVtxCascade, xDecayVtxCascade, float); DECLARE_SOA_COLUMN(YDecayVtxCascade, yDecayVtxCascade, float); DECLARE_SOA_COLUMN(ZDecayVtxCascade, zDecayVtxCascade, float); @@ -43,25 +42,19 @@ DECLARE_SOA_COLUMN(XDecayVtxV0, xDecayVtxV0, float); DECLARE_SOA_COLUMN(YDecayVtxV0, yDecayVtxV0, float); DECLARE_SOA_COLUMN(ZDecayVtxV0, zDecayVtxV0, float); DECLARE_SOA_COLUMN(SignDecay, signDecay, int8_t); // sign of pi <- xi -DECLARE_SOA_COLUMN(Chi2PCAOmegac, chi2PcaOmegac, float); -DECLARE_SOA_COLUMN(CovVtxOmegacXX, covVtxOmegacXX, float); -DECLARE_SOA_COLUMN(CovVtxOmegacYY, covVtxOmegacYY, float); -DECLARE_SOA_COLUMN(CovVtxOmegacZZ, covVtxOmegacZZ, float); -DECLARE_SOA_COLUMN(CovVtxCascadeXX, covVtxCascadeXX, float); -DECLARE_SOA_COLUMN(CovVtxCascadeYY, covVtxCascadeYY, float); -DECLARE_SOA_COLUMN(CovVtxCascadeZZ, covVtxCascadeZZ, float); -DECLARE_SOA_COLUMN(CovVtxV0XX, covVtxV0XX, float); -DECLARE_SOA_COLUMN(CovVtxV0YY, covVtxV0YY, float); -DECLARE_SOA_COLUMN(CovVtxV0ZZ, covVtxV0ZZ, float); -DECLARE_SOA_COLUMN(PxOmegac, pxOmegac, float); -DECLARE_SOA_COLUMN(PyOmegac, pyOmegac, float); -DECLARE_SOA_COLUMN(PzOmegac, pzOmegac, float); +DECLARE_SOA_COLUMN(Chi2PCACharmBaryon, chi2PCACharmBaryon, float); +DECLARE_SOA_COLUMN(CovVtxCharmBaryonXX, covVtxCharmBaryonXX, float); +DECLARE_SOA_COLUMN(CovVtxCharmBaryonYY, covVtxCharmBaryonYY, float); +DECLARE_SOA_COLUMN(CovVtxCharmBaryonZZ, covVtxCharmBaryonZZ, float); +DECLARE_SOA_COLUMN(PxCharmBaryon, pxCharmBaryon, float); +DECLARE_SOA_COLUMN(PyCharmBaryon, pyCharmBaryon, float); +DECLARE_SOA_COLUMN(PzCharmBaryon, pzCharmBaryon, float); DECLARE_SOA_COLUMN(PxCasc, pxCasc, float); DECLARE_SOA_COLUMN(PyCasc, pyCasc, float); DECLARE_SOA_COLUMN(PzCasc, pzCasc, float); -DECLARE_SOA_COLUMN(PxPrimaryPi, pxPrimaryPi, float); -DECLARE_SOA_COLUMN(PyPrimaryPi, pyPrimaryPi, float); -DECLARE_SOA_COLUMN(PzPrimaryPi, pzPrimaryPi, float); +DECLARE_SOA_COLUMN(PxPiFromCharmBaryon, pxPiFromCharmBaryon, float); +DECLARE_SOA_COLUMN(PyPiFromCharmBaryon, pyPiFromCharmBaryon, float); +DECLARE_SOA_COLUMN(PzPiFromCharmBaryon, pzPiFromCharmBaryon, float); DECLARE_SOA_COLUMN(PxLambda, pxLambda, float); DECLARE_SOA_COLUMN(PyLambda, pyLambda, float); DECLARE_SOA_COLUMN(PzLambda, pzLambda, float); @@ -75,21 +68,19 @@ DECLARE_SOA_COLUMN(PxNegV0Dau, pxNegV0Dau, float); DECLARE_SOA_COLUMN(PyNegV0Dau, pyNegV0Dau, float); DECLARE_SOA_COLUMN(PzNegV0Dau, pzNegV0Dau, float); DECLARE_SOA_COLUMN(ImpactParCascXY, impactParCascXY, float); -DECLARE_SOA_COLUMN(ImpactParPrimaryPiXY, impactParPrimaryPiXY, float); +DECLARE_SOA_COLUMN(ImpactParPiFromCharmBaryonXY, impactParPiFromCharmBaryonXY, float); DECLARE_SOA_COLUMN(ImpactParCascZ, impactParCascZ, float); -DECLARE_SOA_COLUMN(ImpactParPrimaryPiZ, impactParPrimaryPiZ, float); -DECLARE_SOA_COLUMN(ImpactParV0XY, impactParV0XY, float); -DECLARE_SOA_COLUMN(ImpactParV0Z, impactParV0Z, float); -DECLARE_SOA_COLUMN(ImpactParOmegacXY, impactParOmegacXY, float); -DECLARE_SOA_COLUMN(ImpactParOmegacZ, impactParOmegacZ, float); +DECLARE_SOA_COLUMN(ImpactParPiFromCharmBaryonZ, impactParPiFromCharmBaryonZ, float); +DECLARE_SOA_COLUMN(ErrImpactParCascXY, errImpactParCascXY, float); +DECLARE_SOA_COLUMN(ErrImpactParPiFromCharmBaryonXY, errImpactParPiFromCharmBaryonXY, float); DECLARE_SOA_COLUMN(InvMassLambda, invMassLambda, double); DECLARE_SOA_COLUMN(InvMassCascade, invMassCascade, double); -DECLARE_SOA_COLUMN(InvMassOmegac, invMassOmegac, double); +DECLARE_SOA_COLUMN(InvMassCharmBaryon, invMassCharmBaryon, double); DECLARE_SOA_COLUMN(CosPAV0, cosPAV0, double); -DECLARE_SOA_COLUMN(CosPAOmegac, cosPAOmegac, double); +DECLARE_SOA_COLUMN(CosPACharmBaryon, cosPACharmBaryon, double); DECLARE_SOA_COLUMN(CosPACasc, cosPACasc, double); DECLARE_SOA_COLUMN(CosPAXYV0, cosPAXYV0, double); -DECLARE_SOA_COLUMN(CosPAXYOmegac, cosPAXYOmegac, double); +DECLARE_SOA_COLUMN(CosPAXYCharmBaryon, cosPAXYCharmBaryon, double); DECLARE_SOA_COLUMN(CosPAXYCasc, cosPAXYCasc, double); DECLARE_SOA_COLUMN(CTauOmegac, ctauOmegac, double); DECLARE_SOA_COLUMN(CTauCascade, ctauCascade, double); @@ -98,8 +89,8 @@ DECLARE_SOA_COLUMN(CTauXic, ctauXic, double); DECLARE_SOA_COLUMN(EtaV0PosDau, etaV0PosDau, double); DECLARE_SOA_COLUMN(EtaV0NegDau, etaV0NegDau, double); DECLARE_SOA_COLUMN(EtaPiFromCasc, etaPiFromCasc, double); -DECLARE_SOA_COLUMN(EtaPiFromOme, etaPiFromOme, double); -DECLARE_SOA_COLUMN(EtaOmegac, etaOmegac, double); +DECLARE_SOA_COLUMN(EtaPiFromCharmBaryon, etaPiFromCharmBaryon, double); +DECLARE_SOA_COLUMN(EtaCharmBaryon, etaCharmBaryon, double); DECLARE_SOA_COLUMN(EtaCascade, etaCascade, double); DECLARE_SOA_COLUMN(EtaV0, etaV0, double); DECLARE_SOA_COLUMN(DcaXYToPvV0Dau0, dcaXYToPvV0Dau0, float); @@ -110,25 +101,30 @@ DECLARE_SOA_COLUMN(DcaZToPvV0Dau1, dcaZToPvV0Dau1, float); DECLARE_SOA_COLUMN(DcaZToPvCascDau, dcaZToPvCascDau, float); DECLARE_SOA_COLUMN(DcaCascDau, dcaCascDau, float); DECLARE_SOA_COLUMN(DcaV0Dau, dcaV0Dau, float); -DECLARE_SOA_COLUMN(DcaOmegacDau, dcaOmegacDau, float); +DECLARE_SOA_COLUMN(DcaCharmBaryonDau, dcaCharmBaryonDau, float); +DECLARE_SOA_COLUMN(DecLenCharmBaryon, decLenCharmBaryon, double); +DECLARE_SOA_COLUMN(DecLenCascade, decLenCascade, double); +DECLARE_SOA_COLUMN(DecLenV0, decLenV0, double); +DECLARE_SOA_COLUMN(ErrorDecayLengthCharmBaryon, errorDecayLengthCharmBaryon, float); +DECLARE_SOA_COLUMN(ErrorDecayLengthXYCharmBaryon, errorDecayLengthXYCharmBaryon, float); // from creator - MC DECLARE_SOA_COLUMN(FlagMcMatchRec, flagMcMatchRec, int8_t); // reconstruction level DECLARE_SOA_COLUMN(DebugMcRec, debugMcRec, int8_t); // debug flag for mis-association reconstruction level // from selector DECLARE_SOA_COLUMN(StatusPidLambda, statusPidLambda, bool); DECLARE_SOA_COLUMN(StatusPidCascade, statusPidCascade, bool); -DECLARE_SOA_COLUMN(StatusPidOmegac, statusPidOmegac, bool); +DECLARE_SOA_COLUMN(StatusPidCharmBaryon, statusPidCharmBaryon, bool); DECLARE_SOA_COLUMN(StatusInvMassLambda, statusInvMassLambda, bool); DECLARE_SOA_COLUMN(StatusInvMassCascade, statusInvMassCascade, bool); -DECLARE_SOA_COLUMN(StatusInvMassOmegac, statusInvMassOmegac, bool); +DECLARE_SOA_COLUMN(StatusInvMassCharmBaryon, statusInvMassCharmBaryon, bool); DECLARE_SOA_COLUMN(ResultSelections, resultSelections, bool); DECLARE_SOA_COLUMN(PidTpcInfoStored, pidTpcInfoStored, int); DECLARE_SOA_COLUMN(PidTofInfoStored, pidTofInfoStored, int); -DECLARE_SOA_COLUMN(TpcNSigmaPiFromOmega, tpcNSigmaPiFromOmega, float); +DECLARE_SOA_COLUMN(TpcNSigmaPiFromCharmBaryon, tpcNSigmaPiFromCharmBaryon, float); DECLARE_SOA_COLUMN(TpcNSigmaPiFromCasc, tpcNSigmaPiFromCasc, float); DECLARE_SOA_COLUMN(TpcNSigmaPiFromLambda, tpcNSigmaPiFromLambda, float); DECLARE_SOA_COLUMN(TpcNSigmaPrFromLambda, tpcNSigmaPrFromLambda, float); -DECLARE_SOA_COLUMN(TofNSigmaPiFromOmega, tofNSigmaPiFromOmega, float); +DECLARE_SOA_COLUMN(TofNSigmaPiFromCharmBaryon, tofNSigmaPiFromCharmBaryon, float); DECLARE_SOA_COLUMN(TofNSigmaPiFromCasc, tofNSigmaPiFromCasc, float); DECLARE_SOA_COLUMN(TofNSigmaPiFromLambda, tofNSigmaPiFromLambda, float); DECLARE_SOA_COLUMN(TofNSigmaPrFromLambda, tofNSigmaPrFromLambda, float); @@ -136,76 +132,59 @@ DECLARE_SOA_COLUMN(TofNSigmaPrFromLambda, tofNSigmaPrFromLambda, float); } // namespace full DECLARE_SOA_TABLE(HfToXiPiFulls, "AOD", "HFTOXIPIFULL", - full::CollisionId, full::XPv, full::YPv, full::ZPv, collision::NumContrib, - full::XDecayVtxOmegac, full::YDecayVtxOmegac, full::ZDecayVtxOmegac, + full::XPv, full::YPv, full::ZPv, collision::NumContrib, + full::XDecayVtxCharmBaryon, full::YDecayVtxCharmBaryon, full::ZDecayVtxCharmBaryon, full::XDecayVtxCascade, full::YDecayVtxCascade, full::ZDecayVtxCascade, full::XDecayVtxV0, full::YDecayVtxV0, full::ZDecayVtxV0, - full::SignDecay, full::Chi2PCAOmegac, - full::CovVtxOmegacXX, full::CovVtxOmegacYY, full::CovVtxOmegacZZ, - full::CovVtxCascadeXX, full::CovVtxCascadeYY, full::CovVtxCascadeZZ, - full::CovVtxV0XX, full::CovVtxV0YY, full::CovVtxV0ZZ, - full::PxOmegac, full::PyOmegac, full::PzOmegac, + full::SignDecay, full::Chi2PCACharmBaryon, + full::CovVtxCharmBaryonXX, full::CovVtxCharmBaryonYY, full::CovVtxCharmBaryonZZ, + full::PxCharmBaryon, full::PyCharmBaryon, full::PzCharmBaryon, full::PxCasc, full::PyCasc, full::PzCasc, - full::PxPrimaryPi, full::PyPrimaryPi, full::PzPrimaryPi, + full::PxPiFromCharmBaryon, full::PyPiFromCharmBaryon, full::PzPiFromCharmBaryon, full::PxLambda, full::PyLambda, full::PzLambda, full::PxPiFromCasc, full::PyPiFromCasc, full::PzPiFromCasc, full::PxPosV0Dau, full::PyPosV0Dau, full::PzPosV0Dau, full::PxNegV0Dau, full::PyNegV0Dau, full::PzNegV0Dau, - full::ImpactParCascXY, full::ImpactParPrimaryPiXY, full::ImpactParV0XY, full::ImpactParOmegacXY, - full::ImpactParCascZ, full::ImpactParPrimaryPiZ, full::ImpactParV0Z, full::ImpactParOmegacZ, - full::InvMassLambda, full::InvMassCascade, full::InvMassOmegac, - full::CosPAV0, full::CosPAOmegac, full::CosPACasc, full::CosPAXYV0, full::CosPAXYOmegac, full::CosPAXYCasc, + full::ImpactParCascXY, full::ImpactParPiFromCharmBaryonXY, + full::ImpactParCascZ, full::ImpactParPiFromCharmBaryonZ, + full::ErrImpactParCascXY, full::ErrImpactParPiFromCharmBaryonXY, + full::InvMassLambda, full::InvMassCascade, full::InvMassCharmBaryon, + full::CosPAV0, full::CosPACharmBaryon, full::CosPACasc, full::CosPAXYV0, full::CosPAXYCharmBaryon, full::CosPAXYCasc, full::CTauOmegac, full::CTauCascade, full::CTauV0, full::CTauXic, - full::EtaV0PosDau, full::EtaV0NegDau, full::EtaPiFromCasc, full::EtaPiFromOme, - full::EtaOmegac, full::EtaCascade, full::EtaV0, + full::EtaV0PosDau, full::EtaV0NegDau, full::EtaPiFromCasc, full::EtaPiFromCharmBaryon, + full::EtaCharmBaryon, full::EtaCascade, full::EtaV0, full::DcaXYToPvV0Dau0, full::DcaXYToPvV0Dau1, full::DcaXYToPvCascDau, full::DcaZToPvV0Dau0, full::DcaZToPvV0Dau1, full::DcaZToPvCascDau, - full::DcaCascDau, full::DcaV0Dau, full::DcaOmegacDau, - full::StatusPidLambda, full::StatusPidCascade, full::StatusPidOmegac, - full::StatusInvMassLambda, full::StatusInvMassCascade, full::StatusInvMassOmegac, full::ResultSelections, full::PidTpcInfoStored, full::PidTofInfoStored, - full::TpcNSigmaPiFromOmega, full::TpcNSigmaPiFromCasc, full::TpcNSigmaPiFromLambda, full::TpcNSigmaPrFromLambda, - full::TofNSigmaPiFromOmega, full::TofNSigmaPiFromCasc, full::TofNSigmaPiFromLambda, full::TofNSigmaPrFromLambda, + full::DcaCascDau, full::DcaV0Dau, full::DcaCharmBaryonDau, + full::DecLenCharmBaryon, full::DecLenCascade, full::DecLenV0, full::ErrorDecayLengthCharmBaryon, full::ErrorDecayLengthXYCharmBaryon, + full::StatusPidLambda, full::StatusPidCascade, full::StatusPidCharmBaryon, + full::StatusInvMassLambda, full::StatusInvMassCascade, full::StatusInvMassCharmBaryon, full::ResultSelections, full::PidTpcInfoStored, full::PidTofInfoStored, + full::TpcNSigmaPiFromCharmBaryon, full::TpcNSigmaPiFromCasc, full::TpcNSigmaPiFromLambda, full::TpcNSigmaPrFromLambda, + full::TofNSigmaPiFromCharmBaryon, full::TofNSigmaPiFromCasc, full::TofNSigmaPiFromLambda, full::TofNSigmaPrFromLambda, full::FlagMcMatchRec, full::DebugMcRec); -DECLARE_SOA_TABLE(HfToXiPiEvents, "AOD", "HFTOXIPIEVENT", - collision::NumContrib, - collision::PosX, - collision::PosY, - collision::PosZ); } // namespace o2::aod /// Writes the full information in an output TTree struct HfTreeCreatorToXiPi { Produces rowCandidateFull; - Produces rowCandidateEvents; void init(InitContext const&) { } - template - void fillEvent(const T& collision) - { - rowCandidateEvents( - collision.numContrib(), - collision.posX(), - collision.posY(), - collision.posZ()); - } - template void fillCandidate(const T& candidate, int8_t flagMc, int8_t debugMc) { rowCandidateFull( - candidate.collisionId(), candidate.xPv(), candidate.yPv(), candidate.zPv(), candidate.collision().numContrib(), - candidate.xDecayVtxOmegac(), - candidate.yDecayVtxOmegac(), - candidate.zDecayVtxOmegac(), + candidate.xDecayVtxCharmBaryon(), + candidate.yDecayVtxCharmBaryon(), + candidate.zDecayVtxCharmBaryon(), candidate.xDecayVtxCascade(), candidate.yDecayVtxCascade(), candidate.zDecayVtxCascade(), @@ -213,25 +192,19 @@ struct HfTreeCreatorToXiPi { candidate.yDecayVtxV0(), candidate.zDecayVtxV0(), candidate.signDecay(), - candidate.chi2PcaOmegac(), - candidate.covVtxOmegac0(), - candidate.covVtxOmegac3(), - candidate.covVtxOmegac5(), - candidate.covVtxCasc0(), - candidate.covVtxCasc3(), - candidate.covVtxCasc5(), - candidate.covVtxV00(), - candidate.covVtxV03(), - candidate.covVtxV05(), - candidate.pxOmegac(), - candidate.pyOmegac(), - candidate.pzOmegac(), + candidate.chi2PCACharmBaryon(), + candidate.covVtxCharmBaryon0(), + candidate.covVtxCharmBaryon3(), + candidate.covVtxCharmBaryon5(), + candidate.pxCharmBaryon(), + candidate.pyCharmBaryon(), + candidate.pzCharmBaryon(), candidate.pxCasc(), candidate.pyCasc(), candidate.pzCasc(), - candidate.pxPrimaryPi(), - candidate.pyPrimaryPi(), - candidate.pzPrimaryPi(), + candidate.pxPiFromCharmBaryon(), + candidate.pyPiFromCharmBaryon(), + candidate.pzPiFromCharmBaryon(), candidate.pxLambda(), candidate.pyLambda(), candidate.pzLambda(), @@ -245,21 +218,19 @@ struct HfTreeCreatorToXiPi { candidate.pyNegV0Dau(), candidate.pzNegV0Dau(), candidate.impactParCascXY(), - candidate.impactParPrimaryPiXY(), - candidate.impactParV0XY(), - candidate.impactParOmegacXY(), + candidate.impactParPiFromCharmBaryonXY(), candidate.impactParCascZ(), - candidate.impactParPrimaryPiZ(), - candidate.impactParV0Z(), - candidate.impactParOmegacZ(), + candidate.impactParPiFromCharmBaryonZ(), + candidate.errImpactParCascXY(), + candidate.errImpactParPiFromCharmBaryonXY(), candidate.invMassLambda(), candidate.invMassCascade(), - candidate.invMassOmegac(), + candidate.invMassCharmBaryon(), candidate.cosPAV0(), - candidate.cosPAOmegac(), + candidate.cosPACharmBaryon(), candidate.cosPACasc(), candidate.cosPAXYV0(), - candidate.cosPAXYOmegac(), + candidate.cosPAXYCharmBaryon(), candidate.cosPAXYCasc(), candidate.ctauOmegac(), candidate.ctauCascade(), @@ -268,8 +239,8 @@ struct HfTreeCreatorToXiPi { candidate.etaV0PosDau(), candidate.etaV0NegDau(), candidate.etaPiFromCasc(), - candidate.etaPiFromOme(), - candidate.etaOmegac(), + candidate.etaPiFromCharmBaryon(), + candidate.etaCharmBaryon(), candidate.etaCascade(), candidate.etaV0(), candidate.dcaXYToPvV0Dau0(), @@ -280,21 +251,26 @@ struct HfTreeCreatorToXiPi { candidate.dcaZToPvCascDau(), candidate.dcaCascDau(), candidate.dcaV0Dau(), - candidate.dcaOmegacDau(), + candidate.dcaCharmBaryonDau(), + candidate.decLenCharmBaryon(), + candidate.decLenCascade(), + candidate.decLenV0(), + candidate.errorDecayLengthCharmBaryon(), + candidate.errorDecayLengthXYCharmBaryon(), candidate.statusPidLambda(), candidate.statusPidCascade(), - candidate.statusPidOmegac(), + candidate.statusPidCharmBaryon(), candidate.statusInvMassLambda(), candidate.statusInvMassCascade(), - candidate.statusInvMassOmegac(), + candidate.statusInvMassCharmBaryon(), candidate.resultSelections(), candidate.pidTpcInfoStored(), candidate.pidTofInfoStored(), - candidate.tpcNSigmaPiFromOmega(), + candidate.tpcNSigmaPiFromCharmBaryon(), candidate.tpcNSigmaPiFromCasc(), candidate.tpcNSigmaPiFromLambda(), candidate.tpcNSigmaPrFromLambda(), - candidate.tofNSigmaPiFromOmega(), + candidate.tofNSigmaPiFromCharmBaryon(), candidate.tofNSigmaPiFromCasc(), candidate.tofNSigmaPiFromLambda(), candidate.tofNSigmaPrFromLambda(), @@ -305,13 +281,6 @@ struct HfTreeCreatorToXiPi { void processData(aod::Collisions const& collisions, soa::Join const& candidates) { - - // Filling event properties - rowCandidateEvents.reserve(collisions.size()); - for (const auto& collision : collisions) { - fillEvent(collision); - } - // Filling candidate properties rowCandidateFull.reserve(candidates.size()); for (const auto& candidate : candidates) { @@ -323,13 +292,6 @@ struct HfTreeCreatorToXiPi { void processMc(aod::Collisions const& collisions, soa::Join const& candidates) { - - // Filling event properties - rowCandidateEvents.reserve(collisions.size()); - for (const auto& collision : collisions) { - fillEvent(collision); - } - // Filling candidate properties rowCandidateFull.reserve(candidates.size()); for (const auto& candidate : candidates) {