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 // see below for class documentation
17 // refer to README to build package
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21 #include "AliHLTProcessor.h"
23 class AliHLTTPCGlobalMerger;
24 class AliHLTTPCVertex;
27 * @class AliHLTTPCGlobalMergerComponent
28 * The TPC global merger component
29 * The component is the interface to the AliHLTGlobalMerger processing
32 class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor
35 /** standard constructor */
36 AliHLTTPCGlobalMergerComponent();
37 /** standard destructor */
38 virtual ~AliHLTTPCGlobalMergerComponent();
40 // Public functions to implement AliHLTComponent's interface.
41 // These functions are required for the registration process
43 /** @see component interface @ref AliHLTComponent::GetComponentID */
44 const char* GetComponentID();
46 /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
47 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
49 /** @see component interface @ref AliHLTComponent::GetOutputDataType */
50 AliHLTComponentDataType GetOutputDataType();
52 /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
53 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
55 /** @see component interface @ref AliHLTComponent::Spawn */
56 AliHLTComponent* Spawn();
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);
66 // Protected functions to implement AliHLTComponent's interface.
67 // These functions provide initialization as well as the actual processing
68 // capabilities of the component.
71 /** @see component interface @ref AliHLTComponent::DoInit */
72 int DoInit( int argc, const char** argv );
74 /** @see component interface @ref AliHLTComponent::DoDeinit */
77 /** @see component interface @ref AliHLTProcessor::DoEvent */
78 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
79 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
80 AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks );
82 using AliHLTProcessor::DoEvent;
85 /** copy constructor prohibited */
86 AliHLTTPCGlobalMergerComponent(const AliHLTTPCGlobalMergerComponent&);
87 /** assignment operator prohibited */
88 AliHLTTPCGlobalMergerComponent& operator=(const AliHLTTPCGlobalMergerComponent&);
90 /** the global merger object */
91 AliHLTTPCGlobalMerger* fGlobalMerger; //!
92 /** the vertexer object */
93 AliHLTTPCVertex* fVertex; //!
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
108 ClassDef(AliHLTTPCGlobalMergerComponent, 0)