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