]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/comp/AliHLTTPCCompModelDeconverterComponent.h
coding conventions and compilation warnings and work on adaptive TPC data compression...
[u/mrichter/AliRoot.git] / HLT / TPCLib / comp / AliHLTTPCCompModelDeconverterComponent.h
1 // XEmacs -*-C++-*-
2 // $Id$
3
4 #ifndef ALIHLTTPCCOMPMODELDECONVERTERCOMPONENT_H
5 #define ALIHLTTPCCOMPMODELDECONVERTERCOMPONENT_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   AliHLTTPCCompModelDeconverterComponent.h
11     @author Timm Steinbeck
12     @date   
13     @brief  Declaration of a copy component. */
14
15
16 #include "AliHLTProcessor.h"
17 #include "AliHLTTPCCompModelDeconverter.h"
18
19 /**
20  * @class AliHLTTPCCompModelDeconverterComponent
21  * @brief A dummy HLT processing component. 
22  *
23  * An implementiation of a deconverter component that 
24  * deconverts the tracks and clusters from the Vestbo-model
25  * into the standard HLT cluster track format again 
26  * in order to evaluate the loss of the model 
27  * due to the Vestbo-compression 
28  * @ingroup alihlt_tpc
29  */
30 class AliHLTTPCCompModelDeconverterComponent : public AliHLTProcessor
31     {
32     public:
33
34       /** standard constructor */
35       AliHLTTPCCompModelDeconverterComponent();
36       /** standard deconstructor */
37       virtual ~AliHLTTPCCompModelDeconverterComponent();
38       
39       // Public functions to implement AliHLTComponent's interface.
40       // These functions are required for the registration process
41       
42       /** function to get component id 
43        * @return const char* pointer to componentid
44        */
45       const char* GetComponentID();
46
47       /** function to get input data types
48        * @param list vecotr of AliHLTComponent_DataType
49        */ 
50       void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
51
52       /** function to get output data type
53        * @return AliHLTComponent_DataType
54        */
55       AliHLTComponent_DataType GetOutputDataType();
56
57       /** function to get output data size
58        * @param constBase address of an unsigned long
59        * @param inputMultiplier address of a double
60        */
61       virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
62
63       /** spawn function
64        * @return AliHLTComponent* pointer to instance
65        */
66       AliHLTComponent* Spawn();
67         
68     protected:
69         
70         // Protected functions to implement AliHLTComponent's interface.
71         // These functions provide initialization as well as the actual processing
72         // capabilities of the component. 
73       
74       /** initialisation function
75        * @param argc integer counting number of input arguments
76        * @param argv const char** for parameter values
77        * @return zero upon success
78        */
79       int DoInit( int argc, const char** argv );
80
81       /** deinitialisation function
82        * @return zero upon success
83        */
84       int DoDeinit();
85
86       /** do event function
87        * @param evtData      const AliHLTComponent_EventData& to event data
88        * @param blocks       const AliHLTComponent_BlockData* to blocks of event data
89        * @param trigData     AliHLTComponent_TriggerData& of trigger data
90        * @param outputPtr    AliHLTUInt8_t* pointer to output data
91        * @param size         AliHLTUInt32_t& of output size
92        * @param outputBlocks vector<AliHLTComponent_BlockData>& of output block data
93        * @return zero upon success
94        */
95       int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks, 
96                    AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
97                    AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
98       
99       /** member variable for instance of deconverter class */
100       AliHLTTPCCompModelDeconverter fDeconverter; // member variable for instance of deconverter class
101       /** memeber varible for output tracks */
102       bool fOutputTracks; // memeber varible for output track 
103
104     private:
105
106         ClassDef(AliHLTTPCCompModelDeconverterComponent, 0)
107
108     };
109 #endif