]>
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 | |
15 | #include "AliHLTProcessor.h" | |
71d7c760 | 16 | |
a6c02c85 | 17 | class AliHLTTPCGlobalMerger; |
18 | class AliHLTTPCVertex; | |
71d7c760 | 19 | |
96bda103 | 20 | /** |
21 | * @class AliHLTTPCGlobalMergerComponent | |
22 | * The TPC global merger component | |
23 | * The component is the interface to the AliHLTGlobalMerger processing | |
24 | * class. | |
25 | */ | |
71d7c760 | 26 | class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor |
27 | { | |
28 | public: | |
96bda103 | 29 | /** standard constructor */ |
30 | AliHLTTPCGlobalMergerComponent(); | |
31 | /** not a valid copy constructor, defined according to effective C++ style */ | |
32 | AliHLTTPCGlobalMergerComponent(const AliHLTTPCGlobalMergerComponent&); | |
33 | /** not a valid assignment op, but defined according to effective C++ style */ | |
34 | AliHLTTPCGlobalMergerComponent& operator=(const AliHLTTPCGlobalMergerComponent&); | |
35 | /** standard destructor */ | |
36 | virtual ~AliHLTTPCGlobalMergerComponent(); | |
71d7c760 | 37 | |
38 | // Public functions to implement AliHLTComponent's interface. | |
39 | // These functions are required for the registration process | |
40 | ||
96bda103 | 41 | /** @see component interface @ref AliHLTComponent::GetComponentID */ |
71d7c760 | 42 | const char* GetComponentID(); |
96bda103 | 43 | |
44 | /** @see component interface @ref AliHLTComponent::GetInputDataTypes */ | |
8ede8717 | 45 | void GetInputDataTypes( vector<AliHLTComponentDataType>& list); |
96bda103 | 46 | |
47 | /** @see component interface @ref AliHLTComponent::GetOutputDataType */ | |
8ede8717 | 48 | AliHLTComponentDataType GetOutputDataType(); |
96bda103 | 49 | |
50 | /** @see component interface @ref AliHLTComponent::GetOutputDataSize */ | |
71d7c760 | 51 | virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); |
96bda103 | 52 | |
53 | /** @see component interface @ref AliHLTComponent::Spawn */ | |
71d7c760 | 54 | AliHLTComponent* Spawn(); |
a655eae3 | 55 | |
71d7c760 | 56 | protected: |
57 | ||
96bda103 | 58 | /** |
59 | * Set the parameters | |
60 | */ | |
71d7c760 | 61 | void SetMergerParameters(Double_t maxy=2.0,Double_t maxz=3.0,Double_t maxkappa=0.003, |
62 | Double_t maxpsi=0.1,Double_t maxtgl=0.05); | |
63 | ||
64 | // Protected functions to implement AliHLTComponent's interface. | |
65 | // These functions provide initialization as well as the actual processing | |
66 | // capabilities of the component. | |
67 | ||
96bda103 | 68 | |
69 | /** @see component interface @ref AliHLTComponent::DoInit */ | |
71d7c760 | 70 | int DoInit( int argc, const char** argv ); |
96bda103 | 71 | |
72 | /** @see component interface @ref AliHLTComponent::DoDeinit */ | |
71d7c760 | 73 | int DoDeinit(); |
96bda103 | 74 | |
75 | /** @see component interface @ref AliHLTProcessor::DoEvent */ | |
8ede8717 | 76 | int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, |
77 | AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, | |
78 | AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks ); | |
71d7c760 | 79 | |
80 | private: | |
81 | ||
96bda103 | 82 | /** the global merger object */ |
3cde846d | 83 | AliHLTTPCGlobalMerger* fGlobalMerger; //! |
96bda103 | 84 | /** the vertexer object */ |
3cde846d | 85 | AliHLTTPCVertex* fVertex; //! |
71d7c760 | 86 | |
96bda103 | 87 | struct SliceData { |
88 | /** slice no */ | |
89 | int fSlice; // see above | |
90 | /** block descriptor for the vertex data block */ | |
91 | const AliHLTComponentBlockData* fVertexBlock; //! transient | |
92 | /** index of the vertex data block */ | |
93 | unsigned fVertexBlockIndex; // see above | |
94 | /** block descriptor for the tracklet data block */ | |
95 | const AliHLTComponentBlockData* fTrackletBlock; //! transient | |
96 | /** index of the tracklet data block */ | |
97 | unsigned fTrackletBlockIndex; // see above | |
98 | }; | |
71d7c760 | 99 | |
100 | ClassDef(AliHLTTPCGlobalMergerComponent, 0) | |
101 | ||
102 | }; | |
103 | #endif |