enable and disable detectors
[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
571ad3a5 74 /** Set SPD clusters from inner and outer layer */
75 void SetSPDClusters(Int_t inner, Int_t outer) { fSpdNClustersInner = inner; fSpdNClustersOuter = outer; }
76
06f2306d 77 /** Set Binning of VZERO */
78 void SetBinningVzero(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
79 fVzeroBinning = i; fVzeroBinningMin = f1; fVzeroBinningMax = f2;
80 }
81
82 /** Set Binning of TPC */
83 void SetBinningTpc(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
84 fTpcBinning = i; fTpcBinningMin = f1; fTpcBinningMax = f2;
85 }
86
87 /** Set Binning of ZDC */
88 void SetBinningZdc(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
89 fZdcBinning = i; fZdcBinningMin = f1; fZdcBinningMax = f2;
90 }
91
92 /** Set Binning of ZEM */
93 void SetBinningZem(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
94 fZemBinning = i; fZemBinningMin = f1; fZemBinningMax = f2;
95 }
96
97 /** Set Binning of ZNP */
98 void SetBinningZnp(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
99 fZnpBinning = i; fZnpBinningMin = f1; fZnpBinningMax = f2;
100 }
101
a75a9dbe 102 /** Set Binning of CALO */
103 void SetBinningCalo(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
104 fCaloBinning = i; fCaloBinningMin = f1; fCaloBinningMax = f2;
105 }
106
6c552baa 107 /** Set Binning of SPD */
108 void SetBinningSpd(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
109 fSpdBinning = i; fSpdBinningMin = f1; fSpdBinningMax = f2;
110 }
111
43653719 112 /** Set process PHOS */
60f79eda 113 void SetProcessPhos(Bool_t b=kTRUE) { fProcessPhos = b; }
43653719 114 /** Set process EMCAL */
60f79eda 115 void SetProcessEmcal(Bool_t b=kTRUE) { fProcessEmcal = b; }
116
117
118 /** Enable / Disable detectors */
119 void SetProcessCALO(Bool_t b = kTRUE) { fProcessCALO = b; }
120 void SetProcessSPD(Bool_t b = kTRUE) { fProcessSPD = b; }
121 void SetProcessTPC(Bool_t b = kTRUE) { fProcessTPC = b; }
122 void SetProcessZDC(Bool_t b = kTRUE) { fProcessZDC = b; }
123 void SetProcessVZERO(Bool_t b = kTRUE){ fProcessVZERO = b; }
43653719 124
06f2306d 125 /*
126 * ---------------------------------------------------------------------------------
127 * Getter - public
128 * ---------------------------------------------------------------------------------
129 */
130
131 /** Get List of histograms */
132 TList* GetHistList() const { return fHistList; }
133
134 /*
135 * ---------------------------------------------------------------------------------
136 * Process - public
137 * ---------------------------------------------------------------------------------
138 */
139
140 /** Process current event */
11e88ff8 141 Int_t ProcessEvent( AliESDEvent *esd, AliESDVZERO* esdVZERO, Int_t nSpdClusters );
6c552baa 142
143 Int_t ProcessEvent( AliESDEvent *esd ) {
11e88ff8 144 return ProcessEvent(esd, NULL, 0);
6c552baa 145 }
146
06f2306d 147
148 ///////////////////////////////////////////////////////////////////////////////////
149
150 private:
151
152 /** copy constructor prohibited */
153 AliHLTMultiplicityCorrelations(const AliHLTMultiplicityCorrelations&);
154
155 /** assignment operator prohibited */
156 AliHLTMultiplicityCorrelations& operator=(const AliHLTMultiplicityCorrelations&);
157
158 /*
159 * ---------------------------------------------------------------------------------
160 * Initialize / Setup / Reset - private
161 * ---------------------------------------------------------------------------------
162 */
163
164 /** Add esd object
165 * param esd Ptr to AliESDEvent
166 * return kTRUE if AliESDEvent and Vertex present
167 */
168 Bool_t AddESDEvent( AliESDEvent* esd );
169
170 /** Setup histograms */
171 Int_t SetupHistograms();
172
173 /** Setup VZERO histograms */
174 Int_t SetupVZERO();
175
176 /** Setup ZDC histograms */
177 Int_t SetupZDC();
178
179 /** Setup TPC histograms */
180 Int_t SetupTPC();
181
182 /** Setup correlation histograms */
183 Int_t SetupCorrelations();
a75a9dbe 184
185 /** Setup CALO histograms */
186 Int_t SetupCALO();
06f2306d 187
6c552baa 188 /** Setup SPD histograms */
189 Int_t SetupSPD();
190
06f2306d 191 /*
192 * ---------------------------------------------------------------------------------
193 * Process - private
194 * ---------------------------------------------------------------------------------
195 */
196
197 /** Process current event - TPC */
198 Int_t ProcessTPC();
6c552baa 199
200 /** Process current event - SPD */
201 Int_t ProcessSPD();
06f2306d 202
203 /** Process current event - VZERO */
204 Int_t ProcessVZERO();
205
206 /** Process current event - ZDC and correlations */
207 Int_t ProcessZDC();
a75a9dbe 208
209 /** Process current event - CALO */
210 Int_t ProcessCALO();
211
06f2306d 212 /*
213 * ---------------------------------------------------------------------------------
214 * Members - private
215 * ---------------------------------------------------------------------------------
216 */
217
218 /** List of histograms */
219 TList *fHistList; // see above
220
221 /** Ptr to AliESDEvent */
222 AliESDEvent *fESDEvent; //! transient
223
224 /** Ptr to ZDC object in AliESDEvent*/
225 AliESDZDC *fESDZDC; //! transient
226
227 /** Ptr to VZERO object in AliESDEvent*/
228 AliESDVZERO *fESDVZERO; //! transient
229
230 /** Ptr to AliESD track cuts */
231 AliESDtrackCuts *fESDTrackCuts; //! transient
232
233 // -- -- -- -- -- -- -- -- -- -- -- -- -- --
234
60f79eda 235 /** Process TPC information */
236 Bool_t fProcessTPC;
237
238 /** Process SPD information */
239 Bool_t fProcessSPD;
240
241 /** Process VZERO information */
242 Bool_t fProcessVZERO;
243
244 /** Process ZDC information */
245 Bool_t fProcessZDC;
246
247 /** Process CALO information */
248 Bool_t fProcessCALO;
249
250 // -- -- -- -- -- -- -- -- -- -- -- -- -- --
251
06f2306d 252 /** N ESD tracks */
253 Int_t fEsdTracks;
254
255 /** N ESD tracks accepted */
256 Int_t fEsdTracksA;
257
258 /** N TPC tracks */
259 Int_t fTpcTracks;
260
261 /** N TPC tracks accepted */
262 Int_t fTpcTracksA;
263
264 /** VZERO mult */
265 Float_t fVzeroMult;
266
267 /** VZERO mult A */
268 Float_t fVzeroMultA;
269
270 /** VZERO mult C */
271 Float_t fVzeroMultC;
272
273 /** VZERO flagged mult */
274 Float_t fVzeroMultFlagged;
275
276 /** VZERO flagged mult A */
277 Float_t fVzeroMultFlaggedA;
278
279 /** VZERO flagged mult C */
280 Float_t fVzeroMultFlaggedC;
281
6c552baa 282 /** Spd N clusters */
283 Int_t fSpdNClusters;
284
571ad3a5 285 /** Spd N clusters inner layer*/
286 Int_t fSpdNClustersInner;
287
288 /** Spd N clusters outer layer */
289 Int_t fSpdNClustersOuter;
290
06f2306d 291 // -- -- --
292
293 /** Binnning VZERO */
294 Int_t fVzeroBinning;
295 Float_t fVzeroBinningMin;
296 Float_t fVzeroBinningMax;
297
298 /** Binnning TPC */
299 Int_t fTpcBinning;
300 Float_t fTpcBinningMin;
301 Float_t fTpcBinningMax;
302
303 /** Binnning ZDC */
304 Int_t fZdcBinning;
305 Float_t fZdcBinningMin;
306 Float_t fZdcBinningMax;
307
308 /** Binnning ZEM */
309 Int_t fZemBinning;
310 Float_t fZemBinningMin;
311 Float_t fZemBinningMax;
312
313 /** Binnning ZNP */
314 Int_t fZnpBinning;
315 Float_t fZnpBinningMin;
316 Float_t fZnpBinningMax;
317
a75a9dbe 318 /** CALO flags */
319 Bool_t fProcessPhos;
320 Bool_t fProcessEmcal;
321
322 /** CALO variables */
323 Float_t fPhosTotalEt;
324 Float_t fEmcalTotalEt;
325
326 /** Binnning CALO */
327 Int_t fCaloBinning;
328 Float_t fCaloBinningMin;
329 Float_t fCaloBinningMax;
6c552baa 330
331 /** Binnning SPD */
332 Int_t fSpdBinning;
333 Float_t fSpdBinningMin;
334 Float_t fSpdBinningMax;
a75a9dbe 335
06f2306d 336 ClassDef(AliHLTMultiplicityCorrelations, 1);
337};
338#endif