]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCASliceOutTrack.h
fixing clang issues
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCASliceOutTrack.h
CommitLineData
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 29class 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