nullBgAbsorber

nullBgAbsorber

Works with VSimPD license.

Kind of MonteCarlo interaction that models the loss of energy and scattering of a particle interacting with a background gas. nullBgAbsorber is used in conjunction with a Fluid block and a Species block.

nullBgAbsorber Parameters

species (string, required)

This is the name of the species interacting with the background gas. The species must be defined in the input file using a Species block. The background absorber works with both sortSpecies and cellSpecies in Vorpal. The species can be constant weight or variable weight.

fluid (string, required)

This is the name of the background gas, defined as a Fluid block in the input file. To use the builtIn models of energy loss, multiple scattering, and energy straggling, the Fluid must be of kind neutralGas. For more information on the kinds of allowed neutral Gases, please see Working with neutralGas Fluids and the gasKind Parameter.

stoppingPower (string, required)

This attribute specifies the stopping power function to be used for energy loss in the gas. Possible values are builtIn or functionDefined. See below for required parameters for each choice.

materialMass (string, required)

The material scatterer mass in kg

fluidTemperature (float, non-negative, optional, default = 0.0)

This parameter specifies the electron temperature of the fluid, in eV. If the temperature is 0.0, then all of the electronic stopping comes from electrons that are bound to the fluid atoms. If the temperature is non-zero, then some electronic stopping is from bound electrons, and some is from free electrons.

multipleScattering (string, optional, default = none)

This string specifies which model to use for multiple scattering of the incident particle. The accepted values are none (turns multiple scattering off), ThomasFermi and LenzJensen (uses TxPhysics models based on the Thomas-Fermi and Lenz-Jensen screening potentials), and gaussian (a simple gaussian model for the mean scattering angle). When using the gaussian option, the parameter radiationLength is required, in \(kg/m^2\), to determine the RMS angular spread experienced by particles traveling through the material.

radiationLength (float, optional)

The radiation length for the gaussian multiple scattering option

straggling (string, optional, default = none)

This string specifies which model to use for energy straggling of the incident particle. The accepted values are none (turns energy straggling off) and builtIn (uses a TxPhysics model to calculate the Vavilov distribution).

atomicRatio (float, optional)

The ratio of the scatterer’s atomic number to atomic mass

thicknessFunc (block, optional)

Use an STFunc block of name thicknessFunc to specify a thickness function for the material. See below for parameters related to the STFunc block.

builtIn Parameters

If the builtIn stopping power type is used, the following parameters must be set:

speciesAtomicNumber (real)

This parameter is required when using the builtIn stopping power. It defines the effective atomic number (Z) of the incident species.

functionDefined Parameters

If the functionDefined stopping power type is used, the following parameters must be set:

OAFunc (block, required)

An OAFunc block of name stoppingPowerFunc must be used inside the NullInteraction block. The OAFunc block allows the user to define its own stopping power for the interaction, either through a two-column data file or through an expression. The kinds of OAFunc available for this interaction are interpolatedFromFile, or expression. The OAFunc must return the value of the stopping power as a function of the kinetic energy in MeV and return a value in MeV-cm2/g .

Please see OAFunc Block for more information on the OAFunc block.

refPtclMass (real)

This parameter is required when using the OAFunc stopping power. This defines the mass of the incident particle (in kg) for which the stopping power data is given in the stoppingPower OAFunc function.

refPtclCharge (real)

This parameter is required when using the OAFunc stopping power. This defines the charge number of the incident particle for which the stopping power data is given in the stoppingPower OAFunc function.

thicknessFunc Parameters

Use an STFunc block to specify a thickness function for the material. The following parameters are possible when using the STFunc block of name thicknessFunc:

gridBoundary (string, required)

The name of the grid boundary for the location of the absorbing material.

materialName (string, required)

The name of the material absorbing the particles

materialDensity (string, required, default = 0.0)

The material scatterer density in m^-3

removeStoppedParticles (string, option, default = 0)

Whether to delete particles once they get stopped in the gas. 0 for false, 1 for true

Example nullBgAbsorber Block

This is an example of using an OAFunc function block to define the stopping power. In this case the stopping power function is defined through a two-column data file (h2StoppingPower.dat), which gives the proton stopping power in hydrogen. Blocks <Species refMuon> and <Fluid hydrogen> are also present in the input file.

<NullInteraction absorber>
  kind = nullBgAbsorber
  species = refMuon
  fluid = hydrogen
  # specify the stopping power with an OAFunc
  stoppingPower = functionDefined
  materialMass = 1.66e-27
  <OAFunc stoppingPowerFunc>
    kind = interpolatedFromFile
    filename = h2StoppingPower.dat
    # set bounds of the function from min and max x values in the file.
    # option specific to kind = interpolatedFromFile
    # setMinMaxFromFile = 1
    # f has to be >0.
    fmin = 0.
  </OAFunc>
  # charge of the particle for which the stopping power is given
  refPtclCharge = ELEMCHARGE
  # mass of the particle for which the stopping power is given
  refPtclMass = PROTMASS
  multipleScattering = none
  straggling = none
</NullInteraction>

Using the builtIn stopping power (requires TxPhysics):

<NullInteraction absorber>
  kind = nullBgAbsorber
  species = muons
  fluid = hydrogen
  stoppingPower = builtIn
  speciesAtomicNumber = 1.
  multipleScattering = LenzJensen
  straggling = builtIn
</NullInteraction>