Coulomb scattering

Elastic scattering of charged particles off atoms can be simulated in three ways:

  • A detailed single scattering model in which each scattering interaction is sampled

  • A multiple scattering approach which calculates global effects from many collisions

  • A combination of the two

Though it is the most accurate, the single Coulomb scattering model is too computationally expensive to be used in most applications as the number of collisions can be extremely large. Instead, a “condensed” simulation algorithm is typically used to determine the net energy loss, displacement, and direction change from many collisions after a given path length. The Urban model is the default multiple scattering model in Celeritas for all energies and in Geant4 below 100 MeV. A third “mixed” simulation approach uses multiple scattering to simulate interactions with scattering angles below a given polar angle limit and single scattering for large angles. The Wentzel-VI model, used together with the single Coulomb scattering model, is an implementation of the mixed simulation algorithm. It is the default model in Geant4 above 100 MeV and currently under development in Celeritas.

Models

class CoulombScatteringInteractor

Applies the Wentzel single Coulomb scattering model.

This models incident high-energy electrons and positrons elastically scattering off of nuclei and atomic electrons. Scattering off of the nucleus versus electrons is randomly sampled based on the relative cross-sections. No secondaries are created in this process (in the future, with hadronic transport support, secondary ions may be emitted), however production cuts are used to determine the maximum scattering angle off of electrons.

Note

This performs the same sampling as in Geant4’s G4eCoulombScatteringModel, as documented in section 8.2 of the Geant4 Physics Reference Manual (release 11.1).

class UrbanMscScatter

Sample angular change and lateral displacement with the Urban multiple scattering model.

Note

This code performs the same method as in G4VMultipleScattering::AlongStepDoIt and G4UrbanMscModel::SampleScattering of the Geant4 10.7 release.

Cross sections

class WentzelHelper

Helper class for the Wentzel OK and VI Coulomb scattering model.

This calculates the Moliere screening coefficient, the maximum scattering angle off of electrons, and the ratio of the electron to total Wentzel cross sections.

The Moliere screening parameter is largely from Fernández-Varea et al. [1993] which references Bethe’s re-derivation of Moliere scattering [Bethe, 1953] .

See [The Geant4 Collaboration, 2023] section 8.5.

class MottRatioCalculator

Calculates the ratio of Mott cross section to the Rutherford cross section.

This ratio is an adjustment of the cross section from a purely classical treatment of a point nucleus in an electronic cloud (Rutherford scattering) to a quantum mechanical treatment. The implementation is an interpolated approximation developed in Lijian et al. [1995] and described in The Geant4 Collaboration [2023] section 8.4.

The input argument cos_theta is the cosine of the scattered angle in the z-aligned momentum frame.

Distributions

class WentzelDistribution

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 Fernández-Varea et al. [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 nuclear form factors used by this distribution are:

class ExpNuclearFormFactor : public celeritas::NuclearFormFactorTraits

Exponential nuclear form factor.

This nuclear form factor corresponds NuclearFormFactorType::exponential and assumes the nuclear charge decays exponentially from its center. This assumes a parameterization of the atomic nucleus valid for light and medium atomic nuclei from Eq. 7 of Butkevich et al. [2002] :

\[ R_N = 1.27A^{0.27} \,\mathrm{fm} \]
with a special case for the proton radius, \( R_p = 0.85 \) fm.

See Leroy and Rancoita [2016] Eq. 2.262.

Todo:

Instead of using this coarse parameterization, we should add nuclear radius to the isotope properties for a more accurate treatment, and construct these classes directly from the atomic radius.

Subclassed by celeritas::GaussianNuclearFormFactor

class GaussianNuclearFormFactor : public celeritas::ExpNuclearFormFactor

Gaussian nuclear form factor.

This nuclear form factor corresponds NuclearFormFactorType::gaussian and assumes a Gaussian distribution of nuclear charge: see Leroy and Rancoita [2016] Eq. 2.264. Its prefactor has the same value as the exponential.

class UUNuclearFormFactor : public celeritas::NuclearFormFactorTraits

Uniform-uniform folded nuclear form factor.

This nuclear form factor corresponds NuclearFormFactorType::flat and assumes a uniform nuclear charge at the center with a smoothly decreasing charge at the surface. From Leroy and Rancoita [2016] Eq. 2.265, this leads to a form factor:

\[ F(q) = F'(x(R_0, q)) F'(x(R_1, q)) \]
where \( x \equiv q R / \hbar \) uses the effective nuclear radius \( R_0 = 1.2 A^{1/3} \,\mathrm{fm} \) and nuclear surface skin \( R_1 = 2.0 \,\mathrm{fm} \), and
\[ F'(x) = \frac{3}{x^3} ( \sin x - x \cos x) \]
is the form factor for a uniformly charged sphere.

See also Helm [1956] , Fernández-Varea et al. [1993]

Warning

This form factor suffers from catastrophic numerical cancellation for small radii and momenta so should only be used for large nuclei or large momentum transfers.