16 #include <TClonesArray.h>
21 #include <AliVCluster.h>
22 #include <AliVParticle.h>
83 while ((obj = next())) {
102 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
103 groupname = clusCont->GetName();
106 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(), cent);
107 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
110 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(), cent);
111 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{exotic} (GeV);counts", histname.Data());
114 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(), cent);
115 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{non-lin.corr.} (GeV);counts", histname.Data());
118 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(), cent);
119 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{had.corr.} (GeV);counts", histname.Data());
122 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(), cent);
123 histtitle = TString::Format(
"%s;#it{#phi}_{custer};counts", histname.Data());
126 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(), cent);
127 histtitle = TString::Format(
"%s;#it{#eta}_{custer};counts", histname.Data());
130 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(), cent);
131 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
155 histname = TString::Format(
"%s/histCellEnergy_%d", groupname.Data(), cent);
156 histtitle = TString::Format(
"%s;#it{E}_{cell} (GeV);counts", histname.Data());
159 histname = TString::Format(
"%s/histNCells_%d", groupname.Data(), cent);
160 histtitle = TString::Format(
"%s;number of cells;events", histname.Data());
183 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
184 groupname = partCont->GetName();
187 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(), cent);
188 histtitle = TString::Format(
"%s;#it{p}_{T,track} (GeV/#it{c});counts", histname.Data());
191 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(), cent);
192 histtitle = TString::Format(
"%s;#it{#phi}_{track};counts", histname.Data());
195 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(), cent);
196 histtitle = TString::Format(
"%s;#it{#eta}_{track};counts", histname.Data());
199 if (TClass(partCont->GetClassName()).InheritsFrom(
"AliVTrack")) {
200 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(), cent);
201 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#eta}_{track}^{vertex} - #it{#eta}_{track}^{EMCal};counts", histname.Data());
204 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(), cent);
205 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#phi}_{track}^{vertex} - #it{#phi}_{track}^{EMCal};counts", histname.Data());
208 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(), cent);
209 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());
212 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(), cent);
213 histtitle = TString::Format(
"%s;#it{P}_{track} (GeV/#it{c});#it{E}_{cluster} / #it{P}_{track} #it{c};counts", histname.Data());
217 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(), cent);
218 histtitle = TString::Format(
"%s;number of tracks;events", histname.Data());
241 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
242 groupname = jetCont->GetName();
245 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(), cent);
246 histtitle = TString::Format(
"%s;#it{p}_{T,jet} (GeV/#it{c});counts", histname.Data());
249 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(), cent);
250 histtitle = TString::Format(
"%s;#it{A}_{jet};counts", histname.Data());
253 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(), cent);
254 histtitle = TString::Format(
"%s;#it{#phi}_{jet};counts", histname.Data());
257 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(), cent);
258 histtitle = TString::Format(
"%s;#it{#eta}_{jet};counts", histname.Data());
261 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(), cent);
262 histtitle = TString::Format(
"%s;number of jets;events", histname.Data());
271 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(), cent);
272 histtitle = TString::Format(
"%s;#it{p}_{T,jet}^{corr} (GeV/#it{c});counts", histname.Data());
305 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
306 groupname = jetCont->GetName();
308 for(
auto jet : jetCont->
accepted()) {
312 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(),
fCentBin);
315 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(),
fCentBin);
318 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(),
fCentBin);
321 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(),
fCentBin);
325 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(),
fCentBin);
329 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(),
fCentBin);
346 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
347 groupname = partCont->GetName();
349 for(
auto part : partCont->
accepted()) {
353 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(),
fCentBin);
356 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(),
fCentBin);
359 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(),
fCentBin);
362 if (partCont->GetLoadedClass()->InheritsFrom(
"AliVTrack")) {
363 const AliVTrack* track =
static_cast<const AliVTrack*
>(part);
365 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(),
fCentBin);
368 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(),
fCentBin);
371 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(),
fCentBin);
375 Int_t iCluster = track->GetEMCALcluster();
379 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(),
fCentBin);
387 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(),
fCentBin);
402 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
403 groupname = clusCont->GetName();
405 for(
auto cluster : clusCont->
all()) {
406 if (!cluster)
continue;
408 if (cluster->GetIsExotic()) {
409 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(),
fCentBin);
415 for(
auto cluster : clusCont->
accepted()) {
416 if (!cluster)
continue;
420 cluster->GetMomentum(nPart,
fVertex);
422 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(),
fCentBin);
425 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(),
fCentBin);
428 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(),
fCentBin);
431 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(),
fCentBin);
434 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(),
fCentBin);
438 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(),
fCentBin);
459 for (
Short_t pos = 0; pos < ncells; pos++) {
THashList * CreateHistoGroup(const char *groupname)
TObjArray fClusterCollArray
cluster collection array
void AllocateCellHistograms()
Double_t GetRhoVal() const
const TString & GetRhoName() const
Class to make array of trigger patch objects in AOD/ESD events.
virtual ~AliAnalysisTaskEmcalJetSpectra8TeVTriggerQA()
void FillTH2(const char *hname, double x, double y, double weight=1., Option_t *opt="")
Declaration of class AliTLorentzVector.
void Terminate(Option_t *option)
Double_t fMinBinPt
min pt in histograms
THistManager fHistManager
Histogram manager.
Int_t fCentBin
!event centrality bin
Declaration of class AliAnalysisTaskEmcalJetSpectra8TeVTriggerQA.
void AllocateClusterHistograms()
void AllocateJetHistograms()
Container for particles within the EMCAL framework.
AliAnalysisTaskEmcalJetSpectra8TeVTriggerQA()
TObjArray fParticleCollArray
particle/track collection array
const AliClusterIterableContainer all() const
TH2 * CreateTH2(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, Option_t *opt="")
THashList * GetListOfHistograms() const
void AllocateTrackHistograms()
Double_t Phi_0_2pi() const
Implementation of a EMCal spectra task and QA for EMCal triggers.
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
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
void FillTH1(const char *hname, double x, double weight=1., Option_t *opt="")
TObjArray fJetCollArray
jet collection array
AliVCaloCells * fCaloCells
!cells
AliRhoParameter * GetRhoParameter()
AliEmcalList * fOutput
!output list
Double_t fMaxBinPt
max pt in histograms
void UserCreateOutputObjects()
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
Double_t fVertex[3]
!event vertex
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
const AliParticleIterableContainer accepted() const
void UserCreateOutputObjects()
const AliJetIterableContainer accepted() const
Container structure for EMCAL clusters.
Container for jet within the EMCAL jet framework.
Int_t fNbins
no. of pt bins