12#ifndef O2_ITS_CLUSTERLINES_H
13#define O2_ITS_CLUSTERLINES_H
18#include <Math/SMatrix.h>
19#include <Math/SVector.h>
29#if !defined(__HIPCC__) && !defined(__CUDACC__)
55#if !defined(__HIPCC__) && !defined(__CUDACC__)
62 ClusterLines(
const int firstLabel,
const Line& firstLine,
const int secondLabel,
const Line& secondLine);
63 ClusterLines(gsl::span<const int> lineLabels, gsl::span<const Line> lines);
64 void add(
const int lineLabel,
const Line& line);
76 float getR() const noexcept {
return std::sqrt(
getR2()); }
void accumulate(const Line &line)
float getR2() const noexcept
const auto & getTimeStamp() const noexcept
bool operator==(const ClusterLines &rhs) const noexcept
auto & getLabels() const noexcept
bool isValid() const noexcept
auto getSize() const noexcept
float getAvgDistance2() const
void add(const int lineLabel, const Line &line)
std::vector< int > mLabels
ClassDefNV(ClusterLines, 1)
std::array< float, 3 > mVertex
float getR() const noexcept
void computeClusterCentroid()
auto const & getVertex() const
const float * getRMS2() const
GLenum GLint GLint * precision
constexpr float Tolerance
SVector3f cosinesDirector
bool operator==(const Line &) const =default
static float getDistance2FromPoint(const Line &line, const std::array< float, 3 > &point)
bool isEmpty() const noexcept
static float getDCA2(const Line &, const Line &, const float precision=constants::Tolerance)
static float getDCA(const Line &, const Line &, const float precision=constants::Tolerance)
static float getDistanceFromPoint(const Line &line, const std::array< float, 3 > &point)
static SMatrix3f getDCAComponents(const Line &line, const std::array< float, 3 > &point)