set ( DHDR PWGEMCALLinkDef.h)
-set ( EINCLUDE PWG/EMCAL EMCAL OADB STEER/ESD STEER/STEERBase ANALYSIS)
+set ( EINCLUDE PWG/Tools PWG/EMCAL EMCAL OADB STEER/ESD STEER/STEERBase ANALYSIS)
#include "AliEmcalMCTrackSelector.h"
#include <TClonesArray.h>
-#include <TH1I.h>
+#include "AliNamedArrayI.h"
#include "AliAnalysisManager.h"
#include "AliVEventHandler.h"
#include "AliVEvent.h"
fTracksMapName = fTracksOutName;
fTracksMapName += "_Map";
- fTracksMap = new TH1I(fTracksMapName, fTracksMapName, 1000, 0, 1);
+ fTracksMap = new AliNamedArrayI(fTracksMapName, 9999);
}
//________________________________________________________________________
// clear container (normally a null operation as the event should clean it already)
fTracksOut->Delete();
+ fTracksMap->Clear();
const Int_t Ntracks = GetNumberOfTracks();
- new (fTracksMap) TH1I(fTracksMapName, fTracksMapName, Ntracks-2, 0, 1); // Ntracks - 2, we use also over- and uner-flow bins
// loop over tracks
for (Int_t iTracks = 0, nacc = 0; iTracks < Ntracks; ++iTracks) {
- fTracksMap->SetBinContent(iTracks, 0);
+ fTracksMap->AddAt(-1, iTracks);
AliVParticle* track = GetTrack(iTracks);
if (fChargedMC && track->Charge() == 0) continue;
- fTracksMap->SetBinContent(iTracks, nacc);
+ fTracksMap->AddAt(nacc, iTracks);
AddTrack(track, nacc);
class TClonesArray;
class TString;
class TH1I;
+class AliNamedArrayI;
#include "AliAnalysisTaskSE.h"
Bool_t fEsdMode; //!switch for ESD/AOD mode
TClonesArray *fTracksIn; //!track array in (AOD only)
TClonesArray *fTracksOut; //!track array out
- TH1I *fTracksMap; //!track mapping
+ AliNamedArrayI *fTracksMap; //!track mapping
private:
AliEmcalMCTrackSelector(const AliEmcalMCTrackSelector&); // not implemented
label = TMath::Abs(track->GetLabel());
if (label == 0) {
- AliWarning(Form("Track %d with label==0", iTracks));
+ AliDebug(2,Form("Track %d with label==0", iTracks));
label = 99999;
}
}
//_________________________________________________________________________________________________
AliPicoTrack::AliPicoTrack() :
AliVTrack(),
- fPt(0), fEta(0), fPhi(0), fQ(0), fLabel(-1), fTrackType(-1), fEtaEmc(0), fPhiEmc(0), fEmcal(0), fClusId(-1)
+ fPt(0), fEta(0), fPhi(0), fQ(0), fLabel(-1), fTrackType(0), fEtaEmc(0), fPhiEmc(0), fEmcal(0), fClusId(-1)
{
// Default constructor.
}
Int_t GetLabel() const { return fLabel; }
void SetLabel(Int_t label) { fLabel = label; }
Byte_t GetTrackType() const { return fTrackType;}
+ void SetTrackType(Byte_t type) { fTrackType = type;}
Int_t PdgCode() const { return 0; }
const Double_t *PID() const { return 0; }
Int_t GetID() const { return 0; }
Int_t countEmbJets = 0;
while (embJet != 0) {
+ AliDebug(2,Form("Elaborating embedded jet n. %d", countEmbJets));
+ countEmbJets++;
+
if (!AcceptJet(embJet)) {
+ AliDebug(2,"Embedded jet not accepted, skipping...");
fHistEmbRejectedJetsPhiEta[fCentBin]->Fill(embJet->Eta(), embJet->Phi());
fHistEmbRejectedJetsPtArea[fCentBin]->Fill(embJet->Area(), embJet->Pt());
embJet = NextEmbeddedJet();
continue;
}
-
- AliDebug(2,Form("Elaborating embedded jet n. %d", countEmbJets));
- countEmbJets++;
Double_t maxClusterPt = 0;
Double_t maxClusterEta = 0;
if (!t)
continue;
if (fIsMcPart) {
- if (((fJetType & kChargedJet) != 0) && (t->Charge() == 0))
+ if (((fJetType & kChargedJet) != 0) && (t->Charge() == 0)) {
+ AliDebug(2,Form("Skipping track %d because it is neutral.", iTracks));
continue;
- if (((fJetType & kNeutralJet) != 0) && (t->Charge() != 0))
+ }
+ if (((fJetType & kNeutralJet) != 0) && (t->Charge() != 0)) {
+ AliDebug(2,Form("Skipping track %d because it is charged.", iTracks));
continue;
+ }
}
if (fIsMcPart || t->GetLabel() != 0) {
if (fMCConstSel == kNone) {
for(UInt_t ic = 0; ic < constituents.size(); ++ic) {
Int_t uid = constituents[ic].user_index();
- AliDebug(2,Form("Processing constituent %d", uid));
+ AliDebug(3,Form("Processing constituent %d", uid));
if ((uid == -1) /*&& (constituents[ic].kt2() < 1e-25)*/) { //ghost particle
++gall;
Double_t gphi = constituents[ic].phi();
}
if (fTracks) {
TClass cls(fTracks->GetClass()->GetName());
- if (cls.InheritsFrom("AliMCParticle"))
+ if (cls.InheritsFrom("AliMCParticle") || cls.InheritsFrom("AliAODMCParticle"))
fIsMcPart = 1;
}
#include "AliJetConstituentTagCopier.h"
#include <TClonesArray.h>
-#include <TH1I.h>
#include <TMath.h>
+#include "AliNamedArrayI.h"
#include "AliVCluster.h"
#include "AliVParticle.h"
#include "AliEmcalParticle.h"
}
if (!fMCParticlesMap) {
- fMCParticlesMap = dynamic_cast<TH1I*>(InputEvent()->FindListObject(fMCParticlesName + "_Map"));
+ fMCParticlesMap = dynamic_cast<AliNamedArrayI*>(InputEvent()->FindListObject(fMCParticlesName + "_Map"));
// this is needed to map the MC labels with the indexes of the MC particle collection
// if teh map is not given, the MC labels are assumed to be consistent with the indexes (which is not the case if AliEmcalMCTrackSelector is used)
if (!fMCParticlesMap) {
AliWarning(Form("%s: Could not retrieve map for MC particles %s! Will assume MC labels consistent with indexes...", GetName(), fMCParticlesName.Data()));
- fMCParticlesMap = new TH1I("tracksMap","tracksMap",9999,0,1);
+ fMCParticlesMap = new AliNamedArrayI("tracksMap",9999);
for (Int_t i = 0; i < 9999; i++) {
- fMCParticlesMap->SetBinContent(i,i);
+ fMCParticlesMap->AddAt(i,i);
}
}
}
continue;
Int_t mcLabel = cluster->GetLabel();
if (mcLabel > 0) {
- Int_t index = fMCParticlesMap->At(mcLabel);
+ Int_t index = -1;
+ if (mcLabel < fMCParticlesMap->GetSize())
+ index = fMCParticlesMap->At(mcLabel);
if (index < 0)
continue;
AliVParticle *part = static_cast<AliVParticle*>(fMCParticles->At(index));
continue;
Int_t mcLabel = TMath::Abs(track->GetLabel());
if (mcLabel != 0) {
- Int_t index = fMCParticlesMap->At(mcLabel);
+ Int_t index = -1;
+ if (mcLabel < fMCParticlesMap->GetSize())
+ index = fMCParticlesMap->At(mcLabel);
if (index < 0)
continue;
AliVParticle *part = static_cast<AliVParticle*>(fMCParticles->At(index));
else if (track)
mcLabel = TMath::Abs(track->GetLabel());
if (mcLabel != 0) {
- Int_t index = fMCParticlesMap->At(mcLabel);
+ Int_t index = -1;
+ if (mcLabel < fMCParticlesMap->GetSize())
+ index = fMCParticlesMap->At(mcLabel);
if (index < 0)
continue;
AliVParticle *part = static_cast<AliVParticle*>(fMCParticles->At(index));
class TClonesArray;
class TString;
+class AliNamedArrayI;
class AliJetConstituentTagCopier : public AliAnalysisTaskEmcal {
public:
TString fMCParticlesName; // name of MC particle collection
TClonesArray *fMCParticles; //!MC particle collection
- TH1I *fMCParticlesMap; //!MC particle map
+ AliNamedArrayI *fMCParticlesMap; //!MC particle map
private:
AliJetConstituentTagCopier(const AliJetConstituentTagCopier&); // not implemented
SetMarkMC(0);
fAODfilterBits[0] = -1;
fAODfilterBits[1] = -1;
+ fEtaMin = -1;
+ fEtaMax = 1;
+ fPhiMin = -10;
+ fPhiMax = 10;
+ fPtMin = 0;
+ fPtMax = 1000;
}
//________________________________________________________________________
SetMarkMC(0);
fAODfilterBits[0] = -1;
fAODfilterBits[1] = -1;
+ fEtaMin = -1;
+ fEtaMax = 1;
+ fPhiMin = -10;
+ fPhiMax = 10;
+ fPtMin = 0;
+ fPtMax = 1000;
}
//________________________________________________________________________
CopyMCParticles();
if (fAODMCParticles) {
+ AliDebug(2, Form("%d MC particles will be processed for embedding.", fAODMCParticles->GetEntriesFast()));
for (Int_t i = 0; i < fAODMCParticles->GetEntriesFast(); i++) {
AliAODMCParticle *part = static_cast<AliAODMCParticle*>(fAODMCParticles->At(i));
if (!part) {
continue;
}
+ AliDebug(3, Form("Processing MC particle %d with pT = %f, eta = %f, phi = %f", i, part->Pt(), part->Eta(), part->Phi()));
+
if (!part->IsPhysicalPrimary())
continue;
- AliDebug(3, Form("Embedding MC particle with pT = %f, eta = %f, phi = %f", part->Pt(), part->Eta(), part->Phi()));
+ if (part->Pt() < fPtMin || part->Pt() > fPtMax ||
+ part->Eta() < fEtaMin || part->Eta() > fEtaMax ||
+ part->Phi() < fPhiMin || part->Phi() > fPhiMax)
+ continue;
+
AddMCParticle(part, i);
+ AliDebug(3, "Embedded!");
}
}
}
if (fCopyArray && fTracks)
CopyTracks();
+ AliDebug(2, Form("Start embedding with %d tracks.", fOutTracks->GetEntriesFast()));
+
if (fAODTracks) {
AliDebug(2, Form("%d tracks will be processed for embedding.", fAODTracks->GetEntriesFast()));
for (Int_t i = 0; i < fAODTracks->GetEntriesFast(); i++) {
continue;
}
+ AliDebug(3, Form("Processing track %d with pT = %f, eta = %f, phi = %f, label = %d", i, track->Pt(), track->Eta(), track->Phi(), track->GetLabel()));
+
Int_t type = 0;
Bool_t isEmc = kFALSE;
if (!fEsdTreeMode) {
if ((aodtrack->GetStatus()&AliESDtrack::kITSrefit)==0) {
if (fIncludeNoITS)
type = 2;
- else
+ else {
+ AliDebug(3, "Track not embedded because ITS refit failed.");
continue;
}
+ }
else {
type = 1;
}
}
else { /*not a good track*/
+ AliDebug(3, "Track not embedded because not an hybrid track.");
continue;
}
}
}
+ if (track->Pt() < fPtMin || track->Pt() > fPtMax ||
+ track->Eta() < fEtaMin || track->Eta() > fEtaMax ||
+ track->Phi() < fPhiMin || track->Phi() > fPhiMax) {
+ AliDebug(3, "Track not embedded because out of limits.");
+ continue;
+ }
+
if (fTrackEfficiency < 1) {
Double_t r = gRandom->Rndm();
- if (fTrackEfficiency < r)
+ if (fTrackEfficiency < r) {
+ AliDebug(3, "Track not embedded because of artificial inefiiciency.");
continue;
}
+ }
Int_t label = 0;
if (fIsMC) {
label = TMath::Abs(track->GetLabel());
if (label == 0) {
- AliWarning(Form("%s: Track %d with label==0", GetName(), i));
+ AliDebug(2,Form("%s: Track %d with label==0", GetName(), i));
label = 99999;
}
}
- AliDebug(3, Form("Embedding track with pT = %f, eta = %f, phi = %f, label = %d", track->Pt(), track->Eta(), track->Phi(), label));
AddTrack(track->Pt(), track->Eta(), track->Phi(), type, track->GetTrackEtaOnEMCal(), track->GetTrackPhiOnEMCal(), isEmc, label);
+ AliDebug(3, "Track embedded!");
}
}
}
TLorentzVector vect;
Double_t vert[3] = {0,0,0};
clus->GetMomentum(vect,vert);
+
+ if (vect.Pt() < fPtMin || vect.Pt() > fPtMax ||
+ vect.Eta() < fEtaMin || vect.Eta() > fEtaMax ||
+ vect.Phi() < fPhiMin || vect.Phi() > fPhiMax)
+ continue;
+
AddCluster(clus->E(), vect.Eta(), vect.Phi(), clus->GetLabel());
}
}
#include <TRandom.h>
#include <TParameter.h>
#include <TSystem.h>
-#include <TH1F.h>
+#include <TH1I.h>
#include "AliVEvent.h"
#include "AliLog.h"
TString fileName(fPYTHIAPath);
if (!fileName.EndsWith("/"))
fileName += "/";
-
- fileName += fAnchorRun;
- fileName += "/";
+
+ if (fAnchorRun > 0) {
+ fileName += fAnchorRun;
+ fileName += "/";
+ }
fileName += fCurrentPtHardBin;
fileName += "/";
if (fCurrentAODFileID < 10)
class TParameter;
class TString;
+class TH1;
class AliJetEmbeddingFromPYTHIATask : public AliJetEmbeddingFromAODTask {
public:
#include "AliPicoTrack.h"
#include "AliEMCALGeometry.h"
#include "AliLog.h"
+#include "AliNamedArrayI.h"
ClassImp(AliJetModelBaseTask)
fOutMCParticles->Delete();
}
- // Reset name (it is cleared each event by the analysis manager)
- if (fOutMCParticlesMap) {
- new (fOutMCParticlesMap) TH1I(fOutMCParticlesName + "_Map", fOutMCParticlesName + "_Map",9999,0,1);
- fOutMCParticlesMap->TArrayI::Reset(-1);
- }
+ // Clear map
+ if (fOutMCParticlesMap)
+ fOutMCParticlesMap->Clear();
AliVCaloCells *tempCaloCells = 0;
return kFALSE;
}
- fMCParticlesMap = dynamic_cast<TH1I*>(InputEvent()->FindListObject(fMCParticlesName + "_Map"));
+ fMCParticlesMap = dynamic_cast<AliNamedArrayI*>(InputEvent()->FindListObject(fMCParticlesName + "_Map"));
if (!fMCParticlesMap) {
AliWarning(Form("%s: Could not retrieve map for MC particles %s! Will assume MC labels consistent with indexes...", GetName(), fMCParticlesName.Data()));
- fMCParticlesMap = new TH1I(fMCParticlesName + "_Map", fMCParticlesName + "_Map",9999,0,1);
+ fMCParticlesMap = new AliNamedArrayI(fMCParticlesName + "_Map", 9999);
for (Int_t i = 0; i < 9999; i++) {
- fMCParticlesMap->SetBinContent(i,i);
+ fMCParticlesMap->AddAt(i,i);
}
}
}
InputEvent()->AddObject(fOutMCParticles);
}
- fOutMCParticlesMap = new TH1I(fOutMCParticlesName + "_Map", fOutMCParticlesName + "_Map",9999,0,1);
+ fOutMCParticlesMap = new AliNamedArrayI(fOutMCParticlesName + "_Map",9999);
if (InputEvent()->FindListObject(fOutMCParticlesName + "_Map")) {
AliFatal(Form("%s: Map %s_Map is already present in the event!", GetName(), fOutMCParticlesName.Data()));
return kFALSE;
AliAODMCParticle *aodpart = new ((*fOutMCParticles)[nPart]) AliAODMCParticle(*part);
- fOutMCParticlesMap->SetBinContent(origIndex + fMCLabelShift, nPart);
+ fOutMCParticlesMap->AddAt(nPart, origIndex + fMCLabelShift);
AliDebug(2, Form("Setting bin %d to %d (fMCLabelShift=%d, origIndex=%d)",
origIndex + fMCLabelShift, fOutMCParticlesMap->At(origIndex + fMCLabelShift), fMCLabelShift, origIndex));
if (!fMCParticlesMap)
return;
- for (Int_t i = 0; i < fMCParticlesMap->GetNbinsX()+2; i++) {
- fOutMCParticlesMap->SetBinContent(i, fMCParticlesMap->GetBinContent(i));
- if (fMCParticlesMap->GetBinContent(i) != 0)
+ for (Int_t i = 0; i < fMCParticlesMap->GetSize(); i++) {
+ fOutMCParticlesMap->AddAt(fMCParticlesMap->At(i), i);
+ if (fMCParticlesMap->At(i) >= 0)
fMCLabelShift = i;
}
class AliPicoTrack;
class AliVCaloCells;
class AliAODMCParticle;
+class AliNamedArrayI;
#include <TH1F.h>
#include <TF1.h>
AliVCaloCells *fOutCaloCells; //!output cells collection
Int_t fAddedCells; //!number of added cells
TClonesArray *fMCParticles; //!MC particles collection
- TH1I *fMCParticlesMap; //!MC particles mapping
+ AliNamedArrayI *fMCParticlesMap; //!MC particles mapping
TClonesArray *fOutMCParticles; //!output MC particles collection
- TH1I *fOutMCParticlesMap; //!MC particles mapping
+ AliNamedArrayI *fOutMCParticlesMap; //!MC particles mapping
Int_t fMCLabelShift; //!MC label shift
Bool_t fEsdMode; //!ESD/AOD mode
TList *fOutput; //!output list for QA histograms
#include "AliMCEvent.h"
#include "AliLog.h"
#include "AliRhoParameter.h"
+#include "AliNamedArrayI.h"
ClassImp(AliJetResponseMaker)
}
if (fAreCollections2MC) {
- fTracks2Map = dynamic_cast<TH1*>(InputEvent()->FindListObject(fTracks2Name + "_Map"));
+ fTracks2Map = dynamic_cast<AliNamedArrayI*>(InputEvent()->FindListObject(fTracks2Name + "_Map"));
// this is needed to map the MC labels with the indexes of the MC particle collection
// if teh map is not given, the MC labels are assumed to be consistent with the indexes (which is not the case if AliEmcalMCTrackSelector is used)
if (!fTracks2Map) {
AliWarning(Form("%s: Could not retrieve map for tracks2 %s! Will assume MC labels consistent with indexes...", GetName(), fTracks2Name.Data()));
- fTracks2Map = new TH1I("tracksMap","tracksMap",9999,0,1);
+ fTracks2Map = new AliNamedArrayI("tracksMap",9999);
for (Int_t i = 0; i < 9999; i++) {
- fTracks2Map->SetBinContent(i,i);
+ fTracks2Map->AddAt(i,i);
}
}
}
d1 -= track->Pt();
continue;
}
- else if (MClabel < fTracks2Map->GetNbinsX()-2) {
- index = fTracks2Map->GetBinContent(MClabel);
+ else if (MClabel < fTracks2Map->GetSize()) {
+ index = fTracks2Map->At(MClabel);
}
if (index < 0) {
d1 -= part.Pt() * cellFrac;
continue;
}
- else if (MClabel < fTracks2Map->GetNbinsX()-2) {
- index = fTracks2Map->GetBinContent(MClabel);
+ else if (MClabel < fTracks2Map->GetSize()) {
+ index = fTracks2Map->At(MClabel);
}
if (index < 0) {
d1 -= part.Pt();
continue;
}
- else if (MClabel < fTracks2Map->GetNbinsX()-2) {
- index = fTracks2Map->GetBinContent(MClabel);
+ else if (MClabel < fTracks2Map->GetSize()) {
+ index = fTracks2Map->At(MClabel);
}
if (index < 0) {
class TClonesArray;
class TH1;
class TH2;
+class AliNamedArrayI;
#include "AliEmcalJet.h"
#include "AliAnalysisTaskEmcalJet.h"
TClonesArray *fJets2; //!Jets 2
AliRhoParameter *fRho2; //!Event rho 2
Double_t fRho2Val; //!Event rho 2 value
- TH1 *fTracks2Map; //!MC particle map
+ AliNamedArrayI *fTracks2Map; //!MC particle map
// General histograms
TH1 *fHistTrialsAfterSel; //!total number of trials per pt hard bin after selection
TH1 *fHistEventsAfterSel; //!total number of events per pt hard bin after selection
histname = "fHistLeadingJetPhiEta_";
histname += i;
- fHistLeadingJetPhiEta[i] = new TH2F(histname.Data(), histname.Data(), 50,-1, 1, 101, 0, TMath::Pi() * 2.02);
+ fHistLeadingJetPhiEta[i] = new TH3F(histname.Data(), histname.Data(),
+ 50, binsEta,
+ 101, binsPhi,
+ nbinsZ, binsZ);
fHistLeadingJetPhiEta[i]->GetXaxis()->SetTitle("#eta");
fHistLeadingJetPhiEta[i]->GetYaxis()->SetTitle("#phi");
+ fHistLeadingJetPhiEta[i]->GetZaxis()->SetTitle("p_{T,lead} (GeV/c)");
fOutput->Add(fHistLeadingJetPhiEta[i]);
histname = "fHistLeadingJetPtArea_";
histname += i;
- fHistLeadingJetPtArea[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, 30, 0, fJetRadius * fJetRadius * TMath::Pi() * 3);
+ fHistLeadingJetPtArea[i] = new TH3F(histname.Data(), histname.Data(),
+ fNbins, binsPt,
+ 30, binsArea,
+ nbinsZ, binsZ);
fHistLeadingJetPtArea[i]->GetXaxis()->SetTitle("p_{T}^{raw} (GeV/c)");
fHistLeadingJetPtArea[i]->GetYaxis()->SetTitle("area");
+ fHistLeadingJetPtArea[i]->GetZaxis()->SetTitle("p_{T,lead} (GeV/c)");
fOutput->Add(fHistLeadingJetPtArea[i]);
if (!fRhoName.IsNull()) {
histname = "fHistLeadingJetCorrPtArea_";
histname += i;
- fHistLeadingJetCorrPtArea[i] = new TH2F(histname.Data(), histname.Data(), fNbins * 2, -fMaxBinPt, fMaxBinPt, 30, 0, fJetRadius * fJetRadius * TMath::Pi() * 3);
+ fHistLeadingJetCorrPtArea[i] = new TH3F(histname.Data(), histname.Data(),
+ fNbins * 2, binsCorrPt,
+ 30, binsArea,
+ nbinsZ, binsZ);
fHistLeadingJetCorrPtArea[i]->GetXaxis()->SetTitle("p_{T}^{corr} (GeV/c)");
fHistLeadingJetCorrPtArea[i]->GetYaxis()->SetTitle("area");
+ fHistLeadingJetCorrPtArea[i]->GetZaxis()->SetTitle("p_{T,lead} (GeV/c)");
fOutput->Add(fHistLeadingJetCorrPtArea[i]);
histname = "fHistRhoVSleadJetPt_";
nbinsZ, binsZ);
fHistJetsCorrPtArea[i]->GetXaxis()->SetTitle("p_{T}^{corr} [GeV/c]");
fHistJetsCorrPtArea[i]->GetYaxis()->SetTitle("area");
+ fHistJetsCorrPtArea[i]->GetZaxis()->SetTitle("p_{T,lead} (GeV/c)");
fOutput->Add(fHistJetsCorrPtArea[i]);
}
if (!AcceptJet(jet))
continue;
- fHistLeadingJetPhiEta[fCentBin]->Fill(jet->Eta(), jet->Phi());
- fHistLeadingJetPtArea[fCentBin]->Fill(jet->Pt(), jet->Area());
+ Float_t ptLeading = GetLeadingHadronPt(jet);
+
+ fHistLeadingJetPhiEta[fCentBin]->Fill(jet->Eta(), jet->Phi(), ptLeading);
+ fHistLeadingJetPtArea[fCentBin]->Fill(jet->Pt(), jet->Area(), ptLeading);
Float_t corrPt = jet->Pt() - fRhoVal * jet->Area();
if (fHistLeadingJetCorrPtArea[fCentBin])
- fHistLeadingJetCorrPtArea[fCentBin]->Fill(corrPt, jet->Area());
+ fHistLeadingJetCorrPtArea[fCentBin]->Fill(corrPt, jet->Area(), ptLeading);
if (i==0 && fHistRhoVSleadJetPt[fCentBin])
fHistRhoVSleadJetPt[fCentBin]->Fill(fRhoVal, jet->Pt());
// General histograms
TH1F *fHistEvents[4]; //!Events accepted/rejected
- TH2F *fHistLeadingJetPhiEta[4]; //!Leading jet phi-eta
- TH2F *fHistLeadingJetPtArea[4]; //!Leading jet pt spectrum vs. area
- TH2F *fHistLeadingJetCorrPtArea[4];//!Corrected leading jet pt spectrum vs. area
+ TH3F *fHistLeadingJetPhiEta[4]; //!Leading jet phi-eta
+ TH3F *fHistLeadingJetPtArea[4]; //!Leading jet pt spectrum vs. area
+ TH3F *fHistLeadingJetCorrPtArea[4];//!Corrected leading jet pt spectrum vs. area
TH2F *fHistRhoVSleadJetPt[4]; //!Area(leadjet) * rho vs. leading jet pt
TH2F *fNjetsVsCent; //!No. of jets vs. centrality
//
// Author: S.Aiola
-#include <TChain.h>
#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
AliAnalysisTaskEmcalJet("AliAnalysisTaskSAQA", kTRUE),
fCellEnergyCut(0.1),
fParticleLevel(kFALSE),
+ fIsMC(kFALSE),
fNclusters(0),
fNtracks(0),
fNjets(0),
AliAnalysisTaskEmcalJet(name, kTRUE),
fCellEnergyCut(0.1),
fParticleLevel(kFALSE),
+ fIsMC(kFALSE),
fNclusters(0),
fNtracks(0),
fNjets(0),
fHistTrPhiEtaPt[i][j]->GetZaxis()->SetTitle("p_{T} (GeV/c)");
fOutput->Add(fHistTrPhiEtaPt[i][j]);
}
- if (!fParticleLevel) {
+ if (!fParticleLevel && fIsMC) {
histname = Form("fHistTrPhiEtaPtNegLab_%d",i);
fHistTrPhiEtaPtNegLab[i] = new TH3F(histname,histname, 100, -1, 1, 201, 0, TMath::Pi() * 2.01, fNbins, fMinBinPt, fMaxBinPt);
fHistTrPhiEtaPtNegLab[i]->GetXaxis()->SetTitle("#eta");
if (fTracks) {
trackSum = DoTrackLoop();
-
+ AliDebug(2,Form("%d tracks found in the event", fTracks->GetEntriesFast()));
fHistTracksCent->Fill(fCent, fNtracks);
}
continue;
}
- AliVTrack* vtrack = dynamic_cast<AliVTrack*>(track);
-
- if (vtrack && !AcceptTrack(vtrack))
+ if (!AcceptTrack(track))
continue;
fNtracks++;
}
else {
fHistTrPhiEtaPt[fCentBin][3]->Fill(track->Eta(), track->Phi(), track->Pt());
- if (fHistTrPhiEtaPtNegLab[fCentBin] && track->GetLabel() < 0)
+ if (fHistTrPhiEtaPtNegLab[fCentBin] && track->GetLabel() <= 0)
fHistTrPhiEtaPtNegLab[fCentBin]->Fill(track->Eta(), track->Phi(), track->Pt());
Int_t type = 0;
if (type >= 0 && type < 3)
fHistTrPhiEtaPt[fCentBin][type]->Fill(track->Eta(), track->Phi(), track->Pt());
else
- AliWarning(Form("%s: track type %d not recognized!", GetName(), type));
+ AliDebug(2,Form("%s: track type %d not recognized!", GetName(), type));
}
+ AliVTrack* vtrack = dynamic_cast<AliVTrack*>(track);
+
if (!vtrack)
continue;
void SetCellEnergyCut(Float_t cut) { fCellEnergyCut = cut ; }
void SetParticleLevel(Bool_t s) { fParticleLevel = s ; }
+ void SetMC(Bool_t m) { fIsMC = m ; }
protected:
Float_t fCellEnergyCut; // Energy cell cut
Bool_t fParticleLevel; // Set particle level analysis
+ Bool_t fIsMC; // Trigger, MC analysis
Int_t fNclusters; //!Number of accepted clusters in the event
Int_t fNtracks; //!Number of accepted tracks in the event
Int_t fNjets; //!Number of accepted jets in the event
AliAnalysisTaskSAQA(const AliAnalysisTaskSAQA&); // not implemented
AliAnalysisTaskSAQA &operator=(const AliAnalysisTaskSAQA&); // not implemented
- ClassDef(AliAnalysisTaskSAQA, 17) // Quality task for Emcal analysis
+ ClassDef(AliAnalysisTaskSAQA, 18) // Quality task for Emcal analysis
};
#endif