]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
adjustments from Salvatore
authorloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 3 Jun 2012 14:40:39 +0000 (14:40 +0000)
committerloizides <loizides@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 3 Jun 2012 14:40:39 +0000 (14:40 +0000)
PWGGA/EMCALJetTasks/AliAnalysisTaskSAJF.cxx
PWGGA/EMCALJetTasks/AliAnalysisTaskSAJF.h
PWGGA/EMCALJetTasks/AliAnalysisTaskSAQA.cxx
PWGGA/EMCALJetTasks/AliAnalysisTaskSAQA.h
PWGGA/EMCALJetTasks/AliJetResponseMaker.cxx
PWGGA/EMCALJetTasks/AliJetResponseMaker.h

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) {
index 1d611012e3dc02d58b95d7e75a466d8c6d53d790..1bbae4424955e9ba1d09dea9e2120413250319c8 100644 (file)
@@ -8,9 +8,9 @@ class TString;
 class TH1F;
 class TH2F;
 
-#include "AliAnalysisTaskEmcal.h"
+#include "AliAnalysisTaskEmcalJet.h"
 
-class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcal {
+class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcalJet {
  public:
 
   AliAnalysisTaskSAJF();
@@ -21,17 +21,19 @@ class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcal {
   void                        Terminate(Option_t *option);
   void                        Init();
 
-  void                        SetJetMinRC2LJ(Float_t d)                            { fMinRC2LJ       = d          ; } 
-  void                        SetEmbJetsName(const char *n)                        { fEmbJetsName    = n          ; }
-  void                        SetRandTracksName(const char *n)                     { fRandTracksName = n          ; }
-  void                        SetRandClusName(const char *n)                       { fRandCaloName   = n          ; }
-  void                        SetRhoName(const char *n)                            { fRhoName        = n          ; }
+  void                        SetJetMinRC2LJ(Float_t d)                            { fMinRC2LJ                = d          ; } 
+  void                        SetEmbJetsName(const char *n)                        { fEmbJetsName             = n          ; }
+  void                        SetRandTracksName(const char *n)                     { fRandTracksName          = n          ; }
+  void                        SetRandClusName(const char *n)                       { fRandCaloName            = n          ; }
+  void                        SetRhoName(const char *n)                            { fRhoName                 = n          ; }
+  void                        SetSkipEventsWithNoJets(Bool_t s)                    { fSkipEventsWithNoJets    = s          ; } 
 
  protected:
 
-  void                        RetrieveEventObjects()                                                                        ;
-  void                        FillHistograms()                                                                              ;
-  void                        DoJetLoop(Int_t &maxJetIndex, Int_t &max2JetIndex)                                            ;
+  Bool_t                      RetrieveEventObjects()                                                                        ;
+  Bool_t                      FillHistograms()                                                                              ;
+  void                        GetLeadingJets(Int_t &maxJetIndex, Int_t &max2JetIndex)                                       ;
+  void                        DoJetLoop()                                                                                   ;
   void                        DoEmbJetLoop(AliEmcalJet* &embJet, TObject* &maxPart)                                         ;
   void                        DoTrackLoop(Int_t maxJetIndex)                                                                ;
   void                        DoClusterLoop(Int_t maxJetIndex)                                                              ;
@@ -43,6 +45,7 @@ class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcal {
   TString                     fRandTracksName;             // Name of randomized track collection
   TString                     fRandCaloName;               // Name of randomized calo cluster collection
   TString                     fRhoName;                    // Name of rho object
+  Bool_t                      fSkipEventsWithNoJets;       // Whether or not skip events with no jets
 
   TClonesArray               *fEmbJets;                    //!Embedded Jets
   TClonesArray               *fRandTracks;                 //!Randomized tracks
@@ -55,9 +58,6 @@ class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcal {
   TH2F                       *fHistJetPhiEta[4];           //!Phi-Eta distribution of jets
   TH1F                       *fHistJetsPt[4];              //!Inclusive jet pt spectrum
   TH2F                       *fHistJetsPtArea[4];          //!Jet pt vs. area
-  TH1F                       *fHistJetsPtClus[4];          //!Inclusive jet pt spectrum cluster biased
-  TH1F                       *fHistJetsPtTrack[4];         //!Inclusive jet pt spectrum track biased
-  TH1F                       *fHistJetsPtNonBias[4];       //!Non biased inclusive jet pt spectrum
   TH1F                       *fHistLeadingJetPt[4];        //!Leading jet pt spectrum
   TH1F                       *fHist2LeadingJetPt[4];       //!Second leading jet pt spectrum
   TH2F                       *fHistJetsNEFvsPt[4];         //!Jet neutral energy fraction vs. jet pt
@@ -71,9 +71,6 @@ class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcal {
   TH1F                       *fHistRho[4];                 //!Rho distribution
   TH2F                       *fHistRhoVSleadJetPt;         //!Area(leadjetarea) * rho vs. leading jet pt
   TH1F                       *fHistCorrJetsPt[4];          //!Corrected inclusive jet pt spectrum
-  TH1F                       *fHistCorrJetsPtClus[4];      //!Corrected inclusive jet pt spectrum cluster biased
-  TH1F                       *fHistCorrJetsPtTrack[4];     //!Corrected inclusive jet pt spectrum track biased
-  TH1F                       *fHistCorrJetsPtNonBias[4];   //!Non biased corrected inclusive jet pt spectrum
   TH1F                       *fHistCorrLeadingJetPt[4];    //!Corrected leading jet pt spectrum
 
   // Random cones
index 59bee6940179b39a32dd979319df858f81c8b30b..2743b935161c9103a302cb85da9a4dbaf5e8bf8c 100644 (file)
@@ -26,7 +26,7 @@ ClassImp(AliAnalysisTaskSAQA)
 
 //________________________________________________________________________
 AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() : 
-  AliAnalysisTaskEmcal("AliAnalysisTaskSAQA"),
+  AliAnalysisTaskEmcalJet("AliAnalysisTaskSAQA"),
   fCellEnergyCut(0.1),
   fDoEoverP(kFALSE),
   fTrgClusName("ClustersL1GAMMAFEE"),
@@ -39,9 +39,9 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() :
   fHistMaxL1ThrCent(0),
   fHistTracksPt(0),
   fHistTrPhiEta(0),
+  fHistTrEmcPhiEta(0),
   fHistClustersEnergy(0),
   fHistClusPhiEta(0),
-  fHistJetsPt(0),
   fHistJetsPhiEta(0),
   fHistJetsPtArea(0),
   fHistEoverP(0),
@@ -56,11 +56,17 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA() :
     fHistTrackPhi[i] = 0;
     fHistTrackEta[i] = 0;
   }
+
+  for (Int_t i = 0; i < 4; i++) {
+    fHistJetsPtTrack[i] = 0;
+    fHistJetsPtClus[i] = 0;
+    fHistJetsPt[i] = 0;
+  }
 }
 
 //________________________________________________________________________
 AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) : 
-  AliAnalysisTaskEmcal(name),
+  AliAnalysisTaskEmcalJet(name),
   fCellEnergyCut(0.1),
   fDoEoverP(kFALSE),
   fTrgClusName("ClustersL1GAMMAFEE"),
@@ -73,9 +79,9 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) :
   fHistMaxL1ThrCent(0),
   fHistTracksPt(0),
   fHistTrPhiEta(0),
+  fHistTrEmcPhiEta(0),
   fHistClustersEnergy(0),
   fHistClusPhiEta(0),
-  fHistJetsPt(0),
   fHistJetsPhiEta(0),
   fHistJetsPtArea(0),
   fHistEoverP(0),
@@ -90,6 +96,12 @@ AliAnalysisTaskSAQA::AliAnalysisTaskSAQA(const char *name) :
     fHistTrackPhi[i] = 0;
     fHistTrackEta[i] = 0;
   }
+
+  for (Int_t i = 0; i < 4; i++) {
+    fHistJetsPtTrack[i] = 0;
+    fHistJetsPtClus[i] = 0;
+    fHistJetsPt[i] = 0;
+  }
 }
 
 //________________________________________________________________________
@@ -105,7 +117,7 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects()
 
   OpenFile(1);
   fOutput = new TList();
-  fOutput->SetOwner();  // IMPORTANT!
+  fOutput->SetOwner();
 
   fHistCentrality = new TH1F("fHistCentrality","Event centrality distribution", fNbins, 0, 100);
   fHistCentrality->GetXaxis()->SetTitle("Centrality (%)");
@@ -117,87 +129,93 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects()
   fHistTracksCent->GetYaxis()->SetTitle("No. of tracks");
   fOutput->Add(fHistTracksCent);
 
-  fHistClusCent = new TH2F("fHistClusCent","Clusters vs. centrality", fNbins, 0, 100, fNbins, 0, 2000);
-  fHistClusCent->GetXaxis()->SetTitle("Centrality (%)");
-  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 (fAnaType == kEMCAL) {
+    fHistClusCent = new TH2F("fHistClusCent","Clusters vs. centrality", fNbins, 0, 100, fNbins, 0, 2000);
+    fHistClusCent->GetXaxis()->SetTitle("Centrality (%)");
+    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);
     
-  fHistTracksPt = new TH1F("fHistTracksPt","P_{T} spectrum of reconstructed tracks", fNbins, fMinPt, fMaxPt);
-  fHistTracksPt->GetXaxis()->SetTitle("P_{T} [GeV/c]");
+    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);
+  fHistTracksPt->GetXaxis()->SetTitle("p_{T} [GeV/c]");
   fHistTracksPt->GetYaxis()->SetTitle("counts");
   fOutput->Add(fHistTracksPt);
        
