Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEAT: implement BreitWigner expression classes #423

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

redeboer
Copy link
Member

@redeboer redeboer commented May 20, 2024

Closes #438

@redeboer redeboer added the 📝 Docs Improvements or additions to documentation label May 20, 2024
@redeboer redeboer added this to the 0.15.3 milestone May 20, 2024
@redeboer redeboer self-assigned this May 20, 2024
Copy link

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@redeboer
Copy link
Member Author

redeboer commented May 21, 2024

@mmikhasenko have a look at this preview.

I followed your Breit–Wigner implementation, but don't get why the numerator is 1, i.e.

$$\mathcal{R}^\mathrm{BW}\left(s; m_{0}, \Gamma_{0}\right) = \frac{1}{- i \Gamma_{0} m_{0} + m_{0}^{2} - s}\,.$$

It seems better to me to make the lineshape unitless. With the current definition, I have to redefine AmpForm's relativistic_breit_wigner() as:

$$\Gamma_{0} m_{0} \mathcal{R}^\mathrm{BW}\left(s; m_{0}, \Gamma_{0}\right)\,.$$

Am I missing something here? Seeing as this is considered the default implementation for BreitWigner in amplitude-serialization, it is important to have clear a consensus on this.

@redeboer
Copy link
Member Author

I'm also not sure about the definition of the energy-dependent width of the channels in a MultichannelBreitWigner.

$$\mathcal{R}^\mathrm{BW}_\mathrm{multi}\left(s; \Gamma_{1}, \Gamma_{2}\right) = \mathcal{R}^\mathrm{BW}\left(s; m_{0}, \frac{\Gamma_{1} m_{0} \mathcal{F}_{L_{1}}\left(s, m_{a,1}, m_{b,1}\right)^{2}}{\sqrt{s}} + \frac{\Gamma_{2} m_{0} \mathcal{F}_{L_{2}}\left(s, m_{a,2}, m_{b,2}\right)^{2}}{\sqrt{s}}\right)$$

It results in a weird 'Flatté' lineshape when simplifying:

import sympy as sp
from ampform.dynamics import ChannelArguments, MultichannelBreitWigner

channels = [ChannelArguments(sp.Symbol(f"Gamma{i}")) for i in [1, 2]]
MultichannelBreitWigner(s, m0, channels).doit().simplify()
$$\mathcal{R}^\mathrm{BW}_\mathrm{multi}\left(s; \Gamma_{1}, \Gamma_{2}\right) = - \frac{\sqrt{s}}{i m_{0}^{2} \left(\Gamma_{1} + \Gamma_{2}\right) - \sqrt{s} \left(m_{0}^{2} - s\right)}$$

@redeboer
Copy link
Member Author

Probably best to 'standardize' the symbolic Breit–Wigner as BreitWigner(s, mass, coupling):

$$\mathcal{R}^\mathrm{BW}\left(s; m_0, g\right) = \frac{g^2}{m_0^2 - s - i g^2}$$

One can then customize the parametrization of $g$ with symbolic substitution.

There is a problem though when numerator is decoupled from denominator (production). There, you may want to absorb $g^2$ from the numerator into a weight, while setting $g^2=\Gamma_0 m_0$ in the denominator.

@redeboer
Copy link
Member Author

redeboer commented May 21, 2024

As for #423 (comment), see RUB-EP1/amplitude-serialization#31. Using EnergyDependentWidth has an implicit normalization of the form factor.

This does not work in a multi-channel Breit–Wigner because the normalization factor $F_L^2(m_0^2)$ is not well defined if $m_0$ lies between the thresholds.

@redeboer redeboer modified the milestones: 0.15.3, 0.15.4 May 21, 2024
@mmikhasenko
Copy link
Contributor

I love your pages, Remco.

The constant terms in BW is denoted G, not gsq. It is exactly how I defined it for HS3 document, but later I thought that gsq is still better because users assume that the constant 'width' corresponds to the observed width. It's not the case, in the current approach. That is why I fell back to 'gsq'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📝 Docs Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Define BreitWigner expression class
3 participants