FastJet
3.3.0
|
Help solve closest pair problems with generic interparticle and beam distance (generic case) More...
#include <fastjet/NNH.hh>
Public Member Functions | |
NNH (const std::vector< PseudoJet > &jets) | |
constructor with an initial set of jets (which will be assigned indices 0 ... More... | |
NNH (const std::vector< PseudoJet > &jets, I *info) | |
void | start (const std::vector< PseudoJet > &jets) |
initialisation from a given list of particles | |
double | dij_min (int &iA, int &iB) |
return the dij_min and indices iA, iB, for the corresponding jets. More... | |
void | remove_jet (int iA) |
remove the jet pointed to by index iA | |
void | merge_jets (int iA, int iB, const PseudoJet &jet, int jet_index) |
merge the jets pointed to by indices A and B and replace them with jet, assigning it an index jet_index. More... | |
~NNH () | |
a destructor | |
Public Member Functions inherited from fastjet::NNBase< I > | |
NNBase () | |
Default constructor. | |
NNBase (I *info) | |
Constuctor with additional Info. | |
Public Member Functions inherited from fastjet::NNInfo< I > | |
NNInfo (I *info) | |
template<class BJ > | |
void | init_jet (BJ *briefjet, const fastjet::PseudoJet &jet, int index) |
Help solve closest pair problems with generic interparticle and beam distance (generic case)
(see NNBase.hh for an introductory description)
This variant provides an implementation for any distance measure. It is templated with a BJ (brief jet) classand can be used with or without an extra "Information" template, i.e. NNH<BJ> or NNH<BJ,I>
For the NNH<BJ> version of the class to function, BJ must provide three member functions
For the NNH<BJ,I> version to function, the BJ::init(...) member must accept an extra argument
NOTE: THE DISTANCE MUST BE SYMMETRIC I.E. SATISFY a.distance(b) == b.distance(a)
For an example of how the NNH<BJ> class is used, see the Jade (and EECambridge) plugins
NB: the NNH algorithm is expected N^2, but has a worst case of N^3. Many QCD problems tend to place one closer to the N^3 end of the spectrum than one would like. There is scope for further progress (cf Eppstein, Cardinal & Eppstein), nevertheless the current class is already significantly faster than standard N^3 implementations.
|
inline |
|
virtual |
return the dij_min and indices iA, iB, for the corresponding jets.
If iB < 0 then iA recombines with the beam
Implements fastjet::NNBase< I >.
|
virtual |
merge the jets pointed to by indices A and B and replace them with jet, assigning it an index jet_index.
Implements fastjet::NNBase< I >.