Celeritas 0.6.0-dev.115+3b60a5fd
Loading...
Searching...
No Matches
Public Member Functions | List of all members
celeritas::WentzelDistribution Class Reference

Sample the polar scattering angle cosine for Wentzel Coulomb scattering. More...

#include <WentzelDistribution.hh>

Public Types

Type aliases
using MomentumSq = units::MevMomentumSq
 
using Energy = units::MevEnergy
 
using Mass = units::MevMass
 
using MottCoeffMatrix = MottElementData::MottCoeffMatrix
 

Public Member Functions

CELER_FUNCTION WentzelDistribution (NativeCRef< WentzelOKVIData > const &wentzel, WentzelHelper const &helper, ParticleTrackView const &particle, IsotopeView const &target, ElementId el_id, real_type cos_thetamin, real_type cos_thetamax)
 Construct with state and model data.
 
template<class Engine >
CELER_FUNCTION real_type operator() (Engine &rng) const
 Sample the cosine polar scattered angle of the incident particle.
 

Detailed Description

Sample the polar scattering angle cosine for Wentzel Coulomb scattering.

This chooses between sampling scattering off an electron or nucleus based on the relative cross sections. Electron scattering angle imposes a maximum scattering angle (see WentzelHelper::cos_thetamax_electron), and nuclear sattering rejects an angular change based on the Mott cross section (see MottRatioCalculator). Nuclear scattering depends on the electronic and nuclear cross sections (calculated by WentzelHelper) and nuclear form factors (see ExpNuclearFormFactor, GaussianNuclearFormFactor, and UUNuclearFormFactor ) that describe an approximate spatial charge distribution of the nucleus. The class is used by CoulombScatteringInteractor .

The polar angle distribution is given in fernandez-msc-1993 Eq. 88 and is normalized on the interval \( cos\theta \in [\cos\theta_\mathrm{min}, \cos\theta_\mathrm{max}] \). The sampling function for the angular deflection

\[ \mu(\theta) \equiv \frac{1}{2}(1 - \cos\theta) \]

is

\[ \mu = \mu_1 + \frac{(A + \mu_1) \xi (\mu_2 - \mu_1)}{A + \mu_2 - \xi (\mu_2 - \mu_1)}, \]

where \( \mu_1 = \frac{1}{2}(1 - \cos\theta_\mathrm{min}) \), \( \mu_2 = \frac{1}{2}(1 - \cos\theta_\mathrm{max}) \), \( A \) is the screening coefficient, and \( \xi \sim U(0,1) \).


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