]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCAInputDataCompressorComponent.h
coverity 17742 fixed
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAInputDataCompressorComponent.h
CommitLineData
751d16ac 1//-*- Mode: C++ -*-
2// ************************************************************************
3// This file is property of and copyright by the ALICE HLT Project *
4// ALICE Experiment at CERN, All rights reserved. *
5// See cxx source for full Copyright notice *
6// *
7//*************************************************************************
8
9#ifndef ALIHLTTPCCAINPUTDATACOMPRESSORCOMPONENT_H
10#define ALIHLTTPCCAINPUTDATACOMPRESSORCOMPONENT_H
11
12#include "AliHLTProcessor.h"
57a4102f 13#include "AliHLTComponentBenchmark.h"
14
2f516e61 15class AliHLTTPCClusterData;
751d16ac 16
17/**
18 * @class AliHLTTPCCAInputDataCompressorComponent
19 *
20 * The component produces a compressed TPC data for the Cellular Automaton tracker.
21 * Can be optionally used after the clusterfinder.
22 * It extracts from HLT clusters information needed by the tracker, and skips the rest.
23 * The compress ratio is about 4.7 times
24 *
25 */
26class AliHLTTPCCAInputDataCompressorComponent : public AliHLTProcessor
27{
28 public:
29 /** standard constructor */
30 AliHLTTPCCAInputDataCompressorComponent();
31
32 /** dummy copy constructor, defined according to effective C++ style */
33 AliHLTTPCCAInputDataCompressorComponent( const AliHLTTPCCAInputDataCompressorComponent& );
34
35 /** dummy assignment op, but defined according to effective C++ style */
36 AliHLTTPCCAInputDataCompressorComponent& operator=( const AliHLTTPCCAInputDataCompressorComponent& );
37
38 /** standard destructor */
39 virtual ~AliHLTTPCCAInputDataCompressorComponent();
40
41 // Public functions to implement AliHLTComponent's interface.
42 // These functions are required for the registration process
43
44 /** @see component interface @ref AliHLTComponent::GetComponentID */
45 const char* GetComponentID() ;
46
47 /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
48 void GetInputDataTypes( vector<AliHLTComponentDataType>& list ) ;
49
50 /** @see component interface @ref AliHLTComponent::GetOutputDataType */
51 AliHLTComponentDataType GetOutputDataType() ;
52
53 /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
54 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
55
56 /** @see component interface @ref AliHLTComponent::Spawn */
57 AliHLTComponent* Spawn() ;
58
2f516e61 59 static int Compress( AliHLTTPCClusterData* inputPtr,
60 AliHLTUInt32_t maxBufferSize,
61 AliHLTUInt8_t* outputPtr,
62 AliHLTUInt32_t& outputSize
63 );
64
751d16ac 65 protected:
66
67 // Protected functions to implement AliHLTComponent's interface.
68 // These functions provide initialization as well as the actual processing
69 // capabilities of the component.
70
71 /** @see component interface @ref AliHLTComponent::DoInit */
72 int DoInit( int argc, const char** argv );
73
74 /** @see component interface @ref AliHLTComponent::DoDeinit */
75 int DoDeinit();
76
77 /** reconfigure **/
78 int Reconfigure( const char* cdbEntry, const char* chainId );
79
80 /** @see component interface @ref AliHLTProcessor::DoEvent */
81 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
82 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
83 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
84
85 private:
86
57a4102f 87 AliHLTComponentBenchmark fBenchmark; // benchmarks
751d16ac 88
89 ClassDef( AliHLTTPCCAInputDataCompressorComponent, 0 );
90};
91#endif