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