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.

Use this Protocol when defining other implementations of a phase space factor. Some implementations:

Even BreakupMomentumSquared and chew_mandelstam_s_wave() comply with this protocol, but are technically speaking not phase space factors.

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

Expected signature.

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

Bases: Expr

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

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

(1)#\[\begin{split} \begin{aligned} \rho\left(s\right) \;&=\; \frac{\sqrt{s - \left(m_{a} - m_{b}\right)^{2}} \sqrt{s - \left(m_{a} + m_{b}\right)^{2}}}{s} \\ \end{aligned}\end{split}\]

with \(q^2\) defined as (3).

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

Bases: Expr

Phase space factor square root over the absolute value.

As opposed to PhaseSpaceFactor, this takes the Abs value of BreakupMomentum.

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

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

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

Bases: Expr

Phase-space factor with ComplexSqrt.

Same as PhaseSpaceFactor, but using a ComplexSqrt that does have defined behavior for defined for negative input values.

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

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

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).

(4)#\[\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_{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)}\right)}{\pi} \\ \end{aligned}\end{split}\]
class PhaseSpaceFactorPWave(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Phase space factor using ChewMandelstamIntegral for \(L=1\).

This PhaseSpaceFactor uses the numerical dispersion integral implemented in ChewMandelstamIntegral. As such, you have to be careful when lambdifying this function and evaluating this over an array. In many cases, you want to wrap the resulting lambdified numerical function with numpy.vectorize().

>>> import numpy as np
>>> from ampform.dynamics.phasespace import PhaseSpaceFactorPWave
>>> s, m1, m2 = sp.symbols("s m_1 m_2")
>>> rho_expr = PhaseSpaceFactorPWave(s, m1, m2)
>>> rho_func = sp.lambdify((s, m1, m2), rho_expr.doit())
>>> rho_func = np.vectorize(rho_func)
>>> s_values = np.linspace(0.1, 4.0, num=4)
>>> rho_func(s_values, 0.14, 0.98).real
array([-4.08315014e-07,  8.05561163e-03,  2.65015019e-01,  5.43083429e-01])
chew_mandelstam_s_wave(s, m1, m2)[source]#

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

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

See also

Chew-Mandelstam

class ChewMandelstamIntegral(s, m1, m2, L, s_prime, epsilon, meson_radius, name, *args, evaluate: bool = False, **kwargs)[source]#

Bases: Expr

Dispersion integral for obtaining the analytic phase space factor for angular momenta L>0.

Parameters:
  • s – Mandelstam variable s.

  • m1 – Mass of particle 1.

  • m2 – Mass of particle 2.

  • L – Angular momentum.

  • meson_radius – Meson radius, default is 1 (optional).

  • s_prime – Integration variable defaults to ‘x’.

  • epsilon – Small imaginary part default is positive epsilon.

(6)#\[\begin{split} \begin{aligned} \Sigma_\ell\left(s\right) \;&=\; \frac{s - \left(m_{a} + m_{b}\right)^{2}}{\pi} \int\limits_{\left(m_{a} + m_{b}\right)^{2}}^{\infty} \frac{\mathcal{F}_{\ell}\left(x, m_{a}, m_{b}\right)^{2} \rho\left(x\right)}{\left(x - \left(m_{a} + m_{b}\right)^{2}\right) \left(- i \epsilon - s + x\right)}\, dx \\ \end{aligned}\end{split}\]
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.

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