]>
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. | |
2efb85be | 31 | * |
32 | * @ingroup alihlt_tpc_components | |
96bda103 | 33 | */ |
71d7c760 | 34 | class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor |
35 | { | |
36 | public: | |
96bda103 | 37 | /** standard constructor */ |
38 | AliHLTTPCGlobalMergerComponent(); | |
96bda103 | 39 | /** standard destructor */ |
40 | virtual ~AliHLTTPCGlobalMergerComponent(); | |
71d7c760 | 41 | |
42 | // Public functions to implement AliHLTComponent's interface. | |
43 | // These functions are required for the registration process | |
44 | ||
96bda103 | 45 | /** @see component interface @ref AliHLTComponent::GetComponentID */ |
71d7c760 | 46 | const char* GetComponentID(); |
96bda103 | 47 | |
48 | /** @see component interface @ref AliHLTComponent::GetInputDataTypes */ | |
7bcd6cad | 49 | void GetInputDataTypes(AliHLTComponentDataTypeList& list); |
96bda103 | 50 | |
51 | /** @see component interface @ref AliHLTComponent::GetOutputDataType */ | |
8ede8717 | 52 | AliHLTComponentDataType GetOutputDataType(); |
96bda103 | 53 | |
54 | /** @see component interface @ref AliHLTComponent::GetOutputDataSize */ | |
71d7c760 | 55 | virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); |
96bda103 | 56 | |
57 | /** @see component interface @ref AliHLTComponent::Spawn */ | |
71d7c760 | 58 | AliHLTComponent* Spawn(); |
a655eae3 | 59 | |
71d7c760 | 60 | protected: |
61 | ||
96bda103 | 62 | /** |
63 | * Set the parameters | |
64 | */ | |
71d7c760 | 65 | void SetMergerParameters(Double_t maxy=2.0,Double_t maxz=3.0,Double_t maxkappa=0.003, |
66 | Double_t maxpsi=0.1,Double_t maxtgl=0.05); | |
67 | ||
68 | // Protected functions to implement AliHLTComponent's interface. | |
69 | // These functions provide initialization as well as the actual processing | |
70 | // capabilities of the component. | |
71 | ||
96bda103 | 72 | |
73 | /** @see component interface @ref AliHLTComponent::DoInit */ | |
71d7c760 | 74 | int DoInit( int argc, const char** argv ); |
96bda103 | 75 | |
76 | /** @see component interface @ref AliHLTComponent::DoDeinit */ | |
71d7c760 | 77 | int DoDeinit(); |
96bda103 | 78 | |
79 | /** @see component interface @ref AliHLTProcessor::DoEvent */ | |
8ede8717 | 80 | int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, |
81 | AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, | |
7bcd6cad | 82 | AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks ); |
5d2abf3b | 83 | |
84 | using AliHLTProcessor::DoEvent; | |
71d7c760 | 85 | |
86 | private: | |
e67b0680 | 87 | /** copy constructor prohibited */ |
88 | AliHLTTPCGlobalMergerComponent(const AliHLTTPCGlobalMergerComponent&); | |
89 | /** assignment operator prohibited */ | |
90 | AliHLTTPCGlobalMergerComponent& operator=(const AliHLTTPCGlobalMergerComponent&); | |
71d7c760 | 91 | |
96bda103 | 92 | /** the global merger object */ |
3cde846d | 93 | AliHLTTPCGlobalMerger* fGlobalMerger; //! |
96bda103 | 94 | /** the vertexer object */ |
3cde846d | 95 | AliHLTTPCVertex* fVertex; //! |
71d7c760 | 96 | |
96bda103 | 97 | struct SliceData { |
98 | /** slice no */ | |
99 | int fSlice; // see above | |
100 | /** block descriptor for the vertex data block */ | |
101 | const AliHLTComponentBlockData* fVertexBlock; //! transient | |
102 | /** index of the vertex data block */ | |
103 | unsigned fVertexBlockIndex; // see above | |
104 | /** block descriptor for the tracklet data block */ | |
105 | const AliHLTComponentBlockData* fTrackletBlock; //! transient | |
106 | /** index of the tracklet data block */ | |
107 | unsigned fTrackletBlockIndex; // see above | |
108 | }; | |
71d7c760 | 109 | |
110 | ClassDef(AliHLTTPCGlobalMergerComponent, 0) | |
111 | ||
112 | }; | |
113 | #endif |