Reference
Contents
Index
ThreeBodyDecays.ThreeBodyDecay
ThreeBodyDecays.ThreeBodyDecay
Base.vcat
ThreeBodyDecays.DecayChainLS
ThreeBodyDecays.DecayChainsLS
ThreeBodyDecays.Invariants
ThreeBodyDecays.cosθij
ThreeBodyDecays.phase
ThreeBodyDecays.phase_space_integrand
ThreeBodyDecays.polardalitz2invariants
ThreeBodyDecays.projection_integrand
ThreeBodyDecays.unpolarized_intensity
ThreeBodyDecays.wr
ThreeBodyDecays.y2σs
ThreeBodyDecays.σiofk
ThreeBodyDecays.σjofk
ThreeBodyDecays.ThreeBodyDecay
— MethodThreeBodyDecay(descriptor)
Constructs a ThreeBodyDecay
object using one argument, a descriptor. The descriptor
is a list of pairs, names .=> zip(couplings, chains)
.
Examples
ThreeBodyDecay("K892" .=> zip([1.0, -1.0, 0.2im], [chain1, chain2, chain3]))
ThreeBodyDecays.ThreeBodyDecay
— MethodThreeBodyDecay(; chains, couplings, names)
Constructs a ThreeBodyDecay
object with the given parameters.
Arguments
chains
: An array of chains involved in the decay. The length of this array should match the lengths ofcouplings
andnames
.couplings
: An array of coupling constants for each chain in the decay. The length of this array should match the lengths ofchains
andnames
.names
: An array of names for each chain, or names of resonances in the decay. The length of this array should match the lengths ofchains
andcouplings
.
Returns
- A
ThreeBodyDecay
object with the specified chains, couplings, and names.
Examples
ThreeBodyDecay(
chains=[chain1, chain2, chain3],
couplings=[1.0, -1.0, 0.2im],
names=["L1405", "L1405", "K892"])
Base.vcat
— MethodBase.vcat(models::ThreeBodyDecay...)
Concatenates multiple ThreeBodyDecay
objects into a single ThreeBodyDecay
. Argument is variable number of ThreeBodyDecay
objects.
An example
extended_model = vcat(model[2], model[2:3], model)
ThreeBodyDecays.DecayChainLS
— MethodDecayChainLS(; k, # chain is specified by the spectator index k Xlineshape, # lambda function for lineshape jp, # the spin-parity of the resonance, e.g. jp"1/2-" Ps, # need parities, e.g. Ps=ThreeBodyParities('+','+','+'; P0='+') tbs) # give three-body-system structure
Returns the decay chain with the smallest LS, ls
ThreeBodyDecays.DecayChainsLS
— MethodDecayChainsLS(; k, # chain is specified by the spectator index k Xlineshape, # lambda function for lineshape jp, # the spin-parity of the resonance, e.g. jp"1/2-" Ps, # need parities, e.g. Ps=ThreeBodyParities('+','+','+'; P0='+') tbs) # give three-body-system structure
Returns an array of the decay chains with all possible couplings
ThreeBodyDecays.Invariants
— MethodInvariants(ms::MassTuple{T}; σ1, σ2) Invariants(ms::MassTuple{T}; σ1, σ3) Invariants(ms::MassTuple{T}; σ2, σ3)
Construct a tuple of (σ1, σ2, σ3) from just two invariants and the mass tuple.
ThreeBodyDecays.cosθij
— Methodcosθij(k,σs,msq)
Isobar decay angle for the chain-k, i.e. an angle of between vectors pi and -pk in the (ij) rest frame.
Explicit forms: cosθ23
, cosθ31
, cosθ12
.
ThreeBodyDecays.phase
— MethodPhase for wigner d-functions for clockwise rotations
ThreeBodyDecays.phase_space_integrand
— Methodphase_space_integrand(function_σs, ms; k::Int)
Calculate the phase space integrand for a given function function_σs
, and mass tuple ms
. The key argument k
specifies the mapping: σk->[0,1]
, zk->[0,1]. It returns an integrand function of x, x ∈ [0,1]x[0,1] domain to pass to a numerical integrator.
Arguments
function_σs
: A function that takes a MandelstamTuple and returns a scalar.ms
: A scalar representing the mass.k
: An integer representing the mapping index.
Usage
integrand = phase_space_integrand(function_σs, ms; k)
See also
x2σs
projection_integrand
ThreeBodyDecays.polardalitz2invariants
— Methodpolardalitz2invariants(θ, expansion_point)
For given polar angle θ, it returns an (σ1,σ2,σ3) Tuple of polynomials of radius r(θ) around the expansion point. The polynomial works as a function of the r coordinate.
ThreeBodyDecays.projection_integrand
— Methodprojection_integrand(function_σs, ms, σk; k)
Calculate the projection integrand for a given function function_σs
, mass tuple ms
, and Mandelstam variable σk
, with k
specified by a keyword argument. It returns an integrand function of x, x ∈ [0,1] to pass to a numerical integrator.
Arguments
function_σs
: A function that takes a MandelstamTuple and returns a scalar.ms
: A scalar representing the mass.σk
: A scalar representing the Mandelstam variable.k
: A scalar representing the momentum transfer (optional).
Usage
plot(4.2, 4.6) do e1
I = Base.Fix1(unpolarized_intensity, model)
integrand = projection_integrand(I, masses(model), e1^2; k = 3)
e1 * quadgk(integrand, 0, 1)[1]
end
ThreeBodyDecays.unpolarized_intensity
— Methodunpolarized_intensity(model::ThreeBodyDecay, σs; kw...)
Computes squared amplitude summed over spin projections.
ThreeBodyDecays.wr
— Functionwr(system_a, reference_b, particle_c=0)
Create a WignerRotation object of the right type based on provided indices. The daughter particles are numbered 1,2,3, the mother particle is 0.
system_a
tells which isobar is considered, andreference_b
tell which system is used as a reference.
For system_a
and reference_b
the spectator notations are used, i.e. 1 for the system (2,3), 2 for the system (3,1), and 3 for the system (1,2).
ThreeBodyDecays.y2σs
— Methody2σs(y, ms::MassTuple; k::Int = last(findmin(Tuple(ms))))
Maps a pair of variables to the plain of squared masses using a linear transformation. The values [0,1] correspond to the physical limits of the mass squared variables. The physical value
Arguments
y
: a pair of numbersms
: masses of the system as aMassTuple
, seeThreeBodyMasses
.k
: the index for which the variable is not generated. By default, the function picks the coordinates
where the Dalitz plot has the closest shape to the squared fitting box.
Returns
- an instance of
MandelstamTuple
with the squared masses.
Example
The phase space sample with 100 points can be generated as follows: julia data = let N = 100 # map random variables to dalitz _data = mapslices(rand(N,2); dims=2) do xy y2σs(xy, ms) end[:,1] # select physical filter!(_data) do σs isphysical(σs, ms) end _data end
`
ThreeBodyDecays.σiofk
— Methodσiofk(k,z,σj,msq)
Computes invariant σi = (p0 - pi)² from the scattering angle z=cosθij in the rest from of (i,j), given the mass of the system m(i,j)² = σk
Explicit forms: σ3of2
, σ1of3
, σ2of1
.
See also σjofk(z,σk,msq; k)
ThreeBodyDecays.σjofk
— Methodσjofk(z,σi,msq; k::Int)
Computes invariant σj = (p0-pj)² from the scattering angle z=cosθij in the rest from of (i,j), given the mass of the system m(i,j)² = σk
Explicit forms: σ3of1
, σ1of2
, σ2of3
.
See also σiofk(z,σj,msq; k)