diff --git a/DDG4/lcio/Geant4Output2LCIO.cpp b/DDG4/lcio/Geant4Output2LCIO.cpp index b185dbfa9de4aa71f98c22e541da967329edc493..d0727c29582a5d0a2032ab835bb932725ab1442f 100644 --- a/DDG4/lcio/Geant4Output2LCIO.cpp +++ b/DDG4/lcio/Geant4Output2LCIO.cpp @@ -352,18 +352,23 @@ lcio::LCCollectionVec* Geant4Output2LCIO::saveParticles(Geant4ParticleMap* parti void Geant4Output2LCIO::saveEvent(OutputContext<G4Event>& ctxt) { lcio::LCEventImpl* e = context()->event().extension<lcio::LCEventImpl>(); LCIOEventParameters* parameters = context()->event().extension<LCIOEventParameters>(false); + int runNumber(0), eventNumber(0); + const int eventNumberOffset(m_eventNumberOffset > 0 ? m_eventNumberOffset : 0); + const int runNumberOffset(m_runNumberOffset > 0 ? m_runNumberOffset : 0); + // Get event number, run number and parameters from extension ... if ( parameters ) { - e->setRunNumber(parameters->runNumber()); - e->setEventNumber(parameters->eventNumber()); + runNumber = parameters->runNumber() + runNumberOffset; + eventNumber = parameters->eventNumber() + eventNumberOffset; LCIOEventParameters::copyLCParameters(parameters->eventParameters(),e->parameters()); - print("+++ Saving LCIO event %d run %d ....", e->getEventNumber(), e->getRunNumber()); } + // ... or from DD4hep framework else { - const int eventNumber = m_eventNumberOffset > 0 ? m_eventNumberOffset + ctxt.context->GetEventID() : ctxt.context->GetEventID(); - e->setRunNumber(m_runNo); - e->setEventNumber(eventNumber); - print("+++ Saving LCIO event %d run %d ....", eventNumber, m_runNo); + runNumber = m_runNo + runNumberOffset; + eventNumber = ctxt.context->GetEventID() + eventNumberOffset; } + print("+++ Saving LCIO event %d run %d ....", eventNumber, runNumber); + e->setRunNumber(runNumber); + e->setEventNumber(eventNumber); e->setDetectorName(context()->detectorDescription().header().name()); saveEventParameters<int>(e, m_eventParametersInt); saveEventParameters<float>(e, m_eventParametersFloat);