Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 : // ************************************************************************
4 : // This file is property of and copyright by the ALICE HLT Project *
5 : // ALICE Experiment at CERN, All rights reserved. *
6 : // See cxx source for full Copyright notice *
7 : // *
8 : //*************************************************************************
9 :
10 :
11 : #ifndef ALIHLTTPCCAGLOBALMERGERCOMPONENT_H
12 : #define ALIHLTTPCCAGLOBALMERGERCOMPONENT_H
13 :
14 : /// @file AliHLTTPCCAGlobalMergerComponent.h
15 : /// @author Matthias Kretz
16 : /// @date
17 : /// @brief HLT TPC CA global merger component.
18 : ///
19 :
20 : #include "AliHLTProcessor.h"
21 : #include "AliHLTComponentBenchmark.h"
22 :
23 : class AliHLTTPCCAMerger;
24 : class AliHLTTPCGMMerger;
25 :
26 : /**
27 : * @class AliHLTTPCCAGlobalMergerComponent
28 : * The TPC global merger component
29 : *
30 : * Interface to the global merger of the CA tracker for HLT.
31 : */
32 : class AliHLTTPCCAGlobalMergerComponent : public AliHLTProcessor
33 : {
34 : public:
35 : /**
36 : * Constructs a AliHLTTPCCAGlobalMergerComponent.
37 : */
38 : AliHLTTPCCAGlobalMergerComponent();
39 :
40 : /**
41 : * Destructs the AliHLTTPCCAGlobalMergerComponent
42 : */
43 18 : virtual ~AliHLTTPCCAGlobalMergerComponent() {};
44 :
45 : // Public functions to implement AliHLTComponent's interface.
46 : // These functions are required for the registration process
47 :
48 : /**
49 : * @copydoc AliHLTComponent::GetComponentID
50 : */
51 : const char *GetComponentID();
52 :
53 : /**
54 : * @copydoc AliHLTComponent::GetInputDataTypes
55 : */
56 : void GetInputDataTypes( AliHLTComponentDataTypeList &list );
57 :
58 : /**
59 : * @copydoc AliHLTComponent::GetOutputDataType
60 : */
61 : AliHLTComponentDataType GetOutputDataType();
62 :
63 : /**
64 : * @copydoc AliHLTComponent::GetOutputDataSize
65 : */
66 : virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
67 :
68 : /**
69 : * @copydoc AliHLTComponent::Spawn
70 : */
71 : AliHLTComponent *Spawn();
72 :
73 : protected:
74 :
75 : // Protected functions to implement AliHLTComponent's interface.
76 : // These functions provide initialization as well as the actual processing
77 : // capabilities of the component.
78 :
79 : /**
80 : * @copydoc AliHLTComponent::DoInit
81 : */
82 : int DoInit( int argc, const char **argv );
83 :
84 : /**
85 : * @copydoc AliHLTComponent::DoDeinit
86 : */
87 : int DoDeinit();
88 :
89 : /** reconfigure **/
90 : int Reconfigure( const char* cdbEntry, const char* chainId );
91 :
92 : /**
93 : * @copydoc @ref AliHLTProcessor::DoEvent
94 : */
95 : int DoEvent( const AliHLTComponentEventData &evtData, const AliHLTComponentBlockData *blocks,
96 : AliHLTComponentTriggerData &trigData, AliHLTUInt8_t *outputPtr,
97 : AliHLTUInt32_t &size, AliHLTComponentBlockDataList &outputBlocks );
98 :
99 : using AliHLTProcessor::DoEvent;
100 :
101 : private:
102 :
103 : static AliHLTTPCCAGlobalMergerComponent fgAliHLTTPCCAGlobalMergerComponent;
104 :
105 : // disable copy
106 : AliHLTTPCCAGlobalMergerComponent( const AliHLTTPCCAGlobalMergerComponent & );
107 : AliHLTTPCCAGlobalMergerComponent &operator=( const AliHLTTPCCAGlobalMergerComponent & );
108 :
109 : /** set configuration parameters **/
110 : void SetDefaultConfiguration();
111 : int ReadConfigurationString( const char* arguments );
112 : int ReadCDBEntry( const char* cdbEntry, const char* chainId );
113 : int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
114 :
115 : /** the global merger object */
116 :
117 : Int_t fVersion; // which version of global merger to use
118 :
119 : AliHLTTPCCAMerger *fGlobalMergerVersion0; //!
120 : AliHLTTPCGMMerger *fGlobalMerger; //!
121 :
122 : double fSolenoidBz; // magnetic field
123 : double fClusterErrorCorrectionY; // correction for the cluster error during pre-fit
124 : double fClusterErrorCorrectionZ; // correction for the cluster error during pre-fit
125 : AliHLTComponentBenchmark fBenchmark;// benchmark
126 :
127 6 : ClassDef( AliHLTTPCCAGlobalMergerComponent, 0 )
128 : };
129 :
130 : #endif //ALIHLTTPCCAGLOBALMERGERCOMPONENT_H
|