Skip to content

Commit 92ea67a

Browse files
authored
PWGHF: minor adjustements to D* + track workflow (#6959)
* PWGHF: minor adjustements to D* + track workflow * Fix to input tables
1 parent e8b03b7 commit 92ea67a

1 file changed

Lines changed: 18 additions & 6 deletions

File tree

PWGHF/D2H/TableProducer/dataCreatorCharmResoReduced.cxx

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)