16 #include <TClonesArray.h>
21 #include <AliVCluster.h>
22 #include <AliVParticle.h>
81 while ((obj = next())) {
100 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
101 groupname = clusCont->GetName();
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());
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());
181 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
182 groupname = partCont->GetName();
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());
239 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
240 groupname = jetCont->GetName();
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());
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 jet : 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 part : partCont->
accepted()) {
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);
366 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(),
fCentBin);
369 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(),
fCentBin);
373 Int_t iCluster = track->GetEMCALcluster();
377 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(),
fCentBin);
385 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(),
fCentBin);
400 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
401 groupname = clusCont->GetName();
403 for(
auto cluster : clusCont->
all()) {
404 if (!cluster)
continue;
406 if (cluster->GetIsExotic()) {
407 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(),
fCentBin);
413 for(
auto cluster : clusCont->
accepted()) {
414 if (!cluster)
continue;
418 cluster->GetMomentum(nPart,
fVertex);
420 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(),
fCentBin);
423 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(),
fCentBin);
426 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(),
fCentBin);
429 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(),
fCentBin);
432 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(),
fCentBin);
436 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(),
fCentBin);
457 for (
Short_t pos = 0; pos < ncells; pos++) {
TObjArray fClusterCollArray
cluster collection array
Double_t GetRhoVal() const
const TString & GetRhoName() const
Declaration of class AliAnalysisTaskEmcalJetSample.
AliAnalysisTaskEmcalJetSample()
void FillTH2(const char *hname, double x, double y, double weight=1., Option_t *opt="")
Declaration of class AliTLorentzVector.
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
THashList * CreateHistoGroup(const char *groupname, const char *parent="/")
TH2 * CreateTH2(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, Option_t *opt="")
void AllocateTrackHistograms()
THashList * GetListOfHistograms() const
Double_t Phi_0_2pi() const
void Terminate(Option_t *option)
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()
void AllocateJetHistograms()
AliEmcalList * fOutput
!output list
Double_t fMaxBinPt
max pt in histograms
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
THistManager fHistManager
Histogram manager.
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.
void UserCreateOutputObjects()
Container for jet within the EMCAL jet framework.
Int_t fNbins
no. of pt bins
virtual ~AliAnalysisTaskEmcalJetSample()