ATLAS Offline Software
|
The vertex map class to be used to find multi-track vertices. More...
#include <VtxMap.h>
Classes | |
class | Cell |
The class of a cell in 3D histogram. More... | |
class | CellCluster |
Stores the result of vertex clustering performed in VtxMap. More... | |
Public Member Functions | |
VtxMap (TH3D *ptr) | |
VtxMap (std::unique_ptr< TH3D > &&uptr) | |
VtxMap () | |
~VtxMap () | |
VtxMap & | operator= (VtxMap &&)=default |
Move assignment operator. More... | |
VtxMap (VtxMap &&)=default | |
void | Fill (const WrkVrt *) |
Fill vertex map with vertex from its pointer. More... | |
bool | isInMapVolume (const KDPoint< double, 3 > &) const |
Check if the point is inside the map volume. More... | |
bool | isInMapVolume (double, double, double) const |
Check if the point is inside the map volume. More... | |
bool | isInMapVolume (int, int, int) const |
Check if the point is inside the map volume. More... | |
KDPoint< double, 3 > | getBinCenter (int) const |
Get bin center position in KDPoint with specified coordinate. More... | |
int | getVtxNum (double, double, double) const |
Count vertex number in the cell at the given position. More... | |
void | lock () |
Lock the map to prevent adding vertex after clustering. More... | |
void | unlock () |
Unlock the map. Not recomended. More... | |
void | Reset () |
Reset vertex map hist, cell list and vertex list. More... | |
void | ClusterizeCells (double, size_t) |
Generate clusters. More... | |
std::vector< Cluster< int > > | getClustersBin () const |
Return a copy of list of clusters consist of bin ID. More... | |
size_t | nClusters () const |
Return the number of the clusters. More... | |
CellCluster | getCluster (size_t) |
Retrieve clustering result as CellCluster object. More... | |
std::vector< const WrkVrt * > | getVtxInCluster (size_t) |
Retrieve list of vertices in i-th cluster. More... | |
Private Member Functions | |
void | Fill (double, double, double) |
Private function to fill vertex map from position. More... | |
std::vector< int > | getNeighborCells_ (const int &, double) |
Region query function to be passed to DBScan. More... | |
Private Attributes | |
std::unique_ptr< TH3D > | m_mapHist |
std::unordered_set< int > | m_activeCells |
std::unordered_map< int, Cell > | m_cellVtxDict |
bool | m_locked = false |
DBScan< int > | m_dbscan |
The vertex map class to be used to find multi-track vertices.
First, Fill() vertex map and lock() it. Once the map is locked, you can't Fill() it anymore. Then execute ClusterizeCells() to perform clustering. This can't be executed until the map is locked. You can read the result by retrieving cell clusters through getCluster().
|
inline |
|
inline |
|
inline |
|
inline |
|
default |
void TrigVSI::VtxMap< WrkVrt, Cord >::ClusterizeCells | ( | double | eps, |
size_t | minN | ||
) |
Generate clusters.
This command locks the map so you cannot add any additional vertex after this process. If you need to add some, Reset() or unlock() and execute ClusterizeCells() again.
[in] | eps | Radius to search neighbor points. |
[in] | minN | Lower threshold to determine the cell as a core. |
Definition at line 342 of file VtxMap.h.
void TrigVSI::VtxMap< WrkVrt, Cord >::Fill | ( | const WrkVrt * | vtx_ptr | ) |
|
private |
|
inline |
VtxMap< WrkVrt, Cord >::CellCluster TrigVSI::VtxMap< WrkVrt, Cord >::getCluster | ( | size_t | icls | ) |
|
inline |
|
private |
std::vector< const WrkVrt * > TrigVSI::VtxMap< WrkVrt, Cord >::getVtxInCluster | ( | size_t | icls | ) |
|
inline |
Count vertex number in the cell at the given position.
Return -1 when given position is out from the range ( Without considering projection).
|
inline |
Check if the point is inside the map volume.
[in] | point | KDPoint to check. |
This check does not consider the projection.
|
inline |
Check if the point is inside the map volume.
[in] | x1 | x1 component in specified coordinate. |
[in] | x2 | x2 component in specified coordinate. |
[in] | x3 | x3 component in specified coordinate. |
This check does not consider the projection.
Definition at line 233 of file VtxMap.h.
|
inline |
Check if the point is inside the map volume.
[in] | ibinx | ibin in x1 axis. |
[in] | ibiny | ibin in x2 axis. |
[in] | ibinz | ibin in x3 axis. |
|
inline |
|
inline |
|
default |
Move assignment operator.
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |