]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.cxx
Charged jets (pPb): Improved trackcut analysis
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskSAJF.cxx
1 // $Id$
2 //
3 // Jet analysis task.
4 //
5 // Author: S.Aiola
6
7 #include <TClonesArray.h>
8 #include <TH2F.h>
9 #include <TH3F.h>
10 #include <THnSparse.h>
11 #include <TList.h>
12 #include <TLorentzVector.h>
13
14 #include "AliVCluster.h"
15 #include "AliVParticle.h"
16 #include "AliEmcalJet.h"
17 #include "AliRhoParameter.h"
18 #include "AliLog.h"
19
20 #include "AliAnalysisTaskSAJF.h"
21
22 ClassImp(AliAnalysisTaskSAJF)
23
24 //________________________________________________________________________
25 AliAnalysisTaskSAJF::AliAnalysisTaskSAJF() : 
26   AliAnalysisTaskEmcalJet("AliAnalysisTaskSAJF", kTRUE),
27   fHistoType(1),
28   fHistJetObservables(0)
29
30 {
31   // Default constructor.
32
33   for (Int_t i = 0; i < 4; i++) {
34     fHistTracksJetPt[i] = 0;
35     fHistClustersJetPt[i] = 0;
36     fHistTracksPtDist[i] = 0;
37     fHistClustersPtDist[i] = 0;
38
39     fHistJetPtEtaPhi[i] = 0;
40     fHistJetPtArea[i] = 0;
41     fHistJetPtEP[i] = 0;
42     fHistJetPtNEF[i] = 0;
43     fHistJetPtZ[i] = 0;
44     fHistJetPtLeadingPartPt[i] = 0;
45     fHistJetCorrPtEtaPhi[i] = 0;
46     fHistJetCorrPtArea[i] = 0;
47     fHistJetCorrPtEP[i] = 0;
48     fHistJetCorrPtNEF[i] = 0;
49     fHistJetCorrPtZ[i] = 0;
50     fHistJetCorrPtLeadingPartPt[i] = 0;
51     fHistJetPtCorrPt[i] = 0;
52     fHistJetPtMCPt[i] = 0;
53     fHistJetMCPtCorrPt[i] = 0;
54   }
55
56   SetMakeGeneralHistograms(kTRUE);
57 }
58
59 //________________________________________________________________________
60 AliAnalysisTaskSAJF::AliAnalysisTaskSAJF(const char *name) : 
61   AliAnalysisTaskEmcalJet(name, kTRUE),
62   fHistoType(1),
63   fHistJetObservables(0)
64 {
65   // Standard constructor.
66
67   for (Int_t i = 0; i < 4; i++) {
68     fHistTracksJetPt[i] = 0;
69     fHistClustersJetPt[i] = 0;
70     fHistTracksPtDist[i] = 0;
71     fHistClustersPtDist[i] = 0;
72
73     fHistJetPtEtaPhi[i] = 0;
74     fHistJetPtArea[i] = 0;
75     fHistJetPtEP[i] = 0;
76     fHistJetPtNEF[i] = 0;
77     fHistJetPtZ[i] = 0;
78     fHistJetPtLeadingPartPt[i] = 0;
79     fHistJetCorrPtEtaPhi[i] = 0;
80     fHistJetCorrPtArea[i] = 0;
81     fHistJetCorrPtEP[i] = 0;
82     fHistJetCorrPtNEF[i] = 0;
83     fHistJetCorrPtZ[i] = 0;
84     fHistJetCorrPtLeadingPartPt[i] = 0;
85     fHistJetPtCorrPt[i] = 0;
86     fHistJetPtMCPt[i] = 0;
87     fHistJetMCPtCorrPt[i] = 0;
88   }
89
90   SetMakeGeneralHistograms(kTRUE);
91 }
92
93 //________________________________________________________________________
94 void AliAnalysisTaskSAJF::AllocateTHnSparse()
95 {
96     TString title[20]= {""};
97   Int_t nbins[20]  = {0};
98   Double_t min[20] = {0.};
99   Double_t max[20] = {0.};
100   Int_t dim = 0;
101
102   if (fForceBeamType != kpp) {
103     title[dim] = "Centrality (%)";
104     nbins[dim] = 22;
105     min[dim] = -5;
106     max[dim] = 105;
107     dim++;
108     
109     title[dim] = "#phi_{jet} - #psi_{RP}";
110     nbins[dim] = 100;
111     min[dim] = 0;
112     max[dim] = TMath::Pi();
113     dim++;
114   }
115
116   title[dim] = "#eta";
117   nbins[dim] = 100;
118   min[dim] = -1;
119   max[dim] = 1;
120   dim++;
121
122   title[dim] = "#phi_{jet} (rad)";
123   nbins[dim] = 201;
124   min[dim] = 0;
125   max[dim] = 2*TMath::Pi()*nbins[dim]/(nbins[dim]-1);
126   dim++;
127
128   title[dim] = "p_{T} (GeV/c)";
129   nbins[dim] = fNbins;
130   min[dim] = fMinBinPt;
131   max[dim] = fMaxBinPt;
132   dim++;
133
134   if (fIsEmbedded) {
135     title[dim] = "p_{T}^{MC} (GeV/c)";
136     nbins[dim] = fNbins;
137     min[dim] = fMinBinPt;
138     max[dim] = fMaxBinPt;
139     dim++;
140   }
141
142   if (!GetRhoName().IsNull()) {
143     title[dim] = "p_{T}^{corr} (GeV/c)";
144     nbins[dim] = fNbins*2;
145     min[dim] = -fMaxBinPt;
146     max[dim] = fMaxBinPt;
147     dim++;
148   }
149
150   title[dim] = "A_{jet}";
151   nbins[dim] = 150;
152   min[dim] = 0;
153   max[dim] = 1.5;
154   dim++;
155
156   title[dim] = "NEF";
157   nbins[dim] = 102;
158   min[dim] = 0;
159   max[dim] = 1.02;
160   dim++;
161
162   title[dim] = "Z";
163   nbins[dim] = 102;
164   min[dim] = 0;
165   max[dim] = 1.02;
166   dim++;
167
168   title[dim] = "No. of constituents";
169   nbins[dim] = 250;
170   min[dim] = -0.5;
171   max[dim] = 249.5;
172   dim++;
173
174   title[dim] = "p_{T,particle}^{leading} (GeV/c)";
175   nbins[dim] = 120;
176   min[dim] = 0;
177   max[dim] = 120;
178   dim++;
179
180   fHistJetObservables = new THnSparseD("fHistJetObservables","fHistJetObservables",dim,nbins,min,max);
181   fOutput->Add(fHistJetObservables);
182   for (Int_t i = 0; i < dim; i++)
183     fHistJetObservables->GetAxis(i)->SetTitle(title[i]);
184 }
185
186 //________________________________________________________________________
187 void AliAnalysisTaskSAJF::AllocateTHX()
188 {
189   for (Int_t i = 0; i < 4; i++) {
190     TString histname;
191
192     histname = "fHistJetPtEtaPhi_";
193     histname += i;
194     fHistJetPtEtaPhi[i] = new TH3F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, 20, -1, 1, 41, 0, 2*TMath::Pi()*41/40);
195     fHistJetPtEtaPhi[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
196     fHistJetPtEtaPhi[i]->GetYaxis()->SetTitle("#eta");
197     fHistJetPtEtaPhi[i]->GetZaxis()->SetTitle("#phi_{jet} (rad)");
198     fOutput->Add(fHistJetPtEtaPhi[i]);
199       
200     histname = "fHistJetPtArea_";
201     histname += i;
202     fHistJetPtArea[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, 150, 0, 1.5);
203     fHistJetPtArea[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
204     fHistJetPtArea[i]->GetYaxis()->SetTitle("A_{jet}");
205     fHistJetPtArea[i]->GetZaxis()->SetTitle("counts");
206     fOutput->Add(fHistJetPtArea[i]);
207
208     histname = "fHistJetPtEP_";
209     histname += i;
210     fHistJetPtEP[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, 100, 0, TMath::Pi());
211     fHistJetPtEP[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
212     fHistJetPtEP[i]->GetYaxis()->SetTitle("#phi_{jet} - #psi_{RP}");
213     fHistJetPtEP[i]->GetZaxis()->SetTitle("counts");
214     fOutput->Add(fHistJetPtEP[i]);
215
216     histname = "fHistJetPtNEF_";
217     histname += i;
218     fHistJetPtNEF[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, 102, 0, 1.02);
219     fHistJetPtNEF[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
220     fHistJetPtNEF[i]->GetYaxis()->SetTitle("NEF");
221     fHistJetPtNEF[i]->GetZaxis()->SetTitle("counts");
222     fOutput->Add(fHistJetPtNEF[i]);
223
224     histname = "fHistJetPtZ_";
225     histname += i;
226     fHistJetPtZ[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, 102, 0, 1.02);
227     fHistJetPtZ[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
228     fHistJetPtZ[i]->GetYaxis()->SetTitle("z");
229     fHistJetPtZ[i]->GetZaxis()->SetTitle("counts");
230     fOutput->Add(fHistJetPtZ[i]);
231
232     histname = "fHistJetPtLeadingPartPt_";
233     histname += i;
234     fHistJetPtLeadingPartPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, 120, 0, 120);
235     fHistJetPtLeadingPartPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
236     fHistJetPtLeadingPartPt[i]->GetYaxis()->SetTitle("p_{T,particle}^{leading} (GeV/c)");
237     fHistJetPtLeadingPartPt[i]->GetZaxis()->SetTitle("counts");
238     fOutput->Add(fHistJetPtLeadingPartPt[i]);
239
240     if (!GetRhoName().IsNull()) {
241       histname = "fHistJetCorrPtEtaPhi_";
242       histname += i;
243       fHistJetCorrPtEtaPhi[i] = new TH3F(histname.Data(), histname.Data(), fNbins*2, -fMaxBinPt, fMaxBinPt, 20, -1, 1, 41, 0, 2*TMath::Pi()*201/200);
244       fHistJetCorrPtEtaPhi[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
245       fHistJetCorrPtEtaPhi[i]->GetYaxis()->SetTitle("#eta");
246       fHistJetCorrPtEtaPhi[i]->GetZaxis()->SetTitle("#phi_{jet} (rad)");
247       fOutput->Add(fHistJetCorrPtEtaPhi[i]);
248       
249       histname = "fHistJetCorrPtArea_";
250       histname += i;
251       fHistJetCorrPtArea[i] = new TH2F(histname.Data(), histname.Data(), fNbins*2, -fMaxBinPt, fMaxBinPt, 150, 0, 1.5);
252       fHistJetCorrPtArea[i]->GetXaxis()->SetTitle("p_{T}^{corr} (GeV/c)");
253       fHistJetCorrPtArea[i]->GetYaxis()->SetTitle("A_{jet}");
254       fHistJetCorrPtArea[i]->GetZaxis()->SetTitle("counts");
255       fOutput->Add(fHistJetCorrPtArea[i]);
256
257       histname = "fHistJetCorrPtEP_";
258       histname += i;
259       fHistJetCorrPtEP[i] = new TH2F(histname.Data(), histname.Data(), fNbins*2, -fMaxBinPt, fMaxBinPt, 100, 0, TMath::Pi());
260       fHistJetCorrPtEP[i]->GetXaxis()->SetTitle("p_{T}^{corr} (GeV/c)");
261       fHistJetCorrPtEP[i]->GetYaxis()->SetTitle("#phi_{jet} - #psi_{RP}");
262       fHistJetCorrPtEP[i]->GetZaxis()->SetTitle("counts");
263       fOutput->Add(fHistJetCorrPtEP[i]);
264
265       histname = "fHistJetCorrPtNEF_";
266       histname += i;
267       fHistJetCorrPtNEF[i] = new TH2F(histname.Data(), histname.Data(), fNbins*2, -fMaxBinPt, fMaxBinPt, 102, 0, 1.02);
268       fHistJetCorrPtNEF[i]->GetXaxis()->SetTitle("p_{T}^{corr} (GeV/c)");
269       fHistJetCorrPtNEF[i]->GetYaxis()->SetTitle("NEF");
270       fHistJetCorrPtNEF[i]->GetZaxis()->SetTitle("counts");
271       fOutput->Add(fHistJetCorrPtNEF[i]);
272
273       histname = "fHistJetCorrPtZ_";
274       histname += i;
275       fHistJetCorrPtZ[i] = new TH2F(histname.Data(), histname.Data(), fNbins*2, -fMaxBinPt, fMaxBinPt, 102, 0, 1.02);
276       fHistJetCorrPtZ[i]->GetXaxis()->SetTitle("p_{T}^{corr} (GeV/c)");
277       fHistJetCorrPtZ[i]->GetYaxis()->SetTitle("z");
278       fHistJetCorrPtZ[i]->GetZaxis()->SetTitle("counts");
279       fOutput->Add(fHistJetCorrPtZ[i]);
280
281       histname = "fHistJetCorrPtLeadingPartPt_";
282       histname += i;
283       fHistJetCorrPtLeadingPartPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins*2, -fMaxBinPt, fMaxBinPt, 120, 0, 120);
284       fHistJetCorrPtLeadingPartPt[i]->GetXaxis()->SetTitle("p_{T}^{corr} (GeV/c)");
285       fHistJetCorrPtLeadingPartPt[i]->GetYaxis()->SetTitle("p_{T,particle}^{leading} (GeV/c)");
286       fHistJetCorrPtLeadingPartPt[i]->GetZaxis()->SetTitle("counts");
287       fOutput->Add(fHistJetCorrPtLeadingPartPt[i]);
288
289       histname = "fHistJetPtCorrPt_";
290       histname += i;
291       fHistJetPtCorrPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, fNbins*2, -fMaxBinPt, fMaxBinPt);
292       fHistJetPtCorrPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
293       fHistJetPtCorrPt[i]->GetYaxis()->SetTitle("p_{T}^{corr} (GeV/c)");
294       fHistJetPtCorrPt[i]->GetZaxis()->SetTitle("counts");
295       fOutput->Add(fHistJetPtCorrPt[i]);
296
297       if (fIsEmbedded) {
298         histname = "fHistJetMCPtCorrPt_";
299         histname += i;
300         fHistJetMCPtCorrPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, fNbins*2, -fMaxBinPt, fMaxBinPt);
301         fHistJetMCPtCorrPt[i]->GetXaxis()->SetTitle("p_{T}^{MC} (GeV/c)");
302         fHistJetMCPtCorrPt[i]->GetYaxis()->SetTitle("p_{T}^{corr} (GeV/c)");
303         fHistJetMCPtCorrPt[i]->GetZaxis()->SetTitle("counts");
304         fOutput->Add(fHistJetMCPtCorrPt[i]);
305       }
306     }
307
308     if (fIsEmbedded) {
309       histname = "fHistJetPtMCPt_";
310       histname += i;
311       fHistJetPtMCPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt);
312       fHistJetPtMCPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
313       fHistJetPtMCPt[i]->GetYaxis()->SetTitle("p_{T}^{MC} (GeV/c)");
314       fHistJetPtMCPt[i]->GetZaxis()->SetTitle("counts");
315       fOutput->Add(fHistJetPtMCPt[i]);
316     }
317   }
318 }
319
320 //________________________________________________________________________
321 void AliAnalysisTaskSAJF::UserCreateOutputObjects()
322 {
323   // Create user output.
324
325   AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
326
327   if (fHistoType == 0)
328     AllocateTHX();
329   else
330     AllocateTHnSparse();
331
332   for (Int_t i = 0; i < 4; i++) {
333     TString histname;
334
335     if (fParticleCollArray.GetEntriesFast()>0) {
336       histname = "fHistTracksJetPt_";
337       histname += i;
338       fHistTracksJetPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins / 2, fMinBinPt, fMaxBinPt / 2, fNbins, fMinBinPt, fMaxBinPt);
339       fHistTracksJetPt[i]->GetXaxis()->SetTitle("p_{T,track} (GeV/c)");
340       fHistTracksJetPt[i]->GetYaxis()->SetTitle("p_{T,jet} (GeV/c)");
341       fHistTracksJetPt[i]->GetZaxis()->SetTitle("counts");
342       fOutput->Add(fHistTracksJetPt[i]);
343       
344       histname = "fHistTracksPtDist_";
345       histname += i;
346       fHistTracksPtDist[i] = new TH2F(histname.Data(), histname.Data(), fNbins / 2, fMinBinPt, fMaxBinPt / 2, 100, 0, 5);
347       fHistTracksPtDist[i]->GetXaxis()->SetTitle("p_{T,track} (GeV/c)");
348       fHistTracksPtDist[i]->GetYaxis()->SetTitle("d");
349       fHistTracksPtDist[i]->GetZaxis()->SetTitle("counts");
350       fOutput->Add(fHistTracksPtDist[i]);
351     }
352
353     if (fClusterCollArray.GetEntriesFast()>0) {
354       histname = "fHistClustersJetPt_";
355       histname += i;
356       fHistClustersJetPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins / 2, fMinBinPt, fMaxBinPt / 2, fNbins, fMinBinPt, fMaxBinPt);
357       fHistClustersJetPt[i]->GetXaxis()->SetTitle("p_{T,clus} (GeV/c)");
358       fHistClustersJetPt[i]->GetYaxis()->SetTitle("p_{T,jet} (GeV/c)");
359       fHistClustersJetPt[i]->GetZaxis()->SetTitle("counts");
360       fOutput->Add(fHistClustersJetPt[i]);
361
362       histname = "fHistClustersPtDist_";
363       histname += i;
364       fHistClustersPtDist[i] = new TH2F(histname.Data(), histname.Data(), fNbins / 2, fMinBinPt, fMaxBinPt / 2, 100, 0, 5);
365       fHistClustersPtDist[i]->GetXaxis()->SetTitle("p_{T,clus} (GeV/c)");
366       fHistClustersPtDist[i]->GetYaxis()->SetTitle("d");
367       fHistClustersPtDist[i]->GetZaxis()->SetTitle("counts");
368       fOutput->Add(fHistClustersPtDist[i]);
369     }
370   }
371
372   PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
373
374 }
375
376 //________________________________________________________________________
377 Bool_t AliAnalysisTaskSAJF::FillHistograms()
378 {
379   // Fill histograms.
380
381   if (!fJets) {
382     AliError(Form("%s - Jet array not provided, returning...", GetName()));
383     return kFALSE;
384   }
385
386   for (Int_t ij = 0; ij < fJets->GetEntriesFast(); ij++) {
387
388     AliEmcalJet* jet = static_cast<AliEmcalJet*>(fJets->At(ij));
389
390     if (!jet) {
391       AliError(Form("Could not receive jet %d", ij));
392       continue;
393     }
394
395     if (!AcceptJet(jet))
396       continue;
397
398     Float_t ptLeading = GetLeadingHadronPt(jet);
399     Float_t corrPt = jet->Pt() - fRhoVal * jet->Area();
400
401     // Fill THnSparse
402     Double_t ep = jet->Phi() - fEPV0;
403     while (ep < 0) ep += TMath::Pi();
404     while (ep >= TMath::Pi()) ep -= TMath::Pi();
405
406     FillJetHisto(fCent, ep, jet->Eta(), jet->Phi(), jet->Pt(), jet->MCPt(), corrPt, jet->Area(), 
407                  jet->NEF(), ptLeading/jet->Pt(), jet->GetNumberOfConstituents(), ptLeading);
408
409     if (fTracks) {
410       for (Int_t it = 0; it < jet->GetNumberOfTracks(); it++) {
411         AliVParticle *track = jet->TrackAt(it, fTracks);
412         if (track) {
413           fHistTracksJetPt[fCentBin]->Fill(track->Pt(), jet->Pt());
414           Double_t dist = TMath::Sqrt((track->Eta() - jet->Eta()) * (track->Eta() - jet->Eta()) + (track->Phi() - jet->Phi()) * (track->Phi() - jet->Phi()));
415           fHistTracksPtDist[fCentBin]->Fill(track->Pt(), dist);
416         }
417       }
418     }
419
420     if (fCaloClusters) {
421       for (Int_t ic = 0; ic < jet->GetNumberOfClusters(); ic++) {
422         AliVCluster *cluster = jet->ClusterAt(ic, fCaloClusters);
423         
424         if (cluster) {
425           TLorentzVector nPart;
426           cluster->GetMomentum(nPart, fVertex);
427
428           fHistClustersJetPt[fCentBin]->Fill(nPart.Pt(), jet->Pt());
429           Double_t dist = TMath::Sqrt((nPart.Eta() - jet->Eta()) * (nPart.Eta() - jet->Eta()) + (nPart.Phi() - jet->Phi()) * (nPart.Phi() - jet->Phi()));
430           fHistClustersPtDist[fCentBin]->Fill(nPart.Pt(), dist);
431         }
432       }
433     }
434   } //jet loop 
435
436   return kTRUE;
437 }
438
439 //________________________________________________________________________
440 void AliAnalysisTaskSAJF::FillJetHisto(Double_t cent, Double_t ep, Double_t eta, Double_t phi, Double_t pt, Double_t MCpt, Double_t corrpt, Double_t area, 
441                                        Double_t NEF, Double_t z, Int_t n, Double_t leadingpt)
442 {
443   if (fHistoType == 0) {
444     fHistJetPtEtaPhi[fCentBin]->Fill(pt,eta,phi);
445     fHistJetPtArea[fCentBin]->Fill(pt,area);
446     fHistJetPtEP[fCentBin]->Fill(pt,ep);
447     fHistJetPtNEF[fCentBin]->Fill(pt,NEF);
448     fHistJetPtZ[fCentBin]->Fill(pt,z);
449     fHistJetPtLeadingPartPt[fCentBin]->Fill(pt,leadingpt);
450     if (fHistJetCorrPtEtaPhi[fCentBin]) {
451       fHistJetCorrPtEtaPhi[fCentBin]->Fill(corrpt,eta,phi);
452       fHistJetCorrPtArea[fCentBin]->Fill(corrpt,area);
453       fHistJetCorrPtEP[fCentBin]->Fill(corrpt,ep);
454       fHistJetCorrPtNEF[fCentBin]->Fill(corrpt,NEF);
455       fHistJetCorrPtZ[fCentBin]->Fill(corrpt,z);
456       fHistJetCorrPtLeadingPartPt[fCentBin]->Fill(corrpt,leadingpt);
457       fHistJetPtCorrPt[fCentBin]->Fill(pt,corrpt);
458       if (fIsEmbedded)
459         fHistJetMCPtCorrPt[fCentBin]->Fill(MCpt,corrpt);
460     }
461     if (fIsEmbedded)
462       fHistJetPtMCPt[fCentBin]->Fill(pt,MCpt);
463   }
464   else {
465  
466     Double_t contents[20]={0};
467
468     for (Int_t i = 0; i < fHistJetObservables->GetNdimensions(); i++) {
469       TString title(fHistJetObservables->GetAxis(i)->GetTitle());
470       if (title=="Centrality (%)")
471         contents[i] = cent;
472       else if (title=="#phi_{jet} - #psi_{RP}")
473         contents[i] = ep;
474       else if (title=="#eta")
475         contents[i] = eta;
476       else if (title=="#phi_{jet} (rad)")
477         contents[i] = phi;
478       else if (title=="p_{T} (GeV/c)")
479         contents[i] = pt;
480       else if (title=="p_{T}^{MC} (GeV/c)")
481         contents[i] = MCpt;
482       else if (title=="p_{T}^{corr} (GeV/c)")
483         contents[i] = corrpt;
484       else if (title=="A_{jet}")
485         contents[i] = area;
486       else if (title=="NEF")
487         contents[i] = NEF;
488       else if (title=="Z")
489         contents[i] = z;
490       else if (title=="No. of constituents")
491         contents[i] = n;
492       else if (title=="p_{T,particle}^{leading} (GeV/c)")
493         contents[i] = leadingpt;
494       else 
495         AliWarning(Form("Unable to fill dimension %s!",title.Data()));
496     }
497
498     fHistJetObservables->Fill(contents);
499   }
500 }