Convertor from CATracker output to AliHLTTracksData added. It is needed by QA components.
[u/mrichter/AliRoot.git] / HLT / TPCLib / tracking-ca / AliHLTTPCCATrackerOutputConverter.h
1 // ************************************************************************
2 // This file is property of and copyright by the ALICE HLT Project        *
3 // ALICE Experiment at CERN, All rights reserved.                         *
4 // See cxx source for full Copyright notice                               *
5 //                                                                        *
6 //*************************************************************************
7
8
9 #ifndef ALIHLTTPCCATRACKEROUTPUTCONVERTER_H
10 #define ALIHLTTPCCATRACKEROUTPUTCONVERTER_H
11
12 /** @file   AliHLTTPCCATrackerOutputConverter.h
13     @author Matthias Kretz
14     @date
15     @brief  Converter of the AliHLTTPCCATracker output
16 */
17
18 #include "AliHLTProcessor.h"
19 #include "AliHLTComponentBenchmark.h"
20
21
22 /**
23  * @class AliHLTTPCCATrackerOutputConverter
24  * Converter of the AliHLTTPCCATracker output
25  * 
26  */
27 class AliHLTTPCCATrackerOutputConverter : public AliHLTProcessor
28 {
29   public:
30     /**
31      * Constructs a AliHLTTPCCATrackerOutputConverter.
32      */
33     AliHLTTPCCATrackerOutputConverter();
34
35     /**
36      * Destructs the AliHLTTPCCATrackerOutputConverter
37      */
38     virtual ~AliHLTTPCCATrackerOutputConverter() {};
39
40     // Public functions to implement AliHLTComponent's interface.
41     // These functions are required for the registration process
42
43     /**
44      * @copydoc AliHLTComponent::GetComponentID
45      */
46     const char *GetComponentID();
47
48     /**
49      * @copydoc AliHLTComponent::GetInputDataTypes
50      */
51     void GetInputDataTypes( AliHLTComponentDataTypeList &list );
52
53     /**
54      * @copydoc AliHLTComponent::GetOutputDataType
55      */
56     AliHLTComponentDataType GetOutputDataType();
57
58     /**
59      * @copydoc AliHLTComponent::GetOutputDataSize
60      */
61     virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
62
63     /**
64      * @copydoc AliHLTComponent::Spawn
65      */
66     AliHLTComponent *Spawn();
67
68   protected:
69
70     // Protected functions to implement AliHLTComponent's interface.
71     // These functions provide initialization as well as the actual processing
72     // capabilities of the component.
73
74     /**
75      * @copydoc AliHLTComponent::DoInit
76      */
77     int DoInit( int argc, const char **argv );
78
79     /**
80      * @copydoc AliHLTComponent::DoDeinit
81      */
82     int DoDeinit();
83
84     /** reconfigure **/
85     int Reconfigure( const char* cdbEntry, const char* chainId );
86
87     /**
88      * @copydoc @ref AliHLTProcessor::DoEvent
89      */
90     int DoEvent( const AliHLTComponentEventData &evtData, const AliHLTComponentBlockData *blocks,
91                  AliHLTComponentTriggerData &trigData, AliHLTUInt8_t *outputPtr,
92                  AliHLTUInt32_t &size, AliHLTComponentBlockDataList &outputBlocks );
93
94     using AliHLTProcessor::DoEvent;
95
96   private:
97
98     static AliHLTTPCCATrackerOutputConverter fgAliHLTTPCCATrackerOutputConverter;
99
100     // disable copy
101     AliHLTTPCCATrackerOutputConverter( const AliHLTTPCCATrackerOutputConverter & );
102     AliHLTTPCCATrackerOutputConverter &operator=( const AliHLTTPCCATrackerOutputConverter & );
103
104     /** set configuration parameters **/
105     void SetDefaultConfiguration();
106     int ReadConfigurationString(  const char* arguments );
107     int ReadCDBEntry( const char* cdbEntry, const char* chainId );
108     int Configure( const char* cdbEntry, const char* chainId, const char *commandLine );
109
110     AliHLTComponentBenchmark fBenchmark;// benchmark
111
112     ClassDef( AliHLTTPCCATrackerOutputConverter, 0 )
113 };
114
115 #endif //ALIHLTTPCCAGLOBALMERGERCOMPONENT_H