-  fHistTrPhiEta = new TH2F("fHistTrPhiEta","Phi-Eta distribution of tracks", 20, -2, 2, 32, 0, 6.4);
+  fHistTrPhiEta = new TH2F("fHistTrPhiEta","Phi-Eta distribution of tracks", 80, -2, 2, 128, 0, 6.4);
   fHistTrPhiEta->GetXaxis()->SetTitle("#eta");
   fHistTrPhiEta->GetYaxis()->SetTitle("#phi");
   fOutput->Add(fHistTrPhiEta);
 
-  fHistClustersEnergy = new TH1F("fHistClustersEnergy","Energy spectrum of clusters", fNbins, fMinPt, fMaxPt);
-  fHistClustersEnergy->GetXaxis()->SetTitle("E [GeV]");
-  fHistClustersEnergy->GetYaxis()->SetTitle("counts");
-  fOutput->Add(fHistClustersEnergy);
-
-  fHistClusPhiEta = new TH2F("fHistClusPhiEta","Phi-Eta distribution of clusters", 20, -2, 2, 32, 0, 6.4);
-  fHistClusPhiEta->GetXaxis()->SetTitle("#eta");
-  fHistClusPhiEta->GetYaxis()->SetTitle("#phi");
-  fOutput->Add(fHistClusPhiEta);
-
-  fHistJetsPt = new TH1F("fHistJetsPt","P_{T} spectrum of reconstructed jets", fNbins, fMinPt, fMaxPt);
-  fHistJetsPt->GetXaxis()->SetTitle("P_{T} [GeV/c]");
-  fHistJetsPt->GetYaxis()->SetTitle("counts");
-  fOutput->Add(fHistJetsPt);
+  fHistTrEmcPhiEta = new TH2F("fHistTrEmcPhiEta","Phi-Eta emcal distribution of tracks", 80, -2, 2, 128, 0, 6.4);
+  fHistTrEmcPhiEta->GetXaxis()->SetTitle("#eta");
+  fHistTrEmcPhiEta->GetYaxis()->SetTitle("#phi");
+  fOutput->Add(fHistTrEmcPhiEta);
+
+  if (fAnaType == kEMCAL) {
+    fHistClustersEnergy = new TH1F("fHistClustersEnergy","Energy spectrum of clusters", fNbins, fMinBinPt, fMaxBinPt);
+    fHistClustersEnergy->GetXaxis()->SetTitle("E [GeV]");
+    fHistClustersEnergy->GetYaxis()->SetTitle("counts");
+    fOutput->Add(fHistClustersEnergy);
+
+    fHistClusPhiEta = new TH2F("fHistClusPhiEta","Phi-Eta distribution of clusters", 80, -2, 2, 128, 0, 6.4);
+    fHistClusPhiEta->GetXaxis()->SetTitle("#eta");
+    fHistClusPhiEta->GetYaxis()->SetTitle("#phi");
+    fOutput->Add(fHistClusPhiEta);
+  }
        
