Polarimeter vector field#
Amplitude model#
The helicity amplitude for the \(\Lambda_c \to p K \pi\) decay reads as a sum of three partial wave series, incorporating \(\Lambda^{**}\) resonances, \(\Delta^{**}\) resonances, and \(K^{**}\) resonances. The particles are ordered as \(\Lambda_c(\mathbf{0}) \to p(\mathbf{1}) \pi(\mathbf{2}) K(\mathbf{3})\).
where \(\zeta^{i}_{j(k)}\) is the Wigner rotation for particle \(i,k\) and chain \(j\). The number in brackets indicates the overall definition of the helicity states \(|1/2,\nu\rangle\) and \(|1/2,\lambda\rangle\) for \(\Lambda_c\) and proton, respectively.
We use the particle-2 convention for the helicity couplings, which leads to the phase factor in the transitions \(\Lambda_c\to K^{**}p\), and \(\Lambda\to K p\):
The helicity couplings in the particle-2 convention obey simple properties with respect to the parity transformation:
It reduced amount of the couplings in the strong decay of isobars. Moreover the magnitude of the couplings cannot be determined separately, therefore, it is set to 1:
The helicity couplings for the \(\Lambda_c^+\) decay are fit parameters. There are four of them for the \(K^{**}\) chain, and two for both the \(\Delta^{**}\) and \(\Lambda^{**}\) chains.
Resonances and LS-scheme#
Resonance choices and their \(LS\)-couplings are defined as follows:
resonance_names = {
1: ["K*(892)0"],
2: ["Lambda(1520)", "Lambda(1670)"],
3: ["Delta(1232)++"],
}
resonance | \(j^P\) | \(m\) (MeV) | \(\Gamma_0\) (MeV) | \(l_R\) | \(l_{\Lambda_c}^\mathrm{min}\) |
---|---|---|---|---|---|
\(K^{*}(892)^{0} \to \pi^{+} K^{-}\) | \(1^-\) | 895 | 47 | 1 | 0 |
\(\Lambda(1520) \to p K^{-}\) | \(3/2^-\) | 1519 | 16 | 2 | 1 |
\(\Lambda(1670) \to p K^{-}\) | \(1/2^-\) | 1674 | 30 | 0 | 0 |
\(\Delta(1232)^{++} \to p \pi^{+}\) | \(3/2^+\) | 1232 | 117 | 1 | 1 |
Aligned amplitude#
Dynamics#
The lineshape function is factored out of the \(\Lambda_c\) helicity coupling:
The relativistic Breit-Wigner parametrization reads:
with energy-dependent width given by
The form-factor \(F\) is the Blatt-Weisskopf factor with the length factor \(R=5\,\)GeV\(^{-1}\):
The break-up momenta is calculated for every decay chain separately. Using the notations \(0->R(\to ij) k\), one writes:
The momenta with subindex zero are computed for nominal mass of the resonance, \(s=m^2\). The three-argument Källén function reads:
Formulation with SymPy
Decay chain amplitudes#
Angle definitions#
Angles with repeated lower indices are trivial. The other angles are computed from the invariants and these are the angles with sign
The expressions for the cosine of the positive (anticlockwise) angles, \(\theta_{12}, \theta_{23}, \theta_{13}\) and \(\hat\theta_{1(2)}, \hat\theta_{3(1)}, \zeta^1_{1(3)}\) can be expressed in terms of Mandelstam variables \(\sigma_1, \sigma_2, \sigma_3\) using [Mikhasenko et al., 2020], Appendix A:
where \(m_0\) is the mass of the initial state \(\Lambda_c\) and \(m_1, m_2, m_3\) are the masses of \(p, \pi, K\), respectively:
Helicity coupling values#
Intensity expression#
Incoherent sum of the amplitudes defined by Aligned amplitude:
Remaining free_symbols
are indeed the specific amplitudes as defined by Decay chain amplitudes:
The specific amplitudes from Decay chain amplitudes need to be formulated for each value of \(\nu, \lambda\), so that they can be substituted in the top expression:
Polarization sensitivity#
We introduce the polarimeter vector field (polarization sensitivity) of the \(\Lambda_c\) decay. It is defined by three quantities \((\alpha_x,\alpha_y,\alpha_z)\) forming a three-dimensional vector \(\vec\alpha\) dependent on just two decay variables, \(\sigma_1=m_{K\pi}^2\), and \(\sigma_2=m_{pK}^2\).
The polarimeter vector field is computed by averaging the Pauli matrices \(\vec\sigma\) contracted with the \(\Lambda_c^+\) helicity indices given the transition amplitude.
The quantities \(\vec\alpha(m_{K\pi},m_{pK})\) give the model-independent representation of the \(\Lambda_c^+\) decay process. It can be used to study \(\Lambda_c^+\) production polarization using
where \(R_{ij}(\alpha,\beta,\gamma)\) is a three-dimensional rotation matrix:
and \(I_0\) is the averaged decay rate
def to_index(helicity):
"""Symbolic conversion of half-value helicities to Pauli matrix indices."""
# https://github.com/ComPWA/compwa.github.io/pull/129#issuecomment-1096599896
return sp.Piecewise(
(1, sp.LessThan(helicity, 0)),
(0, True),
)
ν_prime = sp.Symbol(R"\nu^{\prime}")
polarimetry_exprs = tuple(
PoolSum(
formulate_aligned_amplitude(ν, λ).conjugate()
* msigma(i)[to_index(ν), to_index(ν_prime)]
* formulate_aligned_amplitude(ν_prime, λ),
(λ, [-half, +half]),
(ν, [-half, +half]),
(ν_prime, [-half, +half]),
)
/ intensity_expr
for i in (1, 2, 3)
)
Properties of the vector \(\vec\alpha\)#
The vector \(\vec \alpha\) introduced in Eq. (3) obeys the following properties:
It is a three-dimensional vector defined in the rest frame of the decaying particle. Particularly, it is transformed as a regular vector in case initial (alignment) configuration change.
The length of the vector is limited by 1: \(|\vec{\alpha}| < 1\)
\(\alpha_y=0\) for the decays of a fermion to a fermions and (pseudo)scalar
Here is the prove of the second statement:
where
and
To constraint the length of the \(\vec\alpha\), one notices \(ab - c \ge 0\). Therefore,
since \(a,b \geq 0\).
Computations with TensorWaves#
Conversion to computational backend#
The full expression tree can be converted to a computational, parametrized function as follows. Note that identify all coupling symbols are interpreted as parameters. The remaining symbols (the angles) become arguments to the function.
free_parameters = {
symbol: value
for symbol, value in parameter_defaults.items()
if (symbol.name.startswith("m_") and symbol not in masses)
or symbol.name.startswith(R"\Gamma_")
or symbol in prod_couplings
}
fixed_parameters = {
symbol: value
for symbol, value in parameter_defaults.items()
if symbol not in free_parameters
}
intensity_func = create_parametrized_function(
unfolded_intensity_expr.xreplace(fixed_parameters),
parameters=free_parameters,
backend="jax",
)
polarimetry_funcs = tuple(
create_parametrized_function(
expr.xreplace(fixed_parameters),
parameters=free_parameters,
backend="jax",
)
for expr in unfolded_polarimetry_exprs
)
Phase space#
The \(\Lambda_c^+ \to p K \pi\) kinematics is fully described by two dynamic variables, \(m_{K\pi}\) and \(m_{pK}\) (see Phase space for a three-body decay). The third Mandelstam variable can be computed from the other two and the masses of the initial and final state:
Values for the angles will be computed form the Mandelstam values with a data transformer for the symbolic angle definitions:
kinematic_variables = {
symbol: expression.doit().xreplace(masses).xreplace(fixed_parameters)
for symbol, expression in angles.items()
}
kinematic_variables.update({s: s for s in [σ1, σ2, σ3]}) # include identity
transformer = SympyDataTransformer.from_sympy(kinematic_variables, backend="jax")
We now define phase space over a grid that contains the space in the Dalitz plane that is kinematically ‘available’ to the decay:
m0_val, m1_val, m2_val, m3_val = masses.values()
σ1_min = (m2_val + m3_val) ** 2
σ1_max = (m0_val - m1_val) ** 2
σ2_min = (m1_val + m3_val) ** 2
σ2_max = (m0_val - m2_val) ** 2
def generate_phsp_grid(resolution: int):
x = np.linspace(σ1_min, σ1_max, num=resolution)
y = np.linspace(σ2_min, σ2_max, num=resolution)
X, Y = np.meshgrid(x, y)
Z = compute_third_mandelstam.function(X, Y)
phsp = {"sigma1": X, "sigma2": Y, "sigma3": Z}
return X, Y, transformer(phsp)
X, Y, phsp = generate_phsp_grid(resolution=500)
Intensity distribution#
Finally, all intensities can be computed as follows:
Fit fractions#
The total decay rate for \(\Lambda_c^+ \to pK\pi\) can be broken into fractions that correspond to the different decay chains and interference terms. The total rate is computed as an integral of the intensity over decay kinematics:
where \(\Phi_0\) is an (irrelevant) constant equal to the flat phase-space integral, \((m_{pK,e}, m_{K\pi,e})\) is a vector of the kinematic variables for the \(e\)-th point in the MC sample.
The conditional argument \(\{\mathcal{H}\}\) indicates dependence of the rate on the value of the couplings. The individual fractions are found by computing the total rate for a subset of couplings set to zero,
where the terms with a single chain index are the rate of the decay chain. The sum of all fractions should give the total rate: