From a562183461eeb32491f3b3c2a7755ba3232913dc Mon Sep 17 00:00:00 2001 From: mcosenti Date: Mon, 25 Jun 2012 15:52:07 +0000 Subject: [PATCH] changes from saiola --- .../EMCALJetTasks/AliAnalysisTaskEmcalJet.cxx | 21 +- PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h | 3 + PWGGA/EMCALJetTasks/AliAnalysisTaskRho.cxx | 8 +- PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx | 4 +- .../UserTasks/AliAnalysisTaskSAJF.cxx | 271 +++++++++--------- .../UserTasks/AliAnalysisTaskSAJF.h | 11 +- .../UserTasks/AliAnalysisTaskSAQA.cxx | 6 +- PWGGA/EMCALJetTasks/macros/AddTaskScale.C | 11 +- PWGGA/EMCALTasks/AliAnalysisTaskEmcal.cxx | 4 +- PWGGA/EMCALTasks/AliAnalysisTaskEmcal.h | 3 +- 10 files changed, 183 insertions(+), 159 deletions(-) diff --git a/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.cxx b/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.cxx index d1df8492cfe..f6151ba6ffc 100644 --- a/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.cxx +++ b/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.cxx @@ -29,10 +29,11 @@ AliAnalysisTaskEmcalJet::AliAnalysisTaskEmcalJet() : AliAnalysisTaskEmcal("AliAnalysisTaskEmcalJet"), fJetRadius(0.4), fJetsName(), - fPtBiasJetTrack(10), - fPtBiasJetClus(10), + fPtBiasJetTrack(5), + fPtBiasJetClus(5), fJetPtCut(1), - fJetAreaCut(0.2), + fJetAreaCut(0.4), + fPercAreaCut(0.8), fMinEta(-0.9), fMaxEta(0.9), fMinPhi(-10), @@ -49,10 +50,11 @@ AliAnalysisTaskEmcalJet::AliAnalysisTaskEmcalJet(const char *name, Bool_t histo) AliAnalysisTaskEmcal(name, histo), fJetRadius(0.4), fJetsName(), - fPtBiasJetTrack(10), - fPtBiasJetClus(10), + fPtBiasJetTrack(5), + fPtBiasJetClus(5), fJetPtCut(1), - fJetAreaCut(0.2), + fJetAreaCut(0.4), + fPercAreaCut(0.8), fMinEta(-0.9), fMaxEta(0.9), fMinPhi(-10), @@ -120,10 +122,15 @@ void AliAnalysisTaskEmcalJet::ExecOnce() { // Init the analysis. + if (fPercAreaCut >= 0) { + AliInfo(Form("%s: jet area cut will be calculated as a percentage of the average area, given value will be overwritten", GetName())); + fJetAreaCut = fPercAreaCut * fJetRadius * fJetRadius * TMath::Pi(); + } + if (fAnaType == kTPC) { SetEtaLimits(-0.9 + fJetRadius, 0.9 - fJetRadius); SetPhiLimits(-10, 10); - } else if (fAnaType == kEMCAL || fAnaType == kTPCSmall) { + } else if (fAnaType == kEMCAL || fAnaType == kTPCSmall || fAnaType == kEMCALOnly) { AliEMCALGeometry *geom = AliEMCALGeometry::GetInstance(); if (geom) { SetEtaLimits(geom->GetArm1EtaMin() + fJetRadius, geom->GetArm1EtaMax() - fJetRadius); diff --git a/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h b/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h index dcc283430de..80b43db260a 100644 --- a/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h +++ b/PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.h @@ -21,6 +21,7 @@ class AliAnalysisTaskEmcalJet : public AliAnalysisTaskEmcal { void SetEtaLimits(Float_t min, Float_t max) { fMinEta = min, fMaxEta = max ; } void SetJetAreaCut(Float_t cut) { fJetAreaCut = cut ; } + void SetPercAreaCut(Float_t p) { fPercAreaCut = p ; } void SetJetPtCut(Float_t cut) { fJetPtCut = cut ; } void SetJetRadius(Float_t r) { fJetRadius = r ; } void SetJetsName(const char *n) { fJetsName = n ; } @@ -29,6 +30,7 @@ class AliAnalysisTaskEmcalJet : public AliAnalysisTaskEmcal { void SetPhiLimits(Float_t min, Float_t max) { fMinPhi = min, fMaxPhi = max ; } void SetPtBiasJetClus(Float_t b) { fPtBiasJetClus = b ; } void SetPtBiasJetTrack(Float_t b) { fPtBiasJetTrack = b ; } + protected: Bool_t AcceptJet(AliEmcalJet* jet, Bool_t bias = kTRUE, Bool_t upCut = kTRUE) const; @@ -45,6 +47,7 @@ class AliAnalysisTaskEmcalJet : public AliAnalysisTaskEmcal { Float_t fPtBiasJetClus; // select jets with a minimum pt cluster Float_t fJetPtCut; // cut on jet pt Float_t fJetAreaCut; // cut on jet area + Float_t fPercAreaCut; // cut on jet area as a percentage of average jet area Float_t fMinEta; // minimum eta jet acceptance Float_t fMaxEta; // maximum eta jet acceptance Float_t fMinPhi; // minimum phi jet acceptance diff --git a/PWGGA/EMCALJetTasks/AliAnalysisTaskRho.cxx b/PWGGA/EMCALJetTasks/AliAnalysisTaskRho.cxx index 815bf470469..34e1caf6f52 100644 --- a/PWGGA/EMCALJetTasks/AliAnalysisTaskRho.cxx +++ b/PWGGA/EMCALJetTasks/AliAnalysisTaskRho.cxx @@ -172,13 +172,13 @@ void AliAnalysisTaskRho::UserExec(Option_t *) fIsInit = 1; } + fRho->SetVal(0); + if (fRhoScaled) + fRhoScaled->SetVal(0); + if (!fJets) return; - fRho->SetVal(-1); - if (fRhoScaled) - fRhoScaled->SetVal(-1); - DetermineCent(); const Int_t Njets = fJets->GetEntries(); diff --git a/PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx b/PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx index 4cab20ce85f..ee1526ffbcc 100644 --- a/PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx +++ b/PWGGA/EMCALJetTasks/AliJetModelBaseTask.cxx @@ -260,7 +260,7 @@ void AliJetModelBaseTask::ExecOnce() fPhiMax = fPhiMin; } - if (fNTracks > 0 && !fTracks) { + if (fNTracks > 0 && !fTracks && !fTracksName.IsNull()) { fTracks = dynamic_cast(InputEvent()->FindListObject(fTracksName)); if (!fTracks) { AliError(Form("%s: Couldn't retrieve tracks with name %s!", GetName(), fTracksName.Data())); @@ -291,7 +291,7 @@ void AliJetModelBaseTask::ExecOnce() } } - if (fNClusters > 0 && !fClusters) { + if (fNClusters > 0 && !fClusters && !fCaloName.IsNull()) { fClusters = dynamic_cast(InputEvent()->FindListObject(fCaloName)); if (!fClusters) { diff --git a/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.cxx b/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.cxx index 609f67cf834..7fe8d73c40e 100644 --- a/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.cxx +++ b/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.cxx @@ -44,6 +44,7 @@ AliAnalysisTaskSAJF::AliAnalysisTaskSAJF() : fRandTracks(0), fRandCaloClusters(0), fRho(0), + fRhoVal(0), fEmbeddedClusterId(-1), fEmbeddedTrackId(-1), fHistCentrality(0), @@ -112,6 +113,7 @@ AliAnalysisTaskSAJF::AliAnalysisTaskSAJF(const char *name) : fRandTracks(0), fRandCaloClusters(0), fRho(0), + fRhoVal(0), fEmbeddedClusterId(-1), fEmbeddedTrackId(-1), fHistCentrality(0), @@ -240,21 +242,23 @@ void AliAnalysisTaskSAJF::UserCreateOutputObjects() fHistEvents[i] = new TH1F(histname,histname, 6, 0, 6); fHistEvents[i]->GetXaxis()->SetTitle("Event state"); fHistEvents[i]->GetYaxis()->SetTitle("counts"); - fHistEvents[i]->GetXaxis()->SetBinLabel(1, "Rho <= 0"); - fHistEvents[i]->GetXaxis()->SetBinLabel(2, "No jets"); - fHistEvents[i]->GetXaxis()->SetBinLabel(3, "Max Jet not found"); + fHistEvents[i]->GetXaxis()->SetBinLabel(1, "No jets"); + fHistEvents[i]->GetXaxis()->SetBinLabel(2, "Max Jet not found"); + fHistEvents[i]->GetXaxis()->SetBinLabel(3, "Rho == 0"); fHistEvents[i]->GetXaxis()->SetBinLabel(4, "Max Jet <= 0"); - fHistEvents[i]->GetXaxis()->SetBinLabel(5, "Accepted"); + fHistEvents[i]->GetXaxis()->SetBinLabel(5, "OK"); fOutput->Add(fHistEvents[i]); - histname = "fHistTracksPt_"; - histname += i; - fHistTracksPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins / 2.5, fMinBinPt, fMaxBinPt / 2.5); - fHistTracksPt[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]"); - fHistTracksPt[i]->GetYaxis()->SetTitle("counts"); - fOutput->Add(fHistTracksPt[i]); + if (fAnaType != kEMCALOnly) { + histname = "fHistTracksPt_"; + histname += i; + fHistTracksPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins / 2.5, fMinBinPt, fMaxBinPt / 2.5); + fHistTracksPt[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]"); + fHistTracksPt[i]->GetYaxis()->SetTitle("counts"); + fOutput->Add(fHistTracksPt[i]); + } - if (fAnaType == kEMCAL) { + if (fAnaType == kEMCAL || fAnaType == kEMCALOnly) { histname = "fHistClustersPt_"; histname += i; fHistClustersPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins / 2.5, fMinBinPt, fMaxBinPt / 2.5); @@ -305,7 +309,7 @@ void AliAnalysisTaskSAJF::UserCreateOutputObjects() fHistJetsZvsPt[i]->GetYaxis()->SetTitle("p_{T}^{raw} [GeV/c]"); fOutput->Add(fHistJetsZvsPt[i]); - if (fAnaType == kEMCAL) { + if (fAnaType == kEMCAL || fAnaType == kEMCALOnly) { histname = "fHistJetsNEFvsPt_"; histname += i; fHistJetsNEFvsPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, 0, 1.2, fNbins, fMinBinPt, fMaxBinPt); @@ -314,14 +318,16 @@ void AliAnalysisTaskSAJF::UserCreateOutputObjects() fOutput->Add(fHistJetsNEFvsPt[i]); } - histname = "fHistMaxTrackPtvsJetPt_"; - histname += i; - fHistMaxTrackPtvsJetPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, fNbins / 2.5, fMinBinPt, fMaxBinPt / 2.5); - fHistMaxTrackPtvsJetPt[i]->GetXaxis()->SetTitle("p_{T}^{jet} [GeV/c]"); - fHistMaxTrackPtvsJetPt[i]->GetYaxis()->SetTitle("p_{T}^{track} [GeV/c]"); - fOutput->Add(fHistMaxTrackPtvsJetPt[i]); + if (fAnaType != kEMCALOnly) { + histname = "fHistMaxTrackPtvsJetPt_"; + histname += i; + fHistMaxTrackPtvsJetPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, fNbins / 2.5, fMinBinPt, fMaxBinPt / 2.5); + fHistMaxTrackPtvsJetPt[i]->GetXaxis()->SetTitle("p_{T}^{jet} [GeV/c]"); + fHistMaxTrackPtvsJetPt[i]->GetYaxis()->SetTitle("p_{T}^{track} [GeV/c]"); + fOutput->Add(fHistMaxTrackPtvsJetPt[i]); + } - if (fAnaType == kEMCAL) { + if (fAnaType == kEMCAL || fAnaType == kEMCALOnly) { histname = "fHistMaxClusPtvsJetPt_"; histname += i; fHistMaxClusPtvsJetPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, fNbins / 2.5, fMinBinPt, fMaxBinPt / 2.5); @@ -337,14 +343,16 @@ void AliAnalysisTaskSAJF::UserCreateOutputObjects() fHistMaxPartPtvsJetPt[i]->GetYaxis()->SetTitle("p_{T}^{part} [GeV/c]"); fOutput->Add(fHistMaxPartPtvsJetPt[i]); - histname = "fHistMaxTrackPtvsJetCorrPt_"; - histname += i; - fHistMaxTrackPtvsJetCorrPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins * 2, -fMaxBinPt, fMaxBinPt, fNbins / 2.5, fMinBinPt, fMaxBinPt / 2.5); - fHistMaxTrackPtvsJetCorrPt[i]->GetXaxis()->SetTitle("p_{T}^{jet} [GeV/c]"); - fHistMaxTrackPtvsJetCorrPt[i]->GetYaxis()->SetTitle("p_{T}^{track} [GeV/c]"); - fOutput->Add(fHistMaxTrackPtvsJetCorrPt[i]); + if (fAnaType != kEMCALOnly) { + histname = "fHistMaxTrackPtvsJetCorrPt_"; + histname += i; + fHistMaxTrackPtvsJetCorrPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins * 2, -fMaxBinPt, fMaxBinPt, fNbins / 2.5, fMinBinPt, fMaxBinPt / 2.5); + fHistMaxTrackPtvsJetCorrPt[i]->GetXaxis()->SetTitle("p_{T}^{jet} [GeV/c]"); + fHistMaxTrackPtvsJetCorrPt[i]->GetYaxis()->SetTitle("p_{T}^{track} [GeV/c]"); + fOutput->Add(fHistMaxTrackPtvsJetCorrPt[i]); + } - if (fAnaType == kEMCAL) { + if (fAnaType == kEMCAL || fAnaType == kEMCALOnly) { histname = "fHistMaxClusPtvsJetCorrPt_"; histname += i; fHistMaxClusPtvsJetCorrPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins * 2, -fMaxBinPt, fMaxBinPt, fNbins / 2.5, fMinBinPt, fMaxBinPt / 2.5); @@ -486,78 +494,8 @@ Bool_t AliAnalysisTaskSAJF::RetrieveEventObjects() if (!AliAnalysisTaskEmcalJet::RetrieveEventObjects()) return kFALSE; - if (!fRhoName.IsNull() && !fRho) { - fRho = dynamic_cast(InputEvent()->FindListObject(fRhoName)); - if (!fRho) { - AliError(Form("%s: Could not retrieve rho %s!", GetName(), fRhoName.Data())); - return kFALSE; - } - } - - if (!fEmbJetsName.IsNull() && !fEmbJets) { - fEmbJets = dynamic_cast(InputEvent()->FindListObject(fEmbJetsName)); - if (!fEmbJets) { - AliError(Form("%s: Could not retrieve emb jets %s!", GetName(), fEmbJetsName.Data())); - return kFALSE; - } - else if (!fEmbJets->GetClass()->GetBaseClass("AliEmcalJet")) { - AliError(Form("%s: Collection %s does not contain AliEmcalJet objects!", GetName(), fEmbJetsName.Data())); - fEmbJets = 0; - return kFALSE; - } - } - - if (!fEmbCaloName.IsNull() && fAnaType == kEMCAL && !fEmbCaloClusters) { - fEmbCaloClusters = dynamic_cast(InputEvent()->FindListObject(fEmbCaloName)); - if (!fEmbCaloClusters) { - AliError(Form("%s: Could not retrieve embedded clusters %s!", GetName(), fEmbCaloName.Data())); - return kFALSE; - } - else if (!fEmbCaloClusters->GetClass()->GetBaseClass("AliVCluster") && !fEmbCaloClusters->GetClass()->GetBaseClass("AliEmcalParticle")) { - AliError(Form("%s: Collection %s does not contain AliVCluster nor AliEmcalParticle objects!", GetName(), fEmbCaloName.Data())); - fEmbCaloClusters = 0; - return kFALSE; - } - } - - if (!fEmbTracksName.IsNull() && !fEmbTracks) { - fEmbTracks = dynamic_cast(InputEvent()->FindListObject(fEmbTracksName)); - if (!fEmbTracks) { - AliError(Form("%s: Could not retrieve embedded tracks %s!", GetName(), fEmbTracksName.Data())); - return kFALSE; - } - else if (!fEmbTracks->GetClass()->GetBaseClass("AliVParticle") && !fEmbTracks->GetClass()->GetBaseClass("AliEmcalParticle")) { - AliError(Form("%s: Collection %s does not contain AliVParticle nor AliEmcalParticle objects!", GetName(), fEmbTracksName.Data())); - fEmbTracks = 0; - return kFALSE; - } - } - - if (!fRandCaloName.IsNull() && fAnaType == kEMCAL && !fRandCaloClusters) { - fRandCaloClusters = dynamic_cast(InputEvent()->FindListObject(fRandCaloName)); - if (!fRandCaloClusters) { - AliError(Form("%s: Could not retrieve randomized clusters %s!", GetName(), fRandCaloName.Data())); - return kFALSE; - } - else if (!fRandCaloClusters->GetClass()->GetBaseClass("AliVCluster") && !fRandCaloClusters->GetClass()->GetBaseClass("AliEmcalParticle")) { - AliError(Form("%s: Collection %s does not contain AliVCluster nor AliEmcalParticle objects!", GetName(), fRandCaloName.Data())); - fRandCaloClusters = 0; - return kFALSE; - } - } - - if (!fRandTracksName.IsNull() && !fRandTracks) { - fRandTracks = dynamic_cast(InputEvent()->FindListObject(fRandTracksName)); - if (!fRandTracks) { - AliError(Form("%s: Could not retrieve randomized tracks %s!", GetName(), fRandTracksName.Data())); - return kFALSE; - } - else if (!fRandTracks->GetClass()->GetBaseClass("AliVParticle") && !fRandTracks->GetClass()->GetBaseClass("AliEmcalParticle")) { - AliError(Form("%s: Collection %s does not contain AliVParticle nor AliEmcalParticle objects!", GetName(), fRandTracksName.Data())); - fRandTracks = 0; - return kFALSE; - } - } + if (fRho) + fRhoVal = fRho->GetVal(); return kTRUE; } @@ -567,20 +505,12 @@ Bool_t AliAnalysisTaskSAJF::FillHistograms() { // Fill histograms. - // Before filling any histogram, check if the event is interesting - Double_t rho = fRho->GetVal(); - - if (rho < 0) { // rho < 0, probably a diffractive event, skipping - fHistEvents[fCentBin]->Fill("Rho <= 0", 1); - return kTRUE; - } - Int_t maxJetIndex = -1; Int_t max2JetIndex = -1; GetLeadingJets(maxJetIndex, max2JetIndex); - if (maxJetIndex < 0) { // no accept jet, skipping + if (maxJetIndex < 0) { // no accepted jet, skipping fHistEvents[fCentBin]->Fill("No jets", 1); return kTRUE; } @@ -593,12 +523,15 @@ Bool_t AliAnalysisTaskSAJF::FillHistograms() // OK, event accepted - Float_t maxJetCorrPt = jet->Pt() - rho * jet->Area(); + if (fRhoVal == 0) + fHistEvents[fCentBin]->Fill("Rho == 0", 1); + + Float_t maxJetCorrPt = jet->Pt() - fRhoVal * jet->Area(); if (maxJetCorrPt <= 0) fHistEvents[fCentBin]->Fill("Max Jet <= 0", 1); - fHistEvents[fCentBin]->Fill("Accepted", 1); + fHistEvents[fCentBin]->Fill("OK", 1); // ************ // General histograms @@ -609,11 +542,11 @@ Bool_t AliAnalysisTaskSAJF::FillHistograms() DoClusterLoop(); fHistCentrality->Fill(fCent); - fHistRho[fCentBin]->Fill(rho); + fHistRho[fCentBin]->Fill(fRhoVal); if (jet) { fHistLeadingJetPt[fCentBin]->Fill(jet->Pt()); - fHistRhoVSleadJetPt->Fill(rho * jet->Area(), jet->Pt()); + fHistRhoVSleadJetPt->Fill(fRhoVal * jet->Area(), jet->Pt()); fHistCorrLeadingJetPt[fCentBin]->Fill(maxJetCorrPt); } @@ -629,21 +562,20 @@ Bool_t AliAnalysisTaskSAJF::FillHistograms() // _________________________________ const Float_t rcArea = fJetRadius * fJetRadius * TMath::Pi(); - const Bool_t IsMCEvent = (Bool_t)(fTracksName.Contains("Randomized") || fTracksName.Contains("Embedded")); - + // Simple random cones Float_t RCpt = 0; Float_t RCptRigid = 0; Float_t RCeta = 0; Float_t RCphi = 0; - GetRigidCone(RCpt, RCptRigid, RCeta, RCphi, IsMCEvent, 0); + GetRigidCone(RCpt, RCptRigid, RCeta, RCphi, 0); if (RCpt > 0) { fHistRCPt[fCentBin]->Fill(RCpt / rcArea); - fHistDeltaPtRC[fCentBin]->Fill(RCpt - rcArea * rho); + fHistDeltaPtRC[fCentBin]->Fill(RCpt - rcArea * fRhoVal); } if (RCptRigid > 0) { fHistRCPtRigid[fCentBin]->Fill(RCptRigid / rcArea); - fHistDeltaPtRCRigid[fCentBin]->Fill(RCptRigid - rcArea * rho); + fHistDeltaPtRCRigid[fCentBin]->Fill(RCptRigid - rcArea * fRhoVal); } // Random cones far from leading jet @@ -651,10 +583,10 @@ Bool_t AliAnalysisTaskSAJF::FillHistograms() RCptRigid = 0; RCeta = 0; RCphi = 0; - GetRigidCone(RCpt, RCptRigid, RCeta, RCphi, IsMCEvent, jet); + GetRigidCone(RCpt, RCptRigid, RCeta, RCphi, jet); if (RCpt > 0) { fHistRCPhiEta->Fill(RCeta, RCphi); - fHistRhoVSRCPt->Fill(rho, RCpt / rcArea); + fHistRhoVSRCPt->Fill(fRhoVal, RCpt / rcArea); Float_t dphi = RCphi - jet->Phi(); if (dphi > 4.8) dphi -= TMath::Pi() * 2; @@ -662,7 +594,7 @@ Bool_t AliAnalysisTaskSAJF::FillHistograms() fHistRCPtExLJVSDPhiLJ->Fill(RCpt, dphi); fHistRCPtExLJ[fCentBin]->Fill(RCpt / rcArea); - fHistDeltaPtRCExLJ[fCentBin]->Fill(RCpt - rcArea * rho); + fHistDeltaPtRCExLJ[fCentBin]->Fill(RCpt - rcArea * fRhoVal); } // Random cones with randomized particles @@ -670,10 +602,10 @@ Bool_t AliAnalysisTaskSAJF::FillHistograms() RCptRigid = 0; RCeta = 0; RCphi = 0; - GetRigidCone(RCpt, RCptRigid, RCeta, RCphi, kTRUE, 0, fRandTracks, fRandCaloClusters); + GetRigidCone(RCpt, RCptRigid, RCeta, RCphi, 0, fRandTracks, fRandCaloClusters); if (RCpt > 0) { fHistRCPtRand[fCentBin]->Fill(RCpt / rcArea); - fHistDeltaPtRCRand[fCentBin]->Fill(RCpt - rcArea * rho); + fHistDeltaPtRCRand[fCentBin]->Fill(RCpt - rcArea * fRhoVal); } // ************ @@ -712,11 +644,11 @@ Bool_t AliAnalysisTaskSAJF::FillHistograms() } fHistEmbJetsPt[fCentBin]->Fill(embJet->Pt()); - fHistEmbJetsCorrPt[fCentBin]->Fill(embJet->Pt() - rho * embJet->Area()); + fHistEmbJetsCorrPt[fCentBin]->Fill(embJet->Pt() - fRhoVal * embJet->Area()); fHistEmbPart[fCentBin]->Fill(probePt); fHistEmbJetPhiEta->Fill(embJet->Eta(), embJet->Phi()); - fHistDeltaPtEmb[fCentBin]->Fill(embJet->Pt() - embJet->Area() * rho - probePt); - fHistRhoVSEmbBkg->Fill(embJet->Area() * rho, embJet->Pt() - probePt); + fHistDeltaPtEmb[fCentBin]->Fill(embJet->Pt() - embJet->Area() * fRhoVal - probePt); + fHistRhoVSEmbBkg->Fill(embJet->Area() * fRhoVal, embJet->Pt() - probePt); } else { @@ -746,8 +678,6 @@ void AliAnalysisTaskSAJF::GetLeadingJets(Int_t &maxJetIndex, Int_t &max2JetIndex if (!fJets) return; - const Double_t rho = fRho->GetVal(); - const Int_t njets = fJets->GetEntriesFast(); Float_t maxJetPt = -999; @@ -764,7 +694,7 @@ void AliAnalysisTaskSAJF::GetLeadingJets(Int_t &maxJetIndex, Int_t &max2JetIndex if (!AcceptJet(jet)) continue; - Float_t corrPt = jet->Pt() - rho * jet->Area(); + Float_t corrPt = jet->Pt() - fRhoVal * jet->Area(); if (maxJetIndex == -1 || maxJetPt < corrPt) { max2JetPt = maxJetPt; @@ -873,10 +803,14 @@ void AliAnalysisTaskSAJF::DoJetLoop() fHistCorrJetsPt[fCentBin]->Fill(corrPt); fHistCorrJetsPtArea[fCentBin]->Fill(corrPt, jet->Area()); - fHistMaxTrackPtvsJetPt[fCentBin]->Fill(jet->Pt(), jet->MaxTrackPt()); + if (fAnaType != kEMCALOnly) + fHistMaxTrackPtvsJetPt[fCentBin]->Fill(jet->Pt(), jet->MaxTrackPt()); + fHistMaxPartPtvsJetPt[fCentBin]->Fill(jet->Pt(), jet->MaxPartPt()); - fHistMaxTrackPtvsJetCorrPt[fCentBin]->Fill(corrPt, jet->MaxTrackPt()); + if (fAnaType != kEMCALOnly) + fHistMaxTrackPtvsJetCorrPt[fCentBin]->Fill(corrPt, jet->MaxTrackPt()); + fHistMaxPartPtvsJetCorrPt[fCentBin]->Fill(corrPt, jet->MaxPartPt()); fHistJetPhiEta[fCentBin]->Fill(jet->Eta(), jet->Phi()); @@ -992,7 +926,7 @@ void AliAnalysisTaskSAJF::DoEmbJetLoop(AliEmcalJet* &embJet, TObject* &embPart) } //________________________________________________________________________ -void AliAnalysisTaskSAJF::GetRigidCone(Float_t &pt, Float_t &ptrigid, Float_t &eta, Float_t &phi, Bool_t acceptMC, +void AliAnalysisTaskSAJF::GetRigidCone(Float_t &pt, Float_t &ptrigid, Float_t &eta, Float_t &phi, AliEmcalJet *jet, TClonesArray* tracks, TClonesArray* clusters) const { // Get rigid cone. @@ -1054,7 +988,7 @@ void AliAnalysisTaskSAJF::GetRigidCone(Float_t &pt, Float_t &ptrigid, Float_t &e continue; } - if (!AcceptCluster(cluster, acceptMC)) + if (!AcceptCluster(cluster, kTRUE)) continue; TLorentzVector nPart; @@ -1081,7 +1015,7 @@ void AliAnalysisTaskSAJF::GetRigidCone(Float_t &pt, Float_t &ptrigid, Float_t &e continue; } - if (!AcceptTrack(track, acceptMC)) + if (!AcceptTrack(track, kTRUE)) continue; Float_t tracketa = track->Eta(); @@ -1119,6 +1053,79 @@ void AliAnalysisTaskSAJF::ExecOnce() } } + if (!fRhoName.IsNull() && !fRho) { + fRho = dynamic_cast(InputEvent()->FindListObject(fRhoName)); + if (!fRho) { + AliError(Form("%s: Could not retrieve rho %s!", GetName(), fRhoName.Data())); + return; + } + } + + if (!fEmbJetsName.IsNull() && !fEmbJets) { + fEmbJets = dynamic_cast(InputEvent()->FindListObject(fEmbJetsName)); + if (!fEmbJets) { + AliError(Form("%s: Could not retrieve emb jets %s!", GetName(), fEmbJetsName.Data())); + return; + } + else if (!fEmbJets->GetClass()->GetBaseClass("AliEmcalJet")) { + AliError(Form("%s: Collection %s does not contain AliEmcalJet objects!", GetName(), fEmbJetsName.Data())); + fEmbJets = 0; + return; + } + } + + if (!fEmbCaloName.IsNull() && fAnaType == kEMCAL && !fEmbCaloClusters) { + fEmbCaloClusters = dynamic_cast(InputEvent()->FindListObject(fEmbCaloName)); + if (!fEmbCaloClusters) { + AliError(Form("%s: Could not retrieve embedded clusters %s!", GetName(), fEmbCaloName.Data())); + return; + } + else if (!fEmbCaloClusters->GetClass()->GetBaseClass("AliVCluster") && !fEmbCaloClusters->GetClass()->GetBaseClass("AliEmcalParticle")) { + AliError(Form("%s: Collection %s does not contain AliVCluster nor AliEmcalParticle objects!", GetName(), fEmbCaloName.Data())); + fEmbCaloClusters = 0; + return; + } + } + + if (!fEmbTracksName.IsNull() && !fEmbTracks) { + fEmbTracks = dynamic_cast(InputEvent()->FindListObject(fEmbTracksName)); + if (!fEmbTracks) { + AliError(Form("%s: Could not retrieve embedded tracks %s!", GetName(), fEmbTracksName.Data())); + return; + } + else if (!fEmbTracks->GetClass()->GetBaseClass("AliVParticle") && !fEmbTracks->GetClass()->GetBaseClass("AliEmcalParticle")) { + AliError(Form("%s: Collection %s does not contain AliVParticle nor AliEmcalParticle objects!", GetName(), fEmbTracksName.Data())); + fEmbTracks = 0; + return; + } + } + + if (!fRandCaloName.IsNull() && fAnaType == kEMCAL && !fRandCaloClusters) { + fRandCaloClusters = dynamic_cast(InputEvent()->FindListObject(fRandCaloName)); + if (!fRandCaloClusters) { + AliError(Form("%s: Could not retrieve randomized clusters %s!", GetName(), fRandCaloName.Data())); + return; + } + else if (!fRandCaloClusters->GetClass()->GetBaseClass("AliVCluster") && !fRandCaloClusters->GetClass()->GetBaseClass("AliEmcalParticle")) { + AliError(Form("%s: Collection %s does not contain AliVCluster nor AliEmcalParticle objects!", GetName(), fRandCaloName.Data())); + fRandCaloClusters = 0; + return; + } + } + + if (!fRandTracksName.IsNull() && !fRandTracks) { + fRandTracks = dynamic_cast(InputEvent()->FindListObject(fRandTracksName)); + if (!fRandTracks) { + AliError(Form("%s: Could not retrieve randomized tracks %s!", GetName(), fRandTracksName.Data())); + return; + } + else if (!fRandTracks->GetClass()->GetBaseClass("AliVParticle") && !fRandTracks->GetClass()->GetBaseClass("AliEmcalParticle")) { + AliError(Form("%s: Collection %s does not contain AliVParticle nor AliEmcalParticle objects!", GetName(), fRandTracksName.Data())); + fRandTracks = 0; + return; + } + } + AliAnalysisTaskEmcalJet::ExecOnce(); const Float_t semiDiag = TMath::Sqrt((fMaxPhi - fMinPhi) * (fMaxPhi - fMinPhi) + diff --git a/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.h b/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.h index b407c25aa57..50bfab6ebb6 100644 --- a/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.h +++ b/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.h @@ -25,9 +25,9 @@ class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcalJet { void SetEmbJetsName(const char *n) { fEmbJetsName = n ; } void SetRandTracksName(const char *n) { fRandTracksName = n ; } void SetRandClusName(const char *n) { fRandCaloName = n ; } - void SetEmbTracksName(const char *n) { fEmbTracksName = n ; } - void SetEmbClusName(const char *n) { fEmbCaloName = n ; } - void SetRhoName(const char *n) { fRhoName = n ; } + void SetEmbTracksName(const char *n) { fEmbTracksName = n ; } + void SetEmbClusName(const char *n) { fEmbCaloName = n ; } + void SetRhoName(const char *n) { fRhoName = n ; } protected: void ExecOnce() ; @@ -38,7 +38,7 @@ class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcalJet { void DoEmbJetLoop(AliEmcalJet* &embJet, TObject* &embPart) ; void DoTrackLoop() ; void DoClusterLoop() ; - void GetRigidCone(Float_t &pt, Float_t &ptrigid, Float_t &eta, Float_t &phi, Bool_t acceptMC = kFALSE, + void GetRigidCone(Float_t &pt, Float_t &ptrigid, Float_t &eta, Float_t &phi, AliEmcalJet *jet = 0, TClonesArray* tracks = 0, TClonesArray* clusters = 0) const; Float_t fMinRC2LJ; // Minimum distance random cone to leading jet @@ -55,6 +55,7 @@ class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcalJet { TClonesArray *fRandTracks; //!Randomized tracks TClonesArray *fRandCaloClusters; //!Randomized clusters AliRhoParameter *fRho; //!Event rho + Double_t fRhoVal; //!Event rho value Int_t fEmbeddedClusterId; //!Embedded cluster id Int_t fEmbeddedTrackId; //!Embedded track id @@ -112,6 +113,6 @@ class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcalJet { AliAnalysisTaskSAJF(const AliAnalysisTaskSAJF&); // not implemented AliAnalysisTaskSAJF &operator=(const AliAnalysisTaskSAJF&); // not implemented - ClassDef(AliAnalysisTaskSAJF, 8) // jet analysis task + ClassDef(AliAnalysisTaskSAJF, 9) // jet analysis task }; #endif diff --git a/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx b/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx index adc10f7af4e..4ade9ae745d 100644 --- a/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx +++ b/PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAQA.cxx @@ -122,18 +122,18 @@ void AliAnalysisTaskSAQA::UserCreateOutputObjects() fOutput = new TList(); fOutput->SetOwner(); - fHistCentrality = new TH1F("fHistCentrality","Event centrality distribution", fNbins, 0, 100); + fHistCentrality = new TH1F("fHistCentrality","Event centrality distribution", 100, 0, 100); fHistCentrality->GetXaxis()->SetTitle("Centrality (%)"); fHistCentrality->GetYaxis()->SetTitle("counts"); fOutput->Add(fHistCentrality); - fHistTracksCent = new TH2F("fHistTracksCent","Tracks vs. centrality", fNbins, 0, 100, fNbins, 0, 4000); + fHistTracksCent = new TH2F("fHistTracksCent","Tracks vs. centrality", 100, 0, 100, fNbins, 0, 4000); fHistTracksCent->GetXaxis()->SetTitle("Centrality (%)"); fHistTracksCent->GetYaxis()->SetTitle("No. of tracks"); fOutput->Add(fHistTracksCent); if (fAnaType == kEMCAL) { - fHistClusCent = new TH2F("fHistClusCent","Clusters vs. centrality", fNbins, 0, 100, fNbins, 0, 2000); + fHistClusCent = new TH2F("fHistClusCent","Clusters vs. centrality", 100, 0, 100, fNbins, 0, 2000); fHistClusCent->GetXaxis()->SetTitle("Centrality (%)"); fHistClusCent->GetYaxis()->SetTitle("No. of clusters"); fOutput->Add(fHistClusCent); diff --git a/PWGGA/EMCALJetTasks/macros/AddTaskScale.C b/PWGGA/EMCALJetTasks/macros/AddTaskScale.C index 38273385d73..c510ed4d3e5 100644 --- a/PWGGA/EMCALJetTasks/macros/AddTaskScale.C +++ b/PWGGA/EMCALJetTasks/macros/AddTaskScale.C @@ -3,7 +3,9 @@ AliAnalysisTaskScale* AddTaskScale( const char *nTracks = "Tracks", const char *nClusters = "CaloClustersCorr", - const char *outfilename = "AnalysisResults.root" + Double_t ptcut = 0.150, + const char *outfilename = "AnalysisResults.root", + const char *taskname = "Scale" ) { // Get the pointer to the existing analysis manager via the static access method. @@ -27,10 +29,11 @@ AliAnalysisTaskScale* AddTaskScale( // Init the task and do settings //------------------------------------------------------- - TString name(Form("Scale_%s", nClusters)); + TString name(Form("%s_%s_%s_%f", taskname, nTracks, nClusters, TMath::FloorNint(ptcut*1000))); AliAnalysisTaskScale *scaletask = new AliAnalysisTaskScale(name); scaletask->SetTracksName(nTracks); scaletask->SetClusName(nClusters); + scaletask->SetPtCut(ptcut); scaletask->SetAnaType(AliAnalysisTaskEmcal::kEMCAL); //------------------------------------------------------- @@ -40,8 +43,10 @@ AliAnalysisTaskScale* AddTaskScale( mgr->AddTask(scaletask); // Create containers for input/output + TString contname(name); + contname += "_Histos"; mgr->ConnectInput (scaletask, 0, mgr->GetCommonInputContainer() ); - AliAnalysisDataContainer *coscale = mgr->CreateContainer(name, + AliAnalysisDataContainer *coscale = mgr->CreateContainer(contname, TList::Class(), AliAnalysisManager::kOutputContainer, outfilename); diff --git a/PWGGA/EMCALTasks/AliAnalysisTaskEmcal.cxx b/PWGGA/EMCALTasks/AliAnalysisTaskEmcal.cxx index c92a5881019..5d343226cf9 100644 --- a/PWGGA/EMCALTasks/AliAnalysisTaskEmcal.cxx +++ b/PWGGA/EMCALTasks/AliAnalysisTaskEmcal.cxx @@ -214,7 +214,7 @@ void AliAnalysisTaskEmcal::ExecOnce() return; } - if (!fCaloName.IsNull() && (fAnaType == kEMCAL) && !fCaloClusters) { + if (!fCaloName.IsNull() && (fAnaType == kEMCAL || fAnaType == kEMCALOnly) && !fCaloClusters) { fCaloClusters = dynamic_cast(InputEvent()->FindListObject(fCaloName)); if (!fCaloClusters) { AliError(Form("%s: Could not retrieve clusters %s!", GetName(), fCaloName.Data())); @@ -229,7 +229,7 @@ void AliAnalysisTaskEmcal::ExecOnce() } } - if (!fTracksName.IsNull() && !fTracks) { + if (!fTracksName.IsNull() && fAnaType != kEMCALOnly && !fTracks) { fTracks = dynamic_cast(InputEvent()->FindListObject(fTracksName)); if (!fTracks) { AliError(Form("%s: Could not retrieve tracks %s!", GetName(), fTracksName.Data())); diff --git a/PWGGA/EMCALTasks/AliAnalysisTaskEmcal.h b/PWGGA/EMCALTasks/AliAnalysisTaskEmcal.h index eac2fbfa4a4..c4908a0d09f 100644 --- a/PWGGA/EMCALTasks/AliAnalysisTaskEmcal.h +++ b/PWGGA/EMCALTasks/AliAnalysisTaskEmcal.h @@ -19,7 +19,8 @@ class AliAnalysisTaskEmcal : public AliAnalysisTaskSE { enum EmcalAnaType { kTPC = 0, // TPC only analysis kEMCAL = 1, // EMCal + TPC analysis - kTPCSmall = 2 // TPC only in EMCal acceptance + kTPCSmall = 2, // TPC only in EMCal acceptance + kEMCALOnly = 3, // EMCal only analysis }; enum BeamType { -- 2.43.0