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