15#ifndef GPUTPCGMTRACKPARAM_H 
   16#define GPUTPCGMTRACKPARAM_H 
   24#ifndef GPUCA_GPUCODE_DEVICE 
   28class AliExternalTrackParam;
 
   33class GPUTPCGMBorderTrack;
 
   36class GPUTPCGMPolynomialField;
 
   37class GPUTPCGMMergedTrack;
 
   38class GPUTPCGMPropagator;
 
   80  GPUhd() float GetY()
 const { 
return mP[0]; }
 
   81  GPUhd() float GetZ()
 const { 
return mP[1]; }
 
   82  GPUd() float GetSinPhi()
 const { 
return mP[2]; }
 
   83  GPUd() float GetDzDs()
 const { 
return mP[3]; }
 
   84  GPUd() float GetQPt()
 const { 
return mP[4]; }
 
   87  GPUd() float GetKappa(
float Bz)
 const { 
return -
mP[4] * Bz; }
 
   95  GPUd() const 
float* GetPar()
 const { 
return mP; }
 
   96  GPUd() float GetPar(int32_t 
i)
 const { 
return (
mP[
i]); }
 
  108  GPUd() float Err2Y()
 const { 
return mC[0]; }
 
  109  GPUd() float Err2Z()
 const { 
return mC[2]; }
 
  110  GPUd() float Err2SinPhi()
 const { 
return mC[5]; }
 
  111  GPUd() float Err2DzDs()
 const { 
return mC[9]; }
 
  112  GPUd() float Err2QPt()
 const { 
return mC[14]; }
 
  117  GPUd() float GetCosPhi()
 const { 
return CAMath::Sqrt(
float(1.f) - GetSinPhi() * GetSinPhi()); }
 
  119  GPUd() float GetErr2Y()
 const { 
return mC[0]; }
 
  120  GPUd() float GetErr2Z()
 const { 
return mC[2]; }
 
  121  GPUd() float GetErr2SinPhi()
 const { 
return mC[5]; }
 
  122  GPUd() float GetErr2DzDs()
 const { 
return mC[9]; }
 
  123  GPUd() float GetErr2QPt()
 const { 
return mC[14]; }
 
  130  GPUd() const 
float* GetCov()
 const { 
return mC; }
 
  131  GPUd() float GetCov(int32_t 
i)
 const { 
return mC[
i]; }
 
  137  GPUd() float GetMirroredY(
float Bz) const;
 
  141  GPUd() 
bool CheckNumericalQuality(
float overrideCovYY = -1.
f) const;
 
  147  GPUd() int32_t MergeDoubleRowClusters(int32_t& ihit, int32_t 
wayDirection, 
GPUTPCGMMergedTrackHit* 
clusters, const 
GPUTPCGMMerger* 
merger, 
GPUTPCGMPropagator& 
prop, 
float& 
xx, 
float& 
yy, 
float& 
zz, int32_t 
maxN, 
float clAlpha, uint8_t& 
clusterState, 
bool rejectChi2);
 
  155  GPUd() 
void StoreOuter(gputpcgmmergertypes::GPUTPCOuterParam* outerParam, 
float alpha);
 
  177    if (
alpha > CAMath::Pi()) {
 
  178      alpha -= CAMath::TwoPi();
 
  179    } 
else if (
alpha <= -CAMath::Pi()) {
 
  180      alpha += CAMath::TwoPi();
 
 
  188  GPUd() static 
float Reciprocal(
float x) { 
return 1.f / 
x; }
 
  196  GPUdi() static 
void Assign(int32_t& 
x, 
bool mask, int32_t 
v)
 
  209    } 
