]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/EMCALJetTasks/AliAnalysisTaskSAJF.cxx
adjustments from Salvatore
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / AliAnalysisTaskSAJF.cxx
index d54d6ef48b93688308e6301398ebad429eb07126..8f636bfd17429faa1a39af7c51422c0b23283428 100644 (file)
@@ -18,6 +18,7 @@
 #include "AliCentrality.h"
 #include "AliVCluster.h"
 #include "AliVParticle.h"
+#include "AliVTrack.h"
 #include "AliEmcalJet.h"
 #include "AliVEventHandler.h"
 #include "AliLog.h"
@@ -28,12 +29,13 @@ ClassImp(AliAnalysisTaskSAJF)
 
 //________________________________________________________________________
 AliAnalysisTaskSAJF::AliAnalysisTaskSAJF() : 
-  AliAnalysisTaskEmcal("AliAnalysisTaskSAJF"),
+  AliAnalysisTaskEmcalJet("AliAnalysisTaskSAJF"),
   fMinRC2LJ(1.0),
   fEmbJetsName("EmbJets"),
   fRandTracksName("TracksRandomized"),
   fRandCaloName("CaloClustersRandomized"),
   fRhoName("Rho"),
+  fSkipEventsWithNoJets(kTRUE),
   fEmbJets(0),
   fRandTracks(0),
   fRandCaloClusters(0),
@@ -55,9 +57,6 @@ AliAnalysisTaskSAJF::AliAnalysisTaskSAJF() :
     fHistJetPhiEta[i] = 0;
     fHistJetsPt[i] = 0;
     fHistJetsPtArea[i] = 0;
-    fHistJetsPtTrack[i] = 0;
-    fHistJetsPtClus[i] = 0;
-    fHistJetsPtNonBias[i] = 0;
     fHistLeadingJetPt[i] = 0;
     fHist2LeadingJetPt[i] = 0;
     fHistJetsNEFvsPt[i] = 0;
@@ -68,9 +67,6 @@ AliAnalysisTaskSAJF::AliAnalysisTaskSAJF() :
     fHistClusEtBkg[i] = 0;
     fHistRho[i] = 0;
     fHistCorrJetsPt[i] = 0;
-    fHistCorrJetsPtClus[i] = 0;
-    fHistCorrJetsPtTrack[i] = 0;
-    fHistCorrJetsPtNonBias[i] = 0;
     fHistCorrLeadingJetPt[i] = 0;
     fHistRCPt[i] = 0;
     fHistRCPtExLJ[i] = 0;
@@ -87,12 +83,13 @@ AliAnalysisTaskSAJF::AliAnalysisTaskSAJF() :
 
 //________________________________________________________________________
 AliAnalysisTaskSAJF::AliAnalysisTaskSAJF(const char *name) : 
-  AliAnalysisTaskEmcal(name),
+  AliAnalysisTaskEmcalJet(name),
   fMinRC2LJ(1.0),
   fEmbJetsName("EmbJets"),
   fRandTracksName("TracksRandomized"),
   fRandCaloName("CaloClustersRandomized"),
   fRhoName("Rho"),
+  fSkipEventsWithNoJets(kTRUE),
   fEmbJets(0),
   fRandTracks(0),
   fRandCaloClusters(0),
@@ -113,9 +110,6 @@ AliAnalysisTaskSAJF::AliAnalysisTaskSAJF(const char *name) :
     fHistJetPhiEta[i] = 0;
     fHistJetsPt[i] = 0;
     fHistJetsPtArea[i] = 0;
-    fHistJetsPtTrack[i] = 0;
-    fHistJetsPtClus[i] = 0;
-    fHistJetsPtNonBias[i] = 0;
     fHistLeadingJetPt[i] = 0;
     fHist2LeadingJetPt[i] = 0;
     fHistJetsNEFvsPt[i] = 0;
@@ -126,9 +120,6 @@ AliAnalysisTaskSAJF::AliAnalysisTaskSAJF(const char *name) :
     fHistClusEtBkg[i] = 0;
     fHistRho[i] = 0;
     fHistCorrJetsPt[i] = 0;
