@@ -141,7 +141,7 @@ struct HfDataCreatorCharmResoReduced {
141141 using CandsDplusFilteredWithMl = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelDplusToPiKPi, aod::HfMlDplusToPiKPi>>;
142142 using CandDstarFiltered = soa::Filtered<soa::Join<aod::HfD0FromDstar, aod::HfCandDstars, aod::HfSelDstarToD0Pi>>;
143143 using CandDstarFilteredWithMl = soa::Filtered<soa::Join<aod::HfD0FromDstar, aod::HfCandDstars, aod::HfSelDstarToD0Pi, aod::HfMlDstarToD0Pi>>;
144- using TracksWithPID = soa::Join<aod::Tracks, aod::TracksExtra, aod::TrackSelection, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPr, aod::pidTOFFullPr>;
144+ using TracksWithPID = soa::Join<aod::Tracks, aod::TracksCov, aod:: TracksExtra, aod::TrackSelection, aod::TracksDCA , aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPr, aod::pidTOFFullPr>;
145145
146146 Filter filterSelectDplus = (aod::hf_sel_candidate_dplus::isSelDplusToPiKPi >= cfgDmesCuts.selectionFlagDplus);
147147 Filter filterSelectedCandDstar = (aod::hf_sel_candidate_dstar::isSelDstarToD0Pi == cfgDmesCuts.selectionFlagDstarToD0Pi);
@@ -170,8 +170,8 @@ struct HfDataCreatorCharmResoReduced {
170170 }
171171
172172 const AxisSpec axisPt{50 , 0 .f , 50 .f , " " };
173- const AxisSpec axisP{10 , 0 .f , 10 .f , " " };
174- const AxisSpec axisDeDx{500 , 0 .f , 2000 .f , " " };
173+ const AxisSpec axisP{100 , 0 .f , 10 .f , " " };
174+ const AxisSpec axisDeDx{500 , 0 .f , 1000 .f , " " };
175175 const AxisSpec axisMassDplus{200 , 1 .7f , 2 .1f , " " };
176176 const AxisSpec axisMassDstar{200 , 0 .139f , 0 .179f , " " };
177177 const AxisSpec axisMassLambda{100 , 1 .05f , 1 .35f , " " };
@@ -193,11 +193,13 @@ struct HfDataCreatorCharmResoReduced {
193193 registry.add (" hV0Type" , " V0 selection flag" , {HistType::kTH1F , {{8 , -0.5 , 7.5 }}});
194194 registry.add (" hDType" , " D selection flag" , {HistType::kTH1F , {{5 , -2.5 , 2.5 }}});
195195
196+ // Configure CCDB access
196197 ccdb->setURL (url.value );
197198 ccdb->setCaching (true );
198199 ccdb->setLocalObjectValidityChecking ();
199200 ccdb->setCreatedNotAfter (std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now ().time_since_epoch ()).count ());
200201 ccdbApi.init (url);
202+ runNumber = 0 ;
201203 lut = o2::base::MatLayerCylSet::rectifyPtrFromFile (ccdb->get <o2::base::MatLayerCylSet>(" GLO/Param/MatLUT" ));
202204 }
203205
@@ -460,12 +462,22 @@ struct HfDataCreatorCharmResoReduced {
460462 if (!isTrackSelected (track, prongIdsD)) {
461463 continue ;
462464 }
465+
466+ // if the track has been reassociated, re-propagate it to PV (minor difference)
467+ auto trackParCovTrack = getTrackParCov (track);
468+ o2::gpu::gpustd::array<float , 2 > dcaTrack{track.dcaXY (), track.dcaZ ()};
469+ std::array<float , 3 > pVecTrack = track.pVector ();
470+ if (track.collisionId () != collision.globalIndex ()) {
471+ o2::base::Propagator::Instance ()->propagateToDCABxByBz ({collision.posX (), collision.posY (), collision.posZ ()}, trackParCovTrack, 2 .f , matCorr, &dcaTrack);
472+ getPxPyPz (trackParCovTrack, pVecTrack);
473+ }
474+
463475 registry.fill (HIST (" hdEdxVsP" ), track.p (), track.tpcSignal ());
464476 float invMassKPiPiP{0 .f };
465477 if (candD.signSoftPi () > 0 ) {
466- invMassKPiPiP = RecoDecay::m (std::array{candD.pVectorProng0 (), candD.pVectorProng1 (), candD.pVecSoftPi (), track. pVector () }, std::array{MassPiPlus, MassKPlus, MassPiPlus, MassProton});
478+ invMassKPiPiP = RecoDecay::m (std::array{candD.pVectorProng0 (), candD.pVectorProng1 (), candD.pVecSoftPi (), pVecTrack }, std::array{MassPiPlus, MassKPlus, MassPiPlus, MassProton});
467479 } else {
468- invMassKPiPiP = RecoDecay::m (std::array{candD.pVectorProng1 (), candD.pVectorProng0 (), candD.pVecSoftPi (), track. pVector () }, std::array{MassPiPlus, MassKPlus, MassPiPlus, MassProton});
480+ invMassKPiPiP = RecoDecay::m (std::array{candD.pVectorProng1 (), candD.pVectorProng0 (), candD.pVecSoftPi (), pVecTrack }, std::array{MassPiPlus, MassKPlus, MassPiPlus, MassProton});
469481 }
470482 registry.fill (HIST (" hMassDstarProton" ), invMassKPiPiP - invMassD);
471483 if (!selectedTracks.count (track.globalIndex ())) {
@@ -492,7 +504,7 @@ struct HfDataCreatorCharmResoReduced {
492504 hfCandDMl (bdtScores[0 ], bdtScores[1 ], bdtScores[2 ]);
493505 }
494506 fillHfReducedCollision = true ;
495- if constexpr (DecayChannel == DecayChannel::DstarV0) {
507+ if constexpr (DecayChannel == DecayChannel::DstarV0 || DecayChannel == DecayChannel::DstarTrack ) {
496508 registry.fill (HIST (" hMassVsPtDstarPaired" ), candD.pt (), invMassD - invMassDdau);
497509 } else if constexpr (DecayChannel == DecayChannel::DplusV0) {
498510 registry.fill (HIST (" hMassVsPtDplusPaired" ), candD.pt (), invMassD);
0 commit comments