@@ -910,8 +910,8 @@ struct HfProducerCharmHadronsTrackFemtoDream {
910910 0 );
911911 }
912912
913- template <bool IsMc, bool UseCharmMl, typename TrackType, typename CollisionType, typename CandType>
914- void fillXicHadronTable (CollisionType const & col, TrackType const & tracks, CandType const & candidates)
913+ template <bool IsMc, bool UseCharmMl, typename TrackType, typename CollisionType, typename CandType, typename DaughterTrackType >
914+ void fillXicHadronTable (CollisionType const & col, TrackType const & tracks, CandType const & candidates, DaughterTrackType const & )
915915 {
916916 const auto vtxZ = col.posZ ();
917917 const auto sizeCand = candidates.size ();
@@ -986,9 +986,9 @@ struct HfProducerCharmHadronsTrackFemtoDream {
986986 const auto phi0 = static_cast <float >(RecoDecay::phi (candidate.pxProng0 (), candidate.pyProng0 ()));
987987 const auto phi1 = static_cast <float >(RecoDecay::phi (candidate.pxProng1 (), candidate.pyProng1 ()));
988988 const auto phi2 = static_cast <float >(RecoDecay::phi (candidate.pxProng2 (), candidate.pyProng2 ()));
989- const auto cascBachelorTrack = tracks. rawIteratorAt ( candidate.bachelorId () );
990- const auto cascPosTrack = tracks. rawIteratorAt ( candidate.posTrackId () );
991- const auto cascNegTrack = tracks. rawIteratorAt ( candidate.negTrackId () );
989+ const auto cascBachelorTrack = candidate.template bachelor_as <DaughterTrackType>( );
990+ const auto cascPosTrack = candidate.template posTrack_as <DaughterTrackType>( );
991+ const auto cascNegTrack = candidate.template negTrack_as <DaughterTrackType>( );
992992
993993 tables.rowCandCharm3ProngXic (
994994 tables.outputCollision .lastIndex (),
@@ -1358,84 +1358,92 @@ struct HfProducerCharmHadronsTrackFemtoDream {
13581358 void processDataXicToXiPiPi (FemtoFullCollision const & col,
13591359 aod::BCsWithTimestamps const &,
13601360 FemtoHFTracks const & tracks,
1361+ aod::FullTracks const & daughterTracks,
13611362 soa::Filtered<CandidateXic> const & candidates)
13621363 {
13631364 getMagneticFieldTesla (col.bc_as <aod::BCsWithTimestamps>());
1364- fillXicHadronTable<false , false >(col, tracks, candidates);
1365+ fillXicHadronTable<false , false >(col, tracks, candidates, daughterTracks );
13651366 }
13661367 PROCESS_SWITCH (HfProducerCharmHadronsTrackFemtoDream, processDataXicToXiPiPi, " Data for XicToXiPiPi femto (DCAFitter; no HFCANDXICKF)" , false );
13671368
13681369 void processDataXicToXiPiPiKf (FemtoFullCollision const & col,
13691370 aod::BCsWithTimestamps const &,
13701371 FemtoHFTracks const & tracks,
1372+ aod::FullTracks const & daughterTracks,
13711373 soa::Filtered<CandidateXicKf> const & candidates)
13721374 {
13731375 getMagneticFieldTesla (col.bc_as <aod::BCsWithTimestamps>());
1374- fillXicHadronTable<false , false >(col, tracks, candidates);
1376+ fillXicHadronTable<false , false >(col, tracks, candidates, daughterTracks );
13751377 }
13761378 PROCESS_SWITCH (HfProducerCharmHadronsTrackFemtoDream, processDataXicToXiPiPiKf, " Data for XicToXiPiPi femto (KFParticle; requires HFCANDXICKF)" , false );
13771379
13781380 void processDataXicToXiPiPiWithML (FemtoFullCollision const & col,
13791381 aod::BCsWithTimestamps const &,
13801382 FemtoHFTracks const & tracks,
1383+ aod::FullTracks const & daughterTracks,
13811384 soa::Filtered<soa::Join<CandidateXic, aod::HfMlXicToXiPiPi>> const & candidates)
13821385 {
13831386 getMagneticFieldTesla (col.bc_as <aod::BCsWithTimestamps>());
1384- fillXicHadronTable<false , true >(col, tracks, candidates);
1387+ fillXicHadronTable<false , true >(col, tracks, candidates, daughterTracks );
13851388 }
13861389 PROCESS_SWITCH (HfProducerCharmHadronsTrackFemtoDream, processDataXicToXiPiPiWithML, " Data for XicToXiPiPi femto with ML (DCAFitter)" , false );
13871390
13881391 void processDataXicToXiPiPiWithMLKf (FemtoFullCollision const & col,
13891392 aod::BCsWithTimestamps const &,
13901393 FemtoHFTracks const & tracks,
1394+ aod::FullTracks const & daughterTracks,
13911395 soa::Filtered<soa::Join<CandidateXicKf, aod::HfMlXicToXiPiPi>> const & candidates)
13921396 {
13931397 getMagneticFieldTesla (col.bc_as <aod::BCsWithTimestamps>());
1394- fillXicHadronTable<false , true >(col, tracks, candidates);
1398+ fillXicHadronTable<false , true >(col, tracks, candidates, daughterTracks );
13951399 }
13961400 PROCESS_SWITCH (HfProducerCharmHadronsTrackFemtoDream, processDataXicToXiPiPiWithMLKf, " Data for XicToXiPiPi femto with ML (KFParticle)" , false );
13971401
13981402 void processMcXicToXiPiPi (FemtoFullCollisionMc const & col,
13991403 aod::BCsWithTimestamps const &,
14001404 FemtoHFMcTracks const & tracks,
1405+ aod::FullTracks const & daughterTracks,
14011406 aod::McParticles const &,
14021407 soa::Filtered<CandidateXicMc> const & candidates)
14031408 {
14041409 getMagneticFieldTesla (col.bc_as <aod::BCsWithTimestamps>());
1405- fillXicHadronTable<true , false >(col, tracks, candidates);
1410+ fillXicHadronTable<true , false >(col, tracks, candidates, daughterTracks );
14061411 }
14071412 PROCESS_SWITCH (HfProducerCharmHadronsTrackFemtoDream, processMcXicToXiPiPi, " MC for XicToXiPiPi (DCAFitter)" , false );
14081413
14091414 void processMcXicToXiPiPiKf (FemtoFullCollisionMc const & col,
14101415 aod::BCsWithTimestamps const &,
14111416 FemtoHFMcTracks const & tracks,
1417+ aod::FullTracks const & daughterTracks,
14121418 aod::McParticles const &,
14131419 soa::Filtered<CandidateXicKfMc> const & candidates)
14141420 {
14151421 getMagneticFieldTesla (col.bc_as <aod::BCsWithTimestamps>());
1416- fillXicHadronTable<true , false >(col, tracks, candidates);
1422+ fillXicHadronTable<true , false >(col, tracks, candidates, daughterTracks );
14171423 }
14181424 PROCESS_SWITCH (HfProducerCharmHadronsTrackFemtoDream, processMcXicToXiPiPiKf, " MC for XicToXiPiPi (KFParticle)" , false );
14191425
14201426 void processMcXicToXiPiPiWithML (FemtoFullCollisionMc const & col,
14211427 aod::BCsWithTimestamps const &,
14221428 FemtoHFMcTracks const & tracks,
1429+ aod::FullTracks const & daughterTracks,
14231430 aod::McParticles const &,
14241431 soa::Filtered<soa::Join<CandidateXicMc, aod::HfMlXicToXiPiPi>> const & candidates)
14251432 {
14261433 getMagneticFieldTesla (col.bc_as <aod::BCsWithTimestamps>());
1427- fillXicHadronTable<true , true >(col, tracks, candidates);
1434+ fillXicHadronTable<true , true >(col, tracks, candidates, daughterTracks );
14281435 }
14291436 PROCESS_SWITCH (HfProducerCharmHadronsTrackFemtoDream, processMcXicToXiPiPiWithML, " MC for XicToXiPiPi with ML (DCAFitter)" , false );
14301437
14311438 void processMcXicToXiPiPiWithMLKf (FemtoFullCollisionMc const & col,
14321439 aod::BCsWithTimestamps const &,
14331440 FemtoHFMcTracks const & tracks,
1441+ aod::FullTracks const & daughterTracks,
14341442 aod::McParticles const &,
14351443 soa::Filtered<soa::Join<CandidateXicKfMc, aod::HfMlXicToXiPiPi>> const & candidates)
14361444 {
14371445 getMagneticFieldTesla (col.bc_as <aod::BCsWithTimestamps>());
1438- fillXicHadronTable<true , true >(col, tracks, candidates);
1446+ fillXicHadronTable<true , true >(col, tracks, candidates, daughterTracks );
14391447 }
14401448 PROCESS_SWITCH (HfProducerCharmHadronsTrackFemtoDream, processMcXicToXiPiPiWithMLKf, " MC for XicToXiPiPi with ML (KFParticle)" , false );
14411449
0 commit comments