Celeritas  0.5.0-56+6b053cd
Public Member Functions | Static Public Member Functions | List of all members
celeritas::EnergyLossHelper Class Reference

Precalculate energy loss fluctuation properties. More...

#include <EnergyLossHelper.hh>

Public Types

Type aliases
using FluctuationRef = NativeCRef< FluctuationData >
 
using Energy = units::MevEnergy
 
using EnergySq = Quantity< UnitProduct< units::Mev, units::Mev > >
 
using Mass = units::MevMass
 
using Charge = units::ElementaryCharge
 
using Model = EnergyLossFluctuationModel
 
using Real2 = Array< real_type, 2 >
 

Public Member Functions

CELER_FUNCTION EnergyLossHelper (FluctuationRef const &shared, CutoffView const &cutoffs, MaterialTrackView const &material, ParticleTrackView const &particle, Energy mean_loss, real_type step_length)
 Construct from model parameters, incident particle, and mean energy loss.
 
CELER_FORCEINLINE_FUNCTION FluctuationRef const & shared () const
 Shared data.
 
CELER_FORCEINLINE_FUNCTION MaterialTrackView const & material () const
 Current material.
 
CELER_FORCEINLINE_FUNCTION Model model () const
 Type of model to select.
 
CELER_FUNCTION Energy mean_loss () const
 Input mean loss.
 
CELER_FUNCTION Energy max_energy () const
 Maximum allowable energy loss.
 
CELER_FUNCTION real_type beta_sq () const
 Kinematics value: square of fractional speed of light.
 
CELER_FUNCTION EnergySq bohr_variance () const
 Bohr variance.
 
CELER_FUNCTION Mass two_mebsgs () const
 Kinematics value for electrons: 2 * mass * beta^2 * gamma^2.
 

Static Public Member Functions

static CELER_CONSTEXPR_FUNCTION Energy ionization_energy ()
 Atomic energy level corresponding to outer electrons (E_0)
 

Detailed Description

Precalculate energy loss fluctuation properties.

Fluctuations in the energy loss of charged particles over a given thickness of material arise from statistical variation in both the number of collisions and the energy lost in each collision. Above a given energy threshold, fluctuations are simulated through the explicit sampling of secondaries. However, the continuous energy loss below the cutoff energy also has fluctuations, and these are not taken into account in the calculation of the mean loss. For continuous energy loss, fluctuation models are used to sample the actual restricted energy loss given the mean loss.

Different models are used depending on the value of the parameter \( \kappa = \xi / T_{max} \), the ratio of the mean energy loss to the maximum allowed energy transfer in a single collision.

For large \( \kappa \), when the particle loses all or most of its energy along the step, the number of collisions is large and the straggling function can be approximated by a Gaussian distribution.

Otherwise, the Urban model for energy loss fluctuations in thin layers is used.

Note
This performs the same sampling routine as in Geant4's G4UniversalFluctuation, as documented in section 7.3 in the Geant4 Physics Reference Manual and in PHYS332 and PHYS333 in GEANT3, CERN Program Library Long Writeup, W5013 (1993).

The documentation for this class was generated from the following file: