|
FastJet
3.1.3
|
Help solve closest pair problems with generic interparticle and beam distance. 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) |
| 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::NNHInfo< I > | |
| NNHInfo (I *info) | |
| template<class NNBJ > | |
| void | init_jet (NNBJ *briefjet, const fastjet::PseudoJet &jet, int index) |
Help solve closest pair problems with generic interparticle and beam distance.
Class to help solve closest pair problems with generic interparticle distances and a beam distance, using Anderberg's Nearest Neighbour Heuristic.
It is templated with a BJ (brief jet) class — BJ should basically cache the minimal amount of information that is needed to efficiently calculate interparticle distances and particle-beam distances.
This class can be used with or without an extra "Information" template, i.e. NNB<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
where info might be a pointer to a class that contains, e.g., information about R, or other parameters of the jet algorithm
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.
Implementation note: this class derives from NNHInfo, which deals with storing any global information that is needed during the clustering
|
inline |
| double fastjet::NNH< BJ, I >::dij_min | ( | int & | iA, |
| int & | iB | ||
| ) |
| void fastjet::NNH< BJ, I >::merge_jets | ( | int | iA, |
| int | iB, | ||
| const PseudoJet & | jet, | ||
| int | jet_index | ||
| ) |
1.8.8