]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.h
skeleton of TPC data compression component added
[u/mrichter/AliRoot.git] / HLT / TPCLib / comp / AliHLTTPCDataCompressionComponent.h
CommitLineData
7ab8209c 1//-*- Mode: C++ -*-
2// $Id$
3#ifndef ALIHLTTPCDATACOMPRESSIONCOMPONENT_H
4#define ALIHLTTPCDATACOMPRESSIONCOMPONENT_H
5//* This file is property of and copyright by the ALICE HLT Project *
6//* ALICE Experiment at CERN, All rights reserved. *
7//* See cxx source for full Copyright notice *
8
9/// @file AliHLTTPCDataCompressionComponent.h
10/// @author Matthias Richter
11/// @date 2011-08-08
12/// @brief TPC component for data compression
13///
14
15#include "AliHLTProcessor.h"
16
17class AliHLTComponentBenchmark;
18class AliHLTSpacePointContainer;
19
20/**
21 * @class AliHLTTPCDataCompressionComponent
22 * One single component to carry out different types and levels of compression
23 * of TPC data.
24 *
25 * <h2>General properties:</h2>
26 *
27 * Component ID: \b TPCDataCompressor <br>
28 * Library: \b libAliHLTTPC.so <br>
29 * Input Data Types: <br>
30 * - AliHLTTPCDefinitions::fgkHWClustersDataType
31 * - AliHLTTPCDefinitions::fgkClustersDataType
32 * - kAliHLTDataTypeTrack|kAliHLTDataOriginTPC
33 * Output Data Types: none <br>
34 *
35 * <h2>Mandatory arguments:</h2>
36 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
37 *
38 * <h2>Optional arguments:</h2>
39 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
40 *
41 * <h2>Configuration:</h2>
42 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
43 *
44 * <h2>Default CDB entries:</h2>
45 *
46 * <h2>Performance:</h2>
47 *
48 * <h2>Memory consumption:</h2>
49 *
50 * <h2>Output size:</h2>
51 *
52 *
53 * @ingroup alihlt_tpc
54 */
55class AliHLTTPCDataCompressionComponent : public AliHLTProcessor {
56public:
57 /// standard constructor
58 AliHLTTPCDataCompressionComponent();
59 /// destructor
60 ~AliHLTTPCDataCompressionComponent();
61
62 /// inherited from AliHLTComponent: id of the component
63 virtual const char* GetComponentID();
64
65 /// inherited from AliHLTComponent: list of data types in the vector reference
66 void GetInputDataTypes( AliHLTComponentDataTypeList& );
67
68 /// inherited from AliHLTComponent: output data type of the component.
69 AliHLTComponentDataType GetOutputDataType();
70
71 /// inherited from AliHLTComponent: multiple output data types of the component.
72 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
73
74 /// inherited from AliHLTComponent: output data size estimator
75 void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
76
77 /// inherited from AliHLTComponent: spawn function.
78 virtual AliHLTComponent* Spawn();
79
80protected:
81 /// inherited from AliHLTProcessor: data processing
82 int DoEvent( const AliHLTComponentEventData& evtData,
83 const AliHLTComponentBlockData* blocks,
84 AliHLTComponentTriggerData& trigData,
85 AliHLTUInt8_t* outputPtr,
86 AliHLTUInt32_t& size,
87 AliHLTComponentBlockDataList& outputBlocks );
88 using AliHLTProcessor::DoEvent;
89
90 /// inherited from AliHLTComponent: component initialisation and argument scan.
91 int DoInit( int argc, const char** argv );
92
93 /// inherited from AliHLTComponent: component cleanup
94 int DoDeinit();
95
96 /// inherited from AliHLTComponent: argument scan
97 int ScanConfigurationArgument(int argc, const char** argv);
98
99private:
100 AliHLTTPCDataCompressionComponent(const AliHLTTPCDataCompressionComponent&);
101 AliHLTTPCDataCompressionComponent& operator=(const AliHLTTPCDataCompressionComponent&);
102
103 AliHLTComponentBenchmark* GetBenchmarkInstance() const {return fpBenchmark;}
104
105 int fMode; //! mode
106
107 /// input raw cluster handler
108 AliHLTSpacePointContainer* fRawInputClusters; //! input raw cluster handler
109 /// input cluster handler
110 AliHLTSpacePointContainer* fInputClusters; //! input cluster handler
111
112 /// benchmark
113 AliHLTComponentBenchmark* fpBenchmark; //! benchmark instance
114
115 ClassDef(AliHLTTPCDataCompressionComponent, 0)
116};
117
118#endif //ALIHLTTPCDATACOMPRESSIONCOMPONENT_H