graphicle.data.MomentumArray.shift_eta(shift: float | ndarray[Any, dtype[float64]], experimental: bool = False, max_corrections: int = 10, abs_tol: float = 1e-10) MomentumArray[source]

Performs a Lorentz boost to a new frame, with a pseudorapidity increased by shift.

New in version 0.2.11.

Parameters:
shift : float or ndarray[float64]

The change in pseudorapidity. If scalar, change will be broadcast over all elements. If ndarray, change will be element-wise.

experimental : bool

If True performs the “experimentalist” version of the shift, ie. assuming all particles are massless. This is not a true Lorentz boost, and so the masses of the particles, and internal angles between them, will not be conserved, but it may be faster to calculate, and consistent with what is done in experimental analyses. The energy component of the momentum will be set to numpy.nan. If False, a true Lorentz boost is performed, iteratively converging on the desired location using max_corrections and abs_tol, and the energy component will be transformed to the appropriate frame. Default is False.

max_corrections : int

Maximum number of Lorentz boosts to iteratively converge on the desired pseudorapidity (see notes). Default is 10.

abs_tol : float

Maximum tolerated absolute difference between the momentum in \(\eta\) from its desired shifted location. Default is 1.0e-14.

Returns:

Copy of this array, with the shifted pseudorapidity value.

Return type:

MomentumArray

Warns:

NumericalStabilityWarning – If the method is unable to converge within abs_tol after max_corrections corrective iterations.

Notes

With experimental=False, this method bootstraps the shift_rapidity() method, calling it repeatedly, and recalculating the difference between the desired location in \(\eta\) with the \(p_T\) weighted centroid of the momentum. This difference gives the correction by which to shift in the next iteration. Method exits when either the max_corrections iterations are exceeded, or the correction falls below abs_tol.

With experimental=True, the pseudorapidity is simply shifted, and the corresponding z-component is recalculated. Energy, and attributes which rely on energy, will take a value of np.nan.


Last update: Jun 27, 2025