diff --git a/DDSim/DD4hepSimulation.py b/DDSim/DD4hepSimulation.py
index 9f4dc710a0518da2d6bff6e3f26c5e0f3028bca1..bfc4e87a21489d31bf7f5e74419b422f95420ded 100644
--- a/DDSim/DD4hepSimulation.py
+++ b/DDSim/DD4hepSimulation.py
@@ -333,7 +333,7 @@ class DD4hepSimulation(object):
     if self.outputFile.endswith(".slcio"):
       lcOut = simple.setupLCIOOutput('LcioOutput', self.outputFile)
       lcOut.RunHeader = self.__addParametersToRunHeader()
-      lcOut.EventParametersString, lcOut.EventParametersInt, lcOut.EventParametersFloat = self.__addParametersToEvent( self.meta.eventParameters )
+      lcOut.EventParametersString, lcOut.EventParametersInt, lcOut.EventParametersFloat = self.meta.parseEventParameters()
       lcOut.RunNumberOffset = self.meta.runNumberOffset if self.meta.runNumberOffset > 0 else 0
       lcOut.EventNumberOffset = self.meta.eventNumberOffset if self.meta.eventNumberOffset > 0 else 0
     elif self.outputFile.endswith(".root"):
@@ -623,41 +623,6 @@ class DD4hepSimulation(object):
 
     return runHeader
 
-
-  def __addParametersToEvent(self, parameters):
-    """ extract event parameters from the command line, to write in the header
-    of each event.
-    
-    :param parameters: list of command line parameters to parse
-    """
-    stringParameters, intParameters, floatParameters, allParameters = {}, {}, {}, []
-    for p in parameters:
-      parameterAndValue = p.split( "=", 1 )
-      if len(parameterAndValue) != 2:
-        raise SyntaxError("ERROR: Couldn't decode event parameter '%s'" %(p))
-      parameterAndType = parameterAndValue[0].split( "/", 1 )
-      if len(parameterAndType) != 2:
-        raise SyntaxError("ERROR: Couldn't decode event parameter '%s'" %(p))
-      pname = parameterAndType[0]
-      ptype = parameterAndType[1]
-      pvalue = parameterAndValue[1]
-      if ptype.lower() not in ["c", "f", "i"]:
-        raise ValueError("ERROR: Event parameter '%s' with invalid type '%s'" %(pname, ptype))
-      if pname in allParameters:
-        raise RuntimeError("ERROR: Event parameter '%s' specified twice" %(pname))
-      if not pvalue:
-        raise RuntimeError("ERROR: Event parameter '%s' has empty value" %(pname))
-      allParameters.append(pname)
-      print "Event parameter '%s', type '%s', value='%s'"%(pname, ptype, pvalue)
-      if ptype.lower() == "c":
-        stringParameters[pname] = pvalue
-      elif ptype.lower() == "f":
-        floatParameters[pname] = pvalue
-      elif ptype.lower() == "i":
-        intParameters[pname] = pvalue
-    return stringParameters, intParameters, floatParameters
-            
-
   def __setupSensitiveDetectors(self, detectors, setupFuction, defaultFilter=None):
     """ attach sensitive detector actions for all subdetectors
     can be steered with the `Action` ConfigHelpers
diff --git a/DDSim/Helper/Meta.py b/DDSim/Helper/Meta.py
index d5f1b0435f0c6ad733988655d214fe1100b355bc..611912d80a77801e696766da34d04dc4fba70aab 100644
--- a/DDSim/Helper/Meta.py
+++ b/DDSim/Helper/Meta.py
@@ -17,4 +17,32 @@ class Meta( ConfigHelper ):
                                              " E.g setting it to 42 will start counting events from 42 instead of 0"}
     self.eventNumberOffset = 0
 
-
+  def parseEventParameters(self):
+    """Parse the event parameters and return 3 event parameter dictionnaries, respectively for string, int and float parameters"""
+    stringParameters, intParameters, floatParameters, allParameters = {}, {}, {}, []
+    for p in self.eventParameters:
+      parameterAndValue = p.split( "=", 1 )
+      if len(parameterAndValue) != 2:
+        raise SyntaxError("ERROR: Couldn't decode event parameter '%s'" %(p))
+      parameterAndType = parameterAndValue[0].split( "/", 1 )
+      if len(parameterAndType) != 2:
+        raise SyntaxError("ERROR: Couldn't decode event parameter '%s'" %(p))
+      pname = parameterAndType[0]
+      ptype = parameterAndType[1]
+      pvalue = parameterAndValue[1]
+      if ptype.lower() not in ["c", "f", "i"]:
+        raise ValueError("ERROR: Event parameter '%s' with invalid type '%s'" %(pname, ptype))
+      if pname in allParameters:
+        raise RuntimeError("ERROR: Event parameter '%s' specified twice" %(pname))
+      if not pvalue:
+        raise RuntimeError("ERROR: Event parameter '%s' has empty value" %(pname))
+      allParameters.append(pname)
+      print "Event parameter '%s', type '%s', value='%s'"%(pname, ptype, pvalue)
+      if ptype.lower() == "c":
+        stringParameters[pname] = pvalue
+      elif ptype.lower() == "f":
+        floatParameters[pname] = pvalue
+      elif ptype.lower() == "i":
+        intParameters[pname] = pvalue
+    return stringParameters, intParameters, floatParameters
+    
\ No newline at end of file