Line data Source code
1 : //-*- Mode: C++ -*-
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 *
6 : // *
7 : //*************************************************************************
8 :
9 :
10 : #ifndef ALIHLTTPCCASLICEOUTTRACK_H
11 : #define ALIHLTTPCCASLICEOUTTRACK_H
12 :
13 : #include "AliHLTTPCCABaseTrackParam.h"
14 : #include "AliHLTTPCCASliceOutCluster.h"
15 :
16 : /**
17 : * @class AliHLTTPCCASliceOutTrack
18 : * AliHLTTPCCASliceOutTrack class is used to store TPC tracks,
19 : * which are reconstructed by the TPCCATracker slice tracker.
20 : *
21 : * The class contains:
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
25 : *
26 : * The class is used to transport the data between AliHLTTPCCATracker{Component} and AliHLTTPCCAGBMerger{Component}
27 : *
28 : */
29 : class AliHLTTPCCASliceOutTrack
30 : {
31 : public:
32 :
33 0 : GPUhd() int NClusters() const { return fNClusters; }
34 0 : GPUhd() const AliHLTTPCCABaseTrackParam &Param() const { return fParam; }
35 0 : GPUhd() const AliHLTTPCCASliceOutCluster &Cluster( int i ) const { return fClusters[i]; }
36 0 : GPUhd() const AliHLTTPCCASliceOutCluster* Clusters() const { return fClusters; }
37 :
38 0 : GPUhd() void SetNClusters( int v ) { fNClusters = v; }
39 0 : GPUhd() void SetParam( const AliHLTTPCCABaseTrackParam &v ) { fParam = v; }
40 0 : GPUhd() void SetCluster( int i, const AliHLTTPCCASliceOutCluster &v ) { fClusters[i] = v; }
41 :
42 0 : GPUhd() static int GetSize( int nClust ) { return sizeof(AliHLTTPCCASliceOutTrack)+nClust*sizeof(AliHLTTPCCASliceOutCluster) ;}
43 :
44 0 : GPUhd() int LocalTrackId() const { return fLocalTrackId; }
45 0 : GPUhd() void SetLocalTrackId( int v ) { fLocalTrackId = v; }
46 :
47 : GPUhd() AliHLTTPCCASliceOutTrack *NextTrack(){
48 0 : return ( AliHLTTPCCASliceOutTrack*)( ((char*)this) + GetSize( fNClusters ) );
49 : }
50 :
51 : GPUhd() const AliHLTTPCCASliceOutTrack *GetNextTrack() const{
52 0 : return ( AliHLTTPCCASliceOutTrack*)( ((char*)this) + GetSize( fNClusters ) );
53 : }
54 :
55 0 : GPUhd() static int MaxTrackId() { return(fgkMaxTrackIdInSlice); }
56 :
57 : private:
58 :
59 : AliHLTTPCCABaseTrackParam fParam; //* fitted track parameters at its innermost cluster
60 : int fNClusters; //* number of track clusters
61 : int fLocalTrackId; //See AliHLTPCCATrack.h
62 : #ifdef HLTCA_STANDALONE
63 : AliHLTTPCCASliceOutCluster fClusters[1]; //* track clusters
64 : #else
65 : AliHLTTPCCASliceOutCluster fClusters[0]; //* track clusters
66 : #endif
67 : static const int fgkMaxTrackIdInSlice = 4096;
68 : };
69 :
70 :
71 : #endif
|