]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/EMCALJetTasks/AliAnalysisTaskSAQA.cxx
cleanup
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / AliAnalysisTaskSAQA.cxx
index 2743b935161c9103a302cb85da9a4dbaf5e8bf8c..87ea5375e07744f18ba41f2054e881c24f26a247 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
-// General QA task (S.Aiola).
-//
+// General QA task.
 //
+// Author: S.Aiola
 
 #include <TChain.h>
 #include <TClonesArray.h>
@@ -26,9 +26,9 @@ ClassImp(AliAnalysisTaskSAQA)
 
 //________________________________________________________________________
 AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() : 
-  AliAnalysisTaskEmcalJet("AliAnalysisTaskSAQA"),
+  AliAnalysisTaskEmcalJet("AliAnalysisTaskSAQA", kTRUE),
   fCellEnergyCut(0.1),
-  fDoEoverP(kFALSE),
+  fDoTrigger(kFALSE),
   fTrgClusName("ClustersL1GAMMAFEE"),
   fTrgClusters(0),
   fHistCentrality(0),
@@ -43,8 +43,6 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() :
   fHistClustersEnergy(0),
   fHistClusPhiEta(0),
   fHistJetsPhiEta(0),
-  fHistJetsPtArea(0),
-  fHistEoverP(0),
   fHistCellsEnergy(0),
   fHistChVSneCells(0),
   fHistChVSneClus(0),
@@ -58,17 +56,20 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() :
   }
 
   for (Int_t i = 0; i < 4; i++) {
+    fHistJetsPtNonBias[i] = 0;
     fHistJetsPtTrack[i] = 0;
     fHistJetsPtClus[i] = 0;
     fHistJetsPt[i] = 0;
+    fHistJetsPtArea[i] = 0;
+    fHistJetsPtAreaNonBias[i] = 0;
   }
 }
 
 //________________________________________________________________________
 AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) : 
-  AliAnalysisTaskEmcalJet(name),
+  AliAnalysisTaskEmcalJet(name, kTRUE),
   fCellEnergyCut(0.1),
-  fDoEoverP(kFALSE),
+  fDoTrigger(kFALSE),
   fTrgClusName("ClustersL1GAMMAFEE"),
   fTrgClusters(0),
   fHistCentrality(0),
@@ -83,8 +84,6 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) :
   fHistClustersEnergy(0),
   fHistClusPhiEta(0),
   fHistJetsPhiEta(0),
-  fHistJetsPtArea(0),
-  fHistEoverP(0),
   fHistCellsEnergy(0),
   fHistChVSneCells(0),
   fHistChVSneClus(0),
@@ -98,9 +97,12 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) :
   }
 
   for (Int_t i = 0; i < 4; i++) {
+    fHistJetsPtNonBias[i] = 0;
     fHistJetsPtTrack[i] = 0;
     fHistJetsPtClus[i] = 0;
     fHistJetsPt[i] = 0;
+    fHistJetsPtArea[i] = 0;
+    fHistJetsPtAreaNonBias[i] = 0;
   }
 }
 
@@ -135,20 +137,22 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects()
     fHistClusCent->GetYaxis()->SetTitle("No. of clusters");
     fOutput->Add(fHistClusCent);
     
