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