@@ -2031,6 +2031,210 @@ DECLARE_SOA_TABLE(HfCandXicResid, "AOD", "HFCANDXICRESID",
20312031 hf_cand_xic_to_xi_pi_pi::XSvPull,
20322032 hf_cand_xic_to_xi_pi_pi::YSvPull,
20332033 hf_cand_xic_to_xi_pi_pi::ZSvPull);
2034+ // specific xic0 -> xi pi and xicp -> xi pi pi properties
2035+ namespace hf_cand_xic0_xicp_to_hadronic
2036+ {
2037+ // Base columns
2038+ DECLARE_SOA_INDEX_COLUMN_FULL (Pi, pi, int , Tracks, " _pi" );
2039+ DECLARE_SOA_COLUMN (XPvErr, xPvErr, float );
2040+ DECLARE_SOA_COLUMN (YPvErr, yPvErr, float );
2041+ DECLARE_SOA_COLUMN (ZPvErr, zPvErr, float );
2042+ DECLARE_SOA_COLUMN (XSvErr, xSvErr, float );
2043+ DECLARE_SOA_COLUMN (YSvErr, ySvErr, float );
2044+ DECLARE_SOA_COLUMN (ZSvErr, zSvErr, float );
2045+ DECLARE_SOA_COLUMN (CosPaXi, cosPaXi, float );
2046+ DECLARE_SOA_COLUMN (CosPaXYXi, cosPaXYXi, float );
2047+ DECLARE_SOA_COLUMN (CosPaLambda, cosPaLambda, float );
2048+ DECLARE_SOA_COLUMN (CosPaXYLambda, cosPaXYLambda, float );
2049+ DECLARE_SOA_COLUMN (CosPaLambdaToXi, cosPaLambdaToXi, float );
2050+ DECLARE_SOA_COLUMN (CosPaXYLambdaToXi, cosPaXYLambdaToXi, float );
2051+ DECLARE_SOA_COLUMN (InvMassXic0, invMassXic0, float );
2052+ DECLARE_SOA_COLUMN (InvMassXi, invMassXi, float );
2053+ DECLARE_SOA_COLUMN (InvMassLambda, invMassLambda, float );
2054+ DECLARE_SOA_COLUMN (CascSign, cascSign, float );
2055+ DECLARE_SOA_COLUMN (PBachelorPi, pBachelorPi, float );
2056+ DECLARE_SOA_COLUMN (PPiFromLambda, pPiFromLambda, float );
2057+ DECLARE_SOA_COLUMN (PPrFromLambda, pPrFromLambda, float );
2058+ DECLARE_SOA_COLUMN (DcaXiDaughters, dcaXiDaughters, float );
2059+ DECLARE_SOA_COLUMN (DcaV0Daughters, dcaV0Daughters, float );
2060+ DECLARE_SOA_COLUMN (DcaPosToPV, dcaPosToPV, float );
2061+ DECLARE_SOA_COLUMN (DcaNegToPV, dcaNegToPV, float );
2062+ DECLARE_SOA_COLUMN (DcaBachelorToPV, dcaBachelorToPV, float );
2063+ DECLARE_SOA_COLUMN (DcaXYCascToPV, dcaXYCascToPV, float );
2064+ DECLARE_SOA_COLUMN (DcaZCascToPV, dcaZCascToPV, float );
2065+ // KF specific columns
2066+ DECLARE_SOA_COLUMN (KfDecayLength, kfDecayLength, float );
2067+ DECLARE_SOA_COLUMN (KfDecayLengthNormalized, kfDecayLengthNormalized, float );
2068+ DECLARE_SOA_COLUMN (KfDecayLengthXY, kfDecayLengthXY, float );
2069+ DECLARE_SOA_COLUMN (KfDecayLengthXYNormalized, kfDecayLengthXYNormalized, float );
2070+ DECLARE_SOA_COLUMN (Chi2TopoXic0ToPVBeforeConstraint, chi2TopoXic0ToPVBeforeConstraint, float );
2071+ DECLARE_SOA_COLUMN (Chi2TopoXic0ToPV, chi2TopoXic0ToPV, float );
2072+ DECLARE_SOA_COLUMN (Chi2TopoXiToXic0BeforeConstraint, chi2TopoXiToXic0BeforeConstraint, float );
2073+ DECLARE_SOA_COLUMN (Chi2TopoXiToXic0, chi2TopoXiToXic0, float );
2074+ DECLARE_SOA_COLUMN (DcaXYPiXi, dcaXYPiXi, float );
2075+ DECLARE_SOA_COLUMN (DcaPiXi, dcaPiXi, float );
2076+ // PID
2077+ DECLARE_SOA_COLUMN (NSigTpcPiFromXic0, nSigTpcPiFromXic0, float );
2078+ DECLARE_SOA_COLUMN (NSigTpcBachelorPi, nSigTpcBachelorPi, float ); // -> Bachelor from cascade
2079+ DECLARE_SOA_COLUMN (NSigTpcPiFromLambda, nSigTpcPiFromLambda, float );
2080+ DECLARE_SOA_COLUMN (NSigTpcPrFromLambda, nSigTpcPrFromLambda, float );
2081+ DECLARE_SOA_COLUMN (NSigTofPiFromXic0, nSigTofPiFromXic0, float );
2082+ DECLARE_SOA_COLUMN (NSigTofBachelorPi, nSigTofBachelorPi, float );
2083+ DECLARE_SOA_COLUMN (NSigTofPiFromLambda, nSigTofPiFromLambda, float );
2084+ DECLARE_SOA_COLUMN (NSigTofPrFromLambda, nSigTofPrFromLambda, float );
2085+ // Dynamic columns
2086+ DECLARE_SOA_DYNAMIC_COLUMN (PProng0, pProng0, // !
2087+ [](float px, float py, float pz) -> float { return RecoDecay::p (px, py, pz); });
2088+ DECLARE_SOA_DYNAMIC_COLUMN (PProng1, pProng1, // !
2089+ [](float px, float py, float pz) -> float { return RecoDecay::p (px, py, pz); });
2090+ // MC
2091+ DECLARE_SOA_COLUMN (FlagMcMatchRec, flagMcMatchRec, int8_t ); // -> Reconstruction level
2092+ DECLARE_SOA_COLUMN (FlagMcMatchGen, flagMcMatchGen, int8_t ); // -> Generation level
2093+ DECLARE_SOA_COLUMN (DebugMcRec, debugMcRec, int8_t ); // -> Debug flog for miss-association
2094+ DECLARE_SOA_COLUMN (DebugMcGen, debugMcGen, int8_t );
2095+ DECLARE_SOA_COLUMN (OriginRec, originRec, int8_t ); // -> Prompt, non-prompt distinction
2096+ DECLARE_SOA_COLUMN (OriginGen, originGen, int8_t );
2097+
2098+
2099+
2100+ enum DecayType { Xic0ToXiPi = 0 ,
2101+ XicpToXiPiPi };
2102+
2103+ }// end of hf_cand_xic0_xicp_to_hadronic
2104+
2105+ // BaseTable
2106+ DECLARE_SOA_TABLE (HfCandXic0Base, " AOD" , " HFCANDXIC0BASE" ,
2107+ hf_cand::CollisionId,
2108+ collision::PosX, collision::PosY, collision::PosZ,
2109+ hf_cand_xic0_xicp_to_hadronic::XPvErr, hf_cand_xic0_xicp_to_hadronic::YPvErr, hf_cand_xic0_xicp_to_hadronic::ZPvErr,
2110+ // 2-prong specific columns
2111+ cascdata::CascadeId,
2112+ hf_cand_xic0_xicp_to_hadronic::PiId,
2113+ cascdata::BachelorId,
2114+ cascdata::PosTrackId,
2115+ cascdata::NegTrackId,
2116+ hf_cand::XSecondaryVertex,
2117+ hf_cand::YSecondaryVertex,
2118+ hf_cand::ZSecondaryVertex,
2119+ hf_cand_xic0_xicp_to_hadronic::XSvErr,
2120+ hf_cand_xic0_xicp_to_hadronic::YSvErr,
2121+ hf_cand_xic0_xicp_to_hadronic::ZSvErr,
2122+ hf_cand::ErrorDecayLength,
2123+ hf_cand::ErrorDecayLengthXY,
2124+ hf_cand::Chi2PCA,
2125+ hf_cand_xic0_xicp_to_hadronic::InvMassXic0,
2126+ hf_cand_xic0_xicp_to_hadronic::CascSign,
2127+ hf_cand::PxProng0,
2128+ hf_cand::PyProng0,
2129+ hf_cand::PzProng0,
2130+ hf_cand::PxProng1,
2131+ hf_cand::PyProng1,
2132+ hf_cand::PzProng1,
2133+ hf_cand::ImpactParameter0,
2134+ hf_cand::ImpactParameter1,
2135+ hf_cand::ErrorImpactParameter0,
2136+ hf_cand::ErrorImpactParameter1,
2137+ // cascade specific columns
2138+ hf_cand_xic0_xicp_to_hadronic::PBachelorPi,
2139+ hf_cand_xic0_xicp_to_hadronic::PPiFromLambda,
2140+ hf_cand_xic0_xicp_to_hadronic::PPrFromLambda,
2141+ hf_cand_xic0_xicp_to_hadronic::CosPaXi,
2142+ hf_cand_xic0_xicp_to_hadronic::CosPaXYXi,
2143+ hf_cand_xic0_xicp_to_hadronic::CosPaLambda,
2144+ hf_cand_xic0_xicp_to_hadronic::CosPaXYLambda,
2145+ hf_cand_xic0_xicp_to_hadronic::CosPaLambdaToXi,
2146+ hf_cand_xic0_xicp_to_hadronic::CosPaXYLambdaToXi,
2147+ hf_cand_xic0_xicp_to_hadronic::InvMassXi,
2148+ hf_cand_xic0_xicp_to_hadronic::InvMassLambda,
2149+ // DCA
2150+ hf_cand_xic0_xicp_to_hadronic::DcaXiDaughters,
2151+ hf_cand_xic0_xicp_to_hadronic::DcaV0Daughters,
2152+ hf_cand_xic0_xicp_to_hadronic::DcaPosToPV,
2153+ hf_cand_xic0_xicp_to_hadronic::DcaNegToPV,
2154+ hf_cand_xic0_xicp_to_hadronic::DcaBachelorToPV,
2155+ hf_cand_xic0_xicp_to_hadronic::DcaXYCascToPV,
2156+ hf_cand_xic0_xicp_to_hadronic::DcaZCascToPV,
2157+ // PID
2158+ hf_cand_xic0_xicp_to_hadronic::NSigTpcPiFromXic0,
2159+ hf_cand_xic0_xicp_to_hadronic::NSigTpcBachelorPi,
2160+ hf_cand_xic0_xicp_to_hadronic::NSigTpcPiFromLambda,
2161+ hf_cand_xic0_xicp_to_hadronic::NSigTpcPrFromLambda,
2162+ hf_cand_xic0_xicp_to_hadronic::NSigTofPiFromXic0,
2163+ hf_cand_xic0_xicp_to_hadronic::NSigTofBachelorPi,
2164+ hf_cand_xic0_xicp_to_hadronic::NSigTofPiFromLambda,
2165+ hf_cand_xic0_xicp_to_hadronic::NSigTofPrFromLambda,
2166+ /* dynamic columns */
2167+ hf_cand::DecayLength<collision::PosX, collision::PosY, collision::PosZ,
2168+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex>,
2169+ hf_cand::DecayLengthXY<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex>,
2170+ hf_cand::DecayLengthNormalised<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex,
2171+ hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand::ErrorDecayLength>,
2172+ hf_cand::DecayLengthXYNormalised<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ErrorDecayLengthXY>,
2173+ hf_cand::ImpactParameterNormalised0<hf_cand::ImpactParameter0, hf_cand::ErrorImpactParameter0>,
2174+ hf_cand::ImpactParameterNormalised1<hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter1>,
2175+ hf_cand::ImpactParameterNormalised2<hf_cand::ImpactParameter2, hf_cand::ErrorImpactParameter2>,
2176+ /* dynamic columns that use daughter momentum components */
2177+ hf_cand_xic0_xicp_to_hadronic::PProng0<hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0>,
2178+ hf_cand::PtProng0<hf_cand::PxProng0, hf_cand::PyProng0>,
2179+ hf_cand_xic0_xicp_to_hadronic::PProng1<hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1>,
2180+ hf_cand::PtProng1<hf_cand::PxProng1, hf_cand::PyProng1>,
2181+ /* dynamic columns that use candidate momentum components */
2182+ hf_cand::Pt<hf_cand_2prong::Px, hf_cand_2prong::Py>,
2183+ hf_cand::P<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2184+ hf_cand::PVector<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2185+ hf_cand::Cpa<collision::PosX, collision::PosY, collision::PosZ,
2186+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex,
2187+ hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2188+ hf_cand::CpaXY<collision::PosX, collision::PosY,
2189+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex,
2190+ hf_cand_2prong::Px, hf_cand_2prong::Py>,
2191+ hf_cand::Ct<collision::PosX, collision::PosY, collision::PosZ,
2192+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex,
2193+ hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2194+ hf_cand::ImpactParameterXY<collision::PosX, collision::PosY, collision::PosZ,
2195+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex,
2196+ hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2197+ hf_cand_2prong::MaxNormalisedDeltaIP<collision::PosX, collision::PosY,
2198+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ErrorDecayLengthXY,
2199+ hf_cand_2prong::Px, hf_cand_2prong::Py,
2200+ hf_cand::ImpactParameter0, hf_cand::ErrorImpactParameter0,
2201+ hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter1,
2202+ hf_cand::PxProng0, hf_cand::PyProng0,
2203+ hf_cand::PxProng1, hf_cand::PyProng1>,
2204+ hf_cand::Eta<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2205+ hf_cand::Phi<hf_cand_2prong::Px, hf_cand_2prong::Py>,
2206+ hf_cand::Y<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>)
2207+
2208+
2209+ DECLARE_SOA_TABLE (HfCandXic0KF, " AOD" , " HFCANDXIC0KF" ,
2210+ cascdata::KFCascadeChi2,
2211+ cascdata::KFV0Chi2,
2212+ hf_cand_xic0_xicp_to_hadronic::KfDecayLength,
2213+ hf_cand_xic0_xicp_to_hadronic::KfDecayLengthNormalized,
2214+ hf_cand_xic0_xicp_to_hadronic::KfDecayLengthXY,
2215+ hf_cand_xic0_xicp_to_hadronic::KfDecayLengthXYNormalized,
2216+ hf_cand_xic0_xicp_to_hadronic::Chi2TopoXic0ToPVBeforeConstraint,
2217+ hf_cand_xic0_xicp_to_hadronic::Chi2TopoXic0ToPV,
2218+ hf_cand_xic0_xicp_to_hadronic::Chi2TopoXiToXic0BeforeConstraint,
2219+ hf_cand_xic0_xicp_to_hadronic::Chi2TopoXiToXic0,
2220+ hf_cand_xic0_xicp_to_hadronic::DcaXYPiXi,
2221+ hf_cand_xic0_xicp_to_hadronic::DcaPiXi)
2222+
2223+ DECLARE_SOA_EXTENDED_TABLE_USER (HfCandXic0Ext, HfCandXic0Base, " HFCANDXIC0EXT" ,
2224+ hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz);
2225+
2226+ using HfCandXic0 = HfCandXic0Ext;
2227+
2228+ DECLARE_SOA_TABLE (HfCandXic0McRec, " AOD" , " HFCANDXIC0MCREC" ,
2229+ hf_cand_xic0_xicp_to_hadronic::FlagMcMatchRec,
2230+ hf_cand_xic0_xicp_to_hadronic::DebugMcRec,
2231+ hf_cand_xic0_xicp_to_hadronic::OriginRec)
2232+
2233+ DECLARE_SOA_TABLE (HfCandXic0McGen, " AOD" , " HFCANDXIC0MCGEN" ,
2234+ hf_cand_xic0_xicp_to_hadronic::FlagMcMatchGen,
2235+ hf_cand_xic0_xicp_to_hadronic::DebugMcGen,
2236+ hf_cand_xic0_xicp_to_hadronic::OriginGen)
2237+ >>>>>>> 966303b7b (Xic0XicpToHadronic : Xic0 workflow fully implemented)
20342238
20352239// specific chic candidate properties
20362240namespace hf_cand_chic
0 commit comments