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 */
9 /** @file AliHLTTPCGlobalMergerComponent.h
10 @author Timm Steinbeck, Matthias Richter
12 @brief HLT TPC global merger component.
15 #include "AliHLTProcessor.h"
17 class AliHLTTPCGlobalMerger;
18 class AliHLTTPCVertex;
21 * @class AliHLTTPCGlobalMergerComponent
22 * The TPC global merger component
23 * The component is the interface to the AliHLTGlobalMerger processing
26 class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor
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();
38 // Public functions to implement AliHLTComponent's interface.
39 // These functions are required for the registration process
41 /** @see component interface @ref AliHLTComponent::GetComponentID */
42 const char* GetComponentID();
44 /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
45 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
47 /** @see component interface @ref AliHLTComponent::GetOutputDataType */
48 AliHLTComponentDataType GetOutputDataType();
50 /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
51 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
53 /** @see component interface @ref AliHLTComponent::Spawn */
54 AliHLTComponent* Spawn();
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);
64 // Protected functions to implement AliHLTComponent's interface.
65 // These functions provide initialization as well as the actual processing
66 // capabilities of the component.
69 /** @see component interface @ref AliHLTComponent::DoInit */
70 int DoInit( int argc, const char** argv );
72 /** @see component interface @ref AliHLTComponent::DoDeinit */
75 /** @see component interface @ref AliHLTProcessor::DoEvent */
76 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
77 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
78 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
82 /** the global merger object */
83 AliHLTTPCGlobalMerger* fGlobalMerger; //!
84 /** the vertexer object */
85 AliHLTTPCVertex* fVertex; //!
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
100 ClassDef(AliHLTTPCGlobalMergerComponent, 0)