Using common HLT track data format for TRD tracks (Theodor)
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalTrackMergerComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTGLOBALTRACKMERGERCOMPONENT_H
4 #define ALIHLTGLOBALTRACKMERGERCOMPONENT_H
5 //* This file is property of and copyright by the ALICE HLT Project        * 
6 //* ALICE Experiment at CERN, All rights reserved.                         *
7 //* See cxx source for full Copyright notice                               *
8
9 /** @file   AliHLTGlobalTrackMergerComponent.h
10     @author Jacek Otwinowski
11     @date   
12     @brief  HLT global track merger component.
13 */
14
15 #include "AliHLTGlobalEsdConverterComponent.h"
16
17 class AliHLTGlobalTrackMerger;
18
19 /**
20  * @class AliHLTGlobalTrackMergerComponent
21  * The global track merger component
22  *
23  * @ingroup alihlt_global_components
24  * @author Jacek.Otwinowski@gsi.de
25  */
26 class AliHLTGlobalTrackMergerComponent : public AliHLTGlobalEsdConverterComponent
27     {
28     public:
29       /** standard constructor */
30       AliHLTGlobalTrackMergerComponent();
31       /** standard destructor */
32       virtual ~AliHLTGlobalTrackMergerComponent();
33
34         // Public functions to implement AliHLTComponent's interface.
35         // These functions are required for the registration process
36
37       /** @see component interface AliHLTComponent::GetComponentID */
38         const char* GetComponentID();
39       
40       /** @see component interface AliHLTComponent::GetInputDataTypes */
41         void GetInputDataTypes(AliHLTComponentDataTypeList& list);
42
43       /** @see component interface AliHLTComponent::GetOutputDataType */
44         // AliHLTComponentDataType GetOutputDataType();
45
46       /** @see component interface AliHLTComponent::GetOutputDataSize */
47         // virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
48
49       /** @see component interface AliHLTComponent::Spawn */
50         AliHLTComponent* Spawn();
51
52     protected:
53         
54        /**
55        * Set the parameters
56        */
57         //void SetMergerParameters(Double_t maxy=2.0,Double_t maxz=3.0,
58         //                         Double_t maxsnp=0.1,Double_t maxtgl=0.05, Double_t signed1Pt=0.003);
59         void SetMergerParameters(Double_t maxy=1.e10,Double_t maxz=1.e10,
60                                  Double_t maxsnp=1.e10,Double_t maxtgl=1.e10, Double_t signed1Pt=0.05);
61
62         // Protected functions to implement AliHLTComponent's interface.
63         // These functions provide initialization as well as the actual processing
64         // capabilities of the component. 
65
66
67       /** @see component interface AliHLTComponent::DoInit */
68         int DoInit( int argc, const char** argv );
69
70       /** @see component interface AliHLTComponent::DoDeinit */
71         int DoDeinit();
72
73       /** @see component interface @ref AliHLTProcessor::DoEvent */
74         int DoEvent( const AliHLTComponentEventData& evtData,
75                      AliHLTComponentTriggerData& trigData);
76
77       using AliHLTProcessor::DoEvent;
78         
79     private:
80       /** copy constructor prohibited */
81       AliHLTGlobalTrackMergerComponent(const AliHLTGlobalTrackMergerComponent&);
82       /** assignment operator prohibited */
83       AliHLTGlobalTrackMergerComponent& operator=(const AliHLTGlobalTrackMergerComponent&);
84
85       AliHLTGlobalTrackMerger *fGlobalTrackMerger;  //! global track merger
86
87       ClassDef(AliHLTGlobalTrackMergerComponent, 0)
88
89     };
90 #endif