From 45068fbd8b87b852b3f9c1adebb0a89dff68ee91 Mon Sep 17 00:00:00 2001
From: Andre Sailer <andre.philippe.sailer@cern.ch>
Date: Fri, 9 Oct 2015 17:06:13 +0000
Subject: [PATCH] ddsim: remove some commented lines, add dump[Parameter] flag
 to just print the configuration parameters

---
 DDSim/DD4hepSimulation.py    | 18 +++++++++++++++---
 DDSim/Helper/ConfigHelper.py |  8 +++++++-
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/DDSim/DD4hepSimulation.py b/DDSim/DD4hepSimulation.py
index 656d4ce98..51286205c 100644
--- a/DDSim/DD4hepSimulation.py
+++ b/DDSim/DD4hepSimulation.py
@@ -62,8 +62,9 @@ class DD4hepSimulation(object):
     self.detailedShowerMode = False
 
     self.errorMessages = []
+    self.dumpParameter = False
 
-    ## dummy objects for extended configuration option
+    ## objects for extended configuration option
     self.output = Output()
     self.gun = Gun()
     self.part = ParticleHandler()
@@ -144,6 +145,9 @@ class DD4hepSimulation(object):
     parser.add_argument("--enableGun", "-G", action="store_true", dest="enableGun", default=self.enableGun,
                         help="enable the DDG4 particle gun")
 
+    parser.add_argument("--dumpParameter", "--dump", action="store_true", dest="dumpParameter", default=self.dumpParameter,
+                        help="Print all configuration Parameters and exit")
+
     parser.add_argument("--enableDetailedShowerMode", action="store_true", dest="detailedShowerMode", default=self.detailedShowerMode,
                         help="use detailed shower mode")
 
@@ -153,11 +157,12 @@ class DD4hepSimulation(object):
     ## now parse everything. The default values are now taken from the
     ## steeringFile if they were set so that the steering file parameters can be
     ## overwritten from the command line
-    #parsed = parser.parse_args()
     if ARGCOMPLETEENABLED:
       argcomplete.autocomplete(parser)
     parsed = parser.parse_args()
 
+    self.dumpParameter = parsed.dumpParameter
+
     self.compactFile = parsed.compactFile
     self.inputFiles = parsed.inputFiles
     self.__checkFileFormat( self.inputFiles, (".stdhep", ".slcio", ".HEPEvt", ".hepevt", ".hepmc"))
@@ -187,7 +192,6 @@ class DD4hepSimulation(object):
 
     #self.__treatUnknownArgs( parsed, unknown )
     self.__parseAllHelper( parsed )
-    #exit(1)
     if self.errorMessages:
       parser.epilog = "\n".join(self.errorMessages)
       parser.print_help()
@@ -392,10 +396,18 @@ class DD4hepSimulation(object):
 
     DD4hep.setPrintLevel(self.printLevel)
 
+    if self.dumpParameter:
+      from pprint import pprint
+      print "="*80
+      pprint(vars(self))
+      print "="*80
+      exit(1)
+
     kernel.configure()
     kernel.initialize()
 
     #DDG4.setPrintLevel(Output.DEBUG)
+
     kernel.run()
     kernel.terminate()
 
diff --git a/DDSim/Helper/ConfigHelper.py b/DDSim/Helper/ConfigHelper.py
index 3f28b63e0..942e9e738 100644
--- a/DDSim/Helper/ConfigHelper.py
+++ b/DDSim/Helper/ConfigHelper.py
@@ -28,9 +28,15 @@ class ConfigHelper( object ):
 
     return finalVars
 
+  def __repr__(self):
+    return self.printOptions()
+
   def printOptions( self ):
     """print all paramters"""
-    return pprint(self.getOptions())
+    options = []
+    for opt,val in self.getOptions().iteritems():
+      options.append("\n\t'%s': '%s'" % (opt, val[0]))
+    return "".join(options)
 
   def setOption( self, name, val ):
     """ set the attribute name to val """
-- 
GitLab