Skip to content

Commit 48de139

Browse files
committed
Fix: fix v0 daughter dereferencing in derived producer
1 parent 29bff4d commit 48de139

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

PWGCF/Femto/Core/v0Builder.h

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ class V0BuilderDerivedToDerived
558558
}
559559

560560
template <typename T1, typename T2, typename T3, typename T4>
561-
bool collisionHasTooFewLambdas(T1& col, T2& /*lambdaTable*/, T3& partitionLambda, T4& cache)
561+
bool collisionHasTooFewLambdas(T1 const& col, T2 const& /*lambdaTable*/, T3& partitionLambda, T4& cache)
562562
{
563563
auto lambdaSlice = partitionLambda->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache);
564564
if (lambdaSlice.size() >= mLimitLambda) {
@@ -568,7 +568,7 @@ class V0BuilderDerivedToDerived
568568
}
569569

570570
template <typename T1, typename T2, typename T3, typename T4>
571-
bool collisionHasTooFewK0shorts(T1& col, T2& /*k0shortTable*/, T3& partitionK0short, T4& cache)
571+
bool collisionHasTooFewK0shorts(T1 const& col, T2 const& /*k0shortTable*/, T3& partitionK0short, T4& cache)
572572
{
573573
auto k0shortSlice = partitionK0short->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache);
574574
if (k0shortSlice.size() >= mLimitK0short) {
@@ -578,14 +578,16 @@ class V0BuilderDerivedToDerived
578578
}
579579

580580
template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
581-
void processLambdas(T1& col, T2& /*lambdaTable*/, T3& /*oldTrackTable*/, T4& partitionLambda, T5& trackBuilder, T6& cache, T7& newLambdaTable, T8& newTrackTable, T9& newCollisionTable)
581+
void processLambdas(T1 const& col, T2 const& /*lambdaTable*/, T3 const& oldTrackTable, T4& partitionLambda, T5& trackBuilder, T6& cache, T7& newLambdaTable, T8& newTrackTable, T9& newCollisionTable)
582582
{
583583
auto lambdaSlice = partitionLambda->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache);
584584

585585
for (auto const& lambda : lambdaSlice) {
586586

587-
auto posDaughter = lambda.template posDau_as<T3>();
588-
auto negDaughter = lambda.template negDau_as<T3>();
587+
// auto posDaughter = lambda.template posDau_as<T3>();
588+
// auto negDaughter = lambda.template negDau_as<T3>();
589+
auto posDaughter = oldTrackTable.rawIteratorAt(lambda.posDauId() - oldTrackTable.offset());
590+
auto negDaughter = oldTrackTable.rawIteratorAt(lambda.negDauId() - oldTrackTable.offset());
589591

590592
int posDaughterIndex = trackBuilder.getDaughterIndex(posDaughter, newTrackTable, newCollisionTable);
591593
int negDaughterIndex = trackBuilder.getDaughterIndex(negDaughter, newTrackTable, newCollisionTable);
@@ -602,14 +604,16 @@ class V0BuilderDerivedToDerived
602604
}
603605

604606
template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
605-
void processK0shorts(T1& col, T2& /*k0shortTable*/, T3& /*oldTrackTable*/, T4& partitionK0short, T5& trackBuilder, T6& cache, T7& newK0shortTable, T8& newTrackTable, T9& newCollisionTable)
607+
void processK0shorts(T1 const& col, T2 const& /*k0shortTable*/, T3 const& oldTrackTable, T4& partitionK0short, T5& trackBuilder, T6& cache, T7& newK0shortTable, T8& newTrackTable, T9& newCollisionTable)
606608
{
607609
auto k0shortSlice = partitionK0short->sliceByCached(o2::aod::femtobase::stored::fColId, col.globalIndex(), cache);
608610

609611
for (auto const& k0short : k0shortSlice) {
610612

611-
auto posDaughter = k0short.template posDau_as<T3>();
612-
auto negDaughter = k0short.template negDau_as<T3>();
613+
// auto posDaughter = k0short.template posDau_as<T3>();
614+
// auto negDaughter = k0short.template negDau_as<T3>();
615+
auto posDaughter = oldTrackTable.rawIteratorAt(k0short.posDauId() - oldTrackTable.offset());
616+
auto negDaughter = oldTrackTable.rawIteratorAt(k0short.negDauId() - oldTrackTable.offset());
613617

614618
int posDaughterIndex = trackBuilder.getDaughterIndex(posDaughter, newTrackTable, newCollisionTable);
615619
int negDaughterIndex = trackBuilder.getDaughterIndex(negDaughter, newTrackTable, newCollisionTable);

0 commit comments

Comments
 (0)