Reference

Contents

Index

ThreeBodyDecays.ThreeBodyDecayMethod

ThreeBodyDecay(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]))
source
ThreeBodyDecays.ThreeBodyDecayMethod

ThreeBodyDecay(; 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 of couplings and names.
  • couplings: An array of coupling constants for each chain in the decay. The length of this array should match the lengths of chains and names.
  • names: An array of names for each chain, or names of resonances in the decay. The length of this array should match the lengths of chains and couplings.

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"])
source
Base.vcatMethod
Base.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)
source
ThreeBodyDecays.DecayChainLSMethod

DecayChainLS(; 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

source
ThreeBodyDecays.DecayChainsLSMethod

DecayChainsLS(; 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

source
ThreeBodyDecays.InvariantsMethod

Invariants(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.

source
ThreeBodyDecays.cosθijMethod
cosθ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.

source
ThreeBodyDecays.phase_space_integrandMethod
phase_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
source
ThreeBodyDecays.polardalitz2invariantsMethod

polardalitz2invariants(θ, 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.

source
ThreeBodyDecays.projection_integrandMethod
projection_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
source
ThreeBodyDecays.wrFunction
wr(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, and
  • reference_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).

source
ThreeBodyDecays.y2σsMethod
y2σ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 numbers
  • ms : masses of the system as a MassTuple, see ThreeBodyMasses.
  • 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`

source
ThreeBodyDecays.σiofkMethod
σ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)

source
ThreeBodyDecays.σjofkMethod
σ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)

source