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");
738 AliEventPool* pool = fPoolMgr->GetEventPool(centvalue1, pVtxZ); // Get the buffer associated with the current centrality and z-vtx
740 AliFatal(Form("No pool found for centrality = %f, zVtx = %f", centvalue1, pVtxZ));
742 // Look for kink mother for AOD
743 Double_t *listofmotherkink =0;
744 Int_t numberofvertices = 0, numberofmotherkink = 0;
746 numberofvertices = fAOD->GetNumberOfVertices();
747 listofmotherkink = new Double_t[numberofvertices];
748 for(Int_t ivertex=0; ivertex < numberofvertices; ivertex++) {
749 AliAODVertex *aodvertex = fAOD->GetVertex(ivertex);
750 if(!aodvertex) continue;
751 if(aodvertex->GetType()==AliAODVertex::kKink) {
752 AliAODTrack *mother = (AliAODTrack *) aodvertex->GetParent();
753 if(!mother) continue;
754 Int_t idmother = mother->GetID();
755 listofmotherkink[numberofmotherkink] = idmother;
756 numberofmotherkink++;
762 for (Int_t iTracks = 0; iTracks < fVevent->GetNumberOfTracks(); iTracks++) {
763 AliVParticle* Vtrack = fVevent->GetTrack(iTracks);
765 printf("ERROR: Could not receive track %d\n", iTracks);
768 AliVTrack *track = dynamic_cast<AliVTrack*>(Vtrack);
769 AliESDtrack *etrack = dynamic_cast<AliESDtrack*>(Vtrack);
770 AliAODTrack *atrack = dynamic_cast<AliAODTrack*>(Vtrack);
773 if(!atrack->TestFilterMask(AliAODTrack::kTrkGlobalNoDCA)) continue;
775 if(track->Pt()<1) continue;
777 // fTrackPtBefTrkCuts->Fill(track->Pt());
779 // RecKine: ITSTPC cuts
780 if(!ProcessCutStep(AliHFEcuts::kStepRecKineITSTPC, track)) continue;
782 // Reject kink mother
783 if(fRejectKinkMother) { // Quick and dirty fix to reject both kink mothers and daughters
785 Bool_t kinkmotherpass = kTRUE;
786 for(Int_t kinkmother = 0; kinkmother < numberofmotherkink; kinkmother++) {
787 if(track->GetID() == listofmotherkink[kinkmother]) {
788 kinkmotherpass = kFALSE;
792 if(!kinkmotherpass) continue;
795 if(etrack->GetKinkIndex(0) != 0) continue;
799 // if(!ProcessCutStep(AliHFEcuts::kStepRecPrim, track)) continue; //gives warning for AOD, so not using
801 // HFE cuts: TPC PID cleanup
802 if(!ProcessCutStep(AliHFEcuts::kStepHFEcutsTPC, track)) continue;
804 // fTrackHFEcuts->Fill(track->Phi());
806 // HFEcuts: ITS layers cuts
807 if(!ProcessCutStep(AliHFEcuts::kStepHFEcutsITS, track)) continue;
809 // fTrackHFEcutsITS->Fill(track->Phi());
810 //fTrackPtAftTrkCuts->Fill(track->Pt());
812 Double_t fClsE = -999, p = -999, fEovP=-999, pt = -999, dEdx=-999, fTPCnSigma=0;
815 dEdx = track->GetTPCsignal();
816 fTPCnSigma = fPID->GetPIDResponse() ? fPID->GetPIDResponse()->NumberOfSigmasTPC(track, AliPID::kElectron) : 1000;
819 // if(fTPCnSigma >= -2 && fTPCnSigma <= 2){
820 // fElecPhiTPC->Fill(track->Phi());
824 if(track->Eta() < -0.7 || track->Eta() > 0.7) continue;
826 // Track extrapolation to EMCAL
827 Int_t fClsId = track->GetEMCALcluster();
828 if(fClsId <0) continue;
829 AliVCluster *cluster = fVevent->GetCaloCluster(fClsId);
830 if(!cluster->IsEMCAL()) continue;
831 if(TMath::Abs(cluster->GetTrackDx())>0.05 || TMath::Abs(cluster->GetTrackDz())>0.05) continue;
832 // fdEdxBef->Fill(p,dEdx);
833 //fTPCnsigma->Fill(p,fTPCnSigma);
836 fClsE = cluster->E();
839 //--------THnsparse---------
840 //fvalueElectron[0] = pt;
841 //fvalueElectron[1] = fTPCnSigma;
842 //fvalueElectron[2] = fEovP;
843 //fvalueElectron[3] = cluster->GetM20();
844 //fvalueElectron[4] = cluster->GetM02();
845 //fvalueElectron[5] = cluster->GetDispersion();
847 //fSparseElectron->Fill(fvalueElectron);
850 //EovP distribution for Had
851 if((fTPCnSigma > fTPCnsigHadMin) && (fTPCnSigma < fTPCnsigHadMax)) fEovPHadWoSS->Fill(pt,fEovP);
852 if(((fTPCnSigma > fTPCnsigHadMin) && (fTPCnSigma < fTPCnsigHadMax)) && ((cluster->GetM20()> fM20CutMin) && (cluster->GetM20()< fM20CutMax)) && ((cluster->GetM02()> fM02CutMin) && (cluster->GetM02()< fM02CutMax)) && ((cluster->GetDispersion()< fDispCutMax))) fEovPHadWSS->Fill(pt,fEovP);
854 //Dphi distribution hadrons with shower shape cuts
855 if(((fTPCnSigma > fTPCnsigHadMin) && (fTPCnSigma < fTPCnsigHadMax)) && ((cluster->GetM20()> fM20CutMin) && (cluster->GetM20()< fM20CutMax)) && ((cluster->GetM02()> fM02CutMin) && (cluster->GetM02()< fM02CutMax)) && ((cluster->GetDispersion()< fDispCutMax))&&(fEovP >= fEovPMin && fEovP <= fEovPMax)){
856 ElectronHadCorrel(iTracks, track, fHadronDphi, fHadronDphi1,fHadronDphi2,fHadronDphi3,fHadronDphi4);
857 ElectronHadCorrelEtaBins(iTracks, track, fHadronDphiEta1, fHadronDphiEta11,fHadronDphiEta12,fHadronDphiEta13,fHadronDphiEta14,fHadronDphiEta2, fHadronDphiEta21,fHadronDphiEta22,fHadronDphiEta23,fHadronDphiEta24);
861 //Dphi distribution hadrons without shower shape cuts
862 if((fTPCnSigma > fTPCnsigHadMin) && (fTPCnSigma < fTPCnsigHadMax)&&(fEovP >= fEovPMin && fEovP <= fEovPMax)){
863 ElectronHadCorrel(iTracks, track, fHadronDphiNoSS, fHadronDphiNoSS1,fHadronDphiNoSS2,fHadronDphiNoSS3,fHadronDphiNoSS4);
864 ElectronHadCorrelEtaBins(iTracks, track, fHadronDphiNoSSEta1, fHadronDphiNoSSEta11,fHadronDphiNoSSEta12,fHadronDphiNoSSEta13,fHadronDphiNoSSEta14,fHadronDphiNoSSEta2, fHadronDphiNoSSEta21,fHadronDphiNoSSEta22,fHadronDphiNoSSEta23,fHadronDphiNoSSEta24);
868 //Electron id with TPC
869 if(fTPCnSigma < fTPCnsigEleMin || fTPCnSigma > fTPCnsigEleMax) continue;
870 fEovPWoSS->Fill(pt,fEovP);
871 // fElecPhiTPCEovP->Fill(track->Phi());
873 //Electron id with shower shape
874 if(cluster->GetM20()< fM20CutMin || cluster->GetM20()> fM20CutMax || cluster->GetM02()< fM02CutMin || cluster->GetM02()> fM02CutMax || cluster->GetDispersion()> fDispCutMax) continue;
875 fEovPWSS->Fill(pt,fEovP);
877 //Electron id with E/p
878 if(fEovP < fEovPMin || fEovP > fEovPMax) continue;
880 fTrkEovPAft->Fill(pt,fEovP);
881 fElecPhi->Fill(track->Phi());
882 fElecPhiPt->Fill(track->Phi(),track->Pt());
883 if (track->Eta() >0 && track->Eta() <0.7) fElecPhiTPChalf->Fill(track->Phi());
887 Bool_t fFlagPhotonicElec = kFALSE;
888 // select photonic electron
889 SelectPhotonicElectron(iTracks,track,fFlagPhotonicElec);
891 //Inclusive electron-hadron correlation
892 ElectronHadCorrel(iTracks, track, fInclusiveElecDphi, fInclusiveElecDphi1,fInclusiveElecDphi2,fInclusiveElecDphi3,fInclusiveElecDphi4);
893 fInclusiveElecPt->Fill(pt);
894 MixedEvent(track,fMixedIncElecDphi, fMixedIncElecDphi1,fMixedIncElecDphi2, fMixedIncElecDphi3, fMixedIncElecDphi4);
897 ElectronHadCorrelEtaBins(iTracks, track, fInclusiveElecDphiEta1, fInclusiveElecDphiEta11,fInclusiveElecDphiEta12,fInclusiveElecDphiEta13,fInclusiveElecDphiEta14,fInclusiveElecDphiEta2, fInclusiveElecDphiEta21,fInclusiveElecDphiEta22,fInclusiveElecDphiEta23,fInclusiveElecDphiEta24);
899 //Inclusive electron-hadron correlation far eta side
900 ElectronHadCorrelEtaFarSide(iTracks, track, fInclusiveElecDphiEtaFS, fInclusiveElecDphiEtaFS1,fInclusiveElecDphiEtaFS2,fInclusiveElecDphiEtaFS3,fInclusiveElecDphiEtaFS4);
901 MixedEvent(track,fMixedIncElecDphi, fMixedIncElecDphi1,fMixedIncElecDphi2, fMixedIncElecDphi3, fMixedIncElecDphi4);
904 if(fFlagPhotonicElec){
905 //Electron hadron correlation
906 ElectronHadCorrel(iTracks, track, fPhotElecDphi,fPhotElecDphi1,fPhotElecDphi2,fPhotElecDphi3,fPhotElecDphi4);
907 fPhotoElecPt->Fill(pt);
908 MixedEvent(track,fMixedPhotElecDphi, fMixedPhotElecDphi1,fMixedPhotElecDphi2, fMixedPhotElecDphi3, fMixedPhotElecDphi4);
911 ElectronHadCorrelEtaBins(iTracks, track, fPhotElecDphiEta1,fPhotElecDphiEta11,fPhotElecDphiEta12,fPhotElecDphiEta13,fPhotElecDphiEta14,fPhotElecDphiEta2,fPhotElecDphiEta21,fPhotElecDphiEta22,fPhotElecDphiEta23,fPhotElecDphiEta24);
914 // Semi inclusive electron
915 if(!fFlagPhotonicElec){
916 //Electron hadron correlation
917 ElectronHadCorrel(iTracks, track, fSemiIncElecDphi, fSemiIncElecDphi1,fSemiIncElecDphi2,fSemiIncElecDphi3,fSemiIncElecDphi4);
918 fSemiInclElecPt->Fill(pt);
919 MixedEvent(track,fMixedSemiIncElecDphi,fMixedSemiIncElecDphi1,fMixedSemiIncElecDphi2, fMixedSemiIncElecDphi3, fMixedSemiIncElecDphi4);
922 ElectronHadCorrelEtaBins(iTracks, track, fSemiIncElecDphiEta1, fSemiIncElecDphiEta11,fSemiIncElecDphiEta12,fSemiIncElecDphiEta13,fSemiIncElecDphiEta14,fSemiIncElecDphiEta2, fSemiIncElecDphiEta21,fSemiIncElecDphiEta22,fSemiIncElecDphiEta23,fSemiIncElecDphiEta24);
926 Int_t clsNo = fVevent->GetNumberOfCaloClusters();
927 fNClusv1->Fill(clsNo);
928 for(Int_t iclus=0; iclus<clsNo ; iclus++){
929 AliVCluster* clus = fVevent->GetCaloCluster(iclus);
930 if(!clus->IsEMCAL()) continue;
931 fNCellv1->Fill(clus->GetNCells());
932 fClsEv1->Fill(clus->E());
936 TObjArray* tracksClone = CloneAndReduceTrackList();
937 tracksClone->SetOwner();
938 pool->UpdatePool(tracksClone);
940 delete listofmotherkink;
941 PostData(1, fOutputList);
943 //_________________________________________
944 void AliAnalysisTaskElecHadronCorrel::UserCreateOutputObjects()
948 AliDebug(3, "Creating Output Objects");
949 // Automatic determination of the analysis mode
950 AliVEventHandler *inputHandler = dynamic_cast<AliVEventHandler *>(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
951 if(!TString(inputHandler->IsA()->GetName()).CompareTo("AliAODInputHandler")){
956 printf("Analysis Mode: %s Analysis\n", IsAODanalysis() ? "AOD" : "ESD");
958 //--------Initialize PID
959 fPID->SetHasMCData(kFALSE);
960 if(!fPID->GetNumberOfPIDdetectors())
962 fPID->AddDetector("TPC", 0);
963 fPID->AddDetector("EMCAL", 1);
966 fPID->SortDetectors();
967 fPIDqa = new AliHFEpidQAmanager();
968 fPIDqa->Initialize(fPID);
970 //--------Initialize correction Framework and Cuts
971 fCFM = new AliCFManager;
972 const Int_t kNcutSteps = AliHFEcuts::kNcutStepsMCTrack + AliHFEcuts::kNcutStepsRecTrack + AliHFEcuts::kNcutStepsDETrack;
973 fCFM->SetNStepParticle(kNcutSteps);
974 for(Int_t istep = 0; istep < kNcutSteps; istep++)
975 fCFM->SetParticleCutsList(istep, NULL);
978 AliWarning("Cuts not available. Default cuts will be used");
979 fCuts = new AliHFEcuts;
980 fCuts->CreateStandardCuts();
983 if(IsAODanalysis()) fCuts->SetAOD();
984 fCuts->Initialize(fCFM);
986 //Mixed event initialising
987 Int_t trackDepth = 2000;
988 Int_t poolsize = 1000;
990 Int_t nCentralityBins = 5;
992 Double_t CentralityBins[6];
993 Double_t CentralityBinsSC[7];
994 Double_t vertexBins[5];
997 CentralityBins[0] = 0;
998 CentralityBins[1] = 2;
999 CentralityBins[2] = 4;
1000 CentralityBins[3] = 6;
1001 CentralityBins[4] = 8;
1002 CentralityBins[5] = 10;
1004 vertexBins[0] = -10;
1009 fPoolMgr = new AliEventPoolManager(poolsize, trackDepth, nCentralityBins, (Double_t*) CentralityBins, nZvtxBins, (Double_t*) vertexBins);
1013 if(!fTriggerCentral)
1015 CentralityBinsSC[0] = 20;
1016 CentralityBinsSC[1] = 25;
1017 CentralityBinsSC[2] = 30;
1018 CentralityBinsSC[3] = 35;
1019 CentralityBinsSC[4] = 40;
1020 CentralityBinsSC[5] = 45;
1021 CentralityBinsSC[6] = 50;
1023 vertexBins[0] = -10;
1028 fPoolMgr = new AliEventPoolManager(poolsize, trackDepth, nCentralityBins, (Double_t*) CentralityBinsSC, nZvtxBins, (Double_t*) vertexBins);
1032 //---------Output Tlist
1033 fOutputList = new TList();
1034 fOutputList->SetOwner();
1035 fOutputList->Add(fPIDqa->MakeList("PIDQA"));
1037 fNoEvents = new TH1F("fNoEvents","",1,0,1) ;
1038 fOutputList->Add(fNoEvents);
1040 fcentrality = new TH1F("fcentrality","centrality", 100,0,100);
1041 fOutputList->Add(fcentrality);
1043 // fTrkpt = new TH1F("fTrkpt","track pt",1000,0,50);
1044 // fOutputList->Add(fTrkpt);
1046 // fTrackPtBefTrkCuts = new TH1F("fTrackPtBefTrkCuts","track pt before track cuts",1000,0,50);
1047 // fOutputList->Add(fTrackPtBefTrkCuts);
1049 // fTrackPtAftTrkCuts = new TH1F("fTrackPtAftTrkCuts","track pt after track cuts",1000,0,50);
1050 // fOutputList->Add(fTrackPtAftTrkCuts);
1052 // fTPCnsigma = new TH2F("fTPCnsigma", "TPC - n sigma",1000,0,50,200,-10,10);
1053 // fOutputList->Add(fTPCnsigma);
1055 fTrkEovPAft = new TH2F("fTrkEovPAft","track E/p after HFE pid",1000,0,50,100,0,2);
1056 fOutputList->Add(fTrkEovPAft);
1058 // fTrkEovPBefHad = new TH2F("fTrkEovPBefHad","track E/p for TPCnsig < 3.5",1000,0,50,100,0,2);
1059 // fOutputList->Add(fTrkEovPBefHad);
1061 // fdEdxBef = new TH2F("fdEdxBef","track dEdx vs p before HFE pid",1000,0,50,150,0,150);
1062 // fOutputList->Add(fdEdxBef);
1064 fElecPhi = new TH1F("fElecPhi", "Electron phi",1000,0,6.28);
1065 fOutputList->Add(fElecPhi);
1067 fElecPhiPt = new TH2F("fElecPhiPt", "Electron phi vs pt; Electron phi; pt (GeV/c)",1000,0,6.28,1000,0,100);
1068 fOutputList->Add(fElecPhiPt);
1070 fElecPhiTPChalf = new TH1F("fElecPhiTPChalf", "Electron phi for 0<eta<0.7",1000,0,6.28);
1071 fOutputList->Add(fElecPhiTPChalf);
1073 /* fElecPhiTPC = new TH1F("fElecPhiTPC", "Electron phi after TPC cut",1000,0,6.28);
1074 fOutputList->Add(fElecPhiTPC);
1076 fElecPhiTPCEovP = new TH1F("fElecPhiTPCEovP", "Electron phi after TPC and E/p cut",1000,0,6.28);
1077 fOutputList->Add(fElecPhiTPCEovP);
1079 fHadronPhi = new TH1F("fHadronPhi", "Hadron phi",1000,0,6.28);
1080 fOutputList->Add(fHadronPhi);
1082 fHadronPhiTPChalf = new TH1F("fHadronPhiTPChalf", "Hadron phi for 0<eta<0.9",1000,0,6.28);
1083 fOutputList->Add(fHadronPhiTPChalf);
1085 fHadronPhiPt = new TH2F("fHadronPhiPt", "Hadron phi vs pt; hadron phi; pt (GeV/c)",1000,0,6.28,1000,0,100);
1086 fOutputList->Add(fHadronPhiPt);
1089 fTrackHFEcuts = new TH1F("fTrackHFEcuts","Track phi for HFE cuts",1000,0,6.28);
1090 fOutputList->Add(fTrackHFEcuts);
1092 fTrakPhiSPD1 = new TH1F("fTrakPhiSPD1","Track phi for hit in SPD layer 1",1000,0,6.28);
1093 fOutputList->Add(fTrakPhiSPD1);
1095 fTrakPhiSPD2 = new TH1F("fTrakPhiSPD2","Track phi for hit in SPD layer 2",1000,0,6.28);
1096 fOutputList->Add(fTrakPhiSPD2);
1098 fTrakPhiSPDOr = new TH1F("fTrakPhiSPDOr","Track phi for hit in any SPD layer",1000,0,6.28);
1099 fOutputList->Add(fTrakPhiSPDOr);
1101 fTrakPhiSPDAnd = new TH1F("fTrakPhiSPDAnd","Track phi for hit in both SPD layer",1000,0,6.28);
1102 fOutputList->Add(fTrakPhiSPDAnd);
1104 fTrackHFEcutsITS = new TH1F("fTrackHFEcutsITS","Track phi for HFE cuts + ITS HFE cuts",1000,0,6.28);
1105 fOutputList->Add(fTrackHFEcutsITS);
1107 fSemiIncElecDphi = new TH2F("fSemiIncElecDphi", "Semi Inclusive elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1108 fOutputList->Add(fSemiIncElecDphi);
1110 fSemiIncElecDphi1 = new TH2F("fSemiIncElecDphi1", "Semi Inclusive elec-had Dphi correlation for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1111 fOutputList->Add(fSemiIncElecDphi1);
1113 fSemiIncElecDphi2 = new TH2F("fSemiIncElecDphi2", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1114 fOutputList->Add(fSemiIncElecDphi2);
1116 fSemiIncElecDphi3 = new TH2F("fSemiIncElecDphi3", "Semi Inclusive elec-had Dphi correlation for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1117 fOutputList->Add(fSemiIncElecDphi3);
1119 fSemiIncElecDphi4 = new TH2F("fSemiIncElecDphi4", "Semi Inclusive elec-had Dphi correlation for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1120 fOutputList->Add(fSemiIncElecDphi4);
1122 fPhotElecDphi = new TH2F("fPhotElecDphi", "Photon elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1123 fOutputList->Add(fPhotElecDphi);
1125 fPhotElecDphi1 = new TH2F("fPhotElecDphi1", "Photon elec-had Dphi correlation for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1126 fOutputList->Add(fPhotElecDphi1);
1128 fPhotElecDphi2 = new TH2F("fPhotElecDphi2", "Photon elec-had Dphi correlation for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1129 fOutputList->Add(fPhotElecDphi2);
1131 fPhotElecDphi3 = new TH2F("fPhotElecDphi3", "Photon elec-had Dphi correlation for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1132 fOutputList->Add(fPhotElecDphi3);
1134 fPhotElecDphi4 = new TH2F("fPhotElecDphi4", "Photon elec-had Dphi correlation for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1135 fOutputList->Add(fPhotElecDphi4);
1137 fInclusiveElecDphi = new TH2F("fInclusiveElecDphi", "Inclusive elec-had Dphi correlation",200,0,20,64,-1.57,4.71);
1138 fOutputList->Add(fInclusiveElecDphi);
1140 fInclusiveElecDphi1 = new TH2F("fInclusiveElecDphi1", "Inclusive elec-had Dphi correlation for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1141 fOutputList->Add(fInclusiveElecDphi1);
1143 fInclusiveElecDphi2 = new TH2F("fInclusiveElecDphi2", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1144 fOutputList->Add(fInclusiveElecDphi2);
1146 fInclusiveElecDphi3 = new TH2F("fInclusiveElecDphi3", "Inclusive elec-had Dphi correlation for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1147 fOutputList->Add(fInclusiveElecDphi3);
1149 fInclusiveElecDphi4 = new TH2F("fInclusiveElecDphi4", "Inclusive elec-had Dphi correlation for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1150 fOutputList->Add(fInclusiveElecDphi4);
1152 fInclusiveElecDphiEtaFS = new TH2F("fInclusiveElecDphiEtaFS", "Inclusive elec-had Dphi correlation (hadron 1<eta<1.6)",200,0,20,64,-1.57,4.71);
1153 fOutputList->Add(fInclusiveElecDphiEtaFS);
1155 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);
1156 fOutputList->Add(fInclusiveElecDphiEtaFS1);
1158 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);
1159 fOutputList->Add(fInclusiveElecDphiEtaFS2);
1161 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);
1162 fOutputList->Add(fInclusiveElecDphiEtaFS3);
1164 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);
1165 fOutputList->Add(fInclusiveElecDphiEtaFS4);
1167 fDphiULSMassLow = new TH2F("fDphiULSMassLow", "e-h Dphi ULS, mass<cut",200,0,20,64,-1.57,4.71);
1168 fOutputList->Add(fDphiULSMassLow);
1170 fDphiULSMassLow1 = new TH2F("fDphiULSMassLow1", "e-h Dphi ULS, mass<cut for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1171 fOutputList->Add(fDphiULSMassLow1);
1173 fDphiULSMassLow2 = new TH2F("fDphiULSMassLow2", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1174 fOutputList->Add(fDphiULSMassLow2);
1176 fDphiULSMassLow3 = new TH2F("fDphiULSMassLow3", "e-h Dphi ULS, mass<cut for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1177 fOutputList->Add(fDphiULSMassLow3);
1179 fDphiULSMassLow4 = new TH2F("fDphiULSMassLow4", "e-h Dphi ULS, mass<cut for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1180 fOutputList->Add(fDphiULSMassLow4);
1182 fDphiLSMassLow = new TH2F("fDphiLSMassLow", "e-h Dphi LS, mass<cut",200,0,20,64,-1.57,4.71);
1183 fOutputList->Add(fDphiLSMassLow);
1185 fDphiLSMassLow1 = new TH2F("fDphiLSMassLow1", "e-h Dphi LS, mass<cut for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1186 fOutputList->Add(fDphiLSMassLow1);
1188 fDphiLSMassLow2 = new TH2F("fDphiLSMassLow2", "e-h Dphi LS, mass<cut for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1189 fOutputList->Add(fDphiLSMassLow2);
1191 fDphiLSMassLow3 = new TH2F("fDphiLSMassLow3", "e-h Dphi LS, mass<cut for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1192 fOutputList->Add(fDphiLSMassLow3);
1194 fDphiLSMassLow4 = new TH2F("fDphiLSMassLow4", "e-h Dphi LS, mass<cut for 8<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1195 fOutputList->Add(fDphiLSMassLow4);
1197 fDphiULSMassLowNoPartner = new TH2F("fDphiULSMassLowNoPartner", "e-h Dphi ULS with no partner, mass<mass cut,",200,0,20,64,-1.57,4.71);
1198 fOutputList->Add(fDphiULSMassLowNoPartner);
1200 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);
1201 fOutputList->Add(fDphiULSMassLowNoPartner1);
1203 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);
1204 fOutputList->Add(fDphiULSMassLowNoPartner2);
1206 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);
1207 fOutputList->Add(fDphiULSMassLowNoPartner3);
1209 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);
1210 fOutputList->Add(fDphiULSMassLowNoPartner4);
1212 fDphiLSMassLowNoPartner = new TH2F("fDphiLSMassLowNoPartner", "e-h Dphi LS with no partner, mass<mass cut",200,0,20,64,-1.57,4.71);
1213 fOutputList->Add(fDphiLSMassLowNoPartner);
1215 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);
1216 fOutputList->Add(fDphiLSMassLowNoPartner1);
1218 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);
1219 fOutputList->Add(fDphiLSMassLowNoPartner2);
1221 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);
1222 fOutputList->Add(fDphiLSMassLowNoPartner3);
1224 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);
1225 fOutputList->Add(fDphiLSMassLowNoPartner4);
1227 fPhotoElecPt = new TH1F("fPhotoElecPt", "photonic electron pt",1000,0,100);
1228 fOutputList->Add(fPhotoElecPt);
1230 fSemiInclElecPt = new TH1F("fSemiInclElecPt", "Semi-inclusive electron pt",1000,0,100);
1231 fOutputList->Add(fSemiInclElecPt);
1233 fInclusiveElecPt = new TH1F("fInclElecPt", "Inclusive electron pt",1000,0,100);
1234 fOutputList->Add(fInclusiveElecPt);
1236 fULSElecPt = new TH1F("fULSElecPt", "ULS electron pt",1000,0,100);
1237 fOutputList->Add(fULSElecPt);
1239 fLSElecPt = new TH1F("fLSElecPt", "LS electron pt",1000,0,100);
1240 fOutputList->Add(fLSElecPt);
1242 fSemiIncElecDphiEta1 = new TH2F("fSemiIncElecDphiEta1", "Semi Inclusive elec-had Dphi correlation for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1243 fOutputList->Add(fSemiIncElecDphiEta1);
1244 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);
1245 fOutputList->Add(fSemiIncElecDphiEta11);
1246 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);
1247 fOutputList->Add(fSemiIncElecDphiEta12);
1248 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);
1249 fOutputList->Add(fSemiIncElecDphiEta13);
1250 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);
1251 fOutputList->Add(fSemiIncElecDphiEta14);
1252 fPhotElecDphiEta1 = new TH2F("fPhotElecDphiEta1", "Photon elec-had Dphi correlation for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1253 fOutputList->Add(fPhotElecDphiEta1);
1254 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);
1255 fOutputList->Add(fPhotElecDphiEta11);
1256 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);
1257 fOutputList->Add(fPhotElecDphiEta12);
1258 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);
1259 fOutputList->Add(fPhotElecDphiEta13);
1260 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);
1261 fOutputList->Add(fPhotElecDphiEta14);
1262 fInclusiveElecDphiEta1 = new TH2F("fInclusiveElecDphiEta1", "Inclusive elec-had Dphi correlation for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1263 fOutputList->Add(fInclusiveElecDphiEta1);
1264 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);
1265 fOutputList->Add(fInclusiveElecDphiEta11);
1266 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);
1267 fOutputList->Add(fInclusiveElecDphiEta12);
1268 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);
1269 fOutputList->Add(fInclusiveElecDphiEta13);
1270 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);
1271 fOutputList->Add(fInclusiveElecDphiEta14);
1272 fDphiULSMassLowEta1 = new TH2F("fDphiULSMassLowEta1", "e-h Dphi ULS, mass<cut for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1273 fOutputList->Add(fDphiULSMassLowEta1);
1274 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);
1275 fOutputList->Add(fDphiULSMassLowEta11);
1276 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);
1277 fOutputList->Add(fDphiULSMassLowEta12);
1278 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);
1279 fOutputList->Add(fDphiULSMassLowEta13);
1280 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);
1281 fOutputList->Add(fDphiULSMassLowEta14);
1282 fDphiLSMassLowEta1 = new TH2F("fDphiLSMassLowEta1", "e-h Dphi LS, mass<cut for |Eta < 0.8|",200,0,20,64,-1.57,4.71);
1283 fOutputList->Add(fDphiLSMassLowEta1);
1284 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);
1285 fOutputList->Add(fDphiLSMassLowEta11);
1286 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);
1287 fOutputList->Add(fDphiLSMassLowEta12);
1288 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);
1289 fOutputList->Add(fDphiLSMassLowEta13);
1290 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);
1291 fOutputList->Add(fDphiLSMassLowEta14);
1292 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);
1293 fOutputList->Add(fDphiULSMassLowNoPartnerEta1);
1294 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);
1295 fOutputList->Add(fDphiULSMassLowNoPartnerEta11);
1296 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);
1297 fOutputList->Add(fDphiULSMassLowNoPartnerEta12);
1298 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);
1299 fOutputList->Add(fDphiULSMassLowNoPartnerEta13);
1300 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);
1301 fOutputList->Add(fDphiULSMassLowNoPartnerEta14);
1302 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);
1303 fOutputList->Add(fDphiLSMassLowNoPartnerEta1);
1304 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);
1305 fOutputList->Add(fDphiLSMassLowNoPartnerEta11);
1306 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);
1307 fOutputList->Add(fDphiLSMassLowNoPartnerEta12);
1308 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);
1309 fOutputList->Add(fDphiLSMassLowNoPartnerEta13);
1310 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);
1311 fOutputList->Add(fDphiLSMassLowNoPartnerEta14);
1313 fSemiIncElecDphiEta2 = new TH2F("fSemiIncElecDphiEta2", "Semi Inclusive elec-had Dphi correlation for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1314 fOutputList->Add(fSemiIncElecDphiEta2);
1315 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);
1316 fOutputList->Add(fSemiIncElecDphiEta21);
1317 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);
1318 fOutputList->Add(fSemiIncElecDphiEta22);
1319 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);
1320 fOutputList->Add(fSemiIncElecDphiEta23);
1321 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);
1322 fOutputList->Add(fSemiIncElecDphiEta24);
1323 fPhotElecDphiEta2 = new TH2F("fPhotElecDphiEta2", "Photon elec-had Dphi correlation for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1324 fOutputList->Add(fPhotElecDphiEta2);
1325 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);
1326 fOutputList->Add(fPhotElecDphiEta21);
1327 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);
1328 fOutputList->Add(fPhotElecDphiEta22);
1329 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);
1330 fOutputList->Add(fPhotElecDphiEta23);
1331 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);
1332 fOutputList->Add(fPhotElecDphiEta24);
1333 fInclusiveElecDphiEta2 = new TH2F("fInclusiveElecDphiEta2", "Inclusive elec-had Dphi correlation for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1334 fOutputList->Add(fInclusiveElecDphiEta2);
1335 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);
1336 fOutputList->Add(fInclusiveElecDphiEta21);
1337 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);
1338 fOutputList->Add(fInclusiveElecDphiEta22);
1339 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);
1340 fOutputList->Add(fInclusiveElecDphiEta23);
1341 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);
1342 fOutputList->Add(fInclusiveElecDphiEta24);
1343 fDphiULSMassLowEta2 = new TH2F("fDphiULSMassLowEta2", "e-h Dphi ULS, mass<cut for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1344 fOutputList->Add(fDphiULSMassLowEta2);
1345 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);
1346 fOutputList->Add(fDphiULSMassLowEta21);
1347 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);
1348 fOutputList->Add(fDphiULSMassLowEta22);
1349 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);
1350 fOutputList->Add(fDphiULSMassLowEta23);
1351 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);
1352 fOutputList->Add(fDphiULSMassLowEta24);
1353 fDphiLSMassLowEta2 = new TH2F("fDphiLSMassLowEta2", "e-h Dphi LS, mass<cut for |Eta > 0.8|",200,0,20,64,-1.57,4.71);
1354 fOutputList->Add(fDphiLSMassLowEta2);
1355 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);
1356 fOutputList->Add(fDphiLSMassLowEta21);
1357 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);
1358 fOutputList->Add(fDphiLSMassLowEta22);
1359 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);
1360 fOutputList->Add(fDphiLSMassLowEta23);
1361 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);
1362 fOutputList->Add(fDphiLSMassLowEta24);
1363 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);
1364 fOutputList->Add(fDphiULSMassLowNoPartnerEta2);
1365 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);
1366 fOutputList->Add(fDphiULSMassLowNoPartnerEta21);
1367 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);
1368 fOutputList->Add(fDphiULSMassLowNoPartnerEta22);
1369 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);
1370 fOutputList->Add(fDphiULSMassLowNoPartnerEta23);
1371 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);
1372 fOutputList->Add(fDphiULSMassLowNoPartnerEta24);
1373 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);
1374 fOutputList->Add(fDphiLSMassLowNoPartnerEta2);
1375 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);
1376 fOutputList->Add(fDphiLSMassLowNoPartnerEta21);
1377 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);
1378 fOutputList->Add(fDphiLSMassLowNoPartnerEta22);
1379 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);
1380 fOutputList->Add(fDphiLSMassLowNoPartnerEta23);
1381 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);
1382 fOutputList->Add(fDphiLSMassLowNoPartnerEta24);
1384 /* fNCellv1 = new TH1F("fNCellv1","Ncell in clus (v1); NCell; count",100,0,100) ;
1385 fOutputList->Add(fNCellv1);
1387 fClsEv1 = new TH1F("fClsEv1", "Clus E(v1); Cls E; count",1000,0,100);
1388 fOutputList->Add(fClsEv1);
1390 fNClusv1 = new TH1F("fNClusv1","Nclus in event (v1); NClus; count",500,0,500) ;
1391 fOutputList->Add(fNClusv1);
1393 fInvmassLS1 = new TH1F("fInvmassLS1", "Inv mass of LS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1394 fOutputList->Add(fInvmassLS1);
1396 fInvmassULS1 = new TH1F("fInvmassULS1", "Inv mass of ULS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1397 fOutputList->Add(fInvmassULS1);
1399 fInvmassLS2 = new TH1F("fInvmassLS2", "Inv mass of LS (e,e) for pt^{e}>1; mass(GeV/c^2); counts;", 1000,0,1.0);
1400 fOutputList->Add(fInvmassLS2);
1402 fInvmassULS2 = new TH1F("fInvmassULS2", "Inv mass of ULS (e,e) for pt^{e}>1; mass(GeV/c^2); counts;", 1000,0,1.0);
1403 fOutputList->Add(fInvmassULS2);
1405 fInvmassLS3 = new TH1F("fInvmassLS3", "Inv mass of LS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1406 fOutputList->Add(fInvmassLS3);
1408 fInvmassULS3 = new TH1F("fInvmassULS3", "Inv mass of ULS (e,e) for pt^{e}>2; mass(GeV/c^2); counts;", 1000,0,1.0);
1409 fOutputList->Add(fInvmassULS3);
1411 fInvmassLS4 = new TH1F("fInvmassLS4", "Inv mass of LS (e,e) for pt^{e}>3; mass(GeV/c^2); counts;", 1000,0,1.0);
1412 fOutputList->Add(fInvmassLS4);
1414 fInvmassULS4 = new TH1F("fInvmassULS4", "Inv mass of ULS (e,e) for pt^{e}>3; mass(GeV/c^2); counts;", 1000,0,1.0);
1415 fOutputList->Add(fInvmassULS4);
1417 fInvmassLS5 = new TH1F("fInvmassLS5", "Inv mass of LS (e,e) for pt^{e}>4; mass(GeV/c^2); counts;", 1000,0,1.0);
1418 fOutputList->Add(fInvmassLS5);
1420 fInvmassULS5 = new TH1F("fInvmassULS5", "Inv mass of ULS (e,e) for pt^{e}>4; mass(GeV/c^2); counts;", 1000,0,1.0);
1421 fOutputList->Add(fInvmassULS5);
1423 fNoMixedEvents = new TH1F("fNoMixedEvents","",1,0,1) ;
1424 fOutputList->Add(fNoMixedEvents);
1426 fMixStat = new TH2F("fMixStat","no of events in pool vs Centrality;Nevent in pool;Centrality",200,0,200,5,0,10);
1427 fOutputList->Add(fMixStat);
1429 fMixStat1 = new TH2F("fMixStat1","no of events in pool vs zvtx;Nevents in pool;zvtx",200,0,200,4,-10,10);
1430 fOutputList->Add(fMixStat1);
1432 fMixedIncElecDphi = new TH2F("fMixedIncElecDphi", "Mixed event - Inclusive elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1433 fOutputList->Add(fMixedIncElecDphi);
1435 fMixedIncElecDphi1 = new TH2F("fMixedIncElecDphi1", "Mixed event - Inclusive elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1436 fOutputList->Add(fMixedIncElecDphi1);
1438 fMixedIncElecDphi2 = new TH2F("fMixedIncElecDphi2", "Mixed event - Inclusive elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1439 fOutputList->Add(fMixedIncElecDphi2);
1441 fMixedIncElecDphi3 = new TH2F("fMixedIncElecDphi3", "Mixed event - Inclusive elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1442 fOutputList->Add(fMixedIncElecDphi3);
1444 fMixedIncElecDphi4 = new TH2F("fMixedIncElecDphi4", "Mixed event - Inclusive elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1445 fOutputList->Add(fMixedIncElecDphi4);
1447 fMixedSemiIncElecDphi = new TH2F("fMixedSemiIncElecDphi", "Mixed event - Semi Inclusive elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1448 fOutputList->Add(fMixedSemiIncElecDphi);
1450 fMixedSemiIncElecDphi1 = new TH2F("fMixedSemiIncElecDphi1", "Mixed event - Semi Inclusive elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1451 fOutputList->Add(fMixedSemiIncElecDphi1);
1453 fMixedSemiIncElecDphi2 = new TH2F("fMixedSemiIncElecDphi2", "Mixed event - Semi Inclusive elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1454 fOutputList->Add(fMixedSemiIncElecDphi2);
1456 fMixedSemiIncElecDphi3 = new TH2F("fMixedSemiIncElecDphi3", "Mixed event - Semi Inclusive elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1457 fOutputList->Add(fMixedSemiIncElecDphi3);
1459 fMixedSemiIncElecDphi4 = new TH2F("fMixedSemiIncElecDphi4", "Mixed event - Semi Inclusive elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1460 fOutputList->Add(fMixedSemiIncElecDphi4);
1462 fMixedPhotElecDphi = new TH2F("fMixedPhotElecDphi", "Mixed event - Photo elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1463 fOutputList->Add(fMixedPhotElecDphi);
1465 fMixedPhotElecDphi1 = new TH2F("fMixedPhotElecDphi1", "Mixed event - Photo elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1466 fOutputList->Add(fMixedPhotElecDphi1);
1468 fMixedPhotElecDphi2 = new TH2F("fMixedPhotElecDphi2", "Mixed event - Photo elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1469 fOutputList->Add(fMixedPhotElecDphi2);
1471 fMixedPhotElecDphi3 = new TH2F("fMixedPhotElecDphi3", "Mixed event - Photo elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1472 fOutputList->Add(fMixedPhotElecDphi3);
1474 fMixedPhotElecDphi4 = new TH2F("fMixedPhotElecDphi4", "Mixed event - Photo elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1475 fOutputList->Add(fMixedPhotElecDphi4);
1477 fMixedDphiULSMassLow = new TH2F("fMixedDphiULSMassLow", "Mixed event - ULS mass < cut elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1478 fOutputList->Add(fMixedDphiULSMassLow);
1480 fMixedDphiULSMassLow1 = new TH2F("fMixedDphiULSMassLow1", "Mixed event - ULS mass < cut elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1481 fOutputList->Add(fMixedDphiULSMassLow1);
1483 fMixedDphiULSMassLow2 = new TH2F("fMixedDphiULSMassLow2", "Mixed event - ULS mass < cut elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1484 fOutputList->Add(fMixedDphiULSMassLow2);
1486 fMixedDphiULSMassLow3 = new TH2F("fMixedDphiULSMassLow3", "Mixed event - ULS mass < cut elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1487 fOutputList->Add(fMixedDphiULSMassLow3);
1489 fMixedDphiULSMassLow4 = new TH2F("fMixedDphiULSMassLow4", "Mixed event - ULS mass < cut elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1490 fOutputList->Add(fMixedDphiULSMassLow4);
1492 fMixedDphiLSMassLow = new TH2F("fMixedDphiLSMassLow", "Mixed event - LS mass < cut elec-had Dphi correlation",200,0,20,100,-1.57,4.71);
1493 fOutputList->Add(fMixedDphiLSMassLow);
1495 fMixedDphiLSMassLow1 = new TH2F("fMixedDphiLSMassLow1", "Mixed event - LS mass < cut elec-had Dphi correlation 2<pt<4",200,0,20,100,-1.57,4.71);
1496 fOutputList->Add(fMixedDphiLSMassLow1);
1498 fMixedDphiLSMassLow2 = new TH2F("fMixedDphiLSMassLow2", "Mixed event - LS mass < cut elec-had Dphi correlation 4<pt<6",200,0,20,100,-1.57,4.71);
1499 fOutputList->Add(fMixedDphiLSMassLow2);
1501 fMixedDphiLSMassLow3 = new TH2F("fMixedDphiLSMassLow3", "Mixed event - LS mass < cut elec-had Dphi correlation 6<pt<8",200,0,20,100,-1.57,4.71);
1502 fOutputList->Add(fMixedDphiLSMassLow3);
1504 fMixedDphiLSMassLow4 = new TH2F("fMixedDphiLSMassLow4", "Mixed event - LS mass < cut elec-had Dphi correlation 4<pt<10",200,0,20,100,-1.57,4.71);
1505 fOutputList->Add(fMixedDphiLSMassLow4);
1507 fHadronPt = new TH1F("fHadronPt","hadron pt distribution",1000,0,100);
1508 fOutputList->Add(fHadronPt);
1510 fCentralityPass = new TH1F("fCentralityPass", "Centrality Pass", 101, -1, 100);
1511 fOutputList->Add(fCentralityPass);
1513 fCentralityNoPass = new TH1F("fCentralityNoPass", "Centrality No Pass", 101, -1, 100);
1514 fOutputList->Add(fCentralityNoPass);
1516 fHadronDphi = new TH2F("fHadronDphi", "Hadron-had Dphi correlation",200,0,20,64,-1.57,4.71);
1517 fOutputList->Add(fHadronDphi);
1519 fHadronDphi1 = new TH2F("fHadronDphi1", "Hadron-had Dphi correlation for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1520 fOutputList->Add(fHadronDphi1);
1522 fHadronDphi2 = new TH2F("fHadronDphi2", "Hadron-had Dphi correlation for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1523 fOutputList->Add(fHadronDphi2);
1525 fHadronDphi3 = new TH2F("fHadronDphi3", "Hadron-had Dphi correlation for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1526 fOutputList->Add(fHadronDphi3);
1528 fHadronDphi4 = new TH2F("fHadronDphi4", "Hadron-had Dphi correlation for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1529 fOutputList->Add(fHadronDphi4);
1531 fPiPt = new TH1F("fPiPt","Pi (-10 <TPC nsig < -3.5) pt distribution",1000,0,100);
1532 fOutputList->Add(fPiPt);
1534 fHadronDphiNoSS = new TH2F("fHadronDphiNoSS", "Hadron-had Dphi correlation (NoSS cuts)",200,0,20,64,-1.57,4.71);
1535 fOutputList->Add(fHadronDphiNoSS);
1537 fHadronDphiNoSS1 = new TH2F("fHadronDphiNoSS1", "Hadron-had Dphi correlation (NoSS cuts) for 2<pt^{asso}<4",200,0,20,64,-1.57,4.71);
1538 fOutputList->Add(fHadronDphiNoSS1);
1540 fHadronDphiNoSS2 = new TH2F("fHadronDphiNoSS2", "Hadron-had Dphi correlation (NoSS cuts) for 4<pt^{asso}<6",200,0,20,64,-1.57,4.71);
1541 fOutputList->Add(fHadronDphiNoSS2);
1543 fHadronDphiNoSS3 = new TH2F("fHadronDphiNoSS3", "Hadron-had Dphi correlation (NoSS cuts) for 6<pt^{asso}<8",200,0,20,64,-1.57,4.71);
1544 fOutputList->Add(fHadronDphiNoSS3);
1546 fHadronDphiNoSS4 = new TH2F("fHadronDphiNoSS4", "Hadron-had Dphi correlation (NoSS cuts) for 4<pt^{asso}<10",200,0,20,64,-1.57,4.71);
1547 fOutputList->Add(fHadronDphiNoSS4);
1549 fPiPtNoSS = new TH1F("fPiPtNoSS","Pi (-10 <TPC nsig < -3.5) (NoSS cuts) pt distribution",1000,0,100);
1550 fOutputList->Add(fPiPtNoSS);
1552 fEovPWoSS = new TH2F("fEovPWoSS","E/p distribution without SS cuts",1000,0,50,100,0,2);
1553 fOutputList->Add(fEovPWoSS);
1555 fEovPWSS = new TH2F("fEovPWSS","E/p distribution with SS cuts",1000,0,50,100,0,2);
1556 fOutputList->Add(fEovPWSS);
1558 fEovPHadWoSS = new TH2F("fEovPHadWoSS","E/p distribution for hadrons without SS cuts",1000,0,50,100,0,2);
1559 fOutputList->Add(fEovPHadWoSS);
1561 fEovPHadWSS = new TH2F("fEovPHadWSS","E/p distribution for hadrons with SS cuts",1000,0,50,100,0,2);
1562 fOutputList->Add(fEovPHadWSS);
1564 fHadronDphiEta1 = new TH2F("fHadronDphiEta1", "Hadron-had Dphi correlation for |Eta <1|",200,0,20,64,-1.57,4.71);
1565 fOutputList->Add(fHadronDphiEta1);
1566 fHadronDphiEta11 = new TH2F("fHadronDphiEta11", "Hadron-had Dphi correlation for 2<pt^{asso}<4 for |Eta <1|",200,0,20,64,-1.57,4.71);
1567 fOutputList->Add(fHadronDphiEta11);
1568 fHadronDphiEta12 = new TH2F("fHadronDphiEta12", "Hadron-had Dphi correlation for 4<pt^{asso}<6 for |Eta <1|",200,0,20,64,-1.57,4.71);
1569 fOutputList->Add(fHadronDphiEta12);
1570 fHadronDphiEta13 = new TH2F("fHadronDphiEta13", "Hadron-had Dphi correlation for 6<pt^{asso}<8 for |Eta <1|",200,0,20,64,-1.57,4.71);
1571 fOutputList->Add(fHadronDphiEta13);
1572 fHadronDphiEta14 = new TH2F("fHadronDphiEta14", "Hadron-had Dphi correlation for 8<pt^{asso}<10 for |Eta <1|",200,0,20,64,-1.57,4.71);
1573 fOutputList->Add(fHadronDphiEta14);
1575 fHadronDphiNoSSEta1 = new TH2F("fHadronDphiNoSSEta1", "Hadron-had DphiNoSS correlation for |Eta <1|",200,0,20,64,-1.57,4.71);
1576 fOutputList->Add(fHadronDphiNoSSEta1);
1577 fHadronDphiNoSSEta11 = new TH2F("fHadronDphiNoSSEta11", "Hadron-had DphiNoSS correlation for 2<pt^{asso}<4 for |Eta <1|",200,0,20,64,-1.57,4.71);
1578 fOutputList->Add(fHadronDphiNoSSEta11);
1579 fHadronDphiNoSSEta12 = new TH2F("fHadronDphiNoSSEta12", "Hadron-had DphiNoSS correlation for 4<pt^{asso}<6 for |Eta <1|",200,0,20,64,-1.57,4.71);
1580 fOutputList->Add(fHadronDphiNoSSEta12);
1581 fHadronDphiNoSSEta13 = new TH2F("fHadronDphiNoSSEta13", "Hadron-had DphiNoSS correlation for 6<pt^{asso}<8 for |Eta <1|",200,0,20,64,-1.57,4.71);
1582 fOutputList->Add(fHadronDphiNoSSEta13);
1583 fHadronDphiNoSSEta14 = new TH2F("fHadronDphiNoSSEta14", "Hadron-had DphiNoSS correlation for 4<pt^{asso}<10 for |Eta <1|",200,0,20,64,-1.57,4.71);
1584 fOutputList->Add(fHadronDphiNoSSEta14);
1586 fHadronDphiEta2 = new TH2F("fHadronDphiEta2", "Hadron-had Dphi correlation for |Eta >1|",200,0,20,64,-1.57,4.71);
1587 fOutputList->Add(fHadronDphiEta2);
1588 fHadronDphiEta21 = new TH2F("fHadronDphiEta21", "Hadron-had Dphi correlation for 2<pt^{asso}<4 for |Eta >1|",200,0,20,64,-1.57,4.71);
1589 fOutputList->Add(fHadronDphiEta21);
1590 fHadronDphiEta22 = new TH2F("fHadronDphiEta22", "Hadron-had Dphi correlation for 4<pt^{asso}<6 for |Eta >1|",200,0,20,64,-1.57,4.71);
1591 fOutputList->Add(fHadronDphiEta22);
1592 fHadronDphiEta23 = new TH2F("fHadronDphiEta23", "Hadron-had Dphi correlation for 6<pt^{asso}<8 for |Eta >1|",200,0,20,64,-1.57,4.71);
1593 fOutputList->Add(fHadronDphiEta23);
1594 fHadronDphiEta24 = new TH2F("fHadronDphiEta24", "Hadron-had Dphi correlation for 4<pt^{asso}<10 for |Eta >1|",200,0,20,64,-1.57,4.71);
1595 fOutputList->Add(fHadronDphiEta24);
1597 fHadronDphiNoSSEta2 = new TH2F("fHadronDphiNoSSEta2", "Hadron-had DphiNoSS correlation for |Eta >1|",200,0,20,64,-1.57,4.71);
1598 fOutputList->Add(fHadronDphiNoSSEta2);
1599 fHadronDphiNoSSEta21 = new TH2F("fHadronDphiNoSSEta21", "Hadron-had DphiNoSS correlation for 2<pt^{asso}<4 for |Eta >1|",200,0,20,64,-1.57,4.71);
1600 fOutputList->Add(fHadronDphiNoSSEta21);
1601 fHadronDphiNoSSEta22 = new TH2F("fHadronDphiNoSSEta22", "Hadron-had DphiNoSS correlation for 4<pt^{asso}<6 for |Eta >1|",200,0,20,64,-1.57,4.71);
1602 fOutputList->Add(fHadronDphiNoSSEta22);
1603 fHadronDphiNoSSEta23 = new TH2F("fHadronDphiNoSSEta23", "Hadron-had DphiNoSS correlation for 6<pt^{asso}<8 for |Eta >1|",200,0,20,64,-1.57,4.71);
1604 fOutputList->Add(fHadronDphiNoSSEta23);
1605 fHadronDphiNoSSEta24 = new TH2F("fHadronDphiNoSSEta24", "Hadron-had DphiNoSS correlation for 4<pt^{asso}<10 for |Eta >1|",200,0,20,64,-1.57,4.71);
1606 fOutputList->Add(fHadronDphiNoSSEta24);
1609 // Int_t binsv1[6]={500,200,50,50,50,50}; //pt, TPCnsig, E/p, M20, M02, dispersion
1610 // Double_t xminv1[6]={0,-10,0,0,0,0};
1611 // Double_t xmaxv1[6]={25,10,2,2,2,2};
1612 // fSparseElectron = new THnSparseD ("Electron","Electron",6,binsv1,xminv1,xmaxv1);
1613 // fOutputList->Add(fSparseElectron);
1615 PostData(1,fOutputList);
1618 //________________________________________________________________________
1619 void AliAnalysisTaskElecHadronCorrel::Terminate(Option_t *)
1621 // Info("Terminate");
1622 AliAnalysisTaskSE::Terminate();
1625 //________________________________________________________________________
1626 Bool_t AliAnalysisTaskElecHadronCorrel::ProcessCutStep(Int_t cutStep, AliVParticle *track)
1628 // Check single track cuts for a given cut step
1629 const Int_t kMCOffset = AliHFEcuts::kNcutStepsMCTrack;
1630 if(!fCFM->CheckParticleCuts(cutStep + kMCOffset, track)) return kFALSE;
1634 //_________________________________________
1635 void AliAnalysisTaskElecHadronCorrel::SelectPhotonicElectron(Int_t itrack, AliVTrack *track, Bool_t &fFlagPhotonicElec)
1637 //Identify non-heavy flavour electrons using Invariant mass method
1639 fTrackCuts1->SetAcceptKinkDaughters(kFALSE);
1640 fTrackCuts1->SetRequireTPCRefit(kTRUE);
1641 fTrackCuts1->SetRequireITSRefit(kTRUE);
1642 fTrackCuts1->SetEtaRange(-0.9,0.9);
1643 fTrackCuts1->SetRequireSigmaToVertex(kTRUE);
1644 fTrackCuts1->SetMaxChi2PerClusterTPC(4);
1645 fTrackCuts1->SetMinNClustersTPC(80);
1646 fTrackCuts1->SetMaxDCAToVertexZ(3.2);
1647 fTrackCuts1->SetMaxDCAToVertexXY(2.4);
1648 fTrackCuts1->SetDCAToVertex2D(kTRUE);
1650 Bool_t flagPhotonicElec = kFALSE;
1652 for(Int_t jTracks = 0; jTracks<fVevent->GetNumberOfTracks(); jTracks++){
1653 AliVParticle* VtrackAsso = fVevent->GetTrack(jTracks);
1655 printf("ERROR: Could not receive track %d\n", jTracks);
1659 AliVTrack *trackAsso = dynamic_cast<AliVTrack*>(VtrackAsso);
1661 //track cuts applied
1662 if(IsAODanalysis()) {
1663 AliAODTrack *atrackAsso = dynamic_cast<AliAODTrack*>(VtrackAsso);
1664 if(!atrackAsso->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1665 if(atrackAsso->GetTPCNcls() < 80) continue;
1666 if((!(atrackAsso->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackAsso->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
1669 AliESDtrack *etrackAsso = dynamic_cast<AliESDtrack*>(VtrackAsso);
1670 if(!fTrackCuts1->AcceptTrack(etrackAsso)) continue;
1673 if(jTracks==itrack) continue;
1675 Double_t dEdxAsso = -999., ptAsso=-999., nsigma=-999.0;
1676 Double_t mass=-999., width = -999;
1677 Bool_t fFlagLS=kFALSE, fFlagULS=kFALSE;
1679 dEdxAsso = trackAsso->GetTPCsignal();
1680 nsigma = fPID->GetPIDResponse() ? fPID->GetPIDResponse()->NumberOfSigmasTPC(trackAsso, AliPID::kElectron) : 1000;
1681 ptAsso = trackAsso->Pt();
1682 Int_t chargeAsso = trackAsso->Charge();
1683 Int_t charge = track->Charge();
1685 if(ptAsso <0.3) continue;
1686 if(trackAsso->Eta()<-0.9 || trackAsso->Eta()>0.9) continue;
1687 if(nsigma < -3 || nsigma > 3) continue;
1689 Int_t fPDGe1 = 11; Int_t fPDGe2 = 11;
1690 if(charge>0) fPDGe1 = -11;
1691 if(chargeAsso>0) fPDGe2 = -11;
1693 if(charge == chargeAsso) fFlagLS = kTRUE;
1694 if(charge != chargeAsso) fFlagULS = kTRUE;
1696 AliKFParticle ge1 = AliKFParticle(*track, fPDGe1);
1697 AliKFParticle ge2 = AliKFParticle(*trackAsso, fPDGe2);
1698 AliKFParticle recg(ge1, ge2);
1700 if(recg.GetNDF()<1) continue;
1701 Double_t chi2recg = recg.GetChi2()/recg.GetNDF();
1702 if(TMath::Sqrt(TMath::Abs(chi2recg))>3.) continue;
1705 MassCorrect = recg.GetMass(mass,width);
1708 if(track->Pt()>2)fInvmassLS1->Fill(mass);
1709 // if(track->Pt()> 1) fInvmassLS2->Fill(mass);
1710 // if(track->Pt()>2) fInvmassLS3->Fill(mass);
1711 // if(track->Pt()>3) fInvmassLS4->Fill(mass);
1712 // if(track->Pt()>4) fInvmassLS5->Fill(mass);
1715 if(track->Pt()>2)fInvmassULS1->Fill(mass);
1716 //if(track->Pt() >1) fInvmassULS2->Fill(mass);
1717 //if(track->Pt() >2) fInvmassULS3->Fill(mass);
1718 //if(track->Pt() >3) fInvmassULS4->Fill(mass);
1719 //if(track->Pt() >4) fInvmassULS5->Fill(mass);
1722 if(mass<fInvmassCut){
1725 ElectronHadCorrel(itrack,track,fDphiULSMassLow, fDphiULSMassLow1,fDphiULSMassLow2,fDphiULSMassLow3,fDphiULSMassLow4);
1726 ElectronHadCorrelEtaBins(itrack,track,fDphiULSMassLowEta1, fDphiULSMassLowEta11,fDphiULSMassLowEta12,fDphiULSMassLowEta13,fDphiULSMassLowEta14,fDphiULSMassLowEta2, fDphiULSMassLowEta21,fDphiULSMassLowEta22,fDphiULSMassLowEta23,fDphiULSMassLowEta24);
1727 fULSElecPt->Fill(track->Pt());
1728 MixedEvent(track,fMixedDphiULSMassLow,fMixedDphiULSMassLow1,fMixedDphiULSMassLow2, fMixedDphiULSMassLow3, fMixedDphiULSMassLow4);
1732 ElectronHadCorrel(itrack,track,fDphiLSMassLow,fDphiLSMassLow1,fDphiLSMassLow2,fDphiLSMassLow3,fDphiLSMassLow4);
1733 ElectronHadCorrelEtaBins(itrack,track,fDphiLSMassLowEta1, fDphiLSMassLowEta11,fDphiLSMassLowEta12,fDphiLSMassLowEta13,fDphiLSMassLowEta14,fDphiLSMassLowEta2, fDphiLSMassLowEta21,fDphiLSMassLowEta22,fDphiLSMassLowEta23,fDphiLSMassLowEta24);
1734 fLSElecPt->Fill(track->Pt());
1735 MixedEvent(track,fMixedDphiLSMassLow,fMixedDphiLSMassLow1,fMixedDphiLSMassLow2, fMixedDphiLSMassLow3, fMixedDphiLSMassLow4);
1738 ElectronHadCorrelNoPartner(itrack,jTracks,track,fDphiLSMassLowNoPartner, fDphiLSMassLowNoPartner1,fDphiLSMassLowNoPartner2,fDphiLSMassLowNoPartner3,fDphiLSMassLowNoPartner4);
1739 ElectronHadCorrelEtaBinsNoPartner(itrack,jTracks,track,fDphiLSMassLowNoPartnerEta1, fDphiLSMassLowNoPartnerEta11,fDphiLSMassLowNoPartnerEta12,fDphiLSMassLowNoPartnerEta13,fDphiLSMassLowNoPartnerEta14,fDphiLSMassLowNoPartnerEta2, fDphiLSMassLowNoPartnerEta21,fDphiLSMassLowNoPartnerEta22,fDphiLSMassLowNoPartnerEta23,fDphiLSMassLowNoPartnerEta24);
1742 ElectronHadCorrelNoPartner(itrack,jTracks,track,fDphiULSMassLowNoPartner, fDphiULSMassLowNoPartner1,fDphiULSMassLowNoPartner2,fDphiULSMassLowNoPartner3,fDphiULSMassLowNoPartner4);
1743 ElectronHadCorrelEtaBinsNoPartner(itrack,jTracks,track,fDphiULSMassLowNoPartnerEta1, fDphiULSMassLowNoPartnerEta11,fDphiULSMassLowNoPartnerEta12,fDphiULSMassLowNoPartnerEta13,fDphiULSMassLowNoPartnerEta14,fDphiULSMassLowNoPartnerEta2, fDphiULSMassLowNoPartnerEta21,fDphiULSMassLowNoPartnerEta22,fDphiULSMassLowNoPartnerEta23,fDphiULSMassLowNoPartnerEta24);
1747 if(mass<fInvmassCut && fFlagULS && !flagPhotonicElec){
1748 flagPhotonicElec = kTRUE;
1753 fFlagPhotonicElec = flagPhotonicElec;
1755 //_________________________________________
1756 void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrel(Int_t itrack, AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2,TH2F *DphiPt3,TH2F *DphiPt4)
1758 //Construct Delta Phi between electrons and hadrons
1760 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
1761 fTrackCuts2->SetRequireTPCRefit(kTRUE);
1762 fTrackCuts2->SetRequireITSRefit(kTRUE);
1763 fTrackCuts2->SetEtaRange(-0.9,0.9);
1764 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
1765 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
1766 fTrackCuts2->SetMinNClustersTPC(80);
1767 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
1768 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
1769 fTrackCuts2->SetDCAToVertex2D(kTRUE);
1771 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
1772 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
1774 printf("ERROR: Could not receive track %d\n", ktracks);
1778 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
1780 if(IsAODanalysis()) {
1781 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
1782 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1783 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
1784 if(atrackHad->GetTPCNcls() < 80) continue;
1787 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
1788 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
1791 if(ktracks == itrack) continue; //do not select the same electron
1793 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
1794 Double_t ptEle = -999;
1795 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
1798 dEdxHad = trackHad->GetTPCsignal();
1799 ptHad = trackHad->Pt();
1800 pHad = trackHad->P();
1801 ptEle = track->Pt();
1803 // if(ptHad <2) continue;
1804 if(ptHad > ptEle) continue;
1805 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
1807 phiEle = track->Phi();
1808 phiHad = trackHad->Phi();
1809 Dphi = phiEle - phiHad;
1815 if(ptHad>2) DphiPt->Fill(ptEle,Dphi);
1816 if(ptHad>2 && ptHad<4) DphiPt1->Fill(ptEle,Dphi);
1817 if(ptHad>4 && ptHad<6) DphiPt2->Fill(ptEle,Dphi);
1818 if(ptHad>6 && ptHad<8) DphiPt3->Fill(ptEle,Dphi);
1819 if(ptHad>4 && ptHad<10) DphiPt4->Fill(ptEle,Dphi);
1823 //_________________________________________
1824 void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrelNoPartner(Int_t itrack,Int_t jtrack, AliVTrack *track, TH2F *DphiPtNew, TH2F *DphiPtNew1,TH2F *DphiPtNew2,TH2F *DphiPtNew3,TH2F *DphiPtNew4)
1826 //Construct Delta Phi between electrons and hadrons for electrons from invariant mass calculation excluding associated track
1828 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
1829 fTrackCuts2->SetRequireTPCRefit(kTRUE);
1830 fTrackCuts2->SetRequireITSRefit(kTRUE);
1831 fTrackCuts2->SetEtaRange(-0.9,0.9);
1832 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
1833 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
1834 fTrackCuts2->SetMinNClustersTPC(80);
1835 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
1836 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
1837 fTrackCuts2->SetDCAToVertex2D(kTRUE);
1839 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
1840 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
1842 printf("ERROR: Could not receive track %d\n", ktracks);
1846 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
1848 if(IsAODanalysis()) {
1849 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
1850 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1851 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
1852 if(atrackHad->GetTPCNcls() < 80) continue;
1855 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
1856 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
1859 if(ktracks == itrack || ktracks == jtrack) continue; //do not select the same electron and associated track from inv mass cal
1861 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
1862 Double_t ptEle = -999;
1863 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
1866 dEdxHad = trackHad->GetTPCsignal();
1867 ptHad = trackHad->Pt();
1868 pHad = trackHad->P();
1869 ptEle = track->Pt();
1871 // if(ptHad <2) continue;
1872 if(ptHad > ptEle) continue;
1873 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
1875 phiEle = track->Phi();
1876 phiHad = trackHad->Phi();
1877 Dphi = phiEle - phiHad;
1883 if(ptHad>2) DphiPtNew->Fill(ptEle,Dphi);
1884 if(ptHad>2 && ptHad<4) DphiPtNew1->Fill(ptEle,Dphi);
1885 if(ptHad>4 && ptHad<6) DphiPtNew2->Fill(ptEle,Dphi);
1886 if(ptHad>6 && ptHad<8) DphiPtNew3->Fill(ptEle,Dphi);
1887 if(ptHad>4 && ptHad<10) DphiPtNew4->Fill(ptEle,Dphi);
1890 //_________________________________________
1891 void AliAnalysisTaskElecHadronCorrel::ElectronHadCorrelEtaFarSide(Int_t itrack, AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2,TH2F *DphiPt3,TH2F *DphiPt4)
1893 //Construct Delta Phi between electrons and hadrons for 1<eta(had)<1.6
1895 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
1896 fTrackCuts2->SetRequireTPCRefit(kTRUE);
1897 fTrackCuts2->SetRequireITSRefit(kTRUE);
1898 fTrackCuts2->SetEtaRange(-0.9,0.9);
1899 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
1900 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
1901 fTrackCuts2->SetMinNClustersTPC(80);
1902 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
1903 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
1904 fTrackCuts2->SetDCAToVertex2D(kTRUE);
1906 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
1907 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
1909 printf("ERROR: Could not receive track %d\n", ktracks);
1912 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
1914 if(IsAODanalysis()) {
1915 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
1916 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1917 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
1918 if(atrackHad->GetTPCNcls() < 80) continue;
1921 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
1922 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
1925 if(ktracks == itrack) continue; //do not select the same electron
1927 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
1928 Double_t ptEle = -999;
1929 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
1932 dEdxHad = trackHad->GetTPCsignal();
1933 ptHad = trackHad->Pt();
1934 pHad = trackHad->P();
1935 ptEle = track->Pt();
1937 // if(ptHad <2) continue;
1938 if(ptHad > ptEle) continue;
1939 if(trackHad->Eta()<1 || trackHad->Eta()>1.6) continue;
1941 phiEle = track->Phi();
1942 phiHad = trackHad->Phi();
1943 Dphi = phiEle - phiHad;
1949 if(ptHad>2) DphiPt->Fill(ptEle,Dphi);
1950 if(ptHad>2 && ptHad<4) DphiPt1->Fill(ptEle,Dphi);
1951 if(ptHad>4 && ptHad<6) DphiPt2->Fill(ptEle,Dphi);
1952 if(ptHad>6 && ptHad<8) DphiPt3->Fill(ptEle,Dphi);
1953 if(ptHad>4 && ptHad<10) DphiPt4->Fill(ptEle,Dphi);
1957 //_________________________________________
1958 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)
1960 //Construct Delta Phi between electrons and hadrons in different Eta bins
1962 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
1963 fTrackCuts2->SetRequireTPCRefit(kTRUE);
1964 fTrackCuts2->SetRequireITSRefit(kTRUE);
1965 fTrackCuts2->SetEtaRange(-0.9,0.9);
1966 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
1967 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
1968 fTrackCuts2->SetMinNClustersTPC(80);
1969 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
1970 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
1971 fTrackCuts2->SetDCAToVertex2D(kTRUE);
1973 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
1974 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
1976 printf("ERROR: Could not receive track %d\n", ktracks);
1980 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
1982 if(IsAODanalysis()) {
1983 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
1984 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
1985 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
1986 if(atrackHad->GetTPCNcls() < 80) continue;
1989 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
1990 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
1993 if(ktracks == itrack) continue; //do not select the same electron
1995 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
1996 Double_t ptEle = -999;
1997 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
1998 Double_t etaEle = -999, etaHad=-999, DEta=-999;
2001 dEdxHad = trackHad->GetTPCsignal();
2002 ptHad = trackHad->Pt();
2003 pHad = trackHad->P();
2004 ptEle = track->Pt();
2006 // if(ptHad <2) continue;
2007 if(ptHad > ptEle) continue;
2008 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2010 phiEle = track->Phi();
2011 phiHad = trackHad->Phi();
2012 Dphi = phiEle - phiHad;
2019 etaEle = track->Eta();
2020 etaHad = trackHad->Eta();
2021 DEta = etaEle - etaHad;
2023 if(TMath::Abs(DEta)<0.8){
2024 if(ptHad>2) DphiPtEta1->Fill(ptEle,Dphi);
2025 if(ptHad>2 && ptHad<4) DphiPtEta11->Fill(ptEle,Dphi);
2026 if(ptHad>4 && ptHad<6) DphiPtEta12->Fill(ptEle,Dphi);
2027 if(ptHad>6 && ptHad<8) DphiPtEta13->Fill(ptEle,Dphi);
2028 if(ptHad>4 && ptHad<10) DphiPtEta14->Fill(ptEle,Dphi);
2031 if(TMath::Abs(DEta)>0.8){
2032 if(ptHad>2) DphiPtEta2->Fill(ptEle,Dphi);
2033 if(ptHad>2 && ptHad<4) DphiPtEta21->Fill(ptEle,Dphi);
2034 if(ptHad>4 && ptHad<6) DphiPtEta22->Fill(ptEle,Dphi);
2035 if(ptHad>6 && ptHad<8) DphiPtEta23->Fill(ptEle,Dphi);
2036 if(ptHad>4 && ptHad<10) DphiPtEta24->Fill(ptEle,Dphi);
2040 //_________________________________________
2041 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)
2043 //Construct Delta Phi between electrons and hadrons in different Eta bins (exclude associated track)
2045 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2046 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2047 fTrackCuts2->SetRequireITSRefit(kTRUE);
2048 fTrackCuts2->SetEtaRange(-0.9,0.9);
2049 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2050 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2051 fTrackCuts2->SetMinNClustersTPC(80);
2052 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2053 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2054 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2056 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2057 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2059 printf("ERROR: Could not receive track %d\n", ktracks);
2063 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2065 if(IsAODanalysis()) {
2066 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2067 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2068 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2069 if(atrackHad->GetTPCNcls() < 80) continue;
2072 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2073 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2076 if(ktracks == itrack || ktracks == jtrack) continue; //do not select the same electron and associated track from inv mass cal
2078 Double_t ptHad= -999, pHad=-999., dEdxHad = -999;
2079 Double_t ptEle = -999;
2080 Double_t phiEle = -999, phiHad = -999, Dphi = -999;
2081 Double_t etaEle = -999, etaHad=-999, DEta=-999;
2084 dEdxHad = trackHad->GetTPCsignal();
2085 ptHad = trackHad->Pt();
2086 pHad = trackHad->P();
2087 ptEle = track->Pt();
2089 // if(ptHad <2) continue;
2090 if(ptHad > ptEle) continue;
2091 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2093 phiEle = track->Phi();
2094 phiHad = trackHad->Phi();
2095 Dphi = phiEle - phiHad;
2102 etaEle = track->Eta();
2103 etaHad = trackHad->Eta();
2104 DEta = etaEle - etaHad;
2106 if(TMath::Abs(DEta)<0.8){
2107 if(ptHad>2) DphiPtEta1->Fill(ptEle,Dphi);
2108 if(ptHad>2 && ptHad<4) DphiPtEta11->Fill(ptEle,Dphi);
2109 if(ptHad>4 && ptHad<6) DphiPtEta12->Fill(ptEle,Dphi);
2110 if(ptHad>6 && ptHad<8) DphiPtEta13->Fill(ptEle,Dphi);
2111 if(ptHad>4 && ptHad<10) DphiPtEta14->Fill(ptEle,Dphi);
2114 if(TMath::Abs(DEta)>0.8){
2115 if(ptHad>2) DphiPtEta2->Fill(ptEle,Dphi);
2116 if(ptHad>2 && ptHad<4) DphiPtEta21->Fill(ptEle,Dphi);
2117 if(ptHad>4 && ptHad<6) DphiPtEta22->Fill(ptEle,Dphi);
2118 if(ptHad>6 && ptHad<8) DphiPtEta23->Fill(ptEle,Dphi);
2119 if(ptHad>4 && ptHad<10) DphiPtEta24->Fill(ptEle,Dphi);
2124 //_________________________________________
2125 void AliAnalysisTaskElecHadronCorrel::MixedEvent(AliVTrack *track, TH2F *DphiPt, TH2F *DphiPt1,TH2F *DphiPt2, TH2F *DphiPt3, TH2F *DphiPt4)
2128 const AliAODVertex *pVtx = fAOD->GetPrimaryVertex();
2130 zVtx = pVtx->GetZ();
2132 AliCentrality *fCentrality1 = (AliCentrality*)fAOD->GetCentrality();
2133 Double_t centvalue = fCentrality1->GetCentralityPercentile("V0M");
2135 AliEventPool* pool = fPoolMgr->GetEventPool(centvalue, zVtx); // Get the buffer associated with the current centrality and z-vtx
2137 AliFatal(Form("No pool found for centrality = %f, zVtx = %f", centvalue, zVtx));
2139 // pool->PrintInfo();
2140 if (pool->GetCurrentNEvents() >= 5) // start mixing when 5 events are in the buffer
2142 Int_t nMix = pool->GetCurrentNEvents();
2143 fNoMixedEvents->Fill(0);
2144 fMixStat->Fill(pool->GetCurrentNEvents(),centvalue);
2145 fMixStat1->Fill(pool->GetCurrentNEvents(),zVtx);
2147 // cout << "nMix = " << nMix << " tracks in pool = " << pool->NTracksInPool() << endl;
2148 for (Int_t jMix=0; jMix<nMix; jMix++) // mix with each event in the buffer
2150 TObjArray* bgTracks = pool->GetEvent(jMix);
2151 for (Int_t i=0;i<bgTracks->GetEntriesFast(); i++)
2153 AliVParticle* mixtrk = (AliVParticle*) bgTracks->At(i);
2155 Double_t mixtrkPhi = -999;
2156 Double_t ptEle = -999;
2157 Double_t phiEle = -999, Dphi = -999;
2159 Double_t ptmixtrk = -999;
2161 ptEle = track->Pt();
2162 ptmixtrk = mixtrk->Pt();
2163 if(ptmixtrk > ptEle) continue;
2165 mixtrkPhi = mixtrk->Phi();
2166 phiEle = track->Phi();
2167 Dphi = phiEle - mixtrkPhi;
2173 if(ptmixtrk>2) DphiPt->Fill(ptEle,Dphi);
2174 if(ptmixtrk>2 && ptmixtrk<4) DphiPt1->Fill(ptEle,Dphi);
2175 if(ptmixtrk>4 && ptmixtrk<6) DphiPt2->Fill(ptEle,Dphi);
2176 if(ptmixtrk>6 && ptmixtrk<8) DphiPt3->Fill(ptEle,Dphi);
2177 if(ptmixtrk>4 && ptmixtrk<10) DphiPt4->Fill(ptEle,Dphi);
2183 //___________________________________________
2184 TObjArray* AliAnalysisTaskElecHadronCorrel::CloneAndReduceTrackList()
2186 // clones a track list by using AliehDPhiBasicParticle which uses much less memory (used for event mixing)
2188 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2189 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2190 fTrackCuts2->SetRequireITSRefit(kTRUE);
2191 fTrackCuts2->SetEtaRange(-0.9,0.9);
2192 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2193 fTrackCuts2->SetMaxChi2PerClusterTPC(3.5);
2194 fTrackCuts2->SetMinNClustersTPC(80);
2196 TObjArray* tracksClone = new TObjArray;
2197 tracksClone->SetOwner(kTRUE);
2199 for(Int_t ktracks = 0; ktracks<fAOD->GetNumberOfTracks(); ktracks++){
2200 AliAODTrack* track = fAOD->GetTrack(ktracks);
2202 printf("ERROR: Could not receive track %d\n", ktracks);
2205 if(!track->TestFilterMask(AliAODTrack::kTrkGlobalNoDCA)) continue;
2207 // if(ktracks == iTrack) continue;
2208 Double_t eta=-999,ptHad= -999, pHad=-999., phi=-999.0;
2209 Int_t label=-9999, id=-999;
2211 ptHad = track->Pt();
2214 label= track->GetLabel();
2217 if(track->Eta()<-0.9 || track->Eta()>0.9) continue;
2218 if(!ProcessCutStep(AliHFEcuts::kStepRecKineITSTPC, track)) continue;
2219 if(!ProcessCutStep(AliHFEcuts::kStepHFEcutsTPC, track)) continue;
2220 if(ptHad <2) continue;
2221 // if(!fTrackCuts2->AcceptTrack(track)) continue;
2223 AliVParticle* particle = (AliVParticle*) fAOD->GetTrack(ktracks);
2224 tracksClone->Add(new AliehDPhiBasicParticle(particle->Eta(), particle->Phi(), particle->Pt(), particle->Charge()));
2231 //___________________________________________
2232 void AliAnalysisTaskElecHadronCorrel::HadronInfo(Int_t itrack)
2234 //Hadron information
2236 fTrackCuts2->SetAcceptKinkDaughters(kFALSE);
2237 fTrackCuts2->SetRequireTPCRefit(kTRUE);
2238 fTrackCuts2->SetRequireITSRefit(kTRUE);
2239 fTrackCuts2->SetEtaRange(-0.9,0.9);
2240 fTrackCuts2->SetRequireSigmaToVertex(kTRUE);
2241 fTrackCuts2->SetMaxChi2PerClusterTPC(4);
2242 fTrackCuts2->SetMinNClustersTPC(80);
2243 fTrackCuts2->SetMaxDCAToVertexZ(3.2);
2244 fTrackCuts2->SetMaxDCAToVertexXY(2.4);
2245 fTrackCuts2->SetDCAToVertex2D(kTRUE);
2247 for(Int_t ktracks = 0; ktracks<fVevent->GetNumberOfTracks(); ktracks++){
2248 AliVParticle* VtrackHad = fVevent->GetTrack(ktracks);
2250 printf("ERROR: Could not receive track %d\n", ktracks);
2254 AliVTrack *trackHad = dynamic_cast<AliVTrack*>(VtrackHad);
2256 if(IsAODanalysis()) {
2257 AliAODTrack *atrackHad = dynamic_cast<AliAODTrack*>(VtrackHad);
2258 if(!atrackHad->TestFilterMask(AliAODTrack::kTrkTPCOnly)) continue;
2259 if((!(atrackHad->GetStatus()&AliESDtrack::kITSrefit)|| (!(atrackHad->GetStatus()&AliESDtrack::kTPCrefit)))) continue;
2260 if(atrackHad->GetTPCNcls() < 80) continue;
2263 AliESDtrack *etrackHad = dynamic_cast<AliESDtrack*>(VtrackHad);
2264 if(!fTrackCuts2->AcceptTrack(etrackHad)) continue;
2267 if(ktracks == itrack) continue; //do not select the same electron
2269 Double_t ptHad= -999;
2270 ptHad = trackHad->Pt();
2272 if(trackHad->Eta()<-0.9 || trackHad->Eta()>0.9) continue;
2273 // cout << "pt had = " << ptHad <<endl;
2275 if(ptHad<2) continue;
2277 fHadronPhi->Fill(trackHad->Phi());
2278 fHadronPhiPt->Fill(trackHad->Phi(),ptHad);
2279 if (trackHad->Eta() >0 && trackHad->Eta() <0.9) fHadronPhiTPChalf->Fill(trackHad->Phi());
2281 fHadronPt->Fill(ptHad);
2284 //_________________________________________
2285 void AliAnalysisTaskElecHadronCorrel::CheckCentrality(AliVEvent* event, Bool_t ¢ralitypass)
2287 // Check if event is within the set centrality range. Falls back to V0 centrality determination if no method is set
2288 if (!fkCentralityMethod) AliFatal("No centrality method set! FATAL ERROR!");
2289 fCentrality = event->GetCentrality()->GetCentralityPercentile(fkCentralityMethod);
2290 // cout << "Centrality evaluated-------------------------: " << fCentrality <<endl;
2292 if ((fCentrality <= fCentralityMin) || (fCentrality > fCentralityMax))
2294 fCentralityNoPass->Fill(fCentrality);
2295 // cout << "--------------Fill no pass-------------------------"<<endl;
2296 centralitypass = kFALSE;
2299 fCentralityPass->Fill(fCentrality);
2300 // cout << "--------------Fill pass-------------------------"<<endl;
2301 centralitypass = kTRUE;
2305 //_____________________________________________________________________________
2306 void AliAnalysisTaskElecHadronCorrel::SetCentralityParameters(Double_t CentralityMin, Double_t CentralityMax, const char* CentralityMethod)
2308 // Set a centrality range ]min, max] and define the method to use for centrality selection
2309 fCentralityMin = CentralityMin;
2310 fCentralityMax = CentralityMax;
2311 fkCentralityMethod = CentralityMethod;