Add HLTInfo for multiplicty
[u/mrichter/AliRoot.git] / HLT / global / physics / AliHLTMultiplicityCorrelations.h
CommitLineData
06f2306d 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
32class TH1;
33
34
35/**
36 * @class AliHLTMultiplicityCorrelations
37 *
38 * @ingroup alihlt_physics
39 */
40
41class AliHLTMultiplicityCorrelations : public TObject, public AliHLTLogging {
42public:
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
a75a9dbe 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
6c552baa 104 /** Set Binning of SPD */
105 void SetBinningSpd(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
106 fSpdBinning = i; fSpdBinningMin = f1; fSpdBinningMax = f2;
107 }
108
43653719 109 /** Set process PHOS */
110 void SetProcessPhos(Bool_t v = true) {
111 fProcessPhos = v;
112 }
113 /** Set process EMCAL */
114 void SetProcessEmcal(Bool_t v = true) {
115 fProcessEmcal = v;
116 }
117
06f2306d 118 /*
119 * ---------------------------------------------------------------------------------
120 * Getter - public
121 * ---------------------------------------------------------------------------------
122 */
123
124 /** Get List of histograms */
125 TList* GetHistList() const { return fHistList; }
126
127 /*
128 * ---------------------------------------------------------------------------------
129 * Process - public
130 * ---------------------------------------------------------------------------------
131 */
132
133 /** Process current event */
11e88ff8 134 Int_t ProcessEvent( AliESDEvent *esd, AliESDVZERO* esdVZERO, Int_t nSpdClusters );
6c552baa 135
136 Int_t ProcessEvent( AliESDEvent *esd ) {
11e88ff8 137 return ProcessEvent(esd, NULL, 0);
6c552baa 138 }
139
06f2306d 140
141 ///////////////////////////////////////////////////////////////////////////////////
142
143 private:
144
145 /** copy constructor prohibited */
146 AliHLTMultiplicityCorrelations(const AliHLTMultiplicityCorrelations&);
147
148 /** assignment operator prohibited */
149 AliHLTMultiplicityCorrelations& operator=(const AliHLTMultiplicityCorrelations&);
150
151 /*
152 * ---------------------------------------------------------------------------------
153 * Initialize / Setup / Reset - private
154 * ---------------------------------------------------------------------------------
155 */
156
157 /** Add esd object
158 * param esd Ptr to AliESDEvent
159 * return kTRUE if AliESDEvent and Vertex present
160 */
161 Bool_t AddESDEvent( AliESDEvent* esd );
162
163 /** Setup histograms */
164 Int_t SetupHistograms();
165
166 /** Setup VZERO histograms */
167 Int_t SetupVZERO();
168
169 /** Setup ZDC histograms */
170 Int_t SetupZDC();
171
172 /** Setup TPC histograms */
173 Int_t SetupTPC();
174
175 /** Setup correlation histograms */
176 Int_t SetupCorrelations();
a75a9dbe 177
178 /** Setup CALO histograms */
179 Int_t SetupCALO();
06f2306d 180
6c552baa 181 /** Setup SPD histograms */
182 Int_t SetupSPD();
183
06f2306d 184 /*
185 * ---------------------------------------------------------------------------------
186 * Process - private
187 * ---------------------------------------------------------------------------------
188 */
189
190 /** Process current event - TPC */
191 Int_t ProcessTPC();
6c552baa 192
193 /** Process current event - SPD */
194 Int_t ProcessSPD();
06f2306d 195
196 /** Process current event - VZERO */
197 Int_t ProcessVZERO();
198
199 /** Process current event - ZDC and correlations */
200 Int_t ProcessZDC();
a75a9dbe 201
202 /** Process current event - CALO */
203 Int_t ProcessCALO();
204
06f2306d 205 /*
206 * ---------------------------------------------------------------------------------
207 * Members - private
208 * ---------------------------------------------------------------------------------
209 */
210
211 /** List of histograms */
212 TList *fHistList; // see above
213
214 /** Ptr to AliESDEvent */
215 AliESDEvent *fESDEvent; //! transient
216
217 /** Ptr to ZDC object in AliESDEvent*/
218 AliESDZDC *fESDZDC; //! transient
219
220 /** Ptr to VZERO object in AliESDEvent*/
221 AliESDVZERO *fESDVZERO; //! transient
222
223 /** Ptr to AliESD track cuts */
224 AliESDtrackCuts *fESDTrackCuts; //! transient
225
226 // -- -- -- -- -- -- -- -- -- -- -- -- -- --
227
228 /** N ESD tracks */
229 Int_t fEsdTracks;
230
231 /** N ESD tracks accepted */
232 Int_t fEsdTracksA;
233
234 /** N TPC tracks */
235 Int_t fTpcTracks;
236
237 /** N TPC tracks accepted */
238 Int_t fTpcTracksA;
239
240 /** VZERO mult */
241 Float_t fVzeroMult;
242
243 /** VZERO mult A */
244 Float_t fVzeroMultA;
245
246 /** VZERO mult C */
247 Float_t fVzeroMultC;
248
249 /** VZERO flagged mult */
250 Float_t fVzeroMultFlagged;
251
252 /** VZERO flagged mult A */
253 Float_t fVzeroMultFlaggedA;
254
255 /** VZERO flagged mult C */
256 Float_t fVzeroMultFlaggedC;
257
6c552baa 258 /** Spd N clusters */
259 Int_t fSpdNClusters;
260
06f2306d 261 // -- -- --
262
263 /** Binnning VZERO */
264 Int_t fVzeroBinning;
265 Float_t fVzeroBinningMin;
266 Float_t fVzeroBinningMax;
267
268 /** Binnning TPC */
269 Int_t fTpcBinning;
270 Float_t fTpcBinningMin;
271 Float_t fTpcBinningMax;
272
273 /** Binnning ZDC */
274 Int_t fZdcBinning;
275 Float_t fZdcBinningMin;
276 Float_t fZdcBinningMax;
277
278 /** Binnning ZEM */
279 Int_t fZemBinning;
280 Float_t fZemBinningMin;
281 Float_t fZemBinningMax;
282
283 /** Binnning ZNP */
284 Int_t fZnpBinning;
285 Float_t fZnpBinningMin;
286 Float_t fZnpBinningMax;
287
a75a9dbe 288 /** CALO flags */
289 Bool_t fProcessPhos;
290 Bool_t fProcessEmcal;
291
292 /** CALO variables */
293 Float_t fPhosTotalEt;
294 Float_t fEmcalTotalEt;
295
296 /** Binnning CALO */
297 Int_t fCaloBinning;
298 Float_t fCaloBinningMin;
299 Float_t fCaloBinningMax;
6c552baa 300
301 /** Binnning SPD */
302 Int_t fSpdBinning;
303 Float_t fSpdBinningMin;
304 Float_t fSpdBinningMax;
a75a9dbe 305
06f2306d 306 ClassDef(AliHLTMultiplicityCorrelations, 1);
307};
308#endif