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 of- AbstractCoordinateSet{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} <: AbstractUnivariateCoordinateAn 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 <: AbstractUnivariateCoordinateRepresents 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 a- CoordinateSetwhere the number of coordinates- Nmust match the length of the tuple- coords. If they do not match, an- ArgumentErroris thrown.
- CoordinateSet(coords::D): Automatically infers- Nas the length of the provided tuple- coords.
Throws
- ArgumentErrorif the length of the provided tuple does not match the specified number- N.