16#ifndef TRACKINGITSU_INCLUDE_CACELL_H_
17#define TRACKINGITSU_INCLUDE_CACELL_H_
27template <
int NClusters>
31 GPUhd()
int getInnerLayer()
const {
return getUserField(); }
32 GPUhd()
int getFirstTrackletIndex()
const {
return mTracklets[0]; };
33 GPUhd()
void setFirstTrackletIndex(
int trkl) { mTracklets[0] = trkl; };
34 GPUhd()
int getSecondTrackletIndex()
const {
return mTracklets[1]; };
35 GPUhd()
void setSecondTrackletIndex(
int trkl) { mTracklets[1] = trkl; };
36 GPUhd() float getChi2()
const {
return mChi2; };
38 GPUhd()
int getLevel()
const {
return mLevel; };
41 GPUhd() auto& getTimeStamp() noexcept {
return mTime; }
42 GPUhd() const auto& getTimeStamp() const noexcept {
return mTime; }
52 :
o2::track::TrackParCovF(tpc), mChi2(chi2), mLevel(
level), mTime(
time)
55 GPUhd() auto& clustersRaw() {
return mClusters; }
56 GPUhd() const auto& clustersRaw()
const {
return mClusters; }
61 std::array<int, 2> mTracklets = constants::helpers::initArray<int, 2, constants::UnusedIndex>();
62 std::array<int, NClusters> mClusters = constants::helpers::initArray<int, NClusters, constants::UnusedIndex>();
69 static constexpr int NStoredClusters = 3;
91 GPUhd()
int getFirstClusterIndex()
const {
return this->clustersRaw()[0]; };
92 GPUhd()
int getSecondClusterIndex()
const {
return this->clustersRaw()[1]; };
93 GPUhd()
int getThirdClusterIndex()
const {
return this->clustersRaw()[2]; };
94 GPUhd() auto& getClusters() {
return this->clustersRaw(); }
95 GPUhd() const auto& getClusters()
const {
return this->clustersRaw(); }
100 const int rel =
layer - getInnerLayer();
108template <
int NLayers>
116 :
Base(static_cast<const
o2::track::TrackParCovF&>(cs), cs.getChi2(), cs.getLevel(), cs.getTimeStamp())
118 this->setUserField(cs.getInnerLayer());
119 this->setFirstTrackletIndex(cs.getFirstTrackletIndex());
120 this->setSecondTrackletIndex(cs.getSecondTrackletIndex());
121 const int innerL = cs.getInnerLayer();
122 auto&
clusters = this->clustersRaw();
123 clusters[innerL + 0] = cs.getFirstClusterIndex();
124 clusters[innerL + 1] = cs.getSecondClusterIndex();
125 clusters[innerL + 2] = cs.getThirdClusterIndex();
135 GPUhd()
int getFirstClusterIndex()
const {
return this->clustersRaw()[this->getUserField()]; }
136 GPUhd()
int getSecondClusterIndex()
const {
return this->clustersRaw()[this->getUserField() + 1]; }
137 GPUhd()
int getThirdClusterIndex()
const {
return this->clustersRaw()[this->getUserField() + 2]; }
138 GPUhd() auto& getClusters() {
return this->clustersRaw(); }
139 GPUhd() const auto& getClusters()
const {
return this->clustersRaw(); }
CellSeed: connections of three clusters.
int int int int int trkl1
GPUhd() int getCluster(int layer) const
int int int int int const o2::track::TrackParCovF float chi2
GPUhdDefault() CellSeed()=default
setFirstTrackletIndex(trkl0)
setSecondTrackletIndex(trkl1)
GPUhdDefault() CellSeed(const CellSeed &)=default
int int int int int const o2::track::TrackParCovF float const TimeEstBC & time
GPUhd() auto &getClusters()
GPUhd() CellSeed(int innerL
GPUhd() int getSecondClusterIndex() const
GPUhd() int getThirdClusterIndex() const
GPUhd() const auto &getClusters() const
int int int int int const o2::track::TrackParCovF & tpc
GPUhd() void setLevel(int level)
GPUhd() void setChi2(float chi2)
GPUhd() int getLevel() const
GPUhd() const auto &getTimeStamp() const noexcept
GPUhd() void setSecondTrackletIndex(int trkl)
GPUhdDefault() SeedBase()=default
GPUhd() int *getLevelPtr()
GPUhd() float getChi2() const
GPUhd() auto &clustersRaw()
GPUhd() auto &getTimeStamp() noexcept
GPUhd() void setFirstTrackletIndex(int trkl)
GPUhd() int getFirstTrackletIndex() const
GPUhd() int getSecondTrackletIndex() const
GPUhd() const auto &clustersRaw() const
GPUhd() int getInnerLayer() const
GPUhdDefault() TrackSeed()=default
GPUhd() auto &getClusters()
GPUhd() int getThirdClusterIndex() const
GPUhd() const auto &getClusters() const
GPUhd() int getSecondClusterIndex() const
GPUhd() int getFirstClusterIndex() const
GPUhdDefault() TrackSeed(const TrackSeed &)=default
GPUhd() int getCluster(int layer) const
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
GLenum GLuint GLint GLint layer
constexpr int UnusedIndex
TrackParametrizationWithError< float > TrackParCovF
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::vector< Cluster > clusters