3 // $Id: AliHLTMultiplicityCorrelations.h $
4 #ifndef ALIHLTMULTIPLICITYCORRELATIONS_H
5 #define ALIHLTMULTIPLICITYCORRELATIONS_H
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 */
11 /** @file AliHLTMultiplicityCorrelations.h
12 @author Jochen Thaeder
14 @brief Correlation plots for multiplicity studies
17 // see below for class documentation
19 // refer to README to build package
21 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
23 #include "AliHLTLogging.h"
25 #include "AliESDtrackCuts.h"
26 #include "AliESDEvent.h"
27 #include "AliESDVZERO.h"
28 #include "AliESDZDC.h"
36 * @class AliHLTMultiplicityCorrelations
38 * @ingroup alihlt_physics
41 class AliHLTMultiplicityCorrelations : public TObject, public AliHLTLogging {
45 * ---------------------------------------------------------------------------------
46 * Constructor / Destructor
47 * ---------------------------------------------------------------------------------
51 AliHLTMultiplicityCorrelations();
54 ~AliHLTMultiplicityCorrelations();
57 * ---------------------------------------------------------------------------------
58 * Initialize / Setup / Reset - public
59 * ---------------------------------------------------------------------------------
62 /** Initialize class and members */
66 * ---------------------------------------------------------------------------------
68 * ---------------------------------------------------------------------------------
71 /** Set ESD track cuts */
72 void SetESDTrackCuts(AliESDtrackCuts *cuts) { fESDTrackCuts = cuts; }
74 /** Set SPD clusters from inner and outer layer */
75 void SetSPDClusters(Int_t inner, Int_t outer) { fSpdNClustersInner = inner; fSpdNClustersOuter = outer; }
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;
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;
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;
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;
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;
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;
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;
112 /** Set process PHOS */
113 void SetProcessPhos(Bool_t b=kTRUE) { fProcessPhos = b; }
114 /** Set process EMCAL */
115 void SetProcessEmcal(Bool_t b=kTRUE) { fProcessEmcal = b; }
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; }
126 * ---------------------------------------------------------------------------------
128 * ---------------------------------------------------------------------------------
131 /** Get List of histograms */
132 TList* GetHistList() const { return fHistList; }
135 * ---------------------------------------------------------------------------------
137 * ---------------------------------------------------------------------------------
140 /** Process current event */
141 Int_t ProcessEvent( AliESDEvent *esd, AliESDVZERO* esdVZERO, Int_t nSpdClusters );
143 Int_t ProcessEvent( AliESDEvent *esd ) {
144 return ProcessEvent(esd, NULL, 0);
148 ///////////////////////////////////////////////////////////////////////////////////
152 /** copy constructor prohibited */
153 AliHLTMultiplicityCorrelations(const AliHLTMultiplicityCorrelations&);
155 /** assignment operator prohibited */
156 AliHLTMultiplicityCorrelations& operator=(const AliHLTMultiplicityCorrelations&);
159 * ---------------------------------------------------------------------------------
160 * Initialize / Setup / Reset - private
161 * ---------------------------------------------------------------------------------
165 * param esd Ptr to AliESDEvent
166 * return kTRUE if AliESDEvent and Vertex present
168 Bool_t AddESDEvent( AliESDEvent* esd );
170 /** Setup histograms */
171 Int_t SetupHistograms();
173 /** Setup VZERO histograms */
176 /** Setup ZDC histograms */
179 /** Setup TPC histograms */
182 /** Setup correlation histograms */
183 Int_t SetupCorrelations();
185 /** Setup CALO histograms */
188 /** Setup SPD histograms */
192 * ---------------------------------------------------------------------------------
194 * ---------------------------------------------------------------------------------
197 /** Process current event - TPC */
200 /** Process current event - SPD */
203 /** Process current event - VZERO */
204 Int_t ProcessVZERO();
206 /** Process current event - ZDC and correlations */
209 /** Process current event - CALO */
213 * ---------------------------------------------------------------------------------
215 * ---------------------------------------------------------------------------------
218 /** List of histograms */
219 TList *fHistList; // see above
221 /** Ptr to AliESDEvent */
222 AliESDEvent *fESDEvent; //! transient
224 /** Ptr to ZDC object in AliESDEvent*/
225 AliESDZDC *fESDZDC; //! transient
227 /** Ptr to VZERO object in AliESDEvent*/
228 AliESDVZERO *fESDVZERO; //! transient
230 /** Ptr to AliESD track cuts */
231 AliESDtrackCuts *fESDTrackCuts; //! transient
233 // -- -- -- -- -- -- -- -- -- -- -- -- -- --
235 /** Process TPC information */
238 /** Process SPD information */
241 /** Process VZERO information */
242 Bool_t fProcessVZERO;
244 /** Process ZDC information */
247 /** Process CALO information */
250 // -- -- -- -- -- -- -- -- -- -- -- -- -- --
255 /** N ESD tracks accepted */
261 /** N TPC tracks accepted */
273 /** VZERO flagged mult */
274 Float_t fVzeroMultFlagged;
276 /** VZERO flagged mult A */
277 Float_t fVzeroMultFlaggedA;
279 /** VZERO flagged mult C */
280 Float_t fVzeroMultFlaggedC;
282 /** Spd N clusters */
285 /** Spd N clusters inner layer*/
286 Int_t fSpdNClustersInner;
288 /** Spd N clusters outer layer */
289 Int_t fSpdNClustersOuter;
293 /** Binnning VZERO */
295 Float_t fVzeroBinningMin;
296 Float_t fVzeroBinningMax;
300 Float_t fTpcBinningMin;
301 Float_t fTpcBinningMax;
305 Float_t fZdcBinningMin;
306 Float_t fZdcBinningMax;
310 Float_t fZemBinningMin;
311 Float_t fZemBinningMax;
315 Float_t fZnpBinningMin;
316 Float_t fZnpBinningMax;
320 Bool_t fProcessEmcal;
322 /** CALO variables */
323 Float_t fPhosTotalEt;
324 Float_t fEmcalTotalEt;
328 Float_t fCaloBinningMin;
329 Float_t fCaloBinningMax;
333 Float_t fSpdBinningMin;
334 Float_t fSpdBinningMax;
336 ClassDef(AliHLTMultiplicityCorrelations, 1);