]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/comp/AliHLTTPCCompModelConverterComponent.h
coding conventions and compilation warnings and work on adaptive TPC data compression...
[u/mrichter/AliRoot.git] / HLT / TPCLib / comp / AliHLTTPCCompModelConverterComponent.h
1 // XEmacs -*-C++-*-
2 // $Id$
3
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                               *
9
10 /** @file   AliHLTTPCCompModelConverterComponent.h
11     @author Timm Steinbeck
12     @author changed by J. Wagner
13     @date   17-11-2007
14     @brief  Declaration of a copy component. */
15
16
17 #include "AliHLTProcessor.h"
18 #include "AliHLTTPCCompModelConverter.h"
19 #include "AliHLTStdIncludes.h"
20
21 /**
22  * @class AliHLTTPCCompModelConverterComponent
23  * @brief A dummy HLT processing component. 
24  *
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
30  * @ingroup alihlt_tpc
31  */
32 class AliHLTTPCCompModelConverterComponent : public AliHLTProcessor
33 {
34 public:
35   /** standard constructor */
36   AliHLTTPCCompModelConverterComponent();
37   /** standard destructor */
38   virtual ~AliHLTTPCCompModelConverterComponent();
39   
40   // Public functions to implement AliHLTComponent's interface.
41   // These functions are required for the registration process
42   
43   /** function to get component id 
44    * @return const char* pointer to componentid
45    */
46   const char* GetComponentID();
47
48   /** function to get input data types
49    * @param list vecotr of AliHLTComponent_DataType
50    */
51   void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
52
53   /** function to get output data type
54    * @return AliHLTComponent_DataType
55    */
56   AliHLTComponent_DataType GetOutputDataType();
57
58   /** function to get output data size
59    * @param constBase address of an unsigned long
60    * @param inputMultiplier address of a double
61    */
62   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
63
64   /** spawn function
65    * @return AliHLTComponent* pointer to instance
66    */
67   AliHLTComponent* Spawn();
68   
69 protected:
70   
71   // Protected functions to implement AliHLTComponent's interface.
72   // These functions provide initialization as well as the actual processing
73   // capabilities of the component. 
74   
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
79    */
80   int DoInit( int argc, const char** argv );
81
82   /** deinitialisation function
83    * @return zero upon success
84    */
85   int DoDeinit();
86
87   /** do event function
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
95    */
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 );
99   
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
109   
110 private:
111   /** copy constructor prohibited */
112   AliHLTTPCCompModelConverterComponent(const AliHLTTPCCompModelConverterComponent&);
113   /** assignment operator prohibited */
114   AliHLTTPCCompModelConverterComponent& operator=(const AliHLTTPCCompModelConverterComponent&);
115
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
123   
124   ClassDef(AliHLTTPCCompModelConverterComponent, 0)
125     
126     };
127 #endif