]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/ITS/tracking/AliHLTITSTrackerComponent.h
list of required CDB entries added to documentation
[u/mrichter/AliRoot.git] / HLT / ITS / tracking / AliHLTITSTrackerComponent.h
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 class AliITStrackerHLT;
21
22
23 /**
24  * @class AliHLTITSTrackerComponent
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  *
55  * ITS/Align/Data
56  * ITS/Calib/SPDNoisy
57  * ITS/Calib/SPDDead
58  * ITS/Calib/PITConditions
59  * ITS/Calib/CalibSDD
60  * ITS/Calib/RespSDD
61  * ITS/Calib/DriftSpeedSDD
62  * ITS/Calib/DDLMapSDD
63  * ITS/Calib/MapsTimeSDD
64  * ITS/Calib/NoiseSSD
65  * ITS/Calib/GainSSD
66  * ITS/Calib/BadChannelsSSD
67  *
68  * <h2>Performance:</h2>
69  * TODO
70  *
71  * <h2>Memory consumption:</h2>
72  * TODO
73  *
74  * <h2>Output size:</h2>
75  * TODO
76  * 
77  * @ingroup alihlt_its_components
78  */
79 class AliHLTITSTrackerComponent : public AliHLTProcessor
80 {
81   public:
82     /** standard constructor */
83     AliHLTITSTrackerComponent();
84
85     /** dummy copy constructor, defined according to effective C++ style */
86     AliHLTITSTrackerComponent( const AliHLTITSTrackerComponent& );
87
88     /** dummy assignment op, but defined according to effective C++ style */
89     AliHLTITSTrackerComponent& operator=( const AliHLTITSTrackerComponent& );
90
91     /** standard destructor */
92     virtual ~AliHLTITSTrackerComponent();
93
94     // Public functions to implement AliHLTComponent's interface.
95     // These functions are required for the registration process
96
97     /** @see component interface @ref AliHLTComponent::GetComponentID */
98     const char* GetComponentID() ;
99
100     /** @see component interface @ref AliHLTComponent::GetInputDataTypes */
101     void GetInputDataTypes( vector<AliHLTComponentDataType>& list )  ;
102
103     /** @see component interface @ref AliHLTComponent::GetOutputDataType */
104     AliHLTComponentDataType GetOutputDataType() ;
105
106     /** @see component interface @ref AliHLTComponent::GetOutputDataType */
107     int  GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
108
109     /** @see component interface @ref AliHLTComponent::GetOutputDataSize */
110     virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ) ;
111
112     /** @see component interface @ref AliHLTComponent::Spawn */
113     AliHLTComponent* Spawn() ;
114
115   protected:
116
117     // Protected functions to implement AliHLTComponent's interface.
118     // These functions provide initialization as well as the actual processing
119     // capabilities of the component.
120
121     /** @see component interface @ref AliHLTComponent::DoInit */
122     int DoInit( int argc, const char** argv );
123
124     /** @see component interface @ref AliHLTComponent::DoDeinit */
125     int DoDeinit();
126
127     /** reconfigure **/
128     int Reconfigure( const char* cdbEntry, const char* chainId );
129
130     /** @see component interface @ref AliHLTProcessor::DoEvent */
131     int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
132                  AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
133                  AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
134
135   private:
136
137     /** magnetic field */
138     double fSolenoidBz;                                            // see above
139     double fFullTime; //* total time for DoEvent() [s]
140     double fRecoTime; //* total reconstruction time [s]
141     Long_t    fNEvents;  //* number of reconstructed events
142     AliITStrackerHLT *fTracker; // the tracker itself
143
144     /** set configuration parameters **/
145     void SetDefaultConfiguration();
146     int ReadConfigurationString(  const char* arguments );
147     int ReadCDBEntry( const char* cdbEntry, const char* chainId );
148     int Configure( const char* cdbEntry, const char* chainId, const char *commandLine  );
149
150     ClassDef( AliHLTITSTrackerComponent, 0 );
151
152 };
153 #endif