Coordinates
Coordinate Interface
QEDcore.AbstractCoordinateSet
— TypeAbstractCoordinateSet{N}
An abstract type representing a set of coordinates with N
elements.
Subtypes of AbstractCoordinateSet
used to define specific coordinate systems or layouts used to describe physical processes, such as phase-space parametrizations for scattering events. The parameter N
specifies the number of coordinates in the set, where N
can be one for univariate coordinates (e.g., energy, rapidity) or higher for more complex systems.
Type Parameters
N
: The number of coordinates in the set.
Intended Usage
Subtypes of AbstractCoordinateSet{N}
implement the structure and behavior for specific coordinate systems. Functions like coordinate_names
and coordinate_name
are used to retrieve human-readable names for the coordinates in the set.
QEDcore.coordinate_names
— Functioncoordinate_names(coord_set::AbstractCoordinateSet)
Retrieve the names of all coordinates in a given coordinate set.
Arguments
coord_set::AbstractCoordinateSet
: A coordinate set, which is a container for multiple
coordinates.
Returns
- A tuple of strings, where each string is the name of a coordinate in the set, including its particle index if available.
This function is typically implemented for subtypes of AbstractCoordinateSet
and is used to return human-readable names for each coordinate in the set.
QEDcore.coordinate_name
— Functioncoordinate_name(coord::AbstractUnivariateCoordinate)
Retrieve the name of a single univariate coordinate.
Arguments
coord::AbstractUnivariateCoordinate
: A single univariate coordinate, which is a subtype ofAbstractCoordinateSet{1}
representing a coordinate system with one degree of freedom.
Returns
- A string representing the name of the coordinate.
This function provides a human-readable label for a single coordinate and is generally used for naming individual coordinates in a scattering process or phase space.
QEDcore.AbstractSingleParticleCoordinate
— TypeAbstractSingleParticleCoordinate{IDX} <: AbstractUnivariateCoordinate
An abstract type representing a coordinate associated with a single particle. The type parameter IDX
indicates the index of the particle in an AbstractProcessDefintion
, either for the in- or out-channel, depending on the phase phase layout. Specific types that inherit from this abstract type define various coordinates (e.g., energy, rapidity, etc.) for the particle.
QEDcore.particle_index
— Functionparticle_index(coord::AbstractSingleParticleCoordinate{IDX})
Return the index of the particle the coord
is related to, i.e. IDX
.
Univariate Coordinates
QEDcore.CenterOfMomentumEnergy
— TypeCenterOfMomentumEnergy <: AbstractUnivariateCoordinate
Represents the center-of-momentum (CoM) energy coordinate in the definion of a phase space layout.
QEDcore.Energy
— TypeEnergy{IDX} <: AbstractSingleParticleCoordinate{IDX}
Represents the energy coordinate for a single particle identified by IDX
. This is mainly used for multiple dispatch and the definiton of phase space layouts.
QEDcore.SpatialMagnitude
— TypeSpatialMagnitude{IDX} <: AbstractSingleParticleCoordinate{IDX}
Represents the spatial spatial magnitude for a single particle identified by IDX
. This is mainly used for multiple dispatch and the definiton of phase space layouts.
QEDcore.Rapidity
— TypeRapidity{IDX} <: AbstractSingleParticleCoordinate{IDX}
Represents the rapidity coordinate for a single particle identified by IDX
. This is mainly used for multiple dispatch and the definiton of phase space layouts.
QEDcore.CosTheta
— TypeCosTheta{IDX} <: AbstractSingleParticleCoordinate{IDX}
Represents the cosine-theta coordinate for a single particle identified by IDX
. This is mainly used for multiple dispatch and the definiton of phase space layouts.
Multivariate Coordinates
QEDcore.CoordinateSet
— TypeCoordinateSet{N, D<:Tuple}
A concrete type that represents a set of N
coordinates, stored as a tuple coords::D
. This type is a subtype of AbstractCoordinateSet{N}
and is designed to handle sets of coordinates for use in various calculations, such as in phase space layouts.
Fields
coords::D
: A tuple containing the individual coordinates. Each element of the tuple corresponds to a coordinate in the set.
Constructors
CoordinateSet{N}(coords::D)
: Creates aCoordinateSet
where the number of coordinatesN
must match the length of the tuplecoords
. If they do not match, anArgumentError
is thrown.CoordinateSet(coords::D)
: Automatically infersN
as the length of the provided tuplecoords
.
Throws
ArgumentError
if the length of the provided tuple does not match the specified numberN
.