]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/global/AliHLTGlobalEsdToFlatConverterComponent.h
added friends to compare component
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalEsdToFlatConverterComponent.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTGlobalEsdToFlatConverterComponent $
3
4 #ifndef ALIHLTESDTOFLATCONVERTERCOMPONENT_H
5 #define ALIHLTESDTOFLATCONVERTERCOMPONENT_H
6
7 /* This file is property of and copyright by the ALICE HLT Project        * 
8  * ALICE Experiment at CERN, All rights reserved.                         *
9  * See cxx source for full Copyright notice                               */
10
11 /** @file    AliHLTGlobalEsdToFlatConverterComponent.h
12     @author  Steffen Weber <s.weber@gsi.de>
13     @brief   Component to convert ESD objects to flatESD objects
14 */
15
16 // see below for class documentation
17 // or
18 // refer to README to build package
19 // or
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21
22 #include "AliHLTProcessor.h"
23
24 class TH1F;
25 class TList;
26
27 class AliESDVZERO;
28 class AliESDtrackCuts;
29 class AliHLTCTPData;
30 class AliHLTMultiplicityCorrelations;
31 class AliHLTGlobalTriggerDecision;
32 class AliHLTTestInputHandler;
33
34 class AliHLTGlobalEsdToFlatConverterComponent : public AliHLTProcessor {
35 public:
36
37   /*
38    * ---------------------------------------------------------------------------------
39    *                            Constructor / Destructor
40    * ---------------------------------------------------------------------------------
41    */
42
43   /** constructor */
44   AliHLTGlobalEsdToFlatConverterComponent();
45   
46   /** destructor */
47   virtual ~AliHLTGlobalEsdToFlatConverterComponent();
48
49   /*
50    * ---------------------------------------------------------------------------------
51    * Public functions to implement AliHLTComponent's interface.
52    * These functions are required for the registration process
53    * ---------------------------------------------------------------------------------
54    */
55
56   /** interface function, see @ref AliHLTComponent for description */
57   const Char_t* GetComponentID();
58
59   /** interface function, see @ref AliHLTComponent for description */
60   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
61
62   /** interface function, see @ref AliHLTComponent for description */
63   AliHLTComponentDataType GetOutputDataType();
64
65   /** interface function, see @ref AliHLTComponent for description */
66   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
67
68   /** interface function, see @ref AliHLTComponent for description */
69   void GetOutputDataSize( ULong_t& constBase, Double_t& inputMultiplier );
70
71   /** interface function, see @ref AliHLTComponent for description */
72  // void GetOCDBObjectDescription( TMap* const targetMap);
73
74   /** interface function, see @ref AliHLTComponent for description */
75   AliHLTComponent* Spawn();
76
77  protected:
78
79   /*
80    * ---------------------------------------------------------------------------------
81    * Protected functions to implement AliHLTComponent's interface.
82    * These functions provide initialization as well as the actual processing
83    * capabilities of the component. 
84    * ---------------------------------------------------------------------------------
85    */
86
87   // AliHLTComponent interface functions
88
89   /** interface function, see @ref AliHLTComponent for description */
90   Int_t DoInit( Int_t /*argc*/, const Char_t** /*argv*/ );
91
92   /** interface function, see @ref AliHLTComponent for description */
93   Int_t DoDeinit();
94
95   /** interface function, see @ref AliHLTComponent for description */
96   int DoEvent( const AliHLTComponentEventData& evtData,
97                const AliHLTComponentBlockData* blocks, 
98                AliHLTComponentTriggerData& trigData,
99                AliHLTUInt8_t* outputPtr, 
100                AliHLTUInt32_t& size,
101                AliHLTComponentBlockDataList& outputBlocks);
102
103   using AliHLTProcessor::DoEvent;
104
105
106   /**
107    * Configure the component.
108    * Parse a string for the configuration arguments and set the component
109    * properties.
110    */
111   int Configure(const char* arguments);
112
113   /** interface function, see @ref AliHLTComponent for description */
114   Int_t Reconfigure(const Char_t* cdbEntry, const Char_t* chainId);
115
116   /** interface function, see @ref AliHLTComponent for description */
117   Int_t ReadPreprocessorValues(const Char_t* modules);
118  
119   ///////////////////////////////////////////////////////////////////////////////////
120   
121 private:
122
123   /*
124    * ---------------------------------------------------------------------------------
125    * Private functions to implement AliHLTComponent's interface.
126    * These functions provide initialization as well as the actual processing
127    * capabilities of the component. 
128    * ---------------------------------------------------------------------------------
129    */
130
131   /** copy constructor prohibited */
132   AliHLTGlobalEsdToFlatConverterComponent(const AliHLTGlobalEsdToFlatConverterComponent&);
133
134   /** assignment operator prohibited */
135   AliHLTGlobalEsdToFlatConverterComponent& operator=(const AliHLTGlobalEsdToFlatConverterComponent&);
136
137
138   /*
139    * ---------------------------------------------------------------------------------
140    *                              Helper
141    * ---------------------------------------------------------------------------------
142    */
143
144   /*
145    * ---------------------------------------------------------------------------------
146    *                             Members - private
147    * ---------------------------------------------------------------------------------
148    */
149   
150   /** UID for merging */
151
152   ClassDef(AliHLTGlobalEsdToFlatConverterComponent, 0)
153 };
154 #endif