]>
Commit | Line | Data |
---|---|---|
00514d01 | 1 | // $Id$ |
91f4b7c5 | 2 | // |
b12a85c3 | 3 | // Jet analysis task (S.Aiola). |
91f4b7c5 | 4 | // |
5 | // | |
25283b37 | 6 | |
b5ee47fb | 7 | #include <TObject.h> |
25283b37 | 8 | #include <TChain.h> |
9 | #include <TClonesArray.h> | |
10 | #include <TH1F.h> | |
11 | #include <TH2F.h> | |
12 | #include <TList.h> | |
13 | #include <TLorentzVector.h> | |
a55e4f1d | 14 | #include <TRandom3.h> |
226f511d | 15 | #include <TParameter.h> |
25283b37 | 16 | |
17 | #include "AliAnalysisManager.h" | |
18 | #include "AliCentrality.h" | |
f0a0fd33 | 19 | #include "AliVCluster.h" |
df43b607 | 20 | #include "AliVParticle.h" |
6fd5039f | 21 | #include "AliVTrack.h" |
25283b37 | 22 | #include "AliEmcalJet.h" |
23 | #include "AliVEventHandler.h" | |
55264f20 | 24 | #include "AliLog.h" |
25283b37 | 25 | |
00514d01 | 26 | #include "AliAnalysisTaskSAJF.h" |
25283b37 | 27 | |
00514d01 | 28 | ClassImp(AliAnalysisTaskSAJF) |
25283b37 | 29 | |
30 | //________________________________________________________________________ | |
00514d01 | 31 | AliAnalysisTaskSAJF::AliAnalysisTaskSAJF() : |
6fd5039f | 32 | AliAnalysisTaskEmcalJet("AliAnalysisTaskSAJF"), |
b12a85c3 | 33 | fMinRC2LJ(1.0), |
2bee31e9 | 34 | fEmbJetsName("EmbJets"), |
b12a85c3 | 35 | fRandTracksName("TracksRandomized"), |
36 | fRandCaloName("CaloClustersRandomized"), | |
226f511d | 37 | fRhoName("Rho"), |
6fd5039f | 38 | fSkipEventsWithNoJets(kTRUE), |
2bee31e9 | 39 | fEmbJets(0), |
b12a85c3 | 40 | fRandTracks(0), |
41 | fRandCaloClusters(0), | |
b12a85c3 | 42 | fRho(0), |
f0a0fd33 | 43 | fHistCentrality(0), |
fb9ac42f | 44 | fHistRejectedEvents(0), |
b12a85c3 | 45 | fHistRhoVSleadJetPt(0), |
46 | fHistRCPhiEta(0), | |
47 | fHistRCPtExLJVSDPhiLJ(0), | |
48 | fHistRhoVSRCPt(0), | |
b5ee47fb | 49 | fHistEmbJetPhiEta(0), |
50 | fHistEmbPartPhiEta(0), | |
b12a85c3 | 51 | fHistRhoVSEmbBkg(0) |
226f511d | 52 | |
25283b37 | 53 | { |
54 | // Default constructor. | |
f0a0fd33 | 55 | |
56 | for (Int_t i = 0; i < 4; i++) { | |
df43b607 | 57 | fHistJetPhiEta[i] = 0; |
55264f20 | 58 | fHistJetsPt[i] = 0; |
df43b607 | 59 | fHistJetsPtArea[i] = 0; |
55264f20 | 60 | fHistLeadingJetPt[i] = 0; |
61 | fHist2LeadingJetPt[i] = 0; | |
b12a85c3 | 62 | fHistJetsNEFvsPt[i] = 0; |
63 | fHistJetsZvsPt[i] = 0; | |
b12a85c3 | 64 | fHistRho[i] = 0; |
65 | fHistCorrJetsPt[i] = 0; | |
b12a85c3 | 66 | fHistCorrLeadingJetPt[i] = 0; |
a55e4f1d | 67 | fHistRCPt[i] = 0; |
68 | fHistRCPtExLJ[i] = 0; | |
b12a85c3 | 69 | fHistRCPtRand[i] = 0; |
70 | fHistDeltaPtRC[i] = 0; | |
71 | fHistDeltaPtRCExLJ[i] = 0; | |
72 | fHistDeltaPtRCRand[i] = 0; | |
2bee31e9 | 73 | fHistEmbJets[i] = 0; |
74 | fHistEmbPart[i] = 0; | |
b12a85c3 | 75 | fHistDeltaPtEmb[i] = 0; |
f0a0fd33 | 76 | } |
91f4b7c5 | 77 | |
25283b37 | 78 | } |
79 | ||
80 | //________________________________________________________________________ | |
00514d01 | 81 | AliAnalysisTaskSAJF::AliAnalysisTaskSAJF(const char *name) : |
6fd5039f | 82 | AliAnalysisTaskEmcalJet(name), |
b12a85c3 | 83 | fMinRC2LJ(1.0), |
2bee31e9 | 84 | fEmbJetsName("EmbJets"), |
b12a85c3 | 85 | fRandTracksName("TracksRandomized"), |
86 | fRandCaloName("CaloClustersRandomized"), | |
226f511d | 87 | fRhoName("Rho"), |
6fd5039f | 88 | fSkipEventsWithNoJets(kTRUE), |
2bee31e9 | 89 | fEmbJets(0), |
b12a85c3 | 90 | fRandTracks(0), |
91 | fRandCaloClusters(0), | |
b12a85c3 | 92 | fRho(0), |
f0a0fd33 | 93 | fHistCentrality(0), |
fb9ac42f | 94 | fHistRejectedEvents(0), |
b12a85c3 | 95 | fHistRhoVSleadJetPt(0), |
96 | fHistRCPhiEta(0), | |
97 | fHistRCPtExLJVSDPhiLJ(0), | |
98 | fHistRhoVSRCPt(0), | |
b5ee47fb | 99 | fHistEmbJetPhiEta(0), |
100 | fHistEmbPartPhiEta(0), | |
b12a85c3 | 101 | fHistRhoVSEmbBkg(0) |
25283b37 | 102 | { |
103 | // Standard constructor. | |
104 | ||
f0a0fd33 | 105 | for (Int_t i = 0; i < 4; i++) { |
df43b607 | 106 | fHistJetPhiEta[i] = 0; |
55264f20 | 107 | fHistJetsPt[i] = 0; |
df43b607 | 108 | fHistJetsPtArea[i] = 0; |
55264f20 | 109 | fHistLeadingJetPt[i] = 0; |
110 | fHist2LeadingJetPt[i] = 0; | |
b12a85c3 | 111 | fHistJetsNEFvsPt[i] = 0; |
112 | fHistJetsZvsPt[i] = 0; | |
b12a85c3 | 113 | fHistRho[i] = 0; |
114 | fHistCorrJetsPt[i] = 0; | |
b12a85c3 | 115 | fHistCorrLeadingJetPt[i] = 0; |
a55e4f1d | 116 | fHistRCPt[i] = 0; |
117 | fHistRCPtExLJ[i] = 0; | |
b12a85c3 | 118 | fHistRCPtRand[i] = 0; |
119 | fHistDeltaPtRC[i] = 0; | |
120 | fHistDeltaPtRCExLJ[i] = 0; | |
121 | fHistDeltaPtRCRand[i] = 0; | |
2bee31e9 | 122 | fHistEmbJets[i] = 0; |
123 | fHistEmbPart[i] = 0; | |
b12a85c3 | 124 | fHistDeltaPtEmb[i] = 0; |
f0a0fd33 | 125 | } |
91f4b7c5 | 126 | |
25283b37 | 127 | } |
128 | ||
129 | //________________________________________________________________________ | |
00514d01 | 130 | AliAnalysisTaskSAJF::~AliAnalysisTaskSAJF() |
25283b37 | 131 | { |
132 | // Destructor | |
133 | } | |
134 | ||
135 | //________________________________________________________________________ | |
00514d01 | 136 | void AliAnalysisTaskSAJF::UserCreateOutputObjects() |
25283b37 | 137 | { |
6fd5039f | 138 | AliAnalysisTaskEmcalJet::UserCreateOutputObjects(); |
df43b607 | 139 | |
f0a0fd33 | 140 | // Create histograms |
11d4d636 | 141 | |
6fd5039f | 142 | const Float_t binWidth = (fMaxBinPt - fMinBinPt) / fNbins; |
25283b37 | 143 | |
226f511d | 144 | OpenFile(1); |
25283b37 | 145 | fOutput = new TList(); |
226f511d | 146 | fOutput->SetOwner(); |
25283b37 | 147 | |
fb9ac42f | 148 | fHistCentrality = new TH1F("fHistCentrality","fHistCentrality", fNbins, 0, 100); |
f0a0fd33 | 149 | fHistCentrality->GetXaxis()->SetTitle("Centrality (%)"); |
150 | fHistCentrality->GetYaxis()->SetTitle("counts"); | |
151 | fOutput->Add(fHistCentrality); | |
25283b37 | 152 | |
6fd5039f | 153 | fHistRejectedEvents = new TH1F("fHistRejectedEvents","fHistRejectedEvents", 6, 0, 6); |
fb9ac42f | 154 | fHistRejectedEvents->GetXaxis()->SetTitle("Reason"); |
155 | fHistRejectedEvents->GetYaxis()->SetTitle("counts"); | |
156 | fHistRejectedEvents->GetXaxis()->SetBinLabel(1, "Rho <= 0"); | |
157 | fHistRejectedEvents->GetXaxis()->SetBinLabel(2, "Max Jet <= 0"); | |
158 | fHistRejectedEvents->GetXaxis()->SetBinLabel(3, "Max Jet not found"); | |
6fd5039f | 159 | fHistRejectedEvents->GetXaxis()->SetBinLabel(4, "No jets"); |
fb9ac42f | 160 | fOutput->Add(fHistRejectedEvents); |
161 | ||
6fd5039f | 162 | fHistRhoVSleadJetPt = new TH2F("fHistRhoVSleadJetPt","fHistRhoVSleadJetPt", fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 163 | fHistRhoVSleadJetPt->GetXaxis()->SetTitle("#rho * area [GeV/c]"); |
164 | fHistRhoVSleadJetPt->GetYaxis()->SetTitle("Leading jet p_{T} [GeV/c]"); | |
165 | fOutput->Add(fHistRhoVSleadJetPt); | |
b5ee47fb | 166 | |
6fd5039f | 167 | fHistRCPhiEta = new TH2F("fHistRCPhiEta","Phi-Eta distribution of rigid cones", 40, -2, 2, 64, 0, 6.4); |
b12a85c3 | 168 | fHistRCPhiEta->GetXaxis()->SetTitle("#eta"); |
169 | fHistRCPhiEta->GetYaxis()->SetTitle("#phi"); | |
170 | fOutput->Add(fHistRCPhiEta); | |
b5ee47fb | 171 | |
6fd5039f | 172 | fHistRCPtExLJVSDPhiLJ = new TH2F("fHistRCPtExLJVSDPhiLJ","fHistRCPtExLJVSDPhiLJ", fNbins, fMinBinPt, fMaxBinPt, 128, -1.6, 4.8); |
b12a85c3 | 173 | fHistRCPtExLJVSDPhiLJ->GetXaxis()->SetTitle("rigid cone p_{T} [GeV/c]"); |
b5ee47fb | 174 | fHistRCPtExLJVSDPhiLJ->GetYaxis()->SetTitle("#Delta#phi"); |
175 | fOutput->Add(fHistRCPtExLJVSDPhiLJ); | |
176 | ||
6fd5039f | 177 | fHistRhoVSRCPt = new TH2F("fHistRhoVSRCPt","fHistRhoVSRCPt", fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 178 | fHistRhoVSRCPt->GetXaxis()->SetTitle("#rho * area [GeV/c]"); |
179 | fHistRhoVSRCPt->GetYaxis()->SetTitle("rigid cone p_{T} [GeV/c]"); | |
180 | fOutput->Add(fHistRhoVSRCPt); | |
181 | ||
6fd5039f | 182 | fHistEmbJetPhiEta = new TH2F("fHistEmbJetPhiEta","Phi-Eta distribution of embedded jets", 40, -2, 2, 64, 0, 6.4); |
b12a85c3 | 183 | fHistEmbJetPhiEta->GetXaxis()->SetTitle("#eta"); |
184 | fHistEmbJetPhiEta->GetYaxis()->SetTitle("#phi"); | |
185 | fOutput->Add(fHistEmbJetPhiEta); | |
186 | ||
6fd5039f | 187 | fHistEmbPartPhiEta = new TH2F("fHistEmbPartPhiEta","Phi-Eta distribution of embedded particles", 40, -2, 2, 64, 0, 6.4); |
b12a85c3 | 188 | fHistEmbPartPhiEta->GetXaxis()->SetTitle("#eta"); |
189 | fHistEmbPartPhiEta->GetYaxis()->SetTitle("#phi"); | |
190 | fOutput->Add(fHistEmbPartPhiEta); | |
191 | ||
6fd5039f | 192 | fHistRhoVSEmbBkg = new TH2F("fHistRhoVSEmbBkg","fHistRhoVSEmbBkg", fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 193 | fHistRhoVSEmbBkg->GetXaxis()->SetTitle("rho * area [GeV/c]"); |
194 | fHistRhoVSEmbBkg->GetYaxis()->SetTitle("background of embedded track [GeV/c]"); | |
195 | fOutput->Add(fHistRhoVSEmbBkg); | |
b5ee47fb | 196 | |
f0a0fd33 | 197 | TString histname; |
198 | ||
199 | for (Int_t i = 0; i < 4; i++) { | |
df43b607 | 200 | histname = "fHistJetPhiEta_"; |
201 | histname += i; | |
6fd5039f | 202 | fHistJetPhiEta[i] = new TH2F(histname.Data(), histname.Data(), 40, -2, 2, 64, 0, 6.4); |
df43b607 | 203 | fHistJetPhiEta[i]->GetXaxis()->SetTitle("#eta"); |
204 | fHistJetPhiEta[i]->GetYaxis()->SetTitle("#phi"); | |
205 | fOutput->Add(fHistJetPhiEta[i]); | |
206 | ||
55264f20 | 207 | histname = "fHistJetsPt_"; |
f0a0fd33 | 208 | histname += i; |
6fd5039f | 209 | fHistJetsPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 210 | fHistJetsPt[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]"); |
55264f20 | 211 | fHistJetsPt[i]->GetYaxis()->SetTitle("counts"); |
212 | fOutput->Add(fHistJetsPt[i]); | |
226f511d | 213 | |
df43b607 | 214 | histname = "fHistJetsPtArea_"; |
215 | histname += i; | |
6fd5039f | 216 | fHistJetsPtArea[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, 20, 0, fJetRadius * fJetRadius * TMath::Pi() * 1.5); |
df43b607 | 217 | fHistJetsPtArea[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]"); |
218 | fHistJetsPtArea[i]->GetYaxis()->SetTitle("area"); | |
219 | fOutput->Add(fHistJetsPtArea[i]); | |
220 | ||
55264f20 | 221 | histname = "fHistLeadingJetPt_"; |
f0a0fd33 | 222 | histname += i; |
6fd5039f | 223 | fHistLeadingJetPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 224 | fHistLeadingJetPt[i]->GetXaxis()->SetTitle("p_{T} [GeV]"); |
55264f20 | 225 | fHistLeadingJetPt[i]->GetYaxis()->SetTitle("counts"); |
226 | fOutput->Add(fHistLeadingJetPt[i]); | |
b5ee47fb | 227 | |
228 | histname = "fHist2LeadingJetPt_"; | |
229 | histname += i; | |
6fd5039f | 230 | fHist2LeadingJetPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 231 | fHist2LeadingJetPt[i]->GetXaxis()->SetTitle("p_{T} [GeV]"); |
b5ee47fb | 232 | fHist2LeadingJetPt[i]->GetYaxis()->SetTitle("counts"); |
233 | fOutput->Add(fHist2LeadingJetPt[i]); | |
234 | ||
b12a85c3 | 235 | histname = "fHistJetsZvsPt_"; |
b5ee47fb | 236 | histname += i; |
6fd5039f | 237 | fHistJetsZvsPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, 0, 1.2, fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 238 | fHistJetsZvsPt[i]->GetXaxis()->SetTitle("Z"); |
239 | fHistJetsZvsPt[i]->GetYaxis()->SetTitle("p_{T} [GeV/c]"); | |
240 | fOutput->Add(fHistJetsZvsPt[i]); | |
241 | ||
242 | if (fAnaType == kEMCAL) { | |
243 | histname = "fHistJetsNEFvsPt_"; | |
244 | histname += i; | |
6fd5039f | 245 | fHistJetsNEFvsPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, 0, 1.2, fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 246 | fHistJetsNEFvsPt[i]->GetXaxis()->SetTitle("NEF"); |
247 | fHistJetsNEFvsPt[i]->GetYaxis()->SetTitle("p_{T} [GeV/c]"); | |
248 | fOutput->Add(fHistJetsNEFvsPt[i]); | |
b12a85c3 | 249 | } |
250 | ||
b12a85c3 | 251 | histname = "fHistRho_"; |
252 | histname += i; | |
6fd5039f | 253 | fHistRho[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt * 2); |
b12a85c3 | 254 | fHistRho[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]"); |
255 | fHistRho[i]->GetYaxis()->SetTitle("counts"); | |
256 | fOutput->Add(fHistRho[i]); | |
257 | ||
258 | histname = "fHistCorrJetsPt_"; | |
259 | histname += i; | |
6fd5039f | 260 | fHistCorrJetsPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2, -fMaxBinPt, fMaxBinPt); |
b12a85c3 | 261 | fHistCorrJetsPt[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]"); |
262 | fHistCorrJetsPt[i]->GetYaxis()->SetTitle("counts"); | |
263 | fOutput->Add(fHistCorrJetsPt[i]); | |
264 | ||
b12a85c3 | 265 | histname = "fHistCorrLeadingJetPt_"; |
266 | histname += i; | |
6fd5039f | 267 | fHistCorrLeadingJetPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins * 2, -fMaxBinPt, fMaxBinPt); |
b12a85c3 | 268 | fHistCorrLeadingJetPt[i]->GetXaxis()->SetTitle("p_{T} [GeV/c]"); |
269 | fHistCorrLeadingJetPt[i]->GetYaxis()->SetTitle("counts"); | |
270 | fOutput->Add(fHistCorrLeadingJetPt[i]); | |
271 | ||
272 | histname = "fHistRCPt_"; | |
c554a987 | 273 | histname += i; |
6fd5039f | 274 | fHistRCPt[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt * 2); |
b12a85c3 | 275 | fHistRCPt[i]->GetXaxis()->SetTitle("rigid cone p_{T} [GeV/c]"); |
276 | fHistRCPt[i]->GetYaxis()->SetTitle("counts"); | |
277 | fOutput->Add(fHistRCPt[i]); | |
c554a987 | 278 | |
b12a85c3 | 279 | histname = "fHistRCPtExLJ_"; |
c554a987 | 280 | histname += i; |
6fd5039f | 281 | fHistRCPtExLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt * 2); |
b12a85c3 | 282 | fHistRCPtExLJ[i]->GetXaxis()->SetTitle("rigid cone p_{T} [GeV/c]"); |
283 | fHistRCPtExLJ[i]->GetYaxis()->SetTitle("counts"); | |
284 | fOutput->Add(fHistRCPtExLJ[i]); | |
c554a987 | 285 | |
b12a85c3 | 286 | histname = "fHistRCPtRand_"; |
c554a987 | 287 | histname += i; |
6fd5039f | 288 | fHistRCPtRand[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt * 2); |
b12a85c3 | 289 | fHistRCPtRand[i]->GetXaxis()->SetTitle("rigid cone p_{T} [GeV/c]"); |
290 | fHistRCPtRand[i]->GetYaxis()->SetTitle("counts"); | |
291 | fOutput->Add(fHistRCPtRand[i]); | |
a55e4f1d | 292 | |
293 | histname = "fHistDeltaPtRC_"; | |
294 | histname += i; | |
6fd5039f | 295 | fHistDeltaPtRC[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt - fMaxBinPt / 2 + binWidth / 2, fMinBinPt + fMaxBinPt / 2 + binWidth / 2); |
b12a85c3 | 296 | fHistDeltaPtRC[i]->GetXaxis()->SetTitle("#deltap_{T} [GeV/c]"); |
a55e4f1d | 297 | fHistDeltaPtRC[i]->GetYaxis()->SetTitle("counts"); |
298 | fOutput->Add(fHistDeltaPtRC[i]); | |
299 | ||
300 | histname = "fHistDeltaPtRCExLJ_"; | |
301 | histname += i; | |
6fd5039f | 302 | fHistDeltaPtRCExLJ[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt - fMaxBinPt / 2 + binWidth / 2, fMinBinPt + fMaxBinPt / 2 + binWidth / 2); |
b12a85c3 | 303 | fHistDeltaPtRCExLJ[i]->GetXaxis()->SetTitle("#deltap_{T} [GeV/c]"); |
a55e4f1d | 304 | fHistDeltaPtRCExLJ[i]->GetYaxis()->SetTitle("counts"); |
305 | fOutput->Add(fHistDeltaPtRCExLJ[i]); | |
306 | ||
b12a85c3 | 307 | histname = "fHistDeltaPtRCRand_"; |
a55e4f1d | 308 | histname += i; |
6fd5039f | 309 | fHistDeltaPtRCRand[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt - fMaxBinPt / 2 + binWidth / 2, fMinBinPt + fMaxBinPt / 2 + binWidth / 2); |
b12a85c3 | 310 | fHistDeltaPtRCRand[i]->GetXaxis()->SetTitle("#deltap_{T} [GeV/c]"); |
311 | fHistDeltaPtRCRand[i]->GetYaxis()->SetTitle("counts"); | |
312 | fOutput->Add(fHistDeltaPtRCRand[i]); | |
2bee31e9 | 313 | |
314 | histname = "fHistEmbJets_"; | |
315 | histname += i; | |
6fd5039f | 316 | fHistEmbJets[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 317 | fHistEmbJets[i]->GetXaxis()->SetTitle("embedded jet p_{T} [GeV/c]"); |
2bee31e9 | 318 | fHistEmbJets[i]->GetYaxis()->SetTitle("counts"); |
319 | fOutput->Add(fHistEmbJets[i]); | |
320 | ||
321 | histname = "fHistEmbPart_"; | |
322 | histname += i; | |
6fd5039f | 323 | fHistEmbPart[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt); |
b12a85c3 | 324 | fHistEmbPart[i]->GetXaxis()->SetTitle("embedded particle p_{T} [GeV/c]"); |
2bee31e9 | 325 | fHistEmbPart[i]->GetYaxis()->SetTitle("counts"); |
326 | fOutput->Add(fHistEmbPart[i]); | |
327 | ||
b12a85c3 | 328 | histname = "fHistDeltaPtEmb_"; |
2bee31e9 | 329 | histname += i; |
6fd5039f | 330 | fHistDeltaPtEmb[i] = new TH1F(histname.Data(), histname.Data(), fNbins, fMinBinPt - fMaxBinPt / 2 + binWidth / 2, fMinBinPt + fMaxBinPt / 2 + binWidth / 2); |
b12a85c3 | 331 | fHistDeltaPtEmb[i]->GetXaxis()->SetTitle("#deltap_{T} [GeV/c]"); |
332 | fHistDeltaPtEmb[i]->GetYaxis()->SetTitle("counts"); | |
333 | fOutput->Add(fHistDeltaPtEmb[i]); | |
e82e282c | 334 | } |
335 | ||
25283b37 | 336 | PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram |
337 | } | |
338 | ||
55264f20 | 339 | //________________________________________________________________________ |
6fd5039f | 340 | Bool_t AliAnalysisTaskSAJF::RetrieveEventObjects() |
25283b37 | 341 | { |
6fd5039f | 342 | if(!AliAnalysisTaskEmcalJet::RetrieveEventObjects()) |
343 | return kFALSE; | |
344 | ||
345 | fRho = -1; | |
346 | ||
347 | if (strcmp(fRhoName,"")) { | |
348 | TParameter<Double_t> *rho = dynamic_cast<TParameter<Double_t>*>(InputEvent()->FindListObject(fRhoName)); | |
349 | ||
350 | if (rho) { | |
351 | fRho = rho->GetVal(); | |
352 | } | |
353 | else { | |
354 | AliWarning(Form("Could not retrieve rho %s!", fRhoName.Data())); | |
355 | } | |
356 | } | |
df43b607 | 357 | |
2bee31e9 | 358 | if (strcmp(fEmbJetsName,"")) { |
359 | fEmbJets = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fEmbJetsName)); | |
360 | if (!fEmbJets) { | |
b12a85c3 | 361 | AliWarning(Form("Could not retrieve emb jets %s!", fEmbJetsName.Data())); |
362 | } | |
363 | } | |
364 | ||
365 | if (strcmp(fRandCaloName,"") && fAnaType == kEMCAL) { | |
366 | fRandCaloClusters = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fRandCaloName)); | |
367 | if (!fRandCaloClusters) { | |
368 | AliWarning(Form("Could not retrieve randomized clusters %s!", fRandCaloName.Data())); | |
369 | } | |
370 | } | |
371 | ||
372 | if (strcmp(fRandTracksName,"")) { | |
373 | fRandTracks = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fRandTracksName)); | |
374 | if (!fRandTracks) { | |
375 | AliWarning(Form("Could not retrieve randomized tracks %s!", fRandTracksName.Data())); | |
2bee31e9 | 376 | } |
377 | } | |
f0a0fd33 | 378 | |
6fd5039f | 379 | return kTRUE; |
2bee31e9 | 380 | } |
381 | ||
55264f20 | 382 | //________________________________________________________________________ |
6fd5039f | 383 | Bool_t AliAnalysisTaskSAJF::FillHistograms() |
25283b37 | 384 | { |
df43b607 | 385 | if (fRho < 0) { |
6fd5039f | 386 | fHistRejectedEvents->Fill("Rho <= 0", 1); |
387 | return kFALSE; | |
df43b607 | 388 | } |
389 | ||
55264f20 | 390 | Int_t maxJetIndex = -1; |
391 | Int_t max2JetIndex = -1; | |
25283b37 | 392 | |
b12a85c3 | 393 | // ************ |
394 | // General histograms | |
395 | // _________________________________ | |
396 | ||
6fd5039f | 397 | GetLeadingJets(maxJetIndex, max2JetIndex); |
55264f20 | 398 | |
6fd5039f | 399 | if (fSkipEventsWithNoJets && maxJetIndex < 0) { |
400 | fHistRejectedEvents->Fill("No jets", 1); | |
401 | return kFALSE; | |
fb9ac42f | 402 | } |
c554a987 | 403 | |
df43b607 | 404 | AliEmcalJet* jet = dynamic_cast<AliEmcalJet*>(fJets->At(maxJetIndex)); |
6fd5039f | 405 | if (fSkipEventsWithNoJets && !jet) { |
406 | fHistRejectedEvents->Fill("Max Jet not found", 1); | |
407 | return kFALSE; | |
fb9ac42f | 408 | } |
c554a987 | 409 | |
6fd5039f | 410 | Float_t maxJetCorrPt = 0; |
411 | ||
412 | if (jet) | |
413 | maxJetCorrPt = jet->Pt() - fRho * jet->Area(); | |
11d4d636 | 414 | |
6fd5039f | 415 | if (fSkipEventsWithNoJets && maxJetCorrPt <= 0) { |
416 | fHistRejectedEvents->Fill("Max Jet <= 0", 1); | |
417 | return kFALSE; | |
418 | } | |
b12a85c3 | 419 | |
6fd5039f | 420 | fHistCentrality->Fill(fCent); |
421 | fHistRho[fCentBin]->Fill(fRho); | |
422 | ||
423 | if (jet) { | |
424 | fHistLeadingJetPt[fCentBin]->Fill(jet->Pt()); | |
425 | fHistRhoVSleadJetPt->Fill(fRho * jet->Area(), jet->Pt()); | |
426 | fHistCorrLeadingJetPt[fCentBin]->Fill(maxJetCorrPt); | |
427 | } | |
55264f20 | 428 | |
429 | AliEmcalJet* jet2 = 0; | |
430 | if (max2JetIndex >= 0) | |
df43b607 | 431 | jet2 = dynamic_cast<AliEmcalJet*>(fJets->At(max2JetIndex)); |
55264f20 | 432 | |
6fd5039f | 433 | if (jet2) |
b5ee47fb | 434 | fHist2LeadingJetPt[fCentBin]->Fill(jet2->Pt()); |
b5ee47fb | 435 | |
6fd5039f | 436 | DoJetLoop(); |
55264f20 | 437 | |
b12a85c3 | 438 | // ************ |
439 | // Random cones | |
440 | // _________________________________ | |
a55e4f1d | 441 | |
d41a0b1c | 442 | const Float_t rcArea = fJetRadius * fJetRadius * TMath::Pi(); |
443 | ||
b12a85c3 | 444 | // Simple random cones |
445 | Float_t RCpt = 0; | |
446 | Float_t RCeta = 0; | |
447 | Float_t RCphi = 0; | |
448 | GetRigidCone(RCpt, RCeta, RCphi, kFALSE, 0); | |
449 | if (RCpt > 0) { | |
d41a0b1c | 450 | fHistRCPt[fCentBin]->Fill(RCpt / rcArea); |
451 | fHistDeltaPtRC[fCentBin]->Fill(RCpt - rcArea * fRho); | |
b12a85c3 | 452 | } |
453 | ||
454 | // Random cones far from leading jet | |
455 | Float_t RCptExLJ = 0; | |
456 | Float_t RCetaExLJ = 0; | |
457 | Float_t RCphiExLJ = 0; | |
458 | GetRigidCone(RCptExLJ, RCetaExLJ, RCphiExLJ, kFALSE, jet); | |
459 | if (RCptExLJ > 0) { | |
460 | fHistRCPhiEta->Fill(RCetaExLJ, RCphiExLJ); | |
d41a0b1c | 461 | fHistRhoVSRCPt->Fill(fRho, RCptExLJ / rcArea); |
b5ee47fb | 462 | |
463 | Float_t dphi = RCphiExLJ - jet->Phi(); | |
464 | if (dphi > 4.8) dphi -= TMath::Pi() * 2; | |
465 | if (dphi < -1.6) dphi += TMath::Pi() * 2; | |
466 | fHistRCPtExLJVSDPhiLJ->Fill(RCptExLJ, dphi); | |
b12a85c3 | 467 | |
d41a0b1c | 468 | fHistRCPtExLJ[fCentBin]->Fill(RCptExLJ / rcArea); |
469 | fHistDeltaPtRCExLJ[fCentBin]->Fill(RCptExLJ - rcArea * fRho); | |
b12a85c3 | 470 | } |
471 | ||
472 | // Random cones with randomized particles | |
473 | Float_t RCptRand = 0; | |
474 | Float_t RCetaRand = 0; | |
475 | Float_t RCphiRand = 0; | |
476 | GetRigidCone(RCptRand, RCetaRand, RCphiRand, kTRUE, 0, fRandTracks, fRandCaloClusters); | |
477 | if (RCptRand > 0) { | |
d41a0b1c | 478 | fHistRCPtRand[fCentBin]->Fill(RCptRand / rcArea); |
479 | fHistDeltaPtRCRand[fCentBin]->Fill(RCptRand - rcArea * fRho); | |
a55e4f1d | 480 | } |
2bee31e9 | 481 | |
b12a85c3 | 482 | // ************ |
483 | // Embedding | |
484 | // _________________________________ | |
485 | ||
df43b607 | 486 | if (!fEmbJets) |
6fd5039f | 487 | return kTRUE; |
df43b607 | 488 | |
b12a85c3 | 489 | AliEmcalJet *embJet = 0; |
b5ee47fb | 490 | TObject *maxPart = 0; |
2bee31e9 | 491 | |
b12a85c3 | 492 | DoEmbJetLoop(embJet, maxPart); |
2bee31e9 | 493 | |
fb9ac42f | 494 | if (embJet) { |
495 | ||
496 | fHistEmbJets[fCentBin]->Fill(embJet->Pt()); | |
497 | fHistEmbPart[fCentBin]->Fill(embJet->MCPt()); | |
498 | fHistEmbJetPhiEta->Fill(embJet->Eta(), embJet->Phi()); | |
499 | fHistDeltaPtEmb[fCentBin]->Fill(embJet->Pt() - embJet->Area() * fRho - embJet->MCPt()); | |
500 | fHistRhoVSEmbBkg->Fill(embJet->Area() * fRho, embJet->Pt() - embJet->MCPt()); | |
b12a85c3 | 501 | |
502 | AliVCluster *cluster = dynamic_cast<AliVCluster*>(maxPart); | |
b5ee47fb | 503 | if (cluster) { |
b5ee47fb | 504 | Float_t pos[3]; |
505 | cluster->GetPosition(pos); | |
506 | TVector3 clusVec(pos); | |
507 | ||
fb9ac42f | 508 | fHistEmbPartPhiEta->Fill(clusVec.Eta(), clusVec.Phi()); |
b5ee47fb | 509 | } |
b5ee47fb | 510 | else { |
6fd5039f | 511 | AliVTrack *track = dynamic_cast<AliVTrack*>(maxPart); |
b12a85c3 | 512 | if (track) { |
fb9ac42f | 513 | fHistEmbPartPhiEta->Fill(track->Eta(), track->Phi()); |
b12a85c3 | 514 | } |
515 | else { | |
6fd5039f | 516 | AliWarning(Form("%s - Embedded particle type not found or not recognized (neither AliVCluster nor AliVTrack)!", GetName())); |
517 | return kTRUE; | |
b12a85c3 | 518 | } |
b5ee47fb | 519 | } |
b12a85c3 | 520 | |
2bee31e9 | 521 | } |
522 | else { | |
fb9ac42f | 523 | AliWarning(Form("%s - Embedded jet not found in the event!", GetName())); |
2bee31e9 | 524 | } |
6fd5039f | 525 | |
526 | return kTRUE; | |
55264f20 | 527 | } |
528 | ||
529 | //________________________________________________________________________ | |
6fd5039f | 530 | void AliAnalysisTaskSAJF::GetLeadingJets(Int_t &maxJetIndex, Int_t &max2JetIndex) |
55264f20 | 531 | { |
df43b607 | 532 | if (!fJets) |
533 | return; | |
534 | ||
535 | Int_t njets = fJets->GetEntriesFast(); | |
55264f20 | 536 | |
537 | Float_t maxJetPt = 0; | |
538 | Float_t max2JetPt = 0; | |
25283b37 | 539 | for (Int_t ij = 0; ij < njets; ij++) { |
f0a0fd33 | 540 | |
df43b607 | 541 | AliEmcalJet* jet = dynamic_cast<AliEmcalJet*>(fJets->At(ij)); |
f0a0fd33 | 542 | |
25283b37 | 543 | if (!jet) { |
a55e4f1d | 544 | AliError(Form("Could not receive jet %d", ij)); |
25283b37 | 545 | continue; |
546 | } | |
f0a0fd33 | 547 | |
91f4b7c5 | 548 | if (!AcceptJet(jet)) |
549 | continue; | |
550 | ||
226f511d | 551 | Float_t corrPt = jet->Pt() - fRho * jet->Area(); |
552 | ||
6fd5039f | 553 | if (maxJetIndex == -1 || maxJetPt < corrPt) { |
554 | max2JetPt = maxJetPt; | |
555 | max2JetIndex = maxJetIndex; | |
556 | maxJetPt = corrPt; | |
557 | maxJetIndex = ij; | |
b12a85c3 | 558 | } |
6fd5039f | 559 | else if (max2JetIndex == -1 || max2JetPt < corrPt) { |
560 | max2JetPt = corrPt; | |
561 | max2JetIndex = ij; | |
b12a85c3 | 562 | } |
6fd5039f | 563 | } //jet loop |
564 | } | |
565 | ||
566 | ||
567 | //________________________________________________________________________ | |
568 | void AliAnalysisTaskSAJF::DoJetLoop() | |
569 | { | |
570 | if (!fJets) | |
571 | return; | |
572 | ||
573 | Int_t njets = fJets->GetEntriesFast(); | |
574 | ||
575 | for (Int_t ij = 0; ij < njets; ij++) { | |
576 | ||
577 | AliEmcalJet* jet = dynamic_cast<AliEmcalJet*>(fJets->At(ij)); | |
578 | ||
579 | if (!jet) { | |
580 | AliError(Form("Could not receive jet %d", ij)); | |
581 | continue; | |
582 | } | |
583 | ||
584 | if (!AcceptJet(jet)) | |
585 | continue; | |
586 | ||
587 | Float_t corrPt = jet->Pt() - fRho * jet->Area(); | |
226f511d | 588 | |
11d4d636 | 589 | fHistJetsPt[fCentBin]->Fill(jet->Pt()); |
df43b607 | 590 | fHistJetsPtArea[fCentBin]->Fill(corrPt, jet->Area()); |
11d4d636 | 591 | fHistCorrJetsPt[fCentBin]->Fill(corrPt); |
f0a0fd33 | 592 | |
df43b607 | 593 | fHistJetPhiEta[fCentBin]->Fill(jet->Eta(), jet->Phi()); |
b12a85c3 | 594 | |
595 | if (fAnaType == kEMCAL) | |
596 | fHistJetsNEFvsPt[fCentBin]->Fill(jet->NEF(), jet->Pt()); | |
226f511d | 597 | |
6e8d91c9 | 598 | if (fTracks) { |
599 | for (Int_t it = 0; it < jet->GetNumberOfTracks(); it++) { | |
600 | AliVParticle *track = jet->TrackAt(it, fTracks); | |
601 | if (track) | |
602 | fHistJetsZvsPt[fCentBin]->Fill(track->Pt() / jet->Pt(), jet->Pt()); | |
603 | } | |
35789a2d | 604 | } |
a55e4f1d | 605 | |
6e8d91c9 | 606 | if (fCaloClusters) { |
607 | for (Int_t ic = 0; ic < jet->GetNumberOfClusters(); ic++) { | |
608 | AliVCluster *cluster = jet->ClusterAt(ic, fCaloClusters); | |
609 | ||
610 | if (cluster) { | |
611 | TLorentzVector nPart; | |
612 | cluster->GetMomentum(nPart, fVertex); | |
df43b607 | 613 | fHistJetsZvsPt[fCentBin]->Fill(nPart.Et() / jet->Pt(), jet->Pt()); |
6e8d91c9 | 614 | } |
55264f20 | 615 | } |
f0a0fd33 | 616 | } |
25283b37 | 617 | } //jet loop |
55264f20 | 618 | } |
e82e282c | 619 | |
55264f20 | 620 | //________________________________________________________________________ |
b12a85c3 | 621 | void AliAnalysisTaskSAJF::DoEmbJetLoop(AliEmcalJet* &embJet, TObject* &maxPart) |
55264f20 | 622 | { |
df43b607 | 623 | if (!fEmbJets) |
624 | return; | |
625 | ||
fb9ac42f | 626 | TLorentzVector maxClusVect; |
2bee31e9 | 627 | |
df43b607 | 628 | Int_t nembjets = fEmbJets->GetEntriesFast(); |
2bee31e9 | 629 | |
2bee31e9 | 630 | for (Int_t ij = 0; ij < nembjets; ij++) { |
631 | ||
df43b607 | 632 | AliEmcalJet* jet = dynamic_cast<AliEmcalJet*>(fEmbJets->At(ij)); |
2bee31e9 | 633 | |
634 | if (!jet) { | |
635 | AliError(Form("Could not receive jet %d", ij)); | |
636 | continue; | |
637 | } | |
638 | ||
df43b607 | 639 | if (!AcceptJet(jet)) |
640 | continue; | |
2bee31e9 | 641 | |
fb9ac42f | 642 | if (!jet->IsMC()) |
643 | continue; | |
644 | ||
df43b607 | 645 | AliVParticle *maxTrack = 0; |
2bee31e9 | 646 | |
b12a85c3 | 647 | for (Int_t it = 0; it < jet->GetNumberOfTracks(); it++) { |
df43b607 | 648 | AliVParticle *track = jet->TrackAt(it, fTracks); |
b12a85c3 | 649 | |
fb9ac42f | 650 | if (!track) |
651 | continue; | |
652 | ||
1f6fff78 | 653 | if (track->GetLabel() != 100) |
fb9ac42f | 654 | continue; |
b12a85c3 | 655 | |
656 | if (!maxTrack || track->Pt() > maxTrack->Pt()) | |
657 | maxTrack = track; | |
2bee31e9 | 658 | } |
2bee31e9 | 659 | |
b12a85c3 | 660 | AliVCluster *maxClus = 0; |
2bee31e9 | 661 | |
b12a85c3 | 662 | for (Int_t ic = 0; ic < jet->GetNumberOfClusters(); ic++) { |
663 | AliVCluster *cluster = jet->ClusterAt(ic, fCaloClusters); | |
664 | ||
fb9ac42f | 665 | if (!cluster) |
666 | continue; | |
667 | ||
668 | if (cluster->Chi2() != 100) | |
669 | continue; | |
b12a85c3 | 670 | |
671 | TLorentzVector nPart; | |
672 | cluster->GetMomentum(nPart, fVertex); | |
673 | ||
fb9ac42f | 674 | if (!maxClus || nPart.Et() > maxClusVect.Et()) { |
675 | new (&maxClusVect) TLorentzVector(nPart); | |
b12a85c3 | 676 | maxClus = cluster; |
677 | } | |
678 | } | |
2bee31e9 | 679 | |
fb9ac42f | 680 | if ((maxClus && maxTrack && maxClusVect.Et() > maxTrack->Pt()) || (maxClus && !maxTrack)) { |
681 | maxPart = maxClus; | |
682 | embJet = jet; | |
b12a85c3 | 683 | } |
684 | else if (maxTrack) { | |
fb9ac42f | 685 | maxPart = maxTrack; |
686 | embJet = jet; | |
b12a85c3 | 687 | } |
b12a85c3 | 688 | |
fb9ac42f | 689 | return; // MC jets found, exit |
690 | } | |
2bee31e9 | 691 | } |
692 | ||
a55e4f1d | 693 | //________________________________________________________________________ |
b12a85c3 | 694 | void AliAnalysisTaskSAJF::GetRigidCone(Float_t &pt, Float_t &eta, Float_t &phi, Bool_t acceptMC, |
695 | AliEmcalJet *jet, TClonesArray* tracks, TClonesArray* clusters) const | |
a55e4f1d | 696 | { |
b12a85c3 | 697 | if (!tracks) |
698 | tracks = fTracks; | |
a55e4f1d | 699 | |
b12a85c3 | 700 | if (!clusters) |
701 | clusters = fCaloClusters; | |
a55e4f1d | 702 | |
df43b607 | 703 | if (!tracks && !clusters) |
704 | return; | |
705 | ||
b5ee47fb | 706 | eta = 0; |
707 | phi = 0; | |
b12a85c3 | 708 | pt = 0; |
a55e4f1d | 709 | |
710 | Float_t LJeta = 999; | |
711 | Float_t LJphi = 999; | |
712 | ||
713 | if (jet) { | |
714 | LJeta = jet->Eta(); | |
715 | LJphi = jet->Phi(); | |
716 | } | |
717 | ||
1f6fff78 | 718 | Float_t maxEta = fMaxEta; |
719 | Float_t minEta = fMinEta; | |
720 | Float_t maxPhi = fMaxPhi; | |
721 | Float_t minPhi = fMinPhi; | |
b5ee47fb | 722 | |
723 | if (maxPhi > TMath::Pi() * 2) maxPhi = TMath::Pi() * 2; | |
724 | if (minPhi < 0) minPhi = 0; | |
725 | ||
a55e4f1d | 726 | Float_t dLJ = 0; |
b12a85c3 | 727 | Int_t repeats = 0; |
a55e4f1d | 728 | do { |
b12a85c3 | 729 | eta = gRandom->Rndm() * (maxEta - minEta) + minEta; |
730 | phi = gRandom->Rndm() * (maxPhi - minPhi) + minPhi; | |
a55e4f1d | 731 | dLJ = TMath::Sqrt((LJeta - eta) * (LJeta - eta) + (LJphi - phi) * (LJphi - phi)); |
b12a85c3 | 732 | repeats++; |
733 | } while (dLJ < fMinRC2LJ && repeats < 999); | |
734 | ||
735 | if (repeats == 999) | |
736 | return; | |
b5ee47fb | 737 | |
df43b607 | 738 | if (fAnaType == kEMCAL && clusters) { |
b12a85c3 | 739 | Int_t nclusters = clusters->GetEntriesFast(); |
b5ee47fb | 740 | for (Int_t iClusters = 0; iClusters < nclusters; iClusters++) { |
b12a85c3 | 741 | AliVCluster* cluster = dynamic_cast<AliVCluster*>(clusters->At(iClusters)); |
b5ee47fb | 742 | if (!cluster) { |
743 | AliError(Form("Could not receive cluster %d", iClusters)); | |
744 | continue; | |
745 | } | |
746 | ||
747 | if (!(cluster->IsEMCAL())) continue; | |
748 | ||
b12a85c3 | 749 | if (!AcceptCluster(cluster, acceptMC)) continue; |
b5ee47fb | 750 | |
751 | TLorentzVector nPart; | |
b12a85c3 | 752 | cluster->GetMomentum(nPart, const_cast<Double_t*>(fVertex)); |
b5ee47fb | 753 | |
754 | Float_t pos[3]; | |
755 | cluster->GetPosition(pos); | |
756 | TVector3 clusVec(pos); | |
757 | ||
758 | Float_t d = TMath::Sqrt((clusVec.Eta() - eta) * (clusVec.Eta() - eta) + (clusVec.Phi() - phi) * (clusVec.Phi() - phi)); | |
759 | ||
760 | if (d <= fJetRadius) | |
761 | pt += nPart.Pt(); | |
762 | } | |
a55e4f1d | 763 | } |
764 | ||
df43b607 | 765 | if (tracks) { |
766 | Int_t ntracks = tracks->GetEntriesFast(); | |
767 | for(Int_t iTracks = 0; iTracks < ntracks; iTracks++) { | |
6fd5039f | 768 | AliVTrack* track = dynamic_cast<AliVTrack*>(tracks->At(iTracks)); |
df43b607 | 769 | if(!track) { |
770 | AliError(Form("Could not retrieve track %d",iTracks)); | |
771 | continue; | |
772 | } | |
773 | ||
774 | if (!AcceptTrack(track, acceptMC)) continue; | |
775 | ||
776 | Float_t tracketa = track->Eta(); | |
777 | Float_t trackphi = track->Phi(); | |
778 | ||
779 | if (TMath::Abs(trackphi - phi) > TMath::Abs(trackphi - phi + 2 * TMath::Pi())) | |
780 | trackphi += 2 * TMath::Pi(); | |
781 | if (TMath::Abs(trackphi - phi) > TMath::Abs(trackphi - phi - 2 * TMath::Pi())) | |
782 | trackphi -= 2 * TMath::Pi(); | |
783 | ||
784 | Float_t d = TMath::Sqrt((tracketa - eta) * (tracketa - eta) + (trackphi - phi) * (trackphi - phi)); | |
a55e4f1d | 785 | |
df43b607 | 786 | if (d <= fJetRadius) |
787 | pt += track->Pt(); | |
788 | } | |
25283b37 | 789 | } |
f0a0fd33 | 790 | } |
a55e4f1d | 791 | //________________________________________________________________________ |
df43b607 | 792 | void AliAnalysisTaskSAJF::Init() |
25283b37 | 793 | { |
6fd5039f | 794 | AliAnalysisTaskEmcalJet::Init(); |
25283b37 | 795 | |
df43b607 | 796 | const Float_t semiDiag = TMath::Sqrt((fMaxPhi - fMinPhi) * (fMaxPhi - fMinPhi) + (fMaxEta - fMinEta) * (fMaxEta - fMinEta)) / 2; |
797 | if (fMinRC2LJ > semiDiag * 0.5) { | |
798 | AliWarning(Form("The parameter fMinRC2LJ = %f is too large for the considered acceptance. Will use fMinRC2LJ = %f", fMinRC2LJ, semiDiag * 0.5)); | |
799 | fMinRC2LJ = semiDiag * 0.5; | |
b12a85c3 | 800 | } |
25283b37 | 801 | } |
802 | ||
803 | //________________________________________________________________________ | |
00514d01 | 804 | void AliAnalysisTaskSAJF::Terminate(Option_t *) |
25283b37 | 805 | { |
806 | // Called once at the end of the analysis. | |
807 | } |