-    fHistMaxL1FastORCent = new TH2F("fHistMaxL1FastORCent","fHistMaxL1ClusCent", 100, 0, 100, 250, 0, 250);
-    fHistMaxL1FastORCent->GetXaxis()->SetTitle("Centrality [%]");
-    fHistMaxL1FastORCent->GetYaxis()->SetTitle("Maximum L1 FastOR");
-    fOutput->Add(fHistMaxL1FastORCent);
-    
-    fHistMaxL1ClusCent = new TH2F("fHistMaxL1ClusCent","fHistMaxL1ClusCent", 100, 0, 100, 250, 0, 250);
-    fHistMaxL1ClusCent->GetXaxis()->SetTitle("Centrality [%]");
-    fHistMaxL1ClusCent->GetYaxis()->SetTitle("Maximum L1 trigger cluster");
-    fOutput->Add(fHistMaxL1ClusCent);
-    
-    fHistMaxL1ThrCent = new TH2F("fHistMaxL1ThrCent","fHistMaxL1ThrCent", 100, 0, 100, 250, 0, 250);
-    fHistMaxL1ThrCent->GetXaxis()->SetTitle("Centrality [%]");
-    fHistMaxL1ThrCent->GetYaxis()->SetTitle("Maximum L1 threshold");
-    fOutput->Add(fHistMaxL1ThrCent);
+    if (fDoTrigger) {
+      fHistMaxL1FastORCent = new TH2F("fHistMaxL1FastORCent","fHistMaxL1ClusCent", 100, 0, 100, 250, 0, 250);
+      fHistMaxL1FastORCent->GetXaxis()->SetTitle("Centrality [%]");
+      fHistMaxL1FastORCent->GetYaxis()->SetTitle("Maximum L1 FastOR");
+      fOutput->Add(fHistMaxL1FastORCent);
+      
+      fHistMaxL1ClusCent = new TH2F("fHistMaxL1ClusCent","fHistMaxL1ClusCent", 100, 0, 100, 250, 0, 250);
+      fHistMaxL1ClusCent->GetXaxis()->SetTitle("Centrality [%]");
+      fHistMaxL1ClusCent->GetYaxis()->SetTitle("Maximum L1 trigger cluster");
+      fOutput->Add(fHistMaxL1ClusCent);
+      
+      fHistMaxL1ThrCent = new TH2F("fHistMaxL1ThrCent","fHistMaxL1ThrCent", 100, 0, 100, 250, 0, 250);
+      fHistMaxL1ThrCent->GetXaxis()->SetTitle("Centrality [%]");
+      fHistMaxL1ThrCent->GetYaxis()->SetTitle("Maximum L1 threshold");
+      fOutput->Add(fHistMaxL1ThrCent);
+    }
   }
 
   fHistTracksPt = new TH1F("fHistTracksPt","p_{T} spectrum of reconstructed tracks", fNbins, fMinBinPt, fMaxBinPt);
@@ -177,41 +181,28 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects()
     fHistClusPhiEta->GetYaxis()->SetTitle("#phi");
     fOutput->Add(fHistClusPhiEta);
   }
-       
-  fHistJetsPhiEta = new TH2F("fHistJetsPhiEta","Phi-Eta distribution of jets", 80, -2, 2, 128, 0, 6.4);
-  fHistJetsPhiEta->GetXaxis()->SetTitle("#eta");
-  fHistJetsPhiEta->GetYaxis()->SetTitle("#phi");
-  fOutput->Add(fHistJetsPhiEta);
-
-  fHistJetsPtArea = new TH2F("fHistJetsPtArea","p_{T} vs. area of reconstructed jets", fNbins, fMinBinPt, fMaxBinPt, 20, 0, fJetRadius * fJetRadius * TMath::Pi() * 1.5);
-  fHistJetsPtArea->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-  fHistJetsPtArea->GetYaxis()->SetTitle("area");
-  fOutput->Add(fHistJetsPtArea);
 
   if (fAnaType == kEMCAL) {
-    if (fDoEoverP) {
-      fHistEoverP = new TH2F("fHistEoverP","E/P vs. E", fNbins, fMinBinPt, fMaxBinPt, fNbins, 0, 10);
-      fHistEoverP->GetXaxis()->SetTitle("E [GeV]");
-      fHistEoverP->GetYaxis()->SetTitle("E/P [c]");
-      fOutput->Add(fHistEoverP);
-    }
    
     fHistCellsEnergy = new TH1F("fHistCellsEnergy","Energy spectrum of cells", fNbins, fMinBinPt, fMaxBinPt);
     fHistCellsEnergy->GetXaxis()->SetTitle("E [GeV]");
     fHistCellsEnergy->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistCellsEnergy);
     
-    fHistChVSneCells = new TH2F("fHistChVSneCells","Charged energy vs. neutral (cells) energy", fNbins, fMinBinPt * 4, fMaxBinPt * 4, fNbins, fMinBinPt * 4, fMaxBinPt * 4);
+    fHistChVSneCells = new TH2F("fHistChVSneCells","Charged energy vs. neutral (cells) energy", 
+                               fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5, fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5);
     fHistChVSneCells->GetXaxis()->SetTitle("E [GeV]");
     fHistChVSneCells->GetYaxis()->SetTitle("P [GeV/c]");
     fOutput->Add(fHistChVSneCells);
     
