]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/AliAnalysisTaskRhoBase.cxx
Fixing Coverity defects
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliAnalysisTaskRhoBase.cxx
CommitLineData
3074a323 1// $Id$
2//
f09b22c5 3// Base class for rho calculation.
4// Calculates parameterized rho for given centrality independent of input.
3074a323 5//
1b3d7f8f 6// Author: S.Aiola
3074a323 7
8#include <TF1.h>
a487deae 9#include <TH1F.h>
10#include <TH2F.h>
c3a89312 11#include <TH3F.h>
a487deae 12#include <TClonesArray.h>
3074a323 13
1b3d7f8f 14#include "AliLog.h"
15#include "AliRhoParameter.h"
a487deae 16#include "AliEmcalJet.h"
fa6f0ccc 17#include "AliParticleContainer.h"
18#include "AliClusterContainer.h"
c3a89312 19#include "AliVVZERO.h"
3074a323 20
21#include "AliAnalysisTaskRhoBase.h"
22
23ClassImp(AliAnalysisTaskRhoBase)
24
25//________________________________________________________________________
26AliAnalysisTaskRhoBase::AliAnalysisTaskRhoBase() :
9239b066 27 AliAnalysisTaskEmcalJet("AliAnalysisTaskRhoBase", kFALSE),
7cd832c7 28 fOutRhoName(),
29 fOutRhoScaledName(),
a487deae 30 fCompareRhoName(),
31 fCompareRhoScaledName(),
32 fRhoFunction(0),
33 fScaleFunction(0),
624bef5b 34 fInEventSigmaRho(35.83),
6f18d73a 35 fAttachToEvent(kTRUE),
7cd832c7 36 fOutRho(0),
37 fOutRhoScaled(0),
a487deae 38 fCompareRho(0),
39 fCompareRhoScaled(0),
40 fHistJetPtvsCent(0),
41 fHistJetAreavsCent(0),
1f9c287f 42 fHistJetRhovsCent(0),
a487deae 43 fHistNjetvsCent(0),
44 fHistJetPtvsNtrack(0),
45 fHistJetAreavsNtrack(0),
46 fHistNjetvsNtrack(0),
47 fHistRhovsCent(0),
48 fHistRhoScaledvsCent(0),
49 fHistDeltaRhovsCent(0),
50 fHistDeltaRhoScalevsCent(0),
c3a89312 51 fHistRhovsNtrackvsV0Mult(0),
52 fHistRhoScaledvsNtrackvsV0Mult(0),
a487deae 53 fHistDeltaRhovsNtrack(0),
54 fHistDeltaRhoScalevsNtrack(0),
55 fHistRhovsNcluster(0),
56 fHistRhoScaledvsNcluster(0)
3074a323 57{
58 // Constructor.
624bef5b 59
73e2fd59 60 for (Int_t i = 0; i < 4; i++) {
624bef5b 61 fHistJetNconstVsPt[i] = 0;
e8df4140 62 fHistJetRhovsEta[i] = 0;
624bef5b 63 }
64 for (Int_t i = 0; i < 12; i++) {
73e2fd59 65 fHistNjUEoverNjVsNj[i] = 0;
66 }
3074a323 67}
68
69//________________________________________________________________________
a487deae 70AliAnalysisTaskRhoBase::AliAnalysisTaskRhoBase(const char *name, Bool_t histo) :
9239b066 71 AliAnalysisTaskEmcalJet(name, histo),
7cd832c7 72 fOutRhoName(),
73 fOutRhoScaledName(),
a487deae 74 fCompareRhoName(),
75 fCompareRhoScaledName(),
76 fRhoFunction(0),
77 fScaleFunction(0),
624bef5b 78 fInEventSigmaRho(35.83),
6f18d73a 79 fAttachToEvent(kTRUE),
7cd832c7 80 fOutRho(0),
81 fOutRhoScaled(0),
a487deae 82 fCompareRho(0),
83 fCompareRhoScaled(0),
84 fHistJetPtvsCent(0),
85 fHistJetAreavsCent(0),
1f9c287f 86 fHistJetRhovsCent(0),
a487deae 87 fHistNjetvsCent(0),
88 fHistJetPtvsNtrack(0),
89 fHistJetAreavsNtrack(0),
90 fHistNjetvsNtrack(0),
91 fHistRhovsCent(0),
92 fHistRhoScaledvsCent(0),
93 fHistDeltaRhovsCent(0),
94 fHistDeltaRhoScalevsCent(0),
c3a89312 95 fHistRhovsNtrackvsV0Mult(0),
96 fHistRhoScaledvsNtrackvsV0Mult(0),
a487deae 97 fHistDeltaRhovsNtrack(0),
98 fHistDeltaRhoScalevsNtrack(0),
99 fHistRhovsNcluster(0),
100 fHistRhoScaledvsNcluster(0)
3074a323 101{
102 // Constructor.
a487deae 103
73e2fd59 104 for (Int_t i = 0; i < 4; i++) {
624bef5b 105 fHistJetNconstVsPt[i] = 0;
e8df4140 106 fHistJetRhovsEta[i] = 0;
624bef5b 107 }
108 for (Int_t i = 0; i < 12; i++) {
73e2fd59 109 fHistNjUEoverNjVsNj[i] = 0;
110 }
a487deae 111 SetMakeGeneralHistograms(histo);
3074a323 112}
113
114//________________________________________________________________________
115void AliAnalysisTaskRhoBase::UserCreateOutputObjects()
116{
a487deae 117 // User create output objects, called at the beginning of the analysis.
3074a323 118
a487deae 119 if (!fCreateHisto)
3074a323 120 return;
a487deae 121
9239b066 122 AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
a487deae 123
ed0243d8 124 fHistRhovsCent = new TH2F("fHistRhovsCent", "fHistRhovsCent", 101, -1, 100, fNbins, fMinBinPt, fMaxBinPt*2);
125 fHistRhovsCent->GetXaxis()->SetTitle("Centrality (%)");
126 fHistRhovsCent->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
a487deae 127 fOutput->Add(fHistRhovsCent);
128
7cd832c7 129 if (fParticleCollArray.GetEntriesFast()>0) {
fa5e18d7 130 fHistRhovsNtrackvsV0Mult = new TH3F("fHistRhovsNtrackvsV0Mult", "fHistRhovsNtrackvsV0Mult", 150, 0, 6000, fNbins, fMinBinPt, fMaxBinPt*2,100,0.,25000.);
c3a89312 131 fHistRhovsNtrackvsV0Mult->GetXaxis()->SetTitle("No. of tracks");
132 fHistRhovsNtrackvsV0Mult->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
133 fHistRhovsNtrackvsV0Mult->GetZaxis()->SetTitle("V0 mult");
134 fOutput->Add(fHistRhovsNtrackvsV0Mult);
3074a323 135 }
136
7cd832c7 137 if (fClusterCollArray.GetEntriesFast()>0) {
ed0243d8 138 fHistRhovsNcluster = new TH2F("fHistRhovsNcluster", "fHistRhovsNcluster", 50, 0, 1500, fNbins, fMinBinPt, fMaxBinPt*2);
139 fHistRhovsNcluster->GetXaxis()->SetTitle("No. of tracks");
140 fHistRhovsNcluster->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
a487deae 141 fOutput->Add(fHistRhovsNcluster);
142 }
3074a323 143
7cd832c7 144 if (fJetCollArray.GetEntriesFast()>0) {
ed0243d8 145 fHistJetPtvsCent = new TH2F("fHistJetPtvsCent", "fHistJetPtvsCent", 101, -1, 100, fNbins, fMinBinPt, fMaxBinPt);
146 fHistJetPtvsCent->GetXaxis()->SetTitle("Centrality (%)");
147 fHistJetPtvsCent->GetYaxis()->SetTitle("#it{p}_{T,jet} (GeV/c)");
a487deae 148 fOutput->Add(fHistJetPtvsCent);
ed0243d8 149
7cd832c7 150 fHistJetAreavsCent = new TH2F("fHistJetAreavsCent", "fHistJetAreavsCent", 101, -1, 100, 100, 0, 1);
ed0243d8 151 fHistJetAreavsCent->GetXaxis()->SetTitle("Centrality (%)");
152 fHistJetAreavsCent->GetYaxis()->SetTitle("Jet area");
a487deae 153 fOutput->Add(fHistJetAreavsCent);
ed0243d8 154
155 fHistJetRhovsCent = new TH2F("fHistJetRhovsCent", "fHistJetRhovsCent", 101, -1, 100, fNbins, fMinBinPt, fMaxBinPt*2);
156 fHistJetRhovsCent->GetXaxis()->SetTitle("Centrality (%)");
157 fHistJetRhovsCent->GetYaxis()->SetTitle("Jet #rho (GeV/c)");
158 fOutput->Add(fHistJetRhovsCent);
159
160 fHistNjetvsCent = new TH2F("fHistNjetvsCent", "fHistNjetvsCent", 101, -1, 100, 150, -0.5, 149.5);
161 fHistNjetvsCent->GetXaxis()->SetTitle("Centrality (%)");
162 fHistNjetvsCent->GetYaxis()->SetTitle("No. of jets");
a487deae 163 fOutput->Add(fHistNjetvsCent);
164
3074a323 165
7cd832c7 166 if (fParticleCollArray.GetEntriesFast()>0) {
ed0243d8 167 fHistJetPtvsNtrack = new TH2F("fHistJetPtvsNtrack", "fHistJetPtvsNtrack", 150, 0, 6000, fNbins, fMinBinPt, fMaxBinPt);
168 fHistJetPtvsNtrack->GetXaxis()->SetTitle("No. of tracks");
169 fHistJetPtvsNtrack->GetYaxis()->SetTitle("#it{p}_{T,jet} (GeV/c)");
a487deae 170 fOutput->Add(fHistJetPtvsNtrack);
ed0243d8 171
7cd832c7 172 fHistJetAreavsNtrack = new TH2F("fHistJetAreavsNtrack", "fHistJetAreavsNtrack", 150, 0, 6000, 100, 0, 1);
ed0243d8 173 fHistJetAreavsNtrack->GetXaxis()->SetTitle("No. of tracks");
174 fHistJetAreavsNtrack->GetYaxis()->SetTitle("Jet area");
a487deae 175 fOutput->Add(fHistJetAreavsNtrack);
ed0243d8 176
177 fHistNjetvsNtrack = new TH2F("fHistNjetvsNtrack", "fHistNjetvsNtrack", 150, 0, 6000, 150, -0.5, 149.5);
4d3b366f 178 fHistNjetvsNtrack->GetXaxis()->SetTitle("No. of jets");
179 fHistNjetvsNtrack->GetYaxis()->SetTitle("No. of tracks");
a487deae 180 fOutput->Add(fHistNjetvsNtrack);
181 }
73e2fd59 182
624bef5b 183
184 TString name;
73e2fd59 185 for (Int_t i = 0; i < 4; i++) {
624bef5b 186 name = Form("fHistJetNconstVsPt_%d",i);
187 fHistJetNconstVsPt[i] = new TH2F(name, name, 150, -0.5, 149.5, fNbins, fMinBinPt, fMaxBinPt);
ed0243d8 188 fHistJetNconstVsPt[i]->GetXaxis()->SetTitle("No. of constituents");
624bef5b 189 fHistJetNconstVsPt[i]->GetYaxis()->SetTitle("p_{T,jet} (GeV/c)");
190 fOutput->Add(fHistJetNconstVsPt[i]);
191
ed0243d8 192 name = Form("fHistJetRhovsEta_%d",i);
e8df4140 193 fHistJetRhovsEta[i] = new TH2F(name, name, fNbins, fMinBinPt, fMaxBinPt*2, 16, -0.8, 0.8);
ed0243d8 194 fHistJetRhovsEta[i]->GetXaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
195 fHistJetRhovsEta[i]->GetYaxis()->SetTitle("#eta");
e8df4140 196 fOutput->Add(fHistJetRhovsEta[i]);
197
624bef5b 198 for (Int_t j = 0; j < 3; j++) {
199 name = Form("NjUEoverNjVsNj_%d_%d",i,j+1);
200 fHistNjUEoverNjVsNj[i*3+j] = new TH2F(name, name, 150, -0.5, 149.5, 120, 0.01, 1.21);
201 fHistNjUEoverNjVsNj[i*3+j]->GetXaxis()->SetTitle("N_{jet}");
202 fHistNjUEoverNjVsNj[i*3+j]->GetYaxis()->SetTitle("N_{jet_{UE}} / N_{jet}");
203 fOutput->Add(fHistNjUEoverNjVsNj[i*3+j]);
204 }
73e2fd59 205 }
a487deae 206 }
207
208 if (!fCompareRhoName.IsNull()) {
ed0243d8 209 fHistDeltaRhovsCent = new TH2F("fHistDeltaRhovsCent", "fHistDeltaRhovsCent", 101, -1, 100, fNbins, -fMaxBinPt, fMaxBinPt);
210 fHistDeltaRhovsCent->GetXaxis()->SetTitle("Centrality (%)");
211 fHistDeltaRhovsCent->GetYaxis()->SetTitle("#Delta#rho (GeV/c * rad^{-1})");
a487deae 212 fOutput->Add(fHistDeltaRhovsCent);
ed0243d8 213
7cd832c7 214 if (fParticleCollArray.GetEntriesFast()>0) {
ed0243d8 215 fHistDeltaRhovsNtrack = new TH2F("fHistDeltaRhovsNtrack", "fHistDeltaRhovsNtrack", 150, 0, 6000, fNbins, -fMaxBinPt, fMaxBinPt);
216 fHistDeltaRhovsNtrack->GetXaxis()->SetTitle("No. of tracks");
217 fHistDeltaRhovsNtrack->GetYaxis()->SetTitle("#Delta#rho (GeV/c * rad^{-1})");
a487deae 218 fOutput->Add(fHistDeltaRhovsNtrack);
219 }
f09b22c5 220 }
221
a487deae 222 if (fScaleFunction) {
ed0243d8 223 fHistRhoScaledvsCent = new TH2F("fHistRhoScaledvsCent", "fHistRhoScaledvsCent", 101, -1, 100, fNbins, fMinBinPt , fMaxBinPt*2);
224 fHistRhoScaledvsCent->GetXaxis()->SetTitle("Centrality (%)");
225 fHistRhoScaledvsCent->GetYaxis()->SetTitle("#rho_{scaled} (GeV/c * rad^{-1})");
a487deae 226 fOutput->Add(fHistRhoScaledvsCent);
227
7cd832c7 228 if (fParticleCollArray.GetEntriesFast()>0) {
fa5e18d7 229 fHistRhoScaledvsNtrackvsV0Mult = new TH3F("fHistRhoScaledvsNtrackvsV0Mult", "fHistRhoScaledvsNtrackvsV0Mult", 150, 0, 6000, fNbins, fMinBinPt, fMaxBinPt*2,100,0.,25000.);
c3a89312 230 fHistRhoScaledvsNtrackvsV0Mult->GetXaxis()->SetTitle("No. of tracks");
231 fHistRhoScaledvsNtrackvsV0Mult->GetYaxis()->SetTitle("#rho (GeV/c * rad^{-1})");
232 fHistRhoScaledvsNtrackvsV0Mult->GetZaxis()->SetTitle("V0 mult");
233 fOutput->Add(fHistRhoScaledvsNtrackvsV0Mult);
a487deae 234 }
235
7cd832c7 236 if (fClusterCollArray.GetEntriesFast()>0) {
ed0243d8 237 fHistRhoScaledvsNcluster = new TH2F("fHistRhoScaledvsNcluster", "fHistRhoScaledvsNcluster", 50, 0, 1500, fNbins, fMinBinPt, fMaxBinPt*2);
238 fHistRhoScaledvsNcluster->GetXaxis()->SetTitle("No. of clusters");
239 fHistRhoScaledvsNcluster->GetYaxis()->SetTitle("#rho_{scaled} (GeV/c * rad^{-1})");
a487deae 240 fOutput->Add(fHistRhoScaledvsNcluster);
241 }
242
243 if (!fCompareRhoScaledName.IsNull()) {
ed0243d8 244 fHistDeltaRhoScalevsCent = new TH2F("fHistDeltaRhoScalevsCent", "fHistDeltaRhoScalevsCent", 101, -1, 100, fNbins, -fMaxBinPt, fMaxBinPt);
245 fHistDeltaRhoScalevsCent->GetXaxis()->SetTitle("Centrality (%)");
246 fHistDeltaRhoScalevsCent->GetYaxis()->SetTitle("#Delta#rho_{scaled} (GeV/c * rad^{-1})");
a487deae 247 fOutput->Add(fHistDeltaRhoScalevsCent);
248
7cd832c7 249 if (fParticleCollArray.GetEntriesFast()>0) {
ed0243d8 250 fHistDeltaRhoScalevsNtrack = new TH2F("fHistDeltaRhoScalevsNtrack", "fHistDeltaRhoScalevsNtrack", 150, 0, 6000, fNbins, -fMaxBinPt, fMaxBinPt);
251 fHistDeltaRhoScalevsNtrack->GetXaxis()->SetTitle("No. of tracks");
252 fHistDeltaRhoScalevsNtrack->GetYaxis()->SetTitle("#Delta#rho_{scaled} (GeV/c * rad^{-1})");
a487deae 253 fOutput->Add(fHistDeltaRhoScalevsNtrack);
254 }
255 }
256 }
257}
258
259//________________________________________________________________________
260Bool_t AliAnalysisTaskRhoBase::Run()
261{
262 // Run the analysis.
f09b22c5 263
264 Double_t rho = GetRhoFactor(fCent);
7cd832c7 265 fOutRho->SetVal(rho);
a487deae 266
267 if (fScaleFunction) {
268 Double_t rhoScaled = rho * GetScaleFactor(fCent);
7cd832c7 269 fOutRhoScaled->SetVal(rhoScaled);
a487deae 270 }
271
272 return kTRUE;
273}
f09b22c5 274
275//________________________________________________________________________
a487deae 276Bool_t AliAnalysisTaskRhoBase::FillHistograms()
f09b22c5 277{
a487deae 278 // Fill histograms.
f09b22c5 279
a487deae 280 Int_t Ntracks = 0;
281 Int_t Nclusters = 0;
282
c3a89312 283 AliVVZERO* vV0 = InputEvent()->GetVZEROData();
284 Float_t multV0A = vV0->GetMTotV0A();
285 Float_t multV0C = vV0->GetMTotV0C();
286
fa6f0ccc 287 if (GetParticleContainer(0))
288 Ntracks = GetParticleContainer(0)->GetNAcceptedParticles();
289 if (GetClusterContainer(0))
290 Nclusters = GetClusterContainer(0)->GetNAcceptedClusters();
a487deae 291
a487deae 292 if (fJets) {
624bef5b 293 Int_t Njets = fJets->GetEntries();
294 Int_t NjetAcc = 0;
295 Int_t NjetUE1Sigma = 0;
296 Int_t NjetUE2Sigma = 0;
297 Int_t NjetUE3Sigma = 0;
7cd832c7 298 Double_t rhoPlus1Sigma = fOutRho->GetVal() + fInEventSigmaRho;
299 Double_t rhoPlus2Sigma = fOutRho->GetVal() + 2*fInEventSigmaRho;
300 Double_t rhoPlus3Sigma = fOutRho->GetVal() + 3*fInEventSigmaRho;
a487deae 301
302 for (Int_t i = 0; i < Njets; ++i) {
303
304 AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJets->At(i));
305 if (!jet) {
306 AliError(Form("%s: Could not receive jet %d", GetName(), i));
307 continue;
308 }
309
310 if (!AcceptJet(jet))
311 continue;
312
313 fHistJetPtvsCent->Fill(fCent, jet->Pt());
314 fHistJetAreavsCent->Fill(fCent, jet->Area());
1f9c287f 315 fHistJetRhovsCent->Fill(fCent, jet->Pt() / jet->Area());
e8df4140 316 fHistJetRhovsEta[fCentBin]->Fill(jet->Pt() / jet->Area(), jet->Eta());
317
a487deae 318 if (fTracks) {
319 fHistJetPtvsNtrack->Fill(Ntracks, jet->Pt());
320 fHistJetAreavsNtrack->Fill(Ntracks, jet->Area());
321 }
73e2fd59 322
624bef5b 323 fHistJetNconstVsPt[fCentBin]->Fill(jet->GetNumberOfConstituents(), jet->Pt());
324
325 if (jet->Pt() < rhoPlus1Sigma * jet->Area())
326 NjetUE1Sigma++;
327
328 if (jet->Pt() < rhoPlus2Sigma * jet->Area())
329 NjetUE2Sigma++;
330
331 if (jet->Pt() < rhoPlus3Sigma * jet->Area())
332 NjetUE3Sigma++;
a487deae 333
334 NjetAcc++;
335 }
f09b22c5 336
624bef5b 337 if (NjetAcc>0) {
338 fHistNjUEoverNjVsNj[fCentBin*3 ]->Fill(NjetAcc,1.*NjetUE1Sigma/NjetAcc);
339 fHistNjUEoverNjVsNj[fCentBin*3+1]->Fill(NjetAcc,1.*NjetUE2Sigma/NjetAcc);
340 fHistNjUEoverNjVsNj[fCentBin*3+2]->Fill(NjetAcc,1.*NjetUE3Sigma/NjetAcc);
341 }
73e2fd59 342
a487deae 343 fHistNjetvsCent->Fill(fCent, NjetAcc);
344 if (fTracks)
345 fHistNjetvsNtrack->Fill(Ntracks, NjetAcc);
346 }
347
7cd832c7 348 fHistRhovsCent->Fill(fCent, fOutRho->GetVal());
a487deae 349
350 if (fTracks)
c3a89312 351 fHistRhovsNtrackvsV0Mult->Fill(Ntracks, fOutRho->GetVal(),multV0A+multV0C);
a487deae 352 if (fCaloClusters)
7cd832c7 353 fHistRhovsNcluster->Fill(Nclusters, fOutRho->GetVal());
a487deae 354 if (fCompareRho) {
7cd832c7 355 fHistDeltaRhovsCent->Fill(fCent, fOutRho->GetVal() - fCompareRho->GetVal());
a487deae 356 if (fTracks)
7cd832c7 357 fHistDeltaRhovsNtrack->Fill(Ntracks, fOutRho->GetVal() - fCompareRho->GetVal());
a487deae 358 }
359
7cd832c7 360 if (fOutRhoScaled) {
361 fHistRhoScaledvsCent->Fill(fCent, fOutRhoScaled->GetVal());
a487deae 362 if (fTracks)
c3a89312 363 fHistRhoScaledvsNtrackvsV0Mult->Fill(Ntracks, fOutRhoScaled->GetVal(),multV0A+multV0C);
a487deae 364 if (fCaloClusters)
7cd832c7 365 fHistRhoScaledvsNcluster->Fill(Nclusters, fOutRhoScaled->GetVal());
a487deae 366 if (fCompareRhoScaled) {
7cd832c7 367 fHistDeltaRhoScalevsCent->Fill(fCent, fOutRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
a487deae 368 if (fTracks)
7cd832c7 369 fHistDeltaRhoScalevsNtrack->Fill(Ntracks, fOutRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
f09b22c5 370 }
371 }
a487deae 372
373 return kTRUE;
374}
375
f09b22c5 376
377//________________________________________________________________________
378void AliAnalysisTaskRhoBase::ExecOnce()
379{
a487deae 380 // Init the analysis.
f09b22c5 381
7cd832c7 382 if (!fOutRho) {
383 fOutRho = new AliRhoParameter(fOutRhoName, 0);
a487deae 384
6f18d73a 385 if (fAttachToEvent) {
7cd832c7 386 if (!(InputEvent()->FindListObject(fOutRhoName))) {
387 InputEvent()->AddObject(fOutRho);
6f18d73a 388 } else {
7cd832c7 389 AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoName.Data()));
6f18d73a 390 return;
391 }
392 }
7cd832c7 393 }
394
395 if (fScaleFunction && !fOutRhoScaled) {
396 fOutRhoScaled = new AliRhoParameter(fOutRhoScaledName, 0);
397
398 if (fAttachToEvent) {
399 if (!(InputEvent()->FindListObject(fOutRhoScaledName))) {
400 InputEvent()->AddObject(fOutRhoScaled);
401 } else {
402 AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoScaledName.Data()));
403 return;
6f18d73a 404 }
a487deae 405 }
0627844d 406 }
407
a487deae 408 if (!fCompareRhoName.IsNull() && !fCompareRho) {
409 fCompareRho = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fCompareRhoName));
410 if (!fCompareRho) {
411 AliWarning(Form("%s: Could not retrieve rho %s!", GetName(), fCompareRhoName.Data()));
412 }
413 }
0627844d 414
a487deae 415 if (!fCompareRhoScaledName.IsNull() && !fCompareRhoScaled) {
416 fCompareRhoScaled = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fCompareRhoScaledName));
417 if (!fCompareRhoScaled) {
418 AliWarning(Form("%s: Could not retrieve rho %s!", GetName(), fCompareRhoScaledName.Data()));
0627844d 419 }
420 }
421
9239b066 422 AliAnalysisTaskEmcalJet::ExecOnce();
0627844d 423}
424
3074a323 425//________________________________________________________________________
f09b22c5 426Double_t AliAnalysisTaskRhoBase::GetRhoFactor(Double_t cent)
3074a323 427{
f09b22c5 428 // Return rho per centrality.
3074a323 429
a487deae 430 Double_t rho = 0;
f09b22c5 431 if (fRhoFunction)
432 rho = fRhoFunction->Eval(cent);
433 return rho;
3074a323 434}
a487deae 435
436//________________________________________________________________________
437Double_t AliAnalysisTaskRhoBase::GetScaleFactor(Double_t cent)
438{
439 // Get scale factor.
440
441 Double_t scale = 1;
442 if (fScaleFunction)
443 scale = fScaleFunction->Eval(cent);
444 return scale;
445}