16#ifndef ALICEO2_ITSMFT_TRACKING_TRIPLET_H_
17#define ALICEO2_ITSMFT_TRACKING_TRIPLET_H_
58 setHitLayerMask(hitLayerMask);
63 setFirstTrackletIndex(
trkl0);
64 setSecondTrackletIndex(
trkl1);
74 GPUhd() int getInnerLayer()
const {
return getHitLayerMask().first(); }
75 GPUhd() int getFirstTrackletIndex()
const {
return mTracklets[0]; }
76 GPUhd()
void setFirstTrackletIndex(
int trkl) { mTracklets[0] = trkl; }
77 GPUhd() int getSecondTrackletIndex()
const {
return mTracklets[1]; }
78 GPUhd()
void setSecondTrackletIndex(
int trkl) { mTracklets[1] = trkl; }
79 GPUhd() int getLevel()
const {
return mLevel; }
81 GPUhd() int* getLevelPtr() {
return &mLevel; }
84 GPUhd() int getFirstClusterIndex()
const {
return mClusters[0]; }
85 GPUhd() int getSecondClusterIndex()
const {
return mClusters[1]; }
86 GPUhd() int getThirdClusterIndex()
const {
return mClusters[2]; }
87 GPUhd() auto& getClusters() {
return mClusters; }
88 GPUhd() const auto& getClusters()
const {
return mClusters; }
96 const auto mask = getHitLayerMask();
98 for (
int position = 0; position < 32; ++position) {
99 if (
mask.has(position) && slot++ == requestedSlot) {
100 return {position, mClusters[requestedSlot]};
107 const int slot = getHitLayerMask().slot(
layer);
112 uint32_t mHitLayerMask{0};
114 std::array<int, 2> mTracklets = o2::its::constants::helpers::initArray<int, 2, o2::its::constants::UnusedIndex>();
115 std::array<int, o2::its::constants::ClustersPerCell> mClusters =
116 o2::its::constants::helpers::initArray<int, o2::its::constants::ClustersPerCell, o2::its::constants::UnusedIndex>();
118 TripletFitFactor mTripletFactor{};
GPUhdDefault() Triplet()=default
GPUhdDefault() Triplet(const Triplet &)=default
GPUhd() const TripletFitFactor &tripletFactor() const noexcept
GPUhd() TripletFitFactor &tripletFactor() noexcept
GPUhd() const auto &getClusters() const
GPUhd() void setHitLayerMask(LayerMask mask)
GPUhd() void setFirstTrackletIndex(int trkl)
int int int int int const o2::its::TimeEstBC & time
int int int int int trkl1
int int int int int const o2::its::TimeEstBC innerL
GPUhd() void setSecondTrackletIndex(int trkl)
GPUhd() int getLevel() const
GPUhd() void setLevel(int level)
GPUhd() int getInnerLayer() const
GPUhd() int *getLevelPtr()
GPUhd() int getFirstClusterIndex() const
GPUhd() auto &getTimeStamp() noexcept
GPUhd() auto &getClusters()
GPUhd() int getFirstTrackletIndex() const
GPUhd() Triplet(int innerL
GPUhd() TripleClusterReference getClusterReference(int requestedSlot) const noexcept
GPUhd() const auto &getTimeStamp() const noexcept
GPUhd() int getSecondClusterIndex() const
GPUhd() int getThirdClusterIndex() const
GPUhd() int getCluster(int layer) const
GPUhd() int getSecondTrackletIndex() const
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
GLenum GLuint GLint GLint layer
constexpr int UnusedIndex
constexpr int ClustersPerCell
uint32_t trackClusterIndicesSize noexcept
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::vector< Cluster > clusters