]>
Commit | Line | Data |
---|---|---|
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 | */ | |
28 | class 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]; } |
36 | GPUhd() unsigned int ClusterIDrc ( int i ) const { return fClusterIDrc[i]; } | |
16b802c5 | 37 | GPUhd() int ClusterHltID ( int i ) const { return fClusterHltID[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; } |
50 | GPUhd() void SetClusterIDrc( int i, unsigned int v ) { fClusterIDrc[i] = v; } | |
16b802c5 | 51 | GPUhd() void SetClusterHltID( int i, int v ) { fClusterHltID[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& ) |
16b802c5 | 60 | : fNTracks( 0 ), fNTrackClusters( 0 ), fTracks( 0 ), fClusterIDrc( 0 ), fClusterHltID( 0 ), fClusterPackedYZ( 0 ), fClusterUnpackedYZ( 0 ), fClusterUnpackedX( 0 ), fClusterPackedAmp( 0 ) {} |
e1f2d1c3 | 61 | |
fbb9b71b | 62 | const AliHLTTPCCASliceOutput& operator=( const AliHLTTPCCASliceOutput& ) const { return *this; } |
e1f2d1c3 | 63 | |
fbb9b71b | 64 | int fNTracks; // number of reconstructed tracks |
65 | int fNTrackClusters; // total number of track clusters | |
66 | AliHLTTPCCASliceTrack *fTracks; // pointer to reconstructed tracks | |
67 | unsigned int *fClusterIDrc; // pointer to cluster IDs ( packed IRow and ICluster) | |
16b802c5 | 68 | int *fClusterHltID; // pointer to cluster IDs ( packed slice, patch, cluster ) |
fbb9b71b | 69 | unsigned short *fClusterPackedYZ; // pointer to packed cluster YZ coordinates |
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 |