Reference

Contents

Index

XRTSProbing.AbstractAxisType
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.AbstractPhotonEnergyDistributionType
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.AbstractProcessSetupType
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.ElasticType
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.InElasticType
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.PhotonSphericalLayoutType
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_elaticFunction
is_elatic(::AbstractKinematicMode)

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

source