FastJet 3.4.1
Public Member Functions | List of all members
fastjet::DynamicNearestNeighbours Class Referenceabstract

More...

#include <fastjet/internal/DynamicNearestNeighbours.hh>

Inheritance diagram for fastjet::DynamicNearestNeighbours:
Inheritance graph
[legend]

Public Member Functions

virtual int NearestNeighbourIndex (const int ii) const =0
 Dummy initialiser — does nothing! More...
 
virtual double NearestNeighbourDistance (const int ii) const =0
 Returns the distance to the nearest neighbour of point labelled by index ii (assumes ii is valid) More...
 
virtual bool Valid (const int index) const =0
 Returns true iff the given index corresponds to a point that exists in the DNN structure (meaning that it has been added, and not removed in the meantime) More...
 
virtual void RemoveAndAddPoints (const std::vector< int > &indices_to_remove, const std::vector< EtaPhi > &points_to_add, std::vector< int > &indices_added, std::vector< int > &indices_of_updated_neighbours)=0
 remove the points labelled by the std::vector indices_to_remove, and add the points specified by the std::vector points_to_add (corresponding indices will be calculated automatically); the idea behind this routine is that the points to be added will somehow be close to the one or other of the points being removed and this can be used by the implementation to provide hints for inserting the new points in whatever structure it is using. More...
 
void RemovePoint (const int index, std::vector< int > &indices_of_updated_neighbours)
 Remove the point labelled by index and return the list of points whose nearest neighbours have changed in the process. More...
 
void RemoveCombinedAddCombination (const int index1, const int index2, const EtaPhi &newpoint, int &index3, std::vector< int > &indices_of_updated_neighbours)
 Removes the two points labelled by index1, index2 and adds in the a point with coordinates newpoint; it returns an index for the new point (index 3) and a std::vector of indices of neighbours whose nearest neighbour has changed (the list includes index3, i.e. More...
 
virtual ~DynamicNearestNeighbours ()
 destructor – here it is now implemented More...
 

Detailed Description

Definition at line 98 of file DynamicNearestNeighbours.hh.

Constructor & Destructor Documentation

◆ ~DynamicNearestNeighbours()

virtual fastjet::DynamicNearestNeighbours::~DynamicNearestNeighbours ( )
inlinevirtual

destructor – here it is now implemented

Definition at line 174 of file DynamicNearestNeighbours.hh.

Member Function Documentation

◆ NearestNeighbourIndex()

virtual int fastjet::DynamicNearestNeighbours::NearestNeighbourIndex ( const int  ii) const
pure virtual

Dummy initialiser — does nothing!

Initialiser — sets up the necessary structures to allow efficient nearest-neighbour finding on the std::vector<EtaPhi> of input points Returns the index of the nearest neighbour of point labelled by ii (assumes ii is valid)

Implemented in fastjet::Dnn2piCylinder, fastjet::Dnn3piCylinder, fastjet::Dnn4piCylinder, and fastjet::DnnPlane.

◆ NearestNeighbourDistance()

virtual double fastjet::DynamicNearestNeighbours::NearestNeighbourDistance ( const int  ii) const
pure virtual

Returns the distance to the nearest neighbour of point labelled by index ii (assumes ii is valid)

Implemented in fastjet::Dnn2piCylinder, fastjet::Dnn3piCylinder, fastjet::Dnn4piCylinder, and fastjet::DnnPlane.

◆ Valid()

virtual bool fastjet::DynamicNearestNeighbours::Valid ( const int  index) const
pure virtual

Returns true iff the given index corresponds to a point that exists in the DNN structure (meaning that it has been added, and not removed in the meantime)

Implemented in fastjet::Dnn2piCylinder, fastjet::Dnn3piCylinder, fastjet::Dnn4piCylinder, and fastjet::DnnPlane.

◆ RemoveAndAddPoints()

virtual void fastjet::DynamicNearestNeighbours::RemoveAndAddPoints ( const std::vector< int > &  indices_to_remove,
const std::vector< EtaPhi > &  points_to_add,
std::vector< int > &  indices_added,
std::vector< int > &  indices_of_updated_neighbours 
)
pure virtual

remove the points labelled by the std::vector indices_to_remove, and add the points specified by the std::vector points_to_add (corresponding indices will be calculated automatically); the idea behind this routine is that the points to be added will somehow be close to the one or other of the points being removed and this can be used by the implementation to provide hints for inserting the new points in whatever structure it is using.

In a kt-algorithm the points being added will be a result of a combination of the points to be removed – hence the proximity is (more or less) guaranteed.

Implemented in fastjet::Dnn2piCylinder, fastjet::Dnn3piCylinder, fastjet::Dnn4piCylinder, and fastjet::DnnPlane.

◆ RemovePoint()

void fastjet::DynamicNearestNeighbours::RemovePoint ( const int  index,
std::vector< int > &  indices_of_updated_neighbours 
)
inline

Remove the point labelled by index and return the list of points whose nearest neighbours have changed in the process.

Definition at line 140 of file DynamicNearestNeighbours.hh.

◆ RemoveCombinedAddCombination()

void fastjet::DynamicNearestNeighbours::RemoveCombinedAddCombination ( const int  index1,
const int  index2,
const EtaPhi newpoint,
int &  index3,
std::vector< int > &  indices_of_updated_neighbours 
)
inline

Removes the two points labelled by index1, index2 and adds in the a point with coordinates newpoint; it returns an index for the new point (index 3) and a std::vector of indices of neighbours whose nearest neighbour has changed (the list includes index3, i.e.

the new point).

Definition at line 156 of file DynamicNearestNeighbours.hh.


The documentation for this class was generated from the following file: