phasespace#

Different parametrizations of phase space factors.

Phase space factors are computed by integrating over the phase space element given by Equation (49.12) in PDG2021, §Kinematics, p.2. See also Equation (50.9) on PDG2021, §Resonances, p.6. This integral is not always easy to solve, which leads to different parametrizations.

This module provides several parametrizations. They all comply with the PhaseSpaceFactorProtocol, so that they can be used in parametrizations like EnergyDependentWidth.

class PhaseSpaceFactorProtocol(*args, **kwargs)[source]#

Bases: Protocol

Protocol that is used by EnergyDependentWidth.

Follow this Protocol when defining other implementations of a phase space. Even functions like BreakupMomentum comply with this protocol, but are technically speaking not phase space factors.

__call__(s, m1, m2) → Expr[source]#

Expected signature.

Parameters:
  • s – Mandelstam variable \(s\). Commonly, this is just \(s = m_R^2\), with \(m_R\) the invariant mass of decaying particle \(R\).

  • m1 – Mass of decay product \(a\).

  • m2 – Mass of decay product \(b\).

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

Bases: Expr

Break-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: Expr

Two-body break-up momentum with a Källén function.

This version of the BreakupMomentum represents the numerator using the Kallen function. This is common practice in literature (e.g. PDG2024, §Resonances, p.7), but results in a more complicated cut and worse numerical performance than BreakupMomentum.

(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}\]
class BreakupMomentumSplitSqrt(s, m1, m2, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Two-body break-up momentum with cut structure.

This version of the BreakupMomentum represents the numerator as two separate square roots. This results in a cleaner cut structure at the cost of slightly worse numerical performance than BreakupMomentum.

(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: Expr

Two-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 by ComplexSqrt, 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}\]
class BreakupMomentumSquared(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Squared 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 ComplexSqrt instead of the standard sqrt().

(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 PhaseSpaceFactor(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Standard phase-space factor, using a definition consistent with BreakupMomentum.

See PDG2024, §Resonances, p.6, Equation (50.11). We ignore the factor \(\frac{1}{16\pi}\) as done in [Chung, 1995], p.5.

Similarly to BreakupMomentum, this class represents the numerator as a single square root for better numerical performance. This comes at the cost of a more complicated cut structure when the function is continued to the complex plane.

Alternative implementations:

(6)#\[\begin{split} \begin{aligned} \rho\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)}}{s} \\ \end{aligned}\end{split}\]
class PhaseSpaceFactorSWave(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Phase space factor using chew_mandelstam_s_wave().

This PhaseSpaceFactor provides an analytic continuation for decay products with both equal and unequal masses (compare EqualMassPhaseSpaceFactor).

(7)#\[\begin{split} \begin{aligned} \rho^\mathrm{CM}\left(s\right) \;&=\; - \frac{i \left(\frac{2 q^\mathrm{c}\left(s\right)}{\sqrt{s}} \log{\left(\frac{m_{1}^{2} + m_{2}^{2} + 2 \sqrt{s} q^\mathrm{c}\left(s\right) - s}{2 m_{1} m_{2}} \right)} - \left(m_{1}^{2} - m_{2}^{2}\right) \left(- \frac{1}{\left(m_{1} + m_{2}\right)^{2}} + \frac{1}{s}\right) \log{\left(\frac{m_{1}}{m_{2}} \right)}\right)}{\pi} \\ \end{aligned}\end{split}\]
chew_mandelstam_s_wave(s, m1, m2)[source]#

Chew-Mandelstam function for \(S\)-waves (no angular momentum).

(8)#\[\frac{\frac{2 q^\mathrm{c}\left(s\right)}{\sqrt{s}} \log{\left(\frac{m_{a}^{2} + m_{b}^{2} + 2 \sqrt{s} q^\mathrm{c}\left(s\right) - s}{2 m_{a} m_{b}} \right)} - \left(m_{a}^{2} - m_{b}^{2}\right) \left(- \frac{1}{\left(m_{a} + m_{b}\right)^{2}} + \frac{1}{s}\right) \log{\left(\frac{m_{a}}{m_{b}} \right)}}{\pi}\]

with \(q^2(s)\) defined as (5).

See also

Chew-Mandelstam

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

Bases: Expr

Phase space factor with square root over the absolute value.

As opposed to PhaseSpaceFactor, this takes the square root of the Abs value of BreakupMomentumSquared.

This version of the phase space factor is often denoted as \(\hat{\rho}\) and is used in EqualMassPhaseSpaceFactor.

(9)#\[\begin{split} \begin{aligned} \hat{\rho}\left(s\right) \;&=\; \frac{2 \sqrt{\left|{q^2\left(s\right)}\right|}}{\sqrt{s}} \\ \end{aligned}\end{split}\]

with \(q^2(s)\) defined as (5).

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

Bases: Expr

Phase-space factor that is the equivalent of BreakupMomentumKallen.

(10)#\[\begin{split} \begin{aligned} \rho\left(s\right) \;&=\; \frac{\sqrt{\lambda\left(s, m_{1}^{2}, m_{2}^{2}\right)}}{s} \\ \end{aligned}\end{split}\]
class PhaseSpaceFactorSplitSqrt(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Phase-space factor that is the equivalent of BreakupMomentumSplitSqrt.

This version of the PhaseSpaceFactor represents the numerator as two separate square roots. This results in a cleaner cut structure at the cost of slightly worse numerical performance than PhaseSpaceFactor.

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

Bases: Expr

Phase-space factor with ComplexSqrt.

Same as PhaseSpaceFactorSplitSqrt, but using a ComplexSqrt that does have defined behavior for defined for negative input values along the real axis.

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

with \(q^2(s)\) defined as (5).

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

Bases: Expr

Analytic continuation for the PhaseSpaceFactor.

See PDG2018, §Resonances, p.9 and Analytic continuation.

Warning: The PDG specifically derives this formula for a two-body decay with equal masses.

(13)#\[\begin{split} \begin{aligned} \rho^\mathrm{eq}\left(s\right) \;&=\; \begin{cases} \frac{i \log{\left(\left|{\frac{\hat{\rho}\left(s\right) + 1}{\hat{\rho}\left(s\right) - 1}}\right| \right)} \hat{\rho}\left(s\right)}{\pi} & \text{for}\: s < 0 \\\frac{i \log{\left(\left|{\frac{\hat{\rho}\left(s\right) + 1}{\hat{\rho}\left(s\right) - 1}}\right| \right)} \hat{\rho}\left(s\right)}{\pi} + \hat{\rho}\left(s\right) & \text{for}\: s > \left(m_{a} + m_{b}\right)^{2} \\\frac{2 i \operatorname{atan}{\left(\frac{1}{\hat{\rho}\left(s\right)} \right)} \hat{\rho}\left(s\right)}{\pi} & \text{otherwise} \end{cases} \\ \end{aligned}\end{split}\]

with \(\hat{\rho}\left(s\right)\) defined by PhaseSpaceFactorAbs (9).