AliPhysics  35e5fca (35e5fca)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisTaskRhoBase.cxx
Go to the documentation of this file.
1 // $Id$
2 //
3 // Base class for rho calculation.
4 // Calculates parameterized rho for given centrality independent of input.
5 //
6 // Author: S.Aiola
7 
8 #include <TFile.h>
9 #include <TF1.h>
10 #include <TH1F.h>
11 #include <TH2F.h>
12 #include <TH3F.h>
13 #include <TClonesArray.h>
14 #include <TGrid.h>
15 
16 #include "AliLog.h"
17 #include "AliRhoParameter.h"
18 #include "AliEmcalJet.h"
19 #include "AliParticleContainer.h"
20 #include "AliClusterContainer.h"
21 #include "AliVVZERO.h"
22 
23 #include "AliAnalysisTaskRhoBase.h"
24 
26 
27 //________________________________________________________________________
30  fOutRhoName(),
31  fOutRhoScaledName(),
32  fCompareRhoName(),
33  fCompareRhoScaledName(),
34  fRhoFunction(0),
35  fScaleFunction(0),
36  fInEventSigmaRho(35.83),
37  fAttachToEvent(kTRUE),
38  fIsPbPb(kTRUE),
39  fOutRho(0),
40  fOutRhoScaled(0),
41  fCompareRho(0),
42  fCompareRhoScaled(0),
43  fHistJetPtvsCent(0),
44  fHistJetAreavsCent(0),
45  fHistJetRhovsCent(0),
46  fHistNjetvsCent(0),
47  fHistJetPtvsNtrack(0),
48  fHistJetAreavsNtrack(0),
49  fHistNjetvsNtrack(0),
50  fHistRhovsCent(0),
51  fHistRhoScaledvsCent(0),
52  fHistDeltaRhovsCent(0),
53  fHistDeltaRhoScalevsCent(0),
54  fHistRhovsNtrackvsV0Mult(0),
55  fHistRhoScaledvsNtrackvsV0Mult(0),
56  fHistDeltaRhovsNtrack(0),
57  fHistDeltaRhoScalevsNtrack(0),
58  fHistRhovsNcluster(0),
59  fHistRhoScaledvsNcluster(0)
60 {
61  // Constructor.
62 
63  for (Int_t i = 0; i < 4; i++) {
64  fHistJetNconstVsPt[i] = 0;
65  fHistJetRhovsEta[i] = 0;
66  }
67  for (Int_t i = 0; i < 12; i++) {
68  fHistNjUEoverNjVsNj[i] = 0;
69  }
70 }
71 
72 //________________________________________________________________________
74  AliAnalysisTaskEmcalJet(name, histo),
75  fOutRhoName(),
76  fOutRhoScaledName(),
77  fCompareRhoName(),
78  fCompareRhoScaledName(),
79  fRhoFunction(0),
80  fScaleFunction(0),
81  fInEventSigmaRho(35.83),
82  fAttachToEvent(kTRUE),
83  fIsPbPb(kTRUE),
84  fOutRho(0),
85  fOutRhoScaled(0),
86  fCompareRho(0),
87  fCompareRhoScaled(0),
88  fHistJetPtvsCent(0),
89  fHistJetAreavsCent(0),
90  fHistJetRhovsCent(0),
91  fHistNjetvsCent(0),
92  fHistJetPtvsNtrack(0),
93  fHistJetAreavsNtrack(0),
94  fHistNjetvsNtrack(0),
95  fHistRhovsCent(0),
96  fHistRhoScaledvsCent(0),
97  fHistDeltaRhovsCent(0),
98  fHistDeltaRhoScalevsCent(0),
99  fHistRhovsNtrackvsV0Mult(0),
100  fHistRhoScaledvsNtrackvsV0Mult(0),
101  fHistDeltaRhovsNtrack(0),
102  fHistDeltaRhoScalevsNtrack(0),
103  fHistRhovsNcluster(0),
104  fHistRhoScaledvsNcluster(0)
105 {
106  // Constructor.
107 
108  for (Int_t i = 0; i < 4; i++) {
109  fHistJetNconstVsPt[i] = 0;
110  fHistJetRhovsEta[i] = 0;
111  }
112  for (Int_t i = 0; i < 12; i++) {
113  fHistNjUEoverNjVsNj[i] = 0;
114  }
116 }
117 
118 //________________________________________________________________________
120 {
121  // User create output objects, called at the beginning of the analysis.
122 
123  if (!fCreateHisto)
124  return;
125 
127  //ranges for PbPb
128  Float_t Ntrackrange[2] = {0, 6000};
129  Float_t V0Mult[2] = {0.,25000.};
130  if(!fIsPbPb){
131  //set multiplicity related axes to a smaller max value
132  Ntrackrange[1] = 200.;
133  V0Mult[1] = 2000.;
134  }
135 
136  fHistRhovsCent = new TH2F("fHistRhovsCent", "fHistRhovsCent", 101, -1, 100, fNbins, fMinBinPt, fMaxBinPt*2);
137  fHistRhovsCent->GetXaxis()->SetTitle("Centrality (%)");
138  fHistRhovsCent->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
139  fOutput->Add(fHistRhovsCent);
140 
141  if (fParticleCollArray.GetEntriesFast()>0) {
142  fHistRhovsNtrackvsV0Mult = new TH3F("fHistRhovsNtrackvsV0Mult", "fHistRhovsNtrackvsV0Mult", 150, Ntrackrange[0], Ntrackrange[1], fNbins, fMinBinPt, fMaxBinPt*2,100, V0Mult[0], V0Mult[1]);
143  fHistRhovsNtrackvsV0Mult->GetXaxis()->SetTitle("No. of tracks");
144  fHistRhovsNtrackvsV0Mult->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
145  fHistRhovsNtrackvsV0Mult->GetZaxis()->SetTitle("V0 mult");
147  }
148 
149  if (fClusterCollArray.GetEntriesFast()>0) {
150  fHistRhovsNcluster = new TH2F("fHistRhovsNcluster", "fHistRhovsNcluster", 50, 0, 1500, fNbins, fMinBinPt, fMaxBinPt*2);
151  fHistRhovsNcluster->GetXaxis()->SetTitle("No. of clusters");
152  fHistRhovsNcluster->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
154  }
155 
156  if (fJetCollArray.GetEntriesFast()>0) {
157  fHistJetPtvsCent = new TH2F("fHistJetPtvsCent", "fHistJetPtvsCent", 101, -1, 100, fNbins, fMinBinPt, fMaxBinPt);
158  fHistJetPtvsCent->GetXaxis()->SetTitle("Centrality (%)");
159  fHistJetPtvsCent->GetYaxis()->SetTitle("#it{p}_{T,jet} (GeV/c)");
161 
162  fHistJetAreavsCent = new TH2F("fHistJetAreavsCent", "fHistJetAreavsCent", 101, -1, 100, 100, 0, 1);
163  fHistJetAreavsCent->GetXaxis()->SetTitle("Centrality (%)");
164  fHistJetAreavsCent->GetYaxis()->SetTitle("Jet area");
166 
167  fHistJetRhovsCent = new TH2F("fHistJetRhovsCent", "fHistJetRhovsCent", 101, -1, 100, fNbins, fMinBinPt, fMaxBinPt*2);
168  fHistJetRhovsCent->GetXaxis()->SetTitle("Centrality (%)");
169  fHistJetRhovsCent->GetYaxis()->SetTitle("Jet #rho (GeV/c)");
171 
172  fHistNjetvsCent = new TH2F("fHistNjetvsCent", "fHistNjetvsCent", 101, -1, 100, 150, -0.5, 149.5);
173  fHistNjetvsCent->GetXaxis()->SetTitle("Centrality (%)");
174  fHistNjetvsCent->GetYaxis()->SetTitle("No. of jets");
175  fOutput->Add(fHistNjetvsCent);
176 
177 
178  if (fParticleCollArray.GetEntriesFast()>0) {
179  fHistJetPtvsNtrack = new TH2F("fHistJetPtvsNtrack", "fHistJetPtvsNtrack", 150, Ntrackrange[0], Ntrackrange[1], fNbins, fMinBinPt, fMaxBinPt);
180  fHistJetPtvsNtrack->GetXaxis()->SetTitle("No. of tracks");
181  fHistJetPtvsNtrack->GetYaxis()->SetTitle("#it{p}_{T,jet} (GeV/c)");
183 
184  fHistJetAreavsNtrack = new TH2F("fHistJetAreavsNtrack", "fHistJetAreavsNtrack", 150, Ntrackrange[0], Ntrackrange[1], 100, 0, 1);
185  fHistJetAreavsNtrack->GetXaxis()->SetTitle("No. of tracks");
186  fHistJetAreavsNtrack->GetYaxis()->SetTitle("Jet area");
188 
189  fHistNjetvsNtrack = new TH2F("fHistNjetvsNtrack", "fHistNjetvsNtrack", 150, Ntrackrange[0], Ntrackrange[1], 150, -0.5, 149.5);
190  fHistNjetvsNtrack->GetXaxis()->SetTitle("No. of tracks");
191  fHistNjetvsNtrack->GetYaxis()->SetTitle("No. of jets");
193  }
194 
195 
196  TString name;
197  for (Int_t i = 0; i < 4; i++) {
198  name = Form("fHistJetNconstVsPt_%d",i);
199  fHistJetNconstVsPt[i] = new TH2F(name, name, 150, -0.5, 149.5, fNbins, fMinBinPt, fMaxBinPt);
200  fHistJetNconstVsPt[i]->GetXaxis()->SetTitle("No. of constituents");
201  fHistJetNconstVsPt[i]->GetYaxis()->SetTitle("p_{T,jet} (GeV/c)");
202  fOutput->Add(fHistJetNconstVsPt[i]);
203 
204  name = Form("fHistJetRhovsEta_%d",i);
205  fHistJetRhovsEta[i] = new TH2F(name, name, fNbins, fMinBinPt, fMaxBinPt*2, 16, -0.8, 0.8);
206  fHistJetRhovsEta[i]->GetXaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
207  fHistJetRhovsEta[i]->GetYaxis()->SetTitle("#eta");
208  fOutput->Add(fHistJetRhovsEta[i]);
209 
210  for (Int_t j = 0; j < 3; j++) {
211  name = Form("NjUEoverNjVsNj_%d_%d",i,j+1);
212  fHistNjUEoverNjVsNj[i*3+j] = new TH2F(name, name, 150, -0.5, 149.5, 120, 0.01, 1.21);
213  fHistNjUEoverNjVsNj[i*3+j]->GetXaxis()->SetTitle("N_{jet}");
214  fHistNjUEoverNjVsNj[i*3+j]->GetYaxis()->SetTitle("N_{jet_{UE}} / N_{jet}");
215  fOutput->Add(fHistNjUEoverNjVsNj[i*3+j]);
216  }
217  }
218  }
219 
220  if (!fCompareRhoName.IsNull()) {
221  fHistDeltaRhovsCent = new TH2F("fHistDeltaRhovsCent", "fHistDeltaRhovsCent", 101, -1, 100, fNbins, -fMaxBinPt, fMaxBinPt);
222  fHistDeltaRhovsCent->GetXaxis()->SetTitle("Centrality (%)");
223  fHistDeltaRhovsCent->GetYaxis()->SetTitle("#Delta#rho (GeV/c * rad^{-1})");
225 
226  if (fParticleCollArray.GetEntriesFast()>0) {
227  fHistDeltaRhovsNtrack = new TH2F("fHistDeltaRhovsNtrack", "fHistDeltaRhovsNtrack", 150, Ntrackrange[0], Ntrackrange[1], fNbins, -fMaxBinPt, fMaxBinPt);
228  fHistDeltaRhovsNtrack->GetXaxis()->SetTitle("No. of tracks");
229  fHistDeltaRhovsNtrack->GetYaxis()->SetTitle("#Delta#rho (GeV/c * rad^{-1})");
231  }
232  }
233 
234  if (fScaleFunction) {
235  fHistRhoScaledvsCent = new TH2F("fHistRhoScaledvsCent", "fHistRhoScaledvsCent", 101, -1, 100, fNbins, fMinBinPt , fMaxBinPt*2);
236  fHistRhoScaledvsCent->GetXaxis()->SetTitle("Centrality (%)");
237  fHistRhoScaledvsCent->GetYaxis()->SetTitle("#rho_{scaled} (GeV/c * rad^{-1})");
239 
240  if (fParticleCollArray.GetEntriesFast()>0) {
241  fHistRhoScaledvsNtrackvsV0Mult = new TH3F("fHistRhoScaledvsNtrackvsV0Mult", "fHistRhoScaledvsNtrackvsV0Mult", 150, Ntrackrange[0], Ntrackrange[1], fNbins, fMinBinPt, fMaxBinPt*2,100, V0Mult[0], V0Mult[1]);
242  fHistRhoScaledvsNtrackvsV0Mult->GetXaxis()->SetTitle("No. of tracks");
243  fHistRhoScaledvsNtrackvsV0Mult->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
244  fHistRhoScaledvsNtrackvsV0Mult->GetZaxis()->SetTitle("V0 mult");
246  }
247 
248  if (fClusterCollArray.GetEntriesFast()>0) {
249  fHistRhoScaledvsNcluster = new TH2F("fHistRhoScaledvsNcluster", "fHistRhoScaledvsNcluster", 50, 0, 1500, fNbins, fMinBinPt, fMaxBinPt*2);
250  fHistRhoScaledvsNcluster->GetXaxis()->SetTitle("No. of clusters");
251  fHistRhoScaledvsNcluster->GetYaxis()->SetTitle("#rho_{scaled} (GeV/c * rad^{-1})");
253  }
254 
255  if (!fCompareRhoScaledName.IsNull()) {
256  fHistDeltaRhoScalevsCent = new TH2F("fHistDeltaRhoScalevsCent", "fHistDeltaRhoScalevsCent", 101, -1, 100, fNbins, -fMaxBinPt, fMaxBinPt);
257  fHistDeltaRhoScalevsCent->GetXaxis()->SetTitle("Centrality (%)");
258  fHistDeltaRhoScalevsCent->GetYaxis()->SetTitle("#Delta#rho_{scaled} (GeV/c * rad^{-1})");
260 
261  if (fParticleCollArray.GetEntriesFast()>0) {
262  fHistDeltaRhoScalevsNtrack = new TH2F("fHistDeltaRhoScalevsNtrack", "fHistDeltaRhoScalevsNtrack", 150, Ntrackrange[0], Ntrackrange[1], fNbins, -fMaxBinPt, fMaxBinPt);
263  fHistDeltaRhoScalevsNtrack->GetXaxis()->SetTitle("No. of tracks");
264  fHistDeltaRhoScalevsNtrack->GetYaxis()->SetTitle("#Delta#rho_{scaled} (GeV/c * rad^{-1})");
266  }
267  }
268  }
269 }
270 
271 //________________________________________________________________________
273 {
274  // Run the analysis.
275 
276  Double_t rho = GetRhoFactor(fCent);
277  fOutRho->SetVal(rho);
278 
279  if (fScaleFunction) {
280  Double_t rhoScaled = rho * GetScaleFactor(fCent);
281  fOutRhoScaled->SetVal(rhoScaled);
282  }
283 
284  return kTRUE;
285 }
286 
287 //________________________________________________________________________
289 {
290  // Fill histograms.
291 
292  Int_t Ntracks = 0;
293  Int_t Nclusters = 0;
294 
295  AliVVZERO* vV0 = InputEvent()->GetVZEROData();
296  Float_t multV0A = -1.;
297  Float_t multV0C = -1.;
298  if(vV0) {
299  multV0A = vV0->GetMTotV0A();
300  multV0C = vV0->GetMTotV0C();
301  }
302 
303  if (GetParticleContainer(0))
305  if (GetClusterContainer(0))
306  Nclusters = GetClusterContainer(0)->GetNAcceptedClusters();
307 
308  if (fJets) {
309  Int_t Njets = fJets->GetEntries();
310  Int_t NjetAcc = 0;
311  Int_t NjetUE1Sigma = 0;
312  Int_t NjetUE2Sigma = 0;
313  Int_t NjetUE3Sigma = 0;
314  Double_t rhoPlus1Sigma = fOutRho->GetVal() + fInEventSigmaRho;
315  Double_t rhoPlus2Sigma = fOutRho->GetVal() + 2*fInEventSigmaRho;
316  Double_t rhoPlus3Sigma = fOutRho->GetVal() + 3*fInEventSigmaRho;
317 
318  for (Int_t i = 0; i < Njets; ++i) {
319 
320  AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJets->At(i));
321  if (!jet) {
322  AliError(Form("%s: Could not receive jet %d", GetName(), i));
323  continue;
324  }
325 
326  if (!AcceptJet(jet))
327  continue;
328 
329  fHistJetPtvsCent->Fill(fCent, jet->Pt());
330  fHistJetAreavsCent->Fill(fCent, jet->Area());
331  fHistJetRhovsCent->Fill(fCent, jet->Pt() / jet->Area());
332  fHistJetRhovsEta[fCentBin]->Fill(jet->Pt() / jet->Area(), jet->Eta());
333 
334  if (fTracks) {
335  fHistJetPtvsNtrack->Fill(Ntracks, jet->Pt());
336  fHistJetAreavsNtrack->Fill(Ntracks, jet->Area());
337  }
338 
339  fHistJetNconstVsPt[fCentBin]->Fill(jet->GetNumberOfConstituents(), jet->Pt());
340 
341  if (jet->Pt() < rhoPlus1Sigma * jet->Area())
342  NjetUE1Sigma++;
343 
344  if (jet->Pt() < rhoPlus2Sigma * jet->Area())
345  NjetUE2Sigma++;
346 
347  if (jet->Pt() < rhoPlus3Sigma * jet->Area())
348  NjetUE3Sigma++;
349 
350  NjetAcc++;
351  }
352 
353  if (NjetAcc>0) {
354  fHistNjUEoverNjVsNj[fCentBin*3 ]->Fill(NjetAcc,1.*NjetUE1Sigma/NjetAcc);
355  fHistNjUEoverNjVsNj[fCentBin*3+1]->Fill(NjetAcc,1.*NjetUE2Sigma/NjetAcc);
356  fHistNjUEoverNjVsNj[fCentBin*3+2]->Fill(NjetAcc,1.*NjetUE3Sigma/NjetAcc);
357  }
358 
359  fHistNjetvsCent->Fill(fCent, NjetAcc);
360  if (fTracks)
361  fHistNjetvsNtrack->Fill(Ntracks, NjetAcc);
362  }
363 
364  fHistRhovsCent->Fill(fCent, fOutRho->GetVal());
365 
366  if (fTracks)
367  fHistRhovsNtrackvsV0Mult->Fill(Ntracks, fOutRho->GetVal(),multV0A+multV0C);
368  if (fCaloClusters)
369  fHistRhovsNcluster->Fill(Nclusters, fOutRho->GetVal());
370  if (fCompareRho) {
371  fHistDeltaRhovsCent->Fill(fCent, fOutRho->GetVal() - fCompareRho->GetVal());
372  if (fTracks)
373  fHistDeltaRhovsNtrack->Fill(Ntracks, fOutRho->GetVal() - fCompareRho->GetVal());
374  }
375 
376  if (fOutRhoScaled) {
377  fHistRhoScaledvsCent->Fill(fCent, fOutRhoScaled->GetVal());
378  if (fTracks)
379  fHistRhoScaledvsNtrackvsV0Mult->Fill(Ntracks, fOutRhoScaled->GetVal(),multV0A+multV0C);
380  if (fCaloClusters)
381  fHistRhoScaledvsNcluster->Fill(Nclusters, fOutRhoScaled->GetVal());
382  if (fCompareRhoScaled) {
383  fHistDeltaRhoScalevsCent->Fill(fCent, fOutRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
384  if (fTracks)
385  fHistDeltaRhoScalevsNtrack->Fill(Ntracks, fOutRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
386  }
387  }
388 
389  return kTRUE;
390 }
391 
392 
393 //________________________________________________________________________
395 {
396  // Init the analysis.
397 
398  if (!fOutRho) {
400 
401  if (fAttachToEvent) {
402  if (!(InputEvent()->FindListObject(fOutRhoName))) {
403  InputEvent()->AddObject(fOutRho);
404  } else {
405  AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoName.Data()));
406  return;
407  }
408  }
409  }
410 
411  if (fScaleFunction && !fOutRhoScaled) {
413 
414  if (fAttachToEvent) {
415  if (!(InputEvent()->FindListObject(fOutRhoScaledName))) {
416  InputEvent()->AddObject(fOutRhoScaled);
417  } else {
418  AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoScaledName.Data()));
419  return;
420  }
421  }
422  }
423 
424  if (!fCompareRhoName.IsNull() && !fCompareRho) {
425  fCompareRho = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fCompareRhoName));
426  if (!fCompareRho) {
427  AliWarning(Form("%s: Could not retrieve rho %s!", GetName(), fCompareRhoName.Data()));
428  }
429  }
430 
431  if (!fCompareRhoScaledName.IsNull() && !fCompareRhoScaled) {
432  fCompareRhoScaled = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fCompareRhoScaledName));
433  if (!fCompareRhoScaled) {
434  AliWarning(Form("%s: Could not retrieve rho %s!", GetName(), fCompareRhoScaledName.Data()));
435  }
436  }
437 
439 }
440 
441 //________________________________________________________________________
443 {
444  // Return rho per centrality.
445 
446  Double_t rho = 0;
447  if (fRhoFunction)
448  rho = fRhoFunction->Eval(cent);
449  return rho;
450 }
451 
452 //________________________________________________________________________
454 {
455  // Get scale factor.
456 
457  Double_t scale = 1;
458  if (fScaleFunction)
459  scale = fScaleFunction->Eval(cent);
460  return scale;
461 }
462 
463 //________________________________________________________________________
464 TF1* AliAnalysisTaskRhoBase::LoadRhoFunction(const char* path, const char* name)
465 {
466  // Load the scale function from a file.
467 
468  TString fname(path);
469  if (fname.BeginsWith("alien://")) {
470  TGrid::Connect("alien://");
471  }
472 
473  TFile* file = TFile::Open(path);
474 
475  if (!file || file->IsZombie()) {
476  ::Error("AddTaskRho", "Could not open scale function file");
477  return 0;
478  }
479 
480  TF1* sfunc = dynamic_cast<TF1*>(file->Get(name));
481 
482  if (sfunc) {
483  ::Info("AliAnalysisTaskRhoBase::LoadRhoFunction", "Scale function %s loaded from file %s.", name, path);
484  }
485  else {
486  ::Error("AliAnalysisTaskRhoBase::LoadRhoFunction", "Scale function %s not found in file %s.", name, path);
487  return 0;
488  }
489 
490  fScaleFunction = static_cast<TF1*>(sfunc->Clone());
491 
492  file->Close();
493  delete file;
494 
495  return fScaleFunction;
496 }
AliRhoParameter * fCompareRho
output scaled rho object
Double_t Area() const
Definition: AliEmcalJet.h:123
TObjArray fClusterCollArray
cluster collection array
TH2F * fHistDeltaRhovsNtrack
rhoscaled vs. no. of tracks vs V0mult
double Double_t
Definition: External.C:58
Definition: External.C:260
TH2F * fHistDeltaRhoScalevsNtrack
delta rho vs. no. of tracks
TH2F * fHistNjetvsNtrack
jet area vs. no. of tracks
Definition: External.C:236
Double_t Eta() const
Definition: AliEmcalJet.h:114
TH2F * fHistNjetvsCent
jet pt/area vs. centrality
Double_t fMinBinPt
min pt in histograms
Int_t fCentBin
!event centrality bin
TF1 * LoadRhoFunction(const char *path, const char *name)
TH2F * fHistJetRhovsCent
jet area vs. centrality
TH2F * fHistJetPtvsNtrack
no. of jets vs. centrality
UShort_t GetNumberOfConstituents() const
Definition: AliEmcalJet.h:133
virtual Double_t GetRhoFactor(Double_t cent)
TObjArray fParticleCollArray
particle/track collection array
AliParticleContainer * GetParticleContainer(Int_t i=0) const
AliRhoParameter * fOutRhoScaled
output rho object
TClonesArray * fCaloClusters
!clusters
AliRhoParameter * fCompareRhoScaled
rho object to compare
int Int_t
Definition: External.C:63
float Float_t
Definition: External.C:68
AliClusterContainer * GetClusterContainer(Int_t i=0) const
TH2F * fHistJetRhovsEta[4]
jet no. of constituents vs. pt
Int_t GetNAcceptedClusters() const
Double_t fCent
!event centrality
TH2F * fHistJetAreavsNtrack
jet pt vs. no. of tracks
TObjArray fJetCollArray
jet collection array
TClonesArray * fJets
! jets
TH3F * fHistRhovsNtrackvsV0Mult
delta rhoscaled vs. centrality
Double_t Pt() const
Definition: AliEmcalJet.h:102
TH2F * fHistRhoScaledvsCent
rho vs. centrality
ClassImp(AliAnalysisTaskRhoBase) AliAnalysisTaskRhoBase
TH2F * fHistRhovsNcluster
delta rho scaled vs. no. of tracks
virtual Double_t GetScaleFactor(Double_t cent)
AliEmcalList * fOutput
!output list
Double_t fMaxBinPt
max pt in histograms
TH2F * fHistNjUEoverNjVsNj[12]
no. of jets vs. no. of tracks
TH2F * fHistJetAreavsCent
jet pt vs. centrality
TClonesArray * fTracks
!tracks
TH2F * fHistJetNconstVsPt[4]
ratio no. of jets below rho*A+sigma_rho over. no. of jets vs. no. of jets
TH2F * fHistRhoScaledvsNcluster
rho vs. no. of clusters
TH2F * fHistRhovsCent
rho vs. eta
TH2F * fHistJetPtvsCent
scaled rho object to compare
Bool_t fCreateHisto
whether or not create histograms
TFile * file
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
Definition: AliEmcalJet.h:44
virtual Bool_t AcceptJet(AliEmcalJet *jet, Int_t c=0)
bool Bool_t
Definition: External.C:53
Int_t GetNAcceptedParticles() const
TH2F * fHistDeltaRhoScalevsCent
delta rho vs. centrality
Int_t fNbins
no. of pt bins
TH2F * fHistDeltaRhovsCent
rhoscaled vs. centrality
TH3F * fHistRhoScaledvsNtrackvsV0Mult
rho vs. no. of tracks vs V0mult