QEDprocesses

Documentation for QEDprocesses.

QEDprocesses.ComptonType
Compton(
    in_spin [= AllSpin()]
    in_pol [= AllPol()]
    out_spin [= AllSpin()]
    out_pol [= AllPol()]
)
source
QEDprocesses.ScatteringProcessType
ScatteringProcess <: AbstractProcessDefinition

Generic implementation for scattering processes of arbitrary particles. Currently, only calculations in combination with PerturbativeQED are supported. However, this is supposed to describe scattering processes with any number of incoming and outgoing particles, and any combination of spins or polarizations for the particles.

The isphysical function can be used to check whether the process is possible in perturbative QED.

Constructors

ScatteringProcess(
    in_particles::Tuple{AbstractParticleType},
    out_particles::Tuple{AbstractParticleType},
    [in_sp::Tuple{AbstractSpinOrPolarization},
    out_sp::Tuple{AbstractSpinOrPolarization}]
)

Constructor for a ScatteringProcess with the given incoming and outgoing particles and their respective spins and pols. The constructor asserts that the particles are compatible with their respective spins and polarizations. If the assertion fails, an InvalidInputError is thrown.

The in_sp and out_sp parameters can be omitted in which case all spins and polarizations will be set to AllSpin and AllPol for every fermion and boson, respectively.

source
QEDbase._averaging_normMethod
_averaging_norm(::Type{<:Number}, proc::Compton)
Convention

We average over the initial spins and pols, and sum over final.

source
QEDbase.in_phase_space_dimensionMethod
in_phase_space_dimension(proc::AbstractProcessDefinition, ::PerturbativeQED)

Return the number of degrees of freedom to determine the incoming phase space for processes in PerturbativeQED.

Convention

The current implementation only supports the case where two of the incoming particles collide head-on.

source
QEDprocesses._base_component_typeMethod
_base_component_type(array_of_lv::AbstractArray{LV}) where {LV<:AbstractLorentzVector}

Return the type of the components of given Lorentz vectors, which are by themselves elements of an AbstractArray.

Examples

julia> using QEDbase
julia> using QEDprocesses
julia> v = Vector{SFourMomentum}(undef,10)
julia> QEDprocesses._base_component_type(v)
Float64
source
QEDprocesses.isphysicalMethod
isphysical(proc::AbstractProcessDefinition, model::PerturbativeQED)

A utility function that returns whether a given AbstractProcessDefinition is valid in tree-level perturbative QED, i.e., whether it has at least one tree-level Feynman diagram.

source