phasespace#

import ampform.kinematics.phasespace

Functions for determining phase space boundaries.

See also

Kinematics

class Kibble(sigma1, sigma2, sigma3, m0, m1, m2, m3, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Kibble function for determining the phase space region.

(1)#\[\begin{split} \begin{array}{rcl} \phi\left(\sigma_{1}, \sigma_{2}\right) &=& \lambda\left(\lambda\left(\sigma_{2}, m_{2}^{2}, m_{0}^{2}\right), \lambda\left(\sigma_{3}, m_{3}^{2}, m_{0}^{2}\right), \lambda\left(\sigma_{1}, m_{1}^{2}, m_{0}^{2}\right)\right) \\ \end{array}\end{split}\]

with \(\lambda\) defined by (2).

sigma1: Any[source]#
sigma2: Any[source]#
sigma3: Any[source]#
m0: Any[source]#
m1: Any[source]#
m2: Any[source]#
m3: Any[source]#
class Kallen(x, y, z, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Källén function, used for computing break-up momenta.

(2)#\[\begin{split} \begin{array}{rcl} \lambda\left(x, y, z\right) &=& x^{2} - 2 x y - 2 x z + y^{2} - 2 y z + z^{2} \\ \end{array}\end{split}\]
x: Any[source]#
y: Any[source]#
z: Any[source]#
is_within_phasespace(sigma1, sigma2, m0, m1, m2, m3, outside_value=nan) Piecewise[source]#

Determine whether a set of masses lie within phase space.

(3)#\[\begin{split}\begin{cases} 1 & \text{for}\: \phi\left(\sigma_{1}, \sigma_{2}\right) \leq 0 \\\text{NaN} & \text{otherwise} \end{cases}\end{split}\]

with \(\phi\) defined by (1).

compute_third_mandelstam(sigma1, sigma2, m0, m1, m2, m3) Add[source]#

Compute the third Mandelstam variable in a three-body decay.

(4)#\[\sigma_3 = m_{0}^{2} + m_{1}^{2} + m_{2}^{2} + m_{3}^{2} - \sigma_{1} - \sigma_{2}\]

Note that this expression is symmetric in \(\sigma_{1,2,3}\).