16 #include <TClonesArray.h> 21 #include <AliVCluster.h> 22 #include <AliVParticle.h> 83 while ((obj = next())) {
109 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
110 groupname = clusCont->GetName();
113 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(), cent);
114 histtitle = TString::Format(
"%s;#it{E}_{cluster} (GeV);counts", histname.Data());
117 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(), cent);
118 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{exotic} (GeV);counts", histname.Data());
121 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(), cent);
122 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{non-lin.corr.} (GeV);counts", histname.Data());
125 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(), cent);
126 histtitle = TString::Format(
"%s;#it{E}_{cluster}^{had.corr.} (GeV);counts", histname.Data());
129 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(), cent);
130 histtitle = TString::Format(
"%s;#it{#phi}_{custer};counts", histname.Data());
133 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(), cent);
134 histtitle = TString::Format(
"%s;#it{#eta}_{custer};counts", histname.Data());
137 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(), cent);
138 histtitle = TString::Format(
"%s;number of clusters;events", histname.Data());
162 histname = TString::Format(
"%s/histCellEnergyvsAbsId_%d", groupname.Data(), cent);
163 histtitle = TString::Format(
"%s;cell abs. ID;#it{E}_{cell} (GeV);counts", histname.Data());
166 histname = TString::Format(
"%s/histNCells_%d", groupname.Data(), cent);
167 histtitle = TString::Format(
"%s;number of cells;events", histname.Data());
189 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
190 groupname = jetCont->GetName();
193 histname = TString::Format(
"%s/histZg_%d", groupname.Data(), cent);
194 histtitle = TString::Format(
"%s;#it{Z}_{g};counts", histname.Data());
197 histname = TString::Format(
"%s/histdR_%d", groupname.Data(), cent);
198 histtitle = TString::Format(
"%s;#it{dR};counts", histname.Data());
219 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
220 groupname = partCont->GetName();
223 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(), cent);
224 histtitle = TString::Format(
"%s;#it{p}_{T,track} (GeV/#it{c});counts", histname.Data());
227 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(), cent);
228 histtitle = TString::Format(
"%s;#it{#phi}_{track};counts", histname.Data());
231 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(), cent);
232 histtitle = TString::Format(
"%s;#it{#eta}_{track};counts", histname.Data());
235 if (TClass(partCont->GetClassName()).InheritsFrom(
"AliVTrack")) {
236 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(), cent);
237 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#eta}_{track}^{vertex} - #it{#eta}_{track}^{EMCal};counts", histname.Data());
240 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(), cent);
241 histtitle = TString::Format(
"%s;#it{p}_{T,track}^{vertex} (GeV/#it{c});#it{#phi}_{track}^{vertex} - #it{#phi}_{track}^{EMCal};counts", histname.Data());
244 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(), cent);
245 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());
248 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(), cent);
249 histtitle = TString::Format(
"%s;#it{P}_{track} (GeV/#it{c});#it{E}_{cluster} / #it{P}_{track} #it{c};counts", histname.Data());
253 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(), cent);
254 histtitle = TString::Format(
"%s;number of tracks;events", histname.Data());
277 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
278 groupname = jetCont->GetName();
281 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(), cent);
282 histtitle = TString::Format(
"%s;#it{p}_{T,jet} (GeV/#it{c});counts", histname.Data());
285 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(), cent);
286 histtitle = TString::Format(
"%s;#it{A}_{jet};counts", histname.Data());
289 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(), cent);
290 histtitle = TString::Format(
"%s;#it{#phi}_{jet};counts", histname.Data());
293 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(), cent);
294 histtitle = TString::Format(
"%s;#it{#eta}_{jet};counts", histname.Data());
297 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(), cent);
298 histtitle = TString::Format(
"%s;number of jets;events", histname.Data());
307 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(), cent);
308 histtitle = TString::Format(
"%s;#it{p}_{T,jet}^{corr} (GeV/#it{c});counts", histname.Data());
342 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
343 groupname = jetCont->GetName();
345 for(
auto jet : jetCont->
accepted()) {
349 histname = TString::Format(
"%s/histJetPt_%d", groupname.Data(),
fCentBin);
352 histname = TString::Format(
"%s/histJetArea_%d", groupname.Data(),
fCentBin);
355 histname = TString::Format(
"%s/histJetPhi_%d", groupname.Data(),
fCentBin);
358 histname = TString::Format(
"%s/histJetEta_%d", groupname.Data(),
fCentBin);
362 histname = TString::Format(
"%s/histJetCorrPt_%d", groupname.Data(),
fCentBin);
366 histname = TString::Format(
"%s/histNJets_%d", groupname.Data(),
fCentBin);
382 while ((jetCont = static_cast<AliJetContainer*>(next()))) {
383 groupname = jetCont->GetName();
385 for(
auto jet : jetCont->
accepted()) {
389 histname = TString::Format(
"%s/histZg_%d", groupname.Data(),
fCentBin);
392 histname = TString::Format(
"%s/histdR_%d", groupname.Data(),
fCentBin);
411 while ((partCont = static_cast<AliParticleContainer*>(next()))) {
412 groupname = partCont->GetName();
414 for(
auto part : partCont->
accepted()) {
418 histname = TString::Format(
"%s/histTrackPt_%d", groupname.Data(),
fCentBin);
421 histname = TString::Format(
"%s/histTrackPhi_%d", groupname.Data(),
fCentBin);
424 histname = TString::Format(
"%s/histTrackEta_%d", groupname.Data(),
fCentBin);
427 if (partCont->GetLoadedClass()->InheritsFrom(
"AliVTrack")) {
428 const AliVTrack* track =
static_cast<const AliVTrack*
>(part);
430 histname = TString::Format(
"%s/fHistDeltaEtaPt_%d", groupname.Data(),
fCentBin);
433 histname = TString::Format(
"%s/fHistDeltaPhiPt_%d", groupname.Data(),
fCentBin);
436 histname = TString::Format(
"%s/fHistDeltaPtvsPt_%d", groupname.Data(),
fCentBin);
440 Int_t iCluster = track->GetEMCALcluster();
444 histname = TString::Format(
"%s/fHistEoverPvsP_%d", groupname.Data(),
fCentBin);
452 histname = TString::Format(
"%s/histNTracks_%d", groupname.Data(),
fCentBin);
467 while ((clusCont = static_cast<AliClusterContainer*>(next()))) {
468 groupname = clusCont->GetName();
470 for(
auto cluster : clusCont->
all()) {
471 if (!cluster)
continue;
473 if (cluster->GetIsExotic()) {
474 histname = TString::Format(
"%s/histClusterEnergyExotic_%d", groupname.Data(),
fCentBin);
480 for(
auto cluster : clusCont->
accepted()) {
481 if (!cluster)
continue;
485 cluster->GetMomentum(nPart,
fVertex);
487 histname = TString::Format(
"%s/histClusterEnergy_%d", groupname.Data(),
fCentBin);
490 histname = TString::Format(
"%s/histClusterNonLinCorrEnergy_%d", groupname.Data(),
fCentBin);
493 histname = TString::Format(
"%s/histClusterHadCorrEnergy_%d", groupname.Data(),
fCentBin);
496 histname = TString::Format(
"%s/histClusterPhi_%d", groupname.Data(),
fCentBin);
499 histname = TString::Format(
"%s/histClusterEta_%d", groupname.Data(),
fCentBin);
503 histname = TString::Format(
"%s/histNClusters_%d", groupname.Data(),
fCentBin);
524 for (
Short_t pos = 0; pos < ncells; pos++) {
THashList * CreateHistoGroup(const char *groupname)
Create a new group of histograms within a parent group.
TObjArray fClusterCollArray
cluster collection array
Double_t GetRhoVal() const
const TString & GetRhoName() const
AliFJWrapper * fAliFJWrapper
void AllocateTrackHistograms()
void FillTH2(const char *hname, double x, double y, double weight=1., Option_t *opt="")
Fill a 2D histogram within the container.
Declaration of class AliTLorentzVector.
virtual ~AliAnalysisTaskJetSubstructure()
Double_t fMinBinPt
min pt in histograms
Declaration of class AliAnalysisTaskJetSubstructure.
void SetMaxRap(Double_t maxrap)
Int_t fCentBin
!event centrality bin
void AllocateJetHistograms()
void SetRecombScheme(const fastjet::RecombinationScheme &scheme)
Container for particles within the EMCAL framework.
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="")
Create a new TH2 within the container.
THashList * GetListOfHistograms() const
Get the list of histograms.
Double_t Phi_0_2pi() const
void SetAlgorithm(const fastjet::JetAlgorithm &algor)
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
Create a new TH1 within the container.
BeamType fForceBeamType
forced beam type
Int_t fNcentBins
how many centrality bins
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Get cluster container attached to this task.
AliVCluster * GetAcceptCluster(Int_t i) const
const AliClusterIterableContainer accepted() const
void Terminate(Option_t *option)
TString fCaloCellsName
name of calo cell collection
virtual void Clear(const Option_t *="")
void FillTH1(const char *hname, double x, double weight=1., Option_t *opt="")
Fill a 1D histogram within the container.
void AllocateJetSubstructureHistograms()
TObjArray fJetCollArray
jet collection array
AliVCaloCells * fCaloCells
!cells
AliRhoParameter * GetRhoParameter()
THistManager fHistManager
Histogram manager.
void DoJetSubstructureLoop()
AliEmcalList * fOutput
!output list
Double_t fMaxBinPt
max pt in histograms
Double_t fVertex[3]
!event vertex
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
void AllocateCellHistograms()
const AliParticleIterableContainer accepted() const
void UserCreateOutputObjects()
void UserCreateOutputObjects()
Main initialization function on the worker.
const AliJetIterableContainer accepted() const
void AllocateClusterHistograms()
Container structure for EMCAL clusters.
AliAnalysisTaskJetSubstructure()
Container for jet within the EMCAL jet framework.
Int_t fNbins
no. of pt bins