-    fHistChVSneClus = new TH2F("fHistChVSneClus","Charged energy vs. neutral (clusters) energy", fNbins, fMinBinPt * 4, fMaxBinPt * 4, fNbins, fMinBinPt * 4, fMaxBinPt * 4);
+    fHistChVSneClus = new TH2F("fHistChVSneClus","Charged energy vs. neutral (clusters) energy", 
+                              fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5, fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5);
     fHistChVSneClus->GetXaxis()->SetTitle("E [GeV]");
     fHistChVSneClus->GetYaxis()->SetTitle("P [GeV/c]");
     fOutput->Add(fHistChVSneClus);
     
-    fHistChVSneCorrCells = new TH2F("fHistChVSneCorrCells","Charged energy vs. neutral (corrected cells) energy", fNbins, fMinBinPt * 4, fMaxBinPt * 4, fNbins, fMinBinPt * 4, fMaxBinPt * 4);
+    fHistChVSneCorrCells = new TH2F("fHistChVSneCorrCells","Charged energy vs. neutral (corrected cells) energy", 
+                                   fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5, fNbins * 2.5, fMinBinPt , fMaxBinPt * 2.5);
     fHistChVSneCorrCells->GetXaxis()->SetTitle("E [GeV]");
     fHistChVSneCorrCells->GetYaxis()->SetTitle("P [GeV/c]");
     fOutput->Add(fHistChVSneCorrCells);
@@ -242,31 +233,60 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects()
   fHistTrackPhi[4]->SetLineColor(kBlack);
   fHistTrackEta[4]->SetLineColor(kBlack);
 
