Reference

Contents

Index

XRTSProbing.AbstractAxis — Type
AbstractAxis

Abstract base type to describe the axis of a vector, e.g. the k-vector of a photon. Mostly used for multiple dispatch.

source
XRTSProbing.AbstractPhotonEnergyDistribution — Type
AbstractPhotonEnergyDistribution

Abstract base type for photon energy distributions. Subtypes of this type need to implement at least

  • energy_mean(dist::AbstractPhotonEnergyDistribution): return the mean energy modelled with dist
  • energy_width(dist::AbstractPhotonEnergyDistribution): return the energy width modelled with dist
  • k_vec_axis(dist::AbstractPhotonEnergyDistribution): return the direction (subtype of AbstractAxis) for the k-vector of the photons modelled with dist
  • _energyweight(dist::AbstractPhotonEnergyDistribution,omega): return the weight of dist for given photon energy omega
  • _randenergy(rng::AbstractRNG,dist::AbstractPhotonEnergyDistribution): return a random sample drawn from dist

Optionally, one may implement the following function to overwrite the generic implementation:

  • QEDevents._weight(dist::AbstractPhotonEnergyDistribution,mom): return the total weight for a given mom such that the sum over all possible moms results in unity.
  • QEDevents._randmom(rng::AbstractRNG,dist::AbstractPhotonEnergyDistribution): return a randomly distributed four-momentum according to dist
source
XRTSProbing.AbstractProcessSetup — Type
AbstractProcessSetup{P,M,PSL}

Abstract base type for setups related to scattering processes with

  • P<:AbstractProcessDefinition,
  • M<:AbstractModelDefinition,
  • PSL<:AbstractPhaseSpaceLayout.

Interface function to be implemented:

  • QEDbase.process(stp::AbstractProcessSetup)::P,
  • QEDbase.model(stp::AbstractProcessSetup)::M,
  • QEDbase.phase_space_layout(stp::AbstractProcessSetup)::PSL,
  • _compute(stp::AbstractProcessSetup, psp::AbstractPhaseSpacePoint)::Real.

Optionally, the following interface functions can be implemented:

  • _build_psp(stp::AbstractProcessSetup,coords::Tuple)::PSP
  • degree_of_freedom(stp::AbstractProcessSetup)::Int,
  • coordinate_boundaries(stp::AbstractProcessSetup)::Tuple,

A leading underscore of an interface function means, there is no input validation necessary, because there is a generic implementation of the same function without the underscore, which does basic compiletime checks.

source
XRTSProbing.Elastic — Type
Elastic()

Configuration type to ensure, that a given phase space layout describes elatic scattering. This means, the energy of the beam does not change during scattering.

source
XRTSProbing.InElastic — Type
InElastic()

Configuration type to ensure, that a given phase space layout describes in-elatic scattering. This means, the energy of the beam does change accordingly during scattering.

source
XRTSProbing.PhotonSphericalLayout — Type
PhotonSphericalLayout()

Represents the ps system with init electron at rest and the out photon described in spherical coordiantes, i.e. polar and azimuthal angle.

source
XRTSProbing.is_elatic — Function
is_elatic(::AbstractKinematicMode)

Convenience function to check if a given AbstractKinematicMode describes elastic scattering.

source