]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/AliAnalysisTaskRhoBase.cxx
Merge branch 'feature-movesplit'
[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();
82355ea6 284 Float_t multV0A = -1.;
285 Float_t multV0C = -1.;
286 if(vV0) {
287 multV0A = vV0->GetMTotV0A();
288 multV0C = vV0->GetMTotV0C();
289 }
c3a89312 290
fa6f0ccc 291 if (GetParticleContainer(0))
292 Ntracks = GetParticleContainer(0)->GetNAcceptedParticles();
293 if (GetClusterContainer(0))
294 Nclusters = GetClusterContainer(0)->GetNAcceptedClusters();
a487deae 295
a487deae 296 if (fJets) {
624bef5b 297 Int_t Njets = fJets->GetEntries();
298 Int_t NjetAcc = 0;
299 Int_t NjetUE1Sigma = 0;
300 Int_t NjetUE2Sigma = 0;
301 Int_t NjetUE3Sigma = 0;
7cd832c7 302 Double_t rhoPlus1Sigma = fOutRho->GetVal() + fInEventSigmaRho;
303 Double_t rhoPlus2Sigma = fOutRho->GetVal() + 2*fInEventSigmaRho;
304 Double_t rhoPlus3Sigma = fOutRho->GetVal() + 3*fInEventSigmaRho;
a487deae 305
306 for (Int_t i = 0; i < Njets; ++i) {
307
308 AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJets->At(i));
309 if (!jet) {
310 AliError(Form("%s: Could not receive jet %d", GetName(), i));
311 continue;
312 }
313
314 if (!AcceptJet(jet))
315 continue;
316
317 fHistJetPtvsCent->Fill(fCent, jet->Pt());
318 fHistJetAreavsCent->Fill(fCent, jet->Area());
1f9c287f 319 fHistJetRhovsCent->Fill(fCent, jet->Pt() / jet->Area());
e8df4140 320 fHistJetRhovsEta[fCentBin]->Fill(jet->Pt() / jet->Area(), jet->Eta());
321
a487deae 322 if (fTracks) {
323 fHistJetPtvsNtrack->Fill(Ntracks, jet->Pt());
324 fHistJetAreavsNtrack->Fill(Ntracks, jet->Area());
325 }
73e2fd59 326
624bef5b 327 fHistJetNconstVsPt[fCentBin]->Fill(jet->GetNumberOfConstituents(), jet->Pt());
328
329 if (jet->Pt() < rhoPlus1Sigma * jet->Area())
330 NjetUE1Sigma++;
331
332 if (jet->Pt() < rhoPlus2Sigma * jet->Area())
333 NjetUE2Sigma++;
334
335 if (jet->Pt() < rhoPlus3Sigma * jet->Area())
336 NjetUE3Sigma++;
a487deae 337
338 NjetAcc++;
339 }
f09b22c5 340
624bef5b 341 if (NjetAcc>0) {
342 fHistNjUEoverNjVsNj[fCentBin*3 ]->Fill(NjetAcc,1.*NjetUE1Sigma/NjetAcc);
343 fHistNjUEoverNjVsNj[fCentBin*3+1]->Fill(NjetAcc,1.*NjetUE2Sigma/NjetAcc);
344 fHistNjUEoverNjVsNj[fCentBin*3+2]->Fill(NjetAcc,1.*NjetUE3Sigma/NjetAcc);
345 }
73e2fd59 346
a487deae 347 fHistNjetvsCent->Fill(fCent, NjetAcc);
348 if (fTracks)
349 fHistNjetvsNtrack->Fill(Ntracks, NjetAcc);
350 }
351
7cd832c7 352 fHistRhovsCent->Fill(fCent, fOutRho->GetVal());
a487deae 353
354 if (fTracks)
c3a89312 355 fHistRhovsNtrackvsV0Mult->Fill(Ntracks, fOutRho->GetVal(),multV0A+multV0C);
a487deae 356 if (fCaloClusters)
7cd832c7 357 fHistRhovsNcluster->Fill(Nclusters, fOutRho->GetVal());
a487deae 358 if (fCompareRho) {
7cd832c7 359 fHistDeltaRhovsCent->Fill(fCent, fOutRho->GetVal() - fCompareRho->GetVal());
a487deae 360 if (fTracks)
7cd832c7 361 fHistDeltaRhovsNtrack->Fill(Ntracks, fOutRho->GetVal() - fCompareRho->GetVal());
a487deae 362 }
363
7cd832c7 364 if (fOutRhoScaled) {
365 fHistRhoScaledvsCent->Fill(fCent, fOutRhoScaled->GetVal());
a487deae 366 if (fTracks)
c3a89312 367 fHistRhoScaledvsNtrackvsV0Mult->Fill(Ntracks, fOutRhoScaled->GetVal(),multV0A+multV0C);
a487deae 368 if (fCaloClusters)
7cd832c7 369 fHistRhoScaledvsNcluster->Fill(Nclusters, fOutRhoScaled->GetVal());
a487deae 370 if (fCompareRhoScaled) {
7cd832c7 371 fHistDeltaRhoScalevsCent->Fill(fCent, fOutRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
a487deae 372 if (fTracks)
7cd832c7 373 fHistDeltaRhoScalevsNtrack->Fill(Ntracks, fOutRhoScaled->GetVal() - fCompareRhoScaled->GetVal());
f09b22c5 374 }
375 }
a487deae 376
377 return kTRUE;
378}
379
f09b22c5 380
381//________________________________________________________________________
382void AliAnalysisTaskRhoBase::ExecOnce()
383{
a487deae 384 // Init the analysis.
f09b22c5 385
7cd832c7 386 if (!fOutRho) {
387 fOutRho = new AliRhoParameter(fOutRhoName, 0);
a487deae 388
6f18d73a 389 if (fAttachToEvent) {
7cd832c7 390 if (!(InputEvent()->FindListObject(fOutRhoName))) {
391 InputEvent()->AddObject(fOutRho);
6f18d73a 392 } else {
7cd832c7 393 AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoName.Data()));
6f18d73a 394 return;
395 }
396 }
7cd832c7 397 }
398
399 if (fScaleFunction && !fOutRhoScaled) {
400 fOutRhoScaled = new AliRhoParameter(fOutRhoScaledName, 0);
401
402 if (fAttachToEvent) {
403 if (!(InputEvent()->FindListObject(fOutRhoScaledName))) {
404 InputEvent()->AddObject(fOutRhoScaled);
405 } else {
406 AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fOutRhoScaledName.Data()));
407 return;
6f18d73a 408 }
a487deae 409 }
0627844d 410 }
411
a487deae 412 if (!fCompareRhoName.IsNull() && !fCompareRho) {
413 fCompareRho = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fCompareRhoName));
414 if (!fCompareRho) {
415 AliWarning(Form("%s: Could not retrieve rho %s!", GetName(), fCompareRhoName.Data()));
416 }
417 }
0627844d 418
a487deae 419 if (!fCompareRhoScaledName.IsNull() && !fCompareRhoScaled) {
420 fCompareRhoScaled = dynamic_cast<AliRhoParameter*>(InputEvent()->FindListObject(fCompareRhoScaledName));
421 if (!fCompareRhoScaled) {
422 AliWarning(Form("%s: Could not retrieve rho %s!", GetName(), fCompareRhoScaledName.Data()));
0627844d 423 }
424 }
425
9239b066 426 AliAnalysisTaskEmcalJet::ExecOnce();
0627844d 427}
428
3074a323 429//________________________________________________________________________
f09b22c5 430Double_t AliAnalysisTaskRhoBase::GetRhoFactor(Double_t cent)
3074a323 431{
f09b22c5 432 // Return rho per centrality.
3074a323 433
a487deae 434 Double_t rho = 0;
f09b22c5 435 if (fRhoFunction)
436 rho = fRhoFunction->Eval(cent);
437 return rho;
3074a323 438}
a487deae 439
440//________________________________________________________________________
441Double_t AliAnalysisTaskRhoBase::GetScaleFactor(Double_t cent)
442{
443 // Get scale factor.
444
445 Double_t scale = 1;
446 if (fScaleFunction)
447 scale = fScaleFunction->Eval(cent);
448 return scale;
449}