@@ -1912,6 +1912,210 @@ DECLARE_SOA_TABLE(HfCandXicMcGen, "AOD", "HFCANDXICMCGEN", //!
19121912 hf_cand_xic_to_xi_pi_pi::OriginGen,
19131913 hf_cand::PdgBhadMotherPart);
19141914
1915+ // specific xic0 -> xi pi and xicp -> xi pi pi properties
1916+ namespace hf_cand_xic0_xicp_to_hadronic
1917+ {
1918+ // Base columns
1919+ DECLARE_SOA_INDEX_COLUMN_FULL (Pi, pi, int , Tracks, " _pi" );
1920+ DECLARE_SOA_COLUMN (XPvErr, xPvErr, float );
1921+ DECLARE_SOA_COLUMN (YPvErr, yPvErr, float );
1922+ DECLARE_SOA_COLUMN (ZPvErr, zPvErr, float );
1923+ DECLARE_SOA_COLUMN (XSvErr, xSvErr, float );
1924+ DECLARE_SOA_COLUMN (YSvErr, ySvErr, float );
1925+ DECLARE_SOA_COLUMN (ZSvErr, zSvErr, float );
1926+ DECLARE_SOA_COLUMN (CosPaXi, cosPaXi, float );
1927+ DECLARE_SOA_COLUMN (CosPaXYXi, cosPaXYXi, float );
1928+ DECLARE_SOA_COLUMN (CosPaLambda, cosPaLambda, float );
1929+ DECLARE_SOA_COLUMN (CosPaXYLambda, cosPaXYLambda, float );
1930+ DECLARE_SOA_COLUMN (CosPaLambdaToXi, cosPaLambdaToXi, float );
1931+ DECLARE_SOA_COLUMN (CosPaXYLambdaToXi, cosPaXYLambdaToXi, float );
1932+ DECLARE_SOA_COLUMN (InvMassXic0, invMassXic0, float );
1933+ DECLARE_SOA_COLUMN (InvMassXi, invMassXi, float );
1934+ DECLARE_SOA_COLUMN (InvMassLambda, invMassLambda, float );
1935+ DECLARE_SOA_COLUMN (CascSign, cascSign, float );
1936+ DECLARE_SOA_COLUMN (PBachelorPi, pBachelorPi, float );
1937+ DECLARE_SOA_COLUMN (PPiFromLambda, pPiFromLambda, float );
1938+ DECLARE_SOA_COLUMN (PPrFromLambda, pPrFromLambda, float );
1939+ DECLARE_SOA_COLUMN (DcaXiDaughters, dcaXiDaughters, float );
1940+ DECLARE_SOA_COLUMN (DcaV0Daughters, dcaV0Daughters, float );
1941+ DECLARE_SOA_COLUMN (DcaPosToPV, dcaPosToPV, float );
1942+ DECLARE_SOA_COLUMN (DcaNegToPV, dcaNegToPV, float );
1943+ DECLARE_SOA_COLUMN (DcaBachelorToPV, dcaBachelorToPV, float );
1944+ DECLARE_SOA_COLUMN (DcaXYCascToPV, dcaXYCascToPV, float );
1945+ DECLARE_SOA_COLUMN (DcaZCascToPV, dcaZCascToPV, float );
1946+ // KF specific columns
1947+ DECLARE_SOA_COLUMN (KfDecayLength, kfDecayLength, float );
1948+ DECLARE_SOA_COLUMN (KfDecayLengthNormalized, kfDecayLengthNormalized, float );
1949+ DECLARE_SOA_COLUMN (KfDecayLengthXY, kfDecayLengthXY, float );
1950+ DECLARE_SOA_COLUMN (KfDecayLengthXYNormalized, kfDecayLengthXYNormalized, float );
1951+ DECLARE_SOA_COLUMN (Chi2TopoXic0ToPVBeforeConstraint, chi2TopoXic0ToPVBeforeConstraint, float );
1952+ DECLARE_SOA_COLUMN (Chi2TopoXic0ToPV, chi2TopoXic0ToPV, float );
1953+ DECLARE_SOA_COLUMN (Chi2TopoXiToXic0BeforeConstraint, chi2TopoXiToXic0BeforeConstraint, float );
1954+ DECLARE_SOA_COLUMN (Chi2TopoXiToXic0, chi2TopoXiToXic0, float );
1955+ DECLARE_SOA_COLUMN (DcaXYPiXi, dcaXYPiXi, float );
1956+ DECLARE_SOA_COLUMN (DcaPiXi, dcaPiXi, float );
1957+ // PID
1958+ DECLARE_SOA_COLUMN (NSigTpcPiFromXic0, nSigTpcPiFromXic0, float );
1959+ DECLARE_SOA_COLUMN (NSigTpcBachelorPi, nSigTpcBachelorPi, float ); // -> Bachelor from cascade
1960+ DECLARE_SOA_COLUMN (NSigTpcPiFromLambda, nSigTpcPiFromLambda, float );
1961+ DECLARE_SOA_COLUMN (NSigTpcPrFromLambda, nSigTpcPrFromLambda, float );
1962+ DECLARE_SOA_COLUMN (NSigTofPiFromXic0, nSigTofPiFromXic0, float );
1963+ DECLARE_SOA_COLUMN (NSigTofBachelorPi, nSigTofBachelorPi, float );
1964+ DECLARE_SOA_COLUMN (NSigTofPiFromLambda, nSigTofPiFromLambda, float );
1965+ DECLARE_SOA_COLUMN (NSigTofPrFromLambda, nSigTofPrFromLambda, float );
1966+ // Dynamic columns
1967+ DECLARE_SOA_DYNAMIC_COLUMN (PProng0, pProng0, // !
1968+ [](float px, float py, float pz) -> float { return RecoDecay::p (px, py, pz); });
1969+ DECLARE_SOA_DYNAMIC_COLUMN (PProng1, pProng1, // !
1970+ [](float px, float py, float pz) -> float { return RecoDecay::p (px, py, pz); });
1971+ // MC
1972+ DECLARE_SOA_COLUMN (FlagMcMatchRec, flagMcMatchRec, int8_t ); // -> Reconstruction level
1973+ DECLARE_SOA_COLUMN (FlagMcMatchGen, flagMcMatchGen, int8_t ); // -> Generation level
1974+ DECLARE_SOA_COLUMN (DebugMcRec, debugMcRec, int8_t ); // -> Debug flog for miss-association
1975+ DECLARE_SOA_COLUMN (DebugMcGen, debugMcGen, int8_t );
1976+ DECLARE_SOA_COLUMN (OriginRec, originRec, int8_t ); // -> Prompt, non-prompt distinction
1977+ DECLARE_SOA_COLUMN (OriginGen, originGen, int8_t );
1978+
1979+
1980+
1981+ enum DecayType { Xic0ToXiPi = 0 ,
1982+ XicpToXiPiPi };
1983+
1984+ }// end of hf_cand_xic0_xicp_to_hadronic
1985+
1986+ // BaseTable
1987+ DECLARE_SOA_TABLE (HfCandXic0Base, " AOD" , " HFCANDXIC0BASE" ,
1988+ hf_cand::CollisionId,
1989+ collision::PosX, collision::PosY, collision::PosZ,
1990+ hf_cand_xic0_xicp_to_hadronic::XPvErr, hf_cand_xic0_xicp_to_hadronic::YPvErr, hf_cand_xic0_xicp_to_hadronic::ZPvErr,
1991+ // 2-prong specific columns
1992+ cascdata::CascadeId,
1993+ hf_cand_xic0_xicp_to_hadronic::PiId,
1994+ cascdata::BachelorId,
1995+ cascdata::PosTrackId,
1996+ cascdata::NegTrackId,
1997+ hf_cand::XSecondaryVertex,
1998+ hf_cand::YSecondaryVertex,
1999+ hf_cand::ZSecondaryVertex,
2000+ hf_cand_xic0_xicp_to_hadronic::XSvErr,
2001+ hf_cand_xic0_xicp_to_hadronic::YSvErr,
2002+ hf_cand_xic0_xicp_to_hadronic::ZSvErr,
2003+ hf_cand::ErrorDecayLength,
2004+ hf_cand::ErrorDecayLengthXY,
2005+ hf_cand::Chi2PCA,
2006+ hf_cand_xic0_xicp_to_hadronic::InvMassXic0,
2007+ hf_cand_xic0_xicp_to_hadronic::CascSign,
2008+ hf_cand::PxProng0,
2009+ hf_cand::PyProng0,
2010+ hf_cand::PzProng0,
2011+ hf_cand::PxProng1,
2012+ hf_cand::PyProng1,
2013+ hf_cand::PzProng1,
2014+ hf_cand::ImpactParameter0,
2015+ hf_cand::ImpactParameter1,
2016+ hf_cand::ErrorImpactParameter0,
2017+ hf_cand::ErrorImpactParameter1,
2018+ // cascade specific columns
2019+ hf_cand_xic0_xicp_to_hadronic::PBachelorPi,
2020+ hf_cand_xic0_xicp_to_hadronic::PPiFromLambda,
2021+ hf_cand_xic0_xicp_to_hadronic::PPrFromLambda,
2022+ hf_cand_xic0_xicp_to_hadronic::CosPaXi,
2023+ hf_cand_xic0_xicp_to_hadronic::CosPaXYXi,
2024+ hf_cand_xic0_xicp_to_hadronic::CosPaLambda,
2025+ hf_cand_xic0_xicp_to_hadronic::CosPaXYLambda,
2026+ hf_cand_xic0_xicp_to_hadronic::CosPaLambdaToXi,
2027+ hf_cand_xic0_xicp_to_hadronic::CosPaXYLambdaToXi,
2028+ hf_cand_xic0_xicp_to_hadronic::InvMassXi,
2029+ hf_cand_xic0_xicp_to_hadronic::InvMassLambda,
2030+ // DCA
2031+ hf_cand_xic0_xicp_to_hadronic::DcaXiDaughters,
2032+ hf_cand_xic0_xicp_to_hadronic::DcaV0Daughters,
2033+ hf_cand_xic0_xicp_to_hadronic::DcaPosToPV,
2034+ hf_cand_xic0_xicp_to_hadronic::DcaNegToPV,
2035+ hf_cand_xic0_xicp_to_hadronic::DcaBachelorToPV,
2036+ hf_cand_xic0_xicp_to_hadronic::DcaXYCascToPV,
2037+ hf_cand_xic0_xicp_to_hadronic::DcaZCascToPV,
2038+ // PID
2039+ hf_cand_xic0_xicp_to_hadronic::NSigTpcPiFromXic0,
2040+ hf_cand_xic0_xicp_to_hadronic::NSigTpcBachelorPi,
2041+ hf_cand_xic0_xicp_to_hadronic::NSigTpcPiFromLambda,
2042+ hf_cand_xic0_xicp_to_hadronic::NSigTpcPrFromLambda,
2043+ hf_cand_xic0_xicp_to_hadronic::NSigTofPiFromXic0,
2044+ hf_cand_xic0_xicp_to_hadronic::NSigTofBachelorPi,
2045+ hf_cand_xic0_xicp_to_hadronic::NSigTofPiFromLambda,
2046+ hf_cand_xic0_xicp_to_hadronic::NSigTofPrFromLambda,
2047+ /* dynamic columns */
2048+ hf_cand::DecayLength<collision::PosX, collision::PosY, collision::PosZ,
2049+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex>,
2050+ hf_cand::DecayLengthXY<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex>,
2051+ hf_cand::DecayLengthNormalised<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex,
2052+ hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand::ErrorDecayLength>,
2053+ hf_cand::DecayLengthXYNormalised<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ErrorDecayLengthXY>,
2054+ hf_cand::ImpactParameterNormalised0<hf_cand::ImpactParameter0, hf_cand::ErrorImpactParameter0>,
2055+ hf_cand::ImpactParameterNormalised1<hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter1>,
2056+ hf_cand::ImpactParameterNormalised2<hf_cand::ImpactParameter2, hf_cand::ErrorImpactParameter2>,
2057+ /* dynamic columns that use daughter momentum components */
2058+ hf_cand_xic0_xicp_to_hadronic::PProng0<hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0>,
2059+ hf_cand::PtProng0<hf_cand::PxProng0, hf_cand::PyProng0>,
2060+ hf_cand_xic0_xicp_to_hadronic::PProng1<hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1>,
2061+ hf_cand::PtProng1<hf_cand::PxProng1, hf_cand::PyProng1>,
2062+ /* dynamic columns that use candidate momentum components */
2063+ hf_cand::Pt<hf_cand_2prong::Px, hf_cand_2prong::Py>,
2064+ hf_cand::P<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2065+ hf_cand::PVector<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2066+ hf_cand::Cpa<collision::PosX, collision::PosY, collision::PosZ,
2067+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex,
2068+ hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2069+ hf_cand::CpaXY<collision::PosX, collision::PosY,
2070+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex,
2071+ hf_cand_2prong::Px, hf_cand_2prong::Py>,
2072+ hf_cand::Ct<collision::PosX, collision::PosY, collision::PosZ,
2073+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex,
2074+ hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2075+ hf_cand::ImpactParameterXY<collision::PosX, collision::PosY, collision::PosZ,
2076+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex,
2077+ hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2078+ hf_cand_2prong::MaxNormalisedDeltaIP<collision::PosX, collision::PosY,
2079+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ErrorDecayLengthXY,
2080+ hf_cand_2prong::Px, hf_cand_2prong::Py,
2081+ hf_cand::ImpactParameter0, hf_cand::ErrorImpactParameter0,
2082+ hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter1,
2083+ hf_cand::PxProng0, hf_cand::PyProng0,
2084+ hf_cand::PxProng1, hf_cand::PyProng1>,
2085+ hf_cand::Eta<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>,
2086+ hf_cand::Phi<hf_cand_2prong::Px, hf_cand_2prong::Py>,
2087+ hf_cand::Y<hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz>)
2088+
2089+
2090+ DECLARE_SOA_TABLE (HfCandXic0KF, " AOD" , " HFCANDXIC0KF" ,
2091+ cascdata::KFCascadeChi2,
2092+ cascdata::KFV0Chi2,
2093+ hf_cand_xic0_xicp_to_hadronic::KfDecayLength,
2094+ hf_cand_xic0_xicp_to_hadronic::KfDecayLengthNormalized,
2095+ hf_cand_xic0_xicp_to_hadronic::KfDecayLengthXY,
2096+ hf_cand_xic0_xicp_to_hadronic::KfDecayLengthXYNormalized,
2097+ hf_cand_xic0_xicp_to_hadronic::Chi2TopoXic0ToPVBeforeConstraint,
2098+ hf_cand_xic0_xicp_to_hadronic::Chi2TopoXic0ToPV,
2099+ hf_cand_xic0_xicp_to_hadronic::Chi2TopoXiToXic0BeforeConstraint,
2100+ hf_cand_xic0_xicp_to_hadronic::Chi2TopoXiToXic0,
2101+ hf_cand_xic0_xicp_to_hadronic::DcaXYPiXi,
2102+ hf_cand_xic0_xicp_to_hadronic::DcaPiXi)
2103+
2104+ DECLARE_SOA_EXTENDED_TABLE_USER (HfCandXic0Ext, HfCandXic0Base, " HFCANDXIC0EXT" ,
2105+ hf_cand_2prong::Px, hf_cand_2prong::Py, hf_cand_2prong::Pz);
2106+
2107+ using HfCandXic0 = HfCandXic0Ext;
2108+
2109+ DECLARE_SOA_TABLE (HfCandXic0McRec, " AOD" , " HFCANDXIC0MCREC" ,
2110+ hf_cand_xic0_xicp_to_hadronic::FlagMcMatchRec,
2111+ hf_cand_xic0_xicp_to_hadronic::DebugMcRec,
2112+ hf_cand_xic0_xicp_to_hadronic::OriginRec)
2113+
2114+ DECLARE_SOA_TABLE (HfCandXic0McGen, " AOD" , " HFCANDXIC0MCGEN" ,
2115+ hf_cand_xic0_xicp_to_hadronic::FlagMcMatchGen,
2116+ hf_cand_xic0_xicp_to_hadronic::DebugMcGen,
2117+ hf_cand_xic0_xicp_to_hadronic::OriginGen)
2118+
19152119// specific chic candidate properties
19162120namespace hf_cand_chic
19172121{
0 commit comments