graphicle.select.fastjet_clusters(pmu: MomentumArray, radius: float, p_val: float, pt_cut: float | None = None, eta_cut: float | None = None, top_k: int | None = None) list[MaskArray][source]

Clusters particles using the FastJet implementation of the generalised-kt algorithm.

New in version 0.2.3: Migrated from graphicle.calculate.cluster_pmu().

Parameters:
pmu : MomentumArray

Four-momenta, \(p_\mu\), of particles in the point cloud.

radius : float

The radius, \(R\), of the clusters to be produced.

p_val : float

The exponent parameter determining the transverse momentum, \(p_T\), dependence of iterative pseudojet merges. Positive values cluster low \(p_T\) particles first, positive values cluster high \(p_T\) particles first, and a value of zero corresponds to no \(p_T\) dependence.

pt_cut : float, optional

Jet transverse momentum threshold. Jets with \(p_T\) below this are discarded.

eta_cut : float, optional

Jet pseudorapidity, \(\eta\), threshold. Jets with \(|\eta|\) above this are discarded.

top_k : int, optional

Only return a maximum top_k number of jets, sorted by transverse momentum. ie. if top_k is 3, only 3 jets with highest \(p_T\) will be given. If top_k exceeds the number of jets reconstructed, all of the jets will be included.

Returns:

List containing masks over the input data for each jet clustering, in order of descending \(p_T\).

Return type:

list[MaskArray]

Raises:

ValueError – When a negative value is passed to eta_cut, pt_cut, or radius. Additionally, when top_k is passed as either a non-integer, or with a value less than one.

Notes

p_val set to -1 gives anti-kT, 0 gives Cambridge-Aachen, and 1 gives kT clusterings.

To prevent expensive repeated memory allocations, the underlying masks are stored as a single contiguous array, where each row is the data for the respective MaskArray in the output list. This may cause undefined behaviour if you apply views on the underlying data in a MaskArray without copying it.


Last update: Jun 27, 2025