#include "AliCentrality.h"
#include "AliVCluster.h"
#include "AliVParticle.h"
+#include "AliVTrack.h"
#include "AliEmcalJet.h"
#include "AliVEventHandler.h"
#include "AliLog.h"
//________________________________________________________________________
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),
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;
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;
//________________________________________________________________________
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),
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;
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;
//________________________________________________________________________
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();
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);
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]);
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]);
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]);
}
//________________________________________________________________________
-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));
}
}
-
- 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;
// 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);
// _________________________________
if (!fEmbJets)
- return;
+ return kTRUE;
AliEmcalJet *embJet = 0;
TObject *maxPart = 0;
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;
}
}
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;
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());
}
}
}
-
- 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
}
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;
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;
//________________________________________________________________________
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) {