From 56bd319368cf1ca665416e7e6073235ccadbe420 Mon Sep 17 00:00:00 2001 From: morsch Date: Thu, 16 May 2013 12:10:41 +0000 Subject: [PATCH] - AliAnalysisTaskSAQA: new QA histograms - AliJetModelBaseTask, AliJetEmbeddingFromAODTask, AliEmcalPicoTrackMaker, AliPicoTrack: handling of the new field "pt at emcal surface" introduced in rev 62478 - AliHadCorrTask: use AliEmcalParticle instead of AliVTrack to check nearest cluster to track; recalculate MC energy fraction of corrected clusters in case of "exact" correction (embedding) Salvatore --- PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx | 5 +- PWG/EMCAL/AliEmcalPicoTrackMaker.cxx | 1 + PWG/EMCAL/AliPicoTrack.cxx | 9 +- PWG/EMCAL/AliPicoTrack.h | 9 +- PWGJE/EMCALJetTasks/AliHadCorrTask.cxx | 18 ++- .../AliJetEmbeddingFromAODTask.cxx | 2 +- PWGJE/EMCALJetTasks/AliJetModelBaseTask.cxx | 5 +- PWGJE/EMCALJetTasks/AliJetModelBaseTask.h | 2 +- .../UserTasks/AliAnalysisTaskSAQA.cxx | 117 +++++++++++------- .../UserTasks/AliAnalysisTaskSAQA.h | 58 ++++----- 10 files changed, 133 insertions(+), 93 deletions(-) diff --git a/PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx b/PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx index d03af62fcd0..19fe651c155 100644 --- a/PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx +++ b/PWG/EMCAL/AliEmcalClusTrackMatcherTask.cxx @@ -129,20 +129,23 @@ Bool_t AliEmcalClusTrackMatcherTask::Run() continue; if (!AcceptEmcalPart(partC)) continue; + AliVCluster *clust = partC->GetCluster(); + for (Int_t t = 0; t < nT; ++t) { AliEmcalParticle *partT = static_cast(fTracks->At(t)); if (!partT) continue; if (!AcceptEmcalPart(partT)) continue; - AliVCluster *clust = partC->GetCluster(); AliVTrack *track = partT->GetTrack() ; + Double_t deta = 999; Double_t dphi = 999; AliPicoTrack::GetEtaPhiDiff(track, clust, dphi, deta); Double_t d2 = deta * deta + dphi * dphi; if (d2 > maxd2) continue; + Double_t d = TMath::Sqrt(d2); partC->AddMatchedObj(t, d); partT->AddMatchedObj(c, d); diff --git a/PWG/EMCAL/AliEmcalPicoTrackMaker.cxx b/PWG/EMCAL/AliEmcalPicoTrackMaker.cxx index 3ce26bb9fdf..3ada68855db 100644 --- a/PWG/EMCAL/AliEmcalPicoTrackMaker.cxx +++ b/PWG/EMCAL/AliEmcalPicoTrackMaker.cxx @@ -210,6 +210,7 @@ void AliEmcalPicoTrackMaker::UserExec(Option_t *) type, track->GetTrackEtaOnEMCal(), track->GetTrackPhiOnEMCal(), + track->GetTrackPtOnEMCal(), isEmc); ++nacc; } diff --git a/PWG/EMCAL/AliPicoTrack.cxx b/PWG/EMCAL/AliPicoTrack.cxx index 67d4446bb9f..bee93b0aa96 100644 --- a/PWG/EMCAL/AliPicoTrack.cxx +++ b/PWG/EMCAL/AliPicoTrack.cxx @@ -12,17 +12,17 @@ //_________________________________________________________________________________________________ AliPicoTrack::AliPicoTrack() : AliVTrack(), - fPt(0), fEta(0), fPhi(0), fQ(0), fLabel(-1), fTrackType(0), fEtaEmc(0), fPhiEmc(0), fEmcal(0), fClusId(-1) + fPt(0), fEta(0), fPhi(0), fQ(0), fLabel(-1), fTrackType(0), fEtaEmc(0), fPhiEmc(0), fPtEmc(0), fEmcal(0), fClusId(-1) { // Default constructor. } //_________________________________________________________________________________________________ AliPicoTrack::AliPicoTrack(Double_t pt, Double_t eta, Double_t phi, Byte_t q, Int_t lab, Byte_t type, - Double_t etaemc, Double_t phiemc, Bool_t ise) : + Double_t etaemc, Double_t phiemc, Double_t ptemc, Bool_t ise) : AliVTrack(), fPt(pt), fEta(eta), fPhi(phi), fQ(q), fLabel(lab), fTrackType(type), - fEtaEmc(etaemc), fPhiEmc(phiemc), fEmcal(ise), fClusId(-1) + fEtaEmc(etaemc), fPhiEmc(phiemc), fPtEmc(ptemc), fEmcal(ise), fClusId(-1) { // Constructor. } @@ -32,7 +32,7 @@ AliPicoTrack::AliPicoTrack(const AliPicoTrack &pc) : AliVTrack(pc), fPt(pc.fPt), fEta(pc.fEta), fPhi(pc.fPhi), fQ(pc.fQ), fLabel(pc.fLabel), fTrackType(pc.fTrackType), - fEtaEmc(pc.fEtaEmc), fPhiEmc(pc.fPhiEmc), fEmcal(pc.fEmcal), + fEtaEmc(pc.fEtaEmc), fPhiEmc(pc.fPhiEmc), fPtEmc(pc.fPtEmc), fEmcal(pc.fEmcal), fClusId(pc.fClusId) { // Constructor. @@ -53,6 +53,7 @@ AliPicoTrack &AliPicoTrack::operator=(const AliPicoTrack &pc) fTrackType = pc.fTrackType; fEtaEmc = pc.fEtaEmc; fPhiEmc = pc.fPhiEmc; + fPtEmc = pc.fPtEmc; fEmcal = pc.fEmcal; fClusId = pc.fClusId; } diff --git a/PWG/EMCAL/AliPicoTrack.h b/PWG/EMCAL/AliPicoTrack.h index 1be1c039883..c05c84d1f34 100644 --- a/PWG/EMCAL/AliPicoTrack.h +++ b/PWG/EMCAL/AliPicoTrack.h @@ -11,7 +11,7 @@ class AliPicoTrack: public AliVTrack { public: AliPicoTrack(); AliPicoTrack(Double_t pt, Double_t eta, Double_t phi, Byte_t q, Int_t label, Byte_t type, - Double_t etaemc=0, Double_t phiemc=0, Bool_t ise=0); + Double_t etaemc=0, Double_t phiemc=0, Double_t ptemc=0, Bool_t ise=0); ~AliPicoTrack() {;} AliPicoTrack(const AliPicoTrack &pc); AliPicoTrack &operator=(const AliPicoTrack &pc); @@ -57,7 +57,9 @@ class AliPicoTrack: public AliVTrack { virtual Double_t GetTrackPhiOnEMCal() const { return fPhiEmc ; } virtual Double_t GetTrackEtaOnEMCal() const { return fEtaEmc ; } - virtual void SetTrackPhiEtaOnEMCal(Double_t eta, Double_t phi) { fEtaEmc = eta; fPhiEmc = phi; } + virtual Double_t GetTrackPtOnEMCal() const { return fPtEmc ; } + virtual Double_t GetTrackPOnEMCal() const { return fPtEmc*TMath::CosH(fEtaEmc);} + virtual void SetTrackPhiEtaPtOnEMCal(Double_t eta, Double_t phi, Double_t pt) { fEtaEmc = eta; fPhiEmc = phi; fPtEmc = pt;} void SetEMCALcluster(Int_t id) { fClusId = id; } @@ -72,10 +74,11 @@ class AliPicoTrack: public AliVTrack { Byte_t fTrackType;// 0=global track; 1=w/o SPD, w/ ITS refit; 2=w/o SPD, w/o ITS refit Double32_t fEtaEmc; //[-1,1,12] eta at emcal surface Double32_t fPhiEmc; //[0,6.3,12] phi at emcal surface + Double32_t fPtEmc; //[0,0,12] pt at emcal surface Bool_t fEmcal; // is true if track propagated to emcal Short_t fClusId; //! cluster id of matched cluster; -1 if not set - ClassDef(AliPicoTrack, 4) // Pico track class + ClassDef(AliPicoTrack, 5) // Pico track class }; #endif diff --git a/PWGJE/EMCALJetTasks/AliHadCorrTask.cxx b/PWGJE/EMCALJetTasks/AliHadCorrTask.cxx index 4f34a8419dd..69aa600fddb 100644 --- a/PWGJE/EMCALJetTasks/AliHadCorrTask.cxx +++ b/PWGJE/EMCALJetTasks/AliHadCorrTask.cxx @@ -573,20 +573,21 @@ void AliHadCorrTask::DoMatchedTracksLoop(AliEmcalParticle *emccluster, Double_t AliEmcalParticle *emctrack = static_cast(fTracks->At(iTrack)); if (!emctrack) continue; + + // check if track also points to cluster + if (fDoTrackClus && (emctrack->GetMatchedObjId(0)) != iClus) + continue; + AliVTrack *track = emctrack->GetTrack(); if (!track) continue; if (!AcceptTrack(track)) continue; - // check if track also points to cluster - if (fDoTrackClus && (track->GetEMCALcluster()) != iClus) - continue; - Double_t etadiff = 999; Double_t phidiff = 999; AliPicoTrack::GetEtaPhiDiff(track, cluster, phidiff, etadiff); - + Double_t mom = track->P(); Int_t mombin = GetMomBin(mom); Int_t centbinch = fCentBin; @@ -877,8 +878,13 @@ Double_t AliHadCorrTask::ApplyHadCorrAllTracks(AliEmcalParticle *emccluster, Dou else if (trkPMCfrac > 0.95) fHistEmbTrackMatchesOversub[fCentBin]->Fill(energyclus, overSub); - if (fDoExact) + if (fDoExact) { Esub -= overSub; + if (EclusBkgcorr + EclusMCcorr > 0) { + Double_t newfrac = EclusMCcorr / (EclusBkgcorr + EclusMCcorr); + cluster->SetMCEnergyFraction(newfrac); + } + } } } diff --git a/PWGJE/EMCALJetTasks/AliJetEmbeddingFromAODTask.cxx b/PWGJE/EMCALJetTasks/AliJetEmbeddingFromAODTask.cxx index 7cf68becbc3..273d095c947 100644 --- a/PWGJE/EMCALJetTasks/AliJetEmbeddingFromAODTask.cxx +++ b/PWGJE/EMCALJetTasks/AliJetEmbeddingFromAODTask.cxx @@ -615,7 +615,7 @@ void AliJetEmbeddingFromAODTask::Run() AliDebug(1,Form("%s: Track %d with label==0", GetName(), i)); } - AddTrack(track->Pt(), track->Eta(), track->Phi(), type, track->GetTrackEtaOnEMCal(), track->GetTrackPhiOnEMCal(), isEmc, label, track->Charge()); + AddTrack(track->Pt(), track->Eta(), track->Phi(), type, track->GetTrackEtaOnEMCal(), track->GetTrackPhiOnEMCal(), track->GetTrackPtOnEMCal(), isEmc, label, track->Charge()); AliDebug(3, "Track embedded!"); } } diff --git a/PWGJE/EMCALJetTasks/AliJetModelBaseTask.cxx b/PWGJE/EMCALJetTasks/AliJetModelBaseTask.cxx index dbc57667c0e..6d2942b752a 100644 --- a/PWGJE/EMCALJetTasks/AliJetModelBaseTask.cxx +++ b/PWGJE/EMCALJetTasks/AliJetModelBaseTask.cxx @@ -643,7 +643,7 @@ AliVCluster* AliJetModelBaseTask::AddCluster(Double_t e, Int_t absId, Int_t labe } //________________________________________________________________________ -AliPicoTrack* AliJetModelBaseTask::AddTrack(Double_t pt, Double_t eta, Double_t phi, Byte_t type, Double_t etaemc, Double_t phiemc, Bool_t ise, Int_t label, Short_t charge) +AliPicoTrack* AliJetModelBaseTask::AddTrack(Double_t pt, Double_t eta, Double_t phi, Byte_t type, Double_t etaemc, Double_t phiemc, Double_t ptemc, Bool_t ise, Int_t label, Short_t charge) { // Add a track to the event. @@ -668,7 +668,8 @@ AliPicoTrack* AliJetModelBaseTask::AddTrack(Double_t pt, Double_t eta, Double_t label, type, etaemc, - phiemc, + phiemc, + ptemc, ise); return track; diff --git a/PWGJE/EMCALJetTasks/AliJetModelBaseTask.h b/PWGJE/EMCALJetTasks/AliJetModelBaseTask.h index 66e626a6efa..b7c42dd7145 100644 --- a/PWGJE/EMCALJetTasks/AliJetModelBaseTask.h +++ b/PWGJE/EMCALJetTasks/AliJetModelBaseTask.h @@ -57,7 +57,7 @@ class AliJetModelBaseTask : public AliAnalysisTaskSE { AliVCluster *AddCluster(Double_t e, Int_t absId, Int_t label=0); // add a cluster with given energy and position AliVCluster *AddCluster(AliVCluster *oc); // add a cluster (copy) AliPicoTrack *AddTrack(Double_t pt = -1, Double_t eta = -999, Double_t phi = -1, Byte_t type=0, - Double_t etaemc=0, Double_t phiemc=0, Bool_t ise=kFALSE, + Double_t etaemc=0, Double_t phiemc=0, Double_t ptemc=0, Bool_t ise=kFALSE, Int_t label=0, Short_t charge=1); // add a track; if values are -1 generate random parameters AliAODMCParticle *AddMCParticle(AliAODMCParticle *part, Int_t origIndex); // add a MC particle void CopyCells(); diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx index c626c33baa1..7cf6c046536 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx @@ -48,10 +48,6 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() : fHistCellsTracks(0), fHistTrNegativeLabels(0), fHistTrZeroLabels(0), - fHistTrEmcPhiEta(0), - fHistTrPhiEtaNonProp(0), - fHistDeltaEtaPt(0), - fHistDeltaPhiPt(0), fHistNCellsEnergy(0), fHistFcrossEnergy(0), fHistClusTimeEnergy(0), @@ -64,6 +60,12 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() : for (Int_t i = 0; i < 4; i++) { for (Int_t j = 0; j < 4; j++) fHistTrPhiEtaPt[i][j] = 0; + fHistTrEmcPhiEta[i] = 0; + fHistTrEmcPt[i] = 0; + fHistTrPhiEtaNonProp[i] = 0; + fHistDeltaEtaPt[i] = 0; + fHistDeltaPhiPt[i] = 0; + fHistDeltaPtvsPt[i] = 0; fHistTrPhiEtaPtZeroLab[i] = 0; fHistClusPhiEtaEnergy[i] = 0; fHistJetsPhiEtaPt[i] = 0; @@ -91,10 +93,6 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) : fHistCellsTracks(0), fHistTrNegativeLabels(0), fHistTrZeroLabels(0), - fHistTrEmcPhiEta(0), - fHistTrPhiEtaNonProp(0), - fHistDeltaEtaPt(0), - fHistDeltaPhiPt(0), fHistNCellsEnergy(0), fHistFcrossEnergy(0), fHistClusTimeEnergy(0), @@ -107,6 +105,12 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) : for (Int_t i = 0; i < 4; i++) { for (Int_t j = 0; j < 4; j++) fHistTrPhiEtaPt[i][j] = 0; + fHistTrEmcPhiEta[i] = 0; + fHistTrEmcPt[i] = 0; + fHistTrPhiEtaNonProp[i] = 0; + fHistDeltaEtaPt[i] = 0; + fHistDeltaPhiPt[i] = 0; + fHistDeltaPtvsPt[i] = 0; fHistTrPhiEtaPtZeroLab[i] = 0; fHistClusPhiEtaEnergy[i] = 0; fHistJetsPhiEtaPt[i] = 0; @@ -162,36 +166,53 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects() fHistTrPhiEtaPt[i][j]->GetZaxis()->SetTitle("p_{T} (GeV/c)"); fOutput->Add(fHistTrPhiEtaPt[i][j]); } - if (!fParticleLevel && fIsMC) { - histname = Form("fHistTrPhiEtaPtZeroLab_%d",i); - fHistTrPhiEtaPtZeroLab[i] = new TH3F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01, fNbins, fMinBinPt, fMaxBinPt); - fHistTrPhiEtaPtZeroLab[i]->GetXaxis()->SetTitle("#eta"); - fHistTrPhiEtaPtZeroLab[i]->GetYaxis()->SetTitle("#phi"); - fHistTrPhiEtaPtZeroLab[i]->GetZaxis()->SetTitle("p_{T} (GeV/c)"); - fOutput->Add(fHistTrPhiEtaPtZeroLab[i]); - } - } - if (!fParticleLevel) { - fHistTrEmcPhiEta = new TH2F("fHistTrEmcPhiEta","Phi-Eta emcal distribution of tracks", 100, -1, 1, 201, 0, TMath::Pi() * 2.01); - fHistTrEmcPhiEta->GetXaxis()->SetTitle("#eta"); - fHistTrEmcPhiEta->GetYaxis()->SetTitle("#phi"); - fOutput->Add(fHistTrEmcPhiEta); - - fHistTrPhiEtaNonProp = new TH2F("fHistTrPhiEtaNonProp","fHistTrPhiEtaNonProp", 100, -1, 1, 201, 0, TMath::Pi() * 2.01); - fHistTrPhiEtaNonProp->GetXaxis()->SetTitle("#eta"); - fHistTrPhiEtaNonProp->GetYaxis()->SetTitle("#phi"); - fOutput->Add(fHistTrPhiEtaNonProp); - - fHistDeltaEtaPt = new TH2F("fHistDeltaEtaPt","fHistDeltaEtaPt", fNbins, fMinBinPt, fMaxBinPt, 80, -0.5, 0.5); - fHistDeltaEtaPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - fHistDeltaEtaPt->GetYaxis()->SetTitle("#delta#eta"); - fOutput->Add(fHistDeltaEtaPt); - - fHistDeltaPhiPt = new TH2F("fHistDeltaPhiPt","fHistDeltaPhiPt", fNbins, fMinBinPt, fMaxBinPt, 256, -1.6, 4.8); - fHistDeltaPhiPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - fHistDeltaPhiPt->GetYaxis()->SetTitle("#delta#phi"); - fOutput->Add(fHistDeltaPhiPt); + if (!fParticleLevel) { + if (fIsMC) { + histname = Form("fHistTrPhiEtaPtZeroLab_%d",i); + fHistTrPhiEtaPtZeroLab[i] = new TH3F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01, fNbins, fMinBinPt, fMaxBinPt); + fHistTrPhiEtaPtZeroLab[i]->GetXaxis()->SetTitle("#eta"); + fHistTrPhiEtaPtZeroLab[i]->GetYaxis()->SetTitle("#phi"); + fHistTrPhiEtaPtZeroLab[i]->GetZaxis()->SetTitle("p_{T} (GeV/c)"); + fOutput->Add(fHistTrPhiEtaPtZeroLab[i]); + } + + histname = Form("fHistTrEmcPhiEta_%d",i); + fHistTrEmcPhiEta[i] = new TH2F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01); + fHistTrEmcPhiEta[i]->GetXaxis()->SetTitle("#eta"); + fHistTrEmcPhiEta[i]->GetYaxis()->SetTitle("#phi"); + fOutput->Add(fHistTrEmcPhiEta[i]); + + histname = Form("fHistTrEmcPt_%d",i); + fHistTrEmcPt[i] = new TH1F(histname,histname, fNbins, fMinBinPt, fMaxBinPt); + fHistTrEmcPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)"); + fHistTrEmcPt[i]->GetYaxis()->SetTitle("counts"); + fOutput->Add(fHistTrEmcPt[i]); + + histname = Form("fHistTrPhiEtaNonProp_%d",i); + fHistTrPhiEtaNonProp[i] = new TH2F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01); + fHistTrPhiEtaNonProp[i]->GetXaxis()->SetTitle("#eta"); + fHistTrPhiEtaNonProp[i]->GetYaxis()->SetTitle("#phi"); + fOutput->Add(fHistTrPhiEtaNonProp[i]); + + histname = Form("fHistDeltaEtaPt_%d",i); + fHistDeltaEtaPt[i] = new TH2F(histname,histname, fNbins, fMinBinPt, fMaxBinPt, 50, -0.5, 0.5); + fHistDeltaEtaPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)"); + fHistDeltaEtaPt[i]->GetYaxis()->SetTitle("#delta#eta"); + fOutput->Add(fHistDeltaEtaPt[i]); + + histname = Form("fHistDeltaPhiPt_%d",i); + fHistDeltaPhiPt[i] = new TH2F(histname,histname, fNbins, fMinBinPt, fMaxBinPt, 200, -2, 2); + fHistDeltaPhiPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)"); + fHistDeltaPhiPt[i]->GetYaxis()->SetTitle("#delta#phi"); + fOutput->Add(fHistDeltaPhiPt[i]); + + histname = Form("fHistDeltaPtvsPt_%d",i); + fHistDeltaPtvsPt[i] = new TH2F(histname,histname, fNbins, fMinBinPt, fMaxBinPt, fNbins, -fMaxBinPt/2, fMaxBinPt/2); + fHistDeltaPtvsPt[i]->GetXaxis()->SetTitle("p_{T} (GeV/c)"); + fHistDeltaPtvsPt[i]->GetYaxis()->SetTitle("#deltap_{T} (GeV/c)"); + fOutput->Add(fHistDeltaPtvsPt[i]); + } } } @@ -551,15 +572,19 @@ Float_t AliAnalysisTaskSAQA::DoTrackLoop() if (!vtrack) continue; - if ((vtrack->GetTrackEtaOnEMCal() == -999 || vtrack->GetTrackPhiOnEMCal() == -999) && fHistTrPhiEtaNonProp) - fHistTrPhiEtaNonProp->Fill(vtrack->Eta(), vtrack->Phi()); - - if (fHistTrEmcPhiEta) - fHistTrEmcPhiEta->Fill(vtrack->GetTrackEtaOnEMCal(), vtrack->GetTrackPhiOnEMCal()); - if (fHistDeltaEtaPt) - fHistDeltaEtaPt->Fill(vtrack->Pt(), vtrack->Eta() - vtrack->GetTrackEtaOnEMCal()); - if (fHistDeltaPhiPt) - fHistDeltaPhiPt->Fill(vtrack->Pt(), vtrack->Phi() - vtrack->GetTrackPhiOnEMCal()); + if ((vtrack->GetTrackEtaOnEMCal() == -999 || vtrack->GetTrackPhiOnEMCal() == -999) && fHistTrPhiEtaNonProp[fCentBin]) + fHistTrPhiEtaNonProp[fCentBin]->Fill(vtrack->Eta(), vtrack->Phi()); + + if (fHistTrEmcPhiEta[fCentBin]) + fHistTrEmcPhiEta[fCentBin]->Fill(vtrack->GetTrackEtaOnEMCal(), vtrack->GetTrackPhiOnEMCal()); + if (fHistTrEmcPt[fCentBin]) + fHistTrEmcPt[fCentBin]->Fill(vtrack->GetTrackPtOnEMCal()); + if (fHistDeltaEtaPt[fCentBin]) + fHistDeltaEtaPt[fCentBin]->Fill(vtrack->Pt(), vtrack->Eta() - vtrack->GetTrackEtaOnEMCal()); + if (fHistDeltaPhiPt[fCentBin]) + fHistDeltaPhiPt[fCentBin]->Fill(vtrack->Pt(), vtrack->Phi() - vtrack->GetTrackPhiOnEMCal()); + if (fHistDeltaPtvsPt[fCentBin]) + fHistDeltaPtvsPt[fCentBin]->Fill(vtrack->Pt(), vtrack->Pt() - vtrack->GetTrackPtOnEMCal()); } if (fHistTrNegativeLabels) diff --git a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.h b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.h index e247f020282..3df42dd3e6b 100644 --- a/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.h +++ b/PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.h @@ -3,11 +3,9 @@ // $Id$ -class TClonesArray; -class TString; -class TH1F; -class TH2F; -class TH3F; +class TH1; +class TH2; +class TH3; #include "AliAnalysisTaskEmcalJet.h" @@ -42,41 +40,43 @@ class AliAnalysisTaskSAQA : public AliAnalysisTaskEmcalJet { Int_t fNjets; //!Number of accepted jets in the event // General histograms - TH2F *fHistTracksCent; //!Number of tracks vs. centrality - TH2F *fHistClusCent; //!Number of clusters vs. centrality - TH2F *fHistJetsCent; //!Number of jets vs. centrality - TH2F *fHistClusTracks; //!Number of clusters vs. number of tracks - TH2F *fHistJetsParts; //!Number of jets vs. number of particles (tracks+clusters) - TH2F *fHistCellsCent; //!Number of cells vs. centrality - TH2F *fHistCellsTracks; //!Number of cells vs. number of tracks + TH2 *fHistTracksCent; //!Number of tracks vs. centrality + TH2 *fHistClusCent; //!Number of clusters vs. centrality + TH2 *fHistJetsCent; //!Number of jets vs. centrality + TH2 *fHistClusTracks; //!Number of clusters vs. number of tracks + TH2 *fHistJetsParts; //!Number of jets vs. number of particles (tracks+clusters) + TH2 *fHistCellsCent; //!Number of cells vs. centrality + TH2 *fHistCellsTracks; //!Number of cells vs. number of tracks // Tracks TH1 *fHistTrNegativeLabels; //!Percentage of negative label tracks TH1 *fHistTrZeroLabels; //!Percentage of tracks with label=0 - TH3F *fHistTrPhiEtaPt[4][4]; //!Phi-Eta-Pt distribution of tracks - TH3F *fHistTrPhiEtaPtZeroLab[4]; //!Phi-Eta-Pt distribution of tracks with label=0 - TH2F *fHistTrEmcPhiEta; //!Phi-Eta emcal propagated distribution of tracks - TH2F *fHistTrPhiEtaNonProp; //!Phi-Eta distribution of non emcal propagated tracks - TH2F *fHistDeltaEtaPt; //!Eta-EtaProp vs. Pt - TH2F *fHistDeltaPhiPt; //!Phi-PhiProp vs. Pt + TH3 *fHistTrPhiEtaPt[4][4]; //!Phi-Eta-Pt distribution of tracks + TH3 *fHistTrPhiEtaPtZeroLab[4]; //!Phi-Eta-Pt distribution of tracks with label=0 + TH2 *fHistTrEmcPhiEta[4]; //!Phi-Eta emcal propagated distribution of tracks + TH1 *fHistTrEmcPt[4]; //!Phi-Eta emcal propagated distribution of tracks + TH2 *fHistTrPhiEtaNonProp[4]; //!Phi-Eta distribution of non emcal propagated tracks + TH2 *fHistDeltaEtaPt[4]; //!Eta-EtaProp vs. Pt + TH2 *fHistDeltaPhiPt[4]; //!Phi-PhiProp vs. Pt + TH2 *fHistDeltaPtvsPt[4]; //!Pt-PtProp vs. Pt // Clusters - TH3F *fHistClusPhiEtaEnergy[4]; //!Phi-Eta-Energy distribution of clusters - TH2F *fHistNCellsEnergy; //!Number of cells vs. energy of cluster - TH2F *fHistFcrossEnergy; //!Fcross vs. energy of cluster - TH2F *fHistClusTimeEnergy; //!Time vs. energy of cluster + TH3 *fHistClusPhiEtaEnergy[4]; //!Phi-Eta-Energy distribution of clusters + TH2 *fHistNCellsEnergy; //!Number of cells vs. energy of cluster + TH2 *fHistFcrossEnergy; //!Fcross vs. energy of cluster + TH2 *fHistClusTimeEnergy; //!Time vs. energy of cluster - //Jets - TH3F *fHistJetsPhiEtaPt[4]; //!Phi-Eta distribution of jets - TH2F *fHistJetsPtArea[4]; //!Pt vs. area of jets + // Jets + TH3 *fHistJetsPhiEtaPt[4]; //!Phi-Eta distribution of jets + TH2 *fHistJetsPtArea[4]; //!Pt vs. area of jets // EMCAL Cells - TH2F *fHistCellsAbsIdEnergy; //!Energy spectrum of cells + TH2 *fHistCellsAbsIdEnergy; //!Energy spectrum of cells // Had corr QA - TH2F *fHistChVSneCells; //!Charged vs. neutral (cells) energy - TH2F *fHistChVSneClus; //!Charged vs. neutral (clusters) energy - TH2F *fHistChVSneCorrCells; //!Charged vs. neutral (corrected cells) energy + TH2 *fHistChVSneCells; //!Charged vs. neutral (cells) energy + TH2 *fHistChVSneClus; //!Charged vs. neutral (clusters) energy + TH2 *fHistChVSneCorrCells; //!Charged vs. neutral (corrected cells) energy private: AliAnalysisTaskSAQA(const AliAnalysisTaskSAQA&); // not implemented -- 2.43.0