Skip to content

Commit c07eea9

Browse files
author
Mattia Faggin
committed
Propagate changes to code related to Xic+->pKpi analyses.
Modifications done on core code: - TableProducer/candidateSelectorXicToPKPi.cxx Analysis tasks + following code where modifications are needed: - [ MODIFIED ] TableProducer/treeCreatorXicToPKPi.cxx - [ MODIFIED ] D2H/Tasks/taskXic.cxx
1 parent bd0d7df commit c07eea9

File tree

3 files changed

+71
-78
lines changed

3 files changed

+71
-78
lines changed

PWGHF/D2H/Tasks/taskXic.cxx

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ struct HfTaskXic {
7171

7272
Filter filterSelectCandidates = (aod::hf_sel_candidate_xic::isSelXicToPKPi >= selectionFlagXic || aod::hf_sel_candidate_xic::isSelXicToPiKP >= selectionFlagXic);
7373

74-
Partition<soa::Join<aod::HfCand3Prong, aod::HfSelXicToPKPi, aod::HfCand3ProngMcRec>> selectedMCXicCandidates = (aod::hf_sel_candidate_xic::isSelXicToPKPi >= selectionFlagXic || aod::hf_sel_candidate_xic::isSelXicToPiKP >= selectionFlagXic);
74+
Partition<soa::Join<aod::HfCand3ProngWPid, aod::HfSelXicToPKPi, aod::HfCand3ProngMcRec>> selectedMCXicCandidates = (aod::hf_sel_candidate_xic::isSelXicToPKPi >= selectionFlagXic || aod::hf_sel_candidate_xic::isSelXicToPiKP >= selectionFlagXic);
7575

7676
HistogramRegistry registry{
7777
"registry", // histo not in pt bins
@@ -325,30 +325,30 @@ struct HfTaskXic {
325325
auto momentumProng2 = trackProng2.p();
326326

327327
// TPC nSigma histograms
328-
registry.fill(HIST("Data/hPVsTPCNSigmaPr_Prong0"), momentumProng0, trackProng0.tpcNSigmaPr());
329-
registry.fill(HIST("Data/hPVsTPCNSigmaPi_Prong0"), momentumProng0, trackProng0.tpcNSigmaPi());
330-
registry.fill(HIST("Data/hPVsTPCNSigmaKa_Prong0"), momentumProng0, trackProng0.tpcNSigmaKa());
328+
registry.fill(HIST("Data/hPVsTPCNSigmaPr_Prong0"), momentumProng0, candidate.nSigTpcPr0());
329+
registry.fill(HIST("Data/hPVsTPCNSigmaPi_Prong0"), momentumProng0, candidate.nSigTpcPi0());
330+
registry.fill(HIST("Data/hPVsTPCNSigmaKa_Prong0"), momentumProng0, candidate.nSigTpcKa0());
331331

332-
registry.fill(HIST("Data/hPVsTPCNSigmaPr_Prong1"), momentumProng1, trackProng1.tpcNSigmaPr());
333-
registry.fill(HIST("Data/hPVsTPCNSigmaPi_Prong1"), momentumProng1, trackProng1.tpcNSigmaPi());
334-
registry.fill(HIST("Data/hPVsTPCNSigmaKa_Prong1"), momentumProng1, trackProng1.tpcNSigmaKa());
332+
registry.fill(HIST("Data/hPVsTPCNSigmaPr_Prong1"), momentumProng1, candidate.nSigTpcPr1());
333+
registry.fill(HIST("Data/hPVsTPCNSigmaPi_Prong1"), momentumProng1, candidate.nSigTpcPi1());
334+
registry.fill(HIST("Data/hPVsTPCNSigmaKa_Prong1"), momentumProng1, candidate.nSigTpcKa1());
335335

336-
registry.fill(HIST("Data/hPVsTPCNSigmaPr_Prong2"), momentumProng2, trackProng2.tpcNSigmaPr());
337-
registry.fill(HIST("Data/hPVsTPCNSigmaPi_Prong2"), momentumProng2, trackProng2.tpcNSigmaPi());
338-
registry.fill(HIST("Data/hPVsTPCNSigmaKa_Prong2"), momentumProng2, trackProng2.tpcNSigmaKa());
336+
registry.fill(HIST("Data/hPVsTPCNSigmaPr_Prong2"), momentumProng2, candidate.nSigTpcPr2());
337+
registry.fill(HIST("Data/hPVsTPCNSigmaPi_Prong2"), momentumProng2, candidate.nSigTpcPi2());
338+
registry.fill(HIST("Data/hPVsTPCNSigmaKa_Prong2"), momentumProng2, candidate.nSigTpcKa2());
339339

340340
// TOF nSigma histograms
341-
registry.fill(HIST("Data/hPVsTOFNSigmaPr_Prong0"), momentumProng0, trackProng0.tofNSigmaPr());
342-
registry.fill(HIST("Data/hPVsTOFNSigmaPi_Prong0"), momentumProng0, trackProng0.tofNSigmaPi());
343-
registry.fill(HIST("Data/hPVsTOFNSigmaKa_Prong0"), momentumProng0, trackProng0.tofNSigmaKa());
341+
registry.fill(HIST("Data/hPVsTOFNSigmaPr_Prong0"), momentumProng0, candidate.nSigTofPr0());
342+
registry.fill(HIST("Data/hPVsTOFNSigmaPi_Prong0"), momentumProng0, candidate.nSigTofPi0());
343+
registry.fill(HIST("Data/hPVsTOFNSigmaKa_Prong0"), momentumProng0, candidate.nSigTofKa0());
344344

345-
registry.fill(HIST("Data/hPVsTOFNSigmaPr_Prong1"), momentumProng1, trackProng1.tofNSigmaPr());
346-
registry.fill(HIST("Data/hPVsTOFNSigmaPi_Prong1"), momentumProng1, trackProng1.tofNSigmaPi());
347-
registry.fill(HIST("Data/hPVsTOFNSigmaKa_Prong1"), momentumProng1, trackProng1.tofNSigmaKa());
345+
registry.fill(HIST("Data/hPVsTOFNSigmaPr_Prong1"), momentumProng1, candidate.nSigTofPr1());
346+
registry.fill(HIST("Data/hPVsTOFNSigmaPi_Prong1"), momentumProng1, candidate.nSigTofPi1());
347+
registry.fill(HIST("Data/hPVsTOFNSigmaKa_Prong1"), momentumProng1, candidate.nSigTofKa1());
348348

349-
registry.fill(HIST("Data/hPVsTOFNSigmaPr_Prong2"), momentumProng2, trackProng2.tofNSigmaPr());
350-
registry.fill(HIST("Data/hPVsTOFNSigmaPi_Prong2"), momentumProng2, trackProng2.tofNSigmaPi());
351-
registry.fill(HIST("Data/hPVsTOFNSigmaKa_Prong2"), momentumProng2, trackProng2.tofNSigmaKa());
349+
registry.fill(HIST("Data/hPVsTOFNSigmaPr_Prong2"), momentumProng2, candidate.nSigTpcPr2());
350+
registry.fill(HIST("Data/hPVsTOFNSigmaPi_Prong2"), momentumProng2, candidate.nSigTpcPi2());
351+
registry.fill(HIST("Data/hPVsTOFNSigmaKa_Prong2"), momentumProng2, candidate.nSigTpcKa2());
352352

353353
// THnSparse
354354
if (enableTHn) {
@@ -383,19 +383,19 @@ struct HfTaskXic {
383383
}
384384
}
385385
} // thn for Xic
386-
} // loop candidates
387-
} // end process data
386+
} // loop candidates
387+
} // end process data
388388