-    fHistCorrJetsPtClus[i] = 0;
-    fHistCorrJetsPtTrack[i] = 0;
-    fHistCorrJetsPtNonBias[i] = 0;
     fHistCorrLeadingJetPt[i] = 0;
     fHistRCPt[i] = 0;
     fHistRCPtExLJ[i] = 0;
@@ -152,11 +143,11 @@ AliAnalysisTaskSAJF::~AliAnalysisTaskSAJF()
 //________________________________________________________________________
 void AliAnalysisTaskSAJF::UserCreateOutputObjects()
 {
-  AliAnalysisTaskEmcal::UserCreateOutputObjects();
+  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
 
   // Create histograms
 
-  const Float_t binWidth = (fMaxPt - fMinPt) / fNbins;
+  const Float_t binWidth = (fMaxBinPt - fMinBinPt) / fNbins;
   
   OpenFile(1);
   fOutput = new TList();
@@ -167,45 +158,46 @@ void AliAnalysisTaskSAJF::UserCreateOutputObjects()
   fHistCentrality->GetYaxis()->SetTitle("counts");
   fOutput->Add(fHistCentrality);
 
-  fHistRejectedEvents = new TH1F("fHistRejectedEvents","fHistRejectedEvents", 5, 0, 5);
+  fHistRejectedEvents = new TH1F("fHistRejectedEvents","fHistRejectedEvents", 6, 0, 6);
   fHistRejectedEvents->GetXaxis()->SetTitle("Reason");
   fHistRejectedEvents->GetYaxis()->SetTitle("counts");
   fHistRejectedEvents->GetXaxis()->SetBinLabel(1, "Rho <= 0");
   fHistRejectedEvents->GetXaxis()->SetBinLabel(2, "Max Jet <= 0");
   fHistRejectedEvents->GetXaxis()->SetBinLabel(3, "Max Jet not found");
+  fHistRejectedEvents->GetXaxis()->SetBinLabel(4, "No jets");
   fOutput->Add(fHistRejectedEvents);
 
-  fHistRhoVSleadJetPt = new TH2F("fHistRhoVSleadJetPt","fHistRhoVSleadJetPt", fNbins, fMinPt, fMaxPt, fNbins, fMinPt, fMaxPt);
+  fHistRhoVSleadJetPt = new TH2F("fHistRhoVSleadJetPt","fHistRhoVSleadJetPt", fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt);
   fHistRhoVSleadJetPt->GetXaxis()->SetTitle("#rho * area [GeV/c]");
   fHistRhoVSleadJetPt->GetYaxis()->SetTitle("Leading jet p_{T} [GeV/c]");
   fOutput->Add(fHistRhoVSleadJetPt);
 
-  fHistRCPhiEta = new TH2F("fHistRCPhiEta","Phi-Eta distribution of rigid cones", 20, -2, 2, 32, 0, 6.4);
+  fHistRCPhiEta = new TH2F("fHistRCPhiEta","Phi-Eta distribution of rigid cones", 40, -2, 2, 64, 0, 6.4);
   fHistRCPhiEta->GetXaxis()->SetTitle("#eta");
   fHistRCPhiEta->GetYaxis()->SetTitle("#phi");
   fOutput->Add(fHistRCPhiEta);
 
-  fHistRCPtExLJVSDPhiLJ = new TH2F("fHistRCPtExLJVSDPhiLJ","fHistRCPtExLJVSDPhiLJ", fNbins, fMinPt, fMaxPt, 128, -1.6, 4.8);
+  fHistRCPtExLJVSDPhiLJ = new TH2F("fHistRCPtExLJVSDPhiLJ","fHistRCPtExLJVSDPhiLJ", fNbins, fMinBinPt, fMaxBinPt, 128, -1.6, 4.8);
   fHistRCPtExLJVSDPhiLJ->GetXaxis()->SetTitle("rigid cone p_{T} [GeV/c]");
   fHistRCPtExLJVSDPhiLJ->GetYaxis()->SetTitle("#Delta#phi");
   fOutput->Add(fHistRCPtExLJVSDPhiLJ);
 
-  fHistRhoVSRCPt = new TH2F("fHistRhoVSRCPt","fHistRhoVSRCPt", fNbins, fMinPt, fMaxPt, fNbins, fMinPt, fMaxPt);
+  fHistRhoVSRCPt = new TH2F("fHistRhoVSRCPt","fHistRhoVSRCPt", fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt);
   fHistRhoVSRCPt->GetXaxis()->SetTitle("#rho * area [GeV/c]");
   fHistRhoVSRCPt->GetYaxis()->SetTitle("rigid cone p_{T} [GeV/c]");
   fOutput->Add(fHistRhoVSRCPt);
 
-  fHistEmbJetPhiEta = new TH2F("fHistEmbJetPhiEta","Phi-Eta distribution of embedded jets", 20, -2, 2, 32, 0, 6.4);
+  fHistEmbJetPhiEta = new TH2F("fHistEmbJetPhiEta","Phi-Eta distribution of embedded jets", 40, -2, 2, 64, 0, 6.4);
   fHistEmbJetPhiEta->GetXaxis()->SetTitle("#eta");
   fHistEmbJetPhiEta->GetYaxis()->SetTitle("#phi");
   fOutput->Add(fHistEmbJetPhiEta);
 
-  fHistEmbPartPhiEta = new TH2F("fHistEmbPartPhiEta","Phi-Eta distribution of embedded particles", 20, -2, 2, 32, 0, 6.4);
+  fHistEmbPartPhiEta = new TH2F("fHistEmbPartPhiEta","Phi-Eta distribution of embedded particles", 40, -2, 2, 64, 0, 6.4);
   fHistEmbPartPhiEta->GetXaxis()->SetTitle("#eta");
   fHistEmbPartPhiEta->GetYaxis()->SetTitle("#phi");
   fOutput->Add(fHistEmbPartPhiEta);
 
-  fHistRhoVSEmbBkg = new TH2F("fHistRhoVSEmbBkg","fHistRhoVSEmbBkg", fNbins, fMinPt, fMaxPt, fNbins, fMinPt, fMaxPt);
+  fHistRhoVSEmbBkg = new TH2F("fHistRhoVSEmbBkg","fHistRhoVSEmbBkg", fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt);
   fHistRhoVSEmbBkg->GetXaxis()->SetTitle("rho * area [GeV/c]");
   fHistRhoVSEmbBkg->GetYaxis()->SetTitle("background of embedded track [GeV/c]");
   fOutput->Add(fHistRhoVSEmbBkg);
@@ -215,65 +207,42 @@ void AliAnalysisTaskSAJF::UserCreateOutputObjects()
   for (Int_t i = 0; i < 4; i++) {
     histname = "fHistJetPhiEta_";
     histname += i;
-    fHistJetPhiEta[i] = new TH2F(histname.Data(), histname.Data(), 20, -2, 2, 32, 0, 6.4);
+    fHistJetPhiEta[i] = new TH2F(histname.Data(), histname.Data(), 40, -2, 2, 64, 0, 6.4);
     fHistJetPhiEta[i]->GetXaxis()->SetTitle("#eta");
     fHistJetPhiEta[i]->GetYaxis()->SetTitle("#phi");
     fOutput->Add(fHistJetPhiEta[i]);
 
     histname = "fHistJetsPt_";
     histname += i;
-    fHistJetsPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt);
+    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 = "fHistJetsPtArea_";
     histname += i;
-    fHistJetsPtArea[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt, 20, 0, fJetRadius * fJetRadius * TMath::Pi() * 1.5);
+    fHistJetsPtArea[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, 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]);
 
