]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/VZERO/AliHLTVZERORecoComponent.h
possibility to exclude events with SDD clusters plus a fix on the histogram filling...
[u/mrichter/AliRoot.git] / HLT / VZERO / AliHLTVZERORecoComponent.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTVZERORecoComponent $
3
4 #ifndef ALIHLTVZERORECOCOMPONENT_H
5 #define ALIHLTVZERORECOCOMPONENT_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    AliHLTVZERORecoComponent.h
12     @author  Jochen Thaeder <jochen@thaeder.de>
13     @brief   VZERO reconstruction component
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
23 #include "AliHLTProcessor.h"
24
25 class TTree;
26
27 class AliRunInfo;
28 class AliESDVZERO;
29 class AliRawReaderMemory;
30 class AliVZERORecoParam;
31 class AliVZEROReconstructor;
32
33 /**
34  * @class AliHLTVZERORecoComponent
35  * Reconstruction of VZERO data
36  * 
37  * <h2>General properties:</h2>
38  *
39  * Component ID: \b VZEROReconstruction <br>
40  * Library: \b libAliHLTVZERO.so     <br>
41  * Input Data Types:  @ref kAliHLTDataTypeDDLRaw <br>
42  * Output Data Types: @ref kAliHLTDataTypeESDContent|kAliHLTDataOriginVZERO <br>
43  *
44  * <h2>Mandatory arguments:</h2>
45  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting --> 
46  *
47  * <h2>Optional arguments:</h2>
48  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
49  *
50  * <h2>Configuration:</h2>
51  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
52  *
53  * <h2>Default CDB entries:</h2>
54  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
55  *
56  * <tt>HLT/ConfigVZERO/VZEROReconstruction</tt>
57  * \li -TObjString object holding a string with the configuration parameters
58  *      currently empty 
59  *
60  * <tt>GRP/GRP/Data</tt>
61  * \li -GRP object - run information
62  *
63  *  <tt>GRP/CTP/CTPtiming</tt>
64  * \li -GRP object - CTP information
65  *
66  * <tt>GRP/CTP/TimeAlign</tt>
67  * \li -GRP object - CTP information
68  * 
69  * <tt>GRP/Calib/LHCClockPhase</tt>
70  * \li -GRP object - time calibration
71  *
72  * <tt>VZERO/Calib/Data</tt>
73  * \li -VZERO calibration object
74  *
75  * <tt>VZERO/Calib/TimeDelays</tt>
76  * \li -VZERO calibration object
77  *
78  * <tt>VZERO/Calib/TimeSlewing</tt>
79  * \li -VZERO calibration object
80  *
81  * <h2>Performance:</h2>
82  *
83  * <h2>Memory consumption:</h2>
84  *
85  * <h2>Input size:</h2>
86  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
87  *
88  * \li pp: 5968 Byte
89  *
90  * <h2>Output size:</h2>
91  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
92  *
93  * \li pp: Average : 1.8 kByte
94  *
95  * <h2>Macros Tests</h2>
96  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
97  *
98  * <tt>macros/makeConfigurationObjectVZEROReconstruction.C</tt>
99  * \li - Create configuration TObjString
100  *
101  * <tt>macros/HLTVZEROTest.C</tt>
102  * \li - Test macro for VZERO test in off-line environment
103  *
104  * <tt>macros/runVZEROTest.sh</tt>
105  * \li - Run Test macro HLTVZEROTest.C
106  *
107  * @ingroup alihlt_vzero
108  */
109 class AliHLTVZERORecoComponent : public AliHLTProcessor {
110 public:
111
112   /*
113    * ---------------------------------------------------------------------------------
114    *                            Constructor / Destructor
115    * ---------------------------------------------------------------------------------
116    */
117
118   /** constructor */
119   AliHLTVZERORecoComponent();
120   
121   /** destructor */
122   virtual ~AliHLTVZERORecoComponent();
123
124   /*
125    * ---------------------------------------------------------------------------------
126    * Public functions to implement AliHLTComponent's interface.
127    * These functions are required for the registration process
128    * ---------------------------------------------------------------------------------
129    */
130
131   /** interface function, see @ref AliHLTComponent for description */
132   const Char_t* GetComponentID();
133
134   /** interface function, see @ref AliHLTComponent for description */
135   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
136
137   /** interface function, see @ref AliHLTComponent for description */
138   AliHLTComponentDataType GetOutputDataType();
139
140   /** interface function, see @ref AliHLTComponent for description */
141   void GetOutputDataSize( ULong_t& constBase, Double_t& inputMultiplier );
142
143   /** interface function, see @ref AliHLTComponent for description */
144   void GetOCDBObjectDescription( TMap* const targetMap);
145
146   /** interface function, see @ref AliHLTComponent for description */
147   AliHLTComponent* Spawn();
148
149  protected:
150
151   /*
152    * ---------------------------------------------------------------------------------
153    * Protected functions to implement AliHLTComponent's interface.
154    * These functions provide initialization as well as the actual processing
155    * capabilities of the component. 
156    * ---------------------------------------------------------------------------------
157    */
158
159   // AliHLTComponent interface functions
160
161   /** interface function, see @ref AliHLTComponent for description */
162   Int_t DoInit( Int_t argc, const Char_t** argv );
163
164   /** interface function, see @ref AliHLTComponent for description */
165   Int_t DoDeinit();
166
167   /** interface function, see @ref AliHLTComponent for description */
168   Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
169
170   using AliHLTProcessor::DoEvent;
171
172   /** interface function, see @ref AliHLTComponent for description */
173   Int_t ScanConfigurationArgument(Int_t argc, const Char_t** argv);
174
175   /** interface function, see @ref AliHLTComponent for description */
176   Int_t Reconfigure(const Char_t* cdbEntry, const Char_t* chainId);
177
178   /** interface function, see @ref AliHLTComponent for description */
179   Int_t ReadPreprocessorValues(const Char_t* modules);
180  
181   ///////////////////////////////////////////////////////////////////////////////////
182   
183 private:
184
185   /*
186    * ---------------------------------------------------------------------------------
187    * Private functions to implement AliHLTComponent's interface.
188    * These functions provide initialization as well as the actual processing
189    * capabilities of the component. 
190    * ---------------------------------------------------------------------------------
191    */
192
193   /** copy constructor prohibited */
194   AliHLTVZERORecoComponent(const AliHLTVZERORecoComponent&);
195
196   /** assignment operator prohibited */
197   AliHLTVZERORecoComponent& operator=(const AliHLTVZERORecoComponent&);
198
199   /*
200    * ---------------------------------------------------------------------------------
201    *                             Members - private
202    * ---------------------------------------------------------------------------------
203    */
204   
205   /** runInfo Object */
206   AliRunInfo            *fRunInfo;            // see above
207
208   /** VZERO reco param instance */
209   AliVZERORecoParam     *fVZERORecoParam;     //! transient
210
211   /** VZERO reconstructor instance */
212   AliVZEROReconstructor *fVZEROReconstructor; //! transient
213
214   /** Rawreader instance */
215   AliRawReaderMemory    *fRawReader;          //! transient
216   
217   ClassDef(AliHLTVZERORecoComponent, 0)
218 };
219 #endif