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 *
8 //*************************************************************************
11 #ifndef ALIHLTTPCCAGLOBALMERGERCOMPONENT_H
12 #define ALIHLTTPCCAGLOBALMERGERCOMPONENT_H
14 /// @file AliHLTTPCCAGlobalMergerComponent.h
15 /// @author Matthias Kretz
17 /// @brief HLT TPC CA global merger component.
20 #include "AliHLTProcessor.h"
21 #include "AliHLTComponentBenchmark.h"
23 class AliHLTTPCCAMerger;
24 class AliHLTTPCGMMerger;
27 * @class AliHLTTPCCAGlobalMergerComponent
28 * The TPC global merger component
30 * Interface to the global merger of the CA tracker for HLT.
32 class AliHLTTPCCAGlobalMergerComponent : public AliHLTProcessor
36 * Constructs a AliHLTTPCCAGlobalMergerComponent.
38 AliHLTTPCCAGlobalMergerComponent();
41 * Destructs the AliHLTTPCCAGlobalMergerComponent
43 virtual ~AliHLTTPCCAGlobalMergerComponent() {};
45 // Public functions to implement AliHLTComponent's interface.
46 // These functions are required for the registration process
49 * @copydoc AliHLTComponent::GetComponentID
51 const char *GetComponentID();
54 * @copydoc AliHLTComponent::GetInputDataTypes
56 void GetInputDataTypes( AliHLTComponentDataTypeList &list );
59 * @copydoc AliHLTComponent::GetOutputDataType
61 AliHLTComponentDataType GetOutputDataType();
64 * @copydoc AliHLTComponent::GetOutputDataSize
66 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
69 * @copydoc AliHLTComponent::Spawn
71 AliHLTComponent *Spawn();
75 // Protected functions to implement AliHLTComponent's interface.
76 // These functions provide initialization as well as the actual processing
77 // capabilities of the component.
80 * @copydoc AliHLTComponent::DoInit
82 int DoInit( int argc, const char **argv );
85 * @copydoc AliHLTComponent::DoDeinit
90 int Reconfigure( const char* cdbEntry, const char* chainId );
93 * @copydoc @ref AliHLTProcessor::DoEvent
95 int DoEvent( const AliHLTComponentEventData &evtData, const AliHLTComponentBlockData *blocks,
96 AliHLTComponentTriggerData &trigData, AliHLTUInt8_t *outputPtr,
97 AliHLTUInt32_t &size, AliHLTComponentBlockDataList &outputBlocks );
99 using AliHLTProcessor::DoEvent;
103 static AliHLTTPCCAGlobalMergerComponent fgAliHLTTPCCAGlobalMergerComponent;
106 AliHLTTPCCAGlobalMergerComponent( const AliHLTTPCCAGlobalMergerComponent & );
107 AliHLTTPCCAGlobalMergerComponent &operator=( const AliHLTTPCCAGlobalMergerComponent & );
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 );
115 /** the global merger object */
117 Int_t fVersion; // which version of global merger to use
119 AliHLTTPCCAMerger *fGlobalMergerVersion0; //!
120 AliHLTTPCGMMerger *fGlobalMerger; //!
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
127 ClassDef( AliHLTTPCCAGlobalMergerComponent, 0 )
130 #endif //ALIHLTTPCCAGLOBALMERGERCOMPONENT_H