lineshape

import ampform.dynamics.lineshape

Lineshape functions that describe the dynamics.

class BlattWeisskopf(q: sympy.core.symbol.Symbol, d: sympy.core.symbol.Symbol, angular_momentum: sympy.core.symbol.Symbol, evaluate: bool = False, **hints: Any)[source]

Bases: ampform.dynamics.lineshape.UnevaluatedExpression

Blatt-Weisskopf function \(B_L(q)\), up to \(L \leq 8\).

Parameters
  • q – Break-up momentum. Can be computed with breakup_momentum.

  • d – impact parameter \(d\), also called meson radius. Usually of the order 1 fm.

  • angular_momentum – Angular momentum \(L\) of the decaying particle.

Function \(B_L(q)\) is defined as:

(1)\[\begin{split}\displaystyle \begin{cases} 1 & \text{for}\: L = 0 \\\frac{2 z}{z + 1} & \text{for}\: L = 1 \\\frac{13 z^{2}}{9 z + \left(z - 3\right)^{2}} & \text{for}\: L = 2 \\\frac{277 z^{3}}{z \left(z - 15\right)^{2} + \left(2 z - 5\right) \left(18 z - 45\right)} & \text{for}\: L = 3 \\\frac{12746 z^{4}}{25 z \left(2 z - 21\right)^{2} + \left(z^{2} - 45 z + 105\right)^{2}} & \text{for}\: L = 4 \\\frac{998881 z^{5}}{z^{5} + 15 z^{4} + 315 z^{3} + 6300 z^{2} + 99225 z + 893025} & \text{for}\: L = 5 \\\frac{118394977 z^{6}}{z^{6} + 21 z^{5} + 630 z^{4} + 18900 z^{3} + 496125 z^{2} + 9823275 z + 108056025} & \text{for}\: L = 6 \\\frac{19727003738 z^{7}}{z^{7} + 28 z^{6} + 1134 z^{5} + 47250 z^{4} + 1819125 z^{3} + 58939650 z^{2} + 1404728325 z + 18261468225} & \text{for}\: L = 7 \\\frac{4392846440677 z^{8}}{z^{8} + 36 z^{7} + 1890 z^{6} + 103950 z^{5} + 5457375 z^{4} + 255405150 z^{3} + 9833098275 z^{2} + 273922023375 z + 4108830350625} & \text{for}\: L = 8 \end{cases}\end{split}\]

with \(z = (d q)^2\). The impact parameter \(d\) is usually fixed, so not shown as a function argument.

Each of these cases has been taken from [Chung et al. 1995], p. 415, and [Chung 2015]. For a good overview of where to use these Blatt-Weisskopf functions, see [Asner et al. 2006].

See also Form factor.

property angular_momentum
property d

Impact parameter, also called meson radius.

default_assumptions = {}
doit(**hints: Any)sympy.core.expr.Expr

Evaluate objects that are not evaluated by default like limits, integrals, sums and products. All objects of this kind will be evaluated recursively, unless some species were excluded via ‘hints’ or unless the ‘deep’ hint was set to ‘False’.

>>> from sympy import Integral
>>> from sympy.abc import x
>>> 2*Integral(x, x)
2*Integral(x, x)
>>> (2*Integral(x, x)).doit()
x**2
>>> (2*Integral(x, x)).doit(deep=False)
2*Integral(x, x)
evaluate()sympy.core.expr.Expr[source]
property q

Break-up momentum.

class UnevaluatedExpression(*args)[source]

Bases: sympy.core.expr.Expr

Base class for classes that expressions with an evaluate method.

Derive from this class when decorating a class with implement_expr or implement_doit_method. It is important to derive from UnevaluatedExpression, because a evaluate method has to be implemented.

default_assumptions = {}
abstract evaluate()sympy.core.expr.Expr[source]
breakup_momentum(m_r: sympy.core.symbol.Symbol, m_a: sympy.core.symbol.Symbol, m_b: sympy.core.symbol.Symbol)sympy.core.expr.Expr[source]
implement_doit_method()Callable[[Type[ampform.dynamics.lineshape.UnevaluatedExpression]], Type[ampform.dynamics.lineshape.UnevaluatedExpression]][source]

Implement doit() method for an UnevaluatedExpression class.

Implement a doit method for a class that derives from Expr (via UnevaluatedExpression).

implement_expr(n_args: int)Callable[[Type[ampform.dynamics.lineshape.UnevaluatedExpression]], Type[ampform.dynamics.lineshape.UnevaluatedExpression]][source]

Decorator for classes that derive from UnevaluatedExpression.

Implement a __new__ and doit method for a class that derives from Expr (via UnevaluatedExpression).

implement_new_method(n_args: int)Callable[[Type[ampform.dynamics.lineshape.UnevaluatedExpression]], Type[ampform.dynamics.lineshape.UnevaluatedExpression]][source]

Implement __new__() method for an UnevaluatedExpression class.

Implement a __new__ method for a class that derives from Expr (via UnevaluatedExpression).

relativistic_breit_wigner(mass: sympy.core.symbol.Symbol, mass0: sympy.core.symbol.Symbol, gamma0: sympy.core.symbol.Symbol)sympy.core.expr.Expr[source]

Relativistic Breit-Wigner lineshape.

(2)\[\displaystyle \frac{\Gamma m_{0}}{- i \Gamma m_{0} - m^{2} + m_{0}^{2}}\]

See Without form factor and [Asner et al. 2006].

relativistic_breit_wigner_with_ff(mass: sympy.core.symbol.Symbol, mass0: sympy.core.symbol.Symbol, gamma0: sympy.core.symbol.Symbol, m_a: sympy.core.symbol.Symbol, m_b: sympy.core.symbol.Symbol, angular_momentum: sympy.core.symbol.Symbol, meson_radius: sympy.core.symbol.Symbol)sympy.core.expr.Expr[source]

Relativistic Breit-Wigner with BlattWeisskopf factor.

For \(L=0\), this lineshape has the following form:

(3)\[\displaystyle \frac{\Gamma m_{0}}{- \frac{i \Gamma m_{0}^{2} \sqrt{\frac{\left(m^{2} - \left(m_{a} - m_{b}\right)^{2}\right) \left(m^{2} - \left(m_{a} + m_{b}\right)^{2}\right)}{m^{2}}}}{m \sqrt{\frac{\left(m_{0}^{2} - \left(m_{a} - m_{b}\right)^{2}\right) \left(m_{0}^{2} - \left(m_{a} + m_{b}\right)^{2}\right)}{m_{0}^{2}}}} - m^{2} + m_{0}^{2}}\]

See With form factor and [Asner et al. 2006].