-    if (fAnaType == kEMCAL) {
-      histname = "fHistJetsPtClus_";
-      histname += i;
-      fHistJetsPtClus[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt);
-      fHistJetsPtClus[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-      fHistJetsPtClus[i]->GetYaxis()->SetTitle("counts");
-      fOutput->Add(fHistJetsPtClus[i]);
-    }
-
-    histname = "fHistJetsPtTrack_";
-    histname += i;
-    fHistJetsPtTrack[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt);
-    fHistJetsPtTrack[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-    fHistJetsPtTrack[i]->GetYaxis()->SetTitle("counts");
-    fOutput->Add(fHistJetsPtTrack[i]);
-
-    histname = "fHistJetsPtNonBias_";
-    histname += i;
-    fHistJetsPtNonBias[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt);
-    fHistJetsPtNonBias[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-    fHistJetsPtNonBias[i]->GetYaxis()->SetTitle("counts");
-    fOutput->Add(fHistJetsPtNonBias[i]);
-
     histname = "fHistLeadingJetPt_";
     histname += i;
-    fHistLeadingJetPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt);
+    fHistLeadingJetPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt);
     fHistLeadingJetPt[i]->GetXaxis()->SetTitle("p_{T} [GeV]");
     fHistLeadingJetPt[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistLeadingJetPt[i]);
 
     histname = "fHist2LeadingJetPt_";
     histname += i;
-    fHist2LeadingJetPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt);
+    fHist2LeadingJetPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt);
     fHist2LeadingJetPt[i]->GetXaxis()->SetTitle("p_{T} [GeV]");
     fHist2LeadingJetPt[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHist2LeadingJetPt[i]);
 
     histname = "fHistJetsZvsPt_";
     histname += i;
