]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCGlobalMergerComponent.h
added sample macro for TPC reconstruction
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCGlobalMergerComponent.h
CommitLineData
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 23class AliHLTTPCGlobalMerger;
24class 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 34class 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