]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCGlobalMergerComponent.h
exclude unnecessary cuts; remove cuts on ITS clusters as those remove all data points...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCGlobalMergerComponent.h
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
18 class AliHLTTPCGlobalMerger;
19 class 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  */
29 class 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