4 #ifndef ALIHLTTPCGLOBALMERGERCOMPONENT_H
5 #define ALIHLTTPCGLOBALMERGERCOMPONENT_H
6 //* This file is property of and copyright by the ALICE HLT Project *
7 //* ALICE Experiment at CERN, All rights reserved. *
8 //* See cxx source for full Copyright notice *
10 /** @file AliHLTTPCGlobalMergerComponent.h
11 @author Timm Steinbeck, Matthias Richter
13 @brief HLT TPC global merger component.
16 #include "AliHLTProcessor.h"
18 class AliHLTTPCGlobalMerger;
19 class AliHLTTPCVertex;
22 * @class AliHLTTPCGlobalMergerComponent
23 * The TPC global merger component
24 * The component is the interface to the AliHLTGlobalMerger processing
27 * @ingroup alihlt_tpc_components
29 class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor
32 /** standard constructor */
33 AliHLTTPCGlobalMergerComponent();
34 /** standard destructor */
35 virtual ~AliHLTTPCGlobalMergerComponent();
37 // Public functions to implement AliHLTComponent's interface.
38 // These functions are required for the registration process
40 /** @see component interface AliHLTComponent::GetComponentID */
41 const char* GetComponentID();
43 /** @see component interface AliHLTComponent::GetInputDataTypes */
44 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
46 /** @see component interface AliHLTComponent::GetOutputDataType */
47 AliHLTComponentDataType GetOutputDataType();
49 /** @see component interface AliHLTComponent::GetOutputDataSize */
50 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
52 /** @see component interface AliHLTComponent::Spawn */
53 AliHLTComponent* Spawn();
60 void SetMergerParameters(Double_t maxy=2.0,Double_t maxz=3.0,Double_t maxkappa=0.003,
61 Double_t maxpsi=0.1,Double_t maxtgl=0.05);
63 // Protected functions to implement AliHLTComponent's interface.
64 // These functions provide initialization as well as the actual processing
65 // capabilities of the component.
68 /** @see component interface AliHLTComponent::DoInit */
69 int DoInit( int argc, const char** argv );
71 /** @see component interface AliHLTComponent::DoDeinit */
74 /** @see component interface @ref AliHLTProcessor::DoEvent */
75 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
76 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
77 AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks );
79 using AliHLTProcessor::DoEvent;
82 /** copy constructor prohibited */
83 AliHLTTPCGlobalMergerComponent(const AliHLTTPCGlobalMergerComponent&);
84 /** assignment operator prohibited */
85 AliHLTTPCGlobalMergerComponent& operator=(const AliHLTTPCGlobalMergerComponent&);
87 /** the global merger object */
88 AliHLTTPCGlobalMerger* fGlobalMerger; //!
89 /** the vertexer object */
90 AliHLTTPCVertex* fVertex; //!
94 int fSlice; // see above
95 /** block descriptor for the vertex data block */
96 const AliHLTComponentBlockData* fVertexBlock; //! transient
97 /** index of the vertex data block */
98 unsigned fVertexBlockIndex; // see above
99 /** block descriptor for the tracklet data block */
100 const AliHLTComponentBlockData* fTrackletBlock; //! transient
101 /** index of the tracklet data block */
102 unsigned fTrackletBlockIndex; // see above
105 ClassDef(AliHLTTPCGlobalMergerComponent, 0)