16 #include <TClonesArray.h>
21 #include <AliVCluster.h>
22 #include <AliVParticle.h>
25 #include "AliTLorentzVector.h"
81 while ((obj = next())) {
100 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
101 groupname = clusCont->GetName();
103 for (Int_t cent = 0; cent <
fNcentBins; cent++) {
104 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(), cent);
105 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
108 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(), cent);
109 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{exotic} (GeV);counts", histname.Data());
112 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(), cent);
113 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{non-lin.corr.} (GeV);counts", histname.Data());
116 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(), cent);
117 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{had.corr.} (GeV);counts", histname.Data());
120 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(), cent);
121 histtitle = TString::Format(
"%s;#it{#phi}_{custer};counts", histname.Data());
124 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(), cent);
125 histtitle = TString::Format(
"%s;#it{#eta}_{custer};counts", histname.Data());
128 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(), cent);
129 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
131 fHistManager.CreateTH1(histname, histtitle, 500, 0, 3000);
134 fHistManager.CreateTH1(histname, histtitle, 200, 0, 200);
152 for (Int_t cent = 0; cent <
fNcentBins; cent++) {
153 histname = TString::Format(
"%s/histCellEnergyvsAbsId_%d", groupname.Data(), cent);
154 histtitle = TString::Format(
"%s;cell abs. ID;#it{E}_{cell} (GeV);counts", histname.Data());
157 histname = TString::Format(
"%s/histNCells_%d", groupname.Data(), cent);
158 histtitle = TString::Format(
"%s;number of cells;events", histname.Data());
160 fHistManager.CreateTH1(histname, histtitle, 500, 0, 6000);
163 fHistManager.CreateTH1(histname, histtitle, 200, 0, 200);
181 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
182 groupname = partCont->GetName();
184 for (Int_t cent = 0; cent <
fNcentBins; cent++) {
185 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(), cent);
186 histtitle = TString::Format(
"%s;#it{p}_{T,track} (GeV/#it{c});counts", histname.Data());
189 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(), cent);
190 histtitle = TString::Format(
"%s;#it{#phi}_{track};counts", histname.Data());
193 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(), cent);
194 histtitle = TString::Format(
"%s;#it{#eta}_{track};counts", histname.Data());
197 if (TClass(partCont->GetClassName()).InheritsFrom(
"AliVTrack")) {
198 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(), cent);
199 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#eta}_{track}^{vertex} - #it{#eta}_{track}^{EMCal};counts", histname.Data());
202 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(), cent);
203 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#phi}_{track}^{vertex} - #it{#phi}_{track}^{EMCal};counts", histname.Data());
206 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(), cent);
207 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{p}_{T,track}^{vertex} - #it{p}_{T,track}^{EMCal} (GeV/#it{c});counts", histname.Data());
210 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(), cent);
211 histtitle = TString::Format(
"%s;#it{P}_{track} (GeV/#it{c});#it{E}_{cluster} / #it{P}_{track} #it{c};counts", histname.Data());
215 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(), cent);
216 histtitle = TString::Format(
"%s;number of tracks;events", histname.Data());
218 fHistManager.CreateTH1(histname, histtitle, 500, 0, 5000);
221 fHistManager.CreateTH1(histname, histtitle, 200, 0, 200);
239 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
240 groupname = jetCont->GetName();
242 for (Int_t cent = 0; cent <
fNcentBins; cent++) {
243 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(), cent);
244 histtitle = TString::Format(
"%s;#it{p}_{T,jet} (GeV/#it{c});counts", histname.Data());
247 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(), cent);
248 histtitle = TString::Format(
"%s;#it{A}_{jet};counts", histname.Data());
251 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(), cent);
252 histtitle = TString::Format(
"%s;#it{#phi}_{jet};counts", histname.Data());
255 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(), cent);
256 histtitle = TString::Format(
"%s;#it{#eta}_{jet};counts", histname.Data());
259 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(), cent);
260 histtitle = TString::Format(
"%s;number of jets;events", histname.Data());
262 fHistManager.CreateTH1(histname, histtitle, 500, 0, 500);
265 fHistManager.CreateTH1(histname, histtitle, 100, 0, 100);
269 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(), cent);
270 histtitle = TString::Format(
"%s;#it{p}_{T,jet}^{corr} (GeV/#it{c});counts", histname.Data());
303 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
304 groupname = jetCont->GetName();
306 for(
auto it : jetCont->
accepted()) {
310 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(),
fCentBin);
313 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(),
fCentBin);
316 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(),
fCentBin);
319 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(),
fCentBin);
323 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(),
fCentBin);
327 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(),
fCentBin);
344 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
345 groupname = partCont->GetName();
347 for(
auto it : partCont->
accepted()) {
349 const AliVParticle* part =
static_cast<const AliVParticle*
>(it);
351 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(),
fCentBin);
354 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(),
fCentBin);
357 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(),
fCentBin);
360 if (partCont->GetLoadedClass()->InheritsFrom(
"AliVTrack")) {
361 const AliVTrack* track =
static_cast<const AliVTrack*
>(part);
363 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(),
fCentBin);
364 fHistManager.FillTH1(histname, track->Pt(), track->Eta() - track->GetTrackEtaOnEMCal());
366 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(),
fCentBin);
367 fHistManager.FillTH1(histname, track->Pt(), track->Phi() - track->GetTrackPhiOnEMCal());
369 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(),
fCentBin);
370 fHistManager.FillTH1(histname, track->Pt(), track->Pt() - track->GetTrackPtOnEMCal());
373 Int_t iCluster = track->GetEMCALcluster();
377 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(),
fCentBin);
378 fHistManager.FillTH2(histname, track->P(), cluster->GetNonLinCorrEnergy() / track->P());
385 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(),
fCentBin);
400 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
401 groupname = clusCont->GetName();
403 for(
auto it : clusCont->
all()) {
404 const AliVCluster* cluster =
static_cast<const AliVCluster*
>(it);
406 if (cluster->GetIsExotic()) {
407 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(),
fCentBin);
413 for(
auto it : clusCont->
accepted()) {
415 const AliVCluster* cluster =
static_cast<const AliVCluster*
>(it);
416 AliTLorentzVector nPart;
417 cluster->GetMomentum(nPart,
fVertex);
419 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(),
fCentBin);
422 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(),
fCentBin);
423 fHistManager.FillTH1(histname, cluster->GetNonLinCorrEnergy());
425 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(),
fCentBin);
426 fHistManager.FillTH1(histname, cluster->GetHadCorrEnergy());
428 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(),
fCentBin);
431 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(),
fCentBin);
435 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(),
fCentBin);
450 const Short_t ncells =
fCaloCells->GetNumberOfCells();
456 for (Short_t pos = 0; pos < ncells; pos++) {
458 Short_t absId =
fCaloCells->GetCellNumber(pos);
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
TObjArray fClusterCollArray
cluster collection array
Double_t GetRhoVal() const
const TString & GetRhoName() const
Declaration of class AliAnalysisTaskEmcalJetSample.
AliAnalysisTaskEmcalJetSample()
Double_t fMinBinPt
min pt in histograms
void AllocateCellHistograms()
Int_t fCentBin
!event centrality bin
Implementation of a sample jet analysis task.
Container for particles within the EMCAL framework.
TObjArray fParticleCollArray
particle/track collection array
void AllocateClusterHistograms()
const AliClusterIterableContainer all() const
void AllocateTrackHistograms()
void Terminate(Option_t *option)
BeamType fForceBeamType
forced beam type
Int_t fNcentBins
how many centrality bins
AliClusterContainer * GetClusterContainer(Int_t i=0) const
AliVCluster * GetAcceptCluster(Int_t i) const
const AliClusterIterableContainer accepted() const
TString fCaloCellsName
name of calo cell collection
TObjArray fJetCollArray
jet collection array
AliVCaloCells * fCaloCells
!cells
AliRhoParameter * GetRhoParameter()
void AllocateJetHistograms()
AliEmcalList * fOutput
!output list
Double_t fMaxBinPt
max pt in histograms
THistManager fHistManager
Histogram manager.
Double_t fVertex[3]
!event vertex
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
const AliParticleIterableContainer accepted() const
void UserCreateOutputObjects()
const AliJetIterableContainer accepted() const
Container structure for EMCAL clusters.
void UserCreateOutputObjects()
Container for jet within the EMCAL jet framework.
Int_t fNbins
no. of pt bins
virtual ~AliAnalysisTaskEmcalJetSample()