]>
Commit | Line | Data |
---|---|---|
71d7c760 | 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 | ||
ecefc48a | 9 | /** @file AliHLTTPCGlobalMergerComponent.h |
10 | @author Timm Steinbeck, Matthias Richter | |
11 | @date | |
12 | @brief HLT TPC global merger component. | |
13 | */ | |
71d7c760 | 14 | |
e67b0680 | 15 | // see below for class documentation |
16 | // or | |
17 | // refer to README to build package | |
18 | // or | |
19 | // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt | |
20 | ||
71d7c760 | 21 | #include "AliHLTProcessor.h" |
71d7c760 | 22 | |
a6c02c85 | 23 | class AliHLTTPCGlobalMerger; |
24 | class AliHLTTPCVertex; | |
71d7c760 | 25 | |
96bda103 | 26 | /** |
27 | * @class AliHLTTPCGlobalMergerComponent | |
28 | * The TPC global merger component | |
29 | * The component is the interface to the AliHLTGlobalMerger processing | |
30 | * class. | |
31 | */ | |
71d7c760 | 32 | class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor |
33 | { | |
34 | public: | |
96bda103 | 35 | /** standard constructor */ |
36 | AliHLTTPCGlobalMergerComponent(); | |
96bda103 | 37 | /** standard destructor */ |
38 | virtual ~AliHLTTPCGlobalMergerComponent(); | |
71d7c760 | 39 | |
40 | // Public functions to implement AliHLTComponent's interface. | |
41 | // These functions are required for the registration process | |
42 | ||
96bda103 | 43 | /** @see component interface @ref AliHLTComponent::GetComponentID */ |
71d7c760 | 44 | const char* GetComponentID(); |
96bda103 | 45 | |
46 | /** @see component interface @ref AliHLTComponent::GetInputDataTypes */ | |
7bcd6cad | 47 | void GetInputDataTypes(AliHLTComponentDataTypeList& list); |
96bda103 | 48 | |
49 | /** @see component interface @ref AliHLTComponent::GetOutputDataType */ | |
8ede8717 | 50 | AliHLTComponentDataType GetOutputDataType(); |
96bda103 | 51 | |
52 | /** @see component interface @ref AliHLTComponent::GetOutputDataSize */ | |
71d7c760 | 53 | virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); |
96bda103 | 54 | |
55 | /** @see component interface @ref AliHLTComponent::Spawn */ | |
71d7c760 | 56 | AliHLTComponent* Spawn(); |
a655eae3 | 57 | |
71d7c760 | 58 | protected: |
59 | ||
96bda103 | 60 | /** |
61 | * Set the parameters | |
62 | */ | |
71d7c760 | 63 | void SetMergerParameters(Double_t maxy=2.0,Double_t maxz=3.0,Double_t maxkappa=0.003, |
64 | Double_t maxpsi=0.1,Double_t maxtgl=0.05); | |
65 | ||
66 | // Protected functions to implement AliHLTComponent's interface. | |
67 | // These functions provide initialization as well as the actual processing | |
68 | // capabilities of the component. | |
69 | ||
96bda103 | 70 | |
71 | /** @see component interface @ref AliHLTComponent::DoInit */ | |
71d7c760 | 72 | int DoInit( int argc, const char** argv ); |
96bda103 | 73 | |
74 | /** @see component interface @ref AliHLTComponent::DoDeinit */ | |
71d7c760 | 75 | int DoDeinit(); |
96bda103 | 76 | |
77 | /** @see component interface @ref AliHLTProcessor::DoEvent */ | |
8ede8717 | 78 | int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, |
79 | AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, | |
7bcd6cad | 80 | AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks ); |
5d2abf3b | 81 | |
82 | using AliHLTProcessor::DoEvent; | |
71d7c760 | 83 | |
84 | private: | |
e67b0680 | 85 | /** copy constructor prohibited */ |
86 | AliHLTTPCGlobalMergerComponent(const AliHLTTPCGlobalMergerComponent&); | |
87 | /** assignment operator prohibited */ | |
88 | AliHLTTPCGlobalMergerComponent& operator=(const AliHLTTPCGlobalMergerComponent&); | |
71d7c760 | 89 | |
96bda103 | 90 | /** the global merger object */ |
3cde846d | 91 | AliHLTTPCGlobalMerger* fGlobalMerger; //! |
96bda103 | 92 | /** the vertexer object */ |
3cde846d | 93 | AliHLTTPCVertex* fVertex; //! |
71d7c760 | 94 | |
96bda103 | 95 | struct SliceData { |
96 | /** slice no */ | |
97 | int fSlice; // see above | |
98 | /** block descriptor for the vertex data block */ | |
99 | const AliHLTComponentBlockData* fVertexBlock; //! transient | |
100 | /** index of the vertex data block */ | |
101 | unsigned fVertexBlockIndex; // see above | |
102 | /** block descriptor for the tracklet data block */ | |
103 | const AliHLTComponentBlockData* fTrackletBlock; //! transient | |
104 | /** index of the tracklet data block */ | |
105 | unsigned fTrackletBlockIndex; // see above | |
106 | }; | |
71d7c760 | 107 | |
108 | ClassDef(AliHLTTPCGlobalMergerComponent, 0) | |
109 | ||
110 | }; | |
111 | #endif |