Adding analysis for Flat ESD case
[u/mrichter/AliRoot.git] / HLT / global / physics / AliHLTFlatAnaManagerComponent.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTFlatAnaManagerComponent $
3
4 #ifndef ALIHLTFLATANAMANAGERCOMPONENT_H
5 #define ALIHLTFLATANAMANAGERCOMPONENT_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    AliHLTFlatAnaManagerComponent.h
12     @author  Jochen Thaeder <jochen@thaeder.de>
13     @brief   Component for Multiplicty Correlations
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 AliAnalysisManager;
33 class AliHLTTestInputHandler;
34
35 /**
36  * @class AliHLTFlatAnaManagerComponent
37  * Create Correlations for Multiplicities
38  * 
39  * <h2>General properties:</h2>
40  *
41  * Component ID: \b MultiplicityCorrelations <br>
42  * Library: \b libAliHLTGlobal.so     <br>
43  * Input Data Types:  @ref kAliHLTDataTypeESDObject <br>
44  * Output Data Types: @ref kAliHLTDataTypeTObject|kAliHLTDataOriginHLT <br>
45  *
46  * <h2>Mandatory arguments:</h2>
47  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting --> 
48  *
49  * <h2>Optional arguments:</h2>
50  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
51  *
52  * <h2>Configuration:</h2>
53  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
54  *
55  * \li -minpt    <i> pt  </i> <br>
56  *      minimum pt - pt range
57  * \li -maxpt    <i> pt  </i> <br>
58  *      maximum pt - pt range
59  * \li -min-ldca    <i> dca  </i> <br>
60  *      minimum longitudinal dca to reference point
61  * \li -max-ldca    <i> dca  </i> <br>
62  *      maximum longitudinal dca to reference point
63  * \li -min-tdca    <i> dca  </i> <br>
64  *      minimum transverse dca to reference point
65  * \li -max-tdca    <i> dca  </i> <br>
66  *      maximum transverse dca to reference point
67  * \li -etarange    <i> eta  </i> <br>
68  *      +/- eta range
69  *
70  * \li -binningVzero    <i> bins min max  </i> <br>
71  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
72  * \li -binningTpc      <i> bins min max  </i> <br>
73  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
74  * \li -binningZdc      <i> bins min max  </i> <br>
75  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
76  * \li -binningZnp     <i> bins min max  </i> <br>
77  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
78  * \li -binningZem     <i> bins min max  </i> <br>
79  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
80  * \li -binningCalo    <i> bins min max  </i> <br>
81  *       bins (Int_t), minBin (Float_t), maxBin (Float_t)
82  *
83  * \li -addTrigger     <i> TriggerClass beginning (eg CPBI1)  </i> <br>
84
85  * <h2>Default CDB entries:</h2>
86  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
87  *
88  * <tt>HLT/ConfigGlobal/MultiplicityCorrelations</tt>
89  * \li -TObjString object holding a string with the configuration parameters
90  *      currently empty 
91  *
92  * <h2>Performance:</h2>
93  *
94  * <h2>Memory consumption:</h2>
95  *
96  * <h2>Input size:</h2>
97  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
98  *
99  * \li pp: 
100  *
101  * <h2>Output size:</h2>
102  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
103  *
104  * \li pp: Average : 
105  *
106  * <h2>Macros Tests</h2>
107  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
108  *
109  * <tt>macros/makeConfigurationObjectMultiplicityCorrelations.C</tt>
110  * \li - Create configuration TObjString
111  *
112  * <tt>macros/HLTMultiplicityCorrelationsTest.C</tt>
113  * \li - Test macro for test in off-line environment
114  *
115  * <tt>macros/runMultiplicityCorrelationsTest.sh</tt>
116  * \li - Run Test macro HLTMultiplicityCorrelationsTest.C
117  *
118  * @ingroup alihlt_physics
119  */
120 class AliHLTFlatAnaManagerComponent : public AliHLTProcessor {
121 public:
122
123   /*
124    * ---------------------------------------------------------------------------------
125    *                            Constructor / Destructor
126    * ---------------------------------------------------------------------------------
127    */
128
129   /** constructor */
130   AliHLTFlatAnaManagerComponent();
131   
132   /** destructor */
133   virtual ~AliHLTFlatAnaManagerComponent();
134
135   /*
136    * ---------------------------------------------------------------------------------
137    * Public functions to implement AliHLTComponent's interface.
138    * These functions are required for the registration process
139    * ---------------------------------------------------------------------------------
140    */
141
142   /** interface function, see @ref AliHLTComponent for description */
143   const Char_t* GetComponentID();
144
145   /** interface function, see @ref AliHLTComponent for description */
146   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
147
148   /** interface function, see @ref AliHLTComponent for description */
149   AliHLTComponentDataType GetOutputDataType();
150
151   /** interface function, see @ref AliHLTComponent for description */
152   void GetOutputDataSize( ULong_t& constBase, Double_t& inputMultiplier );
153
154   /** interface function, see @ref AliHLTComponent for description */
155   void GetOCDBObjectDescription( TMap* const targetMap);
156
157   /** interface function, see @ref AliHLTComponent for description */
158   AliHLTComponent* Spawn();
159
160  protected:
161
162   /*
163    * ---------------------------------------------------------------------------------
164    * Protected functions to implement AliHLTComponent's interface.
165    * These functions provide initialization as well as the actual processing
166    * capabilities of the component. 
167    * ---------------------------------------------------------------------------------
168    */
169
170   // AliHLTComponent interface functions
171
172   /** interface function, see @ref AliHLTComponent for description */
173   Int_t DoInit( Int_t /*argc*/, const Char_t** /*argv*/ );
174
175   /** interface function, see @ref AliHLTComponent for description */
176   Int_t DoDeinit();
177
178   /** interface function, see @ref AliHLTComponent for description */
179   Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
180
181   using AliHLTProcessor::DoEvent;
182
183
184   /** interface function, see @ref AliHLTComponent for description */
185   Int_t Reconfigure(const Char_t* cdbEntry, const Char_t* chainId);
186
187   /** interface function, see @ref AliHLTComponent for description */
188   Int_t ReadPreprocessorValues(const Char_t* modules);
189  
190   ///////////////////////////////////////////////////////////////////////////////////
191   
192 private:
193
194   /*
195    * ---------------------------------------------------------------------------------
196    * Private functions to implement AliHLTComponent's interface.
197    * These functions provide initialization as well as the actual processing
198    * capabilities of the component. 
199    * ---------------------------------------------------------------------------------
200    */
201
202   /** copy constructor prohibited */
203   AliHLTFlatAnaManagerComponent(const AliHLTFlatAnaManagerComponent&);
204
205   /** assignment operator prohibited */
206   AliHLTFlatAnaManagerComponent& operator=(const AliHLTFlatAnaManagerComponent&);
207
208
209   /*
210    * ---------------------------------------------------------------------------------
211    *                              Helper
212    * ---------------------------------------------------------------------------------
213    */
214
215   /*
216    * ---------------------------------------------------------------------------------
217    *                             Members - private
218    * ---------------------------------------------------------------------------------
219    */
220   
221   /** UID for merging */
222   AliHLTUInt32_t fUID;                        // see above
223
224   AliAnalysisManager *fAnalysisManager;        // Manger
225
226   AliHLTTestInputHandler *fInputHandler;    // input handler
227
228   ClassDef(AliHLTFlatAnaManagerComponent, 0)
229 };
230 #endif