Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.{ipynb,md}]
[*.{ipynb,md,qmd}]
indent_size = unset

[*.{py,toml}]
Expand Down
7 changes: 4 additions & 3 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"recommendations": [
"charliermarsh.ruff",
"eamodio.gitlens",
"editorconfig.editorconfig",
"esbenp.prettier-vscode",
Expand All @@ -8,6 +9,8 @@
"julialang.language-julia",
"mhutchie.git-graph",
"ms-python.python",
"ms-python.vscode-pylance",
"ms-toolsai.jupyter",
"ms-vscode.live-server",
"quarto.quarto",
"redhat.vscode-yaml",
Expand All @@ -16,8 +19,8 @@
"yzhang.markdown-all-in-one"
],
"unwantedRecommendations": [
"astral-sh.ty",
"bungcip.better-toml",
"charliermarsh.ruff",
"davidanson.vscode-markdownlint",
"executablebookproject.myst-highlight",
"garaioag.garaio-vscode-unwanted-recommendations",
Expand All @@ -27,8 +30,6 @@
"ms-python.isort",
"ms-python.mypy-type-checker",
"ms-python.pylint",
"ms-python.vscode-pylance",
"ms-toolsai.jupyter",
"ms-toolsai.vscode-jupyter-cell-tags",
"ms-toolsai.vscode-jupyter-slideshow",
"travisillig.vscode-json-stable-stringify",
Expand Down
10 changes: 2 additions & 8 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[quarto]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "quarto.quarto"
},
"[toml]": {
"editor.defaultFormatter": "tamasfe.even-better-toml"
Expand All @@ -24,19 +24,13 @@
"url": "./schema.json"
}
],
"julia.executablePath": "${workspaceFolder}/.pixi/envs/default/bin/julia",
"julia.environmentPath": "${workspaceFolder}/docs/julia",
"julia.executablePath": "${workspaceFolder}/.pixi/envs/default/bin/julia",
"julia.juliaup.install.hint": false,
"livePreview.defaultPreviewPath": "docs/_build/html",
"python.defaultInterpreterPath": ".pixi/envs/default/bin/python",
"python.terminal.activateEnvironment": false,
"quarto.path": ".pixi/envs/default/bin/quarto",
"search.exclude": {
"**/*.code-search": true,
"**/bower_components": true,
"**/node_modules": true,
"**/pixi.lock": true
},
"yaml.schemas": {
"./schema.json": ["models/*.yaml", "models/*.yml"]
}
Expand Down
12 changes: 6 additions & 6 deletions docs/julia/Manifest.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This file is machine-generated - editing it directly is not advised

julia_version = "1.12.3"
julia_version = "1.12.4"
manifest_format = "2.0"
project_hash = "81eeda0d6951203a14155ea84270ff78356335e7"

Expand Down Expand Up @@ -602,7 +602,7 @@ version = "1.11.0"

[[deps.MozillaCACerts_jll]]
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
version = "2025.5.20"
version = "2025.11.4"

[[deps.NaNMath]]
deps = ["OpenLibm_jll"]
Expand Down Expand Up @@ -715,9 +715,9 @@ version = "1.4.4"

[[deps.Plots]]
deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "TOML", "UUIDs", "UnicodeFun", "Unzip"]
git-tree-sha1 = "459d8913a8b83c7222eb629664283653dadfe2b6"
git-tree-sha1 = "063ef757a1e0e15af77bbe92be92da672793fd4e"
uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
version = "1.41.3"
version = "1.41.4"

[deps.Plots.extensions]
FileIOExt = "FileIO"
Expand Down Expand Up @@ -990,9 +990,9 @@ version = "0.4.2"

[[deps.StructUtils]]
deps = ["Dates", "UUIDs"]
git-tree-sha1 = "79529b493a44927dd5b13dde1c7ce957c2d049e4"
git-tree-sha1 = "b0290a55d9e047841d7f5c472edbdc39c72cd0ce"
uuid = "ec057cc2-7a8d-4b58-b3b3-92acb9f63b42"
version = "2.6.0"
version = "2.6.1"
weakdeps = ["Measurements", "Tables"]

