-
Notifications
You must be signed in to change notification settings - Fork 102
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
DDSim: move UI commands to separate helper to give better documentati…
…on for it
- Loading branch information
1 parent
83387bf
commit c0d076c
Showing
3 changed files
with
89 additions
and
52 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
"""Helper object for configuration of Geant4 commands to run during different phases.""" | ||
|
||
from __future__ import absolute_import, unicode_literals | ||
import os | ||
|
||
from DDSim.Helper.ConfigHelper import ConfigHelper | ||
import logging | ||
|
||
logger = logging.getLogger(__name__) | ||
|
||
|
||
class UI(ConfigHelper): | ||
"""Configuration for setting commands to run during different phases. | ||
In this section, one can configure commands that should be run during the different phases of the Geant4 execution. | ||
1. Initialization | ||
2. Configuration | ||
3. Pre Run | ||
4. Post Run | ||
5. Terminate / Finalization | ||
For example, one can add | ||
>>> SIM.ui.commandsConfigure = ['/physics_lists/em/SyncRadiation true'] | ||
Further details should be taken from the Geant4 documentation. | ||
""" | ||
|
||
def __init__(self): | ||
super(UI, self).__init__() | ||
|
||
self._commandsConfigure = [] | ||
self._commandsTerminate = [] | ||
self._commandsPostRun = [] | ||
self._commandsPreRun = [] | ||
self._commandsInitialize = [] | ||
|
||
@property | ||
def commandsConfigure(self): | ||
"""List of UI commands to run during the 'Configure' phase.""" | ||
return self._commandsConfigure | ||
|
||
@commandsConfigure.setter | ||
def commandsConfigure(self, val): | ||
self._commandsConfigure = self.makeList(val) | ||
|
||
@property | ||
def commandsInitialize(self): | ||
"""List of UI commands to run during the 'Initialize' phase.""" | ||
return self._commandsInitialize | ||
|
||
@commandsInitialize.setter | ||
def commandsInitialize(self, val): | ||
self._commandsInitialize = self.makeList(val) | ||
|
||
@property | ||
def commandsPostRun(self): | ||
"""List of UI commands to run during the 'PostRun' phase.""" | ||
return self._commandsPostRun | ||
|
||
@commandsPostRun.setter | ||
def commandsPostRun(self, val): | ||
self._commandsPostRun = self.makeList(val) | ||
|
||
@property | ||
def commandsPreRun(self): | ||
"""List of UI commands to run during the 'PreRun' phase.""" | ||
return self._commandsPreRun | ||
|
||
@commandsPreRun.setter | ||
def commandsPreRun(self, val): | ||
self._commandsPreRun = self.makeList(val) | ||
|
||
@property | ||
def commandsTerminate(self): | ||
"""List of UI commands to run during the 'Terminate' phase.""" | ||
return self._commandsTerminate | ||
|
||
@commandsTerminate.setter | ||
def commandsTerminate(self, val): | ||
self._commandsTerminate = self.makeList(val) |