Added class AliHLTITSCompressRawDataSDDComponent
[u/mrichter/AliRoot.git] / HLT / ITS / AliHLTITSCompressRawDataSDDComponent.h
1 // @(#) $Id: AliHLTITSCompressRawDataSDDComponent.h 27006 2008-07-01 09:21:45Z richterm $
2
3 #ifndef ALIHLTITSCOMPRESSRAWDATASDDCOMPONENT_H
4 #define ALIHLTITSCOMPRESSRAWDATASDDCOMPONENT_H
5
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   AliHLTITSCompressRawDataSDDComponent.cxx
11     @author Jochen Thaeder <thaeder@kip.uni-heidelberg.de>
12     @date   
13     @brief  Component to run data compression for SDD
14 */
15
16 #include "AliHLTProcessor.h"
17
18 #include "AliRawReaderMemory.h"
19
20 #include "AliITSCompressRawDataSDD.h"
21
22 /**
23  * @class AliHLTITSCompressRawDataSDDComponent
24  * Component to run data compression for SDD
25  *
26  * @ingroup alihlt_its_components
27  */
28
29 class AliHLTITSCompressRawDataSDDComponent : public AliHLTProcessor
30 {
31  public:
32
33   /*
34    * ---------------------------------------------------------------------------------
35    *                            Constructor / Destructor
36    * ---------------------------------------------------------------------------------
37    */
38   
39   /** constructor */
40   AliHLTITSCompressRawDataSDDComponent();
41
42   /** destructor */
43   virtual ~AliHLTITSCompressRawDataSDDComponent();
44
45   /*
46    * ---------------------------------------------------------------------------------
47    * Public functions to implement AliHLTComponent's interface.
48    * These functions are required for the registration process
49    * ---------------------------------------------------------------------------------
50    */
51
52   /** interface function, see @ref AliHLTComponent for description */
53   const char* GetComponentID();
54
55   /** interface function, see @ref AliHLTComponent for description */
56    void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
57
58   /** interface function, see @ref AliHLTComponent for description */
59   AliHLTComponentDataType GetOutputDataType();
60
61   /** interface function, see @ref AliHLTComponent for description */
62   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
63
64   /** interface function, see @ref AliHLTComponent for description */
65   AliHLTComponent* Spawn();
66
67  protected:
68         
69   /*
70    * ---------------------------------------------------------------------------------
71    * Protected functions to implement AliHLTComponent's interface.
72    * These functions provide initialization as well as the actual processing
73    * capabilities of the component. 
74    * ---------------------------------------------------------------------------------
75    */
76         
77   /** Initialization */
78   Int_t DoInit( int argc, const char** argv );
79
80   /** DeInitialization */
81   Int_t DoDeinit();
82   
83   /** EventLoop */
84   Int_t DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
85                  AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
86                  AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
87
88   using AliHLTProcessor::DoEvent;
89   
90   ///////////////////////////////////////////////////////////////////////////////////
91     
92     private:
93   
94   /** copy constructor prohibited */
95   AliHLTITSCompressRawDataSDDComponent(const AliHLTITSCompressRawDataSDDComponent&);
96   /** assignment operator prohibited */
97   AliHLTITSCompressRawDataSDDComponent& operator=(const AliHLTITSCompressRawDataSDDComponent&);
98
99   /*
100    * ---------------------------------------------------------------------------------
101    *                             Members - private
102    * ---------------------------------------------------------------------------------
103    */
104
105   /** the cluster finder object */
106   AliITSCompressRawDataSDD* fDataCompressor;                 //!transient
107
108   /** the reader object for data decoding */
109   AliRawReaderMemory* fRawReader;                            //!transient
110   
111   ClassDef(AliHLTITSCompressRawDataSDDComponent, 0)
112     
113     };
114 #endif