-    fHistJetsZvsPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, 0, 1.2, fNbins, fMinPt, fMaxPt);
+    fHistJetsZvsPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, 0, 1.2, fNbins, fMinBinPt, fMaxBinPt);
     fHistJetsZvsPt[i]->GetXaxis()->SetTitle("Z");
     fHistJetsZvsPt[i]->GetYaxis()->SetTitle("p_{T} [GeV/c]");
     fOutput->Add(fHistJetsZvsPt[i]);
@@ -281,21 +250,21 @@ void AliAnalysisTaskSAJF::UserCreateOutputObjects()
     if (fAnaType == kEMCAL) {
       histname = "fHistJetsNEFvsPt_";
       histname += i;
-      fHistJetsNEFvsPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, 0, 1.2, fNbins, fMinPt, fMaxPt);
+      fHistJetsNEFvsPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, 0, 1.2, fNbins, fMinBinPt, fMaxBinPt);
       fHistJetsNEFvsPt[i]->GetXaxis()->SetTitle("NEF");
       fHistJetsNEFvsPt[i]->GetYaxis()->SetTitle("p_{T} [GeV/c]");
       fOutput->Add(fHistJetsNEFvsPt[i]);
 
       histname = "fHistClusEtLJ_";
       histname += i;
-      fHistClusEtLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt / 5);
+      fHistClusEtLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt / 5);
       fHistClusEtLJ[i]->GetXaxis()->SetTitle("E_{T} [GeV]");
       fHistClusEtLJ[i]->GetYaxis()->SetTitle("counts");
       fOutput->Add(fHistClusEtLJ[i]);
       
       histname = "fHistClusEtBkg_";
       histname += i;
-      fHistClusEtBkg[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt / 5);
+      fHistClusEtBkg[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt / 5);
       fHistClusEtBkg[i]->GetXaxis()->SetTitle("E_{T} [GeV]");
       fHistClusEtBkg[i]->GetYaxis()->SetTitle("counts");
       fOutput->Add(fHistClusEtBkg[i]);
@@ -303,121 +272,98 @@ void AliAnalysisTaskSAJF::UserCreateOutputObjects()
 
     histname = "fHistTracksPtLJ_";
     histname += i;
