16#ifndef ALICEO2_ITS_TRACKITS_H
17#define ALICEO2_ITS_TRACKITS_H
39 kSharedClusters = 1 << 29
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);
102 GPUhdi()
void setPattern(uint32_t p) { mPattern = p; }
103 GPUhdi() uint32_t getPattern()
const {
return mPattern; }
109 uint32_t
r{0},
v{mPattern & ((1 << 16) - 1)};
118 while (!(mPattern & (1 << s))) {
125 void setNextROFbit(
bool toggle =
true) { mClusterSizes = toggle ? (mClusterSizes | kNextROF) : (mClusterSizes & ~kNextROF); }
127 void setSharedClusters(
bool toggle =
true) { mClusterSizes = toggle ? (mClusterSizes | kSharedClusters) : (mClusterSizes & ~kSharedClusters); }
138 mClusterSizes &= ~(0xf << (l * 4));
139 mClusterSizes |= (
size << (l * 4));
147 return (mClusterSizes >> (l * 4)) & 0xf;
152 return mClusterSizes;
159 uint32_t mPattern = 0;
160 unsigned int mClusterSizes = 0u;
170 using TrackITS::TrackITS;
174 :
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 o2::gpu::gpustd::array<int, MaxClusters> mIndex = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
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
bool operator<(const TrackITS &o) const
bool hasHitOnLayer(uint32_t i) 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)
void setNextROFbit(bool toggle=true)
uint32_t getLastClusterLayer() const
void setNumberOfClusters(int n)
GPUhdi() uint32_t getPattern() const
int getClusterSize(int l)
bool isFakeOnLayer(uint32_t i) const
bool hasHitInNextROF() 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 ...
Defining DataPointCompositeObject explicitly as copiable.
std::array< uint16_t, 5 > pattern