]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDClusterizerComponent.h
initial HLT-TRD commit
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDClusterizerComponent.h
1 // $Id$
2
3 #ifndef ALIHLTTRDCLUSTERIZERCOMPONENT_H
4 #define ALIHLTTRDCLUSTERIZERCOMPONENT_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 /** @file   AliHLTTRDClusterizerComponent.h
9     @author Timm Steinbeck, Matthias Richter
10     @date   
11     @brief  Declaration of a TRDClusterizer component. */
12
13
14 #include "AliHLTProcessor.h"
15 class AliCDBManager;
16 class AliTRDclusterizerV1HLT;
17 class AliRawReaderMemory;
18
19 /**
20  * @class AliHLTTRDClusterizerComponent
21  * @brief A TRDClusterizer HLT processing component. 
22  *
23  * An implementiation of a TRDClusterizer component that just copies its input data
24  * as a test, demonstration, and example of the HLT component scheme.
25  * @ingroup alihlt_tutorial
26  */
27 class AliHLTTRDClusterizerComponent : public AliHLTProcessor
28     {
29     public:
30         AliHLTTRDClusterizerComponent();
31         virtual ~AliHLTTRDClusterizerComponent();
32
33         // Public functions to implement AliHLTComponent's interface.
34         // These functions are required for the registration process
35
36         const char* GetComponentID();
37         void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
38         AliHLTComponent_DataType GetOutputDataType();
39         virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
40         AliHLTComponent* Spawn();
41         
42     protected:
43         
44         // Protected functions to implement AliHLTComponent's interface.
45         // These functions provide initialization as well as the actual processing
46         // capabilities of the component. 
47
48         int DoInit( int argc, const char** argv );
49         int DoDeinit();
50         int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks, 
51                      AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
52                      AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
53         
54     private:
55
56         // The size of the output data produced, as a percentage of the input data's size.
57         // Can be greater than 100 (%)
58         unsigned fOutputPercentage;
59
60         string fStrorageDBpath;
61
62         AliTRDclusterizerV1HLT *clusterizer; //!
63         AliCDBManager *cdb; //!
64         AliRawReaderMemory *rmem; //!
65         
66         ClassDef(AliHLTTRDClusterizerComponent, 0)
67
68     };
69 #endif