Celeritas
0.5.0-86+4a8eea4
|
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) | |
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.