]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.cxx
Transition to new base class (Salvatore/Marta).
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskSAJF.cxx
CommitLineData
00514d01 1// $Id$
91f4b7c5 2//
297edd60 3// Jet analysis task.
91f4b7c5 4//
297edd60 5// Author: S.Aiola
25283b37 6
25283b37 7#include <TClonesArray.h>
25283b37 8#include <TH2F.h>
85d48773 9#include <TH3F.h>
43032ce2 10#include <THnSparse.h>
25283b37 11#include <TList.h>
12#include <TLorentzVector.h>
25283b37 13
f0a0fd33 14#include "AliVCluster.h"
df43b607 15#include "AliVParticle.h"
25283b37 16#include "AliEmcalJet.h"
e44e8726 17#include "AliRhoParameter.h"
55264f20 18#include "AliLog.h"
25283b37 19
00514d01 20#include "AliAnalysisTaskSAJF.h"
25283b37 21
00514d01 22ClassImp(AliAnalysisTaskSAJF)
25283b37 23
24//________________________________________________________________________
00514d01 25AliAnalysisTaskSAJF::AliAnalysisTaskSAJF() :
7cd832c7 26 AliAnalysisTaskEmcalJetDev("AliAnalysisTaskSAJF", kTRUE),
85d48773 27 fHistoType(1),
43032ce2 28 fHistJetObservables(0)
226f511d 29
25283b37 30{
31 // Default constructor.
f0a0fd33 32
33 for (Int_t i = 0; i < 4; i++) {
a487deae 34 fHistTracksJetPt[i] = 0;
35 fHistClustersJetPt[i] = 0;
7030f36f 36 fHistTracksPtDist[i] = 0;
37 fHistClustersPtDist[i] = 0;
85d48773 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;
f0a0fd33 54 }
a487deae 55
56 SetMakeGeneralHistograms(kTRUE);
25283b37 57}
58
59//________________________________________________________________________
00514d01 60AliAnalysisTaskSAJF::AliAnalysisTaskSAJF(const char *name) :
7cd832c7 61 AliAnalysisTaskEmcalJetDev(name, kTRUE),
85d48773 62 fHistoType(1),
43032ce2 63 fHistJetObservables(0)
25283b37 64{
65 // Standard constructor.
66
f0a0fd33 67 for (Int_t i = 0; i < 4; i++) {
a487deae 68 fHistTracksJetPt[i] = 0;
69 fHistClustersJetPt[i] = 0;
7030f36f 70 fHistTracksPtDist[i] = 0;
71 fHistClustersPtDist[i] = 0;
85d48773 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;
f0a0fd33 88 }
a487deae 89
90 SetMakeGeneralHistograms(kTRUE);
25283b37 91}
92
25283b37 93//________________________________________________________________________
85d48773 94void AliAnalysisTaskSAJF::AllocateTHnSparse()
25283b37 95{
85d48773 96 TString title[20]= {""};
43032ce2 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 (%)";
85d48773 104 nbins[dim] = 22;
105 min[dim] = -5;
106 max[dim] = 105;
43032ce2 107 dim++;
108
3fe08cdb 109 title[dim] = "#phi_{jet} - #psi_{RP}";
85d48773 110 nbins[dim] = 100;
111 min[dim] = 0;
112 max[dim] = TMath::Pi();
43032ce2 113 dim++;
114 }
624bef5b 115
3fe08cdb 116 title[dim] = "#eta";
85d48773 117 nbins[dim] = 100;
3fe08cdb 118 min[dim] = -1;
43032ce2 119 max[dim] = 1;
120 dim++;
121
43032ce2 122 title[dim] = "#phi_{jet} (rad)";
85d48773 123 nbins[dim] = 201;
43032ce2 124 min[dim] = 0;
3fe08cdb 125 max[dim] = 2*TMath::Pi()*nbins[dim]/(nbins[dim]-1);
43032ce2 126 dim++;
127
128 title[dim] = "p_{T} (GeV/c)";
129 nbins[dim] = fNbins;
85d48773 130 min[dim] = fMinBinPt;
131 max[dim] = fMaxBinPt;
43032ce2 132 dim++;
133
43032ce2 134 if (fIsEmbedded) {
135 title[dim] = "p_{T}^{MC} (GeV/c)";
136 nbins[dim] = fNbins;
85d48773 137 min[dim] = fMinBinPt;
138 max[dim] = fMaxBinPt;
43032ce2 139 dim++;
140 }
59f16b27 141
7cd832c7 142 if (!GetRhoName().IsNull()) {
43032ce2 143 title[dim] = "p_{T}^{corr} (GeV/c)";
144 nbins[dim] = fNbins*2;
85d48773 145 min[dim] = -fMaxBinPt;
146 max[dim] = fMaxBinPt;
43032ce2 147 dim++;
148 }
05077f28 149
3fe08cdb 150 title[dim] = "A_{jet}";
85d48773 151 nbins[dim] = 150;
3fe08cdb 152 min[dim] = 0;
85d48773 153 max[dim] = 1.5;
43032ce2 154 dim++;
155
156 title[dim] = "NEF";
85d48773 157 nbins[dim] = 102;
43032ce2 158 min[dim] = 0;
85d48773 159 max[dim] = 1.02;
43032ce2 160 dim++;
161
162 title[dim] = "Z";
85d48773 163 nbins[dim] = 102;
43032ce2 164 min[dim] = 0;
85d48773 165 max[dim] = 1.02;
3fe08cdb 166 dim++;
167
168 title[dim] = "No. of constituents";
169 nbins[dim] = 250;
170 min[dim] = -0.5;
171 max[dim] = 249.5;
43032ce2 172 dim++;
173
174 title[dim] = "p_{T,particle}^{leading} (GeV/c)";
85d48773 175 nbins[dim] = 120;
43032ce2 176 min[dim] = 0;
85d48773 177 max[dim] = 120;
43032ce2 178 dim++;
179
180 fHistJetObservables = new THnSparseD("fHistJetObservables","fHistJetObservables",dim,nbins,min,max);
3fe08cdb 181 fOutput->Add(fHistJetObservables);
43032ce2 182 for (Int_t i = 0; i < dim; i++)
183 fHistJetObservables->GetAxis(i)->SetTitle(title[i]);
85d48773 184}
185
186//________________________________________________________________________
187void 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
7cd832c7 240 if (!GetRhoName().IsNull()) {
85d48773 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//________________________________________________________________________
321void AliAnalysisTaskSAJF::UserCreateOutputObjects()
322{
323 // Create user output.
324
7cd832c7 325 AliAnalysisTaskEmcalJetDev::UserCreateOutputObjects();
85d48773 326
327 if (fHistoType == 0)
328 AllocateTHX();
329 else
330 AllocateTHnSparse();
43032ce2 331
332 for (Int_t i = 0; i < 4; i++) {
333 TString histname;
334
7cd832c7 335 if (fParticleCollArray.GetEntriesFast()>0) {
43032ce2 336 histname = "fHistTracksJetPt_";
05077f28 337 histname += i;
43032ce2 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_";
05077f28 345 histname += i;
43032ce2 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]);
05077f28 351 }
352
7cd832c7 353 if (fClusterCollArray.GetEntriesFast()>0) {
a487deae 354 histname = "fHistClustersJetPt_";
e44e8726 355 histname += i;
a487deae 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]);
7030f36f 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]);
e44e8726 369 }
e82e282c 370 }
371
25283b37 372 PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
25283b37 373
2bee31e9 374}
375
55264f20 376//________________________________________________________________________
6fd5039f 377Bool_t AliAnalysisTaskSAJF::FillHistograms()
25283b37 378{
16d143bd 379 // Fill histograms.
380
a487deae 381 if (!fJets) {
382 AliError(Form("%s - Jet array not provided, returning...", GetName()));
383 return kFALSE;
384 }
385
3fe08cdb 386 for (Int_t ij = 0; ij < fJets->GetEntriesFast(); ij++) {
6fd5039f 387
3fe08cdb 388 AliEmcalJet* jet = static_cast<AliEmcalJet*>(fJets->At(ij));
6fd5039f 389
390 if (!jet) {
391 AliError(Form("Could not receive jet %d", ij));
392 continue;
43032ce2 393 }
6fd5039f 394
3fe08cdb 395 if (!AcceptJet(jet))
396 continue;
226f511d 397
83888eef 398 Float_t ptLeading = GetLeadingHadronPt(jet);
43032ce2 399 Float_t corrPt = jet->Pt() - fRhoVal * jet->Area();
e44e8726 400
43032ce2 401 // Fill THnSparse
85d48773 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(),
3fe08cdb 407 jet->NEF(), ptLeading/jet->Pt(), jet->GetNumberOfConstituents(), ptLeading);
a825589f 408
6e8d91c9 409 if (fTracks) {
410 for (Int_t it = 0; it < jet->GetNumberOfTracks(); it++) {
411 AliVParticle *track = jet->TrackAt(it, fTracks);
a825589f 412 if (track) {
a487deae 413 fHistTracksJetPt[fCentBin]->Fill(track->Pt(), jet->Pt());
7030f36f 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);
a825589f 416 }
6e8d91c9 417 }
35789a2d 418 }
a55e4f1d 419
6e8d91c9 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);
43032ce2 427
a487deae 428 fHistClustersJetPt[fCentBin]->Fill(nPart.Pt(), jet->Pt());
7030f36f 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);
6e8d91c9 431 }
55264f20 432 }
f0a0fd33 433 }
25283b37 434 } //jet loop
3fe08cdb 435
436 return kTRUE;
437}
438
439//________________________________________________________________________
440void 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{
85d48773 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);
7cd832c7 450 if (fHistJetCorrPtEtaPhi[fCentBin]) {
85d48773 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);
3fe08cdb 463 }
85d48773 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 }
3fe08cdb 497
85d48773 498 fHistJetObservables->Fill(contents);
499 }
55264f20 500}