]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliTrackParam.h
Initialization of persistent data members
[u/mrichter/AliRoot.git] / STEER / AliTrackParam.h
1 #ifndef ALITRACKPARAM_H
2 #define ALITRACKPARAM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8
9 #include <TObject.h>
10 #include <TVector3.h>
11
12 class AliCluster;
13 class AliExternalTrackParam;
14
15
16 class FastMath {
17 public:
18   FastMath();  
19   static Double_t FastAsin(Double_t x);   
20  private: 
21   static Double_t fgFastAsin[20000];
22 };
23
24
25 class AliTrackParam: public TObject {
26  public:
27   virtual const Double_t* GetParameter() const = 0;
28   virtual const Double_t* GetCovariance() const = 0;
29   virtual Double_t     X() const = 0;
30   virtual Double_t     Alpha() const = 0;
31   virtual AliExternalTrackParam* CreateExternalParam() const = 0;
32   virtual void         ResetCovariance(Double_t factor = 10.,
33                                        Bool_t clearOffDiagonal = kTRUE) = 0;
34
35   virtual Double_t     Y() const = 0;
36   virtual Double_t     Z() const = 0;
37
38   virtual Bool_t       PropagateTo(Double_t x, Double_t* length = NULL) = 0;
39   virtual Bool_t       RotateTo(Double_t alpha) = 0;
40   Bool_t               RotateBy(Double_t dAlpha)
41     {return RotateTo(Alpha() + dAlpha);};
42   virtual Bool_t       RotateAndPropagateTo(Double_t alpha, Double_t x, 
43                                             Double_t* length);
44   virtual Bool_t       CorrectForMaterial(Double_t dAngle2, 
45                                           Double_t dPrel) = 0;
46   virtual Bool_t       GetProlongationAt(Double_t x, Double_t& y, 
47                                          Double_t& z) const = 0;
48   virtual Double_t     GetXAtVertex(Double_t x = 0, Double_t y = 0) const = 0;
49   virtual Double_t     GetDsdx() const;
50
51   virtual Double_t     GetPredictedChi2(const AliCluster* cluster) = 0;
52   virtual Bool_t       Update(const AliCluster* cluster) = 0;
53
54   virtual Double_t     Phi() const;
55   virtual Double_t     SigmaPhi() const;
56   virtual Double_t     Theta() const;
57   virtual Double_t     SigmaTheta() const;
58   virtual Double_t     Eta() const;
59   virtual Double_t     Px() const;
60   virtual Double_t     Py() const;
61   virtual Double_t     Pz() const;
62   virtual Double_t     Pt() const;
63   virtual Double_t     SigmaPt() const;
64   virtual Double_t     P() const;
65   virtual TVector3     Momentum() const;
66   virtual TVector3     Position() const;
67   virtual TVector3     PositionAt(Double_t x) const;
68
69   ClassDef(AliTrackParam, 1)
70 };
71
72 #endif