else if (
mP[2] < -limit) {
 
 
  215  GPUd() int32_t initResetT0();
 
 
  236  const float absQPt = CAMath::Abs(
mP[4]);
 
  237  if (absQPt < (150.f / 40.f)) {
 
  240  return CAMath::Max(10.f, 150.f / 
mP[4]);
 
  243GPUdi() 
void GPUTPCGMTrackParam::ResetCovariance()
 
  264GPUdi() float GPUTPCGMTrackParam::GetMirroredY(
float Bz)
 const 
  267  float qptBz = GetQPt() * Bz;
 
  268  float cosPhi2 = 1.f - GetSinPhi() * GetSinPhi();
 
  269  if (CAMath::Abs(qptBz) < 1.e-8f) {
 
  275  return GetY() - 2.f * CAMath::Sqrt(cosPhi2) / qptBz;
 
#define GPUCA_MAX_SIN_PHI
GPUdi() void UnmarkClusters(GPUTPCGMMergedTrackHit *GPUrestrict() clusters
int32_t GPUTPCGMMergedTrackHit int32_t int32_t & NTolerated
GPUd() void Rotate(float alpha)
GPUd() void SetCov(int32_t i
GPUd() float GetPar(int32_t i) const
GPUd() float GetKappa(float Bz) const
GPUd() void StoreOuter(gputpcgmmergertypes int32_t loopIdx
GPUd() float GetErr2Y() const
GPUd() float GetErr2QPt() const
GPUd() float GetQPt() const
GPUd() void SetPar(int32_t i
GPUd() void SetNDF(int32_t v)
GPUd() float GetErr2Z() const
int32_t int32_t int32_t toRow
int32_t GPUTPCGMMergedTrackHit const GPUTPCGMMerger GPUTPCGMPropagator float float & yy
int32_t int32_t int32_t int32_t bool goodLeg
float float bool const GPUParam uint8_t uint8_t bool mirrorParameters
int32_t GPUTPCGMMergedTrackHit const GPUTPCGMMerger GPUTPCGMPropagator float float float int32_t maxN
int32_t GPUTPCGMMergedTrackHit int32_t int32_t float & Alpha
GPUd() float Err2SinPhi() const
int32_t GPUTPCGMMergedTrackHit int32_t int32_t float int32_t float GPUTPCGMMergedTrack & track
GPUd() void SetChi2(float v)
int32_t GPUTPCGMMergedTrackHit const GPUTPCGMMerger GPUTPCGMPropagator float float float & zz
int32_t float float cltmin
int32_t GPUTPCGMMergedTrackHit const GPUTPCGMMerger GPUTPCGMPropagator & prop
GPUd() float GetChi2() const
float float bool inFlyDirection
GPUd() int32_t GetNDF() const
float float bool const GPUParam uint8_t row
GPUd() float GetTOffset() const
GPUhd() float GetZ() const
float float bool const GPUParam uint8_t uint8_t bool int8_t sector
float float bool const GPUParam uint8_t uint8_t clusterState
GPUd() float GetErr2SinPhi() const
GPUd() float GetMirroredY(float Bz) const
GPUhd() float GetX() const
GPUd() float Err2Z() const
GPUd() const float *GetPar() const
int32_t GPUTPCGMMergedTrackHit * clusters
GPUd() float GetCov(int32_t i) const
GPUdi() static void NormalizeAlpha(float &alpha)
int32_t int32_t int32_t bool float float Z
GPUhd() float GetY() const
int32_t GPUTPCGMMergedTrackHit const GPUTPCGMMerger * merger
int32_t GPUTPCGMMergedTrackHit const GPUTPCGMMerger GPUTPCGMPropagator float & xx
GPUd() float Err2Y() const
GPUd() float GetDzDs() const
int32_t int32_t int32_t uint8_t state
int32_t GPUTPCGMMergedTrackHit int32_t int32_t float int32_t attempt
int32_t int32_t int32_t bool float Y
GPUd() float Err2DzDs() const
int32_t GPUTPCGMMergedTrackHit const GPUTPCGMMerger GPUTPCGMPropagator float float float int32_t float uint8_t bool rejectChi2
int32_t GPUTPCGMMergedTrackHit int32_t & N
GPUd() float GetSinPhi() const
GPUd() float GetErr2DzDs() const
GPUd() void SetX(float v)
GPUdi() void MarkClusters(GPUTPCGMMergedTrackHit *GPUrestrict() clusters
int32_t GPUTPCGMMergedTrackHit const GPUTPCGMMerger GPUTPCGMPropagator float float float int32_t float clAlpha
int32_t int32_t int32_t int32_t iTrack
GPUd() const float *GetCov() const
GPUd() float Err2QPt() const
int32_t int32_t int32_t bool outwards
int32_t GPUTPCGMMergedTrackHit int32_t int32_t float int32_t float maxSinPhi
int32_t float float float clx
GPUdi() static void Assign(float &x
GPUd() float GetCosPhi() const
int32_t int32_t int32_t int32_t bool GPUTPCGMPropagator bool float bool checkdEdx
GLfloat GLfloat GLfloat alpha
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)