phasespace#
Functions for determining phase space boundaries.
See also
- class BreakupMomentum(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprBreak-up momentum of a two-body decay.
For a two-body decay \(R \to 12\), the break-up momentum is the absolute value of the momentum of both \(1\) and \(2\) in the rest frame of \(R\). See Equation (50.7) on PDG2024, §Resonances, p.7.
In AmpForm’s standard implementation, the numerator is represented as a single square root. This results in better computational performance, as the expression tree has fewer computational nodes, but comes at the cost of a more complicated cut structure when the function is continued to the complex plane. The square root itself is defined as the standard
sympy.sqrt.Alternative implementations:
(1)#\[\begin{split} \begin{aligned} q\left(s\right) \;&=\; \frac{\sqrt{\left(s - \left(m_{1} - m_{2}\right)^{2}\right) \left(s - \left(m_{1} + m_{2}\right)^{2}\right)}}{2 \sqrt{s}} \\ \end{aligned}\end{split}\]
- class BreakupMomentumKallen(s, m1, m2, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprTwo-body break-up momentum with a Källén function.
This version of the
BreakupMomentumrepresents the numerator using theKallenfunction. This is common practice in literature (e.g. PDG2024, §Resonances, p.7), but results in a more complicated cut and worse numerical performance thanBreakupMomentum.(2)#\[\begin{split} \begin{aligned} q\left(s\right) \;&=\; \frac{\sqrt{\frac{\lambda\left(s, m_{1}^{2}, m_{2}^{2}\right)}{s}}}{2} \\ \end{aligned}\end{split}\]with \(\lambda\left(x, y, z\right)\) defined by
Kallen.
- class BreakupMomentumSplitSqrt(s, m1, m2, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprTwo-body break-up momentum with cut structure.
This version of the
BreakupMomentumrepresents the numerator as two separate square roots. This results in a cleaner cut structure at the cost of slightly worse numerical performance thanBreakupMomentum.(3)#\[\begin{split} \begin{aligned} q\left(s\right) \;&=\; \frac{\sqrt{s - \left(m_{1} - m_{2}\right)^{2}} \sqrt{s - \left(m_{1} + m_{2}\right)^{2}}}{2 \sqrt{s}} \\ \end{aligned}\end{split}\]
- class BreakupMomentumComplex(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprTwo-body break-up momentum with a square root that is defined on the real axis.
In this version of the
BreakupMomentumSplitSqrt, the square roots are replaced byComplexSqrt, which has a defined behavior for negative input values, so that it can be evaluated on the entire real axis.(4)#\[\begin{split} \begin{aligned} q^\mathrm{c}\left(s\right) \;&=\; \frac{\sqrt[\mathrm{c}]{s - \left(m_{1} - m_{2}\right)^{2}} \sqrt[\mathrm{c}]{s - \left(m_{1} + m_{2}\right)^{2}}}{2 \sqrt{s}} \\ \end{aligned}\end{split}\]with \(\sqrt[\mathrm{c}]{x}\) defined by
ComplexSqrt.
- class BreakupMomentumSquared(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprSquared value of the two-body
BreakupMomentum.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 \(m_1,m_2\). In this case, one may want to use
ComplexSqrtinstead of the standardsqrt().(5)#\[\begin{split} \begin{aligned} q^2\left(s\right) \;&=\; \frac{\left(s - \left(m_{1} - m_{2}\right)^{2}\right) \left(s - \left(m_{1} + m_{2}\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:
ExprKibble function for determining the phase space region.
(6)#\[\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 (7).
- class Kallen(x, y, z, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprKällén function, used for computing break-up momenta.
(7)#\[\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}\]See also
- is_within_phasespace(sigma1, sigma2, m0, m1, m2, m3, outside_value=nan) Piecewise[source]#
Determine whether a set of masses lie within phase space.
(8)#\[\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 (6).