-    fHistTracksPtLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt / 5);
+    fHistTracksPtLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt / 5);
     fHistTracksPtLJ[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
     fHistTracksPtLJ[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistTracksPtLJ[i]);
 
     histname = "fHistTracksPtBkg_";
     histname += i;
-    fHistTracksPtBkg[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt / 5);
+    fHistTracksPtBkg[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt / 5);
     fHistTracksPtBkg[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
     fHistTracksPtBkg[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistTracksPtBkg[i]);
 
     histname = "fHistRho_";
     histname += i;
-    fHistRho[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt * 2);
+    fHistRho[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt * 2);
     fHistRho[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
     fHistRho[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistRho[i]);
 
     histname = "fHistCorrJetsPt_";
     histname += i;
-    fHistCorrJetsPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2, -fMaxPt, fMaxPt);
+    fHistCorrJetsPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2, -fMaxBinPt, fMaxBinPt);
     fHistCorrJetsPt[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
     fHistCorrJetsPt[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistCorrJetsPt[i]);
 
-    if (fAnaType == kEMCAL) {
-      histname = "fHistCorrJetsPtClus_";
-      histname += i;
-      fHistCorrJetsPtClus[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2, -fMaxPt, fMaxPt);
-      fHistCorrJetsPtClus[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-      fHistCorrJetsPtClus[i]->GetYaxis()->SetTitle("counts");
-      fOutput->Add(fHistCorrJetsPtClus[i]);
-    }
-
-    histname = "fHistCorrJetsPtTrack_";
-    histname += i;
-    fHistCorrJetsPtTrack[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2, -fMaxPt, fMaxPt);
-    fHistCorrJetsPtTrack[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-    fHistCorrJetsPtTrack[i]->GetYaxis()->SetTitle("counts");
-    fOutput->Add(fHistCorrJetsPtTrack[i]);
-
-    histname = "fHistCorrJetsPtNonBias_";
-    histname += i;
-    fHistCorrJetsPtNonBias[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2, -fMaxPt, fMaxPt);
-    fHistCorrJetsPtNonBias[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
-    fHistCorrJetsPtNonBias[i]->GetYaxis()->SetTitle("counts");
-    fOutput->Add(fHistCorrJetsPtNonBias[i]);
-
     histname = "fHistCorrLeadingJetPt_";
     histname += i;
-    fHistCorrLeadingJetPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2, -fMaxPt, fMaxPt);
+    fHistCorrLeadingJetPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2, -fMaxBinPt, fMaxBinPt);
     fHistCorrLeadingJetPt[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]");
     fHistCorrLeadingJetPt[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistCorrLeadingJetPt[i]);
     
     histname = "fHistRCPt_";
     histname += i;
-    fHistRCPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt * 2);
+    fHistRCPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt * 2);
     fHistRCPt[i]->GetXaxis()->SetTitle("rigid cone p_{T} [GeV/c]");
     fHistRCPt[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistRCPt[i]);
 
     histname = "fHistRCPtExLJ_";
     histname += i;
-    fHistRCPtExLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt * 2);
+    fHistRCPtExLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt * 2);
     fHistRCPtExLJ[i]->GetXaxis()->SetTitle("rigid cone p_{T} [GeV/c]");
     fHistRCPtExLJ[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistRCPtExLJ[i]);
 
     histname = "fHistRCPtRand_";
     histname += i;
-    fHistRCPtRand[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt * 2);
+    fHistRCPtRand[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt * 2);
     fHistRCPtRand[i]->GetXaxis()->SetTitle("rigid cone p_{T} [GeV/c]");
     fHistRCPtRand[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistRCPtRand[i]);
 
     histname = "fHistDeltaPtRC_";
     histname += i;
-    fHistDeltaPtRC[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt - fMaxPt / 2 + binWidth / 2, fMinPt + fMaxPt / 2 + binWidth / 2);
+    fHistDeltaPtRC[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt - fMaxBinPt / 2 + binWidth / 2, fMinBinPt + fMaxBinPt / 2 + binWidth / 2);
     fHistDeltaPtRC[i]->GetXaxis()->SetTitle("#deltap_{T} [GeV/c]");
     fHistDeltaPtRC[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistDeltaPtRC[i]);
 
     histname = "fHistDeltaPtRCExLJ_";
     histname += i;
-    fHistDeltaPtRCExLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt - fMaxPt / 2 + binWidth / 2, fMinPt + fMaxPt / 2 + binWidth / 2);
+    fHistDeltaPtRCExLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt - fMaxBinPt / 2 + binWidth / 2, fMinBinPt + fMaxBinPt / 2 + binWidth / 2);
     fHistDeltaPtRCExLJ[i]->GetXaxis()->SetTitle("#deltap_{T} [GeV/c]");
     fHistDeltaPtRCExLJ[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistDeltaPtRCExLJ[i]);
 
     histname = "fHistDeltaPtRCRand_";
     histname += i;
-    fHistDeltaPtRCRand[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt - fMaxPt / 2 + binWidth / 2, fMinPt + fMaxPt / 2 + binWidth / 2);
+    fHistDeltaPtRCRand[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt - fMaxBinPt / 2 + binWidth / 2, fMinBinPt + fMaxBinPt / 2 + binWidth / 2);
     fHistDeltaPtRCRand[i]->GetXaxis()->SetTitle("#deltap_{T} [GeV/c]");
     fHistDeltaPtRCRand[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistDeltaPtRCRand[i]);
 
     histname = "fHistEmbJets_";
     histname += i;
