]>
Commit | Line | Data |
---|---|---|
d54804bf | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
ce565086 | 3 | // ************************************************************************ |
4 | // This file is property of and copyright by the ALICE HLT Project * | |
5 | // ALICE Experiment at CERN, All rights reserved. * | |
6 | // See cxx source for full Copyright notice * | |
7 | // * | |
8 | //************************************************************************* | |
d54804bf | 9 | |
10 | ||
11 | #ifndef ALIHLTTPCCATRACKPARAM_H | |
12 | #define ALIHLTTPCCATRACKPARAM_H | |
13 | ||
00d07bcd | 14 | #include "AliHLTTPCCADef.h" |
d54804bf | 15 | |
eb30eb49 | 16 | |
d54804bf | 17 | /** |
18 | * @class AliHLTTPCCATrackParam | |
19 | * | |
20 | * AliHLTTPCCATrackParam class describes the track parametrisation | |
21 | * which is used by the AliHLTTPCCATracker slice tracker. | |
22 | * | |
23 | */ | |
d54804bf | 24 | class AliHLTTPCCATrackParam |
25 | { | |
26 | public: | |
27 | ||
ce565086 | 28 | struct AliHLTTPCCATrackFitParam |
00d07bcd | 29 | { |
ce565086 | 30 | Float_t fBethe, fE,fTheta2, fEP2, fSigmadE2, fK22,fK33,fK43,fK44;// parameters |
00d07bcd | 31 | }; |
32 | ||
693d2443 | 33 | GPUd() Float_t X() const { return fX; } |
34 | GPUd() Float_t Y() const { return fP[0]; } | |
35 | GPUd() Float_t Z() const { return fP[1]; } | |
36 | GPUd() Float_t SinPhi()const { return fP[2]; } | |
37 | GPUd() Float_t DzDs() const { return fP[3]; } | |
38 | GPUd() Float_t Kappa() const { return fP[4]; } | |
39 | GPUd() Float_t CosPhi()const { return fCosPhi; } | |
40 | GPUd() Float_t Chi2() const { return fChi2; } | |
41 | GPUd() Int_t NDF() const { return fNDF; } | |
42 | ||
43 | Float_t Err2Y() const { return fC[0]; } | |
44 | Float_t Err2Z() const { return fC[2]; } | |
45 | Float_t Err2SinPhi() const { return fC[5]; } | |
46 | Float_t Err2DzDs() const { return fC[9]; } | |
47 | Float_t Err2Kappa() const { return fC[14]; } | |
d54804bf | 48 | |
00d07bcd | 49 | GPUd() Float_t GetX() const { return fX; } |
50 | GPUd() Float_t GetY() const { return fP[0]; } | |
51 | GPUd() Float_t GetZ() const { return fP[1]; } | |
52 | GPUd() Float_t GetSinPhi() const { return fP[2]; } | |
53 | GPUd() Float_t GetDzDs() const { return fP[3]; } | |
54 | GPUd() Float_t GetKappa() const { return fP[4]; } | |
55 | GPUd() Float_t GetCosPhi() const { return fCosPhi; } | |
56 | GPUd() Float_t GetChi2() const { return fChi2; } | |
57 | GPUd() Int_t GetNDF() const { return fNDF; } | |
58 | ||
59 | GPUd() Float_t GetErr2Y() const { return fC[0]; } | |
60 | GPUd() Float_t GetErr2Z() const { return fC[2]; } | |
61 | GPUd() Float_t GetErr2SinPhi() const { return fC[5]; } | |
62 | GPUd() Float_t GetErr2DzDs() const { return fC[9]; } | |
63 | GPUd() Float_t GetErr2Kappa() const { return fC[14]; } | |
64 | ||
693d2443 | 65 | GPUhd() const Float_t *Par() const { return fP; } |
66 | GPUhd() const Float_t *Cov() const { return fC; } | |
d54804bf | 67 | |
eb30eb49 | 68 | const Float_t *GetPar() const { return fP; } |
69 | const Float_t *GetCov() const { return fC; } | |
70 | ||
693d2443 | 71 | GPUhd() void SetPar( Int_t i, Float_t v ){ fP[i] = v; } |
72 | GPUhd() void SetCov( Int_t i, Float_t v ){ fC[i] = v; } | |
73 | ||
74 | GPUd() void SetX( Float_t v ) { fX = v; } | |
75 | GPUd() void SetY( Float_t v ) { fP[0] = v; } | |
76 | GPUd() void SetZ( Float_t v ) { fP[1] = v; } | |
77 | GPUd() void SetSinPhi( Float_t v ){ fP[2] = v; } | |
78 | GPUd() void SetDzDs( Float_t v ) { fP[3] = v; } | |
79 | GPUd() void SetKappa( Float_t v ) { fP[4] = v; } | |
80 | GPUd() void SetCosPhi( Float_t v ){ fCosPhi = v; } | |
81 | GPUd() void SetChi2( Float_t v ) { fChi2 = v; } | |
82 | GPUd() void SetNDF( Int_t v ) { fNDF = v; } | |
83 | ||
84 | ||
85 | GPUd() Float_t GetDist2( const AliHLTTPCCATrackParam &t ) const; | |
86 | GPUd() Float_t GetDistXZ2( const AliHLTTPCCATrackParam &t ) const; | |
87 | ||
00d07bcd | 88 | GPUd() void ConstructXY3( const Float_t x[3], const Float_t y[3], const Float_t sigmaY2[3], Float_t CosPhi0 ); |
d54804bf | 89 | |
00d07bcd | 90 | GPUd() void ConstructXYZ3( const Float_t p0[5], const Float_t p1[5], const Float_t p2[5], |
91 | Float_t CosPhi0, Float_t t0[]=0 ); | |
d54804bf | 92 | |
00d07bcd | 93 | GPUd() Float_t GetS( Float_t x, Float_t y ) const; |
d54804bf | 94 | |
00d07bcd | 95 | GPUd() void GetDCAPoint( Float_t x, Float_t y, Float_t z, |
96 | Float_t &px, Float_t &py, Float_t &pz ) const; | |
d54804bf | 97 | |
00d07bcd | 98 | GPUd() Int_t TransportToX( Float_t X, Float_t maxSinPhi ); |
693d2443 | 99 | GPUd() Int_t TransportToX( Float_t X, AliHLTTPCCATrackParam &t0, Float_t maxSinPhi ); |
100 | ||
00d07bcd | 101 | GPUd() Bool_t TransportToXWithMaterial( Float_t X, AliHLTTPCCATrackFitParam &par ); |
693d2443 | 102 | GPUd() Bool_t TransportToXWithMaterial( Float_t X, AliHLTTPCCATrackParam &t0, AliHLTTPCCATrackFitParam &par ); |
00d07bcd | 103 | GPUd() Bool_t TransportToXWithMaterial( Float_t X, Float_t Bz ); |
693d2443 | 104 | GPUd() Bool_t Rotate( Float_t alpha, Float_t maxSinPhi=.99 ); |
105 | GPUd() Bool_t RotateNoCos( Float_t alpha, AliHLTTPCCATrackParam &t0, Float_t maxSinPhi=.99 ); | |
d54804bf | 106 | |
00d07bcd | 107 | GPUd() Bool_t Filter2( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z, Float_t maxSinPhi=.99 ); |
693d2443 | 108 | GPUd() Bool_t Filter2NoCos( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z ); |
4687b8fc | 109 | |
693d2443 | 110 | GPUd() Int_t TransportToX0( Float_t X, Float_t sinPhi, Float_t cosPhi ); |
111 | GPUd() Int_t TransportToX0( Float_t X, Float_t maxSinPhi ); | |
4687b8fc | 112 | GPUd() Bool_t Filter20( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z, Float_t maxSinPhi=.99 ); |
693d2443 | 113 | GPUd() Bool_t Filter200( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z ); |
4687b8fc | 114 | |
00d07bcd | 115 | GPUd() Bool_t Filter2v1( Float_t y, Float_t z, Float_t err2Y, Float_t err2Z, Float_t maxSinPhi=.99 ); |
116 | GPUd() void FilterY( Float_t y, Float_t erry ); | |
117 | GPUd() void FilterZ( Float_t z, Float_t errz ); | |
eb30eb49 | 118 | |
ce565086 | 119 | GPUd() static Float_t ApproximateBetheBloch( Float_t beta2 ); |
00d07bcd | 120 | GPUd() void CalculateFitParameters( AliHLTTPCCATrackFitParam &par, Float_t Bz, Float_t mass = 0.13957 ); |
ce565086 | 121 | GPUd() Bool_t CorrectForMeanMaterial( Float_t xOverX0, Float_t xTimesRho, const AliHLTTPCCATrackFitParam &par ); |
00d07bcd | 122 | GPUd() void Print() const; |
d54804bf | 123 | |
00d07bcd | 124 | private: |
d54804bf | 125 | |
126 | Float_t fX; // x position | |
127 | Float_t fCosPhi; // cosPhi | |
128 | Float_t fP[5]; // 'active' track parameters: Y, Z, SinPhi, DzDs, Kappa | |
129 | Float_t fC[15]; // the covariance matrix for Y,Z,SinPhi,.. | |
130 | Float_t fChi2; // the chi^2 value | |
131 | Int_t fNDF; // the Number of Degrees of Freedom | |
d54804bf | 132 | }; |
133 | ||
134 | ||
135 | #endif |