]>
Commit | Line | Data |
---|---|---|
63d8b79d | 1 | //-*- Mode: C++ -*- |
2 | // ************************************************************************ | |
fbb9b71b | 3 | // This file is property of and copyright by the ALICE HLT Project * |
63d8b79d | 4 | // ALICE Experiment at CERN, All rights reserved. * |
5 | // See cxx source for full Copyright notice * | |
6 | // * | |
7 | //************************************************************************* | |
8 | ||
9 | ||
0f1f07c3 | 10 | #ifndef ALIHLTTPCCASLICEOUTTRACK_H |
11 | #define ALIHLTTPCCASLICEOUTTRACK_H | |
63d8b79d | 12 | |
5cb6ddd4 | 13 | #include "AliHLTTPCCABaseTrackParam.h" |
0f1f07c3 | 14 | #include "AliHLTTPCCASliceOutCluster.h" |
63d8b79d | 15 | |
16 | /** | |
0f1f07c3 | 17 | * @class AliHLTTPCCASliceOutTrack |
18 | * AliHLTTPCCASliceOutTrack class is used to store TPC tracks, | |
63d8b79d | 19 | * which are reconstructed by the TPCCATracker slice tracker. |
fbb9b71b | 20 | * |
63d8b79d | 21 | * The class contains: |
fbb9b71b | 22 | * - fitted track parameters at its first row, the covariance matrix, \Chi^2, NDF (number of degrees of freedom ) |
63d8b79d | 23 | * - n of clusters assigned to the track |
0f1f07c3 | 24 | * - clusters in corresponding cluster arrays |
63d8b79d | 25 | * |
26 | * The class is used to transport the data between AliHLTTPCCATracker{Component} and AliHLTTPCCAGBMerger{Component} | |
27 | * | |
28 | */ | |
0f1f07c3 | 29 | class AliHLTTPCCASliceOutTrack |
63d8b79d | 30 | { |
fbb9b71b | 31 | public: |
32 | ||
33 | GPUhd() int NClusters() const { return fNClusters; } | |
5cb6ddd4 | 34 | GPUhd() const AliHLTTPCCABaseTrackParam &Param() const { return fParam; } |
0f1f07c3 | 35 | GPUhd() const AliHLTTPCCASliceOutCluster &Cluster( int i ) const { return fClusters[i]; } |
6d869045 | 36 | GPUhd() const AliHLTTPCCASliceOutCluster* Clusters() const { return fClusters; } |
63d8b79d | 37 | |
fbb9b71b | 38 | GPUhd() void SetNClusters( int v ) { fNClusters = v; } |
5cb6ddd4 | 39 | GPUhd() void SetParam( const AliHLTTPCCABaseTrackParam &v ) { fParam = v; } |
0f1f07c3 | 40 | GPUhd() void SetCluster( int i, const AliHLTTPCCASliceOutCluster &v ) { fClusters[i] = v; } |
41 | ||
42 | GPUhd() static int GetSize( int nClust ) { return sizeof(AliHLTTPCCASliceOutTrack)+nClust*sizeof(AliHLTTPCCASliceOutCluster) ;} | |
43 | ||
e4818148 | 44 | GPUhd() int LocalTrackId() const { return fLocalTrackId; } |
45 | GPUhd() void SetLocalTrackId( int v ) { fLocalTrackId = v; } | |
46 | ||
0f1f07c3 | 47 | GPUhd() AliHLTTPCCASliceOutTrack *NextTrack(){ |
48 | return ( AliHLTTPCCASliceOutTrack*)( ((char*)this) + GetSize( fNClusters ) ); | |
49 | } | |
50 | ||
51 | GPUhd() const AliHLTTPCCASliceOutTrack *GetNextTrack() const{ | |
52 | return ( AliHLTTPCCASliceOutTrack*)( ((char*)this) + GetSize( fNClusters ) ); | |
53 | } | |
63d8b79d | 54 | |
e4818148 | 55 | GPUhd() static int MaxTrackId() { return(fgkMaxTrackIdInSlice); } |
56 | ||
fbb9b71b | 57 | private: |
63d8b79d | 58 | |
5cb6ddd4 | 59 | AliHLTTPCCABaseTrackParam fParam; //* fitted track parameters at its innermost cluster |
fbb9b71b | 60 | int fNClusters; //* number of track clusters |
e4818148 | 61 | int fLocalTrackId; //See AliHLTPCCATrack.h |
9a3194d4 | 62 | #ifdef HLTCA_STANDALONE |
63 | AliHLTTPCCASliceOutCluster fClusters[1]; //* track clusters | |
64 | #else | |
0f1f07c3 | 65 | AliHLTTPCCASliceOutCluster fClusters[0]; //* track clusters |
9a3194d4 | 66 | #endif |
e4818148 | 67 | static const int fgkMaxTrackIdInSlice = 4096; |
63d8b79d | 68 | }; |
69 | ||
70 | ||
0f1f07c3 | 71 | #endif |