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"
35 * @class AliHLTMultiplicityCorrelations
37 * @ingroup alihlt_global
40 class AliHLTMultiplicityCorrelations : public TNamed, public AliHLTLogging {
44 * ---------------------------------------------------------------------------------
45 * Constructor / Destructor
46 * ---------------------------------------------------------------------------------
49 /** Default Constructor */
50 AliHLTMultiplicityCorrelations();
53 AliHLTMultiplicityCorrelations(Char_t* name, Char_t* title);
56 ~AliHLTMultiplicityCorrelations();
59 * ---------------------------------------------------------------------------------
60 * Initialize / Setup / Reset - public
61 * ---------------------------------------------------------------------------------
64 /** Initialize class and members */
67 /** Initialize class and members */
68 Int_t Initialize( const Char_t* listName );
71 * ---------------------------------------------------------------------------------
73 * ---------------------------------------------------------------------------------
76 /** Set ESD track cuts */
77 void SetESDTrackCuts(AliESDtrackCuts *cuts) { fESDTrackCuts = cuts; }
79 /** Set SPD clusters from inner and outer layer */
80 void SetSPDClusters(Int_t inner, Int_t outer) {
81 fSpdNClustersInner = inner; fSpdNClustersOuter = outer;
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;
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;
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;
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;
104 /** Set Binning of ZNP */
105 void SetBinningZnp(Int_t /*i=1*/, Float_t /*f1=0.*/, Float_t /*f2=1.*/) {;}
107 /** Set Binning of CALO */
108 void SetBinningCalo(Int_t /*i=1*/, Float_t /*f1=0.*/, Float_t /*f2=1.*/) {;}
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;
115 /** Set process PHOS */
116 void SetProcessPhos(Bool_t /*b=kTRUE*/) {;}
117 /** Set process EMCAL */
118 void SetProcessEmcal(Bool_t /*b=kTRUE*/) {;}
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; }
128 /** Centrality Estimator */
129 void SetCentralityEstimator(TH1F* hist) { fCentHistV0Mpercentile = hist; }
132 * ---------------------------------------------------------------------------------
134 * ---------------------------------------------------------------------------------
137 /** Get List of histograms */
138 TList* GetHistList() const { return fHistList; }
141 * ---------------------------------------------------------------------------------
143 * ---------------------------------------------------------------------------------
146 /** Process current event */
147 Int_t ProcessEvent( AliESDEvent *esd, AliESDVZERO* esdVZERO, Int_t nSpdClusters);
149 Int_t ProcessEvent( AliESDEvent *esd ) {
150 return ProcessEvent(esd, NULL, 0);
154 ///////////////////////////////////////////////////////////////////////////////////
158 /** copy constructor prohibited */
159 AliHLTMultiplicityCorrelations(const AliHLTMultiplicityCorrelations&);
161 /** assignment operator prohibited */
162 AliHLTMultiplicityCorrelations& operator=(const AliHLTMultiplicityCorrelations&);
165 * ---------------------------------------------------------------------------------
166 * Initialize / Setup / Reset - private
167 * ---------------------------------------------------------------------------------
171 * param esd Ptr to AliESDEvent
172 * return kTRUE if AliESDEvent and Vertex present
174 Bool_t AddESDEvent( AliESDEvent* esd );
176 /** Setup histograms */
177 Int_t SetupHistograms();
179 /** Setup VZERO histograms */
182 /** Setup ZDC histograms */
185 /** Setup TPC histograms */
188 /** Setup correlation histograms */
189 Int_t SetupCorrelations();
191 /** Setup SPD histograms */
194 /** Setup Centrality histograms */
195 Int_t SetupCentrality();
198 * ---------------------------------------------------------------------------------
200 * ---------------------------------------------------------------------------------
203 /** Process current event - TPC */
206 /** Process current event - SPD */
209 /** Process current event - VZERO */
210 Int_t ProcessVZERO();
212 /** Process current event - ZDC and correlations */
215 /** Process current event - centrality */
216 Int_t ProcessCentrality();
219 * ---------------------------------------------------------------------------------
221 * ---------------------------------------------------------------------------------
224 /** List of histograms */
225 TList *fHistList; // see above
227 /** Ptr to AliESDEvent */
228 AliESDEvent *fESDEvent; //! transient
230 /** Ptr to ZDC object in AliESDEvent*/
231 AliESDZDC *fESDZDC; //! transient
233 /** Ptr to VZERO object in AliESDEvent*/
234 AliESDVZERO *fESDVZERO; //! transient
236 /** Ptr to AliESD track cuts */
237 AliESDtrackCuts *fESDTrackCuts; //! transient
239 /** Centrality Estimator */
240 TH1F* fCentHistV0Mpercentile; //! transient
242 // -- -- -- -- -- -- -- -- -- -- -- -- -- --
244 /** Process TPC information */
245 Bool_t fProcessTPC; // see above
247 /** Process SPD information */
248 Bool_t fProcessSPD; // see above
250 /** Process VZERO information */
251 Bool_t fProcessVZERO; // see above
253 /** Process ZDC information */
254 Bool_t fProcessZDC; // see above
256 /** Process Centrality information */
257 Bool_t fProcessCentrality; // see above
259 // -- -- -- -- -- -- -- -- -- -- -- -- -- --
262 Int_t fEsdTracks; // see above
264 /** N ESD tracks accepted */
265 Int_t fEsdTracksA; // see above
268 Int_t fTpcTracks; // see above
270 /** N TPC tracks accepted */
271 Int_t fTpcTracksA; // see above
273 /** N Reference TPC tracks */
274 Int_t fTpcTracksRef; // see above
277 Float_t fVzeroMult; // see above
279 /** VZERO trigger mult */
280 Float_t fVzeroTriggerMult; // see above
282 /** Spd N clusters */
283 Int_t fSpdNClusters; // see above
285 /** Spd N clusters inner layer*/
286 Int_t fSpdNClustersInner; // see above
288 /** Spd N clusters outer layer */
289 Int_t fSpdNClustersOuter; // see above
293 /** Binnning VZERO */
294 Int_t fVzeroBinning; // see above
295 Float_t fVzeroBinningMin; // see above
296 Float_t fVzeroBinningMax; // see above
299 Int_t fTpcBinning; // see above
300 Float_t fTpcBinningMin; // see above
301 Float_t fTpcBinningMax; // see above
304 Int_t fZdcBinning; // see above
305 Float_t fZdcBinningMin; // see above
306 Float_t fZdcBinningMax; // see above
309 Int_t fZemBinning; // see above
310 Float_t fZemBinningMin; // see above
311 Float_t fZemBinningMax; // see above
314 Int_t fSpdBinning; // see above
315 Float_t fSpdBinningMin; // see above
316 Float_t fSpdBinningMax; // see above
318 ClassDef(AliHLTMultiplicityCorrelations, 4);