]>
Commit | Line | Data |
---|---|---|
51ad6848 | 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 | ||
a0209ae4 | 8 | /////////////////////////////////////////////////////////////////////////////// |
9 | // // | |
10 | // class for fast math // | |
11 | // // | |
12 | // Class for generic track parameters // | |
13 | // // | |
14 | /////////////////////////////////////////////////////////////////////////////// | |
15 | ||
51ad6848 | 16 | |
17 | #include <TObject.h> | |
a0209ae4 | 18 | class TVector3; |
51ad6848 | 19 | |
20 | class AliCluster; | |
21 | class AliExternalTrackParam; | |
22 | ||
23 | ||
a0209ae4 | 24 | class AliFastMath { |
51ad6848 | 25 | public: |
a0209ae4 | 26 | AliFastMath(); |
51ad6848 | 27 | static Double_t FastAsin(Double_t x); |
28 | private: | |
a0209ae4 | 29 | static Double_t fgFastAsin[20000]; //Array to contain the asin values |
51ad6848 | 30 | }; |
31 | ||
32 | ||
33 | class AliTrackParam: public TObject { | |
a0209ae4 | 34 | public: |
35 | virtual ~AliTrackParam() {} | |
51ad6848 | 36 | virtual const Double_t* GetParameter() const = 0; |
37 | virtual const Double_t* GetCovariance() const = 0; | |
38 | virtual Double_t X() const = 0; | |
39 | virtual Double_t Alpha() const = 0; | |
40 | virtual AliExternalTrackParam* CreateExternalParam() const = 0; | |
41 | virtual void ResetCovariance(Double_t factor = 10., | |
42 | Bool_t clearOffDiagonal = kTRUE) = 0; | |
43 | ||
44 | virtual Double_t Y() const = 0; | |
45 | virtual Double_t Z() const = 0; | |
46 | ||
47 | virtual Bool_t PropagateTo(Double_t x, Double_t* length = NULL) = 0; | |
48 | virtual Bool_t RotateTo(Double_t alpha) = 0; | |
49 | Bool_t RotateBy(Double_t dAlpha) | |
50 | {return RotateTo(Alpha() + dAlpha);}; | |
51 | virtual Bool_t RotateAndPropagateTo(Double_t alpha, Double_t x, | |
52 | Double_t* length); | |
53 | virtual Bool_t CorrectForMaterial(Double_t dAngle2, | |
54 | Double_t dPrel) = 0; | |
55 | virtual Bool_t GetProlongationAt(Double_t x, Double_t& y, | |
56 | Double_t& z) const = 0; | |
57 | virtual Double_t GetXAtVertex(Double_t x = 0, Double_t y = 0) const = 0; | |
58 | virtual Double_t GetDsdx() const; | |
59 | ||
60 | virtual Double_t GetPredictedChi2(const AliCluster* cluster) = 0; | |
61 | virtual Bool_t Update(const AliCluster* cluster) = 0; | |
62 | ||
63 | virtual Double_t Phi() const; | |
64 | virtual Double_t SigmaPhi() const; | |
65 | virtual Double_t Theta() const; | |
66 | virtual Double_t SigmaTheta() const; | |
67 | virtual Double_t Eta() const; | |
68 | virtual Double_t Px() const; | |
69 | virtual Double_t Py() const; | |
70 | virtual Double_t Pz() const; | |
71 | virtual Double_t Pt() const; | |
72 | virtual Double_t SigmaPt() const; | |
73 | virtual Double_t P() const; | |
74 | virtual TVector3 Momentum() const; | |
75 | virtual TVector3 Position() const; | |
76 | virtual TVector3 PositionAt(Double_t x) const; | |
77 | ||
78 | ClassDef(AliTrackParam, 1) | |
79 | }; | |
80 | ||
81 | #endif |