graphicle.transform.split_hardest(momenta: MomentumArray, z: float, angle: float, axis: tuple[float, float] | SphericalAngle | None = None) MomentumArray[source]

Splits the momentum of the hardest particle into two momenta. Energy and 3-momentum is conserved over the whole MomentumArray. Hardness and collinearity of the split are determined by function parameters.

New in version 0.4.0.

Parameters:
momenta : MomentumArray

Set of four-momenta, representing the point cloud of particles, prior to splitting.

z : float

Energy fraction retained by the first child after the split. Must be in range 0.0 < z <= 0.5.

angle : float

Angular displacement of the first child after the split.

axis : SphericalAngle or tuple[float, float], optional

The theta and phi values of the axis vector about which to rotate the momenta. If None, will choose the axis normal to the plane swept out by the hardest and softest momentum constituents.

Returns:

Set of four-momenta after splitting, such that the length is increased by one. The highest transverse momentum element has been removed from the set, and replaced with two momenta elements. The first and second children of the split are the penultimate and final elements of the MomentumArray, respectively.

Return type:

MomentumArray

See also

soft_hard_axis

Axis of plane swept by softest and hardest momenta.

rotation_matrix

Matrix to rotate 3-vectors about a given axis.

Notes

This function is intended to check the IRC safety of our GNN jet clustering algorithms. It is implemented from the description given in a jet tagging paper [1], which defined the IRC safe message passing procedure used in this work.

References


Last update: Jun 27, 2025