output of the slice tracker optimised
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCASliceOutTrack.h
... / ...
CommitLineData
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 */
29class AliHLTTPCCASliceOutTrack
30{
31 public:
32
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
37 GPUhd() void SetNClusters( int v ) { fNClusters = v; }
38 GPUhd() void SetParam( const AliHLTTPCCABaseTrackParam &v ) { fParam = v; }
39 GPUhd() void SetCluster( int i, const AliHLTTPCCASliceOutCluster &v ) { fClusters[i] = v; }
40
41 GPUhd() static int GetSize( int nClust ) { return sizeof(AliHLTTPCCASliceOutTrack)+nClust*sizeof(AliHLTTPCCASliceOutCluster) ;}
42
43 GPUhd() AliHLTTPCCASliceOutTrack *NextTrack(){
44 return ( AliHLTTPCCASliceOutTrack*)( ((char*)this) + GetSize( fNClusters ) );
45 }
46
47 GPUhd() const AliHLTTPCCASliceOutTrack *GetNextTrack() const{
48 return ( AliHLTTPCCASliceOutTrack*)( ((char*)this) + GetSize( fNClusters ) );
49 }
50
51 private:
52
53 AliHLTTPCCABaseTrackParam fParam; //* fitted track parameters at its innermost cluster
54 int fNClusters; //* number of track clusters
55 AliHLTTPCCASliceOutCluster fClusters[0]; //* track clusters
56};
57
58
59#endif