]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCASliceOutput.h
clean up
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCASliceOutput.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
10#ifndef ALIHLTTPCCASLICEOUTPUT_H
11#define ALIHLTTPCCASLICEOUTPUT_H
12
13#include "AliHLTTPCCADef.h"
14
e1f2d1c3 15#include "AliHLTTPCCASliceTrack.h"
63d8b79d 16
17/**
18 * @class AliHLTTPCCASliceOutput
19 *
20 * AliHLTTPCCASliceOutput class is used to store the output of AliHLTTPCCATracker{Component}
21 * and transport the output to AliHLTTPCCAGBMerger{Component}
22 *
23 * The class contains all the necessary information about TPC tracks, reconstructed in one slice.
fbb9b71b 24 * This includes the reconstructed track parameters and some compressed information
63d8b79d 25 * about the assigned clusters: clusterId, position and amplitude.
26 *
27 */
28class AliHLTTPCCASliceOutput
29{
fbb9b71b 30 public:
63d8b79d 31
fbb9b71b 32 GPUhd() int NTracks() const { return fNTracks; }
33 GPUhd() int NTrackClusters() const { return fNTrackClusters; }
63d8b79d 34
fbb9b71b 35 GPUhd() const AliHLTTPCCASliceTrack &Track( int i ) const { return fTracks[i]; }
6de2bc40 36 GPUhd() unsigned char ClusterRow ( int i ) const { return fClusterRow[i]; }
37 GPUhd() int ClusterId ( int i ) const { return fClusterId[i]; }
fbb9b71b 38 GPUhd() unsigned short ClusterPackedYZ ( int i ) const { return fClusterPackedYZ[i]; }
39 GPUhd() UChar_t ClusterPackedAmp( int i ) const { return fClusterPackedAmp[i]; }
40 GPUhd() float2 ClusterUnpackedYZ ( int i ) const { return fClusterUnpackedYZ[i]; }
41 GPUhd() float ClusterUnpackedX ( int i ) const { return fClusterUnpackedX[i]; }
63d8b79d 42
fbb9b71b 43 GPUhd() static int EstimateSize( int nOfTracks, int nOfTrackClusters );
44 GPUhd() void SetPointers();
63d8b79d 45
fbb9b71b 46 GPUhd() void SetNTracks ( int v ) { fNTracks = v; }
47 GPUhd() void SetNTrackClusters( int v ) { fNTrackClusters = v; }
63d8b79d 48
fbb9b71b 49 GPUhd() void SetTrack( int i, const AliHLTTPCCASliceTrack &v ) { fTracks[i] = v; }
6de2bc40 50 GPUhd() void SetClusterRow( int i, unsigned char v ) { fClusterRow[i] = v; }
51 GPUhd() void SetClusterId( int i, int v ) { fClusterId[i] = v; }
fbb9b71b 52 GPUhd() void SetClusterPackedYZ( int i, unsigned short v ) { fClusterPackedYZ[i] = v; }
53 GPUhd() void SetClusterPackedAmp( int i, UChar_t v ) { fClusterPackedAmp[i] = v; }
54 GPUhd() void SetClusterUnpackedYZ( int i, float2 v ) { fClusterUnpackedYZ[i] = v; }
55 GPUhd() void SetClusterUnpackedX( int i, float v ) { fClusterUnpackedX[i] = v; }
63d8b79d 56
fbb9b71b 57 private:
e1f2d1c3 58
fbb9b71b 59 AliHLTTPCCASliceOutput( const AliHLTTPCCASliceOutput& )
6de2bc40 60 : fNTracks( 0 ), fNTrackClusters( 0 ), fTracks( 0 ), fClusterId( 0 ), fClusterRow( 0 ), fClusterPackedYZ( 0 ), fClusterUnpackedYZ( 0 ), fClusterUnpackedX( 0 ), fClusterPackedAmp( 0 ) {}
e1f2d1c3 61
fbb9b71b 62 const AliHLTTPCCASliceOutput& operator=( const AliHLTTPCCASliceOutput& ) const { return *this; }
e1f2d1c3 63
6de2bc40 64 int fNTracks; // number of reconstructed tracks
65 int fNTrackClusters; // total number of track clusters
fbb9b71b 66 AliHLTTPCCASliceTrack *fTracks; // pointer to reconstructed tracks
6de2bc40 67 int *fClusterId; // pointer to cluster Id's ( packed slice, patch, cluster )
68 UChar_t *fClusterRow; // pointer to cluster row numbers
fbb9b71b 69 unsigned short *fClusterPackedYZ; // pointer to packed cluster YZ coordinates
6de2bc40 70 float2 *fClusterUnpackedYZ; // pointer to cluster coordinates (temporary data, for debug proposes)
71 float *fClusterUnpackedX; // pointer to cluster coordinates (temporary data, for debug proposes)
72 UChar_t *fClusterPackedAmp; // pointer to packed cluster amplitudes
4acc2401 73 char fMemory[1]; // the memory where the pointers above point into
63d8b79d 74};
75
63d8b79d 76#endif