Skip to content
Snippets Groups Projects
UI.py 2.07 KiB
Newer Older
"""Helper object for configuration of Geant4 commands to run during different phases."""

from DDSim.Helper.ConfigHelper import ConfigHelper


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. Configuration
  2. Initialization
  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._commandsInitialize = []
    self._commandsPostRun = []
    self._commandsPreRun = []
    self._commandsTerminate = []

  @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)