]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/global/AliFlatExternalTrackParam.h
AliHLTJET module
[u/mrichter/AliRoot.git] / HLT / global / AliFlatExternalTrackParam.h
CommitLineData
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 15class 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 63inline 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++"
77inline AliFlatExternalTrackParam::AliFlatExternalTrackParam( AliVConstructorReinitialisationFlag ){}
78#pragma GCC diagnostic warning "-Weffc++"
251a2c81 79
48ec9ee6 80inline 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
87inline 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