16#ifndef ALICEO2_ITS_TRACKITS_H
17#define ALICEO2_ITS_TRACKITS_H
39 kSharedClusters = 1 << 28
46 using o2::track::TrackParCov::TrackParCov;
53 :
o2::track::
TrackParCov{parCov}, mParamOut{outer}, mChi2{chi2} {}
63 GPUhdi()
float getChi2()
const {
return mChi2; }
64 GPUhdi()
int getNClusters()
const {
return mClusRef.getEntries(); }
65 GPUhdi()
int getNumberOfClusters()
const {
return getNClusters(); }
70 mClusRef.setFirstEntry(mClusRef.getFirstEntry() + bias);
74 mClusRef.setFirstEntry(offs);
78 mClusRef.setEntries(
n);
86 mClusRef.set(firstEntry,
n);
96 GPUhdi() auto& getTimeStamp() {
return mTime; }
97 GPUhdi() const auto& getTimeStamp()
const {
return mTime; }
105 GPUhdi()
void setPattern(uint32_t p) { mPattern = p; }
106 GPUhdi() uint32_t getPattern()
const {
return mPattern; }
112 uint32_t
r{0},
v{mPattern & ((1 << 16) - 1)};
121 while (!(mPattern & (1 << s))) {
128 void setSharedClusters(
bool toggle =
true) { mClusterSizes = toggle ? (mClusterSizes | kSharedClusters) : (mClusterSizes & ~kSharedClusters); }
139 mClusterSizes &= ~(0xf << (l * 4));
140 mClusterSizes |= (
size << (l * 4));
148 return (mClusterSizes >> (l * 4)) & 0xf;
153 return mClusterSizes;
160 uint32_t mPattern = 0;
161 uint32_t mClusterSizes = 0u;
172 using TrackITS::TrackITS;
175 :
TrackITS(parCov, chi2, outer), mIndex{cls}
181 :
TrackITS(parCov, chi2, outer), mIndex{cls}
190 int ncl = getNumberOfClusters();
191 mIndex[ncl++] = (l << 28) +
i;
195 GPUhdi() const
int& getClusterIndex(
int lr)
const {
return mIndex[lr]; }
201 uint32_t
pattern = getPattern();
214 std::array<int, MaxClusters> mIndex = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
215 ClassDefNV(TrackITSExt, 3);
Class to refer to the 1st entry and N elements of some group in the continuous container.
o2::track::TrackParCov TrackParCov
HMPID cluster implementation.
void setClusterIndex(int l, int i)
GPUhdDefault() TrackITSExt(const TrackITSExt &t)=default
GPUhdi() const int &getClusterIndex(int lr) const
GPUhdi() void setExternalClusterIndex(int layer
int bool MaxClusters & getClusterIndexes()
static constexpr int MaxClusters
< heavy version of TrackITS, with clusters embedded
GPUhdi() auto &getTimeStamp()
bool operator<(const TrackITS &o) const
bool hasHitOnLayer(uint32_t i) const
GPUhdi() const auto &getTimeStamp() const
const ClusRefs & getClusterRefs() const
uint32_t getFirstClusterLayer() const
void setClusterRefs(int firstEntry, int n)
GPUhdi() int getNClusters() const
int getNFakeClusters() const
static constexpr int MaxClusters
GPUhdi() ClusRefs &getClusterRefs()
void getImpactParams(float x, float y, float z, float bz, float ip[2]) const
GPUhdDefault() TrackITS &operator
int getClusterEntry(int i) const
void shiftFirstClusterEntry(int bias)
uint32_t getLastClusterLayer() const
void setNumberOfClusters(int n)
GPUhdi() uint32_t getPattern() const
int getClusterSize(int l)
bool isFakeOnLayer(uint32_t i) const
void setClusterSize(int l, int size)
GPUhdi() int getNumberOfClusters() const
int getFirstClusterEntry() const
int getClusterSizes() const
GPUhdi() float getChi2() const
void setFirstClusterEntry(int offs)
bool propagate(float alpha, float x, float bz)
bool hasSharedClusters() const
GPUhd() TrackITS(const o2
void setSharedClusters(bool toggle=true)
GPUhdDefault() TrackITS()=default
bool isBetter(const TrackITS &best, float maxChi2) const
bool isExtendedOnLayer(uint32_t i) const
bool update(const Cluster &c, float chi2)
GPUhdi() void setChi2(float chi2)
Cluster class for the ITSMFT.
GLfloat GLfloat GLfloat alpha
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
GLenum GLuint GLint GLint layer
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
std::array< uint16_t, 5 > pattern