]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/comp/AliHLTTPCCompModelConverter.h
Fixing in/out tags in documentation
[u/mrichter/AliRoot.git] / HLT / TPCLib / comp / AliHLTTPCCompModelConverter.h
1 // XEmacs -*-C++-*-
2 // $Id$
3
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                               *
9
10 /** @file   AliHLTTPCCompModelConverter.h
11     @author Timm Steinbeck
12     @date   
13     @brief  Declaration of a copy component. */
14
15 #include "AliHLTTPCTrackArray.h"
16 #include "AliHLTTPCTrackletDataFormat.h"
17 #include "AliHLTTPCClusterDataFormat.h"
18 #include "AliHLTTPCCompModelAnalysis.h"
19 #include "AliHLTLogging.h"
20 #include "AliHLTGlobalBarrelTrack.h"
21 #include <vector>
22
23 class AliHLTSpacePointContainer;
24
25 /**
26  * @class AliHLTTPCCompModelConverter
27  * @brief
28  *
29  */
30 class AliHLTTPCCompModelConverter: public AliHLTLogging
31     {
32     public:
33       /** standard constructor */
34       AliHLTTPCCompModelConverter();
35
36       /** constructor including model/track analysis */
37       AliHLTTPCCompModelConverter(AliHLTTPCCompModelAnalysis* modelanalysis);
38
39       /** standard destructor */
40       virtual ~AliHLTTPCCompModelConverter();
41       
42       /** initialisation function 
43        * @return zero upon success
44        */
45       int Init();
46       
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
51        */
52       int SetInputTracks( const AliHLTTracksData* pTracks, unsigned sizeInByte );
53
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
59        */
60       int SetInputClusters( AliHLTTPCClusterData* clusters, UInt_t slice, UInt_t patch );
61       
62       /** function to convert input to Vestbo-model (-> compression can then follow) */
63       void Convert();
64       
65       /** function to get output model data size
66        * @return unsigned long value of output model data size
67        */
68       unsigned long GetOutputModelDataSize() const;
69       
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
74        */
75       int OutputModelData( AliHLTUInt8_t* data, unsigned long& dataSize ) const;
76       
77       /** function to select remaining clusters */
78       void SelectRemainingClusters();
79       
80       /** function to get remaining clusters output data size
81        * @return unsigned long value = size
82        */
83       unsigned long GetRemainingClustersOutputDataSize() const;
84
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
88        */
89       int GetRemainingClusters( AliHLTUInt8_t* const data, unsigned long& dataSize ) const;
90       
91       /** function to define minimal hits for one track
92        * @param minHits unsigned
93        */
94       void SetMinHits( unsigned minHits )
95       {
96         fMinHits = minHits;
97       }
98
99     protected:
100
101       /** function to expand track data */
102       void ExpandTrackData();
103
104       /** member variable input track array */
105       vector<AliHLTGlobalBarrelTrack> fInputTrackArray;
106       /** member variable output track array */
107       AliHLTTPCTrackArray fOutputTrackArray;
108       
109       /** pointer to instance of analysis model class */
110       AliHLTTPCCompModelAnalysis* fModelAnalysisInstance; // pointer to instance of analysis model class
111
112       /** array of cluster data */
113       AliHLTTPCClusterData* fClusters[36][6];
114
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 */
120       unsigned fMinHits;
121       
122     private:
123       /** copy constructor prohibited */
124       AliHLTTPCCompModelConverter(const AliHLTTPCCompModelConverter&);
125       /** assignment operator prohibited */
126       AliHLTTPCCompModelConverter& operator=(const AliHLTTPCCompModelConverter&);
127      
128       ClassDef(AliHLTTPCCompModelConverter, 0)
129
130     };
131 #endif