]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCAInputDataCompressorComponent.h
bug fix: reconstruction crash when the output buffer size exceed
[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"
13
14/**
15 * @class AliHLTTPCCAInputDataCompressorComponent
16 *
17 * The component produces a compressed TPC data for the Cellular Automaton tracker.
18 * Can be optionally used after the clusterfinder.
19 * It extracts from HLT clusters information needed by the tracker, and skips the rest.
20 * The compress ratio is about 4.7 times
21 *
22 */
23class AliHLTTPCCAInputDataCompressorComponent : public AliHLTProcessor
24{
25 public:
26 /** standard constructor */
27 AliHLTTPCCAInputDataCompressorComponent();
28
29 /** dummy copy constructor, defined according to effective C++ style */
30 AliHLTTPCCAInputDataCompressorComponent( const AliHLTTPCCAInputDataCompressorComponent& );
31
32 /** dummy assignment op, but defined according to effective C++ style */
33 AliHLTTPCCAInputDataCompressorComponent& operator=( const AliHLTTPCCAInputDataCompressorComponent& );
34
35 /** standard destructor */
36 virtual ~AliHLTTPCCAInputDataCompressorComponent();
37
38 // Public functions to implement AliHLTComponent's interface.
39 // These functions are required for the registration process
40
41 /** @see component interface @ref AliHLTComponent::GetComponentID */
42 const char* GetComponentID() ;
43
44 /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
45 void GetInputDataTypes( vector<AliHLTComponentDataType>& list ) ;
46
47 /** @see component interface @ref AliHLTComponent::GetOutputDataType */
48 AliHLTComponentDataType GetOutputDataType() ;
49
50 /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
51 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
52
53 /** @see component interface @ref AliHLTComponent::Spawn */
54 AliHLTComponent* Spawn() ;
55
56 protected:
57
58 // Protected functions to implement AliHLTComponent's interface.
59 // These functions provide initialization as well as the actual processing
60 // capabilities of the component.
61
62 /** @see component interface @ref AliHLTComponent::DoInit */
63 int DoInit( int argc, const char** argv );
64
65 /** @see component interface @ref AliHLTComponent::DoDeinit */
66 int DoDeinit();
67
68 /** reconfigure **/
69 int Reconfigure( const char* cdbEntry, const char* chainId );
70
71 /** @see component interface @ref AliHLTProcessor::DoEvent */
72 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
73 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
74 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
75
76 private:
77
78 double fTotalTime; //* total time for DoEvent() [s]
79 double fTotalInputSize; //* total input size in [bytes]
80 double fTotalOutputSize; //* total output size in [bytes]
81 Long_t fNEvents; //* number of reconstructed events
82
83 ClassDef( AliHLTTPCCAInputDataCompressorComponent, 0 );
84};
85#endif