ComPWA Technical Reports

ComPWA Technical Reports#

These pages are a collection of findings while working on ComPWA packages such as ampform, qrules, and tensorwaves. Most of these findings were not implemented, but may become relevant later on or could be useful to other frameworks as well.

TR

Title

Details

Tags

Status

TR‑000

Square root over arrays with negative values

This notebook investigates how to write a square root function in sympy that computes the positive square root for negative values. The lambdified version of this ‘complex square root’ should have the same behavior for each computational backend.

dynamics lambdification sympy

✅ tensorwaves#284

TR‑001

Custom lambdification

See also SymPy’s tutorial page on the printing modules.

lambdification sympy

✅ ampform#72, tensorwaves#284

TR‑002

Faster lambdification by splitting expressions

This notebook investigates how to speed up sympy.lambdify by splitting up the expression tree of a complicated expression into components, lambdifying those, and then combining them back again.

lambdification sympy

✅ tensorwaves#281

TR‑003

Chew-Mandelstam dispersion integrals

This report formulates a symbolic dispersion integral to approach the left-hand cut in the form factor for arbitrary angular momentum. The integral is evaluated with SciPy’s quad_vec.

physics sympy

🚧 ampform#265

TR‑004

Investigation of analyticity

dynamics physics

TR‑005

Symbolic K-matrix expressions

Implementation of this report is tracked through ampform#67.

K-matrix dynamics physics

TR‑006

Interactive 3D plots

This report illustrates how to interact with matplotlib 3D plots through Matplotlib sliders and ipywidgets.

tips

✅ ampform#38

TR‑007

MatrixSymbols

This report is a sequel to TR-005. In that report, the \(\boldsymbol{K}\) was constructed with a sympy.Matrix, but it might be more elegant to work with MatrixSymbols.

sympy

TR‑008

Indexed free symbols

This report has been implemented in ampform#111. Additionally, tensorwaves#427 makes it possible to lambdify sympy.Expr with Indexed symbols directly.

sympy

✅ ampform#111

TR‑009

Symbolic expressions for Lorentz-invariant K-matrix

This report is a sequel to TR-005.

K-matrix dynamics physics sympy

✅ ampform#120

TR‑010

P-vector

This report is a sequel to TR-005 and TR-009.

K-matrix dynamics physics sympy

✅ ampform#131

TR‑011

Helicity angles as symbolic expressions

This report has been implemented in and ampform#177 and tensorwaves#345. The report contains some bugs which were also addressed in these PRs.

physics sympy

✅ ampform#177, tensorwaves#345

TR‑012

Extended DataSample performance

ampform#198 makes it easier to generate expressions for kinematic variables that are not contained in the HelicityModel.expression. In TensorWaves, this results in a DataSample with more keys.

A question was raised whether this affects the duration of fits. This report shows that this is not the case (see Conclusion).

lambdification sympy

TR‑013

Spin alignment with data

