20 #include <TDatabasePDG.h>
21 #include "TParticle.h"
22 #include <TClonesArray.h>
24 #include <TObjString.h>
30 #include "AliAODPWG4ParticleCorrelation.h"
32 #include "AliVTrack.h"
33 #include "AliVCluster.h"
35 #include "TParticle.h"
37 #include "AliAODMCParticle.h"
38 #include "AliMixedEvent.h"
39 #include "AliAnalysisManager.h"
40 #include "AliInputEventHandler.h"
41 #include "AliEventplane.h"
43 #include "AliESDEvent.h"
44 #include "AliAODEvent.h"
47 #include "AliEMCALGeometry.h"
48 #include "AliPHOSGeoUtils.h"
60 fFillAODWithReferences(0), fCheckLeadingWithNeutralClusters(0),
61 fMaxAssocPt(1000.), fMinAssocPt(0.),
62 fDeltaPhiMaxCut(0.), fDeltaPhiMinCut(0.),
63 fSelectIsolated(0), fMakeSeveralUE(0),
64 fUeDeltaPhiMaxCut(0.), fUeDeltaPhiMinCut(0.),
65 fPi0AODBranchName(
""), fAODNamepTInConeHisto(
""), fNeutralCorr(0),
66 fPi0Trigger(0), fDecayTrigger(0),
67 fNDecayBits(0), fDecayBits(),
69 fMakeAbsoluteLeading(0), fMakeNearSideLeading(0),
70 fLeadingTriggerIndex(-1), fHMPIDCorrelation(0), fFillBradHisto(0),
71 fNAssocPtBins(0), fAssocPtBinLimit(),
73 fListMixTrackEvents(), fListMixCaloEvents(),
74 fUseMixStoredInReader(0), fFillNeutralEventMixPool(0),
75 fM02MaxCut(0), fM02MinCut(0),
76 fSelectLeadingHadronAngle(0), fFillLeadHadOppositeHisto(0),
77 fMinLeadHadPhi(0), fMaxLeadHadPhi(0),
78 fMinLeadHadPt(0), fMaxLeadHadPt(0),
79 fFillEtaGapsHisto(1), fFillMomImbalancePtAssocBinsHisto(0),
80 fFillInvMassHisto(0), fFillBkgBinsHisto(0),
81 fFillTaggedDecayHistograms(0), fDecayTagsM02Cut(0),
82 fMCGenTypeMin(0), fMCGenTypeMax(0),
83 fTrackVector(), fMomentum(), fMomentumIM(),
84 fDecayMom1(), fDecayMom2(),
86 fhPtTriggerInput(0), fhPtTriggerSSCut(0),
87 fhPtTriggerIsoCut(0), fhPtTriggerFidCut(0),
88 fhPtTrigger(0), fhPtTriggerVtxBC0(0),
89 fhPtTriggerVzBin(0), fhPtTriggerBin(0),
90 fhPhiTrigger(0), fhEtaTrigger(0),
92 fhPtDecayTrigger(), fhPtDecayTriggerMC(),
93 fhPtTriggerCentrality(0), fhPtTriggerEventPlane(0),
94 fhTriggerEventPlaneCentrality(0),
95 fhPtTriggerMixed(0), fhPtTriggerMixedVzBin(0), fhPtTriggerMixedBin(0),
96 fhPhiTriggerMixed(0), fhEtaTriggerMixed(0),
97 fhPtLeadingOppositeHadron(0), fhPtDiffPhiLeadingOppositeHadron(0), fhPtDiffEtaLeadingOppositeHadron(0),
98 fhPtNoLeadingOppositeHadron(0), fhEtaPhiNoLeadingOppositeHadron(0),
99 fhDeltaPhiDeltaEtaCharged(0),
100 fhPhiCharged(0), fhEtaCharged(0),
101 fhDeltaPhiCharged(0), fhDeltaEtaCharged(0),
102 fhDeltaPhiChargedPt(0), fhDeltaPhiUeChargedPt(0),
104 fhXECharged(0), fhXECharged_Cone2(0), fhXEUeCharged(0),
105 fhXEUeChargedSmallCone(0), fhXEUeChargedMediumCone(0), fhXEUeChargedLargeCone(0),
106 fhXEPosCharged(0), fhXENegCharged(0),
107 fhPtHbpXECharged(0), fhPtHbpXECharged_Cone2(0), fhPtHbpXEUeCharged(0),
108 fhZTCharged(0), fhZTUeCharged(0),
109 fhZTPosCharged(0), fhZTNegCharged(0),
110 fhPtHbpZTCharged(0), fhPtHbpZTUeCharged(0),
111 fhXEChargedMC(), fhDeltaPhiChargedMC(),
112 fhXEUeChargedRightMC(), fhXEUeChargedLeftMC(),
113 fhDeltaPhiDeltaEtaChargedPtA3GeV(0),
114 fhDeltaPhiChargedPtA3GeV(0), fhDeltaEtaChargedPtA3GeV(0),
116 fhDeltaPhiChargedPileUp(), fhDeltaEtaChargedPileUp(),
117 fhDeltaPhiChargedPtA3GeVPileUp(), fhDeltaEtaChargedPtA3GeVPileUp(),
118 fhXEChargedPileUp(), fhXEUeChargedPileUp(),
119 fhZTChargedPileUp(), fhZTUeChargedPileUp(),
120 fhPtTrigChargedPileUp(),
121 fhDeltaPhiChargedOtherBC(), fhDeltaPhiChargedPtA3GeVOtherBC(),
122 fhXEChargedOtherBC(), fhXEUeChargedOtherBC(),
123 fhZTChargedOtherBC(), fhZTUeChargedOtherBC(),
124 fhPtTrigChargedOtherBC(),
125 fhDeltaPhiChargedBC0(), fhDeltaPhiChargedPtA3GeVBC0(),
126 fhXEChargedBC0(), fhXEUeChargedBC0(),
127 fhZTChargedBC0(), fhZTUeChargedBC0(),
128 fhPtTrigChargedBC0(),
129 fhDeltaPhiChargedVtxBC0(), fhDeltaPhiChargedPtA3GeVVtxBC0(),
130 fhXEChargedVtxBC0(), fhXEUeChargedVtxBC0(),
131 fhZTChargedVtxBC0(), fhZTUeChargedVtxBC0(),
132 fhPtTrigChargedVtxBC0(),
133 fhDeltaPhiUeLeftCharged(0),
134 fhDeltaPhiUeLeftUpCharged(0), fhDeltaPhiUeRightUpCharged(0),
135 fhDeltaPhiUeLeftDownCharged(0), fhDeltaPhiUeRightDownCharged(0),
136 fhXEUeLeftCharged(0),
137 fhXEUeLeftUpCharged(0), fhXEUeRightUpCharged(0),
138 fhXEUeLeftDownCharged(0), fhXEUeRightDownCharged(0),
139 fhPtHbpXEUeLeftCharged(0), fhZTUeLeftCharged(0),
140 fhPtHbpZTUeLeftCharged(0),
141 fhPtTrigPout(0), fhPtTrigCharged(0),
142 fhDeltaPhiChargedMult(0x0), fhDeltaEtaChargedMult(0x0),
143 fhXEMult(0x0), fhXEUeMult(0x0),
144 fhZTMult(0x0), fhZTUeMult(0x0),
145 fhAssocPtBkg(0), fhDeltaPhiDeltaEtaAssocPtBin(0),
146 fhDeltaPhiAssocPtBin(0),
147 fhDeltaPhiAssocPtBinDEta08(0), fhDeltaPhiAssocPtBinDEta0(0),
148 fhDeltaPhiAssocPtBinHMPID(0), fhDeltaPhiAssocPtBinHMPIDAcc(0),
149 fhDeltaPhiBradAssocPtBin(0), fhDeltaPhiBrad(0),
150 fhXEAssocPtBin(0), fhZTAssocPtBin(0),
151 fhXEVZ(0), fhZTVZ(0),
152 fhDeltaPhiDeltaEtaNeutral(0),
153 fhPhiNeutral(0), fhEtaNeutral(0),
154 fhDeltaPhiNeutral(0), fhDeltaEtaNeutral(0),
155 fhDeltaPhiNeutralPt(0), fhDeltaPhiUeNeutralPt(0),
156 fhXENeutral(0), fhXEUeNeutral(0),
157 fhPtHbpXENeutral(0), fhPtHbpXEUeNeutral(0),
158 fhZTNeutral(0), fhZTUeNeutral(0),
159 fhPtHbpZTNeutral(0), fhPtHbpZTUeNeutral(0),
160 fhDeltaPhiUeLeftNeutral(0), fhXEUeLeftNeutral(0),
161 fhPtHbpXEUeLeftNeutral(0), fhZTUeLeftNeutral(0),
162 fhPtHbpZTUeLeftNeutral(0), fhPtPi0DecayRatio(0),
163 fhDeltaPhiPi0DecayCharged(0), fhXEPi0DecayCharged(0), fhZTPi0DecayCharged(0),
164 fhDeltaPhiPi0DecayNeutral(0), fhXEPi0DecayNeutral(0), fhZTPi0DecayNeutral(0),
165 fhDeltaPhiDecayCharged(), fhXEDecayCharged(), fhZTDecayCharged(),
166 fhDeltaPhiDecayChargedAssocPtBin(),
167 fhMCPtTrigger(), fhMCPhiTrigger(), fhMCEtaTrigger(),
168 fhMCPtTriggerNotLeading(), fhMCPhiTriggerNotLeading(), fhMCEtaTriggerNotLeading(),
169 fhMCEtaCharged(), fhMCPhiCharged(),
170 fhMCDeltaEtaCharged(), fhMCDeltaPhiCharged(),
171 fhMCDeltaPhiDeltaEtaCharged(), fhMCDeltaPhiChargedPt(),
172 fhMCPtXECharged(), fhMCPtXEUeCharged(),
173 fhMCPtXEUeLeftCharged(),
174 fhMCPtHbpXECharged(), fhMCPtHbpXEUeCharged(),
175 fhMCPtHbpXEUeLeftCharged(),
177 fhMCPtZTCharged(), fhMCPtZTUeCharged(),
178 fhMCPtZTUeLeftCharged(),
179 fhMCPtHbpZTCharged(), fhMCPtHbpZTUeCharged(),
180 fhMCPtHbpZTUeLeftCharged(),
181 fhMCPtTrigPout(), fhMCPtAssocDeltaPhi(),
183 fhNEventsTrigger(0), fhNtracksMB(0), fhNclustersMB(0),
184 fhMixDeltaPhiCharged(0), fhMixDeltaPhiDeltaEtaCharged(0),
185 fhMixXECharged(0), fhMixXEUeCharged(0), fhMixHbpXECharged(0),
186 fhMixDeltaPhiChargedAssocPtBin(),
187 fhMixDeltaPhiChargedAssocPtBinDEta08(),
188 fhMixDeltaPhiChargedAssocPtBinDEta0(),
189 fhMixDeltaPhiDeltaEtaChargedAssocPtBin(),
190 fhEventBin(0), fhEventMixBin(0), fhEventMBBin(0),
191 fhMassPtTrigger(0), fhMCMassPtTrigger(),
192 fhPtLeadInConeBin(), fhPtSumInConeBin(),
193 fhPtLeadConeBinDecay(), fhSumPtConeBinDecay(),
194 fhPtLeadConeBinMC(), fhSumPtConeBinMC(),
195 fhTrackResolution(0), fhTrackResolutionUE(0)
213 for(
Int_t i = 0; i < 7; i++)
278 Float_t deltaEta = etaTrig-etaAssoc;
279 Float_t deltaPhiOrg = phiTrig-phiAssoc;
311 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA)
327 if(
GetReader()->IsPileUpFromSPDOrEMCal())
332 if(
GetReader()->IsPileUpFromSPDAndEMCal())
337 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
342 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
347 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
365 if(
GetReader()->IsPileUpFromSPDOrEMCal())
370 if(
GetReader()->IsPileUpFromSPDAndEMCal())
375 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
380 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
385 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
418 dphiBrad = atan2(sin(deltaPhiOrg), cos(deltaPhiOrg))/TMath::Pi();
419 if( TMath::Abs(dphiBrad) > 0.325 && TMath::Abs(dphiBrad) < 0.475 )
424 if( dphiBrad < -1./3 ) dphiBrad += 2;
437 if(TMath::Abs(deltaEta)> 0.8)
440 if(TMath::Abs(deltaEta)< 0.01)
455 if( hmpidSignal > 0 )
461 if(phiAssoc > 5*TMath::DegToRad() && phiAssoc < 20*TMath::DegToRad())
493 if( mcAssocPhi < 0 ) mcAssocPhi+=TMath::TwoPi();
495 Float_t mcdeltaPhi= mcTrigPhi-mcAssocPhi;
496 if(mcdeltaPhi <= -TMath::PiOver2()) mcdeltaPhi+=TMath::TwoPi();
497 if(mcdeltaPhi > 3*TMath::PiOver2()) mcdeltaPhi-=TMath::TwoPi();
501 if( mcAssocPt > mcTrigPt && mcdeltaPhi < TMath::PiOver2() ) lead = kFALSE;
506 if ( mcAssocPt < fMinAssocPt || mcAssocPt >
fMaxAssocPt )
return lead ;
507 if ( mcAssocPt <
GetReader()->GetCTSPtMin())
return lead ;
512 if(TMath::Abs(mcAssocPt -mcTrigPt ) < 1e-6 &&
514 TMath::Abs(mcAssocEta-mcTrigEta) < 1e-6)
return lead ;
516 Float_t mcxE =-mcAssocPt/mcTrigPt*TMath::Cos(mcdeltaPhi);
518 if(mcxE > 0 ) mchbpXE = TMath::Log(1./mcxE);
520 Float_t mczT = mcAssocPt/mcTrigPt ;
522 if(mczT > 0 ) mchbpZT = TMath::Log(1./mczT);
524 Double_t mcpout = mcAssocPt*TMath::Sin(mcdeltaPhi) ;
526 AliDebug(1,Form(
"Charged hadron: track Pt %f, track Phi %f, phi trigger %f. Cuts: delta phi %2.2f < %2.2f < %2.2f",
605 Double_t mcUexE = -(mcAssocPt/mcTrigPt)*TMath::Cos(randomphi);
606 Double_t mcUezT = mcAssocPt/mcTrigPt;
609 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
654 Double_t mcUexE = -(mcAssocPt/mcTrigPt)*TMath::Cos(randomphi);
655 Double_t mcUezT = mcAssocPt/mcTrigPt;
658 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
706 Float_t xE =-ptAssoc/ptTrig*TMath::Cos(deltaPhi);
707 Float_t pout = ptAssoc*TMath::Sin(deltaPhi) ;
710 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
716 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
717 if(zT > 0 ) hbpZT = TMath::Log(1./zT);
726 if((deltaPhi > 5*TMath::Pi()/6.) && (deltaPhi < 7*TMath::Pi()/6.))
763 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA)
782 if(
GetReader()->IsPileUpFromSPDOrEMCal())
788 if(
GetReader()->IsPileUpFromSPDAndEMCal())
794 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
800 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
806 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
869 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
873 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
915 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA)
931 if(
GetReader()->IsPileUpFromSPDOrEMCal())
936 if(
GetReader()->IsPileUpFromSPDAndEMCal())
941 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
946 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
951 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
980 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
984 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1014 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1017 AliWarning(Form(
"Careful!!, negative xE %2.2f for left-down UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1028 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1031 AliWarning(Form(
"Careful!!, negative xE %2.2f for left-up UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1042 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1045 AliWarning(Form(
"Careful!!, negative xE %2.2f for right-up UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1056 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1059 AliWarning(Form(
"Careful!!, negative xE %2.2f for right-down UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1075 Float_t zTDecay1 = -100, zTDecay2 = -100;
1076 if(ptDecay1 > 0) zTDecay1 = ptAssoc/ptDecay1 ;
1077 if(ptDecay2 > 0) zTDecay2 = ptAssoc/ptDecay2 ;
1080 if(deltaPhiDecay1< -TMath::PiOver2()) deltaPhiDecay1+=TMath::TwoPi();
1081 if(deltaPhiDecay1>3*TMath::PiOver2()) deltaPhiDecay1-=TMath::TwoPi();
1084 if(deltaPhiDecay2< -TMath::PiOver2()) deltaPhiDecay2+=TMath::TwoPi();
1085 if(deltaPhiDecay2>3*TMath::PiOver2()) deltaPhiDecay2-=TMath::TwoPi();
1087 Float_t xEDecay1 =-zTDecay1*TMath::Cos(deltaPhiDecay1);
1088 Float_t xEDecay2 =-zTDecay2*TMath::Cos(deltaPhiDecay2);
1090 if(bChargedOrNeutral)
1095 AliDebug(2,Form(
"deltaPhoton1 = %f, deltaPhoton2 = %f", deltaPhiDecay1, deltaPhiDecay2));
1113 AliDebug(2,Form(
"deltaPhoton1 = %f, deltaPhoton2 = %f", deltaPhiDecay1, deltaPhiDecay2));
1138 Float_t xE =-ptAssoc/ptTrig*TMath::Cos(randomphi);
1140 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
1182 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
1184 if(!inputHandler) return ;
1192 if(eventBin < 0)
return;
1211 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
1213 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
1217 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
1219 AliAODPWG4Particle * mixedTrack =
new AliAODPWG4Particle(track->Px(),track->Py(),track->Pz(),0);
1220 mixedTrack->SetDetectorTag(
kCTS);
1221 mixedTrack->SetChargedBit(track->Charge()>0);
1222 mixEventTracks->Add(mixedTrack);
1231 pool->AddFirst(mixEventTracks);
1239 TClonesArray * tmp =
static_cast<TClonesArray*
>(pool->Last()) ;
1240 pool->RemoveLast() ;
1264 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
1266 if(!inputHandler) return ;
1274 if(eventBin < 0)
return;
1287 for(
Int_t ipr = 0;ipr < pl->GetEntriesFast() ; ipr ++ )
1289 AliVCluster * calo = (AliVCluster *) (pl->At(ipr)) ;
1308 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
1310 AliAODPWG4Particle * mixedCalo =
new AliAODPWG4Particle(
fMomentum);
1311 mixedCalo->SetDetectorTag(
kEMCAL);
1312 mixEventCalo->Add(mixedCalo);
1321 poolCalo->AddFirst(mixEventCalo);
1329 TClonesArray * tmp =
static_cast<TClonesArray*
>(poolCalo->Last()) ;
1330 poolCalo->RemoveLast() ;
1341 Float_t etaTrig = particle->Eta();
1342 Float_t ptTrig = particle->Pt();
1343 Float_t phiTrig = particle->Phi();
1344 if(phiTrig < 0 ) phiTrig+= TMath::TwoPi();
1354 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
1356 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
1360 if(phi < 0 ) phi+= TMath::TwoPi();
1362 Float_t deltaPhi = phiTrig-phi;
1368 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
1369 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
1371 if(pt > ptLeadHad && deltaPhi > TMath::PiOver2())
1375 dphiLeadHad= deltaPhi;
1397 AliDebug(1,Form(
"pT %2.2f, phi %2.2f, eta %2.2f, nTracks away %d, total tracks %d",
1399 AliDebug(1,Form(
"\t pT trig %2.2f, Dphi (trigger-hadron) %2.2f, Deta (trigger-hadron) %2.2f",
1400 ptTrig, dphiLeadHad*TMath::RadToDeg(), etaLeadHad-etaTrig));
1401 AliDebug(1,Form(
"\t cuts pT: min %2.2f, max %2.2f; DPhi: min %2.2f, max %2.2f",
1407 if( nTrack == 0 )
return kFALSE;
1409 if( ptLeadHad < fMinLeadHadPt || ptLeadHad >
fMaxLeadHadPt )
return kFALSE;
1413 if( dphiLeadHad < fMinLeadHadPhi || dphiLeadHad >
fMaxLeadHadPhi )
return kFALSE;
1426 const Int_t buffersize = 560;
1427 char onePar[buffersize] ;
1429 snprintf(onePar,buffersize,
"--- AliAnaPaticleHadronCorrelation ---:") ;
1437 snprintf(onePar,buffersize,
"Isolated Trigger? %d;",
fSelectIsolated) ;
1441 snprintf(onePar,buffersize,
"Name of AOD Pi0 Branch %s;",
fPi0AODBranchName.Data());
1445 snprintf(onePar,buffersize,
"Select absolute leading for cluster triggers ? %d or Near Side Leading %d;",
1448 snprintf(onePar,buffersize,
"Associated particle pt bins %d: ",
fNAssocPtBins) ;
1461 return new TObjString(parList) ;
1471 outputContainer->SetName(
"CorrelationHistos") ;
1495 TString nameMC[] = {
"Photon",
"Pi0",
"Pi0Decay",
"Eta",
"EtaDecay",
"OtherDecay",
"Electron",
"Hadron",
"Pi0DecayLostPair",
"EtaDecayLostPair"};
1496 TString mcPartType[] = {
"#gamma",
"#pi^{0} (merged #gamma)",
"#gamma_{#pi decay}",
"#eta (merged #gamma)" ,
"#gamma_{#eta decay}",
"#gamma_{other decay}" ,
"e^{#pm}" ,
"hadrons?" ,
"#gamma_{#pi decay} lost companion",
"#gamma_{#eta decay} lost companion"} ;
1497 TString pileUpName[] = {
"SPD",
"EMCAL",
"SPDOrEMCAL",
"SPDAndEMCAL",
"SPDAndNotEMCAL",
"EMCALAndNotSPD",
"NotSPDAndNotEMCAL"} ;
1513 fhTrackResolution =
new TH2F (
"hTrackResolution",
"Track resolution: #sigma_{#it{p}_{T}} vs #it{p}_{T}, away side, ESDs",
1514 nptbins,ptmin,ptmax,600,0,0.3);
1519 fhTrackResolutionUE =
new TH2F (
"hTrackResolutionUE",
"Track resolution: #sigma_{#it{p}_{T}} vs #it{p}_{T}, UE, ESDs",
1520 nptbins,ptmin,ptmax,600,0,0.3);
1526 fhPtTriggerInput =
new TH1F(
"hPtTriggerInput",
"Input trigger #it{p}_{T}", nptbins,ptmin,ptmax);
1532 fhPtTriggerSSCut =
new TH1F(
"hPtTriggerSSCut",
"Trigger #it{p}_{T} after #lambda^{2}_{0} cut", nptbins,ptmin,ptmax);
1539 fhPtTriggerIsoCut =
new TH1F(
"hPtTriggerIsoCut",
"Trigger #it{p}_{T} after isolation (and #lambda^{2}_{0} cut)", nptbins,ptmin,ptmax);
1544 fhPtTriggerFidCut =
new TH1F(
"hPtTriggerFidCut",
"Trigger #it{p}_{T} after fiducial (isolation and #lambda^{2}_{0}) cut", nptbins,ptmin,ptmax);
1548 fhPtTrigger =
new TH1F(
"hPtTrigger",
"#it{p}_{T} distribution of trigger particles (after opposite hadron leading cut and rest)", nptbins,ptmin,ptmax);
1549 fhPtTrigger->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
1555 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1579 (Form(
"hPtLeadCone_Bin%d",ibin),
1580 Form(
"cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1587 (Form(
"hSumPtCone_Bin%d",ibin),
1588 Form(
"in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1601 (Form(
"hPtLeadCone_Bin%d_DecayBit%d",ibin,
fDecayBits[idecay]),
1602 Form(
"Decay bit %d, cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1609 (Form(
"hSumPtCone_Bin%d_DecayBit%d",ibin,
fDecayBits[idecay]),
1610 Form(
"Decay bit %d, in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1624 (Form(
"hPtLeadCone_Bin%d_MC%s",ibin, nameMC[imc].
Data()),
1625 Form(
"in cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, MC %s, %s",
1632 (Form(
"hSumPtCone_Bin%d_MC%s",ibin,nameMC[imc].
Data()),
1633 Form(
"in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, MC %s, %s",
1648 Form(
"#it{p}_{T} distribution of trigger particles, trigger origin is %s",nameMC[i].
Data()),
1649 nptbins,ptmin,ptmax);
1650 fhPtTriggerMC[i]->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
1656 Form(
"2 photons invariant mass, trigger origin is %s",nameMC[i].
Data()),
1657 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1670 Form(
"#it{p}_{T} distribution of trigger particles, decay Bit %d",
fDecayBits[ibit]),
1671 nptbins,ptmin,ptmax);
1680 Form(
"#it{p}_{T} distribution of trigger particles, decay Bit %d, trigger origin is %s",
fDecayBits[ibit], nameMC[i].
Data()),
1681 nptbins,ptmin,ptmax);
1697 fhPtTriggerBin =
new TH2F (
"hPtTriggerBin",
"#it{p}_{T} distribution of trigger particles", nptbins,ptmin,ptmax,nMixBins,0,nMixBins);
1702 fhPhiTrigger =
new TH2F (
"hPhiTrigger",
"#phi distribution of trigger Particles",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
1706 fhEtaTrigger =
new TH2F (
"hEtaTrigger",
"#eta distribution of trigger",nptbins,ptmin,ptmax, netabins,etamin,etamax);
1712 fhPtTriggerCentrality =
new TH2F(
"hPtTriggerCentrality",
"Trigger particle #it{p}_{T} vs centrality",nptbins,ptmin,ptmax,100,0.,100) ;
1717 fhPtTriggerEventPlane =
new TH2F(
"hPtTriggerEventPlane",
"Trigger particle #it{p}_{T} vs event plane angle",nptbins,ptmin,ptmax, 100,0.,TMath::Pi()) ;
1732 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
1738 nptbins,ptmin,ptmax);
1743 netabins,etamin,etamax,nphibins,phimin,phimax);
1750 nptbins,ptmin,ptmax,ndeltaphibins,deltaphimin,deltaphimax);
1756 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1765 (
"hDeltaPhiDeltaEtaCharged",
"#eta_{trigger} - #eta_{h^{#pm}} vs #phi_{trigger} - #phi_{h^{#pm}}",
1766 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
1771 (
"hDeltaPhiDeltaEtaChargedPtA3GeV",
"#eta_{trigger} - #eta_{h^{#pm}} vs #phi_{trigger} - #phi_{h^{#pm}, #it{p}_{TA}>3 GeV/#it{c}}",
1772 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
1777 (
"hPhiCharged",
"#phi_{h^{#pm}} vs #it{p}_{T #pm}",
1778 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
1780 fhPhiCharged->SetXTitle(
"#it{p}_{T #pm} (GeV/#it{c})");
1783 (
"hEtaCharged",
"#eta_{h^{#pm}} vs #it{p}_{T #pm}",
1784 nptbins,ptmin,ptmax,100,-1.,1.);
1786 fhEtaCharged->SetXTitle(
"#it{p}_{T #pm} (GeV/#it{c})");
1789 (
"hDeltaPhiCharged",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}",
1790 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1795 (
"hDeltaPhiChargedPtA3GeV",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}",
1796 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1802 (
"hDeltaPhiChargedPt",
"#phi_{trigger} - #phi_{#h^{#pm}} vs #it{p}_{T h^{#pm}}",
1803 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1808 (
"hDeltaEtaCharged",
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}",
1809 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1814 (
"hDeltaEtaChargedPtA3GeV",
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}",
1815 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1820 new TH2F(
"hXECharged",
"#it{x}_{#it{E}} for charged tracks",
1821 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1823 fhXECharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1826 new TH2F(
"hXECharged_Cone2",
"#it{x}_{#it{E}} for charged tracks in cone 2 (5#pi/6-7#pi/6)",
1827 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1832 new TH2F(
"hXEPositiveCharged",
"#it{x}_{#it{E}} for positive charged tracks",
1833 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1838 new TH2F(
"hXENegativeCharged",
"#it{x}_{#it{E}} for negative charged tracks",
1839 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1844 new TH2F(
"hHbpXECharged",
"#xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",
1845 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1850 new TH2F(
"hHbpXECharged_Cone2",
"#xi = ln(1/#it{x}_{#it{E}}) with charged hadrons in cone 2 (5#pi/6-7#pi/6)",
1851 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1856 new TH2F(
"hZTCharged",
"#it{z}_{T} for charged tracks",
1857 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1862 new TH2F(
"hZTPositiveCharged",
"#it{z}_{T} for positive charged tracks",
1863 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1868 new TH2F(
"hZTNegativeCharged",
"#it{z}_{T} for negative charged tracks",
1869 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1874 new TH2F(
"hHbpZTCharged",
"#xi = ln(1/#it{z}_{T}) with charged hadrons",
1875 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1880 new TH2F(
"hPtTrigPout",
"Pout with triggers",
1881 nptbins,ptmin,ptmax,nptbins,-1.*ptmax/2.,ptmax/2.);
1883 fhPtTrigPout->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1886 new TH2F(
"hPtTrigCharged",
"trigger and charged tracks pt distribution",
1887 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
1910 Form(
"#Delta #phi for charged tracks, trigger origin is %s",nameMC[i].
Data()),
1911 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
1917 Form(
"#it{x}_{#it{E}} for charged tracks, trigger origin is %s",nameMC[i].
Data()),
1918 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1920 fhXEChargedMC[i]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1924 Form(
"#it{x}_{#it{E}} for charged tracks in right UE cone, trigger origin is %s",nameMC[i].
Data()),
1925 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1931 Form(
"#it{x}_{#it{E}} for charged tracks in left UE cone, trigger origin is %s",nameMC[i].
Data()),
1932 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1955 fhUePart =
new TH1F(
"hUePart",
"UE particles distribution vs pt trig",
1956 nptbins,ptmin,ptmax);
1958 fhUePart->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1961 (Form(
"hDeltaPhiUe%sChargedPt",right.Data()),
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}}",
1962 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1967 new TH2F(Form(
"hXEUeCharged%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event",
1968 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1970 fhXEUeCharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1973 new TH2F(Form(
"hXEUeChargedSmallCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [80,100] deg",
1974 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1979 new TH2F(Form(
"hXEUeChargedMediumCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [70,110] deg",
1980 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1985 new TH2F(Form(
"hXEUeChargedLargeCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [60,120] deg",
1986 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1991 new TH2F(Form(
"hHbpXEUeCharged%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for Underlying Event",
1992 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1997 new TH2F(Form(
"hZTUeCharged%s",right.Data()),
"#it{z}_{T} for Underlying Event",
1998 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2000 fhZTUeCharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2003 new TH2F(Form(
"hHbpZTUeCharged%s",right.Data()),
"#xi = ln(1/#it{z}_{T}) for Underlying Event",
2004 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2021 (
"hDeltaPhiUeLeftChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left side range of trigger particles",
2022 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2028 (
"hDeltaPhiUeLeftUpChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left Up side range of trigger particles",
2029 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2035 (
"hDeltaPhiUeRightUpChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE right Up side range of trigger particles",
2036 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2042 (
"hDeltaPhiUeLeftDownChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left Down side range of trigger particles",
2043 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2049 (
"hDeltaPhiUeRightDownChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE right Down side range of trigger particles",
2050 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2056 new TH2F(
"hXEUeChargedLeft",
"#it{x}_{#it{E}} with UE left side of trigger",
2057 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2063 new TH2F(
"hXEUeChargedLeftUp",
"#it{x}_{#it{E}} with UE left Up side of trigger",
2064 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2070 new TH2F(
"hXEUeChargedRightUp",
"#it{x}_{#it{E} h^{#pm}} with UE right Up side of trigger",
2071 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2077 new TH2F(
"hXEUeChargedLeftDown",
"#it{x}_{#it{E}} with UE left Down side of trigger",
2078 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2084 new TH2F(
"hXEUeChargedRightDown",
"#it{x}_{#it{E} h^{#pm}} with UE right Down side of trigger",
2085 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2091 new TH2F(
"hHbpXEUeChargedLeft",
"#xi = ln(1/#it{x}_{#it{E}}) with charged UE left side of trigger",
2092 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2098 new TH2F(
"hZTUeChargedLeft",
"#it{z}_{trigger h^{#pm}} = #it{p}_{T Ueh^{#pm}} / #it{p}_{T trigger} with UE left side of trigger",
2099 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2105 new TH2F(
"hHbpZTUeChargedLeft",
"#xi = ln(1/#it{z}_{T}) with charged UE left side of trigger",
2106 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2115 (
"hDeltaPhiChargedOtherBC",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, track BC!=0",
2116 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2121 (
"hDeltaPhiChargedPtA3GeVOtherBC",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC!=0",
2122 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2127 new TH2F(
"hPtTrigChargedOtherBC",
"trigger and charged tracks pt distribution, track BC!=0",
2128 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2133 new TH2F(
"hXEChargedOtherBC",
"#it{x}_{#it{E}} for charged tracks, track BC!=0",
2134 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2139 new TH2F(
"hXEUeChargedOtherBC",
"#it{x}_{#it{E}} for Underlying Event, track BC!=0",
2140 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2145 new TH2F(
"hZTChargedOtherBC",
"#it{z}_{T} for charged tracks, track BC!=0",
2146 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2151 new TH2F(
"hZTUeChargedOtherBC",
"#it{z}_{T} for Underlying Event, track BC!=0",
2152 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2165 (
"hDeltaPhiChargedBC0",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, track BC==0",
2166 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2171 (
"hDeltaPhiChargedPtA3GeVBC0",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC==0",
2172 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2177 new TH2F(
"hPtTrigChargedBC0",
"trigger and charged tracks pt distribution, track BC==0",
2178 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2183 new TH2F(
"hXEChargedBC0",
"#it{x}_{#it{E}} for charged tracks, track BC==0",
2184 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2189 new TH2F(
"hXEUeChargedBC0",
"#it{x}_{#it{E}} for Underlying Event, track BC==0",
2190 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2195 new TH2F(
"hZTChargedBC0",
"#it{z}_{T} for charged tracks, track BC==0",
2196 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2201 new TH2F(
"hZTUeChargedBC0",
"#it{z}_{T} for Underlying Event, track BC==0",
2202 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2214 fhPtTriggerVtxBC0 =
new TH1F(
"hPtTriggerVtxBC0",
"#it{p}_{T} distribution of trigger particles", nptbins,ptmin,ptmax);
2218 (
"hDeltaPhiChargedVtxBC0",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, track BC==0",
2219 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2224 (
"hDeltaPhiChargedPtA3GeVVtxBC0",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC==0",
2225 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2230 new TH2F(
"hPtTrigChargedVtxBC0",
"trigger and charged tracks pt distribution, track BC==0",
2231 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2236 new TH2F(
"hXEChargedVtxBC0",
"#it{x}_{#it{E}} for charged tracks, track BC==0",
2237 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2242 new TH2F(
"hXEUeChargedVtxBC0",
"#it{x}_{#it{E}} for Underlying Event, track BC==0",
2243 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2248 new TH2F(
"hZTChargedVtxBC0",
"#it{z}_{T} for charged tracks, track BC==0",
2249 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2254 new TH2F(
"hZTUeChargedVtxBC0",
"#it{z}_{T} for Underlying Event, track BC==0",
2255 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2268 for(
Int_t i = 0 ; i < 7 ; i++)
2271 Form(
"#it{p}_{T} distribution of trigger particles, %s Pile-Up event",pileUpName[i].
Data()), nptbins,ptmin,ptmax);
2276 Form(
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, %s Pile-Up event",pileUpName[i].
Data()),
2277 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2283 Form(
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, %s Pile-Up event",pileUpName[i].
Data()),
2284 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2290 Form(
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}, %s Pile-Up event",pileUpName[i].
Data()),
2291 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
2297 Form(
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, %s Pile-Up event",pileUpName[i].
Data()),
2298 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
2304 Form(
"#it{x}_{#it{E}} for charged tracks, %s Pile-Up event",pileUpName[i].
Data()),
2305 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2311 Form(
"#it{x}_{#it{E}} for Underlying Event, %s Pile-Up event",pileUpName[i].
Data()),
2312 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2318 Form(
"#it{z}_{T} for charged tracks, %s Pile-Up event",pileUpName[i].
Data()),
2319 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2325 Form(
"#it{z}_{T} for Underlying Event, %s Pile-Up event",pileUpName[i].
Data()),
2326 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2332 Form(
"trigger and charged tracks pt distribution, %s Pile-Up event",pileUpName[i].
Data()),
2333 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2350 for(
Int_t im=0; im<nMultiBins; im++)
2353 (Form(
"hDeltaPhiCharged_Mult%d",im),Form(
"#Delta #phi charged Mult bin %d",im), nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2358 (Form(
"hDeltaEtaCharged_Mult%d",im),Form(
"#Delta #eta charged Mult bin %d",im), nptbins,ptmin,ptmax, ndeltaetabins ,deltaetamin,deltaetamax);
2363 (Form(
"hXECharged_Mult%d",im),Form(
"#it{x}_{E} charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2364 fhXEMult[im]->SetYTitle(
"#it{x}_{E}");
2365 fhXEMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2368 (Form(
"hXEUeCharged_Mult%d",im),Form(
"#it{x}_{E} UE charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2370 fhXEUeMult[im]->SetXTitle(
"#it{p}_{T trigger}(GeV/#it{c})");
2373 (Form(
"hZTCharged_Mult%d",im),Form(
"#it{z}_{T} charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2374 fhZTMult[im]->SetYTitle(
"#it{z}_{T}");
2375 fhZTMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2378 (Form(
"hZTUeCharged_Mult%d",im),Form(
"#it{z}_{T} UE charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2380 fhZTUeMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2384 outputContainer->Add(
fhXEMult [im]);
2386 outputContainer->Add(
fhZTMult [im]);
2393 fhAssocPtBkg =
new TH2F(
"hAssocPtBkg",
" Trigger #it{p}_{T} vs associated hadron #it{p}_{T} from background",
2394 nptbins, ptmin, ptmax,nptbins,ptmin,ptmax);
2395 fhAssocPtBkg->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2396 fhAssocPtBkg->SetYTitle(
"#it{p}_{T associated} (GeV/#it{c})");
2399 fhDeltaPhiBrad =
new TH2F(
"hDeltaPhiBrad",
"atan2(sin(#Delta #phi), cos(#Delta #phi))/#pi vs #it{p}_{T trigger} ",
2400 nptbins, ptmin, ptmax,288, -1.0/3.0, 5.0/3.0);
2402 fhDeltaPhiBrad->SetYTitle(
"atan2(sin(#Delta #phi), cos(#Delta #phi))/#pi");
2439 for(
Int_t z = 0 ; z < nz ; z++)
2445 sz = Form(
"_vz%d",z);
2446 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
2453 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
2459 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2469 Form(
"#Delta #phi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s, for #Delta #eta > 0.8",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
2470 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2475 Form(
"#Delta #phi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s, for #Delta #eta = 0.",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
2476 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2488 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2498 Form(
"atan2(sin(#Delta #phi), cos(#Delta #phi))/#pi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
2499 nptbins, ptmin, ptmax,288, -1.0/3.0, 5.0/3.0);
2508 Form(
"#Delta #phi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s, with track having HMPID signal",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
2509 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2514 Form(
"#Delta #phi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s, with track within 5<phi<20 deg",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
2515 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2531 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2537 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2549 for(
Int_t z = 0 ; z < nz ; z++)
2551 sz = Form(
"_vz%d",z);
2552 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
2554 fhXEVZ[z] =
new TH2F(Form(
"hXE%s", sz.Data()),
2555 Form(
"#it{x}_{#it{E}} vs #it{p}_{T trigger}%s", tz.Data()),
2556 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2557 fhXEVZ[z]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2558 fhXEVZ[z]->SetYTitle(
"#it{x}_{#it{E}}");
2560 fhZTVZ[z] =
new TH2F(Form(
"hZT%s",sz.Data()),
2561 Form(
"#it{z}_{T} vs #it{p}_{T trigger}%s", tz.Data()),
2562 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2563 fhZTVZ[z]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2564 fhZTVZ[z]->SetYTitle(
"#it{z}_{T}");
2566 outputContainer->Add(
fhXEVZ[z]);
2567 outputContainer->Add(
fhZTVZ[z]);
2574 (
"hPtPi0DecayRatio",
"#it{p}_{T} of #pi^{0} and the ratio of pt for two decay",
2575 nptbins,ptmin,ptmax, 100,0.,2.);
2581 (
"hDeltaPhiPi0DecayCharged",
"#phi_{Decay} - #phi_{h^{#pm}} vs #it{p}_{T Decay}",
2582 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2587 new TH2F(
"hXEPi0DecayCharged",
"#it{x}_{#it{E}} Decay",
2588 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2593 new TH2F(
"hZTPi0DecayCharged",
"#it{z}_{trigger h^{#pm}} = #it{p}_{T h^{#pm}} / #it{p}_{T Decay}",
2594 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2608 (Form(
"hDeltaPhiDecayCharged_bit%d",
fDecayBits[ibit]),
2609 Form(
"#phi_{Decay} - #phi_{h^{#pm}} vs #it{p}_{T Decay}, Bit %d",
fDecayBits[ibit]),
2610 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2616 Form(
"#it{x}_{#it{E}} Decay, Bit %d",
fDecayBits[ibit]),
2617 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2623 Form(
"#it{z}_{trigger h^{#pm}} = #it{p}_{T h^{#pm}} / #it{p}_{T Decay}, Bit %d",
fDecayBits[ibit]),
2624 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2638 (
"hDeltaPhiDeltaEtaNeutral",
"#phi_{trigger} - #phi_{h^{0}} vs #eta_{trigger} - #eta_{h^{0}}",
2639 ndeltaphibins ,deltaphimin,deltaphimax, ndeltaetabins ,deltaetamin,deltaetamax);
2644 (
"hPhiNeutral",
"#phi_{#pi^{0}} vs #it{p}_{T #pi^{0}}",
2645 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
2647 fhPhiNeutral->SetXTitle(
"#it{p}_{T #pi^{0}} (GeV/#it{c})");
2650 (
"hEtaNeutral",
"#eta_{#pi^{0}} vs #it{p}_{T #pi^{0}}",
2651 nptbins,ptmin,ptmax,200,-1.,1.);
2653 fhEtaNeutral->SetXTitle(
"#it{p}_{T #pi^{0}} (GeV/#it{c})");
2656 (
"hDeltaPhiNeutral",
"#phi_{trigger} - #phi_{#pi^{0}} vs #it{p}_{T trigger}",
2657 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2662 (
"hDeltaPhiNeutralPt",
"#phi_{trigger} - #phi_{#pi^{0}} vs #it{p}_{T #pi^{0}}}",
2663 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2668 (
"hDeltaEtaNeutral",
"#eta_{trigger} - #eta_{#pi^{0}} vs #it{p}_{T trigger}",
2669 nptbins,ptmin,ptmax, ndeltaetabins ,deltaetamin,deltaetamax);
2674 new TH2F(
"hXENeutral",
"#it{x}_{#it{E}} for #pi^{0} associated",
2675 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2677 fhXENeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2680 new TH2F(
"hHbpXENeutral",
"#xi = ln(1/#it{x}_{#it{E}})for #pi^{0} associated",
2681 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2686 new TH2F(
"hZTNeutral",
"#it{z}_{trigger #pi} = #it{p}_{T #pi^{0}} / #it{p}_{T trigger} for #pi^{0} associated",
2687 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2688 fhZTNeutral->SetYTitle(
"#it{z}_{trigger #pi^{0}}");
2689 fhZTNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2692 new TH2F(
"hHbpZTNeutral",
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2693 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2709 (Form(
"hDeltaPhiUe%sNeutralPt",right.Data()),
"#phi_{trigger} - #phi_{#pi^{0}} vs #it{p}_{T #pi^{0}}}",
2710 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2715 new TH2F(Form(
"hXEUeNeutral%s",right.Data()),
"#it{x}_{#it{E}} for #pi^{0} associated",
2716 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2718 fhXEUeNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2721 new TH2F(Form(
"hHbpXEUeNeutral%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2722 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2727 new TH2F(Form(
"hZTUeNeutral%s",right.Data()),
"#it{z}_{trigger #pi} = #it{p}_{T #pi^{0}} / #it{p}_{T trigger} for #pi^{0} associated",
2728 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2730 fhZTUeNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2733 new TH2F(Form(
"hHbpZTUeNeutral%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2734 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2747 (
"hDeltaPhiUeLeftNeutralPt",
"#phi_{trigger} - #phi_{#Ueh^{0}} vs #it{p}_{T h^{0}} with neutral UE left side range of trigger particles",
2748 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2754 new TH2F(
"hXEUeNeutralLeft",
"#it{x}_{#it{E}} = #it{p}_{T Ueh^{0}} / #it{p}_{T trigger} with neutral UE left side of trigger",
2755 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2761 new TH2F(
"hHbpXEUeNeutralLeft",
"#xi = ln(1/#it{x}_{#it{E}}) with neutral UE left side of trigger",
2762 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2768 new TH2F(
"hZTUeNeutralLeft",
"#it{z}_{trigger h^{0}} = #it{p}_{T Ueh^{0}} / #it{p}_{T trigger} with neutral UE left side of trigger",
2769 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2775 new TH2F(
"hHbpZTUeNeutralLeft",
"#xi = ln(1/#it{z}_{T}) with neutral UE left side of trigger",
2776 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2785 (
"hDeltaPhiPi0DecayNeutral",
"#phi_{Decay} - #phi_{h^{0}} vs #it{p}_{T Decay}",
2786 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2791 new TH2F(
"hXEPi0DecayNeutral",
"#it{x}_{#it{E}} for decay trigger",
2792 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2797 new TH2F(
"hZTPi0DecayNeutral",
"#it{z}_{trigger h^{0}} = #it{p}_{T h^{0}} / #it{p}_{T Decay}",
2798 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2814 Form(
"MC %s: generated trigger #it{p}_{T}",nameMC[i].
Data()),
2815 nptbins,ptmin,ptmax);
2816 fhMCPtTrigger[i]->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
2819 Form(
"MC %s: generated trigger #phi",nameMC[i].
Data()),
2820 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
2825 Form(
"MC %s: generated trigger #eta",nameMC[i].
Data()),
2826 nptbins,ptmin,ptmax, netabins,etamin,etamax);
2833 Form(
"MC %s: generated trigger #it{p}_{T}, when not leading of primaries",nameMC[i].
Data()),
2834 nptbins,ptmin,ptmax);
2838 Form(
"MC %s: generated trigger #phi, when not leading of primaries",nameMC[i].
Data()),
2839 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
2845 Form(
"MC %s: generated triogger #eta, when not leading of primaries",nameMC[i].
Data()),
2846 nptbins,ptmin,ptmax, netabins,etamin,etamax);
2852 Form(
"MC %s: #eta_{h^{#pm}} vs #it{p}_{T #pm}",nameMC[i].
Data()),
2853 nptbins,ptmin,ptmax,100,-1.,1.);
2858 Form(
"MC %s: phi_{h^{#pm}} vs #it{p}_{T #pm}",nameMC[i].
Data()),
2859 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
2864 Form(
"MC %s: phi_{trigger} - #phi_{h^{#pm}} vs #eta_{trigger} - #eta_{h^{#pm}}",nameMC[i].
Data()),
2865 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
2870 Form(
"MC %s: #eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger} and #it{p}_{T assoc}",nameMC[i].
Data()),
2871 nptbins,ptmin,ptmax,ndeltaetabins ,deltaetamin,deltaetamax);
2876 Form(
"MC %s: #phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}",nameMC[i].
Data()),
2877 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2882 Form(
"MC %s: #phi_{trigger} - #phi_{#h^{#pm}} vs #it{p}_{T h^{#pm}}",nameMC[i].
Data()),
2883 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2888 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons",nameMC[i].
Data()),
2889 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2894 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",nameMC[i].
Data()),
2895 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2900 Form(
"MC %s: #it{z}_{T} with charged hadrons",nameMC[i].
Data()),
2901 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2906 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons",nameMC[i].
Data()),
2907 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2912 Form(
"MC %s: #it{p}_{out} with triggers",nameMC[i].
Data()),
2913 nptbins,ptmin,ptmax,nptbins,-1.*ptmax/2.,ptmax/2.);
2918 Form(
"MC %s: #Delta #phi with associated charged hadrons",nameMC[i].
Data()),
2919 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2951 new TH1F(Form(
"hMCUePart_%s",nameMC[i].
Data()),
2952 Form(
"MC %s: UE particles distribution vs #it{p}_{T trigger}",nameMC[i].
Data()),
2953 nptbins,ptmin,ptmax);
2955 fhMCUePart[i]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2958 new TH2F(Form(
"hMCPtXEUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2959 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2960 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2965 new TH2F(Form(
"hMCPtHbpXEUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2966 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2967 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2972 new TH2F(Form(
"hMCPtZTUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2973 Form(
"MC %s: #it{z}_{T} with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2974 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2979 new TH2F(Form(
"hMCPtHbpZTUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2980 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2981 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2994 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
2995 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3000 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3001 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3006 Form(
"MC %s: #it{z}_{T} with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3007 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3012 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3013 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3038 for(
Int_t ice = 0 ; ice < nce ; ice++ )
3040 for(
Int_t ivz = 0 ; ivz < nvz ; ivz++ )
3042 for(
Int_t irp = 0 ; irp < nrp ; irp++ )
3056 fhPtTriggerMixed =
new TH1F (
"hPtTriggerMixed",
"#it{p}_{T} distribution of trigger particles, used for mixing", nptbins,ptmin,ptmax);
3067 fhPtTriggerMixedBin =
new TH2F (
"hPtTriggerMixedBin",
"#it{p}_{T} distribution of trigger particles vs mixing bin", nptbins,ptmin,ptmax,nMixBins,0,nMixBins);
3071 fhPhiTriggerMixed =
new TH2F (
"hPhiTriggerMixed",
"#phi distribution of trigger Particles, used for mixing",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
3074 fhEtaTriggerMixed =
new TH2F (
"hEtaTriggerMixed",
"#eta distribution of trigger, used for mixing",nptbins,ptmin,ptmax, netabins,etamin,etamax);
3091 for(
Int_t ice = 0 ; ice < nce ; ice++ )
3093 for(
Int_t ivz = 0 ; ivz < nvz ; ivz++ )
3095 for(
Int_t irp = 0 ; irp < nrp ; irp++ )
3112 if( !
GetReader()->ListWithMixedEventsForTracksExists() )
3115 if( !
GetReader()->ListWithMixedEventsForCaloExists() )
3119 fhEventBin=
new TH1I(
"hEventBin",
"Number of triggers per bin(cen,vz,rp)",
3125 fhEventMixBin=
new TH1I(
"hEventMixBin",
"Number of triggers mixed per event bin(cen,vz,rp)",
3131 fhEventMBBin=
new TH1I(
"hEventMBBin",
"Number of min bias events per bin(cen,vz,rp)",
3137 fhNtracksMB=
new TH2F(
"hNtracksMBEvent",
"Number of filtered tracks in MB event per event bin",ntrbins,trmin,trmax,
3146 fhNclustersMB=
new TH2F(
"hNclustersMBEvent",
"Number of filtered clusters in MB events per event bin",nclbins,clmin,clmax,
3155 (
"hMixDeltaPhiCharged",
"Mixed event : #phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}",
3156 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
3162 (
"hMixDeltaPhiDeltaEtaCharged",
"Mixed event : #phi_{trigger} - #phi_{h^{#pm}} vs #eta_{trigger} - #eta_{h^{#pm}}",
3163 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
3169 new TH2F(
"hMixXECharged",
"Mixed event : #it{x}_{#it{E}} for charged tracks",
3170 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3176 new TH2F(
"hMixXEUeCharged",
"Mixed event : #it{x}_{#it{E}} for charged tracks in Ue region",
3177 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3183 new TH2F(
"hMixHbpXECharged",
"mixed event : #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",
3184 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3196 for(
Int_t z = 0 ; z < nz ; z++)
3202 sz = Form(
"_vz%d",z);
3203 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
3210 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
3218 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3227 Form(
"Mixed event #Delta #phi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s, for #Delta #eta > 0.8",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
3228 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3233 Form(
"Mixed event #Delta #phi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s, for #Delta #eta = 0",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
3234 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3245 return outputContainer;
3259 if(indexPhoton1!=-1 || indexPhoton2!=-1)
return kFALSE;
3261 AliDebug(1,Form(
"indexPhoton1 = %d, indexPhoton2 = %d", indexPhoton1, indexPhoton2));
3267 for(
Int_t iclus = 0; iclus < clusters->GetEntriesFast(); iclus++)
3269 AliVCluster * photon = (AliVCluster*) (clusters->At(iclus));
3304 AliFatal(
"STOP!: You want to use CTS tracks in analysis but not read!! \n!!Check the configuration file!!");
3401 Int_t idTrig = trigger->GetCaloLabel(0);
3402 Float_t ptTrig = trigger->Pt();
3403 Float_t tofTrig = trigger->GetTime();
3410 for(
Int_t iphoton = 0; iphoton < nphoton; iphoton++)
3412 AliAODPWG4ParticleCorrelation * photon1 = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iphoton));
3414 if(idTrig == photon1->GetCaloLabel(0))
continue;
3421 Float_t m02 = photon1->GetM02();
3427 Double_t tdiff = tofTrig - photon1->GetTime();
3453 AliAODPWG4ParticleCorrelation* pLeading = 0;
3459 AliAODPWG4ParticleCorrelation* particle = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
3460 particle->SetLeadingParticle(kFALSE);
3464 if(check == 0)
continue;
3465 if(check == -1)
return kFALSE;
3468 if (particle->Pt() > ptTrig)
3470 ptTrig = particle->Pt() ;
3471 phiTrig = particle->Phi();
3473 pLeading = particle ;
3477 if(index < 0)
return kFALSE;
3481 if(phiTrig < 0 ) phiTrig += TMath::TwoPi();
3487 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
3492 if ( pLeading->GetDetectorTag() ==
kCTS )
3495 Bool_t contained = kFALSE;
3497 for(
Int_t i = 0; i < 4; i++)
3499 if( trackID == pLeading->GetTrackLabel(i) ) contained = kTRUE;
3502 if ( contained ) continue ;
3505 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
3508 if(phi < 0) phi+=TMath::TwoPi();
3513 Float_t deltaPhi = phiTrig-phi;
3514 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
3515 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
3517 if(pt > ptTrig && deltaPhi < TMath::PiOver2())
return kFALSE;
3522 if(pt > ptTrig)
return kFALSE ;
3532 if (pLeading->GetDetectorTag() ==
kPHOS )
3537 if(!nePl)
return kTRUE;
3539 for(
Int_t ipr = 0;ipr < nePl->GetEntriesFast() ; ipr ++ )
3541 AliVCluster * cluster = (AliVCluster *) (nePl->At(ipr)) ;
3543 if(cluster->GetID() == pLeading->GetCaloLabel(0) || cluster->GetID() == pLeading->GetCaloLabel(1) )
continue ;
3549 if(phi < 0) phi+=TMath::TwoPi();
3557 Float_t deltaPhi = phiTrig-phi;
3558 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
3559 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
3561 if(pt > ptTrig && deltaPhi < TMath::PiOver2())
return kFALSE ;
3566 if(pt > ptTrig)
return kFALSE ;
3572 pLeading->SetLeadingParticle(kTRUE);
3574 AliDebug(1,Form(
"\t particle AOD with index %d is leading with pT %2.2f",
fLeadingTriggerIndex, pLeading->Pt()));
3598 AliFatal(Form(
"No input particles in AOD with name branch < %s >, STOP",
GetInputAODName().
Data()));
3605 AliDebug(1,
"No particle AOD found!");
3609 AliDebug(1,Form(
"Begin hadron correlation analysis, fill histograms"));
3610 AliDebug(1,Form(
"n particle branch aod entries %d", naod));
3611 AliDebug(1,Form(
"In CTS aod entries %d",
GetCTSTracks()->GetEntriesFast()));
3626 AliDebug(1,
"Leading was requested and not found");
3650 for( iaod = 0; iaod < naod; iaod++ )
3652 AliAODPWG4ParticleCorrelation* particle = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
3670 AliDebug(1,Form(
"%s Trigger : min %f, max %f, det %d",
3687 Float_t m02 = particle->GetM02();
3693 AliDebug(1,
"Pass the shower shape cut");
3702 if( !particle->IsIsolated() )
continue;
3706 AliDebug(1,
"Pass the isolation cut");
3716 if(! in ) continue ;
3718 AliDebug(1,
"Pass the fiducial cut");
3728 Bool_t okLeadHad = kTRUE;
3742 Int_t mcTag = particle->GetTag();
3743 Bool_t lostDecayPair = kFALSE;
3787 Float_t m02 = particle->GetM02();
3788 Float_t pTLeadTrackInCone = 0;
3790 Float_t pTLeadClusterInCone = 0;
3791 Float_t pTSumClusterInCone = 0;
3793 pTLeadTrackInCone = particle->GetChargedLeadPtInCone();
3794 pTLeadClusterInCone = particle->GetNeutralLeadPtInCone();
3796 pTSumTrackInCone = particle->GetChargedPtSumInCone();
3797 pTSumClusterInCone = particle->GetNeutralPtSumInCone();
3799 Float_t pTLeadInCone = pTLeadTrackInCone;
3800 if(pTLeadClusterInCone > pTLeadInCone) pTLeadInCone = pTLeadClusterInCone;
3801 Float_t pTSumInCone = pTSumTrackInCone + pTSumClusterInCone;
3804 Int_t pTSumBin = -1;
3805 Int_t pTLeadBin = -1;
3825 Int_t decayTag = particle->DecayTag();
3826 if(decayTag < 0) decayTag = 0;
3884 AliFatal(Form(
"Lost decay Bit assigned to bad case, mcIndex %d",mcIndex));
3906 Int_t decayTag = particle->DecayTag();
3907 if(decayTag < 0) decayTag = 0;
3932 Float_t phi = particle->Phi();
3933 if( phi < 0 ) phi+=TMath::TwoPi();
3973 AliDebug(1,
"End fill histograms");
3985 AliDebug(1,
"Make trigger particle - charged hadron correlation");
3987 Float_t phiTrig = aodParticle->Phi();
3988 Float_t etaTrig = aodParticle->Eta();
3989 Float_t ptTrig = aodParticle->Pt();
3990 Int_t mcTag = aodParticle->GetTag();
3998 decayTag = aodParticle->DecayTag();
3999 if(decayTag < 0) decayTag = 0;
4017 Int_t evtIndex11 = -1 ;
4018 Int_t evtIndex12 = -1 ;
4019 Int_t evtIndex13 = -1 ;
4023 evtIndex11 =
GetMixedEvent()->EventIndexForCaloCluster(aodParticle->GetCaloLabel(0)) ;
4024 evtIndex12 =
GetMixedEvent()->EventIndexForCaloCluster(aodParticle->GetCaloLabel(1)) ;
4025 evtIndex13 =
GetMixedEvent()->EventIndex(aodParticle->GetTrackLabel(0)) ;
4037 Bool_t decayFound = kFALSE;
4040 decayFound =
GetDecayPhotonMomentum(aodParticle->GetCaloLabel(0),aodParticle->GetCaloLabel(1),aodParticle->GetDetectorTag());
4054 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
4056 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
4060 if(phi < 0) phi+=TMath::TwoPi();
4063 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
4068 if ( aodParticle->GetDetectorTag() ==
kCTS )
4071 Bool_t contained = kFALSE;
4073 for(
Int_t i = 0; i < 4; i++)
4075 if( trackID == aodParticle->GetTrackLabel(i) ) contained = kTRUE;
4078 if ( contained ) continue ;
4082 Int_t evtIndex2 = 0 ;
4086 if (evtIndex11 == evtIndex2 || evtIndex12 == evtIndex2 || evtIndex13 == evtIndex2 )
4093 AliDebug(2,Form(
"Selected charge for momentum imbalance: pt %2.2f, phi %2.2f, eta %2.2f",pt,phi,eta));
4102 Int_t assocBin = -1;
4121 Int_t bin = assocBin*nz+vz;
4128 ULong_t status = track->GetStatus();
4129 Bool_t okTOF = ( (status & AliVTrack::kTOFout) == AliVTrack::kTOFout ) ;
4131 Int_t trackBC = track->GetTOFBunchCrossing(bz);
4134 if (okTOF && trackBC!=0) outTOF = 1;
4135 else if(okTOF && trackBC==0) outTOF = 0;
4144 deltaPhi = phiTrig-phi;
4151 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4152 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4155 eta, etaTrig, decayTag, track->GetHMPIDsignal(),
4156 outTOF, cenbin, mcTag);
4162 AliESDtrack * esdTrack =
dynamic_cast<AliESDtrack*
>(track);
4177 assocBin, decayTag, outTOF, mcTag);
4216 reftracks->SetName(trackname.Data());
4217 reftracks->SetOwner(kFALSE);
4220 reftracks->Add(track);
4227 aodParticle->AddObjArray(reftracks);
4236 AliDebug(1,Form(
"Make trigger particle - charged hadron mixed event correlation"));
4245 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
4247 if(!inputHandler)
return;
4255 if(eventBin < 0)
return;
4264 TList * poolCalo = 0;
4278 if( neutralMix && !poolCalo )
4279 AliWarning(
"Careful, cluster pool not available");
4281 Double_t ptTrig = aodParticle->Pt();
4282 Double_t etaTrig = aodParticle->Eta();
4283 Double_t phiTrig = aodParticle->Phi();
4284 if(phiTrig < 0.) phiTrig+=TMath::TwoPi();
4286 AliDebug(1,Form(
"Pool bin %d size %d, trigger trigger pt=%f, phi=%f, eta=%f",
4287 eventBin,pool->GetSize(), ptTrig,phiTrig,etaTrig));
4300 for(
Int_t ev=ev0; ev < pool->GetSize(); ev++)
4309 if( neutralMix && poolCalo )
4311 if(pool->GetSize()!=poolCalo->GetSize())
4312 AliWarning(
"Different size of calo and track pools");
4314 bgCalo =
static_cast<TObjArray*
>(poolCalo->At(ev));
4316 if(!bgCalo) AliDebug(1,Form(
"Event %d in calo pool not available?",ev));
4324 Int_t n=0, nfrac = 0;
4325 Bool_t isolated = kFALSE;
4326 Float_t coneptsum = 0, coneptlead = 0;
4329 kFALSE, aodParticle,
"",
4330 n,nfrac,coneptsum,coneptlead,isolated);
4337 if(!isolated) continue ;
4343 Int_t nTracks=bgTracks->GetEntriesFast();
4348 for(
Int_t jlead = 0;jlead < nTracks; jlead++ )
4350 AliAODPWG4Particle *track = (AliAODPWG4Particle*) bgTracks->At(jlead) ;
4352 ptAssoc = track->Pt();
4353 phiAssoc = track->Phi() ;
4354 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4358 deltaPhi = phiTrig-phiAssoc;
4359 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4360 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4362 if(ptAssoc > ptTrig && deltaPhi < TMath::PiOver2())
4371 if(ptAssoc > ptTrig)
4380 AliWarning(
"Leading of clusters requested but no clusters in mixed event");
4384 Int_t nClusters=bgCalo->GetEntriesFast();
4385 for(
Int_t jlead = 0;jlead <nClusters; jlead++ )
4387 AliAODPWG4Particle *cluster= (AliAODPWG4Particle*) bgCalo->At(jlead) ;
4389 ptAssoc = cluster->Pt();
4390 phiAssoc = cluster->Phi() ;
4391 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4395 deltaPhi = phiTrig-phiAssoc;
4396 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4397 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4399 if(ptAssoc > ptTrig && deltaPhi < TMath::PiOver2())
4408 if(ptAssoc > ptTrig)
4417 if(!leading)
continue;
4438 for(
Int_t j1 = 0;j1 <nTracks; j1++ )
4440 AliAODPWG4Particle *track = (AliAODPWG4Particle*) bgTracks->At(j1) ;
4442 if(!track)
continue;
4444 ptAssoc = track->Pt();
4445 etaAssoc = track->Eta();
4446 phiAssoc = track->Phi() ;
4447 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4449 deltaPhi = phiTrig-phiAssoc;
4450 if(deltaPhi < -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4451 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4452 deltaEta = etaTrig-etaAssoc;
4454 AliDebug(1,Form(
"deltaPhi= %f, deltaEta=%f",deltaPhi, deltaEta));
4465 xE = -ptAssoc/ptTrig*TMath::Cos(deltaPhi);
4468 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4482 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
4485 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4492 Int_t assocBin = -1;
4510 Int_t bin = assocBin*nz+vz;
4512 if(bin < 0) continue ;
4519 if(TMath::Abs(deltaEta) > 0.8)
4521 if(TMath::Abs(deltaEta) < 0.01)
4536 if(!pi0list) return ;
4538 Int_t npi0 = pi0list->GetEntriesFast();
4539 if(npi0 == 0) return ;
4541 AliDebug(1,Form(
"Particle - pi0 correlation, %d pi0's",npi0));
4543 Int_t evtIndex11 = 0 ;
4544 Int_t evtIndex12 = 0 ;
4547 evtIndex11 =
GetMixedEvent()->EventIndexForCaloCluster(aodParticle->GetCaloLabel(0)) ;
4548 evtIndex12 =
GetMixedEvent()->EventIndexForCaloCluster(aodParticle->GetCaloLabel(1)) ;
4559 Float_t ptTrig = aodParticle->Pt();
4560 Float_t phiTrig = aodParticle->Phi();
4561 Float_t etaTrig = aodParticle->Eta();
4568 Bool_t decayFound = kFALSE;
4576 for(
Int_t iaod = 0; iaod < npi0 ; iaod++)
4578 AliAODPWG4Particle* pi0 = (AliAODPWG4Particle*) (pi0list->At(iaod));
4580 Int_t evtIndex2 = 0 ;
4581 Int_t evtIndex3 = 0 ;
4584 evtIndex2 =
GetMixedEvent()->EventIndexForCaloCluster(pi0->GetCaloLabel(0)) ;
4585 evtIndex3 =
GetMixedEvent()->EventIndexForCaloCluster(pi0->GetCaloLabel(1)) ;
4587 if (evtIndex11 == evtIndex2 || evtIndex12 == evtIndex2 ||
4588 evtIndex11 == evtIndex3 || evtIndex12 == evtIndex3)
4594 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
4597 if(aodParticle->GetCaloLabel(0) >= 0 &&
4598 (pi0->GetCaloLabel(0) == aodParticle->GetCaloLabel(0) || pi0->GetCaloLabel(1) == aodParticle->GetCaloLabel(0))) continue ;
4600 if( aodParticle->GetCaloLabel(1) >= 0 &&
4601 (pi0->GetCaloLabel(0) == aodParticle->GetCaloLabel(1) || pi0->GetCaloLabel(1) == aodParticle->GetCaloLabel(1))) continue ;
4608 deltaEta = etaTrig-eta;
4609 deltaPhi = phiTrig-phi;
4610 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4611 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4628 if(zT > 0 ) hbpZT = TMath::Log(1./zT);
4633 xE =-pt/ptTrig*TMath::Cos(deltaPhi);
4636 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4639 if( xE > 0 ) hbpXE = TMath::Log(1./xE);
4652 xE = -(pt/ptTrig)*TMath::Cos(randomphi);
4653 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
4679 refpi0->SetOwner(kFALSE);
4684 AliDebug(1,Form(
"Selected pi0: pt %2.2f, phi %2.2f, eta %2.2f",pt,phi,eta));
4691 aodParticle->AddObjArray(refpi0);
4700 AliDebug(1,
"Make trigger particle - charged hadron correlation in AOD MC level");
4704 AliDebug(1,Form(
" *** bad label ***: label %d", label));
4711 if(histoIndex < fMCGenTypeMin || histoIndex >
fMCGenTypeMax) return ;
4713 AliStack * stack = 0x0 ;
4714 TParticle * primary = 0x0 ;
4715 TClonesArray * mcparticles = 0x0 ;
4716 AliAODMCParticle * aodprimary = 0x0 ;
4723 Int_t iParticle = 0 ;
4732 AliFatal(
"Stack not available, is the MC handler called? STOP");
4737 nTracks = stack->GetNprimary();
4738 if( label >= stack->GetNtrack() )
4741 AliInfo(Form(
"*** large label ***: label %d, n tracks %d", label, stack->GetNtrack()));
4745 primary = stack->Particle(label);
4748 AliInfo(Form(
" *** no primary ***: label %d", label));
4752 eprim = primary->Energy();
4753 ptprim = primary->Pt();
4754 etaprim = primary->Eta();
4755 phiprim = primary->Phi();
4756 if(phiprim < 0) phiprim+=TMath::TwoPi();
4758 if(ptprim < 0.01 || eprim < 0.01) return ;
4760 for (iParticle = 0 ; iParticle < nTracks ; iParticle++)
4762 TParticle * particle = stack->Particle(iParticle);
4765 if( particle->GetStatusCode() != 1 )
continue ;
4768 Int_t pdg = particle->GetPdgCode();
4769 Int_t charge = (
Int_t) TDatabasePDG::Instance()->GetParticle(pdg)->Charge();
4770 if(charge == 0)
continue;
4777 if( !inCTS )
continue;
4780 if ( TMath::Abs(pdg) == 11 && stack->Particle(particle->GetFirstMother())->GetPdgCode() == 22 )
continue ;
4782 if ( label == iParticle )
continue;
4784 Float_t phi = particle->Phi();
4785 if(phi < 0) phi+=TMath::TwoPi();
4789 if ( !lead ) leadTrig = kFALSE;
4798 if( !mcparticles )
return;
4800 nTracks = mcparticles->GetEntriesFast() ;
4802 if( label >= nTracks )
4805 AliInfo(Form(
" *** large label ***: label %d, n tracks %d", label,nTracks));
4810 aodprimary = (AliAODMCParticle*) mcparticles->At(label);
4813 AliInfo(Form(
" *** no AOD primary ***: label %d", label));
4817 eprim = aodprimary->E();
4818 ptprim = aodprimary->Pt();
4819 etaprim = aodprimary->Eta();
4820 phiprim = aodprimary->Phi();
4821 if(phiprim < 0) phiprim+=TMath::TwoPi();
4823 if(ptprim < 0.01 || eprim < 0.01) return ;
4825 for (iParticle = 0; iParticle < nTracks; iParticle++)
4827 AliAODMCParticle *part = (AliAODMCParticle*) mcparticles->At(iParticle);
4829 if (!part->IsPhysicalPrimary() )
continue;
4831 if ( part->Charge() == 0 )
continue;
4833 fMomentum.SetPxPyPzE(part->Px(),part->Py(),part->Pz(),part->E());
4838 if( !inCTS )
continue;
4841 Int_t indexmother = part->GetMother();
4842 if ( indexmother > -1 )
4845 Int_t mPdg = ((AliAODMCParticle*) mcparticles->At(indexmother)) ->GetPdgCode();
4846 if (TMath::Abs(pdg) == 11 && mPdg == 22)
continue;
4849 if ( label == iParticle )
continue;
4852 if(phi < 0) phi+=TMath::TwoPi();