7 #include <TClonesArray.h>
12 #include <TLorentzVector.h>
14 #include "AliAnalysisManager.h"
15 #include "AliCentrality.h"
16 #include "AliVCluster.h"
17 #include "AliVParticle.h"
18 #include "AliVTrack.h"
19 #include "AliEmcalJet.h"
20 #include "AliVEventHandler.h"
21 #include "AliAODEvent.h"
22 #include "AliExternalTrackParam.h"
23 #include "AliTrackerBase.h"
25 #include "AliEMCALGeometry.h"
26 #include "AliEMCALGeoParams.h"
27 #include "AliPicoTrack.h"
29 #include "AliAnalysisTaskSAQA.h"
31 ClassImp(AliAnalysisTaskSAQA)
33 //________________________________________________________________________
34 AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() :
35 AliAnalysisTaskEmcalJet("AliAnalysisTaskSAQA", kTRUE),
37 fParticleLevel(kFALSE),
49 fHistTrNegativeLabels(0),
53 fHistClusTimeEnergy(0),
54 fHistClusMCEnergyFraction(0),
55 fHistCellsAbsIdEnergy(0),
58 fHistChVSneCorrCells(0)
60 // Default constructor.
62 for (Int_t i = 0; i < 4; i++) {
63 for (Int_t j = 0; j < 4; j++) fHistTrPhiEtaPt[i][j] = 0;
64 fHistTrEmcPhiEta[i] = 0;
66 fHistTrPhiEtaNonProp[i] = 0;
67 fHistDeltaEtaPt[i] = 0;
68 fHistDeltaPhiPt[i] = 0;
69 fHistDeltaPtvsPt[i] = 0;
70 fHistTrPhiEtaPtZeroLab[i] = 0;
71 fHistClusPhiEtaEnergy[i] = 0;
72 fHistJetsPhiEtaPt[i] = 0;
73 fHistJetsPtArea[i] = 0;
76 SetMakeGeneralHistograms(kTRUE);
79 //________________________________________________________________________
80 AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) :
81 AliAnalysisTaskEmcalJet(name, kTRUE),
83 fParticleLevel(kFALSE),
95 fHistTrNegativeLabels(0),
99 fHistClusTimeEnergy(0),
100 fHistClusMCEnergyFraction(0),
101 fHistCellsAbsIdEnergy(0),
104 fHistChVSneCorrCells(0)
106 // Standard constructor.
108 for (Int_t i = 0; i < 4; i++) {
109 for (Int_t j = 0; j < 4; j++) fHistTrPhiEtaPt[i][j] = 0;
110 fHistTrEmcPhiEta[i] = 0;
112 fHistTrPhiEtaNonProp[i] = 0;
113 fHistDeltaEtaPt[i] = 0;
114 fHistDeltaPhiPt[i] = 0;
115 fHistDeltaPtvsPt[i] = 0;
116 fHistTrPhiEtaPtZeroLab[i] = 0;
117 fHistClusPhiEtaEnergy[i] = 0;
118 fHistJetsPhiEtaPt[i] = 0;
119 fHistJetsPtArea[i] = 0;
122 SetMakeGeneralHistograms(kTRUE);
125 //________________________________________________________________________
126 AliAnalysisTaskSAQA::~AliAnalysisTaskSAQA()
131 //________________________________________________________________________
132 void AliAnalysisTaskSAQA::UserCreateOutputObjects()
136 AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
138 if (!fTracksName.IsNull()) {
139 if (!fParticleLevel && fIsMC) {
140 fHistTrNegativeLabels = new TH1F("fHistTrNegativeLabels","fHistTrNegativeLabels", 500, 0, 1);
141 fHistTrNegativeLabels->GetXaxis()->SetTitle("% of negative labels");
142 fHistTrNegativeLabels->GetYaxis()->SetTitle("counts");
143 fOutput->Add(fHistTrNegativeLabels);
145 fHistTrZeroLabels = new TH1F("fHistTrZeroLabels","fHistTrZeroLabels", 500, 0, 1);
146 fHistTrZeroLabels->GetXaxis()->SetTitle("% of negative labels");
147 fHistTrZeroLabels->GetYaxis()->SetTitle("counts");
148 fOutput->Add(fHistTrZeroLabels);
151 fHistTracksCent = new TH2F("fHistTracksCent","Tracks vs. centrality", 100, 0, 100, fNbins, 0, 4000);
152 fHistTracksCent->GetXaxis()->SetTitle("Centrality (%)");
153 fHistTracksCent->GetYaxis()->SetTitle("No. of tracks");
154 fOutput->Add(fHistTracksCent);
162 for (Int_t i = 0; i < fNcentBins; i++) {
163 for (Int_t j = 0; j < nlabels; j++) {
164 histname = Form("fHistTrPhiEtaPt_%d_%d",i,j);
165 fHistTrPhiEtaPt[i][j] = new TH3F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01, fNbins, fMinBinPt, fMaxBinPt);
166 fHistTrPhiEtaPt[i][j]->GetXaxis()->SetTitle("#eta");
167 fHistTrPhiEtaPt[i][j]->GetYaxis()->SetTitle("#phi");
168 fHistTrPhiEtaPt[i][j]->GetZaxis()->SetTitle("p_{T} (GeV/c)");
169 fOutput->Add(fHistTrPhiEtaPt[i][j]);
172 if (!fParticleLevel) {
174 histname = Form("fHistTrPhiEtaPtZeroLab_%d",i);
175 fHistTrPhiEtaPtZeroLab[i] = new TH3F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01, fNbins, fMinBinPt, fMaxBinPt);
176 fHistTrPhiEtaPtZeroLab[i]->GetXaxis()->SetTitle("#eta");
177 fHistTrPhiEtaPtZeroLab[i]->GetYaxis()->SetTitle("#phi");
178 fHistTrPhiEtaPtZeroLab[i]->GetZaxis()->SetTitle("p_{T} (GeV/c)");
179 fOutput->Add(fHistTrPhiEtaPtZeroLab[i]);
182 histname = Form("fHistTrEmcPhiEta_%d",i);
183 fHistTrEmcPhiEta[i] = new TH2F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01);
184 fHistTrEmcPhiEta[i]->GetXaxis()->SetTitle("#eta");
185 fHistTrEmcPhiEta[i]->GetYaxis()->SetTitle("#phi");
186 fOutput->Add(fHistTrEmcPhiEta[i]);
188 histname = Form("fHistTrEmcPt_%d",i);
189 fHistTrEmcPt[i] = new TH1F(histname,histname, fNbins, fMinBinPt, fMaxBinPt);
190 fHistTrEmcPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
191 fHistTrEmcPt[i]->GetYaxis()->SetTitle("counts");
192 fOutput->Add(fHistTrEmcPt[i]);
194 histname = Form("fHistTrPhiEtaNonProp_%d",i);
195 fHistTrPhiEtaNonProp[i] = new TH2F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01);
196 fHistTrPhiEtaNonProp[i]->GetXaxis()->SetTitle("#eta");
197 fHistTrPhiEtaNonProp[i]->GetYaxis()->SetTitle("#phi");
198 fOutput->Add(fHistTrPhiEtaNonProp[i]);
200 histname = Form("fHistDeltaEtaPt_%d",i);
201 fHistDeltaEtaPt[i] = new TH2F(histname,histname, fNbins, fMinBinPt, fMaxBinPt, 50, -0.5, 0.5);
202 fHistDeltaEtaPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
203 fHistDeltaEtaPt[i]->GetYaxis()->SetTitle("#delta#eta");
204 fOutput->Add(fHistDeltaEtaPt[i]);
206 histname = Form("fHistDeltaPhiPt_%d",i);
207 fHistDeltaPhiPt[i] = new TH2F(histname,histname, fNbins, fMinBinPt, fMaxBinPt, 200, -2, 2);
208 fHistDeltaPhiPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
209 fHistDeltaPhiPt[i]->GetYaxis()->SetTitle("#delta#phi");
210 fOutput->Add(fHistDeltaPhiPt[i]);
212 histname = Form("fHistDeltaPtvsPt_%d",i);
213 fHistDeltaPtvsPt[i] = new TH2F(histname,histname, fNbins, fMinBinPt, fMaxBinPt, fNbins, -fMaxBinPt/2, fMaxBinPt/2);
214 fHistDeltaPtvsPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
215 fHistDeltaPtvsPt[i]->GetYaxis()->SetTitle("#deltap_{T} (GeV/c)");
216 fOutput->Add(fHistDeltaPtvsPt[i]);
221 if (!fCaloName.IsNull()) {
222 fHistClusCent = new TH2F("fHistClusCent","Clusters vs. centrality", 100, 0, 100, fNbins, 0, 2000);
223 fHistClusCent->GetXaxis()->SetTitle("Centrality (%)");
224 fHistClusCent->GetYaxis()->SetTitle("No. of clusters");
225 fOutput->Add(fHistClusCent);
227 fHistClusTracks = new TH2F("fHistClusTracks","Clusters vs. tracks", fNbins, 0, 4000, fNbins, 0, 2000);
228 fHistClusTracks->GetXaxis()->SetTitle("No. of tracks");
229 fHistClusTracks->GetYaxis()->SetTitle("No. of clusters");
230 fOutput->Add(fHistClusTracks);
232 fHistCellsCent = new TH2F("fHistCellsCent","Cells vs. centrality", 100, 0, 100, fNbins, 0, 6000);
233 fHistCellsCent->GetXaxis()->SetTitle("Centrality (%)");
234 fHistCellsCent->GetYaxis()->SetTitle("No. of EMCal cells");
235 fOutput->Add(fHistCellsCent);
237 fHistCellsTracks = new TH2F("fHistCellsTracks","Cells vs. tracks", fNbins, 0, 4000, fNbins, 0, 6000);
238 fHistCellsTracks->GetXaxis()->SetTitle("No. of tracks");
239 fHistCellsTracks->GetYaxis()->SetTitle("No. of EMCal cells");
240 fOutput->Add(fHistCellsTracks);
244 for (Int_t i = 0; i < fNcentBins; i++) {
245 histname = "fHistClusPhiEtaEnergy_";
247 fHistClusPhiEtaEnergy[i] = new TH3F(histname, histname, 100, -1.2, 1.2, 201, 0, TMath::Pi() * 2.01, fNbins, fMinBinPt, fMaxBinPt);
248 fHistClusPhiEtaEnergy[i]->GetXaxis()->SetTitle("#eta");
249 fHistClusPhiEtaEnergy[i]->GetYaxis()->SetTitle("#phi");
250 fHistClusPhiEtaEnergy[i]->GetZaxis()->SetTitle("E_{cluster} (GeV)");
251 fOutput->Add(fHistClusPhiEtaEnergy[i]);
254 fHistClusTimeEnergy = new TH2F("fHistClusTimeEnergy","Time vs. energy of clusters", fNbins, fMinBinPt, fMaxBinPt, fNbins, -1e-6, 1e-6);
255 fHistClusTimeEnergy->GetXaxis()->SetTitle("E_{cluster} (GeV)");
256 fHistClusTimeEnergy->GetYaxis()->SetTitle("Time");
257 fOutput->Add(fHistClusTimeEnergy);
260 fHistClusMCEnergyFraction = new TH1F("fHistClusMCEnergyFraction","fHistClusMCEnergyFraction", fNbins, 0, 1.2);
261 fHistClusMCEnergyFraction->GetXaxis()->SetTitle("MC fraction");
262 fHistClusMCEnergyFraction->GetYaxis()->SetTitle("counts");
263 fOutput->Add(fHistClusMCEnergyFraction);
266 fHistNCellsEnergy = new TH2F("fHistNCellsEnergy","Number of cells vs. energy of clusters", fNbins, fMinBinPt, fMaxBinPt, 30, 0, 30);
267 fHistNCellsEnergy->GetXaxis()->SetTitle("E_{cluster} (GeV)");
268 fHistNCellsEnergy->GetYaxis()->SetTitle("N_{cells}");
269 fOutput->Add(fHistNCellsEnergy);
271 fHistFcrossEnergy = new TH2F("fHistFcrossEnergy","fHistFcrossEnergy", fNbins, fMinBinPt, fMaxBinPt, 200, -3.5, 1.5);
272 fHistFcrossEnergy->GetXaxis()->SetTitle("E_{cluster} (GeV)");
273 fHistFcrossEnergy->GetYaxis()->SetTitle("F_{cross}");
274 fOutput->Add(fHistFcrossEnergy);
276 fHistCellsAbsIdEnergy = new TH2F("fHistCellsAbsIdEnergy","fHistCellsAbsIdEnergy", 11600,0,11599,(Int_t)(fNbins / 2), fMinBinPt, fMaxBinPt / 2);
277 fHistCellsAbsIdEnergy->GetXaxis()->SetTitle("cell abs. Id");
278 fHistCellsAbsIdEnergy->GetYaxis()->SetTitle("E_{cluster} (GeV)");
279 fHistCellsAbsIdEnergy->GetZaxis()->SetTitle("counts");
280 fOutput->Add(fHistCellsAbsIdEnergy);
282 fHistChVSneCells = new TH2F("fHistChVSneCells","Charged energy vs. neutral (cells) energy",
283 (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5, (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5);
284 fHistChVSneCells->GetXaxis()->SetTitle("Energy (GeV)");
285 fHistChVSneCells->GetYaxis()->SetTitle("Momentum (GeV/c)");
286 fOutput->Add(fHistChVSneCells);
288 fHistChVSneClus = new TH2F("fHistChVSneClus","Charged energy vs. neutral (clusters) energy",
289 (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5, (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5);
290 fHistChVSneClus->GetXaxis()->SetTitle("Energy (GeV)");
291 fHistChVSneClus->GetYaxis()->SetTitle("Momentum (GeV/c)");
292 fOutput->Add(fHistChVSneClus);
294 fHistChVSneCorrCells = new TH2F("fHistChVSneCorrCells","Charged energy vs. neutral (corrected cells) energy",
295 (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5, (Int_t)(fNbins * 2.5), fMinBinPt , fMaxBinPt * 2.5);
296 fHistChVSneCorrCells->GetXaxis()->SetTitle("Energy (GeV)");
297 fHistChVSneCorrCells->GetYaxis()->SetTitle("Momentum (GeV/c)");
298 fOutput->Add(fHistChVSneCorrCells);
301 if (!fJetsName.IsNull()) {
302 fHistJetsCent = new TH2F("fHistJetsCent","Jets vs. centrality", 100, 0, 100, 150, -0.5, 149.5);
303 fHistJetsCent->GetXaxis()->SetTitle("Centrality (%)");
304 fHistJetsCent->GetYaxis()->SetTitle("No. of jets");
305 fOutput->Add(fHistJetsCent);
307 fHistJetsParts = new TH2F("fHistJetsParts","Jets vs. centrality", fNbins, 0, 6000, 150, -0.5, 149.5);
308 fHistJetsParts->GetXaxis()->SetTitle("No. of particles");
309 fHistJetsParts->GetYaxis()->SetTitle("No. of jets");
310 fOutput->Add(fHistJetsParts);
314 for (Int_t i = 0; i < fNcentBins; i++) {
315 histname = "fHistJetsPhiEtaPt_";
317 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);
318 fHistJetsPhiEtaPt[i]->GetXaxis()->SetTitle("#eta");
319 fHistJetsPhiEtaPt[i]->GetYaxis()->SetTitle("#phi");
320 fHistJetsPhiEtaPt[i]->GetZaxis()->SetTitle("p_{T} (GeV/c)");
321 fOutput->Add(fHistJetsPhiEtaPt[i]);
323 histname = "fHistJetsPtArea_";
325 fHistJetsPtArea[i] = new TH2F(histname.Data(), histname.Data(), (Int_t)(fNbins * 2.5), fMinBinPt, fMaxBinPt * 2.5, 30, 0, fJetRadius * fJetRadius * TMath::Pi() * 3);
326 fHistJetsPtArea[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)");
327 fHistJetsPtArea[i]->GetYaxis()->SetTitle("area");
328 fOutput->Add(fHistJetsPtArea[i]);
332 PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
335 //________________________________________________________________________
336 Bool_t AliAnalysisTaskSAQA::RetrieveEventObjects()
338 // Retrieve event objects.
340 if (!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
351 //________________________________________________________________________
352 Bool_t AliAnalysisTaskSAQA::FillHistograms()
357 Float_t trackSum = 0;
360 trackSum = DoTrackLoop();
361 AliDebug(2,Form("%d tracks found in the event", fTracks->GetEntriesFast()));
362 fHistTracksCent->Fill(fCent, fNtracks);
366 clusSum = DoClusterLoop();
368 fHistClusCent->Fill(fCent, fNclusters);
369 fHistClusTracks->Fill(fNtracks, fNclusters);
371 Float_t cellSum = 0, cellCutSum = 0;
373 Int_t ncells = DoCellLoop(cellSum, cellCutSum);
376 fHistCellsTracks->Fill(fNtracks, ncells);
378 fHistCellsCent->Fill(fCent, ncells);
380 fHistChVSneCells->Fill(cellSum, trackSum);
381 fHistChVSneClus->Fill(clusSum, trackSum);
382 fHistChVSneCorrCells->Fill(cellCutSum, trackSum);
388 fHistJetsCent->Fill(fCent, fNjets);
389 fHistJetsParts->Fill(fNtracks + fNclusters, fNjets);
395 //________________________________________________________________________
396 Int_t AliAnalysisTaskSAQA::DoCellLoop(Float_t &sum, Float_t &sum_cut)
400 AliVCaloCells *cells = InputEvent()->GetEMCALCells();
405 const Int_t ncells = cells->GetNumberOfCells();
407 for (Int_t pos = 0; pos < ncells; pos++) {
408 Float_t amp = cells->GetAmplitude(pos);
409 Int_t absId = cells->GetCellNumber(pos);
410 fHistCellsAbsIdEnergy->Fill(absId,amp);
412 if (amp < fCellEnergyCut)
420 //________________________________________________________________________
421 Double_t AliAnalysisTaskSAQA::GetFcross(AliVCluster *cluster, AliVCaloCells *cells)
423 Int_t AbsIdseed = -1;
425 for (Int_t i = 0; i < cluster->GetNCells(); i++) {
426 if (cells->GetCellAmplitude(cluster->GetCellAbsId(i)) > AbsIdseed) {
427 Eseed = cells->GetCellAmplitude(cluster->GetCellAbsId(i));
428 AbsIdseed = cluster->GetCellAbsId(i);
435 Int_t imod = -1, iphi =-1, ieta=-1,iTower = -1, iIphi = -1, iIeta = -1;
436 fGeom->GetCellIndex(AbsIdseed,imod,iTower,iIphi,iIeta);
437 fGeom->GetCellPhiEtaIndexInSModule(imod,iTower,iIphi,iIeta,iphi,ieta);
439 //Get close cells index and energy, not in corners
444 if (iphi < AliEMCALGeoParams::fgkEMCALRows-1) absID1 = fGeom->GetAbsCellIdFromCellIndexes(imod, iphi+1, ieta);
445 if (iphi > 0) absID2 = fGeom->GetAbsCellIdFromCellIndexes(imod, iphi-1, ieta);
447 // In case of cell in eta = 0 border, depending on SM shift the cross cell index
452 if (ieta == AliEMCALGeoParams::fgkEMCALCols-1 && !(imod%2)) {
453 absID3 = fGeom->GetAbsCellIdFromCellIndexes(imod+1, iphi, 0);
454 absID4 = fGeom->GetAbsCellIdFromCellIndexes(imod, iphi, ieta-1);
456 else if (ieta == 0 && imod%2) {
457 absID3 = fGeom->GetAbsCellIdFromCellIndexes(imod, iphi, ieta+1);
458 absID4 = fGeom->GetAbsCellIdFromCellIndexes(imod-1, iphi, AliEMCALGeoParams::fgkEMCALCols-1);
461 if (ieta < AliEMCALGeoParams::fgkEMCALCols-1)
462 absID3 = fGeom->GetAbsCellIdFromCellIndexes(imod, iphi, ieta+1);
464 absID4 = fGeom->GetAbsCellIdFromCellIndexes(imod, iphi, ieta-1);
467 Double_t ecell1 = cells->GetCellAmplitude(absID1);
468 Double_t ecell2 = cells->GetCellAmplitude(absID2);
469 Double_t ecell3 = cells->GetCellAmplitude(absID3);
470 Double_t ecell4 = cells->GetCellAmplitude(absID4);
472 Double_t Ecross = ecell1 + ecell2 + ecell3 + ecell4;
474 Double_t Fcross = 1 - Ecross/Eseed;
479 //________________________________________________________________________
480 Float_t AliAnalysisTaskSAQA::DoClusterLoop()
487 AliVCaloCells *cells = InputEvent()->GetEMCALCells();
492 Int_t nclusters = fCaloClusters->GetEntriesFast();
494 for (Int_t iClusters = 0; iClusters < nclusters; iClusters++) {
495 AliVCluster* cluster = static_cast<AliVCluster*>(fCaloClusters->At(iClusters));
497 AliError(Form("Could not receive cluster %d", iClusters));
501 if (!AcceptCluster(cluster))
506 TLorentzVector nPart;
507 cluster->GetMomentum(nPart, fVertex);
509 fHistClusPhiEtaEnergy[fCentBin]->Fill(nPart.Eta(), nPart.Phi(), cluster->E());
510 fHistNCellsEnergy->Fill(cluster->E(), cluster->GetNCells());
512 fHistClusTimeEnergy->Fill(cluster->E(), cluster->GetTOF());
515 fHistFcrossEnergy->Fill(cluster->E(), GetFcross(cluster, cells));
517 if (fHistClusMCEnergyFraction)
518 fHistClusMCEnergyFraction->Fill(cluster->GetMCEnergyFraction());
526 //________________________________________________________________________
527 Float_t AliAnalysisTaskSAQA::DoTrackLoop()
536 Int_t ntracks = fTracks->GetEntriesFast();
540 for (Int_t i = 0; i < ntracks; i++) {
542 AliVParticle* track = static_cast<AliVParticle*>(fTracks->At(i)); // pointer to reconstructed to track
545 AliError(Form("Could not retrieve track %d",i));
549 if (!AcceptTrack(track))
556 if (fParticleLevel) {
557 fHistTrPhiEtaPt[fCentBin][0]->Fill(track->Eta(), track->Phi(), track->Pt());
560 fHistTrPhiEtaPt[fCentBin][3]->Fill(track->Eta(), track->Phi(), track->Pt());
561 if (track->GetLabel() == 0) {
563 if (fHistTrPhiEtaPtZeroLab[fCentBin])
564 fHistTrPhiEtaPtZeroLab[fCentBin]->Fill(track->Eta(), track->Phi(), track->Pt());
567 if (track->GetLabel() < 0)
572 AliPicoTrack* ptrack = dynamic_cast<AliPicoTrack*>(track);
574 type = ptrack->GetTrackType();
576 if (type >= 0 && type < 3)
577 fHistTrPhiEtaPt[fCentBin][type]->Fill(track->Eta(), track->Phi(), track->Pt());
579 AliDebug(2,Form("%s: track type %d not recognized!", GetName(), type));
582 AliVTrack* vtrack = dynamic_cast<AliVTrack*>(track);
587 if ((vtrack->GetTrackEtaOnEMCal() == -999 || vtrack->GetTrackPhiOnEMCal() == -999) && fHistTrPhiEtaNonProp[fCentBin])
588 fHistTrPhiEtaNonProp[fCentBin]->Fill(vtrack->Eta(), vtrack->Phi());
590 if (fHistTrEmcPhiEta[fCentBin])
591 fHistTrEmcPhiEta[fCentBin]->Fill(vtrack->GetTrackEtaOnEMCal(), vtrack->GetTrackPhiOnEMCal());
592 if (fHistTrEmcPt[fCentBin])
593 fHistTrEmcPt[fCentBin]->Fill(vtrack->GetTrackPtOnEMCal());
594 if (fHistDeltaEtaPt[fCentBin])
595 fHistDeltaEtaPt[fCentBin]->Fill(vtrack->Pt(), vtrack->Eta() - vtrack->GetTrackEtaOnEMCal());
596 if (fHistDeltaPhiPt[fCentBin])
597 fHistDeltaPhiPt[fCentBin]->Fill(vtrack->Pt(), vtrack->Phi() - vtrack->GetTrackPhiOnEMCal());
598 if (fHistDeltaPtvsPt[fCentBin])
599 fHistDeltaPtvsPt[fCentBin]->Fill(vtrack->Pt(), vtrack->Pt() - vtrack->GetTrackPtOnEMCal());
602 if (fHistTrNegativeLabels)
603 fHistTrNegativeLabels->Fill(1. * neg / ntracks);
605 if (fHistTrZeroLabels)
606 fHistTrZeroLabels->Fill(1. * zero / ntracks);
611 //________________________________________________________________________
612 void AliAnalysisTaskSAQA::DoJetLoop()
619 Int_t njets = fJets->GetEntriesFast();
621 for (Int_t ij = 0; ij < njets; ij++) {
623 AliEmcalJet* jet = static_cast<AliEmcalJet*>(fJets->At(ij));
626 AliError(Form("Could not receive jet %d", ij));
635 fHistJetsPhiEtaPt[fCentBin]->Fill(jet->Eta(), jet->Phi(), jet->Pt());
636 fHistJetsPtArea[fCentBin]->Fill(jet->Pt(), jet->Area());
641 //________________________________________________________________________
642 void AliAnalysisTaskSAQA::Terminate(Option_t *)
644 // Called once at the end of the analysis.