Added a dummy component into the sample library.
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCGlobalMergerComponent.h
1 // XEmacs -*-C++-*-
2 // @(#) $Id$
3
4 #ifndef ALIHLTTPCGLOBALMERGERCOMPONENT_H
5 #define ALIHLTTPCGLOBALMERGERCOMPONENT_H
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8
9 /* AliHLTTPCGlobalMergerComponent
10  */
11
12 #include "AliHLTProcessor.h"
13 #include "AliHLTTPCDefinitions.h"
14
15 class AliL3GlobalMerger;
16 class AliL3Vertex;
17
18 class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor
19     {
20     public:
21         AliHLTTPCGlobalMergerComponent();
22         virtual ~AliHLTTPCGlobalMergerComponent();
23
24         // Public functions to implement AliHLTComponent's interface.
25         // These functions are required for the registration process
26
27         const char* GetComponentID();
28         void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
29         AliHLTComponent_DataType GetOutputDataType();
30         virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
31         AliHLTComponent* Spawn();
32         
33     protected:
34         
35         void SetMergerParameters(Double_t maxy=2.0,Double_t maxz=3.0,Double_t maxkappa=0.003,
36                                  Double_t maxpsi=0.1,Double_t maxtgl=0.05);
37
38         // Protected functions to implement AliHLTComponent's interface.
39         // These functions provide initialization as well as the actual processing
40         // capabilities of the component. 
41
42         int DoInit( int argc, const char** argv );
43         int DoDeinit();
44         int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks, 
45                      AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
46                      AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
47         
48     private:
49
50         AliL3GlobalMerger* fGlobalMerger;
51         AliL3Vertex* fVertex;
52
53         struct SliceData
54             {
55                 int fSlice;
56                 const AliHLTComponent_BlockData* fVertexBlock;
57                 unsigned fVertexBlockIndex;
58                 const AliHLTComponent_BlockData* fTrackletBlock;
59                 unsigned fTrackletBlockIndex;
60             };
61
62         ClassDef(AliHLTTPCGlobalMergerComponent, 0)
63
64     };
65 #endif