]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/global/AliFlatExternalTrackParam.h
flat classes now have Reinitialize functions, which call special constructor, removed...
[u/mrichter/AliRoot.git] / HLT / global / AliFlatExternalTrackParam.h
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"
13 #include "AliVVexternalTrackParam.h"
14 #include "AliFlatESDMisc.h"
15
16
17 class AliFlatExternalTrackParam: public AliVVexternalTrackParam
18 {
19  public:
20   AliFlatExternalTrackParam() {}
21   virtual ~AliFlatExternalTrackParam() {}
22   Float_t fAlpha;     // azimuthal angle of reference frame
23   Float_t fX;         // x: radial distance
24   Float_t fY;         // local Y-coordinate of a track (cm)
25   Float_t fZ;         // local Z-coordinate of a track (cm)
26   Float_t fSnp;       // local sine of the track momentum azimuthal angle
27   Float_t fTgl;       // tangent of the track momentum dip angle
28   Float_t fSigned1Pt; // 1/pt (1/(GeV/c))
29   Float_t fC[15];     // covariance matrix
30
31   void SetAlpha(Float_t alpha)             {fAlpha = alpha;}
32   void SetX(Float_t x)                     {fX = x;}
33   void SetY(Float_t y)                     {fY = y;}
34   void SetZ(Float_t z)                     {fZ = z;}
35   void SetSnp(Float_t snp)                 {fSnp = snp;}
36   void SetTgl(Float_t tgl)                 {fTgl = tgl;}
37   void SetSigned1Pt(Float_t signed1Pt)     {fSigned1Pt = signed1Pt;}
38   void SetCovEntry(Int_t idx, Float_t cov) {(idx >= 0 && idx < 15) ? fC[idx] = cov : 0.;}
39   
40   void Reinitialize(){
41         new (this) AliFlatExternalTrackParam(AliFlatESDReinitialize);
42   }
43
44   Float_t  GetAlpha()             const {return fAlpha;}
45   Float_t  GetX()                 const {return fX;}
46   Float_t  GetY()                 const {return fY;}
47   Float_t  GetZ()                 const {return fZ;}
48   Float_t  GetSnp()               const {return fSnp;}
49   Float_t  GetTgl()               const {return fTgl;}
50   Float_t  GetSigned1Pt()         const {return fSigned1Pt;}
51   Float_t* GetCov()               const {return const_cast<Float_t*>(fC);}
52   Float_t  GetCovEntry(Int_t idx) const {return (idx >= 0 && idx < 15) ? fC[idx] : 0.;}
53   
54  private:
55         AliFlatExternalTrackParam(AliFlatESDSpecialConstructorFlag){}
56 };
57
58 //typedef struct AliFlatExternalTrackParam AliFlatExternalTrackParam;
59
60 #endif