form_factor#
import ampform.dynamics.form_factor
Implementations of the form factor, or barrier factor.
- class FormFactor(s, m1, m2, angular_momentum, meson_radius, normalize, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprFormulate a Blatt–Weisskopf form factor.
Returns the
sqrtof aBlattWeisskopfSquaredwith \(z = q^2 d^2\), where \(q^2\) is theBreakupMomentumSquaredand \(d\) is the meson radius. Withnormalize=False, this is the production process factor \(n_a\) from PDG2026, Eq. (50.33), with \(d = 1/q_0\). The default normalized form factor \(\hat{\mathcal{F}}_L\) differs from \(n_a\) by the constant \(\left|h_L^{(1)}(1)\right|\). This constant cancels in ratios, such as inEnergyDependentWidth, but not when the form factor is used as a vertex factor.(1)#\[\begin{split} \begin{aligned} \hat{\mathcal{F}}_{L}\left(s, m_{a}, m_{b}\right) \;&=\; \sqrt{\hat{B}_{L}^2\left(d^{2} q^2\left(s\right)\right)} \\ \end{aligned}\end{split}\]
- class BlattWeisskopfSquared(z, angular_momentum, normalize, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprNormalized Blatt–Weisskopf function \(\hat{B}_L^2(z)\).
- Parameters:
z – Argument of the Blatt–Weisskopf function. A usual choice is \(z = (d q)^2\) with \(d\) the impact parameter and \(q\) the breakup-momentum (see
BreakupMomentumSquared).angular_momentum – Angular momentum \(L\) of the decaying particle.
normalize – Set to
Falseto omit the normalization constant \(\left|h_L^{(1)}(1)\right|^2\). The resulting \(B_L^2(z)\) equals \(z^L F_L^2(\sqrt{z})\), where \(F_L\) is the non-normalized Blatt–Weisskopf function of PDG2026, Eq. (50.34). This is the square of the factor \(n_L\) of Equation (50.33).
The hat indicates the normalization \(\hat{B}_L^2(1)=1\). Both variants have equal powers of \(z\) in the numerator and the denominator, so they are unitless no matter what \(z\) is. The PDG function \(F_L\) instead has \(1\) in the numerator and carries the threshold factor \(z^L\) separately.
See also
Form factor, TR-029, and [Chung, 2015].
With this, the implementation becomes
(2)#\[\begin{split} \begin{aligned} \hat{B}_{L}^2\left(z\right) \;&=\; \frac{\left|{h_{L}^{(1)}\left(1\right)}\right|^{2}}{z \left|{h_{L}^{(1)}\left(\sqrt{z}\right)}\right|^{2}} \\ \end{aligned}\end{split}\]where \(h_{L}^{(1)}\left(z\right)\) is defined by (3).
- class SphericalHankel1(l, z, *args, evaluate: bool = False, **kwargs)[source]#
Bases:
ExprSpherical Hankel function of the first kind for real-valued \(z\).
See [von Hippel and Quigg, 1972], Equation (A12), and TR-029 for more info. This page explains the difference with the general Hankel function of the first kind, \(H_\ell^{(1)}\).
This expression class assumes that \(z\) is real and evaluates to the following series:
(3)#\[\begin{split} \begin{aligned} h_{\ell}^{(1)}\left(z\right) \;&=\; \frac{\left(- i\right)^{\ell + 1} e^{i z} \sum_{k=0}^{\ell} \frac{\left(\frac{i}{2 z}\right)^{k} \left(k + \ell\right)!}{k! \left(- k + \ell\right)!}}{z} \\ \end{aligned}\end{split}\]