]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/tracking-ca/AliHLTTPCCATrackPar.h
completely re-worked TPC CA tracking code (Sergey/Ivan)
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCATrackPar.h
1 //-*- Mode: C++ -*-
2 // @(#) $Id$
3
4 /* This file is property of and copyright by the ALICE HLT Project        * 
5  * ALICE Experiment at CERN, All rights reserved.                         *
6  * See cxx source for full Copyright notice                               */
7
8 #ifndef ALIHLTTPCCATRACKPAR_H
9 #define ALIHLTTPCCATRACKPAR_H
10
11 #include "Rtypes.h"
12
13 /**
14  * @class AliHLTTPCCATrackPar
15  */
16 class AliHLTTPCCATrackPar {
17  public:
18
19   AliHLTTPCCATrackPar(): fChi2(0), fNDF(0){;}
20
21   Double_t *Par(){ return fP; }
22   Double_t *Cov(){ return fC; }
23   Double_t &Chi2(){ return fChi2; }
24   Int_t &NDF(){ return fNDF; }
25
26   void Init();
27   void Normalize( Double_t Direction[3]=0 );
28
29   void TransportBz( Double_t Bz, Double_t S );
30   void TransportBz( Double_t Bz, Double_t S, Double_t *T0 );
31
32   Double_t GetDsToPointBz( Double_t Bz, const Double_t xyz[3] ) const;
33   Double_t GetDsToPointBz( Double_t Bz, const Double_t xyz[3], const Double_t *T0 ) const;
34
35   void TransportBz( Double_t Bz, const Double_t xyz[3] ){ 
36     TransportBz( Bz,GetDsToPointBz(Bz, xyz)) ; 
37   }
38
39   void TransportBz( Double_t Bz, const Double_t xyz[3], Double_t *T0 ){ 
40     TransportBz( Bz,GetDsToPointBz(Bz, xyz, T0), T0) ; 
41   }
42
43   void TransportBz( Double_t Bz, Double_t x, Double_t y, Double_t z ){ 
44     Double_t xyz[3] = {x,y,z};
45     TransportBz(Bz, xyz);
46   }
47
48   void GetConnectionMatrix( Double_t Bz, const Double_t p[3], Double_t G[6], const Double_t *T0  ) const ;
49
50   void GetConnectionMatrix( Double_t Bz, const Double_t p[3], Double_t G[6] ) const {
51     GetConnectionMatrix( Bz, p, G, fP );
52   }
53
54   void Filter( const Double_t m[3], const Double_t V[6], const Double_t V1[6] );
55   void Rotate( Double_t alpha );
56   void ConvertTo5( Double_t alpha, Double_t T[], Double_t C[] ) const;
57
58  private:
59
60   Double_t fP[7];  // parameters:  X, Y, Z, ex, ey, ez, q/P
61   Double_t fC[28]; // Covariance matrix
62   Double_t fChi2;  // Chi^2
63   Int_t fNDF;      // NDF
64
65   ClassDef(AliHLTTPCCATrackPar, 0);
66
67 };
68
69
70 #endif