RayleighProcess

This class provides access to the implementation of the Rayleigh scattering process, as detailed in [BSFS95].

Warning

All methods described below are defined at the class level.

Constructor

class RayleighProcess

Note

This class serves as a namespace and is not intended for instantiation. Any attempt to do so will result in a TypeError.

Methods

RayleighProcess.cross_section(energy, material)

Computes the total cross-section for Rayleigh scattering of a photon with a specified energy (in MeV) on an atom of a given material. The energy can be a float or a numpy.ndarray of floats. The material must be consistent with a MaterialDefinition. For instance,

>>> goupil.RayleighProcess.cross_section(0.1, "H2O")
1.600...e-25
RayleighProcess.dcs(energy, cos_theta, material)

Computes the differential cross-section (DCS) for Rayleigh scattering of a photon on an atom of a given material. The input parameters are the photon energy (in MeV) and the cosine of the scattering angle (cos_theta), which can be a single float or a numpy.ndarray of floats. The material must be consistent with a MaterialDefinition.

RayleighProcess.sample(energy, material, rng=None)

This function generates random Rayleigh collisions. The photon energy, in MeV, can be a float or a numpy.ndarray. The target material must be consistent with a MaterialDefinition. The output is the cosine of the scattering angle(s). It is also possible to provide a specific RandomStream (rng) as an option.