-    fHistEmbJets[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt);
+    fHistEmbJets[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt);
     fHistEmbJets[i]->GetXaxis()->SetTitle("embedded jet p_{T} [GeV/c]");
     fHistEmbJets[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistEmbJets[i]);
 
     histname = "fHistEmbPart_";
     histname += i;
-    fHistEmbPart[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt, fMaxPt);
+    fHistEmbPart[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt);
     fHistEmbPart[i]->GetXaxis()->SetTitle("embedded particle p_{T} [GeV/c]");
     fHistEmbPart[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistEmbPart[i]);
 
     histname = "fHistDeltaPtEmb_";
     histname += i;
-    fHistDeltaPtEmb[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinPt - fMaxPt / 2 + binWidth / 2, fMinPt + fMaxPt / 2 + binWidth / 2);
+    fHistDeltaPtEmb[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt - fMaxBinPt / 2 + binWidth / 2, fMinBinPt + fMaxBinPt / 2 + binWidth / 2);
     fHistDeltaPtEmb[i]->GetXaxis()->SetTitle("#deltap_{T} [GeV/c]");
     fHistDeltaPtEmb[i]->GetYaxis()->SetTitle("counts");
     fOutput->Add(fHistDeltaPtEmb[i]);
@@ -427,9 +373,23 @@ void AliAnalysisTaskSAJF::UserCreateOutputObjects()
 }
 
 //________________________________________________________________________
-void AliAnalysisTaskSAJF::RetrieveEventObjects()
+Bool_t AliAnalysisTaskSAJF::RetrieveEventObjects()
 {
-  AliAnalysisTaskEmcal::RetrieveEventObjects();
+  if(!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
+    return kFALSE;
+
+  fRho = -1;
+  
+  if (strcmp(fRhoName,"")) {
+    TParameter<Double_t> *rho = dynamic_cast<TParameter<Double_t>*>(InputEvent()->FindListObject(fRhoName));
+  
+    if (rho) {
+      fRho = rho->GetVal();
+    }
+    else {
+      AliWarning(Form("Could not retrieve rho %s!", fRhoName.Data()));
+    }
+  }
   
   if (strcmp(fEmbJetsName,"")) {
     fEmbJets = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fEmbJetsName));
@@ -452,27 +412,15 @@ void AliAnalysisTaskSAJF::RetrieveEventObjects()
     }
   }
 
-
-  fRho = -1;
-  
-  if (strcmp(fRhoName,"")) {
-    TParameter<Double_t> *rho = dynamic_cast<TParameter<Double_t>*>(InputEvent()->FindListObject(fRhoName));
-  
-    if (rho) {
-      fRho = rho->GetVal();
-    }
-    else {
-      AliWarning(Form("Could not retrieve rho %s!", fRhoName.Data()));
-    }
-  }
+  return kTRUE;
 }
 
 //________________________________________________________________________
