1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
17 ////////////////////////////////////////////////////////////////////////
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 //
24 // Author: Deepa Thomas (Utrecht University) //
26 ////////////////////////////////////////////////////////////////////////
33 #include "THnSparse.h"
34 #include "TLorentzVector.h"
38 #include "AliAnalysisTask.h"
39 #include "AliAnalysisManager.h"
41 #include "AliESDEvent.h"
42 #include "AliESDHandler.h"
43 #include "AliAODEvent.h"
44 #include "AliAODHandler.h"
46 #include "AliAnalysisTaskElecHadronCorrel.h"
47 #include "TGeoGlobalMagField.h"
49 #include "AliAnalysisTaskSE.h"
50 #include "TRefArray.h"
53 #include "AliESDInputHandler.h"
54 #include "AliAODInputHandler.h"
55 #include "AliESDpid.h"
56 #include "AliAODPid.h"
57 #include "AliESDtrackCuts.h"
58 #include "AliPhysicsSelection.h"
59 #include "AliCentralitySelectionTask.h"
60 #include "AliESDCaloCluster.h"
61 #include "AliAODCaloCluster.h"
62 #include "AliESDCaloTrigger.h"
63 #include "AliEMCALRecoUtils.h"
64 #include "AliEMCALGeometry.h"
65 #include "AliGeomManager.h"
67 #include "TGeoManager.h"
71 #include "AliEventPoolManager.h"
73 #include "AliCentrality.h"
76 #include "AliKFParticle.h"
77 #include "AliKFVertex.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"
89 #include "AliVEvent.h"
91 #include "AliMCEvent.h"
93 #include "AliESDVZERO.h"
94 #include "AliAODVZERO.h"
98 ClassImp(AliAnalysisTaskElecHadronCorrel)
99 ClassImp(AliehDPhiBasicParticle)
100 //________________________________________________________________________
101 AliAnalysisTaskElecHadronCorrel::AliAnalysisTaskElecHadronCorrel(const char *name)
102 : AliAnalysisTaskSE(name)
108 ,fTrackCuts1(new AliESDtrackCuts)
109 ,fTrackCuts2(new AliESDtrackCuts)
111 ,fIdentifiedAsOutInz(kFALSE)
112 ,fPassTheEventCut(kFALSE)
113 ,fRejectKinkMother(kFALSE)
122 ,fkCentralityMethod(0)
126 ,fTPCnsigHadMax(-3.5)
135 ,fTriggerCentral(kTRUE)
140 // ,fTrkEovPBefHad(0)
143 ,fSemiIncElecDphi1(0)
144 ,fSemiIncElecDphi2(0)
145 ,fSemiIncElecDphi3(0)
146 ,fSemiIncElecDphi4(0)
152 ,fInclusiveElecDphi(0)
153 ,fInclusiveElecDphi1(0)
154 ,fInclusiveElecDphi2(0)
155 ,fInclusiveElecDphi3(0)
156 ,fInclusiveElecDphi4(0)
157 ,fInclusiveElecDphiEtaFS(0)
158 ,fInclusiveElecDphiEtaFS1(0)
159 ,fInclusiveElecDphiEtaFS2(0)
160 ,fInclusiveElecDphiEtaFS3(0)
161 ,fInclusiveElecDphiEtaFS4(0)
172 ,fDphiULSMassLowNoPartner(0)
173 ,fDphiULSMassLowNoPartner1(0)
174 ,fDphiULSMassLowNoPartner2(0)
175 ,fDphiULSMassLowNoPartner3(0)
176 ,fDphiULSMassLowNoPartner4(0)
177 ,fDphiLSMassLowNoPartner(0)
178 ,fDphiLSMassLowNoPartner1(0)
179 ,fDphiLSMassLowNoPartner2(0)
180 ,fDphiLSMassLowNoPartner3(0)
181 ,fDphiLSMassLowNoPartner4(0)
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)
278 // ,fElecPhiTPCEovP(0)
280 ,fHadronPhiTPChalf(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)
319 ,fCentralityNoPass(0)
341 ,fHadronDphiNoSSEta1(0)
342 ,fHadronDphiNoSSEta11(0)
343 ,fHadronDphiNoSSEta12(0)
344 ,fHadronDphiNoSSEta13(0)
345 ,fHadronDphiNoSSEta14(0)
351 ,fHadronDphiNoSSEta2(0)
352 ,fHadronDphiNoSSEta21(0)
353 ,fHadronDphiNoSSEta22(0)
354 ,fHadronDphiNoSSEta23(0)
355 ,fHadronDphiNoSSEta24(0)
356 //,fSparseElectron(0)
357 // ,fvalueElectron(0)
361 fPID = new AliHFEpid("hfePid");
362 //fvalueElectron = new Double_t[6];
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());
374 //________________________________________________________________________
375 AliAnalysisTaskElecHadronCorrel::AliAnalysisTaskElecHadronCorrel()
376 : AliAnalysisTaskSE("DefaultAnalysis_AliAnalysisElecHadCorrel")
382 ,fTrackCuts1(new AliESDtrackCuts)
383 ,fTrackCuts2(new AliESDtrackCuts)
385 ,fIdentifiedAsOutInz(kFALSE)
386 ,fPassTheEventCut(kFALSE)
387 ,fRejectKinkMother(kFALSE)
396 ,fkCentralityMethod(0)
400 ,fTPCnsigHadMax(-3.5)
409 ,fTriggerCentral(kTRUE)
414 // ,fTrkEovPBefHad(0)
417 ,fSemiIncElecDphi1(0)
418 ,fSemiIncElecDphi2(0)
419 ,fSemiIncElecDphi3(0)
420 ,fSemiIncElecDphi4(0)
426 ,fInclusiveElecDphi(0)
427 ,fInclusiveElecDphi1(0)
428 ,fInclusiveElecDphi2(0)
429 ,fInclusiveElecDphi3(0)
430 ,fInclusiveElecDphi4(0)
431 ,fInclusiveElecDphiEtaFS(0)
432 ,fInclusiveElecDphiEtaFS1(0)
433 ,fInclusiveElecDphiEtaFS2(0)
434 ,fInclusiveElecDphiEtaFS3(0)
435 ,fInclusiveElecDphiEtaFS4(0)
446 ,fDphiULSMassLowNoPartner(0)
447 ,fDphiULSMassLowNoPartner1(0)
448 ,fDphiULSMassLowNoPartner2(0)
449 ,fDphiULSMassLowNoPartner3(0)
450 ,fDphiULSMassLowNoPartner4(0)
451 ,fDphiLSMassLowNoPartner(0)
452 ,fDphiLSMassLowNoPartner1(0)
453 ,fDphiLSMassLowNoPartner2(0)
454 ,fDphiLSMassLowNoPartner3(0)
455 ,fDphiLSMassLowNoPartner4(0)
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)
552 // ,fElecPhiTPCEovP(0)
554 ,fHadronPhiTPChalf(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)
593 ,fCentralityNoPass(0)
615 ,fHadronDphiNoSSEta1(0)
616 ,fHadronDphiNoSSEta11(0)
617 ,fHadronDphiNoSSEta12(0)
618 ,fHadronDphiNoSSEta13(0)
619 ,fHadronDphiNoSSEta14(0)
625 ,fHadronDphiNoSSEta2(0)
626 ,fHadronDphiNoSSEta21(0)
627 ,fHadronDphiNoSSEta22(0)
628 ,fHadronDphiNoSSEta23(0)
629 ,fHadronDphiNoSSEta24(0)
630 //,fSparseElectron(0)
631 // ,fvalueElectron(0)
633 //Default constructor
634 fPID = new AliHFEpid("hfePid");
635 //fvalueElectron = new Double_t[6];
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());
647 //_________________________________________
649 AliAnalysisTaskElecHadronCorrel::~AliAnalysisTaskElecHadronCorrel()
660 // delete fSparseElectron;
661 // delete []fvalueElectron;
663 //_________________________________________
665 void AliAnalysisTaskElecHadronCorrel::UserExec(Option_t*)
668 //Called for each event
670 // create pointer to event
671 fAOD = dynamic_cast<AliAODEvent*>(InputEvent());
672 fESD = dynamic_cast<AliESDEvent*>(InputEvent());
675 printf("ERROR: fESD & fAOD not available\n");
678 fVevent = dynamic_cast<AliVEvent*>(InputEvent());
680 printf("ERROR: fVEvent not available\n");
685 AliError("HFE cuts not available");
689 if(!fPID->IsInitialized()){
690 // Initialize PID with the given run number
691 AliWarning("PID not initialised, get from Run no");
693 if(IsAODanalysis())fPID->InitializePID(fAOD->GetRunNumber());
694 else fPID->InitializePID(fESD->GetRunNumber());
700 if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kCentral))) return;
703 if(!fTriggerCentral){
705 if(!(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & (AliVEvent::kSemiCentral))) return;
707 // centrality selection
708 // SetCentralityParameters(0., 7., "V0M");
709 Bool_t pass = kFALSE;
710 CheckCentrality(fVevent,pass);
713 Int_t fNOtrks = fVevent->GetNumberOfTracks();
714 const AliVVertex *pVtx = fVevent->GetPrimaryVertex();
716 Double_t pVtxZ = -999;
717 pVtxZ = pVtx->GetZ();
719 if(TMath::Abs(pVtxZ)>10) return;
722 if(fNOtrks<2) return;
724 AliPIDResponse *pidResponse = fInputHandler->GetPIDResponse();
726 AliDebug(1, "Using default PID Response");
727 pidResponse = AliHFEtools::GetDefaultPID(kFALSE, fInputEvent->IsA() == AliAODEvent::Class());
730 fPID->SetPIDResponse(pidResponse);
732 fCFM->SetRecEventInfo(fVevent);
734 AliCentrality *fCentrality2 = (AliCentrality*)fAOD->GetCentrality();
735 Double_t centvalue1 = fCentrality2->GetCentralityPercentile("V0M");
739 pool = fPoolMgr->GetEventPool(centvalue1, pVtxZ); // Get the buffer associated with the current centrality and z-vtx
742 AliFatal(Form("No pool found for centrality = %f, zVtx = %f", centvalue1, pVtxZ));
745 // Look for kink mother for AOD
746 Double_t *listofmotherkink =0;
747 Int_t numberofvertices = 0, numberofmotherkink = 0;
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++;
765 for (Int_t iTracks = 0; iTracks < fVevent->GetNumberOfTracks(); iTracks++) {
766 AliVParticle* Vtrack = fVevent->GetTrack(iTracks);
768 printf("ERROR: Could not receive track %d\n", iTracks);
771 AliVTrack *track = dynamic_cast<AliVTrack*>(Vtrack);
772 AliESDtrack *etrack = dynamic_cast<AliESDtrack*>(Vtrack);
773 AliAODTrack *atrack = dynamic_cast<AliAODTrack*>(Vtrack);
775 if(!track && !etrack && !atrack) continue;
778 if(!atrack->TestFilterMask(AliAODTrack::kTrkGlobalNoDCA)) continue;
780 if(track->Pt()<1) continue;
782 // fTrackPtBefTrkCuts->Fill(track->Pt());
784 // RecKine: ITSTPC cuts
785 if(!ProcessCutStep(AliHFEcuts::kStepRecKineITSTPC, track)) continue;
787 // Reject kink mother
788 if(fRejectKinkMother) { // Quick and dirty fix to reject both kink mothers and daughters
790 Bool_t kinkmotherpass = kTRUE;
791 for(Int_t kinkmother = 0; kinkmother < numberofmotherkink; kinkmother++) {
792 if(track->GetID() == listofmotherkink[kinkmother]) {
793 kinkmotherpass = kFALSE;
797 if(!kinkmotherpass) continue;
800 if(etrack->GetKinkIndex(0) != 0) continue;
804 // if(!ProcessCutStep(AliHFEcuts::kStepRecPrim, track)) continue; //gives warning for AOD, so not using
806 // HFE cuts: TPC PID cleanup
807 if(!ProcessCutStep(AliHFEcuts::kStepHFEcutsTPC, track)) continue;
809 // fTrackHFEcuts->Fill(track->Phi());
811 // HFEcuts: ITS layers cuts
812 if(!ProcessCutStep(AliHFEcuts::kStepHFEcutsITS, track)) continue;
814 // fTrackHFEcutsITS->Fill(track->Phi());
815 //fTrackPtAftTrkCuts->Fill(track->Pt());
817 Double_t fClsE = -999, p = -999, fEovP=-999, pt = -999, dEdx=-999, fTPCnSigma=0;
820 dEdx = track->GetTPCsignal();
821 fTPCnSigma = fPID->GetPIDResponse() ? fPID->GetPIDResponse()->NumberOfSigmasTPC(track, AliPID::kElectron) : 1000;
824 // if(fTPCnSigma >= -2 && fTPCnSigma <= 2){
825 // fElecPhiTPC->Fill(track->Phi());
829 if(track->Eta() < -0.7 || track->Eta() > 0.7) continue;
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);
838 fTPCnsigma->Fill(p,fTPCnSigma);
841 fClsE = cluster->E();
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();
852 //fSparseElectron->Fill(fvalueElectron);
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);
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);
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);
873 //Electron id with TPC
874 if(fTPCnSigma < fTPCnsigEleMin || fTPCnSigma > fTPCnsigEleMax) continue;
875 fEovPWoSS->Fill(pt,fEovP);
876 // fElecPhiTPCEovP->Fill(track->Phi());
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);
882 //Electron id with E/p
883 if(fEovP < fEovPMin || fEovP > fEovPMax) continue;
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());
892 Bool_t fFlagPhotonicElec = kFALSE;
893 // select photonic electron
894 SelectPhotonicElectron(iTracks,track,fFlagPhotonicElec);
896 //Inclusive electron-hadron correlation
897 ElectronHadCorrel(iTracks, track, fInclusiveElecDphi, fInclusiveElecDphi1,fInclusiveElecDphi2,fInclusiveElecDphi3,fInclusiveElecDphi4);
898 fInclusiveElecPt->Fill(pt);
899 MixedEvent(track,fMixedIncElecDphi, fMixedIncElecDphi1,fMixedIncElecDphi2, fMixedIncElecDphi3, fMixedIncElecDphi4);
902 ElectronHadCorrelEtaBins(iTracks, track, fInclusiveElecDphiEta1, fInclusiveElecDphiEta11,fInclusiveElecDphiEta12,fInclusiveElecDphiEta13,fInclusiveElecDphiEta14,fInclusiveElecDphiEta2, fInclusiveElecDphiEta21,fInclusiveElecDphiEta22,fInclusiveElecDphiEta23,fInclusiveElecDphiEta24);
904 //Inclusive electron-hadron correlation far eta side
905 ElectronHadCorrelEtaFarSide(iTracks, track, fInclusiveElecDphiEtaFS, fInclusiveElecDphiEtaFS1,fInclusiveElecDphiEtaFS2,fInclusiveElecDphiEtaFS3,fInclusiveElecDphiEtaFS4);
906 MixedEvent(track,fMixedIncElecDphi, fMixedIncElecDphi1,fMixedIncElecDphi2, fMixedIncElecDphi3, fMixedIncElecDphi4);
909 if(fFlagPhotonicElec){
910 //Electron hadron correlation
911 ElectronHadCorrel(iTracks, track, fPhotElecDphi,fPhotElecDphi1,fPhotElecDphi2,fPhotElecDphi3,fPhotElecDphi4);
912 fPhotoElecPt->Fill(pt);
913 MixedEvent(track,fMixedPhotElecDphi, fMixedPhotElecDphi1,fMixedPhotElecDphi2, fMixedPhotElecDphi3, fMixedPhotElecDphi4);
916 ElectronHadCorrelEtaBins(iTracks, track, fPhotElecDphiEta1,fPhotElecDphiEta11,fPhotElecDphiEta12,fPhotElecDphiEta13,fPhotElecDphiEta14,fPhotElecDphiEta2,fPhotElecDphiEta21,fPhotElecDphiEta22,fPhotElecDphiEta23,fPhotElecDphiEta24);
919 // Semi inclusive electron
920 if(!fFlagPhotonicElec){
921 //Electron hadron correlation
922 ElectronHadCorrel(iTracks, track, fSemiIncElecDphi, fSemiIncElecDphi1,fSemiIncElecDphi2,fSemiIncElecDphi3,fSemiIncElecDphi4);
923 fSemiInclElecPt->Fill(pt);
924 MixedEvent(track,fMixedSemiIncElecDphi,fMixedSemiIncElecDphi1,fMixedSemiIncElecDphi2, fMixedSemiIncElecDphi3, fMixedSemiIncElecDphi4);
927 ElectronHadCorrelEtaBins(iTracks, track, fSemiIncElecDphiEta1, fSemiIncElecDphiEta11,fSemiIncElecDphiEta12,fSemiIncElecDphiEta13,fSemiIncElecDphiEta14,fSemiIncElecDphiEta2, fSemiIncElecDphiEta21,fSemiIncElecDphiEta22,fSemiIncElecDphiEta23,fSemiIncElecDphiEta24);
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());
941 TObjArray* tracksClone = CloneAndReduceTrackList();
942 tracksClone->SetOwner();
943 pool->UpdatePool(tracksClone);
945 delete listofmotherkink;
946 PostData(1, fOutputList);
948 //_________________________________________
949 void AliAnalysisTaskElecHadronCorrel::UserCreateOutputObjects()
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")){
961 printf("Analysis Mode: %s Analysis\n", IsAODanalysis() ? "AOD" : "ESD");
963 //--------Initialize PID
964 fPID->SetHasMCData(kFALSE);
965 if(!fPID->GetNumberOfPIDdetectors())
967 fPID->AddDetector("TPC", 0);
968 fPID->AddDetector("EMCAL", 1);
971 fPID->SortDetectors();
972 fPIDqa = new AliHFEpidQAmanager();
973 fPIDqa->Initialize(fPID);
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);
983 AliWarning("Cuts not available. Default cuts will be used");
984 fCuts = new AliHFEcuts;
985 fCuts->CreateStandardCuts();
988 if(IsAODanalysis()) fCuts->SetAOD();
989 fCuts->Initialize(fCFM);
991 //Mixed event initialising
992 Int_t trackDepth = 2000;
993 Int_t poolsize = 1000;
995 Int_t nCentralityBins = 5;
996 Int_t nCentralityBinsSC = 6;
998 Double_t CentralityBins[6];
999 Double_t CentralityBinsSC[7];
1000 Double_t vertexBins[5];
1003 CentralityBins[0] = 0;
1004 CentralityBins[1] = 2;
1005 CentralityBins[2] = 4;
1006 CentralityBins[3] = 6;
1007 CentralityBins[4] = 8;
1008 CentralityBins[5] = 10;
1010 vertexBins[0] = -10;
1015 fPoolMgr = new AliEventPoolManager(poolsize, trackDepth, nCentralityBins, (Double_t*) CentralityBins, nZvtxBins, (Double_t*) vertexBins);
1018 if(!fTriggerCentral)
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;
1028 vertexBins[0] = -10;
1033 fPoolMgr = new AliEventPoolManager(poolsize, trackDepth, nCentralityBinsSC, (Double_t*) CentralityBinsSC, nZvtxBins, (Double_t*) vertexBins);
1037 //---------Output Tlist
1038 fOutputList = new TList();
1039 fOutputList->SetOwner();
1040 fOutputList->Add(fPIDqa->MakeList("PIDQA"));
1042 fNoEvents = new TH1F("fNoEvents","",1,0,1) ;
1043 fOutputList->Add(fNoEvents);
1045 fcentrality = new TH1F("fcentrality","centrality", 100,0,100);
1046 fOutputList->Add(fcentrality);
1048 // fTrkpt = new TH1F("fTrkpt","track pt",1000,0,50);
1049 // fOutputList->Add(fTrkpt);
1051 // fTrackPtBefTrkCuts = new TH1F("fTrackPtBefTrkCuts","track pt before track cuts",1000,0,50);
1052 // fOutputList->Add(fTrackPtBefTrkCuts);
1054 // fTrackPtAftTrkCuts = new TH1F("fTrackPtAftTrkCuts","track pt after track cuts",1000,0,50);
1055 // fOutputList->Add(fTrackPtAftTrkCuts);
1057 fTPCnsigma = new TH2F("fTPCnsigma", "TPC - n sigma",1000,0,50,200,-10,10);
1058 fOutputList->Add(fTPCnsigma);
1060 fTrkEovPAft = new TH2F("fTrkEovPAft","track E/p after HFE pid",1000,0,50,100,0,2);
1061 fOutputList->Add(fTrkEovPAft);
1063 // fTrkEovPBefHad = new TH2F("fTrkEovPBefHad","track E/p for TPCnsig < 3.5",1000,0,50,100,0,2);
1064 // fOutputList->Add(fTrkEovPBefHad);
1066 // fdEdxBef = new TH2F("fdEdxBef","track dEdx vs p before HFE pid",1000,0,50,150,0,150);
1067 // fOutputList->Add(fdEdxBef);
1069 fElecPhi = new TH1F("fElecPhi", "Electron phi",1000,0,6.28);
1070 fOutputList->Add(fElecPhi);
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);
1075 fElecPhiTPChalf = new TH1F("fElecPhiTPChalf", "Electron phi for 0<eta<0.7",1000,0,6.28);
1076 fOutputList->Add(fElecPhiTPChalf);
1078 /* fElecPhiTPC = new TH1F("fElecPhiTPC", "Electron phi after TPC cut",1000,0,6.28);
1079 fOutputList->Add(fElecPhiTPC);
1081 fElecPhiTPCEovP = new TH1F("fElecPhiTPCEovP", "Electron phi after TPC and E/p cut",1000,0,6.28);
1082 fOutputList->Add(fElecPhiTPCEovP);
1084 fHadronPhi = new TH1F("fHadronPhi", "Hadron phi",1000,0,6.28);
1085 fOutputList->Add(fHadronPhi);
1087 fHadronPhiTPChalf = new TH1F("fHadronPhiTPChalf", "Hadron phi for 0<eta<0.9",1000,0,6.28);
1088 fOutputList->Add(fHadronPhiTPChalf);
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);
1094 fTrackHFEcuts = new TH1F("fTrackHFEcuts","Track phi for HFE cuts",1000,0,6.28);
1095 fOutputList->Add(fTrackHFEcuts);
1097 fTrakPhiSPD1 = new TH1F("fTrakPhiSPD1","Track phi for hit in SPD layer 1",1000,0,6.28);
1098 fOutputList->Add(fTrakPhiSPD1);
1100 fTrakPhiSPD2 = new TH1F("fTrakPhiSPD2","Track phi for hit in SPD layer 2",1000,0,6.28);
1101 fOutputList->Add(fTrakPhiSPD2);
1103 fTrakPhiSPDOr = new TH1F("fTrakPhiSPDOr","Track phi for hit in any SPD layer",1000,0,6.28);
1104 fOutputList->Add(fTrakPhiSPDOr);
1106 fTrakPhiSPDAnd = new TH1F("fTrakPhiSPDAnd","Track phi for hit in both SPD layer",1000,0,6.28);
1107 fOutputList->Add(fTrakPhiSPDAnd);
1109 fTrackHFEcutsITS = new TH1F("fTrackHFEcutsITS","Track phi for HFE cuts + ITS HFE cuts",1000,0,6.28);
1110 fOutputList->Add(fTrackHFEcutsITS);
1112 fSemiIncElecDphi = new TH2F("fSemiIncElecDphi", "Semi Inclusive elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1113 fOutputList->Add(fSemiIncElecDphi);
1115 fSemiIncElecDphi1 = new TH2F("fSemiIncElecDphi1", "Semi Inclusive elec-had Dphi correlation for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1116 fOutputList->Add(fSemiIncElecDphi1);
1118 fSemiIncElecDphi2 = new TH2F("fSemiIncElecDphi2", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1119 fOutputList->Add(fSemiIncElecDphi2);
1121 fSemiIncElecDphi3 = new TH2F("fSemiIncElecDphi3", "Semi Inclusive elec-had Dphi correlation for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1122 fOutputList->Add(fSemiIncElecDphi3);
1124 fSemiIncElecDphi4 = new TH2F("fSemiIncElecDphi4", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1125 fOutputList->Add(fSemiIncElecDphi4);
1127 fPhotElecDphi = new TH2F("fPhotElecDphi", "Photon elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1128 fOutputList->Add(fPhotElecDphi);
1130 fPhotElecDphi1 = new TH2F("fPhotElecDphi1", "Photon elec-had Dphi correlation for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1131 fOutputList->Add(fPhotElecDphi1);
1133 fPhotElecDphi2 = new TH2F("fPhotElecDphi2", "Photon elec-had Dphi correlation for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1134 fOutputList->Add(fPhotElecDphi2);
1136 fPhotElecDphi3 = new TH2F("fPhotElecDphi3", "Photon elec-had Dphi correlation for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1137 fOutputList->Add(fPhotElecDphi3);
1139 fPhotElecDphi4 = new TH2F("fPhotElecDphi4", "Photon elec-had Dphi correlation for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1140 fOutputList->Add(fPhotElecDphi4);
1142 fInclusiveElecDphi = new TH2F("fInclusiveElecDphi", "Inclusive elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1143 fOutputList->Add(fInclusiveElecDphi);
1145 fInclusiveElecDphi1 = new TH2F("fInclusiveElecDphi1", "Inclusive elec-had Dphi correlation for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1146 fOutputList->Add(fInclusiveElecDphi1);
1148 fInclusiveElecDphi2 = new TH2F("fInclusiveElecDphi2", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1149 fOutputList->Add(fInclusiveElecDphi2);
1151 fInclusiveElecDphi3 = new TH2F("fInclusiveElecDphi3", "Inclusive elec-had Dphi correlation for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1152 fOutputList->Add(fInclusiveElecDphi3);
1154 fInclusiveElecDphi4 = new TH2F("fInclusiveElecDphi4", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1155 fOutputList->Add(fInclusiveElecDphi4);
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);
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);
1161 fOutputList->Add(fInclusiveElecDphiEtaFS1);
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);
1164 fOutputList->Add(fInclusiveElecDphiEtaFS2);
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);
1167 fOutputList->Add(fInclusiveElecDphiEtaFS3);
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);
1170 fOutputList->Add(fInclusiveElecDphiEtaFS4);
1172 fDphiULSMassLow = new TH2F("fDphiULSMassLow", "e-h Dphi ULS, mass<cut",200,0,20,64,-1.57,4.71);
1173 fOutputList->Add(fDphiULSMassLow);
1175 fDphiULSMassLow1 = new TH2F("fDphiULSMassLow1", "e-h Dphi ULS, mass<cut for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1176 fOutputList->Add(fDphiULSMassLow1);
1178 fDphiULSMassLow2 = new TH2F("fDphiULSMassLow2", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1179 fOutputList->Add(fDphiULSMassLow2);
1181 fDphiULSMassLow3 = new TH2F("fDphiULSMassLow3", "e-h Dphi ULS, mass<cut for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1182 fOutputList->Add(fDphiULSMassLow3);
1184 fDphiULSMassLow4 = new TH2F("fDphiULSMassLow4", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1185 fOutputList->Add(fDphiULSMassLow4);
1187 fDphiLSMassLow = new TH2F("fDphiLSMassLow", "e-h Dphi LS, mass<cut",200,0,20,64,-1.57,4.71);
1188 fOutputList->Add(fDphiLSMassLow);
1190 fDphiLSMassLow1 = new TH2F("fDphiLSMassLow1", "e-h Dphi LS, mass<cut for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1191 fOutputList->Add(fDphiLSMassLow1);
1193 fDphiLSMassLow2 = new TH2F("fDphiLSMassLow2", "e-h Dphi LS, mass<cut for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1194 fOutputList->Add(fDphiLSMassLow2);
1196 fDphiLSMassLow3 = new TH2F("fDphiLSMassLow3", "e-h Dphi LS, mass<cut for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1197 fOutputList->Add(fDphiLSMassLow3);
1199 fDphiLSMassLow4 = new TH2F("fDphiLSMassLow4", "e-h Dphi LS, mass<cut for 8<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1200 fOutputList->Add(fDphiLSMassLow4);
1202 fDphiULSMassLowNoPartner = new TH2F("fDphiULSMassLowNoPartner", "e-h Dphi ULS with no partner, mass<mass cut,",200,0,20,64,-1.57,4.71);
1203 fOutputList->Add(fDphiULSMassLowNoPartner);
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);
1206 fOutputList->Add(fDphiULSMassLowNoPartner1);
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);
1209 fOutputList->Add(fDphiULSMassLowNoPartner2);
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);
1212 fOutputList->Add(fDphiULSMassLowNoPartner3);
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);
1215 fOutputList->Add(fDphiULSMassLowNoPartner4);
1217 fDphiLSMassLowNoPartner = new TH2F("fDphiLSMassLowNoPartner", "e-h Dphi LS with no partner, mass<mass cut",200,0,20,64,-1.57,4.71);
1218 fOutputList->Add(fDphiLSMassLowNoPartner);
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);
1221 fOutputList->Add(fDphiLSMassLowNoPartner1);
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);
1224 fOutputList->Add(fDphiLSMassLowNoPartner2);
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);
1227 fOutputList->Add(fDphiLSMassLowNoPartner3);
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);
1230 fOutputList->Add(fDphiLSMassLowNoPartner4);
1232 fPhotoElecPt = new TH1F("fPhotoElecPt", "photonic electron pt",1000,0,100);
1233 fOutputList->Add(fPhotoElecPt);
1235 fSemiInclElecPt = new TH1F("fSemiInclElecPt", "Semi-inclusive electron pt",1000,0,100);
1236 fOutputList->Add(fSemiInclElecPt);
1238 fInclusiveElecPt = new TH1F("fInclElecPt", "Inclusive electron pt",1000,0,100);
1239 fOutputList->Add(fInclusiveElecPt);
1241 fULSElecPt = new TH1F("fULSElecPt", "ULS electron pt",1000,0,100);
1242 fOutputList->Add(fULSElecPt);
1244 fLSElecPt = new TH1F("fLSElecPt", "LS electron pt",1000,0,100);
1245 fOutputList->Add(fLSElecPt);
1247 fSemiIncElecDphiEta1 = new TH2F("fSemiIncElecDphiEta1", "Semi Inclusive elec-had Dphi correlation for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1248 fOutputList->Add(fSemiIncElecDphiEta1);
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);
1250 fOutputList->Add(fSemiIncElecDphiEta11);
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);
1252 fOutputList->Add(fSemiIncElecDphiEta12);
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);
1254 fOutputList->Add(fSemiIncElecDphiEta13);
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);
1256 fOutputList->Add(fSemiIncElecDphiEta14);
1257 fPhotElecDphiEta1 = new TH2F("fPhotElecDphiEta1", "Photon elec-had Dphi correlation for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1258 fOutputList->Add(fPhotElecDphiEta1);
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);
1260 fOutputList->Add(fPhotElecDphiEta11);
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);
1262 fOutputList->Add(fPhotElecDphiEta12);
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);
1264 fOutputList->Add(fPhotElecDphiEta13);
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);
1266 fOutputList->Add(fPhotElecDphiEta14);
1267 fInclusiveElecDphiEta1 = new TH2F("fInclusiveElecDphiEta1", "Inclusive elec-had Dphi correlation for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1268 fOutputList->Add(fInclusiveElecDphiEta1);
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);
1270 fOutputList->Add(fInclusiveElecDphiEta11);
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);
1272 fOutputList->Add(fInclusiveElecDphiEta12);
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);
1274 fOutputList->Add(fInclusiveElecDphiEta13);
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);
1276 fOutputList->Add(fInclusiveElecDphiEta14);
1277 fDphiULSMassLowEta1 = new TH2F("fDphiULSMassLowEta1", "e-h Dphi ULS, mass<cut for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1278 fOutputList->Add(fDphiULSMassLowEta1);
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);
1280 fOutputList->Add(fDphiULSMassLowEta11);
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);
1282 fOutputList->Add(fDphiULSMassLowEta12);
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);
1284 fOutputList->Add(fDphiULSMassLowEta13);
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);
1286 fOutputList->Add(fDphiULSMassLowEta14);
1287 fDphiLSMassLowEta1 = new TH2F("fDphiLSMassLowEta1", "e-h Dphi LS, mass<cut for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1288 fOutputList->Add(fDphiLSMassLowEta1);
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);
1290 fOutputList->Add(fDphiLSMassLowEta11);
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);
1292 fOutputList->Add(fDphiLSMassLowEta12);
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);
1294 fOutputList->Add(fDphiLSMassLowEta13);
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);
1296 fOutputList->Add(fDphiLSMassLowEta14);
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);
1298 fOutputList->Add(fDphiULSMassLowNoPartnerEta1);
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);
1300 fOutputList->Add(fDphiULSMassLowNoPartnerEta11);
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);
1302 fOutputList->Add(fDphiULSMassLowNoPartnerEta12);
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);
1304 fOutputList->Add(fDphiULSMassLowNoPartnerEta13);
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);
1306 fOutputList->Add(fDphiULSMassLowNoPartnerEta14);
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);
1308 fOutputList->Add(fDphiLSMassLowNoPartnerEta1);
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);
1310 fOutputList->Add(fDphiLSMassLowNoPartnerEta11);
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);
1312 fOutputList->Add(fDphiLSMassLowNoPartnerEta12);
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);
1314 fOutputList->Add(fDphiLSMassLowNoPartnerEta13);
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);
1316 fOutputList->Add(fDphiLSMassLowNoPartnerEta14);
1318 fSemiIncElecDphiEta2 = new TH2F("fSemiIncElecDphiEta2", "Semi Inclusive elec-had Dphi correlation for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1319 fOutputList->Add(fSemiIncElecDphiEta2);
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);
1321 fOutputList->Add(fSemiIncElecDphiEta21);
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);
1323 fOutputList->Add(fSemiIncElecDphiEta22);
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);
1325 fOutputList->Add(fSemiIncElecDphiEta23);
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);
1327 fOutputList->Add(fSemiIncElecDphiEta24);
1328 fPhotElecDphiEta2 = new TH2F("fPhotElecDphiEta2", "Photon elec-had Dphi correlation for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1329 fOutputList->Add(fPhotElecDphiEta2);
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);
1331 fOutputList->Add(fPhotElecDphiEta21);
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);
1333 fOutputList->Add(fPhotElecDphiEta22);
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);
1335 fOutputList->Add(fPhotElecDphiEta23);
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);
1337 fOutputList->Add(fPhotElecDphiEta24);
1338 fInclusiveElecDphiEta2 = new TH2F("fInclusiveElecDphiEta2", "Inclusive elec-had Dphi correlation for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1339 fOutputList->Add(fInclusiveElecDphiEta2);
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);
1341 fOutputList->Add(fInclusiveElecDphiEta21);
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);
1343 fOutputList->Add(fInclusiveElecDphiEta22);
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);
1345 fOutputList->Add(fInclusiveElecDphiEta23);
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);
1347 fOutputList->Add(fInclusiveElecDphiEta24);
1348 fDphiULSMassLowEta2 = new TH2F("fDphiULSMassLowEta2", "e-h Dphi ULS, mass<cut for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1349 fOutputList->Add(fDphiULSMassLowEta2);
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);
1351 fOutputList->Add(fDphiULSMassLowEta21);
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);
1353 fOutputList->Add(fDphiULSMassLowEta22);
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);
1355 fOutputList->Add(fDphiULSMassLowEta23);
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);
1357 fOutputList->Add(fDphiULSMassLowEta24);
1358 fDphiLSMassLowEta2 = new TH2F("fDphiLSMassLowEta2", "e-h Dphi LS, mass<cut for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1359 fOutputList->Add(fDphiLSMassLowEta2);
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);
1361 fOutputList->Add(fDphiLSMassLowEta21);
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);
1363 fOutputList->Add(fDphiLSMassLowEta22);
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);
1365 fOutputList->Add(fDphiLSMassLowEta23);
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);
1367 fOutputList->Add(fDphiLSMassLowEta24);
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);
1369 fOutputList->Add(fDphiULSMassLowNoPartnerEta2);
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);
1371 fOutputList->Add(fDphiULSMassLowNoPartnerEta21);
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);
1373 fOutputList->Add(fDphiULSMassLowNoPartnerEta22);
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);
1375 fOutputList->Add(fDphiULSMassLowNoPartnerEta23);
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);
1377 fOutputList->Add(fDphiULSMassLowNoPartnerEta24);
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);
1379 fOutputList->Add(fDphiLSMassLowNoPartnerEta2);
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);
1381 fOutputList->Add(fDphiLSMassLowNoPartnerEta21);
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);
1383 fOutputList->Add(fDphiLSMassLowNoPartnerEta22);
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);
1385 fOutputList->Add(fDphiLSMassLowNoPartnerEta23);
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);
1387 fOutputList->Add(fDphiLSMassLowNoPartnerEta24);
1389 /* fNCellv1 = new TH1F("fNCellv1","Ncell in clus (v1); NCell; count",100,0,100) ;
1390 fOutputList->Add(fNCellv1);
1392 fClsEv1 = new TH1F("fClsEv1", "Clus E(v1); Cls E; count",1000,0,100);
1393 fOutputList->Add(fClsEv1);
1395 fNClusv1 = new TH1F("fNClusv1","Nclus in event (v1); NClus; count",500,0,500) ;
1396 fOutputList->Add(fNClusv1);
1398 fInvmassLS1 = new TH1F("fInvmassLS1", "Inv mass of LS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1399 fOutputList->Add(fInvmassLS1);
1401 fInvmassULS1 = new TH1F("fInvmassULS1", "Inv mass of ULS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1402 fOutputList->Add(fInvmassULS1);
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);
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);
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);
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);
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);
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);
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);
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);
1428 fNoMixedEvents = new TH1F("fNoMixedEvents","",1,0,1) ;
1429 fOutputList->Add(fNoMixedEvents);
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);
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);
1437 fMixedIncElecDphi = new TH2F("fMixedIncElecDphi", "Mixed event - Inclusive elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1438 fOutputList->Add(fMixedIncElecDphi);
1440 fMixedIncElecDphi1 = new TH2F("fMixedIncElecDphi1", "Mixed event - Inclusive elec-had Dphi correlation 2<pt<4",200,0,20,64,-1.57,4.71);
1441 fOutputList->Add(fMixedIncElecDphi1);
1443 fMixedIncElecDphi2 = new TH2F("fMixedIncElecDphi2", "Mixed event - Inclusive elec-had Dphi correlation 4<pt<6",200,0,20,64,-1.57,4.71);
1444 fOutputList->Add(fMixedIncElecDphi2);
1446 fMixedIncElecDphi3 = new TH2F("fMixedIncElecDphi3", "Mixed event - Inclusive elec-had Dphi correlation 6<pt<8",200,0,20,64,-1.57,4.71);
1447 fOutputList->Add(fMixedIncElecDphi3);
1449 fMixedIncElecDphi4 = new TH2F("fMixedIncElecDphi4", "Mixed event - Inclusive elec-had Dphi correlation 4<pt<10",200,0,20,64,-1.57,4.71);
1450 fOutputList->Add(fMixedIncElecDphi4);
1452 fMixedSemiIncElecDphi = new TH2F("fMixedSemiIncElecDphi", "Mixed event - Semi Inclusive elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1453 fOutputList->Add(fMixedSemiIncElecDphi);
1455 fMixedSemiIncElecDphi1 = new TH2F("fMixedSemiIncElecDphi1", "Mixed event - Semi Inclusive elec-had Dphi correlation 2<pt<4",200,0,20,64,-1.57,4.71);
1456 fOutputList->Add(fMixedSemiIncElecDphi1);
1458 fMixedSemiIncElecDphi2 = new TH2F("fMixedSemiIncElecDphi2", "Mixed event - Semi Inclusive elec-had Dphi correlation 4<pt<6",200,0,20,64,-1.57,4.71);
1459 fOutputList->Add(fMixedSemiIncElecDphi2);
1461 fMixedSemiIncElecDphi3 = new TH2F("fMixedSemiIncElecDphi3", "Mixed event - Semi Inclusive elec-had Dphi correlation 6<pt<8",200,0,20,64,-1.57,4.71);
1462 fOutputList->Add(fMixedSemiIncElecDphi3);
1464 fMixedSemiIncElecDphi4 = new TH2F("fMixedSemiIncElecDphi4", "Mixed event - Semi Inclusive elec-had Dphi correlation 4<pt<10",200,0,20,64,-1.57,4.71);
1465 fOutputList->Add(fMixedSemiIncElecDphi4);
1467 fMixedPhotElecDphi = new TH2F("fMixedPhotElecDphi", "Mixed event - Photo elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1468 fOutputList->Add(fMixedPhotElecDphi);
1470 fMixedPhotElecDphi1 = new TH2F("fMixedPhotElecDphi1", "Mixed event - Photo elec-had Dphi correlation 2<pt<4",200,0,20,64,-1.57,4.71);
1471 fOutputList->Add(fMixedPhotElecDphi1);
1473 fMixedPhotElecDphi2 = new TH2F("fMixedPhotElecDphi2", "Mixed event - Photo elec-had Dphi correlation 4<pt<6",200,0,20,64,-1.57,4.71);
1474 fOutputList->Add(fMixedPhotElecDphi2);
1476 fMixedPhotElecDphi3 = new TH2F("fMixedPhotElecDphi3", "Mixed event - Photo elec-had Dphi correlation 6<pt<8",200,0,20,64,-1.57,4.71);
1477 fOutputList->Add(fMixedPhotElecDphi3);
1479 fMixedPhotElecDphi4 = new TH2F("fMixedPhotElecDphi4", "Mixed event - Photo elec-had Dphi correlation 4<pt<10",200,0,20,64,-1.57,4.71);
1480 fOutputList->Add(fMixedPhotElecDphi4);
1482 fMixedDphiULSMassLow = new TH2F("fMixedDphiULSMassLow", "Mixed event - ULS mass < cut elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1483 fOutputList->Add(fMixedDphiULSMassLow);
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);
1486 fOutputList->Add(fMixedDphiULSMassLow1);
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);
1489 fOutputList->Add(fMixedDphiULSMassLow2);
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);
1492 fOutputList->Add(fMixedDphiULSMassLow3);
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);
1495 fOutputList->Add(fMixedDphiULSMassLow4);
1497 fMixedDphiLSMassLow = new TH2F("fMixedDphiLSMassLow", "Mixed event - LS mass < cut elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1498 fOutputList->Add(fMixedDphiLSMassLow);
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);
1501 fOutputList->Add(fMixedDphiLSMassLow1);
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);
1504 fOutputList->Add(fMixedDphiLSMassLow2);
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);
1507 fOutputList->Add(fMixedDphiLSMassLow3);
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);
1510 fOutputList->Add(fMixedDphiLSMassLow4);
1512 fHadronPt = new TH1F("fHadronPt","hadron pt distribution",1000,0,100);
1513 fOutputList->Add(fHadronPt);
1515 fCentralityPass = new TH1F("fCentralityPass", "Centrality Pass", 101, -1, 100);
1516 fOutputList->Add(fCentralityPass);
1518 fCentralityNoPass = new TH1F("fCentralityNoPass", "Centrality No Pass", 101, -1, 100);
1519 fOutputList->Add(fCentralityNoPass);
1521 fHadronDphi = new TH2F("fHadronDphi", "Hadron-had Dphi correlation",200,0,20,64,-1.57,4.71);
1522 fOutputList->Add(fHadronDphi);
1524 fHadronDphi1 = new TH2F("fHadronDphi1", "Hadron-had Dphi correlation for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1525 fOutputList->Add(fHadronDphi1);
1527 fHadronDphi2 = new TH2F("fHadronDphi2", "Hadron-had Dphi correlation for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1528 fOutputList->Add(fHadronDphi2);
1530 fHadronDphi3 = new TH2F("fHadronDphi3", "Hadron-had Dphi correlation for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1531 fOutputList->Add(fHadronDphi3);
1533 fHadronDphi4 = new TH2F("fHadronDphi4", "Hadron-had Dphi correlation for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1534 fOutputList->Add(fHadronDphi4);
1536 fPiPt = new TH1F("fPiPt","Pi (-10 <TPC nsig < -3.5) pt distribution",1000,0,100);
1537 fOutputList->Add(fPiPt);
1539 fHadronDphiNoSS = new TH2F("fHadronDphiNoSS", "Hadron-had Dphi correlation (NoSS cuts)",200,0,20,64,-1.57,4.71);
1540 fOutputList->Add(fHadronDphiNoSS);
1542 fHadronDphiNoSS1 = new TH2F("fHadronDphiNoSS1", "Hadron-had Dphi correlation (NoSS cuts) for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1543 fOutputList->Add(fHadronDphiNoSS1);
1545 fHadronDphiNoSS2 = new TH2F("fHadronDphiNoSS2", "Hadron-had Dphi correlation (NoSS cuts) for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1546 fOutputList->Add(fHadronDphiNoSS2);
1548 fHadronDphiNoSS3 = new TH2F("fHadronDphiNoSS3", "Hadron-had Dphi correlation (NoSS cuts) for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1549 fOutputList->Add(fHadronDphiNoSS3);
1551 fHadronDphiNoSS4 = new TH2F("fHadronDphiNoSS4", "Hadron-had Dphi correlation (NoSS cuts) for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1552 fOutputList->Add(fHadronDphiNoSS4);
1554 fPiPtNoSS = new TH1F("fPiPtNoSS","Pi (-10 <TPC nsig < -3.5) (NoSS cuts) pt distribution",1000,0,100);
1555 fOutputList->Add(fPiPtNoSS);
1557 fEovPWoSS = new TH2F("fEovPWoSS","E/p distribution without SS cuts",1000,0,50,100,0,2);
1558 fOutputList->Add(fEovPWoSS);
1560 fEovPWSS = new TH2F("fEovPWSS","E/p distribution with SS cuts",1000,0,50,100,0,2);
1561 fOutputList->Add(fEovPWSS);
1563 fEovPHadWoSS = new TH2F("fEovPHadWoSS","E/p distribution for hadrons without SS cuts",1000,0,50,100,0,2);
1564 fOutputList->Add(fEovPHadWoSS);
1566 fEovPHadWSS = new TH2F("fEovPHadWSS","E/p distribution for hadrons with SS cuts",1000,0,50,100,0,2);
1567 fOutputList->Add(fEovPHadWSS);
1569 fHadronDphiEta1 = new TH2F("fHadronDphiEta1", "Hadron-had Dphi correlation for |Eta <1|",200,0,20,64,-1.57,4.71);
1570 fOutputList->Add(fHadronDphiEta1);
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);
1572 fOutputList->Add(fHadronDphiEta11);
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);
1574 fOutputList->Add(fHadronDphiEta12);
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);
1576 fOutputList->Add(fHadronDphiEta13);
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);
1578 fOutputList->Add(fHadronDphiEta14);
1580 fHadronDphiNoSSEta1 = new TH2F("fHadronDphiNoSSEta1", "Hadron-had DphiNoSS correlation for |Eta <1|",200,0,20,64,-1.57,4.71);
1581 fOutputList->Add(fHadronDphiNoSSEta1);
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);
1583 fOutputList->Add(fHadronDphiNoSSEta11);
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);
1585 fOutputList->Add(fHadronDphiNoSSEta12);
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);
1587 fOutputList->Add(fHadronDphiNoSSEta13);
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);
1589 fOutputList->Add(fHadronDphiNoSSEta14);
1591 fHadronDphiEta2 = new TH2F("fHadronDphiEta2", "Hadron-had Dphi correlation for |Eta >1|",200,0,20,64,-1.57,4.71);
1592 fOutputList->Add(fHadronDphiEta2);
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);
1594 fOutputList->Add(fHadronDphiEta21);
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);
1596 fOutputList->Add(fHadronDphiEta22);
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);
1598 fOutputList->Add(fHadronDphiEta23);
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);
1600 fOutputList->Add(fHadronDphiEta24);
1602 fHadronDphiNoSSEta2 = new TH2F("fHadronDphiNoSSEta2", "Hadron-had DphiNoSS correlation for |Eta >1|",200,0,20,64,-1.57,4.71);
1603 fOutputList->Add(fHadronDphiNoSSEta2);
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);
1605 fOutputList->Add(fHadronDphiNoSSEta21);
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);
1607 fOutputList->Add(fHadronDphiNoSSEta22);
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);
1609 fOutputList->Add(fHadronDphiNoSSEta23);
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);
1611 fOutputList->Add(fHadronDphiNoSSEta24);
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);
1620 PostData(1,fOutputList);
1623 //________________________________________________________________________
1624 void AliAnalysisTaskElecHadronCorrel::Terminate(Option_t *)
1626 // Info("Terminate");
1627 AliAnalysisTaskSE::Terminate();
1630 //________________________________________________________________________
1631 Bool_t AliAnalysisTaskElecHadronCorrel::ProcessCutStep(Int_t cutStep, AliVParticle *track)
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;
1639 //_________________________________________
1640 void AliAnalysisTaskElecHadronCorrel::SelectPhotonicElectron(Int_t itrack, AliVTrack *track, Bool_t &fFlagPhotonicElec)
1642 //Identify non-heavy flavour electrons using Invariant mass method
1644 fTrackCuts1->SetAcceptKinkDaughters(kFALSE);
1645 fTrackCuts1->SetRequireTPCRefit(kTRUE);
1646 fTrackCuts1->SetRequireITSRefit(kTRUE);
1647 fTrackCuts1->SetEtaRange(-0.9,0.9);
1648 fTrackCuts1->SetRequireSigmaToVertex(kTRUE);
1649 fTrackCuts1->SetMaxChi2PerClusterTPC(4);
1650 fTrackCuts1->SetMinNClustersTPC(80);
1651 fTrackCuts1->SetMaxDCAToVertexZ(3.2);
1652 fTrackCuts1->SetMaxDCAToVertexXY(2.4);
1653 fTrackCuts1->SetDCAToVertex2D(kTRUE);
1655 Bool_t flagPhotonicElec = kFALSE;
1657 for(Int_t jTracks = 0; jTracks<fVevent->GetNumberOfTracks(); jTracks++){
1658 AliVParticle* VtrackAsso = fVevent->GetTrack(jTracks);
1660 printf("ERROR: Could not receive track %d\n", jTracks);
1664 AliVTrack *trackAsso = dynamic_cast<AliVTrack*>(VtrackAsso);
1665 if(!trackAsso) continue;
1667 //track cuts applied
1668 if(IsAODanalysis()) {
1669 AliAODTrack *atrackAsso = dynamic_cast<AliAODTrack*>(VtrackAsso);
1670 if(!atrackAsso) continue;
1671 if(!atrackAsso->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1672 if(atrackAsso->GetTPCNcls() < 80) continue;
1673 if((!(atrackAsso->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackAsso->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
1676 AliESDtrack *etrackAsso = dynamic_cast<AliESDtrack*>(VtrackAsso);
1677 if(!etrackAsso) continue;
1678 if(!fTrackCuts1->AcceptTrack(etrackAsso)) continue;
1681 if(jTracks==itrack) continue;
1683 Double_t dEdxAsso = -999., ptAsso=-999., nsigma=-999.0;
1684 Double_t mass=-999., width = -999;
1685 Bool_t fFlagLS=kFALSE, fFlagULS=kFALSE;
1687 dEdxAsso = trackAsso->GetTPCsignal();
1688 nsigma = fPID->GetPIDResponse() ? fPID->GetPIDResponse()->NumberOfSigmasTPC(trackAsso, AliPID::kElectron) : 1000;
1689 ptAsso = trackAsso->Pt();
1690 Int_t chargeAsso = trackAsso->Charge();
1691 Int_t charge = track->Charge();
1693 if(ptAsso <0.3) continue;
1694 if(trackAsso->Eta()<-0.9 || trackAsso->Eta()>0.9) continue;
1695 if(nsigma < -3 || nsigma > 3) continue;
1697 Int_t fPDGe1 = 11; Int_t fPDGe2 = 11;
1698 if(charge>0) fPDGe1 = -11;
1699 if(chargeAsso>0) fPDGe2 = -11;
1701 if(charge == chargeAsso) fFlagLS = kTRUE;
1702 if(charge != chargeAsso) fFlagULS = kTRUE;
1704 AliKFParticle ge1 = AliKFParticle(*track, fPDGe1);
1705 AliKFParticle ge2 = AliKFParticle(*trackAsso, fPDGe2);
1706 AliKFParticle recg(ge1, ge2);
1708 if(recg.GetNDF()<1) continue;
1709 Double_t chi2recg = recg.GetChi2()/recg.GetNDF();
1710 if(TMath::Sqrt(TMath::Abs(chi2recg))>3.) continue;
1713 MassCorrect = recg.GetMass(mass,width);
1716 if(track->Pt()>2)fInvmassLS1->Fill(mass);
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);
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);
1730 if(mass<fInvmassCut){
1733 ElectronHadCorrel(itrack,track,fDphiULSMassLow, fDphiULSMassLow1,fDphiULSMassLow2,fDphiULSMassLow3,fDphiULSMassLow4);
1734 ElectronHadCorrelEtaBins(itrack,track,fDphiULSMassLowEta1, fDphiULSMassLowEta11,fDphiULSMassLowEta12,fDphiULSMassLowEta13,fDphiULSMassLowEta14,fDphiULSMassLowEta2, fDphiULSMassLowEta21,fDphiULSMassLowEta22,fDphiULSMassLowEta23,fDphiULSMassLowEta24);
1735 fULSElecPt->Fill(track->Pt());
1736 MixedEvent(track,fMixedDphiULSMassLow,fMixedDphiULSMassLow1,fMixedDphiULSMassLow2, fMixedDphiULSMassLow3, fMixedDphiULSMassLow4);
1740 ElectronHadCorrel(itrack,track,fDphiLSMassLow,fDphiLSMassLow1,fDphiLSMassLow2,fDphiLSMassLow3,fDphiLSMassLow4);
1741 ElectronHadCorrelEtaBins(itrack,track,fDphiLSMassLowEta1, fDphiLSMassLowEta11,fDphiLSMassLowEta12,fDphiLSMassLowEta13,fDphiLSMassLowEta14,fDphiLSMassLowEta2, fDphiLSMassLowEta21,fDphiLSMassLowEta22,fDphiLSMassLowEta23,fDphiLSMassLowEta24);
1742 fLSElecPt->Fill(track->Pt());
1743 MixedEvent(track,fMixedDphiLSMassLow,fMixedDphiLSMassLow1,fMixedDphiLSMassLow2, fMixedDphiLSMassLow3, fMixedDphiLSMassLow4);
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);
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);
1755 if(mass<fInvmassCut && fFlagULS && !flagPhotonicElec){
1756 flagPhotonicElec = kTRUE;
1761 fFlagPhotonicElec = flagPhotonicElec;
1763 //_________________________________________
1764 void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrel(Int_t itrack, AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2,TH2F *DphiPt3,TH2F *DphiPt4)
1766 //Construct Delta Phi between electrons and hadrons
1768 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
1769 fTrackCuts2->SetRequireTPCRefit(kTRUE);
1770 fTrackCuts2->SetRequireITSRefit(kTRUE);
1771 fTrackCuts2->SetEtaRange(-0.9,0.9);
1772 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
1773 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
1774 fTrackCuts2->SetMinNClustersTPC(80);
1775 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
1776 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
1777 fTrackCuts2->SetDCAToVertex2D(kTRUE);
1779 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
1780 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
1782 printf("ERROR: Could not receive track %d\n", ktracks);
1786 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
1787 if(!trackHad) continue;
1789 if(IsAODanalysis()) {
1790 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
1791 if(!atrackHad) continue;
1792 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1793 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
1794 if(atrackHad->GetTPCNcls() < 80) continue;
1797 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
1798 if(!etrackHad) continue;
1799 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
1802 if(ktracks == itrack) continue; //do not select the same electron
1804 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
1805 Double_t ptEle = -999;
1806 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
1809 dEdxHad = trackHad->GetTPCsignal();
1810 ptHad = trackHad->Pt();
1811 pHad = trackHad->P();
1812 ptEle = track->Pt();
1814 // if(ptHad <2) continue;
1815 if(ptHad > ptEle) continue;
1816 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
1818 phiEle = track->Phi();
1819 phiHad = trackHad->Phi();
1820 Dphi = phiEle - phiHad;
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);
1830 if(ptHad>4 && ptHad<10) DphiPt4->Fill(ptEle,Dphi);
1834 //_________________________________________
1835 void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrelNoPartner(Int_t itrack,Int_t jtrack, AliVTrack *track, TH2F *DphiPtNew, TH2F *DphiPtNew1,TH2F *DphiPtNew2,TH2F *DphiPtNew3,TH2F *DphiPtNew4)
1837 //Construct Delta Phi between electrons and hadrons for electrons from invariant mass calculation excluding associated track
1839 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
1840 fTrackCuts2->SetRequireTPCRefit(kTRUE);
1841 fTrackCuts2->SetRequireITSRefit(kTRUE);
1842 fTrackCuts2->SetEtaRange(-0.9,0.9);
1843 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
1844 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
1845 fTrackCuts2->SetMinNClustersTPC(80);
1846 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
1847 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
1848 fTrackCuts2->SetDCAToVertex2D(kTRUE);
1850 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
1851 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
1853 printf("ERROR: Could not receive track %d\n", ktracks);
1857 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
1858 if(!trackHad) continue;
1860 if(IsAODanalysis()) {
1861 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
1862 if(!atrackHad) continue;
1863 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1864 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
1865 if(atrackHad->GetTPCNcls() < 80) continue;
1868 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
1869 if(!etrackHad) continue;
1870 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
1873 if(ktracks == itrack || ktracks == jtrack) continue; //do not select the same electron and associated track from inv mass cal
1875 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
1876 Double_t ptEle = -999;
1877 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
1880 dEdxHad = trackHad->GetTPCsignal();
1881 ptHad = trackHad->Pt();
1882 pHad = trackHad->P();
1883 ptEle = track->Pt();
1885 // if(ptHad <2) continue;
1886 if(ptHad > ptEle) continue;
1887 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
1889 phiEle = track->Phi();
1890 phiHad = trackHad->Phi();
1891 Dphi = phiEle - phiHad;
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);
1901 if(ptHad>4 && ptHad<10) DphiPtNew4->Fill(ptEle,Dphi);
1904 //_________________________________________
1905 void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrelEtaFarSide(Int_t itrack, AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2,TH2F *DphiPt3,TH2F *DphiPt4)
1907 //Construct Delta Phi between electrons and hadrons for 1<eta(had)<1.6
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);
1920 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
1921 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
1923 printf("ERROR: Could not receive track %d\n", ktracks);
1926 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
1927 if(!trackHad) continue;
1929 if(IsAODanalysis()) {
1930 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
1931 if(!atrackHad) continue;
1932 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1933 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
1934 if(atrackHad->GetTPCNcls() < 80) continue;
1937 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
1938 if(!etrackHad) continue;
1939 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
1942 if(ktracks == itrack) continue; //do not select the same electron
1944 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
1945 Double_t ptEle = -999;
1946 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
1949 dEdxHad = trackHad->GetTPCsignal();
1950 ptHad = trackHad->Pt();
1951 pHad = trackHad->P();
1952 ptEle = track->Pt();
1954 // if(ptHad <2) continue;
1955 if(ptHad > ptEle) continue;
1956 if(trackHad->Eta()<1 || trackHad->Eta()>1.6) continue;
1958 phiEle = track->Phi();
1959 phiHad = trackHad->Phi();
1960 Dphi = phiEle - phiHad;
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);
1970 if(ptHad>4 && ptHad<10) DphiPt4->Fill(ptEle,Dphi);
1974 //_________________________________________
1975 void 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)
1977 //Construct Delta Phi between electrons and hadrons in different Eta bins
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);
1990 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
1991 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
1993 printf("ERROR: Could not receive track %d\n", ktracks);
1997 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
1998 if(!trackHad) continue;
2000 if(IsAODanalysis()) {
2001 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2002 if(!atrackHad) continue;
2003 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2004 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2005 if(atrackHad->GetTPCNcls() < 80) continue;
2008 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2009 if(!etrackHad) continue;
2010 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2013 if(ktracks == itrack) continue; //do not select the same electron
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;
2021 dEdxHad = trackHad->GetTPCsignal();
2022 ptHad = trackHad->Pt();
2023 pHad = trackHad->P();
2024 ptEle = track->Pt();
2026 // if(ptHad <2) continue;
2027 if(ptHad > ptEle) continue;
2028 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2030 phiEle = track->Phi();
2031 phiHad = trackHad->Phi();
2032 Dphi = phiEle - phiHad;
2039 etaEle = track->Eta();
2040 etaHad = trackHad->Eta();
2041 DEta = etaEle - etaHad;
2043 if(TMath::Abs(DEta)<0.8){
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);
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);
2056 if(ptHad>4 && ptHad<10) DphiPtEta24->Fill(ptEle,Dphi);
2060 //_________________________________________
2061 void 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)
2063 //Construct Delta Phi between electrons and hadrons in different Eta bins (exclude associated track)
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);
2076 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2077 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2079 printf("ERROR: Could not receive track %d\n", ktracks);
2083 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2084 if(!trackHad) continue;
2086 if(IsAODanalysis()) {
2087 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2088 if(!atrackHad) continue;
2089 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2090 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2091 if(atrackHad->GetTPCNcls() < 80) continue;
2094 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2095 if(!etrackHad) continue;
2096 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2099 if(ktracks == itrack || ktracks == jtrack) continue; //do not select the same electron and associated track from inv mass cal
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;
2107 dEdxHad = trackHad->GetTPCsignal();
2108 ptHad = trackHad->Pt();
2109 pHad = trackHad->P();
2110 ptEle = track->Pt();
2112 // if(ptHad <2) continue;
2113 if(ptHad > ptEle) continue;
2114 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2116 phiEle = track->Phi();
2117 phiHad = trackHad->Phi();
2118 Dphi = phiEle - phiHad;
2125 etaEle = track->Eta();
2126 etaHad = trackHad->Eta();
2127 DEta = etaEle - etaHad;
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);
2134 if(ptHad>4 && ptHad<10) DphiPtEta14->Fill(ptEle,Dphi);
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);
2142 if(ptHad>4 && ptHad<10) DphiPtEta24->Fill(ptEle,Dphi);
2147 //_________________________________________
2148 void AliAnalysisTaskElecHadronCorrel::MixedEvent(AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2, TH2F *DphiPt3, TH2F *DphiPt4)
2151 const AliAODVertex *pVtx = fAOD->GetPrimaryVertex();
2153 zVtx = pVtx->GetZ();
2155 AliCentrality *fCentrality1 = (AliCentrality*)fVevent->GetCentrality();
2156 Double_t centvalue = fCentrality1->GetCentralityPercentile("V0M");
2159 pool = fPoolMgr->GetEventPool(centvalue, zVtx); // Get the buffer associated with the current centrality and z-vtx
2162 AliFatal(Form("No pool found for centrality = %f, zVtx = %f", centvalue, zVtx));
2165 // pool->PrintInfo();
2166 if (pool->GetCurrentNEvents() >= 5) // start mixing when 5 events are in the buffer
2168 Int_t nMix = pool->GetCurrentNEvents();
2169 fNoMixedEvents->Fill(0);
2170 fMixStat->Fill(pool->GetCurrentNEvents(),centvalue);
2171 fMixStat1->Fill(pool->GetCurrentNEvents(),zVtx);
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
2176 TObjArray* bgTracks = pool->GetEvent(jMix);
2177 for (Int_t i=0;i<bgTracks->GetEntriesFast(); i++)
2179 AliVParticle* mixtrk = (AliVParticle*) bgTracks->At(i);
2181 Double_t mixtrkPhi = -999;
2182 Double_t ptEle = -999;
2183 Double_t phiEle = -999, Dphi = -999;
2185 Double_t ptmixtrk = -999;
2187 ptEle = track->Pt();
2188 ptmixtrk = mixtrk->Pt();
2189 if(ptmixtrk > ptEle) continue;
2191 mixtrkPhi = mixtrk->Phi();
2192 phiEle = track->Phi();
2193 Dphi = phiEle - mixtrkPhi;
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);
2209 //___________________________________________
2210 TObjArray* AliAnalysisTaskElecHadronCorrel::CloneAndReduceTrackList()
2212 // clones a track list by using AliehDPhiBasicParticle which uses much less memory (used for event mixing)
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);
2221 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2222 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2223 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2225 TObjArray* tracksClone = new TObjArray;
2226 tracksClone->SetOwner(kTRUE);
2228 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2229 AliVParticle* Vtrack = fVevent->GetTrack(ktracks);
2231 printf("ERROR: Could not receive track %d\n", ktracks);
2235 AliVTrack *track = dynamic_cast<AliVTrack*>(Vtrack);
2236 if(!track) continue;
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;
2246 AliESDtrack *etrack = dynamic_cast<AliESDtrack*>(Vtrack);
2247 if(!etrack) continue;
2248 if(!fTrackCuts2->AcceptTrack(etrack)) continue;
2251 // if(ktracks == iTrack) continue;
2252 Double_t eta=-999,ptHad= -999, pHad=-999., phi=-999.0;
2253 Int_t label=-9999, id=-999;
2255 ptHad = track->Pt();
2258 label= track->GetLabel();
2261 if(track->Eta()<-0.9 || track->Eta()>0.9) continue;
2262 if(ptHad <2) continue;
2264 AliVParticle* particle = (AliVParticle*) fVevent->GetTrack(ktracks);
2265 tracksClone->Add(new AliehDPhiBasicParticle(particle->Eta(), particle->Phi(), particle->Pt(), particle->Charge()));
2271 //___________________________________________
2272 void AliAnalysisTaskElecHadronCorrel::HadronInfo(Int_t itrack)
2274 //Hadron information
2276 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2277 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2278 fTrackCuts2->SetRequireITSRefit(kTRUE);
2279 fTrackCuts2->SetEtaRange(-0.9,0.9);
2280 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2281 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2282 fTrackCuts2->SetMinNClustersTPC(80);
2283 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2284 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2285 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2287 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2288 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2290 printf("ERROR: Could not receive track %d\n", ktracks);
2294 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2295 if(!trackHad) continue;
2297 if(IsAODanalysis()) {
2298 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2299 if(!atrackHad) continue;
2300 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2301 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2302 if(atrackHad->GetTPCNcls() < 80) continue;
2305 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2306 if(!etrackHad) continue;
2307 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2310 if(ktracks == itrack) continue; //do not select the same electron
2312 Double_t ptHad= -999;
2313 ptHad = trackHad->Pt();
2315 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2316 // cout << "pt had = " << ptHad <<endl;
2318 if(ptHad<2) continue;
2320 fHadronPhi->Fill(trackHad->Phi());
2321 fHadronPhiPt->Fill(trackHad->Phi(),ptHad);
2322 if (trackHad->Eta() >0 && trackHad->Eta() <0.9) fHadronPhiTPChalf->Fill(trackHad->Phi());
2324 fHadronPt->Fill(ptHad);
2327 //_________________________________________
2328 void AliAnalysisTaskElecHadronCorrel::CheckCentrality(AliVEvent* event, Bool_t ¢ralitypass)
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);
2333 // cout << "Centrality evaluated-------------------------: " << fCentrality <<endl;
2335 if ((fCentrality <= fCentralityMin) || (fCentrality > fCentralityMax))
2337 fCentralityNoPass->Fill(fCentrality);
2338 // cout << "--------------Fill no pass-------------------------"<<endl;
2339 centralitypass = kFALSE;
2342 fCentralityPass->Fill(fCentrality);
2343 // cout << "--------------Fill pass-------------------------"<<endl;
2344 centralitypass = kTRUE;
2348 //_____________________________________________________________________________
2349 void AliAnalysisTaskElecHadronCorrel::SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax, const char* CentralityMethod)
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;