In this report, we attempt to check the effect of activating spin alignment (ampform#245) and compare it with Figure 2 in [Marangotto, 2020].

See also TR-014 and TR-015.

physics

TR‑014

Amplitude model with sum notation

See also TR-013 and TR-015.

sympy

✅ ampform#245

TR‑015

Spin alignment implementation

This report has been implemented through ampform#245. For details on how to use it, see this notebook. See also TR-013 and TR-014.

physics sympy

✅ ampform#245

TR‑016

Symbolic integral

This report investigates how to formulate a symbolic integral that correctly evaluates to

sympy

TR‑017

Symbolic phase space boundary for a three-body decay

This reports shows how define the physical phase space region on a Dalitz plot using a Kibble function.

physics sympy

✅ compwa.github.io#139

TR‑018

Intensity distribution generator with importance sampling

This reports sets out how data generation with TensorWaves works and what would be the best approach to tackle tensorwaves#402.

physics tensorwaves

TR‑019

Integrating Jupyter notebook with Julia notebooks in MyST-NB

This report shows how to define a Julia kernel for Jupyter notebooks, so that it can be executed and converted to static pages with MyST-NB.

DX tips

✅ compwa.github.io#174

TR‑020

Amplitude analysis with zfit

This reports builds a simple symbolic amplitude model with qrules and ampform and feeds it to zfit instead of tensorwaves.

physics sympy tensorwaves

✅ compwa.github.io#151

TR‑021

Polarimeter vector field

Mikhail Mikhasenko @mmikhasenko,
Remco de Boer @redeboer


This report formulates the polarimeter vector field for in \(\Lambda_c \to p\pi K\) with SymPy and visualizes it as an interactive widget with TensorWaves and ipywidgets.

physics polarimetry polarization

✅ compwa.github.io#129

TR‑022

Polarimetry: Computing the B-matrix for Λc→pKπ

The \(B\)-matrix forms an extension of the polarimeter vector field \(\vec\alpha\) (arXiv:2301.07010, see also TR-021) that takes the polarization of the proton into account. See arXiv:2302.07665, Eq. (B6).

physics polarimetry polarization

✅ compwa.github.io#196

TR‑023

Support for Plotly plots in Technical Reports

3d documentation jupyter sphinx

✅ compwa.github.io#206

TR‑024

Symbolic expressions and model serialization

Investigation into dumping SymPy expressions to human-readable format for model preservation. The notebook was motivated by the COMAP-V workshop on analysis preservation. See also SymPy printing, parsing, and expression manipulation.

documentation

🚧 polarimetry#319

TR‑025

Rotated square root cut

Investigation of the branch cut in the two Riemann sheets of a square root and what happens if the cut is rotated around \(z=0\).

K-matrix

✅ compwa.github.io#236

TR‑026

Visualization of the Riemann sheets for the single-channel \(T\) matrix with one resonance pole

This report investigates and reproduces the Riemann sheets shown in Fig. 50.1 and 50.2 of the PDG. The lineshape parametrization is directly derived with the \(K\)-matrix formalism. The transition from the first physical sheet to the second unphysical sheet is derived using analytic continuation.

K-matrix dynamics

🚧 ampform#67

TR‑027

Visualization of the Riemann sheets for the two-channel \(T\)-matrix with one pole

Following TR-026, the Riemann sheets for the amplitude calculated within the \(K\)-matrix formalism for the two-channel case are visualized. The method of transitioning from the first physical sheet to the unphysical sheets is extended to the two dimensional case using Eur. Phys. J. C (2023) 83:850 in order to visualize the third and the fourth unphysical sheet.

K-matrix dynamics

🚧 ampform#67

TR‑028

Example of how to query the PDG Python API for decay

This report shows how to search all known decays in the PDG using its new Python API and search three-body decays that have three equal particles in the final state.

PDG

🚧 compwa.github.io#271

TR‑029

Definition of the normalized Blatt–Weisskopf form factor from Hankel functions of the first kind.

This report investigates how to implement ComPWA/ampform#417, where it was suggested to define the ‘normalized’ Blatt–Weisskopf function \(B_L^2(z)\) from a Hankel function of the first kind, \(h_l^{(1)}\).

dynamics sympy

TR‑030

Sub-intensities of P-vector amplitude model

Sub-intensity plots for a model with \(P\)-vector dynamics. Also includes an investigation of phases in a \(P\)-vector lineshape.

K-matrix dynamics

🚧 compwa.github.io#278

TR‑031

Single-channel amplitude model fit with \(P\)-vector dynamics

Comparison between fit performance for an amplitude model with Breit–Wigner and \(P\)-vector dynamics. In both cases, data is generated with \(P\)-vector dynamics.

K-matrix dynamics

🚧 compwa.github.io#278

TR‑032

Coupled-channel fit with \(P\)-vector dynamics for one single pole

Illustration of how to formulate an amplitude model for two channels with P-vector dynamics. A combined fit is performed over the sum of the likelihood over both distributions. The example uses a single pole, but can easily be extended to multiple poles.

K-matrix dynamics

🚧 compwa.github.io#278

TR‑033

PWA101: Amplitude analysis with Python basics

This tutorial introduces amplitude analysis, and specifically the technique called Partial Wave Analysis (PWA), by demonstrating its application to a specific reaction channel and amplitude model. Basic Python programming and libraries (e.g. numpy, scipy, etc.) are used to illustrate the more fundamental steps of PWA in hadron physics.

3d kinematics physics tutorial

✅ ComPWA/RUB-EP1‑AG#93, compwa.github.io#217

Execution times

Document

Modified

Method

Run Time (s)

Status

004/index

2024-10-29 09:48

cache

13.81

✅

006/index

2024-10-29 09:48

cache

7.96

✅

007/index

2024-10-29 09:48

cache

4.76

✅

016/index

2024-10-29 09:48

cache

7.25

✅

023/index

2024-10-29 09:48

cache

2.57

✅

024/index

2024-10-29 09:49

cache

33.12

✅

025/index

2024-10-29 09:49

cache

7.4

✅

026/index

2024-10-29 09:49

cache

7.1

✅

027/index

2024-10-29 09:50

cache

21.45

✅

029/index

2024-10-29 09:50

cache

5.73

âœ