\(X \to \pi^-\pi^+\pi^-\)#
This notebook constructs a Dalitz-plot decomposition for the \(\rho(770)\pi\) P-wave in the COMPASS three-pion analysis [4]. We define the particles, the two pion pairings, their LS couplings, and the running-width dynamics explicitly, following the model-building approach of \Lambda_c^+ \to p \pi^+ K^-.
The numerical inputs come from the pinned amplitude-serialization model. We reconstruct its selected spin-one wave at \(m_X=1.55\,\mathrm{GeV}\), rather than the full production analysis. The fitted coefficient sets the wave’s overall scale; the two identical negative pions require coherent contributions from both \(\pi^+\pi^-\) pairings.
Decay definition#
The final-state indices are \(1=\pi^-\), \(2=\pi^+\), and \(3=\pi^-\). Both vertices have orbital angular momentum \(L=1\): \(X\to\rho\pi\) couples the daughter spins to \(S=1\), while \(\rho\to\pi\pi\) has \(S=0\). All masses and widths below are in GeV.
index |
name |
LaTeX |
\(J^P\) |
mass (MeV) |
width (MeV) |
|---|---|---|---|---|---|
0 |
|
\(X\) |
\(1^-\) |
1,550 |
0 |
|
\(\rho(770)\) |
\(1^-\) |
768 |
150 |
|
1 |
|
\(\pi^-\) |
\(0^-\) |
139 |
0 |
2 |
|
\(\pi^+\) |
\(0^-\) |
139 |
0 |
Lineshapes for dynamics#
For each \(\rho\) contribution, use
This running width follows the reference expression, which has no additional \(m_\rho/\sqrt{s}\) factor. The vertex factors use the unnormalized Blatt–Weisskopf convention: AmpForm’s \(L=1\) form factor is divided by \(\sqrt{2}\). The radii are \(R_X=4.941\) and \(R_\rho=4.94\) in \(\mathrm{GeV}^{-1}\).
The DPD cyclic ordering makes the P-wave amplitudes antisymmetric under exchange of the negative pions. An explicit relative minus sign between the two chains produces a symmetric total amplitude. We put that sign in the dynamics builder so that the two pairings can share one coefficient.
Model formulation#
Select LS couplings at both vertices with min_ls=False and combine their product into a single complex coefficient with use_coefficients=True. The coefficient indices are \((L_\mathrm{prod},S_\mathrm{prod},L_\mathrm{dec},S_\mathrm{dec})\). Both pairings have the same coefficient; their relative sign is already in the dynamics.
The reference convention includes an explicit \(\sqrt{2J_R+1}\) multiplying each chain amplitude. The general builder uses the same normalized LS recoupling factors but leaves this factor in the coefficient. We therefore assign \(c_\mathrm{builder}=\sqrt{2J_R+1}\,c_\mathrm{reference}\).
builder = DalitzPlotDecompositionBuilder(decay, min_ls=False)
builder.dynamics_choices.register_builder(chains[0], formulate_rho_dynamics)
model = builder.formulate(reference_subsystem=1, use_coefficients=True)
coefficient = sp.IndexedBase(R"\mathcal{H}^\mathrm{LS,\rho(770)}")[1, 1, 1, 0]
assert coefficient in model.parameter_defaults
reference_weight = -0.003616 + 0.0418j
model.parameter_defaults[coefficient] = (
np.sqrt(float(2 * rho.spin + 1)) * reference_weight
)
model.intensity
Numerical evaluation#
The model contains helicity-angle expressions in model.variables. A TensorWaves transformer evaluates those angles from two independent Mandelstam invariants. Substituting the parameter defaults then gives a numerical intensity, without using the serialization compiler.
Dalitz plot#
Evaluate only points inside the physical Dalitz boundary. The plot uses \(\sigma_1=m^2(\pi^+_2\pi^-_3)\) and \(\sigma_3=m^2(\pi^-_1\pi^+_2)\). Exchanging the negative pions transposes these axes, so the intensity must be symmetric.