diff --git a/DDG4/edm4hep/Geant4Output2EDM4hep.cpp b/DDG4/edm4hep/Geant4Output2EDM4hep.cpp
index e4df3b32c63ab997ff0d891c46abe8368e05fef3..f22d2beca4101dd721d6e90dc9d9d8d921a9aa1a 100644
--- a/DDG4/edm4hep/Geant4Output2EDM4hep.cpp
+++ b/DDG4/edm4hep/Geant4Output2EDM4hep.cpp
@@ -96,15 +96,19 @@ namespace dd4hep {
     
     template <> void EventParameters::extractParameters(podio::Frame& frame)   {
       for(auto const& p: this->intParameters()) {
-	std::cout << "Saving event parameter: " << p.first << std::endl;
+        printout(DEBUG, "Geant4OutputEDM4hep", "Saving event parameter: %s", p.first);
         frame.putParameter(p.first, p.second);
       }
       for(auto const& p: this->fltParameters()) {
-	std::cout << "Saving event parameter: " << p.first << std::endl;
+        printout(DEBUG, "Geant4OutputEDM4hep", "Saving event parameter: %s", p.first);
         frame.putParameter(p.first, p.second);
       }
       for(auto const& p: this->strParameters()) {
-	std::cout << "Saving event parameter: " << p.first << std::endl;
+        printout(DEBUG, "Geant4OutputEDM4hep", "Saving event parameter: %s", p.first);
+        frame.putParameter(p.first, p.second);
+      }
+      for (auto const& p: this->dblParameters()) {
+        printout(DEBUG, "Geant4OutputEDM4hep", "Saving event parameter: %s", p.first);
         frame.putParameter(p.first, p.second);
       }
     }
@@ -368,11 +372,13 @@ void Geant4Output2EDM4hep::saveEvent(OutputContext<G4Event>& ctxt)  {
   int runNumber(0), eventNumber(0);
   const int eventNumberOffset(m_eventNumberOffset > 0 ? m_eventNumberOffset : 0);
   const int runNumberOffset(m_runNumberOffset > 0 ? m_runNumberOffset : 0);
+  double eventWeight{0};
   // Get event number, run number and parameters from extension ...
   if ( parameters ) {
     runNumber = parameters->runNumber() + runNumberOffset;
     eventNumber = parameters->eventNumber() + eventNumberOffset;
     parameters->extractParameters(m_frame);
+    eventWeight = m_frame.getParameter<double>("EventWeights");
   } else { // ... or from DD4hep framework
     runNumber = m_runNo + runNumberOffset;
     eventNumber = ctxt.context->GetEventID() + eventNumberOffset;
@@ -384,6 +390,7 @@ void Geant4Output2EDM4hep::saveEvent(OutputContext<G4Event>& ctxt)  {
   auto header = header_collection.create();
   header.setRunNumber(runNumber);
   header.setEventNumber(eventNumber);
+  header.setWeight(eventWeight);
   //not implemented in EDM4hep ?  header.setDetectorName(context()->detectorDescription().header().name());
   header.setTimeStamp( std::time(nullptr) ) ;
   m_frame.put( std::move(header_collection), "EventHeader");
diff --git a/DDG4/lcio/Geant4Output2LCIO.cpp b/DDG4/lcio/Geant4Output2LCIO.cpp
index 3cbc6ec515085ec78f5c9975f037656731bb5070..edc6917006e10edd7721e251a26f951a23d97218 100644
--- a/DDG4/lcio/Geant4Output2LCIO.cpp
+++ b/DDG4/lcio/Geant4Output2LCIO.cpp
@@ -55,6 +55,9 @@ namespace dd4hep {
       for(auto const& ival: this->strParameters()) {
         lcparameters.setValues(ival.first, ival.second);
       }
+      for(auto const& ival: this->dblParameters()) {
+        lcparameters.setValues(ival.first, ival.second);
+      }
     }
 
 
@@ -371,11 +374,13 @@ void Geant4Output2LCIO::saveEvent(OutputContext<G4Event>& ctxt)  {
   int runNumber(0), eventNumber(0);
   const int eventNumberOffset(m_eventNumberOffset > 0 ? m_eventNumberOffset : 0);
   const int runNumberOffset(m_runNumberOffset > 0 ? m_runNumberOffset : 0);
+  double eventWeight{0};
   // Get event number, run number and parameters from extension ...
   if (parameters) {
     runNumber = parameters->runNumber() + runNumberOffset;
     eventNumber = parameters->eventNumber() + eventNumberOffset;
     parameters->extractParameters(*e);
+    eventWeight = e->getParameters().getDoubleVal("EventWeights");
   } else {  // ... or from DD4hep framework
     runNumber = m_runNo + runNumberOffset;
     eventNumber = ctxt.context->GetEventID() + eventNumberOffset;
@@ -383,6 +388,7 @@ void Geant4Output2LCIO::saveEvent(OutputContext<G4Event>& ctxt)  {
   print("+++ Saving LCIO event %d run %d ....", eventNumber, runNumber);
   e->setRunNumber(runNumber);
   e->setEventNumber(eventNumber);
+  e->setWeight(eventWeight);
   e->setDetectorName(context()->detectorDescription().header().name());
   saveEventParameters<int>(e, m_eventParametersInt);
   saveEventParameters<float>(e, m_eventParametersFloat);