-  fHistJetsPhiEta = new TH2F("fHistJetsPhiEta","Phi-Eta distribution of jets", 20, -2, 2, 32, 0, 6.4);
+  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, fMinPt, fMaxPt, 20, 0, fJetRadius * fJetRadius * TMath::Pi() * 1.5);
-  fHistJetsPtArea->GetXaxis()->SetTitle("P_{T} [GeV/c]");
+  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 (fDoEoverP) {
-    fHistEoverP = new TH2F("fHistEoverP","E/P vs. E", fNbins, fMinPt, fMaxPt, fNbins, 0, 10);
-    fHistEoverP->GetXaxis()->SetTitle("E [GeV]");
-    fHistEoverP->GetYaxis()->SetTitle("E/P [c]");
-    fOutput->Add(fHistEoverP);
+  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->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->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->GetXaxis()->SetTitle("E [GeV]");
+    fHistChVSneCorrCells->GetYaxis()->SetTitle("P [GeV/c]");
+    fOutput->Add(fHistChVSneCorrCells);
   }
-
-  fHistCellsEnergy = new TH1F("fHistCellsEnergy","Energy spectrum of cells", fNbins, fMinPt, fMaxPt);
-  fHistCellsEnergy->GetXaxis()->SetTitle("E [GeV]");
-  fHistCellsEnergy->GetYaxis()->SetTitle("counts");
-  fOutput->Add(fHistCellsEnergy);
-
-  fHistChVSneCells = new TH2F("fHistChVSneCells","Charged energy vs. neutral (cells) energy", fNbins, fMinPt * 4, fMaxPt * 4, fNbins, fMinPt * 4, fMaxPt * 4);
-  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, fMinPt * 4, fMaxPt * 4, fNbins, fMinPt * 4, fMaxPt * 4);
-  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, fMinPt * 4, fMaxPt * 4, fNbins, fMinPt * 4, fMaxPt * 4);
-  fHistChVSneCorrCells->GetXaxis()->SetTitle("E [GeV]");
-  fHistChVSneCorrCells->GetYaxis()->SetTitle("P [GeV/c]");
-  fOutput->Add(fHistChVSneCorrCells);
  
   for (Int_t i = 0; i < 5; i++) {
     TString histnamephi("fHistTrackPhi_");
@@ -224,13 +242,41 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects()
   fHistTrackPhi[4]->SetLineColor(kBlack);
   fHistTrackEta[4]->SetLineColor(kBlack);
 
+  TString histname;
+
+  for (Int_t i = 0; i < 4; i++) {
+    if (fAnaType == kEMCAL) {
+      histname = "fHistJetsPtClus_";
+      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]);
+    }
+
+    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]);
+  }
+
   PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
 }
 
 //________________________________________________________________________
