FastJet 3.4.1
Public Member Functions | List of all members
fastjet::Dnn3piCylinder Class Reference

More...

#include <fastjet/internal/Dnn3piCylinder.hh>

Inheritance diagram for fastjet::Dnn3piCylinder:
Inheritance graph
[legend]
Collaboration diagram for fastjet::Dnn3piCylinder:
Collaboration graph
[legend]

Public Member Functions

 Dnn3piCylinder ()
 empty initaliser More...
 
 Dnn3piCylinder (const std::vector< EtaPhi > &, const bool &ignore_nearest_is_mirror=false, const bool &verbose=false)
 Initialiser from a set of points on an Eta-Phi plane, where eta can have an arbitrary ranges and phi must be in range 0 <= phi < 2pi;. More...
 
int NearestNeighbourIndex (const int ii) const
 Returns the index of the nearest neighbour of point labelled by ii (assumes ii is valid) More...
 
double NearestNeighbourDistance (const int ii) const
 Returns the distance to the nearest neighbour of point labelled by index ii (assumes ii is valid) More...
 
bool Valid (const int index) const
 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...
 
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)
 insertion and removal of points More...
 
- Public Member Functions inherited from fastjet::DynamicNearestNeighbours
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 49 of file Dnn3piCylinder.hh.

Constructor & Destructor Documentation

◆ Dnn3piCylinder() [1/2]

fastjet::Dnn3piCylinder::Dnn3piCylinder ( )
inline

empty initaliser

Definition at line 52 of file Dnn3piCylinder.hh.

◆ Dnn3piCylinder() [2/2]

fastjet::Dnn3piCylinder::Dnn3piCylinder ( const std::vector< EtaPhi > &  ,
const bool &  ignore_nearest_is_mirror = false,
const bool &  verbose = false 
)

Initialiser from a set of points on an Eta-Phi plane, where eta can have an arbitrary ranges and phi must be in range 0 <= phi < 2pi;.

NB: this class is more efficient than the plain Dnn4piCylinder class, but can give wrong answers when the nearest neighbour is further away than 2pi (in this case a point's nearest neighbour becomes itself, because it is considered to be a distance 2pi away). For the kt-algorithm (e.g.) this is actually not a problem (the distance need only be accurate when it is less than R), so we can tell the routine to ignore this problem – alternatively the routine will crash if it detects it occurring (only when finding the nearest neighbour index, not its distance).

◆ ~Dnn3piCylinder()

fastjet::Dnn3piCylinder::~Dnn3piCylinder ( )
inline

Definition at line 253 of file Dnn3piCylinder.hh.

Member Function Documentation

◆ NearestNeighbourIndex()

int fastjet::Dnn3piCylinder::NearestNeighbourIndex ( const int  current) const
inlinevirtual

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

Note: one of the difficulties of the 0–3pi mapping is that a point may have its mirror copy as its own nearest neighbour (if no other point is within a distance of 2pi).

This does not matter for the kt_algorithm with reasonable values of radius, but might matter for a general use of this algorithm – depending on whether or not the user has initialised the class with instructions to ignore this problem the program will detect and ignore it, or crash.

Implements fastjet::DynamicNearestNeighbours.

Definition at line 208 of file Dnn3piCylinder.hh.

◆ NearestNeighbourDistance()

double fastjet::Dnn3piCylinder::NearestNeighbourDistance ( const int  ii) const
inlinevirtual

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

Implements fastjet::DynamicNearestNeighbours.

Definition at line 233 of file Dnn3piCylinder.hh.

◆ Valid()

bool fastjet::Dnn3piCylinder::Valid ( const int  index) const
inlinevirtual

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)

Implements fastjet::DynamicNearestNeighbours.

Definition at line 248 of file Dnn3piCylinder.hh.

◆ RemoveAndAddPoints()

void fastjet::Dnn3piCylinder::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 
)
virtual

insertion and removal of points

Implements fastjet::DynamicNearestNeighbours.

Definition at line 106 of file Dnn3piCylinder.cc.


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