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}",
1497 "e^{#pm}" ,
"hadrons?" ,
"#gamma_{#pi decay} lost companion",
"#gamma_{#eta decay} lost companion"} ;
1498 TString pileUpName[] = {
"SPD",
"EMCAL",
"SPDOrEMCAL",
"SPDAndEMCAL",
"SPDAndNotEMCAL",
"EMCALAndNotSPD",
"NotSPDAndNotEMCAL"} ;
1514 fhTrackResolution =
new TH2F (
"hTrackResolution",
"Track resolution: #sigma_{#it{p}_{T}} vs #it{p}_{T}, away side, ESDs",
1515 nptbins,ptmin,ptmax,600,0,0.3);
1520 fhTrackResolutionUE =
new TH2F (
"hTrackResolutionUE",
"Track resolution: #sigma_{#it{p}_{T}} vs #it{p}_{T}, UE, ESDs",
1521 nptbins,ptmin,ptmax,600,0,0.3);
1527 fhPtTriggerInput =
new TH1F(
"hPtTriggerInput",
"Input trigger #it{p}_{T}", nptbins,ptmin,ptmax);
1533 fhPtTriggerSSCut =
new TH1F(
"hPtTriggerSSCut",
"Trigger #it{p}_{T} after #lambda^{2}_{0} cut", nptbins,ptmin,ptmax);
1540 fhPtTriggerIsoCut =
new TH1F(
"hPtTriggerIsoCut",
"Trigger #it{p}_{T} after isolation (and #lambda^{2}_{0} cut)", nptbins,ptmin,ptmax);
1545 fhPtTriggerFidCut =
new TH1F(
"hPtTriggerFidCut",
"Trigger #it{p}_{T} after fiducial (isolation and #lambda^{2}_{0}) cut", nptbins,ptmin,ptmax);
1549 fhPtTrigger =
new TH1F(
"hPtTrigger",
"#it{p}_{T} distribution of trigger particles (after opposite hadron leading cut and rest)", nptbins,ptmin,ptmax);
1550 fhPtTrigger->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
1556 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1580 (Form(
"hPtLeadCone_Bin%d",ibin),
1581 Form(
"cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1588 (Form(
"hSumPtCone_Bin%d",ibin),
1589 Form(
"in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1602 (Form(
"hPtLeadCone_Bin%d_DecayBit%d",ibin,
fDecayBits[idecay]),
1603 Form(
"Decay bit %d, cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1610 (Form(
"hSumPtCone_Bin%d_DecayBit%d",ibin,
fDecayBits[idecay]),
1611 Form(
"Decay bit %d, in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1625 (Form(
"hPtLeadCone_Bin%d_MC%s",ibin, nameMC[imc].
Data()),
1626 Form(
"in cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, MC %s, %s",
1633 (Form(
"hSumPtCone_Bin%d_MC%s",ibin,nameMC[imc].
Data()),
1634 Form(
"in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, MC %s, %s",
1649 Form(
"#it{p}_{T} distribution of trigger particles, trigger origin is %s",nameMC[i].
Data()),
1650 nptbins,ptmin,ptmax);
1651 fhPtTriggerMC[i]->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
1657 Form(
"2 photons invariant mass, trigger origin is %s",nameMC[i].
Data()),
1658 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1671 Form(
"#it{p}_{T} distribution of trigger particles, decay Bit %d",
fDecayBits[ibit]),
1672 nptbins,ptmin,ptmax);
1681 Form(
"#it{p}_{T} distribution of trigger particles, decay Bit %d, trigger origin is %s",
fDecayBits[ibit], nameMC[i].
Data()),
1682 nptbins,ptmin,ptmax);
1698 fhPtTriggerBin =
new TH2F (
"hPtTriggerBin",
"#it{p}_{T} distribution of trigger particles", nptbins,ptmin,ptmax,nMixBins,0,nMixBins);
1703 fhPhiTrigger =
new TH2F (
"hPhiTrigger",
"#phi distribution of trigger Particles",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
1707 fhEtaTrigger =
new TH2F (
"hEtaTrigger",
"#eta distribution of trigger",nptbins,ptmin,ptmax, netabins,etamin,etamax);
1713 fhPtTriggerCentrality =
new TH2F(
"hPtTriggerCentrality",
"Trigger particle #it{p}_{T} vs centrality",nptbins,ptmin,ptmax,100,0.,100) ;
1718 fhPtTriggerEventPlane =
new TH2F(
"hPtTriggerEventPlane",
"Trigger particle #it{p}_{T} vs event plane angle",nptbins,ptmin,ptmax, 100,0.,TMath::Pi()) ;
1733 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
1739 nptbins,ptmin,ptmax);
1744 netabins,etamin,etamax,nphibins,phimin,phimax);
1751 nptbins,ptmin,ptmax,ndeltaphibins,deltaphimin,deltaphimax);
1757 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1766 (
"hDeltaPhiDeltaEtaCharged",
"#eta_{trigger} - #eta_{h^{#pm}} vs #phi_{trigger} - #phi_{h^{#pm}}",
1767 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
1772 (
"hDeltaPhiDeltaEtaChargedPtA3GeV",
"#eta_{trigger} - #eta_{h^{#pm}} vs #phi_{trigger} - #phi_{h^{#pm}, #it{p}_{TA}>3 GeV/#it{c}}",
1773 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
1778 (
"hPhiCharged",
"#phi_{h^{#pm}} vs #it{p}_{T #pm}",
1779 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
1781 fhPhiCharged->SetXTitle(
"#it{p}_{T #pm} (GeV/#it{c})");
1784 (
"hEtaCharged",
"#eta_{h^{#pm}} vs #it{p}_{T #pm}",
1785 nptbins,ptmin,ptmax,100,-1.,1.);
1787 fhEtaCharged->SetXTitle(
"#it{p}_{T #pm} (GeV/#it{c})");
1790 (
"hDeltaPhiCharged",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}",
1791 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1796 (
"hDeltaPhiChargedPtA3GeV",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}",
1797 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1803 (
"hDeltaPhiChargedPt",
"#phi_{trigger} - #phi_{#h^{#pm}} vs #it{p}_{T h^{#pm}}",
1804 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1809 (
"hDeltaEtaCharged",
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}",
1810 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1815 (
"hDeltaEtaChargedPtA3GeV",
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}",
1816 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1821 new TH2F(
"hXECharged",
"#it{x}_{#it{E}} for charged tracks",
1822 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1824 fhXECharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1827 new TH2F(
"hXECharged_Cone2",
"#it{x}_{#it{E}} for charged tracks in cone 2 (5#pi/6-7#pi/6)",
1828 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1833 new TH2F(
"hXEPositiveCharged",
"#it{x}_{#it{E}} for positive charged tracks",
1834 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1839 new TH2F(
"hXENegativeCharged",
"#it{x}_{#it{E}} for negative charged tracks",
1840 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1845 new TH2F(
"hHbpXECharged",
"#xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",
1846 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1851 new TH2F(
"hHbpXECharged_Cone2",
"#xi = ln(1/#it{x}_{#it{E}}) with charged hadrons in cone 2 (5#pi/6-7#pi/6)",
1852 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1857 new TH2F(
"hZTCharged",
"#it{z}_{T} for charged tracks",
1858 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1863 new TH2F(
"hZTPositiveCharged",
"#it{z}_{T} for positive charged tracks",
1864 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1869 new TH2F(
"hZTNegativeCharged",
"#it{z}_{T} for negative charged tracks",
1870 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1875 new TH2F(
"hHbpZTCharged",
"#xi = ln(1/#it{z}_{T}) with charged hadrons",
1876 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1881 new TH2F(
"hPtTrigPout",
"Pout with triggers",
1882 nptbins,ptmin,ptmax,nptbins,-1.*ptmax/2.,ptmax/2.);
1884 fhPtTrigPout->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1887 new TH2F(
"hPtTrigCharged",
"trigger and charged tracks pt distribution",
1888 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
1911 Form(
"#Delta #phi for charged tracks, trigger origin is %s",nameMC[i].
Data()),
1912 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
1918 Form(
"#it{x}_{#it{E}} for charged tracks, trigger origin is %s",nameMC[i].
Data()),
1919 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1921 fhXEChargedMC[i]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1925 Form(
"#it{x}_{#it{E}} for charged tracks in right UE cone, trigger origin is %s",nameMC[i].
Data()),
1926 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1932 Form(
"#it{x}_{#it{E}} for charged tracks in left UE cone, trigger origin is %s",nameMC[i].
Data()),
1933 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1956 fhUePart =
new TH1F(
"hUePart",
"UE particles distribution vs pt trig",
1957 nptbins,ptmin,ptmax);
1959 fhUePart->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1962 (Form(
"hDeltaPhiUe%sChargedPt",right.Data()),
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}}",
1963 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1968 new TH2F(Form(
"hXEUeCharged%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event",
1969 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1971 fhXEUeCharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1974 new TH2F(Form(
"hXEUeChargedSmallCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [80,100] deg",
1975 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1980 new TH2F(Form(
"hXEUeChargedMediumCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [70,110] deg",
1981 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1986 new TH2F(Form(
"hXEUeChargedLargeCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [60,120] deg",
1987 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1992 new TH2F(Form(
"hHbpXEUeCharged%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for Underlying Event",
1993 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1998 new TH2F(Form(
"hZTUeCharged%s",right.Data()),
"#it{z}_{T} for Underlying Event",
1999 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2001 fhZTUeCharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2004 new TH2F(Form(
"hHbpZTUeCharged%s",right.Data()),
"#xi = ln(1/#it{z}_{T}) for Underlying Event",
2005 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2022 (
"hDeltaPhiUeLeftChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left side range of trigger particles",
2023 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2029 (
"hDeltaPhiUeLeftUpChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left Up side range of trigger particles",
2030 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2036 (
"hDeltaPhiUeRightUpChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE right Up side range of trigger particles",
2037 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2043 (
"hDeltaPhiUeLeftDownChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left Down side range of trigger particles",
2044 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2050 (
"hDeltaPhiUeRightDownChargedPt",
"#phi_{trigger} - #phi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE right Down side range of trigger particles",
2051 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2057 new TH2F(
"hXEUeChargedLeft",
"#it{x}_{#it{E}} with UE left side of trigger",
2058 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2064 new TH2F(
"hXEUeChargedLeftUp",
"#it{x}_{#it{E}} with UE left Up side of trigger",
2065 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2071 new TH2F(
"hXEUeChargedRightUp",
"#it{x}_{#it{E} h^{#pm}} with UE right Up side of trigger",
2072 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2078 new TH2F(
"hXEUeChargedLeftDown",
"#it{x}_{#it{E}} with UE left Down side of trigger",
2079 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2085 new TH2F(
"hXEUeChargedRightDown",
"#it{x}_{#it{E} h^{#pm}} with UE right Down side of trigger",
2086 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2092 new TH2F(
"hHbpXEUeChargedLeft",
"#xi = ln(1/#it{x}_{#it{E}}) with charged UE left side of trigger",
2093 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2099 new TH2F(
"hZTUeChargedLeft",
"#it{z}_{trigger h^{#pm}} = #it{p}_{T Ueh^{#pm}} / #it{p}_{T trigger} with UE left side of trigger",
2100 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2106 new TH2F(
"hHbpZTUeChargedLeft",
"#xi = ln(1/#it{z}_{T}) with charged UE left side of trigger",
2107 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2116 (
"hDeltaPhiChargedOtherBC",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, track BC!=0",
2117 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2122 (
"hDeltaPhiChargedPtA3GeVOtherBC",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC!=0",
2123 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2128 new TH2F(
"hPtTrigChargedOtherBC",
"trigger and charged tracks pt distribution, track BC!=0",
2129 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2134 new TH2F(
"hXEChargedOtherBC",
"#it{x}_{#it{E}} for charged tracks, track BC!=0",
2135 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2140 new TH2F(
"hXEUeChargedOtherBC",
"#it{x}_{#it{E}} for Underlying Event, track BC!=0",
2141 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2146 new TH2F(
"hZTChargedOtherBC",
"#it{z}_{T} for charged tracks, track BC!=0",
2147 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2152 new TH2F(
"hZTUeChargedOtherBC",
"#it{z}_{T} for Underlying Event, track BC!=0",
2153 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2166 (
"hDeltaPhiChargedBC0",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, track BC==0",
2167 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2172 (
"hDeltaPhiChargedPtA3GeVBC0",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC==0",
2173 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2178 new TH2F(
"hPtTrigChargedBC0",
"trigger and charged tracks pt distribution, track BC==0",
2179 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2184 new TH2F(
"hXEChargedBC0",
"#it{x}_{#it{E}} for charged tracks, track BC==0",
2185 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2190 new TH2F(
"hXEUeChargedBC0",
"#it{x}_{#it{E}} for Underlying Event, track BC==0",
2191 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2196 new TH2F(
"hZTChargedBC0",
"#it{z}_{T} for charged tracks, track BC==0",
2197 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2202 new TH2F(
"hZTUeChargedBC0",
"#it{z}_{T} for Underlying Event, track BC==0",
2203 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2215 fhPtTriggerVtxBC0 =
new TH1F(
"hPtTriggerVtxBC0",
"#it{p}_{T} distribution of trigger particles", nptbins,ptmin,ptmax);
2219 (
"hDeltaPhiChargedVtxBC0",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, track BC==0",
2220 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2225 (
"hDeltaPhiChargedPtA3GeVVtxBC0",
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC==0",
2226 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2231 new TH2F(
"hPtTrigChargedVtxBC0",
"trigger and charged tracks pt distribution, track BC==0",
2232 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2237 new TH2F(
"hXEChargedVtxBC0",
"#it{x}_{#it{E}} for charged tracks, track BC==0",
2238 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2243 new TH2F(
"hXEUeChargedVtxBC0",
"#it{x}_{#it{E}} for Underlying Event, track BC==0",
2244 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2249 new TH2F(
"hZTChargedVtxBC0",
"#it{z}_{T} for charged tracks, track BC==0",
2250 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2255 new TH2F(
"hZTUeChargedVtxBC0",
"#it{z}_{T} for Underlying Event, track BC==0",
2256 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2269 for(
Int_t i = 0 ; i < 7 ; i++)
2272 Form(
"#it{p}_{T} distribution of trigger particles, %s Pile-Up event",pileUpName[i].
Data()), nptbins,ptmin,ptmax);
2277 Form(
"#phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}, %s Pile-Up event",pileUpName[i].
Data()),
2278 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2284 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()),
2285 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2291 Form(
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}, %s Pile-Up event",pileUpName[i].
Data()),
2292 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
2298 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()),
2299 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
2305 Form(
"#it{x}_{#it{E}} for charged tracks, %s Pile-Up event",pileUpName[i].
Data()),
2306 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2312 Form(
"#it{x}_{#it{E}} for Underlying Event, %s Pile-Up event",pileUpName[i].
Data()),
2313 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2319 Form(
"#it{z}_{T} for charged tracks, %s Pile-Up event",pileUpName[i].
Data()),
2320 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2326 Form(
"#it{z}_{T} for Underlying Event, %s Pile-Up event",pileUpName[i].
Data()),
2327 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2333 Form(
"trigger and charged tracks pt distribution, %s Pile-Up event",pileUpName[i].
Data()),
2334 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2351 for(
Int_t im=0; im<nMultiBins; im++)
2354 (Form(
"hDeltaPhiCharged_Mult%d",im),Form(
"#Delta #phi charged Mult bin %d",im), nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2359 (Form(
"hDeltaEtaCharged_Mult%d",im),Form(
"#Delta #eta charged Mult bin %d",im), nptbins,ptmin,ptmax, ndeltaetabins ,deltaetamin,deltaetamax);
2364 (Form(
"hXECharged_Mult%d",im),Form(
"#it{x}_{E} charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2365 fhXEMult[im]->SetYTitle(
"#it{x}_{E}");
2366 fhXEMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2369 (Form(
"hXEUeCharged_Mult%d",im),Form(
"#it{x}_{E} UE charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2371 fhXEUeMult[im]->SetXTitle(
"#it{p}_{T trigger}(GeV/#it{c})");
2374 (Form(
"hZTCharged_Mult%d",im),Form(
"#it{z}_{T} charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2375 fhZTMult[im]->SetYTitle(
"#it{z}_{T}");
2376 fhZTMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2379 (Form(
"hZTUeCharged_Mult%d",im),Form(
"#it{z}_{T} UE charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2381 fhZTUeMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2385 outputContainer->Add(
fhXEMult [im]);
2387 outputContainer->Add(
fhZTMult [im]);
2394 fhAssocPtBkg =
new TH2F(
"hAssocPtBkg",
" Trigger #it{p}_{T} vs associated hadron #it{p}_{T} from background",
2395 nptbins, ptmin, ptmax,nptbins,ptmin,ptmax);
2396 fhAssocPtBkg->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2397 fhAssocPtBkg->SetYTitle(
"#it{p}_{T associated} (GeV/#it{c})");
2400 fhDeltaPhiBrad =
new TH2F(
"hDeltaPhiBrad",
"atan2(sin(#Delta #phi), cos(#Delta #phi))/#pi vs #it{p}_{T trigger} ",
2401 nptbins, ptmin, ptmax,288, -1.0/3.0, 5.0/3.0);
2403 fhDeltaPhiBrad->SetYTitle(
"atan2(sin(#Delta #phi), cos(#Delta #phi))/#pi");
2440 for(
Int_t z = 0 ; z < nz ; z++)
2446 sz = Form(
"_vz%d",z);
2447 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
2454 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
2460 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2470 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()),
2471 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2476 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()),
2477 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2489 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2499 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()),
2500 nptbins, ptmin, ptmax,288, -1.0/3.0, 5.0/3.0);
2509 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()),
2510 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2515 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()),
2516 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2532 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2538 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2550 for(
Int_t z = 0 ; z < nz ; z++)
2552 sz = Form(
"_vz%d",z);
2553 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
2555 fhXEVZ[z] =
new TH2F(Form(
"hXE%s", sz.Data()),
2556 Form(
"#it{x}_{#it{E}} vs #it{p}_{T trigger}%s", tz.Data()),
2557 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2558 fhXEVZ[z]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2559 fhXEVZ[z]->SetYTitle(
"#it{x}_{#it{E}}");
2561 fhZTVZ[z] =
new TH2F(Form(
"hZT%s",sz.Data()),
2562 Form(
"#it{z}_{T} vs #it{p}_{T trigger}%s", tz.Data()),
2563 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2564 fhZTVZ[z]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2565 fhZTVZ[z]->SetYTitle(
"#it{z}_{T}");
2567 outputContainer->Add(
fhXEVZ[z]);
2568 outputContainer->Add(
fhZTVZ[z]);
2575 (
"hPtPi0DecayRatio",
"#it{p}_{T} of #pi^{0} and the ratio of pt for two decay",
2576 nptbins,ptmin,ptmax, 100,0.,2.);
2582 (
"hDeltaPhiPi0DecayCharged",
"#phi_{Decay} - #phi_{h^{#pm}} vs #it{p}_{T Decay}",
2583 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2588 new TH2F(
"hXEPi0DecayCharged",
"#it{x}_{#it{E}} Decay",
2589 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2594 new TH2F(
"hZTPi0DecayCharged",
"#it{z}_{trigger h^{#pm}} = #it{p}_{T h^{#pm}} / #it{p}_{T Decay}",
2595 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2609 (Form(
"hDeltaPhiDecayCharged_bit%d",
fDecayBits[ibit]),
2610 Form(
"#phi_{Decay} - #phi_{h^{#pm}} vs #it{p}_{T Decay}, Bit %d",
fDecayBits[ibit]),
2611 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2617 Form(
"#it{x}_{#it{E}} Decay, Bit %d",
fDecayBits[ibit]),
2618 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2624 Form(
"#it{z}_{trigger h^{#pm}} = #it{p}_{T h^{#pm}} / #it{p}_{T Decay}, Bit %d",
fDecayBits[ibit]),
2625 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2639 (
"hDeltaPhiDeltaEtaNeutral",
"#phi_{trigger} - #phi_{h^{0}} vs #eta_{trigger} - #eta_{h^{0}}",
2640 ndeltaphibins ,deltaphimin,deltaphimax, ndeltaetabins ,deltaetamin,deltaetamax);
2645 (
"hPhiNeutral",
"#phi_{#pi^{0}} vs #it{p}_{T #pi^{0}}",
2646 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
2648 fhPhiNeutral->SetXTitle(
"#it{p}_{T #pi^{0}} (GeV/#it{c})");
2651 (
"hEtaNeutral",
"#eta_{#pi^{0}} vs #it{p}_{T #pi^{0}}",
2652 nptbins,ptmin,ptmax,200,-1.,1.);
2654 fhEtaNeutral->SetXTitle(
"#it{p}_{T #pi^{0}} (GeV/#it{c})");
2657 (
"hDeltaPhiNeutral",
"#phi_{trigger} - #phi_{#pi^{0}} vs #it{p}_{T trigger}",
2658 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2663 (
"hDeltaPhiNeutralPt",
"#phi_{trigger} - #phi_{#pi^{0}} vs #it{p}_{T #pi^{0}}}",
2664 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2669 (
"hDeltaEtaNeutral",
"#eta_{trigger} - #eta_{#pi^{0}} vs #it{p}_{T trigger}",
2670 nptbins,ptmin,ptmax, ndeltaetabins ,deltaetamin,deltaetamax);
2675 new TH2F(
"hXENeutral",
"#it{x}_{#it{E}} for #pi^{0} associated",
2676 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2678 fhXENeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2681 new TH2F(
"hHbpXENeutral",
"#xi = ln(1/#it{x}_{#it{E}})for #pi^{0} associated",
2682 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2687 new TH2F(
"hZTNeutral",
"#it{z}_{trigger #pi} = #it{p}_{T #pi^{0}} / #it{p}_{T trigger} for #pi^{0} associated",
2688 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2689 fhZTNeutral->SetYTitle(
"#it{z}_{trigger #pi^{0}}");
2690 fhZTNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2693 new TH2F(
"hHbpZTNeutral",
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2694 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2710 (Form(
"hDeltaPhiUe%sNeutralPt",right.Data()),
"#phi_{trigger} - #phi_{#pi^{0}} vs #it{p}_{T #pi^{0}}}",
2711 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2716 new TH2F(Form(
"hXEUeNeutral%s",right.Data()),
"#it{x}_{#it{E}} for #pi^{0} associated",
2717 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2719 fhXEUeNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2722 new TH2F(Form(
"hHbpXEUeNeutral%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2723 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2728 new TH2F(Form(
"hZTUeNeutral%s",right.Data()),
"#it{z}_{trigger #pi} = #it{p}_{T #pi^{0}} / #it{p}_{T trigger} for #pi^{0} associated",
2729 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2731 fhZTUeNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2734 new TH2F(Form(
"hHbpZTUeNeutral%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2735 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2748 (
"hDeltaPhiUeLeftNeutralPt",
"#phi_{trigger} - #phi_{#Ueh^{0}} vs #it{p}_{T h^{0}} with neutral UE left side range of trigger particles",
2749 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2755 new TH2F(
"hXEUeNeutralLeft",
"#it{x}_{#it{E}} = #it{p}_{T Ueh^{0}} / #it{p}_{T trigger} with neutral UE left side of trigger",
2756 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2762 new TH2F(
"hHbpXEUeNeutralLeft",
"#xi = ln(1/#it{x}_{#it{E}}) with neutral UE left side of trigger",
2763 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2769 new TH2F(
"hZTUeNeutralLeft",
"#it{z}_{trigger h^{0}} = #it{p}_{T Ueh^{0}} / #it{p}_{T trigger} with neutral UE left side of trigger",
2770 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2776 new TH2F(
"hHbpZTUeNeutralLeft",
"#xi = ln(1/#it{z}_{T}) with neutral UE left side of trigger",
2777 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2786 (
"hDeltaPhiPi0DecayNeutral",
"#phi_{Decay} - #phi_{h^{0}} vs #it{p}_{T Decay}",
2787 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2792 new TH2F(
"hXEPi0DecayNeutral",
"#it{x}_{#it{E}} for decay trigger",
2793 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2798 new TH2F(
"hZTPi0DecayNeutral",
"#it{z}_{trigger h^{0}} = #it{p}_{T h^{0}} / #it{p}_{T Decay}",
2799 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2815 Form(
"MC %s: generated trigger #it{p}_{T}",nameMC[i].
Data()),
2816 nptbins,ptmin,ptmax);
2817 fhMCPtTrigger[i]->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
2820 Form(
"MC %s: generated trigger #phi",nameMC[i].
Data()),
2821 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
2826 Form(
"MC %s: generated trigger #eta",nameMC[i].
Data()),
2827 nptbins,ptmin,ptmax, netabins,etamin,etamax);
2834 Form(
"MC %s: generated trigger #it{p}_{T}, when not leading of primaries",nameMC[i].
Data()),
2835 nptbins,ptmin,ptmax);
2839 Form(
"MC %s: generated trigger #phi, when not leading of primaries",nameMC[i].
Data()),
2840 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
2846 Form(
"MC %s: generated triogger #eta, when not leading of primaries",nameMC[i].
Data()),
2847 nptbins,ptmin,ptmax, netabins,etamin,etamax);
2853 Form(
"MC %s: #eta_{h^{#pm}} vs #it{p}_{T #pm}",nameMC[i].
Data()),
2854 nptbins,ptmin,ptmax,100,-1.,1.);
2859 Form(
"MC %s: phi_{h^{#pm}} vs #it{p}_{T #pm}",nameMC[i].
Data()),
2860 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
2865 Form(
"MC %s: phi_{trigger} - #phi_{h^{#pm}} vs #eta_{trigger} - #eta_{h^{#pm}}",nameMC[i].
Data()),
2866 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
2871 Form(
"MC %s: #eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger} and #it{p}_{T assoc}",nameMC[i].
Data()),
2872 nptbins,ptmin,ptmax,ndeltaetabins ,deltaetamin,deltaetamax);
2877 Form(
"MC %s: #phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}",nameMC[i].
Data()),
2878 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2883 Form(
"MC %s: #phi_{trigger} - #phi_{#h^{#pm}} vs #it{p}_{T h^{#pm}}",nameMC[i].
Data()),
2884 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2889 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons",nameMC[i].
Data()),
2890 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2895 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",nameMC[i].
Data()),
2896 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2901 Form(
"MC %s: #it{z}_{T} with charged hadrons",nameMC[i].
Data()),
2902 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2907 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons",nameMC[i].
Data()),
2908 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2913 Form(
"MC %s: #it{p}_{out} with triggers",nameMC[i].
Data()),
2914 nptbins,ptmin,ptmax,nptbins,-1.*ptmax/2.,ptmax/2.);
2919 Form(
"MC %s: #Delta #phi with associated charged hadrons",nameMC[i].
Data()),
2920 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2952 new TH1F(Form(
"hMCUePart_%s",nameMC[i].
Data()),
2953 Form(
"MC %s: UE particles distribution vs #it{p}_{T trigger}",nameMC[i].
Data()),
2954 nptbins,ptmin,ptmax);
2956 fhMCUePart[i]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2959 new TH2F(Form(
"hMCPtXEUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2960 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2961 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2966 new TH2F(Form(
"hMCPtHbpXEUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2967 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2968 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2973 new TH2F(Form(
"hMCPtZTUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2974 Form(
"MC %s: #it{z}_{T} with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2975 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2980 new TH2F(Form(
"hMCPtHbpZTUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2981 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2982 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2995 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
2996 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3001 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3002 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3007 Form(
"MC %s: #it{z}_{T} with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3008 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3013 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3014 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3039 for(
Int_t ice = 0 ; ice < nce ; ice++ )
3041 for(
Int_t ivz = 0 ; ivz < nvz ; ivz++ )
3043 for(
Int_t irp = 0 ; irp < nrp ; irp++ )
3057 fhPtTriggerMixed =
new TH1F (
"hPtTriggerMixed",
"#it{p}_{T} distribution of trigger particles, used for mixing", nptbins,ptmin,ptmax);
3068 fhPtTriggerMixedBin =
new TH2F (
"hPtTriggerMixedBin",
"#it{p}_{T} distribution of trigger particles vs mixing bin", nptbins,ptmin,ptmax,nMixBins,0,nMixBins);
3072 fhPhiTriggerMixed =
new TH2F (
"hPhiTriggerMixed",
"#phi distribution of trigger Particles, used for mixing",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
3075 fhEtaTriggerMixed =
new TH2F (
"hEtaTriggerMixed",
"#eta distribution of trigger, used for mixing",nptbins,ptmin,ptmax, netabins,etamin,etamax);
3092 for(
Int_t ice = 0 ; ice < nce ; ice++ )
3094 for(
Int_t ivz = 0 ; ivz < nvz ; ivz++ )
3096 for(
Int_t irp = 0 ; irp < nrp ; irp++ )
3113 if( !
GetReader()->ListWithMixedEventsForTracksExists() )
3116 if( !
GetReader()->ListWithMixedEventsForCaloExists() )
3120 fhEventBin=
new TH1I(
"hEventBin",
"Number of triggers per bin(cen,vz,rp)",
3126 fhEventMixBin=
new TH1I(
"hEventMixBin",
"Number of triggers mixed per event bin(cen,vz,rp)",
3132 fhEventMBBin=
new TH1I(
"hEventMBBin",
"Number of min bias events per bin(cen,vz,rp)",
3138 fhNtracksMB=
new TH2F(
"hNtracksMBEvent",
"Number of filtered tracks in MB event per event bin",ntrbins,trmin,trmax,
3147 fhNclustersMB=
new TH2F(
"hNclustersMBEvent",
"Number of filtered clusters in MB events per event bin",nclbins,clmin,clmax,
3156 (
"hMixDeltaPhiCharged",
"Mixed event : #phi_{trigger} - #phi_{h^{#pm}} vs #it{p}_{T trigger}",
3157 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
3163 (
"hMixDeltaPhiDeltaEtaCharged",
"Mixed event : #phi_{trigger} - #phi_{h^{#pm}} vs #eta_{trigger} - #eta_{h^{#pm}}",
3164 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
3170 new TH2F(
"hMixXECharged",
"Mixed event : #it{x}_{#it{E}} for charged tracks",
3171 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3177 new TH2F(
"hMixXEUeCharged",
"Mixed event : #it{x}_{#it{E}} for charged tracks in Ue region",
3178 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3184 new TH2F(
"hMixHbpXECharged",
"mixed event : #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",
3185 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3197 for(
Int_t z = 0 ; z < nz ; z++)
3203 sz = Form(
"_vz%d",z);
3204 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
3211 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
3219 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3228 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()),
3229 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3234 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()),
3235 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3246 return outputContainer;
3260 if(indexPhoton1!=-1 || indexPhoton2!=-1)
return kFALSE;
3262 AliDebug(1,Form(
"indexPhoton1 = %d, indexPhoton2 = %d", indexPhoton1, indexPhoton2));
3268 for(
Int_t iclus = 0; iclus < clusters->GetEntriesFast(); iclus++)
3270 AliVCluster * photon = (AliVCluster*) (clusters->At(iclus));
3305 AliFatal(
"STOP!: You want to use CTS tracks in analysis but not read!! \n!!Check the configuration file!!");
3402 Int_t idTrig = trigger->GetCaloLabel(0);
3403 Float_t ptTrig = trigger->Pt();
3404 Float_t tofTrig = trigger->GetTime();
3411 for(
Int_t iphoton = 0; iphoton < nphoton; iphoton++)
3413 AliAODPWG4ParticleCorrelation * photon1 = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iphoton));
3415 if(idTrig == photon1->GetCaloLabel(0))
continue;
3422 Float_t m02 = photon1->GetM02();
3428 Double_t tdiff = tofTrig - photon1->GetTime();
3454 AliAODPWG4ParticleCorrelation* pLeading = 0;
3460 AliAODPWG4ParticleCorrelation* particle = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
3461 particle->SetLeadingParticle(kFALSE);
3465 if(check == 0)
continue;
3466 if(check == -1)
return kFALSE;
3469 if (particle->Pt() > ptTrig)
3471 ptTrig = particle->Pt() ;
3472 phiTrig = particle->Phi();
3474 pLeading = particle ;
3478 if(index < 0)
return kFALSE;
3482 if(phiTrig < 0 ) phiTrig += TMath::TwoPi();
3488 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
3493 if ( pLeading->GetDetectorTag() ==
kCTS )
3496 Bool_t contained = kFALSE;
3498 for(
Int_t i = 0; i < 4; i++)
3500 if( trackID == pLeading->GetTrackLabel(i) ) contained = kTRUE;
3503 if ( contained ) continue ;
3506 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
3509 if(phi < 0) phi+=TMath::TwoPi();
3514 Float_t deltaPhi = phiTrig-phi;
3515 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
3516 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
3518 if(pt > ptTrig && deltaPhi < TMath::PiOver2())
return kFALSE;
3523 if(pt > ptTrig)
return kFALSE ;
3533 if (pLeading->GetDetectorTag() ==
kPHOS )
3538 if(!nePl)
return kTRUE;
3540 for(
Int_t ipr = 0;ipr < nePl->GetEntriesFast() ; ipr ++ )
3542 AliVCluster * cluster = (AliVCluster *) (nePl->At(ipr)) ;
3544 if(cluster->GetID() == pLeading->GetCaloLabel(0) || cluster->GetID() == pLeading->GetCaloLabel(1) )
continue ;
3550 if(phi < 0) phi+=TMath::TwoPi();
3558 Float_t deltaPhi = phiTrig-phi;
3559 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
3560 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
3562 if(pt > ptTrig && deltaPhi < TMath::PiOver2())
return kFALSE ;
3567 if(pt > ptTrig)
return kFALSE ;
3573 pLeading->SetLeadingParticle(kTRUE);
3575 AliDebug(1,Form(
"\t particle AOD with index %d is leading with pT %2.2f",
fLeadingTriggerIndex, pLeading->Pt()));
3599 AliFatal(Form(
"No input particles in AOD with name branch < %s >, STOP",
GetInputAODName().
Data()));
3606 AliDebug(1,
"No particle AOD found!");
3610 AliDebug(1,Form(
"Begin hadron correlation analysis, fill histograms"));
3611 AliDebug(1,Form(
"n particle branch aod entries %d", naod));
3612 AliDebug(1,Form(
"In CTS aod entries %d",
GetCTSTracks()->GetEntriesFast()));
3627 AliDebug(1,
"Leading was requested and not found");
3651 for( iaod = 0; iaod < naod; iaod++ )
3653 AliAODPWG4ParticleCorrelation* particle = (AliAODPWG4ParticleCorrelation*) (
GetInputAODBranch()->At(iaod));
3671 AliDebug(1,Form(
"%s Trigger : min %f, max %f, det %d",
3688 Float_t m02 = particle->GetM02();
3694 AliDebug(1,
"Pass the shower shape cut");
3703 if( !particle->IsIsolated() )
continue;
3707 AliDebug(1,
"Pass the isolation cut");
3717 if(! in ) continue ;
3719 AliDebug(1,
"Pass the fiducial cut");
3729 Bool_t okLeadHad = kTRUE;
3743 Int_t mcTag = particle->GetTag();
3744 Bool_t lostDecayPair = kFALSE;
3788 Float_t m02 = particle->GetM02();
3789 Float_t pTLeadTrackInCone = 0;
3791 Float_t pTLeadClusterInCone = 0;
3792 Float_t pTSumClusterInCone = 0;
3794 pTLeadTrackInCone = particle->GetChargedLeadPtInCone();
3795 pTLeadClusterInCone = particle->GetNeutralLeadPtInCone();
3797 pTSumTrackInCone = particle->GetChargedPtSumInCone();
3798 pTSumClusterInCone = particle->GetNeutralPtSumInCone();
3800 Float_t pTLeadInCone = pTLeadTrackInCone;
3801 if(pTLeadClusterInCone > pTLeadInCone) pTLeadInCone = pTLeadClusterInCone;
3802 Float_t pTSumInCone = pTSumTrackInCone + pTSumClusterInCone;
3805 Int_t pTSumBin = -1;
3806 Int_t pTLeadBin = -1;
3826 Int_t decayTag = particle->DecayTag();
3827 if(decayTag < 0) decayTag = 0;
3885 AliFatal(Form(
"Lost decay Bit assigned to bad case, mcIndex %d",mcIndex));
3907 Int_t decayTag = particle->DecayTag();
3908 if(decayTag < 0) decayTag = 0;
3933 Float_t phi = particle->Phi();
3934 if( phi < 0 ) phi+=TMath::TwoPi();
3974 AliDebug(1,
"End fill histograms");
3986 AliDebug(1,
"Make trigger particle - charged hadron correlation");
3988 Float_t phiTrig = aodParticle->Phi();
3989 Float_t etaTrig = aodParticle->Eta();
3990 Float_t ptTrig = aodParticle->Pt();
3991 Int_t mcTag = aodParticle->GetTag();
3999 decayTag = aodParticle->DecayTag();
4000 if(decayTag < 0) decayTag = 0;
4018 Int_t evtIndex11 = -1 ;
4019 Int_t evtIndex12 = -1 ;
4020 Int_t evtIndex13 = -1 ;
4024 evtIndex11 =
GetMixedEvent()->EventIndexForCaloCluster(aodParticle->GetCaloLabel(0)) ;
4025 evtIndex12 =
GetMixedEvent()->EventIndexForCaloCluster(aodParticle->GetCaloLabel(1)) ;
4026 evtIndex13 =
GetMixedEvent()->EventIndex(aodParticle->GetTrackLabel(0)) ;
4038 Bool_t decayFound = kFALSE;
4041 decayFound =
GetDecayPhotonMomentum(aodParticle->GetCaloLabel(0),aodParticle->GetCaloLabel(1),aodParticle->GetDetectorTag());
4055 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
4057 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
4061 if(phi < 0) phi+=TMath::TwoPi();
4064 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
4069 if ( aodParticle->GetDetectorTag() ==
kCTS )
4072 Bool_t contained = kFALSE;
4074 for(
Int_t i = 0; i < 4; i++)
4076 if( trackID == aodParticle->GetTrackLabel(i) ) contained = kTRUE;
4079 if ( contained ) continue ;
4083 Int_t evtIndex2 = 0 ;
4087 if (evtIndex11 == evtIndex2 || evtIndex12 == evtIndex2 || evtIndex13 == evtIndex2 )
4094 AliDebug(2,Form(
"Selected charge for momentum imbalance: pt %2.2f, phi %2.2f, eta %2.2f",pt,phi,eta));
4103 Int_t assocBin = -1;
4122 Int_t bin = assocBin*nz+vz;
4129 ULong_t status = track->GetStatus();
4130 Bool_t okTOF = ( (status & AliVTrack::kTOFout) == AliVTrack::kTOFout ) ;
4132 Int_t trackBC = track->GetTOFBunchCrossing(bz);
4135 if (okTOF && trackBC!=0) outTOF = 1;
4136 else if(okTOF && trackBC==0) outTOF = 0;
4145 deltaPhi = phiTrig-phi;
4152 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4153 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4156 eta, etaTrig, decayTag, track->GetHMPIDsignal(),
4157 outTOF, cenbin, mcTag);
4163 AliESDtrack * esdTrack =
dynamic_cast<AliESDtrack*
>(track);
4178 assocBin, decayTag, outTOF, mcTag);
4217 reftracks->SetName(trackname.Data());
4218 reftracks->SetOwner(kFALSE);
4221 reftracks->Add(track);
4228 aodParticle->AddObjArray(reftracks);
4237 AliDebug(1,Form(
"Make trigger particle - charged hadron mixed event correlation"));
4246 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
4248 if(!inputHandler)
return;
4256 if(eventBin < 0)
return;
4265 TList * poolCalo = 0;
4279 if( neutralMix && !poolCalo )
4280 AliWarning(
"Careful, cluster pool not available");
4282 Double_t ptTrig = aodParticle->Pt();
4283 Double_t etaTrig = aodParticle->Eta();
4284 Double_t phiTrig = aodParticle->Phi();
4285 if(phiTrig < 0.) phiTrig+=TMath::TwoPi();
4287 AliDebug(1,Form(
"Pool bin %d size %d, trigger trigger pt=%f, phi=%f, eta=%f",
4288 eventBin,pool->GetSize(), ptTrig,phiTrig,etaTrig));
4301 for(
Int_t ev=ev0; ev < pool->GetSize(); ev++)
4310 if( neutralMix && poolCalo )
4312 if(pool->GetSize()!=poolCalo->GetSize())
4313 AliWarning(
"Different size of calo and track pools");
4315 bgCalo =
static_cast<TObjArray*
>(poolCalo->At(ev));
4317 if(!bgCalo) AliDebug(1,Form(
"Event %d in calo pool not available?",ev));
4325 Int_t n=0, nfrac = 0;
4326 Bool_t isolated = kFALSE;
4327 Float_t coneptsum = 0, coneptlead = 0;
4330 kFALSE, aodParticle,
"",
4331 n,nfrac,coneptsum,coneptlead,isolated);
4338 if(!isolated) continue ;
4344 Int_t nTracks=bgTracks->GetEntriesFast();
4349 for(
Int_t jlead = 0;jlead < nTracks; jlead++ )
4351 AliAODPWG4Particle *track = (AliAODPWG4Particle*) bgTracks->At(jlead) ;
4353 ptAssoc = track->Pt();
4354 phiAssoc = track->Phi() ;
4355 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4359 deltaPhi = phiTrig-phiAssoc;
4360 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4361 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4363 if(ptAssoc > ptTrig && deltaPhi < TMath::PiOver2())
4372 if(ptAssoc > ptTrig)
4381 AliWarning(
"Leading of clusters requested but no clusters in mixed event");
4385 Int_t nClusters=bgCalo->GetEntriesFast();
4386 for(
Int_t jlead = 0;jlead <nClusters; jlead++ )
4388 AliAODPWG4Particle *cluster= (AliAODPWG4Particle*) bgCalo->At(jlead) ;
4390 ptAssoc = cluster->Pt();
4391 phiAssoc = cluster->Phi() ;
4392 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4396 deltaPhi = phiTrig-phiAssoc;
4397 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4398 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4400 if(ptAssoc > ptTrig && deltaPhi < TMath::PiOver2())
4409 if(ptAssoc > ptTrig)
4418 if(!leading)
continue;
4439 for(
Int_t j1 = 0;j1 <nTracks; j1++ )
4441 AliAODPWG4Particle *track = (AliAODPWG4Particle*) bgTracks->At(j1) ;
4443 if(!track)
continue;
4445 ptAssoc = track->Pt();
4446 etaAssoc = track->Eta();
4447 phiAssoc = track->Phi() ;
4448 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4450 deltaPhi = phiTrig-phiAssoc;
4451 if(deltaPhi < -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4452 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4453 deltaEta = etaTrig-etaAssoc;
4455 AliDebug(1,Form(
"deltaPhi= %f, deltaEta=%f",deltaPhi, deltaEta));
4466 xE = -ptAssoc/ptTrig*TMath::Cos(deltaPhi);
4469 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4483 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
4486 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4493 Int_t assocBin = -1;
4511 Int_t bin = assocBin*nz+vz;
4513 if(bin < 0) continue ;
4520 if(TMath::Abs(deltaEta) > 0.8)
4522 if(TMath::Abs(deltaEta) < 0.01)
4537 if(!pi0list) return ;
4539 Int_t npi0 = pi0list->GetEntriesFast();
4540 if(npi0 == 0) return ;
4542 AliDebug(1,Form(
"Particle - pi0 correlation, %d pi0's",npi0));
4544 Int_t evtIndex11 = 0 ;
4545 Int_t evtIndex12 = 0 ;
4548 evtIndex11 =
GetMixedEvent()->EventIndexForCaloCluster(aodParticle->GetCaloLabel(0)) ;
4549 evtIndex12 =
GetMixedEvent()->EventIndexForCaloCluster(aodParticle->GetCaloLabel(1)) ;
4560 Float_t ptTrig = aodParticle->Pt();
4561 Float_t phiTrig = aodParticle->Phi();
4562 Float_t etaTrig = aodParticle->Eta();
4569 Bool_t decayFound = kFALSE;
4577 for(
Int_t iaod = 0; iaod < npi0 ; iaod++)
4579 AliAODPWG4Particle* pi0 = (AliAODPWG4Particle*) (pi0list->At(iaod));
4581 Int_t evtIndex2 = 0 ;
4582 Int_t evtIndex3 = 0 ;
4585 evtIndex2 =
GetMixedEvent()->EventIndexForCaloCluster(pi0->GetCaloLabel(0)) ;
4586 evtIndex3 =
GetMixedEvent()->EventIndexForCaloCluster(pi0->GetCaloLabel(1)) ;
4588 if (evtIndex11 == evtIndex2 || evtIndex12 == evtIndex2 ||
4589 evtIndex11 == evtIndex3 || evtIndex12 == evtIndex3)
4595 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
4598 if(aodParticle->GetCaloLabel(0) >= 0 &&
4599 (pi0->GetCaloLabel(0) == aodParticle->GetCaloLabel(0) || pi0->GetCaloLabel(1) == aodParticle->GetCaloLabel(0))) continue ;
4601 if( aodParticle->GetCaloLabel(1) >= 0 &&
4602 (pi0->GetCaloLabel(0) == aodParticle->GetCaloLabel(1) || pi0->GetCaloLabel(1) == aodParticle->GetCaloLabel(1))) continue ;
4609 deltaEta = etaTrig-eta;
4610 deltaPhi = phiTrig-phi;
4611 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4612 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4629 if(zT > 0 ) hbpZT = TMath::Log(1./zT);
4634 xE =-pt/ptTrig*TMath::Cos(deltaPhi);
4637 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4640 if( xE > 0 ) hbpXE = TMath::Log(1./xE);
4653 xE = -(pt/ptTrig)*TMath::Cos(randomphi);
4654 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
4680 refpi0->SetOwner(kFALSE);
4685 AliDebug(1,Form(
"Selected pi0: pt %2.2f, phi %2.2f, eta %2.2f",pt,phi,eta));
4692 aodParticle->AddObjArray(refpi0);
4701 AliDebug(1,
"Make trigger particle - charged hadron correlation in AOD MC level");
4705 AliDebug(1,Form(
" *** bad label ***: label %d", label));
4712 if(histoIndex < fMCGenTypeMin || histoIndex >
fMCGenTypeMax) return ;
4714 AliStack * stack = 0x0 ;
4715 TParticle * primary = 0x0 ;
4716 TClonesArray * mcparticles = 0x0 ;
4717 AliAODMCParticle * aodprimary = 0x0 ;
4724 Int_t iParticle = 0 ;
4733 AliFatal(
"Stack not available, is the MC handler called? STOP");
4738 nTracks = stack->GetNprimary();
4739 if( label >= stack->GetNtrack() )
4742 AliInfo(Form(
"*** large label ***: label %d, n tracks %d", label, stack->GetNtrack()));
4746 primary = stack->Particle(label);
4749 AliInfo(Form(
" *** no primary ***: label %d", label));
4753 eprim = primary->Energy();
4754 ptprim = primary->Pt();
4755 etaprim = primary->Eta();
4756 phiprim = primary->Phi();
4757 if(phiprim < 0) phiprim+=TMath::TwoPi();
4759 if(ptprim < 0.01 || eprim < 0.01) return ;
4761 for (iParticle = 0 ; iParticle < nTracks ; iParticle++)
4763 if ( !
GetReader()->AcceptParticleMCLabel( iParticle ) ) continue ;
4765 TParticle * particle = stack->Particle(iParticle);
4768 if( particle->GetStatusCode() != 1 )
continue ;
4771 Int_t pdg = particle->GetPdgCode();
4772 Int_t charge = (
Int_t) TDatabasePDG::Instance()->GetParticle(pdg)->Charge();
4773 if(charge == 0)
continue;
4780 if( !inCTS )
continue;
4783 if ( TMath::Abs(pdg) == 11 && stack->Particle(particle->GetFirstMother())->GetPdgCode() == 22 )
continue ;
4785 if ( label == iParticle )
continue;
4787 Float_t phi = particle->Phi();
4788 if(phi < 0) phi+=TMath::TwoPi();
4792 if ( !lead ) leadTrig = kFALSE;
4801 if( !mcparticles )
return;
4803 nTracks = mcparticles->GetEntriesFast() ;
4805 if( label >= nTracks )
4808 AliInfo(Form(
" *** large label ***: label %d, n tracks %d", label,nTracks));
4813 aodprimary = (AliAODMCParticle*) mcparticles->At(label);
4816 AliInfo(Form(
" *** no AOD primary ***: label %d", label));
4820 eprim = aodprimary->E();
4821 ptprim = aodprimary->Pt();
4822 etaprim = aodprimary->Eta();
4823 phiprim = aodprimary->Phi();
4824 if(phiprim < 0) phiprim+=TMath::TwoPi();
4826 if(ptprim < 0.01 || eprim < 0.01) return ;
4828 for (iParticle = 0; iParticle < nTracks; iParticle++)
4830 if ( !
GetReader()->AcceptParticleMCLabel( iParticle ) ) continue ;
4832 AliAODMCParticle *part = (AliAODMCParticle*) mcparticles->At(iParticle);
4834 if (!part->IsPhysicalPrimary() )
continue;
4836 if ( part->Charge() == 0 )
continue;
4838 fMomentum.SetPxPyPzE(part->Px(),part->Py(),part->Pz(),part->E());
4843 if( !inCTS )
continue;
4846 Int_t indexmother = part->GetMother();
4847 if ( indexmother > -1 )
4850 Int_t mPdg = ((AliAODMCParticle*) mcparticles->At(indexmother)) ->GetPdgCode();
4851 if (TMath::Abs(pdg) == 11 && mPdg == 22)
continue;