phasespace#

Functions for determining phase space boundaries.

See also

Kinematics

class BreakupMomentum(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Two-body break-up momentum.

For a two-body decay \(R \to ab\), the break-up momentum is the absolute value of the momentum of both \(a\) and \(b\) in the rest frame of \(R\). See Equation (49.17) on PDG2021, §Kinematics, p.3, as well as Equation (50.5) on PDG2021, §Resonances, p.5.

The numerator is represented as two square roots, as it gives a cleaner cut structure when the function is continued to the complex plane. The square root is defined as the standard sympy.sqrt.

(1)#\[\begin{split} \begin{aligned} q\left(s\right) \;&=\; \frac{\sqrt{s - \left(m_{a} - m_{b}\right)^{2}} \sqrt{s - \left(m_{a} + m_{b}\right)^{2}}}{2 \sqrt{s}} \\ \end{aligned}\end{split}\]
class BreakupMomentumComplex(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Two-body break-up momentum.

For a two-body decay \(R \to ab\), the break-up momentum is the absolute value of the momentum of both \(a\) and \(b\) in the rest frame of \(R\). See Equation (49.17) on PDG2021, §Kinematics, p.3, as well as Equation (50.5) on PDG2021, §Resonances, p.5.

The numerator is represented as two square roots, as it gives a cleaner cut structure when the function is continued to the complex plane. The square root is the same as BreakupMomentum(), but using a ComplexSqrt that does have defined behavior for defined for negative input values.

(2)#\[\begin{split} \begin{aligned} q^\mathrm{c}\left(s\right) \;&=\; \frac{\sqrt[\mathrm{c}]{s - \left(m_{a} - m_{b}\right)^{2}} \sqrt[\mathrm{c}]{s - \left(m_{a} + m_{b}\right)^{2}}}{2 \sqrt{s}} \\ \end{aligned}\end{split}\]
class BreakupMomentumSquared(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Squared value of the two-body break-up momentum.

For a two-body decay \(R \to ab\), the break-up momentum is the absolute value of the momentum of both \(a\) and \(b\) in the rest frame of \(R\). See Equation (49.17) on PDG2021, §Kinematics, p.3, as well as Equation (50.5) on PDG2021, §Resonances, p.5.

It’s up to the caller in which way to take the square root of this break-up momentum, because \(q^2\) can have negative values for non-zero \(m1,m2\). In this case, one may want to use ComplexSqrt instead of the standard sqrt().

(3)#\[\begin{split} \begin{aligned} q^2\left(s\right) \;&=\; \frac{\left(s - \left(m_{a} - m_{b}\right)^{2}\right) \left(s - \left(m_{a} + m_{b}\right)^{2}\right)}{4 s} \\ \end{aligned}\end{split}\]
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.

(4)#\[\begin{split} \begin{aligned} \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{aligned}\end{split}\]

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

class Kallen(x, y, z, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

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

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

Determine whether a set of masses lie within phase space.

(6)#\[\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 (4).

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

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

(7)#\[\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}\).