Source code for zgoubidoo.commands.spin

"""Zgoubidoo's interfaces to spin tracking commands.

More details here.
"""
from .actions import Action as _Action
from .commands import ZgoubidooException as _ZgoubidooException


[docs]class SpinRotation(_Action): """Spin rotation.""" KEYWORD = 'SPINR' """Keyword of the command used for the Zgoubi input data."""
[docs]class Spnprnl(_Action): """Store spin coordinates into file FNAME.""" KEYWORD = 'SPNPRNL' """Keyword of the command used for the Zgoubi input data."""
[docs]class SpinStore(_Action): """Store spin coordinates every IP other pass at labeled elements.""" KEYWORD = 'SPNSTORE' """Keyword of the command used for the Zgoubi input data."""
[docs]class SpnPrt(_Action): """Print spin coordinates.""" KEYWORD = 'SPNPRT' """Keyword of the command used for the Zgoubi input data."""
SpinPrint = SpnPrt
[docs]class SpnTrk(_Action): """Spin tracking.""" KEYWORD = 'SPNTRK' """Keyword of the command used for the Zgoubi input data.""" PARAMETERS = { 'KSO': (1, ''), 'IR': (1, 'Random sequence seed.') } """Parameters of the command, with their default value, their description and optinally an index used by other commands (e.g. fit).""" def __str__(self) -> str: if self.KSO not in (1, 2, 3, 4, 4.1, 5): raise _ZgoubidooException("KPOS must be in (0, 1, 2, 3, 4, 4.1, 5).") return f""" {super().__str__().rstrip()} {self.KSO:d} {int(self.IR):d} """
SpinTracking = SpnTrk