Source code for pypenelopetools.penepma.input

"""
Input of PENEPMA simulation.
"""

# Standard library modules.

# Third party modules.

# Local modules.
from pypenelopetools.penelope.input import PenelopeInputBase
import pypenelopetools.penelope.keywords as penelope_keywords
import pypenelopetools.penelope.separators as penelope_separators
import pypenelopetools.penepma.keywords as penepma_keywords
import pypenelopetools.penepma.separators as penepma_separators

# Globals and constants variables.

[docs]class PenepmaInput(PenelopeInputBase): """ Creates an object representing a PENEPMA input file. Attributes: TITLE (:class:`TITLE <pypenelopetools.penelope.keywords.TITLE>`): Title of the job (up to 65 characters). SKPAR (:class:`SKPAR <pypenelopetools.penelope.keywords.SKPAR>`): Type of primary particle KPARP (1=electrons, 2=photons or 3=positrons). SENERG (:class:`SENERG <pypenelopetools.penelope.keywords.SENERG>`): Initial energy SE0 of primary particles. SPOSIT (:class:`SPOSIT <pypenelopetools.penelope.keywords.SPOSIT>`): Coordinates of the source centre. SRADI (:class:`SRADI <pypenelopetools.penepma.keywords.SRADI>`): Initial position of the particle is sampled randomly within a circle. SDIREC (:class:`SDIREC <pypenelopetools.penepma.keywords.SDIREC>`): Polar and azimuthal angles of the electron beam axis direction. SAPERT (:class:`SAPERT <pypenelopetools.penepma.keywords.SAPERT>`): Angular aperture of the electron beam. materials (:class:`Materials <pypenelopetools.penelope.keywords.Materials>`): Definition of materials. GEOMFN (:class:`GEOMFN <pypenelopetools.penelope.keywords.GEOMFN>`): Name of geometry definition file. DSMAX (:class:`DSMAX <pypenelopetools.penelope.keywords.DSMAX>`): Maximum step length of electrons and positrons in body. IFORCE (:class:`IFORCE <pypenelopetools.penelope.keywords.IFORCE>`): Forcing of interactions. IBRSPL (:class:`IBRSPL <pypenelopetools.penelope.keywords.IBRSPL>`): Bremsstrahlung splitting for electrons and positrons. IXRSPL (:class:`IXRSPL <pypenelopetools.penelope.keywords.IXRSPL>`): Splitting of characteristic x rays emitted. NBE (:class:`NBE <pypenelopetools.penelope.keywords.NBE>`): Definition of energy distributions of emerging particles. NBANGL (:class:`NBANGL <pypenelopetools.penelope.keywords.NBANGL>`): Definition of angular distributions of emerging particles. photon_detectors (:class:`PhotonDetectors <pypenelopetools.penepma.keywords.PhotonDetectors>`): Definition of the photon detectors. GRIDX (:class:`GRIDX <pypenelopetools.penelope.keywords.GRIDX>`): Definition of x-coordinates of the vertices of the dose box. GRIDY (:class:`GRIDY <pypenelopetools.penelope.keywords.GRIDY>`): Definition of y-coordinates of the vertices of the dose box. GRIDZ (:class:`GRIDZ <pypenelopetools.penelope.keywords.GRIDZ>`): Definition of z-coordinates of the vertices of the dose box. XRAYE (:class:`XRAYE <pypenelopetools.penepma.keywords.XRAYE>`): Space distribution of emission sites of x rays within an energy interval. XRLINE (:class:`XRLINE <pypenelopetools.penepma.keywords.XRLINE>`): Space distribution of emission sites of x rays. RESUME (:class:`RESUME <pypenelopetools.penelope.keywords.RESUME>`): Name of the resume file. DUMPTO (:class:`DUMPTO <pypenelopetools.penelope.keywords.DUMPTO>`): Name of dump file. DUMPP (:class:`DUMPP <pypenelopetools.penelope.keywords.DUMPP>`): Dump interval. RSEED (:class:`RSEED <pypenelopetools.penelope.keywords.RSEED>`): Seeds of the random-number generator. REFLIN (:class:`REFLIN <pypenelopetools.penepma.keywords.REFLIN>`): Termination of simulation based on relative statistical uncertainty of the intensity of line. NSIMSH (:class:`NSIMSH <pypenelopetools.penelope.keywords.NSIMSH>`): Desired number of simulated showers. TIME (:class:`TIME <pypenelopetools.penelope.keywords.TIME>`): Allotted simulation time. """ def __init__(self): self.TITLE = penelope_keywords.TITLE() # Source definition self.SKPAR = penelope_keywords.SKPAR() self.SENERG = penelope_keywords.SENERG() self.SPOSIT = penelope_keywords.SPOSIT() self.SRADI = penepma_keywords.SRADI() self.SDIREC = penepma_keywords.SDIREC() self.SAPERT = penepma_keywords.SAPERT() # Material data and simulation parameters self.materials = penelope_keywords.Materials() # Geometry and local simulation parameters self.GEOMFN = penelope_keywords.GEOMFN() self.DSMAX = penelope_keywords.DSMAX() # Interaction forcing self.IFORCE = penelope_keywords.InteractionForcings() # Bremsstrahlung splitting self.IBRSPL = penelope_keywords.IBRSPL() # X-ray splitting self.IXRSPL = penelope_keywords.IXRSPL() # Emerging particles self.NBE = penelope_keywords.NBE() self.NBANGL = penelope_keywords.NBANGL() # Photon detectors self.photon_detectors = penepma_keywords.PhotonDetectors() # Spatial distribution self.GRIDX = penelope_keywords.GRIDX() self.GRIDY = penelope_keywords.GRIDY() self.GRIDZ = penelope_keywords.GRIDZ() self.XRAYE = penepma_keywords.XRAYE() self.XRLINE = penepma_keywords.XRLINE() # Job properties self.RESUME = penelope_keywords.RESUME() self.DUMPTO = penelope_keywords.DUMPTO() self.DUMPP = penelope_keywords.DUMPP() self.RSEED = penelope_keywords.RSEED() self.REFLIN = penepma_keywords.REFLIN() self.NSIMSH = penelope_keywords.NSIMSH() self.TIME = penelope_keywords.TIME()
[docs] def get_keywords(self): return [self.TITLE, penelope_separators.DOT, penelope_separators.SOURCE_DEFINITION, self.SKPAR, self.SENERG, self.SPOSIT, self.SRADI, self.SDIREC, self.SAPERT, penelope_separators.DOT, penelope_separators.MATERIAL, self.materials, penelope_separators.DOT, penepma_separators.GEOMETRY, self.GEOMFN, self.DSMAX, penelope_separators.DOT, penelope_separators.INTERACTION_FORCING, self.IFORCE, penelope_separators.DOT, penelope_separators.BREMSSTRAHLUNG_SPLITTING, self.IBRSPL, penelope_separators.DOT, penelope_separators.XRAY_SPLITTING, self.IXRSPL, penelope_separators.DOT, penelope_separators.EMERGING_PARTICLES, self.NBE, self.NBANGL, penelope_separators.DOT, penepma_separators.PHOTON_DETECTORS, self.photon_detectors, penelope_separators.DOT, penepma_separators.SPATIAL_DISTRIBUTION, self.GRIDX, self.GRIDY, self.GRIDZ, self.XRAYE, self.XRLINE, penelope_separators.DOT, penelope_separators.JOB_PROPERTIES, self.RESUME, self.DUMPTO, self.DUMPP, penelope_separators.DOT, self.RSEED, self.REFLIN, self.NSIMSH, self.TIME]