3 // $Id: AliMultiplicityCorrelations.h $
4 #ifndef ALIMULTIPLICITYCORRELATIONS_H
5 #define ALIMULTIPLICITYCORRELATIONS_H
8 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
9 * See cxx source for full Copyright notice */
11 // Correlation plots for multiplicity studies
12 // Authors: Jochen Thaeder <jochen@thaeder.de>
16 #include "AliESDtrackCuts.h"
17 #include "AliESDEvent.h"
18 #include "AliESDVZERO.h"
19 #include "AliESDZDC.h"
20 #include "AliMultiplicity.h"
25 class AliMultiplicityCorrelations : public TNamed {
29 * ---------------------------------------------------------------------------------
30 * Constructor / Destructor
31 * ---------------------------------------------------------------------------------
34 /** Default Constructor */
35 AliMultiplicityCorrelations();
38 AliMultiplicityCorrelations(Char_t* name, Char_t* title);
41 ~AliMultiplicityCorrelations();
44 * ---------------------------------------------------------------------------------
45 * Initialize / Setup / Reset - public
46 * ---------------------------------------------------------------------------------
49 /** Initialize class and members */
50 Int_t Initialize() { return Initialize(""); }
52 /** Initialize class and members */
53 Int_t Initialize( const Char_t* listName );
56 * ---------------------------------------------------------------------------------
58 * ---------------------------------------------------------------------------------
61 void SetIsMC() { fIsMC = kTRUE; }
63 /** Clean event sample */
64 void SetCleanSample(Float_t min, Float_t max) { fCleanSample = kTRUE; fCleanMinKeep = min; fCleanMaxKeep = max; }
66 /** Set ESD track cuts */
67 void SetESDTrackCuts(AliESDtrackCuts *cuts) { fESDTrackCuts = cuts; }
68 void SetESDTrackCuts2(AliESDtrackCuts *cuts) { fESDTrackCuts2 = cuts; }
70 /** Set SPD clusters from inner and outer layer */
71 void SetSPDClusters(Float_t inner, Float_t outer) { fSpdNClustersInner = inner; fSpdNClustersOuter = outer; }
73 /** Set Binning of VZERO */
74 void SetBinningVzero(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
75 fVzeroBinning = i; fVzeroBinningMin = f1; fVzeroBinningMax = f2;
78 /** Set Binning of TPC */
79 void SetBinningTpc(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
80 fTpcBinning = i; fTpcBinningMin = f1; fTpcBinningMax = f2;
83 /** Set Binning of ZDC */
84 void SetBinningZdc(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
85 fZdcBinning = i; fZdcBinningMin = f1; fZdcBinningMax = f2;
88 /** Set Binning of ZEM */
89 void SetBinningZem(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
90 fZemBinning = i; fZemBinningMin = f1; fZemBinningMax = f2;
93 /** Set Binning of SPD */
94 void SetBinningSpd(Int_t i=1, Float_t f1=0., Float_t f2=1.) {
95 fSpdBinning = i; fSpdBinningMin = f1; fSpdBinningMax = f2;
98 /** Enable / Disable detectors */
99 void SetProcessSPD(Bool_t b = kTRUE) { fProcessSPD = b; }
100 void SetProcessTPC(Bool_t b = kTRUE) { fProcessTPC = b; }
101 void SetProcessZDC(Bool_t b = kTRUE) { fProcessZDC = b; }
102 void SetProcessVZERO(Bool_t b = kTRUE){ fProcessVZERO = b; }
105 * ---------------------------------------------------------------------------------
107 * ---------------------------------------------------------------------------------
110 /** Get List of histograms */
111 TList* GetHistList() const { return fHistList; }
112 Int_t GetNTracks() const { return fEsdTracksA; }
113 Int_t GetNTracksTPC() const { return fTpcTracksA; }
114 Float_t GetVZEROA() const { return fVzeroMultA; }
115 Float_t GetVZEROC() const { return fVzeroMultC; }
116 Float_t GetVZEROCorr() const { return fVzeroMult; }
119 * ---------------------------------------------------------------------------------
121 * ---------------------------------------------------------------------------------
124 /** Process current event */
125 Int_t ProcessEvent( AliESDEvent *esd );
127 ///////////////////////////////////////////////////////////////////////////////////
129 /** Corrected VZERO amplitude*/
130 Float_t GetCorrVZERO(Float_t &v0CorrResc);
132 /** Corrected SPD amplitude*/
133 Float_t GetCorrSPD2(Float_t spd2raw,Float_t zv) const;
137 /** copy constructor prohibited */
138 AliMultiplicityCorrelations(const AliMultiplicityCorrelations&);
140 /** assignment operator prohibited */
141 AliMultiplicityCorrelations& operator=(const AliMultiplicityCorrelations&);
144 * ---------------------------------------------------------------------------------
145 * Initialize / Setup / Reset - private
146 * ---------------------------------------------------------------------------------
150 * param esd Ptr to AliESDEvent
151 * return kTRUE if AliESDEvent and Vertex present
153 Bool_t AddESDEvent( AliESDEvent* esd );
155 /** Setup histograms */
156 Int_t SetupHistograms();
158 /** Setup VZERO histograms */
161 /** Setup ZDC histograms */
164 /** Setup TPC histograms */
167 /** Setup correlation histograms */
168 Int_t SetupCorrelations();
170 /** Setup SPD histograms */
174 * ---------------------------------------------------------------------------------
176 * ---------------------------------------------------------------------------------
179 /** Process current event - TPC */
182 /** Process current event - SPD */
185 /** Process current event - VZERO */
186 Int_t ProcessVZERO();
188 /** Process current event - ZDC and correlations */
192 * ---------------------------------------------------------------------------------
194 * ---------------------------------------------------------------------------------
197 TList *fHistList; // List of histograms
199 Bool_t fIsMC; // If it is MC
201 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
203 AliESDEvent *fESDEvent; //! Ptr to AliESDEvent
204 AliESDZDC *fESDZDC; //! Ptr to ZDC object in AliESDEvent
205 AliESDVZERO *fESDVZERO; //! Ptr to VZERO object in AliESDEvent
206 AliMultiplicity *fESDMultiplicity; //! Ptr to AliMultiplicity in AliESDEvent
207 AliESDtrackCuts *fESDTrackCuts; //! Ptr to AliESDtrackCuts
208 AliESDtrackCuts *fESDTrackCuts2; //! Ptr to AliESDtrackCuts 2
209 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
211 Bool_t fCleanSample; // Enables 'grass' cleaning
212 Float_t fCleanMinKeep; // Min of kept region
213 Float_t fCleanMaxKeep; // Max of kept region
215 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
217 Int_t fRunNo; // RunNo for corrections
218 Int_t fCurrentRunNo; // Current RunNo
220 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
222 Bool_t fProcessTPC; // Process TPC information
223 Bool_t fProcessSPD; // Process SPD information
224 Bool_t fProcessVZERO; // Process VZERO information
225 Bool_t fProcessZDC; // Process ZDC information
227 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
229 Int_t fEsdTracks; // N ESD tracks
230 Int_t fEsdTracksA; // N ESD tracks accepted
231 Int_t fTpcTracks; // N TPC tracks
232 Int_t fTpcTracksA; // N TPC tracks accepted
234 Float_t fVzeroMult; // VZERO multiplicity
235 Float_t fVzeroMultA; // VZERO A multiplicity
236 Float_t fVzeroMultC; // VZERO C multiplicity
238 Float_t fSpdNClusters; // Spd N clusters
239 Float_t fSpdNClustersInner; // Spd N clusters Inner
240 Float_t fSpdNClustersOuter; // Spd N clusters Outer
242 // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
244 /** Binnning VZERO */
245 Int_t fVzeroBinning; // VZERO Binning nbin
246 Float_t fVzeroBinningMin; // VZERO Binning min
247 Float_t fVzeroBinningMax; // VZERO Binning max
250 Int_t fTpcBinning; // TPC Binning nbin
251 Float_t fTpcBinningMin; // TPC Binning min
252 Float_t fTpcBinningMax; // TPC Binning max
255 Int_t fZdcBinning; // ZDC Binning nbin
256 Float_t fZdcBinningMin; // ZDC Binning min
257 Float_t fZdcBinningMax; // ZDC Binning max
260 Int_t fZemBinning; // ZEM Binning nbin
261 Float_t fZemBinningMin; // ZEM Binning min
262 Float_t fZemBinningMax; // ZEM Binning may
265 Int_t fSpdBinning; // SPD Binning nbin
266 Float_t fSpdBinningMin; // SPD Binning min
267 Float_t fSpdBinningMax; // SPD Binning max
269 ClassDef(AliMultiplicityCorrelations, 3);