4 #ifndef ALIHLTTPCCOMPMODELCONVERTER_H
5 #define ALIHLTTPCCOMPMODELCONVERTER_H
6 //* This file is property of and copyright by the ALICE HLT Project *
7 //* ALICE Experiment at CERN, All rights reserved. *
8 //* See cxx source for full Copyright notice *
10 /** @file AliHLTTPCCompModelConverter.h
11 @author Timm Steinbeck
13 @brief Declaration of a copy component. */
15 #include "AliHLTTPCTrackArray.h"
16 #include "AliHLTTPCTrackletDataFormat.h"
17 #include "AliHLTTPCClusterDataFormat.h"
18 #include "AliHLTTPCCompModelAnalysis.h"
19 #include "AliHLTLogging.h"
20 #include "AliHLTGlobalBarrelTrack.h"
23 class AliHLTSpacePointContainer;
26 * @class AliHLTTPCCompModelConverter
30 class AliHLTTPCCompModelConverter: public AliHLTLogging
33 /** standard constructor */
34 AliHLTTPCCompModelConverter();
36 /** constructor including model/track analysis */
37 AliHLTTPCCompModelConverter(AliHLTTPCCompModelAnalysis* modelanalysis);
39 /** standard destructor */
40 virtual ~AliHLTTPCCompModelConverter();
42 /** initialisation function
43 * @return zero upon success
47 /** function to set input tracks
48 * @param tracklets pointer to AliHLTTracksData
49 * @param size of the buffer in byte
50 * @return zero upon success
52 int SetInputTracks( const AliHLTTracksData* pTracks, unsigned sizeInByte );
54 /** function to set input tracks
55 * @param clusters pointer to AliHLTTPCClusterData
56 * @param slice UInt_t slice number
57 * @param patch UInt_t patch number
58 * @return zero upon success
60 int SetInputClusters( AliHLTTPCClusterData* clusters, UInt_t slice, UInt_t patch );
62 /** function to convert input to Vestbo-model (-> compression can then follow) */
65 /** function to get output model data size
66 * @return unsigned long value of output model data size
68 unsigned long GetOutputModelDataSize() const;
70 /** function to output model data
71 * @param [in] data pointer to target buffer
72 * @param [in,out] dataSize [in] size of buffer, [out] size of data
73 * @return zero upon success
75 int OutputModelData( AliHLTUInt8_t* data, unsigned long& dataSize ) const;
77 /** function to select remaining clusters */
78 void SelectRemainingClusters();
80 /** function to get remaining clusters output data size
81 * @return unsigned long value = size
83 unsigned long GetRemainingClustersOutputDataSize() const;
85 /** function to get remaining clusters
86 * @param [in] data pointer to target buffer
87 * @param [in,out] dataSize [in] size of buffer, [out] size of data
89 int GetRemainingClusters( AliHLTUInt8_t* const data, unsigned long& dataSize ) const;
91 /** function to define minimal hits for one track
92 * @param minHits unsigned
94 void SetMinHits( unsigned minHits )
101 /** function to expand track data */
102 void ExpandTrackData();
104 /** member variable input track array */
105 vector<AliHLTGlobalBarrelTrack> fInputTrackArray;
106 /** member variable output track array */
107 AliHLTTPCTrackArray fOutputTrackArray;
109 /** pointer to instance of analysis model class */
110 AliHLTTPCCompModelAnalysis* fModelAnalysisInstance; // pointer to instance of analysis model class
112 /** array of cluster data */
113 AliHLTTPCClusterData* fClusters[36][6];
115 /** temporary array how of used cluster sizes */
116 unsigned long fClusterUsedSizes[36][6]; //! temporary, how many entries do we have in the following clusters used arrays
117 /** array to determine the used clusters in tracking */
118 bool* fClusterUsed[36][6]; //! keep track of which clusters have been used, can be transient.
119 /** number of minimal hit for one track */
123 /** copy constructor prohibited */
124 AliHLTTPCCompModelConverter(const AliHLTTPCCompModelConverter&);
125 /** assignment operator prohibited */
126 AliHLTTPCCompModelConverter& operator=(const AliHLTTPCCompModelConverter&);
128 ClassDef(AliHLTTPCCompModelConverter, 0)