@@ -1320,6 +1320,120 @@ DECLARE_SOA_TABLE(HfToOmegaKMCGen, "AOD", "HFTOOMEKMCGEN", //!
13201320 hf_cand_xic0_omegac0::FlagMcMatchGen, hf_cand_xic0_omegac0::DebugGenCharmBar, hf_cand_xic0_omegac0::DebugGenCasc, hf_cand_xic0_omegac0::DebugGenLambda,
13211321 hf_cand_xic0_omegac0::PtCharmBaryonGen, hf_cand_xic0_omegac0::RapidityCharmBaryonGen, hf_cand_xic0_omegac0::OriginGen, hf_cand::IdxBhadMotherPart, o2::soa::Marker<4 >);
13221322
1323+ // specific Xic to Xi Pi Pi candidate properties
1324+ namespace hf_cand_xic_to_xi_pi_pi
1325+ {
1326+ DECLARE_SOA_INDEX_COLUMN_FULL (Pi0, pi0, int , Tracks, " _pi0" );
1327+ DECLARE_SOA_INDEX_COLUMN_FULL (Pi1, pi1, int , Tracks, " _pi1" );
1328+ DECLARE_SOA_COLUMN (XPvErr, xPvErr, float );
1329+ DECLARE_SOA_COLUMN (YPvErr, yPvErr, float );
1330+ DECLARE_SOA_COLUMN (ZPvErr, zPvErr, float );
1331+ DECLARE_SOA_COLUMN (XSvErr, xSvErr, float );
1332+ DECLARE_SOA_COLUMN (YSvErr, ySvErr, float );
1333+ DECLARE_SOA_COLUMN (ZSvErr, zSvErr, float );
1334+ DECLARE_SOA_COLUMN (XDecayVtxXi, xDecayVtxXi, float );
1335+ DECLARE_SOA_COLUMN (YDecayVtxXi, yDecayVtxXi, float );
1336+ DECLARE_SOA_COLUMN (ZDecayVtxXi, zDecayVtxXi, float );
1337+ DECLARE_SOA_COLUMN (XDecayVtxLambda, xDecayVtxLambda, float );
1338+ DECLARE_SOA_COLUMN (YDecayVtxLambda, yDecayVtxLambda, float );
1339+ DECLARE_SOA_COLUMN (ZDecayVtxLambda, zDecayVtxLambda, float );
1340+ DECLARE_SOA_COLUMN (CosPaXi, cosPaXi, float );
1341+ DECLARE_SOA_COLUMN (CosPaXYXi, cosPaXYXi, float );
1342+ DECLARE_SOA_COLUMN (CosPaLambda, cosPaLambda, float );
1343+ DECLARE_SOA_COLUMN (CosPaXYLambda, cosPaXYLambda, float );
1344+ DECLARE_SOA_COLUMN (InvMassXic, invMassXic, float );
1345+ DECLARE_SOA_COLUMN (Sign, sign, float );
1346+ DECLARE_SOA_COLUMN (InvMassXiPi0, invMassXiPi0, float );
1347+ DECLARE_SOA_COLUMN (InvMassXiPi1, invMassXiPi1, float );
1348+ // KF specific columns
1349+ DECLARE_SOA_COLUMN (DcaPi0Pi1, dcaPi0Pi1, float );
1350+ DECLARE_SOA_COLUMN (DcaPi0Xi, dcaPi0Xi, float );
1351+ DECLARE_SOA_COLUMN (DcaPi1Xi, dcaPi1Xi, float );
1352+ // MC matching result:
1353+ DECLARE_SOA_COLUMN (FlagMcMatchRec, flagMcMatchRec, int8_t ); // reconstruction level
1354+ DECLARE_SOA_COLUMN (FlagMcMatchGen, flagMcMatchGen, int8_t ); // generator level
1355+ DECLARE_SOA_COLUMN (DebugMcRec, debugMcRec, int8_t ); // debug flag for mis-association reconstruction level
1356+ DECLARE_SOA_COLUMN (DebugMcGen, debugMcGen, int8_t );
1357+ DECLARE_SOA_COLUMN (OriginRec, originRec, int8_t );
1358+ DECLARE_SOA_COLUMN (OriginGen, originGen, int8_t );
1359+
1360+ // mapping of decay types
1361+ enum DecayType { XicToXiPiPi = 0 , // Ξc± → Ξ∓ π± π±
1362+ XicToXiResPiToXiPiPi, // Ξc± → Ξ(1530) π± → Ξ∓ π± π±
1363+ NDecayType };
1364+ } // end of namespace hf_cand_xic_to_xi_pi_pi
1365+
1366+ // declare dedicated Xic to Xi Pi Pi candidate table
1367+ DECLARE_SOA_TABLE (HfCandXicBase, " AOD" , " HFCANDXICBASE" ,
1368+ hf_cand::CollisionId,
1369+ collision::PosX, collision::PosY, collision::PosZ,
1370+ hf_cand_xic_to_xi_pi_pi::XPvErr, hf_cand_xic_to_xi_pi_pi::YPvErr, hf_cand_xic_to_xi_pi_pi::ZPvErr,
1371+ // 3-prong specific columns
1372+ cascdata::CascadeId, hf_cand_xic_to_xi_pi_pi::Pi0Id, hf_cand_xic_to_xi_pi_pi::Pi1Id,
1373+ cascdata::BachelorId, cascdata::PosTrackId, cascdata::NegTrackId,
1374+ hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex,
1375+ hf_cand_xic_to_xi_pi_pi::XSvErr, hf_cand_xic_to_xi_pi_pi::YSvErr, hf_cand_xic_to_xi_pi_pi::ZSvErr,
1376+ hf_cand::ErrorDecayLength, hf_cand::ErrorDecayLengthXY,
1377+ hf_cand::Chi2PCA, hf_cand_xic_to_xi_pi_pi::InvMassXic, hf_cand_xic_to_xi_pi_pi::Sign,
1378+ hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0,
1379+ hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1,
1380+ hf_cand::PxProng2, hf_cand::PyProng2, hf_cand::PzProng2,
1381+ hf_cand::ImpactParameter0, hf_cand::ImpactParameter1, hf_cand::ImpactParameter2,
1382+ hf_cand::ErrorImpactParameter0, hf_cand::ErrorImpactParameter1, hf_cand::ErrorImpactParameter2,
1383+ // cascade specific columns
1384+ hf_cand_xic_to_xi_pi_pi::XDecayVtxXi, hf_cand_xic_to_xi_pi_pi::YDecayVtxXi, hf_cand_xic_to_xi_pi_pi::ZDecayVtxXi,
1385+ hf_cand_xic_to_xi_pi_pi::XDecayVtxLambda, hf_cand_xic_to_xi_pi_pi::YDecayVtxLambda, hf_cand_xic_to_xi_pi_pi::ZDecayVtxLambda,
1386+ hf_cand_xic_to_xi_pi_pi::CosPaXi, hf_cand_xic_to_xi_pi_pi::CosPaXYXi, hf_cand_xic_to_xi_pi_pi::CosPaLambda, hf_cand_xic_to_xi_pi_pi::CosPaXYLambda,
1387+ hf_cand_xic_to_xi_pi_pi::InvMassXiPi0, hf_cand_xic_to_xi_pi_pi::InvMassXiPi1,
1388+ /* dynamic columns */
1389+ hf_cand::RSecondaryVertex<hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex>,
1390+ hf_cand::DecayLength<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex>,
1391+ hf_cand::DecayLengthXY<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex>,
1392+ hf_cand::DecayLengthNormalised<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand::ErrorDecayLength>,
1393+ hf_cand::DecayLengthXYNormalised<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ErrorDecayLengthXY>,
1394+ hf_cand::ImpactParameterNormalised0<hf_cand::ImpactParameter0, hf_cand::ErrorImpactParameter0>,
1395+ hf_cand::ImpactParameterNormalised1<hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter1>,
1396+ hf_cand::ImpactParameterNormalised2<hf_cand::ImpactParameter2, hf_cand::ErrorImpactParameter2>,
1397+ /* dynamic columns that use daughter momentum components */
1398+ hf_cand::PtProng0<hf_cand::PxProng0, hf_cand::PyProng0>,
1399+ hf_cand::PtProng1<hf_cand::PxProng1, hf_cand::PyProng1>,
1400+ hf_cand::PtProng2<hf_cand::PxProng2, hf_cand::PyProng2>,
1401+ /* dynamic columns that use candidate momentum components */
1402+ hf_cand::Pt<hf_cand_3prong::Px, hf_cand_3prong::Py>,
1403+ hf_cand::P<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
1404+ hf_cand::PVector<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
1405+ hf_cand::CPA <collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
1406+ hf_cand::CPAXY <collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand_3prong::Px, hf_cand_3prong::Py>,
1407+ hf_cand::Ct<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
1408+ hf_cand::ImpactParameterXY<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
1409+ hf_cand_3prong::MaxNormalisedDeltaIP<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ErrorDecayLengthXY, hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand::ImpactParameter0, hf_cand::ErrorImpactParameter0, hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter1, hf_cand::ImpactParameter2, hf_cand::ErrorImpactParameter2, hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PxProng2, hf_cand::PyProng2>,
1410+ hf_cand::Eta<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
1411+ hf_cand::Phi<hf_cand_3prong::Px, hf_cand_3prong::Py>,
1412+ hf_cand::Y<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>,
1413+ hf_cand::E<hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz>);
1414+
1415+ // extended table with expression columns that can be used as arguments of dynamic columns
1416+ DECLARE_SOA_EXTENDED_TABLE_USER (HfCandXicExt, HfCandXicBase, " HFCANDXICEXT" ,
1417+ hf_cand_3prong::Px, hf_cand_3prong::Py, hf_cand_3prong::Pz);
1418+
1419+ using HfCandXic = HfCandXicExt;
1420+
1421+ DECLARE_SOA_TABLE (HfCandXicKF, " AOD" , " HFCANDXICKF" ,
1422+ cascdata::KFCascadeChi2, cascdata::KFV0Chi2,
1423+ hf_cand_xic_to_xi_pi_pi::DcaPi0Pi1, hf_cand_xic_to_xi_pi_pi::DcaPi0Xi, hf_cand_xic_to_xi_pi_pi::DcaPi1Xi);
1424+
1425+ // table with results of reconstruction level MC matching
1426+ DECLARE_SOA_TABLE (HfCandXicMcRec, " AOD" , " HFCANDXICMCREC" , // !
1427+ hf_cand_xic_to_xi_pi_pi::FlagMcMatchRec,
1428+ hf_cand_xic_to_xi_pi_pi::DebugMcRec,
1429+ hf_cand_xic_to_xi_pi_pi::OriginRec);
1430+
1431+ // table with results of generator level MC matching
1432+ DECLARE_SOA_TABLE (HfCandXicMcGen, " AOD" , " HFCANDXICMCGEN" , // !
1433+ hf_cand_xic_to_xi_pi_pi::FlagMcMatchGen,
1434+ hf_cand_xic_to_xi_pi_pi::DebugMcGen,
1435+ hf_cand_xic_to_xi_pi_pi::OriginGen);
1436+
13231437// specific chic candidate properties
13241438namespace hf_cand_chic
13251439{
0 commit comments