2 // ************************************************************************
3 // This file is property of and copyright by the ALICE HLT Project *
4 // ALICE Experiment at CERN, All rights reserved. *
5 // See cxx source for full Copyright notice *
7 //*************************************************************************
10 #ifndef ALIHLTTPCCASLICEOUTTRACK_H
11 #define ALIHLTTPCCASLICEOUTTRACK_H
13 #include "AliHLTTPCCABaseTrackParam.h"
14 #include "AliHLTTPCCASliceOutCluster.h"
17 * @class AliHLTTPCCASliceOutTrack
18 * AliHLTTPCCASliceOutTrack class is used to store TPC tracks,
19 * which are reconstructed by the TPCCATracker slice tracker.
22 * - fitted track parameters at its first row, the covariance matrix, \Chi^2, NDF (number of degrees of freedom )
23 * - n of clusters assigned to the track
24 * - clusters in corresponding cluster arrays
26 * The class is used to transport the data between AliHLTTPCCATracker{Component} and AliHLTTPCCAGBMerger{Component}
29 class AliHLTTPCCASliceOutTrack
33 GPUhd() int NClusters() const { return fNClusters; }
34 GPUhd() const AliHLTTPCCABaseTrackParam &Param() const { return fParam; }
35 GPUhd() const AliHLTTPCCASliceOutCluster &Cluster( int i ) const { return fClusters[i]; }
36 GPUhd() const AliHLTTPCCASliceOutCluster* Clusters() const { return fClusters; }
38 GPUhd() void SetNClusters( int v ) { fNClusters = v; }
39 GPUhd() void SetParam( const AliHLTTPCCABaseTrackParam &v ) { fParam = v; }
40 GPUhd() void SetCluster( int i, const AliHLTTPCCASliceOutCluster &v ) { fClusters[i] = v; }
42 GPUhd() static int GetSize( int nClust ) { return sizeof(AliHLTTPCCASliceOutTrack)+nClust*sizeof(AliHLTTPCCASliceOutCluster) ;}
44 GPUhd() AliHLTTPCCASliceOutTrack *NextTrack(){
45 return ( AliHLTTPCCASliceOutTrack*)( ((char*)this) + GetSize( fNClusters ) );
48 GPUhd() const AliHLTTPCCASliceOutTrack *GetNextTrack() const{
49 return ( AliHLTTPCCASliceOutTrack*)( ((char*)this) + GetSize( fNClusters ) );
54 AliHLTTPCCABaseTrackParam fParam; //* fitted track parameters at its innermost cluster
55 int fNClusters; //* number of track clusters
56 AliHLTTPCCASliceOutCluster fClusters[0]; //* track clusters