diff --git a/DDSim/DD4hepSimulation.py b/DDSim/DD4hepSimulation.py index 656d4ce9873d870a50cca6f3b9b657fcd5261c31..51286205caf870e2f2967b07d2de40de336e8fc9 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 3f28b63e0b23451a3e87a720b0597d8c10c9ea68..942e9e738bc3a5ea9a2df31b8b8c845b0af4c5b3 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 """