From 2e1cba92ce47533314e98405675ade9063bfc916 Mon Sep 17 00:00:00 2001 From: Roberto Preghenella Date: Mon, 25 Jan 2021 14:45:35 +0100 Subject: [PATCH] Fix daughter labels when running parallel merger --- .../simulation/include/SimulationDataFormat/MCTrack.h | 2 ++ run/O2HitMerger.h | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/DataFormats/simulation/include/SimulationDataFormat/MCTrack.h b/DataFormats/simulation/include/SimulationDataFormat/MCTrack.h index 87f57c3a0f406..851aca47823ed 100644 --- a/DataFormats/simulation/include/SimulationDataFormat/MCTrack.h +++ b/DataFormats/simulation/include/SimulationDataFormat/MCTrack.h @@ -202,6 +202,8 @@ class MCTrackT } bool getInhibited() const { return ((PropEncoding)mProp).inhibited; } + bool isTransported() const { return getToBeDone() && !getInhibited(); }; + /// get the string representation of the production process const char* getProdProcessAsString() const; diff --git a/run/O2HitMerger.h b/run/O2HitMerger.h index 2b90119ea2715..edf69637d1981 100644 --- a/run/O2HitMerger.h +++ b/run/O2HitMerger.h @@ -343,7 +343,10 @@ class O2HitMerger : public FairMQDevice originbr->GetEntry(index); for (Int_t i = 0; i < nprimaries[index]; i++) { auto& track = incomingdata->at(i); - track.SetFirstDaughterTrackId(-1); + if (track.isTransported()) { // reset daughters only if track was transported, it will be fixed below + track.SetFirstDaughterTrackId(-1); + track.SetLastDaughterTrackId(-1); + } targetdata->push_back(track); } incomingdata->clear();