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