Added class AliHLTITSCompressRawDataSDDComponent
[u/mrichter/AliRoot.git] / HLT / ITS / AliHLTITSCompressRawDataSDDComponent.h
CommitLineData
0c7d42ab 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
29class 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