Skip to content

Commit 5f887ad

Browse files
committed
refactor iteration over V0Mothers in run() functions
1 parent e39fc03 commit 5f887ad

File tree

1 file changed

+88
-92
lines changed

1 file changed

+88
-92
lines changed

DPG/Tasks/TPC/tpcSkimsTableCreator.cxx

Lines changed: 88 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,24 @@ struct TreeWriterTpcV0 {
112112

113113
ctpRateFetcher mRateFetcher;
114114

115+
struct V0Daughter {
116+
double downsamplingTsalis;
117+
double mass;
118+
double maxPt4dwnsmplTsalis;
119+
double tpcNSigma;
120+
double tofNSigma;
121+
double tpcExpSignal;
122+
o2::track::PID::ID id;
123+
double dwnSmplFactor;
124+
bool isProton;
125+
};
126+
127+
struct V0Mother {
128+
int id;
129+
V0Daughter posDaughter;
130+
V0Daughter negDaughter;
131+
};
132+
115133
/// Funktion to fill skimmed tables
116134
template <bool doUseCorrecteddEdx = false, typename T, typename C, typename V0Casc>
117135
void fillSkimmedV0Table(V0Casc const& v0casc, T const& track, C const& collision, float nSigmaTPC, float nSigmaTOF, float dEdxExp, o2::track::PID::ID id, int runnumber, double dwnSmplFactor, float hadronicRate)
@@ -368,67 +386,56 @@ struct TreeWriterTpcV0 {
368386
if (!isEventSelected(collision, tracks)) {
369387
return;
370388
}
371-
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
389+
const auto& bc = collision.bc_as<aod::BCsWithTimestamps>();
372390
const int runnumber = bc.runNumber();
373-
float hadronicRate = mRateFetcher.fetch(ccdb.service, bc.timestamp(), runnumber, irSource) * 1.e-3;
391+
const float hadronicRate = mRateFetcher.fetch(ccdb.service, bc.timestamp(), runnumber, irSource) * 1.e-3;
374392

375393
rowTPCTree.reserve(tracks.size());
376394

377395
/// Loop over v0 candidates
378396
for (const auto& v0 : v0s) {
379-
auto posTrack = v0.posTrack_as<soa::Filtered<TrksType>>();
380-
auto negTrack = v0.negTrack_as<soa::Filtered<TrksType>>();
381-
if (v0.v0addid() == -1) {
397+
if (v0.v0addid() == kUndef) {
382398
continue;
383399
}
384-
// gamma
385-
if (static_cast<bool>(posTrack.pidbit() & (1 << 0)) && static_cast<bool>(negTrack.pidbit() & (1 << 0))) {
386-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisElectrons, MassElectorn, maxPt4dwnsmplTsalisElectrons)) {
387-
fillSkimmedV0Table<IsCorrecteddEdx>(v0, posTrack, collision, posTrack.tpcNSigmaEl(), posTrack.tofNSigmaEl(), posTrack.tpcExpSignalEl(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Electron, runnumber, dwnSmplFactor_El, hadronicRate);
388-
}
389-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisElectrons, MassElectorn, maxPt4dwnsmplTsalisElectrons)) {
390-
fillSkimmedV0Table<IsCorrecteddEdx>(v0, negTrack, collision, negTrack.tpcNSigmaEl(), negTrack.tofNSigmaEl(), negTrack.tpcExpSignalEl(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Electron, runnumber, dwnSmplFactor_El, hadronicRate);
391-
}
392-
}
393-
// Ks0
394-
if (static_cast<bool>(posTrack.pidbit() & (1 << 1)) && static_cast<bool>(negTrack.pidbit() & (1 << 1))) {
395-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions)) {
396-
fillSkimmedV0Table<IsCorrecteddEdx>(v0, posTrack, collision, posTrack.tpcNSigmaPi(), posTrack.tofNSigmaPi(), posTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi, hadronicRate);
397-
}
398-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions)) {
399-
fillSkimmedV0Table<IsCorrecteddEdx>(v0, negTrack, collision, negTrack.tpcNSigmaPi(), negTrack.tofNSigmaPi(), negTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi, hadronicRate);
400-
}
401-
}
402-
// Lambda
403-
if (static_cast<bool>(posTrack.pidbit() & (1 << 2)) && static_cast<bool>(negTrack.pidbit() & (1 << 2))) {
404-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisProtons, MassProton, maxPt4dwnsmplTsalisProtons)) {
405-
if (std::abs(posTrack.tofNSigmaPr()) <= nSigmaTOFdautrack) {
406-
fillSkimmedV0Table<IsCorrecteddEdx>(v0, posTrack, collision, posTrack.tpcNSigmaPr(), posTrack.tofNSigmaPr(), posTrack.tpcExpSignalPr(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Proton, runnumber, dwnSmplFactor_Pr, hadronicRate);
407-
}
408-
}
409-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions)) {
410-
fillSkimmedV0Table<IsCorrecteddEdx>(v0, negTrack, collision, negTrack.tpcNSigmaPi(), negTrack.tofNSigmaPi(), negTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi, hadronicRate);
411-
}
412-
}
413-
// Antilambda
414-
if (static_cast<bool>(posTrack.pidbit() & (1 << 3)) && static_cast<bool>(negTrack.pidbit() & (1 << 3))) {
415-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions)) {
416-
fillSkimmedV0Table<IsCorrecteddEdx>(v0, posTrack, collision, posTrack.tpcNSigmaPi(), posTrack.tofNSigmaPi(), posTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi, hadronicRate);
417-
}
418-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisProtons, MassProton, maxPt4dwnsmplTsalisProtons)) {
419-
if (std::abs(negTrack.tofNSigmaPr()) <= nSigmaTOFdautrack) {
420-
fillSkimmedV0Table<IsCorrecteddEdx>(v0, negTrack, collision, negTrack.tpcNSigmaPr(), negTrack.tofNSigmaPr(), negTrack.tpcExpSignalPr(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Proton, runnumber, dwnSmplFactor_Pr, hadronicRate);
400+
const auto& posTrack = v0.posTrack_as<soa::Filtered<TrksType>>();
401+
const auto& negTrack = v0.negTrack_as<soa::Filtered<TrksType>>();
402+
403+
V0Daughter elPos{downsamplingTsalisElectrons, MassElectorn, maxPt4dwnsmplTsalisElectrons, posTrack.tpcNSigmaEl(), posTrack.tofNSigmaEl(), posTrack.tpcExpSignalEl(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Electron, dwnSmplFactor_El, false};
404+
V0Daughter elNeg{downsamplingTsalisElectrons, MassElectorn, maxPt4dwnsmplTsalisElectrons, negTrack.tpcNSigmaEl(), negTrack.tofNSigmaEl(), negTrack.tpcExpSignalEl(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Electron, dwnSmplFactor_El, false};
405+
V0Daughter piPos{downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions, posTrack.tpcNSigmaPi(), posTrack.tofNSigmaPi(), posTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Pion, dwnSmplFactor_Pi, false};
406+
V0Daughter piNeg{downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions, negTrack.tpcNSigmaPi(), negTrack.tofNSigmaPi(), negTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Pion, dwnSmplFactor_Pi, false};
407+
V0Daughter prPos{downsamplingTsalisProtons, MassProton, maxPt4dwnsmplTsalisProtons, posTrack.tpcNSigmaPr(), posTrack.tofNSigmaPr(), posTrack.tpcExpSignalPr(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Proton, dwnSmplFactor_Pr, true};
408+
V0Daughter prNeg{downsamplingTsalisProtons, MassProton, maxPt4dwnsmplTsalisProtons, negTrack.tpcNSigmaPr(), negTrack.tofNSigmaPr(), negTrack.tpcExpSignalPr(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Proton, dwnSmplFactor_Pr, true};
409+
410+
const std::array<V0Mother, 4> v0Mothers {
411+
V0Mother{kGamma, elPos, elNeg},
412+
V0Mother{kK0S, piPos, piNeg},
413+
V0Mother{kLambda, prPos, piNeg},
414+
V0Mother{kAntiLambda, piPos, prNeg}
415+
};
416+
417+
for(const auto& v0Mother : v0Mothers) {
418+
if (static_cast<bool>(posTrack.pidbit() & (1 << v0Mother.id)) && static_cast<bool>(negTrack.pidbit() & (1 << v0Mother.id))) {
419+
bool isPosDaughter{true};
420+
for(const auto& daughter : {v0Mother.posDaughter, v0Mother.negDaughter}) {
421+
const auto& dauTrack = isPosDaughter ? posTrack : negTrack;
422+
if (downsampleTsalisCharged(dauTrack.pt(), daughter.downsamplingTsalis, daughter.mass, daughter.maxPt4dwnsmplTsalis)) {
423+
if (!daughter.isProton || std::fabs(daughter.tofNSigma) <= nSigmaTOFdautrack) {
424+
fillSkimmedV0Table<IsCorrecteddEdx>(v0, dauTrack, collision, daughter.tpcNSigma, daughter.tofNSigma, daughter.tpcExpSignal, daughter.id, runnumber, daughter.dwnSmplFactor, hadronicRate);
425+
}
426+
}
427+
isPosDaughter = false;
421428
}
422429
}
423-
}
430+
} // v0Mothers
424431
}
425432

426433
/// Loop over cascade candidates
427434
for (const auto& casc : cascs) {
428-
auto bachTrack = casc.bachelor_as<soa::Filtered<TrksType>>();
429435
if (casc.cascaddid() == kUndef) {
430436
continue;
431437
}
438+
const auto& bachTrack = casc.bachelor_as<soa::Filtered<TrksType>>();
432439
// Omega and antiomega
433440
if (static_cast<bool>(bachTrack.pidbit() & (1 << kOmega)) || static_cast<bool>(bachTrack.pidbit() & (1 << kAntiOmega))) {
434441
if (downsampleTsalisCharged(bachTrack.pt(), downsamplingTsalisKaons, MassKaon, maxPt4dwnsmplTsalisKaons)) {
@@ -468,16 +475,16 @@ struct TreeWriterTpcV0 {
468475
labelTrack2TrackQA[trackId] = trackQAIndex;
469476
}
470477
for (const auto& collision : collisions) {
471-
auto tracks = myTracks.sliceBy(perCollisionTracksType, collision.globalIndex());
472-
auto v0s = myV0s.sliceBy(perCollisionV0s, collision.globalIndex());
473-
auto cascs = myCascs.sliceBy(perCollisionCascs, collision.globalIndex());
474478
/// Check event slection
479+
const auto& tracks = myTracks.sliceBy(perCollisionTracksType, collision.globalIndex());
475480
if (!isEventSelected(collision, tracks)) {
476481
continue;
477482
}
478-
auto bc = collision.bc_as<BCType>();
483+
const auto& v0s = myV0s.sliceBy(perCollisionV0s, collision.globalIndex());
484+
const auto& cascs = myCascs.sliceBy(perCollisionCascs, collision.globalIndex());
485+
const auto& bc = collision.bc_as<BCType>();
479486
const int runnumber = bc.runNumber();
480-
float hadronicRate = mRateFetcher.fetch(ccdb.service, bc.timestamp(), runnumber, irSource) * 1.e-3;
487+
const float hadronicRate = mRateFetcher.fetch(ccdb.service, bc.timestamp(), runnumber, irSource) * 1.e-3;
481488
const int bcGlobalIndex = bc.globalIndex();
482489
int bcTimeFrameId, bcBcInTimeFrame;
483490
if constexpr (IsWithdEdx) {
@@ -494,11 +501,11 @@ struct TreeWriterTpcV0 {
494501
}
495502
/// Loop over v0 candidates
496503
for (const auto& v0 : v0s) {
497-
auto posTrack = v0.posTrack_as<TrksType>();
498-
auto negTrack = v0.negTrack_as<TrksType>();
499-
if (v0.v0addid() == -1) {
504+
if (v0.v0addid() == kUndef) {
500505
continue;
501506
}
507+
const auto& posTrack = v0.posTrack_as<TrksType>();
508+
const auto& negTrack = v0.negTrack_as<TrksType>();
502509
aod::TracksQA posTrackQA;
503510
aod::TracksQA negTrackQA;
504511
bool existPosTrkQA;
@@ -518,55 +525,44 @@ struct TreeWriterTpcV0 {
518525
existNegTrkQA = false;
519526
}
520527

521-
// gamma
522-
if (static_cast<bool>(posTrack.pidbit() & (1 << 0)) && static_cast<bool>(negTrack.pidbit() & (1 << 0))) {
523-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisElectrons, MassElectorn, maxPt4dwnsmplTsalisElectrons)) {
524-
fillSkimmedV0TableWithTrQAGeneric<IsCorrecteddEdx, IsWithdEdx>(v0, posTrack, posTrackQA, existPosTrkQA, collision, posTrack.tpcNSigmaEl(), posTrack.tofNSigmaEl(), posTrack.tpcExpSignalEl(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Electron, runnumber, dwnSmplFactor_El, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
525-
}
526-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisElectrons, MassElectorn, maxPt4dwnsmplTsalisElectrons)) {
527-
fillSkimmedV0TableWithTrQAGeneric<IsCorrecteddEdx, IsWithdEdx>(v0, negTrack, negTrackQA, existNegTrkQA, collision, negTrack.tpcNSigmaEl(), negTrack.tofNSigmaEl(), negTrack.tpcExpSignalEl(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Electron, runnumber, dwnSmplFactor_El, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
528-
}
529-
}
530-
// Ks0
531-
if (static_cast<bool>(posTrack.pidbit() & (1 << 1)) && static_cast<bool>(negTrack.pidbit() & (1 << 1))) {
532-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions)) {
533-
fillSkimmedV0TableWithTrQAGeneric<IsCorrecteddEdx, IsWithdEdx>(v0, posTrack, posTrackQA, existPosTrkQA, collision, posTrack.tpcNSigmaPi(), posTrack.tofNSigmaPi(), posTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
534-
}
535-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions)) {
536-
fillSkimmedV0TableWithTrQAGeneric<IsCorrecteddEdx, IsWithdEdx>(v0, negTrack, negTrackQA, existNegTrkQA, collision, negTrack.tpcNSigmaPi(), negTrack.tofNSigmaPi(), negTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
537-
}
538-
}
539-
// Lambda
540-
if (static_cast<bool>(posTrack.pidbit() & (1 << 2)) && static_cast<bool>(negTrack.pidbit() & (1 << 2))) {
541-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisProtons, MassProton, maxPt4dwnsmplTsalisProtons)) {
542-
if (std::abs(posTrack.tofNSigmaPr()) <= nSigmaTOFdautrack) {
543-
fillSkimmedV0TableWithTrQAGeneric<IsCorrecteddEdx, IsWithdEdx>(v0, posTrack, posTrackQA, existPosTrkQA, collision, posTrack.tpcNSigmaPr(), posTrack.tofNSigmaPr(), posTrack.tpcExpSignalPr(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Proton, runnumber, dwnSmplFactor_Pr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
544-
}
545-
}
546-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions)) {
547-
fillSkimmedV0TableWithTrQAGeneric<IsCorrecteddEdx, IsWithdEdx>(v0, negTrack, negTrackQA, existNegTrkQA, collision, negTrack.tpcNSigmaPi(), negTrack.tofNSigmaPi(), negTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
548-
}
549-
}
550-
// Antilambda
551-
if (static_cast<bool>(posTrack.pidbit() & (1 << 3)) && static_cast<bool>(negTrack.pidbit() & (1 << 3))) {
552-
if (downsampleTsalisCharged(posTrack.pt(), downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions)) {
553-
fillSkimmedV0TableWithTrQAGeneric<IsCorrecteddEdx, IsWithdEdx>(v0, posTrack, posTrackQA, existPosTrkQA, collision, posTrack.tpcNSigmaPi(), posTrack.tofNSigmaPi(), posTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Pion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
554-
}
555-
if (downsampleTsalisCharged(negTrack.pt(), downsamplingTsalisProtons, MassProton, maxPt4dwnsmplTsalisProtons)) {
556-
if (std::abs(negTrack.tofNSigmaPr()) <= nSigmaTOFdautrack) {
557-
fillSkimmedV0TableWithTrQAGeneric<IsCorrecteddEdx, IsWithdEdx>(v0, negTrack, negTrackQA, existNegTrkQA, collision, negTrack.tpcNSigmaPr(), negTrack.tofNSigmaPr(), negTrack.tpcExpSignalPr(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Proton, runnumber, dwnSmplFactor_Pr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
528+
V0Daughter elPos{downsamplingTsalisElectrons, MassElectorn, maxPt4dwnsmplTsalisElectrons, posTrack.tpcNSigmaEl(), posTrack.tofNSigmaEl(), posTrack.tpcExpSignalEl(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Electron, dwnSmplFactor_El, false};
529+
V0Daughter elNeg{downsamplingTsalisElectrons, MassElectorn, maxPt4dwnsmplTsalisElectrons, negTrack.tpcNSigmaEl(), negTrack.tofNSigmaEl(), negTrack.tpcExpSignalEl(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Electron, dwnSmplFactor_El, false};
530+
V0Daughter piPos{downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions, posTrack.tpcNSigmaPi(), posTrack.tofNSigmaPi(), posTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Pion, dwnSmplFactor_Pi, false};
531+
V0Daughter piNeg{downsamplingTsalisPions, MassPion, maxPt4dwnsmplTsalisPions, negTrack.tpcNSigmaPi(), negTrack.tofNSigmaPi(), negTrack.tpcExpSignalPi(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Pion, dwnSmplFactor_Pi, false};
532+
V0Daughter prPos{downsamplingTsalisProtons, MassProton, maxPt4dwnsmplTsalisProtons, posTrack.tpcNSigmaPr(), posTrack.tofNSigmaPr(), posTrack.tpcExpSignalPr(tpcSignalGeneric<IsCorrecteddEdx>(posTrack)), o2::track::PID::Proton, dwnSmplFactor_Pr, true};
533+
V0Daughter prNeg{downsamplingTsalisProtons, MassProton, maxPt4dwnsmplTsalisProtons, negTrack.tpcNSigmaPr(), negTrack.tofNSigmaPr(), negTrack.tpcExpSignalPr(tpcSignalGeneric<IsCorrecteddEdx>(negTrack)), o2::track::PID::Proton, dwnSmplFactor_Pr, true};
534+
535+
const std::array<V0Mother, 4> v0Mothers {
536+
V0Mother{kGamma, elPos, elNeg},
537+
V0Mother{kK0S, piPos, piNeg},
538+
V0Mother{kLambda, prPos, piNeg},
539+
V0Mother{kAntiLambda, piPos, prNeg}
540+
};
541+
542+
for(const auto& v0Mother : v0Mothers) {
543+
if (static_cast<bool>(posTrack.pidbit() & (1 << v0Mother.id)) && static_cast<bool>(negTrack.pidbit() & (1 << v0Mother.id))) {
544+
bool isPosDaughter{true};
545+
for(const auto& daughter : {v0Mother.posDaughter, v0Mother.negDaughter}) {
546+
const auto& dauTrack = isPosDaughter ? posTrack : negTrack;
547+
const auto& trackQA = isPosDaughter ? posTrackQA : negTrackQA;
548+
const auto& existTrkQA = isPosDaughter ? existPosTrkQA : existNegTrkQA;
549+
if (downsampleTsalisCharged(dauTrack.pt(), daughter.downsamplingTsalis, daughter.mass, daughter.maxPt4dwnsmplTsalis)) {
550+
if (!daughter.isProton || std::fabs(daughter.tofNSigma) <= nSigmaTOFdautrack) {
551+
fillSkimmedV0TableWithTrQAGeneric<IsCorrecteddEdx, IsWithdEdx>(v0, dauTrack, trackQA, existTrkQA, collision, daughter.tpcNSigma, daughter.tofNSigma, daughter.tpcExpSignal, daughter.id, runnumber, daughter.dwnSmplFactor, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
552+
}
553+
}
554+
isPosDaughter = false;
558555
}
559556
}
560-
}
557+
} // v0Mothers
561558
}
562559

563560
/// Loop over cascade candidates
564561
for (const auto& casc : cascs) {
565-
auto bachTrack = casc.bachelor_as<TrksType>();
566562
if (casc.cascaddid() == kUndef) {
567563
continue;
568564
}
569-
565+
const auto& bachTrack = casc.bachelor_as<TrksType>();
570566
aod::TracksQA bachTrackQA;
571567
bool existBachTrkQA;
572568
if (labelTrack2TrackQA[bachTrack.globalIndex()] != -1) {

0 commit comments

Comments
 (0)