389389
void processDataStd(aod::Collision const& collision,
390-
soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelXicToPKPi>> const& candidates,
390+
soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfSelXicToPKPi>> const& candidates,
391391
TracksWPid const& tracks)
392392
{
393393
analysisData<false>(collision, candidates, tracks);
394394
}
395395
PROCESS_SWITCH(HfTaskXic, processDataStd, "Process Data with the standard method", true);
396396

397397
void processDataWithMl(aod::Collision const& collision,
398-
soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelXicToPKPi, aod::HfMlXicToPKPi>> const& candidatesMl, TracksWPid const& tracks)
398+
soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfSelXicToPKPi, aod::HfMlXicToPKPi>> const& candidatesMl, TracksWPid const& tracks)
399399
{
400400
analysisData<true>(collision, candidatesMl, tracks);
401401
}
@@ -567,7 +567,7 @@ struct HfTaskXic {
567567
registry.fill(HIST("MC/reconstructed/background/hDecLenErrBg"), candidate.errorDecayLength(), ptCandidate);
568568
registry.fill(HIST("MC/reconstructed/background/hChi2PCARecBg"), candidate.chi2PCA(), ptCandidate);
569569
} // Xic background
570-
} // candidate loop
570+
} // candidate loop
571571

572572
// MC gen.
573573
for (const auto& particle : mcParticles) {
@@ -600,15 +600,15 @@ struct HfTaskXic {
600600
}
601601
}
602602
}
603-
void processMcStd(soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelXicToPKPi, aod::HfCand3ProngMcRec>> const& selectedCandidatesMc,
603+
void processMcStd(soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfSelXicToPKPi, aod::HfCand3ProngMcRec>> const& selectedCandidatesMc,
604604
soa::Join<aod::McParticles, aod::HfCand3ProngMcGen> const& mcParticles,
605605
aod::TracksWMc const& tracksWithMc)
606606
{
607607
analysisMc<false>(selectedCandidatesMc, mcParticles, tracksWithMc);
608608
}
609609
PROCESS_SWITCH(HfTaskXic, processMcStd, "Process MC with the standard method", false);
610610

611-
void processMcWithMl(soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelXicToPKPi, aod::HfMlXicToPKPi, aod::HfCand3ProngMcRec>> const& selectedCandidatesMlMc,
611+
void processMcWithMl(soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfSelXicToPKPi, aod::HfMlXicToPKPi, aod::HfCand3ProngMcRec>> const& selectedCandidatesMlMc,
612612
soa::Join<aod::McParticles, aod::HfCand3ProngMcGen> const& mcParticles,
613613
aod::TracksWMc const& tracksWithMc)
614614
{

PWGHF/TableProducer/candidateSelectorXicToPKPi.cxx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ struct HfCandidateSelectorXicToPKPi {
222222
return true;
223223
}
224224

225-
void process(aod::HfCand3Prong const& candidates,
225+
void process(aod::HfCand3ProngWPid const& candidates,
226226
TracksSel const&)
227227
{
228228
// looping over 3-prong candidates
@@ -307,17 +307,17 @@ struct HfCandidateSelectorXicToPKPi {
307307
TrackSelectorPID::Status pidTrackNegKaon = TrackSelectorPID::Accepted;
308308
if (usePidTpcAndTof) {
309309

310-
pidTrackPos1Proton = selectorProton.statusTpcAndTof(trackPos1);
311-
pidTrackPos2Proton = selectorProton.statusTpcAndTof(trackPos2);
312-
pidTrackPos1Pion = selectorPion.statusTpcAndTof(trackPos1);
313-
pidTrackPos2Pion = selectorPion.statusTpcAndTof(trackPos2);
314-
pidTrackNegKaon = selectorKaon.statusTpcAndTof(trackNeg);
310+
pidTrackPos1Proton = selectorProton.statusTpcAndTof(trackPos1, candidate.nSigTpcPr0(), candidate.nSigTofPr0());
311+
pidTrackPos2Proton = selectorProton.statusTpcAndTof(trackPos2, candidate.nSigTpcPr2(), candidate.nSigTofPr2());
312+
pidTrackPos1Pion = selectorPion.statusTpcAndTof(trackPos1, candidate.nSigTpcPi0(), candidate.nSigTofPi0());
313+
pidTrackPos2Pion = selectorPion.statusTpcAndTof(trackPos2, candidate.nSigTpcPi2(), candidate.nSigTofPi2());
314+
pidTrackNegKaon = selectorKaon.statusTpcAndTof(trackNeg, candidate.nSigTpcKa1(), candidate.nSigTofKa1());
315315
} else {
316-
pidTrackPos1Proton = selectorProton.statusTpcOrTof(trackPos1);
317-
pidTrackPos2Proton = selectorProton.statusTpcOrTof(trackPos2);
318-
pidTrackPos1Pion = selectorPion.statusTpcOrTof(trackPos1);
319-
pidTrackPos2Pion = selectorPion.statusTpcOrTof(trackPos2);
320-
pidTrackNegKaon = selectorKaon.statusTpcOrTof(trackNeg);
316+
pidTrackPos1Proton = selectorProton.statusTpcOrTof(trackPos1, candidate.nSigTpcPr0(), candidate.nSigTofPr0());
317+
pidTrackPos2Proton = selectorProton.statusTpcOrTof(trackPos2, candidate.nSigTpcPr2(), candidate.nSigTofPr2());
318+
pidTrackPos1Pion = selectorPion.statusTpcOrTof(trackPos1, candidate.nSigTpcPi0(), candidate.nSigTofPi0());
319+
pidTrackPos2Pion = selectorPion.statusTpcOrTof(trackPos2, candidate.nSigTpcPi2(), candidate.nSigTofPi2());
320+
pidTrackNegKaon = selectorKaon.statusTpcOrTof(trackNeg, candidate.nSigTpcKa1(), candidate.nSigTofKa1());
321321
}
322322

323323
if (pidTrackPos1Proton == TrackSelectorPID::Accepted &&

PWGHF/TableProducer/treeCreatorXicToPKPi.cxx

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -226,10 +226,9 @@ struct HfTreeCreatorXicToPKPi {
226226

227227
HfHelper hfHelper;
228228

229-
using CandXicData = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelXicToPKPi>>;
230-
using CandXicMcReco = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelXicToPKPi, aod::HfCand3ProngMcRec>>;
229+
using CandXicData = soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfSelXicToPKPi>>;
230+
using CandXicMcReco = soa::Filtered<soa::Join<aod::HfCand3ProngWPid, aod::HfSelXicToPKPi, aod::HfCand3ProngMcRec>>;
231231
using CandXicMcGen = soa::Filtered<soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>>;
232-
using TracksWPid = soa::Join<aod::Tracks, aod::TracksPidPi, aod::PidTpcTofFullPi, aod::TracksPidKa, aod::PidTpcTofFullKa, aod::TracksPidPr, aod::PidTpcTofFullPr>;
233232

234233
Filter filterSelectCandidates = aod::hf_sel_candidate_xic::isSelXicToPKPi >= selectionFlagXic || aod::hf_sel_candidate_xic::isSelXicToPiKP >= selectionFlagXic;
235234
Filter filterMcGenMatching = nabs(o2::aod::hf_cand_3prong::flagMcMatchGen) == static_cast<int8_t>(BIT(aod::hf_cand_3prong::DecayType::XicToPKPi));
@@ -279,10 +278,6 @@ struct HfTreeCreatorXicToPKPi {
279278
invMassXic = hfHelper.invMassXicToPiKP(candidate);
280279
}
281280

282-
auto trackPos1 = candidate.template prong0_as<TracksWPid>(); // positive daughter (negative for the antiparticles)
283-
auto trackNeg = candidate.template prong1_as<TracksWPid>(); // negative daughter (positive for the antiparticles)
284-
auto trackPos2 = candidate.template prong2_as<TracksWPid>(); // positive daughter (negative for the antiparticles)
285-
286281
if (fillCandidateLiteTable) {
287282
rowCandidateLite(
288283
candidate.chi2PCA(),
@@ -296,21 +291,21 @@ struct HfTreeCreatorXicToPKPi {
296291
candidate.impactParameter0(),
297292
candidate.impactParameter1(),
298293
candidate.impactParameter2(),
299-
trackPos1.tpcNSigmaPi(),
300-
trackPos1.tpcNSigmaPr(),
301-
trackPos1.tofNSigmaPi(),
302-
trackPos1.tofNSigmaPr(),
303-
trackNeg.tpcNSigmaKa(),
304-
trackNeg.tofNSigmaKa(),
305-
trackPos2.tpcNSigmaPi(),
306-
trackPos2.tpcNSigmaPr(),
307-
trackPos2.tofNSigmaPi(),
308-
trackPos2.tofNSigmaPr(),
309-
trackPos1.tpcTofNSigmaPi(),
310-
trackPos1.tpcTofNSigmaPr(),
311-
trackNeg.tpcTofNSigmaKa(),
312-
trackPos2.tpcTofNSigmaPi(),
313-
trackPos2.tpcTofNSigmaPr(),
294+
candidate.nSigTpcPi0(),
295+
candidate.nSigTpcPr0(),
296+
candidate.nSigTofPi0(),
297+
candidate.nSigTofPr0(),
298+
candidate.nSigTpcKa1(),
299+
candidate.nSigTofKa1(),
300+
candidate.nSigTpcPi2(),
301+
candidate.nSigTpcPr2(),
302+
candidate.nSigTofPi2(),
303+
candidate.nSigTofPr2(),
304+
candidate.tpcTofNSigmaPi0(),
305+
candidate.tpcTofNSigmaPr0(),
306+
candidate.tpcTofNSigmaKa1(),
307+
candidate.tpcTofNSigmaPi2(),
308+
candidate.tpcTofNSigmaPr2(),
314309
candidate.isSelXicToPKPi(),
315310
candidate.isSelXicToPiKP(),
316311
invMassXic,
@@ -363,21 +358,21 @@ struct HfTreeCreatorXicToPKPi {
363358
candidate.errorImpactParameter0(),
364359
candidate.errorImpactParameter1(),
365360
candidate.errorImpactParameter2(),
366-
trackPos1.tpcNSigmaPi(),
367-
trackPos1.tpcNSigmaPr(),
368-
trackPos1.tofNSigmaPi(),
369-
trackPos1.tofNSigmaPr(),
370-
trackNeg.tpcNSigmaKa(),
371-
trackNeg.tofNSigmaKa(),
372-
trackPos2.tpcNSigmaPi(),
373-
trackPos2.tpcNSigmaPr(),
374-
trackPos2.tofNSigmaPi(),
375-
trackPos2.tofNSigmaPr(),
376-
trackPos1.tpcTofNSigmaPi(),
377-
trackPos1.tpcTofNSigmaPr(),
378-
trackNeg.tpcTofNSigmaKa(),
379-
trackPos2.tpcTofNSigmaPi(),
380-
trackPos2.tpcTofNSigmaPr(),
361+
candidate.nSigTpcPi0(),
362+
candidate.nSigTpcPr0(),
363+
candidate.nSigTofPi0(),
364+
candidate.nSigTofPr0(),
365+
candidate.nSigTpcKa1(),
366+
candidate.nSigTofKa1(),
367+
candidate.nSigTpcPi2(),
368+
candidate.nSigTpcPr2(),
369+
candidate.nSigTofPi2(),
370+
candidate.nSigTofPr2(),
371+
candidate.tpcTofNSigmaPi0(),
372+
candidate.tpcTofNSigmaPr0(),
373+
candidate.tpcTofNSigmaKa1(),
374+
candidate.tpcTofNSigmaPi2(),
375+
candidate.tpcTofNSigmaPr2(),
381376
candidate.isSelXicToPKPi(),
382377
candidate.isSelXicToPiKP(),
383378
invMassXic,
@@ -397,8 +392,7 @@ struct HfTreeCreatorXicToPKPi {
397392
}
398393

399394
void processData(aod::Collisions const& collisions,
400-
CandXicData const&,
401-
TracksWPid const&)
395+
CandXicData const&)
402396
{
403397
// Filling event properties
404398
rowCandidateFullEvents.reserve(collisions.size());
@@ -438,8 +432,7 @@ struct HfTreeCreatorXicToPKPi {
438432
void processMc(aod::Collisions const& collisions,
439433
aod::McCollisions const&,
440434
CandXicMcReco const&,
441-
CandXicMcGen const& mcParticles,
442-
TracksWPid const&)
435+
CandXicMcGen const& mcParticles)
443436
{
444437
// Filling event properties
445438
rowCandidateFullEvents.reserve(collisions.size());

0 commit comments

Comments
 (0)