phasespace#
import ampform.dynamics.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:
ProtocolProtocol that is used by
EnergyDependentWidth.Use this
Protocolwhen defining other implementations of a phase space factor. Some implementations:Even
BreakupMomentumSquaredandchew_mandelstam_s_wave()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 PhaseSpaceFactor(s, m1, m2, name, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprStandard 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:
ExprPhase space factor square root over the absolute value.
As opposed to
PhaseSpaceFactor, this takes theAbsvalue ofBreakupMomentum.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:
ExprPhase-space factor with
ComplexSqrt.Same as
PhaseSpaceFactor, but using aComplexSqrtthat 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:
ExprPhase space factor using
chew_mandelstam_s_wave().This
PhaseSpaceFactorprovides an analytic continuation for decay products with both equal and unequal masses (compareEqualMassPhaseSpaceFactor).(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:
ExprPhase space factor using
ChewMandelstamIntegralfor \(L=1\).This
PhaseSpaceFactoruses the numerical dispersion integral implemented inChewMandelstamIntegral. 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 withnumpy.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
- class ChewMandelstamIntegral(s, m1, m2, L, s_prime, epsilon, meson_radius, name, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprDispersion 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:
ExprAnalytic 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).