2 // $Id: AliHLTMultiplicityCorrelations.cxx $
3 //**************************************************************************
4 //* This file is property of and copyright by the ALICE HLT Project *
5 //* ALICE Experiment at CERN, All rights reserved. *
7 //* Primary Authors: Jochen Thaeder <jochen@thaeder.de> *
8 //* for The ALICE HLT Project. *
10 //* Permission to use, copy, modify and distribute this software and its *
11 //* documentation strictly for non-commercial purposes is hereby granted *
12 //* without fee, provided that the above copyright notice appears in all *
13 //* copies and that both the copyright notice and this permission notice *
14 //* appear in the supporting documentation. The authors make no claims *
15 //* about the suitability of this software for any purpose. It is *
16 //* provided "as is" without express or implied warranty. *
17 //**************************************************************************
19 /** @file AliHLTMultiplicityCorrelations.cxx
20 @author Jochen Thaeder <jochen@thaeder.de>
21 @brief Correlation plots for multiplicity studies
24 // see header file for class documentation
26 // refer to README to build package
28 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
38 #include "AliHLTMultiplicityCorrelations.h"
40 /** ROOT macro for the implementation of ROOT specific class methods */
41 ClassImp(AliHLTMultiplicityCorrelations)
44 * ---------------------------------------------------------------------------------
45 * Constructor / Destructor
46 * ---------------------------------------------------------------------------------
49 //##################################################################################
50 AliHLTMultiplicityCorrelations::AliHLTMultiplicityCorrelations() :
56 fEsdTracks(0), fEsdTracksA(0),
57 fTpcTracks(0), fTpcTracksA(0),
58 fVzeroMult(0.), fVzeroMultA(0.), fVzeroMultC(0.),
59 fVzeroMultFlagged(0.), fVzeroMultFlaggedA(0.), fVzeroMultFlaggedC(0.),
61 fVzeroBinning(350), fVzeroBinningMin(0.), fVzeroBinningMax(35000.),
62 fTpcBinning(200),fTpcBinningMin(0.),fTpcBinningMax(8000.),
63 fZdcBinning(280),fZdcBinningMin(0.),fZdcBinningMax(140.),
64 fZemBinning(100),fZemBinningMin(0.),fZemBinningMax(5.),
65 fZnpBinning(200),fZnpBinningMin(0.),fZnpBinningMax(100.),
66 fProcessPhos(true), fProcessEmcal(true),
67 fPhosTotalEt(0.0), fEmcalTotalEt(0.0),
68 fCaloBinning(100),fCaloBinningMin(0.),fCaloBinningMax(100.),
69 fSpdBinning(200),fSpdBinningMin(0.),fSpdBinningMax(15000.) {
70 // see header file for class documentation
72 // refer to README to build package
74 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
78 //##################################################################################
79 AliHLTMultiplicityCorrelations::~AliHLTMultiplicityCorrelations() {
80 // see header file for class documentation
90 * ---------------------------------------------------------------------------------
92 * ---------------------------------------------------------------------------------
95 //##################################################################################
96 Int_t AliHLTMultiplicityCorrelations::Initialize() {
97 // see header file for class documentation
101 fHistList = new TList();
102 fHistList->SetOwner(kTRUE);
103 fHistList->SetName("MultiplicityCorrelations");
104 iResult = SetupHistograms();
110 * ---------------------------------------------------------------------------------
112 * ---------------------------------------------------------------------------------
115 //##################################################################################
116 Int_t AliHLTMultiplicityCorrelations::ProcessEvent( AliESDEvent *esd, Int_t nSpdClusters) {
117 // see header file for class documentation
121 if ( ! AddESDEvent(esd) ) {
122 HLTWarning("No ESD event.");
126 // -- TPC .. To be done before the others
127 if (fESDEvent->GetNumberOfTracks() > 0)
128 iResult = ProcessTPC();
130 fSpdNClusters = nSpdClusters;
131 iResult = ProcessSPD();
133 // -- CALO, process with or without clusters, we want the zero-bin
134 iResult = ProcessCALO();
138 iResult = ProcessVZERO();
140 // -- ZDC and Correlations
142 iResult = ProcessZDC();
150 ////////////////////////////////////////////////////////////////////////////////////
151 ////////////////////////////////////////////////////////////////////////////////////
153 ////// PRIVATE //////
155 ////////////////////////////////////////////////////////////////////////////////////
156 ////////////////////////////////////////////////////////////////////////////////////
159 * ---------------------------------------------------------------------------------
160 * Setup / Initialize - private
161 * ---------------------------------------------------------------------------------
164 //##################################################################################
165 Bool_t AliHLTMultiplicityCorrelations::AddESDEvent( AliESDEvent* esd ) {
166 // see header file for class documentation
172 HLTWarning("No ESD event present.");
176 // -- Check for PrimaryVertex
177 if ( !esd->GetPrimaryVertexTracks() ){
178 HLTError("No Vertex present.");
182 fESDZDC = esd->GetESDZDC();
184 HLTInfo("No ZDC information !");
187 fESDVZERO = esd->GetVZEROData();
189 HLTInfo("No VZERO information !");
195 //##################################################################################
196 Int_t AliHLTMultiplicityCorrelations::SetupHistograms() {
197 // see header file for class documentation
201 iResult = SetupVZERO();
202 iResult = SetupZDC();
203 iResult = SetupTPC();
204 iResult = SetupCALO();
205 iResult = SetupSPD();
206 iResult = SetupCorrelations();
211 //##################################################################################
212 Int_t AliHLTMultiplicityCorrelations::SetupVZERO() {
213 // see header file for class documentation
216 fHistList->Add(new TH1F("fVzeroMult", "Multiplicity^{VZERO};Multiplicity^{VZERO};N_{Events}",
217 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
218 fHistList->Add(new TH1F("fVzeroMultA", "Multiplicity^{VZERO} A;Multiplicity^{VZERO};N_{Events}",
219 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
220 fHistList->Add(new TH1F("fVzeroMultC", "Multiplicity^{VZERO} C;Multiplicity^{VZERO};N_{Events}",
221 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
223 fHistList->Add(new TH2F("fVzeroMultAC", "Multiplicity^{VZERO} A vs C;Multiplicity^{VZERO}A ;Multiplicity^{VZERO} C",
224 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
227 fHistList->Add(new TH1F("fVzeroFlaggedMult", "Multiplicity_{flagged}^{VZERO};Multiplicity^{VZERO};N_{Events}",
228 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
229 fHistList->Add(new TH1F("fVzeroFlaggedMultA", "Multiplicity_{flagged}^{VZERO} A;Multiplicity^{VZERO};N_{Events}",
230 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
231 fHistList->Add(new TH1F("fVzeroFlaggedMultC", "Multiplicity_{flagged}^{VZERO} C;Multiplicity^{VZERO};N_{Events}",
232 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
234 fHistList->Add(new TH2F("fVzeroFlaggedMultAC", "Multiplicity_flagged^{VZERO} A vs C;Multiplicity^{VZERO}A ;Multiplicity^{VZERO} C",
235 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
237 fHistList->Add(new TH1F("fVzeroTime", "Time;Time;N_{Events}", 500, 0, 1000));
238 fHistList->Add(new TH1F("fVzeroTimeA", "Time A;Time;N_{Events}", 500, 0, 1000));
239 fHistList->Add(new TH1F("fVzeroTimeC", "Time B;Time;N_{Events}", 500, 0, 1000));
241 fHistList->Add(new TH1F("fVzeroADC", "ADC;ADC;N_{Events}", 500, 0, 150000));
242 fHistList->Add(new TH1F("fVzeroADCA", "ADC A;ADC;N_{Events}", 500, 0, 100000));
243 fHistList->Add(new TH1F("fVzeroADCC", "ADC B;ADC;N_{Events}", 500, 0, 100000));
248 //##################################################################################
249 Int_t AliHLTMultiplicityCorrelations::SetupZDC() {
250 // see header file for class documentation
253 fHistList->Add(new TH1F("fZdcEzn", "E_{ZN};E_{ZN} (TeV);N_{Events}",
254 fZnpBinning,fZnpBinningMin,fZnpBinningMax));
255 fHistList->Add(new TH1F("fZdcEznA", "E_{ZN} A;E_{ZN} (TeV);N_{Events}",
256 fZnpBinning,fZnpBinningMin,fZnpBinningMax));
257 fHistList->Add(new TH1F("fZdcEznC", "E_{ZN} C;E_{ZN} (TeV);N_{Events}",
258 fZnpBinning,fZnpBinningMin,fZnpBinningMax));
261 fHistList->Add(new TH1F("fZdcEzp", "E_{ZP};E_{ZP} (TeV);N_{Events}",
262 fZnpBinning,fZnpBinningMin,fZnpBinningMax));
263 fHistList->Add(new TH1F("fZdcEzpA", "E_{ZP} A;E_{ZP} (TeV);N_{Events}",
264 fZnpBinning,fZnpBinningMin,fZnpBinningMax));
265 fHistList->Add(new TH1F("fZdcEzpC", "E_{ZP} C;E_{ZP} (TeV);N_{Events}",
266 fZnpBinning,fZnpBinningMin,fZnpBinningMax));
269 fHistList->Add(new TH1F("fZdcEzdc", "E_{ZDC};E_{ZDC} (TeV);N_{Events}",
270 fZdcBinning,fZdcBinningMin,fZdcBinningMax));
271 fHistList->Add(new TH1F("fZdcEzdcA", "E_{ZDC} A;E_{ZDC} (TeV);N_{Events}",
272 fZdcBinning,fZdcBinningMin,fZdcBinningMax));
273 fHistList->Add(new TH1F("fZdcEzdcC", "E_{ZDC} C;E_{ZDC} (TeV);N_{Events}",
274 fZdcBinning,fZdcBinningMin,fZdcBinningMax));
277 fHistList->Add(new TH1F("fZdcEzem", "E_{ZEM};E_{ZEM} (TeV);N_{Events}",
278 fZemBinning,fZemBinningMin,fZemBinningMax));
279 fHistList->Add(new TH1F("fZdcEzemA", "E_{ZEM} A;E_{ZEM} (TeV);N_{Events}",
280 fZemBinning,fZemBinningMin,fZemBinningMax));
281 fHistList->Add(new TH1F("fZdcEzemC", "E_{ZEM} C;E_{ZEM} (TeV);N_{Events}",
282 fZemBinning,fZemBinningMin,fZemBinningMax));
285 fHistList->Add(new TH1F("fZdcNpart", "N_{Part} ;N_{Part};N_{Events}", 50,0,499));
286 fHistList->Add(new TH1F("fZdcNpartA", "N_{Part} A;N_{Part};N_{Events}", 50,0,499));
287 fHistList->Add(new TH1F("fZdcNpartC", "N_{Part} C;N_{Part};N_{Events}", 50,0,499));
290 fHistList->Add(new TH1F("fZdcB", "b;b {fm);N_{Events}", 31,0,30));
291 fHistList->Add(new TH1F("fZdcBA", "b A;b (fm);N_{Events}", 31,0,30));
292 fHistList->Add(new TH1F("fZdcBC", "b C;b (fm);N_{Events}", 31,0,30));
294 // E_{ZEM} vs E_{ZDC}
295 fHistList->Add(new TH2F("fZdcEzemEzdc", "E_{ZEM} vs E_{ZDC};E_{ZEM} (TeV); E_{ZDC} (TeV)",
296 fZemBinning,fZemBinningMin,fZemBinningMax, fZdcBinning,fZdcBinningMin,fZdcBinningMax));
297 fHistList->Add(new TH2F("fZdcEzemEzdcA","E_{ZEM} vs E_{ZDC} A;E_{ZEM} (TeV); E_{ZDC} (TeV)",
298 fZemBinning,fZemBinningMin,fZemBinningMax, fZdcBinning,fZdcBinningMin,fZdcBinningMax));
299 fHistList->Add(new TH2F("fZdcEzemEzdcC","E_{ZEM} vs E_{ZDC} C;E_{ZEM} (TeV); E_{ZDC} (TeV)",
300 fZemBinning,fZemBinningMin,fZemBinningMax, fZdcBinning,fZdcBinningMin,fZdcBinningMax));
305 //##################################################################################
306 Int_t AliHLTMultiplicityCorrelations::SetupTPC() {
307 // see header file for class documentation
313 // -- Create LogPtBinning
314 // ------------------------
315 Double_t logMin = TMath::Log10(s);
316 Double_t logMax = TMath::Log10(e);
317 Double_t binwidth = (logMax-logMin)/n;
319 Double_t *logBinning = new Double_t[n+1];
322 for (Int_t ii = 1; ii <= n; ii++)
323 logBinning[ii] = s + TMath::Power(10, logMin + ii*binwidth);
324 // - - - - - - - - - - - - - - - - - - - - - - - - - - -
327 fHistList->Add(new TH1F("fTpcPt0", "dN_{ch} / dP_{T} esdTracks; P_{T} (GeV/c);dN/dP_{T} (c/GeV)", n, logBinning));
328 fHistList->Add(new TH1F("fTpcPt1", "dN_{ch} / dP_{T} accepted esdTracks; P_{T} (GeV/c);dN/dP_{T} (c/GeV)", n, logBinning));
329 fHistList->Add(new TH1F("fTpcPt2", "dN_{ch} / dP_{T} tpcTracks; P_{T} (GeV/c);dN/dP_{T} (c/GeV)", n, logBinning));
330 fHistList->Add(new TH1F("fTpcPt3", "dN_{ch} / dP_{T} accepted tpcTracks; P_{T} (GeV/c);dN/dP_{T} (c/GeV)", n, logBinning));
333 fHistList->Add(new TH1F("fTpcNch0", "N_{ch} esdTracks; N_{ch};N_{Events}",
334 fTpcBinning,fTpcBinningMin,fTpcBinningMax));
335 fHistList->Add(new TH1F("fTpcNch1", "N_{ch} accepted esdTracks; N_{ch};N_{Events}",
336 fTpcBinning,fTpcBinningMin,fTpcBinningMax));
337 fHistList->Add(new TH1F("fTpcNch2", "N_{ch} tpcTracks; N_{ch};N_{Events}",
338 fTpcBinning,fTpcBinningMin,fTpcBinningMax));
339 fHistList->Add(new TH1F("fTpcNch3", "N_{ch} accepted tpcTracks; N_{ch};N_{Events}",
340 fTpcBinning,fTpcBinningMin,fTpcBinningMax));
345 //##################################################################################
346 Int_t AliHLTMultiplicityCorrelations::SetupCorrelations() {
347 // see header file for class documentation
349 // ----------------------------------------------------
351 // ----------------------------------------------------
354 fHistList->Add(new TH2F("fCorrEzdcNch", "E_{ZDC} vs N_{ch}^{TPC};E_{ZDC} (TeV);N_{ch}^{TPC}",
355 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
356 fHistList->Add(new TH2F("fCorrEzdcANch","E_{ZDC} vs N_{ch}^{TPC} A;E_{ZDC} (TeV);N_{ch}^{TPC}",
357 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
358 fHistList->Add(new TH2F("fCorrEzdcCNch","E_{ZDC} vs N_{ch}^{TPC} C;E_{ZDC} (TeV);N_{ch}^{TPC}",
359 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
362 fHistList->Add(new TH2F("fCorrEzemNch", "E_{ZEM} vs N_{ch}^{TPC};E_{ZEM} (TeV);N_{ch}^{TPC}",
363 fZemBinning,fZemBinningMin,fZemBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
364 fHistList->Add(new TH2F("fCorrEzemANch","E_{ZEM} vs N_{ch}^{TPC} A;E_{ZEM} (TeV);N_{ch}^{TPC}",
365 fZemBinning,fZemBinningMin,fZemBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
366 fHistList->Add(new TH2F("fCorrEzemCNch","E_{ZEM} vs N_{ch}^{TPC} C;E_{ZEM} (TeV);N_{ch}^{TPC}",
367 fZemBinning,fZemBinningMin,fZemBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
370 fHistList->Add(new TH2F("fCorrEzpNch", "E_{ZP} vs N_{ch}^{TPC};E_{ZP} (TeV);N_{ch}^{TPC}",
371 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
372 fHistList->Add(new TH2F("fCorrEzpANch","E_{ZP} vs N_{ch}^{TPC} A;E_{ZP} (TeV);N_{ch}^{TPC}",
373 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
374 fHistList->Add(new TH2F("fCorrEzpCNch","E_{ZP} vs N_{ch}^{TPC} C;E_{ZP} (TeV);N_{ch}^{TPC}",
375 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
378 fHistList->Add(new TH2F("fCorrEznNch", "E_{ZN} vs N_{ch}^{TPC};E_{ZN} (TeV);N_{ch}^{TPC}",
379 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
380 fHistList->Add(new TH2F("fCorrEznANch","E_{ZN} vs N_{ch}^{TPC} A;E_{ZN} (TeV);N_{ch}^{TPC}",
381 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
382 fHistList->Add(new TH2F("fCorrEznCNch","E_{ZN} vs N_{ch}^{TPC} C;E_{ZN} (TeV);N_{ch}^{TPC}",
383 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
385 // N_{Part} vs N_{ch}
386 fHistList->Add(new TH2F("fCorrZdcNpartNch", "N_{part} vs N_{ch}^{TPC};N_{Events};N_{ch}^{TPC}",
387 50,0,499, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
388 fHistList->Add(new TH2F("fCorrZdcNpartANch","N_{part} vs N_{ch}^{TPC} A;N_{Events};N_{ch}^{TPC}",
389 50,0,499, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
390 fHistList->Add(new TH2F("fCorrZdcNpartCNch","N_{part} vs N_{ch}^{TPC} C;N_{Events};N_{ch}^{TPC}",
391 50,0,499, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
394 fHistList->Add(new TH2F("fCorrZdcbNch", "b_{ZDC} vs N_{ch}^{TPC};b (fm);N_{ch}^{TPC}",
395 31,0,30, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
396 fHistList->Add(new TH2F("fCorrZdcbANch","b_{ZDC} vs N_{ch}^{TPC} A;b (fm);N_{ch}^{TPC}",
397 31,0,30, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
398 fHistList->Add(new TH2F("fCorrZdcbCNch","b_{ZDC} vs N_{ch}^{TPC} C;b (fm);N_{ch}^{TPC}",
399 31,0,30, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
401 // ----------------------------------------------------
403 // ----------------------------------------------------
405 // E_{ZDC} vs Multiplicty VZERO
406 fHistList->Add(new TH2F("fCorrEzdcVzero",
407 "E_{ZDC} vs Multiplicity^{VZERO};E_{ZDC} (TeV);Multiplicity^{VZERO}",
408 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
409 fHistList->Add(new TH2F("fCorrEzdcVzeroA",
410 "E_{ZDC} vs Multiplicity^{VZERO} A;E_{ZDC} (TeV);Multiplicity^{VZERO}",
411 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
412 fHistList->Add(new TH2F("fCorrEzdcVzeroC",
413 "E_{ZDC} vs Multiplicity^{VZERO} C;E_{ZDC} (TeV);Multiplicity^{VZERO}",
414 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
416 // E_{ZEM} vs Multiplicty VZERO
417 fHistList->Add(new TH2F("fCorrEzemVzero",
418 "E_{ZEM} vs Multiplicity^{VZERO};E_{ZEM} (TeV);Multiplicity^{VZERO}",
419 fZemBinning,fZemBinningMin,fZemBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
420 fHistList->Add(new TH2F("fCorrEzemVzeroA",
421 "E_{ZEM} vs Multiplicity^{VZERO} A;E_{ZEM} (TeV);Multiplicity^{VZERO}",
422 fZemBinning,fZemBinningMin,fZemBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
423 fHistList->Add(new TH2F("fCorrEzemVzeroC",
424 "E_{ZEM} vs Multiplicity^{VZERO} C;E_{ZEM} (TeV);Multiplicity^{VZERO}",
425 fZemBinning,fZemBinningMin,fZemBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
427 // E_{ZP} vs Multiplicty VZERO
428 fHistList->Add(new TH2F("fCorrEzpVzero",
429 "E_{ZP} vs Multiplicity^{VZERO};E_{ZP} (TeV);Multiplicity^{VZERO}",
430 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
431 fHistList->Add(new TH2F("fCorrEzpVzeroA",
432 "E_{ZP} vs Multiplicity^{VZERO} A;E_{ZP} (TeV);Multiplicity^{VZERO}",
433 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
434 fHistList->Add(new TH2F("fCorrEzpVzeroC",
435 "E_{ZP} vs Multiplicity^{VZERO} C;E_{ZP} (TeV);Multiplicity^{VZERO}",
436 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
438 // E_{ZN} vs Multiplicty VZERO
439 fHistList->Add(new TH2F("fCorrEznVzero",
440 "E_{ZN} vs Multiplicity^{VZERO};E_{ZN} (TeV);Multiplicity^{VZERO}",
441 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
442 fHistList->Add(new TH2F("fCorrEznVzeroA",
443 "E_{ZN} vs Multiplicity^{VZERO} A;E_{ZN} (TeV);Multiplicity^{VZERO}",
444 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
445 fHistList->Add(new TH2F("fCorrEznVzeroC",
446 "E_{ZN} vs Multiplicity^{VZERO} C;E_{ZN} (TeV);Multiplicity^{VZERO}",
447 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
449 // N_{Part} vs Multiplicty VZERO
450 fHistList->Add(new TH2F("fCorrZdcNpartVzero",
451 "N_{part} vs Multiplicity^{VZERO};N_{Events};Multiplicity^{VZERO}",
452 50,0,499, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
453 fHistList->Add(new TH2F("fCorrZdcNpartVzeroA",
454 "N_{part} vs Multiplicity^{VZERO} A;N_{Events};Multiplicity^{VZERO}",
455 50,0,499, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
456 fHistList->Add(new TH2F("fCorrZdcNpartVzeroC",
457 "N_{part} vs Multiplicity^{VZERO} C;N_{Events};Multiplicity^{VZERO}",
458 50,0,499, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
460 // b vs Multiplicty VZERO
461 fHistList->Add(new TH2F("fCorrZdcbVzero", "b_{ZDC} vs Multiplicity^{VZERO};b (fm);Multiplicity^{VZERO}",
462 31,0,30, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
463 fHistList->Add(new TH2F("fCorrZdcbVzeroA","b_{ZDC} vs Multiplicity^{VZERO} A;b (fm);Multiplicity^{VZERO}",
464 31,0,30, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
465 fHistList->Add(new TH2F("fCorrZdcbVzeroC","b_{ZDC} vs Multiplicity^{VZERO} C;b (fm);Multiplicity^{VZERO}",
466 31,0,30, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
468 // -- -- -- -- -- -- --
470 // E_{ZDC} vs Multiplicty VZERO flagged
471 fHistList->Add(new TH2F("fCorrEzdcVzeroF",
472 "E_{ZDC} vs Multiplicity_{flagged}^{VZERO};E_{ZDC} (TeV);Multiplicity^{VZERO}",
473 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
474 fHistList->Add(new TH2F("fCorrEzdcVzeroFA",
475 "E_{ZDC} vs Multiplicity_{flagged}^{VZERO} A;E_{ZDC} (TeV);Multiplicity^{VZERO}",
476 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
477 fHistList->Add(new TH2F("fCorrEzdcVzeroFC",
478 "E_{ZDC} vs Multiplicity_{flagged}^{VZERO} C;E_{ZDC} (TeV);Multiplicity^{VZERO}",
479 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
481 // E_{ZEM} vs Multiplicty VZERO flagged
482 fHistList->Add(new TH2F("fCorrEzemVzeroF",
483 "E_{ZEM} vs Multiplicity_{flagged}^{VZERO};E_{ZEM} (TeV);Multiplicity^{VZERO}",
484 fZemBinning,fZemBinningMin,fZemBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
485 fHistList->Add(new TH2F("fCorrEzemVzeroFA",
486 "E_{ZEM} vs Multiplicity_{flagged}^{VZERO} A;E_{ZEM} (TeV);Multiplicity^{VZERO}",
487 fZemBinning,fZemBinningMin,fZemBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
488 fHistList->Add(new TH2F("fCorrEzemVzeroFC",
489 "E_{ZEM} vs Multiplicity_{flagged}^{VZERO} C;E_{ZEM} (TeV);Multiplicity^{VZERO}",
490 fZemBinning,fZemBinningMin,fZemBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
492 // E_{ZP} vs Multiplicty VZERO flagged
493 fHistList->Add(new TH2F("fCorrEzpVzeroF",
494 "E_{ZP} vs Multiplicity_{flagged}^{VZERO};E_{ZP} (TeV);Multiplicity^{VZERO}",
495 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
496 fHistList->Add(new TH2F("fCorrEzpVzeroFA",
497 "E_{ZP} vs Multiplicity_{flagged}^{VZERO} A;E_{ZP} (TeV);Multiplicity^{VZERO}",
498 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
499 fHistList->Add(new TH2F("fCorrEzpVzeroFC",
500 "E_{ZP} vs Multiplicity_{flagged}^{VZERO} C;E_{ZP} (TeV);Multiplicity^{VZERO}",
501 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
503 // E_{ZN} vs Multiplicty VZERO flagged
504 fHistList->Add(new TH2F("fCorrEznVzeroF",
505 "E_{ZN} vs Multiplicity_{flagged}^{VZERO};E_{ZN} (TeV);Multiplicity^{VZERO}",
506 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
507 fHistList->Add(new TH2F("fCorrEznVzeroFA",
508 "E_{ZN} vs Multiplicity_{flagged}^{VZERO} A;E_{ZN} (TeV);Multiplicity^{VZERO}",
509 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
510 fHistList->Add(new TH2F("fCorrEznVzeroFC",
511 "E_{ZN} vs Multiplicity_{flagged}^{VZERO} C;E_{ZN} (TeV);Multiplicity^{VZERO}",
512 fZnpBinning,fZnpBinningMin,fZnpBinningMax, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
514 // N_{Part} vs Multiplicty VZERO flagged
515 fHistList->Add(new TH2F("fCorrZdcNpartVzeroF",
516 "N_{part} vs Multiplicity_{flagged}^{VZERO};N_{Events};Multiplicity^{VZERO}",
517 50,0,499, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
518 fHistList->Add(new TH2F("fCorrZdcNpartVzeroFA",
519 "N_{part} vs Multiplicity_{flagged}^{VZERO} A;N_{Events};Multiplicity^{VZERO}",
520 50,0,499, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
521 fHistList->Add(new TH2F("fCorrZdcNpartVzeroFC",
522 "N_{part} vs Multiplicity_{flagged}^{VZERO} C;N_{Events};Multiplicity^{VZERO}",
523 50,0,499, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
525 // b vs Multiplicty VZERO flagged
526 fHistList->Add(new TH2F("fCorrZdcbVzeroF",
527 "b_{ZDC} vs Multiplicity_{flagged}^{VZERO};b (fm);Multiplicity^{VZERO}",
528 31,0,30, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
529 fHistList->Add(new TH2F("fCorrZdcbVzeroFA",
530 "b_{ZDC} vs Multiplicity_{flagged}^{VZERO} A;b (fm);Multiplicity^{VZERO}",
531 31,0,30, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
532 fHistList->Add(new TH2F("fCorrZdcbVzeroFC",
533 "b_{ZDC} vs Multiplicity_{flagged}^{VZERO} C;b (fm);Multiplicity^{VZERO}",
534 31,0,30, fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax));
536 // ----------------------------------------------------
538 // ----------------------------------------------------
540 fHistList->Add(new TH2F("fCorrVzeroNch",
541 "Multiplicity^{VZERO} vs N_{ch}^{TPC};Multiplicity^{VZERO};N_{ch}^{TPC}",
542 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
543 fHistList->Add(new TH2F("fCorrVzeroANch",
544 "Multiplicity^{VZERO} vs N_{ch}^{TPC} A;Multiplicity^{VZERO};N_{ch}^{TPC}",
545 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
546 fHistList->Add(new TH2F("fCorrVzeroCNch",
547 "Multiplicity^{VZERO} vs N_{ch}^{TPC} C;Multiplicity^{VZERO};N_{ch}^{TPC}",
548 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
550 fHistList->Add(new TH2F("fCorrVzeroFNch",
551 "Multiplicity^{VZERO} vs N_{ch}^{TPC};Multiplicity_{flagged}^{VZERO};N_{ch}^{TPC}",
552 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
553 fHistList->Add(new TH2F("fCorrVzeroFANch",
554 "Multiplicity^{VZERO} vs N_{ch}^{TPC} A;Multiplicity_{flagged}^{VZERO};N_{ch}^{TPC}",
555 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
556 fHistList->Add(new TH2F("fCorrVzeroFCNch",
557 "Multiplicity^{VZERO} vs N_{ch}^{TPC} C;Multiplicity_{flagged}^{VZERO};N_{ch}^{TPC}",
558 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
560 // ----------------------------------------------------
562 // ----------------------------------------------------
563 fHistList->Add(new TH2F("fCorrZdcTotEvsPhosTotEt",
564 "Total E_{ZDC} vs Total E_{T} in PHOS;Total E_{ZDC} (TeV);E_{T} (GeV)",
565 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
566 fHistList->Add(new TH2F("fCorrZdcTotEvsEmcalTotEt",
567 "Total E_{ZDC} vs Total E_{T} in EMCAL;Total E_{ZDC} (TeV);E_{T} (GeV)",
568 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
569 fHistList->Add(new TH2F("fCorrZdcTotEvsTotEt",
570 "Total E_{ZDC} vs Total E_{T} in calorimeters;Total E_{ZDC} (TeV);E_{T} (GeV)",
571 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
573 // ----------------------------------------------------
575 // ----------------------------------------------------
576 fHistList->Add(new TH2F("fCorrVzerovsPhosTotEt",
577 "Multiplicity^{VZERO} vs Total E_{T} in PHOS;Multiplicity^{VZERO};E_{T} (GeV)",
578 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
579 fHistList->Add(new TH2F("fCorrVzerovsEmcalTotEt",
580 "Multiplicity^{VZERO} vs Total E_{T} in EMCAL;Multiplicity^{VZERO};E_{T} (GeV)",
581 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
582 fHistList->Add(new TH2F("fCorrVzerovsTotEt",
583 "Multiplicity^{VZERO} vs Total E_{T} in Calorimeters;Multiplicity^{VZERO};E_{T} (GeV)",
584 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
586 fHistList->Add(new TH2F("fCorrVzeroFlaggedvsPhosTotEt",
587 "Multiplicity_{flagged}^{VZERO} vs Total E_{T} in PHOS;Multiplicity_{flagged}^{VZERO};E_{T} (GeV)",
588 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
589 fHistList->Add(new TH2F("fCorrVzeroFlaggedvsEmcalTotEt",
590 "Multiplicity_{flagged}^{VZERO} vs Total E_{T} in EMCAL;Multiplicity_{flagged}^{VZERO};E_{T} (GeV)",
591 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
592 fHistList->Add(new TH2F("fCorrVzeroFlaggedvsTotEt",
593 "Multiplicity_{flagged}^{VZERO} vs Total E_{T} in Calorimeters;Multiplicity_{flagged}^{VZERO};E_{T} (GeV)",
594 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fCaloBinning,fCaloBinningMin,fCaloBinningMax));
596 // ----------------------------------------------------
598 // ----------------------------------------------------
600 fHistList->Add(new TH2F("fCorrSpdTpcNch", "N_{clusters}^{SPD} vs N_{ch}^{TPC};N_{clusters}^{SPD};N_{ch}^{TPC}",
601 fSpdBinning,fSpdBinningMin,fSpdBinningMax, fTpcBinning,fTpcBinningMin,fTpcBinningMax));
603 // ----------------------------------------------------
605 // ----------------------------------------------------
607 fHistList->Add(new TH2F("fCorrVzeroSpd",
608 "Multiplicity^{VZERO} vs N_{ch}^{SPD};Multiplicity^{VZERO};N^{SPD}",
609 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
610 fHistList->Add(new TH2F("fCorrVzeroASpd",
611 "Multiplicity^{VZERO} vs N_{ch}^{SPD} A;Multiplicity^{VZERO};N^{SPD}",
612 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
613 fHistList->Add(new TH2F("fCorrVzeroCSpd",
614 "Multiplicity^{VZERO} vs N_{ch}^{SPD} C;Multiplicity^{VZERO};N^{SPD}",
615 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
617 fHistList->Add(new TH2F("fCorrVzeroFSpd",
618 "Multiplicity^{VZERO} vs N_{ch}^{SPD};Multiplicity_{flagged}^{VZERO};N^{SPD}",
619 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
620 fHistList->Add(new TH2F("fCorrVzeroFASpd",
621 "Multiplicity^{VZERO} vs N_{ch}^{SPD} A;Multiplicity_{flagged}^{VZERO};N^{SPD}",
622 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
623 fHistList->Add(new TH2F("fCorrVzeroFCSpd",
624 "Multiplicity^{VZERO} vs N_{ch}^{SPD} C;Multiplicity_{flagged}^{VZERO};N^{SPD}",
625 fVzeroBinning,fVzeroBinningMin,fVzeroBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
627 // ----------------------------------------------------
629 // ----------------------------------------------------
631 // E_{ZDC} vs Multiplicty SPD
632 fHistList->Add(new TH2F("fCorrEzdcSpd", "E_{ZDC} vs N_{ch}^{SPD};E_{ZDC} (TeV);N^{SPD}",
633 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
634 fHistList->Add(new TH2F("fCorrEzdcASpd","E_{ZDC} vs N_{ch}^{SPD} A;E_{ZDC} (TeV);N^{SPD}",
635 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
636 fHistList->Add(new TH2F("fCorrEzdcCSpd","E_{ZDC} vs N_{ch}^{SPD} C;E_{ZDC} (TeV);N^{SPD}",
637 fZdcBinning,fZdcBinningMin,fZdcBinningMax, fSpdBinning,fSpdBinningMin,fSpdBinningMax));
643 //##################################################################################
644 Int_t AliHLTMultiplicityCorrelations::SetupCALO() {
645 // see header file for class documentation
648 fHistList->Add(new TH1F("fPhosEt", "Total E_{T} in PHOS:E (GeV)",
649 fCaloBinning,fCaloBinningMin,fCaloBinningMax));
652 fHistList->Add(new TH1F("fEmcalEt", "Total E_{T} in EMCAL:E (GeV)",
653 fCaloBinning,fCaloBinningMin,fCaloBinningMax));
655 if(fProcessPhos || fProcessEmcal) {
656 fHistList->Add(new TH1F("fTotalEt", "Total E_{T} in calorimeters:E (GeV)",
657 fCaloBinning,fCaloBinningMin,fCaloBinningMax));
662 //##################################################################################
663 Int_t AliHLTMultiplicityCorrelations::SetupSPD() {
664 // see header file for class documentation
666 fHistList->Add(new TH1F("fSpdNClusters", "Multplicity_{SPD};Multplicity_{SPD};N_{Events}",
667 fSpdBinning,fSpdBinningMin,fSpdBinningMax));
674 * ---------------------------------------------------------------------------------
676 * ---------------------------------------------------------------------------------
679 //##################################################################################
680 Int_t AliHLTMultiplicityCorrelations::ProcessTPC() {
681 // see header file for class documentation
685 TH1F* hPt0 = static_cast<TH1F*>(fHistList->FindObject("fTpcPt0")); // all
686 TH1F* hPt1 = static_cast<TH1F*>(fHistList->FindObject("fTpcPt1")); // all accepted
688 TH1F* hPt2 = static_cast<TH1F*>(fHistList->FindObject("fTpcPt2")); // GetTPCInnerParam
689 TH1F* hPt3 = static_cast<TH1F*>(fHistList->FindObject("fTpcPt3")); // GetTPCInnerParam A
696 // -----------------------------------------------------------------
697 for (Int_t idx = 0; idx < fESDEvent->GetNumberOfTracks(); idx++) {
700 AliESDtrack* esdTrack = fESDEvent->GetTrack(idx);
701 if (!esdTrack) continue;
704 hPt0->Fill(esdTrack->Pt());
706 //______________________________________________
707 if (!fESDTrackCuts->AcceptTrack(esdTrack)) continue;
710 hPt1->Fill(esdTrack->Pt());
712 // -----------------------------------------------------------------
713 for (Int_t idx = 0; idx < fESDEvent->GetNumberOfTracks(); idx++) {
716 AliESDtrack* esdTrack = fESDEvent->GetTrack(idx);
717 if (!esdTrack) continue;
720 const AliExternalTrackParam *tpcTrack = esdTrack->GetTPCInnerParam();
721 if (!tpcTrack) continue;
723 hPt2->Fill(tpcTrack->Pt());
725 //______________________________________________
726 if (!fESDTrackCuts->AcceptTrack(esdTrack)) continue;
729 hPt3->Fill(tpcTrack->Pt());
731 // -----------------------------------------------------------------
733 (static_cast<TH1F*>(fHistList->FindObject("fTpcNch0")))->Fill(fEsdTracks);
734 (static_cast<TH1F*>(fHistList->FindObject("fTpcNch1")))->Fill(fEsdTracksA);
735 (static_cast<TH1F*>(fHistList->FindObject("fTpcNch2")))->Fill(fTpcTracks);
736 (static_cast<TH1F*>(fHistList->FindObject("fTpcNch3")))->Fill(fTpcTracksA);
741 //##################################################################################
742 Int_t AliHLTMultiplicityCorrelations::ProcessVZERO() {
743 // see header file for class documentation
747 fVzeroMultA = fESDVZERO->GetMTotV0A();
748 fVzeroMultC = fESDVZERO->GetMTotV0C();
749 fVzeroMult = fVzeroMultA + fVzeroMultC;
751 (static_cast<TH1F*>(fHistList->FindObject("fVzeroMult")))->Fill(fVzeroMult);
752 (static_cast<TH1F*>(fHistList->FindObject("fVzeroMultA")))->Fill(fVzeroMultA);
753 (static_cast<TH1F*>(fHistList->FindObject("fVzeroMultC")))->Fill(fVzeroMultC);
754 (static_cast<TH1F*>(fHistList->FindObject("fVzeroMultAC")))->Fill(fVzeroMultA,fVzeroMultC);
756 fVzeroMultFlaggedA = 0.;
757 fVzeroMultFlaggedC = 0.;
759 Double_t vzeroTimeA = 0.;
760 Double_t vzeroTimeC = 0.;
762 Double_t vzeroAdcA = 0.;
763 Double_t vzeroAdcC = 0.;
765 for (Int_t idx = 0; idx < 32; idx++) {
767 if ( fESDVZERO->GetBBFlag(idx) )
768 fVzeroMultFlaggedC += fESDVZERO->GetMultiplicityV0C(idx);
769 if ( fESDVZERO->GetBBFlag(idx+32) )
770 fVzeroMultFlaggedA += fESDVZERO->GetMultiplicityV0A(idx);
772 vzeroTimeA += fESDVZERO->GetTimeV0A(idx);
773 vzeroTimeC += fESDVZERO->GetTimeV0C(idx);
775 vzeroAdcA += fESDVZERO->GetAdcV0A(idx);
776 vzeroAdcC += fESDVZERO->GetAdcV0C(idx);
779 fVzeroMultFlagged = fVzeroMultFlaggedA + fVzeroMultFlaggedC;
781 Double_t vzeroTime = vzeroTimeA + vzeroTimeC;
782 Double_t vzeroAdc = vzeroAdcA + vzeroAdcC;
784 (static_cast<TH1F*>(fHistList->FindObject("fVzeroFlaggedMult")))->Fill(fVzeroMultFlagged);
785 (static_cast<TH1F*>(fHistList->FindObject("fVzeroFlaggedMultA")))->Fill(fVzeroMultFlaggedA);
786 (static_cast<TH1F*>(fHistList->FindObject("fVzeroFlaggedMultC")))->Fill(fVzeroMultFlaggedC);
787 (static_cast<TH1F*>(fHistList->FindObject("fVzeroFlaggedMultAC")))->Fill(fVzeroMultFlaggedA,fVzeroMultFlaggedC);
789 (static_cast<TH1F*>(fHistList->FindObject("fVzeroTime")))->Fill(vzeroTime);
790 (static_cast<TH1F*>(fHistList->FindObject("fVzeroTimeA")))->Fill(vzeroTimeA);
791 (static_cast<TH1F*>(fHistList->FindObject("fVzeroTimeC")))->Fill(vzeroTimeC);
793 (static_cast<TH1F*>(fHistList->FindObject("fVzeroADC")))->Fill(vzeroAdc);
794 (static_cast<TH1F*>(fHistList->FindObject("fVzeroADCA")))->Fill(vzeroAdcA);
795 (static_cast<TH1F*>(fHistList->FindObject("fVzeroADCC")))->Fill(vzeroAdcC);
797 // -- VZERO - TPC correlations
798 if (fESDEvent->GetNumberOfTracks() > 0) {
799 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroNch")))->Fill(fVzeroMult, fTpcTracksA);
800 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroANch")))->Fill(fVzeroMultA, fTpcTracksA);
801 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroCNch")))->Fill(fVzeroMultC, fTpcTracksA);
803 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFNch")))->Fill(fVzeroMultFlagged, fTpcTracksA);
804 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFANch")))->Fill(fVzeroMultFlaggedA, fTpcTracksA);
805 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFCNch")))->Fill(fVzeroMultFlaggedC, fTpcTracksA);
808 // -- VZERO - SPD correlations
809 if (fESDEvent->GetNumberOfTracks() > 0) {
810 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroSpd")))->Fill(fVzeroMult, fSpdNClusters);
811 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroASpd")))->Fill(fVzeroMultA, fSpdNClusters);
812 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroCSpd")))->Fill(fVzeroMultC, fSpdNClusters);
814 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFSpd")))->Fill(fVzeroMultFlagged, fSpdNClusters);
815 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFASpd")))->Fill(fVzeroMultFlaggedA, fSpdNClusters);
816 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFCSpd")))->Fill(fVzeroMultFlaggedC, fSpdNClusters);
819 // -- VZERO - CALO correlations
820 if (fProcessPhos || fProcessEmcal) {
821 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzerovsTotEt")))->Fill(fVzeroMult, fPhosTotalEt + fEmcalTotalEt);
822 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFlaggedvsTotEt")))->Fill(fVzeroMultFlagged, fPhosTotalEt + fEmcalTotalEt);
825 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzerovsPhosTotEt")))->Fill(fVzeroMult, fPhosTotalEt);
826 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFlaggedvsPhosTotEt")))->Fill(fVzeroMultFlagged, fPhosTotalEt);
830 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzerovsEmcalTotEt")))->Fill(fVzeroMult, fEmcalTotalEt);
831 (static_cast<TH2F*>(fHistList->FindObject("fCorrVzeroFlaggedvsEmcalTotEt")))->Fill(fVzeroMultFlagged, fEmcalTotalEt);
837 //##################################################################################
838 Int_t AliHLTMultiplicityCorrelations::ProcessZDC() {
839 // see header file for class documentation
843 Double_t zdcEznA = fESDZDC->GetZDCN2Energy() / 1000.;
844 Double_t zdcEznC = fESDZDC->GetZDCN1Energy() / 1000.;
845 Double_t zdcEzn = zdcEznA + zdcEznC;
847 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzn")))->Fill(zdcEzn);
848 (static_cast<TH1F*>(fHistList->FindObject("fZdcEznA")))->Fill(zdcEznA);
849 (static_cast<TH1F*>(fHistList->FindObject("fZdcEznC")))->Fill(zdcEznC);
851 Double_t zdcEzpA = fESDZDC->GetZDCP2Energy() / 1000.;
852 Double_t zdcEzpC = fESDZDC->GetZDCP1Energy() / 1000.;
853 Double_t zdcEzp = zdcEzpA + zdcEzpC;
855 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzp")))->Fill(zdcEzp);
856 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzpA")))->Fill(zdcEzpA);
857 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzpC")))->Fill(zdcEzpC);
859 Double_t zdcEA = (zdcEznA + zdcEzpA);
860 Double_t zdcEC = (zdcEznC + zdcEzpC);
861 Double_t zdcE = zdcEA + zdcEC;
863 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzdc")))->Fill(zdcE);
864 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzdcA")))->Fill(zdcEA);
865 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzdcC")))->Fill(zdcEC);
867 Double_t zdcEzemA = fESDZDC->GetZDCEMEnergy(1) / 1000.;
868 Double_t zdcEzemC = fESDZDC->GetZDCEMEnergy(0) / 1000.;
869 Double_t zdcEzem = zdcEzemA + zdcEzemC;
871 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzem")))->Fill(zdcEzem);
872 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzemA")))->Fill(zdcEzemA);
873 (static_cast<TH1F*>(fHistList->FindObject("fZdcEzemC")))->Fill(zdcEzemC);
875 (static_cast<TH2F*>(fHistList->FindObject("fZdcEzemEzdc")))->Fill(zdcEzem, zdcE);
876 (static_cast<TH2F*>(fHistList->FindObject("fZdcEzemEzdcA")))->Fill(zdcEzemA, zdcEA);
877 (static_cast<TH2F*>(fHistList->FindObject("fZdcEzemEzdcC")))->Fill(zdcEzemC, zdcEC);
879 (static_cast<TH1F*>(fHistList->FindObject("fZdcNpart")))->Fill(fESDZDC->GetZDCParticipants());
880 (static_cast<TH1F*>(fHistList->FindObject("fZdcNpartA")))->Fill(fESDZDC->GetZDCPartSideA());
881 (static_cast<TH1F*>(fHistList->FindObject("fZdcNpartC")))->Fill(fESDZDC->GetZDCPartSideC());
883 (static_cast<TH1F*>(fHistList->FindObject("fZdcB")))->Fill(fESDZDC->GetImpactParameter());
884 (static_cast<TH1F*>(fHistList->FindObject("fZdcBA")))->Fill(fESDZDC->GetImpactParamSideA());
885 (static_cast<TH1F*>(fHistList->FindObject("fZdcBC")))->Fill(fESDZDC->GetImpactParamSideC());
887 // -- ZDC - TPC correlations
888 if (fESDEvent->GetNumberOfTracks() > 0) {
889 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcNch")))->Fill(zdcE, fTpcTracksA);
890 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcANch")))->Fill(zdcEA, fTpcTracksA);
891 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcCNch")))->Fill(zdcEC, fTpcTracksA);
893 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzemNch")))->Fill(zdcEzem, fTpcTracksA);
894 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzemANch")))->Fill(zdcEzemA, fTpcTracksA);
895 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzemCNch")))->Fill(zdcEzemC, fTpcTracksA);
897 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzpNch")))->Fill(zdcEzp, fTpcTracksA);
898 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzpANch")))->Fill(zdcEzpA, fTpcTracksA);
899 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzpCNch")))->Fill(zdcEzpC, fTpcTracksA);
901 (static_cast<TH2F*>(fHistList->FindObject("fCorrEznNch")))->Fill(zdcEzn, fTpcTracksA);
902 (static_cast<TH2F*>(fHistList->FindObject("fCorrEznANch")))->Fill(zdcEznA, fTpcTracksA);
903 (static_cast<TH2F*>(fHistList->FindObject("fCorrEznCNch")))->Fill(zdcEznC, fTpcTracksA);
905 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcNpartNch")))->Fill(fESDZDC->GetZDCParticipants(), fTpcTracksA);
906 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcNpartANch")))->Fill(fESDZDC->GetZDCPartSideA(), fTpcTracksA);
907 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcNpartCNch")))->Fill(fESDZDC->GetZDCPartSideC(), fTpcTracksA);
909 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbNch")))->Fill(fESDZDC->GetImpactParameter(), fTpcTracksA);
910 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbANch")))->Fill(fESDZDC->GetImpactParamSideA(), fTpcTracksA);
911 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbCNch")))->Fill(fESDZDC->GetImpactParamSideC(), fTpcTracksA);
914 // -- ZDC - SPD correlations
915 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcSpd")))->Fill(zdcE, fSpdNClusters);
916 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcASpd")))->Fill(zdcEA, fSpdNClusters);
917 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcCSpd")))->Fill(zdcEC, fSpdNClusters);
920 // -- VZERO - ZDC correlations
922 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcVzero")))->Fill(zdcE, fVzeroMult);
923 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcVzeroA")))->Fill(zdcEA, fVzeroMultA);
924 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcVzeroC")))->Fill(zdcEC, fVzeroMultC);
926 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzemVzero")))->Fill(zdcEzem, fVzeroMult);
927 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzemVzeroA")))->Fill(zdcEzemA, fVzeroMultA);
928 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzemVzeroC")))->Fill(zdcEzemC, fVzeroMultC);
930 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzpVzero")))->Fill(zdcEzp, fVzeroMult);
931 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzpVzeroA")))->Fill(zdcEzpA, fVzeroMultA);
932 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzpVzeroC")))->Fill(zdcEzpC, fVzeroMultC);
934 (static_cast<TH2F*>(fHistList->FindObject("fCorrEznVzero")))->Fill(zdcEzn, fVzeroMult);
935 (static_cast<TH2F*>(fHistList->FindObject("fCorrEznVzeroA")))->Fill(zdcEznA, fVzeroMultA);
936 (static_cast<TH2F*>(fHistList->FindObject("fCorrEznVzeroC")))->Fill(zdcEznC, fVzeroMultC);
938 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcNpartVzero")))->Fill(fESDZDC->GetZDCParticipants(), fVzeroMult);
939 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcNpartVzeroA")))->Fill(fESDZDC->GetZDCPartSideA(), fVzeroMultA);
940 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcNpartVzeroC")))->Fill(fESDZDC->GetZDCPartSideC(), fVzeroMultC);
942 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbVzero")))->Fill(fESDZDC->GetImpactParameter(), fVzeroMult);
943 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbVzeroA")))->Fill(fESDZDC->GetImpactParamSideA(), fVzeroMultA);
944 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbVzeroC")))->Fill(fESDZDC->GetImpactParamSideC(), fVzeroMultC);
948 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcVzeroF")))->Fill(zdcE, fVzeroMultFlagged);
949 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcVzeroFA")))->Fill(zdcEA, fVzeroMultFlaggedA);
950 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzdcVzeroFC")))->Fill(zdcEC, fVzeroMultFlaggedC);
952 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzemVzeroF")))->Fill(zdcEzem, fVzeroMultFlagged);
953 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzemVzeroFA")))->Fill(zdcEzemA, fVzeroMultFlaggedA);
954 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzemVzeroFC")))->Fill(zdcEzemC, fVzeroMultFlaggedC);
956 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzpVzeroF")))->Fill(zdcEzp, fVzeroMultFlagged);
957 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzpVzeroFA")))->Fill(zdcEzpA, fVzeroMultFlaggedA);
958 (static_cast<TH2F*>(fHistList->FindObject("fCorrEzpVzeroFC")))->Fill(zdcEzpC, fVzeroMultFlaggedC);
960 (static_cast<TH2F*>(fHistList->FindObject("fCorrEznVzeroF")))->Fill(zdcEzn, fVzeroMultFlagged);
961 (static_cast<TH2F*>(fHistList->FindObject("fCorrEznVzeroFA")))->Fill(zdcEznA, fVzeroMultFlaggedA);
962 (static_cast<TH2F*>(fHistList->FindObject("fCorrEznVzeroFC")))->Fill(zdcEznC, fVzeroMultFlaggedC);
964 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcNpartVzero")))->Fill(fESDZDC->GetZDCParticipants(), fVzeroMultFlagged);
965 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcNpartVzeroFA")))->Fill(fESDZDC->GetZDCPartSideA(), fVzeroMultFlaggedA);
966 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcNpartVzeroFC")))->Fill(fESDZDC->GetZDCPartSideC(), fVzeroMultFlaggedC);
968 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbVzeroF")))->Fill(fESDZDC->GetImpactParameter(), fVzeroMultFlagged);
969 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbVzeroFA")))->Fill(fESDZDC->GetImpactParamSideA(), fVzeroMultFlaggedA);
970 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcbVzeroFC")))->Fill(fESDZDC->GetImpactParamSideC(), fVzeroMultFlaggedC);
973 // -- ZDC - CALO correlations
974 if (fProcessPhos || fProcessEmcal) {
975 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcTotEvsTotEt")))->Fill(zdcE, fPhosTotalEt + fEmcalTotalEt);
978 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcTotEvsPhosTotEt")))->Fill(zdcE, fPhosTotalEt);
982 (static_cast<TH2F*>(fHistList->FindObject("fCorrZdcTotEvsEmcalTotEt")))->Fill(zdcE, fEmcalTotalEt);
989 //##################################################################################
990 Int_t AliHLTMultiplicityCorrelations::ProcessCALO() {
991 // see header file for class documentation
993 TH1F* hPhosEt = static_cast<TH1F*>(fHistList->FindObject("fPhosEt")); // PHOS Tot E_T
994 TH1F* hEmcalEt = static_cast<TH1F*>(fHistList->FindObject("fEmcalEt")); // EMCAL Tot E_T
995 TH1F* hTotalEt = static_cast<TH1F*>(fHistList->FindObject("fTotalEt")); // CALO Tot E_T
1000 for(Int_t cl = 0; cl < fESDEvent->GetNumberOfCaloClusters(); cl++)
1003 AliESDCaloCluster *cluster = fESDEvent->GetCaloCluster(cl);
1004 if(cluster->IsPHOS() && fProcessPhos)
1006 fPhosTotalEt += cluster->E();
1008 if(cluster->IsEMCAL() && fProcessEmcal)
1010 fEmcalTotalEt += cluster->E();
1014 if(hPhosEt)hPhosEt->Fill(fPhosTotalEt);
1015 if(hEmcalEt)hEmcalEt->Fill(fEmcalTotalEt);
1016 if(hTotalEt)hTotalEt->Fill(fPhosTotalEt + fEmcalTotalEt);
1021 //##################################################################################
1022 Int_t AliHLTMultiplicityCorrelations::ProcessSPD() {
1023 // see header file for class documentation
1025 (static_cast<TH2F*>(fHistList->FindObject("fSpdNClusters")))->Fill(fSpdNClusters);
1026 (static_cast<TH2F*>(fHistList->FindObject("fCorrSpdTpcNch")))->Fill(fSpdNClusters,fTpcTracksA);