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 use_coefficients switch #159

Merged
merged 14 commits into from
Mar 7, 2025
Merged

FEAT: implement use_coefficients switch #159

merged 14 commits into from
Mar 7, 2025

Conversation

redeboer
Copy link
Member

@redeboer redeboer commented Mar 5, 2025

Closes #156

This PR makes it possible to combine the product of the two couplings into one scaling coefficient, by writing use_coefficients=True in the DalitzPlotDecompositionBuilder.formulate()

@redeboer redeboer added the ✨ Feature New feature added to the package label Mar 5, 2025
@redeboer redeboer added this to the 0.2.3 milestone Mar 5, 2025
@redeboer redeboer requested a review from Zeyna777 March 5, 2025 14:55
@redeboer redeboer self-assigned this Mar 5, 2025
@redeboer
Copy link
Member Author

redeboer commented Mar 5, 2025

@Zeyna777 I still need to write some unit tests for this. However, you can already try it, for instance on 15b3807 like this:

uv add git+https://github.com/ComPWA/ampform-dpd --rev 15b3807

@redeboer
Copy link
Member Author

redeboer commented Mar 6, 2025

@mmikhasenko here are the number I was referring to:

# ----==== COEFFICIENTS ===--- #
if use_coefficients:
if min_ls: # HELICITY BASIS
assert n_coupling_symbols == 20
assert coupling_symbols_str == [
R"\mathcal{H}^\mathrm{N(1700)^{+}}[-1/2, -1/2, 0, -1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[-1/2, -1/2, 0, 1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[-1/2, 1/2, 0, -1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[-1/2, 1/2, 0, 1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[-3/2, -1/2, 0, -1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[-3/2, -1/2, 0, 1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[1/2, -1/2, 0, -1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[1/2, -1/2, 0, 1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[1/2, 1/2, 0, -1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[1/2, 1/2, 0, 1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[3/2, 1/2, 0, -1/2]",
R"\mathcal{H}^\mathrm{N(1700)^{+}}[3/2, 1/2, 0, 1/2]",
R"\mathcal{H}^\mathrm{\overline{\Sigma}(1660)^{-}}[-1/2, -1/2, -1/2, 0]",
R"\mathcal{H}^\mathrm{\overline{\Sigma}(1660)^{-}}[-1/2, -1/2, 1/2, 0]",
R"\mathcal{H}^\mathrm{\overline{\Sigma}(1660)^{-}}[-1/2, 1/2, -1/2, 0]",
R"\mathcal{H}^\mathrm{\overline{\Sigma}(1660)^{-}}[-1/2, 1/2, 1/2, 0]",
R"\mathcal{H}^\mathrm{\overline{\Sigma}(1660)^{-}}[1/2, -1/2, -1/2, 0]",
R"\mathcal{H}^\mathrm{\overline{\Sigma}(1660)^{-}}[1/2, -1/2, 1/2, 0]",
R"\mathcal{H}^\mathrm{\overline{\Sigma}(1660)^{-}}[1/2, 1/2, -1/2, 0]",
R"\mathcal{H}^\mathrm{\overline{\Sigma}(1660)^{-}}[1/2, 1/2, 1/2, 0]",
]
else: # CANONICAL BASIS
assert n_coupling_symbols == 4
assert coupling_symbols_str == [
R"\mathcal{H}^\mathrm{LS,N(1700)^{+}}[1, 1, 2, 1/2]",
R"\mathcal{H}^\mathrm{LS,N(1700)^{+}}[1, 2, 2, 1/2]",
R"\mathcal{H}^\mathrm{LS,\overline{\Sigma}(1660)^{-}}[0, 1, 1, 1/2]",
R"\mathcal{H}^\mathrm{LS,\overline{\Sigma}(1660)^{-}}[2, 1, 1, 1/2]",
]
# ----==== COUPLING ===--- #
else:
n_products = len(_collect_products(amplitudes))
if min_ls: # HELICITY BASIS
assert n_coupling_symbols == 14
assert n_products == 20
assert coupling_symbols_str == [
R"\mathcal{H}^\mathrm{decay}[N(1700)^{+}, 0, -1/2]",
R"\mathcal{H}^\mathrm{decay}[N(1700)^{+}, 0, 1/2]",
R"\mathcal{H}^\mathrm{decay}[\overline{\Sigma}(1660)^{-}, -1/2, 0]",
R"\mathcal{H}^\mathrm{decay}[\overline{\Sigma}(1660)^{-}, 1/2, 0]",
R"\mathcal{H}^\mathrm{production}[N(1700)^{+}, -1/2, -1/2]",
R"\mathcal{H}^\mathrm{production}[N(1700)^{+}, -1/2, 1/2]",
R"\mathcal{H}^\mathrm{production}[N(1700)^{+}, -3/2, -1/2]",
R"\mathcal{H}^\mathrm{production}[N(1700)^{+}, 1/2, -1/2]",
R"\mathcal{H}^\mathrm{production}[N(1700)^{+}, 1/2, 1/2]",
R"\mathcal{H}^\mathrm{production}[N(1700)^{+}, 3/2, 1/2]",
R"\mathcal{H}^\mathrm{production}[\overline{\Sigma}(1660)^{-}, -1/2, -1/2]",
R"\mathcal{H}^\mathrm{production}[\overline{\Sigma}(1660)^{-}, -1/2, 1/2]",
R"\mathcal{H}^\mathrm{production}[\overline{\Sigma}(1660)^{-}, 1/2, -1/2]",
R"\mathcal{H}^\mathrm{production}[\overline{\Sigma}(1660)^{-}, 1/2, 1/2]",
]
else: # CANONICAL BASIS
assert n_coupling_symbols == 6
assert n_products == 4
assert coupling_symbols_str == [
R"\mathcal{H}^\mathrm{LS,decay}[N(1700)^{+}, 2, 1/2]",
R"\mathcal{H}^\mathrm{LS,decay}[\overline{\Sigma}(1660)^{-}, 1, 1/2]",
R"\mathcal{H}^\mathrm{LS,production}[N(1700)^{+}, 1, 1]",
R"\mathcal{H}^\mathrm{LS,production}[N(1700)^{+}, 1, 2]",
R"\mathcal{H}^\mathrm{LS,production}[\overline{\Sigma}(1660)^{-}, 0, 1]",
R"\mathcal{H}^\mathrm{LS,production}[\overline{\Sigma}(1660)^{-}, 2, 1]",
]

This is the corresponding decay:

initial_state=[("J/psi(1S)", [+1])],
final_state=["K0", ("Sigma+", [+0.5]), ("p~", [+0.5])],
allowed_interaction_types="strong",
allowed_intermediate_particles=["N(1700)+", "Sigma(1660)"],

@redeboer
Copy link
Member Author

redeboer commented Mar 6, 2025

You're right: the number of coupling products (aka coefficients) is simply $n_\text{product} \cdot n_\text{decay}$

@redeboer redeboer marked this pull request as ready for review March 7, 2025 15:07
@redeboer redeboer merged commit 0287539 into main Mar 7, 2025
19 checks passed
@redeboer redeboer deleted the FEAT/coefficients branch March 7, 2025 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature New feature added to the package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Combine decay and production coupling into single symbol
2 participants