Porting HLT doxygen documentation to cmake
[u/mrichter/AliRoot.git] / HLT / global / physics / AliHLTMultiplicityCorrelations.h
1 //-*- Mode: C++ -*-
2
3 // $Id: AliHLTMultiplicityCorrelations.h  $
4 #ifndef ALIHLTMULTIPLICITYCORRELATIONS_H
5 #define ALIHLTMULTIPLICITYCORRELATIONS_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   AliHLTMultiplicityCorrelations.h
12     @author Jochen Thaeder
13     @date   
14     @brief  Correlation plots for multiplicity studies
15 */
16
17 // see below for class documentation
18 // or
19 // refer to README to build package
20 // or
21 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22
23 #include "AliHLTLogging.h"
24
25 #include "AliESDtrackCuts.h"
26 #include "AliESDEvent.h"
27 #include "AliESDVZERO.h"
28 #include "AliESDZDC.h"
29
30 #include "TList.h"
31
32 class TH1;
33
34 /**
35  * @class AliHLTMultiplicityCorrelations
36  *
37  * @ingroup alihlt_global
38  */
39
40 class AliHLTMultiplicityCorrelations : public TNamed, public AliHLTLogging {
41 public:
42   
43   /*
44    * ---------------------------------------------------------------------------------
45    *                            Constructor / Destructor
46    * ---------------------------------------------------------------------------------
47    */
48
49   /** Default Constructor */
50   AliHLTMultiplicityCorrelations();
51   
52   /** Constructor */
53   AliHLTMultiplicityCorrelations(Char_t* name, Char_t* title);
54   
55   /** Destructor */
56   ~AliHLTMultiplicityCorrelations();
57
58   /*
59    * ---------------------------------------------------------------------------------
60    *                         Initialize / Setup / Reset - public
61    * ---------------------------------------------------------------------------------
62    */
63
64   /** Initialize class and members */
65   Int_t Initialize();
66
67   /** Initialize class and members */
68   Int_t Initialize( const Char_t* listName );
69
70   /*
71    * ---------------------------------------------------------------------------------
72    *                                Setter - public
73    * ---------------------------------------------------------------------------------
74    */
75
76   /** Set ESD track cuts */
77   void SetESDTrackCuts(AliESDtrackCuts *cuts) { fESDTrackCuts = cuts; }
78
79   /** Set SPD clusters from inner and outer layer */
80   void SetSPDClusters(Int_t inner, Int_t outer) { 
81     fSpdNClustersInner = inner; fSpdNClustersOuter = outer; 
82   }
83
84   /** Set Binning of VZERO */
85   void SetBinningVzero(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
86     fVzeroBinning = i; fVzeroBinningMin = f1; fVzeroBinningMax = f2;
87   }
88   
89   /** Set Binning of TPC */
90   void SetBinningTpc(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
91     fTpcBinning = i; fTpcBinningMin = f1; fTpcBinningMax = f2;
92   }
93
94   /** Set Binning of ZDC */
95   void SetBinningZdc(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
96     fZdcBinning = i; fZdcBinningMin = f1; fZdcBinningMax = f2;
97   }
98
99   /** Set Binning of ZEM */
100   void SetBinningZem(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
101     fZemBinning = i; fZemBinningMin = f1; fZemBinningMax = f2;
102   }
103
104   /** Set Binning of ZNP */
105   void SetBinningZnp(Int_t /*i=1*/, Float_t /*f1=0.*/, Float_t /*f2=1.*/) {;}
106
107   /** Set Binning of CALO */
108   void SetBinningCalo(Int_t /*i=1*/, Float_t /*f1=0.*/, Float_t /*f2=1.*/) {;}
109
110   /** Set Binning of SPD */
111   void SetBinningSpd(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
112     fSpdBinning = i; fSpdBinningMin = f1; fSpdBinningMax = f2;
113   }
114
115   /** Set process PHOS */
116   void SetProcessPhos(Bool_t /*b=kTRUE*/)  {;}
117   /** Set process EMCAL */
118   void SetProcessEmcal(Bool_t /*b=kTRUE*/) {;}
119
120   /** Enable / Disable detectors */
121   void SetProcessCALO(Bool_t /*b = kTRUE*/) {;}
122   void SetProcessSPD(Bool_t b = kTRUE)  { fProcessSPD = b; }
123   void SetProcessTPC(Bool_t b = kTRUE)  { fProcessTPC = b; }
124   void SetProcessZDC(Bool_t b = kTRUE)  { fProcessZDC = b; }
125   void SetProcessVZERO(Bool_t b = kTRUE){ fProcessVZERO = b; }
126   void SetProcessCentrality(Bool_t b = kTRUE){ fProcessCentrality = b; }
127
128   /** Centrality Estimator */
129   void SetCentralityEstimator(TH1F* hist) { fCentHistV0Mpercentile = hist; }
130
131   /*
132    * ---------------------------------------------------------------------------------
133    *                                 Getter - public
134    * ---------------------------------------------------------------------------------
135    */
136
137   /** Get List of histograms */
138   TList* GetHistList() const { return fHistList; }
139
140   /*
141    * ---------------------------------------------------------------------------------
142    *                             Process - public
143    * ---------------------------------------------------------------------------------
144    */
145   
146   /** Process current event */
147   Int_t ProcessEvent( AliESDEvent *esd, AliESDVZERO* esdVZERO, Int_t nSpdClusters);
148
149   Int_t ProcessEvent( AliESDEvent *esd ) {
150     return ProcessEvent(esd, NULL, 0);
151   }
152
153
154   ///////////////////////////////////////////////////////////////////////////////////
155   
156  private:
157  
158   /** copy constructor prohibited */
159   AliHLTMultiplicityCorrelations(const AliHLTMultiplicityCorrelations&);
160   
161   /** assignment operator prohibited */
162   AliHLTMultiplicityCorrelations& operator=(const AliHLTMultiplicityCorrelations&);
163
164   /*
165    * ---------------------------------------------------------------------------------
166    *                         Initialize / Setup / Reset - private
167    * ---------------------------------------------------------------------------------
168    */
169
170   /** Add esd object
171    * param esd Ptr to AliESDEvent
172    * return kTRUE if AliESDEvent and Vertex present
173    */
174   Bool_t AddESDEvent( AliESDEvent* esd );
175
176   /** Setup histograms */
177   Int_t SetupHistograms();
178
179   /** Setup VZERO histograms */
180   Int_t SetupVZERO();
181
182   /** Setup ZDC histograms */
183   Int_t SetupZDC();
184
185   /** Setup TPC histograms */
186   Int_t SetupTPC();
187
188   /** Setup correlation histograms */
189   Int_t SetupCorrelations();
190   
191   /** Setup SPD histograms */
192   Int_t SetupSPD();
193
194   /** Setup Centrality histograms */
195   Int_t SetupCentrality();
196
197   /*
198    * ---------------------------------------------------------------------------------
199    *                             Process - private
200    * ---------------------------------------------------------------------------------
201    */
202
203   /** Process current event - TPC */
204   Int_t ProcessTPC();
205
206   /** Process current event - SPD */
207   Int_t ProcessSPD();
208   
209   /** Process current event - VZERO */
210   Int_t ProcessVZERO();
211
212   /** Process current event - ZDC and correlations */
213   Int_t ProcessZDC();
214
215   /** Process current event - centrality */
216   Int_t ProcessCentrality();
217
218   /*
219    * ---------------------------------------------------------------------------------
220    *                             Members - private
221    * ---------------------------------------------------------------------------------
222    */
223
224   /** List of histograms */ 
225   TList           *fHistList;             // see above
226
227   /** Ptr to AliESDEvent */
228   AliESDEvent     *fESDEvent;             //! transient
229
230   /** Ptr to ZDC object in AliESDEvent*/ 
231   AliESDZDC       *fESDZDC;               //! transient
232
233   /** Ptr to VZERO object in AliESDEvent*/ 
234   AliESDVZERO     *fESDVZERO;             //! transient
235
236   /** Ptr to AliESD track cuts */
237   AliESDtrackCuts *fESDTrackCuts;         //! transient
238
239   /** Centrality Estimator */
240   TH1F* fCentHistV0Mpercentile;           //! transient
241
242   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
243
244   /** Process TPC information */
245   Bool_t           fProcessTPC;           // see above
246
247   /** Process SPD information */
248   Bool_t           fProcessSPD;           // see above
249
250   /** Process VZERO information */
251   Bool_t           fProcessVZERO;         // see above
252
253   /** Process ZDC information */
254   Bool_t           fProcessZDC;           // see above
255
256   /** Process Centrality information */
257   Bool_t           fProcessCentrality;    // see above
258
259   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
260
261   /** N ESD tracks */
262   Int_t fEsdTracks;                       // see above
263
264   /** N ESD tracks accepted */
265   Int_t fEsdTracksA;                      // see above
266
267   /** N TPC tracks */
268   Int_t fTpcTracks;                       // see above
269
270   /** N TPC tracks accepted */
271   Int_t fTpcTracksA;                      // see above
272
273   /** N Reference TPC tracks */
274   Int_t fTpcTracksRef;                    // see above
275
276   /** VZERO mult */
277   Float_t fVzeroMult;                     // see above
278
279   /** VZERO trigger mult */
280   Float_t fVzeroTriggerMult;              // see above
281
282   /** Spd N clusters */
283   Int_t   fSpdNClusters;                  // see above
284
285   /** Spd N clusters inner layer*/
286   Int_t   fSpdNClustersInner;             // see above
287
288   /** Spd N clusters outer layer */
289   Int_t   fSpdNClustersOuter;             // see above
290
291   // -- -- -- 
292
293   /** Binnning VZERO */
294   Int_t   fVzeroBinning;                  // see above
295   Float_t fVzeroBinningMin;               // see above
296   Float_t fVzeroBinningMax;               // see above
297
298   /** Binnning TPC */
299   Int_t   fTpcBinning;                    // see above
300   Float_t fTpcBinningMin;                 // see above
301   Float_t fTpcBinningMax;                 // see above
302
303   /** Binnning ZDC */
304   Int_t   fZdcBinning;                    // see above
305   Float_t fZdcBinningMin;                 // see above
306   Float_t fZdcBinningMax;                 // see above
307
308   /** Binnning ZEM */
309   Int_t   fZemBinning;                    // see above
310   Float_t fZemBinningMin;                 // see above
311   Float_t fZemBinningMax;                 // see above
312
313   /** Binnning SPD */
314   Int_t   fSpdBinning;                    // see above
315   Float_t fSpdBinningMin;                 // see above
316   Float_t fSpdBinningMax;                 // see above
317   
318   ClassDef(AliHLTMultiplicityCorrelations, 4);
319 };
320 #endif