compilation error fixed
[u/mrichter/AliRoot.git] / HLT / ITS / tracking / AliHLTITSTrackerComponent.h
CommitLineData
21de9ddd 1//-*- Mode: C++ -*-
2// $Id$
6edb0fb5 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
21de9ddd 10/// @file AliHLTITSTrackerComponent.h
11/// @author Sergey Gorbunov <sergey.gorbunov@kip.uni-heidelberg.de>
12/// @date June 2009
13/// @brief An ITS tracker processing component for the HLT
14
6edb0fb5 15#ifndef ALIHLTITSTRACKERCOMPONENT_H
16#define ALIHLTITSTRACKERCOMPONENT_H
17
18#include "AliHLTProcessor.h"
19#include "AliHLTDataTypes.h"
20class AliITStrackerHLT;
21
22
23/**
24 * @class AliHLTITSTrackerComponent
21de9ddd 25 * The HL ITS tracker component.
26 *
27 * <h2>General properties:</h2>
28 *
29 * Component ID: \b ITSTracker <br>
30 * Library: \b libAliHLTITS.so <br>
31 * Input Data Types: <br>
32 * kAliHLTDataTypeTrack|kAliHLTDataOriginTPC <br>
33 * kAliHLTDataTypeClusters|kAliHLTDataOriginITSSSD <br>
34 * kAliHLTDataTypeClusters|kAliHLTDataOriginITSSPD <br>
35 * kAliHLTDataTypeClusters|kAliHLTDataOriginITSSDD <br>
36 *
37 * Output Data Types: <br>
38 * kAliHLTDataTypeTrack|kAliHLTDataOriginITS <br>
39 *
40 * <h2>Mandatory arguments:</h2>
41 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
42 *
43 * <h2>Optional arguments:</h2>
44 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
45 *
46 * <h2>Configuration:</h2>
47 * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
48 * \li -config1 <i> teststring </i> <br>
49 * a configuration argument with one parameter
50 * \li -config2 <br>
51 * a configuration argument without parameters
52 *
53 * <h2>Default CDB entries:</h2>
54 * TODO
55 *
56 * <h2>Performance:</h2>
57 * TODO
58 *
59 * <h2>Memory consumption:</h2>
60 * TODO
61 *
62 * <h2>Output size:</h2>
63 * TODO
64 *
65 * @ingroup alihlt_its_components
6edb0fb5 66 */
67class AliHLTITSTrackerComponent : public AliHLTProcessor
68{
69 public:
70 /** standard constructor */
71 AliHLTITSTrackerComponent();
72
73 /** dummy copy constructor, defined according to effective C++ style */
74 AliHLTITSTrackerComponent( const AliHLTITSTrackerComponent& );
75
76 /** dummy assignment op, but defined according to effective C++ style */
77 AliHLTITSTrackerComponent& operator=( const AliHLTITSTrackerComponent& );
78
79 /** standard destructor */
80 virtual ~AliHLTITSTrackerComponent();
81
82 // Public functions to implement AliHLTComponent's interface.
83 // These functions are required for the registration process
84
85 /** @see component interface @ref AliHLTComponent::GetComponentID */
86 const char* GetComponentID() ;
87
88 /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
89 void GetInputDataTypes( vector<AliHLTComponentDataType>& list ) ;
90
91 /** @see component interface @ref AliHLTComponent::GetOutputDataType */
92 AliHLTComponentDataType GetOutputDataType() ;
93
b7ed2eb4 94 /** @see component interface @ref AliHLTComponent::GetOutputDataType */
95 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
96
6edb0fb5 97 /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
98 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
99
100 /** @see component interface @ref AliHLTComponent::Spawn */
101 AliHLTComponent* Spawn() ;
102
103 protected:
104
105 // Protected functions to implement AliHLTComponent's interface.
106 // These functions provide initialization as well as the actual processing
107 // capabilities of the component.
108
109 /** @see component interface @ref AliHLTComponent::DoInit */
110 int DoInit( int argc, const char** argv );
111
112 /** @see component interface @ref AliHLTComponent::DoDeinit */
113 int DoDeinit();
114
115 /** reconfigure **/
116 int Reconfigure( const char* cdbEntry, const char* chainId );
117
118 /** @see component interface @ref AliHLTProcessor::DoEvent */
119 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
120 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
121 AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
122
123 private:
124
125 /** magnetic field */
126 double fSolenoidBz; // see above
127 double fFullTime; //* total time for DoEvent() [s]
128 double fRecoTime; //* total reconstruction time [s]
129 Long_t fNEvents; //* number of reconstructed events
130 AliITStrackerHLT *fTracker; // the tracker itself
131
132 /** set configuration parameters **/
133 void SetDefaultConfiguration();
134 int ReadConfigurationString( const char* arguments );
135 int ReadCDBEntry( const char* cdbEntry, const char* chainId );
136 int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
137
138 ClassDef( AliHLTITSTrackerComponent, 0 );
139
140};
141#endif