- adding E_t - V0 correlations
[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 /**
36  * @class AliHLTMultiplicityCorrelations
37  *
38  * @ingroup alihlt_physics
39  */
40
41 class AliHLTMultiplicityCorrelations : public TObject, public AliHLTLogging {
42 public:
43   
44   /*
45    * ---------------------------------------------------------------------------------
46    *                            Constructor / Destructor
47    * ---------------------------------------------------------------------------------
48    */
49
50   /** Constructor */
51   AliHLTMultiplicityCorrelations();
52   
53   /** Destructor */
54   ~AliHLTMultiplicityCorrelations();
55
56   /*
57    * ---------------------------------------------------------------------------------
58    *                         Initialize / Setup / Reset - public
59    * ---------------------------------------------------------------------------------
60    */
61
62   /** Initialize class and members */
63   Int_t Initialize();
64
65   /*
66    * ---------------------------------------------------------------------------------
67    *                                Setter - public
68    * ---------------------------------------------------------------------------------
69    */
70
71   /** Set ESD track cuts */
72   void SetESDTrackCuts(AliESDtrackCuts *cuts) { fESDTrackCuts = cuts; }
73
74   /** Set Binning of VZERO */
75   void SetBinningVzero(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
76     fVzeroBinning = i; fVzeroBinningMin = f1; fVzeroBinningMax = f2;
77   }
78
79   /** Set Binning of TPC */
80   void SetBinningTpc(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
81     fTpcBinning = i; fTpcBinningMin = f1; fTpcBinningMax = f2;
82   }
83
84   /** Set Binning of ZDC */
85   void SetBinningZdc(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
86     fZdcBinning = i; fZdcBinningMin = f1; fZdcBinningMax = f2;
87   }
88
89   /** Set Binning of ZEM */
90   void SetBinningZem(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
91     fZemBinning = i; fZemBinningMin = f1; fZemBinningMax = f2;
92   }
93
94   /** Set Binning of ZNP */
95   void SetBinningZnp(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
96     fZnpBinning = i; fZnpBinningMin = f1; fZnpBinningMax = f2;
97   }
98
99   /** Set Binning of CALO */
100   void SetBinningCalo(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
101     fCaloBinning = i; fCaloBinningMin = f1; fCaloBinningMax = f2;
102   }
103
104   /** Set process PHOS */
105   void SetProcessPhos(Bool_t v = true) {
106     fProcessPhos = v;
107   }
108   /** Set process EMCAL */
109   void SetProcessEmcal(Bool_t v = true) {
110     fProcessEmcal = v;
111   }
112
113   /*
114    * ---------------------------------------------------------------------------------
115    *                                 Getter - public
116    * ---------------------------------------------------------------------------------
117    */
118
119   /** Get List of histograms */
120   TList* GetHistList() const { return fHistList; }
121
122   /*
123    * ---------------------------------------------------------------------------------
124    *                             Process - public
125    * ---------------------------------------------------------------------------------
126    */
127   
128   /** Process current event */
129   Int_t ProcessEvent( AliESDEvent *esd );
130
131   ///////////////////////////////////////////////////////////////////////////////////
132   
133  private:
134  
135   /** copy constructor prohibited */
136   AliHLTMultiplicityCorrelations(const AliHLTMultiplicityCorrelations&);
137   
138   /** assignment operator prohibited */
139   AliHLTMultiplicityCorrelations& operator=(const AliHLTMultiplicityCorrelations&);
140
141   /*
142    * ---------------------------------------------------------------------------------
143    *                         Initialize / Setup / Reset - private
144    * ---------------------------------------------------------------------------------
145    */
146
147   /** Add esd object
148    * param esd Ptr to AliESDEvent
149    * return kTRUE if AliESDEvent and Vertex present
150    */
151   Bool_t AddESDEvent( AliESDEvent* esd );
152
153   /** Setup histograms */
154   Int_t SetupHistograms();
155
156   /** Setup VZERO histograms */
157   Int_t SetupVZERO();
158
159   /** Setup ZDC histograms */
160   Int_t SetupZDC();
161
162   /** Setup TPC histograms */
163   Int_t SetupTPC();
164
165   /** Setup correlation histograms */
166   Int_t SetupCorrelations();
167   
168   /** Setup CALO histograms */
169   Int_t SetupCALO();
170
171   /*
172    * ---------------------------------------------------------------------------------
173    *                             Process - private
174    * ---------------------------------------------------------------------------------
175    */
176
177   /** Process current event - TPC */
178   Int_t ProcessTPC();
179   
180   /** Process current event - VZERO */
181   Int_t ProcessVZERO();
182
183   /** Process current event - ZDC and correlations */
184   Int_t ProcessZDC();
185   
186   /** Process current event - CALO */
187   Int_t ProcessCALO();
188   
189   
190
191   /*
192    * ---------------------------------------------------------------------------------
193    *                             Members - private
194    * ---------------------------------------------------------------------------------
195    */
196
197   /** List of histograms */ 
198   TList           *fHistList;             // see above
199
200   /** Ptr to AliESDEvent */
201   AliESDEvent     *fESDEvent;             //! transient
202
203   /** Ptr to ZDC object in AliESDEvent*/ 
204   AliESDZDC       *fESDZDC;               //! transient
205
206   /** Ptr to VZERO object in AliESDEvent*/ 
207   AliESDVZERO     *fESDVZERO;             //! transient
208
209   /** Ptr to AliESD track cuts */
210   AliESDtrackCuts *fESDTrackCuts;         //! transient
211
212   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
213
214   /** N ESD tracks */
215   Int_t fEsdTracks;
216
217   /** N ESD tracks accepted */
218   Int_t fEsdTracksA;
219
220   /** N TPC tracks */
221   Int_t fTpcTracks;
222
223   /** N TPC tracks accepted */
224   Int_t fTpcTracksA;
225
226   /** VZERO mult */
227   Float_t fVzeroMult;
228
229   /** VZERO mult A */
230   Float_t fVzeroMultA;
231
232   /** VZERO mult C */
233   Float_t fVzeroMultC;
234
235   /** VZERO flagged mult */
236   Float_t fVzeroMultFlagged;
237
238   /** VZERO flagged mult A */
239   Float_t fVzeroMultFlaggedA;
240
241   /** VZERO flagged mult C */
242   Float_t fVzeroMultFlaggedC;
243
244   // -- -- -- 
245
246   /** Binnning VZERO */
247   Int_t   fVzeroBinning;
248   Float_t fVzeroBinningMin;
249   Float_t fVzeroBinningMax;
250
251   /** Binnning TPC */
252   Int_t   fTpcBinning;
253   Float_t fTpcBinningMin;
254   Float_t fTpcBinningMax;
255
256   /** Binnning ZDC */
257   Int_t   fZdcBinning;
258   Float_t fZdcBinningMin;
259   Float_t fZdcBinningMax;
260
261   /** Binnning ZEM */
262   Int_t   fZemBinning;
263   Float_t fZemBinningMin;
264   Float_t fZemBinningMax;
265
266   /** Binnning ZNP */
267   Int_t   fZnpBinning;
268   Float_t fZnpBinningMin;
269   Float_t fZnpBinningMax;
270   
271   /** CALO flags */
272   Bool_t fProcessPhos; 
273   Bool_t fProcessEmcal;
274   
275   /** CALO variables */
276   Float_t fPhosTotalEt;
277   Float_t fEmcalTotalEt;
278   
279   /** Binnning CALO */
280   Int_t   fCaloBinning;
281   Float_t fCaloBinningMin;
282   Float_t fCaloBinningMax;
283   
284   ClassDef(AliHLTMultiplicityCorrelations, 1);
285 };
286 #endif