From 01abfedef6a7b46033a861022cbf3caa8ff4799b Mon Sep 17 00:00:00 2001 From: Mateusz Jakub Fila Date: Tue, 20 Aug 2024 09:00:16 +0200 Subject: [PATCH] fix data race in EventHeaderCreator --- k4FWCore/components/EventHeaderCreator.cpp | 18 +++--------------- k4FWCore/components/EventHeaderCreator.h | 6 ++---- 2 files changed, 5 insertions(+), 19 deletions(-) diff --git a/k4FWCore/components/EventHeaderCreator.cpp b/k4FWCore/components/EventHeaderCreator.cpp index 7e84c6b3..182e1efc 100644 --- a/k4FWCore/components/EventHeaderCreator.cpp +++ b/k4FWCore/components/EventHeaderCreator.cpp @@ -26,25 +26,13 @@ EventHeaderCreator::EventHeaderCreator(const std::string& name, ISvcLocator* svc "Name of the EventHeaderCollection that will be stored in the output root file."); } -StatusCode EventHeaderCreator::initialize() { - if (Gaudi::Algorithm::initialize().isFailure()) - return StatusCode::FAILURE; - return StatusCode::SUCCESS; -} - -StatusCode EventHeaderCreator::execute(const EventContext&) const { - static int eventNumber = 0; +StatusCode EventHeaderCreator::execute(const EventContext& ctx) const { + auto eventNumber = ctx.evt(); debug() << "Filling EventHeader with runNumber " << int(m_runNumber) << " and eventNumber " << eventNumber + m_eventNumberOffset << endmsg; auto headers = m_headerCol.createAndPut(); auto header = headers->create(); header.setRunNumber(m_runNumber); - header.setEventNumber(eventNumber++ + m_eventNumberOffset); - return StatusCode::SUCCESS; -} - -StatusCode EventHeaderCreator::finalize() { - if (Gaudi::Algorithm::finalize().isFailure()) - return StatusCode::FAILURE; + header.setEventNumber(eventNumber + m_eventNumberOffset); return StatusCode::SUCCESS; } diff --git a/k4FWCore/components/EventHeaderCreator.h b/k4FWCore/components/EventHeaderCreator.h index a2d08a81..a3b4dc40 100644 --- a/k4FWCore/components/EventHeaderCreator.h +++ b/k4FWCore/components/EventHeaderCreator.h @@ -23,7 +23,7 @@ #include "k4FWCore/DataHandle.h" /*** - * Algortihm that creates an EventHeader collection and fills it with eventNumber and runNumber + * Algorithm that creates an EventHeader collection and fills it with eventNumber and runNumber */ namespace edm4hep { @@ -34,9 +34,7 @@ class EventHeaderCreator : public Gaudi::Algorithm { public: EventHeaderCreator(const std::string& name, ISvcLocator* svcLoc); - StatusCode initialize(); - StatusCode execute(const EventContext&) const; - StatusCode finalize(); + StatusCode execute(const EventContext&) const override; private: // Run number value (fixed for the entire job, to be set by the job submitter)