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