-void AliAnalysisTaskSAQA::RetrieveEventObjects()
+Bool_t AliAnalysisTaskSAQA::RetrieveEventObjects()
 {
-  AliAnalysisTaskEmcal::RetrieveEventObjects();
+  if(!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
+    return kFALSE;
 
   if (strcmp(fTrgClusName,"")) {
     fTrgClusters =  dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fTrgClusName));
@@ -238,10 +284,12 @@ void AliAnalysisTaskSAQA::RetrieveEventObjects()
       AliWarning(Form("Could not retrieve trigger clusters!")); 
     }
   }
+
+  return kTRUE;
 }
 
 //________________________________________________________________________
-void AliAnalysisTaskSAQA::FillHistograms()
+Bool_t AliAnalysisTaskSAQA::FillHistograms()
 {
   fHistCentrality->Fill(fCent);
   if (fTracks)
@@ -249,32 +297,37 @@ void AliAnalysisTaskSAQA::FillHistograms()
   if (fCaloClusters)
     fHistClusCent->Fill(fCent, fCaloClusters->GetEntriesFast());
 
-  Float_t clusSum = DoClusterLoop();
-  
   Float_t trackSum = DoTrackLoop();
 
-  Float_t cellSum = 0, cellCutSum = 0;
-  DoCellLoop(cellSum, cellCutSum);
-
-  fHistChVSneCells->Fill(cellSum, trackSum);
-  fHistChVSneClus->Fill(clusSum, trackSum);
-  fHistChVSneCorrCells->Fill(cellCutSum, trackSum);
-
   DoJetLoop();
 
-  Float_t maxTrgClus = DoTriggerClusLoop();
-  fHistMaxL1ClusCent->Fill(fCent, maxTrgClus);
-  
-  Int_t maxL1amp = -1;
-  Int_t maxL1thr = -1;
+  if (fAnaType == kEMCAL) {
+    Float_t clusSum = DoClusterLoop();
 
-  DoTriggerPrimitives(maxL1amp, maxL1thr);
+    Float_t cellSum = 0, cellCutSum = 0;
+    
+    DoCellLoop(cellSum, cellCutSum);
+    
+    fHistChVSneCells->Fill(cellSum, trackSum);
+    fHistChVSneClus->Fill(clusSum, trackSum);
+    fHistChVSneCorrCells->Fill(cellCutSum, trackSum);
 
-  if (maxL1amp > -1) 
-    fHistMaxL1FastORCent->Fill(fCent, maxL1amp);
+    Float_t maxTrgClus = DoTriggerClusLoop();
+    fHistMaxL1ClusCent->Fill(fCent, maxTrgClus);
+    
+    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);
+  }
 
