]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWGHF/hfe/AliAnalysisTaskElecHadronCorrel.cxx
possibility to set externally the reference value for the Ntrk-Vtx correction (J...
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliAnalysisTaskElecHadronCorrel.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16
17////////////////////////////////////////////////////////////////////////
18// //
19// Task for Heavy Flavour Electron-Hadron DeltaPhi Correlation //
20// Non-Photonic Electron identified with Invariant mass //
21// analysis methos in function SelectPhotonicElectron //
22// DeltaPhi calculated in function ElectronHadCorrel //
23// //
24// Author: Deepa Thomas (Utrecht University) //
25// //
26////////////////////////////////////////////////////////////////////////
27
28#include "TChain.h"
29#include "TTree.h"
30#include "TH2F.h"
31#include "TMath.h"
32#include "TCanvas.h"
33#include "THnSparse.h"
34#include "TLorentzVector.h"
35#include "TString.h"
36#include "TFile.h"
37
38#include "AliAnalysisTask.h"
39#include "AliAnalysisManager.h"
40
41#include "AliESDEvent.h"
42#include "AliESDHandler.h"
43#include "AliAODEvent.h"
44#include "AliAODHandler.h"
45
46#include "AliAnalysisTaskElecHadronCorrel.h"
47#include "TGeoGlobalMagField.h"
48#include "AliLog.h"
49#include "AliAnalysisTaskSE.h"
50#include "TRefArray.h"
51#include "TVector.h"
52
53#include "AliESDInputHandler.h"
54#include "AliAODInputHandler.h"
55#include "AliESDpid.h"
56#include "AliAODPid.h"
57#include "AliESDtrackCuts.h"
58#include "AliPhysicsSelection.h"
59#include "AliCentralitySelectionTask.h"
60#include "AliESDCaloCluster.h"
61#include "AliAODCaloCluster.h"
62#include "AliESDCaloTrigger.h"
63#include "AliEMCALRecoUtils.h"
64#include "AliEMCALGeometry.h"
65#include "AliGeomManager.h"
66#include "stdio.h"
67#include "TGeoManager.h"
68#include "iostream"
69#include "fstream"
70
71#include "AliEventPoolManager.h"
72
73#include "AliCentrality.h"
74#include "AliMagF.h"
75
76#include "AliKFParticle.h"
77#include "AliKFVertex.h"
78#include "AliSelectNonHFE.h"
79
80#include "AliPID.h"
81#include "AliPIDResponse.h"
82#include "AliHFEcontainer.h"
83#include "AliHFEcuts.h"
84#include "AliHFEpid.h"
85#include "AliHFEpidBase.h"
86#include "AliHFEpidQAmanager.h"
87#include "AliHFEtools.h"
88#include "AliCFContainer.h"
89#include "AliCFManager.h"
90#include "AliVEvent.h"
91#include "AliStack.h"
92#include "AliMCEvent.h"
93#include "TProfile.h"
94#include "AliESDVZERO.h"
95#include "AliAODVZERO.h"
96#include "TVector3.h"
97#include "TRandom2.h"
98
99 ClassImp(AliAnalysisTaskElecHadronCorrel)
100ClassImp(AliehDPhiBasicParticle)
101 //________________________________________________________________________
102 AliAnalysisTaskElecHadronCorrel::AliAnalysisTaskElecHadronCorrel(const char *name)
103 : AliAnalysisTaskSE(name)
104 ,fVevent(0)
105 ,fESD(0)
106 ,fAOD(0)
107 ,fGeom(0)
108 ,fpidResponse(0)
109 ,fOutputList(0)
110 ,fTrackCuts1(new AliESDtrackCuts)
111 ,fTrackCuts2(new AliESDtrackCuts)
112 ,fCuts(0)
113 ,fIdentifiedAsOutInz(kFALSE)
114 ,fPassTheEventCut(kFALSE)
115 ,fRejectKinkMother(kFALSE)
116 ,fVz(0.0)
117 ,fCFM(0)
118 ,fPID(0)
119 ,fPIDqa(0)
120 ,fInvmassCut(0.01)
121 ,fCentrality(0)
122 ,fCentralityMin(0)
123 ,fCentralityMax(0)
124 ,fkCentralityMethod(0)
125 ,fTPCnsigEleMin(-2)
126 ,fTPCnsigEleMax(2)
127 ,fTPCnsigHadMin(-10)
128 ,fTPCnsigHadMax(-3.5)
129 ,fM02CutMin(0.03)
130 ,fM02CutMax(0.5)
131 ,fM20CutMin(0.03)
132 ,fM20CutMax(0.3)
133 ,fDispCutMin(0)
134 ,fDispCutMax(1)
135 ,fEovPMin(0.8)
136 ,fEovPMax(1.2)
137 ,fTriggerCentral(kTRUE)
138 ,fTriggerMB(kTRUE)
139 ,fTPCNClsHad(80)
140 ,fAssoEleITSref(kTRUE)
141 ,fAssoElecTPCNCls(80)
142 ,fNonHFE(0)
143 ,fPoolMgr(0x0)
144 ,fNoEvents(0)
145 // ,fTrkpt(0)
146 ,fTrkEovPAft(0)
147 // ,fTrkEovPBefHad(0)
148 // ,fdEdxBef(0)
149 ,fSemiIncElecDphi(0)
150 ,fSemiIncElecDphi1(0)
151 ,fSemiIncElecDphi2(0)
152 ,fSemiIncElecDphi3(0)
153 ,fSemiIncElecDphi4(0)
154 ,fPhotElecDphi(0)
155 ,fPhotElecDphi1(0)
156 ,fPhotElecDphi2(0)
157 ,fPhotElecDphi3(0)
158 ,fPhotElecDphi4(0)
159 ,fInclusiveElecDphi(0)
160 ,fInclusiveElecDphi1(0)
161 ,fInclusiveElecDphi2(0)
162 ,fInclusiveElecDphi3(0)
163 ,fInclusiveElecDphi4(0)
164 ,fInclusiveElecDphiEtaFS(0)
165 ,fInclusiveElecDphiEtaFS1(0)
166 ,fInclusiveElecDphiEtaFS2(0)
167 ,fInclusiveElecDphiEtaFS3(0)
168 ,fInclusiveElecDphiEtaFS4(0)
169 ,fDphiULSMassLow(0)
170 ,fDphiULSMassLow1(0)
171 ,fDphiULSMassLow2(0)
172 ,fDphiULSMassLow3(0)
173 ,fDphiULSMassLow4(0)
174 ,fDphiLSMassLow(0)
175 ,fDphiLSMassLow1(0)
176 ,fDphiLSMassLow2(0)
177 ,fDphiLSMassLow3(0)
178 ,fDphiLSMassLow4(0)
179 ,fDphiULSMassLowNoPartner(0)
180 ,fDphiULSMassLowNoPartner1(0)
181 ,fDphiULSMassLowNoPartner2(0)
182 ,fDphiULSMassLowNoPartner3(0)
183 ,fDphiULSMassLowNoPartner4(0)
184 ,fDphiLSMassLowNoPartner(0)
185 ,fDphiLSMassLowNoPartner1(0)
186 ,fDphiLSMassLowNoPartner2(0)
187 ,fDphiLSMassLowNoPartner3(0)
188 ,fDphiLSMassLowNoPartner4(0)
189 ,fPhotoElecPt(0)
190 ,fSemiInclElecPt(0)
191 ,fInclusiveElecPt(0)
192 ,fULSElecPt(0)
193 ,fLSElecPt(0)
194 ,fDCAMetPhotElecDphi(0)
195 ,fDCAMetPhotElecDphi1(0)
196 ,fDCAMetPhotElecDphi2(0)
197 ,fDCAMetPhotElecDphi3(0)
198 ,fDCAMetPhotElecDphi4(0)
199 ,fDCAMetDphiULSMassLow(0)
200 ,fDCAMetDphiULSMassLow1(0)
201 ,fDCAMetDphiULSMassLow2(0)
202 ,fDCAMetDphiULSMassLow3(0)
203 ,fDCAMetDphiULSMassLow4(0)
204 ,fDCAMetDphiLSMassLow(0)
205 ,fDCAMetDphiLSMassLow1(0)
206 ,fDCAMetDphiLSMassLow2(0)
207 ,fDCAMetDphiLSMassLow3(0)
208 ,fDCAMetDphiLSMassLow4(0)
209 ,fDCAMetDphiULSMassLowNoPartner(0)
210 ,fDCAMetDphiULSMassLowNoPartner1(0)
211 ,fDCAMetDphiULSMassLowNoPartner2(0)
212 ,fDCAMetDphiULSMassLowNoPartner3(0)
213 ,fDCAMetDphiULSMassLowNoPartner4(0)
214 ,fDCAMetDphiLSMassLowNoPartner(0)
215 ,fDCAMetDphiLSMassLowNoPartner1(0)
216 ,fDCAMetDphiLSMassLowNoPartner2(0)
217 ,fDCAMetDphiLSMassLowNoPartner3(0)
218 ,fDCAMetDphiLSMassLowNoPartner4(0)
219 ,fDCAMetPhotoElecPt(0)
220 ,fDCAMetULSElecPt(0)
221 ,fDCAMetLSElecPt(0)
222 ,fSemiIncElecDphiEta1(0)
223 ,fSemiIncElecDphiEta11(0)
224 ,fSemiIncElecDphiEta12(0)
225 ,fSemiIncElecDphiEta13(0)
226 ,fSemiIncElecDphiEta14(0)
227 ,fPhotElecDphiEta1(0)
228 ,fPhotElecDphiEta11(0)
229 ,fPhotElecDphiEta12(0)
230 ,fPhotElecDphiEta13(0)
231 ,fPhotElecDphiEta14(0)
232 ,fInclusiveElecDphiEta1(0)
233 ,fInclusiveElecDphiEta11(0)
234 ,fInclusiveElecDphiEta12(0)
235 ,fInclusiveElecDphiEta13(0)
236 ,fInclusiveElecDphiEta14(0)
237 ,fDphiULSMassLowEta1(0)
238 ,fDphiULSMassLowEta11(0)
239 ,fDphiULSMassLowEta12(0)
240 ,fDphiULSMassLowEta13(0)
241 ,fDphiULSMassLowEta14(0)
242 ,fDphiLSMassLowEta1(0)
243 ,fDphiLSMassLowEta11(0)
244 ,fDphiLSMassLowEta12(0)
245 ,fDphiLSMassLowEta13(0)
246 ,fDphiLSMassLowEta14(0)
247 ,fDphiULSMassLowNoPartnerEta1(0)
248 ,fDphiULSMassLowNoPartnerEta11(0)
249 ,fDphiULSMassLowNoPartnerEta12(0)
250 ,fDphiULSMassLowNoPartnerEta13(0)
251 ,fDphiULSMassLowNoPartnerEta14(0)
252 ,fDphiLSMassLowNoPartnerEta1(0)
253 ,fDphiLSMassLowNoPartnerEta11(0)
254 ,fDphiLSMassLowNoPartnerEta12(0)
255 ,fDphiLSMassLowNoPartnerEta13(0)
256 ,fDphiLSMassLowNoPartnerEta14(0)
257 ,fSemiIncElecDphiEta2(0)
258 ,fSemiIncElecDphiEta21(0)
259 ,fSemiIncElecDphiEta22(0)
260 ,fSemiIncElecDphiEta23(0)
261 ,fSemiIncElecDphiEta24(0)
262 ,fPhotElecDphiEta2(0)
263 ,fPhotElecDphiEta21(0)
264 ,fPhotElecDphiEta22(0)
265 ,fPhotElecDphiEta23(0)
266 ,fPhotElecDphiEta24(0)
267 ,fInclusiveElecDphiEta2(0)
268 ,fInclusiveElecDphiEta21(0)
269 ,fInclusiveElecDphiEta22(0)
270 ,fInclusiveElecDphiEta23(0)
271 ,fInclusiveElecDphiEta24(0)
272 ,fDphiULSMassLowEta2(0)
273 ,fDphiULSMassLowEta21(0)
274 ,fDphiULSMassLowEta22(0)
275 ,fDphiULSMassLowEta23(0)
276 ,fDphiULSMassLowEta24(0)
277 ,fDphiLSMassLowEta2(0)
278 ,fDphiLSMassLowEta21(0)
279 ,fDphiLSMassLowEta22(0)
280 ,fDphiLSMassLowEta23(0)
281 ,fDphiLSMassLowEta24(0)
282 ,fDphiULSMassLowNoPartnerEta2(0)
283 ,fDphiULSMassLowNoPartnerEta21(0)
284 ,fDphiULSMassLowNoPartnerEta22(0)
285 ,fDphiULSMassLowNoPartnerEta23(0)
286 ,fDphiULSMassLowNoPartnerEta24(0)
287 ,fDphiLSMassLowNoPartnerEta2(0)
288 ,fDphiLSMassLowNoPartnerEta21(0)
289 ,fDphiLSMassLowNoPartnerEta22(0)
290 ,fDphiLSMassLowNoPartnerEta23(0)
291 ,fDphiLSMassLowNoPartnerEta24(0)
292 // ,fTrackPtBefTrkCuts(0)
293 // ,fTrackPtAftTrkCuts(0)
294 ,fTPCnsigma(0)
295 // ,fNCellv1(0)
296 // ,fClsEv1(0)
297 // ,fNClusv1(0)
298 ,fInvmassLS1(0)
299 // ,fInvmassLS2(0)
300 // ,fInvmassLS3(0)
301 // ,fInvmassLS4(0)
302 // ,fInvmassLS5(0)
303 ,fInvmassULS1(0)
304 ,fDCAMetInvmassLS1(0)
305 ,fDCAMetInvmassULS1(0)
306 // ,fInvmassULS2(0)
307 // ,fInvmassULS3(0)
308 // ,fInvmassULS4(0)
309 // ,fInvmassULS5(0)
310 ,fcentrality(0)
311 ,fElecPhi(0)
312 ,fElecPhiTPChalf(0)
313 ,fElecPhiPt(0)
314 // ,fElecPhiTPC(0)
315 // ,fElecPhiTPCEovP(0)
316 ,fHadronPhi(0)
317 ,fHadronPhiTPChalf(0)
318 ,fHadronPhiPt(0)
319 /* ,fTrackHFEcuts(0)
320 ,fTrakPhiSPD1(0)
321 ,fTrakPhiSPD2(0)
322 ,fTrakPhiSPDOr(0)
323 ,fTrakPhiSPDAnd(0)
324 ,fTrackHFEcutsITS(0)
325 */
326 ,fNoMixedEvents(0)
327 ,fMixStat(0)
328 ,fMixStat1(0)
329 ,fMixedIncElecDphi(0)
330 ,fMixedIncElecDphi1(0)
331 ,fMixedIncElecDphi2(0)
332 ,fMixedIncElecDphi3(0)
333 ,fMixedIncElecDphi4(0)
334 ,fMixedPhotElecDphi(0)
335 ,fMixedPhotElecDphi1(0)
336 ,fMixedPhotElecDphi2(0)
337 ,fMixedPhotElecDphi3(0)
338 ,fMixedPhotElecDphi4(0)
339 ,fMixedSemiIncElecDphi(0)
340 ,fMixedSemiIncElecDphi1(0)
341 ,fMixedSemiIncElecDphi2(0)
342 ,fMixedSemiIncElecDphi3(0)
343 ,fMixedSemiIncElecDphi4(0)
344 ,fMixedDphiULSMassLow(0)
345 ,fMixedDphiULSMassLow1(0)
346 ,fMixedDphiULSMassLow2(0)
347 ,fMixedDphiULSMassLow3(0)
348 ,fMixedDphiULSMassLow4(0)
349 ,fMixedDphiLSMassLow(0)
350 ,fMixedDphiLSMassLow1(0)
351 ,fMixedDphiLSMassLow2(0)
352 ,fMixedDphiLSMassLow3(0)
353 ,fMixedDphiLSMassLow4(0)
354 ,fDCAMetMixedPhotElecDphi(0)
355 ,fDCAMetMixedPhotElecDphi1(0)
356 ,fDCAMetMixedPhotElecDphi2(0)
357 ,fDCAMetMixedPhotElecDphi3(0)
358 ,fDCAMetMixedPhotElecDphi4(0)
359 ,fDCAMetMixedDphiULSMassLow(0)
360 ,fDCAMetMixedDphiULSMassLow1(0)
361 ,fDCAMetMixedDphiULSMassLow2(0)
362 ,fDCAMetMixedDphiULSMassLow3(0)
363 ,fDCAMetMixedDphiULSMassLow4(0)
364 ,fDCAMetMixedDphiLSMassLow(0)
365 ,fDCAMetMixedDphiLSMassLow1(0)
366 ,fDCAMetMixedDphiLSMassLow2(0)
367 ,fDCAMetMixedDphiLSMassLow3(0)
368 ,fDCAMetMixedDphiLSMassLow4(0)
369 ,fHadronPt(0)
370 ,fCentralityPass(0)
371 ,fCentralityNoPass(0)
372 ,fHadronDphi(0)
373 ,fHadronDphi1(0)
374 ,fHadronDphi2(0)
375 ,fHadronDphi3(0)
376 ,fHadronDphi4(0)
377 ,fPiPt(0)
378 ,fHadronDphiNoSS(0)
379 ,fHadronDphiNoSS1(0)
380 ,fHadronDphiNoSS2(0)
381 ,fHadronDphiNoSS3(0)
382 ,fHadronDphiNoSS4(0)
383 ,fPiPtNoSS(0)
384 ,fEovPWoSS(0)
385 ,fEovPWSS(0)
386 ,fEovPHadWoSS(0)
387 ,fEovPHadWSS(0)
388 ,fHadronDphiEta1(0)
389 ,fHadronDphiEta11(0)
390 ,fHadronDphiEta12(0)
391 ,fHadronDphiEta13(0)
392 ,fHadronDphiEta14(0)
393 ,fHadronDphiNoSSEta1(0)
394 ,fHadronDphiNoSSEta11(0)
395 ,fHadronDphiNoSSEta12(0)
396 ,fHadronDphiNoSSEta13(0)
397 ,fHadronDphiNoSSEta14(0)
398 ,fHadronDphiEta2(0)
399 ,fHadronDphiEta21(0)
400 ,fHadronDphiEta22(0)
401 ,fHadronDphiEta23(0)
402 ,fHadronDphiEta24(0)
403 ,fHadronDphiNoSSEta2(0)
404 ,fHadronDphiNoSSEta21(0)
405 ,fHadronDphiNoSSEta22(0)
406 ,fHadronDphiNoSSEta23(0)
407 ,fHadronDphiNoSSEta24(0)
408 //,fSparseElectron(0)
409 // ,fvalueElectron(0)
410{
411 //Named constructor
412
413 fPID = new AliHFEpid("hfePid");
414 //fvalueElectron = new Double_t[6];
415
416 // Define input and output slots here
417 // Input slot #0 works with a TChain
418 DefineInput(0, TChain::Class());
419 // Output slot #0 id reserved by the base class for AOD
420 // Output slot #1 writes into a TH1 container
421 // DefineOutput(1, TH1I::Class());
422 DefineOutput(1, TList::Class());
423 // DefineOutput(3, TTree::Class());
424}
425
426//________________________________________________________________________
427AliAnalysisTaskElecHadronCorrel::AliAnalysisTaskElecHadronCorrel()
428 : AliAnalysisTaskSE("DefaultAnalysis_AliAnalysisElecHadCorrel")
429 ,fVevent(0)
430 ,fESD(0)
431 ,fAOD(0)
432 ,fGeom(0)
433 ,fpidResponse(0)
434 ,fOutputList(0)
435 ,fTrackCuts1(new AliESDtrackCuts)
436 ,fTrackCuts2(new AliESDtrackCuts)
437 ,fCuts(0)
438 ,fIdentifiedAsOutInz(kFALSE)
439 ,fPassTheEventCut(kFALSE)
440 ,fRejectKinkMother(kFALSE)
441 ,fVz(0.0)
442 ,fCFM(0)
443 ,fPID(0)
444 ,fPIDqa(0)
445 ,fInvmassCut(0.01)
446 ,fCentrality(0)
447 ,fCentralityMin(0)
448 ,fCentralityMax(0)
449 ,fkCentralityMethod(0)
450 ,fTPCnsigEleMin(-2)
451 ,fTPCnsigEleMax(2)
452 ,fTPCnsigHadMin(-10)
453 ,fTPCnsigHadMax(-3.5)
454 ,fM02CutMin(0.03)
455 ,fM02CutMax(0.5)
456 ,fM20CutMin(0.03)
457 ,fM20CutMax(0.3)
458 ,fDispCutMin(0)
459 ,fDispCutMax(1)
460 ,fEovPMin(0.8)
461 ,fEovPMax(1.2)
462 ,fTriggerCentral(kTRUE)
463 ,fTriggerMB(kTRUE)
464 ,fTPCNClsHad(80)
465 ,fAssoEleITSref(kTRUE)
466 ,fAssoElecTPCNCls(80)
467 ,fNonHFE(0)
468 ,fPoolMgr(0x0)
469 ,fNoEvents(0)
470 // ,fTrkpt(0)
471 ,fTrkEovPAft(0)
472 // ,fTrkEovPBefHad(0)
473 // ,fdEdxBef(0)
474 ,fSemiIncElecDphi(0)
475 ,fSemiIncElecDphi1(0)
476 ,fSemiIncElecDphi2(0)
477 ,fSemiIncElecDphi3(0)
478 ,fSemiIncElecDphi4(0)
479 ,fPhotElecDphi(0)
480 ,fPhotElecDphi1(0)
481 ,fPhotElecDphi2(0)
482 ,fPhotElecDphi3(0)
483 ,fPhotElecDphi4(0)
484 ,fInclusiveElecDphi(0)
485 ,fInclusiveElecDphi1(0)
486 ,fInclusiveElecDphi2(0)
487 ,fInclusiveElecDphi3(0)
488 ,fInclusiveElecDphi4(0)
489 ,fInclusiveElecDphiEtaFS(0)
490 ,fInclusiveElecDphiEtaFS1(0)
491 ,fInclusiveElecDphiEtaFS2(0)
492 ,fInclusiveElecDphiEtaFS3(0)
493 ,fInclusiveElecDphiEtaFS4(0)
494 ,fDphiULSMassLow(0)
495 ,fDphiULSMassLow1(0)
496 ,fDphiULSMassLow2(0)
497 ,fDphiULSMassLow3(0)
498 ,fDphiULSMassLow4(0)
499 ,fDphiLSMassLow(0)
500 ,fDphiLSMassLow1(0)
501 ,fDphiLSMassLow2(0)
502 ,fDphiLSMassLow3(0)
503 ,fDphiLSMassLow4(0)
504 ,fDphiULSMassLowNoPartner(0)
505 ,fDphiULSMassLowNoPartner1(0)
506 ,fDphiULSMassLowNoPartner2(0)
507 ,fDphiULSMassLowNoPartner3(0)
508 ,fDphiULSMassLowNoPartner4(0)
509 ,fDphiLSMassLowNoPartner(0)
510 ,fDphiLSMassLowNoPartner1(0)
511 ,fDphiLSMassLowNoPartner2(0)
512 ,fDphiLSMassLowNoPartner3(0)
513 ,fDphiLSMassLowNoPartner4(0)
514 ,fPhotoElecPt(0)
515 ,fSemiInclElecPt(0)
516 ,fInclusiveElecPt(0)
517 ,fULSElecPt(0)
518 ,fLSElecPt(0)
519 ,fDCAMetPhotElecDphi(0)
520 ,fDCAMetPhotElecDphi1(0)
521 ,fDCAMetPhotElecDphi2(0)
522 ,fDCAMetPhotElecDphi3(0)
523 ,fDCAMetPhotElecDphi4(0)
524 ,fDCAMetDphiULSMassLow(0)
525 ,fDCAMetDphiULSMassLow1(0)
526 ,fDCAMetDphiULSMassLow2(0)
527 ,fDCAMetDphiULSMassLow3(0)
528 ,fDCAMetDphiULSMassLow4(0)
529 ,fDCAMetDphiLSMassLow(0)
530 ,fDCAMetDphiLSMassLow1(0)
531 ,fDCAMetDphiLSMassLow2(0)
532 ,fDCAMetDphiLSMassLow3(0)
533 ,fDCAMetDphiLSMassLow4(0)
534 ,fDCAMetDphiULSMassLowNoPartner(0)
535 ,fDCAMetDphiULSMassLowNoPartner1(0)
536 ,fDCAMetDphiULSMassLowNoPartner2(0)
537 ,fDCAMetDphiULSMassLowNoPartner3(0)
538 ,fDCAMetDphiULSMassLowNoPartner4(0)
539 ,fDCAMetDphiLSMassLowNoPartner(0)
540 ,fDCAMetDphiLSMassLowNoPartner1(0)
541 ,fDCAMetDphiLSMassLowNoPartner2(0)
542 ,fDCAMetDphiLSMassLowNoPartner3(0)
543 ,fDCAMetDphiLSMassLowNoPartner4(0)
544 ,fDCAMetPhotoElecPt(0)
545 ,fDCAMetULSElecPt(0)
546 ,fDCAMetLSElecPt(0)
547 ,fSemiIncElecDphiEta1(0)
548 ,fSemiIncElecDphiEta11(0)
549 ,fSemiIncElecDphiEta12(0)
550 ,fSemiIncElecDphiEta13(0)
551 ,fSemiIncElecDphiEta14(0)
552 ,fPhotElecDphiEta1(0)
553 ,fPhotElecDphiEta11(0)
554 ,fPhotElecDphiEta12(0)
555 ,fPhotElecDphiEta13(0)
556 ,fPhotElecDphiEta14(0)
557 ,fInclusiveElecDphiEta1(0)
558 ,fInclusiveElecDphiEta11(0)
559 ,fInclusiveElecDphiEta12(0)
560 ,fInclusiveElecDphiEta13(0)
561 ,fInclusiveElecDphiEta14(0)
562 ,fDphiULSMassLowEta1(0)
563 ,fDphiULSMassLowEta11(0)
564 ,fDphiULSMassLowEta12(0)
565 ,fDphiULSMassLowEta13(0)
566 ,fDphiULSMassLowEta14(0)
567 ,fDphiLSMassLowEta1(0)
568 ,fDphiLSMassLowEta11(0)
569 ,fDphiLSMassLowEta12(0)
570 ,fDphiLSMassLowEta13(0)
571 ,fDphiLSMassLowEta14(0)
572 ,fDphiULSMassLowNoPartnerEta1(0)
573 ,fDphiULSMassLowNoPartnerEta11(0)
574 ,fDphiULSMassLowNoPartnerEta12(0)
575 ,fDphiULSMassLowNoPartnerEta13(0)
576 ,fDphiULSMassLowNoPartnerEta14(0)
577 ,fDphiLSMassLowNoPartnerEta1(0)
578 ,fDphiLSMassLowNoPartnerEta11(0)
579 ,fDphiLSMassLowNoPartnerEta12(0)
580 ,fDphiLSMassLowNoPartnerEta13(0)
581 ,fDphiLSMassLowNoPartnerEta14(0)
582 ,fSemiIncElecDphiEta2(0)
583 ,fSemiIncElecDphiEta21(0)
584 ,fSemiIncElecDphiEta22(0)
585 ,fSemiIncElecDphiEta23(0)
586 ,fSemiIncElecDphiEta24(0)
587 ,fPhotElecDphiEta2(0)
588 ,fPhotElecDphiEta21(0)
589 ,fPhotElecDphiEta22(0)
590 ,fPhotElecDphiEta23(0)
591 ,fPhotElecDphiEta24(0)
592 ,fInclusiveElecDphiEta2(0)
593 ,fInclusiveElecDphiEta21(0)
594 ,fInclusiveElecDphiEta22(0)
595 ,fInclusiveElecDphiEta23(0)
596 ,fInclusiveElecDphiEta24(0)
597 ,fDphiULSMassLowEta2(0)
598 ,fDphiULSMassLowEta21(0)
599 ,fDphiULSMassLowEta22(0)
600 ,fDphiULSMassLowEta23(0)
601 ,fDphiULSMassLowEta24(0)
602 ,fDphiLSMassLowEta2(0)
603 ,fDphiLSMassLowEta21(0)
604 ,fDphiLSMassLowEta22(0)
605 ,fDphiLSMassLowEta23(0)
606 ,fDphiLSMassLowEta24(0)
607 ,fDphiULSMassLowNoPartnerEta2(0)
608 ,fDphiULSMassLowNoPartnerEta21(0)
609 ,fDphiULSMassLowNoPartnerEta22(0)
610 ,fDphiULSMassLowNoPartnerEta23(0)
611 ,fDphiULSMassLowNoPartnerEta24(0)
612 ,fDphiLSMassLowNoPartnerEta2(0)
613 ,fDphiLSMassLowNoPartnerEta21(0)
614 ,fDphiLSMassLowNoPartnerEta22(0)
615 ,fDphiLSMassLowNoPartnerEta23(0)
616 ,fDphiLSMassLowNoPartnerEta24(0)
617 // ,fTrackPtBefTrkCuts(0)
618 // ,fTrackPtAftTrkCuts(0)
619 ,fTPCnsigma(0)
620 // ,fNCellv1(0)
621 // ,fClsEv1(0)
622 // ,fNClusv1(0)
623 ,fInvmassLS1(0)
624 // ,fInvmassLS2(0)
625 // ,fInvmassLS3(0)
626 // ,fInvmassLS4(0)
627 // ,fInvmassLS5(0)
628 ,fInvmassULS1(0)
629 // ,fInvmassULS2(0)
630 // ,fInvmassULS3(0)
631 // ,fInvmassULS4(0)
632 // ,fInvmassULS5(0)
633 ,fDCAMetInvmassLS1(0)
634 ,fDCAMetInvmassULS1(0)
635 ,fcentrality(0)
636 ,fElecPhi(0)
637 ,fElecPhiTPChalf(0)
638 ,fElecPhiPt(0)
639 // ,fElecPhiTPC(0)
640 // ,fElecPhiTPCEovP(0)
641 ,fHadronPhi(0)
642 ,fHadronPhiTPChalf(0)
643 ,fHadronPhiPt(0)
644 /* ,fTrackHFEcuts(0)
645 ,fTrakPhiSPD1(0)
646 ,fTrakPhiSPD2(0)
647 ,fTrakPhiSPDOr(0)
648 ,fTrakPhiSPDAnd(0)
649 ,fTrackHFEcutsITS(0)
650 */
651 ,fNoMixedEvents(0)
652 ,fMixStat(0)
653 ,fMixStat1(0)
654 ,fMixedIncElecDphi(0)
655 ,fMixedIncElecDphi1(0)
656 ,fMixedIncElecDphi2(0)
657 ,fMixedIncElecDphi3(0)
658 ,fMixedIncElecDphi4(0)
659 ,fMixedPhotElecDphi(0)
660 ,fMixedPhotElecDphi1(0)
661 ,fMixedPhotElecDphi2(0)
662 ,fMixedPhotElecDphi3(0)
663 ,fMixedPhotElecDphi4(0)
664 ,fMixedSemiIncElecDphi(0)
665 ,fMixedSemiIncElecDphi1(0)
666 ,fMixedSemiIncElecDphi2(0)
667 ,fMixedSemiIncElecDphi3(0)
668 ,fMixedSemiIncElecDphi4(0)
669 ,fMixedDphiULSMassLow(0)
670 ,fMixedDphiULSMassLow1(0)
671 ,fMixedDphiULSMassLow2(0)
672 ,fMixedDphiULSMassLow3(0)
673 ,fMixedDphiULSMassLow4(0)
674 ,fMixedDphiLSMassLow(0)
675 ,fMixedDphiLSMassLow1(0)
676 ,fMixedDphiLSMassLow2(0)
677 ,fMixedDphiLSMassLow3(0)
678 ,fMixedDphiLSMassLow4(0)
679 ,fDCAMetMixedPhotElecDphi(0)
680 ,fDCAMetMixedPhotElecDphi1(0)
681 ,fDCAMetMixedPhotElecDphi2(0)
682 ,fDCAMetMixedPhotElecDphi3(0)
683 ,fDCAMetMixedPhotElecDphi4(0)
684 ,fDCAMetMixedDphiULSMassLow(0)
685 ,fDCAMetMixedDphiULSMassLow1(0)
686 ,fDCAMetMixedDphiULSMassLow2(0)
687 ,fDCAMetMixedDphiULSMassLow3(0)
688 ,fDCAMetMixedDphiULSMassLow4(0)
689 ,fDCAMetMixedDphiLSMassLow(0)
690 ,fDCAMetMixedDphiLSMassLow1(0)
691 ,fDCAMetMixedDphiLSMassLow2(0)
692 ,fDCAMetMixedDphiLSMassLow3(0)
693 ,fDCAMetMixedDphiLSMassLow4(0)
694 ,fHadronPt(0)
695 ,fCentralityPass(0)
696 ,fCentralityNoPass(0)
697 ,fHadronDphi(0)
698 ,fHadronDphi1(0)
699 ,fHadronDphi2(0)
700 ,fHadronDphi3(0)
701 ,fHadronDphi4(0)
702 ,fPiPt(0)
703 ,fHadronDphiNoSS(0)
704 ,fHadronDphiNoSS1(0)
705 ,fHadronDphiNoSS2(0)
706 ,fHadronDphiNoSS3(0)
707 ,fHadronDphiNoSS4(0)
708 ,fPiPtNoSS(0)
709 ,fEovPWoSS(0)
710 ,fEovPWSS(0)
711 ,fEovPHadWoSS(0)
712 ,fEovPHadWSS(0)
713 ,fHadronDphiEta1(0)
714 ,fHadronDphiEta11(0)
715 ,fHadronDphiEta12(0)
716 ,fHadronDphiEta13(0)
717 ,fHadronDphiEta14(0)
718 ,fHadronDphiNoSSEta1(0)
719 ,fHadronDphiNoSSEta11(0)
720 ,fHadronDphiNoSSEta12(0)
721 ,fHadronDphiNoSSEta13(0)
722 ,fHadronDphiNoSSEta14(0)
723 ,fHadronDphiEta2(0)
724 ,fHadronDphiEta21(0)
725 ,fHadronDphiEta22(0)
726 ,fHadronDphiEta23(0)
727 ,fHadronDphiEta24(0)
728 ,fHadronDphiNoSSEta2(0)
729 ,fHadronDphiNoSSEta21(0)
730 ,fHadronDphiNoSSEta22(0)
731 ,fHadronDphiNoSSEta23(0)
732 ,fHadronDphiNoSSEta24(0)
733 //,fSparseElectron(0)
734 // ,fvalueElectron(0)
735{
736 //Default constructor
737 fPID = new AliHFEpid("hfePid");
738 //fvalueElectron = new Double_t[6];
739
740 // Constructor
741 // Define input and output slots here
742 // Input slot #0 works with a TChain
743 DefineInput(0, TChain::Class());
744 // Output slot #0 id reserved by the base class for AOD
745 // Output slot #1 writes into a TH1 container
746 // DefineOutput(1, TH1I::Class());
747 DefineOutput(1, TList::Class());
748 //DefineOutput(3, TTree::Class());
749}
750//_________________________________________
751
752AliAnalysisTaskElecHadronCorrel::~AliAnalysisTaskElecHadronCorrel()
753{
754 //Destructor
755
756 delete fOutputList;
757 delete fGeom;
758 delete fPID;
759 delete fCFM;
760 delete fPIDqa;
761 delete fTrackCuts1;
762 delete fTrackCuts2;
763 // delete fSparseElectron;
764 // delete []fvalueElectron;
765}
766//_________________________________________
767
768void AliAnalysisTaskElecHadronCorrel::UserExec(Option_t*)
769{
770 //Main loop
771 //Called for each event
772
773 // create pointer to event
774 fAOD = dynamic_cast<AliAODEvent*>(InputEvent());
775 fESD = dynamic_cast<AliESDEvent*>(InputEvent());
776
777 if(!(fESD || fAOD)){
778 printf("ERROR: fESD & fAOD not available\n");
779 return;
780 }
781 fVevent = dynamic_cast<AliVEvent*>(InputEvent());
782 if (!fVevent) {
783 printf("ERROR: fVEvent not available\n");
784 return;
785 }
786
787 if(!fCuts){
788 AliError("HFE cuts not available");
789 return;
790 }
791
792 if(!fPID->IsInitialized()){
793 // Initialize PID with the given run number
794 AliWarning("PID not initialised, get from Run no");
795
796 if(IsAODanalysis())fPID->InitializePID(fAOD->GetRunNumber());
797 else fPID->InitializePID(fESD->GetRunNumber());
798 }
799
800
801 if(fTriggerMB && fTriggerCentral){
802 // trigger selection
803 if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kCentral))) return;
804 }
805
806 if(fTriggerMB && !fTriggerCentral){
807 // trigger selection
808 if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kSemiCentral))) return;
809 }
810
811 if(!fTriggerMB){
812 // trigger selection
813 if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kEMCEGA))) return;
814 }
815 // centrality selection
816 // SetCentralityParameters(0., 7., fkCentralityMethod);
817 Bool_t pass = kFALSE;
818 CheckCentrality(fVevent,pass);
819 if(!pass)return;
820
821 Int_t fNOtrks = fVevent->GetNumberOfTracks();
822 const AliVVertex *pVtx = fVevent->GetPrimaryVertex();
823
824 Double_t pVtxZ = -999;
825 pVtxZ = pVtx->GetZ();
826
827 if(TMath::Abs(pVtxZ)>10) return;
828 fNoEvents->Fill(0);
829
830 if(fNOtrks<2) return;
831
832 fpidResponse = fInputHandler->GetPIDResponse();
833 if(!fpidResponse){
834 AliDebug(1, "Using default PID Response");
835 fpidResponse = AliHFEtools::GetDefaultPID(kFALSE, fInputEvent->IsA() == AliAODEvent::Class());
836 }
837
838 fPID->SetPIDResponse(fpidResponse);
839
840 fCFM->SetRecEventInfo(fVevent);
841
842 AliCentrality *fCentrality2 = (AliCentrality*)fAOD->GetCentrality();
843 Double_t centvalue1 = fCentrality2->GetCentralityPercentile(fkCentralityMethod);
844
845 //Event mixing
846 AliEventPool* pool;
847 pool = fPoolMgr->GetEventPool(centvalue1, pVtxZ); // Get the buffer associated with the current centrality and z-vtx
848 if (!pool)
849 {
850 AliFatal(Form("No pool found for centrality = %f, zVtx = %f", centvalue1, pVtxZ));
851 return;
852 }
853 // Look for kink mother for AOD
854 Int_t numberofvertices = fAOD->GetNumberOfVertices();
855 Double_t listofmotherkink[numberofvertices];
856 Int_t numberofmotherkink = 0;
857 if(IsAODanalysis()){
858 for(Int_t ivertex=0; ivertex < numberofvertices; ivertex++) {
859 AliAODVertex *aodvertex = fAOD->GetVertex(ivertex);
860 if(!aodvertex) continue;
861 if(aodvertex->GetType()==AliAODVertex::kKink) {
862 AliAODTrack *mother = (AliAODTrack *) aodvertex->GetParent();
863 if(!mother) continue;
864 Int_t idmother = mother->GetID();
865 listofmotherkink[numberofmotherkink] = idmother;
866 numberofmotherkink++;
867 }
868 }
869 }
870
871 // Track loop
872 for (Int_t iTracks = 0; iTracks < fVevent->GetNumberOfTracks(); iTracks++) {
873 AliVParticle* Vtrack = fVevent->GetTrack(iTracks);
874 if (!Vtrack) {
875 printf("ERROR: Could not receive track %d\n", iTracks);
876 continue;
877 }
878 AliVTrack *track = dynamic_cast<AliVTrack*>(Vtrack);
879 AliESDtrack *etrack = dynamic_cast<AliESDtrack*>(Vtrack);
880 AliAODTrack *atrack = dynamic_cast<AliAODTrack*>(Vtrack);
881
882 if(!track && !etrack && !atrack) continue;
883
884 if(IsAODanalysis())
885 if(atrack){
886 if(!atrack->TestFilterMask(AliAODTrack::kTrkGlobalNoDCA)) continue;
887 }
888 if(track->Pt()<1) continue;
889
890 // fTrackPtBefTrkCuts->Fill(track->Pt());
891
892 // RecKine: ITSTPC cuts
893 if(!ProcessCutStep(AliHFEcuts::kStepRecKineITSTPC, track)) continue;
894
895 // Reject kink mother
896 if(fRejectKinkMother) { // Quick and dirty fix to reject both kink mothers and daughters
897 if(IsAODanalysis()){
898 Bool_t kinkmotherpass = kTRUE;
899 for(Int_t kinkmother = 0; kinkmother < numberofmotherkink; kinkmother++) {
900 if(track->GetID() == listofmotherkink[kinkmother]) {
901 kinkmotherpass = kFALSE;
902 continue;
903 }
904 }
905 if(!kinkmotherpass) continue;
906 }
907 else{
908 if(etrack->GetKinkIndex(0) != 0) continue;
909 }
910 }
911 // RecPrim
912 // if(!ProcessCutStep(AliHFEcuts::kStepRecPrim, track)) continue; //gives warning for AOD, so not using
913
914 // HFE cuts: TPC PID cleanup
915 if(!ProcessCutStep(AliHFEcuts::kStepHFEcutsTPC, track)) continue;
916
917 // fTrackHFEcuts->Fill(track->Phi());
918
919 // HFEcuts: ITS layers cuts
920 if(!ProcessCutStep(AliHFEcuts::kStepHFEcutsITS, track)) continue;
921
922 // fTrackHFEcutsITS->Fill(track->Phi());
923 //fTrackPtAftTrkCuts->Fill(track->Pt());
924
925 Double_t fClsE = -999, p = -999, fEovP=-999, pt = -999, dEdx=-999, fTPCnSigma=0;
926 pt = track->Pt();
927 p = track->P();
928 dEdx = track->GetTPCsignal();
929 fTPCnSigma = fPID->GetPIDResponse() ? fPID->GetPIDResponse()->NumberOfSigmasTPC(track, AliPID::kElectron) : 1000;
930
931 if(pt<2) continue;
932 //TPC electron phi
933 // if(fTPCnSigma >= -2 && fTPCnSigma <= 2){
934 // fElecPhiTPC->Fill(track->Phi());
935 // }
936
937 //eta cut (-0.7,0.7)
938 if(track->Eta() < -0.7 || track->Eta() > 0.7) continue;
939
940 // Track extrapolation to EMCAL
941 Int_t fClsId = track->GetEMCALcluster();
942 if(fClsId <0) continue;
943 AliVCluster *cluster = fVevent->GetCaloCluster(fClsId);
944 if(!cluster->IsEMCAL()) continue;
945 if(TMath::Abs(cluster->GetTrackDx())>0.05 || TMath::Abs(cluster->GetTrackDz())>0.05) continue;
946 // fdEdxBef->Fill(p,dEdx);
947 fTPCnsigma->Fill(p,fTPCnSigma);
948
949 // fTrkpt->Fill(pt);
950 fClsE = cluster->E();
951 fEovP = fClsE/p;
952
953 //--------THnsparse---------
954 //fvalueElectron[0] = pt;
955 //fvalueElectron[1] = fTPCnSigma;
956 //fvalueElectron[2] = fEovP;
957 //fvalueElectron[3] = cluster->GetM20();
958 //fvalueElectron[4] = cluster->GetM02();
959 //fvalueElectron[5] = cluster->GetDispersion();
960
961 //fSparseElectron->Fill(fvalueElectron);
962
963 //----------------
964 //EovP distribution for Had
965 if((fTPCnSigma > fTPCnsigHadMin) && (fTPCnSigma < fTPCnsigHadMax)) fEovPHadWoSS->Fill(pt,fEovP);
966 if(((fTPCnSigma > fTPCnsigHadMin) && (fTPCnSigma < fTPCnsigHadMax)) && ((cluster->GetM20()> fM20CutMin) && (cluster->GetM20()< fM20CutMax)) && ((cluster->GetM02()> fM02CutMin) && (cluster->GetM02()< fM02CutMax)) && ((cluster->GetDispersion()< fDispCutMax))) fEovPHadWSS->Fill(pt,fEovP);
967
968 //Dphi distribution hadrons with shower shape cuts
969 if(((fTPCnSigma > fTPCnsigHadMin) && (fTPCnSigma < fTPCnsigHadMax)) && ((cluster->GetM20()> fM20CutMin) && (cluster->GetM20()< fM20CutMax)) && ((cluster->GetM02()> fM02CutMin) && (cluster->GetM02()< fM02CutMax)) && ((cluster->GetDispersion()< fDispCutMax))&&(fEovP >= fEovPMin && fEovP <= fEovPMax)){
970 ElectronHadCorrel(iTracks, track, fHadronDphi, fHadronDphi1,fHadronDphi2,fHadronDphi3,fHadronDphi4);
971 ElectronHadCorrelEtaBins(iTracks, track, fHadronDphiEta1, fHadronDphiEta11,fHadronDphiEta12,fHadronDphiEta13,fHadronDphiEta14,fHadronDphiEta2, fHadronDphiEta21,fHadronDphiEta22,fHadronDphiEta23,fHadronDphiEta24);
972 fPiPt->Fill(pt);
973 }
974
975 //Dphi distribution hadrons without shower shape cuts
976 if((fTPCnSigma > fTPCnsigHadMin) && (fTPCnSigma < fTPCnsigHadMax)&&(fEovP >= fEovPMin && fEovP <= fEovPMax)){
977 ElectronHadCorrel(iTracks, track, fHadronDphiNoSS, fHadronDphiNoSS1,fHadronDphiNoSS2,fHadronDphiNoSS3,fHadronDphiNoSS4);
978 ElectronHadCorrelEtaBins(iTracks, track, fHadronDphiNoSSEta1, fHadronDphiNoSSEta11,fHadronDphiNoSSEta12,fHadronDphiNoSSEta13,fHadronDphiNoSSEta14,fHadronDphiNoSSEta2, fHadronDphiNoSSEta21,fHadronDphiNoSSEta22,fHadronDphiNoSSEta23,fHadronDphiNoSSEta24);
979 fPiPtNoSS->Fill(pt);
980 }
981
982 //Electron id with TPC
983 if(fTPCnSigma < fTPCnsigEleMin || fTPCnSigma > fTPCnsigEleMax) continue;
984 fEovPWoSS->Fill(pt,fEovP);
985 // fElecPhiTPCEovP->Fill(track->Phi());
986
987 //Electron id with shower shape
988 if(cluster->GetM20()< fM20CutMin || cluster->GetM20()> fM20CutMax || cluster->GetM02()< fM02CutMin || cluster->GetM02()> fM02CutMax || cluster->GetDispersion()> fDispCutMax) continue;
989 fEovPWSS->Fill(pt,fEovP);
990
991 //Electron id with E/p
992 if(fEovP < fEovPMin || fEovP > fEovPMax) continue;
993
994 fTrkEovPAft->Fill(pt,fEovP);
995 fElecPhi->Fill(track->Phi());
996 fElecPhiPt->Fill(track->Phi(),track->Pt());
997 if (track->Eta() >0 && track->Eta() <0.7) fElecPhiTPChalf->Fill(track->Phi());
998
999 HadronInfo(iTracks);
1000
1001 Bool_t fFlagPhotonicElec = kFALSE;
1002 // select photonic electron
1003 SelectPhotonicElectron(iTracks,track,fFlagPhotonicElec);
1004 SelectPhotonicElectronDCAMet(iTracks,track,fpidResponse);
1005
1006 //Inclusive electron-hadron correlation
1007 ElectronHadCorrel(iTracks, track, fInclusiveElecDphi, fInclusiveElecDphi1,fInclusiveElecDphi2,fInclusiveElecDphi3,fInclusiveElecDphi4);
1008 fInclusiveElecPt->Fill(pt);
1009 MixedEvent(track,fMixedIncElecDphi, fMixedIncElecDphi1,fMixedIncElecDphi2, fMixedIncElecDphi3, fMixedIncElecDphi4);
1010
1011 //Dphi in Eta bins
1012 ElectronHadCorrelEtaBins(iTracks, track, fInclusiveElecDphiEta1, fInclusiveElecDphiEta11,fInclusiveElecDphiEta12,fInclusiveElecDphiEta13,fInclusiveElecDphiEta14,fInclusiveElecDphiEta2, fInclusiveElecDphiEta21,fInclusiveElecDphiEta22,fInclusiveElecDphiEta23,fInclusiveElecDphiEta24);
1013
1014 //Inclusive electron-hadron correlation far eta side
1015 ElectronHadCorrelEtaFarSide(iTracks, track, fInclusiveElecDphiEtaFS, fInclusiveElecDphiEtaFS1,fInclusiveElecDphiEtaFS2,fInclusiveElecDphiEtaFS3,fInclusiveElecDphiEtaFS4);
1016 MixedEvent(track,fMixedIncElecDphi, fMixedIncElecDphi1,fMixedIncElecDphi2, fMixedIncElecDphi3, fMixedIncElecDphi4);
1017
1018 // photonic electron
1019 if(fFlagPhotonicElec){
1020 //Electron hadron correlation
1021 ElectronHadCorrel(iTracks, track, fPhotElecDphi,fPhotElecDphi1,fPhotElecDphi2,fPhotElecDphi3,fPhotElecDphi4);
1022 fPhotoElecPt->Fill(pt);
1023 MixedEvent(track,fMixedPhotElecDphi, fMixedPhotElecDphi1,fMixedPhotElecDphi2, fMixedPhotElecDphi3, fMixedPhotElecDphi4);
1024
1025 //Dphi in Eta bins
1026 ElectronHadCorrelEtaBins(iTracks, track, fPhotElecDphiEta1,fPhotElecDphiEta11,fPhotElecDphiEta12,fPhotElecDphiEta13,fPhotElecDphiEta14,fPhotElecDphiEta2,fPhotElecDphiEta21,fPhotElecDphiEta22,fPhotElecDphiEta23,fPhotElecDphiEta24);
1027 }
1028
1029 // Semi inclusive electron
1030 if(!fFlagPhotonicElec){
1031 //Electron hadron correlation
1032 ElectronHadCorrel(iTracks, track, fSemiIncElecDphi, fSemiIncElecDphi1,fSemiIncElecDphi2,fSemiIncElecDphi3,fSemiIncElecDphi4);
1033 fSemiInclElecPt->Fill(pt);
1034 MixedEvent(track,fMixedSemiIncElecDphi,fMixedSemiIncElecDphi1,fMixedSemiIncElecDphi2, fMixedSemiIncElecDphi3, fMixedSemiIncElecDphi4);
1035
1036 //Dphi in Eta bins
1037 ElectronHadCorrelEtaBins(iTracks, track, fSemiIncElecDphiEta1, fSemiIncElecDphiEta11,fSemiIncElecDphiEta12,fSemiIncElecDphiEta13,fSemiIncElecDphiEta14,fSemiIncElecDphiEta2, fSemiIncElecDphiEta21,fSemiIncElecDphiEta22,fSemiIncElecDphiEta23,fSemiIncElecDphiEta24);
1038 }
1039 }
1040 /* //EMC clusters
1041 Int_t clsNo = fVevent->GetNumberOfCaloClusters();
1042 fNClusv1->Fill(clsNo);
1043 for(Int_t iclus=0; iclus<clsNo ; iclus++){
1044 AliVCluster* clus = fVevent->GetCaloCluster(iclus);
1045 if(!clus->IsEMCAL()) continue;
1046 fNCellv1->Fill(clus->GetNCells());
1047 fClsEv1->Fill(clus->E());
1048 }
1049 */
1050
1051 TObjArray* tracksClone = CloneAndReduceTrackList();
1052 tracksClone->SetOwner();
1053 pool->UpdatePool(tracksClone);
1054
1055 PostData(1, fOutputList);
1056}
1057//_________________________________________
1058void AliAnalysisTaskElecHadronCorrel::UserCreateOutputObjects()
1059{
1060 //Create histograms
1061
1062 AliDebug(3, "Creating Output Objects");
1063 // Automatic determination of the analysis mode
1064 AliVEventHandler *inputHandler = dynamic_cast<AliVEventHandler *>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
1065 if(!TString(inputHandler->IsA()->GetName()).CompareTo("AliAODInputHandler")){
1066 SetAODAnalysis();
1067 } else {
1068 SetESDAnalysis();
1069 }
1070 printf("Analysis Mode: %s Analysis\n", IsAODanalysis() ? "AOD" : "ESD");
1071
1072 //--------Initialize PID
1073 fPID->SetHasMCData(kFALSE);
1074 if(!fPID->GetNumberOfPIDdetectors())
1075 {
1076 fPID->AddDetector("TPC", 0);
1077 fPID->AddDetector("EMCAL", 1);
1078 }
1079
1080 fPID->SortDetectors();
1081 fPIDqa = new AliHFEpidQAmanager();
1082 fPIDqa->Initialize(fPID);
1083
1084 //--------Initialize correction Framework and Cuts
1085 fCFM = new AliCFManager;
1086 const Int_t kNcutSteps = AliHFEcuts::kNcutStepsMCTrack + AliHFEcuts::kNcutStepsRecTrack + AliHFEcuts::kNcutStepsDETrack;
1087 fCFM->SetNStepParticle(kNcutSteps);
1088 for(Int_t istep = 0; istep < kNcutSteps; istep++)
1089 fCFM->SetParticleCutsList(istep, NULL);
1090
1091 if(!fCuts){
1092 AliWarning("Cuts not available. Default cuts will be used");
1093 fCuts = new AliHFEcuts;
1094 fCuts->CreateStandardCuts();
1095 }
1096
1097 if(IsAODanalysis()) fCuts->SetAOD();
1098 fCuts->Initialize(fCFM);
1099
1100 //Mixed event initialising
1101 Int_t trackDepth = 2000;
1102 Int_t poolsize = 1000;
1103
1104 Int_t nCentralityBins = 5;
1105 Int_t nCentralityBinsSC = 6;
1106 Int_t nZvtxBins = 4;
1107 Double_t CentralityBins[6];
1108 Double_t CentralityBinsSC[7];
1109 Double_t vertexBins[5];
1110 if(fTriggerCentral)
1111 {
1112 CentralityBins[0] = 0;
1113 CentralityBins[1] = 2;
1114 CentralityBins[2] = 4;
1115 CentralityBins[3] = 6;
1116 CentralityBins[4] = 8;
1117 CentralityBins[5] = 10;
1118
1119 vertexBins[0] = -10;
1120 vertexBins[1] = -5;
1121 vertexBins[2] = 0;
1122 vertexBins[3] = 5;
1123 vertexBins[4] = 10;
1124 fPoolMgr = new AliEventPoolManager(poolsize, trackDepth, nCentralityBins, (Double_t*) CentralityBins, nZvtxBins, (Double_t*) vertexBins);
1125 }
1126
1127 if(!fTriggerCentral)
1128 {
1129 CentralityBinsSC[0] = 20;
1130 CentralityBinsSC[1] = 25;
1131 CentralityBinsSC[2] = 30;
1132 CentralityBinsSC[3] = 35;
1133 CentralityBinsSC[4] = 40;
1134 CentralityBinsSC[5] = 45;
1135 CentralityBinsSC[6] = 50;
1136
1137 vertexBins[0] = -10;
1138 vertexBins[1] = -5;
1139 vertexBins[2] = 0;
1140 vertexBins[3] = 5;
1141 vertexBins[4] = 10;
1142 fPoolMgr = new AliEventPoolManager(poolsize, trackDepth, nCentralityBinsSC, (Double_t*) CentralityBinsSC, nZvtxBins, (Double_t*) vertexBins);
1143 }
1144
1145
1146 //---------Output Tlist
1147 fOutputList = new TList();
1148 fOutputList->SetOwner();
1149 fOutputList->Add(fPIDqa->MakeList("PIDQA"));
1150
1151 fNoEvents = new TH1F("fNoEvents","",1,0,1) ;
1152 fOutputList->Add(fNoEvents);
1153
1154 fcentrality = new TH1F("fcentrality","centrality", 100,0,100);
1155 fOutputList->Add(fcentrality);
1156
1157 // fTrkpt = new TH1F("fTrkpt","track pt",1000,0,50);
1158 // fOutputList->Add(fTrkpt);
1159
1160 // fTrackPtBefTrkCuts = new TH1F("fTrackPtBefTrkCuts","track pt before track cuts",1000,0,50);
1161 // fOutputList->Add(fTrackPtBefTrkCuts);
1162
1163 // fTrackPtAftTrkCuts = new TH1F("fTrackPtAftTrkCuts","track pt after track cuts",1000,0,50);
1164 // fOutputList->Add(fTrackPtAftTrkCuts);
1165
1166 fTPCnsigma = new TH2F("fTPCnsigma", "TPC - n sigma",1000,0,50,200,-10,10);
1167 fOutputList->Add(fTPCnsigma);
1168
1169 fTrkEovPAft = new TH2F("fTrkEovPAft","track E/p after HFE pid",1000,0,50,100,0,2);
1170 fOutputList->Add(fTrkEovPAft);
1171
1172 // fTrkEovPBefHad = new TH2F("fTrkEovPBefHad","track E/p for TPCnsig < 3.5",1000,0,50,100,0,2);
1173 // fOutputList->Add(fTrkEovPBefHad);
1174
1175 // fdEdxBef = new TH2F("fdEdxBef","track dEdx vs p before HFE pid",1000,0,50,150,0,150);
1176 // fOutputList->Add(fdEdxBef);
1177
1178 fElecPhi = new TH1F("fElecPhi", "Electron phi",1000,0,6.28);
1179 fOutputList->Add(fElecPhi);
1180
1181 fElecPhiPt = new TH2F("fElecPhiPt", "Electron phi vs pt; Electron phi; pt (GeV/c)",1000,0,6.28,1000,0,100);
1182 fOutputList->Add(fElecPhiPt);
1183
1184 fElecPhiTPChalf = new TH1F("fElecPhiTPChalf", "Electron phi for 0<eta<0.7",1000,0,6.28);
1185 fOutputList->Add(fElecPhiTPChalf);
1186
1187 /* fElecPhiTPC = new TH1F("fElecPhiTPC", "Electron phi after TPC cut",1000,0,6.28);
1188 fOutputList->Add(fElecPhiTPC);
1189
1190 fElecPhiTPCEovP = new TH1F("fElecPhiTPCEovP", "Electron phi after TPC and E/p cut",1000,0,6.28);
1191 fOutputList->Add(fElecPhiTPCEovP);
1192 */
1193 fHadronPhi = new TH1F("fHadronPhi", "Hadron phi",1000,0,6.28);
1194 fOutputList->Add(fHadronPhi);
1195
1196 fHadronPhiTPChalf = new TH1F("fHadronPhiTPChalf", "Hadron phi for 0<eta<0.9",1000,0,6.28);
1197 fOutputList->Add(fHadronPhiTPChalf);
1198
1199 fHadronPhiPt = new TH2F("fHadronPhiPt", "Hadron phi vs pt; hadron phi; pt (GeV/c)",1000,0,6.28,1000,0,100);
1200 fOutputList->Add(fHadronPhiPt);
1201
1202 /*
1203 fTrackHFEcuts = new TH1F("fTrackHFEcuts","Track phi for HFE cuts",1000,0,6.28);
1204 fOutputList->Add(fTrackHFEcuts);
1205
1206 fTrakPhiSPD1 = new TH1F("fTrakPhiSPD1","Track phi for hit in SPD layer 1",1000,0,6.28);
1207 fOutputList->Add(fTrakPhiSPD1);
1208
1209 fTrakPhiSPD2 = new TH1F("fTrakPhiSPD2","Track phi for hit in SPD layer 2",1000,0,6.28);
1210 fOutputList->Add(fTrakPhiSPD2);
1211
1212 fTrakPhiSPDOr = new TH1F("fTrakPhiSPDOr","Track phi for hit in any SPD layer",1000,0,6.28);
1213 fOutputList->Add(fTrakPhiSPDOr);
1214
1215 fTrakPhiSPDAnd = new TH1F("fTrakPhiSPDAnd","Track phi for hit in both SPD layer",1000,0,6.28);
1216 fOutputList->Add(fTrakPhiSPDAnd);
1217
1218 fTrackHFEcutsITS = new TH1F("fTrackHFEcutsITS","Track phi for HFE cuts + ITS HFE cuts",1000,0,6.28);
1219 fOutputList->Add(fTrackHFEcutsITS);
1220 */
1221 fSemiIncElecDphi = new TH2F("fSemiIncElecDphi", "Semi Inclusive elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1222 fOutputList->Add(fSemiIncElecDphi);
1223
1224 fSemiIncElecDphi1 = new TH2F("fSemiIncElecDphi1", "Semi Inclusive elec-had Dphi correlation for 2<pt^{asso}<4",200,0,20,100,-1.57,4.71);
1225 fOutputList->Add(fSemiIncElecDphi1);
1226
1227 fSemiIncElecDphi2 = new TH2F("fSemiIncElecDphi2", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<6",200,0,20,100,-1.57,4.71);
1228 fOutputList->Add(fSemiIncElecDphi2);
1229
1230 fSemiIncElecDphi3 = new TH2F("fSemiIncElecDphi3", "Semi Inclusive elec-had Dphi correlation for 6<pt^{asso}<8",200,0,20,100,-1.57,4.71);
1231 fOutputList->Add(fSemiIncElecDphi3);
1232
1233 fSemiIncElecDphi4 = new TH2F("fSemiIncElecDphi4", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<10",200,0,20,100,-1.57,4.71);
1234 fOutputList->Add(fSemiIncElecDphi4);
1235
1236 fPhotElecDphi = new TH2F("fPhotElecDphi", "Photon elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1237 fOutputList->Add(fPhotElecDphi);
1238
1239 fPhotElecDphi1 = new TH2F("fPhotElecDphi1", "Photon elec-had Dphi correlation for 2<pt^{asso}<4",200,0,20,100,-1.57,4.71);
1240 fOutputList->Add(fPhotElecDphi1);
1241
1242 fPhotElecDphi2 = new TH2F("fPhotElecDphi2", "Photon elec-had Dphi correlation for 4<pt^{asso}<6",200,0,20,100,-1.57,4.71);
1243 fOutputList->Add(fPhotElecDphi2);
1244
1245 fPhotElecDphi3 = new TH2F("fPhotElecDphi3", "Photon elec-had Dphi correlation for 6<pt^{asso}<8",200,0,20,100,-1.57,4.71);
1246 fOutputList->Add(fPhotElecDphi3);
1247
1248 fPhotElecDphi4 = new TH2F("fPhotElecDphi4", "Photon elec-had Dphi correlation for 4<pt^{asso}<10",200,0,20,100,-1.57,4.71);
1249 fOutputList->Add(fPhotElecDphi4);
1250
1251 fInclusiveElecDphi = new TH2F("fInclusiveElecDphi", "Inclusive elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1252 fOutputList->Add(fInclusiveElecDphi);
1253
1254 fInclusiveElecDphi1 = new TH2F("fInclusiveElecDphi1", "Inclusive elec-had Dphi correlation for 2<pt^{asso}<4",200,0,20,100,-1.57,4.71);
1255 fOutputList->Add(fInclusiveElecDphi1);
1256
1257 fInclusiveElecDphi2 = new TH2F("fInclusiveElecDphi2", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<6",200,0,20,100,-1.57,4.71);
1258 fOutputList->Add(fInclusiveElecDphi2);
1259
1260 fInclusiveElecDphi3 = new TH2F("fInclusiveElecDphi3", "Inclusive elec-had Dphi correlation for 6<pt^{asso}<8",200,0,20,100,-1.57,4.71);
1261 fOutputList->Add(fInclusiveElecDphi3);
1262
1263 fInclusiveElecDphi4 = new TH2F("fInclusiveElecDphi4", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<10",200,0,20,100,-1.57,4.71);
1264 fOutputList->Add(fInclusiveElecDphi4);
1265
1266 fInclusiveElecDphiEtaFS = new TH2F("fInclusiveElecDphiEtaFS", "Inclusive elec-had Dphi correlation (hadron 1<eta<1.6)",200,0,20,100,-1.57,4.71);
1267 fOutputList->Add(fInclusiveElecDphiEtaFS);
1268
1269 fInclusiveElecDphiEtaFS1 = new TH2F("fInclusiveElecDphiEtaFS1", "Inclusive elec-had Dphi correlation for 2<pt^{asso}<4 (hadron 1<eta<1.6)",200,0,20,100,-1.57,4.71);
1270 fOutputList->Add(fInclusiveElecDphiEtaFS1);
1271
1272 fInclusiveElecDphiEtaFS2 = new TH2F("fInclusiveElecDphiEtaFS2", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<6 (hadron 1<eta<1.6)",200,0,20,100,-1.57,4.71);
1273 fOutputList->Add(fInclusiveElecDphiEtaFS2);
1274
1275 fInclusiveElecDphiEtaFS3 = new TH2F("fInclusiveElecDphiEtaFS3", "Inclusive elec-had Dphi correlation for 6<pt^{asso}<8 (hadron 1<eta<1.6)",200,0,20,100,-1.57,4.71);
1276 fOutputList->Add(fInclusiveElecDphiEtaFS3);
1277
1278 fInclusiveElecDphiEtaFS4 = new TH2F("fInclusiveElecDphiEtaFS4", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<10 (hadron 1<eta<1.6)",200,0,20,100,-1.57,4.71);
1279 fOutputList->Add(fInclusiveElecDphiEtaFS4);
1280
1281 fDphiULSMassLow = new TH2F("fDphiULSMassLow", "e-h Dphi ULS, mass<cut",200,0,20,100,-1.57,4.71);
1282 fOutputList->Add(fDphiULSMassLow);
1283 fDphiULSMassLow1 = new TH2F("fDphiULSMassLow1", "e-h Dphi ULS, mass<cut for 2<pt^{asso}<4",200,0,20,100,-1.57,4.71);
1284 fOutputList->Add(fDphiULSMassLow1);
1285 fDphiULSMassLow2 = new TH2F("fDphiULSMassLow2", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<6",200,0,20,100,-1.57,4.71);
1286 fOutputList->Add(fDphiULSMassLow2);
1287 fDphiULSMassLow3 = new TH2F("fDphiULSMassLow3", "e-h Dphi ULS, mass<cut for 6<pt^{asso}<8",200,0,20,100,-1.57,4.71);
1288 fOutputList->Add(fDphiULSMassLow3);
1289 fDphiULSMassLow4 = new TH2F("fDphiULSMassLow4", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<10",200,0,20,100,-1.57,4.71);
1290 fOutputList->Add(fDphiULSMassLow4);
1291 fDphiLSMassLow = new TH2F("fDphiLSMassLow", "e-h Dphi LS, mass<cut",200,0,20,100,-1.57,4.71);
1292 fOutputList->Add(fDphiLSMassLow);
1293 fDphiLSMassLow1 = new TH2F("fDphiLSMassLow1", "e-h Dphi LS, mass<cut for 2<pt^{asso}<4",200,0,20,100,-1.57,4.71);
1294 fOutputList->Add(fDphiLSMassLow1);
1295 fDphiLSMassLow2 = new TH2F("fDphiLSMassLow2", "e-h Dphi LS, mass<cut for 4<pt^{asso}<6",200,0,20,100,-1.57,4.71);
1296 fOutputList->Add(fDphiLSMassLow2);
1297 fDphiLSMassLow3 = new TH2F("fDphiLSMassLow3", "e-h Dphi LS, mass<cut for 6<pt^{asso}<8",200,0,20,100,-1.57,4.71);
1298 fOutputList->Add(fDphiLSMassLow3);
1299 fDphiLSMassLow4 = new TH2F("fDphiLSMassLow4", "e-h Dphi LS, mass<cut for 8<pt^{asso}<10",200,0,20,100,-1.57,4.71);
1300 fOutputList->Add(fDphiLSMassLow4);
1301 fDphiULSMassLowNoPartner = new TH2F("fDphiULSMassLowNoPartner", "e-h Dphi ULS with no partner, mass<mass cut,",200,0,20,100,-1.57,4.71);
1302 fOutputList->Add(fDphiULSMassLowNoPartner);
1303 fDphiULSMassLowNoPartner1 = new TH2F("fDphiULSMassLowNoPartner1", "e-h Dphi ULS with no partner, mass<mass cut for 2<pt^{asso}<4,",200,0,20,100,-1.57,4.71);
1304 fOutputList->Add(fDphiULSMassLowNoPartner1);
1305 fDphiULSMassLowNoPartner2 = new TH2F("fDphiULSMassLowNoPartner2", "e-h Dphi ULS with no partner, mass<mass cut for 4<pt^{asso}<6,",200,0,20,100,-1.57,4.71);
1306 fOutputList->Add(fDphiULSMassLowNoPartner2);
1307 fDphiULSMassLowNoPartner3 = new TH2F("fDphiULSMassLowNoPartner3", "e-h Dphi ULS with no partner, mass<mass cut for 6<pt^{asso}<8,",200,0,20,100,-1.57,4.71);
1308 fOutputList->Add(fDphiULSMassLowNoPartner3);
1309 fDphiULSMassLowNoPartner4 = new TH2F("fDphiULSMassLowNoPartner4", "e-h Dphi ULS with no partner, mass<mass cut for 4<pt^{asso}<10,",200,0,20,100,-1.57,4.71);
1310 fOutputList->Add(fDphiULSMassLowNoPartner4);
1311 fDphiLSMassLowNoPartner = new TH2F("fDphiLSMassLowNoPartner", "e-h Dphi LS with no partner, mass<mass cut",200,0,20,100,-1.57,4.71);
1312 fOutputList->Add(fDphiLSMassLowNoPartner);
1313 fDphiLSMassLowNoPartner1 = new TH2F("fDphiLSMassLowNoPartner1", "e-h Dphi LS with no partner, mass<mass cut for 2<pt^{asso}<4,",200,0,20,100,-1.57,4.71);
1314 fOutputList->Add(fDphiLSMassLowNoPartner1);
1315 fDphiLSMassLowNoPartner2 = new TH2F("fDphiLSMassLowNoPartner2", "e-h Dphi LS with no partner, mass<mass cut for 4<pt^{asso}<6,",200,0,20,100,-1.57,4.71);
1316 fOutputList->Add(fDphiLSMassLowNoPartner2);
1317 fDphiLSMassLowNoPartner3 = new TH2F("fDphiLSMassLowNoPartner3", "e-h Dphi LS with no partner, mass<mass cut for 6<pt^{asso}<8,",200,0,20,100,-1.57,4.71);
1318 fOutputList->Add(fDphiLSMassLowNoPartner3);
1319 fDphiLSMassLowNoPartner4 = new TH2F("fDphiLSMassLowNoPartner4", "e-h Dphi LS with no partner, mass<mass cut for 4<pt^{asso}<10,",200,0,20,100,-1.57,4.71);
1320 fOutputList->Add(fDphiLSMassLowNoPartner4);
1321 fPhotoElecPt = new TH1F("fPhotoElecPt", "photonic electron pt",1000,0,100);
1322 fOutputList->Add(fPhotoElecPt);
1323 fSemiInclElecPt = new TH1F("fSemiInclElecPt", "Semi-inclusive electron pt",1000,0,100);
1324 fOutputList->Add(fSemiInclElecPt);
1325 fInclusiveElecPt = new TH1F("fInclElecPt", "Inclusive electron pt",1000,0,100);
1326 fOutputList->Add(fInclusiveElecPt);
1327 fULSElecPt = new TH1F("fULSElecPt", "ULS electron pt",1000,0,100);
1328 fOutputList->Add(fULSElecPt);
1329 fLSElecPt = new TH1F("fLSElecPt", "LS electron pt",1000,0,100);
1330 fOutputList->Add(fLSElecPt);
1331
1332 fDCAMetPhotElecDphi = new TH2F("fDCAMetPhotElecDphi", "Photon elec-had Dphi correlation DCA method",200,0,20,100,-1.57,4.71);
1333 fOutputList->Add(fDCAMetPhotElecDphi);
1334 fDCAMetPhotElecDphi1 = new TH2F("fDCAMetPhotElecDphi1", "Photon elec-had Dphi correlation DCA method for 2<pt^{asso}<4",200,0,20,100,-1.57,4.71);
1335 fOutputList->Add(fDCAMetPhotElecDphi1);
1336 fDCAMetPhotElecDphi2 = new TH2F("fDCAMetPhotElecDphi2", "Photon elec-had Dphi correlation DCA method for 4<pt^{asso}<6",200,0,20,100,-1.57,4.71);
1337 fOutputList->Add(fDCAMetPhotElecDphi2);
1338 fDCAMetPhotElecDphi3 = new TH2F("fDCAMetPhotElecDphi3", "Photon elec-had Dphi correlation DCA method for 6<pt^{asso}<8",200,0,20,100,-1.57,4.71);
1339 fOutputList->Add(fDCAMetPhotElecDphi3);
1340 fDCAMetPhotElecDphi4 = new TH2F("fDCAMetPhotElecDphi4", "Photon elec-had Dphi correlation DCA method for 4<pt^{asso}<10",200,0,20,100,-1.57,4.71);
1341 fOutputList->Add(fDCAMetPhotElecDphi4);
1342 fDCAMetDphiULSMassLow = new TH2F("fDCAMetDphiULSMassLow", "e-h Dphi ULS, mass<cut",200,0,20,100,-1.57,4.71);
1343 fOutputList->Add(fDCAMetDphiULSMassLow);
1344 fDCAMetDphiULSMassLow1 = new TH2F("fDCAMetDphiULSMassLow1", "e-h Dphi ULS, mass<cut for 2<pt^{asso}<4",200,0,20,100,-1.57,4.71);
1345 fOutputList->Add(fDCAMetDphiULSMassLow1);
1346 fDCAMetDphiULSMassLow2 = new TH2F("fDCAMetDphiULSMassLow2", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<6",200,0,20,100,-1.57,4.71);
1347 fOutputList->Add(fDCAMetDphiULSMassLow2);
1348 fDCAMetDphiULSMassLow3 = new TH2F("fDCAMetDphiULSMassLow3", "e-h Dphi ULS, mass<cut for 6<pt^{asso}<8",200,0,20,100,-1.57,4.71);
1349 fOutputList->Add(fDCAMetDphiULSMassLow3);
1350 fDCAMetDphiULSMassLow4 = new TH2F("fDCAMetDphiULSMassLow4", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<10",200,0,20,100,-1.57,4.71);
1351 fOutputList->Add(fDCAMetDphiULSMassLow4);
1352 fDCAMetDphiLSMassLow = new TH2F("fDCAMetDphiLSMassLow", "e-h Dphi LS, mass<cut",200,0,20,100,-1.57,4.71);
1353 fOutputList->Add(fDCAMetDphiLSMassLow);
1354 fDCAMetDphiLSMassLow1 = new TH2F("fDCAMetDphiLSMassLow1", "e-h Dphi LS, mass<cut for 2<pt^{asso}<4",200,0,20,100,-1.57,4.71);
1355 fOutputList->Add(fDCAMetDphiLSMassLow1);
1356 fDCAMetDphiLSMassLow2 = new TH2F("fDCAMetDphiLSMassLow2", "e-h Dphi LS, mass<cut for 4<pt^{asso}<6",200,0,20,100,-1.57,4.71);
1357 fOutputList->Add(fDCAMetDphiLSMassLow2);
1358 fDCAMetDphiLSMassLow3 = new TH2F("fDCAMetDphiLSMassLow3", "e-h Dphi LS, mass<cut for 6<pt^{asso}<8",200,0,20,100,-1.57,4.71);
1359 fOutputList->Add(fDCAMetDphiLSMassLow3);
1360 fDCAMetDphiLSMassLow4 = new TH2F("fDCAMetDphiLSMassLow4", "e-h Dphi LS, mass<cut for 8<pt^{asso}<10",200,0,20,100,-1.57,4.71);
1361 fOutputList->Add(fDCAMetDphiLSMassLow4);
1362 fDCAMetDphiULSMassLowNoPartner = new TH2F("fDCAMetDphiULSMassLowNoPartner", "e-h Dphi ULS with no partner, mass<mass cut,",200,0,20,100,-1.57,4.71);
1363 fOutputList->Add(fDCAMetDphiULSMassLowNoPartner);
1364 fDCAMetDphiULSMassLowNoPartner1 = new TH2F("fDCAMetDphiULSMassLowNoPartner1", "e-h Dphi ULS with no partner, mass<mass cut for 2<pt^{asso}<4,",200,0,20,100,-1.57,4.71);
1365 fOutputList->Add(fDCAMetDphiULSMassLowNoPartner1);
1366 fDCAMetDphiULSMassLowNoPartner2 = new TH2F("fDCAMetDphiULSMassLowNoPartner2", "e-h Dphi ULS with no partner, mass<mass cut for 4<pt^{asso}<6,",200,0,20,100,-1.57,4.71);
1367 fOutputList->Add(fDCAMetDphiULSMassLowNoPartner2);
1368 fDCAMetDphiULSMassLowNoPartner3 = new TH2F("fDCAMetDphiULSMassLowNoPartner3", "e-h Dphi ULS with no partner, mass<mass cut for 6<pt^{asso}<8,",200,0,20,100,-1.57,4.71);
1369 fOutputList->Add(fDCAMetDphiULSMassLowNoPartner3);
1370 fDCAMetDphiULSMassLowNoPartner4 = new TH2F("fDCAMetDphiULSMassLowNoPartner4", "e-h Dphi ULS with no partner, mass<mass cut for 4<pt^{asso}<10,",200,0,20,100,-1.57,4.71);
1371 fOutputList->Add(fDCAMetDphiULSMassLowNoPartner4);
1372 fDCAMetDphiLSMassLowNoPartner = new TH2F("fDCAMetDphiLSMassLowNoPartner", "e-h Dphi LS with no partner, mass<mass cut",200,0,20,100,-1.57,4.71);
1373 fOutputList->Add(fDCAMetDphiLSMassLowNoPartner);
1374 fDCAMetDphiLSMassLowNoPartner1 = new TH2F("fDCAMetDphiLSMassLowNoPartner1", "e-h Dphi LS with no partner, mass<mass cut for 2<pt^{asso}<4,",200,0,20,100,-1.57,4.71);
1375 fOutputList->Add(fDCAMetDphiLSMassLowNoPartner1);
1376 fDCAMetDphiLSMassLowNoPartner2 = new TH2F("fDCAMetDphiLSMassLowNoPartner2", "e-h Dphi LS with no partner, mass<mass cut for 4<pt^{asso}<6,",200,0,20,100,-1.57,4.71);
1377 fOutputList->Add(fDCAMetDphiLSMassLowNoPartner2);
1378 fDCAMetDphiLSMassLowNoPartner3 = new TH2F("fDCAMetDphiLSMassLowNoPartner3", "e-h Dphi LS with no partner, mass<mass cut for 6<pt^{asso}<8,",200,0,20,100,-1.57,4.71);
1379 fOutputList->Add(fDCAMetDphiLSMassLowNoPartner3);
1380 fDCAMetDphiLSMassLowNoPartner4 = new TH2F("fDCAMetDphiLSMassLowNoPartner4", "e-h Dphi LS with no partner, mass<mass cut for 4<pt^{asso}<10,",200,0,20,100,-1.57,4.71);
1381 fOutputList->Add(fDCAMetDphiLSMassLowNoPartner4);
1382 fDCAMetPhotoElecPt = new TH1F("fDCAMetPhotoElecPt", "photonic electron pt",1000,0,100);
1383 fOutputList->Add(fDCAMetPhotoElecPt);
1384 fDCAMetULSElecPt = new TH1F("fDCAMetULSElecPt", "ULS electron pt",1000,0,100);
1385 fOutputList->Add(fDCAMetULSElecPt);
1386 fDCAMetLSElecPt = new TH1F("fDCAMetLSElecPt", "LS electron pt",1000,0,100);
1387 fOutputList->Add(fDCAMetLSElecPt);
1388
1389 fSemiIncElecDphiEta1 = new TH2F("fSemiIncElecDphiEta1", "Semi Inclusive elec-had Dphi correlation for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1390 fOutputList->Add(fSemiIncElecDphiEta1);
1391 fSemiIncElecDphiEta11 = new TH2F("fSemiIncElecDphiEta11", "Semi Inclusive elec-had Dphi correlation for 2<pt^{asso}<4 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1392 fOutputList->Add(fSemiIncElecDphiEta11);
1393 fSemiIncElecDphiEta12 = new TH2F("fSemiIncElecDphiEta12", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<6 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1394 fOutputList->Add(fSemiIncElecDphiEta12);
1395 fSemiIncElecDphiEta13 = new TH2F("fSemiIncElecDphiEta13", "Semi Inclusive elec-had Dphi correlation for 6<pt^{asso}<8 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1396 fOutputList->Add(fSemiIncElecDphiEta13);
1397 fSemiIncElecDphiEta14 = new TH2F("fSemiIncElecDphiEta14", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<10 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1398 fOutputList->Add(fSemiIncElecDphiEta14);
1399 fPhotElecDphiEta1 = new TH2F("fPhotElecDphiEta1", "Photon elec-had Dphi correlation for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1400 fOutputList->Add(fPhotElecDphiEta1);
1401 fPhotElecDphiEta11 = new TH2F("fPhotElecDphiEta11", "Photon elec-had Dphi correlation for 2<pt^{asso}<4 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1402 fOutputList->Add(fPhotElecDphiEta11);
1403 fPhotElecDphiEta12 = new TH2F("fPhotElecDphiEta12", "Photon elec-had Dphi correlation for 4<pt^{asso}<6 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1404 fOutputList->Add(fPhotElecDphiEta12);
1405 fPhotElecDphiEta13 = new TH2F("fPhotElecDphiEta13", "Photon elec-had Dphi correlation for 6<pt^{asso}<8 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1406 fOutputList->Add(fPhotElecDphiEta13);
1407 fPhotElecDphiEta14 = new TH2F("fPhotElecDphiEta14", "Photon elec-had Dphi correlation for 4<pt^{asso}<10 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1408 fOutputList->Add(fPhotElecDphiEta14);
1409 fInclusiveElecDphiEta1 = new TH2F("fInclusiveElecDphiEta1", "Inclusive elec-had Dphi correlation for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1410 fOutputList->Add(fInclusiveElecDphiEta1);
1411 fInclusiveElecDphiEta11 = new TH2F("fInclusiveElecDphiEta11", "Inclusive elec-had Dphi correlation for 2<pt^{asso}<4 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1412 fOutputList->Add(fInclusiveElecDphiEta11);
1413 fInclusiveElecDphiEta12 = new TH2F("fInclusiveElecDphiEta12", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<6 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1414 fOutputList->Add(fInclusiveElecDphiEta12);
1415 fInclusiveElecDphiEta13 = new TH2F("fInclusiveElecDphiEta13", "Inclusive elec-had Dphi correlation for 6<pt^{asso}<8 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1416 fOutputList->Add(fInclusiveElecDphiEta13);
1417 fInclusiveElecDphiEta14 = new TH2F("fInclusiveElecDphiEta14", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<10 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1418 fOutputList->Add(fInclusiveElecDphiEta14);
1419 fDphiULSMassLowEta1 = new TH2F("fDphiULSMassLowEta1", "e-h Dphi ULS, mass<cut for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1420 fOutputList->Add(fDphiULSMassLowEta1);
1421 fDphiULSMassLowEta11 = new TH2F("fDphiULSMassLowEta11", "e-h Dphi ULS, mass<cut for 2<pt^{asso}<4 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1422 fOutputList->Add(fDphiULSMassLowEta11);
1423 fDphiULSMassLowEta12 = new TH2F("fDphiULSMassLowEta12", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<6 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1424 fOutputList->Add(fDphiULSMassLowEta12);
1425 fDphiULSMassLowEta13 = new TH2F("fDphiULSMassLowEta13", "e-h Dphi ULS, mass<cut for 6<pt^{asso}<8 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1426 fOutputList->Add(fDphiULSMassLowEta13);
1427 fDphiULSMassLowEta14 = new TH2F("fDphiULSMassLowEta14", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<10 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1428 fOutputList->Add(fDphiULSMassLowEta14);
1429 fDphiLSMassLowEta1 = new TH2F("fDphiLSMassLowEta1", "e-h Dphi LS, mass<cut for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1430 fOutputList->Add(fDphiLSMassLowEta1);
1431 fDphiLSMassLowEta11 = new TH2F("fDphiLSMassLowEta11", "e-h Dphi LS, mass<cut for 2<pt^{asso}<4 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1432 fOutputList->Add(fDphiLSMassLowEta11);
1433 fDphiLSMassLowEta12 = new TH2F("fDphiLSMassLowEta12", "e-h Dphi LS, mass<cut for 4<pt^{asso}<6 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1434 fOutputList->Add(fDphiLSMassLowEta12);
1435 fDphiLSMassLowEta13 = new TH2F("fDphiLSMassLowEta13", "e-h Dphi LS, mass<cut for 6<pt^{asso}<8 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1436 fOutputList->Add(fDphiLSMassLowEta13);
1437 fDphiLSMassLowEta14 = new TH2F("fDphiLSMassLowEta14", "e-h Dphi LS, mass<cut for 8<pt^{asso}<10 for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1438 fOutputList->Add(fDphiLSMassLowEta14);
1439 fDphiULSMassLowNoPartnerEta1 = new TH2F("fDphiULSMassLowNoPartnerEta1", "e-h Dphi ULS with no partner, mass<mass cut, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1440 fOutputList->Add(fDphiULSMassLowNoPartnerEta1);
1441 fDphiULSMassLowNoPartnerEta11 = new TH2F("fDphiULSMassLowNoPartnerEta11", "e-h Dphi ULS with no partner, mass<mass cut for 2<pt^{asso}<4, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1442 fOutputList->Add(fDphiULSMassLowNoPartnerEta11);
1443 fDphiULSMassLowNoPartnerEta12 = new TH2F("fDphiULSMassLowNoPartnerEta12", "e-h Dphi ULS with no partner, mass<mass cut for 4<pt^{asso}<6, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1444 fOutputList->Add(fDphiULSMassLowNoPartnerEta12);
1445 fDphiULSMassLowNoPartnerEta13 = new TH2F("fDphiULSMassLowNoPartnerEta13", "e-h Dphi ULS with no partner, mass<mass cut for 6<pt^{asso}<8, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1446 fOutputList->Add(fDphiULSMassLowNoPartnerEta13);
1447 fDphiULSMassLowNoPartnerEta14 = new TH2F("fDphiULSMassLowNoPartnerEta14", "e-h Dphi ULS with no partner, mass<mass cut for 4<pt^{asso}<10, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1448 fOutputList->Add(fDphiULSMassLowNoPartnerEta14);
1449 fDphiLSMassLowNoPartnerEta1 = new TH2F("fDphiLSMassLowNoPartnerEta1", "e-h Dphi LS with no partner, mass<mass cut, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1450 fOutputList->Add(fDphiLSMassLowNoPartnerEta1);
1451 fDphiLSMassLowNoPartnerEta11 = new TH2F("fDphiLSMassLowNoPartnerEta11", "e-h Dphi LS with no partner, mass<mass cut for 2<pt^{asso}<4, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1452 fOutputList->Add(fDphiLSMassLowNoPartnerEta11);
1453 fDphiLSMassLowNoPartnerEta12 = new TH2F("fDphiLSMassLowNoPartnerEta12", "e-h Dphi LS with no partner, mass<mass cut for 4<pt^{asso}<6, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1454 fOutputList->Add(fDphiLSMassLowNoPartnerEta12);
1455 fDphiLSMassLowNoPartnerEta13 = new TH2F("fDphiLSMassLowNoPartnerEta13", "e-h Dphi LS with no partner, mass<mass cut for 6<pt^{asso}<8, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1456 fOutputList->Add(fDphiLSMassLowNoPartnerEta13);
1457 fDphiLSMassLowNoPartnerEta14 = new TH2F("fDphiLSMassLowNoPartnerEta14", "e-h Dphi LS with no partner, mass<mass cut for 4<pt^{asso}<10, for |Eta < 0.8|",200,0,20,100,-1.57,4.71);
1458 fOutputList->Add(fDphiLSMassLowNoPartnerEta14);
1459
1460 fSemiIncElecDphiEta2 = new TH2F("fSemiIncElecDphiEta2", "Semi Inclusive elec-had Dphi correlation for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1461 fOutputList->Add(fSemiIncElecDphiEta2);
1462 fSemiIncElecDphiEta21 = new TH2F("fSemiIncElecDphiEta21", "Semi Inclusive elec-had Dphi correlation for 2<pt^{asso}<4 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1463 fOutputList->Add(fSemiIncElecDphiEta21);
1464 fSemiIncElecDphiEta22 = new TH2F("fSemiIncElecDphiEta22", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<6 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1465 fOutputList->Add(fSemiIncElecDphiEta22);
1466 fSemiIncElecDphiEta23 = new TH2F("fSemiIncElecDphiEta23", "Semi Inclusive elec-had Dphi correlation for 6<pt^{asso}<8 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1467 fOutputList->Add(fSemiIncElecDphiEta23);
1468 fSemiIncElecDphiEta24 = new TH2F("fSemiIncElecDphiEta24", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<10 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1469 fOutputList->Add(fSemiIncElecDphiEta24);
1470 fPhotElecDphiEta2 = new TH2F("fPhotElecDphiEta2", "Photon elec-had Dphi correlation for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1471 fOutputList->Add(fPhotElecDphiEta2);
1472 fPhotElecDphiEta21 = new TH2F("fPhotElecDphiEta21", "Photon elec-had Dphi correlation for 2<pt^{asso}<4 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1473 fOutputList->Add(fPhotElecDphiEta21);
1474 fPhotElecDphiEta22 = new TH2F("fPhotElecDphiEta22", "Photon elec-had Dphi correlation for 4<pt^{asso}<6 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1475 fOutputList->Add(fPhotElecDphiEta22);
1476 fPhotElecDphiEta23 = new TH2F("fPhotElecDphiEta23", "Photon elec-had Dphi correlation for 6<pt^{asso}<8 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1477 fOutputList->Add(fPhotElecDphiEta23);
1478 fPhotElecDphiEta24 = new TH2F("fPhotElecDphiEta24", "Photon elec-had Dphi correlation for 4<pt^{asso}<10 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1479 fOutputList->Add(fPhotElecDphiEta24);
1480 fInclusiveElecDphiEta2 = new TH2F("fInclusiveElecDphiEta2", "Inclusive elec-had Dphi correlation for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1481 fOutputList->Add(fInclusiveElecDphiEta2);
1482 fInclusiveElecDphiEta21 = new TH2F("fInclusiveElecDphiEta21", "Inclusive elec-had Dphi correlation for 2<pt^{asso}<4 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1483 fOutputList->Add(fInclusiveElecDphiEta21);
1484 fInclusiveElecDphiEta22 = new TH2F("fInclusiveElecDphiEta22", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<6 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1485 fOutputList->Add(fInclusiveElecDphiEta22);
1486 fInclusiveElecDphiEta23 = new TH2F("fInclusiveElecDphiEta23", "Inclusive elec-had Dphi correlation for 6<pt^{asso}<8 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1487 fOutputList->Add(fInclusiveElecDphiEta23);
1488 fInclusiveElecDphiEta24 = new TH2F("fInclusiveElecDphiEta24", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<10 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1489 fOutputList->Add(fInclusiveElecDphiEta24);
1490 fDphiULSMassLowEta2 = new TH2F("fDphiULSMassLowEta2", "e-h Dphi ULS, mass<cut for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1491 fOutputList->Add(fDphiULSMassLowEta2);
1492 fDphiULSMassLowEta21 = new TH2F("fDphiULSMassLowEta21", "e-h Dphi ULS, mass<cut for 2<pt^{asso}<4 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1493 fOutputList->Add(fDphiULSMassLowEta21);
1494 fDphiULSMassLowEta22 = new TH2F("fDphiULSMassLowEta22", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<6 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1495 fOutputList->Add(fDphiULSMassLowEta22);
1496 fDphiULSMassLowEta23 = new TH2F("fDphiULSMassLowEta23", "e-h Dphi ULS, mass<cut for 6<pt^{asso}<8 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1497 fOutputList->Add(fDphiULSMassLowEta23);
1498 fDphiULSMassLowEta24 = new TH2F("fDphiULSMassLowEta24", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<10 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1499 fOutputList->Add(fDphiULSMassLowEta24);
1500 fDphiLSMassLowEta2 = new TH2F("fDphiLSMassLowEta2", "e-h Dphi LS, mass<cut for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1501 fOutputList->Add(fDphiLSMassLowEta2);
1502 fDphiLSMassLowEta21 = new TH2F("fDphiLSMassLowEta21", "e-h Dphi LS, mass<cut for 2<pt^{asso}<4 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1503 fOutputList->Add(fDphiLSMassLowEta21);
1504 fDphiLSMassLowEta22 = new TH2F("fDphiLSMassLowEta22", "e-h Dphi LS, mass<cut for 4<pt^{asso}<6 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1505 fOutputList->Add(fDphiLSMassLowEta22);
1506 fDphiLSMassLowEta23 = new TH2F("fDphiLSMassLowEta23", "e-h Dphi LS, mass<cut for 6<pt^{asso}<8 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1507 fOutputList->Add(fDphiLSMassLowEta23);
1508 fDphiLSMassLowEta24 = new TH2F("fDphiLSMassLowEta24", "e-h Dphi LS, mass<cut for 4<pt^{asso}<10 for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1509 fOutputList->Add(fDphiLSMassLowEta24);
1510 fDphiULSMassLowNoPartnerEta2 = new TH2F("fDphiULSMassLowNoPartnerEta2", "e-h Dphi ULS with no partner, mass<mass cut, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1511 fOutputList->Add(fDphiULSMassLowNoPartnerEta2);
1512 fDphiULSMassLowNoPartnerEta21 = new TH2F("fDphiULSMassLowNoPartnerEta21", "e-h Dphi ULS with no partner, mass<mass cut for 2<pt^{asso}<4, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1513 fOutputList->Add(fDphiULSMassLowNoPartnerEta21);
1514 fDphiULSMassLowNoPartnerEta22 = new TH2F("fDphiULSMassLowNoPartnerEta22", "e-h Dphi ULS with no partner, mass<mass cut for 4<pt^{asso}<6, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1515 fOutputList->Add(fDphiULSMassLowNoPartnerEta22);
1516 fDphiULSMassLowNoPartnerEta23 = new TH2F("fDphiULSMassLowNoPartnerEta23", "e-h Dphi ULS with no partner, mass<mass cut for 6<pt^{asso}<8, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1517 fOutputList->Add(fDphiULSMassLowNoPartnerEta23);
1518 fDphiULSMassLowNoPartnerEta24 = new TH2F("fDphiULSMassLowNoPartnerEta24", "e-h Dphi ULS with no partner, mass<mass cut for 4<pt^{asso}<10, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1519 fOutputList->Add(fDphiULSMassLowNoPartnerEta24);
1520 fDphiLSMassLowNoPartnerEta2 = new TH2F("fDphiLSMassLowNoPartnerEta2", "e-h Dphi LS with no partner, mass<mass cut, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1521 fOutputList->Add(fDphiLSMassLowNoPartnerEta2);
1522 fDphiLSMassLowNoPartnerEta21 = new TH2F("fDphiLSMassLowNoPartnerEta21", "e-h Dphi LS with no partner, mass<mass cut for 2<pt^{asso}<4, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1523 fOutputList->Add(fDphiLSMassLowNoPartnerEta21);
1524 fDphiLSMassLowNoPartnerEta22 = new TH2F("fDphiLSMassLowNoPartnerEta22", "e-h Dphi LS with no partner, mass<mass cut for 4<pt^{asso}<6, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1525 fOutputList->Add(fDphiLSMassLowNoPartnerEta22);
1526 fDphiLSMassLowNoPartnerEta23 = new TH2F("fDphiLSMassLowNoPartnerEta23", "e-h Dphi LS with no partner, mass<mass cut for 6<pt^{asso}<8, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1527 fOutputList->Add(fDphiLSMassLowNoPartnerEta23);
1528 fDphiLSMassLowNoPartnerEta24 = new TH2F("fDphiLSMassLowNoPartnerEta24", "e-h Dphi LS with no partner, mass<mass cut for 4<pt^{asso}<10, for |Eta > 0.8|",200,0,20,100,-1.57,4.71);
1529 fOutputList->Add(fDphiLSMassLowNoPartnerEta24);
1530
1531 /* fNCellv1 = new TH1F("fNCellv1","Ncell in clus (v1); NCell; count",100,0,100) ;
1532 fOutputList->Add(fNCellv1);
1533
1534 fClsEv1 = new TH1F("fClsEv1", "Clus E(v1); Cls E; count",1000,0,100);
1535 fOutputList->Add(fClsEv1);
1536
1537 fNClusv1 = new TH1F("fNClusv1","Nclus in event (v1); NClus; count",500,0,500) ;
1538 fOutputList->Add(fNClusv1);
1539 */
1540 fInvmassLS1 = new TH1F("fInvmassLS1", "Inv mass of LS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1541 fOutputList->Add(fInvmassLS1);
1542
1543 fInvmassULS1 = new TH1F("fInvmassULS1", "Inv mass of ULS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1544 fOutputList->Add(fInvmassULS1);
1545
1546 fDCAMetInvmassLS1 = new TH1F("fDCAMetInvmassLS1", "Inv mass of LS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1547 fOutputList->Add(fDCAMetInvmassLS1);
1548
1549 fDCAMetInvmassULS1 = new TH1F("fDCAMetInvmassULS1", "Inv mass of ULS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1550 fOutputList->Add(fDCAMetInvmassULS1);
1551 /*
1552 fInvmassLS2 = new TH1F("fInvmassLS2", "Inv mass of LS (e,e) for pt^{e}>1; mass(GeV/c^2); counts;", 1000,0,1.0);
1553 fOutputList->Add(fInvmassLS2);
1554
1555 fInvmassULS2 = new TH1F("fInvmassULS2", "Inv mass of ULS (e,e) for pt^{e}>1; mass(GeV/c^2); counts;", 1000,0,1.0);
1556 fOutputList->Add(fInvmassULS2);
1557
1558 fInvmassLS3 = new TH1F("fInvmassLS3", "Inv mass of LS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1559 fOutputList->Add(fInvmassLS3);
1560
1561 fInvmassULS3 = new TH1F("fInvmassULS3", "Inv mass of ULS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1562 fOutputList->Add(fInvmassULS3);
1563
1564 fInvmassLS4 = new TH1F("fInvmassLS4", "Inv mass of LS (e,e) for pt^{e}>3; mass(GeV/c^2); counts;", 1000,0,1.0);
1565 fOutputList->Add(fInvmassLS4);
1566
1567 fInvmassULS4 = new TH1F("fInvmassULS4", "Inv mass of ULS (e,e) for pt^{e}>3; mass(GeV/c^2); counts;", 1000,0,1.0);
1568 fOutputList->Add(fInvmassULS4);
1569
1570 fInvmassLS5 = new TH1F("fInvmassLS5", "Inv mass of LS (e,e) for pt^{e}>4; mass(GeV/c^2); counts;", 1000,0,1.0);
1571 fOutputList->Add(fInvmassLS5);
1572
1573 fInvmassULS5 = new TH1F("fInvmassULS5", "Inv mass of ULS (e,e) for pt^{e}>4; mass(GeV/c^2); counts;", 1000,0,1.0);
1574 fOutputList->Add(fInvmassULS5);
1575 */
1576 fNoMixedEvents = new TH1F("fNoMixedEvents","",1,0,1) ;
1577 fOutputList->Add(fNoMixedEvents);
1578
1579 fMixStat = new TH2F("fMixStat","no of events in pool vs Centrality;Nevent in pool;Centrality",200,0,200,5,0,10);
1580 fOutputList->Add(fMixStat);
1581
1582 fMixStat1 = new TH2F("fMixStat1","no of events in pool vs zvtx;Nevents in pool;zvtx",200,0,200,4,-10,10);
1583 fOutputList->Add(fMixStat1);
1584
1585 fMixedIncElecDphi = new TH2F("fMixedIncElecDphi", "Mixed event - Inclusive elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1586 fOutputList->Add(fMixedIncElecDphi);
1587
1588 fMixedIncElecDphi1 = new TH2F("fMixedIncElecDphi1", "Mixed event - Inclusive elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1589 fOutputList->Add(fMixedIncElecDphi1);
1590
1591 fMixedIncElecDphi2 = new TH2F("fMixedIncElecDphi2", "Mixed event - Inclusive elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1592 fOutputList->Add(fMixedIncElecDphi2);
1593
1594 fMixedIncElecDphi3 = new TH2F("fMixedIncElecDphi3", "Mixed event - Inclusive elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1595 fOutputList->Add(fMixedIncElecDphi3);
1596
1597 fMixedIncElecDphi4 = new TH2F("fMixedIncElecDphi4", "Mixed event - Inclusive elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1598 fOutputList->Add(fMixedIncElecDphi4);
1599
1600 fMixedSemiIncElecDphi = new TH2F("fMixedSemiIncElecDphi", "Mixed event - Semi Inclusive elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1601 fOutputList->Add(fMixedSemiIncElecDphi);
1602
1603 fMixedSemiIncElecDphi1 = new TH2F("fMixedSemiIncElecDphi1", "Mixed event - Semi Inclusive elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1604 fOutputList->Add(fMixedSemiIncElecDphi1);
1605
1606 fMixedSemiIncElecDphi2 = new TH2F("fMixedSemiIncElecDphi2", "Mixed event - Semi Inclusive elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1607 fOutputList->Add(fMixedSemiIncElecDphi2);
1608
1609 fMixedSemiIncElecDphi3 = new TH2F("fMixedSemiIncElecDphi3", "Mixed event - Semi Inclusive elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1610 fOutputList->Add(fMixedSemiIncElecDphi3);
1611
1612 fMixedSemiIncElecDphi4 = new TH2F("fMixedSemiIncElecDphi4", "Mixed event - Semi Inclusive elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1613 fOutputList->Add(fMixedSemiIncElecDphi4);
1614
1615 fMixedPhotElecDphi = new TH2F("fMixedPhotElecDphi", "Mixed event - Photo elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1616 fOutputList->Add(fMixedPhotElecDphi);
1617
1618 fMixedPhotElecDphi1 = new TH2F("fMixedPhotElecDphi1", "Mixed event - Photo elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1619 fOutputList->Add(fMixedPhotElecDphi1);
1620
1621 fMixedPhotElecDphi2 = new TH2F("fMixedPhotElecDphi2", "Mixed event - Photo elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1622 fOutputList->Add(fMixedPhotElecDphi2);
1623
1624 fMixedPhotElecDphi3 = new TH2F("fMixedPhotElecDphi3", "Mixed event - Photo elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1625 fOutputList->Add(fMixedPhotElecDphi3);
1626
1627 fMixedPhotElecDphi4 = new TH2F("fMixedPhotElecDphi4", "Mixed event - Photo elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1628 fOutputList->Add(fMixedPhotElecDphi4);
1629
1630 fMixedDphiULSMassLow = new TH2F("fMixedDphiULSMassLow", "Mixed event - ULS mass < cut elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1631 fOutputList->Add(fMixedDphiULSMassLow);
1632
1633 fMixedDphiULSMassLow1 = new TH2F("fMixedDphiULSMassLow1", "Mixed event - ULS mass < cut elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1634 fOutputList->Add(fMixedDphiULSMassLow1);
1635
1636 fMixedDphiULSMassLow2 = new TH2F("fMixedDphiULSMassLow2", "Mixed event - ULS mass < cut elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1637 fOutputList->Add(fMixedDphiULSMassLow2);
1638
1639 fMixedDphiULSMassLow3 = new TH2F("fMixedDphiULSMassLow3", "Mixed event - ULS mass < cut elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1640 fOutputList->Add(fMixedDphiULSMassLow3);
1641
1642 fMixedDphiULSMassLow4 = new TH2F("fMixedDphiULSMassLow4", "Mixed event - ULS mass < cut elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1643 fOutputList->Add(fMixedDphiULSMassLow4);
1644
1645 fMixedDphiLSMassLow = new TH2F("fMixedDphiLSMassLow", "Mixed event - LS mass < cut elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1646 fOutputList->Add(fMixedDphiLSMassLow);
1647
1648 fMixedDphiLSMassLow1 = new TH2F("fMixedDphiLSMassLow1", "Mixed event - LS mass < cut elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1649 fOutputList->Add(fMixedDphiLSMassLow1);
1650
1651 fMixedDphiLSMassLow2 = new TH2F("fMixedDphiLSMassLow2", "Mixed event - LS mass < cut elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1652 fOutputList->Add(fMixedDphiLSMassLow2);
1653
1654 fMixedDphiLSMassLow3 = new TH2F("fMixedDphiLSMassLow3", "Mixed event - LS mass < cut elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1655 fOutputList->Add(fMixedDphiLSMassLow3);
1656
1657 fMixedDphiLSMassLow4 = new TH2F("fMixedDphiLSMassLow4", "Mixed event - LS mass < cut elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1658 fOutputList->Add(fMixedDphiLSMassLow4);
1659
1660 fDCAMetMixedPhotElecDphi = new TH2F("fDCAMetMixedPhotElecDphi", "Mixed event - Photo elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1661 fOutputList->Add(fDCAMetMixedPhotElecDphi);
1662
1663 fDCAMetMixedPhotElecDphi1 = new TH2F("fDCAMetMixedPhotElecDphi1", "Mixed event - Photo elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1664 fOutputList->Add(fDCAMetMixedPhotElecDphi1);
1665
1666 fDCAMetMixedPhotElecDphi2 = new TH2F("fDCAMetMixedPhotElecDphi2", "Mixed event - Photo elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1667 fOutputList->Add(fDCAMetMixedPhotElecDphi2);
1668
1669 fDCAMetMixedPhotElecDphi3 = new TH2F("fDCAMetMixedPhotElecDphi3", "Mixed event - Photo elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1670 fOutputList->Add(fDCAMetMixedPhotElecDphi3);
1671
1672 fDCAMetMixedPhotElecDphi4 = new TH2F("fDCAMetMixedPhotElecDphi4", "Mixed event - Photo elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1673 fOutputList->Add(fDCAMetMixedPhotElecDphi4);
1674
1675 fDCAMetMixedDphiULSMassLow = new TH2F("fDCAMetMixedDphiULSMassLow", "Mixed event - ULS mass < cut elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1676 fOutputList->Add(fDCAMetMixedDphiULSMassLow);
1677
1678 fDCAMetMixedDphiULSMassLow1 = new TH2F("fDCAMetMixedDphiULSMassLow1", "Mixed event - ULS mass < cut elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1679 fOutputList->Add(fDCAMetMixedDphiULSMassLow1);
1680
1681 fDCAMetMixedDphiULSMassLow2 = new TH2F("fDCAMetMixedDphiULSMassLow2", "Mixed event - ULS mass < cut elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1682 fOutputList->Add(fDCAMetMixedDphiULSMassLow2);
1683
1684 fDCAMetMixedDphiULSMassLow3 = new TH2F("fDCAMetMixedDphiULSMassLow3", "Mixed event - ULS mass < cut elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1685 fOutputList->Add(fDCAMetMixedDphiULSMassLow3);
1686
1687 fDCAMetMixedDphiULSMassLow4 = new TH2F("fDCAMetMixedDphiULSMassLow4", "Mixed event - ULS mass < cut elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1688 fOutputList->Add(fDCAMetMixedDphiULSMassLow4);
1689
1690 fDCAMetMixedDphiLSMassLow = new TH2F("fDCAMetMixedDphiLSMassLow", "Mixed event - LS mass < cut elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1691 fOutputList->Add(fDCAMetMixedDphiLSMassLow);
1692
1693 fDCAMetMixedDphiLSMassLow1 = new TH2F("fDCAMetMixedDphiLSMassLow1", "Mixed event - LS mass < cut elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1694 fOutputList->Add(fDCAMetMixedDphiLSMassLow1);
1695
1696 fDCAMetMixedDphiLSMassLow2 = new TH2F("fDCAMetMixedDphiLSMassLow2", "Mixed event - LS mass < cut elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1697 fOutputList->Add(fDCAMetMixedDphiLSMassLow2);
1698
1699 fDCAMetMixedDphiLSMassLow3 = new TH2F("fDCAMetMixedDphiLSMassLow3", "Mixed event - LS mass < cut elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1700 fOutputList->Add(fDCAMetMixedDphiLSMassLow3);
1701
1702 fDCAMetMixedDphiLSMassLow4 = new TH2F("fDCAMetMixedDphiLSMassLow4", "Mixed event - LS mass < cut elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1703 fOutputList->Add(fDCAMetMixedDphiLSMassLow4);
1704
1705 fHadronPt = new TH1F("fHadronPt","hadron pt distribution",1000,0,100);
1706 fOutputList->Add(fHadronPt);
1707
1708 fCentralityPass = new TH1F("fCentralityPass", "Centrality Pass", 101, -1, 100);
1709 fOutputList->Add(fCentralityPass);
1710
1711 fCentralityNoPass = new TH1F("fCentralityNoPass", "Centrality No Pass", 101, -1, 100);
1712 fOutputList->Add(fCentralityNoPass);
1713
1714 fHadronDphi = new TH2F("fHadronDphi", "Hadron-had Dphi correlation",200,0,20,64,-1.57,4.71);
1715 fOutputList->Add(fHadronDphi);
1716
1717 fHadronDphi1 = new TH2F("fHadronDphi1", "Hadron-had Dphi correlation for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1718 fOutputList->Add(fHadronDphi1);
1719
1720 fHadronDphi2 = new TH2F("fHadronDphi2", "Hadron-had Dphi correlation for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1721 fOutputList->Add(fHadronDphi2);
1722
1723 fHadronDphi3 = new TH2F("fHadronDphi3", "Hadron-had Dphi correlation for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1724 fOutputList->Add(fHadronDphi3);
1725
1726 fHadronDphi4 = new TH2F("fHadronDphi4", "Hadron-had Dphi correlation for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1727 fOutputList->Add(fHadronDphi4);
1728
1729 fPiPt = new TH1F("fPiPt","Pi (-10 <TPC nsig < -3.5) pt distribution",1000,0,100);
1730 fOutputList->Add(fPiPt);
1731
1732 fHadronDphiNoSS = new TH2F("fHadronDphiNoSS", "Hadron-had Dphi correlation (NoSS cuts)",200,0,20,100,-1.57,4.71);
1733 fOutputList->Add(fHadronDphiNoSS);
1734
1735 fHadronDphiNoSS1 = new TH2F("fHadronDphiNoSS1", "Hadron-had Dphi correlation (NoSS cuts) for 2<pt^{asso}<4",200,0,20,100,-1.57,4.71);
1736 fOutputList->Add(fHadronDphiNoSS1);
1737
1738 fHadronDphiNoSS2 = new TH2F("fHadronDphiNoSS2", "Hadron-had Dphi correlation (NoSS cuts) for 4<pt^{asso}<6",200,0,20,100,-1.57,4.71);
1739 fOutputList->Add(fHadronDphiNoSS2);
1740
1741 fHadronDphiNoSS3 = new TH2F("fHadronDphiNoSS3", "Hadron-had Dphi correlation (NoSS cuts) for 6<pt^{asso}<8",200,0,20,100,-1.57,4.71);
1742 fOutputList->Add(fHadronDphiNoSS3);
1743
1744 fHadronDphiNoSS4 = new TH2F("fHadronDphiNoSS4", "Hadron-had Dphi correlation (NoSS cuts) for 4<pt^{asso}<10",200,0,20,100,-1.57,4.71);
1745 fOutputList->Add(fHadronDphiNoSS4);
1746
1747 fPiPtNoSS = new TH1F("fPiPtNoSS","Pi (-10 <TPC nsig < -3.5) (NoSS cuts) pt distribution",1000,0,100);
1748 fOutputList->Add(fPiPtNoSS);
1749
1750 fEovPWoSS = new TH2F("fEovPWoSS","E/p distribution without SS cuts",1000,0,50,100,0,2);
1751 fOutputList->Add(fEovPWoSS);
1752
1753 fEovPWSS = new TH2F("fEovPWSS","E/p distribution with SS cuts",1000,0,50,100,0,2);
1754 fOutputList->Add(fEovPWSS);
1755
1756 fEovPHadWoSS = new TH2F("fEovPHadWoSS","E/p distribution for hadrons without SS cuts",1000,0,50,100,0,2);
1757 fOutputList->Add(fEovPHadWoSS);
1758
1759 fEovPHadWSS = new TH2F("fEovPHadWSS","E/p distribution for hadrons with SS cuts",1000,0,50,100,0,2);
1760 fOutputList->Add(fEovPHadWSS);
1761
1762 fHadronDphiEta1 = new TH2F("fHadronDphiEta1", "Hadron-had Dphi correlation for |Eta <1|",200,0,20,100,-1.57,4.71);
1763 fOutputList->Add(fHadronDphiEta1);
1764 fHadronDphiEta11 = new TH2F("fHadronDphiEta11", "Hadron-had Dphi correlation for 2<pt^{asso}<4 for |Eta <1|",200,0,20,100,-1.57,4.71);
1765 fOutputList->Add(fHadronDphiEta11);
1766 fHadronDphiEta12 = new TH2F("fHadronDphiEta12", "Hadron-had Dphi correlation for 4<pt^{asso}<6 for |Eta <1|",200,0,20,100,-1.57,4.71);
1767 fOutputList->Add(fHadronDphiEta12);
1768 fHadronDphiEta13 = new TH2F("fHadronDphiEta13", "Hadron-had Dphi correlation for 6<pt^{asso}<8 for |Eta <1|",200,0,20,100,-1.57,4.71);
1769 fOutputList->Add(fHadronDphiEta13);
1770 fHadronDphiEta14 = new TH2F("fHadronDphiEta14", "Hadron-had Dphi correlation for 8<pt^{asso}<10 for |Eta <1|",200,0,20,100,-1.57,4.71);
1771 fOutputList->Add(fHadronDphiEta14);
1772
1773 fHadronDphiNoSSEta1 = new TH2F("fHadronDphiNoSSEta1", "Hadron-had DphiNoSS correlation for |Eta <1|",200,0,20,100,-1.57,4.71);
1774 fOutputList->Add(fHadronDphiNoSSEta1);
1775 fHadronDphiNoSSEta11 = new TH2F("fHadronDphiNoSSEta11", "Hadron-had DphiNoSS correlation for 2<pt^{asso}<4 for |Eta <1|",200,0,20,100,-1.57,4.71);
1776 fOutputList->Add(fHadronDphiNoSSEta11);
1777 fHadronDphiNoSSEta12 = new TH2F("fHadronDphiNoSSEta12", "Hadron-had DphiNoSS correlation for 4<pt^{asso}<6 for |Eta <1|",200,0,20,100,-1.57,4.71);
1778 fOutputList->Add(fHadronDphiNoSSEta12);
1779 fHadronDphiNoSSEta13 = new TH2F("fHadronDphiNoSSEta13", "Hadron-had DphiNoSS correlation for 6<pt^{asso}<8 for |Eta <1|",200,0,20,100,-1.57,4.71);
1780 fOutputList->Add(fHadronDphiNoSSEta13);
1781 fHadronDphiNoSSEta14 = new TH2F("fHadronDphiNoSSEta14", "Hadron-had DphiNoSS correlation for 4<pt^{asso}<10 for |Eta <1|",200,0,20,100,-1.57,4.71);
1782 fOutputList->Add(fHadronDphiNoSSEta14);
1783
1784 fHadronDphiEta2 = new TH2F("fHadronDphiEta2", "Hadron-had Dphi correlation for |Eta >1|",200,0,20,100,-1.57,4.71);
1785 fOutputList->Add(fHadronDphiEta2);
1786 fHadronDphiEta21 = new TH2F("fHadronDphiEta21", "Hadron-had Dphi correlation for 2<pt^{asso}<4 for |Eta >1|",200,0,20,100,-1.57,4.71);
1787 fOutputList->Add(fHadronDphiEta21);
1788 fHadronDphiEta22 = new TH2F("fHadronDphiEta22", "Hadron-had Dphi correlation for 4<pt^{asso}<6 for |Eta >1|",200,0,20,100,-1.57,4.71);
1789 fOutputList->Add(fHadronDphiEta22);
1790 fHadronDphiEta23 = new TH2F("fHadronDphiEta23", "Hadron-had Dphi correlation for 6<pt^{asso}<8 for |Eta >1|",200,0,20,100,-1.57,4.71);
1791 fOutputList->Add(fHadronDphiEta23);
1792 fHadronDphiEta24 = new TH2F("fHadronDphiEta24", "Hadron-had Dphi correlation for 4<pt^{asso}<10 for |Eta >1|",200,0,20,100,-1.57,4.71);
1793 fOutputList->Add(fHadronDphiEta24);
1794
1795 fHadronDphiNoSSEta2 = new TH2F("fHadronDphiNoSSEta2", "Hadron-had DphiNoSS correlation for |Eta >1|",200,0,20,100,-1.57,4.71);
1796 fOutputList->Add(fHadronDphiNoSSEta2);
1797 fHadronDphiNoSSEta21 = new TH2F("fHadronDphiNoSSEta21", "Hadron-had DphiNoSS correlation for 2<pt^{asso}<4 for |Eta >1|",200,0,20,100,-1.57,4.71);
1798 fOutputList->Add(fHadronDphiNoSSEta21);
1799 fHadronDphiNoSSEta22 = new TH2F("fHadronDphiNoSSEta22", "Hadron-had DphiNoSS correlation for 4<pt^{asso}<6 for |Eta >1|",200,0,20,100,-1.57,4.71);
1800 fOutputList->Add(fHadronDphiNoSSEta22);
1801 fHadronDphiNoSSEta23 = new TH2F("fHadronDphiNoSSEta23", "Hadron-had DphiNoSS correlation for 6<pt^{asso}<8 for |Eta >1|",200,0,20,100,-1.57,4.71);
1802 fOutputList->Add(fHadronDphiNoSSEta23);
1803 fHadronDphiNoSSEta24 = new TH2F("fHadronDphiNoSSEta24", "Hadron-had DphiNoSS correlation for 4<pt^{asso}<10 for |Eta >1|",200,0,20,100,-1.57,4.71);
1804 fOutputList->Add(fHadronDphiNoSSEta24);
1805
1806
1807 // Int_t binsv1[6]={500,200,50,50,50,50}; //pt, TPCnsig, E/p, M20, M02, dispersion
1808 // Double_t xminv1[6]={0,-10,0,0,0,0};
1809 // Double_t xmaxv1[6]={25,10,2,2,2,2};
1810 // fSparseElectron = new THnSparseD ("Electron","Electron",6,binsv1,xminv1,xmaxv1);
1811 // fOutputList->Add(fSparseElectron);
1812
1813 PostData(1,fOutputList);
1814}
1815
1816//________________________________________________________________________
1817void AliAnalysisTaskElecHadronCorrel::Terminate(Option_t *)
1818{
1819 // Info("Terminate");
1820 AliAnalysisTaskSE::Terminate();
1821}
1822
1823//________________________________________________________________________
1824Bool_t AliAnalysisTaskElecHadronCorrel::ProcessCutStep(Int_t cutStep, AliVParticle *track)
1825{
1826 // Check single track cuts for a given cut step
1827 const Int_t kMCOffset = AliHFEcuts::kNcutStepsMCTrack;
1828 if(!fCFM->CheckParticleCuts(cutStep + kMCOffset, track)) return kFALSE;
1829 return kTRUE;
1830}
1831
1832//_________________________________________
1833void AliAnalysisTaskElecHadronCorrel::SelectPhotonicElectronDCAMet(Int_t itrack, AliVTrack *track, AliPIDResponse *pidResponse)
1834{
1835 //Identify non-heavy flavour electrons using Invariant mass method using DCA method
1836 fNonHFE = new AliSelectNonHFE();
1837 fNonHFE->SetAODanalysis(kTRUE);
1838 fNonHFE->SetInvariantMassCut(fInvmassCut);
1839 fNonHFE->SetAlgorithm("DCA"); //KF
1840 fNonHFE->SetPIDresponse(pidResponse);
1841 fNonHFE->SetTrackCuts(-3,3);
1842
1843 fNonHFE->SetHistMassBack(fDCAMetInvmassLS1);
1844 fNonHFE->SetHistMass(fDCAMetInvmassULS1);
1845
1846 fNonHFE->FindNonHFE(itrack,track,fVevent);
1847
1848 Int_t *fULSPartner = fNonHFE->GetPartnersULS();
1849 Int_t *fLSPartner = fNonHFE->GetPartnersLS();
1850 Int_t fNULS = fNonHFE->GetNULS();
1851 Int_t fNLS = fNonHFE->GetNLS();
1852
1853 if(fNonHFE->IsULS()){
1854 for(Int_t k =0; k< fNonHFE->GetNULS(); k++){
1855 fDCAMetULSElecPt->Fill(track->Pt());
1856
1857 ElectronHadCorrel(itrack,track,fDCAMetDphiULSMassLow, fDCAMetDphiULSMassLow1,fDCAMetDphiULSMassLow2,fDCAMetDphiULSMassLow3,fDCAMetDphiULSMassLow4);
1858
1859 ElectronHadCorrelNoPartnerDCAMet(itrack,track, fULSPartner, fNULS,fDCAMetDphiULSMassLowNoPartner, fDCAMetDphiULSMassLowNoPartner1,fDCAMetDphiULSMassLowNoPartner2,fDCAMetDphiULSMassLowNoPartner3,fDCAMetDphiULSMassLowNoPartner4);
1860
1861 MixedEvent(track,fDCAMetMixedDphiULSMassLow,fDCAMetMixedDphiULSMassLow1,fDCAMetMixedDphiULSMassLow2, fDCAMetMixedDphiULSMassLow3, fDCAMetMixedDphiULSMassLow4);
1862 }
1863 }
1864
1865 if(fNonHFE->IsLS()){
1866 for(Int_t k=0; k < fNonHFE->GetNLS(); k++){
1867 fDCAMetLSElecPt->Fill(track->Pt());
1868
1869 ElectronHadCorrel(itrack,track,fDCAMetDphiLSMassLow,fDCAMetDphiLSMassLow1,fDCAMetDphiLSMassLow2,fDCAMetDphiLSMassLow3,fDCAMetDphiLSMassLow4);
1870
1871 ElectronHadCorrelNoPartnerDCAMet(itrack,track,fLSPartner, fNLS,fDCAMetDphiLSMassLowNoPartner, fDCAMetDphiLSMassLowNoPartner1,fDCAMetDphiLSMassLowNoPartner2,fDCAMetDphiLSMassLowNoPartner3,fDCAMetDphiLSMassLowNoPartner4);
1872
1873 MixedEvent(track,fDCAMetMixedDphiLSMassLow,fDCAMetMixedDphiLSMassLow1,fDCAMetMixedDphiLSMassLow2, fDCAMetMixedDphiLSMassLow3, fDCAMetMixedDphiLSMassLow4);
1874 }
1875 }
1876}
1877//_________________________________________
1878void AliAnalysisTaskElecHadronCorrel::SelectPhotonicElectron(Int_t itrack, AliVTrack *track, Bool_t &fFlagPhotonicElec)
1879{
1880 //Identify non-heavy flavour electrons using Invariant mass method
1881
1882 fTrackCuts1->SetAcceptKinkDaughters(kFALSE);
1883 fTrackCuts1->SetRequireTPCRefit(kTRUE);
1884 fTrackCuts1->SetRequireITSRefit(fAssoEleITSref);
1885 fTrackCuts1->SetEtaRange(-0.9,0.9);
1886 fTrackCuts1->SetRequireSigmaToVertex(kTRUE);
1887 fTrackCuts1->SetMaxChi2PerClusterTPC(4);
1888 fTrackCuts1->SetMinNClustersTPC(fAssoElecTPCNCls);
1889 fTrackCuts1->SetMaxDCAToVertexZ(3.2);
1890 fTrackCuts1->SetMaxDCAToVertexXY(2.4);
1891 fTrackCuts1->SetDCAToVertex2D(kTRUE);
1892
1893 Bool_t flagPhotonicElec = kFALSE;
1894
1895 for(Int_t jTracks = 0; jTracks<fVevent->GetNumberOfTracks(); jTracks++){
1896 AliVParticle* VtrackAsso = fVevent->GetTrack(jTracks);
1897 if (!VtrackAsso) {
1898 printf("ERROR: Could not receive track %d\n", jTracks);
1899 continue;
1900 }
1901
1902 AliVTrack *trackAsso = dynamic_cast<AliVTrack*>(VtrackAsso);
1903 if(!trackAsso) continue;
1904
1905 //track cuts applied
1906 if(IsAODanalysis()) {
1907 AliAODTrack *atrackAsso = dynamic_cast<AliAODTrack*>(VtrackAsso);
1908 if(!atrackAsso) continue;
1909 if(!atrackAsso->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1910 if(atrackAsso->GetTPCNcls() < fAssoElecTPCNCls) continue;
1911 if(!(atrackAsso->GetStatus()&AliESDtrack::kTPCrefit)) continue;
1912
1913 if(fAssoEleITSref){
1914 if(!(atrackAsso->GetStatus()&AliESDtrack::kITSrefit)) continue;
1915 }
1916 }
1917 else{
1918 AliESDtrack *etrackAsso = dynamic_cast<AliESDtrack*>(VtrackAsso);
1919 if(!etrackAsso) continue;
1920 if(!fTrackCuts1->AcceptTrack(etrackAsso)) continue;
1921 }
1922
1923 if(jTracks==itrack) continue;
1924
1925 Double_t dEdxAsso = -999., ptAsso=-999., nsigma=-999.0;
1926 Double_t mass=-999., width = -999;
1927 Bool_t fFlagLS=kFALSE, fFlagULS=kFALSE;
1928
1929 dEdxAsso = trackAsso->GetTPCsignal();
1930 nsigma = fPID->GetPIDResponse() ? fPID->GetPIDResponse()->NumberOfSigmasTPC(trackAsso, AliPID::kElectron) : 1000;
1931 ptAsso = trackAsso->Pt();
1932 Int_t chargeAsso = trackAsso->Charge();
1933 Int_t charge = track->Charge();
1934
1935 if(ptAsso <0.3) continue;
1936 if(trackAsso->Eta()<-0.9 || trackAsso->Eta()>0.9) continue;
1937 if(nsigma < -3 || nsigma > 3) continue;
1938
1939 Int_t fPDGe1 = 11; Int_t fPDGe2 = 11;
1940 if(charge>0) fPDGe1 = -11;
1941 if(chargeAsso>0) fPDGe2 = -11;
1942
1943 if(charge == chargeAsso) fFlagLS = kTRUE;
1944 if(charge != chargeAsso) fFlagULS = kTRUE;
1945
1946 AliKFParticle::SetField(fVevent->GetMagneticField());
1947
1948 AliKFParticle ge1 = AliKFParticle(*track, fPDGe1);
1949 AliKFParticle ge2 = AliKFParticle(*trackAsso, fPDGe2);
1950 AliKFParticle recg(ge1, ge2);
1951
1952 if(recg.GetNDF()<1) continue;
1953 Double_t chi2recg = recg.GetChi2()/recg.GetNDF();
1954 if(TMath::Sqrt(TMath::Abs(chi2recg))>3.) continue;
1955
1956 Int_t MassCorrect;
1957 MassCorrect = recg.GetMass(mass,width);
1958
1959 if(fFlagLS) {
1960 if(track->Pt()>2)fInvmassLS1->Fill(mass);
1961 // if(track->Pt()> 1) fInvmassLS2->Fill(mass);
1962 // if(track->Pt()>2) fInvmassLS3->Fill(mass);
1963 // if(track->Pt()>3) fInvmassLS4->Fill(mass);
1964 // if(track->Pt()>4) fInvmassLS5->Fill(mass);
1965 }
1966 if(fFlagULS) {
1967 if(track->Pt()>2)fInvmassULS1->Fill(mass);
1968 //if(track->Pt() >1) fInvmassULS2->Fill(mass);
1969 //if(track->Pt() >2) fInvmassULS3->Fill(mass);
1970 //if(track->Pt() >3) fInvmassULS4->Fill(mass);
1971 //if(track->Pt() >4) fInvmassULS5->Fill(mass);
1972 }
1973
1974 if(mass<fInvmassCut){
1975 if(fFlagULS)
1976 {
1977 ElectronHadCorrel(itrack,track,fDphiULSMassLow, fDphiULSMassLow1,fDphiULSMassLow2,fDphiULSMassLow3,fDphiULSMassLow4);
1978 ElectronHadCorrelEtaBins(itrack,track,fDphiULSMassLowEta1, fDphiULSMassLowEta11,fDphiULSMassLowEta12,fDphiULSMassLowEta13,fDphiULSMassLowEta14,fDphiULSMassLowEta2, fDphiULSMassLowEta21,fDphiULSMassLowEta22,fDphiULSMassLowEta23,fDphiULSMassLowEta24);
1979 fULSElecPt->Fill(track->Pt());
1980 MixedEvent(track,fMixedDphiULSMassLow,fMixedDphiULSMassLow1,fMixedDphiULSMassLow2, fMixedDphiULSMassLow3, fMixedDphiULSMassLow4);
1981 }
1982 if(fFlagLS)
1983 {
1984 ElectronHadCorrel(itrack,track,fDphiLSMassLow,fDphiLSMassLow1,fDphiLSMassLow2,fDphiLSMassLow3,fDphiLSMassLow4);
1985 ElectronHadCorrelEtaBins(itrack,track,fDphiLSMassLowEta1, fDphiLSMassLowEta11,fDphiLSMassLowEta12,fDphiLSMassLowEta13,fDphiLSMassLowEta14,fDphiLSMassLowEta2, fDphiLSMassLowEta21,fDphiLSMassLowEta22,fDphiLSMassLowEta23,fDphiLSMassLowEta24);
1986 fLSElecPt->Fill(track->Pt());
1987 MixedEvent(track,fMixedDphiLSMassLow,fMixedDphiLSMassLow1,fMixedDphiLSMassLow2, fMixedDphiLSMassLow3, fMixedDphiLSMassLow4);
1988 }
1989 if(fFlagLS){
1990 ElectronHadCorrelNoPartner(itrack,jTracks,track,fDphiLSMassLowNoPartner, fDphiLSMassLowNoPartner1,fDphiLSMassLowNoPartner2,fDphiLSMassLowNoPartner3,fDphiLSMassLowNoPartner4);
1991 ElectronHadCorrelEtaBinsNoPartner(itrack,jTracks,track,fDphiLSMassLowNoPartnerEta1, fDphiLSMassLowNoPartnerEta11,fDphiLSMassLowNoPartnerEta12,fDphiLSMassLowNoPartnerEta13,fDphiLSMassLowNoPartnerEta14,fDphiLSMassLowNoPartnerEta2, fDphiLSMassLowNoPartnerEta21,fDphiLSMassLowNoPartnerEta22,fDphiLSMassLowNoPartnerEta23,fDphiLSMassLowNoPartnerEta24);
1992 }
1993 if(fFlagULS) {
1994 ElectronHadCorrelNoPartner(itrack,jTracks,track,fDphiULSMassLowNoPartner, fDphiULSMassLowNoPartner1,fDphiULSMassLowNoPartner2,fDphiULSMassLowNoPartner3,fDphiULSMassLowNoPartner4);
1995 ElectronHadCorrelEtaBinsNoPartner(itrack,jTracks,track,fDphiULSMassLowNoPartnerEta1, fDphiULSMassLowNoPartnerEta11,fDphiULSMassLowNoPartnerEta12,fDphiULSMassLowNoPartnerEta13,fDphiULSMassLowNoPartnerEta14,fDphiULSMassLowNoPartnerEta2, fDphiULSMassLowNoPartnerEta21,fDphiULSMassLowNoPartnerEta22,fDphiULSMassLowNoPartnerEta23,fDphiULSMassLowNoPartnerEta24);
1996 }
1997 }
1998
1999 if(mass<fInvmassCut && fFlagULS && !flagPhotonicElec){
2000 flagPhotonicElec = kTRUE;
2001 }
2002 // }
2003
2004}
2005fFlagPhotonicElec = flagPhotonicElec;
2006}
2007//_________________________________________
2008void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrel(Int_t itrack, AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2,TH2F *DphiPt3,TH2F *DphiPt4)
2009{
2010 //Construct Delta Phi between electrons and hadrons
2011
2012 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2013 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2014 fTrackCuts2->SetRequireITSRefit(kTRUE);
2015 fTrackCuts2->SetEtaRange(-0.9,0.9);
2016 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2017 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2018 fTrackCuts2->SetMinNClustersTPC(fTPCNClsHad);
2019 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2020 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2021 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2022
2023 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2024 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2025 if (!VtrackHad) {
2026 printf("ERROR: Could not receive track %d\n", ktracks);
2027 continue;
2028 }
2029
2030 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2031 if(!trackHad) continue;
2032
2033 if(IsAODanalysis()) {
2034 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2035 if(!atrackHad) continue;
2036 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2037 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2038 if(atrackHad->GetTPCNcls() < fTPCNClsHad) continue;
2039 }
2040 else{
2041 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2042 if(!etrackHad) continue;
2043 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2044 }
2045
2046 if(ktracks == itrack) continue; //do not select the same electron
2047
2048 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
2049 Double_t ptEle = -999;
2050 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
2051 Double_t pi = 3.14;
2052
2053 dEdxHad = trackHad->GetTPCsignal();
2054 ptHad = trackHad->Pt();
2055 pHad = trackHad->P();
2056 ptEle = track->Pt();
2057
2058 // if(ptHad <2) continue;
2059 if(ptHad > ptEle) continue;
2060 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2061
2062 phiEle = track->Phi();
2063 phiHad = trackHad->Phi();
2064 Dphi = phiEle - phiHad;
2065 if (Dphi > 3*pi/2)
2066 Dphi = Dphi - 2*pi;
2067 if (Dphi < -pi/2)
2068 Dphi = Dphi + 2*pi;
2069
2070 if(ptHad>2) DphiPt->Fill(ptEle,Dphi);
2071 if(ptHad>2 && ptHad<4) DphiPt1->Fill(ptEle,Dphi);
2072 if(ptHad>4 && ptHad<6) DphiPt2->Fill(ptEle,Dphi);
2073 if(ptHad>6 && ptHad<8) DphiPt3->Fill(ptEle,Dphi);
2074 if(ptHad>4 && ptHad<10) DphiPt4->Fill(ptEle,Dphi);
2075
2076 }
2077}
2078//_________________________________________
2079void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrelNoPartner(Int_t itrack,Int_t jtrack, AliVTrack *track, TH2F *DphiPtNew, TH2F *DphiPtNew1,TH2F *DphiPtNew2,TH2F *DphiPtNew3,TH2F *DphiPtNew4)
2080{
2081 //Construct Delta Phi between electrons and hadrons for electrons from invariant mass calculation excluding associated track
2082
2083 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2084 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2085 fTrackCuts2->SetRequireITSRefit(kTRUE);
2086 fTrackCuts2->SetEtaRange(-0.9,0.9);
2087 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2088 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2089 fTrackCuts2->SetMinNClustersTPC(fTPCNClsHad);
2090 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2091 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2092 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2093
2094 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2095 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2096 if (!VtrackHad) {
2097 printf("ERROR: Could not receive track %d\n", ktracks);
2098 continue;
2099 }
2100
2101 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2102 if(!trackHad) continue;
2103
2104 if(IsAODanalysis()) {
2105 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2106 if(!atrackHad) continue;
2107 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2108 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2109 if(atrackHad->GetTPCNcls() < fTPCNClsHad) continue;
2110 }
2111 else{
2112 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2113 if(!etrackHad) continue;
2114 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2115 }
2116
2117 if(ktracks == itrack || ktracks == jtrack) continue; //do not select the same electron and associated track from inv mass cal
2118
2119 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
2120 Double_t ptEle = -999;
2121 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
2122 Double_t pi = 3.14;
2123
2124 dEdxHad = trackHad->GetTPCsignal();
2125 ptHad = trackHad->Pt();
2126 pHad = trackHad->P();
2127 ptEle = track->Pt();
2128
2129 // if(ptHad <2) continue;
2130 if(ptHad > ptEle) continue;
2131 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2132
2133 phiEle = track->Phi();
2134 phiHad = trackHad->Phi();
2135 Dphi = phiEle - phiHad;
2136 if (Dphi > 3*pi/2)
2137 Dphi = Dphi - 2*pi;
2138 if (Dphi < -pi/2)
2139 Dphi = Dphi + 2*pi;
2140
2141 if(ptHad>2) DphiPtNew->Fill(ptEle,Dphi);
2142 if(ptHad>2 && ptHad<4) DphiPtNew1->Fill(ptEle,Dphi);
2143 if(ptHad>4 && ptHad<6) DphiPtNew2->Fill(ptEle,Dphi);
2144 if(ptHad>6 && ptHad<8) DphiPtNew3->Fill(ptEle,Dphi);
2145 if(ptHad>4 && ptHad<10) DphiPtNew4->Fill(ptEle,Dphi);
2146 }
2147}
2148//_________________________________________
2149void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrelNoPartnerDCAMet(Int_t itrack,AliVTrack *track,Int_t * AssoList, Int_t NAsso, TH2F *DphiPtNew, TH2F *DphiPtNew1,TH2F *DphiPtNew2,TH2F *DphiPtNew3,TH2F *DphiPtNew4)
2150{
2151 //Construct Delta Phi between electrons and hadrons for electrons from invariant mass calculation excluding associated track
2152
2153 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2154 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2155 fTrackCuts2->SetRequireITSRefit(kTRUE);
2156 fTrackCuts2->SetEtaRange(-0.9,0.9);
2157 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2158 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2159 fTrackCuts2->SetMinNClustersTPC(fTPCNClsHad);
2160 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2161 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2162 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2163
2164 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2165 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2166 if (!VtrackHad) {
2167 printf("ERROR: Could not receive track %d\n", ktracks);
2168 continue;
2169 }
2170
2171 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2172 if(!trackHad) continue;
2173
2174 if(IsAODanalysis()) {
2175 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2176 if(!atrackHad) continue;
2177 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2178 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2179 if(atrackHad->GetTPCNcls() < fTPCNClsHad) continue;
2180 }
2181 else{
2182 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2183 if(!etrackHad) continue;
2184 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2185 }
2186
2187 if(ktracks == itrack ) continue; //do not select the same electron and associated track from inv mass cal
2188 Bool_t IsPartner = kFALSE;
2189 //Check if this track is a Non-HFE partner
2190 for(Int_t i = 0; i < NAsso; i++)
2191 {
2192 if(AssoList[i]==ktracks) IsPartner=kTRUE;
2193 }
2194 if(IsPartner) continue;
2195
2196 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
2197 Double_t ptEle = -999;
2198 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
2199 Double_t pi = 3.14;
2200
2201 dEdxHad = trackHad->GetTPCsignal();
2202 ptHad = trackHad->Pt();
2203 pHad = trackHad->P();
2204 ptEle = track->Pt();
2205
2206 // if(ptHad <2) continue;
2207 if(ptHad > ptEle) continue;
2208 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2209
2210 phiEle = track->Phi();
2211 phiHad = trackHad->Phi();
2212 Dphi = phiEle - phiHad;
2213 if (Dphi > 3*pi/2)
2214 Dphi = Dphi - 2*pi;
2215 if (Dphi < -pi/2)
2216 Dphi = Dphi + 2*pi;
2217
2218 if(ptHad>2) DphiPtNew->Fill(ptEle,Dphi);
2219 if(ptHad>2 && ptHad<4) DphiPtNew1->Fill(ptEle,Dphi);
2220 if(ptHad>4 && ptHad<6) DphiPtNew2->Fill(ptEle,Dphi);
2221 if(ptHad>6 && ptHad<8) DphiPtNew3->Fill(ptEle,Dphi);
2222 if(ptHad>4 && ptHad<10) DphiPtNew4->Fill(ptEle,Dphi);
2223 }
2224}
2225
2226
2227//_________________________________________
2228void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrelEtaFarSide(Int_t itrack, AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2,TH2F *DphiPt3,TH2F *DphiPt4)
2229{
2230 //Construct Delta Phi between electrons and hadrons for 1<eta(had)<1.6
2231
2232 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2233 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2234 fTrackCuts2->SetRequireITSRefit(kTRUE);
2235 fTrackCuts2->SetEtaRange(-0.9,0.9);
2236 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2237 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2238 fTrackCuts2->SetMinNClustersTPC(fTPCNClsHad);
2239 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2240 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2241 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2242
2243 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2244 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2245 if (!VtrackHad) {
2246 printf("ERROR: Could not receive track %d\n", ktracks);
2247 continue;
2248 }
2249 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2250 if(!trackHad) continue;
2251
2252 if(IsAODanalysis()) {
2253 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2254 if(!atrackHad) continue;
2255 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2256 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2257 if(atrackHad->GetTPCNcls() < fTPCNClsHad) continue;
2258 }
2259 else{
2260 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2261 if(!etrackHad) continue;
2262 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2263 }
2264
2265 if(ktracks == itrack) continue; //do not select the same electron
2266
2267 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
2268 Double_t ptEle = -999;
2269 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
2270 Double_t pi = 3.14;
2271
2272 dEdxHad = trackHad->GetTPCsignal();
2273 ptHad = trackHad->Pt();
2274 pHad = trackHad->P();
2275 ptEle = track->Pt();
2276
2277 // if(ptHad <2) continue;
2278 if(ptHad > ptEle) continue;
2279 if(trackHad->Eta()<1 || trackHad->Eta()>1.6) continue;
2280
2281 phiEle = track->Phi();
2282 phiHad = trackHad->Phi();
2283 Dphi = phiEle - phiHad;
2284 if (Dphi > 3*pi/2)
2285 Dphi = Dphi - 2*pi;
2286 if (Dphi < -pi/2)
2287 Dphi = Dphi + 2*pi;
2288
2289 if(ptHad>2) DphiPt->Fill(ptEle,Dphi);
2290 if(ptHad>2 && ptHad<4) DphiPt1->Fill(ptEle,Dphi);
2291 if(ptHad>4 && ptHad<6) DphiPt2->Fill(ptEle,Dphi);
2292 if(ptHad>6 && ptHad<8) DphiPt3->Fill(ptEle,Dphi);
2293 if(ptHad>4 && ptHad<10) DphiPt4->Fill(ptEle,Dphi);
2294
2295 }
2296}
2297//_________________________________________
2298void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrelEtaBins(Int_t itrack, AliVTrack *track, TH2F *DphiPtEta1, TH2F *DphiPtEta11,TH2F *DphiPtEta12,TH2F *DphiPtEta13,TH2F *DphiPtEta14,TH2F *DphiPtEta2, TH2F *DphiPtEta21,TH2F *DphiPtEta22,TH2F *DphiPtEta23,TH2F *DphiPtEta24)
2299{
2300 //Construct Delta Phi between electrons and hadrons in different Eta bins
2301
2302 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2303 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2304 fTrackCuts2->SetRequireITSRefit(kTRUE);
2305 fTrackCuts2->SetEtaRange(-0.9,0.9);
2306 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2307 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2308 fTrackCuts2->SetMinNClustersTPC(fTPCNClsHad);
2309 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2310 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2311 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2312
2313 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2314 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2315 if (!VtrackHad) {
2316 printf("ERROR: Could not receive track %d\n", ktracks);
2317 continue;
2318 }
2319
2320 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2321 if(!trackHad) continue;
2322
2323 if(IsAODanalysis()) {
2324 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2325 if(!atrackHad) continue;
2326 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2327 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2328 if(atrackHad->GetTPCNcls() < fTPCNClsHad) continue;
2329 }
2330 else{
2331 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2332 if(!etrackHad) continue;
2333 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2334 }
2335
2336 if(ktracks == itrack) continue; //do not select the same electron
2337
2338 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
2339 Double_t ptEle = -999;
2340 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
2341 Double_t etaEle = -999, etaHad=-999, DEta=-999;
2342 Double_t pi = 3.14;
2343
2344 dEdxHad = trackHad->GetTPCsignal();
2345 ptHad = trackHad->Pt();
2346 pHad = trackHad->P();
2347 ptEle = track->Pt();
2348
2349 // if(ptHad <2) continue;
2350 if(ptHad > ptEle) continue;
2351 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2352
2353 phiEle = track->Phi();
2354 phiHad = trackHad->Phi();
2355 Dphi = phiEle - phiHad;
2356
2357 if (Dphi > 3*pi/2)
2358 Dphi = Dphi - 2*pi;
2359 if (Dphi < -pi/2)
2360 Dphi = Dphi + 2*pi;
2361
2362 etaEle = track->Eta();
2363 etaHad = trackHad->Eta();
2364 DEta = etaEle - etaHad;
2365
2366 if(TMath::Abs(DEta)<0.8){
2367 if(ptHad>2) DphiPtEta1->Fill(ptEle,Dphi);
2368 if(ptHad>2 && ptHad<4) DphiPtEta11->Fill(ptEle,Dphi);
2369 if(ptHad>4 && ptHad<6) DphiPtEta12->Fill(ptEle,Dphi);
2370 if(ptHad>6 && ptHad<8) DphiPtEta13->Fill(ptEle,Dphi);
2371 if(ptHad>4 && ptHad<10) DphiPtEta14->Fill(ptEle,Dphi);
2372 }
2373
2374 if(TMath::Abs(DEta)>0.8){
2375 if(ptHad>2) DphiPtEta2->Fill(ptEle,Dphi);
2376 if(ptHad>2 && ptHad<4) DphiPtEta21->Fill(ptEle,Dphi);
2377 if(ptHad>4 && ptHad<6) DphiPtEta22->Fill(ptEle,Dphi);
2378 if(ptHad>6 && ptHad<8) DphiPtEta23->Fill(ptEle,Dphi);
2379 if(ptHad>4 && ptHad<10) DphiPtEta24->Fill(ptEle,Dphi);
2380 }
2381 }
2382}
2383//_________________________________________
2384void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrelEtaBinsNoPartner(Int_t itrack,Int_t jtrack, AliVTrack *track, TH2F *DphiPtEta1, TH2F *DphiPtEta11,TH2F *DphiPtEta12,TH2F *DphiPtEta13,TH2F *DphiPtEta14,TH2F *DphiPtEta2, TH2F *DphiPtEta21,TH2F *DphiPtEta22,TH2F *DphiPtEta23,TH2F *DphiPtEta24)
2385{
2386 //Construct Delta Phi between electrons and hadrons in different Eta bins (exclude associated track)
2387
2388 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2389 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2390 fTrackCuts2->SetRequireITSRefit(kTRUE);
2391 fTrackCuts2->SetEtaRange(-0.9,0.9);
2392 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2393 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2394 fTrackCuts2->SetMinNClustersTPC(fTPCNClsHad);
2395 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2396 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2397 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2398
2399 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2400 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2401 if (!VtrackHad) {
2402 printf("ERROR: Could not receive track %d\n", ktracks);
2403 continue;
2404 }
2405
2406 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2407 if(!trackHad) continue;
2408
2409 if(IsAODanalysis()) {
2410 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2411 if(!atrackHad) continue;
2412 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2413 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2414 if(atrackHad->GetTPCNcls() < fTPCNClsHad) continue;
2415 }
2416 else{
2417 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2418 if(!etrackHad) continue;
2419 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2420 }
2421
2422 if(ktracks == itrack || ktracks == jtrack) continue; //do not select the same electron and associated track from inv mass cal
2423
2424 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
2425 Double_t ptEle = -999;
2426 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
2427 Double_t etaEle = -999, etaHad=-999, DEta=-999;
2428 Double_t pi = 3.14;
2429
2430 dEdxHad = trackHad->GetTPCsignal();
2431 ptHad = trackHad->Pt();
2432 pHad = trackHad->P();
2433 ptEle = track->Pt();
2434
2435 // if(ptHad <2) continue;
2436 if(ptHad > ptEle) continue;
2437 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2438
2439 phiEle = track->Phi();
2440 phiHad = trackHad->Phi();
2441 Dphi = phiEle - phiHad;
2442
2443 if (Dphi > 3*pi/2)
2444 Dphi = Dphi - 2*pi;
2445 if (Dphi < -pi/2)
2446 Dphi = Dphi + 2*pi;
2447
2448 etaEle = track->Eta();
2449 etaHad = trackHad->Eta();
2450 DEta = etaEle - etaHad;
2451
2452 if(TMath::Abs(DEta)<0.8){
2453 if(ptHad>2) DphiPtEta1->Fill(ptEle,Dphi);
2454 if(ptHad>2 && ptHad<4) DphiPtEta11->Fill(ptEle,Dphi);
2455 if(ptHad>4 && ptHad<6) DphiPtEta12->Fill(ptEle,Dphi);
2456 if(ptHad>6 && ptHad<8) DphiPtEta13->Fill(ptEle,Dphi);
2457 if(ptHad>4 && ptHad<10) DphiPtEta14->Fill(ptEle,Dphi);
2458 }
2459
2460 if(TMath::Abs(DEta)>0.8){
2461 if(ptHad>2) DphiPtEta2->Fill(ptEle,Dphi);
2462 if(ptHad>2 && ptHad<4) DphiPtEta21->Fill(ptEle,Dphi);
2463 if(ptHad>4 && ptHad<6) DphiPtEta22->Fill(ptEle,Dphi);
2464 if(ptHad>6 && ptHad<8) DphiPtEta23->Fill(ptEle,Dphi);
2465 if(ptHad>4 && ptHad<10) DphiPtEta24->Fill(ptEle,Dphi);
2466 }
2467 }
2468}
2469
2470//_________________________________________
2471void AliAnalysisTaskElecHadronCorrel::MixedEvent(AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2, TH2F *DphiPt3, TH2F *DphiPt4)
2472{
2473
2474 const AliAODVertex *pVtx = fAOD->GetPrimaryVertex();
2475 Double_t zVtx;
2476 zVtx = pVtx->GetZ();
2477
2478 AliCentrality *fCentrality1 = (AliCentrality*)fVevent->GetCentrality();
2479 Double_t centvalue = fCentrality1->GetCentralityPercentile(fkCentralityMethod);
2480
2481 AliEventPool* pool;
2482 pool = fPoolMgr->GetEventPool(centvalue, zVtx); // Get the buffer associated with the current centrality and z-vtx
2483 if (!pool)
2484 {
2485 AliFatal(Form("No pool found for centrality = %f, zVtx = %f", centvalue, zVtx));
2486 return;
2487 }
2488 // pool->PrintInfo();
2489 if (pool->GetCurrentNEvents() >= 5) // start mixing when 5 events are in the buffer
2490 {
2491 Int_t nMix = pool->GetCurrentNEvents();
2492 fNoMixedEvents->Fill(0);
2493 fMixStat->Fill(pool->GetCurrentNEvents(),centvalue);
2494 fMixStat1->Fill(pool->GetCurrentNEvents(),zVtx);
2495
2496 // cout << "nMix = " << nMix << " tracks in pool = " << pool->NTracksInPool() << endl;
2497 for (Int_t jMix=0; jMix<nMix; jMix++) // mix with each event in the buffer
2498 {
2499 TObjArray* bgTracks = pool->GetEvent(jMix);
2500 for (Int_t i=0;i<bgTracks->GetEntriesFast(); i++)
2501 {
2502 AliVParticle* mixtrk = (AliVParticle*) bgTracks->At(i);
2503
2504 Double_t mixtrkPhi = -999;
2505 Double_t ptEle = -999;
2506 Double_t phiEle = -999, Dphi = -999;
2507 Double_t pi = 3.14;
2508 Double_t ptmixtrk = -999;
2509
2510 ptEle = track->Pt();
2511 ptmixtrk = mixtrk->Pt();
2512 if(ptmixtrk > ptEle) continue;
2513
2514 mixtrkPhi = mixtrk->Phi();
2515 phiEle = track->Phi();
2516 Dphi = phiEle - mixtrkPhi;
2517
2518 if (Dphi > 3*pi/2)
2519 Dphi = Dphi - 2*pi;
2520 if (Dphi < -pi/2)
2521 Dphi = Dphi + 2*pi;
2522 if(ptmixtrk>2) DphiPt->Fill(ptEle,Dphi);
2523 if(ptmixtrk>2 && ptmixtrk<4) DphiPt1->Fill(ptEle,Dphi);
2524 if(ptmixtrk>4 && ptmixtrk<6) DphiPt2->Fill(ptEle,Dphi);
2525 if(ptmixtrk>6 && ptmixtrk<8) DphiPt3->Fill(ptEle,Dphi);
2526 if(ptmixtrk>4 && ptmixtrk<10) DphiPt4->Fill(ptEle,Dphi);
2527 }
2528 }
2529 }
2530}
2531
2532//___________________________________________
2533TObjArray* AliAnalysisTaskElecHadronCorrel::CloneAndReduceTrackList()
2534{
2535 // clones a track list by using AliehDPhiBasicParticle which uses much less memory (used for event mixing)
2536
2537 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2538 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2539 fTrackCuts2->SetRequireITSRefit(kTRUE);
2540 fTrackCuts2->SetEtaRange(-0.9,0.9);
2541 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2542 fTrackCuts2->SetMaxChi2PerClusterTPC(3.5);
2543 fTrackCuts2->SetMinNClustersTPC(fTPCNClsHad);
2544 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2545 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2546 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2547
2548 TObjArray* tracksClone = new TObjArray;
2549 tracksClone->SetOwner(kTRUE);
2550
2551 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2552 AliVParticle* Vtrack = fVevent->GetTrack(ktracks);
2553 if (!Vtrack) {
2554 printf("ERROR: Could not receive track %d\n", ktracks);
2555 continue;
2556 }
2557
2558 AliVTrack *track = dynamic_cast<AliVTrack*>(Vtrack);
2559 if(!track) continue;
2560
2561 if(IsAODanalysis()) {
2562 AliAODTrack *atrack = dynamic_cast<AliAODTrack*>(Vtrack);
2563 if(!atrack) continue;
2564 if(!atrack->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2565 if((!(atrack->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrack->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2566 if(atrack->GetTPCNcls() < fTPCNClsHad) continue;
2567 }
2568 else{
2569 AliESDtrack *etrack = dynamic_cast<AliESDtrack*>(Vtrack);
2570 if(!etrack) continue;
2571 if(!fTrackCuts2->AcceptTrack(etrack)) continue;
2572 }
2573
2574 // if(ktracks == iTrack) continue;
2575 Double_t eta=-999,ptHad= -999, pHad=-999., phi=-999.0;
2576 Int_t label=-9999, id=-999;
2577 eta = track->Eta();
2578 ptHad = track->Pt();
2579 pHad = track->P();
2580 phi= track->Phi();
2581 label= track->GetLabel();
2582 id=track->GetID();
2583
2584 if(track->Eta()<-0.9 || track->Eta()>0.9) continue;
2585 if(ptHad <2) continue;
2586
2587 AliVParticle* particle = (AliVParticle*) fVevent->GetTrack(ktracks);
2588 tracksClone->Add(new AliehDPhiBasicParticle(particle->Eta(), particle->Phi(), particle->Pt(), particle->Charge()));
2589
2590 }
2591 return tracksClone;
2592}
2593
2594//___________________________________________
2595void AliAnalysisTaskElecHadronCorrel::HadronInfo(Int_t itrack)
2596{
2597 //Hadron information
2598
2599 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2600 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2601 fTrackCuts2->SetRequireITSRefit(kTRUE);
2602 fTrackCuts2->SetEtaRange(-0.9,0.9);
2603 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2604 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2605 fTrackCuts2->SetMinNClustersTPC(fTPCNClsHad);
2606 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2607 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2608 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2609
2610 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2611 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2612 if (!VtrackHad) {
2613 printf("ERROR: Could not receive track %d\n", ktracks);
2614 continue;
2615 }
2616
2617 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2618 if(!trackHad) continue;
2619
2620 if(IsAODanalysis()) {
2621 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2622 if(!atrackHad) continue;
2623 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2624 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2625 if(atrackHad->GetTPCNcls() < fTPCNClsHad) continue;
2626 }
2627 else{
2628 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2629 if(!etrackHad) continue;
2630 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2631 }
2632
2633 if(ktracks == itrack) continue; //do not select the same electron
2634
2635 Double_t ptHad= -999;
2636 ptHad = trackHad->Pt();
2637
2638 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2639 // cout << "pt had = " << ptHad <<endl;
2640
2641 if(ptHad<2) continue;
2642
2643 fHadronPhi->Fill(trackHad->Phi());
2644 fHadronPhiPt->Fill(trackHad->Phi(),ptHad);
2645 if (trackHad->Eta() >0 && trackHad->Eta() <0.9) fHadronPhiTPChalf->Fill(trackHad->Phi());
2646
2647 fHadronPt->Fill(ptHad);
2648 }
2649}
2650//_________________________________________
2651void AliAnalysisTaskElecHadronCorrel::CheckCentrality(AliVEvent* event, Bool_t &centralitypass)
2652{
2653 // Check if event is within the set centrality range. Falls back to V0 centrality determination if no method is set
2654 if (!fkCentralityMethod) AliFatal("No centrality method set! FATAL ERROR!");
2655 fCentrality = event->GetCentrality()->GetCentralityPercentile(fkCentralityMethod);
2656 // cout << "Centrality evaluated-------------------------: " << fCentrality <<endl;
2657
2658 if ((fCentrality <= fCentralityMin) || (fCentrality > fCentralityMax))
2659 {
2660 fCentralityNoPass->Fill(fCentrality);
2661 // cout << "--------------Fill no pass-------------------------"<<endl;
2662 centralitypass = kFALSE;
2663 }else
2664 {
2665 fCentralityPass->Fill(fCentrality);
2666 // cout << "--------------Fill pass-------------------------"<<endl;
2667 centralitypass = kTRUE;
2668 }
2669
2670}
2671//_____________________________________________________________________________
2672void AliAnalysisTaskElecHadronCorrel::SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax, const char* CentralityMethod)
2673{
2674 // Set a centrality range ]min, max] and define the method to use for centrality selection
2675 fCentralityMin = CentralityMin;
2676 fCentralityMax = CentralityMax;
2677 fkCentralityMethod = CentralityMethod;
2678}