Skip to content

Commit

Permalink
BEHAVIOR: remove factor 16 pi from phsp factor (#403)
Browse files Browse the repository at this point in the history
  • Loading branch information
Zeyna777 authored Mar 4, 2024
1 parent 4392418 commit 1a91b80
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 16 deletions.
14 changes: 11 additions & 3 deletions docs/usage/dynamics/analytic-continuation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@
"np_rho_cm = sp.lambdify((m, m_a, m_b), rho_cm.doit())\n",
"np_breakup_momentum = sp.lambdify(\n",
" (m, m_a, m_b),\n",
" ComplexSqrt(q_squared.subs(s, m**2).doit()) / (8 * sp.pi),\n",
" 2 * ComplexSqrt(q_squared.subs(s, m**2).doit()),\n",
")"
]
},
Expand Down Expand Up @@ -417,7 +417,7 @@
"for ax in [ax_rho_cm, ax_rho_ac]:\n",
" ax.set_yticks([])\n",
"\n",
"ylim = (-0.002, 0.03)\n",
"ylim = (-0.1, 1.4)\n",
"\n",
"\n",
"def func_imag(func, *args, **kwargs):\n",
Expand Down Expand Up @@ -547,8 +547,16 @@
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"version": "3.8.17"
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.8"
}
},
"nbformat": 4,
Expand Down
20 changes: 7 additions & 13 deletions src/ampform/dynamics/phasespace.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,10 @@ def _latex_repr_(self, printer: LatexPrinter, *args) -> str:

@unevaluated
class PhaseSpaceFactor(sp.Expr):
"""Standard phase-space factor, using :func:`BreakupMomentumSquared`.
r"""Standard phase-space factor, using :func:`BreakupMomentumSquared`.
See :pdg-review:`2021; Resonances; p.6`, Equation (50.9).
See :pdg-review:`2021; Resonances; p.6`, Equation (50.9). We ignore the factor
:math:`\frac{1}{16\pi}` as done in :cite:`chungPrimerKmatrixFormalism1995`, p.5.
"""

s: Any
Expand All @@ -105,8 +106,7 @@ class PhaseSpaceFactor(sp.Expr):
def evaluate(self) -> sp.Expr:
s, m1, m2 = self.args
q_squared = BreakupMomentumSquared(s, m1, m2)
denominator = _phase_space_factor_denominator(s)
return sp.sqrt(q_squared) / denominator
return 2 * sp.sqrt(q_squared) / sp.sqrt(s)

def _latex_repr_(self, printer: LatexPrinter, *args) -> str:
s_symbol = self.args[0]
Expand Down Expand Up @@ -136,8 +136,7 @@ class PhaseSpaceFactorAbs(sp.Expr):
def evaluate(self) -> sp.Expr:
s, m1, m2 = self.args
q_squared = BreakupMomentumSquared(s, m1, m2)
denominator = _phase_space_factor_denominator(s)
return sp.sqrt(sp.Abs(q_squared)) / denominator
return 2 * sp.sqrt(sp.Abs(q_squared)) / sp.sqrt(s)

def _latex_repr_(self, printer: LatexPrinter, *args) -> str:
s_symbol = self.args[0]
Expand All @@ -163,8 +162,7 @@ class PhaseSpaceFactorComplex(sp.Expr):
def evaluate(self) -> sp.Expr:
s, m1, m2 = self.args
q_squared = BreakupMomentumSquared(s, m1, m2)
denominator = _phase_space_factor_denominator(s)
return ComplexSqrt(q_squared) / denominator
return 2 * ComplexSqrt(q_squared) / sp.sqrt(s)

def _latex_repr_(self, printer: LatexPrinter, *args) -> str:
s_symbol = self.args[0]
Expand Down Expand Up @@ -212,7 +210,7 @@ def chew_mandelstam_s_wave(s, m1, m2):
right_term = (m1**2 - m2**2) * (1 / s - 1 / (m1 + m2) ** 2) * sp.log(m1 / m2)
# evaluate=False in order to keep same style as PDG
return sp.Mul(
1 / (16 * sp.pi**2),
1 / sp.pi,
left_term - right_term,
evaluate=False,
)
Expand Down Expand Up @@ -265,10 +263,6 @@ def _analytic_continuation(rho, s, s_threshold) -> sp.Piecewise:
)


def _phase_space_factor_denominator(s) -> sp.Mul:
return 8 * sp.pi * sp.sqrt(s)


def _indices_to_subscript(indices: Sequence[int]) -> str:
"""Create a LaTeX subscript from a list of indices.
Expand Down

0 comments on commit 1a91b80

Please sign in to comment.