3 //*************************************************************************
4 // This file is property of and copyright by the ALICE HLT Project *
5 // ALICE Experiment at CERN, All rights reserved. *
7 // Primary Authors: Jochen Thaeder <thaeder@kip.uni-heidelberg.de> *
8 // Ivan Kisel <kisel@kip.uni-heidelberg.de> *
9 // for The ALICE HLT Project. *
11 // Permission to use, copy, modify and distribute this software and its *
12 // documentation strictly for non-commercial purposes is hereby granted *
13 // without fee, provided that the above copyright notice appears in all *
14 // copies and that both the copyright notice and this permission notice *
15 // appear in the supporting documentation. The authors make no claims *
16 // about the suitability of this software for any purpose. It is *
17 // provided "as is" without express or implied warranty. *
18 //*************************************************************************
21 #ifndef ALIHLTTPCCATRACKPAR_H
22 #define ALIHLTTPCCATRACKPAR_H
27 * @class AliHLTTPCCATrackPar
29 * AliHLTTPCCATrackPar class describes the track parametrisation
30 * which is used by the AliHLTTPCCATracker slice tracker.
31 * The class is under development.
34 class AliHLTTPCCATrackPar
38 AliHLTTPCCATrackPar(): fChi2(0), fNDF(0){}
39 virtual ~AliHLTTPCCATrackPar(){}
41 Double_t *Par(){ return fP; }
42 Double_t *Cov(){ return fC; }
43 Double_t &Chi2(){ return fChi2; }
44 Int_t &NDF(){ return fNDF; }
47 void Normalize( Double_t Direction[3]=0 );
49 void TransportBz( Double_t Bz, Double_t S );
50 void TransportBz( Double_t Bz, Double_t S, Double_t *T0 );
52 Double_t GetDsToPointBz( Double_t Bz, const Double_t xyz[3] ) const;
53 Double_t GetDsToPointBz( Double_t Bz, const Double_t xyz[3], const Double_t *T0 ) const;
55 void TransportBz( Double_t Bz, const Double_t xyz[3] )
57 TransportBz( Bz,GetDsToPointBz(Bz, xyz)) ;
60 void TransportBz( Double_t Bz, const Double_t xyz[3], Double_t *T0 )
62 TransportBz( Bz,GetDsToPointBz(Bz, xyz, T0), T0) ;
65 void TransportBz( Double_t Bz, Double_t x, Double_t y, Double_t z )
67 Double_t xyz[3] = {x,y,z};
71 void GetConnectionMatrix( Double_t Bz, const Double_t p[3], Double_t G[6], const Double_t *T0 ) const ;
73 void GetConnectionMatrix( Double_t Bz, const Double_t p[3], Double_t G[6] ) const
75 GetConnectionMatrix( Bz, p, G, fP );
78 void Filter( const Double_t m[3], const Double_t V[6], const Double_t V1[6] );
79 void Rotate( Double_t alpha );
80 void ConvertTo5( Double_t alpha, Double_t T[], Double_t C[] ) const;
84 Double_t fP[7]; // track parameters: X, Y, Z, ex, ey, ez, q/P
85 Double_t fC[28]; // the covariance matrix in the low-triangular form
86 Double_t fChi2; // the chi^2 value
87 Int_t fNDF; // the Number of Degrees of Freedom
89 ClassDef(AliHLTTPCCATrackPar, 0);