]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx
update from hanseul
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskSAQA.cxx
CommitLineData
6e8d91c9 1// $Id$
c3ba2d3d 2//
297edd60 3// General QA task.
c3ba2d3d 4//
297edd60 5// Author: S.Aiola
c3ba2d3d 6
7#include <TChain.h>
8#include <TClonesArray.h>
9#include <TH1F.h>
10#include <TH2F.h>
3000c095 11#include <TH3F.h>
c3ba2d3d 12#include <TList.h>
13#include <TLorentzVector.h>
14
15#include "AliAnalysisManager.h"
16#include "AliCentrality.h"
17#include "AliVCluster.h"
18#include "AliVParticle.h"
19#include "AliVTrack.h"
20#include "AliEmcalJet.h"
21#include "AliVEventHandler.h"
079b4732 22#include "AliAODEvent.h"
23#include "AliExternalTrackParam.h"
24#include "AliTrackerBase.h"
c3ba2d3d 25#include "AliLog.h"
26
27#include "AliAnalysisTaskSAQA.h"
28
29ClassImp(AliAnalysisTaskSAQA)
30
31//________________________________________________________________________
32AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() :
99cfd012 33 AliAnalysisTaskEmcalJet("AliAnalysisTaskSAQA", kTRUE),
c3ba2d3d 34 fCellEnergyCut(0.1),
7c1d624c 35 fNclusters(0),
36 fNtracks(0),
37 fNjets(0),
c3ba2d3d 38 fHistTracksCent(0),
39 fHistClusCent(0),
7c1d624c 40 fHistJetsCent(0),
090a0c3e 41 fHistClusTracks(0),
7c1d624c 42 fHistJetsParts(0),
be7b6e63 43 fHistCellsCent(0),
44 fHistCellsTracks(0),
6fd5039f 45 fHistTrEmcPhiEta(0),
079b4732 46 fHistTrPhiEtaNonProp(0),
3e951e32 47 fHistDeltaEtaPt(0),
48 fHistDeltaPhiPt(0),
7cf4626b 49 fHistNCellsEnergy(0),
090a0c3e 50 fHistClusTimeEnergy(0),
f483218e 51 fHistCellsAbsIdEnergy(0),
c3ba2d3d 52 fHistChVSneCells(0),
53 fHistChVSneClus(0),
54 fHistChVSneCorrCells(0)
55{
56 // Default constructor.
57
58 for (Int_t i = 0; i < 5; i++) {
59 fHistTrackPhi[i] = 0;
60 fHistTrackEta[i] = 0;
61 }
6fd5039f 62
63 for (Int_t i = 0; i < 4; i++) {
a487deae 64 fHistTrPhiEtaPt[i] = 0;
65 fHistClusPhiEtaEnergy[i] = 0;
66 fHistJetsPhiEtaPt[i] = 0;
98750b70 67 fHistJetsPtArea[i] = 0;
6fd5039f 68 }
a487deae 69
70 SetMakeGeneralHistograms(kTRUE);
c3ba2d3d 71}
72
73//________________________________________________________________________
74AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) :
99cfd012 75 AliAnalysisTaskEmcalJet(name, kTRUE),
c3ba2d3d 76 fCellEnergyCut(0.1),
7c1d624c 77 fNclusters(0),
78 fNtracks(0),
79 fNjets(0),
c3ba2d3d 80 fHistTracksCent(0),
81 fHistClusCent(0),
7c1d624c 82 fHistJetsCent(0),
090a0c3e 83 fHistClusTracks(0),
7c1d624c 84 fHistJetsParts(0),
be7b6e63 85 fHistCellsCent(0),
86 fHistCellsTracks(0),
6fd5039f 87 fHistTrEmcPhiEta(0),
079b4732 88 fHistTrPhiEtaNonProp(0),
3e951e32 89 fHistDeltaEtaPt(0),
90 fHistDeltaPhiPt(0),
7cf4626b 91 fHistNCellsEnergy(0),
090a0c3e 92 fHistClusTimeEnergy(0),
f483218e 93 fHistCellsAbsIdEnergy(0),
c3ba2d3d 94 fHistChVSneCells(0),
95 fHistChVSneClus(0),
96 fHistChVSneCorrCells(0)
97{
98 // Standard constructor.
99
100 for (Int_t i = 0; i < 5; i++) {
101 fHistTrackPhi[i] = 0;
102 fHistTrackEta[i] = 0;
103 }
6fd5039f 104
105 for (Int_t i = 0; i < 4; i++) {
a487deae 106 fHistTrPhiEtaPt[i] = 0;
107 fHistClusPhiEtaEnergy[i] = 0;
108 fHistJetsPhiEtaPt[i] = 0;
98750b70 109 fHistJetsPtArea[i] = 0;
6fd5039f 110 }
a487deae 111
112 SetMakeGeneralHistograms(kTRUE);
c3ba2d3d 113}
114
115//________________________________________________________________________
116AliAnalysisTaskSAQA::~AliAnalysisTaskSAQA()
117{
118 // Destructor
119}
120
121//________________________________________________________________________
122void AliAnalysisTaskSAQA::UserCreateOutputObjects()
123{
124 // Create histograms
125
a487deae 126 AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
c3ba2d3d 127
a487deae 128 if (!fTracksName.IsNull()) {
129 fHistTracksCent = new TH2F("fHistTracksCent","Tracks vs. centrality", 100, 0, 100, fNbins, 0, 4000);
130 fHistTracksCent->GetXaxis()->SetTitle("Centrality (%)");
131 fHistTracksCent->GetYaxis()->SetTitle("No. of tracks");
132 fOutput->Add(fHistTracksCent);
c3ba2d3d 133
a487deae 134 TString histname;
be7b6e63 135
a487deae 136 for (Int_t i = 0; i < 4; i++) {
137 histname = "fHistTrPhiEtaPt_";
138 histname += i;
139 fHistTrPhiEtaPt[i] = new TH3F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01, fNbins, fMinBinPt, fMaxBinPt);
140 fHistTrPhiEtaPt[i] ->GetXaxis()->SetTitle("#eta");
141 fHistTrPhiEtaPt[i] ->GetYaxis()->SetTitle("#phi");
142 fHistTrPhiEtaPt[i] ->GetZaxis()->SetTitle("p_{T} (GeV/c)");
143 fOutput->Add(fHistTrPhiEtaPt[i]);
144 }
c3ba2d3d 145
a487deae 146 fHistTrEmcPhiEta = new TH2F("fHistTrEmcPhiEta","Phi-Eta emcal distribution of tracks", 100, -1, 1, 201, 0, TMath::Pi() * 2.01);
147 fHistTrEmcPhiEta->GetXaxis()->SetTitle("#eta");
148 fHistTrEmcPhiEta->GetYaxis()->SetTitle("#phi");
149 fOutput->Add(fHistTrEmcPhiEta);
150
151 fHistTrPhiEtaNonProp = new TH2F("fHistTrPhiEtaNonProp","fHistTrPhiEtaNonProp", 100, -1, 1, 201, 0, TMath::Pi() * 2.01);
152 fHistTrPhiEtaNonProp->GetXaxis()->SetTitle("#eta");
153 fHistTrPhiEtaNonProp->GetYaxis()->SetTitle("#phi");
154 fOutput->Add(fHistTrPhiEtaNonProp);
155
156 fHistDeltaEtaPt = new TH2F("fHistDeltaEtaPt","fHistDeltaEtaPt", fNbins, fMinBinPt, fMaxBinPt, 80, -0.5, 0.5);
157 fHistDeltaEtaPt->GetXaxis()->SetTitle("p_{T} [GeV/c]");
158 fHistDeltaEtaPt->GetYaxis()->SetTitle("#delta#eta");
159 fOutput->Add(fHistDeltaEtaPt);
160
161 fHistDeltaPhiPt = new TH2F("fHistDeltaPhiPt","fHistDeltaPhiPt", fNbins, fMinBinPt, fMaxBinPt, 256, -1.6, 4.8);
162 fHistDeltaPhiPt->GetXaxis()->SetTitle("p_{T} [GeV/c]");
163 fHistDeltaPhiPt->GetYaxis()->SetTitle("#delta#phi");
164 fOutput->Add(fHistDeltaPhiPt);
165
166 for (Int_t i = 0; i < 5; i++) {
167 TString histnamephi("fHistTrackPhi_");
168 histnamephi += i;
169 fHistTrackPhi[i] = new TH1F(histnamephi.Data(),histnamephi.Data(), 201, 0, TMath::Pi() * 2.01);
170 fHistTrackPhi[i]->GetXaxis()->SetTitle("Phi");
171 fOutput->Add(fHistTrackPhi[i]);
172
173 TString histnameeta("fHistTrackEta_");
174 histnameeta += i;
175 fHistTrackEta[i] = new TH1F(histnameeta.Data(),histnameeta.Data(), 100, -1, 1);
176 fHistTrackEta[i]->GetXaxis()->SetTitle("Eta");
177 fOutput->Add(fHistTrackEta[i]);
178 }
7c1d624c 179
a487deae 180 fHistTrackPhi[0]->SetLineColor(kRed);
181 fHistTrackEta[0]->SetLineColor(kRed);
182 fHistTrackPhi[1]->SetLineColor(kBlue);
183 fHistTrackEta[1]->SetLineColor(kBlue);
184 fHistTrackPhi[2]->SetLineColor(kGreen);
185 fHistTrackEta[2]->SetLineColor(kGreen);
186 fHistTrackPhi[3]->SetLineColor(kOrange);
187 fHistTrackEta[3]->SetLineColor(kOrange);
188 fHistTrackPhi[4]->SetLineColor(kBlack);
189 fHistTrackEta[4]->SetLineColor(kBlack);
190 }
7c1d624c 191
a487deae 192 if (!fCaloName.IsNull()) {
a5621834 193 fHistClusCent = new TH2F("fHistClusCent","Clusters vs. centrality", 100, 0, 100, fNbins, 0, 2000);
6fd5039f 194 fHistClusCent->GetXaxis()->SetTitle("Centrality (%)");
195 fHistClusCent->GetYaxis()->SetTitle("No. of clusters");
196 fOutput->Add(fHistClusCent);
090a0c3e 197
198 fHistClusTracks = new TH2F("fHistClusTracks","Clusters vs. tracks", fNbins, 0, 4000, fNbins, 0, 2000);
199 fHistClusTracks->GetXaxis()->SetTitle("No. of tracks");
200 fHistClusTracks->GetYaxis()->SetTitle("No. of clusters");
201 fOutput->Add(fHistClusTracks);
202
be7b6e63 203 fHistCellsCent = new TH2F("fHistCellsCent","Cells vs. centrality", 100, 0, 100, fNbins, 0, 6000);
204 fHistCellsCent->GetXaxis()->SetTitle("Centrality (%)");
205 fHistCellsCent->GetYaxis()->SetTitle("No. of EMCal cells");
206 fOutput->Add(fHistCellsCent);
207
208 fHistCellsTracks = new TH2F("fHistCellsTracks","Cells vs. tracks", fNbins, 0, 4000, fNbins, 0, 6000);
209 fHistCellsTracks->GetXaxis()->SetTitle("No. of tracks");
210 fHistCellsTracks->GetYaxis()->SetTitle("No. of EMCal cells");
211 fOutput->Add(fHistCellsTracks);
212
a487deae 213 TString histname;
214
215 for (Int_t i = 0; i < 4; i++) {
216 histname = "fHistClusPhiEtaEnergy_";
217 histname += i;
218 fHistClusPhiEtaEnergy[i] = new TH3F(histname, histname, 100, -1.2, 1.2, 201, 0, TMath::Pi() * 2.01, fNbins, fMinBinPt, fMaxBinPt);
219 fHistClusPhiEtaEnergy[i]->GetXaxis()->SetTitle("#eta");
220 fHistClusPhiEtaEnergy[i]->GetYaxis()->SetTitle("#phi");
221 fHistClusPhiEtaEnergy[i]->GetZaxis()->SetTitle("Energy (GeV)");
222 fOutput->Add(fHistClusPhiEtaEnergy[i]);
223 }
224
781da0a3 225 fHistClusTimeEnergy = new TH2F("fHistClusTimeEnergy","Time vs. energy of clusters", fNbins, fMinBinPt, fMaxBinPt, fNbins, -1e-6, 1e-6);
090a0c3e 226 fHistClusTimeEnergy->GetXaxis()->SetTitle("Energy (GeV)");
227 fHistClusTimeEnergy->GetYaxis()->SetTitle("Time");
228 fOutput->Add(fHistClusTimeEnergy);
229
7cf4626b 230 fHistNCellsEnergy = new TH2F("fHistNCellsEnergy","Number of cells vs. energy of clusters", fNbins, fMinBinPt, fMaxBinPt, 30, 0, 30);
a487deae 231 fHistNCellsEnergy->GetXaxis()->SetTitle("Energy (GeV)");
7cf4626b 232 fHistNCellsEnergy->GetYaxis()->SetTitle("N_{cells}");
a487deae 233 fOutput->Add(fHistNCellsEnergy);
234
f483218e 235 fHistCellsAbsIdEnergy = new TH2F("fHistCellsAbsIdEnergy","fHistCellsAbsIdEnergy", 11600,0,11599,(Int_t)(fNbins / 2), fMinBinPt, fMaxBinPt / 2);
236 fHistCellsAbsIdEnergy->GetXaxis()->SetTitle("cell abs. Id");
237 fHistCellsAbsIdEnergy->GetYaxis()->SetTitle("Energy (GeV)");
238 fHistCellsAbsIdEnergy->GetZaxis()->SetTitle("counts");
239 fOutput->Add(fHistCellsAbsIdEnergy);
6fd5039f 240
98750b70 241 fHistChVSneCells = new TH2F("fHistChVSneCells","Charged energy vs. neutral (cells) energy",
be7b6e63 242 (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5, (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5);
a487deae 243 fHistChVSneCells->GetXaxis()->SetTitle("Energy (GeV)");
244 fHistChVSneCells->GetYaxis()->SetTitle("Momentum (GeV/c)");
6fd5039f 245 fOutput->Add(fHistChVSneCells);
246
98750b70 247 fHistChVSneClus = new TH2F("fHistChVSneClus","Charged energy vs. neutral (clusters) energy",
be7b6e63 248 (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5, (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5);
a487deae 249 fHistChVSneClus->GetXaxis()->SetTitle("Energy (GeV)");
250 fHistChVSneClus->GetYaxis()->SetTitle("Momentum (GeV/c)");
6fd5039f 251 fOutput->Add(fHistChVSneClus);
252
98750b70 253 fHistChVSneCorrCells = new TH2F("fHistChVSneCorrCells","Charged energy vs. neutral (corrected cells) energy",
be7b6e63 254 (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5, (Int_t)(fNbins * 2.5), fMinBinPt , fMaxBinPt * 2.5);
a487deae 255 fHistChVSneCorrCells->GetXaxis()->SetTitle("Energy (GeV)");
256 fHistChVSneCorrCells->GetYaxis()->SetTitle("Momentum (GeV/c)");
6fd5039f 257 fOutput->Add(fHistChVSneCorrCells);
c3ba2d3d 258 }
a487deae 259
e44e8726 260 if (!fJetsName.IsNull()) {
a487deae 261 fHistJetsCent = new TH2F("fHistJetsCent","Jets vs. centrality", 100, 0, 100, 150, -0.5, 149.5);
262 fHistJetsCent->GetXaxis()->SetTitle("Centrality (%)");
263 fHistJetsCent->GetYaxis()->SetTitle("No. of jets");
264 fOutput->Add(fHistJetsCent);
265
266 fHistJetsParts = new TH2F("fHistJetsParts","Jets vs. centrality", fNbins, 0, 6000, 150, -0.5, 149.5);
267 fHistJetsParts->GetXaxis()->SetTitle("No. of particles");
268 fHistJetsParts->GetYaxis()->SetTitle("No. of jets");
269 fOutput->Add(fHistJetsParts);
6fd5039f 270
e44e8726 271 TString histname;
272
273 for (Int_t i = 0; i < 4; i++) {
a487deae 274 histname = "fHistJetsPhiEtaPt_";
e44e8726 275 histname += i;
a487deae 276 fHistJetsPhiEtaPt[i] = new TH3F(histname.Data(), histname.Data(), 100, -1.2, 1.2, 201, 0, TMath::Pi() * 2.01, (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5);
277 fHistJetsPhiEtaPt[i]->GetXaxis()->SetTitle("#eta");
278 fHistJetsPhiEtaPt[i]->GetYaxis()->SetTitle("#phi");
279 fHistJetsPhiEtaPt[i]->GetZaxis()->SetTitle("p_{T} (GeV/c)");
280 fOutput->Add(fHistJetsPhiEtaPt[i]);
e44e8726 281
282 histname = "fHistJetsPtArea_";
283 histname += i;
a487deae 284 fHistJetsPtArea[i] = new TH2F(histname.Data(), histname.Data(), (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5, 30, 0, fJetRadius * fJetRadius * TMath::Pi() * 3);
285 fHistJetsPtArea[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
e44e8726 286 fHistJetsPtArea[i]->GetYaxis()->SetTitle("area");
287 fOutput->Add(fHistJetsPtArea[i]);
288 }
6fd5039f 289 }
290
c3ba2d3d 291 PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
292}
293
294//________________________________________________________________________
6fd5039f 295Bool_t AliAnalysisTaskSAQA::RetrieveEventObjects()
c3ba2d3d 296{
c3604199 297 // Retrieve event objects.
298
299 if (!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
6fd5039f 300 return kFALSE;
c3ba2d3d 301
7c1d624c 302 fNclusters = 0;
303 fNtracks = 0;
304 fNjets = 0;
305
6fd5039f 306 return kTRUE;
c3ba2d3d 307}
308
7c1d624c 309
c3ba2d3d 310//________________________________________________________________________
6fd5039f 311Bool_t AliAnalysisTaskSAQA::FillHistograms()
c3ba2d3d 312{
c3604199 313 // Fill histograms.
314
a487deae 315 Float_t clusSum = 0;
316 Float_t trackSum = 0;
090a0c3e 317
a487deae 318 if (fTracks) {
319 trackSum = DoTrackLoop();
c3ba2d3d 320
a487deae 321 fHistTracksCent->Fill(fCent, fNtracks);
322 }
be7b6e63 323
a487deae 324 if (fCaloClusters) {
325 clusSum = DoClusterLoop();
c3ba2d3d 326
7c1d624c 327 fHistClusCent->Fill(fCent, fNclusters);
328 fHistClusTracks->Fill(fNtracks, fNclusters);
329
6fd5039f 330 Float_t cellSum = 0, cellCutSum = 0;
331
be7b6e63 332 Int_t ncells = DoCellLoop(cellSum, cellCutSum);
333
334 if (fTracks)
a487deae 335 fHistCellsTracks->Fill(fNtracks, ncells);
be7b6e63 336
337 fHistCellsCent->Fill(fCent, ncells);
6fd5039f 338
339 fHistChVSneCells->Fill(cellSum, trackSum);
340 fHistChVSneClus->Fill(clusSum, trackSum);
341 fHistChVSneCorrCells->Fill(cellCutSum, trackSum);
a487deae 342 }
c3ba2d3d 343
a487deae 344 if (fJets) {
345 DoJetLoop();
6fd5039f 346
a487deae 347 fHistJetsCent->Fill(fCent, fNjets);
348 fHistJetsParts->Fill(fNtracks + fNclusters, fNjets);
6fd5039f 349 }
c3ba2d3d 350
6fd5039f 351 return kTRUE;
c3ba2d3d 352}
353
354//________________________________________________________________________
be7b6e63 355Int_t AliAnalysisTaskSAQA::DoCellLoop(Float_t &sum, Float_t &sum_cut)
c3ba2d3d 356{
c3604199 357 // Do cell loop.
358
c3ba2d3d 359 AliVCaloCells *cells = InputEvent()->GetEMCALCells();
360
361 if (!cells)
be7b6e63 362 return 0;
c3ba2d3d 363
c3604199 364 const Int_t ncells = cells->GetNumberOfCells();
c3ba2d3d 365
366 for (Int_t pos = 0; pos < ncells; pos++) {
f483218e 367 Float_t amp = cells->GetAmplitude(pos);
368 Int_t absId = cells->GetCellNumber(pos);
369 fHistCellsAbsIdEnergy->Fill(absId,amp);
c3ba2d3d 370 sum += amp;
c3ba2d3d 371 if (amp < fCellEnergyCut)
372 continue;
c3ba2d3d 373 sum_cut += amp;
c3ba2d3d 374 }
be7b6e63 375
376 return ncells;
c3ba2d3d 377}
378
379//________________________________________________________________________
380Float_t AliAnalysisTaskSAQA::DoClusterLoop()
381{
c3604199 382 // Do cluster loop.
383
c3ba2d3d 384 if (!fCaloClusters)
385 return 0;
386
387 Float_t sum = 0;
388
389 // Cluster loop
390 Int_t nclusters = fCaloClusters->GetEntriesFast();
391
392 for (Int_t iClusters = 0; iClusters < nclusters; iClusters++) {
e44e8726 393 AliVCluster* cluster = static_cast<AliVCluster*>(fCaloClusters->At(iClusters));
c3ba2d3d 394 if (!cluster) {
395 AliError(Form("Could not receive cluster %d", iClusters));
396 continue;
397 }
c3ba2d3d 398
e44e8726 399 if (!AcceptCluster(cluster, kTRUE))
400 continue;
c3ba2d3d 401
c3ba2d3d 402 sum += cluster->E();
403
7cf4626b 404 TLorentzVector nPart;
405 cluster->GetMomentum(nPart, fVertex);
c3ba2d3d 406
a487deae 407 fHistClusPhiEtaEnergy[fCentBin]->Fill(nPart.Eta(), nPart.Phi(), cluster->E());
7cf4626b 408 fHistNCellsEnergy->Fill(cluster->E(), cluster->GetNCells());
090a0c3e 409
410 fHistClusTimeEnergy->Fill(cluster->E(), cluster->GetTOF());
7c1d624c 411
412 fNclusters++;
c3604199 413 }
c3ba2d3d 414
415 return sum;
416}
417
418//________________________________________________________________________
419Float_t AliAnalysisTaskSAQA::DoTrackLoop()
420{
c3604199 421 // Do track loop.
422
c3ba2d3d 423 if (!fTracks)
424 return 0;
425
426 Float_t sum = 0;
427
c3ba2d3d 428 Int_t ntracks = fTracks->GetEntriesFast();
429 Int_t nclusters = 0;
430 if (fCaloClusters)
431 nclusters = fCaloClusters->GetEntriesFast();
432
c3604199 433 for (Int_t i = 0; i < ntracks; i++) {
c3ba2d3d 434
e44e8726 435 AliVParticle* track = static_cast<AliVParticle*>(fTracks->At(i)); // pointer to reconstructed to track
1f6fff78 436
c3604199 437 if (!track) {
c3ba2d3d 438 AliError(Form("Could not retrieve track %d",i));
439 continue;
440 }
c3ba2d3d 441
1f6fff78 442 AliVTrack* vtrack = dynamic_cast<AliVTrack*>(track);
443
444 if (vtrack && !AcceptTrack(vtrack, kTRUE))
445 continue;
7c1d624c 446
447 fNtracks++;
c3ba2d3d 448
449 sum += track->P();
a487deae 450
451 fHistTrPhiEtaPt[fCentBin]->Fill(track->Eta(), track->Phi(), track->Pt());
c3ba2d3d 452
453 Int_t label = track->GetLabel();
c3ba2d3d 454
455 if (label >= 0 && label < 4) {
456 fHistTrackEta[label]->Fill(track->Eta());
457 fHistTrackPhi[label]->Fill(track->Phi());
458 }
459
a487deae 460 fHistTrackEta[4]->Fill(track->Eta());
461 fHistTrackPhi[4]->Fill(track->Phi());
aa4d701c 462
1f6fff78 463 if (!vtrack)
c3ba2d3d 464 continue;
465
079b4732 466 if (vtrack->GetTrackEtaOnEMCal() == -999 || vtrack->GetTrackPhiOnEMCal() == -999)
467 fHistTrPhiEtaNonProp->Fill(vtrack->Eta(), vtrack->Phi());
468
1f6fff78 469 fHistTrEmcPhiEta->Fill(vtrack->GetTrackEtaOnEMCal(), vtrack->GetTrackPhiOnEMCal());
3e951e32 470 fHistDeltaEtaPt->Fill(vtrack->Pt(), vtrack->Eta() - vtrack->GetTrackEtaOnEMCal());
471 fHistDeltaPhiPt->Fill(vtrack->Pt(), vtrack->Phi() - vtrack->GetTrackPhiOnEMCal());
c3ba2d3d 472 }
473
474 return sum;
475}
476
477//________________________________________________________________________
478void AliAnalysisTaskSAQA::DoJetLoop()
479{
c3604199 480 // Do jet loop.
481
c3ba2d3d 482 if (!fJets)
483 return;
484
485 Int_t njets = fJets->GetEntriesFast();
486
487 for (Int_t ij = 0; ij < njets; ij++) {
488
e44e8726 489 AliEmcalJet* jet = static_cast<AliEmcalJet*>(fJets->At(ij));
c3ba2d3d 490
491 if (!jet) {
492 AliError(Form("Could not receive jet %d", ij));
493 continue;
494 }
495
a487deae 496 if (!AcceptJet(jet))
c3ba2d3d 497 continue;
6fd5039f 498
7c1d624c 499 fNjets++;
500
a487deae 501 fHistJetsPhiEtaPt[fCentBin]->Fill(jet->Eta(), jet->Phi(), jet->Pt());
99cfd012 502 fHistJetsPtArea[fCentBin]->Fill(jet->Pt(), jet->Area());
c3ba2d3d 503 }
504}
505
c3ba2d3d 506
507//________________________________________________________________________
508void AliAnalysisTaskSAQA::Terminate(Option_t *)
509{
510 // Called once at the end of the analysis.
511}