]>
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> | |
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 | ||
23 | ClassImp(AliAnalysisTaskRhoBase) | |
24 | ||
25 | //________________________________________________________________________ | |
26 | AliAnalysisTaskRhoBase::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 | 70 | AliAnalysisTaskRhoBase::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 | //________________________________________________________________________ | |
115 | void 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 | //________________________________________________________________________ | |
260 | Bool_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 | 276 | Bool_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 | //________________________________________________________________________ | |
382 | void 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 | 430 | Double_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 | //________________________________________________________________________ | |
441 | Double_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 | } |