]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliTrackParam.h
Alignment framework (C.Cheshkov). More information is available in http://agenda...
[u/mrichter/AliRoot.git] / STEER / AliTrackParam.h
CommitLineData
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 18class TVector3;
51ad6848 19
20class AliCluster;
21class AliExternalTrackParam;
22
23
a0209ae4 24class AliFastMath {
51ad6848 25public:
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
33class AliTrackParam: public TObject {
a0209ae4 34public:
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