-void AliAnalysisTaskSAJF::FillHistograms()
+Bool_t AliAnalysisTaskSAJF::FillHistograms()
 {
   if (fRho < 0) {
-    fHistRejectedEvents->Fill("Rho <= 0",1);
-    return;
+    fHistRejectedEvents->Fill("Rho <= 0", 1);
+    return kFALSE;
   }
 
   Int_t maxJetIndex  = -1;
@@ -482,40 +430,46 @@ void AliAnalysisTaskSAJF::FillHistograms()
   // General histograms
   // _________________________________
 
-  DoJetLoop(maxJetIndex, max2JetIndex);
+  GetLeadingJets(maxJetIndex, max2JetIndex);
   
-  if (maxJetIndex < 0) {
-    fHistRejectedEvents->Fill("Max Jet <= 0",1);
-    return;
+  if (fSkipEventsWithNoJets && maxJetIndex < 0) {
+    fHistRejectedEvents->Fill("No jets", 1);
+    return kFALSE;
   }
 
   AliEmcalJet* jet = dynamic_cast<AliEmcalJet*>(fJets->At(maxJetIndex));
-  if (!jet) {
-    fHistRejectedEvents->Fill("Max Jet not found",1);
-    return;
+  if (fSkipEventsWithNoJets && !jet) {
+    fHistRejectedEvents->Fill("Max Jet not found", 1);
+    return kFALSE;
   }
 
-  fHistCentrality->Fill(fCent);
+  Float_t maxJetCorrPt = 0; 
+
+  if (jet)
+    maxJetCorrPt = jet->Pt() - fRho * jet->Area();
 
-  fHistLeadingJetPt[fCentBin]->Fill(jet->Pt());
-  fHistRhoVSleadJetPt->Fill(fRho * jet->Area(), jet->Pt());
+  if (fSkipEventsWithNoJets && maxJetCorrPt <= 0) {
+    fHistRejectedEvents->Fill("Max Jet <= 0", 1);
+    return kFALSE;
+  }
 
-  jet->SortConstituents();
+  fHistCentrality->Fill(fCent);
+  fHistRho[fCentBin]->Fill(fRho);
+
+  if (jet) {
+    fHistLeadingJetPt[fCentBin]->Fill(jet->Pt());
+    fHistRhoVSleadJetPt->Fill(fRho * jet->Area(), jet->Pt());
+    fHistCorrLeadingJetPt[fCentBin]->Fill(maxJetCorrPt);
+  }
   
   AliEmcalJet* jet2 = 0;
   if (max2JetIndex >= 0)
     jet2 = dynamic_cast<AliEmcalJet*>(fJets->At(max2JetIndex));
 
-  if (jet2) {
+  if (jet2)
     fHist2LeadingJetPt[fCentBin]->Fill(jet2->Pt());
-    jet2->SortConstituents();
-  }
-
-  fHistRho[fCentBin]->Fill(fRho);
 
-  Float_t maxJetCorrPt = jet->Pt() - fRho * jet->Area();
-  if (maxJetCorrPt > 0)
-    fHistCorrLeadingJetPt[fCentBin]->Fill(maxJetCorrPt);
+  DoJetLoop();
   
   DoTrackLoop(maxJetIndex);
 
@@ -571,7 +525,7 @@ void AliAnalysisTaskSAJF::FillHistograms()
   // _________________________________
 
   if (!fEmbJets)
-    return;
+    return kTRUE;
 
   AliEmcalJet *embJet  = 0;
   TObject     *maxPart = 0;
@@ -595,13 +549,13 @@ void AliAnalysisTaskSAJF::FillHistograms()
       fHistEmbPartPhiEta->Fill(clusVec.Eta(), clusVec.Phi());
     }
     else {
-      AliVParticle *track = dynamic_cast<AliVParticle*>(maxPart);
+      AliVTrack *track = dynamic_cast<AliVTrack*>(maxPart);
       if (track) {
        fHistEmbPartPhiEta->Fill(track->Eta(), track->Phi());
       }
       else {
-       AliWarning(Form("%s - Embedded particle type not found or not recognized (neither AliVCluster nor AliVParticle)!", GetName()));
-       return;
+       AliWarning(Form("%s - Embedded particle type not found or not recognized (neither AliVCluster nor AliVTrack)!", GetName()));
+       return kTRUE;
       }
     }
 
@@ -609,10 +563,12 @@ void AliAnalysisTaskSAJF::FillHistograms()
   else {
     AliWarning(Form("%s - Embedded jet not found in the event!", GetName()));
   }
+
+  return kTRUE;
 }
 
 //________________________________________________________________________
-void AliAnalysisTaskSAJF::DoJetLoop(Int_t &maxJetIndex, Int_t &max2JetIndex)
+void AliAnalysisTaskSAJF::GetLeadingJets(Int_t &maxJetIndex, Int_t &max2JetIndex)
 {
   if (!fJets)
     return;
@@ -635,21 +591,41 @@ void AliAnalysisTaskSAJF::DoJetLoop(Int_t &maxJetIndex, Int_t &max2JetIndex)
 
     Float_t corrPt = jet->Pt() - fRho * jet->Area();
 
-    fHistJetsPtNonBias[fCentBin]->Fill(jet->Pt());
-    fHistCorrJetsPtNonBias[fCentBin]->Fill(corrPt);
-
-    if (jet->MaxTrackPt() > fPtBiasJetTrack) {
-      fHistJetsPtTrack[fCentBin]->Fill(jet->Pt());
-      fHistCorrJetsPtTrack[fCentBin]->Fill(corrPt);
+    if (maxJetIndex == -1 || maxJetPt < corrPt) {
+      max2JetPt = maxJetPt;
+      max2JetIndex = maxJetIndex;
+      maxJetPt = corrPt;
+      maxJetIndex = ij;
     }
-    
-    if (fAnaType == kEMCAL && jet->MaxClusterPt() > fPtBiasJetClus) {
-      fHistJetsPtClus[fCentBin]->Fill(jet->Pt());
-      fHistCorrJetsPtClus[fCentBin]->Fill(corrPt);
+    else if (max2JetIndex == -1 || max2JetPt < corrPt) {
+      max2JetPt = corrPt;
+      max2JetIndex = ij;
     }
-    
-    if (jet->MaxTrackPt() < fPtBiasJetTrack && (fAnaType == kTPC || jet->MaxClusterPt() < fPtBiasJetClus))
-       continue;
+  } //jet loop 
+}
+
+
+//________________________________________________________________________
+void AliAnalysisTaskSAJF::DoJetLoop()
+{
+  if (!fJets)
+    return;
+
+  Int_t njets = fJets->GetEntriesFast();
+
+  for (Int_t ij = 0; ij < njets; ij++) {
+
+    AliEmcalJet* jet = dynamic_cast<AliEmcalJet*>(fJets->At(ij));
+
+    if (!jet) {
+      AliError(Form("Could not receive jet %d", ij));
+      continue;
+    }  
+
+    if (!AcceptJet(jet))
+      continue;
+
+    Float_t corrPt = jet->Pt() - fRho * jet->Area();
 
     fHistJetsPt[fCentBin]->Fill(jet->Pt());
     fHistJetsPtArea[fCentBin]->Fill(corrPt, jet->Area());
@@ -679,17 +655,6 @@ void AliAnalysisTaskSAJF::DoJetLoop(Int_t &maxJetIndex, Int_t &max2JetIndex)
        }
       }
     }
-
-    if (maxJetPt < jet->Pt()) {
-      max2JetPt = maxJetPt;
-      max2JetIndex = maxJetIndex;
-      maxJetPt = jet->Pt();
-      maxJetIndex = ij;
-    }
-    else if (max2JetPt < jet->Pt()) {
-      max2JetPt = jet->Pt();
-      max2JetIndex = ij;
-    }
   } //jet loop 
 }
 
