From 8286e544feb1ac0cf68a9b24a7f0a461509830f4 Mon Sep 17 00:00:00 2001 From: swenzel Date: Fri, 27 Jun 2025 10:21:58 +0200 Subject: [PATCH 1/2] Fix vertex copying for last timeframe in collisioncontext When construction individual-TF collisioncontexts, there was a problem copying assigned vertices for the last timeframe due to a simple index comparison error. This is fixed in this commit. --- DataFormats/simulation/src/DigitizationContext.cxx | 2 +- Steer/src/CollisionContextTool.cxx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DataFormats/simulation/src/DigitizationContext.cxx b/DataFormats/simulation/src/DigitizationContext.cxx index d840809a4c446..dc3c560a1485b 100644 --- a/DataFormats/simulation/src/DigitizationContext.cxx +++ b/DataFormats/simulation/src/DigitizationContext.cxx @@ -705,7 +705,7 @@ DigitizationContext DigitizationContext::extractSingleTimeframe(int timeframeid, } std::copy(mEventRecords.begin() + startindex, mEventRecords.begin() + endindex, std::back_inserter(r.mEventRecords)); std::copy(mEventParts.begin() + startindex, mEventParts.begin() + endindex, std::back_inserter(r.mEventParts)); - if (mInteractionVertices.size() > endindex) { + if (mInteractionVertices.size() >= endindex) { std::copy(mInteractionVertices.begin() + startindex, mInteractionVertices.begin() + endindex, std::back_inserter(r.mInteractionVertices)); } diff --git a/Steer/src/CollisionContextTool.cxx b/Steer/src/CollisionContextTool.cxx index e2f7c0fce3d67..9fc3e548ff213 100644 --- a/Steer/src/CollisionContextTool.cxx +++ b/Steer/src/CollisionContextTool.cxx @@ -594,7 +594,7 @@ int main(int argc, char* argv[]) std::stringstream str; str << path_prefix << tf_output_counter++ << "/collisioncontext.root"; copy.saveToFile(str.str()); - LOG(info) << "----"; + LOG(info) << "---- CollisionContext for timeframe " << tf_id << " -----"; copy.printCollisionSummary(); } } From a4213ad527856f7b1ce5c5b2848f2d3683552af8 Mon Sep 17 00:00:00 2001 From: swenzel Date: Fri, 27 Jun 2025 10:25:47 +0200 Subject: [PATCH 2/2] o2-sim: Fix for merger exit status analysis --- run/o2sim_parallel.cxx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/run/o2sim_parallel.cxx b/run/o2sim_parallel.cxx index 22c6b37e6d9aa..c060059ce4d6b 100644 --- a/run/o2sim_parallel.cxx +++ b/run/o2sim_parallel.cxx @@ -762,9 +762,8 @@ int main(int argc, char* argv[]) // Handle mergerpid status separately if (cpid == mergerpid) { if (WIFEXITED(status)) { - // anything other than 128 is indicative of error - if (WEXITSTATUS(status) != 128) { - LOG(error) << "Merger process exited with abnormal code " << WEXITSTATUS(status); + if (WEXITSTATUS(status) != 0 || WEXITSTATUS(status) != 128) { + LOG(error) << "Merger process exited with abnormal exit status " << WEXITSTATUS(status); errored = true; } } else if (WIFSIGNALED(status)) {