ThreeBodyDecay¶
-
class ThreeBodyDecay : public madspace::Mapping¶
Genuine \(1 \to 3\) decay block.
Splits a parent momentum into three on-shell momenta, \(p_0 = p_1 + p_2 + p_3\) [1]. In the parent rest frame the five degrees of freedom are the daughter energies \(E_1, E_2\), the polar and azimuthal angles of \(\vec p_1\), and an azimuth \(\beta\) of \(\vec p_2\) about \(\vec p_1\); the opening angle between \(\vec p_1\) and \(\vec p_2\) is fixed by energy-momentum conservation. All five variables are sampled flat within their kinematic ranges, giving a constant \(1/8\) measure (Sec. 2.2.6 of [1], following [2]).
batchis the leading batch dimension. Masses are inputs here: supplied on the forward call and recovered by the inverse.Inputs
random_energy1–float, shape(batch,)– random number for \(E_1\).random_energy2–float, shape(batch,)– random number for \(E_2\).random_phi–float, shape(batch,)– azimuth of \(\vec p_1\).random_cos_theta–float, shape(batch,)– polar angle of \(\vec p_1\).random_beta–float, shape(batch,)– azimuth of \(\vec p_2\) about \(\vec p_1\).mass0–float, shape(batch,)– parent mass.mass1,mass2,mass3–float, shape(batch,)– daughter masses.com_momentum–float, shape(batch, 4)– parent four-momentum. Present only whencomis false.
Conditions
None.
Outputs
momentum1,momentum2,momentum3–float, shape(batch, 4)– the daughter momenta.
In addition every mapping returns a
weight(float, shape(batch,)), the Jacobian of the transformation.References
[1] T. Heimel, O. Mattelaer, R. Winterhalder, “MadSpace”, https://arxiv.org/abs/2602.06895 (Sec. 2.2.6)
[2] G. Knippen, PhD thesis, University of Freiburg (2019), https://doi.org/10.6094/UNIFR/154629