16#ifndef TRACKINGITSU_INCLUDE_TRACKLET_H_
17#define TRACKINGITSU_INCLUDE_TRACKLET_H_
24#ifndef GPUCA_GPUCODE_DEVICE
39 GPUhdi()
unsigned char isEmpty()
const
49#ifndef GPUCA_GPUCODE_DEVICE
70GPUhdi() Tracklet::Tracklet(const
int firstClusterOrderingIndex, const
int secondClusterOrderingIndex,
71 const
Cluster& firstCluster, const
Cluster& secondCluster,
short rof0 = -1,
short rof1 = -1)
72 : firstClusterIndex{firstClusterOrderingIndex},
73 secondClusterIndex{secondClusterOrderingIndex},
74 tanLambda{(firstCluster.zCoordinate - secondCluster.zCoordinate) /
75 (firstCluster.radius - secondCluster.radius)},
76 phi{o2::gpu::GPUCommonMath::ATan2(firstCluster.yCoordinate - secondCluster.yCoordinate,
77 firstCluster.xCoordinate - secondCluster.xCoordinate)},
78 rof{
static_cast<short>(rof0),
static_cast<short>(rof1)}
83GPUhdi() Tracklet::Tracklet(const
int idx0, const
int idx1,
float tanL,
float phi,
short rof0,
short rof1)
84 : firstClusterIndex{idx0},
85 secondClusterIndex{idx1},
88 rof{
static_cast<short>(rof0),
static_cast<short>(rof1)}
93GPUhdi() bool Tracklet::operator==(const Tracklet& rhs)
const
95 return this->firstClusterIndex ==
rhs.firstClusterIndex &&
96 this->secondClusterIndex ==
rhs.secondClusterIndex &&
97 this->tanLambda ==
rhs.tanLambda &&
99 this->rof[0] ==
rhs.rof[0] &&
100 this->rof[1] ==
rhs.rof[1];
103GPUhdi() bool Tracklet::operator!=(const Tracklet& rhs)
const
105 return this->firstClusterIndex !=
rhs.firstClusterIndex ||
106 this->secondClusterIndex !=
rhs.secondClusterIndex ||
107 this->tanLambda !=
rhs.tanLambda ||
111GPUhdi() unsigned
char Tracklet::operator<(const Tracklet& t)
const
119GPUhdi()
void Tracklet::
dump(const
int offsetFirst, const
int offsetSecond)
121 printf(
"fClIdx: %d sClIdx: %d rof1: %hu rof2: %hu\n", firstClusterIndex + offsetFirst, secondClusterIndex + offsetSecond, rof[0], rof[1]);
124GPUhdi()
void Tracklet::
dump(const
int offsetFirst, const
int offsetSecond)
const
126 printf(
"fClIdx: %d sClIdx: %d rof1: %hu rof2: %hu\n", firstClusterIndex + offsetFirst, secondClusterIndex + offsetSecond, rof[0], rof[1]);
131 printf(
"fClIdx: %d sClIdx: %d rof1: %hu rof2: %hu\n", firstClusterIndex, secondClusterIndex, rof[0], rof[1]);
136 printf(
"fClIdx: %d sClIdx: %d rof1: %hu rof2: %hu\n", firstClusterIndex, secondClusterIndex, rof[0], rof[1]);
HMPID cluster implementation.
void dump(const std::string what, DPMAP m, int verbose)
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
D const SVectorGPU< T, D > & rhs
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::string to_string(gsl::span< T, Size > span)
const const Cluster const Cluster short short rof1
const const Cluster const Cluster short rof0
GPUhdi() auto getDeltaRof() const
std::string asString() const