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