18 #include <TClonesArray.h>
22 #include <THnSparse.h>
23 #include <THashList.h>
28 #include "AliCentrality.h"
29 #include "AliVCluster.h"
30 #include "AliVParticle.h"
31 #include "AliVTrack.h"
33 #include "AliEMCALGeometry.h"
34 #include "AliEMCALGeoParams.h"
36 #include "AliVVZERO.h"
37 #include "AliESDUtils.h"
47 fParticleLevel(kFALSE),
53 fDoLeadingObjectPosition(0),
54 fMaxCellsInCluster(50),
57 fSeparateEMCalDCal(kTRUE),
66 fHistManager("AliAnalysisTaskEmcalJetQA")
70 memset(fNTotClusters, 0,
sizeof(Int_t)*2);
71 memset(fLeadingCluster, 0,
sizeof(AliVCluster*)*2);
73 SetMakeGeneralHistograms(kTRUE);
80 fParticleLevel(kFALSE),
86 fDoLeadingObjectPosition(0),
87 fMaxCellsInCluster(50),
90 fSeparateEMCalDCal(kTRUE),
130 while ((cont = static_cast<AliEmcalContainer*>(nextPartColl()))) {
134 histname = TString::Format(
"%s/fHistTrNegativeLabels_%d", cont->
GetArrayName().Data(), i);
135 title = histname +
";% of negative labels;counts";
136 fHistManager.CreateTH1(histname.Data(), title.Data(), 500, 0, 1);
138 histname = TString::Format(
"%s/fHistTrZeroLabels_%d", cont->
GetArrayName().Data(), i);
139 title = histname +
";% of zero labels;counts";
140 fHistManager.CreateTH1(histname.Data(), title.Data(), 500, 0, 1);
148 histname = TString::Format(
"%s/fHistRejectionReason_%d", cont->
GetArrayName().Data(), i);
149 title = histname +
";Rejection reason;#it{p}_{T,track} (GeV/#it{c});counts";
150 TH2* hist =
fHistManager.CreateTH2(histname.Data(), title.Data(), 32, 0, 32, 40, 0, 100);
153 for (Int_t j = 0; j < nlabels; j++) {
154 histname = TString::Format(
"%s/fHistTrPhiEtaPt_%d_%d", cont->
GetArrayName().Data(), i, j);
155 title = histname +
";#eta;#phi;#it{p}_{T} (GeV/#it{c})";
156 fHistManager.CreateTH3(histname.Data(), title.Data(), 100, -1, 1, 100, 0, TMath::TwoPi(),
nPtBins, 0,
fMaxPt);
161 histname = TString::Format(
"%s/fHistTrPhiEtaZeroLab_%d", cont->
GetArrayName().Data(), i);
162 title = histname +
";#eta;#phi;counts";
163 fHistManager.CreateTH2(histname.Data(), title.Data(), 100, -1, 1, 100, 0, TMath::TwoPi());
165 histname = TString::Format(
"%s/fHistTrPtZeroLab_%d", cont->
GetArrayName().Data(), i);
166 title = histname +
";#it{p}_{T} (GeV/#it{c});counts";
170 histname = TString::Format(
"%s/fHistTrEmcPhiEta_%d", cont->
GetArrayName().Data(), i);
171 title = histname +
";#eta;#phi;counts";
172 fHistManager.CreateTH2(histname.Data(), title.Data(), 100, -1, 1, 100, 0, TMath::TwoPi());
174 histname = TString::Format(
"%s/fHistTrEmcPt_%d", cont->
GetArrayName().Data(), i);
175 title = histname +
";#it{p}_{T} (GeV/#it{c});counts";
178 histname = TString::Format(
"%s/fHistTrPhiEtaNonProp_%d", cont->
GetArrayName().Data(), i);
179 title = histname +
";#eta;#phi;counts";
180 fHistManager.CreateTH2(histname.Data(), title.Data(), 100, -1, 1, 100, 0, TMath::TwoPi());
182 histname = TString::Format(
"%s/fHistTrPtNonProp_%d", cont->
GetArrayName().Data(), i);
183 title = histname +
";#it{p}_{T} (GeV/#it{c});counts";
186 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", cont->
GetArrayName().Data(), i);
187 title = histname +
";#it{p}_{T} (GeV/#it{c});#delta#eta;counts";
190 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", cont->
GetArrayName().Data(), i);
191 title = histname +
";#it{p}_{T} (GeV/#it{c});#delta#phi;counts";
194 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", cont->
GetArrayName().Data(), i);
195 title = histname +
";#it{p}_{T} (GeV/#it{c});#delta#it{p}_{T} (GeV/#it{c});counts";
202 while ((cont = static_cast<AliEmcalContainer*>(nextClusColl()))) {
205 histname = TString::Format(
"%s/fHistRejectionReason_%d", cont->
GetArrayName().Data(), i);
206 title = histname +
";Rejection reason;#it{E}_{cluster} (GeV);counts";
207 TH2* hist =
fHistManager.CreateTH2(histname.Data(), title.Data(), 32, 0, 32, 40, 0, 100);
210 histname = TString::Format(
"%s/fHistClusPosition_%d", cont->
GetArrayName().Data(), i);
211 title = histname +
";#it{x} (cm);#it{y} (cm);#it{z} (cm)";
212 fHistManager.CreateTH3(histname.Data(), title.Data(), 50, -500, 500, 50, -500, 500, 50, -500, 500);
214 histname = TString::Format(
"%s/fHistClusPhiEtaEnergy_%d", cont->
GetArrayName().Data(), i);
215 title = histname +
";#eta;#phi;#it{E}_{cluster} (GeV)";
216 fHistManager.CreateTH3(histname.Data(), title.Data(), 50, -1, 1, 50, 0, TMath::TwoPi(),
nPtBins, 0,
fMaxPt);
219 histname = TString::Format(
"%s/fHistClusDeltaPhiEPEnergy_%d", cont->
GetArrayName().Data(), i);
220 title = histname +
";#it{E}_{cluster} (GeV);#phi_{cluster} - #psi_{EP};counts";
225 histname = TString::Format(
"%s/fHistClusMCEnergyFraction_%d", cont->
GetArrayName().Data(), i);
226 title = histname +
";MC fraction;counts";
230 histname = TString::Format(
"%s/fHistClusTimeEnergy_%d", cont->
GetArrayName().Data(), i);
231 title = histname +
";#it{E}_{cluster} (GeV);time (s);counts";
235 while (nbins > nPtBins) nbins /= 2;
236 histname = TString::Format(
"%s/fHistNCellsEnergy_%d", cont->
GetArrayName().Data(), i);
237 title = histname +
";#it{E}_{cluster} (GeV);#it{N}_{cells};counts";
240 histname = TString::Format(
"%s/fHistFcrossEnergy_%d", cont->
GetArrayName().Data(), i);
241 title = histname +
";#it{E}_{cluster} (GeV);#it{F}_{cross};counts";
244 histname = TString::Format(
"%s/fHistClusEnergy_%d", cont->
GetArrayName().Data(), i);
245 title = histname +
";#it{E}_{cluster} (GeV);counts";
248 histname = TString::Format(
"%s/fHistClusNonLinCorrEnergy_%d", cont->
GetArrayName().Data(), i);
249 title = histname +
";#it{E}_{cluster} (GeV);counts";
252 histname = TString::Format(
"%s/fHistClusHadCorrEnergy_%d", cont->
GetArrayName().Data(), i);
253 title = histname +
";#it{E}_{cluster} (GeV);counts";
261 histname = TString::Format(
"%s/fHistCellsAbsIdEnergy_%d",
fCaloCellsName.Data(), i);
262 title = histname +
";cell abs. Id;#it{E}_{cell} (GeV);counts";
263 fHistManager.CreateTH2(histname.Data(), title.Data(), 20000,0,20000,(Int_t)(nPtBins / 2), 0,
fMaxPt / 2);
268 TString axistitle[40];
269 Int_t
nbins[40] = {0};
270 Double_t min[40] = {0};
271 Double_t max[40] = {0};
274 axistitle[dim] =
"Centrality %";
281 axistitle[dim] = Form(
"Centrality %s %%",
fCentMethod2.Data());
289 axistitle[dim] = Form(
"Centrality %s %%",
fCentMethod3.Data());
297 axistitle[dim] =
"V0A total multiplicity";
303 axistitle[dim] =
"V0C total multiplicity";
310 axistitle[dim] =
"V0A+V0C total multiplicity";
318 axistitle[dim] =
"#psi_{EP}";
320 min[dim] = -TMath::Pi();
321 max[dim] = TMath::Pi();
327 axistitle[dim] =
"No. of tracks";
340 axistitle[dim] =
"#it{p}_{T,track}^{leading} (GeV/c)";
347 axistitle[dim] =
"#eta_{track}^{leading}";
353 axistitle[dim] =
"#phi_{track}^{leading}";
356 max[dim] = TMath::TwoPi();
362 axistitle[dim] =
"No. of clusters";
377 axistitle[dim] =
"#it{E}_{EMCal cluster}^{leading} (GeV)";
383 axistitle[dim] =
"#it{E}_{DCal cluster}^{leading} (GeV)";
390 axistitle[dim] =
"#eta_{EMCal cluster}^{leading}";
396 axistitle[dim] =
"#phi_{EMCal cluster}^{leading}";
399 max[dim] = TMath::TwoPi();
402 axistitle[dim] =
"#eta_{DCal cluster}^{leading}";
408 axistitle[dim] =
"#phi_{DCal cluster}^{leading}";
411 max[dim] = TMath::TwoPi();
416 axistitle[dim] =
"#it{E}_{cluster}^{leading} (GeV)";
423 axistitle[dim] =
"#eta_{cluster}^{leading}";
429 axistitle[dim] =
"#phi_{cluster}^{leading}";
432 max[dim] = TMath::TwoPi();
439 axistitle[dim] =
"No. of cells";
444 max[dim] = 10000-0.5;
455 THnSparse* hn =
fHistManager.CreateTHnSparse(
"fHistEventQA",
"fHistEventQA",dim,nbins,min,max);
456 for (Int_t i = 0; i < dim; i++)
457 hn->GetAxis(i)->SetTitle(axistitle[i]);
477 fVZERO = InputEvent()->GetVZEROData();
479 AliError(
"AliVVZERO not available");
493 AliCentrality *aliCent = InputEvent()->GetCentrality();
519 AliDebug(2,Form(
"%d tracks found in the event",
fNTotTracks));
524 for (Int_t i = 0; i < 2; i++) {
531 AliDebug(2,Form(
"%d cells found in the event", eventQA.
fNCells));
552 Double_t contents[40]={0};
559 THnSparse* histEventQA =
static_cast<THnSparse*
>(
fHistManager.FindObject(
"fHistEventQA"));
561 for (Int_t i = 0; i < histEventQA->GetNdimensions(); i++) {
562 TString
title(histEventQA->GetAxis(i)->GetTitle());
563 if (
title==
"Centrality %")
564 contents[i] = eventQA.
fCent;
566 contents[i] = eventQA.
fCent2;
568 contents[i] = eventQA.
fCent3;
569 else if (
title==
"V0A total multiplicity")
570 contents[i] = eventQA.
fV0A;
571 else if (
title==
"V0C total multiplicity")
572 contents[i] = eventQA.
fV0C;
573 else if (
title==
"V0A+V0C total multiplicity")
574 contents[i] = eventQA.
fV0A+eventQA.
fV0C;
575 else if (
title==
"#psi_{RP}")
576 contents[i] = eventQA.
fEP;
577 else if (
title==
"No. of tracks")
579 else if (
title==
"No. of clusters")
580 contents[i] = globalNclusters;
581 else if (
title==
"No. of cells")
583 else if (
title==
"#it{p}_{T,track}^{leading} (GeV/c)")
585 else if (
title==
"#eta_{track}^{leading}")
587 else if (
title==
"#phi_{track}^{leading}")
588 contents[i] = eventQA.
fMaxTrack.Phi_0_2pi();
589 else if (
title==
"#it{E}_{cluster}^{leading} (GeV)")
590 contents[i] = globalMaxCluster.E();
591 else if (
title==
"#eta_{cluster}^{leading}")
592 contents[i] = globalMaxCluster.Eta();
593 else if (
title==
"#phi_{cluster}^{leading}")
594 contents[i] = globalMaxCluster.Phi();
595 else if (
title==
"#it{E}_{EMCal cluster}^{leading} (GeV)")
597 else if (
title==
"#eta_{EMCal cluster}^{leading}")
599 else if (
title==
"#phi_{EMCal cluster}^{leading}")
601 else if (
title==
"#it{E}_{DCal cluster}^{leading} (GeV)")
603 else if (
title==
"#phi_{DCal cluster}^{leading}")
605 else if (
title==
"#eta_{DCal cluster}^{leading}")
608 AliWarning(Form(
"Unable to fill dimension %s!",
title.Data()));
611 histEventQA->Fill(contents);
623 const Int_t ncells =
fCaloCells->GetNumberOfCells();
626 for (Int_t pos = 0; pos < ncells; pos++) {
642 Int_t AbsIdseed = -1;
644 for (Int_t i = 0; i < cluster->GetNCells(); i++) {
645 if (cells->GetCellAmplitude(cluster->GetCellAbsId(i)) > Eseed) {
646 Eseed = cells->GetCellAmplitude(cluster->GetCellAbsId(i));
647 AbsIdseed = cluster->GetCellAbsId(i);
654 Int_t imod = -1, iphi =-1, ieta=-1,iTower = -1, iIphi = -1, iIeta = -1;
655 fGeom->GetCellIndex(AbsIdseed,imod,iTower,iIphi,iIeta);
656 fGeom->GetCellPhiEtaIndexInSModule(imod,iTower,iIphi,iIeta,iphi,ieta);
663 if (iphi < AliEMCALGeoParams::fgkEMCALRows-1) absID1 =
fGeom->GetAbsCellIdFromCellIndexes(imod, iphi+1, ieta);
664 if (iphi > 0) absID2 =
fGeom->GetAbsCellIdFromCellIndexes(imod, iphi-1, ieta);
671 if (ieta == AliEMCALGeoParams::fgkEMCALCols-1 && !(imod%2)) {
672 absID3 =
fGeom->GetAbsCellIdFromCellIndexes(imod+1, iphi, 0);
673 absID4 =
fGeom->GetAbsCellIdFromCellIndexes(imod, iphi, ieta-1);
675 else if (ieta == 0 && imod%2) {
676 absID3 =
fGeom->GetAbsCellIdFromCellIndexes(imod, iphi, ieta+1);
677 absID4 =
fGeom->GetAbsCellIdFromCellIndexes(imod-1, iphi, AliEMCALGeoParams::fgkEMCALCols-1);
680 if (ieta < AliEMCALGeoParams::fgkEMCALCols-1)
681 absID3 =
fGeom->GetAbsCellIdFromCellIndexes(imod, iphi, ieta+1);
683 absID4 =
fGeom->GetAbsCellIdFromCellIndexes(imod, iphi, ieta-1);
686 Double_t ecell1 = cells->GetCellAmplitude(absID1);
687 Double_t ecell2 = cells->GetCellAmplitude(absID2);
688 Double_t ecell3 = cells->GetCellAmplitude(absID3);
689 Double_t ecell4 = cells->GetCellAmplitude(absID4);
691 Double_t Ecross = ecell1 + ecell2 + ecell3 + ecell4;
693 Double_t Fcross = 1 - Ecross/Eseed;
710 while ((clusters = static_cast<AliClusterContainer*>(nextClusColl()))) {
712 AliVCluster* cluster = 0;
715 AliTLorentzVector nPart;
723 energy = cluster->E();
724 cluster->GetMomentum(nPart,
fVertex);
727 if (energy <= 0)
continue;
729 UInt_t rejectionReason = 0;
731 histname = TString::Format(
"%s/fHistRejectionReason_%d", clusters->
GetArrayName().Data(),
fCentBin);
737 cluster->GetPosition(pos);
738 histname = TString::Format(
"%s/fHistClusPosition_%d", clusters->
GetArrayName().Data(),
fCentBin);
741 Double_t phi = nPart.Phi_0_2pi();
745 histname = TString::Format(
"%s/fHistClusPhiEtaEnergy_%d", clusters->
GetArrayName().Data(),
fCentBin);
750 histname = TString::Format(
"%s/fHistClusDeltaPhiEPEnergy_%d", clusters->
GetArrayName().Data(),
fCentBin);
752 Double_t ep = nPart.Phi_0_2pi() -
fEPV0;
753 while (ep < 0) ep += TMath::Pi();
754 while (ep >= TMath::Pi()) ep -= TMath::Pi();
758 histname = TString::Format(
"%s/fHistNCellsEnergy_%d", clusters->
GetArrayName().Data(),
fCentBin);
759 fHistManager.FillTH2(histname, cluster->E(), cluster->GetNCells());
761 histname = TString::Format(
"%s/fHistClusTimeEnergy_%d", clusters->
GetArrayName().Data(),
fCentBin);
762 fHistManager.FillTH2(histname, cluster->E(), cluster->GetTOF());
765 histname = TString::Format(
"%s/fHistFcrossEnergy_%d", clusters->
GetArrayName().Data(),
fCentBin);
769 histname = TString::Format(
"%s/fHistClusMCEnergyFraction_%d", clusters->
GetArrayName().Data(),
fCentBin);
771 fHistManager.FillTH1(histname, cluster->GetMCEnergyFraction());
777 if (cluster->GetNonLinCorrEnergy() > 0.) {
778 histname = TString::Format(
"%s/fHistClusNonLinCorrEnergy_%d", clusters->
GetArrayName().Data(),
fCentBin);
779 fHistManager.FillTH1(histname, cluster->GetNonLinCorrEnergy());
782 if (cluster->GetHadCorrEnergy() > 0.) {
783 histname = TString::Format(
"%s/fHistClusHadCorrEnergy_%d", clusters->
GetArrayName().Data(),
fCentBin);
784 fHistManager.FillTH1(histname, cluster->GetHadCorrEnergy());
807 while ((particles = static_cast<AliParticleContainer*>(nextPartColl()))) {
809 AliVParticle* track = 0;
810 AliTLorentzVector mom;
814 UInt_t rejectionReason = 0;
816 histname = TString::Format(
"%s/fHistRejectionReason_%d", particles->
GetArrayName().Data(),
fCentBin);
826 histname = TString::Format(
"%s/fHistTrPhiEtaPt_%d", particles->
GetArrayName().Data(),
fCentBin);
827 fHistManager.FillTH2(histname, mom.Eta(), mom.Phi_0_2pi(), mom.Pt());
830 if (track->GetLabel() == 0) {
832 histname = TString::Format(
"%s/fHistTrPhiEtaZeroLab_%d", particles->
GetArrayName().Data(),
fCentBin);
835 fHistManager.FillTH2(histname, mom.Eta(), mom.Phi_0_2pi());
838 histname = TString::Format(
"%s/fHistTrPtZeroLab_%d", particles->
GetArrayName().Data(),
fCentBin);
844 if (track->GetLabel() < 0) neg++;
856 AliVTrack* vtrack =
static_cast<AliVTrack*
>(track);
858 if (vtrack->GetTrackEtaOnEMCal() == -999 || vtrack->GetTrackPhiOnEMCal() == -999) {
859 histname = TString::Format(
"%s/fHistTrPhiEtaNonProp_%d", particles->
GetArrayName().Data(),
fCentBin);
861 fHistManager.FillTH2(histname, mom.Eta(), mom.Phi_0_2pi());
863 histname = TString::Format(
"%s/fHistTrPtNonProp_%d", particles->
GetArrayName().Data(),
fCentBin);
869 histname = TString::Format(
"%s/fHistTrEmcPhiEta_%d", particles->
GetArrayName().Data(),
fCentBin);
871 fHistManager.FillTH2(histname, vtrack->GetTrackEtaOnEMCal(), vtrack->GetTrackPhiOnEMCal());
875 fHistManager.FillTH1(histname, vtrack->GetTrackPtOnEMCal());
877 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", particles->
GetArrayName().Data(),
fCentBin);
879 fHistManager.FillTH2(histname, mom.Pt(), mom.Eta() - vtrack->GetTrackEtaOnEMCal());
881 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", particles->
GetArrayName().Data(),
fCentBin);
883 fHistManager.FillTH2(histname, mom.Pt(), mom.Phi_0_2pi() - vtrack->GetTrackPhiOnEMCal());
885 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", particles->
GetArrayName().Data(),
fCentBin);
887 fHistManager.FillTH2(histname, mom.Pt(), mom.Pt() - vtrack->GetTrackPtOnEMCal());
891 if (type >= 0 && type <= 3) {
892 histname = TString::Format(
"%s/fHistTrPhiEtaPt_%d_%d", particles->
GetArrayName().Data(),
fCentBin, type);
893 fHistManager.FillTH3(histname, mom.Eta(), mom.Phi_0_2pi(), mom.Pt());
896 AliWarning(Form(
"%s: track type %d not recognized!", GetName(), type));
901 histname = TString::Format(
"%s/fHistTrNegativeLabels_%d", particles->
GetArrayName().Data(),
fCentBin);
905 histname = TString::Format(
"%s/fHistTrZeroLabels_%d", particles->
GetArrayName().Data(),
fCentBin);
void SetRejectionReasonLabels(TAxis *axis)
AliVCluster * fLeadingCluster[2]
!Leading cluster in current event (EMCal/DCal)
void UserCreateOutputObjects()
Int_t fNcentBins
how many centrality bins
AliEMCALGeometry * fGeom
!emcal geometry
Float_t fMaxPt
Histogram pt limit.
EBeamType_t fBeamType
!event beam type
TList * fOutput
!output list
void FillEventQAHisto(const EventQA_t &eventQA)
Double_t fCent3
!Event centrality with method 3
TObjArray fClusterCollArray
cluster collection array
Bool_t fSeparateEMCalDCal
Separate EMCal from DCal in QA plots.
virtual Bool_t GetMomentum(TLorentzVector &mom, Int_t i) const
TString fCentMethod3
Centrality method 3.
Int_t fNTotTracks
!Total number of accepted tracks in current event
Double_t fEPV0
!event plane V0
TObjArray fParticleCollArray
particle/track collection array
Container with name, TClonesArray and cuts for particles.
AliAnalysisTaskEmcalJetQA()
Double_t GetFcross(AliVCluster *cluster, AliVCaloCells *cells)
AliTLorentzVector fMaxCluster[2]
Implementation of a task to perform basic QA on tracks and clusters.
Int_t fDoLeadingObjectPosition
Add axis for leading object position (eta-phi)
Double_t fV0CTotMult
!Event V0C total multiplicity
TString fCaloCellsName
name of calo cell collection
Bool_t fIsEmbedded
Embedded data present.
Container for particles within the EMCAL framework.
Int_t GetDefaultClusterEnergy() const
Int_t fMaxCellsInCluster
Maximum number (approx) of cells in a cluster.
Bool_t fParticleLevel
Set particle level analysis.
static Double_t fgkEMCalDCalPhiDivide
phi value used to distinguish between DCal and EMCal
EBeamType_t fForceBeamType
forced beam type
AliVCaloCells * fCaloCells
!cells
THistManager fHistManager
Histogram manager.
UShort_t GetRejectionReasonBitPosition(UInt_t rejectionReason) const
virtual ~AliAnalysisTaskEmcalJetQA()
Int_t GetCurrentID() const
Int_t fDoV0QA
Add V0 QA histograms.
Base task in the EMCAL framework (lighter version of AliAnalysisTaskEmcal)
Double_t fVertex[3]
!event vertex
TString fCentMethod2
Centrality method 2.
Base class for container structures within the EMCAL framework.
virtual Bool_t AcceptCluster(Int_t i, UInt_t &rejectionReason) const
Bool_t RetrieveEventObjects()
Declaration of class AliAnalysisTaskEmcalJetQA.
ETrackFilterType_t GetTrackFilterType() const
Int_t fCentBin
!event centrality bin
virtual Bool_t AcceptParticle(const AliVParticle *vp, UInt_t &rejectionReason) const
virtual Bool_t RetrieveEventObjects()
AliVCluster * GetNextCluster()
Int_t fDoEPQA
Add event plane QA histograms.
const TString & GetArrayName() const
void UserCreateOutputObjects()
Char_t GetTrackType(const AliVTrack *track) const
Int_t fNTotClusters[2]
!Total number of accepted clusters in current event (DCal/EMCal)
Double_t fCent2
!Event centrality with method 2
Float_t fPtBinWidth
Histogram pt bin width.
Float_t fCellEnergyCut
Energy cell cut.
AliTLorentzVector fMaxTrack
AliTLorentzVector fLeadingTrack
!Leading track in current event
Double_t fV0ATotMult
!Event V0A total multiplicity
Container structure for EMCAL clusters.
AliVVZERO * fVZERO
!Event V0 object
void ResetCurrentID(Int_t i=-1)
void SetMakeGeneralHistograms(Bool_t g)
Double_t fCent
!event centrality
ClassImp(AliAnalysisTaskEmcalJetQA) AliAnalysisTaskEmcalJetQA
virtual AliVParticle * GetNextParticle()
Bool_t fNeedEmcalGeom
whether or not the task needs the emcal geometry