@@ -779,7 +744,7 @@ void AliAnalysisTaskSAJF::DoTrackLoop(Int_t maxJetIndex)
   Int_t ntracks = fTracks->GetEntriesFast();
 
   for(Int_t iTracks = 0; iTracks < ntracks; iTracks++) {
-    AliVParticle* track = dynamic_cast<AliVParticle*>(fTracks->At(iTracks));         
+    AliVTrack* track = dynamic_cast<AliVTrack*>(fTracks->At(iTracks));         
     if(!track) {
       AliError(Form("Could not retrieve track %d",iTracks)); 
       continue; 
@@ -905,7 +870,7 @@ void AliAnalysisTaskSAJF::GetRigidCone(Float_t &pt, Float_t &eta, Float_t &phi,
   if (tracks) {
     Int_t ntracks = tracks->GetEntriesFast();
     for(Int_t iTracks = 0; iTracks < ntracks; iTracks++) {
-      AliVParticle* track = dynamic_cast<AliVParticle*>(tracks->At(iTracks));         
+      AliVTrack* track = dynamic_cast<AliVTrack*>(tracks->At(iTracks));         
       if(!track) {
        AliError(Form("Could not retrieve track %d",iTracks)); 
        continue; 
@@ -931,7 +896,7 @@ void AliAnalysisTaskSAJF::GetRigidCone(Float_t &pt, Float_t &eta, Float_t &phi,
 //________________________________________________________________________
 void AliAnalysisTaskSAJF::Init()
 {
-  AliAnalysisTaskEmcal::Init();
+  AliAnalysisTaskEmcalJet::Init();
 
   const Float_t semiDiag = TMath::Sqrt((fMaxPhi - fMinPhi) * (fMaxPhi - fMinPhi) + (fMaxEta - fMinEta) * (fMaxEta - fMinEta)) / 2;
   if (fMinRC2LJ > semiDiag * 0.5) {