]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliExternalTrackParam.h
Tracking in non-uniform nmagnetic field (Yu.Belikov)
[u/mrichter/AliRoot.git] / STEER / AliExternalTrackParam.h
1 #ifndef ALIEXTERNALTRACKPARAM_H
2 #define ALIEXTERNALTRACKPARAM_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 "AliTrackParam.h"
10 class AliKalmanTrack;
11
12 class AliExternalTrackParam: public AliTrackParam {
13  public:
14   AliExternalTrackParam();
15   AliExternalTrackParam(Double_t x, Double_t alpha, 
16                         const Double_t param[5], const Double_t covar[15]);
17   AliExternalTrackParam(const AliKalmanTrack& track);
18
19   virtual const Double_t* GetParameter() const;
20   virtual const Double_t* GetCovariance() const;
21   virtual Double_t     X() const {return fX;};
22   virtual Double_t     Alpha() const {return fAlpha;};
23   virtual AliExternalTrackParam* CreateExternalParam() const;
24   virtual void         ResetCovariance(Double_t factor = 10.,
25                                        Bool_t clearOffDiagonal = kTRUE);
26   virtual Double_t     Y() const {return fParam[0];};
27   virtual Double_t     Z() const {return fParam[1];};
28
29   virtual Bool_t       PropagateTo(Double_t x, Double_t* length = NULL);
30   virtual Bool_t       RotateTo(Double_t alpha);
31   virtual Bool_t       CorrectForMaterial(Double_t dAngle2, Double_t dPrel);
32   virtual Bool_t       GetProlongationAt(Double_t x, Double_t& y, 
33                                          Double_t& z) const;
34   virtual Double_t     GetXAtVertex(Double_t x = 0, Double_t y = 0) const;
35
36   virtual Double_t     GetPredictedChi2(const AliCluster* cluster);
37   virtual Bool_t       Update(const AliCluster* cluster);
38
39   virtual Double_t     SigmaPhi() const;
40   virtual Double_t     SigmaTheta() const;
41   virtual Double_t     SigmaPt() const;
42   virtual TVector3     Momentum() const;
43   virtual TVector3     Position() const;
44
45   virtual void         Print(Option_t* option = "") const;
46
47  private:
48   Double_t             fX;          // x coordinate for the parametrisation
49   Double_t             fAlpha;      // azimuthal angle for the parametrisation
50   Double_t             fParam[5];   // track parameter (y, z, sin(azimuthal angel), tan(dip angle), 1/pt)
51   Double_t             fCovar[15];  // track parameter covariance
52
53   ClassDef(AliExternalTrackParam, 1)
54 };
55
56 #endif