|
Celeritas 0.7.0-dev.264+develop.12c52268
|
Precalculate energy loss fluctuation properties. More...
#include <EnergyLossHelper.hh>
Public Types | |
Type aliases | |
| using | FluctuationRef = NativeCRef< FluctuationData > |
| using | Energy = units::MevEnergy |
| using | EnergySq = RealQuantity< 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 | |
| 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. | |
| FluctuationRef const & | shared () const |
| Shared data. | |
| MaterialTrackView const & | material () const |
| Current material. | |
| Model | model () const |
| Type of model to select. | |
| Energy | mean_loss () const |
| Input mean loss. | |
| Energy | max_energy () const |
| Maximum allowable energy loss. | |
| real_type | beta_sq () const |
| Kinematics value: square of fractional speed of light. | |
| EnergySq | bohr_variance () const |
| Bohr variance. | |
| Mass | two_mebsgs () const |
| Kinematics value for electrons: 2 * mass * beta^2 * gamma^2. | |
Static Public Member Functions | |
| static constexpr 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.