Welcome to AmpForm-DPD!#
This Python package is a (temporary) extension of AmpForm and provides a symbolic implementation of Dalitz-plot decomposition (10.1103/PhysRevD.101.034033) with SymPy. It has been extracted from the ComPWA/polarimetry repository, which is not yet public.
Installation#
The fastest way of installing this package is through PyPI:
python3 -m pip install ampform-dpd
This installs the latest version that you can find on the stable
branch. The latest version on the main
branch
can be installed as follows:
python3 -m pip install git+https://github.com/ComPWA/ampform@main
You can substitute stable
in the above command with main
or any of the tags listed under the releases. In a similar way, you can list ampform-dpd
as a dependency of your application in either setup.cfg
or a requirements.txt
file as:
ampform-dpd @ git+https://github.com/ComPWA/ampform-dpd@main
However, we highly recommend using the more dynamic, ‘editable installation’ instead. This goes as follows:
Get the source code (see the Pro Git Book):
git clone https://github.com/ComPWA/ampform-dpd.git cd ampform-dpd
[Recommended] Create a virtual environment (see here or the tip below).
Install the project in ‘editable installation’ with additional dependencies for the developer:
python3 -m pip install -e .[dev]
That’s all! Have a look at the Welcome to AmpForm-DPD! page to try out the package, and see Help developing for tips on how to work with this ‘editable’ developer setup!
Tip
It’s easiest to install the project in a Conda environment. In that case, to install in editable mode, just run:
conda env create
conda activate ampform-dpd
This way of installing is also safer, because it pins all dependencies. Note you can also pin dependencies with pip
, by running:
python3 -m pip install -e .[dev] -c .constraints/py3.x.txt
where you should replace the 3.x
with the version of Python you want to use.
Physics#
Dalitz-plot decomposition allows us to separate variables that affect the angular distribution from variables that describe the dynamics. It allows rewriting a transition amplitude
Here,
These aligned transition amplitudes are then combined into an observable differential cross section (intensity distribution), using a spin density matrix
Given the right alignment, the aligned transition amplitude can be written as
Notice the general structure:
Summations: The outer sum is taken over the three decay chain combinations
. Next, we sum over the spin magnitudes of all resonances[1], the corresponding allowed helicities , and allowed spin projections of the final state.Dynamics: The function
only depends on a single Mandelstam variable and carries all the dynamical information about the decay chain. Typically, these are your -matrix or Breit-Wigner lineshape functions.Isobars: There is a Wigner
-function and a helicity coupling for each isobar in the three-body decay chain: the production node and the decay node. The argument of these Wigner -functions are the polar angles. The factors and are normalization factors. The phase is added to both helicity couplings to convert to the Jacob-Wick particle-2 convention.[2] The convention treats the first and the second particle unequally, however, it enables the simple relation of the helicity couplings to the couplings explained below.Wigner rotations: The last three Wigner
-functions represent Wigner rotations that appear when rotating the boosted frames of the production and decay isobar amplitudes back to the space-fixed CM frame.
If
Equation (1) is written in terms of helicity couplings, but can be rewritten in terms of
The dynamics function is dependent on the