output of the slice tracker optimised
[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]; }
63d8b79d 36
fbb9b71b 37 GPUhd() void SetNClusters( int v ) { fNClusters = v; }
5cb6ddd4 38 GPUhd() void SetParam( const AliHLTTPCCABaseTrackParam &v ) { fParam = v; }
0f1f07c3 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 }
63d8b79d 50
fbb9b71b 51 private:
63d8b79d 52
5cb6ddd4 53 AliHLTTPCCABaseTrackParam fParam; //* fitted track parameters at its innermost cluster
fbb9b71b 54 int fNClusters; //* number of track clusters
0f1f07c3 55 AliHLTTPCCASliceOutCluster fClusters[0]; //* track clusters
63d8b79d 56};
57
58
0f1f07c3 59#endif