-  if (maxL1thr > -1) 
-    fHistMaxL1ThrCent->Fill(fCent, maxL1thr);
+  return kTRUE;
 }
 
 //________________________________________________________________________
@@ -355,7 +408,7 @@ Float_t AliAnalysisTaskSAQA::DoTrackLoop()
 
   for(Int_t i = 0; i < ntracks; i++) {
 
-    AliVParticle* track = dynamic_cast<AliVParticle*>(fTracks->At(i)); // pointer to reconstructed to track          
+    AliVTrack* track = dynamic_cast<AliVTrack*>(fTracks->At(i)); // pointer to reconstructed to track          
     if(!track) {
       AliError(Form("Could not retrieve track %d",i)); 
       continue; 
@@ -370,6 +423,7 @@ 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());
@@ -382,11 +436,7 @@ Float_t AliAnalysisTaskSAQA::DoTrackLoop()
     if (!fDoEoverP)
       continue;
 
-    AliVTrack *vtrack = dynamic_cast<AliVTrack*>(track);
-    if (!vtrack)
-      continue;
-
-    Int_t clId = vtrack->GetEMCALcluster();
+    Int_t clId = track->GetEMCALcluster();
     if (clId > -1 && clId < nclusters && fCaloClusters) {
       AliVCluster* cluster = dynamic_cast<AliVCluster*>(fCaloClusters->At(i));
       if (cluster) {
@@ -415,10 +465,17 @@ void AliAnalysisTaskSAQA::DoJetLoop()
       continue;
     }  
 
-    if (!AcceptJet(jet))
+    if (!AcceptJet(jet, kFALSE))
       continue;
+
+    fHistJetsPt[fCentBin]->Fill(jet->Pt());
+
+    if (jet->MaxTrackPt() > fPtBiasJetTrack)
+      fHistJetsPtTrack[fCentBin]->Fill(jet->Pt());
+    
+    if (fAnaType == kEMCAL && jet->MaxClusterPt() > fPtBiasJetClus)
+      fHistJetsPtClus[fCentBin]->Fill(jet->Pt());
     
-    fHistJetsPt->Fill(jet->Pt());
     fHistJetsPtArea->Fill(jet->Pt(), jet->Area());
     fHistJetsPhiEta->Fill(jet->Eta(), jet->Phi());
   }
index c77d668df1e28558758d235473312337ae33bd74..72b56f04b40fb2bbd5c132d29f6a12fcab99b7b6 100644 (file)
@@ -8,9 +8,9 @@ class TString;
 class TH1F;
 class TH2F;
 
-#include "AliAnalysisTaskEmcal.h"
+#include "AliAnalysisTaskEmcalJet.h"
 
-class AliAnalysisTaskSAQA : public AliAnalysisTaskEmcal {
+class AliAnalysisTaskSAQA : public AliAnalysisTaskEmcalJet {
  public:
   AliAnalysisTaskSAQA();
   AliAnalysisTaskSAQA(const char *name);
@@ -25,8 +25,8 @@ class AliAnalysisTaskSAQA : public AliAnalysisTaskEmcal {
 
  protected:
 
-  void                        FillHistograms()                                          ;
-  void                        RetrieveEventObjects()                                    ;
+  Bool_t                      FillHistograms()                                          ;
+  Bool_t                      RetrieveEventObjects()                                    ;
   void                        DoCellLoop(Float_t &sum, Float_t &sum_cut)                ;
   void                        DoTriggerPrimitives(Int_t &maxL1amp, Int_t &maxL1thr)     ;
   Float_t                     DoTriggerClusLoop()                                       ;
@@ -50,11 +50,14 @@ class AliAnalysisTaskSAQA : public AliAnalysisTaskEmcal {
  
   TH1F                       *fHistTracksPt;           //!Pt spectrum of tracks
   TH2F                       *fHistTrPhiEta;           //!Phi-Eta distribution of tracks
+  TH2F                       *fHistTrEmcPhiEta;        //!Phi-Eta emcal distribution of tracks
   TH1F                       *fHistClustersEnergy;     //!Energy spectrum of clusters
   TH2F                       *fHistClusPhiEta;         //!Phi-Eta distribution of clusters
-  TH1F                       *fHistJetsPt;             //!Pt spectrum of jets
   TH2F                       *fHistJetsPhiEta;         //!Phi-Eta distribution of jets
   TH2F                       *fHistJetsPtArea;         //!Pt vs. area of jets
+  TH1F                       *fHistJetsPtClus[4];      //!Inclusive jet pt spectrum cluster biased
+  TH1F                       *fHistJetsPtTrack[4];     //!Inclusive jet pt spectrum track biased
+  TH1F                       *fHistJetsPt[4];          //!Non biased inclusive jet pt spectrum
 
   TH2F                       *fHistEoverP;             //!E/P vs. E
 
index d1abe0648272967ed22c65c09a1f2a45287eef78..a5fa43ed837aad17cac743d643e198dac3d2b1cb 100644 (file)
@@ -25,7 +25,7 @@ ClassImp(AliJetResponseMaker)
 
 //________________________________________________________________________
 AliJetResponseMaker::AliJetResponseMaker() : 
-  AliAnalysisTaskEmcal("AliJetResponseMaker"),
+  AliAnalysisTaskEmcalJet("AliJetResponseMaker"),
   fMCTracksName("MCParticles"),
   fMCJetsName("MCJets"),
   fMaxDistance(0.2),
@@ -52,7 +52,7 @@ AliJetResponseMaker::AliJetResponseMaker() :
 
 //________________________________________________________________________
 AliJetResponseMaker::AliJetResponseMaker(const char *name) : 
-  AliAnalysisTaskEmcal(name),
+  AliAnalysisTaskEmcalJet(name),
   fMCTracksName("MCParticles"),
   fMCJetsName("MCJets"),
   fMaxDistance(0.2),
@@ -98,23 +98,23 @@ void AliJetResponseMaker::UserCreateOutputObjects()
   fHistJetPhiEta->GetYaxis()->SetTitle("#phi");
   fOutput->Add(fHistJetPhiEta);
   
-  fHistJetsPt = new TH1F("fHistJetsPt", "fHistJetsPt", fNbins, fMinPt, fMaxPt);
+  fHistJetsPt = new TH1F("fHistJetsPt", "fHistJetsPt", fNbins, fMinBinPt, fMaxBinPt);
   fHistJetsPt->GetXaxis()->SetTitle("p_{T} [GeV/c]");
   fHistJetsPt->GetYaxis()->SetTitle("counts");
   fOutput->Add(fHistJetsPt);
   
-  fHistJetsPtNonBias = new TH1F("fHistJetsPtNonBias", "fHistJetsPtNonBias", fNbins, fMinPt, fMaxPt);
+  fHistJetsPtNonBias = new TH1F("fHistJetsPtNonBias", "fHistJetsPtNonBias", fNbins, fMinBinPt, fMaxBinPt);
   fHistJetsPtNonBias->GetXaxis()->SetTitle("p_{T} [GeV/c]");
   fHistJetsPtNonBias->GetYaxis()->SetTitle("counts");
   fOutput->Add(fHistJetsPtNonBias);
   
-  fHistJetsZvsPt = new TH2F("fHistJetsZvsPt", "fHistJetsZvsPt", fNbins, 0, 1.2, fNbins, fMinPt, fMaxPt);
+  fHistJetsZvsPt = new TH2F("fHistJetsZvsPt", "fHistJetsZvsPt", fNbins, 0, 1.2, fNbins, fMinBinPt, fMaxBinPt);
   fHistJetsZvsPt->GetXaxis()->SetTitle("Z");
   fHistJetsZvsPt->GetYaxis()->SetTitle("p_{T} [GeV/c]");
   fOutput->Add(fHistJetsZvsPt);
   
   if (fAnaType == kEMCAL) {
-    fHistJetsNEFvsPt = new TH2F("fHistJetsNEFvsPt", "fHistJetsNEFvsPt", fNbins, 0, 1.2, fNbins, fMinPt, fMaxPt);
+    fHistJetsNEFvsPt = new TH2F("fHistJetsNEFvsPt", "fHistJetsNEFvsPt", fNbins, 0, 1.2, fNbins, fMinBinPt, fMaxBinPt);
     fHistJetsNEFvsPt->GetXaxis()->SetTitle("NEF");
     fHistJetsNEFvsPt->GetYaxis()->SetTitle("p_{T} [GeV/c]");
     fOutput->Add(fHistJetsNEFvsPt);
@@ -125,23 +125,23 @@ void AliJetResponseMaker::UserCreateOutputObjects()
   fHistMCJetPhiEta->GetYaxis()->SetTitle("#phi");
   fOutput->Add(fHistMCJetPhiEta);
   
-  fHistMCJetsPt = new TH1F("fHistMCJetsPt", "fHistMCJetsPt", fNbins, fMinPt, fMaxPt);
+  fHistMCJetsPt = new TH1F("fHistMCJetsPt", "fHistMCJetsPt", fNbins, fMinBinPt, fMaxBinPt);
   fHistMCJetsPt->GetXaxis()->SetTitle("p_{T} [GeV/c]");
   fHistMCJetsPt->GetYaxis()->SetTitle("counts");
   fOutput->Add(fHistMCJetsPt);
   
-  fHistMCJetsPtNonBias = new TH1F("fHistMCJetsPtNonBias", "fHistMCJetsPtNonBias", fNbins, fMinPt, fMaxPt);
+  fHistMCJetsPtNonBias = new TH1F("fHistMCJetsPtNonBias", "fHistMCJetsPtNonBias", fNbins, fMinBinPt, fMaxBinPt);
   fHistMCJetsPtNonBias->GetXaxis()->SetTitle("p_{T} [GeV/c]");
   fHistMCJetsPtNonBias->GetYaxis()->SetTitle("counts");
   fOutput->Add(fHistMCJetsPtNonBias);
   
-  fHistMCJetsZvsPt = new TH2F("fHistMCJetsZvsPt", "fHistMCJetsZvsPt", fNbins, 0, 1.2, fNbins, fMinPt, fMaxPt);
+  fHistMCJetsZvsPt = new TH2F("fHistMCJetsZvsPt", "fHistMCJetsZvsPt", fNbins, 0, 1.2, fNbins, fMinBinPt, fMaxBinPt);
   fHistMCJetsZvsPt->GetXaxis()->SetTitle("Z");
   fHistMCJetsZvsPt->GetYaxis()->SetTitle("p_{T} [GeV/c]");
   fOutput->Add(fHistMCJetsZvsPt);
   
   if (fAnaType == kEMCAL) {
-    fHistMCJetsNEFvsPt = new TH2F("fHistMCJetsNEFvsPt", "fHistMCJetsNEFvsPt", fNbins, 0, 1.2, fNbins, fMinPt, fMaxPt);
+    fHistMCJetsNEFvsPt = new TH2F("fHistMCJetsNEFvsPt", "fHistMCJetsNEFvsPt", fNbins, 0, 1.2, fNbins, fMinBinPt, fMaxBinPt);
     fHistMCJetsNEFvsPt->GetXaxis()->SetTitle("NEF");
     fHistMCJetsNEFvsPt->GetYaxis()->SetTitle("p_{T} [GeV/c]");
     fOutput->Add(fHistMCJetsNEFvsPt);
@@ -162,12 +162,12 @@ void AliJetResponseMaker::UserCreateOutputObjects()
   fHistClosestDeltaEta->GetYaxis()->SetTitle("counts");
   fOutput->Add(fHistClosestDeltaEta);
 
-  fHistClosestDeltaPt = new TH1F("fHistClosestDeltaPt", "fHistClosestDeltaPt", fNbins, -fMaxPt / 2, fMaxPt / 2);
+  fHistClosestDeltaPt = new TH1F("fHistClosestDeltaPt", "fHistClosestDeltaPt", fNbins, -fMaxBinPt / 2, fMaxBinPt / 2);
   fHistClosestDeltaPt->GetXaxis()->SetTitle("#Delta p_{T}");
   fHistClosestDeltaPt->GetYaxis()->SetTitle("counts");
   fOutput->Add(fHistClosestDeltaPt);
 
-  fHistPartvsDetecPt = new TH2F("fHistPartvsDetecPt", "fHistPartvsDetecPt", fNbins, fMinPt, fMaxPt, fNbins, fMinPt, fMaxPt);
+  fHistPartvsDetecPt = new TH2F("fHistPartvsDetecPt", "fHistPartvsDetecPt", fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt);
   fHistPartvsDetecPt->GetXaxis()->SetTitle("p_{T}^{det}");
   fHistPartvsDetecPt->GetYaxis()->SetTitle("p_{T}^{rec}");
   fOutput->Add(fHistPartvsDetecPt);
@@ -176,7 +176,7 @@ void AliJetResponseMaker::UserCreateOutputObjects()
 }
 
 //________________________________________________________________________
-void AliJetResponseMaker::FillHistograms()
+Bool_t AliJetResponseMaker::FillHistograms()
 {
   // Fill histograms.
 
@@ -271,6 +271,8 @@ void AliJetResponseMaker::FillHistograms()
        fHistMCJetsZvsPt->Fill(track->Pt() / jet->Pt(), jet->Pt());
     }
   }
+
+  return kTRUE;
 }
 
 //________________________________________________________________________
@@ -327,11 +329,12 @@ void AliJetResponseMaker::DoJetLoop(TClonesArray *jets1, TClonesArray *jets2)
 }
 
 //________________________________________________________________________
-void AliJetResponseMaker::RetrieveEventObjects()
+Bool_t AliJetResponseMaker::RetrieveEventObjects()
 {
   // Retrieve event objects.
 
-  AliAnalysisTaskEmcal::RetrieveEventObjects();
+  if(!AliAnalysisTaskEmcalJet::RetrieveEventObjects())
+    return kFALSE;
   
   if (!fMCJetsName.IsNull()) {
     fMCJets = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fMCJetsName));
@@ -346,6 +349,8 @@ void AliJetResponseMaker::RetrieveEventObjects()
       AliWarning(Form("Could not retrieve MC tracks %s!", fMCTracksName.Data())); 
     }
   }
+
+  return kTRUE;
 }
 
 //________________________________________________________________________
index 0454239deaff53556ed3854ae7a0c89a08865d29..e083c6c5a4b92bab3c4ba715309797124b6699cd 100644 (file)
@@ -7,9 +7,9 @@ class TClonesArray;
 class TH1F;
 class TH2F;
 
-#include "AliAnalysisTaskEmcal.h"
+#include "AliAnalysisTaskEmcalJet.h"
 
-class AliJetResponseMaker : public AliAnalysisTaskEmcal {
+class AliJetResponseMaker : public AliAnalysisTaskEmcalJet {
  public:
   AliJetResponseMaker();
   AliJetResponseMaker(const char *name);
@@ -24,8 +24,8 @@ class AliJetResponseMaker : public AliAnalysisTaskEmcal {
 
  protected:
   void                        DoJetLoop(TClonesArray *jets1, TClonesArray *jets2);
-  void                        FillHistograms();
-  void                        RetrieveEventObjects();
+  Bool_t                      FillHistograms();
+  Bool_t                      RetrieveEventObjects();
 
   TString                     fMCTracksName;              // name of MC particle collection
   TString                     fMCJetsName;                // name of MC jet collection