]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/tracking-ca/AliHLTTPCCAGlobalMergerComponent.h
configuration 'TPC-compression-emulation' added, to be activated in separate commit
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCAGlobalMergerComponent.h
CommitLineData
b6935e5b 1//-*- Mode: C++ -*-
2// $Id$
e1f2d1c3 3// ************************************************************************
fbb9b71b 4// This file is property of and copyright by the ALICE HLT Project *
e1f2d1c3 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
b6935e5b 14/// @file AliHLTTPCCAGlobalMergerComponent.h
15/// @author Matthias Kretz
16/// @date
17/// @brief HLT TPC CA global merger component.
18///
e1f2d1c3 19
20#include "AliHLTProcessor.h"
57a4102f 21#include "AliHLTComponentBenchmark.h"
e1f2d1c3 22
23class AliHLTTPCCAMerger;
2d15d6ff 24class AliHLTTPCGMMerger;
e1f2d1c3 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 */
32class AliHLTTPCCAGlobalMergerComponent : public AliHLTProcessor
33{
34 public:
35 /**
36 * Constructs a AliHLTTPCCAGlobalMergerComponent.
37 */
38 AliHLTTPCCAGlobalMergerComponent();
39
40 /**
41 * Destructs the AliHLTTPCCAGlobalMergerComponent
42 */
43 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 **/
fbb9b71b 90 int Reconfigure( const char* cdbEntry, const char* chainId );
e1f2d1c3 91
92 /**
93 * @copydoc @ref AliHLTProcessor::DoEvent
94 */
95 int DoEvent( const AliHLTComponentEventData &evtData, const AliHLTComponentBlockData *blocks,
fbb9b71b 96 AliHLTComponentTriggerData &trigData, AliHLTUInt8_t *outputPtr,
97 AliHLTUInt32_t &size, AliHLTComponentBlockDataList &outputBlocks );
e1f2d1c3 98
99 using AliHLTProcessor::DoEvent;
100
101 private:
fbb9b71b 102
e1f2d1c3 103 static AliHLTTPCCAGlobalMergerComponent fgAliHLTTPCCAGlobalMergerComponent;
104
105 // disable copy
106 AliHLTTPCCAGlobalMergerComponent( const AliHLTTPCCAGlobalMergerComponent & );
107 AliHLTTPCCAGlobalMergerComponent &operator=( const AliHLTTPCCAGlobalMergerComponent & );
108
109 /** set configuration parameters **/
17d6eada 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 );
c26cae51 114
e1f2d1c3 115 /** the global merger object */
2d15d6ff 116
117 Int_t fVersion; // which version of global merger to use
118
119 AliHLTTPCCAMerger *fGlobalMergerVersion0; //!
120 AliHLTTPCGMMerger *fGlobalMerger; //!
e1f2d1c3 121
fbb9b71b 122 double fSolenoidBz; // magnetic field
f0fb467d 123 double fClusterErrorCorrectionY; // correction for the cluster error during pre-fit
124 double fClusterErrorCorrectionZ; // correction for the cluster error during pre-fit
57a4102f 125 AliHLTComponentBenchmark fBenchmark;// benchmark
e1f2d1c3 126
127 ClassDef( AliHLTTPCCAGlobalMergerComponent, 0 )
128};
129
31649d4b 130#endif //ALIHLTTPCCAGLOBALMERGERCOMPONENT_H