package hep.physics.jet;
import hep.physics.vec.HepLorentzVector;
import hep.physics.filter.Predicate;
import java.util.Collection;
import java.util.List;
/**
* Interface to be implemented by all jet finders
* @author Gary Bower
* @version 12/16/98
*/
public interface JetFinder
{
/**
* The number of jets found
* @return The number of jets found
*/
int njets();
/**
* calculate 4 vector sum for a jet
* @param index The index of the jet of interest
* @return The 4 vector of the jet
*/
HepLorentzVector jet(int index);
/**
* Find out which particles are in a paricular jet
* @param index The index of the jet of interest
* @return An enumeration of the particles within the jet
*/
List particlesInJet(int index);
/**
* Find out many particles are in a particular jet
* @param index The index of the jet of interest
* @return The number of particles
*/
int nParticlesPerJet(int index);
/**
* Find the jet with the fewest particles
* @return Returns the number of tracks in the jet with the fewest tracks
*/
int fewestTracks();
/**
* Set the current event data
* @param data An List of 3- or 4-vectors
*/
void setEvent(Collection data);
/**
* Set the current event data
* @param data An List of 3- or 4-vectors
* @param cut Only elements of e that are accepted by this predicate will be used in the jet finding
*/
void setEvent(Collection data, Predicate cut);
}