[deps.StructUtils.extensions]
Expand Down
36 changes: 18 additions & 18 deletions docs/python/lc2ppik-lhcb-2683025.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ The [`ampform_dpd.io.serialization`](https://ampform-dpd.readthedocs.io/0.2.1rc0
## Import model

```{python}
#| code-fold: true
#| code-summary: Import Python libraries
from __future__ import annotations
# | code-fold: true
# | code-summary: Import Python libraries
from pathlib import Path
import json
import logging
Expand All @@ -41,7 +40,6 @@ from ampform_dpd.dynamics import (
ChannelArguments,
EnergyDependentWidth,
MultichannelBreitWigner,
P,
SimpleBreitWigner,
)
from ampform_dpd.io import aslatex, perform_cached_lambdify, simplify_latex_rendering
Expand Down Expand Up @@ -85,8 +83,8 @@ with open(THIS_DIR.parent.parent / "models" / "lc2ppik-lhcb-2683025.json") as f:
## Construct `ThreeBodyDecay`

```{python}
#| code-fold: true
#| code-summary: Name-to-LaTeX converter
# | code-fold: true
# | code-summary: Name-to-LaTeX converter
def to_latex(name: str) -> str:
latex = {
"Lc": R"\Lambda_c^+",
Expand Down Expand Up @@ -124,7 +122,7 @@ CHAIN_DEFS = get_decay_chains(MODEL_DEFINITION)
#### Blatt-Weisskopf form factor

```{python}
#| code-fold: true
# | code-fold: true
z = sp.Symbol("z", nonnegative=True)
s, m1, m2, L, d = sp.symbols("s m1 m2 L R", nonnegative=True)
exprs = [
Expand All @@ -148,15 +146,14 @@ Math(aslatex(ff_L1520))
#### Breit-Wigner

```{python}
#| code-fold: true
# | code-fold: true
x, y, z = sp.symbols("x:z")
s, m0, Γ0, m1, m2, L, d = sp.symbols("s m0 Gamma0 m1 m2 L R", nonnegative=True)
exprs = [
BreitWigner(s, m0, Γ0, m1, m2, L, d),
SimpleBreitWigner(s, m0, Γ0),
EnergyDependentWidth(s, m0, Γ0, m1, m2, L, d),
FormFactor(s, m1, m2, L, d),
P(s, m1, m2),
Kallen(x, y, z),
]
Math(aslatex({e: e.doit(deep=False) for e in exprs}))
Expand All @@ -174,8 +171,8 @@ Math(aslatex(K892_BW))
#### Multi-channel Breit-Wigner

```{python}
#| code-fold: true
#| column: page-inset-right
# | code-fold: true
# | column: page-inset-right
x, y, z = sp.symbols("x:z")
s, m0, Γ0, m1, m2, L, d = sp.symbols("s m0 Gamma0 m1 m2 L R", nonnegative=True)
channels = tuple(
Expand All @@ -196,14 +193,13 @@ exprs = [
BreitWigner(s, m0, Γ0),
EnergyDependentWidth(s, m0, Γ0, m1, m2, L, d),
FormFactor(s, m1, m2, L, d),
P(s, m1, m2),
Kallen(x, y, z),
]
Math(aslatex({e: e.doit(deep=False) for e in exprs}))
```

```{python}
#| column: page-inset-right
# | column: page-inset-right
L1405_Flatte = formulate_multichannel_breit_wigner(
propagator=CHAIN_DEFS[0]["propagators"][0],
resonance=to_latex(CHAIN_DEFS[0]["name"]),
Expand All @@ -217,7 +213,7 @@ Math(aslatex(L1405_Flatte))
### Unpolarized intensity

```{python}
#| column: page-inset-right
# | column: page-inset-right
λ0, λ1, λ2, λ3 = sp.symbols("lambda(:4)", rational=True)
amplitude_expr, _ = formulate_aligned_amplitude(MODEL_DEFINITION, λ0, λ1, λ2, λ3)
amplitude_expr.cleanup()
Expand All @@ -228,7 +224,7 @@ amplitude_expr.cleanup()
#### Helicity recouplings

```{python}
#| code-fold: true
# | code-fold: true
λa = sp.Symbol(R"\lambda_a", rational=True)
λb = sp.Symbol(R"\lambda_b", rational=True)
λa0 = sp.Symbol(R"\lambda_a^0", rational=True)
Expand All @@ -250,7 +246,7 @@ Math(aslatex({e: e.doit(deep=False) for e in exprs}))
#### Recoupling deserialization

```{python}
#| code-fold: true
# | code-fold: true
recouplings = [
formulate_recoupling(MODEL_DEFINITION, chain_idx=0, vertex_idx=i) for i in range(2)
]
Expand All @@ -260,7 +256,7 @@ Math(aslatex({e: e.doit(deep=False) for e in recouplings}))
#### Chain amplitudes

```{python}
#| column: page-inset-right
# | column: page-inset-right
definitions = formulate_chain_amplitude(λ0, λ1, λ2, λ3, MODEL_DEFINITION, chain_idx=0)
Math(aslatex(definitions))
```
Expand All @@ -272,15 +268,19 @@ The following serves as a numerical check on whether the amplitude model has bee
:::

```{python}
# | code-fold: true
# | column: page-inset-right
checksums = {
misc_key: {checksum["point"]: checksum["value"] for checksum in misc_value}
for misc_key, misc_value in MODEL_DEFINITION["misc"].items()
if "checksum" in misc_key
}
checksums
assert len(checksums) == 1, "Expected only one checksum entry"
checksums["amplitude_model_checksums"]
```

```{python}
# | code-fold: true
checksum_points = {
point["name"]: {par["name"]: par["value"] for par in point["parameters"]}
for point in MODEL_DEFINITION["parameter_points"]
Expand Down
4 changes: 2 additions & 2 deletions models/lc2ppik-lhcb-2683025.json
Original file line number Diff line number Diff line change
Expand Up @@ -760,14 +760,14 @@
"mass": 1.4051,
"channels": [
{
"gsq": 0.23395150538434703,
"gsq": 0.328725260215546,
"ma": 0.938272046,
"mb": 0.493677,
"l": 0,
"d": 0
},
{
"gsq": 0.23395150538434703,
"gsq": 0.328725260215546,
"ma": 1.18937,
"mb": 0.13957018,
"l": 0,
Expand Down
Loading