QEDcore
Documentation for QEDcore.
QEDcore.AbstractParticleSpinor
QEDcore.AdjointBiSpinor
QEDcore.AntiBoson
QEDcore.AntiFermion
QEDcore.BiSpinor
QEDcore.Boson
QEDcore.BosonLike
QEDcore.CenterOfMomentumFrame
QEDcore.DiracMatrix
QEDcore.Electron
QEDcore.ElectronRestFrame
QEDcore.Fermion
QEDcore.FermionLike
QEDcore.InPhaseSpacePoint
QEDcore.InPhaseSpacePoint
QEDcore.InPhaseSpacePoint
QEDcore.InPhaseSpacePoint
QEDcore.MFourMomentum
QEDcore.MFourMomentum
QEDcore.MLorentzVector
QEDcore.MajoranaBoson
QEDcore.MajoranaFermion
QEDcore.OutPhaseSpacePoint
QEDcore.OutPhaseSpacePoint
QEDcore.OutPhaseSpacePoint
QEDcore.ParticleStateful
QEDcore.ParticleStateful
QEDcore.PhaseSpacePoint
QEDcore.PhaseSpacePoint
QEDcore.PhaseSpacePoint
QEDcore.PhasespaceDefinition
QEDcore.Photon
QEDcore.Positron
QEDcore.SFourMomentum
QEDcore.SFourMomentum
QEDcore.SLorentzVector
QEDcore.SphericalCoordinateSystem
Base.getindex
Base.getindex
QEDcore._momentum_type
QEDcore._mul
QEDcore._mul
QEDcore._mul
QEDcore._mul
QEDcore._mul
QEDcore._mul
QEDcore.AbstractParticleSpinor
— TypeAbstractParticleSpinor
TBW
QEDcore.AdjointBiSpinor
— Typestruct AdjointBiSpinor <: AbstractDiracVector{ComplexF64}
Concrete type to model an adjoint Dirac four-spinor with complex-valued components. These are the elements of the dual spinor space.
QEDcore.AntiBoson
— TypeAbstract base type for anti-bosons as distinct from its particle counterpart Boson
.
All subtypes of AntiBoson
have
is_boson(::AntiBoson) = true
+Home · QEDcore.jl QEDcore
Documentation for QEDcore.
QEDcore.AbstractParticleSpinor
QEDcore.AdjointBiSpinor
QEDcore.AntiBoson
QEDcore.AntiFermion
QEDcore.BiSpinor
QEDcore.Boson
QEDcore.BosonLike
QEDcore.CenterOfMomentumFrame
QEDcore.DiracMatrix
QEDcore.Electron
QEDcore.ElectronRestFrame
QEDcore.Fermion
QEDcore.FermionLike
QEDcore.InPhaseSpacePoint
QEDcore.InPhaseSpacePoint
QEDcore.InPhaseSpacePoint
QEDcore.InPhaseSpacePoint
QEDcore.MFourMomentum
QEDcore.MFourMomentum
QEDcore.MLorentzVector
QEDcore.MajoranaBoson
QEDcore.MajoranaFermion
QEDcore.OutPhaseSpacePoint
QEDcore.OutPhaseSpacePoint
QEDcore.OutPhaseSpacePoint
QEDcore.ParticleStateful
QEDcore.ParticleStateful
QEDcore.PhaseSpacePoint
QEDcore.PhaseSpacePoint
QEDcore.PhaseSpacePoint
QEDcore.PhasespaceDefinition
QEDcore.Photon
QEDcore.Positron
QEDcore.SFourMomentum
QEDcore.SFourMomentum
QEDcore.SLorentzVector
QEDcore.SphericalCoordinateSystem
Base.getindex
Base.getindex
QEDcore._momentum_type
QEDcore._mul
QEDcore._mul
QEDcore._mul
QEDcore._mul
QEDcore._mul
QEDcore._mul
QEDcore.AbstractParticleSpinor
— TypeAbstractParticleSpinor
TBW
sourceQEDcore.AdjointBiSpinor
— Typestruct AdjointBiSpinor <: AbstractDiracVector{ComplexF64}
Concrete type to model an adjoint Dirac four-spinor with complex-valued components. These are the elements of the dual spinor space.
sourceQEDcore.AntiBoson
— TypeAbstract base type for anti-bosons as distinct from its particle counterpart Boson
.
particle interface All subtypes of AntiBoson
have
is_boson(::AntiBoson) = true
is_particle(::AntiBoson) = false
-is_anti_particle(::AntiBoson) = true
sourceQEDcore.AntiFermion
— TypeAbstract base type for anti-fermions as distinct from its particle counterpart Fermion
.
particle interface All subtypes of AntiFermion
have
is_fermion(::AntiFermion) = true
+is_anti_particle(::AntiBoson) = true
sourceQEDcore.AntiFermion
— TypeAbstract base type for anti-fermions as distinct from its particle counterpart Fermion
.
particle interface All subtypes of AntiFermion
have
is_fermion(::AntiFermion) = true
is_particle(::AntiFermion) = false
-is_anti_particle(::AntiFermion) = true
sourceQEDcore.BiSpinor
— Typestruct BiSpinor <: AbstractDiracVector{ComplexF64}
Concrete type to model a Dirac four-spinor with complex-valued components. These are the elements of an actual spinor space.
sourceQEDcore.Boson
— TypeAbstract base type for bosons as distinct from its anti-particle counterpart AntiBoson
.
particle interface All subtypes of Boson
have
is_boson(::Boson) = true
+is_anti_particle(::AntiFermion) = true
sourceQEDcore.BiSpinor
— Typestruct BiSpinor <: AbstractDiracVector{ComplexF64}
Concrete type to model a Dirac four-spinor with complex-valued components. These are the elements of an actual spinor space.
sourceQEDcore.Boson
— TypeAbstract base type for bosons as distinct from its anti-particle counterpart AntiBoson
.
particle interface All subtypes of Boson
have
is_boson(::Boson) = true
is_particle(::Boson) = true
-is_anti_particle(::Boson) = false
sourceQEDcore.BosonLike
— TypeAbstract base types for particle species that act like bosons in the sense of particle statistics.
particle interface Every concrete subtype of BosonLike
has is_boson(::BosonLike) = true
.
sourceQEDcore.CenterOfMomentumFrame
— TypeCenterOfMomentumFrame <: AbstractFrameOfReference
TBW
sourceQEDcore.DiracMatrix
— Typestruct DiracMatrix <: AbstractDiracMatrix{ComplexF64}
Concrete type to model Dirac matrices, i.e. matrix representations of linear mappings between two spinor spaces.
sourceQEDcore.Electron
— TypeConcrete type for electrons as a particle species. Mostly used for dispatch.
julia> using QEDcore
+is_anti_particle(::Boson) = false
sourceQEDcore.BosonLike
— TypeAbstract base types for particle species that act like bosons in the sense of particle statistics.
particle interface Every concrete subtype of BosonLike
has is_boson(::BosonLike) = true
.
sourceQEDcore.CenterOfMomentumFrame
— TypeCenterOfMomentumFrame <: AbstractFrameOfReference
TBW
sourceQEDcore.DiracMatrix
— Typestruct DiracMatrix <: AbstractDiracMatrix{ComplexF64}
Concrete type to model Dirac matrices, i.e. matrix representations of linear mappings between two spinor spaces.
sourceQEDcore.Electron
— TypeConcrete type for electrons as a particle species. Mostly used for dispatch.
julia> using QEDcore
julia> Electron()
electron
particle interface Besides being a subtype of Fermion
, objects of type Electron
have
mass(::Electron) = 1.0
-charge(::Electron) = -1.0
sourceQEDcore.ElectronRestFrame
— TypeElectronRestFrame <: AbstractFrameOfReference
TBW
sourceQEDcore.Fermion
— TypeAbstract base type for fermions as distinct from AntiFermion
s.
particle interface All subtypes of Fermion
have
is_fermion(::Fermion) = true
+charge(::Electron) = -1.0
sourceQEDcore.ElectronRestFrame
— TypeElectronRestFrame <: AbstractFrameOfReference
TBW
sourceQEDcore.Fermion
— TypeAbstract base type for fermions as distinct from AntiFermion
s.
particle interface All subtypes of Fermion
have
is_fermion(::Fermion) = true
is_particle(::Fermion) = true
-is_anti_particle(::Fermion) = false
sourceQEDcore.FermionLike
— TypeAbstract base types for particle species that act like fermions in the sense of particle statistics.
particle interface Every concrete subtype of FermionLike
has is_fermion(::FermionLike) = true
.
sourceQEDcore.InPhaseSpacePoint
— TypeInPhaseSpacePoint
A partial type specialization on PhaseSpacePoint
which can be used for dispatch in functions requiring only the in channel of the phase space to exist, for example implementations of _incident_flux
. No restrictions are imposed on the out-channel, which may or may not exist.
See also: OutPhaseSpacePoint
sourceQEDcore.InPhaseSpacePoint
— MethodInPhaseSpacePoint(
+is_anti_particle(::Fermion) = false
QEDcore.FermionLike
— TypeAbstract base types for particle species that act like fermions in the sense of particle statistics.
Every concrete subtype of FermionLike
has is_fermion(::FermionLike) = true
.
QEDcore.InPhaseSpacePoint
— TypeInPhaseSpacePoint
A partial type specialization on PhaseSpacePoint
which can be used for dispatch in functions requiring only the in channel of the phase space to exist, for example implementations of _incident_flux
. No restrictions are imposed on the out-channel, which may or may not exist.
See also: OutPhaseSpacePoint
QEDcore.InPhaseSpacePoint
— MethodInPhaseSpacePoint(
proc::AbstractProcessDefinition,
model::AbstractModelDefinition,
ps_def::AbstractPhasespaceDefinition,
in_momenta::NTuple{N,AbstractFourMomentum},
-)
Construct a PhaseSpacePoint
with only input particles from given momenta. The result will be <: InPhaseSpacePoint
but not <: OutPhaseSpacePoint
.
QEDcore.InPhaseSpacePoint
— MethodInPhaseSpacePoint(
+)
Construct a PhaseSpacePoint
with only input particles from given momenta. The result will be <: InPhaseSpacePoint
but not <: OutPhaseSpacePoint
.
QEDcore.InPhaseSpacePoint
— MethodInPhaseSpacePoint(
proc::AbstractProcessDefinition,
model::AbstractModelDefinition,
ps_def::AbstractPhasespaceDefinition,
in_ps::Tuple{ParticleStateful},
)
-Construct a [`PhaseSpacePoint`](@ref) with only input particles from [`ParticleStateful`](@ref)s. The result will be `<: InPhaseSpacePoint` but **not** `<: OutPhaseSpacePoint`.
QEDcore.InPhaseSpacePoint
— MethodInPhaseSpacePoint(
+Construct a [`PhaseSpacePoint`](@ref) with only input particles from [`ParticleStateful`](@ref)s. The result will be `<: InPhaseSpacePoint` but **not** `<: OutPhaseSpacePoint`.
QEDcore.InPhaseSpacePoint
— MethodInPhaseSpacePoint(
proc::AbstractProcessDefinition,
model::AbstractModelDefinition,
ps_def::AbstractPhasespaceDefinition,
in_coords::NTuple{N,Real},
-)
Construct a PhaseSpacePoint
from given coordinates by using the _generate_momenta
interface. The result will be <: InPhaseSpacePoint
but not <: OutPhaseSpacePoint
.
A similar function for OutPhaseSpacePoint
does not exist from coordinates, only a full PhaseSpacePoint
.
QEDcore.MFourMomentum
— Typemutable struct MFourMomentum <: AbstractFourMomentum
Builds a mutable LorentzVector with real components used to statically model the four-momentum of a particle or field.
Fields
E::Float64
: energy componentpx::Float64
:x
componentpy::Float64
:y
componentpz::Float64
:z
component
QEDcore.MFourMomentum
— MethodMFourMomentum(t, x, y, z)
+)
Construct a PhaseSpacePoint
from given coordinates by using the _generate_momenta
interface. The result will be <: InPhaseSpacePoint
but not <: OutPhaseSpacePoint
.
A similar function for OutPhaseSpacePoint
does not exist from coordinates, only a full PhaseSpacePoint
.
QEDcore.MFourMomentum
— Typemutable struct MFourMomentum <: AbstractFourMomentum
Builds a mutable LorentzVector with real components used to statically model the four-momentum of a particle or field.
Fields
E::Float64
: energy componentpx::Float64
:x
componentpy::Float64
:y
componentpz::Float64
:z
component
QEDcore.MFourMomentum
— MethodMFourMomentum(t, x, y, z)
The interface transforms each number-like input to float64:
MFourMomentum(
t::Union{Integer, Irrational, Rational},
x::Union{Integer, Irrational, Rational},
y::Union{Integer, Irrational, Rational},
z::Union{Integer, Irrational, Rational}
) -> MFourMomentum
-
QEDcore.MLorentzVector
— Typemutable struct MLorentzVector{T} <: AbstractLorentzVector{T}
Concrete implementation of a generic mutable Lorentz vector. Each manipulation of an concrete implementation which is not self-contained (i.e. produces the same Lorentz vector type) will result in this type.
Fields
t::Any
:t
componentx::Any
:x
componenty::Any
:y
componentz::Any
:z
component
QEDcore.MajoranaBoson
— TypeAbstract base type for majorana-bosons, i.e. bosons which are their own anti-particles.
All subtypes of MajoranaBoson
have
is_boson(::MajoranaBoson) = true
+
QEDcore.MLorentzVector
— Typemutable struct MLorentzVector{T} <: AbstractLorentzVector{T}
Concrete implementation of a generic mutable Lorentz vector. Each manipulation of an concrete implementation which is not self-contained (i.e. produces the same Lorentz vector type) will result in this type.
Fields
t::Any
:t
componentx::Any
:x
componenty::Any
:y
componentz::Any
:z
component
QEDcore.MajoranaBoson
— TypeAbstract base type for majorana-bosons, i.e. bosons which are their own anti-particles.
All subtypes of MajoranaBoson
have
is_boson(::MajoranaBoson) = true
is_particle(::MajoranaBoson) = true
-is_anti_particle(::MajoranaBoson) = true
QEDcore.MajoranaFermion
— TypeAbstract base type for majorana-fermions, i.e. fermions which are their own anti-particles.
All subtypes of MajoranaFermion
have
is_fermion(::MajoranaFermion) = true
+is_anti_particle(::MajoranaBoson) = true
QEDcore.MajoranaFermion
— TypeAbstract base type for majorana-fermions, i.e. fermions which are their own anti-particles.
All subtypes of MajoranaFermion
have
is_fermion(::MajoranaFermion) = true
is_particle(::MajoranaFermion) = true
-is_anti_particle(::MajoranaFermion) = true
QEDcore.OutPhaseSpacePoint
— TypeOutPhaseSpacePoint
A partial type specialization on PhaseSpacePoint
which can be used for dispatch in functions requiring only the out channel of the phase space to exist. No restrictions are imposed on the in-channel, which may or may not exist.
See also: InPhaseSpacePoint
QEDcore.OutPhaseSpacePoint
— MethodOutPhaseSpacePoint(
+is_anti_particle(::MajoranaFermion) = true
QEDcore.OutPhaseSpacePoint
— TypeOutPhaseSpacePoint
A partial type specialization on PhaseSpacePoint
which can be used for dispatch in functions requiring only the out channel of the phase space to exist. No restrictions are imposed on the in-channel, which may or may not exist.
See also: InPhaseSpacePoint
QEDcore.OutPhaseSpacePoint
— MethodOutPhaseSpacePoint(
proc::AbstractProcessDefinition,
model::AbstractModelDefinition,
ps_def::AbstractPhasespaceDefinition,
out_momenta::NTuple{N,AbstractFourMomentum},
-)
Construct a PhaseSpacePoint
with only output particles from given momenta. The result will be <: OutPhaseSpacePoint
but not <: InPhaseSpacePoint
.
QEDcore.OutPhaseSpacePoint
— MethodOutPhaseSpacePoint(
+)
Construct a PhaseSpacePoint
with only output particles from given momenta. The result will be <: OutPhaseSpacePoint
but not <: InPhaseSpacePoint
.
QEDcore.OutPhaseSpacePoint
— MethodOutPhaseSpacePoint(
proc::AbstractProcessDefinition,
model::AbstractModelDefinition,
ps_def::AbstractPhasespaceDefinition,
out_ps::Tuple{ParticleStateful},
-)
Construct a PhaseSpacePoint
with only output particles from ParticleStateful
s. The result will be <: OutPhaseSpacePoint
but not <: InPhaseSpacePoint
.
QEDcore.ParticleStateful
— TypeParticleStateful <: AbstractParticle
Representation of a particle with a state. It has four fields:
dir::ParticleDirection
: The direction of the particle,Incoming()
orOutgoing()
.species::AbstractParticleType
: The species of the particle,Electron()
,Positron()
etc.mom::AbstractFourMomentum
: The momentum of the particle.
Overloads for is_fermion
, is_boson
, is_particle
, is_anti_particle
, is_incoming
, is_outgoing
, mass
, and charge
are provided, delegating the call to the correct field and thus implementing the AbstractParticle
interface.
julia> using QEDcore
+)
Construct a PhaseSpacePoint
with only output particles from ParticleStateful
s. The result will be <: OutPhaseSpacePoint
but not <: InPhaseSpacePoint
.
QEDcore.ParticleStateful
— TypeParticleStateful <: AbstractParticle
Representation of a particle with a state. It has four fields:
dir::ParticleDirection
: The direction of the particle,Incoming()
orOutgoing()
.species::AbstractParticleType
: The species of the particle,Electron()
,Positron()
etc.mom::AbstractFourMomentum
: The momentum of the particle.
Overloads for is_fermion
, is_boson
, is_particle
, is_anti_particle
, is_incoming
, is_outgoing
, mass
, and charge
are provided, delegating the call to the correct field and thus implementing the AbstractParticle
interface.
julia> using QEDcore
julia> ParticleStateful(Incoming(), Electron(), SFourMomentum(1, 0, 0, 0))
ParticleStateful: incoming electron
@@ -57,8 +57,8 @@
julia> ParticleStateful(Outgoing(), Photon(), SFourMomentum(1, 0, 0, 0))
ParticleStateful: outgoing photon
- momentum: [1.0, 0.0, 0.0, 0.0]
QEDcore.ParticleStateful
— MethodParticleStateful{DIR, SPECIES}(mom::AbstractFourMomentum)
-ParticleStateful{DIR, SPECIES, EL}(mom::EL)
Construct a ParticleStateful
from the given momentum on a fully or partially specified type.
QEDcore.PhaseSpacePoint
— TypePhaseSpacePoint
Representation of a point in the phase space of a process. Contains the process (AbstractProcessDefinition
), the model (AbstractModelDefinition
), the phase space definition (AbstractPhasespaceDefinition
), and stateful incoming and outgoing particles (ParticleStateful
).
The legality of the combination of the given process and the incoming and outgoing particles is checked on construction. If the numbers of particles mismatch, the types of particles mismatch (note that order is important), or incoming particles have an Outgoing
direction, an error is thrown.
julia> using QEDcore; using QEDprocesses
+ momentum: [1.0, 0.0, 0.0, 0.0]
QEDcore.ParticleStateful
— MethodParticleStateful{DIR, SPECIES}(mom::AbstractFourMomentum)
+ParticleStateful{DIR, SPECIES, EL}(mom::EL)
Construct a ParticleStateful
from the given momentum on a fully or partially specified type.
QEDcore.PhaseSpacePoint
— TypePhaseSpacePoint
Representation of a point in the phase space of a process. Contains the process (AbstractProcessDefinition
), the model (AbstractModelDefinition
), the phase space definition (AbstractPhasespaceDefinition
), and stateful incoming and outgoing particles (ParticleStateful
).
The legality of the combination of the given process and the incoming and outgoing particles is checked on construction. If the numbers of particles mismatch, the types of particles mismatch (note that order is important), or incoming particles have an Outgoing
direction, an error is thrown.
julia> using QEDcore; using QEDprocesses
julia> PhaseSpacePoint(
Compton(),
@@ -82,34 +82,34 @@
-> incoming photon: [1.0, 0.0, 0.0, 0.0]
outgoing particles:
-> outgoing electron: [1.0, 0.0, 0.0, 0.0]
- -> outgoing photon: [1.0, 0.0, 0.0, 0.0]
PhaseSpacePoint
s can be constructed with only one of their in- or out-channel set. For this, see the special constructors InPhaseSpacePoint
and OutPhaseSpacePoint
. The InPhaseSpacePoint
and OutPhaseSpacePoint
type definitions can be used to dispatch on such PhaseSpacePoint
s. Note that a full PhaseSpacePoint
containing both its in- and out-channel matches both, .i.e. psp isa InPhaseSpacePoint
and psp isa OutPhaseSpacePoint
both evaluate to true if psp contains both channels. A completely empty PhaseSpacePoint
is not allowed.
QEDcore.PhaseSpacePoint
— MethodPhaseSpacePoint(
+ -> outgoing photon: [1.0, 0.0, 0.0, 0.0]
PhaseSpacePoint
s can be constructed with only one of their in- or out-channel set. For this, see the special constructors InPhaseSpacePoint
and OutPhaseSpacePoint
. The InPhaseSpacePoint
and OutPhaseSpacePoint
type definitions can be used to dispatch on such PhaseSpacePoint
s. Note that a full PhaseSpacePoint
containing both its in- and out-channel matches both, .i.e. psp isa InPhaseSpacePoint
and psp isa OutPhaseSpacePoint
both evaluate to true if psp contains both channels. A completely empty PhaseSpacePoint
is not allowed.
QEDcore.PhaseSpacePoint
— MethodPhaseSpacePoint(
proc::AbstractProcessDefinition,
model::AbstractModelDefinition,
ps_def::AbstractPhasespaceDefinition,
in_momenta::NTuple{N,AbstractFourMomentum},
out_momenta::NTuple{M,AbstractFourMomentum},
-)
Construct the phase space point from given momenta of incoming and outgoing particles regarding a given process.
QEDcore.PhaseSpacePoint
— MethodPhaseSpacePoint(
+)
Construct the phase space point from given momenta of incoming and outgoing particles regarding a given process.
QEDcore.PhaseSpacePoint
— MethodPhaseSpacePoint(
proc::AbstractProcessDefinition,
model::AbstractModelDefinition,
ps_def::AbstractPhasespaceDefinition,
in_coords::NTuple{N,Real},
out_coords::NTuple{M,Real},
-)
Construct a PhaseSpacePoint
from given coordinates by using the _generate_momenta
interface.
QEDcore.PhasespaceDefinition
— TypePhasespaceDefinition(coord_sys::AbstractCoordinateSystem, frame::AbstractFrameOfReference)
Convenient type to dispatch on coordiante systems and frames of reference. Combines a AbstractCoordinateSystem
with a AbstractFrameOfReference
.
QEDcore.Photon
— TypeConcrete type for the photons as a particle species. Mostly used for dispatch.
julia> using QEDcore
+)
Construct a PhaseSpacePoint
from given coordinates by using the _generate_momenta
interface.
QEDcore.PhasespaceDefinition
— TypePhasespaceDefinition(coord_sys::AbstractCoordinateSystem, frame::AbstractFrameOfReference)
Convenient type to dispatch on coordiante systems and frames of reference. Combines a AbstractCoordinateSystem
with a AbstractFrameOfReference
.
QEDcore.Photon
— TypeConcrete type for the photons as a particle species. Mostly used for dispatch.
julia> using QEDcore
julia> Photon()
photon
Besides being a subtype of MajoranaBoson
, Photon
has
mass(::Photon) = 0.0
-charge(::Photon) = 0.0
QEDcore.Positron
— TypeConcrete type for positrons as a particle species. Mostly used for dispatch.
julia> using QEDcore
+charge(::Photon) = 0.0