-  TString histname;
+  if (!fJetsName.IsNull()) {
 
-  for (Int_t i = 0; i < 4; i++) {
-    if (fAnaType == kEMCAL) {
-      histname = "fHistJetsPtClus_";
+    fHistJetsPhiEta = new TH2F("fHistJetsPhiEta","Phi-Eta distribution of jets", 80, -2, 2, 128, 0, 6.4);
+    fHistJetsPhiEta->GetXaxis()->SetTitle("#eta");
+    fHistJetsPhiEta->GetYaxis()->SetTitle("#phi");
+    fOutput->Add(fHistJetsPhiEta);
+
+    TString histname;
+
+    for (Int_t i = 0; i < 4; i++) {
+      histname = "fHistJetsPtNonBias_";
       histname += i;
-      fHistJetsPtClus[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt);
-      fHistJetsPtClus[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-      fHistJetsPtClus[i]->GetYaxis()->SetTitle("counts");
-      fOutput->Add(fHistJetsPtClus[i]);
-    }
+      fHistJetsPtNonBias[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5);
+      fHistJetsPtNonBias[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
+      fHistJetsPtNonBias[i]->GetYaxis()->SetTitle("counts");
+      fOutput->Add(fHistJetsPtNonBias[i]);
 
-    histname = "fHistJetsPtTrack_";
-    histname += i;
-    fHistJetsPtTrack[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt);
-    fHistJetsPtTrack[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-    fHistJetsPtTrack[i]->GetYaxis()->SetTitle("counts");
-    fOutput->Add(fHistJetsPtTrack[i]);
-
-    histname = "fHistJetsPt_";
-    histname += i;
-    fHistJetsPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt);
-    fHistJetsPt[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-    fHistJetsPt[i]->GetYaxis()->SetTitle("counts");
-    fOutput->Add(fHistJetsPt[i]);
+      histname = "fHistJetsPtTrack_";
+      histname += i;
+      fHistJetsPtTrack[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5);
+      fHistJetsPtTrack[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
+      fHistJetsPtTrack[i]->GetYaxis()->SetTitle("counts");
+      fOutput->Add(fHistJetsPtTrack[i]);
+
+      if (fAnaType == kEMCAL) {
+       histname = "fHistJetsPtClus_";
+       histname += i;
+       fHistJetsPtClus[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5);
+       fHistJetsPtClus[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
+       fHistJetsPtClus[i]->GetYaxis()->SetTitle("counts");
+       fOutput->Add(fHistJetsPtClus[i]);
+      }
+
+      histname = "fHistJetsPt_";
+      histname += i;
+      fHistJetsPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5);
+      fHistJetsPt[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
+      fHistJetsPt[i]->GetYaxis()->SetTitle("counts");
+      fOutput->Add(fHistJetsPt[i]);
+
+      histname = "fHistJetsPtAreaNonBias_";
+      histname += i;
+      fHistJetsPtAreaNonBias[i] = new TH2F(histname.Data(), histname.Data(), fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5, 20, 0, fJetRadius * fJetRadius * TMath::Pi() * 1.5);
+      fHistJetsPtAreaNonBias[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
+      fHistJetsPtAreaNonBias[i]->GetYaxis()->SetTitle("area");
+      fOutput->Add(fHistJetsPtAreaNonBias[i]);
+
+      histname = "fHistJetsPtArea_";
+      histname += i;
+      fHistJetsPtArea[i] = new TH2F(histname.Data(), histname.Data(), fNbins * 2.5, fMinBinPt, fMaxBinPt * 2.5, 20, 0, fJetRadius * fJetRadius * TMath::Pi() * 1.5);
+      fHistJetsPtArea[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
+      fHistJetsPtArea[i]->GetYaxis()->SetTitle("area");
+      fOutput->Add(fHistJetsPtArea[i]);
+    }
   }
 
   PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
@@ -275,13 +295,24 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects()
 //________________________________________________________________________
 Bool_t AliAnalysisTaskSAQA::RetrieveEventObjects()
 {
-  if(!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
+  // Retrieve event objects.
+
+  if (!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
     return kFALSE;
 
-  if (strcmp(fTrgClusName,"")) {
+  if (!fTrgClusName.IsNull() && fDoTrigger && !fTrgClusters) {
     fTrgClusters =  dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fTrgClusName));
     if (!fTrgClusters) {
-      AliWarning(Form("Could not retrieve trigger clusters!")); 
+      AliError(Form("%s: Could not retrieve trigger clusters %s!", GetName(), fTrgClusName.Data())); 
+      return kFALSE;
+    }
+    else {
+      TClass *cl = fTrgClusters->GetClass();
+      if (!cl->GetBaseClass("AliVCluster") && !cl->GetBaseClass("AliEmcalParticle")) {
+       AliError(Form("%s: Collection %s does not contain AliVCluster nor AliEmcalParticle objects!", GetName(), fTrgClusName.Data())); 
+       fTrgClusters = 0;
+       return kFALSE;
+      }
     }
   }
 
@@ -291,6 +322,8 @@ Bool_t AliAnalysisTaskSAQA::RetrieveEventObjects()
 //________________________________________________________________________
 Bool_t AliAnalysisTaskSAQA::FillHistograms()
 {
+  // Fill histograms.
+
   fHistCentrality->Fill(fCent);
   if (fTracks)
     fHistTracksCent->Fill(fCent, fTracks->GetEntriesFast());
@@ -312,19 +345,21 @@ Bool_t AliAnalysisTaskSAQA::FillHistograms()
     fHistChVSneClus->Fill(clusSum, trackSum);
     fHistChVSneCorrCells->Fill(cellCutSum, trackSum);
 
-    Float_t maxTrgClus = DoTriggerClusLoop();
-    fHistMaxL1ClusCent->Fill(fCent, maxTrgClus);
+    if (fDoTrigger) {
+      Float_t maxTrgClus = DoTriggerClusLoop();
+      fHistMaxL1ClusCent->Fill(fCent, maxTrgClus);
     
-    Int_t maxL1amp = -1;
-    Int_t maxL1thr = -1;
+      Int_t maxL1amp = -1;
+      Int_t maxL1thr = -1;
     
-    DoTriggerPrimitives(maxL1amp, maxL1thr);
-    
-    if (maxL1amp > -1) 
-      fHistMaxL1FastORCent->Fill(fCent, maxL1amp);
-    
-    if (maxL1thr > -1) 
-      fHistMaxL1ThrCent->Fill(fCent, maxL1thr);
+      DoTriggerPrimitives(maxL1amp, maxL1thr);
+      
+      if (maxL1amp > -1) 
+       fHistMaxL1FastORCent->Fill(fCent, maxL1amp);
+      
+      if (maxL1thr > -1) 
+       fHistMaxL1ThrCent->Fill(fCent, maxL1thr);
+    }
   }
 
   return kTRUE;
@@ -333,32 +368,30 @@ Bool_t AliAnalysisTaskSAQA::FillHistograms()
 //________________________________________________________________________
 void AliAnalysisTaskSAQA::DoCellLoop(Float_t &sum, Float_t &sum_cut)
 {
+  // Do cell loop.
+
   AliVCaloCells *cells = InputEvent()->GetEMCALCells();
 
   if (!cells)
     return;
 
-  Int_t ncells = cells->GetNumberOfCells();
+  const Int_t ncells = cells->GetNumberOfCells();
 
   for (Int_t pos = 0; pos < ncells; pos++) {
-
     Float_t amp = cells->GetAmplitude(pos);
-
     fHistCellsEnergy->Fill(amp);
-
     sum += amp;
-
     if (amp < fCellEnergyCut)
       continue;
-
     sum_cut += amp;
-
   } 
 }
 
 //________________________________________________________________________
 Float_t AliAnalysisTaskSAQA::DoClusterLoop()
 {
+  // Do cluster loop.
+
   if (!fCaloClusters)
     return 0;
 
@@ -368,15 +401,14 @@ Float_t AliAnalysisTaskSAQA::DoClusterLoop()
   Int_t nclusters =  fCaloClusters->GetEntriesFast();
 
   for (Int_t iClusters = 0; iClusters < nclusters; iClusters++) {
-    AliVCluster* cluster = dynamic_cast<AliVCluster*>(fCaloClusters->At(iClusters));
+    AliVCluster* cluster = static_cast<AliVCluster*>(fCaloClusters->At(iClusters));
     if (!cluster) {
       AliError(Form("Could not receive cluster %d", iClusters));
       continue;
     }  
-    
-    if (!(cluster->IsEMCAL())) continue;
 
-    if (!AcceptCluster(cluster, kTRUE)) continue;
+    if (!AcceptCluster(cluster, kTRUE))
+      continue;
 
     fHistClustersEnergy->Fill(cluster->E());
 
@@ -387,7 +419,7 @@ Float_t AliAnalysisTaskSAQA::DoClusterLoop()
     TVector3 clusVec(pos);
     fHistClusPhiEta->Fill(clusVec.Eta(), clusVec.Phi());
 
-  } //cluster loop 
+  }
 
   return sum;
 }
@@ -395,27 +427,32 @@ Float_t AliAnalysisTaskSAQA::DoClusterLoop()
 //________________________________________________________________________
 Float_t AliAnalysisTaskSAQA::DoTrackLoop()
 {
+  // Do track loop.
+
   if (!fTracks)
     return 0;
 
   Float_t sum = 0;
 
-  // Track loop 
   Int_t ntracks = fTracks->GetEntriesFast();
   Int_t nclusters = 0;
   if (fCaloClusters)
     nclusters = fCaloClusters->GetEntriesFast();
 
-  for(Int_t i = 0; i < ntracks; i++) {
+  for (Int_t i = 0; i < ntracks; i++) {
 
-    AliVTrack* track = dynamic_cast<AliVTrack*>(fTracks->At(i)); // pointer to reconstructed to track          
-    if(!track) {
+    AliVParticle* track = static_cast<AliVParticle*>(fTracks->At(i)); // pointer to reconstructed to track  
+
+    if (!track) {
       AliError(Form("Could not retrieve track %d",i)); 
       continue; 
     }
-    
-    if (!AcceptTrack(track, kTRUE)) continue;
 
+    AliVTrack* vtrack = dynamic_cast<AliVTrack*>(track); 
+    
+    if (vtrack && !AcceptTrack(vtrack, kTRUE)) 
+      continue;
+    
     fHistTracksPt->Fill(track->Pt());
 
     sum += track->P();
@@ -423,7 +460,6 @@ Float_t AliAnalysisTaskSAQA::DoTrackLoop()
     Int_t label = track->GetLabel();
       
     fHistTrPhiEta->Fill(track->Eta(), track->Phi());
-    fHistTrEmcPhiEta->Fill(track->GetTrackEtaOnEMCal(), track->GetTrackPhiOnEMCal());
     
     fHistTrackEta[4]->Fill(track->Eta());
     fHistTrackPhi[4]->Fill(track->Phi());
@@ -433,16 +469,10 @@ Float_t AliAnalysisTaskSAQA::DoTrackLoop()
       fHistTrackPhi[label]->Fill(track->Phi());
     }
 
-    if (!fDoEoverP)
+    if (!vtrack)
       continue;
 
-    Int_t clId = track->GetEMCALcluster();
-    if (clId > -1 && clId < nclusters && fCaloClusters) {
-      AliVCluster* cluster = dynamic_cast<AliVCluster*>(fCaloClusters->At(i));
-      if (cluster) {
-       fHistEoverP->Fill(cluster->E(), cluster->E() / track->P());
-      }
-    } 
+    fHistTrEmcPhiEta->Fill(vtrack->GetTrackEtaOnEMCal(), vtrack->GetTrackPhiOnEMCal());
   }
   
   return sum;
@@ -451,6 +481,8 @@ Float_t AliAnalysisTaskSAQA::DoTrackLoop()
 //________________________________________________________________________
 void AliAnalysisTaskSAQA::DoJetLoop()
 {
+  // Do jet loop.
+
   if (!fJets)
     return;
 
@@ -458,7 +490,7 @@ void AliAnalysisTaskSAQA::DoJetLoop()
 
   for (Int_t ij = 0; ij < njets; ij++) {
 
-    AliEmcalJet* jet = dynamic_cast<AliEmcalJet*>(fJets->At(ij));
+    AliEmcalJet* jet = static_cast<AliEmcalJet*>(fJets->At(ij));
 
     if (!jet) {
       AliError(Form("Could not receive jet %d", ij));
@@ -468,7 +500,8 @@ void AliAnalysisTaskSAQA::DoJetLoop()
     if (!AcceptJet(jet, kFALSE))
       continue;
 
-    fHistJetsPt[fCentBin]->Fill(jet->Pt());
+    fHistJetsPtNonBias[fCentBin]->Fill(jet->Pt());
+    fHistJetsPtAreaNonBias[fCentBin]->Fill(jet->Pt(), jet->Area());
 
     if (jet->MaxTrackPt() > fPtBiasJetTrack)
       fHistJetsPtTrack[fCentBin]->Fill(jet->Pt());
@@ -476,7 +509,12 @@ void AliAnalysisTaskSAQA::DoJetLoop()
     if (fAnaType == kEMCAL && jet->MaxClusterPt() > fPtBiasJetClus)
       fHistJetsPtClus[fCentBin]->Fill(jet->Pt());
     
-    fHistJetsPtArea->Fill(jet->Pt(), jet->Area());
+    if (!AcceptBiasJet(jet))
+      continue;
+
+    fHistJetsPt[fCentBin]->Fill(jet->Pt());
+    fHistJetsPtArea[fCentBin]->Fill(jet->Pt(), jet->Area());
+
     fHistJetsPhiEta->Fill(jet->Eta(), jet->Phi());
   }
 }
@@ -484,6 +522,8 @@ void AliAnalysisTaskSAQA::DoJetLoop()
 //________________________________________________________________________
 Float_t AliAnalysisTaskSAQA::DoTriggerClusLoop()
 {
+  // Do trigger cluster loop.
+
   if (!fTrgClusters)
     return 0;
 
@@ -491,7 +531,7 @@ Float_t AliAnalysisTaskSAQA::DoTriggerClusLoop()
   Float_t maxTrgClus = 0;
 
   for (Int_t iClusters = 0; iClusters < ntrgclusters; iClusters++) {
-    AliVCluster* cluster = dynamic_cast<AliVCluster*>(fTrgClusters->At(iClusters));
+    AliVCluster* cluster = static_cast<AliVCluster*>(fTrgClusters->At(iClusters));
     if (!cluster) {
       AliError(Form("Could not receive cluster %d", iClusters));
       continue;
@@ -509,6 +549,8 @@ Float_t AliAnalysisTaskSAQA::DoTriggerClusLoop()
 //________________________________________________________________________
 void AliAnalysisTaskSAQA::DoTriggerPrimitives(Int_t &maxL1amp, Int_t &maxL1thr)
 {
+  // Do trigger primitives loop.
+
   AliVCaloTrigger *triggers = InputEvent()->GetCaloTrigger("EMCAL");
 
   if (!triggers || triggers->GetEntries() == 0)