Celeritas 0.6.0-dev.115+3b60a5fd
|
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. | |
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) \).