4#ifndef TRIGTOOLS_TRIG_VSI_IWRKVTX
5#define TRIGTOOLS_TRIG_VSI_IWRKVTX
20#include <unordered_set>
39 virtual double x()
const = 0;
40 virtual double y()
const = 0;
41 virtual double z()
const = 0;
55template<
typename WrkVrt>
116template<
typename WrkVrt>
125 std::pair<size_t, size_t> p_tmp_ = std::minmax( vrt->selectedTrackIndices().at(0),vrt->selectedTrackIndices().at(1) );
132 for (
auto j_itr = std::next(i_itr); j_itr !=
m_selTrkIndices.end(); ++j_itr ) {
133 std::pair<size_t, size_t> p_tmp_ = std::minmax(*i_itr,*j_itr);
point classes for clustering
Interface for vertex classes processed in VtxMap.
virtual double z() const =0
virtual const std::deque< size_t > & selectedTrackIndices() const =0
Return indices of tracks associated with the vertex.
virtual double y() const =0
virtual ~IWrkVrt()=default
virtual std::deque< size_t > & selectedTrackIndices()=0
Return indices of tracks associated with the vertex.
virtual double x() const =0
const std::vector< const WrkVrt * > & vtxList()
Return a reference to vertex list.
std::vector< const WrkVrt * > m_vtxLists
std::vector< const WrkVrt * > getVtxList()
Return a copy of vertex list.
const std::vector< std::pair< size_t, size_t > > & incompIndices()
Return reference to incompatible track pair list.
VtxPack(std::vector< const WrkVrt * > &v)
Constructor.
const std::unordered_set< size_t > & selectedTrackIndices()
Return reference to selected track indices list.
std::vector< std::pair< size_t, size_t > > getIncompIndices()
Return copy of incompatible track pair list.
size_t nVtx()
Return the number of vertices.
std::unordered_set< size_t > getSelectedTrackIndices()
const WrkVrt * getVtx(size_t ivtx)
Return a copy of i-th vertex.
std::vector< std::pair< size_t, size_t > > m_incompIndices
VtxPack(std::vector< const WrkVrt * > &&v)
void emplace_back(const WrkVrt *vtx_ptr)
Emplace vertex pointer to vertex list.
std::unordered_set< size_t > m_selTrkIndices
void updateLists()
Update set of tracks and incompatible track pair list.
double getWeight()
Return the weight of the container.
void checkUpdate()
Check if lists are up to date. If not, update them.
std::unordered_set< std::pair< size_t, size_t >, PairHash< size_t, size_t > > m_compIndices