15#ifndef GPUTPCGMBORDERTRACK_H
16#define GPUTPCGMBORDERTRACK_H
33 GPUd() int32_t TrackID()
const {
return mTrackID; }
34 GPUd() int16_t NClusters()
const {
return mNClusters; }
35 GPUd() int16_t Row()
const {
return mRow; }
37 GPUd() float ZOffsetLinear()
const {
return mZOffsetLinear; }
45 GPUd()
void SetZOffsetLinear(
float v) { mZOffsetLinear =
v; }
49 GPUd() static
bool CheckChi2(
float x1,
float y1,
float cx1,
float cxy1,
float cy1,
float x2,
float y2,
float cx2,
float cxy2,
float cy2,
float chi2cut)
64 float d = mP[0] - t.mP[0];
65 return (d * d <
chi2cut * (mC[0] + t.mC[0]));
70 float d = mP[1] - t.mP[1] + (mZOffsetLinear - t.mZOffsetLinear);
71 return (d * d <
chi2cut * (mC[1] + t.mC[1]));
76 float d = mP[4] - t.mP[4];
77 if (CAMath::Abs(d) > 0.3f && CAMath::Abs(d) > 0.5f * CAMath::Min(CAMath::Abs(mP[4]), CAMath::Abs(t.mP[4]))) {
80 return (d * d <
chi2cut * (mC[4] + t.mC[4]));
83 GPUd() bool CheckChi2YS(
const GPUTPCGMBorderTrack& t,
float chi2cut)
const {
return CheckChi2(mP[0], mP[2], mC[0], mD[0], mC[2], t.mP[0], t.mP[2], t.mC[0], t.mD[0], t.mC[2],
chi2cut); }
85 GPUd() bool CheckChi2ZT(
const GPUTPCGMBorderTrack& t,
float chi2cut)
const {
return CheckChi2(mP[1], mP[3], mC[1], mD[1], mC[3], t.mP[1] + (t.mZOffsetLinear - mZOffsetLinear), t.mP[3], t.mC[1], t.mD[1], t.mC[3],
chi2cut); }
90 for (int32_t
i = 0;
i < 2;
i++) {
95 for (int32_t
i = 2;
i < 4;
i++) {
100 float maxCov4 = CAMath::Max(0.5f, mP[4] * mP[4] * 0.25f);
101 if (mC[4] > maxCov4) {
104 for (int32_t
i = 0;
i < 2;
i++) {
109 if (mD[0] * mD[0] > mC[0] * mC[2]) {
112 if (mD[1] * mD[1] > mC[1] * mC[3]) {
122 float mZOffsetLinear;
GPUd() void SetCovD(int32_t i
GPUd() bool CheckChi2YS(const GPUTPCGMBorderTrack &t
GPUd() float ZOffsetLinear() const
float float float float float x2
GPUd() const float *Par() const
float float float float float float float float float cy2
GPUd() int32_t TrackID() const
GPUd() bool CheckChi2QPt(const GPUTPCGMBorderTrack &t
GPUd() int16_t NClusters() const
GPUd() void SetPar(int32_t i
float float float float float float y2
float float float float cy1
float float float float float float float float cxy2
GPUd() void SetRow(int16_t v)
GPUd() void SetTrackID(int32_t v)
GPUd() const float *CovD() const
GPUd() int16_t Row() const
float float float float float float float float float float chi2cut
GPUd() void SetNClusters(int16_t v)
GPUd() bool CheckChi2Z(const GPUTPCGMBorderTrack &t
GPUd() void SetZOffsetLinear(float v)
float float float float float float float cx2
GPUd() bool CheckChi2ZT(const GPUTPCGMBorderTrack &t
GPUd() void SetCov(int32_t i
GPUd() const float *Cov() const
GLuint GLfloat GLfloat GLfloat GLfloat y1
GLuint GLfloat GLfloat GLfloat x1
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)