]>
Commit | Line | Data |
---|---|---|
251a2c81 | 1 | #ifndef ALIFLATEXTERNALTRACKPARAM_H |
2 | #define ALIFLATEXTERNALTRACKPARAM_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice * | |
6 | * Primary Authors : Sergey Gorbunov, Jochen Thaeder, Chiara Zampolli */ | |
7 | ||
8 | /** | |
9 | * >> Flat structure representing parameters of an external track << | |
10 | */ | |
11 | ||
12 | #include "Rtypes.h" | |
0d577a2c | 13 | #include "AliExternalTrackParam.h" |
f009a562 | 14 | |
bbddf50f | 15 | class AliFlatExternalTrackParam |
251a2c81 | 16 | { |
bbddf50f | 17 | public: |
18 | ||
19 | AliFlatExternalTrackParam(); | |
20 | ~AliFlatExternalTrackParam() {} | |
251a2c81 | 21 | |
bbddf50f | 22 | // constructor and method for reinitialisation of virtual table |
23 | AliFlatExternalTrackParam( AliVConstructorReinitialisationFlag ); | |
24 | void Reinitialize() { new (this) AliFlatExternalTrackParam( AliVReinitialize ); } | |
25 | ||
251a2c81 | 26 | void SetAlpha(Float_t alpha) {fAlpha = alpha;} |
27 | void SetX(Float_t x) {fX = x;} | |
28 | void SetY(Float_t y) {fY = y;} | |
29 | void SetZ(Float_t z) {fZ = z;} | |
30 | void SetSnp(Float_t snp) {fSnp = snp;} | |
31 | void SetTgl(Float_t tgl) {fTgl = tgl;} | |
32 | void SetSigned1Pt(Float_t signed1Pt) {fSigned1Pt = signed1Pt;} | |
33 | void SetCovEntry(Int_t idx, Float_t cov) {(idx >= 0 && idx < 15) ? fC[idx] = cov : 0.;} | |
34 | ||
35 | Float_t GetAlpha() const {return fAlpha;} | |
36 | Float_t GetX() const {return fX;} | |
37 | Float_t GetY() const {return fY;} | |
38 | Float_t GetZ() const {return fZ;} | |
39 | Float_t GetSnp() const {return fSnp;} | |
40 | Float_t GetTgl() const {return fTgl;} | |
41 | Float_t GetSigned1Pt() const {return fSigned1Pt;} | |
42 | Float_t* GetCov() const {return const_cast<Float_t*>(fC);} | |
43 | Float_t GetCovEntry(Int_t idx) const {return (idx >= 0 && idx < 15) ? fC[idx] : 0.;} | |
0d577a2c | 44 | Float_t GetPt() const { |
45 | Double_t pt1 = fabs( fSigned1Pt ); | |
46 | return (pt1>kAlmost0) ? 1./pt1 : kVeryBig; | |
48ec9ee6 | 47 | } |
0d577a2c | 48 | void GetExternalTrackParam( AliExternalTrackParam &p ) const; |
48ec9ee6 | 49 | void SetExternalTrackParam( const AliExternalTrackParam *p ); |
bbddf50f | 50 | |
51 | private: | |
52 | ||
53 | Float_t fAlpha; // azimuthal angle of reference frame | |
54 | Float_t fX; // x: radial distance | |
55 | Float_t fY; // local Y-coordinate of a track (cm) | |
56 | Float_t fZ; // local Z-coordinate of a track (cm) | |
57 | Float_t fSnp; // local sine of the track momentum azimuthal angle | |
58 | Float_t fTgl; // tangent of the track momentum dip angle | |
59 | Float_t fSigned1Pt; // 1/pt (1/(GeV/c)) | |
60 | Float_t fC[15]; // covariance matrix | |
251a2c81 | 61 | }; |
62 | ||
bbddf50f | 63 | inline AliFlatExternalTrackParam::AliFlatExternalTrackParam() |
64 | : | |
65 | fAlpha(0), | |
66 | fX(0), | |
67 | fY(0), | |
68 | fZ(0), | |
69 | fSnp(0), | |
70 | fTgl(0), | |
71 | fSigned1Pt(0) | |
72 | { | |
73 | for( int i=0; i<15; i++ ) fC[i]=0; | |
74 | } | |
75 | ||
76 | #pragma GCC diagnostic ignored "-Weffc++" | |
77 | inline AliFlatExternalTrackParam::AliFlatExternalTrackParam( AliVConstructorReinitialisationFlag ){} | |
78 | #pragma GCC diagnostic warning "-Weffc++" | |
251a2c81 | 79 | |
48ec9ee6 | 80 | inline void AliFlatExternalTrackParam::GetExternalTrackParam( AliExternalTrackParam &p ) const |
81 | { | |
82 | // Get external track parameters | |
83 | Float_t par[5] = { fY, fZ, fSnp, fTgl, fSigned1Pt }; | |
84 | p.Set( fX, fAlpha, par, fC ); | |
85 | } | |
86 | ||
87 | inline void AliFlatExternalTrackParam::SetExternalTrackParam( const AliExternalTrackParam *p ) | |
88 | { | |
89 | // Set external track parameters | |
90 | if( !p ) return; | |
91 | fAlpha = p->GetAlpha(); | |
92 | fX = p->GetX(); | |
93 | fY = p->GetY(); | |
94 | fZ = p->GetZ(); | |
95 | fSnp = p->GetSnp(); | |
96 | fTgl = p->GetTgl(); | |
97 | fSigned1Pt = p->GetSigned1Pt(); | |
98 | for (Int_t idx = 0; idx <15; ++idx) fC[idx] = p->GetCovariance()[idx]; | |
99 | } | |
100 | ||
251a2c81 | 101 | #endif |