]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - HLT/TPCLib/AliHLTTPCGlobalMergerComponent.h
HistogramHandlerComponent: Put more functionality in to the -use-general option
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCGlobalMergerComponent.h
... / ...
CommitLineData
1// XEmacs -*-C++-*-
2// @(#) $Id$
3
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 *
9
10/** @file AliHLTTPCGlobalMergerComponent.h
11 @author Timm Steinbeck, Matthias Richter
12 @date
13 @brief HLT TPC global merger component.
14*/
15
16#include "AliHLTProcessor.h"
17
18class AliHLTTPCGlobalMerger;
19class AliHLTTPCVertex;
20
21/**
22 * @class AliHLTTPCGlobalMergerComponent
23 * The TPC global merger component
24 * The component is the interface to the AliHLTGlobalMerger processing
25 * class.
26 *
27 * @ingroup alihlt_tpc_components
28 */
29class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor
30 {
31 public:
32 /** standard constructor */
33 AliHLTTPCGlobalMergerComponent();
34 /** standard destructor */
35 virtual ~AliHLTTPCGlobalMergerComponent();
36
37 // Public functions to implement AliHLTComponent's interface.
38 // These functions are required for the registration process
39
40 /** @see component interface AliHLTComponent::GetComponentID */
41 const char* GetComponentID();
42
43 /** @see component interface AliHLTComponent::GetInputDataTypes */
44 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
45
46 /** @see component interface AliHLTComponent::GetOutputDataType */
47 AliHLTComponentDataType GetOutputDataType();
48
49 /** @see component interface AliHLTComponent::GetOutputDataSize */
50 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
51
52 /** @see component interface AliHLTComponent::Spawn */
53 AliHLTComponent* Spawn();
54
55 protected:
56
57 /**
58 * Set the parameters
59 */
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);
62
63 // Protected functions to implement AliHLTComponent's interface.
64 // These functions provide initialization as well as the actual processing
65 // capabilities of the component.
66
67
68 /** @see component interface AliHLTComponent::DoInit */
69 int DoInit( int argc, const char** argv );
70
71 /** @see component interface AliHLTComponent::DoDeinit */
72 int DoDeinit();
73
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 );
78
79 using AliHLTProcessor::DoEvent;
80
81 private:
82 /** copy constructor prohibited */
83 AliHLTTPCGlobalMergerComponent(const AliHLTTPCGlobalMergerComponent&);
84 /** assignment operator prohibited */
85 AliHLTTPCGlobalMergerComponent& operator=(const AliHLTTPCGlobalMergerComponent&);
86
87 /** the global merger object */
88 AliHLTTPCGlobalMerger* fGlobalMerger; //!
89 /** the vertexer object */
90 AliHLTTPCVertex* fVertex; //!
91
92 struct SliceData {
93 /** slice no */
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
103 };
104
105 ClassDef(AliHLTTPCGlobalMergerComponent, 0)
106
107 };
108#endif