Implementations of some observables that are not covered by other portions of EnergyFlow. Some observables require the FastJet Python interface to be importable; if it's not, no warnings or errors will be issued, the observables will simply not be included in this module.

### image_activity

energyflow.image_activity(ptyphis, f=0.95, R=1.0, npix=33, center=None, axis=None)


Image activity, also known as $N_f$, is the minimum number of pixels in an image that contain a fraction $f$ of the total pT.

Arguments

• ptyphis : 2d numpy.ndarray
• Array of particles in hadronic coordinates; the mass is optional since it is not used in the computation of this observable.
• f : float
• The fraction $f$ of total pT that is to be contained by the pixels.
• R : float
• Half of the length of one side of the square space to tile with pixels when forming the image. For a conical jet, this should typically be the jet radius.
• npix : int
• The number of pixels along one dimension of the image, such that the image has shape (npix,npix).
• center : str or None
• If not None, the centering scheme to use to center the particles prior to calculating the image activity. See the option of the same name for center_ptyphims.
• axis : numpy.ndarray or None
• If not None, the [y,phi] values to use for centering. If None, the center of the image will be at (0,0).

Returns

• int
• The image activity defined for the specified image paramters.

### zg

energyflow.zg(ptyphims, zcut=0.1, beta=0, R=1.0, algorithm='ca')


Groomed momentum fraction of a jet, as calculated on an array of particles in hadronic coordinates. First, the particles are converted to FastJet PseudoJets and clustered according to the specified algorithm. Second, the jet is groomed according to the specified SoftDrop parameters and the momentum fraction of the surviving pair of Pseudojets is computed. See the SoftDrop paper for a complete description of SoftDrop.

Arguments

• ptyphims : numpy.ndarray
• An array of particles in hadronic coordinates that will be clustered into a single jet and groomed.
• zcut : float
• The $z_{\rm cut}$ parameter of SoftDrop. Should be between 0 and 1.
• beta : int or float
• The $\beta$ parameter of SoftDrop.
• R : float
• The jet radius to use for the grooming. Only relevant if beta!=0.
• algorithm : {'kt', 'ca', 'antikt'}
• The jet algorithm to use when clustering the particles. Same as the argument of the same name of cluster.

Returns

• float
• The groomed momentum fraction of the given jet.

### zg_from_pj

energyflow.zg_from_pj(pseudojet, zcut=0.1, beta=0, R=1.0)


Groomed momentum fraction $z_g$, as calculated on an ungroomed (but already clustered) FastJet PseudoJet object. First, the jet is groomed according to the specified SoftDrop parameters and then the momentum fraction of the surviving pair of Pseudojets is computed. See the SoftDrop paper for a complete description of SoftDrop. This version of $z_g$ is provided in addition to the above function so that a jet does not need to be reclustered if multiple grooming parameters are to be used.

Arguments

• pseudojet : fastjet.PseudoJet
• A FastJet PseudoJet that has been obtained from a suitable clustering (typically Cambridge/Aachen for SoftDrop).
• zcut : float
• The $z_{\rm cut}$ parameter of SoftDrop. Should be between 0 and 1.
• beta : int or float
• The $\beta$ parameter of SoftDrop.
• R : float
• The jet radius to use for the grooming. Only relevant if beta!=0.

Returns

• float
• The groomed momentum fraction of the given jet.