Skip to content

Commit

Permalink
DOC: explain spherical Hankel function
Browse files Browse the repository at this point in the history
  • Loading branch information
redeboer committed May 15, 2024
1 parent 103ef57 commit 43f8bd9
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions docs/report/029.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,11 @@
"source": [
"As of AmpForm [v0.15](https://github.com/ComPWA/ampform/releases/tag/0.15.1), the implementation of [`BlattWeisskopfSquared`](https://ampform.readthedocs.io/0.15.x/api/ampform.dynamics/#ampform.dynamics.BlattWeisskopfSquared) contains hard-coded polynomials, see implementation [here](https://github.com/ComPWA/ampform/blob/0.15.1/src/ampform/dynamics/__init__.py#L66-L134).\n",
"The motivation for this can be found in the citations mentioned in [its API documentation](https://ampform.readthedocs.io/0.15.x/api/ampform.dynamics/#ampform.dynamics.BlattWeisskopfSquared).\n",
"However, as noted by [@mmikhasenko](https://github.com/mmikhasenko) in [ComPWA/ampform#417](https://github.com/ComPWA/ampform/issues/417), the polynomials can be derived from Hankel functions of the first kind.\n",
"Von Hippel and Quigg[^1] derived a generalization of the centrifugal barrier factor $F_L$ that was introduced by {cite}`Blatt:1952ije`, showing that\n",
"However, as noted by [@mmikhasenko](https://github.com/mmikhasenko) in [ComPWA/ampform#417](https://github.com/ComPWA/ampform/issues/417), the polynomials can be derived from the spherical[^1] Hankel functions of the first kind.\n",
"Von Hippel and Quigg[^2] derived a generalization of the centrifugal barrier factor $F_L$, also called form factor, that was introduced by {cite}`Blatt:1952ije`, showing that\n",
"\n",
"[^1]: See {cite}`VonHippel:1972fg`, pp. 626 and 637, and a review by COMPASS, {cite}`Ketzer:2019wmd`, p. 31."
"[^1]: See [this page](https://mathworld.wolfram.com/SphericalHankelFunctionoftheFirstKind.html) on Wolfram MathWorld for an explanation about the difference between $h_\\ell^{(1)}$ and $H_\\ell^{(1)}$.\n",
"[^2]: See {cite}`VonHippel:1972fg`, pp. 626 and 637, and a review by COMPASS, {cite}`Ketzer:2019wmd`, p. 31."
]
},
{
Expand Down Expand Up @@ -168,10 +169,10 @@
},
"source": [
"In the following, we call $F_\\ell(z)$ the _unnormalized_ Blatt–Weisskopf form factor.\n",
"Following Chung and other resources (see e.g. {cite}`Chung:1995dx`, p. 415), AmpForm implements a unitless, _normalized_ Blatt–Weisskopf factor $B_L$, meaning that $B_L(1)=1$.[^2]\n",
"Following Chung and other resources (see e.g. {cite}`Chung:1995dx`, p. 415), AmpForm implements a unitless, _normalized_ Blatt–Weisskopf factor $B_L$, meaning that $B_L(1)=1$.[^3]\n",
"It can be defined in terms of $F_L$ as\n",
"\n",
"[^2]: We switch to notating angular momentum with $L$ instead of $\\ell$ here to indicate that we are talking about a normalized function here."
"[^3]: We switch to notating angular momentum with $L$ instead of $\\ell$ here to indicate that we are talking about a normalized function here."
]
},
{
Expand Down Expand Up @@ -254,7 +255,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"As of writing, however, the class does not offer sophisticated algebraic simplifications for specific values or assumptions of $\\ell$ and $z$."
"This function is the general[^1] Hankel function $H_\\ell$ and the class does not offer algebraic simplifications for specific values or assumptions of $\\ell$ and $z$."
]
},
{
Expand Down Expand Up @@ -288,7 +289,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"To implement Equation {eq}`hankel-sum`, we have to define a specific [`@unevaluated`](https://ampform.readthedocs.io/0.15.x/api/ampform.sympy/#ampform.sympy.unevaluated) expression class. The following class evaluates to the sum given in Equation {eq}`hankel-sum`.\n",
"To implement Equation {eq}`hankel-sum` for the _spherical_ Hankel function, we have to define a specific [`@unevaluated`](https://ampform.readthedocs.io/0.15.x/api/ampform.sympy/#ampform.sympy.unevaluated) expression class. The following class evaluates to the sum given in Equation {eq}`hankel-sum`.\n",
"The [`doit()`](https://docs.sympy.org/latest/modules/core.html#sympy.core.basic.Basic.doit) method is overwritten explicitly in order to prevent SymPy from unfolding the [`sympy.Sum`](https://docs.sympy.org/latest/modules/concrete.html#sympy.concrete.summations.Sum) on symbolic input for $\\ell$."
]
},
Expand Down

0 comments on commit 43f8bd9

Please sign in to comment.