StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
AliHLTTPCCATrackLinearisationVector.h
1 // ************************************************************************
2 // This file is property of and copyright by the ALICE HLT Project *
3 // ALICE Experiment at CERN, All rights reserved. *
4 // See cxx source for full Copyright notice *
5 // *
6 //*************************************************************************
7 
8 
9 #ifndef ALIHLTTPCCATRACKLINEARISATIONVECTOR_H
10 #define ALIHLTTPCCATRACKLINEARISATIONVECTOR_H
11 
12 #include "AliHLTTPCCATrackParamVector.h"
13 #include "AliHLTTPCCADef.h"
14 
30 {
31  public:
32 
34  : fSinPhi( Vc::Zero ), fCosPhi( 1 ), fDzDs( Vc::Zero ), fQPt( Vc::Zero ) {}
35 
36  AliHLTTPCCATrackLinearisationVector( sfloat_v SinPhi1, sfloat_v CosPhi1, sfloat_v DzDs1, sfloat_v QPt1 )
37  : fSinPhi( SinPhi1 ), fCosPhi( CosPhi1 ), fDzDs( DzDs1 ), fQPt( QPt1 ) {}
38 
40 
41  void Set( sfloat_v SinPhi1, sfloat_v CosPhi1, sfloat_v DzDs1, sfloat_v QPt1 );
42 
43 
44  sfloat_v SinPhi()const { return fSinPhi; }
45  sfloat_v CosPhi()const { return fCosPhi; }
46  sfloat_v DzDs() const { return fDzDs; }
47  sfloat_v QPt() const { return fQPt; }
48 
49  sfloat_v GetSinPhi()const { return fSinPhi; }
50  sfloat_v GetCosPhi()const { return fCosPhi; }
51  sfloat_v GetDzDs() const { return fDzDs; }
52  sfloat_v GetQPt() const { return fQPt; }
53 
54  void SetSinPhi( sfloat_v v ) { fSinPhi = v; }
55  void SetCosPhi( sfloat_v v ) { fCosPhi = v; }
56  void SetDzDs( sfloat_v v ) { fDzDs = v; }
57  void SetQPt( sfloat_v v ) { fQPt = v; }
58 
59  private:
60 
61  sfloat_v fSinPhi; // SinPhi
62  sfloat_v fCosPhi; // CosPhi
63  sfloat_v fDzDs; // DzDs
64  sfloat_v fQPt; // QPt
65 };
66 
67 
68 inline AliHLTTPCCATrackLinearisationVector::AliHLTTPCCATrackLinearisationVector( const AliHLTTPCCATrackParamVector &t )
69  : fSinPhi( t.SinPhi() ), fCosPhi( Vc::Zero ), fDzDs( t.DzDs() ), fQPt( t.QPt() )
70 {
71  fSinPhi = CAMath::Max( CAMath::Min( fSinPhi, sfloat_v( .999f ) ), sfloat_v( -.999f ) );
72  fCosPhi = t.SignCosPhi() * CAMath::Sqrt( sfloat_v( Vc::One ) - fSinPhi * fSinPhi );
73 }
74 
75 
76 inline void AliHLTTPCCATrackLinearisationVector::Set( sfloat_v SinPhi1, sfloat_v CosPhi1,
77  sfloat_v DzDs1, sfloat_v QPt1 )
78 {
79  SetSinPhi( SinPhi1 );
80  SetCosPhi( CosPhi1 );
81  SetDzDs( DzDs1 );
82  SetQPt( QPt1 );
83 }
84 
85 #endif