4 #ifndef ALIHLTTPCCOMPMODELCONVERTERCOMPONENT_H
5 #define ALIHLTTPCCOMPMODELCONVERTERCOMPONENT_H
6 //* This file is property of and copyright by the ALICE HLT Project *
7 //* ALICE Experiment at CERN, All rights reserved. *
8 //* See cxx source for full Copyright notice *
10 /** @file AliHLTTPCCompModelConverterComponent.h
11 @author Timm Steinbeck
12 @author changed by J. Wagner
14 @brief Declaration of a copy component. */
17 #include "AliHLTProcessor.h"
18 #include "AliHLTTPCCompModelConverter.h"
19 #include "AliHLTStdIncludes.h"
22 * @class AliHLTTPCCompModelConverterComponent
23 * @brief A dummy HLT processing component.
25 * An implementiation of a converter component that
26 * takes in clusters and tracks in the standard HLT format
27 * and converts them into the Vestbo-format
28 * such that the Vestbo compression can then be
29 * applied to these tracks and clusters
32 class AliHLTTPCCompModelConverterComponent : public AliHLTProcessor
35 /** standard constructor */
36 AliHLTTPCCompModelConverterComponent();
37 /** standard destructor */
38 virtual ~AliHLTTPCCompModelConverterComponent();
40 // Public functions to implement AliHLTComponent's interface.
41 // These functions are required for the registration process
43 /** function to get component id
44 * @return const char* pointer to componentid
46 const char* GetComponentID();
48 /** function to get input data types
49 * @param list vecotr of AliHLTComponent_DataType
51 void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
53 /** function to get output data type
54 * @return AliHLTComponent_DataType
56 AliHLTComponent_DataType GetOutputDataType();
58 /** function to get output data size
59 * @param constBase address of an unsigned long
60 * @param inputMultiplier address of a double
62 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
65 * @return AliHLTComponent* pointer to instance
67 AliHLTComponent* Spawn();
71 // Protected functions to implement AliHLTComponent's interface.
72 // These functions provide initialization as well as the actual processing
73 // capabilities of the component.
75 /** initialisation function
76 * @param argc integer counting number of input arguments
77 * @param argv const char** for parameter values
78 * @return zero upon success
80 int DoInit( int argc, const char** argv );
82 /** deinitialisation function
83 * @return zero upon success
88 * @param evtData const AliHLTComponent_EventData& to event data
89 * @param blocks const AliHLTComponent_BlockData* to blocks of event data
90 * @param trigData AliHLTComponent_TriggerData& of trigger data
91 * @param outputPtr AliHLTUInt8_t* pointer to output data
92 * @param size AliHLTUInt32_t& of output size
93 * @param outputBlocks vector<AliHLTComponent_BlockData>& of output block data
94 * @return zero upon success
96 int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks,
97 AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
98 AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
100 /** pointer to model converter instance */
101 AliHLTTPCCompModelConverter* fConverter; // pointer to model converter instance
102 /** pointer to model analysis instance */
103 AliHLTTPCCompModelAnalysis* fModelAnalysisInstance; // pointer to model analysis instance
104 /** filename (including path) where to write model analysis results
105 if set by command line argument -dumptofile result-folder/results */
106 TString fDumpFileName; // filename (including path)
107 /** root file name for graphs from track comparison */
108 TString fGraphFileName; // root file name for graphs
111 /** copy constructor prohibited */
112 AliHLTTPCCompModelConverterComponent(const AliHLTTPCCompModelConverterComponent&);
113 /** assignment operator prohibited */
114 AliHLTTPCCompModelConverterComponent& operator=(const AliHLTTPCCompModelConverterComponent&);
116 /** flags to decide wheter to do track or model loss analysis */
117 /** switch on model analysis */
118 Bool_t fModelAnalysis; // switch on model analysis
119 /** switch on track analysis */
120 Bool_t fTrackAnalysis; // switch on track analysis
121 /** flag to check if first or second array is filled */
122 Bool_t fFillingFirstTrackArray; // 1 if first array is processed, 0 for second filling process
124 ClassDef(AliHLTTPCCompModelConverterComponent, 0)