]>
Commit | Line | Data |
---|---|---|
ac6a3f1e | 1 | #include "AliAnalysisTaskFullpAJets.h" |
2 | ||
3 | #include <Riostream.h> | |
4 | #include <ctime> | |
5 | #include <TString.h> | |
6 | #include <TChain.h> | |
7 | #include <TTree.h> | |
1cd88f63 ML |
8 | #include <TH1F.h> |
9 | #include <TH2F.h> | |
10 | #include <TH3F.h> | |
2d2100d5 | 11 | #include <THnSparse.h> |
ac6a3f1e | 12 | #include <TCanvas.h> |
13 | #include <TList.h> | |
14 | #include <TLorentzVector.h> | |
15 | #include <TProfile.h> | |
16 | #include <TProfile2D.h> | |
17 | #include <TProfile3D.h> | |
18 | #include <TRandom.h> | |
19 | #include <TRandom3.h> | |
c6202663 | 20 | #include <TClonesArray.h> |
21 | #include <TObjArray.h> | |
ac6a3f1e | 22 | |
6bda5230 CY |
23 | #include "AliAnalysisTaskEmcal.h" |
24 | #include "AliAnalysisTaskEmcalJet.h" | |
ac6a3f1e | 25 | #include "AliAnalysisManager.h" |
26 | #include "AliStack.h" | |
27 | #include "AliESDtrackCuts.h" | |
28 | #include "AliESDEvent.h" | |
29 | #include "AliESDInputHandler.h" | |
30 | #include "AliAODEvent.h" | |
08b981da | 31 | #include "AliVEvent.h" |
ac6a3f1e | 32 | #include "AliMCEvent.h" |
c6202663 | 33 | #include "AliVTrack.h" |
34 | #include "AliVCluster.h" | |
ac6a3f1e | 35 | #include "AliEmcalJet.h" |
36 | #include "AliEMCALGeometry.h" | |
08b981da | 37 | #include "AliEMCALRecoUtils.h" |
38 | #include "AliVCaloCells.h" | |
24a61909 | 39 | #include "AliPicoTrack.h" |
6bda5230 CY |
40 | #include "AliAnalysisTaskEmcal.h" |
41 | #include "AliAnalysisTaskEmcalJet.h" | |
c6202663 | 42 | #include "Rtypes.h" |
ac6a3f1e | 43 | |
44 | ClassImp(AliAnalysisTaskFullpAJets) | |
45 | ||
46 | //________________________________________________________________________ | |
47 | AliAnalysisTaskFullpAJets::AliAnalysisTaskFullpAJets() : | |
6bda5230 | 48 | AliAnalysisTaskEmcalJet(), |
ac6a3f1e | 49 | |
50 | fOutput(0), | |
62620fff | 51 | flTrack(0), |
52 | flCluster(0), | |
ac6a3f1e | 53 | fhTrackPt(0), |
54 | fhTrackEta(0), | |
55 | fhTrackPhi(0), | |
24a61909 | 56 | fhGlobalTrackPt(0), |
57 | fhGlobalTrackEta(0), | |
58 | fhGlobalTrackPhi(0), | |
59 | fhComplementaryTrackPt(0), | |
60 | fhComplementaryTrackEta(0), | |
61 | fhComplementaryTrackPhi(0), | |
ac6a3f1e | 62 | fhClusterPt(0), |
63 | fhClusterEta(0), | |
64 | fhClusterPhi(0), | |
c54b626a | 65 | fhCentrality(0), |
ac6a3f1e | 66 | fhEMCalCellCounts(0), |
78246241 | 67 | |
6bda5230 CY |
68 | fhChargeAndNeutralEvents(0), |
69 | fhChargeOnlyEvents(0), | |
70 | fhNeutralOnlyEvents(0), | |
71 | fhNothingEvents(0), | |
72 | fhEMCalChargeAndNeutralEvents(0), | |
73 | fhEMCalChargeOnlyEvents(0), | |
74 | fhEMCalNeutralOnlyEvents(0), | |
75 | fhEMCalNothingEvents(0), | |
76 | ||
ac6a3f1e | 77 | fhTrackEtaPhi(0), |
24a61909 | 78 | fhTrackPhiPt(0), |
79 | fhTrackEtaPt(0), | |
80 | fhGlobalTrackEtaPhi(0), | |
81 | fhGlobalTrackPhiPt(0), | |
82 | fhGlobalTrackEtaPt(0), | |
83 | fhComplementaryTrackEtaPhi(0), | |
84 | fhComplementaryTrackPhiPt(0), | |
85 | fhComplementaryTrackEtaPt(0), | |
ac6a3f1e | 86 | fhClusterEtaPhi(0), |
24a61909 | 87 | fhClusterPhiPt(0), |
88 | fhClusterEtaPt(0), | |
3e43a01f | 89 | fhEMCalEventMult(0), |
90 | fhTPCEventMult(0), | |
91 | fhEMCalTrackEventMult(0), | |
c6202663 | 92 | |
93 | fpEMCalEventMult(0), | |
94 | fpTPCEventMult(0), | |
78246241 | 95 | |
ac6a3f1e | 96 | fpTrackPtProfile(0), |
c54b626a | 97 | fpClusterPtProfile(0), |
98 | ||
6bda5230 CY |
99 | fpFullJetEDProfile(0), |
100 | fpChargedJetEDProfile(0), | |
101 | fpChargedJetEDProfileScaled(0), | |
102 | ||
3e43a01f | 103 | fTPCRawJets(0), |
104 | fEMCalRawJets(0), | |
c6202663 | 105 | fRhoChargedCMSScale(0), |
62620fff | 106 | fRhoChargedScale(0), |
107 | fRhoFull0(0), | |
108 | fRhoFull1(0), | |
109 | fRhoFull2(0), | |
110 | fRhoFullN(0), | |
111 | fRhoFullDijet(0), | |
112 | fRhoFullkT(0), | |
113 | fRhoFullCMS(0), | |
114 | fRhoCharged0(0), | |
115 | fRhoCharged1(0), | |
116 | fRhoCharged2(0), | |
117 | fRhoChargedN(0), | |
118 | fRhoChargedkT(0), | |
119 | fRhoChargedkTScale(0), | |
120 | fRhoChargedCMS(0), | |
c6202663 | 121 | |
122 | fTPCJet(0), | |
123 | fTPCFullJet(0), | |
124 | fTPCOnlyJet(0), | |
8daeee93 | 125 | fTPCJetUnbiased(0), |
c6202663 | 126 | fTPCkTFullJet(0), |
127 | fEMCalJet(0), | |
128 | fEMCalFullJet(0), | |
129 | fEMCalPartJet(0), | |
8daeee93 | 130 | fEMCalPartJetUnbiased(0), |
c6202663 | 131 | fEMCalkTFullJet(0), |
132 | ||
c54b626a | 133 | fIsInitialized(0), |
c6202663 | 134 | fRJET(4), |
c54b626a | 135 | fnEvents(0), |
136 | fnEventsCharged(0), | |
137 | fnDiJetEvents(0), | |
08b981da | 138 | fEvent(0), |
139 | fRecoUtil(0), | |
140 | fEMCALGeometry(0), | |
141 | fCells(0), | |
87a5edfe | 142 | fDoNEF(0), |
d2af75be | 143 | fDoNEFSignalOnly(0), |
3e43a01f | 144 | fSignalTrackBias(0), |
62620fff | 145 | fTrackQA(0), |
146 | fClusterQA(0), | |
147 | fCalculateRhoJet(0), | |
6bda5230 CY |
148 | fDoVertexRCut(0), |
149 | fMCPartLevel(0), | |
c6202663 | 150 | fEMCalPhiMin(1.39626), |
151 | fEMCalPhiMax(3.26377), | |
152 | fEMCalPhiTotal(1.86750), | |
153 | fEMCalEtaMin(-0.7), | |
154 | fEMCalEtaMax(0.7), | |
155 | fEMCalEtaTotal(1.4), | |
156 | fEMCalArea(2.61450), | |
c54b626a | 157 | fTPCPhiMin(0), |
c6202663 | 158 | fTPCPhiMax(6.28319), |
159 | fTPCPhiTotal(6.28319), | |
160 | fTPCEtaMin(-0.9), | |
161 | fTPCEtaMax(0.9), | |
162 | fTPCEtaTotal(1.8), | |
163 | fTPCArea(11.30973), | |
24a61909 | 164 | fParticlePtLow(0.0), |
165 | fParticlePtUp(200.0), | |
20f2d13a | 166 | fParticlePtBins(200), |
c6202663 | 167 | fJetR(0.4), |
6bda5230 CY |
168 | fFullEDJetR(0.6), |
169 | fChargedEDJetR(0.8), | |
c6202663 | 170 | fJetRForRho(0.5), |
171 | fJetAreaCutFrac(0.6), | |
172 | fJetAreaThreshold(0.30159), | |
173 | fnEMCalCells(12288), | |
6bda5230 | 174 | fScaleFactor(1.28), |
7acc3e04 | 175 | fNColl(7), |
c6202663 | 176 | fTrackMinPt(0.15), |
177 | fClusterMinPt(0.3), | |
91d0893e | 178 | fNEFSignalJetCut(0.9), |
3aae667c | 179 | fCentralityTag("V0A"), |
c6202663 | 180 | fCentralityBins(10), |
c54b626a | 181 | fCentralityLow(0), |
c6202663 | 182 | fCentralityUp(100), |
c54b626a | 183 | fEventCentrality(0), |
c6202663 | 184 | fRhoFull(0), |
c54b626a | 185 | fRhoCharged(0), |
c54b626a | 186 | fnTracks(0), |
6bda5230 | 187 | fnEMCalTracks(0), |
c54b626a | 188 | fnClusters(0), |
08b981da | 189 | fnCaloClusters(0), |
c54b626a | 190 | fnAKTFullJets(0), |
191 | fnAKTChargedJets(0), | |
192 | fnKTFullJets(0), | |
78246241 | 193 | fnKTChargedJets(0), |
c54b626a | 194 | fnBckgClusters(0), |
c6202663 | 195 | fTPCJetThreshold(5), |
196 | fEMCalJetThreshold(5), | |
197 | fVertexWindow(10), | |
198 | fVertexMaxR(1), | |
d812e269 | 199 | fTrackName(0), |
200 | fClusName(0), | |
201 | fkTChargedName(0), | |
202 | fAkTChargedName(0), | |
203 | fkTFullName(0), | |
204 | fAkTFullName(0), | |
c6202663 | 205 | fOrgTracks(0), |
206 | fOrgClusters(0), | |
c54b626a | 207 | fmyAKTFullJets(0), |
208 | fmyAKTChargedJets(0), | |
209 | fmyKTFullJets(0), | |
78246241 | 210 | fmyKTChargedJets(0), |
c6202663 | 211 | fmyTracks(0), |
212 | fmyClusters(0), | |
213 | fEMCalRCBckgFluc(0), | |
214 | fTPCRCBckgFluc(0), | |
215 | fEMCalRCBckgFlucSignal(0), | |
7acc3e04 | 216 | fTPCRCBckgFlucSignal(0), |
217 | fEMCalRCBckgFlucNColl(0), | |
218 | fTPCRCBckgFlucNColl(0) | |
ac6a3f1e | 219 | { |
220 | // Dummy constructor ALWAYS needed for I/O. | |
8daeee93 | 221 | fVertex[0]=0.0,fVertex[1]=0.0,fVertex[2]=0.0; |
ac6a3f1e | 222 | } |
223 | ||
224 | //________________________________________________________________________ | |
225 | AliAnalysisTaskFullpAJets::AliAnalysisTaskFullpAJets(const char *name) : | |
6bda5230 | 226 | AliAnalysisTaskEmcalJet(name), |
ac6a3f1e | 227 | |
228 | fOutput(0), | |
62620fff | 229 | flTrack(0), |
230 | flCluster(0), | |
ac6a3f1e | 231 | fhTrackPt(0), |
232 | fhTrackEta(0), | |
233 | fhTrackPhi(0), | |
24a61909 | 234 | fhGlobalTrackPt(0), |
235 | fhGlobalTrackEta(0), | |
236 | fhGlobalTrackPhi(0), | |
237 | fhComplementaryTrackPt(0), | |
238 | fhComplementaryTrackEta(0), | |
239 | fhComplementaryTrackPhi(0), | |
ac6a3f1e | 240 | fhClusterPt(0), |
241 | fhClusterEta(0), | |
242 | fhClusterPhi(0), | |
c54b626a | 243 | fhCentrality(0), |
ac6a3f1e | 244 | fhEMCalCellCounts(0), |
78246241 | 245 | |
6bda5230 CY |
246 | fhChargeAndNeutralEvents(0), |
247 | fhChargeOnlyEvents(0), | |
248 | fhNeutralOnlyEvents(0), | |
249 | fhNothingEvents(0), | |
250 | fhEMCalChargeAndNeutralEvents(0), | |
251 | fhEMCalChargeOnlyEvents(0), | |
252 | fhEMCalNeutralOnlyEvents(0), | |
253 | fhEMCalNothingEvents(0), | |
254 | ||
ac6a3f1e | 255 | fhTrackEtaPhi(0), |
24a61909 | 256 | fhTrackPhiPt(0), |
257 | fhTrackEtaPt(0), | |
258 | fhGlobalTrackEtaPhi(0), | |
259 | fhGlobalTrackPhiPt(0), | |
260 | fhGlobalTrackEtaPt(0), | |
261 | fhComplementaryTrackEtaPhi(0), | |
262 | fhComplementaryTrackPhiPt(0), | |
263 | fhComplementaryTrackEtaPt(0), | |
ac6a3f1e | 264 | fhClusterEtaPhi(0), |
24a61909 | 265 | fhClusterPhiPt(0), |
266 | fhClusterEtaPt(0), | |
3e43a01f | 267 | fhEMCalEventMult(0), |
268 | fhTPCEventMult(0), | |
269 | fhEMCalTrackEventMult(0), | |
c6202663 | 270 | |
271 | fpEMCalEventMult(0), | |
272 | fpTPCEventMult(0), | |
78246241 | 273 | |
ac6a3f1e | 274 | fpTrackPtProfile(0), |
c54b626a | 275 | fpClusterPtProfile(0), |
276 | ||
6bda5230 CY |
277 | fpFullJetEDProfile(0), |
278 | fpChargedJetEDProfile(0), | |
279 | fpChargedJetEDProfileScaled(0), | |
280 | ||
c6202663 | 281 | fTPCRawJets(0), |
282 | fEMCalRawJets(0), | |
c6202663 | 283 | fRhoChargedCMSScale(0), |
62620fff | 284 | fRhoChargedScale(0), |
285 | fRhoFull0(0), | |
286 | fRhoFull1(0), | |
287 | fRhoFull2(0), | |
288 | fRhoFullN(0), | |
289 | fRhoFullDijet(0), | |
290 | fRhoFullkT(0), | |
291 | fRhoFullCMS(0), | |
292 | fRhoCharged0(0), | |
293 | fRhoCharged1(0), | |
294 | fRhoCharged2(0), | |
295 | fRhoChargedN(0), | |
296 | fRhoChargedkT(0), | |
297 | fRhoChargedkTScale(0), | |
298 | fRhoChargedCMS(0), | |
c6202663 | 299 | |
300 | fTPCJet(0), | |
301 | fTPCFullJet(0), | |
302 | fTPCOnlyJet(0), | |
8daeee93 | 303 | fTPCJetUnbiased(0), |
c6202663 | 304 | fTPCkTFullJet(0), |
305 | fEMCalJet(0), | |
306 | fEMCalFullJet(0), | |
307 | fEMCalPartJet(0), | |
8daeee93 | 308 | fEMCalPartJetUnbiased(0), |
c6202663 | 309 | fEMCalkTFullJet(0), |
310 | ||
c54b626a | 311 | fIsInitialized(0), |
c6202663 | 312 | fRJET(4), |
c54b626a | 313 | fnEvents(0), |
314 | fnEventsCharged(0), | |
315 | fnDiJetEvents(0), | |
08b981da | 316 | fEvent(0), |
317 | fRecoUtil(0), | |
318 | fEMCALGeometry(0), | |
319 | fCells(0), | |
87a5edfe | 320 | fDoNEF(0), |
d2af75be | 321 | fDoNEFSignalOnly(0), |
3e43a01f | 322 | fSignalTrackBias(0), |
62620fff | 323 | fTrackQA(0), |
324 | fClusterQA(0), | |
325 | fCalculateRhoJet(0), | |
6bda5230 CY |
326 | fDoVertexRCut(0), |
327 | fMCPartLevel(0), | |
c6202663 | 328 | fEMCalPhiMin(1.39626), |
329 | fEMCalPhiMax(3.26377), | |
330 | fEMCalPhiTotal(1.86750), | |
331 | fEMCalEtaMin(-0.7), | |
332 | fEMCalEtaMax(0.7), | |
333 | fEMCalEtaTotal(1.4), | |
334 | fEMCalArea(2.61450), | |
c54b626a | 335 | fTPCPhiMin(0), |
c6202663 | 336 | fTPCPhiMax(6.28319), |
337 | fTPCPhiTotal(6.28319), | |
338 | fTPCEtaMin(-0.9), | |
339 | fTPCEtaMax(0.9), | |
340 | fTPCEtaTotal(1.8), | |
341 | fTPCArea(11.30973), | |
24a61909 | 342 | fParticlePtLow(0.0), |
343 | fParticlePtUp(200.0), | |
344 | fParticlePtBins(2000), | |
c6202663 | 345 | fJetR(0.4), |
6bda5230 CY |
346 | fFullEDJetR(0.6), |
347 | fChargedEDJetR(0.8), | |
c6202663 | 348 | fJetRForRho(0.5), |
349 | fJetAreaCutFrac(0.6), | |
350 | fJetAreaThreshold(0.30159), | |
351 | fnEMCalCells(12288), | |
6bda5230 | 352 | fScaleFactor(1.28), |
7acc3e04 | 353 | fNColl(7), |
c6202663 | 354 | fTrackMinPt(0.15), |
355 | fClusterMinPt(0.3), | |
91d0893e | 356 | fNEFSignalJetCut(0.9), |
3aae667c | 357 | fCentralityTag("V0A"), |
c6202663 | 358 | fCentralityBins(10), |
c54b626a | 359 | fCentralityLow(0), |
c6202663 | 360 | fCentralityUp(100), |
c54b626a | 361 | fEventCentrality(0), |
c6202663 | 362 | fRhoFull(0), |
c54b626a | 363 | fRhoCharged(0), |
c54b626a | 364 | fnTracks(0), |
6bda5230 | 365 | fnEMCalTracks(0), |
c54b626a | 366 | fnClusters(0), |
08b981da | 367 | fnCaloClusters(0), |
c54b626a | 368 | fnAKTFullJets(0), |
369 | fnAKTChargedJets(0), | |
370 | fnKTFullJets(0), | |
78246241 | 371 | fnKTChargedJets(0), |
c54b626a | 372 | fnBckgClusters(0), |
c6202663 | 373 | fTPCJetThreshold(5), |
374 | fEMCalJetThreshold(5), | |
375 | fVertexWindow(10), | |
376 | fVertexMaxR(1), | |
d812e269 | 377 | fTrackName(0), |
378 | fClusName(0), | |
379 | fkTChargedName(0), | |
380 | fAkTChargedName(0), | |
381 | fkTFullName(0), | |
382 | fAkTFullName(0), | |
c6202663 | 383 | fOrgTracks(0), |
384 | fOrgClusters(0), | |
c54b626a | 385 | fmyAKTFullJets(0), |
386 | fmyAKTChargedJets(0), | |
387 | fmyKTFullJets(0), | |
78246241 | 388 | fmyKTChargedJets(0), |
c6202663 | 389 | fmyTracks(0), |
390 | fmyClusters(0), | |
391 | fEMCalRCBckgFluc(0), | |
392 | fTPCRCBckgFluc(0), | |
393 | fEMCalRCBckgFlucSignal(0), | |
7acc3e04 | 394 | fTPCRCBckgFlucSignal(0), |
395 | fEMCalRCBckgFlucNColl(0), | |
396 | fTPCRCBckgFlucNColl(0) | |
ac6a3f1e | 397 | { |
398 | // Constructor | |
399 | // Define input and output slots here (never in the dummy constructor) | |
400 | // Input slot #0 works with a TChain - it is connected to the default input container | |
401 | // Output slot #1 writes into a TH1 container | |
8daeee93 | 402 | fVertex[0]=0.0,fVertex[1]=0.0,fVertex[2]=0.0; |
ac6a3f1e | 403 | |
c54b626a | 404 | DefineOutput(1,TList::Class()); // for output list |
ac6a3f1e | 405 | } |
406 | ||
407 | //________________________________________________________________________ | |
408 | AliAnalysisTaskFullpAJets::~AliAnalysisTaskFullpAJets() | |
409 | { | |
410 | // Destructor. Clean-up the output list, but not the histograms that are put inside | |
411 | // (the list is owner and will clean-up these histograms). Protect in PROOF case. | |
412 | if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) | |
413 | { | |
414 | delete fOutput; | |
415 | } | |
ac6a3f1e | 416 | } |
417 | ||
418 | //________________________________________________________________________ | |
419 | void AliAnalysisTaskFullpAJets::UserCreateOutputObjects() | |
420 | { | |
421 | // Create histograms | |
422 | // Called once (on the worker node) | |
423 | fIsInitialized=kFALSE; | |
424 | fOutput = new TList(); | |
425 | fOutput->SetOwner(); // IMPORTANT! | |
426 | ||
ac6a3f1e | 427 | // Initialize Global Variables |
428 | fnEvents=0; | |
429 | fnEventsCharged=0; | |
430 | fnDiJetEvents=0; | |
ac6a3f1e | 431 | |
c54b626a | 432 | // fRJET=4 -> fJetR=0.4 && fRJET=25 -> fJetR=0.25, but for writing files, should be 4 and 25 respectively |
433 | if (fRJET>10) | |
434 | { | |
435 | fJetR=(Double_t)fRJET/100.0; | |
436 | } | |
437 | else | |
438 | { | |
439 | fJetR=(Double_t)fRJET/10.0; | |
440 | } | |
c6202663 | 441 | fJetRForRho=0.5; |
442 | ||
ac6a3f1e | 443 | fEMCalPhiMin=(80/(double)360)*2*TMath::Pi(); |
444 | fEMCalPhiMax=(187/(double)360)*2*TMath::Pi(); | |
445 | fEMCalPhiTotal= fEMCalPhiMax-fEMCalPhiMin; | |
446 | fEMCalEtaMin=-0.7; | |
447 | fEMCalEtaMax=0.7; | |
448 | fEMCalEtaTotal=fEMCalEtaMax-fEMCalEtaMin; | |
449 | fEMCalArea=fEMCalPhiTotal*fEMCalEtaTotal; | |
450 | ||
451 | fTPCPhiMin=(0/(double)360)*2*TMath::Pi(); | |
452 | fTPCPhiMax=(360/(double)360)*2*TMath::Pi(); | |
453 | fTPCPhiTotal= fTPCPhiMax-fTPCPhiMin; | |
454 | fTPCEtaMin=-0.9; | |
455 | fTPCEtaMax=0.9; | |
456 | fTPCEtaTotal=fTPCEtaMax-fTPCEtaMin; | |
457 | fTPCArea=fTPCPhiTotal*fTPCEtaTotal; | |
24a61909 | 458 | |
459 | fParticlePtLow=0.0; | |
460 | fParticlePtUp=200.0; | |
461 | fParticlePtBins=Int_t(fParticlePtUp-fParticlePtLow); | |
462 | ||
ac6a3f1e | 463 | fCentralityBins=10; |
464 | fCentralityLow=0.0; | |
465 | fCentralityUp=100.0; | |
c54b626a | 466 | Int_t CentralityBinMult=10; |
467 | ||
c6202663 | 468 | fJetAreaCutFrac =0.6; // Fudge factor for selecting on jets with threshold Area or higher |
ac6a3f1e | 469 | fJetAreaThreshold=fJetAreaCutFrac*TMath::Pi()*fJetR*fJetR; |
c6202663 | 470 | fTPCJetThreshold=5.0; // Threshold required for an Anti-kT Charged jet to be considered a "true" jet in TPC |
471 | fEMCalJetThreshold=5.0; // Threshold required for an Anti-kT Charged+Neutral jet to be considered a "true" jet in EMCal | |
ac6a3f1e | 472 | fVertexWindow=10.0; |
473 | fVertexMaxR=1.0; | |
474 | ||
c6202663 | 475 | fnBckgClusters=1; |
476 | fEMCalRCBckgFluc = new Double_t[fnBckgClusters]; | |
477 | fTPCRCBckgFluc = new Double_t[fnBckgClusters]; | |
478 | fEMCalRCBckgFlucSignal = new Double_t[fnBckgClusters]; | |
479 | fTPCRCBckgFlucSignal = new Double_t[fnBckgClusters]; | |
7acc3e04 | 480 | fEMCalRCBckgFlucNColl = new Double_t[fnBckgClusters]; |
481 | fTPCRCBckgFlucNColl = new Double_t[fnBckgClusters]; | |
ac6a3f1e | 482 | for (Int_t i=0;i<fnBckgClusters;i++) |
483 | { | |
c6202663 | 484 | fEMCalRCBckgFluc[i]=0.0; |
485 | fTPCRCBckgFluc[i]=0.0; | |
486 | fEMCalRCBckgFlucSignal[i]=0.0; | |
487 | fTPCRCBckgFlucSignal[i]=0.0; | |
7acc3e04 | 488 | fEMCalRCBckgFlucNColl[i]=0.0; |
489 | fTPCRCBckgFlucNColl[i]=0.0; | |
ac6a3f1e | 490 | } |
491 | ||
ac6a3f1e | 492 | fnEMCalCells=12288; // sMods 1-10 have 24x48 cells, sMods 11&12 have 8x48 cells... |
493 | ||
ac6a3f1e | 494 | Int_t TCBins=100; |
62620fff | 495 | Int_t multBins=200; |
496 | Double_t multLow=0; | |
497 | Double_t multUp=200; | |
24a61909 | 498 | |
62620fff | 499 | // Track QA Plots |
500 | if (fTrackQA==kTRUE) | |
501 | { | |
502 | flTrack = new TList(); | |
503 | flTrack->SetName("TrackQA"); | |
504 | ||
505 | // Hybrid Tracks | |
1cd88f63 | 506 | fhTrackPt = new TH1F("fhTrackPt","p_{T} distribution of tracks in event",10*fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 507 | fhTrackPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); |
508 | fhTrackPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}"); | |
509 | fhTrackPt->Sumw2(); | |
510 | ||
1cd88f63 | 511 | fhTrackPhi = new TH1F("fhTrackPhi","#varphi distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax); |
62620fff | 512 | fhTrackPhi->GetXaxis()->SetTitle("#varphi"); |
513 | fhTrackPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#varphi"); | |
514 | fhTrackPhi->Sumw2(); | |
515 | ||
1cd88f63 | 516 | fhTrackEta = new TH1F("fhTrackEta","#eta distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax); |
62620fff | 517 | fhTrackEta->GetXaxis()->SetTitle("#eta"); |
518 | fhTrackEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta"); | |
519 | fhTrackEta->Sumw2(); | |
520 | ||
1cd88f63 | 521 | fhTrackEtaPhi = new TH2F("fhTrackEtaPhi","#eta-#varphi distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax); |
62620fff | 522 | fhTrackEtaPhi->GetXaxis()->SetTitle("#eta"); |
523 | fhTrackEtaPhi->GetYaxis()->SetTitle("#varphi"); | |
524 | fhTrackEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#varphi"); | |
525 | fhTrackEtaPhi->Sumw2(); | |
526 | ||
1cd88f63 | 527 | fhTrackPhiPt = new TH2F("fhTrackPhiPt","#varphi-p_{T} distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 528 | fhTrackPhiPt->GetXaxis()->SetTitle("#varphi"); |
529 | fhTrackPhiPt->GetYaxis()->SetTitle("p_{T} (GeV/c)"); | |
530 | fhTrackPhiPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#varphidp_{T}"); | |
531 | fhTrackPhiPt->Sumw2(); | |
532 | ||
1cd88f63 | 533 | fhTrackEtaPt = new TH2F("fhTrackEtaPt","#eta-p_{T} distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 534 | fhTrackEtaPt->GetXaxis()->SetTitle("#varphi"); |
535 | fhTrackEtaPt->GetYaxis()->SetTitle("p_{T} (GeV/c)"); | |
536 | fhTrackEtaPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#etadp_{T}"); | |
537 | fhTrackEtaPt->Sumw2(); | |
1cd88f63 | 538 | |
62620fff | 539 | // Global Tracks |
1cd88f63 | 540 | fhGlobalTrackPt = new TH1F("fhGlobalTrackPt","Global p_{T} distribution of tracks in event",10*fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 541 | fhGlobalTrackPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); |
542 | fhGlobalTrackPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}"); | |
543 | fhGlobalTrackPt->Sumw2(); | |
544 | ||
1cd88f63 | 545 | fhGlobalTrackPhi = new TH1F("fhGlobalTrackPhi","Global #varphi distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax); |
62620fff | 546 | fhGlobalTrackPhi->GetXaxis()->SetTitle("#varphi"); |
547 | fhGlobalTrackPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#varphi"); | |
548 | fhGlobalTrackPhi->Sumw2(); | |
549 | ||
1cd88f63 | 550 | fhGlobalTrackEta = new TH1F("fhGlobalTrackEta","Global #eta distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax); |
62620fff | 551 | fhGlobalTrackEta->GetXaxis()->SetTitle("#eta"); |
552 | fhGlobalTrackEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta"); | |
553 | fhGlobalTrackEta->Sumw2(); | |
554 | ||
1cd88f63 | 555 | fhGlobalTrackEtaPhi = new TH2F("fhGlobalTrackEtaPhi","Global #eta-#varphi distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax); |
62620fff | 556 | fhGlobalTrackEtaPhi->GetXaxis()->SetTitle("#eta"); |
557 | fhGlobalTrackEtaPhi->GetYaxis()->SetTitle("#varphi"); | |
558 | fhGlobalTrackEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#varphi"); | |
559 | fhGlobalTrackEtaPhi->Sumw2(); | |
560 | ||
1cd88f63 | 561 | fhGlobalTrackPhiPt = new TH2F("fhGlobalTrackPhiPt","Global #varphi-p_{T} distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 562 | fhGlobalTrackPhiPt->GetXaxis()->SetTitle("#varphi"); |
563 | fhGlobalTrackPhiPt->GetYaxis()->SetTitle("p_{T} (GeV/c)"); | |
564 | fhGlobalTrackPhiPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#varphidp_{T}"); | |
565 | fhGlobalTrackPhiPt->Sumw2(); | |
566 | ||
1cd88f63 | 567 | fhGlobalTrackEtaPt = new TH2F("fhGlobalTrackEtaPt","Global #eta-p_{T} distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 568 | fhGlobalTrackEtaPt->GetXaxis()->SetTitle("#varphi"); |
569 | fhGlobalTrackEtaPt->GetYaxis()->SetTitle("p_{T} (GeV/c)"); | |
570 | fhGlobalTrackEtaPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#etadp_{T}"); | |
571 | fhGlobalTrackEtaPt->Sumw2(); | |
572 | ||
62620fff | 573 | // Complementary Tracks |
1cd88f63 | 574 | fhComplementaryTrackPt = new TH1F("fhComplementaryTrackPt","Complementary p_{T} distribution of tracks in event",10*fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 575 | fhComplementaryTrackPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); |
576 | fhComplementaryTrackPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}"); | |
577 | fhComplementaryTrackPt->Sumw2(); | |
578 | ||
1cd88f63 | 579 | fhComplementaryTrackPhi = new TH1F("fhComplementaryTrackPhi","Complementary #varphi distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax); |
62620fff | 580 | fhComplementaryTrackPhi->GetXaxis()->SetTitle("#varphi"); |
581 | fhComplementaryTrackPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#varphi"); | |
582 | fhComplementaryTrackPhi->Sumw2(); | |
583 | ||
1cd88f63 | 584 | fhComplementaryTrackEta = new TH1F("fhComplementaryTrackEta","Complementary #eta distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax); |
62620fff | 585 | fhComplementaryTrackEta->GetXaxis()->SetTitle("#eta"); |
586 | fhComplementaryTrackEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta"); | |
587 | fhComplementaryTrackEta->Sumw2(); | |
588 | ||
1cd88f63 | 589 | fhComplementaryTrackEtaPhi = new TH2F("fhComplementaryTrackEtaPhi","Complementary #eta-#varphi distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax); |
62620fff | 590 | fhComplementaryTrackEtaPhi->GetXaxis()->SetTitle("#eta"); |
591 | fhComplementaryTrackEtaPhi->GetYaxis()->SetTitle("#varphi"); | |
592 | fhComplementaryTrackEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#varphi"); | |
593 | fhComplementaryTrackEtaPhi->Sumw2(); | |
594 | ||
1cd88f63 | 595 | fhComplementaryTrackPhiPt = new TH2F("fhComplementaryTrackPhiPt","Complementary #varphi-p_{T} distribution of tracks in event",TCBins,fTPCPhiMin,fTPCPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 596 | fhComplementaryTrackPhiPt->GetXaxis()->SetTitle("#varphi"); |
597 | fhComplementaryTrackPhiPt->GetYaxis()->SetTitle("p_{T} (GeV/c)"); | |
598 | fhComplementaryTrackPhiPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#varphidp_{T}"); | |
599 | fhComplementaryTrackPhiPt->Sumw2(); | |
600 | ||
1cd88f63 | 601 | fhComplementaryTrackEtaPt = new TH2F("fhComplementaryTrackEtaPt","Complementary #eta-p_{T} distribution of tracks in event",TCBins,fTPCEtaMin,fTPCEtaMax,fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 602 | fhComplementaryTrackEtaPt->GetXaxis()->SetTitle("#varphi"); |
603 | fhComplementaryTrackEtaPt->GetYaxis()->SetTitle("p_{T} (GeV/c)"); | |
604 | fhComplementaryTrackEtaPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#etadp_{T}"); | |
605 | fhComplementaryTrackEtaPt->Sumw2(); | |
606 | ||
1cd88f63 | 607 | fhTPCEventMult = new TH2F("fhTPCEventMult","TPC Event Multiplcity vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp,multBins,multLow,multUp); |
62620fff | 608 | fhTPCEventMult->GetXaxis()->SetTitle(fCentralityTag); |
609 | fhTPCEventMult->GetYaxis()->SetTitle("Multiplicity"); | |
610 | fhTPCEventMult->GetZaxis()->SetTitle("1/N_{Events} dN/dCentdN_{Charged}"); | |
611 | fhTPCEventMult->Sumw2(); | |
612 | ||
1cd88f63 | 613 | fhEMCalTrackEventMult = new TH2F("fhEMCalTrackEventMult","EMCal Track Event Multiplcity vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp,multBins,multLow,multUp); |
62620fff | 614 | fhEMCalTrackEventMult->GetXaxis()->SetTitle(fCentralityTag); |
615 | fhEMCalTrackEventMult->GetYaxis()->SetTitle("Multiplicity"); | |
616 | fhEMCalTrackEventMult->GetZaxis()->SetTitle("1/N_{Events} dN/dCentdN_{Neutral}"); | |
617 | fhEMCalTrackEventMult->Sumw2(); | |
618 | ||
619 | fpTPCEventMult = new TProfile("fpTPCEventMult","TPC Event Multiplcity vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp); | |
620 | fpTPCEventMult->GetXaxis()->SetTitle(fCentralityTag); | |
621 | fpTPCEventMult->GetYaxis()->SetTitle("Multiplicity"); | |
622 | ||
623 | // QA::2D Energy Density Profiles for Tracks and Clusters | |
624 | fpTrackPtProfile = new TProfile2D("fpTrackPtProfile","2D Profile of track pT density throughout the TPC",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax); | |
625 | fpTrackPtProfile->GetXaxis()->SetTitle("#eta"); | |
626 | fpTrackPtProfile->GetYaxis()->SetTitle("#varphi"); | |
627 | fpTrackPtProfile->GetZaxis()->SetTitle("p_{T} density (GeV/Area)"); | |
628 | ||
629 | flTrack->Add(fhTrackPt); | |
630 | flTrack->Add(fhTrackEta); | |
631 | flTrack->Add(fhTrackPhi); | |
632 | flTrack->Add(fhTrackEtaPhi); | |
633 | flTrack->Add(fhTrackPhiPt); | |
634 | flTrack->Add(fhTrackEtaPt); | |
62620fff | 635 | flTrack->Add(fhGlobalTrackPt); |
636 | flTrack->Add(fhGlobalTrackEta); | |
637 | flTrack->Add(fhGlobalTrackPhi); | |
638 | flTrack->Add(fhGlobalTrackEtaPhi); | |
639 | flTrack->Add(fhGlobalTrackPhiPt); | |
640 | flTrack->Add(fhGlobalTrackEtaPt); | |
62620fff | 641 | flTrack->Add(fhComplementaryTrackPt); |
642 | flTrack->Add(fhComplementaryTrackEta); | |
643 | flTrack->Add(fhComplementaryTrackPhi); | |
644 | flTrack->Add(fhComplementaryTrackEtaPhi); | |
645 | flTrack->Add(fhComplementaryTrackPhiPt); | |
646 | flTrack->Add(fhComplementaryTrackEtaPt); | |
62620fff | 647 | flTrack->Add(fhTPCEventMult); |
648 | flTrack->Add(fhEMCalTrackEventMult); | |
649 | flTrack->Add(fpTPCEventMult); | |
650 | flTrack->Add(fpTrackPtProfile); | |
651 | fOutput->Add(flTrack); | |
652 | } | |
c54b626a | 653 | |
62620fff | 654 | if (fClusterQA==kTRUE) |
655 | { | |
656 | flCluster = new TList(); | |
657 | flCluster->SetName("ClusterQA"); | |
658 | ||
1cd88f63 | 659 | fhClusterPt = new TH1F("fhClusterPt","p_{T} distribution of clusters in event",10*fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 660 | fhClusterPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); |
661 | fhClusterPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}"); | |
662 | fhClusterPt->Sumw2(); | |
663 | ||
1cd88f63 | 664 | fhClusterPhi = new TH1F("fhClusterPhi","#varphi distribution of clusters in event",TCBins,fTPCPhiMin,fTPCPhiMax); |
62620fff | 665 | fhClusterPhi->GetXaxis()->SetTitle("#varphi"); |
666 | fhClusterPhi->GetYaxis()->SetTitle("1/N_{Events} dN/d#varphi"); | |
667 | fhClusterPhi->Sumw2(); | |
668 | ||
1cd88f63 | 669 | fhClusterEta = new TH1F("fhClusterEta","#eta distribution of clusters in event",TCBins,fTPCEtaMin,fTPCEtaMax); |
62620fff | 670 | fhClusterEta->GetXaxis()->SetTitle("#eta"); |
671 | fhClusterEta->GetYaxis()->SetTitle("1/N_{Events} dN/d#eta"); | |
672 | fhClusterEta->Sumw2(); | |
673 | ||
1cd88f63 | 674 | fhClusterEtaPhi = new TH2F("fhClusterEtaPhi","#eta-#varphi distribution of clusters in event",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax); |
62620fff | 675 | fhClusterEtaPhi->GetXaxis()->SetTitle("#eta"); |
676 | fhClusterEtaPhi->GetYaxis()->SetTitle("#varphi"); | |
677 | fhClusterEtaPhi->GetZaxis()->SetTitle("1/N_{Events} dN/d#etad#varphi"); | |
678 | fhClusterEtaPhi->Sumw2(); | |
679 | ||
1cd88f63 | 680 | fhClusterPhiPt = new TH2F("fhClusterPhiPt","#varphi-p_{T} distribution of clusters in event",TCBins,fEMCalPhiMin,fEMCalPhiMax,fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 681 | fhClusterPhiPt->GetXaxis()->SetTitle("#varphi"); |
682 | fhClusterPhiPt->GetYaxis()->SetTitle("p_{T} (GeV/c)"); | |
683 | fhClusterPhiPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#varphidp_{T}"); | |
684 | fhClusterPhiPt->Sumw2(); | |
685 | ||
1cd88f63 | 686 | fhClusterEtaPt = new TH2F("fhClusterEtaPt","#eta-p_{T} distribution of clusters in event",TCBins,fEMCalEtaMin,fEMCalEtaMax,fParticlePtBins,fParticlePtLow,fParticlePtUp); |
62620fff | 687 | fhClusterEtaPt->GetXaxis()->SetTitle("#varphi"); |
688 | fhClusterEtaPt->GetYaxis()->SetTitle("p_{T} (GeV/c)"); | |
689 | fhClusterEtaPt->GetZaxis()->SetTitle("1/N_{Events} dN/d#etadp_{T}"); | |
690 | fhClusterEtaPt->Sumw2(); | |
1cd88f63 ML |
691 | |
692 | fhEMCalEventMult = new TH2F("fhEMCalEventMult","EMCal Event Multiplcity vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp,multBins,multLow,multUp); | |
62620fff | 693 | fhEMCalEventMult->GetXaxis()->SetTitle(fCentralityTag); |
694 | fhEMCalEventMult->GetYaxis()->SetTitle("Multiplicity"); | |
695 | fhEMCalEventMult->GetZaxis()->SetTitle("1/N_{Events} dN/dCentdN_{Neutral}"); | |
696 | fhEMCalEventMult->Sumw2(); | |
697 | ||
698 | fpEMCalEventMult = new TProfile("fpEMCalEventMult","EMCal Event Multiplcity vs Centrality",CentralityBinMult*fCentralityBins,fCentralityLow,fCentralityUp); | |
699 | fpEMCalEventMult->GetXaxis()->SetTitle(fCentralityTag); | |
700 | fpEMCalEventMult->GetYaxis()->SetTitle("Multiplicity"); | |
701 | ||
702 | fpClusterPtProfile = new TProfile2D("fpClusterPtProfile","2D Profile of cluster pT density throughout the EMCal",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax); | |
703 | fpClusterPtProfile->GetXaxis()->SetTitle("#eta"); | |
704 | fpClusterPtProfile->GetYaxis()->SetTitle("#varphi"); | |
705 | fpClusterPtProfile->GetZaxis()->SetTitle("p_{T} density (GeV/Area)"); | |
706 | ||
1cd88f63 | 707 | fhEMCalCellCounts = new TH1F("fhEMCalCellCounts","Distribtuion of cluster counts across the EMCal",fnEMCalCells,1,fnEMCalCells); |
62620fff | 708 | fhEMCalCellCounts->GetXaxis()->SetTitle("Absoulute Cell Id"); |
709 | fhEMCalCellCounts->GetYaxis()->SetTitle("Counts per Event"); | |
710 | fhEMCalCellCounts->Sumw2(); | |
711 | ||
712 | flCluster->Add(fhClusterPt); | |
713 | flCluster->Add(fhClusterEta); | |
714 | flCluster->Add(fhClusterPhi); | |
715 | flCluster->Add(fhClusterEtaPhi); | |
716 | flCluster->Add(fhClusterPhiPt); | |
717 | flCluster->Add(fhClusterEtaPt); | |
62620fff | 718 | flCluster->Add(fhEMCalEventMult); |
719 | flCluster->Add(fpEMCalEventMult); | |
720 | flCluster->Add(fpClusterPtProfile); | |
721 | flCluster->Add(fhEMCalCellCounts); | |
722 | fOutput->Add(flCluster); | |
723 | } | |
c6202663 | 724 | |
6bda5230 | 725 | if (fCalculateRhoJet>=0 && fMCPartLevel==kFALSE) // Default Rho & Raw Jet Spectra |
62620fff | 726 | { |
727 | fEMCalRawJets = new AlipAJetHistos("EMCalRawJets",fCentralityTag); | |
728 | ||
729 | fRhoChargedCMSScale = new AlipAJetHistos("RhoChargedCMSScale",fCentralityTag,fDoNEF); | |
730 | fRhoChargedCMSScale->SetSignalTrackPtBias(fSignalTrackBias); | |
d2af75be | 731 | fRhoChargedCMSScale->DoNEFSignalOnly(fDoNEFSignalOnly); |
62620fff | 732 | fOutput->Add(fEMCalRawJets->GetOutputHistos()); |
733 | fOutput->Add(fRhoChargedCMSScale->GetOutputHistos()); | |
734 | ||
735 | } | |
736 | if (fCalculateRhoJet>=1) // Basic Rho & Raw Jet Spectra | |
737 | { | |
738 | fRhoChargedScale = new AlipAJetHistos("RhoChargedScale",fCentralityTag); | |
739 | fRhoChargedScale->SetSignalTrackPtBias(fSignalTrackBias); | |
740 | ||
6bda5230 CY |
741 | if (fMCPartLevel==kTRUE) |
742 | { | |
743 | fTPCRawJets = new AlipAJetHistos("TPCRawJets",fCentralityTag); | |
744 | fRhoChargedCMS = new AlipAJetHistos("RhoChargedCMS",fCentralityTag); | |
745 | fRhoChargedCMS->SetSignalTrackPtBias(fSignalTrackBias); | |
746 | ||
747 | fOutput->Add(fTPCRawJets->GetOutputHistos()); | |
748 | fOutput->Add(fRhoChargedCMS->GetOutputHistos()); | |
749 | } | |
750 | ||
751 | Double_t fullEDR = fFullEDJetR *100; | |
752 | Double_t chargedEDR = fChargedEDJetR *100; | |
753 | const Int_t fullEDBins = (Int_t) fullEDR; | |
754 | const Int_t chargedEDBins = (Int_t) chargedEDR; | |
755 | ||
756 | fpFullJetEDProfile = new TProfile3D("fpFullJetEDProfile","Jet ED Profile for #varphi_{jet}#in(#varphi_{EMCal min} + R,#varphi_{EMCal max} - R) & #eta_{jet}#in(#eta_{EMCal min} + R,#eta_{EMCal max} - R)",fParticlePtBins,fParticlePtLow,fParticlePtUp,fCentralityBins,fCentralityLow,fCentralityUp,fullEDBins,0,fFullEDJetR); | |
757 | fpFullJetEDProfile->GetXaxis()->SetTitle("p_{T,jet}^{ch+em} (GeV)"); | |
758 | fpFullJetEDProfile->GetYaxis()->SetTitle(fCentralityTag); | |
759 | fpFullJetEDProfile->GetZaxis()->SetTitle("R"); | |
760 | ||
761 | fpChargedJetEDProfile = new TProfile3D("fpChargedJetEDProfile","Charged Jet ED Profile for #eta_{jet}#in(#eta_{TPC min} + R,#eta_{TPC max} - R)",fParticlePtBins,fParticlePtLow,fParticlePtUp,fCentralityBins,fCentralityLow,fCentralityUp,chargedEDBins,0,fChargedEDJetR); | |
762 | fpChargedJetEDProfile->GetXaxis()->SetTitle("p_{T,jet}^{ch} (GeV)"); | |
763 | fpChargedJetEDProfile->GetYaxis()->SetTitle(fCentralityTag); | |
764 | fpChargedJetEDProfile->GetZaxis()->SetTitle("R"); | |
765 | ||
766 | fpChargedJetEDProfileScaled = new TProfile3D("fpChargedJetEDProfileScaled","Charged Jet ED Profile x SF for #eta_{jet}#in(#eta_{TPC min} + R,#eta_{TPC max} - R)",fParticlePtBins,fParticlePtLow,fParticlePtUp,fCentralityBins,fCentralityLow,fCentralityUp,chargedEDBins,0,fChargedEDJetR); | |
767 | fpChargedJetEDProfileScaled->GetXaxis()->SetTitle("p_{T,jet}^{ch} (GeV)"); | |
768 | fpChargedJetEDProfileScaled->GetYaxis()->SetTitle(fCentralityTag); | |
769 | fpChargedJetEDProfileScaled->GetZaxis()->SetTitle("R"); | |
770 | ||
62620fff | 771 | fOutput->Add(fRhoChargedScale->GetOutputHistos()); |
6bda5230 CY |
772 | fOutput->Add(fpFullJetEDProfile); |
773 | fOutput->Add(fpChargedJetEDProfile); | |
774 | fOutput->Add(fpChargedJetEDProfileScaled); | |
62620fff | 775 | } |
6bda5230 | 776 | if (fCalculateRhoJet>=2 && fMCPartLevel==kFALSE) // Basic Rho & Raw Jet Spectra |
62620fff | 777 | { |
778 | fTPCRawJets = new AlipAJetHistos("TPCRawJets",fCentralityTag); | |
779 | fRhoFull0 = new AlipAJetHistos("RhoFull0",fCentralityTag); | |
780 | fRhoFull0->SetSignalTrackPtBias(fSignalTrackBias); | |
781 | fRhoFull1 = new AlipAJetHistos("RhoFull1",fCentralityTag); | |
782 | fRhoFull1->SetSignalTrackPtBias(fSignalTrackBias); | |
783 | fRhoFull2 = new AlipAJetHistos("RhoFull2",fCentralityTag); | |
784 | fRhoFull2->SetSignalTrackPtBias(fSignalTrackBias); | |
785 | fRhoFullN = new AlipAJetHistos("RhoFullN",fCentralityTag); | |
786 | fRhoFullN->SetSignalTrackPtBias(fSignalTrackBias); | |
787 | fRhoFullDijet = new AlipAJetHistos("RhoFullDijet",fCentralityTag); | |
788 | fRhoFullDijet->SetSignalTrackPtBias(fSignalTrackBias); | |
789 | fRhoFullkT = new AlipAJetHistos("RhoFullkT",fCentralityTag); | |
790 | fRhoFullkT->SetSignalTrackPtBias(fSignalTrackBias); | |
791 | fRhoFullCMS = new AlipAJetHistos("RhoFullCMS",fCentralityTag); | |
792 | fRhoFullCMS->SetSignalTrackPtBias(fSignalTrackBias); | |
793 | fRhoCharged0 = new AlipAJetHistos("RhoCharged0",fCentralityTag); | |
794 | fRhoCharged0->SetSignalTrackPtBias(fSignalTrackBias); | |
795 | fRhoCharged1 = new AlipAJetHistos("RhoCharged1",fCentralityTag); | |
796 | fRhoCharged1->SetSignalTrackPtBias(fSignalTrackBias); | |
797 | fRhoCharged2 = new AlipAJetHistos("RhoCharged2",fCentralityTag); | |
798 | fRhoCharged2->SetSignalTrackPtBias(fSignalTrackBias); | |
799 | fRhoChargedN = new AlipAJetHistos("RhoChargedN",fCentralityTag); | |
800 | fRhoChargedN->SetSignalTrackPtBias(fSignalTrackBias); | |
801 | fRhoChargedkT = new AlipAJetHistos("RhoChargedkT",fCentralityTag); | |
802 | fRhoChargedkT->SetSignalTrackPtBias(fSignalTrackBias); | |
803 | fRhoChargedkTScale = new AlipAJetHistos("RhoChargedkTScale",fCentralityTag); | |
804 | fRhoChargedkTScale->SetSignalTrackPtBias(fSignalTrackBias); | |
805 | fRhoChargedCMS = new AlipAJetHistos("RhoChargedCMS",fCentralityTag); | |
806 | fRhoChargedCMS->SetSignalTrackPtBias(fSignalTrackBias); | |
807 | ||
808 | fOutput->Add(fTPCRawJets->GetOutputHistos()); | |
809 | fOutput->Add(fRhoFull0->GetOutputHistos()); | |
810 | fOutput->Add(fRhoFull1->GetOutputHistos()); | |
811 | fOutput->Add(fRhoFull2->GetOutputHistos()); | |
812 | fOutput->Add(fRhoFullN->GetOutputHistos()); | |
813 | fOutput->Add(fRhoFullDijet->GetOutputHistos()); | |
814 | fOutput->Add(fRhoFullkT->GetOutputHistos()); | |
815 | fOutput->Add(fRhoFullCMS->GetOutputHistos()); | |
816 | fOutput->Add(fRhoCharged0->GetOutputHistos()); | |
817 | fOutput->Add(fRhoCharged1->GetOutputHistos()); | |
818 | fOutput->Add(fRhoCharged2->GetOutputHistos()); | |
819 | fOutput->Add(fRhoChargedN->GetOutputHistos()); | |
820 | fOutput->Add(fRhoChargedkT->GetOutputHistos()); | |
821 | fOutput->Add(fRhoChargedkTScale->GetOutputHistos()); | |
822 | fOutput->Add(fRhoChargedCMS->GetOutputHistos()); | |
823 | } | |
3e43a01f | 824 | |
6bda5230 CY |
825 | fhCentrality = new TH1F("fhCentrality","Event Centrality Distribution",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp); |
826 | fhCentrality->GetXaxis()->SetTitle(fCentralityTag); | |
827 | fhCentrality->GetYaxis()->SetTitle("1/N_{Events}"); | |
828 | fhCentrality->Sumw2(); | |
829 | ||
c54b626a | 830 | fOutput->Add(fhCentrality); |
62620fff | 831 | |
6bda5230 CY |
832 | if (fMCPartLevel == kFALSE) |
833 | { | |
834 | fhChargeAndNeutralEvents = new TH1F("fhChargeAndNeutralEvents","Events with n_{tracks}>0 & n_{clusters}>0 vs Centrality",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp); | |
835 | fhChargeAndNeutralEvents->GetXaxis()->SetTitle(fCentralityTag); | |
836 | fhChargeAndNeutralEvents->GetYaxis()->SetTitle("1/N_{Events}"); | |
837 | fhChargeAndNeutralEvents->Sumw2(); | |
838 | ||
839 | fhChargeOnlyEvents = new TH1F("fhChargeOnlyEvents","Events with n_{tracks}>0 & n_{clusters}=0 vs Centrality",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp); | |
840 | fhChargeOnlyEvents->GetXaxis()->SetTitle(fCentralityTag); | |
841 | fhChargeOnlyEvents->GetYaxis()->SetTitle("1/N_{Events}"); | |
842 | fhChargeOnlyEvents->Sumw2(); | |
843 | ||
844 | fhNeutralOnlyEvents = new TH1F("fhNeutralOnlyEvents","Events with n_{tracks}=0 & n_{clusters}>0 vs Centrality",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp); | |
845 | fhNeutralOnlyEvents->GetXaxis()->SetTitle(fCentralityTag); | |
846 | fhNeutralOnlyEvents->GetYaxis()->SetTitle("1/N_{Events}"); | |
847 | fhNeutralOnlyEvents->Sumw2(); | |
848 | ||
849 | fhNothingEvents = new TH1F("fhNothingEvents","Events with n_{tracks}=n_{clusters}=0 vs Centrality",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp); | |
850 | fhNothingEvents->GetXaxis()->SetTitle(fCentralityTag); | |
851 | fhNothingEvents->GetYaxis()->SetTitle("1/N_{Events}"); | |
852 | fhNothingEvents->Sumw2(); | |
853 | ||
854 | fhEMCalChargeAndNeutralEvents = new TH1F("fhEMCalChargeAndNeutralEvents","Events with n_{emcal tracks}>0 & n_{clusters}>0 vs Centrality",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp); | |
855 | fhEMCalChargeAndNeutralEvents->GetXaxis()->SetTitle(fCentralityTag); | |
856 | fhEMCalChargeAndNeutralEvents->GetYaxis()->SetTitle("1/N_{Events}"); | |
857 | fhEMCalChargeAndNeutralEvents->Sumw2(); | |
858 | ||
859 | fhEMCalChargeOnlyEvents = new TH1F("fhEMCalChargeOnlyEvents","Events with n_{emcal tracks}>0 & n_{clusters}=0 vs Centrality",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp); | |
860 | fhEMCalChargeOnlyEvents->GetXaxis()->SetTitle(fCentralityTag); | |
861 | fhEMCalChargeOnlyEvents->GetYaxis()->SetTitle("1/N_{Events}"); | |
862 | fhEMCalChargeOnlyEvents->Sumw2(); | |
863 | ||
864 | fhEMCalNeutralOnlyEvents = new TH1F("fhEMCalNeutralOnlyEvents","Events with n_{tracks}>0 & n_{emcal tracks}=0 & n_{clusters}>0 vs Centrality",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp); | |
865 | fhEMCalNeutralOnlyEvents->GetXaxis()->SetTitle(fCentralityTag); | |
866 | fhEMCalNeutralOnlyEvents->GetYaxis()->SetTitle("1/N_{Events}"); | |
867 | fhEMCalNeutralOnlyEvents->Sumw2(); | |
868 | ||
869 | fhEMCalNothingEvents = new TH1F("fhEMCalNothingEvents","Events with n_{emcal tracks}=n_{clusters}=0 vs Centrality",fCentralityBins*CentralityBinMult,fCentralityLow,fCentralityUp); | |
870 | fhEMCalNothingEvents->GetXaxis()->SetTitle(fCentralityTag); | |
871 | fhEMCalNothingEvents->GetYaxis()->SetTitle("1/N_{Events}"); | |
872 | fhEMCalNothingEvents->Sumw2(); | |
873 | ||
874 | fOutput->Add(fhChargeAndNeutralEvents); | |
875 | fOutput->Add(fhChargeOnlyEvents); | |
876 | fOutput->Add(fhNeutralOnlyEvents); | |
877 | fOutput->Add(fhNothingEvents); | |
878 | fOutput->Add(fhEMCalChargeAndNeutralEvents); | |
879 | fOutput->Add(fhEMCalChargeOnlyEvents); | |
880 | fOutput->Add(fhEMCalNeutralOnlyEvents); | |
881 | fOutput->Add(fhEMCalNothingEvents); | |
882 | } | |
883 | ||
ac6a3f1e | 884 | // Post data for ALL output slots >0 here, |
885 | // To get at least an empty histogram | |
886 | // 1 is the outputnumber of a certain weg of task 1 | |
887 | PostData(1, fOutput); | |
888 | } | |
889 | ||
890 | void AliAnalysisTaskFullpAJets::UserExecOnce() | |
891 | { | |
d812e269 | 892 | // Get the event tracks |
893 | fOrgTracks = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fTrackName)); | |
ac6a3f1e | 894 | |
d812e269 | 895 | // Get the event caloclusters |
896 | fOrgClusters = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fClusName)); | |
ac6a3f1e | 897 | |
898 | // Get charged jets | |
d812e269 | 899 | fmyKTChargedJets = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fkTChargedName)); |
900 | fmyAKTChargedJets = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fAkTChargedName)); | |
78246241 | 901 | |
ac6a3f1e | 902 | // Get the full jets |
d812e269 | 903 | fmyKTFullJets = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fkTFullName)); |
904 | fmyAKTFullJets = dynamic_cast <TClonesArray*>(InputEvent()->FindListObject(fAkTFullName)); | |
905 | ||
ac6a3f1e | 906 | fIsInitialized=kTRUE; |
907 | } | |
908 | //________________________________________________________________________ | |
909 | void AliAnalysisTaskFullpAJets::UserExec(Option_t *) | |
910 | { | |
911 | if (fIsInitialized==kFALSE) | |
912 | { | |
913 | UserExecOnce(); | |
914 | } | |
915 | ||
916 | // Get pointer to reconstructed event | |
08b981da | 917 | fEvent = InputEvent(); |
918 | if (!fEvent) | |
ac6a3f1e | 919 | { |
920 | AliError("Pointer == 0, this can not happen!"); | |
921 | return; | |
922 | } | |
923 | ||
08b981da | 924 | AliESDEvent* esd = dynamic_cast<AliESDEvent*>(fEvent); |
925 | AliAODEvent* aod = dynamic_cast<AliAODEvent*>(fEvent); | |
926 | ||
927 | fRecoUtil = new AliEMCALRecoUtils(); | |
928 | fEMCALGeometry = AliEMCALGeometry::GetInstance(); | |
ac6a3f1e | 929 | |
930 | if (esd) | |
931 | { | |
c6202663 | 932 | fEventCentrality=esd->GetCentrality()->GetCentralityPercentile(fCentralityTag); |
ac6a3f1e | 933 | |
6bda5230 | 934 | if (fDoVertexRCut == kTRUE) |
ac6a3f1e | 935 | { |
6bda5230 CY |
936 | // Vertex R cut not done in AliAnalysisTaskEmcal |
937 | if (TMath::Sqrt(TMath::Power(esd->GetPrimaryVertex()->GetX(),2)+TMath::Power(esd->GetPrimaryVertex()->GetY(),2))>fVertexMaxR) | |
938 | { | |
939 | return; | |
940 | } | |
ac6a3f1e | 941 | } |
942 | ||
8daeee93 | 943 | esd->GetPrimaryVertex()->GetXYZ(fVertex); |
08b981da | 944 | fCells = (AliVCaloCells*) esd->GetEMCALCells(); |
945 | fnCaloClusters = esd->GetNumberOfCaloClusters(); | |
ac6a3f1e | 946 | } |
947 | else if (aod) | |
948 | { | |
c6202663 | 949 | fEventCentrality=aod->GetCentrality()->GetCentralityPercentile(fCentralityTag); |
ac6a3f1e | 950 | |
6bda5230 | 951 | if (fDoVertexRCut == kTRUE) |
ac6a3f1e | 952 | { |
6bda5230 CY |
953 | // Vertex R cut not done in AliAnalysisTaskEmcal |
954 | if (TMath::Sqrt(TMath::Power(aod->GetPrimaryVertex()->GetX(),2)+TMath::Power(aod->GetPrimaryVertex()->GetY(),2))>fVertexMaxR) | |
955 | { | |
956 | return; | |
957 | } | |
ac6a3f1e | 958 | } |
6bda5230 | 959 | |
8daeee93 | 960 | aod->GetPrimaryVertex()->GetXYZ(fVertex); |
08b981da | 961 | fCells = (AliVCaloCells*) aod->GetEMCALCells(); |
962 | fnCaloClusters = aod->GetNumberOfCaloClusters(); | |
ac6a3f1e | 963 | } |
964 | else | |
965 | { | |
966 | AliError("Cannot get AOD/ESD event. Rejecting Event"); | |
967 | return; | |
968 | } | |
969 | ||
970 | // Make sure Centrality isn't exactly 100% (to avoid bin filling errors in profile plots. Make it 99.99 | |
971 | if (fEventCentrality>99.99) | |
972 | { | |
973 | fEventCentrality=99.99; | |
974 | } | |
6bda5230 CY |
975 | fhCentrality->Fill(fEventCentrality); // Counts total events |
976 | ||
977 | ||
978 | // Count Events | |
979 | EventCounts(); | |
ac6a3f1e | 980 | |
ac6a3f1e | 981 | // Reject any event that doesn't have any tracks, i.e. TPC is off |
982 | if (fnTracks<1) | |
983 | { | |
25322962 ML |
984 | if (fTrackQA==kTRUE) |
985 | { | |
986 | fhTPCEventMult->Fill(fEventCentrality,0.0); | |
987 | fpTPCEventMult->Fill(fEventCentrality,0.0); | |
988 | fhEMCalTrackEventMult->Fill(fEventCentrality,0.0); | |
989 | } | |
ac6a3f1e | 990 | AliWarning("No PicoTracks, Rejecting Event"); |
991 | return; | |
992 | } | |
d812e269 | 993 | |
ac6a3f1e | 994 | if (fnClusters<1) |
995 | { | |
996 | AliInfo("No Corrected CaloClusters, using only charged jets"); | |
997 | ||
62620fff | 998 | if (fTrackQA==kTRUE) |
999 | { | |
1000 | TrackHisto(); | |
1001 | } | |
ac6a3f1e | 1002 | InitChargedJets(); |
c6202663 | 1003 | GenerateTPCRandomConesPt(); |
cf074128 | 1004 | |
25322962 ML |
1005 | if (fClusterQA==kTRUE) |
1006 | { | |
1007 | fhEMCalEventMult->Fill(fEventCentrality,0.0); | |
1008 | fpEMCalEventMult->Fill(fEventCentrality,0.0); | |
1009 | } | |
1010 | ||
c6202663 | 1011 | // Rho's |
6bda5230 CY |
1012 | if (fCalculateRhoJet>=1) |
1013 | { | |
1014 | ChargedJetEnergyDensityProfile(); | |
1015 | ||
1016 | if (fMCPartLevel==kTRUE) | |
1017 | { | |
1018 | EstimateChargedRhoCMS(); | |
1019 | } | |
1020 | } | |
1021 | if (fCalculateRhoJet>=2 && fMCPartLevel==kFALSE) | |
62620fff | 1022 | { |
1023 | EstimateChargedRho0(); | |
1024 | EstimateChargedRho1(); | |
1025 | EstimateChargedRho2(); | |
1026 | EstimateChargedRhoN(); | |
1027 | EstimateChargedRhokT(); | |
1028 | EstimateChargedRhoCMS(); | |
1029 | } | |
c6202663 | 1030 | |
c6202663 | 1031 | DeleteJetData(kFALSE); |
ac6a3f1e | 1032 | |
1033 | fnEventsCharged++; | |
c6202663 | 1034 | |
1035 | PostData(1, fOutput); | |
ac6a3f1e | 1036 | return; |
1037 | } | |
d812e269 | 1038 | |
62620fff | 1039 | if (fTrackQA==kTRUE) |
1040 | { | |
1041 | TrackHisto(); | |
1042 | } | |
1043 | if (fClusterQA==kTRUE) | |
1044 | { | |
1045 | ClusterHisto(); | |
1046 | } | |
ac6a3f1e | 1047 | |
1048 | // Prep the jets | |
1049 | InitChargedJets(); | |
1050 | InitFullJets(); | |
c6202663 | 1051 | GenerateTPCRandomConesPt(); |
1052 | GenerateEMCalRandomConesPt(); | |
1053 | ||
62620fff | 1054 | if (fCalculateRhoJet>=0) |
ac6a3f1e | 1055 | { |
62620fff | 1056 | EstimateChargedRhoCMSScale(); |
7acc3e04 | 1057 | } |
62620fff | 1058 | if (fCalculateRhoJet>=1) |
1059 | { | |
1060 | EstimateChargedRhoScale(); | |
6bda5230 CY |
1061 | ChargedJetEnergyDensityProfile(); |
1062 | FullJetEnergyDensityProfile(); | |
62620fff | 1063 | } |
1064 | if (fCalculateRhoJet>=2) | |
1065 | { | |
1066 | EstimateChargedRho0(); | |
1067 | EstimateChargedRho1(); | |
1068 | EstimateChargedRho2(); | |
1069 | EstimateChargedRhoN(); | |
1070 | EstimateChargedRhokT(); | |
1071 | EstimateChargedRhoCMS(); | |
1072 | ||
1073 | EstimateFullRho0(); | |
1074 | EstimateFullRho1(); | |
1075 | EstimateFullRho2(); | |
1076 | EstimateFullRhoN(); | |
1077 | EstimateFullRhokT(); | |
1078 | EstimateFullRhoCMS(); | |
1079 | ||
1080 | EstimateChargedRhokTScale(); | |
1081 | ||
1082 | // Dijet | |
1083 | if (IsDiJetEvent()==kTRUE) | |
1084 | { | |
1085 | EstimateFullRhoDijet(); | |
1086 | } | |
1087 | } | |
1088 | ||
ac6a3f1e | 1089 | // Delete Dynamic Arrays |
c6202663 | 1090 | DeleteJetData(kTRUE); |
08b981da | 1091 | delete fRecoUtil; |
ac6a3f1e | 1092 | fnEvents++; |
1093 | ||
1094 | PostData(1, fOutput); | |
1095 | } | |
1096 | ||
1097 | //________________________________________________________________________ | |
1098 | void AliAnalysisTaskFullpAJets::Terminate(Option_t *) //specify what you want to have done | |
1099 | { | |
1100 | // Called once at the end of the query. Done nothing here. | |
ac6a3f1e | 1101 | } |
1102 | ||
1103 | ///////////////////////////////////////////////////////////////////////////////////////// | |
1104 | ///////////////// User Defined Sub_Routines /////////////////////////////////////// | |
1105 | ///////////////////////////////////////////////////////////////////////////////////////// | |
1106 | ||
c6202663 | 1107 | void AliAnalysisTaskFullpAJets::TrackCuts() |
1108 | { | |
1109 | // Fill a TObjArray with the tracks from a TClonesArray which grabs the picotracks. | |
1110 | Int_t i; | |
6bda5230 | 1111 | Int_t j=0; |
c6202663 | 1112 | |
1113 | fmyTracks = new TObjArray(); | |
1114 | for (i=0;i<fOrgTracks->GetEntries();i++) | |
1115 | { | |
1116 | AliVTrack* vtrack = (AliVTrack*) fOrgTracks->At(i); | |
1117 | if (vtrack->Pt()>=fTrackMinPt) | |
1118 | { | |
1119 | fmyTracks->Add(vtrack); | |
6bda5230 CY |
1120 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta()) == kTRUE) |
1121 | { | |
1122 | j++; | |
1123 | } | |
c6202663 | 1124 | } |
1125 | } | |
1126 | fnTracks = fmyTracks->GetEntries(); | |
6bda5230 | 1127 | fnEMCalTracks = j; |
c6202663 | 1128 | } |
1129 | ||
1130 | void AliAnalysisTaskFullpAJets::ClusterCuts() | |
1131 | { | |
1132 | // Fill a TObjArray with the clusters from a TClonesArray which grabs the caloclusterscorr. | |
1133 | Int_t i; | |
1134 | ||
1135 | fmyClusters = new TObjArray(); | |
62620fff | 1136 | TLorentzVector *cluster_vec = new TLorentzVector; |
6bda5230 CY |
1137 | for (i=0;i<fOrgClusters->GetEntries();i++) |
1138 | { | |
1139 | AliVCluster* vcluster = (AliVCluster*) fOrgClusters->At(i); | |
1140 | vcluster->GetMomentum(*cluster_vec,fVertex); | |
1141 | ||
1142 | if (cluster_vec->Pt()>=fClusterMinPt && vcluster->IsEMCAL()==kTRUE) | |
1143 | { | |
1144 | fmyClusters->Add(vcluster); | |
1145 | } | |
1146 | } | |
1147 | fnClusters = fmyClusters->GetEntries(); | |
1148 | delete cluster_vec; | |
1149 | } | |
1150 | ||
1151 | void AliAnalysisTaskFullpAJets::EventCounts() | |
1152 | { | |
1153 | TrackCuts(); | |
1154 | if (fMCPartLevel == kTRUE) | |
1155 | { | |
1156 | return; | |
1157 | } | |
62620fff | 1158 | |
6bda5230 CY |
1159 | ClusterCuts(); |
1160 | if (fnTracks>0) | |
c6202663 | 1161 | { |
6bda5230 | 1162 | if (fnClusters>0) |
c6202663 | 1163 | { |
6bda5230 CY |
1164 | fhChargeAndNeutralEvents->Fill(fEventCentrality); |
1165 | } | |
1166 | else | |
1167 | { | |
1168 | fhChargeOnlyEvents->Fill(fEventCentrality); | |
1169 | } | |
1170 | if (fnEMCalTracks>0) | |
1171 | { | |
1172 | if (fnClusters>0) | |
1173 | { | |
1174 | fhEMCalChargeAndNeutralEvents->Fill(fEventCentrality); | |
1175 | } | |
1176 | else | |
1177 | { | |
1178 | fhEMCalChargeOnlyEvents->Fill(fEventCentrality); | |
1179 | } | |
1180 | } | |
1181 | else | |
1182 | { | |
1183 | if (fnClusters>0) | |
1184 | { | |
1185 | fhEMCalNeutralOnlyEvents->Fill(fEventCentrality); | |
1186 | } | |
1187 | else | |
20f2d13a | 1188 | { |
6bda5230 | 1189 | fhEMCalNothingEvents->Fill(fEventCentrality); |
20f2d13a | 1190 | } |
c6202663 | 1191 | } |
c6202663 | 1192 | } |
6bda5230 CY |
1193 | else |
1194 | { | |
1195 | if (fnClusters>0) | |
1196 | { | |
1197 | fhNeutralOnlyEvents->Fill(fEventCentrality); | |
1198 | } | |
1199 | else | |
1200 | { | |
1201 | fhNothingEvents->Fill(fEventCentrality); | |
1202 | } | |
1203 | } | |
c6202663 | 1204 | } |
1205 | ||
ac6a3f1e | 1206 | void AliAnalysisTaskFullpAJets::TrackHisto() |
1207 | { | |
1208 | // Fill track histograms: Phi,Eta,Pt | |
1209 | Int_t i,j; | |
1210 | Int_t TCBins=100; | |
1cd88f63 | 1211 | TH2F *hdummypT= new TH2F("hdummypT","",TCBins,fTPCEtaMin,fTPCEtaMax,TCBins,fTPCPhiMin,fTPCPhiMax); //! |
ac6a3f1e | 1212 | |
1213 | for (i=0;i<fnTracks;i++) | |
1214 | { | |
62620fff | 1215 | AliPicoTrack* vtrack = (AliPicoTrack*) fmyTracks->At(i); |
ac6a3f1e | 1216 | fhTrackPt->Fill(vtrack->Pt()); |
1217 | fhTrackEta->Fill(vtrack->Eta()); | |
1218 | fhTrackPhi->Fill(vtrack->Phi()); | |
1219 | fhTrackEtaPhi->Fill(vtrack->Eta(),vtrack->Phi()); | |
24a61909 | 1220 | fhTrackPhiPt->Fill(vtrack->Phi(),vtrack->Pt()); |
1221 | fhTrackEtaPt->Fill(vtrack->Eta(),vtrack->Pt()); | |
24a61909 | 1222 | |
1223 | // Fill Associated Track Distributions for AOD QA Productions | |
1224 | // Global Tracks | |
1225 | if (vtrack->GetTrackType()==0) | |
1226 | { | |
1227 | fhGlobalTrackPt->Fill(vtrack->Pt()); | |
1228 | fhGlobalTrackEta->Fill(vtrack->Eta()); | |
1229 | fhGlobalTrackPhi->Fill(vtrack->Phi()); | |
1230 | fhGlobalTrackEtaPhi->Fill(vtrack->Eta(),vtrack->Phi()); | |
1231 | fhGlobalTrackPhiPt->Fill(vtrack->Phi(),vtrack->Pt()); | |
1232 | fhGlobalTrackEtaPt->Fill(vtrack->Eta(),vtrack->Pt()); | |
24a61909 | 1233 | } |
1234 | // Complementary Tracks | |
1235 | else if (vtrack->GetTrackType()==1) | |
1236 | { | |
1237 | fhComplementaryTrackPt->Fill(vtrack->Pt()); | |
1238 | fhComplementaryTrackEta->Fill(vtrack->Eta()); | |
1239 | fhComplementaryTrackPhi->Fill(vtrack->Phi()); | |
1240 | fhComplementaryTrackEtaPhi->Fill(vtrack->Eta(),vtrack->Phi()); | |
1241 | fhComplementaryTrackPhiPt->Fill(vtrack->Phi(),vtrack->Pt()); | |
1242 | fhComplementaryTrackEtaPt->Fill(vtrack->Eta(),vtrack->Pt()); | |
24a61909 | 1243 | } |
ac6a3f1e | 1244 | hdummypT->Fill(vtrack->Eta(),vtrack->Phi(),vtrack->Pt()); |
1245 | } | |
1246 | for (i=1;i<=TCBins;i++) | |
1247 | { | |
1248 | for (j=1;j<=TCBins;j++) | |
1249 | { | |
1250 | fpTrackPtProfile->Fill(hdummypT->GetXaxis()->GetBinCenter(i),hdummypT->GetYaxis()->GetBinCenter(j),fTPCArea*TMath::Power(TCBins,-2)*hdummypT->GetBinContent(i,j)); | |
1251 | } | |
1252 | } | |
1253 | delete hdummypT; | |
1254 | } | |
1255 | ||
1256 | void AliAnalysisTaskFullpAJets::ClusterHisto() | |
1257 | { | |
1258 | // Fill cluster histograms: Phi,Eta,Pt | |
1259 | Int_t i,j; | |
1260 | Int_t TCBins=100; | |
1cd88f63 | 1261 | TH2F *hdummypT= new TH2F("hdummypT","",TCBins,fEMCalEtaMin,fEMCalEtaMax,TCBins,fEMCalPhiMin,fEMCalPhiMax); //! |
ac6a3f1e | 1262 | Int_t myCellID=-2; |
62620fff | 1263 | TLorentzVector *cluster_vec = new TLorentzVector; |
ac6a3f1e | 1264 | |
1265 | for (i=0;i<fnClusters;i++) | |
1266 | { | |
1267 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); | |
8daeee93 | 1268 | vcluster->GetMomentum(*cluster_vec,fVertex); |
ac6a3f1e | 1269 | |
1270 | fhClusterPt->Fill(cluster_vec->Pt()); | |
1271 | fhClusterEta->Fill(cluster_vec->Eta()); | |
1272 | fhClusterPhi->Fill(cluster_vec->Phi()); | |
1273 | fhClusterEtaPhi->Fill(cluster_vec->Eta(),cluster_vec->Phi()); | |
24a61909 | 1274 | fhClusterPhiPt->Fill(cluster_vec->Phi(),cluster_vec->Pt()); |
1275 | fhClusterEtaPt->Fill(cluster_vec->Eta(),cluster_vec->Pt()); | |
ac6a3f1e | 1276 | hdummypT->Fill(cluster_vec->Eta(),cluster_vec->Phi(),cluster_vec->Pt()); |
08b981da | 1277 | fEMCALGeometry->GetAbsCellIdFromEtaPhi(cluster_vec->Eta(),cluster_vec->Phi(),myCellID); |
ac6a3f1e | 1278 | fhEMCalCellCounts->Fill(myCellID); |
ac6a3f1e | 1279 | } |
1280 | for (i=1;i<=TCBins;i++) | |
1281 | { | |
1282 | for (j=1;j<=TCBins;j++) | |
1283 | { | |
1284 | fpClusterPtProfile->Fill(hdummypT->GetXaxis()->GetBinCenter(i),hdummypT->GetYaxis()->GetBinCenter(j),fEMCalArea*TMath::Power(TCBins,-2)*hdummypT->GetBinContent(i,j)); | |
1285 | } | |
1286 | } | |
ac6a3f1e | 1287 | delete hdummypT; |
62620fff | 1288 | delete cluster_vec; |
ac6a3f1e | 1289 | } |
1290 | ||
c6202663 | 1291 | void AliAnalysisTaskFullpAJets::InitChargedJets() |
1292 | { | |
1293 | // Preliminary Jet Placement and Selection Cuts | |
1294 | Int_t i; | |
1295 | ||
1296 | fnAKTChargedJets = fmyAKTChargedJets->GetEntries(); | |
1297 | fnKTChargedJets = fmyKTChargedJets->GetEntries(); | |
1298 | ||
1299 | fTPCJet = new AlipAJetData("fTPCJet",kFALSE,fnAKTChargedJets); | |
1300 | fTPCFullJet = new AlipAJetData("fTPCFullJet",kFALSE,fnAKTChargedJets); | |
1301 | fTPCOnlyJet = new AlipAJetData("fTPCOnlyJet",kFALSE,fnAKTChargedJets); | |
8daeee93 | 1302 | fTPCJetUnbiased = new AlipAJetData("fTPCJetUnbiased",kFALSE,fnAKTChargedJets); |
c6202663 | 1303 | |
1304 | fTPCJet->SetSignalCut(fTPCJetThreshold); | |
1305 | fTPCJet->SetAreaCutFraction(fJetAreaCutFrac); | |
1306 | fTPCJet->SetJetR(fJetR); | |
3e43a01f | 1307 | fTPCJet->SetSignalTrackPtBias(fSignalTrackBias); |
c6202663 | 1308 | fTPCFullJet->SetSignalCut(fTPCJetThreshold); |
1309 | fTPCFullJet->SetAreaCutFraction(fJetAreaCutFrac); | |
1310 | fTPCFullJet->SetJetR(fJetR); | |
3e43a01f | 1311 | fTPCFullJet->SetSignalTrackPtBias(fSignalTrackBias); |
c6202663 | 1312 | fTPCOnlyJet->SetSignalCut(fTPCJetThreshold); |
1313 | fTPCOnlyJet->SetAreaCutFraction(fJetAreaCutFrac); | |
1314 | fTPCOnlyJet->SetJetR(fJetR); | |
3e43a01f | 1315 | fTPCOnlyJet->SetSignalTrackPtBias(fSignalTrackBias); |
8daeee93 | 1316 | fTPCJetUnbiased->SetSignalCut(fTPCJetThreshold); |
1317 | fTPCJetUnbiased->SetAreaCutFraction(fJetAreaCutFrac); | |
1318 | fTPCJetUnbiased->SetJetR(fJetR); | |
1319 | fTPCJetUnbiased->SetSignalTrackPtBias(kFALSE); | |
c6202663 | 1320 | |
1321 | // Initialize Jet Data | |
1322 | for (i=0;i<fnAKTChargedJets;i++) | |
1323 | { | |
1324 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(i); | |
1325 | ||
1326 | fTPCJet->SetIsJetInArray(IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kFALSE),i); | |
1327 | fTPCFullJet->SetIsJetInArray(IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kTRUE),i); | |
1328 | fTPCOnlyJet->SetIsJetInArray(IsInTPCFull(fJetR,myJet->Phi(),myJet->Eta()),i); | |
8daeee93 | 1329 | fTPCJetUnbiased->SetIsJetInArray(IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kFALSE),i); |
c6202663 | 1330 | } |
1331 | fTPCJet->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets); | |
1332 | fTPCFullJet->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets); | |
1333 | fTPCOnlyJet->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets); | |
8daeee93 | 1334 | fTPCJetUnbiased->InitializeJetData(fmyAKTChargedJets,fnAKTChargedJets); |
c6202663 | 1335 | |
1336 | // kT Jets | |
1337 | fTPCkTFullJet = new AlipAJetData("fTPCkTFullJet",kFALSE,fnKTChargedJets); | |
1338 | fTPCkTFullJet->SetSignalCut(fTPCJetThreshold); | |
1339 | fTPCkTFullJet->SetAreaCutFraction(0.25*fJetAreaCutFrac); | |
1340 | fTPCkTFullJet->SetJetR(fJetR); | |
1341 | ||
1342 | for (i=0;i<fnKTChargedJets;i++) | |
1343 | { | |
1344 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(i); | |
1345 | fTPCkTFullJet->SetIsJetInArray(IsInTPC(fJetR,myJet->Phi(),myJet->Eta(),kTRUE),i); | |
1346 | } | |
1347 | fTPCkTFullJet->InitializeJetData(fmyKTChargedJets,fnKTChargedJets); | |
1348 | ||
1349 | // Raw Charged Jet Spectra | |
6bda5230 | 1350 | if (fCalculateRhoJet>=2 || (fCalculateRhoJet>=1 && fMCPartLevel==kTRUE)) |
62620fff | 1351 | { |
1352 | fTPCRawJets->FillBSJS(fEventCentrality,0.0,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets()); | |
1353 | } | |
c6202663 | 1354 | } |
1355 | ||
1356 | void AliAnalysisTaskFullpAJets::InitFullJets() | |
1357 | { | |
1358 | // Preliminary Jet Placement and Selection Cuts | |
1359 | Int_t i; | |
1360 | ||
1361 | fnAKTFullJets = fmyAKTFullJets->GetEntries(); | |
1362 | fnKTFullJets = fmyKTFullJets->GetEntries(); | |
1363 | ||
1364 | fEMCalJet = new AlipAJetData("fEMCalJet",kTRUE,fnAKTFullJets); | |
1365 | fEMCalFullJet = new AlipAJetData("fEMCalFullJet",kTRUE,fnAKTFullJets); | |
1366 | fEMCalPartJet = new AlipAJetData("fEMCalPartJet",kTRUE,fnAKTFullJets); | |
8daeee93 | 1367 | fEMCalPartJetUnbiased = new AlipAJetData("fEMCalPartJetUnbiased",kTRUE,fnAKTFullJets); |
c6202663 | 1368 | |
1369 | fEMCalJet->SetSignalCut(fEMCalJetThreshold); | |
1370 | fEMCalJet->SetAreaCutFraction(fJetAreaCutFrac); | |
1371 | fEMCalJet->SetJetR(fJetR); | |
91d0893e | 1372 | fEMCalJet->SetNEF(fNEFSignalJetCut); |
3e43a01f | 1373 | fEMCalJet->SetSignalTrackPtBias(fSignalTrackBias); |
c6202663 | 1374 | fEMCalFullJet->SetSignalCut(fEMCalJetThreshold); |
1375 | fEMCalFullJet->SetAreaCutFraction(fJetAreaCutFrac); | |
1376 | fEMCalFullJet->SetJetR(fJetR); | |
91d0893e | 1377 | fEMCalFullJet->SetNEF(fNEFSignalJetCut); |
3e43a01f | 1378 | fEMCalFullJet->SetSignalTrackPtBias(fSignalTrackBias); |
c6202663 | 1379 | fEMCalPartJet->SetSignalCut(fEMCalJetThreshold); |
1380 | fEMCalPartJet->SetAreaCutFraction(fJetAreaCutFrac); | |
1381 | fEMCalPartJet->SetJetR(fJetR); | |
91d0893e | 1382 | fEMCalPartJet->SetNEF(fNEFSignalJetCut); |
3e43a01f | 1383 | fEMCalPartJet->SetSignalTrackPtBias(fSignalTrackBias); |
8daeee93 | 1384 | fEMCalPartJetUnbiased->SetSignalCut(fEMCalJetThreshold); |
1385 | fEMCalPartJetUnbiased->SetAreaCutFraction(fJetAreaCutFrac); | |
1386 | fEMCalPartJetUnbiased->SetJetR(fJetR); | |
1387 | fEMCalPartJetUnbiased->SetNEF(1.0); | |
1388 | fEMCalPartJetUnbiased->SetSignalTrackPtBias(kFALSE); | |
c6202663 | 1389 | |
1390 | // Initialize Jet Data | |
1391 | for (i=0;i<fnAKTFullJets;i++) | |
1392 | { | |
1393 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(i); | |
1394 | ||
1395 | fEMCalJet->SetIsJetInArray(IsInEMCal(myJet->Phi(),myJet->Eta()),i); | |
1396 | fEMCalFullJet->SetIsJetInArray(IsInEMCalFull(fJetR,myJet->Phi(),myJet->Eta()),i); | |
1397 | fEMCalPartJet->SetIsJetInArray(IsInEMCalPart(fJetR,myJet->Phi(),myJet->Eta()),i); | |
8daeee93 | 1398 | fEMCalPartJetUnbiased->SetIsJetInArray(IsInEMCalPart(fJetR,myJet->Phi(),myJet->Eta()),i); |
c6202663 | 1399 | } |
1400 | fEMCalJet->InitializeJetData(fmyAKTFullJets,fnAKTFullJets); | |
1401 | fEMCalFullJet->InitializeJetData(fmyAKTFullJets,fnAKTFullJets); | |
1402 | fEMCalPartJet->InitializeJetData(fmyAKTFullJets,fnAKTFullJets); | |
8daeee93 | 1403 | fEMCalPartJetUnbiased->InitializeJetData(fmyAKTFullJets,fnAKTFullJets); |
c6202663 | 1404 | |
1405 | // kT Jets | |
1406 | fEMCalkTFullJet = new AlipAJetData("fEMCalkTFullJet",kTRUE,fnKTFullJets); | |
1407 | fEMCalkTFullJet->SetSignalCut(fEMCalJetThreshold); | |
1408 | fEMCalkTFullJet->SetAreaCutFraction(0.25*fJetAreaCutFrac); | |
1409 | fEMCalkTFullJet->SetJetR(fJetR); | |
91d0893e | 1410 | fEMCalkTFullJet->SetNEF(fNEFSignalJetCut); |
3e43a01f | 1411 | fEMCalkTFullJet->SetSignalTrackPtBias(fSignalTrackBias); |
c6202663 | 1412 | |
1413 | for (i=0;i<fnKTFullJets;i++) | |
1414 | { | |
1415 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(i); | |
1416 | fEMCalkTFullJet->SetIsJetInArray(IsInEMCalFull(fJetR,myJet->Phi(),myJet->Eta()),i); | |
1417 | } | |
1418 | fEMCalkTFullJet->InitializeJetData(fmyKTFullJets,fnKTFullJets); | |
1419 | ||
1420 | // Raw Full Jet Spectra | |
6bda5230 CY |
1421 | if (fMCPartLevel==kFALSE) |
1422 | { | |
1423 | fEMCalRawJets->FillBSJS(fEventCentrality,0.0,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
1424 | } | |
c6202663 | 1425 | } |
1426 | ||
c6202663 | 1427 | void AliAnalysisTaskFullpAJets::GenerateTPCRandomConesPt() |
ac6a3f1e | 1428 | { |
1429 | Int_t i,j; | |
1430 | Double_t E_tracks_total=0.; | |
ac6a3f1e | 1431 | TRandom3 u(time(NULL)); |
1432 | ||
c6202663 | 1433 | Double_t Eta_Center=0.5*(fTPCEtaMin+fTPCEtaMax); |
1434 | Double_t Phi_Center=0.5*(fTPCPhiMin+fTPCPhiMax); | |
ac6a3f1e | 1435 | Int_t event_mult=0; |
3e43a01f | 1436 | Int_t event_track_mult=0; |
ac6a3f1e | 1437 | Int_t clus_mult=0; |
1438 | ||
c6202663 | 1439 | for (i=0;i<fnBckgClusters;i++) |
1440 | { | |
1441 | fTPCRCBckgFluc[i]=0.0; | |
1442 | fTPCRCBckgFlucSignal[i]=0.0; | |
7acc3e04 | 1443 | fTPCRCBckgFlucNColl[i]=0.0; |
c6202663 | 1444 | } |
1445 | ||
ac6a3f1e | 1446 | TLorentzVector *dummy= new TLorentzVector; |
c6202663 | 1447 | TLorentzVector *temp_jet= new TLorentzVector; |
62620fff | 1448 | TLorentzVector *track_vec = new TLorentzVector; |
1449 | ||
c6202663 | 1450 | // First, consider the RC with no spatial restrictions |
ac6a3f1e | 1451 | for (j=0;j<fnBckgClusters;j++) |
1452 | { | |
ac6a3f1e | 1453 | E_tracks_total=0.; |
ac6a3f1e | 1454 | |
c6202663 | 1455 | dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0); |
ac6a3f1e | 1456 | // Loop over all tracks |
1457 | for (i=0;i<fnTracks;i++) | |
1458 | { | |
1459 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
c6202663 | 1460 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE) |
ac6a3f1e | 1461 | { |
ac6a3f1e | 1462 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
1463 | if (dummy->DeltaR(*track_vec)<fJetR) | |
1464 | { | |
ac6a3f1e | 1465 | E_tracks_total+=vtrack->Pt(); |
1466 | } | |
ac6a3f1e | 1467 | } |
1468 | } | |
c6202663 | 1469 | fTPCRCBckgFlucSignal[j]=E_tracks_total; |
1470 | } | |
1471 | ||
1472 | // Now, consider the RC where the vertex of RC is at least 2R away from the leading signal | |
1473 | E_tracks_total=0.0; | |
8daeee93 | 1474 | if (fTPCJetUnbiased->GetLeadingPt()<0.0) |
c6202663 | 1475 | { |
1476 | temp_jet->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0); | |
1477 | } | |
1478 | else | |
1479 | { | |
8daeee93 | 1480 | AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fTPCJetUnbiased->GetLeadingIndex()); |
c6202663 | 1481 | myJet->GetMom(*temp_jet); |
1482 | } | |
1483 | ||
1484 | for (j=0;j<fnBckgClusters;j++) | |
1485 | { | |
1486 | event_mult=0; | |
3e43a01f | 1487 | event_track_mult=0; |
c6202663 | 1488 | clus_mult=0; |
1489 | E_tracks_total=0.; | |
ac6a3f1e | 1490 | |
c6202663 | 1491 | dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0); |
1492 | while (temp_jet->DeltaR(*dummy)<fJetR) | |
ac6a3f1e | 1493 | { |
c6202663 | 1494 | dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0); |
ac6a3f1e | 1495 | } |
c6202663 | 1496 | // Loop over all tracks |
1497 | for (i=0;i<fnTracks;i++) | |
ac6a3f1e | 1498 | { |
c6202663 | 1499 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); |
6bda5230 | 1500 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE) == kTRUE) |
c6202663 | 1501 | { |
1502 | event_mult++; | |
6bda5230 | 1503 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta()) == kTRUE) |
3e43a01f | 1504 | { |
1505 | event_track_mult++; | |
1506 | } | |
c6202663 | 1507 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
1508 | if (dummy->DeltaR(*track_vec)<fJetR) | |
1509 | { | |
1510 | clus_mult++; | |
1511 | E_tracks_total+=vtrack->Pt(); | |
1512 | } | |
c6202663 | 1513 | } |
ac6a3f1e | 1514 | } |
c6202663 | 1515 | fTPCRCBckgFluc[j]=E_tracks_total; |
ac6a3f1e | 1516 | } |
62620fff | 1517 | if (fTrackQA==kTRUE) |
1518 | { | |
1519 | fhTPCEventMult->Fill(fEventCentrality,event_mult); | |
1520 | fpTPCEventMult->Fill(fEventCentrality,event_mult); | |
1521 | fhEMCalTrackEventMult->Fill(fEventCentrality,event_track_mult); | |
1522 | } | |
6bda5230 | 1523 | if (fCalculateRhoJet>=2 || (fCalculateRhoJet>=1 && fMCPartLevel==kTRUE)) |
62620fff | 1524 | { |
1525 | fTPCRawJets->FillDeltaPt(fEventCentrality,0.0,fJetR,fTPCRCBckgFluc,1); | |
1526 | } | |
ac6a3f1e | 1527 | |
7acc3e04 | 1528 | // For the case of partial exclusion, merely allow a superposition of full and no exclusion with probability p=1/Ncoll |
1529 | Double_t exclusion_prob; | |
1530 | for (j=0;j<fnBckgClusters;j++) | |
1531 | { | |
1532 | exclusion_prob = u.Uniform(0,1); | |
1533 | if (exclusion_prob<(1/fNColl)) | |
1534 | { | |
1535 | fTPCRCBckgFlucNColl[j]=fTPCRCBckgFlucSignal[j]; | |
1536 | } | |
1537 | else | |
1538 | { | |
1539 | fTPCRCBckgFlucNColl[j]=fTPCRCBckgFluc[j]; | |
1540 | } | |
1541 | } | |
1542 | ||
ac6a3f1e | 1543 | delete dummy; |
c6202663 | 1544 | delete temp_jet; |
62620fff | 1545 | delete track_vec; |
ac6a3f1e | 1546 | } |
1547 | ||
c6202663 | 1548 | void AliAnalysisTaskFullpAJets::GenerateEMCalRandomConesPt() |
ac6a3f1e | 1549 | { |
78246241 | 1550 | Int_t i,j; |
c6202663 | 1551 | Double_t E_tracks_total=0.; |
1552 | Double_t E_caloclusters_total=0.; | |
1553 | TRandom3 u(time(NULL)); | |
ac6a3f1e | 1554 | |
c6202663 | 1555 | Double_t Eta_Center=0.5*(fEMCalEtaMin+fEMCalEtaMax); |
1556 | Double_t Phi_Center=0.5*(fEMCalPhiMin+fEMCalPhiMax); | |
1557 | Int_t event_mult=0; | |
1558 | Int_t clus_mult=0; | |
ac6a3f1e | 1559 | |
c6202663 | 1560 | for (i=0;i<fnBckgClusters;i++) |
ac6a3f1e | 1561 | { |
c6202663 | 1562 | fEMCalRCBckgFluc[i]=0.0; |
1563 | fEMCalRCBckgFlucSignal[i]=0.0; | |
7acc3e04 | 1564 | fEMCalRCBckgFlucNColl[i]=0.0; |
ac6a3f1e | 1565 | } |
78246241 | 1566 | |
c6202663 | 1567 | TLorentzVector *dummy= new TLorentzVector; |
1568 | TLorentzVector *temp_jet= new TLorentzVector; | |
62620fff | 1569 | TLorentzVector *track_vec = new TLorentzVector; |
1570 | TLorentzVector *cluster_vec = new TLorentzVector; | |
1571 | ||
c6202663 | 1572 | // First, consider the RC with no spatial restrictions |
1573 | for (j=0;j<fnBckgClusters;j++) | |
78246241 | 1574 | { |
c6202663 | 1575 | E_tracks_total=0.; |
1576 | E_caloclusters_total=0.; | |
1577 | ||
1578 | dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0); | |
1579 | // Loop over all tracks | |
1580 | for (i=0;i<fnTracks;i++) | |
78246241 | 1581 | { |
c6202663 | 1582 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); |
1583 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) | |
78246241 | 1584 | { |
c6202663 | 1585 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
1586 | if (dummy->DeltaR(*track_vec)<fJetR) | |
78246241 | 1587 | { |
c6202663 | 1588 | E_tracks_total+=vtrack->Pt(); |
78246241 | 1589 | } |
78246241 | 1590 | } |
1591 | } | |
78246241 | 1592 | |
c6202663 | 1593 | // Loop over all caloclusters |
1594 | for (i=0;i<fnClusters;i++) | |
78246241 | 1595 | { |
c6202663 | 1596 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); |
8daeee93 | 1597 | vcluster->GetMomentum(*cluster_vec,fVertex); |
c6202663 | 1598 | if (dummy->DeltaR(*cluster_vec)<fJetR) |
1599 | { | |
1600 | clus_mult++; | |
825d120f | 1601 | E_caloclusters_total+=cluster_vec->Pt(); |
c6202663 | 1602 | } |
78246241 | 1603 | } |
c6202663 | 1604 | fEMCalRCBckgFlucSignal[j]=E_tracks_total+E_caloclusters_total; |
78246241 | 1605 | } |
c6202663 | 1606 | |
1607 | // Now, consider the RC where the vertex of RC is at least 2R away from the leading signal | |
1608 | E_tracks_total=0.; | |
1609 | E_caloclusters_total=0.; | |
8daeee93 | 1610 | if (fEMCalPartJetUnbiased->GetLeadingPt()<0.0) |
78246241 | 1611 | { |
c6202663 | 1612 | temp_jet->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0); |
78246241 | 1613 | } |
c6202663 | 1614 | else |
78246241 | 1615 | { |
8daeee93 | 1616 | AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJetUnbiased->GetLeadingIndex()); |
c6202663 | 1617 | myJet->GetMom(*temp_jet); |
78246241 | 1618 | } |
1619 | ||
c6202663 | 1620 | for (j=0;j<fnBckgClusters;j++) |
78246241 | 1621 | { |
c6202663 | 1622 | event_mult=0; |
1623 | clus_mult=0; | |
1624 | E_tracks_total=0.; | |
1625 | E_caloclusters_total=0.; | |
1626 | ||
1627 | dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0); | |
1628 | while (temp_jet->DeltaR(*dummy)<fJetR) | |
1629 | { | |
1630 | dummy->SetPtEtaPhiE(1,u.Uniform(Eta_Center-fJetR,Eta_Center+fJetR),u.Uniform(Phi_Center-fJetR,Phi_Center+fJetR),0); | |
1631 | } | |
1632 | // Loop over all tracks | |
1633 | for (i=0;i<fnTracks;i++) | |
1634 | { | |
1635 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
1636 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) | |
1637 | { | |
1638 | event_mult++; | |
c6202663 | 1639 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
1640 | if (dummy->DeltaR(*track_vec)<fJetR) | |
1641 | { | |
1642 | clus_mult++; | |
1643 | E_tracks_total+=vtrack->Pt(); | |
1644 | } | |
c6202663 | 1645 | } |
1646 | } | |
1647 | ||
1648 | // Loop over all caloclusters | |
1649 | for (i=0;i<fnClusters;i++) | |
1650 | { | |
1651 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); | |
8daeee93 | 1652 | vcluster->GetMomentum(*cluster_vec,fVertex); |
c6202663 | 1653 | event_mult++; |
1654 | if (dummy->DeltaR(*cluster_vec)<fJetR) | |
1655 | { | |
1656 | clus_mult++; | |
825d120f | 1657 | E_caloclusters_total+=cluster_vec->Pt(); |
c6202663 | 1658 | } |
c6202663 | 1659 | } |
1660 | fEMCalRCBckgFluc[j]=E_tracks_total+E_caloclusters_total; | |
78246241 | 1661 | } |
62620fff | 1662 | if (fClusterQA==kTRUE) |
1663 | { | |
1664 | fhEMCalEventMult->Fill(fEventCentrality,event_mult); | |
1665 | fpEMCalEventMult->Fill(fEventCentrality,event_mult); | |
1666 | } | |
c6202663 | 1667 | fEMCalRawJets->FillDeltaPt(fEventCentrality,0.0,fJetR,fEMCalRCBckgFluc,1); |
1668 | ||
7acc3e04 | 1669 | // For the case of partial exclusion, merely allow a superposition of full and no exclusion with probability p=1/Ncoll |
1670 | Double_t exclusion_prob; | |
1671 | for (j=0;j<fnBckgClusters;j++) | |
1672 | { | |
1673 | exclusion_prob = u.Uniform(0,1); | |
1674 | if (exclusion_prob<(1/fNColl)) | |
1675 | { | |
1676 | fEMCalRCBckgFlucNColl[j]=fEMCalRCBckgFlucSignal[j]; | |
1677 | } | |
1678 | else | |
1679 | { | |
1680 | fEMCalRCBckgFlucNColl[j]=fEMCalRCBckgFluc[j]; | |
1681 | } | |
1682 | } | |
1683 | ||
c6202663 | 1684 | delete dummy; |
1685 | delete temp_jet; | |
62620fff | 1686 | delete track_vec; |
1687 | delete cluster_vec; | |
ac6a3f1e | 1688 | } |
1689 | ||
c6202663 | 1690 | // Charged Rho's |
1691 | void AliAnalysisTaskFullpAJets::EstimateChargedRho0() | |
ac6a3f1e | 1692 | { |
ac6a3f1e | 1693 | Int_t i; |
c6202663 | 1694 | Double_t E_tracks_total=0.0; |
1695 | Double_t TPC_rho=0.; | |
ac6a3f1e | 1696 | |
c6202663 | 1697 | // Loop over all tracks |
1698 | for (i=0;i<fnTracks;i++) | |
1699 | { | |
1700 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
1701 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE) | |
1702 | { | |
1703 | E_tracks_total+=vtrack->Pt(); | |
1704 | } | |
1705 | } | |
ac6a3f1e | 1706 | |
c6202663 | 1707 | // Calculate the mean Background density |
1708 | TPC_rho=E_tracks_total/fTPCArea; | |
1709 | fRhoCharged=TPC_rho; | |
ac6a3f1e | 1710 | |
c6202663 | 1711 | // Fill Histograms |
1712 | fRhoCharged0->FillRho(fEventCentrality,TPC_rho); | |
1713 | fRhoCharged0->FillBSJS(fEventCentrality,TPC_rho,fTPCJetThreshold,fmyAKTChargedJets,fTPCJet->GetJets(),fTPCJet->GetTotalJets()); | |
1714 | fRhoCharged0->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFluc,1); | |
1715 | fRhoCharged0->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucSignal,1); | |
7acc3e04 | 1716 | fRhoCharged0->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucNColl,1); |
c6202663 | 1717 | fRhoCharged0->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR); |
1718 | fRhoCharged0->FillLeadingJetPtRho(fTPCJet->GetLeadingPt(),TPC_rho); | |
ac6a3f1e | 1719 | |
c6202663 | 1720 | } |
ac6a3f1e | 1721 | |
c6202663 | 1722 | void AliAnalysisTaskFullpAJets::EstimateChargedRho1() |
1723 | { | |
1724 | Int_t i; | |
1725 | Double_t E_tracks_total=0.0; | |
1726 | Double_t TPC_rho=0.; | |
1727 | ||
62620fff | 1728 | TLorentzVector *temp_jet= new TLorentzVector; |
1729 | TLorentzVector *track_vec = new TLorentzVector; | |
1730 | ||
8daeee93 | 1731 | if (fTPCJetUnbiased->GetLeadingPt()>=fTPCJetThreshold) |
ac6a3f1e | 1732 | { |
c6202663 | 1733 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex()); |
c6202663 | 1734 | myJet->GetMom(*temp_jet); |
ac6a3f1e | 1735 | |
c6202663 | 1736 | // Loop over all tracks |
1737 | for (i=0;i<fnTracks;i++) | |
1738 | { | |
1739 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
1740 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE) | |
1741 | { | |
c6202663 | 1742 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
1743 | if (temp_jet->DeltaR(*track_vec)>fJetRForRho) | |
1744 | { | |
1745 | E_tracks_total+=vtrack->Pt(); | |
1746 | } | |
c6202663 | 1747 | } |
1748 | } | |
ac6a3f1e | 1749 | |
c6202663 | 1750 | // Calculate the mean Background density |
1751 | TPC_rho=E_tracks_total/(fTPCArea-AreaWithinTPC(fJetR,myJet->Eta())); | |
1752 | } | |
1753 | else // i.e. No signal jets -> same as total background density | |
1754 | { | |
1755 | // Loop over all tracks | |
1756 | for (i=0;i<fnTracks;i++) | |
ac6a3f1e | 1757 | { |
c6202663 | 1758 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); |
1759 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE) | |
ac6a3f1e | 1760 | { |
c6202663 | 1761 | E_tracks_total+=vtrack->Pt(); |
ac6a3f1e | 1762 | } |
c6202663 | 1763 | } |
1764 | // Calculate the mean Background density | |
1765 | TPC_rho=E_tracks_total/fTPCArea; | |
1766 | } | |
62620fff | 1767 | delete track_vec; |
1768 | delete temp_jet; | |
1769 | ||
c6202663 | 1770 | // Fill histograms |
1771 | fRhoCharged1->FillRho(fEventCentrality,TPC_rho); | |
1772 | fRhoCharged1->FillBSJS(fEventCentrality,TPC_rho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets()); | |
1773 | fRhoCharged1->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFluc,1); | |
1774 | fRhoCharged1->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucSignal,1); | |
7acc3e04 | 1775 | fRhoCharged1->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucNColl,1); |
c6202663 | 1776 | fRhoCharged1->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR); |
1777 | fRhoCharged1->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),TPC_rho); | |
1778 | } | |
1779 | ||
1780 | void AliAnalysisTaskFullpAJets::EstimateChargedRho2() | |
1781 | { | |
1782 | Int_t i; | |
1783 | Double_t E_tracks_total=0.0; | |
1784 | Double_t TPC_rho=0.; | |
62620fff | 1785 | |
1786 | TLorentzVector *temp_jet1= new TLorentzVector; | |
1787 | TLorentzVector *temp_jet2= new TLorentzVector; | |
1788 | TLorentzVector *track_vec = new TLorentzVector; | |
1789 | ||
8daeee93 | 1790 | if ((fTPCJetUnbiased->GetLeadingPt()>=fTPCJetThreshold) && (fTPCJetUnbiased->GetSubLeadingPt()>=fTPCJetThreshold)) |
c6202663 | 1791 | { |
1792 | AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex()); | |
c6202663 | 1793 | myhJet->GetMom(*temp_jet1); |
1794 | ||
1795 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSubLeadingIndex()); | |
c6202663 | 1796 | myJet->GetMom(*temp_jet2); |
1797 | ||
1798 | // Loop over all tracks | |
1799 | for (i=0;i<fnTracks;i++) | |
1800 | { | |
1801 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
1802 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE) | |
ac6a3f1e | 1803 | { |
c6202663 | 1804 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
1805 | if ((temp_jet1->DeltaR(*track_vec)>fJetRForRho) && (temp_jet2->DeltaR(*track_vec)>fJetRForRho)) | |
c54b626a | 1806 | { |
c6202663 | 1807 | E_tracks_total+=vtrack->Pt(); |
c54b626a | 1808 | } |
c6202663 | 1809 | } |
1810 | } | |
c6202663 | 1811 | |
1812 | // Calculate the mean Background density | |
1813 | TPC_rho=E_tracks_total/(fTPCArea-AreaWithinTPC(fJetR,myhJet->Eta())-AreaWithinTPC(fJetR,myJet->Eta())); | |
1814 | } | |
8daeee93 | 1815 | else if (fTPCJetUnbiased->GetLeadingPt()>=fTPCJetThreshold) |
c6202663 | 1816 | { |
1817 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex()); | |
62620fff | 1818 | myJet->GetMom(*temp_jet1); |
c6202663 | 1819 | |
1820 | // Loop over all tracks | |
1821 | for (i=0;i<fnTracks;i++) | |
1822 | { | |
1823 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
1824 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE) | |
1825 | { | |
c6202663 | 1826 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
62620fff | 1827 | if (temp_jet1->DeltaR(*track_vec)>fJetRForRho) |
ac6a3f1e | 1828 | { |
c6202663 | 1829 | E_tracks_total+=vtrack->Pt(); |
ac6a3f1e | 1830 | } |
c6202663 | 1831 | } |
1832 | } | |
c6202663 | 1833 | |
1834 | // Calculate the mean Background density | |
1835 | TPC_rho=E_tracks_total/(fTPCArea-AreaWithinTPC(fJetR,myJet->Eta())); | |
1836 | } | |
1837 | else // i.e. No signal jets -> same as total background density | |
1838 | { | |
1839 | // Loop over all tracks | |
1840 | for (i=0;i<fnTracks;i++) | |
1841 | { | |
1842 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
1843 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE) | |
1844 | { | |
1845 | E_tracks_total+=vtrack->Pt(); | |
1846 | } | |
1847 | } | |
1848 | ||
1849 | // Calculate the mean Background density | |
1850 | TPC_rho=E_tracks_total/fTPCArea; | |
1851 | } | |
62620fff | 1852 | delete temp_jet1; |
1853 | delete temp_jet2; | |
1854 | delete track_vec; | |
1855 | ||
c6202663 | 1856 | // Fill histograms |
1857 | fRhoCharged2->FillRho(fEventCentrality,TPC_rho); | |
1858 | fRhoCharged2->FillBSJS(fEventCentrality,TPC_rho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets()); | |
1859 | fRhoCharged2->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFluc,1); | |
1860 | fRhoCharged2->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucSignal,1); | |
7acc3e04 | 1861 | fRhoCharged2->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucNColl,1); |
c6202663 | 1862 | fRhoCharged2->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR); |
1863 | fRhoCharged2->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),TPC_rho); | |
1864 | } | |
e864d416 | 1865 | |
c6202663 | 1866 | void AliAnalysisTaskFullpAJets::EstimateChargedRhoN() |
1867 | { | |
1868 | Int_t i,j; | |
1869 | Bool_t track_away_from_jet; | |
1870 | Double_t E_tracks_total=0.0; | |
1871 | Double_t TPC_rho=0.0; | |
1872 | Double_t jet_area_total=0.0; | |
1873 | ||
62620fff | 1874 | TLorentzVector *jet_vec= new TLorentzVector; |
1875 | TLorentzVector *track_vec = new TLorentzVector; | |
1876 | ||
c6202663 | 1877 | // First, sum all tracks within the EMCal that are away from jet(s) above Pt Threshold |
1878 | for (i=0;i<fnTracks;i++) | |
1879 | { | |
1880 | // First, check if track is in the EMCal!! | |
1881 | AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(i); | |
1882 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE) | |
1883 | { | |
8daeee93 | 1884 | if (fTPCJetUnbiased->GetTotalSignalJets()<1) |
c6202663 | 1885 | { |
1886 | E_tracks_total+=vtrack->Pt(); | |
1887 | } | |
1888 | else | |
1889 | { | |
1890 | track_away_from_jet=kTRUE; | |
1891 | j=0; | |
c6202663 | 1892 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
8daeee93 | 1893 | while (track_away_from_jet==kTRUE && j<fTPCJetUnbiased->GetTotalSignalJets()) |
ac6a3f1e | 1894 | { |
8daeee93 | 1895 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJetUnbiased->GetSignalJetIndex(j)); |
c6202663 | 1896 | myJet->GetMom(*jet_vec); |
1897 | if (track_vec->DeltaR(*jet_vec)<=fJetRForRho) | |
1898 | { | |
1899 | track_away_from_jet=kFALSE; | |
1900 | } | |
c6202663 | 1901 | j++; |
ac6a3f1e | 1902 | } |
c6202663 | 1903 | if (track_away_from_jet==kTRUE) |
ac6a3f1e | 1904 | { |
c6202663 | 1905 | E_tracks_total+=vtrack->Pt(); |
ac6a3f1e | 1906 | } |
1907 | } | |
1908 | } | |
c6202663 | 1909 | } |
1910 | ||
1911 | // Determine area of all Jets that are within the EMCal | |
8daeee93 | 1912 | if (fTPCJetUnbiased->GetTotalSignalJets()==0) |
c6202663 | 1913 | { |
1914 | jet_area_total=0.0; | |
1915 | } | |
1916 | else | |
1917 | { | |
8daeee93 | 1918 | for (i=0;i<fTPCJetUnbiased->GetTotalSignalJets();i++) |
c6202663 | 1919 | { |
8daeee93 | 1920 | AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fTPCJetUnbiased->GetSignalJetIndex(i)); |
c6202663 | 1921 | jet_area_total+=AreaWithinTPC(fJetR,myJet->Eta()); |
1922 | } | |
1923 | } | |
62620fff | 1924 | delete jet_vec; |
1925 | delete track_vec; | |
1926 | ||
c6202663 | 1927 | // Calculate Rho |
1928 | TPC_rho = E_tracks_total/(fTPCArea-jet_area_total); | |
1929 | ||
1930 | // Fill Histogram | |
1931 | fRhoChargedN->FillRho(fEventCentrality,TPC_rho); | |
1932 | fRhoChargedN->FillBSJS(fEventCentrality,TPC_rho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets()); | |
1933 | fRhoChargedN->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFluc,1); | |
1934 | fRhoChargedN->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucSignal,1); | |
7acc3e04 | 1935 | fRhoChargedN->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fTPCRCBckgFlucNColl,1); |
c6202663 | 1936 | fRhoChargedN->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR); |
1937 | fRhoChargedN->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),TPC_rho); | |
e864d416 | 1938 | |
c6202663 | 1939 | } |
e864d416 | 1940 | |
c6202663 | 1941 | void AliAnalysisTaskFullpAJets::EstimateChargedRhoScale() |
1942 | { | |
1943 | Int_t i,j; | |
1944 | Bool_t track_away_from_jet; | |
1945 | Double_t E_tracks_total=0.0; | |
1946 | Double_t TPC_rho=0.0; | |
1947 | Double_t jet_area_total=0.0; | |
1948 | ||
62620fff | 1949 | TLorentzVector *jet_vec= new TLorentzVector; |
1950 | TLorentzVector *track_vec = new TLorentzVector; | |
1951 | ||
c6202663 | 1952 | // First, sum all tracks within the EMCal that are away from jet(s) above Pt Threshold |
1953 | for (i=0;i<fnTracks;i++) | |
1954 | { | |
1955 | // First, check if track is in the EMCal!! | |
1956 | AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(i); | |
1957 | if (IsInTPC(fJetR,vtrack->Phi(),vtrack->Eta(),kFALSE)==kTRUE) | |
ac6a3f1e | 1958 | { |
8daeee93 | 1959 | if (fTPCJetUnbiased->GetTotalSignalJets()<1) |
ac6a3f1e | 1960 | { |
c6202663 | 1961 | E_tracks_total+=vtrack->Pt(); |
ac6a3f1e | 1962 | } |
c6202663 | 1963 | else |
ac6a3f1e | 1964 | { |
c6202663 | 1965 | track_away_from_jet=kTRUE; |
1966 | j=0; | |
c6202663 | 1967 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
8daeee93 | 1968 | while (track_away_from_jet==kTRUE && j<fTPCJetUnbiased->GetTotalSignalJets()) |
ac6a3f1e | 1969 | { |
8daeee93 | 1970 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJetUnbiased->GetSignalJetIndex(j)); |
c6202663 | 1971 | myJet->GetMom(*jet_vec); |
1972 | if (track_vec->DeltaR(*jet_vec)<=fJetRForRho) | |
1973 | { | |
1974 | track_away_from_jet=kFALSE; | |
1975 | } | |
c6202663 | 1976 | j++; |
ac6a3f1e | 1977 | } |
c6202663 | 1978 | if (track_away_from_jet==kTRUE) |
ac6a3f1e | 1979 | { |
c6202663 | 1980 | E_tracks_total+=vtrack->Pt(); |
ac6a3f1e | 1981 | } |
1982 | } | |
c6202663 | 1983 | } |
1984 | } | |
1985 | ||
7acc3e04 | 1986 | // Determine area of all Jets that are within the TPC |
8daeee93 | 1987 | if (fTPCJetUnbiased->GetTotalSignalJets()==0) |
c6202663 | 1988 | { |
1989 | jet_area_total=0.0; | |
1990 | } | |
1991 | else | |
1992 | { | |
8daeee93 | 1993 | for (i=0;i<fTPCJetUnbiased->GetTotalSignalJets();i++) |
c6202663 | 1994 | { |
8daeee93 | 1995 | AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fTPCJetUnbiased->GetSignalJetIndex(i)); |
c6202663 | 1996 | jet_area_total+=AreaWithinTPC(fJetR,myJet->Eta()); |
1997 | } | |
1998 | } | |
62620fff | 1999 | delete jet_vec; |
2000 | delete track_vec; | |
2001 | ||
c6202663 | 2002 | // Calculate Rho |
2003 | TPC_rho = E_tracks_total/(fTPCArea-jet_area_total); | |
2004 | TPC_rho*=fScaleFactor; | |
2005 | ||
2006 | // Fill Histogram | |
2007 | fRhoChargedScale->FillRho(fEventCentrality,TPC_rho); | |
2008 | fRhoChargedScale->FillBSJS(fEventCentrality,TPC_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2009 | fRhoChargedScale->FillDeltaPt(fEventCentrality,TPC_rho,fJetR,fEMCalRCBckgFluc,1); | |
2010 | fRhoChargedScale->FillDeltaPtSignal(fEventCentrality,TPC_rho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2011 | fRhoChargedScale->FillDeltaPtNColl(fEventCentrality,TPC_rho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2012 | fRhoChargedScale->FillBackgroundFluctuations(fEventCentrality,TPC_rho,fJetR); |
2013 | fRhoChargedScale->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),TPC_rho); | |
825d120f | 2014 | fRhoChargedScale->FillMiscJetStats(fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets(),fOrgTracks,fOrgClusters,fVertex); |
c6202663 | 2015 | |
e864d416 | 2016 | } |
62620fff | 2017 | |
c6202663 | 2018 | void AliAnalysisTaskFullpAJets::EstimateChargedRhokT() |
2019 | { | |
2020 | Int_t i; | |
2021 | Double_t kTRho = 0.0; | |
2022 | Double_t *pTArray = new Double_t[fTPCkTFullJet->GetTotalJets()]; | |
2023 | Double_t *RhoArray = new Double_t[fTPCkTFullJet->GetTotalJets()]; | |
2024 | ||
2025 | for (i=0;i<fTPCkTFullJet->GetTotalJets();i++) | |
2026 | { | |
2027 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i)); | |
2028 | pTArray[i]=myJet->Pt(); | |
2029 | RhoArray[i]=myJet->Pt()/myJet->Area(); | |
2030 | } | |
2031 | ||
2032 | if (fTPCkTFullJet->GetTotalJets()>=2) | |
2033 | { | |
2034 | kTRho=MedianRhokT(pTArray,RhoArray,fTPCkTFullJet->GetTotalJets()); | |
2035 | ||
2036 | fRhoChargedkT->FillRho(fEventCentrality,kTRho); | |
2037 | fRhoChargedkT->FillBSJS(fEventCentrality,kTRho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets()); | |
2038 | fRhoChargedkT->FillDeltaPt(fEventCentrality,kTRho,fJetR,fTPCRCBckgFluc,1); | |
2039 | fRhoChargedkT->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fTPCRCBckgFlucSignal,1); | |
7acc3e04 | 2040 | fRhoChargedkT->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fTPCRCBckgFlucNColl,1); |
c6202663 | 2041 | fRhoChargedkT->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR); |
2042 | fRhoChargedkT->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),kTRho); | |
2043 | } | |
2044 | delete [] RhoArray; | |
2045 | delete [] pTArray; | |
2046 | } | |
2047 | ||
2048 | void AliAnalysisTaskFullpAJets::EstimateChargedRhokTScale() | |
2049 | { | |
2050 | Int_t i; | |
2051 | Double_t kTRho = 0.0; | |
2052 | Double_t *pTArray = new Double_t[fTPCkTFullJet->GetTotalJets()]; | |
2053 | Double_t *RhoArray = new Double_t[fTPCkTFullJet->GetTotalJets()]; | |
2054 | ||
2055 | for (i=0;i<fTPCkTFullJet->GetTotalJets();i++) | |
2056 | { | |
2057 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i)); | |
2058 | pTArray[i]=myJet->Pt(); | |
2059 | RhoArray[i]=myJet->Pt()/myJet->Area(); | |
2060 | } | |
2061 | ||
2062 | if (fTPCkTFullJet->GetTotalJets()>=2) | |
2063 | { | |
2064 | kTRho=MedianRhokT(pTArray,RhoArray,fTPCkTFullJet->GetTotalJets()); | |
2065 | kTRho*=fScaleFactor; | |
2066 | ||
2067 | fRhoChargedkTScale->FillRho(fEventCentrality,kTRho); | |
2068 | fRhoChargedkTScale->FillBSJS(fEventCentrality,kTRho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2069 | fRhoChargedkTScale->FillDeltaPt(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFluc,1); | |
2070 | fRhoChargedkTScale->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2071 | fRhoChargedkTScale->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2072 | fRhoChargedkTScale->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR); |
2073 | fRhoChargedkTScale->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),kTRho); | |
2074 | } | |
2075 | delete [] RhoArray; | |
2076 | delete [] pTArray; | |
2077 | } | |
2078 | ||
2079 | void AliAnalysisTaskFullpAJets::EstimateChargedRhoCMS() | |
2080 | { | |
2081 | Int_t i,k; | |
2082 | Double_t kTRho = 0.0; | |
2083 | Double_t CMSTotalkTArea = 0.0; | |
2084 | Double_t CMSTrackArea = 0.0; | |
2085 | Double_t CMSCorrectionFactor = 1.0; | |
2086 | Double_t *pTArray = new Double_t[fTPCkTFullJet->GetTotalJets()]; | |
2087 | Double_t *RhoArray = new Double_t[fTPCkTFullJet->GetTotalJets()]; | |
2088 | ||
2089 | k=0; | |
2090 | if ((fTPCJet->GetLeadingPt()>=fTPCJetThreshold) && (fTPCJet->GetSubLeadingPt()>=fTPCJetThreshold)) | |
2091 | { | |
2092 | AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex()); | |
2093 | AliEmcalJet *myJet2 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSubLeadingIndex()); | |
2094 | ||
2095 | for (i=0;i<fTPCkTFullJet->GetTotalJets();i++) | |
2096 | { | |
2097 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i)); | |
ac6a3f1e | 2098 | |
c6202663 | 2099 | CMSTotalkTArea+=myJet->Area(); |
2100 | if (myJet->GetNumberOfTracks()>0) | |
2101 | { | |
2102 | CMSTrackArea+=myJet->Area(); | |
2103 | } | |
2104 | if (IsJetOverlap(myJet,myJet1,kFALSE)==kFALSE && IsJetOverlap(myJet,myJet2,kFALSE)==kFALSE) | |
ac6a3f1e | 2105 | { |
c6202663 | 2106 | pTArray[k]=myJet->Pt(); |
2107 | RhoArray[k]=myJet->Pt()/myJet->Area(); | |
2108 | k++; | |
ac6a3f1e | 2109 | } |
2110 | } | |
c6202663 | 2111 | if (k>0) |
ac6a3f1e | 2112 | { |
c6202663 | 2113 | kTRho=MedianRhokT(pTArray,RhoArray,k); |
ac6a3f1e | 2114 | } |
c6202663 | 2115 | else |
ac6a3f1e | 2116 | { |
c6202663 | 2117 | kTRho=0.0; |
ac6a3f1e | 2118 | } |
2119 | } | |
c6202663 | 2120 | else if (fTPCJet->GetLeadingPt()>=fTPCJetThreshold) |
ac6a3f1e | 2121 | { |
c6202663 | 2122 | AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex()); |
ac6a3f1e | 2123 | |
c6202663 | 2124 | for (i=0;i<fTPCkTFullJet->GetTotalJets();i++) |
ac6a3f1e | 2125 | { |
c6202663 | 2126 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i)); |
2127 | ||
2128 | CMSTotalkTArea+=myJet->Area(); | |
2129 | if (myJet->GetNumberOfTracks()>0) | |
2130 | { | |
2131 | CMSTrackArea+=myJet->Area(); | |
2132 | } | |
2133 | if (IsJetOverlap(myJet,myJet1,kFALSE)==kFALSE) | |
2134 | { | |
2135 | pTArray[k]=myJet->Pt(); | |
2136 | RhoArray[k]=myJet->Pt()/myJet->Area(); | |
2137 | k++; | |
2138 | } | |
2139 | } | |
2140 | if (k>0) | |
2141 | { | |
2142 | kTRho=MedianRhokT(pTArray,RhoArray,k); | |
2143 | } | |
2144 | else | |
2145 | { | |
2146 | kTRho=0.0; | |
ac6a3f1e | 2147 | } |
2148 | } | |
c6202663 | 2149 | else |
78246241 | 2150 | { |
c6202663 | 2151 | for (i=0;i<fTPCkTFullJet->GetTotalJets();i++) |
2152 | { | |
2153 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i)); | |
2154 | ||
2155 | CMSTotalkTArea+=myJet->Area(); | |
2156 | if (myJet->GetNumberOfTracks()>0) | |
2157 | { | |
2158 | CMSTrackArea+=myJet->Area(); | |
2159 | } | |
2160 | pTArray[k]=myJet->Pt(); | |
2161 | RhoArray[k]=myJet->Pt()/myJet->Area(); | |
2162 | k++; | |
2163 | } | |
2164 | if (k>0) | |
2165 | { | |
2166 | kTRho=MedianRhokT(pTArray,RhoArray,k); | |
2167 | } | |
2168 | else | |
2169 | { | |
2170 | kTRho=0.0; | |
2171 | } | |
78246241 | 2172 | } |
c6202663 | 2173 | // Scale CMS Rho by Correction factor |
2174 | if (CMSTotalkTArea==0.0) | |
ac6a3f1e | 2175 | { |
c6202663 | 2176 | CMSCorrectionFactor = 1.0; |
ac6a3f1e | 2177 | } |
c6202663 | 2178 | else |
ac6a3f1e | 2179 | { |
c6202663 | 2180 | //CMSCorrectionFactor = CMSTrackArea/CMSTotalkTArea; |
2181 | CMSCorrectionFactor = CMSTrackArea/(fTPCPhiTotal*(fTPCEtaTotal-2*fJetR)); // The total physical area should be reduced by the eta cut due to looping over only fully contained kT jets within the TPC | |
2182 | } | |
2183 | kTRho*=CMSCorrectionFactor; | |
2184 | fRhoChargedCMS->FillRho(fEventCentrality,kTRho); | |
2185 | fRhoChargedCMS->FillBSJS(fEventCentrality,kTRho,fTPCJetThreshold,fmyAKTChargedJets,fTPCFullJet->GetJets(),fTPCFullJet->GetTotalJets()); | |
2186 | fRhoChargedCMS->FillDeltaPt(fEventCentrality,kTRho,fJetR,fTPCRCBckgFluc,1); | |
2187 | fRhoChargedCMS->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fTPCRCBckgFlucSignal,1); | |
7acc3e04 | 2188 | fRhoChargedCMS->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fTPCRCBckgFlucNColl,1); |
c6202663 | 2189 | fRhoChargedCMS->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR); |
2190 | fRhoChargedCMS->FillLeadingJetPtRho(fTPCFullJet->GetLeadingPt(),kTRho); | |
2191 | delete [] RhoArray; | |
2192 | delete [] pTArray; | |
2193 | } | |
62620fff | 2194 | |
c6202663 | 2195 | void AliAnalysisTaskFullpAJets::EstimateChargedRhoCMSScale() |
2196 | { | |
2197 | Int_t i,k; | |
2198 | Double_t kTRho = 0.0; | |
2199 | Double_t CMSTotalkTArea = 0.0; | |
2200 | Double_t CMSTrackArea = 0.0; | |
2201 | Double_t CMSCorrectionFactor = 1.0; | |
2202 | Double_t *pTArray = new Double_t[fTPCkTFullJet->GetTotalJets()]; | |
2203 | Double_t *RhoArray = new Double_t[fTPCkTFullJet->GetTotalJets()]; | |
2204 | ||
2205 | k=0; | |
2206 | if ((fTPCJet->GetLeadingPt()>=fTPCJetThreshold) && (fTPCJet->GetSubLeadingPt()>=fTPCJetThreshold)) | |
2207 | { | |
2208 | AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex()); | |
2209 | AliEmcalJet *myJet2 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetSubLeadingIndex()); | |
2210 | ||
2211 | for (i=0;i<fTPCkTFullJet->GetTotalJets();i++) | |
2212 | { | |
2213 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i)); | |
2214 | ||
2215 | CMSTotalkTArea+=myJet->Area(); | |
2216 | if (myJet->GetNumberOfTracks()>0) | |
2217 | { | |
2218 | CMSTrackArea+=myJet->Area(); | |
2219 | } | |
2220 | if (IsJetOverlap(myJet,myJet1,kFALSE)==kFALSE && IsJetOverlap(myJet,myJet2,kFALSE)==kFALSE) | |
2221 | { | |
2222 | pTArray[k]=myJet->Pt(); | |
2223 | RhoArray[k]=myJet->Pt()/myJet->Area(); | |
2224 | k++; | |
2225 | } | |
2226 | } | |
2227 | if (k>0) | |
2228 | { | |
2229 | kTRho=MedianRhokT(pTArray,RhoArray,k); | |
2230 | } | |
2231 | else | |
2232 | { | |
2233 | kTRho=0.0; | |
2234 | } | |
2235 | } | |
2236 | else if (fTPCJet->GetLeadingPt()>=fTPCJetThreshold) | |
2237 | { | |
2238 | AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCJet->GetLeadingIndex()); | |
2239 | ||
2240 | for (i=0;i<fTPCkTFullJet->GetTotalJets();i++) | |
2241 | { | |
2242 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i)); | |
2243 | ||
2244 | CMSTotalkTArea+=myJet->Area(); | |
2245 | if (myJet->GetNumberOfTracks()>0) | |
2246 | { | |
2247 | CMSTrackArea+=myJet->Area(); | |
2248 | } | |
2249 | if (IsJetOverlap(myJet,myJet1,kFALSE)==kFALSE) | |
2250 | { | |
2251 | pTArray[k]=myJet->Pt(); | |
2252 | RhoArray[k]=myJet->Pt()/myJet->Area(); | |
2253 | k++; | |
2254 | } | |
2255 | } | |
2256 | if (k>0) | |
2257 | { | |
2258 | kTRho=MedianRhokT(pTArray,RhoArray,k); | |
2259 | } | |
2260 | else | |
2261 | { | |
2262 | kTRho=0.0; | |
2263 | } | |
2264 | } | |
2265 | else | |
ac6a3f1e | 2266 | { |
c6202663 | 2267 | for (i=0;i<fTPCkTFullJet->GetTotalJets();i++) |
2268 | { | |
2269 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTChargedJets->At(fTPCkTFullJet->GetJetIndex(i)); | |
2270 | ||
2271 | CMSTotalkTArea+=myJet->Area(); | |
2272 | if (myJet->GetNumberOfTracks()>0) | |
2273 | { | |
2274 | CMSTrackArea+=myJet->Area(); | |
2275 | } | |
2276 | pTArray[k]=myJet->Pt(); | |
2277 | RhoArray[k]=myJet->Pt()/myJet->Area(); | |
2278 | k++; | |
2279 | } | |
2280 | if (k>0) | |
78246241 | 2281 | { |
c6202663 | 2282 | kTRho=MedianRhokT(pTArray,RhoArray,k); |
78246241 | 2283 | } |
c6202663 | 2284 | else |
c54b626a | 2285 | { |
c6202663 | 2286 | kTRho=0.0; |
c54b626a | 2287 | } |
ac6a3f1e | 2288 | } |
c6202663 | 2289 | kTRho*=fScaleFactor; |
2290 | // Scale CMS Rho by Correction factor | |
2291 | if (CMSTotalkTArea==0.0) | |
2292 | { | |
2293 | CMSCorrectionFactor = 1.0; | |
2294 | } | |
2295 | else | |
2296 | { | |
c6202663 | 2297 | CMSCorrectionFactor = CMSTrackArea/(fTPCPhiTotal*(fTPCEtaTotal-2*fJetR)); // The total physical area should be reduced by the eta cut due to looping over only fully contained kT jets within the TPC |
2298 | } | |
2299 | kTRho*=CMSCorrectionFactor; | |
2300 | ||
2301 | fRhoChargedCMSScale->FillRho(fEventCentrality,kTRho); | |
2302 | fRhoChargedCMSScale->FillBSJS(fEventCentrality,kTRho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2303 | fRhoChargedCMSScale->FillDeltaPt(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFluc,1); | |
2304 | fRhoChargedCMSScale->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2305 | fRhoChargedCMSScale->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2306 | fRhoChargedCMSScale->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR); |
2307 | fRhoChargedCMSScale->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),kTRho); | |
08b981da | 2308 | fRhoChargedCMSScale->DoNEFAnalysis(fNEFSignalJetCut,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets(),fmyClusters,fOrgClusters,fEvent,fEMCALGeometry,fRecoUtil,fCells); |
825d120f | 2309 | fRhoChargedCMSScale->FillMiscJetStats(fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets(),fOrgTracks,fOrgClusters,fVertex); |
e864d416 | 2310 | |
c6202663 | 2311 | delete [] RhoArray; |
2312 | delete [] pTArray; | |
ac6a3f1e | 2313 | } |
62620fff | 2314 | |
c6202663 | 2315 | // Full Rho's |
2316 | void AliAnalysisTaskFullpAJets::EstimateFullRho0() | |
ac6a3f1e | 2317 | { |
2318 | Int_t i; | |
c6202663 | 2319 | Double_t E_tracks_total=0.0; |
2320 | Double_t E_caloclusters_total=0.0; | |
2321 | Double_t EMCal_rho=0.0; | |
ac6a3f1e | 2322 | |
62620fff | 2323 | TLorentzVector *cluster_vec = new TLorentzVector; |
2324 | ||
ac6a3f1e | 2325 | // Loop over all tracks |
2326 | for (i=0;i<fnTracks;i++) | |
2327 | { | |
2328 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
2329 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) | |
2330 | { | |
2331 | E_tracks_total+=vtrack->Pt(); | |
2332 | } | |
2333 | } | |
2334 | ||
2335 | // Loop over all caloclusters | |
2336 | for (i=0;i<fnClusters;i++) | |
2337 | { | |
2338 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); | |
8daeee93 | 2339 | vcluster->GetMomentum(*cluster_vec,fVertex); |
c6202663 | 2340 | E_caloclusters_total+=cluster_vec->Pt(); |
ac6a3f1e | 2341 | } |
62620fff | 2342 | delete cluster_vec; |
2343 | ||
ac6a3f1e | 2344 | // Calculate the mean Background density |
2345 | EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea; | |
c6202663 | 2346 | fRhoFull=EMCal_rho; |
ac6a3f1e | 2347 | |
c6202663 | 2348 | // Fill Histograms |
c6202663 | 2349 | fRhoFull0->FillRho(fEventCentrality,EMCal_rho); |
2350 | fRhoFull0->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2351 | fRhoFull0->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1); | |
2352 | fRhoFull0->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2353 | fRhoFull0->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2354 | fRhoFull0->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR); |
2355 | fRhoFull0->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho); | |
ac6a3f1e | 2356 | } |
2357 | ||
c6202663 | 2358 | void AliAnalysisTaskFullpAJets::EstimateFullRho1() |
ac6a3f1e | 2359 | { |
2360 | Int_t i; | |
c6202663 | 2361 | Double_t E_tracks_total=0.0; |
2362 | Double_t E_caloclusters_total=0.0; | |
2363 | Double_t EMCal_rho=0.0; | |
ac6a3f1e | 2364 | |
62620fff | 2365 | TLorentzVector *temp_jet= new TLorentzVector; |
2366 | TLorentzVector *track_vec = new TLorentzVector; | |
2367 | TLorentzVector *cluster_vec = new TLorentzVector; | |
2368 | ||
8daeee93 | 2369 | if (fEMCalPartJetUnbiased->GetLeadingPt()>=fEMCalJetThreshold) |
ac6a3f1e | 2370 | { |
8daeee93 | 2371 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJetUnbiased->GetLeadingIndex()); |
ac6a3f1e | 2372 | myJet->GetMom(*temp_jet); |
2373 | ||
2374 | // Loop over all tracks | |
2375 | for (i=0;i<fnTracks;i++) | |
2376 | { | |
2377 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
2378 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) | |
2379 | { | |
ac6a3f1e | 2380 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
c6202663 | 2381 | if (temp_jet->DeltaR(*track_vec)>fJetRForRho) |
ac6a3f1e | 2382 | { |
2383 | E_tracks_total+=vtrack->Pt(); | |
2384 | } | |
ac6a3f1e | 2385 | } |
2386 | } | |
2387 | ||
2388 | // Loop over all caloclusters | |
2389 | for (i=0;i<fnClusters;i++) | |
2390 | { | |
2391 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); | |
8daeee93 | 2392 | vcluster->GetMomentum(*cluster_vec,fVertex); |
c6202663 | 2393 | if (temp_jet->DeltaR(*cluster_vec)>fJetRForRho) |
ac6a3f1e | 2394 | { |
825d120f | 2395 | E_caloclusters_total+=cluster_vec->Pt(); |
ac6a3f1e | 2396 | } |
ac6a3f1e | 2397 | } |
ac6a3f1e | 2398 | // Calculate the mean Background density |
c6202663 | 2399 | EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-AreaWithinEMCal(fJetR,myJet->Phi(),myJet->Eta())); |
ac6a3f1e | 2400 | } |
c6202663 | 2401 | else // i.e. No signal jets -> same as total background density |
ac6a3f1e | 2402 | { |
2403 | // Loop over all tracks | |
2404 | for (i=0;i<fnTracks;i++) | |
2405 | { | |
2406 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
2407 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) | |
2408 | { | |
2409 | E_tracks_total+=vtrack->Pt(); | |
2410 | } | |
2411 | } | |
2412 | ||
2413 | // Loop over all caloclusters | |
2414 | for (i=0;i<fnClusters;i++) | |
2415 | { | |
2416 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); | |
825d120f | 2417 | vcluster->GetMomentum(*cluster_vec,fVertex); |
2418 | E_caloclusters_total+=cluster_vec->Pt(); | |
ac6a3f1e | 2419 | } |
2420 | // Calculate the mean Background density | |
2421 | EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea; | |
2422 | } | |
62620fff | 2423 | delete temp_jet; |
2424 | delete track_vec; | |
2425 | delete cluster_vec; | |
2426 | ||
c6202663 | 2427 | // Fill histograms |
2428 | fRhoFull1->FillRho(fEventCentrality,EMCal_rho); | |
2429 | fRhoFull1->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2430 | fRhoFull1->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1); | |
2431 | fRhoFull1->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2432 | fRhoFull1->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2433 | fRhoFull1->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR); |
2434 | fRhoFull1->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho); | |
ac6a3f1e | 2435 | } |
2436 | ||
c6202663 | 2437 | void AliAnalysisTaskFullpAJets::EstimateFullRho2() |
ac6a3f1e | 2438 | { |
2439 | Int_t i; | |
c6202663 | 2440 | Double_t E_tracks_total=0.0; |
2441 | Double_t E_caloclusters_total=0.0; | |
2442 | Double_t EMCal_rho=0.0; | |
2443 | ||
62620fff | 2444 | TLorentzVector *temp_jet1 = new TLorentzVector; |
2445 | TLorentzVector *temp_jet2 = new TLorentzVector; | |
2446 | TLorentzVector *track_vec = new TLorentzVector; | |
2447 | TLorentzVector *cluster_vec = new TLorentzVector; | |
2448 | ||
8daeee93 | 2449 | if ((fEMCalPartJetUnbiased->GetLeadingPt()>=fEMCalJetThreshold) && (fEMCalPartJetUnbiased->GetSubLeadingPt()>=fEMCalJetThreshold)) |
ac6a3f1e | 2450 | { |
8daeee93 | 2451 | AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJetUnbiased->GetLeadingIndex()); |
c6202663 | 2452 | myhJet->GetMom(*temp_jet1); |
2453 | ||
8daeee93 | 2454 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJetUnbiased->GetSubLeadingIndex()); |
c6202663 | 2455 | myJet->GetMom(*temp_jet2); |
2456 | ||
2457 | // Loop over all tracks | |
2458 | for (i=0;i<fnTracks;i++) | |
2459 | { | |
2460 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
2461 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) | |
2462 | { | |
c6202663 | 2463 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
2464 | if ((temp_jet1->DeltaR(*track_vec)>fJetRForRho) && (temp_jet2->DeltaR(*track_vec)>fJetRForRho)) | |
2465 | { | |
2466 | E_tracks_total+=vtrack->Pt(); | |
2467 | } | |
c6202663 | 2468 | } |
2469 | } | |
2470 | ||
2471 | // Loop over all caloclusters | |
2472 | for (i=0;i<fnClusters;i++) | |
2473 | { | |
2474 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); | |
8daeee93 | 2475 | vcluster->GetMomentum(*cluster_vec,fVertex); |
c6202663 | 2476 | if ((temp_jet1->DeltaR(*cluster_vec)>fJetRForRho) && (temp_jet2->DeltaR(*cluster_vec)>fJetRForRho)) |
2477 | { | |
825d120f | 2478 | E_caloclusters_total+=cluster_vec->Pt(); |
c6202663 | 2479 | } |
c6202663 | 2480 | } |
62620fff | 2481 | |
c6202663 | 2482 | // Calculate the mean Background density |
2483 | EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-AreaWithinEMCal(fJetR,myhJet->Phi(),myhJet->Eta())-AreaWithinEMCal(fJetR,myJet->Phi(),myJet->Eta())); | |
2484 | } | |
8daeee93 | 2485 | else if (fEMCalPartJetUnbiased->GetLeadingPt()>=fEMCalJetThreshold) |
c6202663 | 2486 | { |
8daeee93 | 2487 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJetUnbiased->GetLeadingIndex()); |
62620fff | 2488 | myJet->GetMom(*temp_jet1); |
ac6a3f1e | 2489 | |
c6202663 | 2490 | // Loop over all tracks |
2491 | for (i=0;i<fnTracks;i++) | |
ac6a3f1e | 2492 | { |
c6202663 | 2493 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); |
2494 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) | |
ac6a3f1e | 2495 | { |
c6202663 | 2496 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
62620fff | 2497 | if (temp_jet1->DeltaR(*track_vec)>fJetRForRho) |
ac6a3f1e | 2498 | { |
c6202663 | 2499 | E_tracks_total+=vtrack->Pt(); |
ac6a3f1e | 2500 | } |
c6202663 | 2501 | } |
2502 | } | |
2503 | ||
2504 | // Loop over all caloclusters | |
2505 | for (i=0;i<fnClusters;i++) | |
2506 | { | |
2507 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); | |
8daeee93 | 2508 | vcluster->GetMomentum(*cluster_vec,fVertex); |
62620fff | 2509 | if (temp_jet1->DeltaR(*cluster_vec)>fJetRForRho) |
c6202663 | 2510 | { |
825d120f | 2511 | E_caloclusters_total+=cluster_vec->Pt(); |
ac6a3f1e | 2512 | } |
2513 | } | |
c6202663 | 2514 | // Calculate the mean Background density |
2515 | EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-AreaWithinEMCal(fJetR,myJet->Phi(),myJet->Eta())); | |
2516 | } | |
2517 | else // i.e. No signal jets -> same as total background density | |
2518 | { | |
2519 | // Loop over all tracks | |
2520 | for (i=0;i<fnTracks;i++) | |
2521 | { | |
2522 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); | |
2523 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) | |
2524 | { | |
2525 | E_tracks_total+=vtrack->Pt(); | |
2526 | } | |
2527 | } | |
2528 | ||
2529 | // Loop over all caloclusters | |
2530 | for (i=0;i<fnClusters;i++) | |
2531 | { | |
2532 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); | |
825d120f | 2533 | vcluster->GetMomentum(*cluster_vec,fVertex); |
2534 | E_caloclusters_total+=cluster_vec->Pt(); | |
c6202663 | 2535 | } |
2536 | // Calculate the mean Background density | |
2537 | EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea; | |
ac6a3f1e | 2538 | } |
62620fff | 2539 | delete temp_jet1; |
2540 | delete temp_jet2; | |
2541 | delete track_vec; | |
2542 | delete cluster_vec; | |
2543 | ||
c6202663 | 2544 | // Fill histograms |
2545 | fRhoFull2->FillRho(fEventCentrality,EMCal_rho); | |
2546 | fRhoFull2->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2547 | fRhoFull2->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1); | |
2548 | fRhoFull2->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2549 | fRhoFull2->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2550 | fRhoFull2->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR); |
2551 | fRhoFull2->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho); | |
ac6a3f1e | 2552 | } |
2553 | ||
c6202663 | 2554 | void AliAnalysisTaskFullpAJets::EstimateFullRhoN() |
ac6a3f1e | 2555 | { |
2556 | Int_t i,j; | |
2557 | Bool_t track_away_from_jet; | |
c6202663 | 2558 | Bool_t cluster_away_from_jet; |
2559 | Double_t E_tracks_total=0.0; | |
2560 | Double_t E_caloclusters_total=0.0; | |
2561 | Double_t EMCal_rho=0.0; | |
2562 | Double_t jet_area_total=0.0; | |
ac6a3f1e | 2563 | |
62620fff | 2564 | TLorentzVector *jet_vec= new TLorentzVector; |
2565 | TLorentzVector *track_vec = new TLorentzVector; | |
2566 | TLorentzVector *cluster_vec = new TLorentzVector; | |
2567 | ||
ac6a3f1e | 2568 | // First, sum all tracks within the EMCal that are away from jet(s) above Pt Threshold |
ac6a3f1e | 2569 | for (i=0;i<fnTracks;i++) |
2570 | { | |
2571 | // First, check if track is in the EMCal!! | |
c6202663 | 2572 | AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(i); |
ac6a3f1e | 2573 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) |
2574 | { | |
8daeee93 | 2575 | if (fEMCalPartJetUnbiased->GetTotalSignalJets()<1) |
ac6a3f1e | 2576 | { |
2577 | E_tracks_total+=vtrack->Pt(); | |
2578 | } | |
2579 | else | |
2580 | { | |
2581 | track_away_from_jet=kTRUE; | |
2582 | j=0; | |
ac6a3f1e | 2583 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); |
8daeee93 | 2584 | while (track_away_from_jet==kTRUE && j<fEMCalPartJetUnbiased->GetTotalSignalJets()) |
ac6a3f1e | 2585 | { |
8daeee93 | 2586 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJetUnbiased->GetSignalJetIndex(j)); |
ac6a3f1e | 2587 | myJet->GetMom(*jet_vec); |
c6202663 | 2588 | if (track_vec->DeltaR(*jet_vec)<=fJetRForRho) |
ac6a3f1e | 2589 | { |
2590 | track_away_from_jet=kFALSE; | |
2591 | } | |
ac6a3f1e | 2592 | j++; |
2593 | } | |
2594 | if (track_away_from_jet==kTRUE) | |
2595 | { | |
2596 | E_tracks_total+=vtrack->Pt(); | |
2597 | } | |
ac6a3f1e | 2598 | } |
2599 | } | |
2600 | } | |
2601 | ||
2602 | // Next, sum all CaloClusters within the EMCal (obviously all clusters must be within EMCal!!) that are away from jet(s) above Pt Threshold | |
ac6a3f1e | 2603 | for (i=0;i<fnClusters;i++) |
2604 | { | |
c6202663 | 2605 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); |
825d120f | 2606 | vcluster->GetMomentum(*cluster_vec,fVertex); |
c6202663 | 2607 | if (fEMCalPartJet->GetTotalSignalJets()<1) |
ac6a3f1e | 2608 | { |
825d120f | 2609 | E_caloclusters_total+=cluster_vec->Pt(); |
ac6a3f1e | 2610 | } |
2611 | else | |
2612 | { | |
2613 | cluster_away_from_jet=kTRUE; | |
2614 | j=0; | |
2615 | ||
8daeee93 | 2616 | while (cluster_away_from_jet==kTRUE && j<fEMCalPartJetUnbiased->GetTotalSignalJets()) |
ac6a3f1e | 2617 | { |
8daeee93 | 2618 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJetUnbiased->GetSignalJetIndex(j)); |
ac6a3f1e | 2619 | myJet->GetMom(*jet_vec); |
c6202663 | 2620 | if (cluster_vec->DeltaR(*jet_vec)<=fJetRForRho) |
ac6a3f1e | 2621 | { |
2622 | cluster_away_from_jet=kFALSE; | |
2623 | } | |
ac6a3f1e | 2624 | j++; |
2625 | } | |
2626 | if (cluster_away_from_jet==kTRUE) | |
2627 | { | |
825d120f | 2628 | E_caloclusters_total+=cluster_vec->Pt(); |
ac6a3f1e | 2629 | } |
ac6a3f1e | 2630 | } |
2631 | } | |
2632 | ||
2633 | // Determine area of all Jets that are within the EMCal | |
c6202663 | 2634 | if (fEMCalPartJet->GetTotalSignalJets()==0) |
ac6a3f1e | 2635 | { |
c6202663 | 2636 | jet_area_total=0.0; |
ac6a3f1e | 2637 | } |
2638 | else | |
2639 | { | |
8daeee93 | 2640 | for (i=0;i<fEMCalPartJetUnbiased->GetTotalSignalJets();i++) |
ac6a3f1e | 2641 | { |
8daeee93 | 2642 | AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJetUnbiased->GetSignalJetIndex(i)); |
ac6a3f1e | 2643 | jet_area_total+=AreaWithinEMCal(fJetR,myJet->Phi(),myJet->Eta()); |
2644 | } | |
2645 | } | |
62620fff | 2646 | delete jet_vec; |
2647 | delete track_vec; | |
2648 | delete cluster_vec; | |
2649 | ||
ac6a3f1e | 2650 | // Calculate Rho |
2651 | EMCal_rho=(E_tracks_total+E_caloclusters_total)/(fEMCalArea-jet_area_total); | |
ac6a3f1e | 2652 | |
c6202663 | 2653 | // Fill Histogram |
2654 | fRhoFullN->FillRho(fEventCentrality,EMCal_rho); | |
2655 | fRhoFullN->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2656 | fRhoFullN->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1); | |
2657 | fRhoFullN->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2658 | fRhoFullN->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2659 | fRhoFullN->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR); |
2660 | fRhoFullN->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho); | |
ac6a3f1e | 2661 | } |
2662 | ||
c6202663 | 2663 | void AliAnalysisTaskFullpAJets::EstimateFullRhoDijet() |
ac6a3f1e | 2664 | { |
78246241 | 2665 | Int_t i; |
78246241 | 2666 | Double_t E_tracks_total=0.0; |
2667 | Double_t E_caloclusters_total=0.0; | |
2668 | Double_t EMCal_rho=0.0; | |
78246241 | 2669 | |
825d120f | 2670 | TLorentzVector *cluster_vec = new TLorentzVector; |
2671 | ||
78246241 | 2672 | // Loop over all tracks |
ac6a3f1e | 2673 | for (i=0;i<fnTracks;i++) |
2674 | { | |
78246241 | 2675 | AliVTrack* vtrack =(AliVTrack*) fmyTracks->At(i); |
ac6a3f1e | 2676 | if (IsInEMCal(vtrack->Phi(),vtrack->Eta())==kTRUE) |
2677 | { | |
78246241 | 2678 | E_tracks_total+=vtrack->Pt(); |
ac6a3f1e | 2679 | } |
2680 | } | |
2681 | ||
78246241 | 2682 | // Loop over all caloclusters |
ac6a3f1e | 2683 | for (i=0;i<fnClusters;i++) |
2684 | { | |
78246241 | 2685 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(i); |
825d120f | 2686 | vcluster->GetMomentum(*cluster_vec,fVertex); |
2687 | E_caloclusters_total+=cluster_vec->Pt(); | |
ac6a3f1e | 2688 | } |
2689 | ||
825d120f | 2690 | delete cluster_vec; |
2691 | ||
78246241 | 2692 | // Calculate the mean Background density |
2693 | EMCal_rho=(E_tracks_total+E_caloclusters_total)/fEMCalArea; | |
ac6a3f1e | 2694 | |
c6202663 | 2695 | // Fill Histograms |
2696 | fRhoFullDijet->FillRho(fEventCentrality,EMCal_rho); | |
2697 | fRhoFullDijet->FillBSJS(fEventCentrality,EMCal_rho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2698 | fRhoFullDijet->FillDeltaPt(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFluc,1); | |
2699 | fRhoFullDijet->FillDeltaPtSignal(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2700 | fRhoFullDijet->FillDeltaPtNColl(fEventCentrality,EMCal_rho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2701 | fRhoFullDijet->FillBackgroundFluctuations(fEventCentrality,EMCal_rho,fJetR); |
2702 | fRhoFullDijet->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),EMCal_rho); | |
2703 | } | |
2704 | ||
2705 | void AliAnalysisTaskFullpAJets::EstimateFullRhokT() | |
2706 | { | |
2707 | Int_t i; | |
2708 | Double_t kTRho = 0.0; | |
2709 | Double_t *pTArray = new Double_t[fEMCalkTFullJet->GetTotalJets()]; | |
2710 | Double_t *RhoArray = new Double_t[fEMCalkTFullJet->GetTotalJets()]; | |
2711 | ||
2712 | for (i=0;i<fEMCalkTFullJet->GetTotalJets();i++) | |
2713 | { | |
2714 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(fEMCalkTFullJet->GetJetIndex(i)); | |
2715 | pTArray[i]=myJet->Pt(); | |
2716 | RhoArray[i]=myJet->Pt()/myJet->Area(); | |
2717 | } | |
ac6a3f1e | 2718 | |
c6202663 | 2719 | if (fEMCalkTFullJet->GetTotalJets()>0) |
ac6a3f1e | 2720 | { |
c6202663 | 2721 | kTRho=MedianRhokT(pTArray,RhoArray,fEMCalkTFullJet->GetTotalJets()); |
ac6a3f1e | 2722 | } |
c6202663 | 2723 | else |
2724 | { | |
2725 | kTRho=0.0; | |
2726 | } | |
2727 | fRhoFullkT->FillRho(fEventCentrality,kTRho); | |
2728 | fRhoFullkT->FillBSJS(fEventCentrality,kTRho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2729 | fRhoFullkT->FillDeltaPt(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFluc,1); | |
2730 | fRhoFullkT->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2731 | fRhoFullkT->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2732 | fRhoFullkT->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR); |
2733 | fRhoFullkT->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),kTRho); | |
2734 | delete [] RhoArray; | |
2735 | delete [] pTArray; | |
ac6a3f1e | 2736 | } |
2737 | ||
c6202663 | 2738 | void AliAnalysisTaskFullpAJets::EstimateFullRhoCMS() |
ac6a3f1e | 2739 | { |
c6202663 | 2740 | Int_t i,k; |
2741 | Double_t kTRho = 0.0; | |
2742 | Double_t CMSTotalkTArea = 0.0; | |
2743 | Double_t CMSParticleArea = 0.0; | |
2744 | Double_t CMSCorrectionFactor = 1.0; | |
2745 | Double_t *pTArray = new Double_t[fEMCalkTFullJet->GetTotalJets()]; | |
2746 | Double_t *RhoArray = new Double_t[fEMCalkTFullJet->GetTotalJets()]; | |
2747 | ||
2748 | k=0; | |
2749 | if ((fEMCalPartJet->GetLeadingPt()>=fEMCalJetThreshold) && (fEMCalPartJet->GetSubLeadingPt()>=fEMCalJetThreshold)) | |
2750 | { | |
2751 | AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetLeadingIndex()); | |
2752 | AliEmcalJet *myJet2 =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalPartJet->GetSubLeadingIndex()); | |
78246241 | 2753 | |
c6202663 | 2754 | for (i=0;i<fEMCalkTFullJet->GetTotalJets();i++) |
78246241 | 2755 | { |
c6202663 | 2756 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(fEMCalkTFullJet->GetJetIndex(i)); |
2757 | ||
2758 | CMSTotalkTArea+=myJet->Area(); | |
2759 | if (myJet->GetNumberOfTracks()>0 || myJet->GetNumberOfClusters()>0) | |
2760 | { | |
2761 | CMSParticleArea+=myJet->Area(); | |
2762 | } | |
2763 | if (IsJetOverlap(myJet,myJet1,kTRUE)==kFALSE && IsJetOverlap(myJet,myJet2,kFALSE)==kTRUE) | |
2764 | { | |
2765 | pTArray[k]=myJet->Pt(); | |
2766 | RhoArray[k]=myJet->Pt()/myJet->Area(); | |
2767 | k++; | |
2768 | } | |
78246241 | 2769 | } |
c6202663 | 2770 | if (k>0) |
ac6a3f1e | 2771 | { |
c6202663 | 2772 | kTRho=MedianRhokT(pTArray,RhoArray,k); |
ac6a3f1e | 2773 | } |
2774 | else | |
2775 | { | |
c6202663 | 2776 | kTRho=0.0; |
2777 | } | |
2778 | } | |
2779 | else if (fEMCalJet->GetLeadingPt()>=fEMCalJetThreshold) | |
2780 | { | |
2781 | AliEmcalJet *myJet1 =(AliEmcalJet*) fmyAKTFullJets->At(fEMCalJet->GetLeadingIndex()); | |
2782 | ||
2783 | for (i=0;i<fEMCalkTFullJet->GetTotalJets();i++) | |
2784 | { | |
2785 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(fEMCalkTFullJet->GetJetIndex(i)); | |
2786 | ||
2787 | CMSTotalkTArea+=myJet->Area(); | |
2788 | if (myJet->GetNumberOfTracks()>0 || myJet->GetNumberOfClusters()>0) | |
ac6a3f1e | 2789 | { |
c6202663 | 2790 | CMSParticleArea+=myJet->Area(); |
ac6a3f1e | 2791 | } |
c6202663 | 2792 | if (IsJetOverlap(myJet,myJet1,kTRUE)==kFALSE) |
ac6a3f1e | 2793 | { |
c6202663 | 2794 | pTArray[k]=myJet->Pt(); |
2795 | RhoArray[k]=myJet->Pt()/myJet->Area(); | |
2796 | k++; | |
ac6a3f1e | 2797 | } |
ac6a3f1e | 2798 | } |
c6202663 | 2799 | if (k>0) |
ac6a3f1e | 2800 | { |
c6202663 | 2801 | kTRho=MedianRhokT(pTArray,RhoArray,k); |
2802 | } | |
2803 | else | |
2804 | { | |
2805 | kTRho=0.0; | |
ac6a3f1e | 2806 | } |
2807 | } | |
c6202663 | 2808 | else |
ac6a3f1e | 2809 | { |
c6202663 | 2810 | for (i=0;i<fEMCalkTFullJet->GetTotalJets();i++) |
ac6a3f1e | 2811 | { |
c6202663 | 2812 | AliEmcalJet *myJet =(AliEmcalJet*) fmyKTFullJets->At(fEMCalkTFullJet->GetJetIndex(i)); |
2813 | ||
2814 | CMSTotalkTArea+=myJet->Area(); | |
2815 | if (myJet->GetNumberOfTracks()>0 || myJet->GetNumberOfClusters()>0) | |
ac6a3f1e | 2816 | { |
c6202663 | 2817 | CMSParticleArea+=myJet->Area(); |
ac6a3f1e | 2818 | } |
c6202663 | 2819 | pTArray[k]=myJet->Pt(); |
2820 | RhoArray[k]=myJet->Pt()/myJet->Area(); | |
2821 | k++; | |
2822 | } | |
2823 | if (k>0) | |
2824 | { | |
2825 | kTRho=MedianRhokT(pTArray,RhoArray,k); | |
2826 | } | |
2827 | else | |
2828 | { | |
2829 | kTRho=0.0; | |
ac6a3f1e | 2830 | } |
2831 | } | |
c6202663 | 2832 | // Scale CMS Rho by Correction factor |
2833 | if (CMSTotalkTArea==0.0) | |
78246241 | 2834 | { |
c6202663 | 2835 | CMSCorrectionFactor = 1.0; |
78246241 | 2836 | } |
c6202663 | 2837 | else |
78246241 | 2838 | { |
c6202663 | 2839 | //CMSCorrectionFactor = CMSTrackArea/CMSTotalkTArea; |
2840 | CMSCorrectionFactor = CMSParticleArea/((fEMCalPhiTotal-2*fJetR)*(fEMCalEtaTotal-2*fJetR)); // The total physical area should be reduced by the eta & phi cuts due to looping over only fully contained kT jets within the EMCal | |
78246241 | 2841 | } |
c6202663 | 2842 | kTRho*=CMSCorrectionFactor; |
78246241 | 2843 | |
c6202663 | 2844 | fRhoFullCMS->FillRho(fEventCentrality,kTRho); |
2845 | fRhoFullCMS->FillBSJS(fEventCentrality,kTRho,fEMCalJetThreshold,fmyAKTFullJets,fEMCalFullJet->GetJets(),fEMCalFullJet->GetTotalJets()); | |
2846 | fRhoFullCMS->FillDeltaPt(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFluc,1); | |
2847 | fRhoFullCMS->FillDeltaPtSignal(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucSignal,1); | |
7acc3e04 | 2848 | fRhoFullCMS->FillDeltaPtNColl(fEventCentrality,kTRho,fJetR,fEMCalRCBckgFlucNColl,1); |
c6202663 | 2849 | fRhoFullCMS->FillBackgroundFluctuations(fEventCentrality,kTRho,fJetR); |
2850 | fRhoFullCMS->FillLeadingJetPtRho(fEMCalFullJet->GetLeadingPt(),kTRho); | |
2851 | delete [] RhoArray; | |
2852 | delete [] pTArray; | |
78246241 | 2853 | } |
62620fff | 2854 | |
6bda5230 CY |
2855 | void AliAnalysisTaskFullpAJets::FullJetEnergyDensityProfile() |
2856 | { | |
2857 | Int_t i,j; | |
2858 | Double_t delta_R; | |
2859 | Double_t dR=0.0; | |
2860 | Double_t fullEDR = fFullEDJetR*100; | |
2861 | const Int_t fullEDBins = (Int_t) fullEDR; | |
2862 | Double_t ED_pT[fullEDBins]; | |
2863 | dR = fFullEDJetR/Double_t(fullEDBins); // Should be 0.01 be default | |
2864 | ||
2865 | TLorentzVector *jet_vec= new TLorentzVector; | |
2866 | TLorentzVector *track_vec = new TLorentzVector; | |
2867 | TLorentzVector *cluster_vec = new TLorentzVector; | |
2868 | ||
2869 | for (i=0;i<fEMCalFullJet->GetTotalSignalJets();i++) | |
2870 | { | |
2871 | AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTFullJets->At(fEMCalFullJet->GetSignalJetIndex(i)); | |
2872 | ||
2873 | if (IsInEMCalFull(fFullEDJetR,myJet->Phi(),myJet->Eta())==kTRUE) | |
2874 | { | |
2875 | for (j=0;j<fullEDBins;j++) | |
2876 | { | |
2877 | ED_pT[j]=0; | |
2878 | } | |
2879 | myJet->GetMom(*jet_vec); | |
2880 | ||
2881 | // Sum all tracks in concentric rings around jet vertex | |
2882 | for (j=0;j<fnTracks;j++) | |
2883 | { | |
2884 | AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(j); | |
2885 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); | |
2886 | delta_R=jet_vec->DeltaR(*track_vec); | |
2887 | if (delta_R<fFullEDJetR) | |
2888 | { | |
2889 | ED_pT[TMath::FloorNint((delta_R/fFullEDJetR)*fullEDBins)]+=vtrack->Pt(); | |
2890 | } | |
2891 | } | |
2892 | ||
2893 | // Sum all clusters in concentric rings around jet vertex | |
2894 | for (j=0;j<fnClusters;j++) | |
2895 | { | |
2896 | AliVCluster* vcluster = (AliVCluster*) fmyClusters->At(j); | |
2897 | vcluster->GetMomentum(*cluster_vec,fVertex); | |
2898 | delta_R=jet_vec->DeltaR(*cluster_vec); | |
2899 | if (delta_R<fFullEDJetR) | |
2900 | { | |
825d120f | 2901 | ED_pT[TMath::FloorNint((delta_R/fFullEDJetR)*fullEDBins)]+=cluster_vec->Pt(); |
6bda5230 CY |
2902 | } |
2903 | } | |
2904 | ||
2905 | for (j=0;j<fullEDBins;j++) | |
2906 | { | |
2907 | ED_pT[j] /= TMath::Pi()*dR*dR*(2*j+1); | |
2908 | fpFullJetEDProfile->Fill(myJet->Pt(),fEventCentrality,j*dR,ED_pT[j]); | |
2909 | } | |
2910 | } | |
2911 | } | |
2912 | delete cluster_vec; | |
2913 | delete track_vec; | |
2914 | delete jet_vec; | |
2915 | } | |
2916 | ||
2917 | // Although this calculates the charged pT density in concentric rings around a charged jet contained fudically within the TPC (R=0.8), we actually scale the density by the scale factor (fScaleFactor) in order to compare to 'Full Charge Density' and 'Rho Median Occupancy Approach' (RhoChargedCMSScaled). We still keep the charged value for completeness. | |
2918 | void AliAnalysisTaskFullpAJets::ChargedJetEnergyDensityProfile() | |
2919 | { | |
2920 | Int_t i,j; | |
2921 | Double_t delta_R; | |
2922 | Double_t dR=0.0; | |
2923 | Double_t chargedEDR = fChargedEDJetR*100; | |
2924 | const Int_t chargedEDBins = (Int_t) chargedEDR; | |
2925 | Double_t ED_pT[chargedEDBins]; | |
2926 | dR = fChargedEDJetR/Double_t(chargedEDBins); // Should be 0.01 be default | |
2927 | ||
2928 | TLorentzVector *jet_vec= new TLorentzVector; | |
2929 | TLorentzVector *track_vec = new TLorentzVector; | |
2930 | ||
2931 | for (i=0;i<fTPCFullJet->GetTotalSignalJets();i++) | |
2932 | { | |
2933 | AliEmcalJet *myJet = (AliEmcalJet*) fmyAKTChargedJets->At(fTPCFullJet->GetSignalJetIndex(i)); | |
2934 | if (IsInTPC(fChargedEDJetR,myJet->Phi(),myJet->Eta(),kTRUE)==kTRUE) | |
2935 | { | |
2936 | for (j=0;j<chargedEDBins;j++) | |
2937 | { | |
2938 | ED_pT[j]=0; | |
2939 | } | |
2940 | myJet->GetMom(*jet_vec); | |
2941 | ||
2942 | // Sum all tracks in concentric rings around jet vertex | |
2943 | for (j=0;j<fnTracks;j++) | |
2944 | { | |
2945 | AliVTrack* vtrack = (AliVTrack*) fmyTracks->At(j); | |
2946 | track_vec->SetPtEtaPhiE(vtrack->Pt(),vtrack->Eta(),vtrack->Phi(),vtrack->E()); | |
2947 | delta_R=jet_vec->DeltaR(*track_vec); | |
2948 | if (delta_R<fChargedEDJetR) | |
2949 | { | |
2950 | ED_pT[TMath::FloorNint((delta_R/fChargedEDJetR)*chargedEDBins)]+=vtrack->Pt(); | |
2951 | } | |
2952 | } | |
6bda5230 CY |
2953 | for (j=0;j<chargedEDBins;j++) |
2954 | { | |
2955 | ED_pT[j] /= TMath::Pi()*dR*dR*(2*j+1); | |
2956 | fpChargedJetEDProfile->Fill(myJet->Pt(),fEventCentrality,j*dR,ED_pT[j]); | |
2957 | fpChargedJetEDProfileScaled->Fill(myJet->Pt(),fEventCentrality,j*dR,fScaleFactor*ED_pT[j]); | |
2958 | } | |
2959 | } | |
2960 | } | |
2961 | delete track_vec; | |
2962 | delete jet_vec; | |
2963 | } | |
2964 | ||
c6202663 | 2965 | void AliAnalysisTaskFullpAJets::DeleteJetData(Bool_t EMCalOn) |
ac6a3f1e | 2966 | { |
c6202663 | 2967 | delete fmyTracks; |
2968 | delete fTPCJet; | |
2969 | delete fTPCFullJet; | |
2970 | delete fTPCOnlyJet; | |
2971 | delete fTPCkTFullJet; | |
ac6a3f1e | 2972 | if (EMCalOn==kTRUE) |
2973 | { | |
c6202663 | 2974 | delete fmyClusters; |
2975 | delete fEMCalJet; | |
2976 | delete fEMCalFullJet; | |
2977 | delete fEMCalPartJet; | |
2978 | delete fEMCalkTFullJet; | |
ac6a3f1e | 2979 | } |
2980 | } | |
2981 | ||
2982 | ///////////////////////////////////////////////////////////////////////////////////////// | |
2983 | ///////////////// User Defined Functions /////////////////////////////////////// | |
2984 | ///////////////////////////////////////////////////////////////////////////////////////// | |
2985 | ||
2986 | Bool_t AliAnalysisTaskFullpAJets::IsDiJetEvent() | |
2987 | { | |
78246241 | 2988 | // Determine if event contains a di-jet within the detector. Uses charged jets. |
2989 | // Requires the delta phi of the jets to be 180 +/- 15 degrees. | |
2990 | // Requires both jets to be outside of the EMCal | |
2991 | // Requires both jets to be signal jets | |
2992 | ||
ac6a3f1e | 2993 | const Double_t dijet_delta_phi=(180/360.)*2*TMath::Pi(); |
2994 | const Double_t dijet_phi_acceptance=0.5*(30/360.)*2*TMath::Pi(); //Input the total acceptance within the paraenthesis to be +/- dijet_phi_acceptance | |
78246241 | 2995 | Double_t dummy_phi=0.0; |
c6202663 | 2996 | |
2997 | if (fTPCOnlyJet->GetTotalSignalJets()>1) | |
2998 | { | |
2999 | AliEmcalJet *myhJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCOnlyJet->GetLeadingIndex()); | |
3000 | AliEmcalJet *myJet =(AliEmcalJet*) fmyAKTChargedJets->At(fTPCOnlyJet->GetSubLeadingIndex()); | |
3001 | dummy_phi=TMath::Min(TMath::Abs(myhJet->Phi()-myJet->Phi()),2*TMath::Pi()-TMath::Abs(myhJet->Phi()-myJet->Phi())); | |
3002 | if (dummy_phi>(dijet_delta_phi-dijet_phi_acceptance)) | |
3003 | { | |
3004 | fnDiJetEvents++; | |
3005 | return kTRUE; | |
ac6a3f1e | 3006 | } |
3007 | } | |
3008 | return kFALSE; | |
3009 | } | |
3010 | ||
3011 | Bool_t AliAnalysisTaskFullpAJets::InsideRect(Double_t phi,Double_t phi_min,Double_t phi_max,Double_t eta,Double_t eta_min,Double_t eta_max) | |
3012 | { | |
3013 | if (phi>phi_min && phi<phi_max) | |
3014 | { | |
3015 | if (eta>eta_min && eta<eta_max) | |
3016 | { | |
3017 | return kTRUE; | |
3018 | } | |
3019 | } | |
3020 | return kFALSE; | |
3021 | } | |
3022 | ||
3023 | Bool_t AliAnalysisTaskFullpAJets::IsInEMCal(Double_t phi,Double_t eta) | |
3024 | { | |
3025 | return InsideRect(phi,fEMCalPhiMin,fEMCalPhiMax,eta,fEMCalEtaMin,fEMCalEtaMax); | |
3026 | } | |
3027 | ||
3028 | Bool_t AliAnalysisTaskFullpAJets::IsInEMCalFull(Double_t r,Double_t phi,Double_t eta) | |
3029 | { | |
3030 | return InsideRect(phi,fEMCalPhiMin+r,fEMCalPhiMax-r,eta,fEMCalEtaMin+r,fEMCalEtaMax-r); | |
3031 | } | |
3032 | ||
3033 | Bool_t AliAnalysisTaskFullpAJets::IsInEMCalPart(Double_t r,Double_t phi,Double_t eta) | |
3034 | { | |
3035 | return InsideRect(phi,fEMCalPhiMin-r,fEMCalPhiMax+r,eta,fEMCalEtaMin-r,fEMCalEtaMax+r); | |
3036 | } | |
3037 | ||
3038 | Bool_t AliAnalysisTaskFullpAJets::IsInTPCFull(Double_t r,Double_t phi,Double_t eta) | |
3039 | { | |
3040 | Bool_t in_EMCal= InsideRect(phi,fEMCalPhiMin-r,fEMCalPhiMax+r,eta,fEMCalEtaMin-r,fEMCalEtaMax+r); | |
3041 | Bool_t in_TPC= InsideRect(phi,fTPCPhiMin,fTPCPhiMax,eta,fTPCEtaMin+r,fTPCEtaMax-r); | |
3042 | ||
3043 | if (in_EMCal==kFALSE && in_TPC==kTRUE) | |
3044 | { | |
3045 | return kTRUE; | |
3046 | } | |
3047 | return kFALSE; | |
3048 | } | |
3049 | ||
3050 | Bool_t AliAnalysisTaskFullpAJets::IsInTPC(Double_t r,Double_t phi,Double_t eta,Bool_t Complete) | |
3051 | { | |
3052 | if (Complete==kTRUE) | |
3053 | { | |
3054 | return InsideRect(phi,fTPCPhiMin,fTPCPhiMax,eta,fTPCEtaMin+r,fTPCEtaMax-r); | |
3055 | } | |
3056 | return InsideRect(phi,fTPCPhiMin,fTPCPhiMax,eta,fTPCEtaMin,fTPCEtaMax); | |
3057 | } | |
3058 | ||
c6202663 | 3059 | Bool_t AliAnalysisTaskFullpAJets::IsJetOverlap(AliEmcalJet *jet1,AliEmcalJet *jet2,Bool_t EMCalOn) |
3060 | { | |
3061 | Int_t i,j; | |
3062 | Int_t jetTrack1=0; | |
3063 | Int_t jetTrack2=0; | |
3064 | Int_t jetCluster1=0; | |
3065 | Int_t jetCluster2=0; | |
3066 | ||
3067 | for (i=0;i<jet1->GetNumberOfTracks();i++) | |
3068 | { | |
3069 | jetTrack1=jet1->TrackAt(i); | |
3070 | for (j=0;j<jet2->GetNumberOfTracks();j++) | |
3071 | { | |
3072 | jetTrack2=jet2->TrackAt(j); | |
3073 | if (jetTrack1 == jetTrack2) | |
3074 | { | |
3075 | return kTRUE; | |
3076 | } | |
3077 | } | |
3078 | } | |
3079 | if (EMCalOn == kTRUE) | |
3080 | { | |
3081 | for (i=0;i<jet1->GetNumberOfClusters();i++) | |
3082 | { | |
3083 | jetCluster1=jet1->ClusterAt(i); | |
3084 | for (j=0;j<jet2->GetNumberOfClusters();j++) | |
3085 | { | |
3086 | jetCluster2=jet2->ClusterAt(j); | |
3087 | if (jetCluster1 == jetCluster2) | |
3088 | { | |
3089 | return kTRUE; | |
3090 | } | |
3091 | } | |
3092 | } | |
3093 | } | |
3094 | return kFALSE; | |
3095 | } | |
3096 | ||
ac6a3f1e | 3097 | Double_t AliAnalysisTaskFullpAJets::AreaWithinTPC(Double_t r,Double_t eta) |
3098 | { | |
3099 | Double_t z; | |
3100 | if (eta<(fTPCEtaMin+r)) | |
3101 | { | |
3102 | z=eta-fTPCEtaMin; | |
3103 | } | |
3104 | else if(eta>(fTPCEtaMax-r)) | |
3105 | { | |
3106 | z=fTPCEtaMax-eta; | |
3107 | } | |
3108 | else | |
3109 | { | |
3110 | z=r; | |
3111 | } | |
3112 | return r*r*TMath::Pi()-AreaEdge(r,z); | |
3113 | } | |
3114 | ||
3115 | Double_t AliAnalysisTaskFullpAJets::AreaWithinEMCal(Double_t r,Double_t phi,Double_t eta) | |
3116 | { | |
3117 | Double_t x,y; | |
3118 | ||
3119 | if (phi<(fEMCalPhiMin-r) || phi>(fEMCalPhiMax+r)) | |
3120 | { | |
3121 | x=-r; | |
3122 | } | |
3123 | else if (phi<(fEMCalPhiMin+r)) | |
3124 | { | |
3125 | x=phi-fEMCalPhiMin; | |
3126 | } | |
3127 | else if (phi>(fEMCalPhiMin+r) && phi<(fEMCalPhiMax-r)) | |
3128 | { | |
3129 | x=r; | |
3130 | } | |
3131 | else | |
3132 | { | |
3133 | x=fEMCalPhiMax-phi; | |
3134 | } | |
3135 | ||
3136 | if (eta<(fEMCalEtaMin-r) || eta>(fEMCalEtaMax+r)) | |
3137 | { | |
3138 | y=-r; | |
3139 | } | |
3140 | else if (eta<(fEMCalEtaMin+r)) | |
3141 | { | |
3142 | y=eta-fEMCalEtaMin; | |
3143 | } | |
3144 | else if (eta>(fEMCalEtaMin+r) && eta<(fEMCalEtaMax-r)) | |
3145 | { | |
3146 | y=r; | |
3147 | } | |
3148 | else | |
3149 | { | |
3150 | y=fEMCalEtaMax-eta; | |
3151 | } | |
3152 | ||
3153 | if (x>=0 && y>=0) | |
3154 | { | |
3155 | if (TMath::Sqrt(x*x+y*y)>=r) | |
3156 | { | |
3157 | return r*r*TMath::Pi()-AreaEdge(r,x)-AreaEdge(r,y); | |
3158 | } | |
3159 | return r*r*TMath::Pi()-AreaEdge(r,x)-AreaEdge(r,y)+AreaOverlap(r,x,y); | |
3160 | } | |
3161 | else if ((x>=r && y<0) || (y>=r && x<0)) | |
3162 | { | |
3163 | return r*r*TMath::Pi()-AreaEdge(r,x)-AreaEdge(r,y); | |
3164 | } | |
3165 | else if (x>0 && x<r && y<0) | |
3166 | { | |
3167 | Double_t a=TMath::Sqrt(r*r-x*x); | |
3168 | Double_t b=TMath::Sqrt(r*r-y*y); | |
3169 | if ((x-b)>0) | |
3170 | { | |
3171 | return r*r*TMath::ASin(b/r)+y*b; | |
3172 | } | |
3173 | else | |
3174 | { | |
3175 | return 0.5*x*a+0.5*r*r*TMath::ASin(x/r)+0.5*y*b+x*y+0.5*r*r*TMath::ASin(b/r); | |
3176 | } | |
3177 | } | |
3178 | else if (y>0 && y<r && x<0) | |
3179 | { | |
3180 | Double_t a=TMath::Sqrt(r*r-x*x); | |
3181 | Double_t b=TMath::Sqrt(r*r-y*y); | |
3182 | if ((y-a)>0) | |
3183 | { | |
3184 | return r*r*TMath::ASin(a/r)+x*a; | |
3185 | } | |
3186 | else | |
3187 | { | |
3188 | return 0.5*y*b+0.5*r*r*TMath::ASin(y/r)+0.5*x*a+x*y+0.5*r*r*TMath::ASin(a/r); | |
3189 | } | |
3190 | } | |
3191 | else | |
3192 | { | |
3193 | Double_t a=TMath::Sqrt(r*r-x*x); | |
3194 | Double_t b=TMath::Sqrt(r*r-y*y); | |
3195 | if ((x+b)<0) | |
3196 | { | |
3197 | return 0; | |
3198 | } | |
3199 | else | |
3200 | { | |
3201 | return 0.5*x*a+0.5*r*r*TMath::ASin(x/r)+0.5*y*b+x*y+0.5*r*r*TMath::ASin(b/r); | |
3202 | } | |
3203 | } | |
3204 | } | |
3205 | ||
3206 | Double_t AliAnalysisTaskFullpAJets::AreaEdge(Double_t r,Double_t z) | |
3207 | { | |
3208 | Double_t a=TMath::Sqrt(r*r-z*z); | |
3209 | return r*r*TMath::ASin(a/r)-a*z; | |
3210 | } | |
3211 | ||
3212 | Double_t AliAnalysisTaskFullpAJets::AreaOverlap(Double_t r,Double_t x,Double_t y) | |
3213 | { | |
3214 | Double_t a=TMath::Sqrt(r*r-x*x); | |
3215 | Double_t b=TMath::Sqrt(r*r-y*y); | |
3216 | return x*y-0.5*(x*a+y*b)+0.5*r*r*(TMath::ASin(b/r)-TMath::ASin(x/r)); | |
3217 | } | |
3218 | ||
3219 | Double_t AliAnalysisTaskFullpAJets::TransverseArea(Double_t r,Double_t psi0,Double_t phi,Double_t eta) | |
3220 | { | |
c6202663 | 3221 | Double_t area_left=0; |
3222 | Double_t area_right=0; | |
3223 | Double_t eta_a=0; | |
3224 | Double_t eta_b=0; | |
3225 | Double_t eta_up=0; | |
3226 | Double_t eta_down=0; | |
ac6a3f1e | 3227 | |
3228 | Double_t u=eta-fEMCalEtaMin; | |
3229 | Double_t v=fEMCalEtaMax-eta; | |
3230 | ||
3231 | Double_t phi1=phi+u*TMath::Tan(psi0); | |
3232 | Double_t phi2=phi-u*TMath::Tan(psi0); | |
3233 | Double_t phi3=phi+v*TMath::Tan(psi0); | |
3234 | Double_t phi4=phi-v*TMath::Tan(psi0); | |
3235 | ||
3236 | //Calculate the Left side area | |
3237 | if (phi1>=fEMCalPhiMax) | |
3238 | { | |
3239 | eta_a=eta-u*((fEMCalPhiMax-phi)/(phi1-phi)); | |
3240 | } | |
3241 | if (phi2<=fEMCalPhiMin) | |
3242 | { | |
3243 | eta_b=eta-u*((phi-fEMCalPhiMin)/(phi-phi2)); | |
3244 | } | |
3245 | ||
3246 | if ((phi1>=fEMCalPhiMax) && (phi2<=fEMCalPhiMin)) | |
3247 | { | |
3248 | eta_up=TMath::Max(eta_a,eta_b); | |
3249 | eta_down=TMath::Min(eta_a,eta_b); | |
3250 | ||
3251 | area_left=(eta_down-fEMCalEtaMin)*fEMCalPhiTotal + 0.5*(fEMCalPhiTotal+2*(eta-eta_up)*TMath::Tan(psi0))*(eta_up-eta_down) + (eta-eta_up+r)*TMath::Tan(psi0)*(eta-eta_up-r); | |
3252 | } | |
3253 | else if (phi1>=fEMCalPhiMax) | |
3254 | { | |
3255 | area_left=0.5*(fEMCalPhiMax-phi2+2*(eta-eta_a)*TMath::Tan(psi0))*(eta_a-fEMCalEtaMin) + (eta-eta_a+r)*TMath::Tan(psi0)*(eta-eta_a-r); | |
3256 | } | |
3257 | else if (phi2<=fEMCalPhiMin) | |
3258 | { | |
3259 | area_left=0.5*(phi1-fEMCalPhiMin+2*(eta-eta_b)*TMath::Tan(psi0))*(eta_b-fEMCalEtaMin) + (eta-eta_b+r)*TMath::Tan(psi0)*(eta-eta_b-r); | |
3260 | } | |
3261 | else | |
3262 | { | |
3263 | area_left=0.5*(phi1-phi2+2*r*TMath::Tan(psi0))*(u-r); | |
3264 | } | |
3265 | ||
c6202663 | 3266 | // Calculate the Right side area |
ac6a3f1e | 3267 | if (phi3>=fEMCalPhiMax) |
3268 | { | |
3269 | eta_a=eta+v*((fEMCalPhiMax-phi)/(phi3-phi)); | |
3270 | } | |
3271 | if (phi4<=fEMCalPhiMin) | |
3272 | { | |
3273 | eta_b=eta+v*((phi-fEMCalPhiMin)/(phi-phi4)); | |
3274 | } | |
3275 | ||
3276 | if ((phi3>=fEMCalPhiMax) && (phi4<=fEMCalPhiMin)) | |
3277 | { | |
3278 | eta_up=TMath::Max(eta_a,eta_b); | |
3279 | eta_down=TMath::Min(eta_a,eta_b); | |
3280 | ||
3281 | area_right=(fEMCalEtaMax-eta_up)*fEMCalPhiTotal + 0.5*(fEMCalPhiTotal+2*(eta_down-eta)*TMath::Tan(psi0))*(eta_down-eta_up) + (eta_down-eta+r)*TMath::Tan(psi0)*(eta_up-eta-r); | |
3282 | } | |
3283 | else if (phi3>=fEMCalPhiMax) | |
3284 | { | |
3285 | area_right=0.5*(fEMCalPhiMax-phi4+2*(eta_a-eta)*TMath::Tan(psi0))*(fEMCalEtaMax-eta_a) + (eta_a-eta+r)*TMath::Tan(psi0)*(eta_a-eta-r); | |
3286 | } | |
3287 | else if (phi4<=fEMCalPhiMin) | |
3288 | { | |
3289 | area_right=0.5*(phi3-fEMCalPhiMin+2*(eta_b-eta)*TMath::Tan(psi0))*(fEMCalEtaMax-eta_b) + (eta_b-eta+r)*TMath::Tan(psi0)*(eta_b-eta-r); | |
3290 | } | |
3291 | else | |
3292 | { | |
3293 | area_right=0.5*(phi3-phi4+2*r*TMath::Tan(psi0))*(v-r); | |
3294 | } | |
3295 | return area_left+area_right; | |
3296 | } | |
c6202663 | 3297 | |
3298 | Double_t AliAnalysisTaskFullpAJets::MedianRhokT(Double_t *pTkTEntries, Double_t *RhokTEntries, Int_t nEntries) | |
3299 | { | |
3300 | // This function is used to calculate the median Rho kT value. The procedure is: | |
3301 | // - Order the kT cluster array from highest rho value to lowest | |
3302 | // - Exclude highest rho kT cluster | |
3303 | // - Return the median rho value of the remaining subset | |
3304 | ||
3305 | // Sort Array | |
3306 | const Double_t rho_min=-9.9999E+99; | |
3307 | Int_t j,k; | |
3308 | Double_t w[nEntries]; // Used for sorting | |
3309 | Double_t smax=rho_min; | |
3310 | Int_t sindex=-1; | |
3311 | ||
3312 | Double_t pTmax=0.0; | |
3313 | Int_t pTmaxID=-1; | |
3314 | ||
3315 | for (j=0;j<nEntries;j++) | |
3316 | { | |
3317 | w[j]=0.0; | |
3318 | } | |
3319 | ||
3320 | for (j=0;j<nEntries;j++) | |
3321 | { | |
3322 | if (pTkTEntries[j]>pTmax) | |
3323 | { | |
3324 | pTmax=pTkTEntries[j]; | |
3325 | pTmaxID=j; | |
3326 | } | |
3327 | } | |
3328 | ||
3329 | for (j=0;j<nEntries;j++) | |
3330 | { | |
3331 | for (k=0;k<nEntries;k++) | |
3332 | { | |
3333 | if (RhokTEntries[k]>smax) | |
3334 | { | |
3335 | smax=RhokTEntries[k]; | |
3336 | sindex=k; | |
3337 | } | |
3338 | } | |
3339 | w[j]=smax; | |
3340 | RhokTEntries[sindex]=rho_min; | |
3341 | smax=rho_min; | |
3342 | sindex=-1; | |
3343 | } | |
3344 | return w[nEntries/2]; | |
3345 | } | |
3346 | ||
3347 | ||
3348 | // AlipAJetData Class Member Defs | |
3349 | // Constructors | |
d812e269 | 3350 | AliAnalysisTaskFullpAJets::AlipAJetData::AlipAJetData() : |
3351 | ||
3352 | fName(0), | |
3353 | fIsJetsFull(0), | |
3354 | fnTotal(0), | |
3355 | fnJets(0), | |
3356 | fnJetsSC(0), | |
3357 | fJetR(0), | |
3358 | fSignalPt(0), | |
3359 | fAreaCutFrac(0.6), | |
3e43a01f | 3360 | fNEF(1.0), |
3361 | fSignalTrackBias(0), | |
d812e269 | 3362 | fPtMaxIndex(0), |
3363 | fPtMax(0), | |
3364 | fPtSubLeadingIndex(0), | |
3365 | fPtSubLeading(0), | |
3366 | fJetsIndex(0), | |
3367 | fJetsSCIndex(0), | |
20f2d13a | 3368 | fIsJetInArray(0), |
3369 | fJetMaxChargedPt(0) | |
c6202663 | 3370 | { |
3371 | fnTotal=0; | |
3372 | // Dummy constructor ALWAYS needed for I/O. | |
3373 | } | |
3374 | ||
d812e269 | 3375 | AliAnalysisTaskFullpAJets::AlipAJetData::AlipAJetData(const char *name, Bool_t isFull, Int_t nEntries) : |
3376 | ||
3377 | fName(0), | |
3378 | fIsJetsFull(0), | |
3379 | fnTotal(0), | |
3380 | fnJets(0), | |
3381 | fnJetsSC(0), | |
3382 | fJetR(0), | |
3383 | fSignalPt(0), | |
3384 | fAreaCutFrac(0.6), | |
3e43a01f | 3385 | fNEF(1.0), |
3386 | fSignalTrackBias(0), | |
d812e269 | 3387 | fPtMaxIndex(0), |
3388 | fPtMax(0), | |
3389 | fPtSubLeadingIndex(0), | |
3390 | fPtSubLeading(0), | |
3391 | fJetsIndex(0), | |
3392 | fJetsSCIndex(0), | |
20f2d13a | 3393 | fIsJetInArray(0), |
3394 | fJetMaxChargedPt(0) | |
c6202663 | 3395 | { |
3396 | SetName(name); | |
3397 | SetIsJetsFull(isFull); | |
3398 | SetTotalEntries(nEntries); | |
3399 | SetLeading(0,-9.99E+099); | |
3400 | SetSubLeading(0,-9.99E+099); | |
3401 | SetSignalCut(0); | |
3402 | SetAreaCutFraction(0.6); | |
d812e269 | 3403 | SetJetR(fJetR); |
3e43a01f | 3404 | SetSignalTrackPtBias(0); |
c6202663 | 3405 | } |
3406 | ||
3407 | // Destructor | |
3408 | AliAnalysisTaskFullpAJets::AlipAJetData::~AlipAJetData() | |
3409 | { | |
3410 | if (fnTotal!=0) | |
3411 | { | |
3412 | SetName(""); | |
3413 | SetIsJetsFull(kFALSE); | |
3414 | SetTotalEntries(0); | |
3415 | SetTotalJets(0); | |
3416 | SetTotalSignalJets(0); | |
3417 | SetLeading(0,0); | |
3418 | SetSubLeading(0,0); | |
3419 | SetSignalCut(0); | |
3420 | SetAreaCutFraction(0); | |
3421 | SetJetR(0); | |
91d0893e | 3422 | SetNEF(0); |
3e43a01f | 3423 | SetSignalTrackPtBias(kFALSE); |
c6202663 | 3424 | |
3425 | delete [] fJetsIndex; | |
3426 | delete [] fJetsSCIndex; | |
3427 | delete [] fIsJetInArray; | |
20f2d13a | 3428 | delete [] fJetMaxChargedPt; |
c6202663 | 3429 | } |
3430 | } | |
3431 | ||
3432 | // User Defined Sub-Routines | |
3433 | void AliAnalysisTaskFullpAJets::AlipAJetData::InitializeJetData(TClonesArray *jetList, Int_t nEntries) | |
3434 | { | |
3435 | Int_t i=0; | |
3436 | Int_t k=0; | |
3437 | Int_t l=0; | |
3438 | Double_t AreaThreshold = fAreaCutFrac*TMath::Pi()*TMath::Power(fJetR,2); | |
3439 | ||
3440 | // Initialize Jet Data | |
3441 | for (i=0;i<nEntries;i++) | |
3442 | { | |
3443 | AliEmcalJet *myJet =(AliEmcalJet*) jetList->At(i); | |
3444 | ||
3445 | if (fIsJetInArray[i]==kTRUE && myJet->Area()>AreaThreshold) | |
3446 | { | |
3447 | SetJetIndex(i,k); | |
3448 | if (myJet->Pt()>fPtMax) | |
3449 | { | |
3450 | SetSubLeading(fPtMaxIndex,fPtMax); | |
3451 | SetLeading(i,myJet->Pt()); | |
3452 | } | |
3453 | else if (myJet->Pt()>fPtSubLeading) | |
3454 | { | |
20f2d13a | 3455 | SetSubLeading(i,myJet->Pt()); |
c6202663 | 3456 | } |
91d0893e | 3457 | // require leading charged constituent to have a pT greater then the signal threshold & Jet NEF to be less then the Signal Jet NEF cut |
20f2d13a | 3458 | fJetMaxChargedPt[i] = myJet->MaxTrackPt(); |
8daeee93 | 3459 | if (fSignalTrackBias==kTRUE) |
3460 | { | |
3461 | if (fJetMaxChargedPt[i]>=fSignalPt && myJet->NEF()<=fNEF) | |
3462 | { | |
3463 | SetSignalJetIndex(i,l); | |
3464 | l++; | |
3465 | } | |
3466 | } | |
3467 | else | |
c6202663 | 3468 | { |
8daeee93 | 3469 | if (myJet->Pt()>=fSignalPt && myJet->NEF()<=fNEF) |
3470 | { | |
3471 | SetSignalJetIndex(i,l); | |
3472 | l++; | |
3473 | } | |
c6202663 | 3474 | } |
3475 | k++; | |
3476 | } | |
3477 | } | |
3478 | SetTotalJets(k); | |
3479 | SetTotalSignalJets(l); | |
3480 | } | |
3481 | ||
3482 | // Setters | |
3483 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetName(const char *name) | |
3484 | { | |
3485 | fName = name; | |
3486 | } | |
3487 | ||
3488 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetIsJetsFull(Bool_t isFull) | |
3489 | { | |
3490 | fIsJetsFull = isFull; | |
3491 | } | |
3492 | ||
3493 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetTotalEntries(Int_t nEntries) | |
3494 | { | |
3495 | fnTotal = nEntries; | |
3496 | fJetsIndex = new Int_t[fnTotal]; | |
3497 | fJetsSCIndex = new Int_t[fnTotal]; | |
3498 | fIsJetInArray = new Bool_t[fnTotal]; | |
20f2d13a | 3499 | fJetMaxChargedPt = new Double_t[fnTotal]; |
c6202663 | 3500 | } |
3501 | ||
3502 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetTotalJets(Int_t nJets) | |
3503 | { | |
3504 | fnJets = nJets; | |
3505 | } | |
3506 | ||
3507 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetTotalSignalJets(Int_t nSignalJets) | |
3508 | { | |
3509 | fnJetsSC = nSignalJets; | |
3510 | } | |
3511 | ||
3512 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetSignalCut(Double_t Pt) | |
3513 | { | |
3514 | fSignalPt = Pt; | |
3515 | } | |
3516 | ||
3517 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetLeading(Int_t index, Double_t Pt) | |
3518 | { | |
3519 | fPtMaxIndex = index; | |
3520 | fPtMax = Pt; | |
3521 | } | |
3522 | ||
3523 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetSubLeading(Int_t index, Double_t Pt) | |
3524 | { | |
3525 | fPtSubLeadingIndex = index; | |
3526 | fPtSubLeading = Pt; | |
3527 | } | |
3528 | ||
3529 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetJetIndex(Int_t index, Int_t At) | |
3530 | { | |
3531 | fJetsIndex[At] = index; | |
3532 | } | |
3533 | ||
3534 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetSignalJetIndex(Int_t index, Int_t At) | |
3535 | { | |
3536 | fJetsSCIndex[At] = index; | |
3537 | } | |
3538 | ||
3539 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetIsJetInArray(Bool_t isInArray, Int_t At) | |
3540 | { | |
3541 | fIsJetInArray[At] = isInArray; | |
3542 | } | |
3543 | ||
3544 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetAreaCutFraction(Double_t areaFraction) | |
3545 | { | |
3546 | fAreaCutFrac = areaFraction; | |
3547 | } | |
3548 | ||
3549 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetJetR(Double_t jetR) | |
3550 | { | |
3551 | fJetR = jetR; | |
3552 | } | |
3553 | ||
91d0893e | 3554 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetNEF(Double_t nef) |
3555 | { | |
3556 | fNEF = nef; | |
3557 | } | |
3558 | ||
8daeee93 | 3559 | void AliAnalysisTaskFullpAJets::AlipAJetData::SetSignalTrackPtBias(Bool_t chargedBias) |
3560 | { | |
3561 | fSignalTrackBias = chargedBias; | |
3562 | } | |
3563 | ||
c6202663 | 3564 | // Getters |
3565 | Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetTotalEntries() | |
3566 | { | |
3567 | return fnTotal; | |
3568 | } | |
3569 | ||
3570 | Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetTotalJets() | |
3571 | { | |
3572 | return fnJets; | |
3573 | } | |
3574 | ||
3575 | Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetTotalSignalJets() | |
3576 | { | |
3577 | return fnJetsSC; | |
3578 | } | |
3579 | ||
3580 | Double_t AliAnalysisTaskFullpAJets::AlipAJetData::GetSignalCut() | |
3581 | { | |
3582 | return fSignalPt; | |
3583 | } | |
3584 | ||
3585 | Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetLeadingIndex() | |
3586 | { | |
3587 | return fPtMaxIndex; | |
3588 | } | |
3589 | ||
3590 | Double_t AliAnalysisTaskFullpAJets::AlipAJetData::GetLeadingPt() | |
3591 | { | |
3592 | return fPtMax; | |
3593 | } | |
3594 | ||
3595 | Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetSubLeadingIndex() | |
3596 | { | |
3597 | return fPtSubLeadingIndex; | |
3598 | } | |
3599 | ||
3600 | Double_t AliAnalysisTaskFullpAJets::AlipAJetData::GetSubLeadingPt() | |
3601 | { | |
3602 | return fPtSubLeading; | |
3603 | } | |
3604 | ||
3605 | Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetJetIndex(Int_t At) | |
3606 | { | |
3607 | return fJetsIndex[At]; | |
3608 | } | |
3609 | ||
3610 | Int_t AliAnalysisTaskFullpAJets::AlipAJetData::GetSignalJetIndex(Int_t At) | |
3611 | { | |
3612 | return fJetsSCIndex[At]; | |
3613 | } | |
3614 | ||
3615 | Bool_t AliAnalysisTaskFullpAJets::AlipAJetData::GetIsJetInArray(Int_t At) | |
3616 | { | |
3617 | return fIsJetInArray[At]; | |
3618 | } | |
3619 | ||
20f2d13a | 3620 | Double_t AliAnalysisTaskFullpAJets::AlipAJetData::GetJetMaxChargedPt(Int_t At) |
3621 | { | |
3622 | return fJetMaxChargedPt[At]; | |
3623 | } | |
c6202663 | 3624 | |
91d0893e | 3625 | Double_t AliAnalysisTaskFullpAJets::AlipAJetData::GetNEF() |
3626 | { | |
3627 | return fNEF; | |
3628 | } | |
3629 | ||
c6202663 | 3630 | // AlipAJetHistos Class Member Defs |
3631 | // Constructors | |
d812e269 | 3632 | AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos() : |
3633 | ||
3634 | fOutput(0), | |
3635 | ||
3636 | fh020Rho(0), | |
3637 | fh80100Rho(0), | |
3638 | fhRho(0), | |
3639 | fhRhoCen(0), | |
3640 | fh020BSPt(0), | |
3641 | fh80100BSPt(0), | |
3642 | fhBSPt(0), | |
3643 | fhBSPtCen(0), | |
3644 | fh020BSPtSignal(0), | |
3645 | fh80100BSPtSignal(0), | |
3646 | fhBSPtSignal(0), | |
3647 | fhBSPtCenSignal(0), | |
3648 | fh020DeltaPt(0), | |
3649 | fh80100DeltaPt(0), | |
3650 | fhDeltaPt(0), | |
3651 | fhDeltaPtCen(0), | |
3652 | fh020DeltaPtSignal(0), | |
3653 | fh80100DeltaPtSignal(0), | |
3654 | fhDeltaPtSignal(0), | |
3655 | fhDeltaPtCenSignal(0), | |
7acc3e04 | 3656 | fh020DeltaPtNColl(0), |
3657 | fh80100DeltaPtNColl(0), | |
3658 | fhDeltaPtNColl(0), | |
3659 | fhDeltaPtCenNColl(0), | |
d812e269 | 3660 | fh020BckgFlucPt(0), |
3661 | fh80100BckgFlucPt(0), | |
3662 | fhBckgFlucPt(0), | |
3663 | fhBckgFlucPtCen(0), | |
3664 | ||
3665 | fpRho(0), | |
3666 | fpLJetRho(0), | |
1cd88f63 | 3667 | |
e864d416 | 3668 | fhJetPtArea(0), |
2d2100d5 MV |
3669 | fhJetConstituentPt(0), |
3670 | fhJetTracksPt(0), | |
3671 | fhJetClustersPt(0), | |
3672 | fhJetConstituentCounts(0), | |
3673 | fhJetTracksCounts(0), | |
3674 | fhJetClustersCounts(0), | |
825d120f | 3675 | fhJetPtZTrack(0), |
3676 | fhJetPtZCluster(0), | |
1cd88f63 | 3677 | |
8daeee93 | 3678 | fNEFOutput(0), |
1cd88f63 ML |
3679 | fhJetNEFInfo(0), |
3680 | fhJetNEFSignalInfo(0), | |
3681 | fhClusterNEFInfo(0), | |
3682 | fhClusterNEFSignalInfo(0), | |
8daeee93 | 3683 | fhClusterShapeAll(0), |
36cb7ae2 | 3684 | fhClusterPtCellAll(0), |
1cd88f63 | 3685 | |
d812e269 | 3686 | fName(0), |
3687 | fCentralityTag(0), | |
3688 | fCentralityBins(0), | |
3689 | fCentralityLow(0), | |
3690 | fCentralityUp(0), | |
3691 | fPtBins(0), | |
3692 | fPtLow(0), | |
3693 | fPtUp(0), | |
3694 | fRhoPtBins(0), | |
3695 | fRhoPtLow(0), | |
3696 | fRhoPtUp(0), | |
3697 | fDeltaPtBins(0), | |
3698 | fDeltaPtLow(0), | |
3699 | fDeltaPtUp(0), | |
3700 | fBckgFlucPtBins(0), | |
3701 | fBckgFlucPtLow(0), | |
3702 | fBckgFlucPtUp(0), | |
3703 | fLJetPtBins(0), | |
3704 | fLJetPtLow(0), | |
7acc3e04 | 3705 | fLJetPtUp(0), |
20f2d13a | 3706 | fRhoValue(0), |
3707 | fLChargedTrackPtBins(0), | |
3708 | fLChargedTrackPtLow(0), | |
91d0893e | 3709 | fLChargedTrackPtUp(0), |
8daeee93 | 3710 | fDoNEFQAPlots(0), |
d2af75be | 3711 | fDoNEFSignalOnly(1), |
3e43a01f | 3712 | fSignalTrackBias(0), |
91d0893e | 3713 | fNEFBins(0), |
3714 | fNEFLow(0), | |
8daeee93 | 3715 | fNEFUp(0), |
2d2100d5 MV |
3716 | fnDimJet(0), |
3717 | fnDimCluster(0), | |
8daeee93 | 3718 | fEMCalPhiMin(1.39626), |
3719 | fEMCalPhiMax(3.26377), | |
3720 | fEMCalEtaMin(-0.7), | |
3721 | fEMCalEtaMax(0.7) | |
3722 | ||
c6202663 | 3723 | { |
3724 | // Dummy constructor ALWAYS needed for I/O. | |
3725 | } | |
3726 | ||
d812e269 | 3727 | AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos(const char *name) : |
3728 | ||
3729 | fOutput(0), | |
3730 | ||
3731 | fh020Rho(0), | |
3732 | fh80100Rho(0), | |
3733 | fhRho(0), | |
3734 | fhRhoCen(0), | |
3735 | fh020BSPt(0), | |
3736 | fh80100BSPt(0), | |
3737 | fhBSPt(0), | |
3738 | fhBSPtCen(0), | |
3739 | fh020BSPtSignal(0), | |
3740 | fh80100BSPtSignal(0), | |
3741 | fhBSPtSignal(0), | |
3742 | fhBSPtCenSignal(0), | |
3743 | fh020DeltaPt(0), | |
3744 | fh80100DeltaPt(0), | |
3745 | fhDeltaPt(0), | |
3746 | fhDeltaPtCen(0), | |
3747 | fh020DeltaPtSignal(0), | |
3748 | fh80100DeltaPtSignal(0), | |
3749 | fhDeltaPtSignal(0), | |
3750 | fhDeltaPtCenSignal(0), | |
7acc3e04 | 3751 | fh020DeltaPtNColl(0), |
3752 | fh80100DeltaPtNColl(0), | |
3753 | fhDeltaPtNColl(0), | |
3754 | fhDeltaPtCenNColl(0), | |
d812e269 | 3755 | fh020BckgFlucPt(0), |
3756 | fh80100BckgFlucPt(0), | |
3757 | fhBckgFlucPt(0), | |
3758 | fhBckgFlucPtCen(0), | |
3759 | ||
3760 | fpRho(0), | |
3761 | fpLJetRho(0), | |
1cd88f63 | 3762 | |
e864d416 | 3763 | fhJetPtArea(0), |
2d2100d5 MV |
3764 | fhJetConstituentPt(0), |
3765 | fhJetTracksPt(0), | |
3766 | fhJetClustersPt(0), | |
3767 | fhJetConstituentCounts(0), | |
3768 | fhJetTracksCounts(0), | |
3769 | fhJetClustersCounts(0), | |
825d120f | 3770 | fhJetPtZTrack(0), |
3771 | fhJetPtZCluster(0), | |
1cd88f63 | 3772 | |
8daeee93 | 3773 | fNEFOutput(0), |
1cd88f63 ML |
3774 | fhJetNEFInfo(0), |
3775 | fhJetNEFSignalInfo(0), | |
3776 | fhClusterNEFInfo(0), | |
3777 | fhClusterNEFSignalInfo(0), | |
8daeee93 | 3778 | fhClusterShapeAll(0), |
36cb7ae2 | 3779 | fhClusterPtCellAll(0), |
1cd88f63 | 3780 | |
d812e269 | 3781 | fName(0), |
3782 | fCentralityTag(0), | |
3783 | fCentralityBins(0), | |
3784 | fCentralityLow(0), | |
3785 | fCentralityUp(0), | |
3786 | fPtBins(0), | |
3787 | fPtLow(0), | |
3788 | fPtUp(0), | |
3789 | fRhoPtBins(0), | |
3790 | fRhoPtLow(0), | |
3791 | fRhoPtUp(0), | |
3792 | fDeltaPtBins(0), | |
3793 | fDeltaPtLow(0), | |
3794 | fDeltaPtUp(0), | |
3795 | fBckgFlucPtBins(0), | |
3796 | fBckgFlucPtLow(0), | |
3797 | fBckgFlucPtUp(0), | |
3798 | fLJetPtBins(0), | |
3799 | fLJetPtLow(0), | |
7acc3e04 | 3800 | fLJetPtUp(0), |
20f2d13a | 3801 | fRhoValue(0), |
3802 | fLChargedTrackPtBins(0), | |
3803 | fLChargedTrackPtLow(0), | |
91d0893e | 3804 | fLChargedTrackPtUp(0), |
8daeee93 | 3805 | fDoNEFQAPlots(0), |
d2af75be | 3806 | fDoNEFSignalOnly(1), |
3e43a01f | 3807 | fSignalTrackBias(0), |
91d0893e | 3808 | fNEFBins(0), |
3809 | fNEFLow(0), | |
8daeee93 | 3810 | fNEFUp(0), |
2d2100d5 MV |
3811 | fnDimJet(0), |
3812 | fnDimCluster(0), | |
8daeee93 | 3813 | fEMCalPhiMin(1.39626), |
3814 | fEMCalPhiMax(3.26377), | |
3815 | fEMCalEtaMin(-0.7), | |
3816 | fEMCalEtaMax(0.7) | |
91d0893e | 3817 | |
c6202663 | 3818 | { |
3819 | SetName(name); | |
3820 | SetCentralityTag("V0A"); | |
3821 | SetCentralityRange(100,0,100); | |
3822 | SetPtRange(250,-50,200); | |
3823 | SetRhoPtRange(500,0,50); | |
3824 | SetDeltaPtRange(200,-100,100); | |
3825 | SetBackgroundFluctuationsPtRange(100,0,100); | |
3826 | SetLeadingJetPtRange(200,0,200); | |
20f2d13a | 3827 | SetLeadingChargedTrackPtRange(100,0,100); |
91d0893e | 3828 | SetNEFRange(100,0,1); |
8daeee93 | 3829 | DoNEFQAPlots(kFALSE); |
c6202663 | 3830 | |
3831 | Init(); | |
3832 | } | |
3833 | ||
8daeee93 | 3834 | AliAnalysisTaskFullpAJets::AlipAJetHistos::AlipAJetHistos(const char *name, const char *centag, Bool_t doNEF) : |
d812e269 | 3835 | |
3836 | fOutput(0), | |
3837 | ||
3838 | fh020Rho(0), | |
3839 | fh80100Rho(0), | |
3840 | fhRho(0), | |
3841 | fhRhoCen(0), | |
3842 | fh020BSPt(0), | |
3843 | fh80100BSPt(0), | |
3844 | fhBSPt(0), | |
3845 | fhBSPtCen(0), | |
3846 | fh020BSPtSignal(0), | |
3847 | fh80100BSPtSignal(0), | |
3848 | fhBSPtSignal(0), | |
3849 | fhBSPtCenSignal(0), | |
3850 | fh020DeltaPt(0), | |
3851 | fh80100DeltaPt(0), | |
3852 | fhDeltaPt(0), | |
3853 | fhDeltaPtCen(0), | |
3854 | fh020DeltaPtSignal(0), | |
3855 | fh80100DeltaPtSignal(0), | |
3856 | fhDeltaPtSignal(0), | |
3857 | fhDeltaPtCenSignal(0), | |
7acc3e04 | 3858 | fh020DeltaPtNColl(0), |
3859 | fh80100DeltaPtNColl(0), | |
3860 | fhDeltaPtNColl(0), | |
3861 | fhDeltaPtCenNColl(0), | |
d812e269 | 3862 | fh020BckgFlucPt(0), |
3863 | fh80100BckgFlucPt(0), | |
3864 | fhBckgFlucPt(0), | |
3865 | fhBckgFlucPtCen(0), | |
3866 | ||
3867 | fpRho(0), | |
3868 | fpLJetRho(0), | |
1cd88f63 | 3869 | |
e864d416 | 3870 | fhJetPtArea(0), |
2d2100d5 MV |
3871 | fhJetConstituentPt(0), |
3872 | fhJetTracksPt(0), | |
3873 | fhJetClustersPt(0), | |
3874 | fhJetConstituentCounts(0), | |
3875 | fhJetTracksCounts(0), | |
3876 | fhJetClustersCounts(0), | |
825d120f | 3877 | fhJetPtZTrack(0), |
3878 | fhJetPtZCluster(0), | |
1cd88f63 | 3879 | |
8daeee93 | 3880 | fNEFOutput(0), |
1cd88f63 ML |
3881 | fhJetNEFInfo(0), |
3882 | fhJetNEFSignalInfo(0), | |
3883 | fhClusterNEFInfo(0), | |
3884 | fhClusterNEFSignalInfo(0), | |
8daeee93 | 3885 | fhClusterShapeAll(0), |
36cb7ae2 | 3886 | fhClusterPtCellAll(0), |
1cd88f63 | 3887 | |
d812e269 | 3888 | fName(0), |
3889 | fCentralityTag(0), | |
3890 | fCentralityBins(0), | |
3891 | fCentralityLow(0), | |
3892 | fCentralityUp(0), | |
3893 | fPtBins(0), | |
3894 | fPtLow(0), | |
3895 | fPtUp(0), | |
3896 | fRhoPtBins(0), | |
3897 | fRhoPtLow(0), | |
3898 | fRhoPtUp(0), | |
3899 | fDeltaPtBins(0), | |
3900 | fDeltaPtLow(0), | |
3901 | fDeltaPtUp(0), | |
3902 | fBckgFlucPtBins(0), | |
3903 | fBckgFlucPtLow(0), | |
3904 | fBckgFlucPtUp(0), | |
3905 | fLJetPtBins(0), | |
3906 | fLJetPtLow(0), | |
7acc3e04 | 3907 | fLJetPtUp(0), |
20f2d13a | 3908 | fRhoValue(0), |
3909 | fLChargedTrackPtBins(0), | |
3910 | fLChargedTrackPtLow(0), | |
91d0893e | 3911 | fLChargedTrackPtUp(0), |
8daeee93 | 3912 | fDoNEFQAPlots(0), |
d2af75be | 3913 | fDoNEFSignalOnly(1), |
3e43a01f | 3914 | fSignalTrackBias(0), |
91d0893e | 3915 | fNEFBins(0), |
3916 | fNEFLow(0), | |
8daeee93 | 3917 | fNEFUp(0), |
2d2100d5 MV |
3918 | fnDimJet(0), |
3919 | fnDimCluster(0), | |
8daeee93 | 3920 | fEMCalPhiMin(1.39626), |
3921 | fEMCalPhiMax(3.26377), | |
3922 | fEMCalEtaMin(-0.7), | |
3923 | fEMCalEtaMax(0.7) | |
91d0893e | 3924 | |
c6202663 | 3925 | { |
3926 | SetName(name); | |
3927 | SetCentralityTag(centag); | |
3928 | SetCentralityRange(100,0,100); | |
3929 | SetPtRange(250,-50,200); | |
3930 | SetRhoPtRange(500,0,50); | |
3931 | SetDeltaPtRange(200,-100,100); | |
3932 | SetBackgroundFluctuationsPtRange(100,0,100); | |
3933 | SetLeadingJetPtRange(200,0,200); | |
20f2d13a | 3934 | SetLeadingChargedTrackPtRange(100,0,100); |
91d0893e | 3935 | SetNEFRange(100,0,1); |
8daeee93 | 3936 | DoNEFQAPlots(doNEF); |
3937 | ||
c6202663 | 3938 | Init(); |
3939 | } | |
3940 | ||
3941 | // Destructor | |
3942 | AliAnalysisTaskFullpAJets::AlipAJetHistos::~AlipAJetHistos() | |
3943 | { | |
3944 | if (fOutput) | |
3945 | { | |
3946 | delete fOutput; | |
3947 | } | |
3948 | } | |
3949 | ||
3950 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::Init() | |
3951 | { | |
1cd88f63 ML |
3952 | Int_t i; |
3953 | ||
8daeee93 | 3954 | // Initialize Private Variables |
1cd88f63 | 3955 | Int_t TCBins = 100; |
8daeee93 | 3956 | fEMCalPhiMin=(80/(double)360)*2*TMath::Pi(); |
3957 | fEMCalPhiMax=(187/(double)360)*2*TMath::Pi(); | |
3958 | fEMCalEtaMin=-0.7; | |
3959 | fEMCalEtaMax=0.7; | |
3960 | ||
c6202663 | 3961 | fOutput = new TList(); |
3962 | fOutput->SetOwner(); | |
3963 | fOutput->SetName(fName); | |
3964 | ||
3965 | TString RhoString=""; | |
3966 | TString PtString=""; | |
3967 | TString DeltaPtString=""; | |
3968 | TString BckgFlucPtString=""; | |
3969 | TString CentralityString; | |
62620fff | 3970 | CentralityString = Form("Centrality (%s) ",fCentralityTag); |
c6202663 | 3971 | |
3972 | // Rho Spectral Plots | |
3973 | RhoString = Form("%d-%d Centrality, Rho Spectrum",0,20); | |
1cd88f63 | 3974 | fh020Rho = new TH1F("fh020Rho",RhoString,fRhoPtBins,fRhoPtLow,fRhoPtUp); |
c6202663 | 3975 | fh020Rho->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)"); |
3976 | fh020Rho->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho"); | |
3977 | fh020Rho->Sumw2(); | |
3978 | ||
3979 | RhoString = Form("%d-%d Centrality, Rho Spectrum",80,100); | |
1cd88f63 | 3980 | fh80100Rho = new TH1F("fh80100Rho",RhoString,fRhoPtBins,fRhoPtLow,fRhoPtUp); |
c6202663 | 3981 | fh80100Rho->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)"); |
3982 | fh80100Rho->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho"); | |
3983 | fh80100Rho->Sumw2(); | |
3984 | ||
3985 | RhoString = Form("%d-%d Centrality, Rho Spectrum",0,100); | |
1cd88f63 | 3986 | fhRho = new TH1F("fhRho",RhoString,fRhoPtBins,fRhoPtLow,fRhoPtUp); |
c6202663 | 3987 | fhRho->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)"); |
3988 | fhRho->GetYaxis()->SetTitle("1/N_{Events} dN/d#rho"); | |
3989 | fhRho->Sumw2(); | |
3990 | ||
3991 | RhoString = "Rho Spectrum vs Centrality"; | |
1cd88f63 | 3992 | fhRhoCen = new TH2F("fhRhoCen",RhoString,fRhoPtBins,fRhoPtLow,fRhoPtUp,fCentralityBins,fCentralityLow,fCentralityUp); |
c6202663 | 3993 | fhRhoCen->GetXaxis()->SetTitle("p_{T}/Area (GeV/c)"); |
08b981da | 3994 | fhRhoCen->GetYaxis()->SetTitle(Form("%s",CentralityString.Data())); |
c6202663 | 3995 | fhRhoCen->GetZaxis()->SetTitle("1/N_{Events} dN/d#rho"); |
3996 | fhRhoCen->Sumw2(); | |
3997 | ||
3998 | // Background Subtracted Plots | |
3999 | PtString = Form("%d-%d Centrality, Background Subtracted Jet Spectrum",0,20); | |
1cd88f63 | 4000 | fh020BSPt = new TH1F("fh020BSPt",PtString,fPtBins,fPtLow,fPtUp); |
c6202663 | 4001 | fh020BSPt->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)"); |
85b11075 | 4002 | fh020BSPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4003 | fh020BSPt->Sumw2(); |
4004 | ||
4005 | PtString = Form("%d-%d Centrality, Background Subtracted Jet Spectrum",80,100); | |
1cd88f63 | 4006 | fh80100BSPt = new TH1F("fh80100BSPt",PtString,fPtBins,fPtLow,fPtUp); |
c6202663 | 4007 | fh80100BSPt->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)"); |
85b11075 | 4008 | fh80100BSPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4009 | fh80100BSPt->Sumw2(); |
4010 | ||
4011 | PtString = Form("%d-%d Centrality, Background Subtracted Jet Spectrum",0,100); | |
1cd88f63 | 4012 | fhBSPt = new TH1F("fhBSPt",PtString,fPtBins,fPtLow,fPtUp); |
c6202663 | 4013 | fhBSPt->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)"); |
85b11075 | 4014 | fhBSPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4015 | fhBSPt->Sumw2(); |
4016 | ||
4017 | PtString = "Background Subtracted Jet Spectrum vs Centrality"; | |
1cd88f63 | 4018 | fhBSPtCen = new TH2F("fhBSPtCen",PtString,fPtBins,fPtLow,fPtUp,fCentralityBins,fCentralityLow,fCentralityUp); |
c6202663 | 4019 | fhBSPtCen->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)"); |
08b981da | 4020 | fhBSPtCen->GetYaxis()->SetTitle(Form("%s",CentralityString.Data())); |
85b11075 | 4021 | fhBSPtCen->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4022 | fhBSPtCen->Sumw2(); |
62620fff | 4023 | |
c6202663 | 4024 | PtString = Form("%d-%d Centrality, Background Subtracted Signal Jet Spectrum",0,20); |
1cd88f63 | 4025 | fh020BSPtSignal = new TH1F("fh020BSPtSignal",PtString,fPtBins,fPtLow,fPtUp); |
c6202663 | 4026 | fh020BSPtSignal->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)"); |
85b11075 | 4027 | fh020BSPtSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4028 | fh020BSPtSignal->Sumw2(); |
4029 | ||
4030 | PtString = Form("%d-%d Centrality, Background Subtracted Signal Jet Spectrum",80,100); | |
1cd88f63 | 4031 | fh80100BSPtSignal = new TH1F("fh80100BSPtSignal",PtString,fPtBins,fPtLow,fPtUp); |
c6202663 | 4032 | fh80100BSPtSignal->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)"); |
85b11075 | 4033 | fh80100BSPtSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4034 | fh80100BSPtSignal->Sumw2(); |
4035 | ||
4036 | PtString = Form("%d-%d Centrality, Background Subtracted Signal Jet Spectrum",0,100); | |
1cd88f63 | 4037 | fhBSPtSignal = new TH1F("fhBSPtSignal",PtString,fPtBins,fPtLow,fPtUp); |
c6202663 | 4038 | fhBSPtSignal->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)"); |
85b11075 | 4039 | fhBSPtSignal->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4040 | fhBSPtSignal->Sumw2(); |
4041 | ||
4042 | PtString = "Background Subtracted Signal Jet Spectrum vs Centrality"; | |
1cd88f63 | 4043 | fhBSPtCenSignal = new TH2F("fhBSPtCenSignal",PtString,fPtBins,fPtLow,fPtUp,fCentralityBins,fCentralityLow,fCentralityUp); |
c6202663 | 4044 | fhBSPtCenSignal->GetXaxis()->SetTitle("p_{T} - #rhoA (GeV/c)"); |
08b981da | 4045 | fhBSPtCenSignal->GetYaxis()->SetTitle(Form("%s",CentralityString.Data())); |
85b11075 | 4046 | fhBSPtCenSignal->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4047 | fhBSPtCenSignal->Sumw2(); |
4048 | ||
4049 | // Delta Pt Plots with RC at least 2R away from Leading Signal | |
4050 | DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,20); | |
1cd88f63 | 4051 | fh020DeltaPt = new TH1F("fh020DeltaPt",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp); |
c6202663 | 4052 | fh020DeltaPt->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
4053 | fh020DeltaPt->GetYaxis()->SetTitle("Probability Density"); | |
4054 | fh020DeltaPt->Sumw2(); | |
4055 | ||
4056 | DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",80,100); | |
1cd88f63 | 4057 | fh80100DeltaPt = new TH1F("fh80100DeltaPt",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp); |
c6202663 | 4058 | fh80100DeltaPt->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
4059 | fh80100DeltaPt->GetYaxis()->SetTitle("Probability Density"); | |
4060 | fh80100DeltaPt->Sumw2(); | |
4061 | ||
4062 | DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,100); | |
1cd88f63 | 4063 | fhDeltaPt = new TH1F("fhDeltaPt",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp); |
c6202663 | 4064 | fhDeltaPt->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
4065 | fhDeltaPt->GetYaxis()->SetTitle("Probability Density"); | |
4066 | fhDeltaPt->Sumw2(); | |
4067 | ||
4068 | DeltaPtString = "#deltap_{T} Spectrum vs Centrality"; | |
1cd88f63 | 4069 | fhDeltaPtCen = new TH2F("fhDeltaPtCen",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp,fCentralityBins,fCentralityLow,fCentralityUp); |
c6202663 | 4070 | fhDeltaPtCen->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
08b981da | 4071 | fhDeltaPtCen->GetYaxis()->SetTitle(Form("%s",CentralityString.Data())); |
c6202663 | 4072 | fhDeltaPtCen->GetZaxis()->SetTitle("Probability Density"); |
4073 | fhDeltaPtCen->Sumw2(); | |
4074 | ||
4075 | // Delta Pt Plots with no spatial restrictions on RC | |
4076 | DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,20); | |
1cd88f63 | 4077 | fh020DeltaPtSignal = new TH1F("fh020DeltaPtSignal",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp); |
c6202663 | 4078 | fh020DeltaPtSignal->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
4079 | fh020DeltaPtSignal->GetYaxis()->SetTitle("Probability Density"); | |
4080 | fh020DeltaPtSignal->Sumw2(); | |
4081 | ||
4082 | DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",80,100); | |
1cd88f63 | 4083 | fh80100DeltaPtSignal = new TH1F("fh80100DeltaPtSignal",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp); |
c6202663 | 4084 | fh80100DeltaPtSignal->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
4085 | fh80100DeltaPtSignal->GetYaxis()->SetTitle("Probability Density"); | |
4086 | fh80100DeltaPtSignal->Sumw2(); | |
4087 | ||
4088 | DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,100); | |
1cd88f63 | 4089 | fhDeltaPtSignal = new TH1F("fhDeltaPtSignal",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp); |
c6202663 | 4090 | fhDeltaPtSignal->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
4091 | fhDeltaPtSignal->GetYaxis()->SetTitle("Probability Density"); | |
4092 | fhDeltaPtSignal->Sumw2(); | |
4093 | ||
4094 | DeltaPtString = "#deltap_{T} Spectrum vs Centrality"; | |
1cd88f63 | 4095 | fhDeltaPtCenSignal = new TH2F("fhDeltaPtCenSignal",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp,fCentralityBins,fCentralityLow,fCentralityUp); |
c6202663 | 4096 | fhDeltaPtCenSignal->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
08b981da | 4097 | fhDeltaPtCenSignal->GetYaxis()->SetTitle(Form("%s",CentralityString.Data())); |
c6202663 | 4098 | fhDeltaPtCenSignal->GetZaxis()->SetTitle("Probability Density"); |
4099 | fhDeltaPtCenSignal->Sumw2(); | |
7acc3e04 | 4100 | |
4101 | // Delta Pt Plots with NColl restrictions on RC | |
4102 | DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,20); | |
1cd88f63 | 4103 | fh020DeltaPtNColl = new TH1F("fh020DeltaPtNColl",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp); |
7acc3e04 | 4104 | fh020DeltaPtNColl->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
4105 | fh020DeltaPtNColl->GetYaxis()->SetTitle("Probability Density"); | |
4106 | fh020DeltaPtNColl->Sumw2(); | |
4107 | ||
4108 | DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",80,100); | |
1cd88f63 | 4109 | fh80100DeltaPtNColl = new TH1F("fh80100DeltaPtNColl",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp); |
7acc3e04 | 4110 | fh80100DeltaPtNColl->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
4111 | fh80100DeltaPtNColl->GetYaxis()->SetTitle("Probability Density"); | |
4112 | fh80100DeltaPtNColl->Sumw2(); | |
c6202663 | 4113 | |
7acc3e04 | 4114 | DeltaPtString = Form("%d-%d Centrality, #deltap_{T} Spectrum",0,100); |
1cd88f63 | 4115 | fhDeltaPtNColl = new TH1F("fhDeltaPtNColl",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp); |
7acc3e04 | 4116 | fhDeltaPtNColl->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
4117 | fhDeltaPtNColl->GetYaxis()->SetTitle("Probability Density"); | |
4118 | fhDeltaPtNColl->Sumw2(); | |
4119 | ||
4120 | DeltaPtString = "#deltap_{T} Spectrum vs Centrality"; | |
1cd88f63 | 4121 | fhDeltaPtCenNColl = new TH2F("fhDeltaPtCenNColl",DeltaPtString,fDeltaPtBins,fDeltaPtLow,fDeltaPtUp,fCentralityBins,fCentralityLow,fCentralityUp); |
7acc3e04 | 4122 | fhDeltaPtCenNColl->GetXaxis()->SetTitle("#deltap_{T} (GeV/c)"); |
08b981da | 4123 | fhDeltaPtCenNColl->GetYaxis()->SetTitle(Form("%s",CentralityString.Data())); |
7acc3e04 | 4124 | fhDeltaPtCenNColl->GetZaxis()->SetTitle("Probability Density"); |
4125 | fhDeltaPtCenNColl->Sumw2(); | |
4126 | ||
c6202663 | 4127 | // Background Fluctuations Pt Plots |
4128 | BckgFlucPtString = Form("%d-%d Centrality, Background Fluctuation p_{T} Spectrum",0,20); | |
1cd88f63 | 4129 | fh020BckgFlucPt = new TH1F("fh020BckgFlucPt",PtString,fPtBins,fPtLow,fPtUp); |
c6202663 | 4130 | fh020BckgFlucPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); |
85b11075 | 4131 | fh020BckgFlucPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4132 | fh020BckgFlucPt->Sumw2(); |
4133 | ||
4134 | BckgFlucPtString = Form("%d-%d Centrality, Background Fluctuation p_{T} Spectrum",80,100); | |
1cd88f63 | 4135 | fh80100BckgFlucPt = new TH1F("fh80100BckgFlucPt",BckgFlucPtString,fBckgFlucPtBins,fBckgFlucPtLow,fBckgFlucPtUp); |
c6202663 | 4136 | fh80100BckgFlucPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); |
85b11075 | 4137 | fh80100BckgFlucPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4138 | fh80100BckgFlucPt->Sumw2(); |
4139 | ||
4140 | BckgFlucPtString = Form("%d-%d Centrality, Background Fluctuation p_{T} Spectrum",0,100); | |
1cd88f63 | 4141 | fhBckgFlucPt = new TH1F("fhBckgFlucPt",BckgFlucPtString,fBckgFlucPtBins,fBckgFlucPtLow,fBckgFlucPtUp); |
c6202663 | 4142 | fhBckgFlucPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); |
85b11075 | 4143 | fhBckgFlucPt->GetYaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4144 | fhBckgFlucPt->Sumw2(); |
4145 | ||
4146 | BckgFlucPtString = "Background Fluctuation p_{T} Spectrum vs Centrality"; | |
1cd88f63 | 4147 | fhBckgFlucPtCen = new TH2F("fhBckgFlucPtCen",BckgFlucPtString,fBckgFlucPtBins,fBckgFlucPtLow,fBckgFlucPtUp,fCentralityBins,fCentralityLow,fCentralityUp); |
c6202663 | 4148 | fhBckgFlucPtCen->GetXaxis()->SetTitle("#p_{T} (GeV/c)"); |
08b981da | 4149 | fhBckgFlucPtCen->GetYaxis()->SetTitle(Form("%s",CentralityString.Data())); |
85b11075 | 4150 | fhBckgFlucPtCen->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}d#etad#varphi"); |
c6202663 | 4151 | fhBckgFlucPtCen->Sumw2(); |
4152 | ||
4153 | // Background Density vs Centrality Profile | |
4154 | RhoString = "Background Density vs Centrality"; | |
4155 | fpRho = new TProfile("fpRho",RhoString,fCentralityBins,fCentralityLow,fCentralityUp); | |
08b981da | 4156 | fpRho->GetXaxis()->SetTitle(Form("%s",CentralityString.Data())); |
c6202663 | 4157 | fpRho->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)"); |
4158 | ||
4159 | // Background Density vs Leading Jet Profile | |
4160 | fpLJetRho = new TProfile("fpLJetRho","#rho vs Leading Jet p_{T}",fLJetPtBins,fLJetPtLow,fLJetPtUp); | |
4161 | fpLJetRho->GetXaxis()->SetTitle("Leading Jet p_{T}"); | |
4162 | fpLJetRho->GetYaxis()->SetTitle("p_{T}/Area (GeV/c)"); | |
8daeee93 | 4163 | |
e864d416 | 4164 | // Jet pT vs Area |
4165 | Int_t JetPtAreaBins=200; | |
4166 | Double_t JetPtAreaLow=0.0; | |
4167 | Double_t JetPtAreaUp=2.0; | |
4168 | ||
1cd88f63 | 4169 | fhJetPtArea = new TH2F("fhJetPtArea","Jet Area Distribution",fPtBins,fPtLow,fPtUp,JetPtAreaBins,JetPtAreaLow,JetPtAreaUp); |
e864d416 | 4170 | fhJetPtArea->GetXaxis()->SetTitle("p_{T} (GeV/c)"); |
4171 | fhJetPtArea->GetYaxis()->SetTitle("A_{jet}"); | |
4172 | fhJetPtArea->GetZaxis()->SetTitle("1/N_{Events} dN/dA_{jet}dp_{T}"); | |
4173 | fhJetPtArea->Sumw2(); | |
4174 | ||
2d2100d5 | 4175 | // Jet pT vs Constituent pT |
1cd88f63 | 4176 | fhJetConstituentPt = new TH2F("fhJetConstituentPt","Jet constituents p_{T} distribution",fPtBins,fPtLow,fPtUp,10*fPtBins,fPtLow,fPtUp); |
2d2100d5 MV |
4177 | fhJetConstituentPt->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)"); |
4178 | fhJetConstituentPt->GetYaxis()->SetTitle("Constituent p_{T} (GeV/c)"); | |
1cd88f63 | 4179 | fhJetConstituentPt->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T,jet}dp_{T,track}"); |
2d2100d5 MV |
4180 | fhJetConstituentPt->Sumw2(); |
4181 | ||
1cd88f63 | 4182 | fhJetTracksPt = new TH2F("fhJetTracksPt","Jet constituents Tracks p_{T} distribution",fPtBins,fPtLow,fPtUp,10*fPtBins,fPtLow,fPtUp); |
2d2100d5 MV |
4183 | fhJetTracksPt->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)"); |
4184 | fhJetTracksPt->GetYaxis()->SetTitle("Constituent Track p_{T} (GeV/c)"); | |
4185 | fhJetTracksPt->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T,jet}dp_{T,track}"); | |
4186 | fhJetTracksPt->Sumw2(); | |
4187 | ||
1cd88f63 | 4188 | fhJetClustersPt = new TH2F("fhJetClustersPt","Jet constituents Clusters p_{T} distribution",fPtBins,fPtLow,fPtUp,10*fPtBins,fPtLow,fPtUp); |
2d2100d5 MV |
4189 | fhJetClustersPt->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)"); |
4190 | fhJetClustersPt->GetYaxis()->SetTitle("Constituent Cluster p_{T} (GeV/c)"); | |
4191 | fhJetClustersPt->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T,jet}dp_{T,cluster}"); | |
4192 | fhJetClustersPt->Sumw2(); | |
4193 | ||
4194 | // Jet pT vs Constituent Counts | |
1cd88f63 | 4195 | fhJetConstituentCounts = new TH2F("fhJetConstituentCounts","Jet constituents distribution",fPtBins,fPtLow,fPtUp,TCBins,0,(Double_t)TCBins); |
2d2100d5 MV |
4196 | fhJetConstituentCounts->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)"); |
4197 | fhJetConstituentCounts->GetYaxis()->SetTitle("Constituent Count"); | |
4198 | fhJetConstituentCounts->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T,jet}dN_{constituent}"); | |
4199 | fhJetConstituentCounts->Sumw2(); | |
4200 | ||
1cd88f63 | 4201 | fhJetTracksCounts = new TH2F("fhJetTracksCounts","Jet constituents Tracks distribution",fPtBins,fPtLow,fPtUp,TCBins,0,(Double_t)TCBins); |
2d2100d5 MV |
4202 | fhJetTracksCounts->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)"); |
4203 | fhJetTracksCounts->GetYaxis()->SetTitle("Constituent Track Count"); | |
4204 | fhJetTracksCounts->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T,jet}dN_{track}"); | |
4205 | fhJetTracksCounts->Sumw2(); | |
4206 | ||
1cd88f63 | 4207 | fhJetClustersCounts = new TH2F("fhJetClustersCounts","Jet constituents Clusters distribution",fPtBins,fPtLow,fPtUp,TCBins,0,(Double_t)TCBins); |
2d2100d5 MV |
4208 | fhJetClustersCounts->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)"); |
4209 | fhJetClustersCounts->GetYaxis()->SetTitle("Constituent Cluster Count"); | |
4210 | fhJetClustersCounts->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T,jet}dN_{cluster}"); | |
4211 | fhJetClustersCounts->Sumw2(); | |
4212 | ||
825d120f | 4213 | // Jet pT vs z_{track/cluster} |
4214 | fhJetPtZTrack = new TH2F("fhJetPtZTrack","Jet z_{track} distribution",fPtBins,fPtLow,fPtUp,TCBins,0,1.0); | |
4215 | fhJetPtZTrack->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)"); | |
4216 | fhJetPtZTrack->GetYaxis()->SetTitle("z_{track}"); | |
4217 | fhJetPtZTrack->GetZaxis()->SetTitle("1/N_{Events} dN_{jet}/dp_{T,jet}dz_{track}"); | |
4218 | fhJetPtZTrack->Sumw2(); | |
4219 | ||
4220 | fhJetPtZCluster = new TH2F("fhJetPtZCluster","Jet z_{cluster} distribution",fPtBins,fPtLow,fPtUp,TCBins,0,1.0); | |
4221 | fhJetPtZCluster->GetXaxis()->SetTitle("Jet p_{T} (GeV/c)"); | |
4222 | fhJetPtZCluster->GetYaxis()->SetTitle("z_{cluster}"); | |
4223 | fhJetPtZCluster->GetZaxis()->SetTitle("1/N_{Events} dN_{jet}/dp_{T,jet}dz_{cluster}"); | |
4224 | fhJetPtZCluster->Sumw2(); | |
4225 | ||
8daeee93 | 4226 | // Neutral Energy Fraction Histograms & QA |
4227 | if (fDoNEFQAPlots==kTRUE) | |
4228 | { | |
4229 | fNEFOutput = new TList(); | |
4230 | fNEFOutput->SetOwner(); | |
4231 | fNEFOutput->SetName("ListNEFQAPlots"); | |
4232 | ||
825d120f | 4233 | SetNEFJetDimensions(10); // Order: nef,Jet Pt,Eta,Phi,Centrality,Constituent mult,Charged mult, Neutral mult, z_leading |
6bda5230 | 4234 | SetNEFClusterDimensions(11); // Order: nef,Jet Pt,Eta,Phi,Centrality,F_Cross,z_leading,t_cell,deltat_cell,Cell Count, E_Cluster |
2d2100d5 MV |
4235 | |
4236 | Int_t dimJetBins[fnDimJet]; | |
4237 | Double_t dimJetLow[fnDimJet]; | |
4238 | Double_t dimJetUp[fnDimJet]; | |
4239 | ||
4240 | Int_t dimClusterBins[fnDimCluster]; | |
4241 | Double_t dimClusterLow[fnDimCluster]; | |
4242 | Double_t dimClusterUp[fnDimCluster]; | |
4243 | ||
4244 | // Establish dimensinality bin counts and bounds | |
4245 | // NEF | |
4246 | dimJetBins[0] = dimClusterBins[0] = fNEFBins; | |
4247 | dimJetLow[0] = dimClusterLow[0] = fNEFLow; | |
4248 | dimJetUp[0] = dimClusterUp[0] = fNEFUp; | |
4249 | ||
4250 | // Jet Pt | |
4251 | dimJetBins[1] = dimClusterBins[1] = fPtBins; | |
4252 | dimJetLow[1] = dimClusterLow[1] = fPtLow; | |
4253 | dimJetUp[1] = dimClusterUp[1] = fPtUp; | |
4254 | ||
4255 | // Eta-Phi | |
4256 | dimJetBins[2] = dimJetBins[3] = dimClusterBins[2] = dimClusterBins[3] = TCBins; | |
4257 | dimJetLow[2] = dimClusterLow[2] = fEMCalEtaMin; | |
4258 | dimJetUp[2] = dimClusterUp[2] = fEMCalEtaMax; | |
4259 | dimJetLow[3] = dimClusterLow[3] = fEMCalPhiMin; | |
4260 | dimJetUp[3] = dimClusterUp[3] = fEMCalPhiMax; | |
1cd88f63 ML |
4261 | |
4262 | // Centrality | |
2d2100d5 MV |
4263 | dimJetBins[4] = dimClusterBins[4] = fCentralityBins; |
4264 | dimJetLow[4] = dimClusterLow[4] = fCentralityLow; | |
4265 | dimJetUp[4] = dimClusterUp[4] = fCentralityUp; | |
1cd88f63 | 4266 | |
6bda5230 CY |
4267 | // z_leading |
4268 | dimJetBins[5] = dimClusterBins[5] = TCBins; | |
4269 | dimJetLow[5] = dimClusterLow[5] = 0.0; | |
4270 | dimJetUp[5] = dimClusterUp[5] = 1.0; | |
4271 | ||
1cd88f63 | 4272 | // Jets Constituent Multiplicity Info {Total,Charged,Neutral} |
6bda5230 | 4273 | for (i=6;i<9;i++) |
2d2100d5 MV |
4274 | { |
4275 | dimJetBins[i] = TCBins; | |
4276 | dimJetLow[i] = 0.0; | |
4277 | dimJetUp[i] = (Double_t)TCBins; | |
4278 | } | |
1cd88f63 | 4279 | |
825d120f | 4280 | // z_leading^track |
4281 | dimJetBins[9] = TCBins; | |
4282 | dimJetLow[9] = 0.0; | |
4283 | dimJetUp[9] = 1.0; | |
4284 | ||
6bda5230 CY |
4285 | // Cluster E |
4286 | dimClusterBins[6] = fPtBins; | |
4287 | dimClusterLow[6] = fPtLow; | |
4288 | dimClusterUp[6] = fPtUp; | |
4289 | ||
1cd88f63 | 4290 | // Cluster F_Cross |
6bda5230 CY |
4291 | dimClusterBins[7] = TCBins; |
4292 | dimClusterLow[7] = 0.0; | |
4293 | dimClusterUp[7] = 1.0; | |
1cd88f63 | 4294 | |
2d2100d5 | 4295 | // Cluster t_cell |
6bda5230 CY |
4296 | dimClusterBins[8] = 400; |
4297 | dimClusterLow[8] = -2e-07; | |
4298 | dimClusterUp[8] = 2e-07; | |
2d2100d5 MV |
4299 | |
4300 | // Cluster delta t_cell | |
6bda5230 CY |
4301 | dimClusterBins[9] = 100; |
4302 | dimClusterLow[9] = 0.0; | |
4303 | dimClusterUp[9] = 1e-07; | |
1cd88f63 | 4304 | |
2d2100d5 | 4305 | // Cluster Cell Count |
6bda5230 CY |
4306 | dimClusterBins[10] = TCBins; |
4307 | dimClusterLow[10] = 0.0; | |
4308 | dimClusterUp[10] = 100.0; | |
2d2100d5 | 4309 | |
1cd88f63 | 4310 | fhJetNEFSignalInfo = new THnSparseF("fhJetNEFSignalInfo","Signal Jet NEF Information Histogram",fnDimJet,dimJetBins,dimJetLow,dimJetUp); |
2d2100d5 MV |
4311 | fhJetNEFSignalInfo->Sumw2(); |
4312 | ||
1cd88f63 | 4313 | fhClusterNEFSignalInfo = new THnSparseF("fhClusterNEFSignalInfo","Signal Jet NEF Cluster Information Histogram",fnDimCluster,dimClusterBins,dimClusterLow,dimClusterUp); |
2d2100d5 | 4314 | fhClusterNEFSignalInfo->Sumw2(); |
1cd88f63 | 4315 | |
8daeee93 | 4316 | // Cluster Shape QA |
1cd88f63 | 4317 | fhClusterShapeAll = new TH1F("fhClusterShapeAll","Cluster Shape of all CaloClustersCorr",10*TCBins,0,10*TCBins); |
8daeee93 | 4318 | fhClusterShapeAll->GetXaxis()->SetTitle("Cells"); |
4319 | fhClusterShapeAll->GetYaxis()->SetTitle("1/N_{Events} dN/dCells"); | |
4320 | fhClusterShapeAll->Sumw2(); | |
36cb7ae2 | 4321 | |
1cd88f63 | 4322 | fhClusterPtCellAll = new TH2F("fhClusterPtCellAll","Cluster p_{T} vs Cluster Shape of all CaloClustersCorr",fPtBins,fPtLow,fPtUp,10*TCBins,0,10*TCBins); |
36cb7ae2 | 4323 | fhClusterPtCellAll->GetXaxis()->SetTitle("p_{T} (GeV/c)"); |
4324 | fhClusterPtCellAll->GetYaxis()->SetTitle("Cells"); | |
4325 | fhClusterPtCellAll->GetZaxis()->SetTitle("1/N_{Events} dN/dp_{T}dCells"); | |
4326 | fhClusterPtCellAll->Sumw2(); | |
1cd88f63 | 4327 | |
d2af75be CY |
4328 | if (fDoNEFSignalOnly == kTRUE) |
4329 | { | |
4330 | fhJetNEFInfo = new THnSparseF("fhJetNEFInfo","Jet NEF Information Histogram",fnDimJet,dimJetBins,dimJetLow,dimJetUp); | |
4331 | fhJetNEFInfo->Sumw2(); | |
4332 | ||
4333 | fhClusterNEFInfo = new THnSparseF("fhClusterNEFInfo","Jet NEF Cluster Information Histogram",fnDimCluster,dimClusterBins,dimClusterLow,dimClusterUp); | |
4334 | fhClusterNEFInfo->Sumw2(); | |
4335 | ||
4336 | fNEFOutput->Add(fhJetNEFInfo); | |
4337 | fNEFOutput->Add(fhClusterNEFInfo); | |
4338 | ||
4339 | } | |
2d2100d5 | 4340 | fNEFOutput->Add(fhJetNEFSignalInfo); |
2d2100d5 | 4341 | fNEFOutput->Add(fhClusterNEFSignalInfo); |
8daeee93 | 4342 | fNEFOutput->Add(fhClusterShapeAll); |
36cb7ae2 | 4343 | fNEFOutput->Add(fhClusterPtCellAll); |
1cd88f63 | 4344 | fOutput->Add(fNEFOutput); |
8daeee93 | 4345 | } |
c6202663 | 4346 | |
4347 | // Add Histos & Profiles to List | |
4348 | fOutput->Add(fh020Rho); | |
4349 | fOutput->Add(fh80100Rho); | |
4350 | fOutput->Add(fhRho); | |
4351 | fOutput->Add(fhRhoCen); | |
4352 | fOutput->Add(fh020BSPt); | |
4353 | fOutput->Add(fh80100BSPt); | |
4354 | fOutput->Add(fhBSPt); | |
4355 | fOutput->Add(fhBSPtCen); | |
4356 | fOutput->Add(fh020BSPtSignal); | |
4357 | fOutput->Add(fh80100BSPtSignal); | |
4358 | fOutput->Add(fhBSPtSignal); | |
4359 | fOutput->Add(fhBSPtCenSignal); | |
4360 | fOutput->Add(fh020DeltaPt); | |
4361 | fOutput->Add(fh80100DeltaPt); | |
4362 | fOutput->Add(fhDeltaPt); | |
4363 | fOutput->Add(fhDeltaPtCen); | |
4364 | fOutput->Add(fh020DeltaPtSignal); | |
4365 | fOutput->Add(fh80100DeltaPtSignal); | |
4366 | fOutput->Add(fhDeltaPtSignal); | |
4367 | fOutput->Add(fhDeltaPtCenSignal); | |
7acc3e04 | 4368 | fOutput->Add(fh020DeltaPtNColl); |
4369 | fOutput->Add(fh80100DeltaPtNColl); | |
4370 | fOutput->Add(fhDeltaPtNColl); | |
4371 | fOutput->Add(fhDeltaPtCenNColl); | |
c6202663 | 4372 | fOutput->Add(fh020BckgFlucPt); |
4373 | fOutput->Add(fh80100BckgFlucPt); | |
4374 | fOutput->Add(fhBckgFlucPt); | |
4375 | fOutput->Add(fhBckgFlucPtCen); | |
4376 | fOutput->Add(fpRho); | |
4377 | fOutput->Add(fpLJetRho); | |
e864d416 | 4378 | fOutput->Add(fhJetPtArea); |
2d2100d5 MV |
4379 | fOutput->Add(fhJetConstituentPt); |
4380 | fOutput->Add(fhJetTracksPt); | |
4381 | fOutput->Add(fhJetClustersPt); | |
4382 | fOutput->Add(fhJetConstituentCounts); | |
4383 | fOutput->Add(fhJetTracksCounts); | |
4384 | fOutput->Add(fhJetClustersCounts); | |
825d120f | 4385 | fOutput->Add(fhJetPtZTrack); |
4386 | fOutput->Add(fhJetPtZCluster); | |
c6202663 | 4387 | } |
4388 | ||
4389 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetName(const char *name) | |
4390 | { | |
4391 | fName = name; | |
4392 | } | |
4393 | ||
4394 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetCentralityTag(const char *name) | |
4395 | { | |
4396 | fCentralityTag = name; | |
4397 | } | |
4398 | ||
4399 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetCentralityRange(Int_t bins, Double_t low, Double_t up) | |
4400 | { | |
4401 | fCentralityBins=bins; | |
4402 | fCentralityLow=low; | |
4403 | fCentralityUp=up; | |
4404 | } | |
4405 | ||
4406 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetPtRange(Int_t bins, Double_t low, Double_t up) | |
4407 | { | |
4408 | fPtBins=bins; | |
4409 | fPtLow=low; | |
4410 | fPtUp=up; | |
4411 | } | |
4412 | ||
4413 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetRhoPtRange(Int_t bins, Double_t low, Double_t up) | |
4414 | { | |
4415 | fRhoPtBins=bins; | |
4416 | fRhoPtLow=low; | |
4417 | fRhoPtUp=up; | |
4418 | } | |
4419 | ||
4420 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetDeltaPtRange(Int_t bins, Double_t low, Double_t up) | |
4421 | { | |
4422 | fDeltaPtBins=bins; | |
4423 | fDeltaPtLow=low; | |
4424 | fDeltaPtUp=up; | |
4425 | } | |
4426 | ||
4427 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetBackgroundFluctuationsPtRange(Int_t bins, Double_t low, Double_t up) | |
4428 | { | |
4429 | fBckgFlucPtBins=bins; | |
4430 | fBckgFlucPtLow=low; | |
4431 | fBckgFlucPtUp=up; | |
4432 | } | |
4433 | ||
4434 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetLeadingJetPtRange(Int_t bins, Double_t low, Double_t up) | |
4435 | { | |
4436 | fLJetPtBins=bins; | |
4437 | fLJetPtLow=low; | |
4438 | fLJetPtUp=up; | |
4439 | } | |
4440 | ||
20f2d13a | 4441 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetLeadingChargedTrackPtRange(Int_t bins, Double_t low, Double_t up) |
4442 | { | |
4443 | fLChargedTrackPtBins=bins; | |
4444 | fLChargedTrackPtLow=low; | |
4445 | fLChargedTrackPtUp=up; | |
4446 | } | |
4447 | ||
91d0893e | 4448 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetNEFRange(Int_t bins, Double_t low, Double_t up) |
4449 | { | |
4450 | fNEFBins=bins; | |
4451 | fNEFLow=low; | |
4452 | fNEFUp=up; | |
4453 | } | |
4454 | ||
3e43a01f | 4455 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetSignalTrackPtBias(Bool_t chargedBias) |
4456 | { | |
4457 | fSignalTrackBias = chargedBias; | |
4458 | } | |
4459 | ||
2d2100d5 MV |
4460 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetNEFJetDimensions(Int_t n) |
4461 | { | |
4462 | fnDimJet = n; | |
4463 | } | |
4464 | ||
4465 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::SetNEFClusterDimensions(Int_t n) | |
4466 | { | |
4467 | fnDimCluster = n; | |
4468 | } | |
4469 | ||
c6202663 | 4470 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillRho(Double_t eventCentrality, Double_t rho) |
4471 | { | |
7acc3e04 | 4472 | fRhoValue = rho; |
4473 | ||
c6202663 | 4474 | fhRho->Fill(rho); |
4475 | fhRhoCen->Fill(rho,eventCentrality); | |
4476 | fpRho->Fill(eventCentrality,rho); | |
4477 | ||
4478 | if (eventCentrality<=20) | |
4479 | { | |
4480 | fh020Rho->Fill(rho); | |
4481 | } | |
4482 | else if (eventCentrality>=80) | |
4483 | { | |
4484 | fh80100Rho->Fill(rho); | |
4485 | } | |
4486 | } | |
4487 | ||
4488 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillBSJS(Double_t eventCentrality, Double_t rho, Double_t signalCut, TClonesArray *jetList, Int_t *indexJetList, Int_t nIndexJetList) | |
4489 | { | |
4490 | Int_t i; | |
4491 | Double_t tempPt=0.0; | |
20f2d13a | 4492 | Double_t tempChargedHighPt=0.0; |
c6202663 | 4493 | |
4494 | for (i=0;i<nIndexJetList;i++) | |
4495 | { | |
4496 | AliEmcalJet *myJet = (AliEmcalJet*) jetList->At(indexJetList[i]); | |
4497 | tempPt=myJet->Pt()-rho*myJet->Area(); | |
20f2d13a | 4498 | tempChargedHighPt = myJet->MaxTrackPt(); |
91d0893e | 4499 | |
c6202663 | 4500 | fhBSPt->Fill(tempPt); |
4501 | fhBSPtCen->Fill(tempPt,eventCentrality); | |
4502 | if (eventCentrality<=20) | |
4503 | { | |
4504 | fh020BSPt->Fill(tempPt); | |
4505 | } | |
4506 | else if (eventCentrality>=80) | |
4507 | { | |
4508 | fh80100BSPt->Fill(tempPt); | |
4509 | } | |
3e43a01f | 4510 | if (fSignalTrackBias==kTRUE) |
c6202663 | 4511 | { |
3e43a01f | 4512 | if (tempChargedHighPt>=signalCut) |
c6202663 | 4513 | { |
3e43a01f | 4514 | fhBSPtSignal->Fill(tempPt); |
4515 | fhBSPtCenSignal->Fill(tempPt,eventCentrality); | |
4516 | if (eventCentrality<=20) | |
4517 | { | |
4518 | fh020BSPtSignal->Fill(tempPt); | |
4519 | } | |
4520 | else if (eventCentrality>=80) | |
4521 | { | |
4522 | fh80100BSPtSignal->Fill(tempPt); | |
4523 | } | |
c6202663 | 4524 | } |
3e43a01f | 4525 | } |
4526 | else | |
4527 | { | |
4528 | if (tempPt>=signalCut) | |
c6202663 | 4529 | { |
3e43a01f | 4530 | fhBSPtSignal->Fill(tempPt); |
4531 | fhBSPtCenSignal->Fill(tempPt,eventCentrality); | |
4532 | if (eventCentrality<=20) | |
4533 | { | |
4534 | fh020BSPtSignal->Fill(tempPt); | |
4535 | } | |
4536 | else if (eventCentrality>=80) | |
4537 | { | |
4538 | fh80100BSPtSignal->Fill(tempPt); | |
4539 | } | |
c6202663 | 4540 | } |
4541 | } | |
4542 | tempPt=0.0; | |
20f2d13a | 4543 | tempChargedHighPt=0.0; |
c6202663 | 4544 | } |
4545 | } | |
4546 | ||
4547 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillDeltaPt(Double_t eventCentrality, Double_t rho, Double_t jetRadius, Double_t *RCArray, Int_t nRC) | |
4548 | { | |
4549 | Int_t i; | |
4550 | Double_t tempPt=0.0; | |
4551 | ||
4552 | for (i=0;i<nRC;i++) | |
4553 | { | |
4554 | tempPt=RCArray[i]-rho*TMath::Power(jetRadius,2); | |
4555 | fhDeltaPt->Fill(tempPt); | |
4556 | fhDeltaPtCen->Fill(tempPt,eventCentrality); | |
4557 | if (eventCentrality<=20) | |
4558 | { | |
4559 | fh020DeltaPt->Fill(tempPt); | |
4560 | } | |
4561 | else if (eventCentrality>=80) | |
4562 | { | |
4563 | fh80100DeltaPt->Fill(tempPt); | |
4564 | } | |
4565 | tempPt=0.0; | |
4566 | } | |
4567 | } | |
4568 | ||
4569 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillDeltaPtSignal(Double_t eventCentrality, Double_t rho, Double_t jetRadius, Double_t *RCArray, Int_t nRC) | |
4570 | { | |
4571 | Int_t i; | |
4572 | Double_t tempPt=0.0; | |
4573 | ||
4574 | for (i=0;i<nRC;i++) | |
4575 | { | |
4576 | tempPt=RCArray[i]-rho*TMath::Power(jetRadius,2); | |
4577 | fhDeltaPtSignal->Fill(tempPt); | |
4578 | fhDeltaPtCenSignal->Fill(tempPt,eventCentrality); | |
4579 | if (eventCentrality<=20) | |
4580 | { | |
4581 | fh020DeltaPtSignal->Fill(tempPt); | |
4582 | } | |
4583 | else if (eventCentrality>=80) | |
4584 | { | |
4585 | fh80100DeltaPtSignal->Fill(tempPt); | |
4586 | } | |
4587 | tempPt=0.0; | |
4588 | } | |
4589 | } | |
4590 | ||
7acc3e04 | 4591 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillDeltaPtNColl(Double_t eventCentrality, Double_t rho, Double_t jetRadius, Double_t *RCArray, Int_t nRC) |
4592 | { | |
4593 | Int_t i; | |
4594 | Double_t tempPt=0.0; | |
4595 | ||
4596 | for (i=0;i<nRC;i++) | |
4597 | { | |
4598 | tempPt=RCArray[i]-rho*TMath::Power(jetRadius,2); | |
4599 | fhDeltaPtNColl->Fill(tempPt); | |
4600 | fhDeltaPtCenNColl->Fill(tempPt,eventCentrality); | |
4601 | if (eventCentrality<=20) | |
4602 | { | |
4603 | fh020DeltaPtNColl->Fill(tempPt); | |
4604 | } | |
4605 | else if (eventCentrality>=80) | |
4606 | { | |
4607 | fh80100DeltaPtNColl->Fill(tempPt); | |
4608 | } | |
4609 | tempPt=0.0; | |
4610 | } | |
4611 | } | |
4612 | ||
c6202663 | 4613 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillBackgroundFluctuations(Double_t eventCentrality, Double_t rho, Double_t jetRadius) |
4614 | { | |
4615 | Double_t tempPt=0.0; | |
4616 | ||
4617 | tempPt=rho*TMath::Power(jetRadius,2); | |
4618 | fhBckgFlucPt->Fill(tempPt); | |
4619 | fhBckgFlucPtCen->Fill(tempPt,eventCentrality); | |
4620 | if (eventCentrality<=20) | |
4621 | { | |
4622 | fh020BckgFlucPt->Fill(tempPt); | |
4623 | } | |
4624 | else if (eventCentrality>=80) | |
4625 | { | |
4626 | fh80100BckgFlucPt->Fill(tempPt); | |
4627 | } | |
4628 | } | |
4629 | ||
4630 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillLeadingJetPtRho(Double_t jetPt, Double_t rho) | |
4631 | { | |
4632 | fpLJetRho->Fill(jetPt,rho); | |
4633 | } | |
4634 | ||
8daeee93 | 4635 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::DoNEFQAPlots(Bool_t doNEFAna) |
4636 | { | |
4637 | fDoNEFQAPlots = doNEFAna; | |
4638 | } | |
4639 | ||
d2af75be CY |
4640 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::DoNEFSignalOnly(Bool_t doNEFSignalOnly) |
4641 | { | |
4642 | fDoNEFSignalOnly = doNEFSignalOnly; | |
4643 | } | |
4644 | ||
08b981da | 4645 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::DoNEFAnalysis(Double_t nefCut, Double_t signalCut, TClonesArray *jetList, Int_t *indexJetList, Int_t nIndexJetList, TObjArray *clusterList, TClonesArray *orgClusterList, AliVEvent *event, AliEMCALGeometry *geometry, AliEMCALRecoUtils *recoUtils, AliVCaloCells *cells) |
8daeee93 | 4646 | { |
4647 | if (fDoNEFQAPlots==kFALSE) | |
4648 | { | |
4649 | return; | |
4650 | } | |
1cd88f63 | 4651 | |
85b11075 | 4652 | Int_t i,j,k; |
2d2100d5 MV |
4653 | |
4654 | Double_t valJet[fnDimJet]; | |
4655 | Double_t valCluster[fnDimJet]; | |
1cd88f63 | 4656 | for (i=0;i<fnDimJet;i++) |
2d2100d5 MV |
4657 | { |
4658 | valJet[i]=0.0; | |
4659 | valCluster[i]=0.0; | |
4660 | } | |
4661 | ||
8daeee93 | 4662 | Double_t nef=0.0; |
2d2100d5 | 4663 | Double_t jetPt=0.0; |
8daeee93 | 4664 | Double_t tempChargedHighPt=0.0; |
4665 | Double_t eta=0.0; | |
4666 | Double_t phi=0.0; | |
4667 | Int_t totalMult=0; | |
2d2100d5 | 4668 | Int_t chargedMult=0; |
8daeee93 | 4669 | Int_t neutralMult=0; |
08b981da | 4670 | Int_t iSupMod = -1, absId = -1, ieta = -1, iphi = -1; |
4671 | Bool_t shared = kFALSE; | |
36cb7ae2 | 4672 | |
08b981da | 4673 | Double_t zLeading=0.0; |
825d120f | 4674 | Double_t zLeadingTrack=0.0; |
6bda5230 | 4675 | Double_t ECluster=0.0; |
08b981da | 4676 | Double_t eSeed=0.0; |
4677 | Double_t tCell=0.0; | |
4678 | Double_t eCross=0.0; | |
4679 | Double_t FCross=0.0; | |
8daeee93 | 4680 | |
85b11075 | 4681 | Double_t lowTime=9.99e99; |
4682 | Double_t upTime=-9.99e99; | |
4683 | Int_t tempCellID=0; | |
4684 | Double_t tempCellTime=0.0; | |
4685 | ||
cf074128 | 4686 | Double_t event_centrality = event->GetCentrality()->GetCentralityPercentile(fCentralityTag); |
2d2100d5 | 4687 | valJet[4] = valCluster[4] = event_centrality; |
cf074128 | 4688 | |
8daeee93 | 4689 | // First, do Jet QA |
4690 | for (i=0;i<nIndexJetList;i++) | |
4691 | { | |
4692 | AliEmcalJet *myJet = (AliEmcalJet*) jetList->At(indexJetList[i]); | |
4693 | tempChargedHighPt = myJet->MaxTrackPt(); | |
4694 | nef=myJet->NEF(); | |
1cd88f63 | 4695 | jetPt=myJet->Pt(); |
8daeee93 | 4696 | eta=myJet->Eta(); |
4697 | phi=myJet->Phi(); | |
4698 | totalMult=myJet->GetNumberOfConstituents(); | |
1cd88f63 | 4699 | chargedMult = myJet->GetNumberOfTracks(); |
8daeee93 | 4700 | neutralMult=myJet->GetNumberOfClusters(); |
6bda5230 | 4701 | zLeading=myJet->MaxPartPt()/myJet->Pt(); |
825d120f | 4702 | zLeading=myJet->MaxTrackPt()/myJet->Pt(); |
8daeee93 | 4703 | |
1cd88f63 | 4704 | valJet[0] = valCluster[0] = nef; |
2d2100d5 MV |
4705 | valJet[1] = valCluster[1] = jetPt; |
4706 | valJet[2] = valCluster[2] = eta; | |
4707 | valJet[3] = valCluster[3] = phi; | |
6bda5230 | 4708 | valJet[5] = valCluster[5] = zLeading; |
825d120f | 4709 | valJet[9] = zLeadingTrack; |
2d2100d5 | 4710 | |
6bda5230 CY |
4711 | valJet[6] = totalMult; |
4712 | valJet[7] = chargedMult; | |
4713 | valJet[8] = neutralMult; | |
2d2100d5 | 4714 | |
d2af75be CY |
4715 | // Supress filling of this histogram due to memory size of THnSparse when running over large datasets |
4716 | if (fDoNEFSignalOnly == kFALSE) | |
4717 | { | |
4718 | fhJetNEFInfo->Fill(valJet); | |
4719 | } | |
2d2100d5 MV |
4720 | |
4721 | if (fSignalTrackBias==kTRUE) | |
4722 | { | |
4723 | if (tempChargedHighPt>=signalCut && nef<=nefCut) | |
4724 | { | |
4725 | fhJetNEFSignalInfo->Fill(valJet); | |
4726 | } | |
4727 | } | |
4728 | else | |
4729 | { | |
4730 | if (jetPt>=signalCut && nef<=nefCut) | |
4731 | { | |
4732 | fhJetNEFSignalInfo->Fill(valJet); | |
4733 | } | |
4734 | } | |
1cd88f63 | 4735 | |
08b981da | 4736 | for (j=0;j<neutralMult;j++) |
4737 | { | |
4738 | AliVCluster* vcluster = (AliVCluster*) orgClusterList->At(myJet->ClusterAt(j)); | |
6bda5230 | 4739 | ECluster = vcluster->E(); |
08b981da | 4740 | recoUtils->GetMaxEnergyCell(geometry,cells,vcluster,absId,iSupMod,ieta,iphi,shared); |
36cb7ae2 | 4741 | eSeed = cells->GetCellAmplitude(absId); |
08b981da | 4742 | tCell = cells->GetCellTime(absId); |
4743 | eCross = recoUtils->GetECross(absId,tCell,cells,event->GetBunchCrossNumber()); | |
4744 | FCross = 1 - eCross/eSeed; | |
1cd88f63 | 4745 | |
85b11075 | 4746 | // Obtain Delta t of Cluster |
4747 | lowTime=9.99e99; | |
4748 | upTime=-9.99e99; | |
4749 | for (k=0;k<vcluster->GetNCells();k++) | |
4750 | { | |
4751 | tempCellID=vcluster->GetCellAbsId(k); | |
4752 | tempCellTime=cells->GetCellTime(tempCellID); | |
4753 | if (tempCellTime>upTime) | |
4754 | { | |
4755 | upTime=tempCellTime; | |
4756 | } | |
4757 | if (tempCellTime<lowTime) | |
4758 | { | |
4759 | lowTime=tempCellTime; | |
4760 | } | |
4761 | } | |
6bda5230 CY |
4762 | valCluster[6] = ECluster; |
4763 | valCluster[7] = FCross; | |
4764 | valCluster[8] = tCell; | |
4765 | valCluster[9] = upTime-lowTime; | |
4766 | valCluster[10] = vcluster->GetNCells(); | |
2d2100d5 | 4767 | |
d2af75be CY |
4768 | if (fDoNEFSignalOnly == kFALSE) |
4769 | { | |
4770 | fhClusterNEFInfo->Fill(valCluster); | |
4771 | } | |
4772 | ||
2d2100d5 | 4773 | if (fSignalTrackBias==kTRUE) |
1cd88f63 ML |
4774 | { |
4775 | if (tempChargedHighPt>=signalCut && nef<=nefCut) | |
3e43a01f | 4776 | { |
1cd88f63 | 4777 | fhClusterNEFSignalInfo->Fill(valCluster); |
3e43a01f | 4778 | } |
4779 | } | |
1cd88f63 | 4780 | else |
3e43a01f | 4781 | { |
1cd88f63 | 4782 | if (myJet->Pt()>=signalCut && nef<=nefCut) |
3e43a01f | 4783 | { |
1cd88f63 | 4784 | fhClusterNEFSignalInfo->Fill(valCluster); |
3e43a01f | 4785 | } |
8daeee93 | 4786 | } |
1cd88f63 | 4787 | tempCellID=0; |
2d2100d5 MV |
4788 | tempCellTime=0.0; |
4789 | eSeed=0.0; | |
4790 | tCell=0.0; | |
4791 | eCross=0.0; | |
4792 | FCross=0.0; | |
4793 | iSupMod=-1,absId=-1,ieta=-1,iphi=-1; | |
8daeee93 | 4794 | } |
1cd88f63 | 4795 | |
8daeee93 | 4796 | nef=0.0; |
1cd88f63 | 4797 | jetPt=0.0; |
8daeee93 | 4798 | tempChargedHighPt=0.0; |
4799 | eta=0.0; | |
4800 | phi=0.0; | |
4801 | totalMult=0; | |
1cd88f63 | 4802 | chargedMult=0; |
8daeee93 | 4803 | neutralMult=0; |
08b981da | 4804 | zLeading=0.0; |
6bda5230 | 4805 | ECluster=0.0; |
8daeee93 | 4806 | } |
4807 | ||
4808 | // Now do Cluster QA | |
4809 | // Finally, Cluster QA | |
4810 | for (i=0;i<clusterList->GetEntries();i++) | |
4811 | { | |
4812 | AliVCluster *vcluster = (AliVCluster*) clusterList->At(i); | |
4813 | fhClusterShapeAll->Fill(vcluster->GetNCells()); | |
36cb7ae2 | 4814 | fhClusterPtCellAll->Fill(vcluster->E(),vcluster->GetNCells()); |
8daeee93 | 4815 | } |
4816 | } | |
4817 | ||
825d120f | 4818 | void AliAnalysisTaskFullpAJets::AlipAJetHistos::FillMiscJetStats(TClonesArray *jetList, Int_t *indexJetList, Int_t nIndexJetList, TClonesArray *trackList, TClonesArray *clusterList, Double_t *vertex) |
e864d416 | 4819 | { |
4820 | Int_t i,j; | |
825d120f | 4821 | |
4822 | TLorentzVector *cluster_vec = new TLorentzVector; | |
e864d416 | 4823 | for (i=0;i<nIndexJetList;i++) |
4824 | { | |
4825 | AliEmcalJet *myJet = (AliEmcalJet*) jetList->At(indexJetList[i]); | |
4826 | ||
4827 | fhJetPtArea->Fill(myJet->Pt(),myJet->Area()); | |
1cd88f63 | 4828 | fhJetConstituentCounts->Fill(myJet->Pt(),myJet->GetNumberOfConstituents()); |
2d2100d5 MV |
4829 | fhJetTracksCounts->Fill(myJet->Pt(),myJet->GetNumberOfTracks()); |
4830 | fhJetClustersCounts->Fill(myJet->Pt(),myJet->GetNumberOfClusters()); | |
e864d416 | 4831 | for (j=0;j<myJet->GetNumberOfTracks();j++) |
4832 | { | |
4833 | AliVTrack *vtrack = (AliVTrack*) myJet->TrackAt(j,trackList); | |
4834 | fhJetConstituentPt->Fill(myJet->Pt(),vtrack->Pt()); | |
1cd88f63 | 4835 | fhJetTracksPt->Fill(myJet->Pt(),vtrack->Pt()); |
825d120f | 4836 | fhJetPtZTrack->Fill(myJet->Pt(),vtrack->Pt()/myJet->Pt()); |
e864d416 | 4837 | } |
4838 | for (j=0;j<myJet->GetNumberOfClusters();j++) | |
4839 | { | |
4840 | AliVCluster *vcluster = (AliVCluster*) myJet->ClusterAt(j,clusterList); | |
825d120f | 4841 | vcluster->GetMomentum(*cluster_vec,vertex); |
e864d416 | 4842 | fhJetConstituentPt->Fill(myJet->Pt(),vcluster->E()); |
1cd88f63 | 4843 | fhJetClustersPt->Fill(myJet->Pt(),vcluster->E()); |
825d120f | 4844 | fhJetPtZCluster->Fill(myJet->Pt(),cluster_vec->Pt()/myJet->Pt()); |
e864d416 | 4845 | } |
4846 | } | |
825d120f | 4847 | delete cluster_vec; |
e864d416 | 4848 | } |
4849 | ||
8daeee93 | 4850 | TList* AliAnalysisTaskFullpAJets::AlipAJetHistos::GetOutputHistos() |
4851 | { | |
4852 | return fOutput; | |
4853 | } | |
4854 | ||
7acc3e04 | 4855 | Double_t AliAnalysisTaskFullpAJets::AlipAJetHistos::GetRho() |
4856 | { | |
4857 | return fRhoValue; | |
4858 | } | |
4859 |