20 #include <TDatabasePDG.h> 21 #include <TClonesArray.h> 23 #include <TObjString.h> 31 #include "AliVTrack.h" 32 #include "AliVCluster.h" 34 #include "AliMCEvent.h" 35 #include "AliVParticle.h" 36 #include "AliMixedEvent.h" 37 #include "AliAnalysisManager.h" 38 #include "AliInputEventHandler.h" 39 #include "AliEventplane.h" 41 #include "AliESDEvent.h" 42 #include "AliAODEvent.h" 45 #include "AliEMCALGeometry.h" 46 #include "AliPHOSGeoUtils.h" 58 fFillAODWithReferences(0), fCheckLeadingWithNeutralClusters(0),
59 fMaxAssocPt(1000.), fMinAssocPt(0.),
60 fDeltaPhiMaxCut(0.), fDeltaPhiMinCut(0.),
61 fSelectIsolated(0), fMakeSeveralUE(0),
62 fUeDeltaPhiMaxCut(0.), fUeDeltaPhiMinCut(0.),
63 fPi0AODBranchName(
""), fAODNamepTInConeHisto(
""), fNeutralCorr(0),
64 fPi0Trigger(0), fDecayTrigger(0),
65 fNDecayBits(0), fDecayBits(),
67 fMakeAbsoluteLeading(0), fMakeNearSideLeading(0),
68 fLeadingTriggerIndex(-1), fHMPIDCorrelation(0), fFillBradHisto(0),
69 fNAssocPtBins(0), fAssocPtBinLimit(),
71 fListMixTrackEvents(), fListMixCaloEvents(),
72 fUseMixStoredInReader(0), fFillNeutralEventMixPool(0),
73 fM02MaxCut(0), fM02MinCut(0),
74 fSelectLeadingHadronAngle(0), fFillLeadHadOppositeHisto(0),
75 fMinLeadHadPhi(0), fMaxLeadHadPhi(0),
76 fMinLeadHadPt(0), fMaxLeadHadPt(0),
77 fFillEtaGapsHisto(1), fFillMomImbalancePtAssocBinsHisto(0),
78 fFillInvMassHisto(0), fFillBkgBinsHisto(0),
79 fFillTaggedDecayHistograms(0), fDecayTagsM02Cut(0),
80 fMCGenTypeMin(0), fMCGenTypeMax(0),
81 fTrackVector(), fMomentum(), fMomentumIM(),
82 fDecayMom1(), fDecayMom2(),
84 fhPtTriggerInput(0), fhPtTriggerSSCut(0),
85 fhPtTriggerIsoCut(0), fhPtTriggerFidCut(0),
86 fhPtTrigger(0), fhPtTriggerVtxBC0(0),
87 fhPtTriggerVzBin(0), fhPtTriggerBin(0),
88 fhPhiTrigger(0), fhEtaTrigger(0),
90 fhPtDecayTrigger(), fhPtDecayTriggerMC(),
91 fhPtTriggerCentrality(0), fhPtTriggerEventPlane(0),
92 fhTriggerEventPlaneCentrality(0),
93 fhPtTriggerMixed(0), fhPtTriggerMixedVzBin(0), fhPtTriggerMixedBin(0),
94 fhPhiTriggerMixed(0), fhEtaTriggerMixed(0),
95 fhPtLeadingOppositeHadron(0), fhPtDiffPhiLeadingOppositeHadron(0), fhPtDiffEtaLeadingOppositeHadron(0),
96 fhPtNoLeadingOppositeHadron(0), fhEtaPhiNoLeadingOppositeHadron(0),
97 fhDeltaPhiDeltaEtaCharged(0),
98 fhPhiCharged(0), fhEtaCharged(0),
99 fhDeltaPhiCharged(0), fhDeltaEtaCharged(0),
100 fhDeltaPhiChargedPt(0), fhDeltaPhiUeChargedPt(0),
102 fhXECharged(0), fhXECharged_Cone2(0), fhXEUeCharged(0),
103 fhXEUeChargedSmallCone(0), fhXEUeChargedMediumCone(0), fhXEUeChargedLargeCone(0),
104 fhXEPosCharged(0), fhXENegCharged(0),
105 fhPtHbpXECharged(0), fhPtHbpXECharged_Cone2(0), fhPtHbpXEUeCharged(0),
106 fhZTCharged(0), fhZTUeCharged(0),
107 fhZTPosCharged(0), fhZTNegCharged(0),
108 fhPtHbpZTCharged(0), fhPtHbpZTUeCharged(0),
109 fhXEChargedMC(), fhDeltaPhiChargedMC(),
110 fhXEUeChargedRightMC(), fhXEUeChargedLeftMC(),
111 fhDeltaPhiDeltaEtaChargedPtA3GeV(0),
112 fhDeltaPhiChargedPtA3GeV(0), fhDeltaEtaChargedPtA3GeV(0),
114 fhDeltaPhiChargedPileUp(), fhDeltaEtaChargedPileUp(),
115 fhDeltaPhiChargedPtA3GeVPileUp(), fhDeltaEtaChargedPtA3GeVPileUp(),
116 fhXEChargedPileUp(), fhXEUeChargedPileUp(),
117 fhZTChargedPileUp(), fhZTUeChargedPileUp(),
118 fhPtTrigChargedPileUp(),
119 fhDeltaPhiChargedOtherBC(), fhDeltaPhiChargedPtA3GeVOtherBC(),
120 fhXEChargedOtherBC(), fhXEUeChargedOtherBC(),
121 fhZTChargedOtherBC(), fhZTUeChargedOtherBC(),
122 fhPtTrigChargedOtherBC(),
123 fhDeltaPhiChargedBC0(), fhDeltaPhiChargedPtA3GeVBC0(),
124 fhXEChargedBC0(), fhXEUeChargedBC0(),
125 fhZTChargedBC0(), fhZTUeChargedBC0(),
126 fhPtTrigChargedBC0(),
127 fhDeltaPhiChargedVtxBC0(), fhDeltaPhiChargedPtA3GeVVtxBC0(),
128 fhXEChargedVtxBC0(), fhXEUeChargedVtxBC0(),
129 fhZTChargedVtxBC0(), fhZTUeChargedVtxBC0(),
130 fhPtTrigChargedVtxBC0(),
131 fhDeltaPhiUeLeftCharged(0),
132 fhDeltaPhiUeLeftUpCharged(0), fhDeltaPhiUeRightUpCharged(0),
133 fhDeltaPhiUeLeftDownCharged(0), fhDeltaPhiUeRightDownCharged(0),
134 fhXEUeLeftCharged(0),
135 fhXEUeLeftUpCharged(0), fhXEUeRightUpCharged(0),
136 fhXEUeLeftDownCharged(0), fhXEUeRightDownCharged(0),
137 fhPtHbpXEUeLeftCharged(0), fhZTUeLeftCharged(0),
138 fhPtHbpZTUeLeftCharged(0),
139 fhPtTrigPout(0), fhPtTrigCharged(0),
140 fhDeltaPhiChargedMult(0x0), fhDeltaEtaChargedMult(0x0),
141 fhXEMult(0x0), fhXEUeMult(0x0),
142 fhZTMult(0x0), fhZTUeMult(0x0),
143 fhAssocPtBkg(0), fhDeltaPhiDeltaEtaAssocPtBin(0),
144 fhDeltaPhiAssocPtBin(0),
145 fhDeltaPhiAssocPtBinDEta08(0), fhDeltaPhiAssocPtBinDEta0(0),
146 fhDeltaPhiAssocPtBinHMPID(0), fhDeltaPhiAssocPtBinHMPIDAcc(0),
147 fhDeltaPhiBradAssocPtBin(0), fhDeltaPhiBrad(0),
148 fhXEAssocPtBin(0), fhZTAssocPtBin(0),
149 fhXEVZ(0), fhZTVZ(0),
150 fhDeltaPhiDeltaEtaNeutral(0),
151 fhPhiNeutral(0), fhEtaNeutral(0),
152 fhDeltaPhiNeutral(0), fhDeltaEtaNeutral(0),
153 fhDeltaPhiNeutralPt(0), fhDeltaPhiUeNeutralPt(0),
154 fhXENeutral(0), fhXEUeNeutral(0),
155 fhPtHbpXENeutral(0), fhPtHbpXEUeNeutral(0),
156 fhZTNeutral(0), fhZTUeNeutral(0),
157 fhPtHbpZTNeutral(0), fhPtHbpZTUeNeutral(0),
158 fhDeltaPhiUeLeftNeutral(0), fhXEUeLeftNeutral(0),
159 fhPtHbpXEUeLeftNeutral(0), fhZTUeLeftNeutral(0),
160 fhPtHbpZTUeLeftNeutral(0), fhPtPi0DecayRatio(0),
161 fhDeltaPhiPi0DecayCharged(0), fhXEPi0DecayCharged(0), fhZTPi0DecayCharged(0),
162 fhDeltaPhiPi0DecayNeutral(0), fhXEPi0DecayNeutral(0), fhZTPi0DecayNeutral(0),
163 fhDeltaPhiDecayCharged(), fhXEDecayCharged(), fhZTDecayCharged(),
164 fhDeltaPhiDecayChargedAssocPtBin(),
165 fhMCPtTrigger(), fhMCPhiTrigger(), fhMCEtaTrigger(),
166 fhMCPtTriggerNotLeading(), fhMCPhiTriggerNotLeading(), fhMCEtaTriggerNotLeading(),
167 fhMCEtaCharged(), fhMCPhiCharged(),
168 fhMCDeltaEtaCharged(), fhMCDeltaPhiCharged(),
169 fhMCDeltaPhiDeltaEtaCharged(), fhMCDeltaPhiChargedPt(),
170 fhMCPtXECharged(), fhMCPtXEUeCharged(),
171 fhMCPtXEUeLeftCharged(),
172 fhMCPtHbpXECharged(), fhMCPtHbpXEUeCharged(),
173 fhMCPtHbpXEUeLeftCharged(),
175 fhMCPtZTCharged(), fhMCPtZTUeCharged(),
176 fhMCPtZTUeLeftCharged(),
177 fhMCPtHbpZTCharged(), fhMCPtHbpZTUeCharged(),
178 fhMCPtHbpZTUeLeftCharged(),
179 fhMCPtTrigPout(), fhMCPtAssocDeltaPhi(),
181 fhNEventsTrigger(0), fhNtracksMB(0), fhNclustersMB(0),
182 fhMixDeltaPhiCharged(0), fhMixDeltaPhiDeltaEtaCharged(0),
183 fhMixXECharged(0), fhMixXEUeCharged(0), fhMixHbpXECharged(0),
184 fhMixDeltaPhiChargedAssocPtBin(),
185 fhMixDeltaPhiChargedAssocPtBinDEta08(),
186 fhMixDeltaPhiChargedAssocPtBinDEta0(),
187 fhMixDeltaPhiDeltaEtaChargedAssocPtBin(),
188 fhEventBin(0), fhEventMixBin(0), fhEventMBBin(0),
189 fhMassPtTrigger(0), fhMCMassPtTrigger(),
190 fhPtLeadInConeBin(), fhPtSumInConeBin(),
191 fhPtLeadConeBinDecay(), fhSumPtConeBinDecay(),
192 fhPtLeadConeBinMC(), fhSumPtConeBinMC(),
193 fhTrackResolution(0), fhTrackResolutionUE(0)
211 for(
Int_t i = 0; i < 7; i++)
276 Float_t deltaEta = etaTrig-etaAssoc;
277 Float_t deltaPhiOrg = phiTrig-phiAssoc;
309 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA)
325 if(
GetReader()->IsPileUpFromSPDOrEMCal())
330 if(
GetReader()->IsPileUpFromSPDAndEMCal())
335 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
340 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
345 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
363 if(
GetReader()->IsPileUpFromSPDOrEMCal())
368 if(
GetReader()->IsPileUpFromSPDAndEMCal())
373 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
378 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
383 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
416 dphiBrad = atan2(sin(deltaPhiOrg), cos(deltaPhiOrg))/TMath::Pi();
417 if( TMath::Abs(dphiBrad) > 0.325 && TMath::Abs(dphiBrad) < 0.475 )
422 if( dphiBrad < -1./3 ) dphiBrad += 2;
435 if(TMath::Abs(deltaEta)> 0.8)
438 if(TMath::Abs(deltaEta)< 0.01)
453 if( hmpidSignal > 0 )
459 if(phiAssoc > 5*TMath::DegToRad() && phiAssoc < 20*TMath::DegToRad())
491 if( mcAssocPhi < 0 ) mcAssocPhi+=TMath::TwoPi();
493 Float_t mcdeltaPhi= mcTrigPhi-mcAssocPhi;
494 if(mcdeltaPhi <= -TMath::PiOver2()) mcdeltaPhi+=TMath::TwoPi();
495 if(mcdeltaPhi > 3*TMath::PiOver2()) mcdeltaPhi-=TMath::TwoPi();
499 if( mcAssocPt > mcTrigPt && mcdeltaPhi < TMath::PiOver2() ) lead = kFALSE;
504 if ( mcAssocPt < fMinAssocPt || mcAssocPt >
fMaxAssocPt )
return lead ;
505 if ( mcAssocPt <
GetReader()->GetCTSPtMin())
return lead ;
510 if(TMath::Abs(mcAssocPt -mcTrigPt ) < 1e-6 &&
512 TMath::Abs(mcAssocEta-mcTrigEta) < 1e-6)
return lead ;
514 Float_t mcxE =-mcAssocPt/mcTrigPt*TMath::Cos(mcdeltaPhi);
516 if(mcxE > 0 ) mchbpXE = TMath::Log(1./mcxE);
518 Float_t mczT = mcAssocPt/mcTrigPt ;
520 if(mczT > 0 ) mchbpZT = TMath::Log(1./mczT);
522 Double_t mcpout = mcAssocPt*TMath::Sin(mcdeltaPhi) ;
524 AliDebug(1,Form(
"Charged hadron: track Pt %f, track Phi %f, phi trigger %f. Cuts: delta phi %2.2f < %2.2f < %2.2f",
603 Double_t mcUexE = -(mcAssocPt/mcTrigPt)*TMath::Cos(randomphi);
604 Double_t mcUezT = mcAssocPt/mcTrigPt;
607 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
652 Double_t mcUexE = -(mcAssocPt/mcTrigPt)*TMath::Cos(randomphi);
653 Double_t mcUezT = mcAssocPt/mcTrigPt;
656 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
704 Float_t xE =-ptAssoc/ptTrig*TMath::Cos(deltaPhi);
705 Float_t pout = ptAssoc*TMath::Sin(deltaPhi) ;
708 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
714 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
715 if(zT > 0 ) hbpZT = TMath::Log(1./zT);
724 if((deltaPhi > 5*TMath::Pi()/6.) && (deltaPhi < 7*TMath::Pi()/6.))
761 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA)
780 if(
GetReader()->IsPileUpFromSPDOrEMCal())
786 if(
GetReader()->IsPileUpFromSPDAndEMCal())
792 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
798 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
804 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
867 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
871 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
913 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA)
929 if(
GetReader()->IsPileUpFromSPDOrEMCal())
934 if(
GetReader()->IsPileUpFromSPDAndEMCal())
939 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
944 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
949 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
978 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
982 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1012 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1015 AliWarning(Form(
"Careful!!, negative xE %2.2f for left-down UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1026 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1029 AliWarning(Form(
"Careful!!, negative xE %2.2f for left-up UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1040 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1043 AliWarning(Form(
"Careful!!, negative xE %2.2f for right-up UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1054 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1057 AliWarning(Form(
"Careful!!, negative xE %2.2f for right-down UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1073 Float_t zTDecay1 = -100, zTDecay2 = -100;
1074 if(ptDecay1 > 0) zTDecay1 = ptAssoc/ptDecay1 ;
1075 if(ptDecay2 > 0) zTDecay2 = ptAssoc/ptDecay2 ;
1078 if(deltaPhiDecay1< -TMath::PiOver2()) deltaPhiDecay1+=TMath::TwoPi();
1079 if(deltaPhiDecay1>3*TMath::PiOver2()) deltaPhiDecay1-=TMath::TwoPi();
1082 if(deltaPhiDecay2< -TMath::PiOver2()) deltaPhiDecay2+=TMath::TwoPi();
1083 if(deltaPhiDecay2>3*TMath::PiOver2()) deltaPhiDecay2-=TMath::TwoPi();
1085 Float_t xEDecay1 =-zTDecay1*TMath::Cos(deltaPhiDecay1);
1086 Float_t xEDecay2 =-zTDecay2*TMath::Cos(deltaPhiDecay2);
1088 if(bChargedOrNeutral)
1093 AliDebug(2,Form(
"deltaPhoton1 = %f, deltaPhoton2 = %f", deltaPhiDecay1, deltaPhiDecay2));
1111 AliDebug(2,Form(
"deltaPhoton1 = %f, deltaPhoton2 = %f", deltaPhiDecay1, deltaPhiDecay2));
1136 Float_t xE =-ptAssoc/ptTrig*TMath::Cos(randomphi);
1138 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
1180 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
1182 if(!inputHandler) return ;
1190 if(eventBin < 0)
return;
1209 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
1211 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
1215 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
1220 mixEventTracks->Add(mixedTrack);
1229 pool->AddFirst(mixEventTracks);
1237 TClonesArray * tmp =
static_cast<TClonesArray*
>(pool->Last()) ;
1238 pool->RemoveLast() ;
1262 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
1264 if(!inputHandler) return ;
1272 if(eventBin < 0)
return;
1285 for(
Int_t ipr = 0;ipr < pl->GetEntriesFast() ; ipr ++ )
1287 AliVCluster * calo = (AliVCluster *) (pl->At(ipr)) ;
1306 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
1310 mixEventCalo->Add(mixedCalo);
1319 poolCalo->AddFirst(mixEventCalo);
1327 TClonesArray * tmp =
static_cast<TClonesArray*
>(poolCalo->Last()) ;
1328 poolCalo->RemoveLast() ;
1342 if(phiTrig < 0 ) phiTrig+= TMath::TwoPi();
1352 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
1354 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
1358 if(phi < 0 ) phi+= TMath::TwoPi();
1360 Float_t deltaPhi = phiTrig-phi;
1366 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
1367 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
1369 if(pt > ptLeadHad && deltaPhi > TMath::PiOver2())
1373 dphiLeadHad= deltaPhi;
1395 AliDebug(1,Form(
"pT %2.2f, phi %2.2f, eta %2.2f, nTracks away %d, total tracks %d",
1397 AliDebug(1,Form(
"\t pT trig %2.2f, Dphi (trigger-hadron) %2.2f, Deta (trigger-hadron) %2.2f",
1398 ptTrig, dphiLeadHad*TMath::RadToDeg(), etaLeadHad-etaTrig));
1399 AliDebug(1,Form(
"\t cuts pT: min %2.2f, max %2.2f; DPhi: min %2.2f, max %2.2f",
1405 if( nTrack == 0 )
return kFALSE;
1407 if( ptLeadHad < fMinLeadHadPt || ptLeadHad >
fMaxLeadHadPt )
return kFALSE;
1411 if( dphiLeadHad < fMinLeadHadPhi || dphiLeadHad >
fMaxLeadHadPhi )
return kFALSE;
1424 const Int_t buffersize = 560;
1425 char onePar[buffersize] ;
1427 snprintf(onePar,buffersize,
"--- AliAnaPaticleHadronCorrelation ---:") ;
1435 snprintf(onePar,buffersize,
"Isolated Trigger? %d;",
fSelectIsolated) ;
1439 snprintf(onePar,buffersize,
"Name of AOD Pi0 Branch %s;",
fPi0AODBranchName.Data());
1443 snprintf(onePar,buffersize,
"Select absolute leading for cluster triggers ? %d or Near Side Leading %d;",
1446 snprintf(onePar,buffersize,
"Associated particle pt bins %d: ",
fNAssocPtBins) ;
1459 return new TObjString(parList) ;
1469 outputContainer->SetName(
"CorrelationHistos") ;
1493 TString nameMC[] = {
"Photon",
"Pi0",
"Pi0Decay",
"Eta",
"EtaDecay",
"OtherDecay",
"Electron",
"Hadron",
"Pi0DecayLostPair",
"EtaDecayLostPair"};
1494 TString mcPartType[] = {
"#gamma",
"#pi^{0} (merged #gamma)",
"#gamma_{#pi decay}",
"#eta (merged #gamma)" ,
"#gamma_{#eta decay}",
"#gamma_{other decay}",
1495 "e^{#pm}" ,
"hadrons?" ,
"#gamma_{#pi decay} lost companion",
"#gamma_{#eta decay} lost companion"} ;
1496 TString pileUpName[] = {
"SPD",
"EMCAL",
"SPDOrEMCAL",
"SPDAndEMCAL",
"SPDAndNotEMCAL",
"EMCALAndNotSPD",
"NotSPDAndNotEMCAL"} ;
1512 fhTrackResolution =
new TH2F (
"hTrackResolution",
"Track resolution: #sigma_{#it{p}_{T}} vs #it{p}_{T}, away side, ESDs",
1513 nptbins,ptmin,ptmax,600,0,0.3);
1518 fhTrackResolutionUE =
new TH2F (
"hTrackResolutionUE",
"Track resolution: #sigma_{#it{p}_{T}} vs #it{p}_{T}, UE, ESDs",
1519 nptbins,ptmin,ptmax,600,0,0.3);
1525 fhPtTriggerInput =
new TH1F(
"hPtTriggerInput",
"Input trigger #it{p}_{T}", nptbins,ptmin,ptmax);
1531 fhPtTriggerSSCut =
new TH1F(
"hPtTriggerSSCut",
"Trigger #it{p}_{T} after #lambda^{2}_{0} cut", nptbins,ptmin,ptmax);
1538 fhPtTriggerIsoCut =
new TH1F(
"hPtTriggerIsoCut",
"Trigger #it{p}_{T} after isolation (and #lambda^{2}_{0} cut)", nptbins,ptmin,ptmax);
1543 fhPtTriggerFidCut =
new TH1F(
"hPtTriggerFidCut",
"Trigger #it{p}_{T} after fiducial (isolation and #lambda^{2}_{0}) cut", nptbins,ptmin,ptmax);
1547 fhPtTrigger =
new TH1F(
"hPtTrigger",
"#it{p}_{T} distribution of trigger particles (after opposite hadron leading cut and rest)", nptbins,ptmin,ptmax);
1548 fhPtTrigger->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
1554 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1578 (Form(
"hPtLeadCone_Bin%d",ibin),
1579 Form(
"cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1586 (Form(
"hSumPtCone_Bin%d",ibin),
1587 Form(
"in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1600 (Form(
"hPtLeadCone_Bin%d_DecayBit%d",ibin,
fDecayBits[idecay]),
1601 Form(
"Decay bit %d, cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1608 (Form(
"hSumPtCone_Bin%d_DecayBit%d",ibin,
fDecayBits[idecay]),
1609 Form(
"Decay bit %d, in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1623 (Form(
"hPtLeadCone_Bin%d_MC%s",ibin, nameMC[imc].
Data()),
1624 Form(
"in cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, MC %s, %s",
1631 (Form(
"hSumPtCone_Bin%d_MC%s",ibin,nameMC[imc].
Data()),
1632 Form(
"in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, MC %s, %s",
1647 Form(
"#it{p}_{T} distribution of trigger particles, trigger origin is %s",nameMC[i].
Data()),
1648 nptbins,ptmin,ptmax);
1649 fhPtTriggerMC[i]->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
1655 Form(
"2 photons invariant mass, trigger origin is %s",nameMC[i].
Data()),
1656 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1669 Form(
"#it{p}_{T} distribution of trigger particles, decay Bit %d",
fDecayBits[ibit]),
1670 nptbins,ptmin,ptmax);
1679 Form(
"#it{p}_{T} distribution of trigger particles, decay Bit %d, trigger origin is %s",
fDecayBits[ibit], nameMC[i].
Data()),
1680 nptbins,ptmin,ptmax);
1696 fhPtTriggerBin =
new TH2F (
"hPtTriggerBin",
"#it{p}_{T} distribution of trigger particles", nptbins,ptmin,ptmax,nMixBins,0,nMixBins);
1701 fhPhiTrigger =
new TH2F (
"hPhiTrigger",
"#varphi distribution of trigger Particles",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
1705 fhEtaTrigger =
new TH2F (
"hEtaTrigger",
"#eta distribution of trigger",nptbins,ptmin,ptmax, netabins,etamin,etamax);
1711 fhPtTriggerCentrality =
new TH2F(
"hPtTriggerCentrality",
"Trigger particle #it{p}_{T} vs centrality",nptbins,ptmin,ptmax,100,0.,100) ;
1716 fhPtTriggerEventPlane =
new TH2F(
"hPtTriggerEventPlane",
"Trigger particle #it{p}_{T} vs event plane angle",nptbins,ptmin,ptmax, 100,0.,TMath::Pi()) ;
1731 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
1737 nptbins,ptmin,ptmax);
1742 netabins,etamin,etamax,nphibins,phimin,phimax);
1749 nptbins,ptmin,ptmax,ndeltaphibins,deltaphimin,deltaphimax);
1755 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1764 (
"hDeltaPhiDeltaEtaCharged",
"#eta_{trigger} - #eta_{h^{#pm}} vs #varphi_{trigger} - #varphi_{h^{#pm}}",
1765 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
1770 (
"hDeltaPhiDeltaEtaChargedPtA3GeV",
"#eta_{trigger} - #eta_{h^{#pm}} vs #varphi_{trigger} - #varphi_{h^{#pm}, #it{p}_{TA}>3 GeV/#it{c}}",
1771 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
1776 (
"hPhiCharged",
"#varphi_{h^{#pm}} vs #it{p}_{T #pm}",
1777 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
1779 fhPhiCharged->SetXTitle(
"#it{p}_{T #pm} (GeV/#it{c})");
1782 (
"hEtaCharged",
"#eta_{h^{#pm}} vs #it{p}_{T #pm}",
1783 nptbins,ptmin,ptmax,100,-1.,1.);
1785 fhEtaCharged->SetXTitle(
"#it{p}_{T #pm} (GeV/#it{c})");
1788 (
"hDeltaPhiCharged",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}",
1789 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1794 (
"hDeltaPhiChargedPtA3GeV",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}",
1795 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1801 (
"hDeltaPhiChargedPt",
"#varphi_{trigger} - #varphi_{#h^{#pm}} vs #it{p}_{T h^{#pm}}",
1802 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1807 (
"hDeltaEtaCharged",
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}",
1808 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1813 (
"hDeltaEtaChargedPtA3GeV",
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}",
1814 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1819 new TH2F(
"hXECharged",
"#it{x}_{#it{E}} for charged tracks",
1820 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1822 fhXECharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1825 new TH2F(
"hXECharged_Cone2",
"#it{x}_{#it{E}} for charged tracks in cone 2 (5#pi/6-7#pi/6)",
1826 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1831 new TH2F(
"hXEPositiveCharged",
"#it{x}_{#it{E}} for positive charged tracks",
1832 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1837 new TH2F(
"hXENegativeCharged",
"#it{x}_{#it{E}} for negative charged tracks",
1838 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1843 new TH2F(
"hHbpXECharged",
"#xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",
1844 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1849 new TH2F(
"hHbpXECharged_Cone2",
"#xi = ln(1/#it{x}_{#it{E}}) with charged hadrons in cone 2 (5#pi/6-7#pi/6)",
1850 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1855 new TH2F(
"hZTCharged",
"#it{z}_{T} for charged tracks",
1856 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1861 new TH2F(
"hZTPositiveCharged",
"#it{z}_{T} for positive charged tracks",
1862 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1867 new TH2F(
"hZTNegativeCharged",
"#it{z}_{T} for negative charged tracks",
1868 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1873 new TH2F(
"hHbpZTCharged",
"#xi = ln(1/#it{z}_{T}) with charged hadrons",
1874 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1879 new TH2F(
"hPtTrigPout",
"Pout with triggers",
1880 nptbins,ptmin,ptmax,nptbins,-1.*ptmax/2.,ptmax/2.);
1882 fhPtTrigPout->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1885 new TH2F(
"hPtTrigCharged",
"trigger and charged tracks pt distribution",
1886 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
1909 Form(
"#Delta #varphi for charged tracks, trigger origin is %s",nameMC[i].
Data()),
1910 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
1916 Form(
"#it{x}_{#it{E}} for charged tracks, trigger origin is %s",nameMC[i].
Data()),
1917 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1919 fhXEChargedMC[i]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1923 Form(
"#it{x}_{#it{E}} for charged tracks in right UE cone, trigger origin is %s",nameMC[i].
Data()),
1924 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1930 Form(
"#it{x}_{#it{E}} for charged tracks in left UE cone, trigger origin is %s",nameMC[i].
Data()),
1931 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1954 fhUePart =
new TH1F(
"hUePart",
"UE particles distribution vs pt trig",
1955 nptbins,ptmin,ptmax);
1957 fhUePart->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1960 (Form(
"hDeltaPhiUe%sChargedPt",right.Data()),
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}}",
1961 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1966 new TH2F(Form(
"hXEUeCharged%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event",
1967 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1969 fhXEUeCharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1972 new TH2F(Form(
"hXEUeChargedSmallCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [80,100] deg",
1973 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1978 new TH2F(Form(
"hXEUeChargedMediumCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [70,110] deg",
1979 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1984 new TH2F(Form(
"hXEUeChargedLargeCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [60,120] deg",
1985 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1990 new TH2F(Form(
"hHbpXEUeCharged%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for Underlying Event",
1991 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1996 new TH2F(Form(
"hZTUeCharged%s",right.Data()),
"#it{z}_{T} for Underlying Event",
1997 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1999 fhZTUeCharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2002 new TH2F(Form(
"hHbpZTUeCharged%s",right.Data()),
"#xi = ln(1/#it{z}_{T}) for Underlying Event",
2003 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2020 (
"hDeltaPhiUeLeftChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left side range of trigger particles",
2021 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2027 (
"hDeltaPhiUeLeftUpChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left Up side range of trigger particles",
2028 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2034 (
"hDeltaPhiUeRightUpChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE right Up side range of trigger particles",
2035 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2041 (
"hDeltaPhiUeLeftDownChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left Down side range of trigger particles",
2042 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2048 (
"hDeltaPhiUeRightDownChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE right Down side range of trigger particles",
2049 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2055 new TH2F(
"hXEUeChargedLeft",
"#it{x}_{#it{E}} with UE left side of trigger",
2056 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2062 new TH2F(
"hXEUeChargedLeftUp",
"#it{x}_{#it{E}} with UE left Up side of trigger",
2063 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2069 new TH2F(
"hXEUeChargedRightUp",
"#it{x}_{#it{E} h^{#pm}} with UE right Up side of trigger",
2070 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2076 new TH2F(
"hXEUeChargedLeftDown",
"#it{x}_{#it{E}} with UE left Down side of trigger",
2077 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2083 new TH2F(
"hXEUeChargedRightDown",
"#it{x}_{#it{E} h^{#pm}} with UE right Down side of trigger",
2084 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2090 new TH2F(
"hHbpXEUeChargedLeft",
"#xi = ln(1/#it{x}_{#it{E}}) with charged UE left side of trigger",
2091 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2097 new TH2F(
"hZTUeChargedLeft",
"#it{z}_{trigger h^{#pm}} = #it{p}_{T Ueh^{#pm}} / #it{p}_{T trigger} with UE left side of trigger",
2098 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2104 new TH2F(
"hHbpZTUeChargedLeft",
"#xi = ln(1/#it{z}_{T}) with charged UE left side of trigger",
2105 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2114 (
"hDeltaPhiChargedOtherBC",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, track BC!=0",
2115 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2120 (
"hDeltaPhiChargedPtA3GeVOtherBC",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC!=0",
2121 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2126 new TH2F(
"hPtTrigChargedOtherBC",
"trigger and charged tracks pt distribution, track BC!=0",
2127 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2132 new TH2F(
"hXEChargedOtherBC",
"#it{x}_{#it{E}} for charged tracks, track BC!=0",
2133 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2138 new TH2F(
"hXEUeChargedOtherBC",
"#it{x}_{#it{E}} for Underlying Event, track BC!=0",
2139 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2144 new TH2F(
"hZTChargedOtherBC",
"#it{z}_{T} for charged tracks, track BC!=0",
2145 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2150 new TH2F(
"hZTUeChargedOtherBC",
"#it{z}_{T} for Underlying Event, track BC!=0",
2151 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2164 (
"hDeltaPhiChargedBC0",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, track BC==0",
2165 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2170 (
"hDeltaPhiChargedPtA3GeVBC0",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC==0",
2171 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2176 new TH2F(
"hPtTrigChargedBC0",
"trigger and charged tracks pt distribution, track BC==0",
2177 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2182 new TH2F(
"hXEChargedBC0",
"#it{x}_{#it{E}} for charged tracks, track BC==0",
2183 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2188 new TH2F(
"hXEUeChargedBC0",
"#it{x}_{#it{E}} for Underlying Event, track BC==0",
2189 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2194 new TH2F(
"hZTChargedBC0",
"#it{z}_{T} for charged tracks, track BC==0",
2195 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2200 new TH2F(
"hZTUeChargedBC0",
"#it{z}_{T} for Underlying Event, track BC==0",
2201 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2213 fhPtTriggerVtxBC0 =
new TH1F(
"hPtTriggerVtxBC0",
"#it{p}_{T} distribution of trigger particles", nptbins,ptmin,ptmax);
2217 (
"hDeltaPhiChargedVtxBC0",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, track BC==0",
2218 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2223 (
"hDeltaPhiChargedPtA3GeVVtxBC0",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC==0",
2224 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2229 new TH2F(
"hPtTrigChargedVtxBC0",
"trigger and charged tracks pt distribution, track BC==0",
2230 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2235 new TH2F(
"hXEChargedVtxBC0",
"#it{x}_{#it{E}} for charged tracks, track BC==0",
2236 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2241 new TH2F(
"hXEUeChargedVtxBC0",
"#it{x}_{#it{E}} for Underlying Event, track BC==0",
2242 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2247 new TH2F(
"hZTChargedVtxBC0",
"#it{z}_{T} for charged tracks, track BC==0",
2248 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2253 new TH2F(
"hZTUeChargedVtxBC0",
"#it{z}_{T} for Underlying Event, track BC==0",
2254 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2267 for(
Int_t i = 0 ; i < 7 ; i++)
2270 Form(
"#it{p}_{T} distribution of trigger particles, %s Pile-Up event",pileUpName[i].
Data()), nptbins,ptmin,ptmax);
2275 Form(
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, %s Pile-Up event",pileUpName[i].
Data()),
2276 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2282 Form(
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, %s Pile-Up event",pileUpName[i].
Data()),
2283 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2289 Form(
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}, %s Pile-Up event",pileUpName[i].
Data()),
2290 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
2296 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()),
2297 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
2303 Form(
"#it{x}_{#it{E}} for charged tracks, %s Pile-Up event",pileUpName[i].
Data()),
2304 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2310 Form(
"#it{x}_{#it{E}} for Underlying Event, %s Pile-Up event",pileUpName[i].
Data()),
2311 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2317 Form(
"#it{z}_{T} for charged tracks, %s Pile-Up event",pileUpName[i].
Data()),
2318 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2324 Form(
"#it{z}_{T} for Underlying Event, %s Pile-Up event",pileUpName[i].
Data()),
2325 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2331 Form(
"trigger and charged tracks pt distribution, %s Pile-Up event",pileUpName[i].
Data()),
2332 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2349 for(
Int_t im=0; im<nMultiBins; im++)
2352 (Form(
"hDeltaPhiCharged_Mult%d",im),Form(
"#Delta #varphi charged Mult bin %d",im), nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2357 (Form(
"hDeltaEtaCharged_Mult%d",im),Form(
"#Delta #eta charged Mult bin %d",im), nptbins,ptmin,ptmax, ndeltaetabins ,deltaetamin,deltaetamax);
2362 (Form(
"hXECharged_Mult%d",im),Form(
"#it{x}_{E} charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2363 fhXEMult[im]->SetYTitle(
"#it{x}_{E}");
2364 fhXEMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2367 (Form(
"hXEUeCharged_Mult%d",im),Form(
"#it{x}_{E} UE charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2369 fhXEUeMult[im]->SetXTitle(
"#it{p}_{T trigger}(GeV/#it{c})");
2372 (Form(
"hZTCharged_Mult%d",im),Form(
"#it{z}_{T} charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2373 fhZTMult[im]->SetYTitle(
"#it{z}_{T}");
2374 fhZTMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2377 (Form(
"hZTUeCharged_Mult%d",im),Form(
"#it{z}_{T} UE charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2379 fhZTUeMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2383 outputContainer->Add(
fhXEMult [im]);
2385 outputContainer->Add(
fhZTMult [im]);
2392 fhAssocPtBkg =
new TH2F(
"hAssocPtBkg",
" Trigger #it{p}_{T} vs associated hadron #it{p}_{T} from background",
2393 nptbins, ptmin, ptmax,nptbins,ptmin,ptmax);
2394 fhAssocPtBkg->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2395 fhAssocPtBkg->SetYTitle(
"#it{p}_{T associated} (GeV/#it{c})");
2398 fhDeltaPhiBrad =
new TH2F(
"hDeltaPhiBrad",
"atan2(sin(#Delta #varphi), cos(#Delta #varphi))/#pi vs #it{p}_{T trigger} ",
2399 nptbins, ptmin, ptmax,288, -1.0/3.0, 5.0/3.0);
2401 fhDeltaPhiBrad->SetYTitle(
"atan2(sin(#Delta #varphi), cos(#Delta #varphi))/#pi");
2438 for(
Int_t z = 0 ; z < nz ; z++)
2444 sz = Form(
"_vz%d",z);
2445 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
2452 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
2458 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2468 Form(
"#Delta #varphi 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()),
2469 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2474 Form(
"#Delta #varphi 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()),
2475 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2487 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2497 Form(
"atan2(sin(#Delta #varphi), cos(#Delta #varphi))/#pi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
2498 nptbins, ptmin, ptmax,288, -1.0/3.0, 5.0/3.0);
2507 Form(
"#Delta #varphi 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()),
2508 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2513 Form(
"#Delta #varphi 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()),
2514 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2530 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2536 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2548 for(
Int_t z = 0 ; z < nz ; z++)
2550 sz = Form(
"_vz%d",z);
2551 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
2553 fhXEVZ[z] =
new TH2F(Form(
"hXE%s", sz.Data()),
2554 Form(
"#it{x}_{#it{E}} vs #it{p}_{T trigger}%s", tz.Data()),
2555 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2556 fhXEVZ[z]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2557 fhXEVZ[z]->SetYTitle(
"#it{x}_{#it{E}}");
2559 fhZTVZ[z] =
new TH2F(Form(
"hZT%s",sz.Data()),
2560 Form(
"#it{z}_{T} vs #it{p}_{T trigger}%s", tz.Data()),
2561 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2562 fhZTVZ[z]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2563 fhZTVZ[z]->SetYTitle(
"#it{z}_{T}");
2565 outputContainer->Add(
fhXEVZ[z]);
2566 outputContainer->Add(
fhZTVZ[z]);
2573 (
"hPtPi0DecayRatio",
"#it{p}_{T} of #pi^{0} and the ratio of pt for two decay",
2574 nptbins,ptmin,ptmax, 100,0.,2.);
2580 (
"hDeltaPhiPi0DecayCharged",
"#varphi_{Decay} - #varphi_{h^{#pm}} vs #it{p}_{T Decay}",
2581 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2586 new TH2F(
"hXEPi0DecayCharged",
"#it{x}_{#it{E}} Decay",
2587 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2592 new TH2F(
"hZTPi0DecayCharged",
"#it{z}_{trigger h^{#pm}} = #it{p}_{T h^{#pm}} / #it{p}_{T Decay}",
2593 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2607 (Form(
"hDeltaPhiDecayCharged_bit%d",
fDecayBits[ibit]),
2608 Form(
"#varphi_{Decay} - #varphi_{h^{#pm}} vs #it{p}_{T Decay}, Bit %d",
fDecayBits[ibit]),
2609 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2615 Form(
"#it{x}_{#it{E}} Decay, Bit %d",
fDecayBits[ibit]),
2616 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2622 Form(
"#it{z}_{trigger h^{#pm}} = #it{p}_{T h^{#pm}} / #it{p}_{T Decay}, Bit %d",
fDecayBits[ibit]),
2623 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2637 (
"hDeltaPhiDeltaEtaNeutral",
"#varphi_{trigger} - #varphi_{h^{0}} vs #eta_{trigger} - #eta_{h^{0}}",
2638 ndeltaphibins ,deltaphimin,deltaphimax, ndeltaetabins ,deltaetamin,deltaetamax);
2643 (
"hPhiNeutral",
"#varphi_{#pi^{0}} vs #it{p}_{T #pi^{0}}",
2644 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
2646 fhPhiNeutral->SetXTitle(
"#it{p}_{T #pi^{0}} (GeV/#it{c})");
2649 (
"hEtaNeutral",
"#eta_{#pi^{0}} vs #it{p}_{T #pi^{0}}",
2650 nptbins,ptmin,ptmax,200,-1.,1.);
2652 fhEtaNeutral->SetXTitle(
"#it{p}_{T #pi^{0}} (GeV/#it{c})");
2655 (
"hDeltaPhiNeutral",
"#varphi_{trigger} - #varphi_{#pi^{0}} vs #it{p}_{T trigger}",
2656 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2661 (
"hDeltaPhiNeutralPt",
"#varphi_{trigger} - #varphi_{#pi^{0}} vs #it{p}_{T #pi^{0}}}",
2662 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2667 (
"hDeltaEtaNeutral",
"#eta_{trigger} - #eta_{#pi^{0}} vs #it{p}_{T trigger}",
2668 nptbins,ptmin,ptmax, ndeltaetabins ,deltaetamin,deltaetamax);
2673 new TH2F(
"hXENeutral",
"#it{x}_{#it{E}} for #pi^{0} associated",
2674 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2676 fhXENeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2679 new TH2F(
"hHbpXENeutral",
"#xi = ln(1/#it{x}_{#it{E}})for #pi^{0} associated",
2680 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2685 new TH2F(
"hZTNeutral",
"#it{z}_{trigger #pi} = #it{p}_{T #pi^{0}} / #it{p}_{T trigger} for #pi^{0} associated",
2686 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2687 fhZTNeutral->SetYTitle(
"#it{z}_{trigger #pi^{0}}");
2688 fhZTNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2691 new TH2F(
"hHbpZTNeutral",
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2692 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2708 (Form(
"hDeltaPhiUe%sNeutralPt",right.Data()),
"#varphi_{trigger} - #varphi_{#pi^{0}} vs #it{p}_{T #pi^{0}}}",
2709 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2714 new TH2F(Form(
"hXEUeNeutral%s",right.Data()),
"#it{x}_{#it{E}} for #pi^{0} associated",
2715 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2717 fhXEUeNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2720 new TH2F(Form(
"hHbpXEUeNeutral%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2721 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2726 new TH2F(Form(
"hZTUeNeutral%s",right.Data()),
"#it{z}_{trigger #pi} = #it{p}_{T #pi^{0}} / #it{p}_{T trigger} for #pi^{0} associated",
2727 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2729 fhZTUeNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2732 new TH2F(Form(
"hHbpZTUeNeutral%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2733 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2746 (
"hDeltaPhiUeLeftNeutralPt",
"#varphi_{trigger} - #varphi_{#Ueh^{0}} vs #it{p}_{T h^{0}} with neutral UE left side range of trigger particles",
2747 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2753 new TH2F(
"hXEUeNeutralLeft",
"#it{x}_{#it{E}} = #it{p}_{T Ueh^{0}} / #it{p}_{T trigger} with neutral UE left side of trigger",
2754 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2760 new TH2F(
"hHbpXEUeNeutralLeft",
"#xi = ln(1/#it{x}_{#it{E}}) with neutral UE left side of trigger",
2761 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2767 new TH2F(
"hZTUeNeutralLeft",
"#it{z}_{trigger h^{0}} = #it{p}_{T Ueh^{0}} / #it{p}_{T trigger} with neutral UE left side of trigger",
2768 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2774 new TH2F(
"hHbpZTUeNeutralLeft",
"#xi = ln(1/#it{z}_{T}) with neutral UE left side of trigger",
2775 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2784 (
"hDeltaPhiPi0DecayNeutral",
"#varphi_{Decay} - #varphi_{h^{0}} vs #it{p}_{T Decay}",
2785 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2790 new TH2F(
"hXEPi0DecayNeutral",
"#it{x}_{#it{E}} for decay trigger",
2791 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2796 new TH2F(
"hZTPi0DecayNeutral",
"#it{z}_{trigger h^{0}} = #it{p}_{T h^{0}} / #it{p}_{T Decay}",
2797 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2813 Form(
"MC %s: generated trigger #it{p}_{T}",nameMC[i].
Data()),
2814 nptbins,ptmin,ptmax);
2815 fhMCPtTrigger[i]->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
2818 Form(
"MC %s: generated trigger #varphi",nameMC[i].
Data()),
2819 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
2824 Form(
"MC %s: generated trigger #eta",nameMC[i].
Data()),
2825 nptbins,ptmin,ptmax, netabins,etamin,etamax);
2832 Form(
"MC %s: generated trigger #it{p}_{T}, when not leading of primaries",nameMC[i].
Data()),
2833 nptbins,ptmin,ptmax);
2837 Form(
"MC %s: generated trigger #varphi, when not leading of primaries",nameMC[i].
Data()),
2838 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
2844 Form(
"MC %s: generated triogger #eta, when not leading of primaries",nameMC[i].
Data()),
2845 nptbins,ptmin,ptmax, netabins,etamin,etamax);
2851 Form(
"MC %s: #eta_{h^{#pm}} vs #it{p}_{T #pm}",nameMC[i].
Data()),
2852 nptbins,ptmin,ptmax,100,-1.,1.);
2857 Form(
"MC %s: phi_{h^{#pm}} vs #it{p}_{T #pm}",nameMC[i].
Data()),
2858 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
2863 Form(
"MC %s: phi_{trigger} - #varphi_{h^{#pm}} vs #eta_{trigger} - #eta_{h^{#pm}}",nameMC[i].
Data()),
2864 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
2869 Form(
"MC %s: #eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger} and #it{p}_{T assoc}",nameMC[i].
Data()),
2870 nptbins,ptmin,ptmax,ndeltaetabins ,deltaetamin,deltaetamax);
2875 Form(
"MC %s: #varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}",nameMC[i].
Data()),
2876 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2881 Form(
"MC %s: #varphi_{trigger} - #varphi_{#h^{#pm}} vs #it{p}_{T h^{#pm}}",nameMC[i].
Data()),
2882 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2887 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons",nameMC[i].
Data()),
2888 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2893 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",nameMC[i].
Data()),
2894 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2899 Form(
"MC %s: #it{z}_{T} with charged hadrons",nameMC[i].
Data()),
2900 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2905 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons",nameMC[i].
Data()),
2906 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2911 Form(
"MC %s: #it{p}_{out} with triggers",nameMC[i].
Data()),
2912 nptbins,ptmin,ptmax,nptbins,-1.*ptmax/2.,ptmax/2.);
2917 Form(
"MC %s: #Delta #varphi with associated charged hadrons",nameMC[i].
Data()),
2918 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2950 new TH1F(Form(
"hMCUePart_%s",nameMC[i].
Data()),
2951 Form(
"MC %s: UE particles distribution vs #it{p}_{T trigger}",nameMC[i].
Data()),
2952 nptbins,ptmin,ptmax);
2954 fhMCUePart[i]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2957 new TH2F(Form(
"hMCPtXEUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2958 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2959 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2964 new TH2F(Form(
"hMCPtHbpXEUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2965 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2966 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2971 new TH2F(Form(
"hMCPtZTUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2972 Form(
"MC %s: #it{z}_{T} with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2973 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2978 new TH2F(Form(
"hMCPtHbpZTUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2979 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2980 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2993 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
2994 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2999 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3000 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3005 Form(
"MC %s: #it{z}_{T} with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3006 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3011 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3012 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3037 for(
Int_t ice = 0 ; ice < nce ; ice++ )
3039 for(
Int_t ivz = 0 ; ivz < nvz ; ivz++ )
3041 for(
Int_t irp = 0 ; irp < nrp ; irp++ )
3055 fhPtTriggerMixed =
new TH1F (
"hPtTriggerMixed",
"#it{p}_{T} distribution of trigger particles, used for mixing", nptbins,ptmin,ptmax);
3066 fhPtTriggerMixedBin =
new TH2F (
"hPtTriggerMixedBin",
"#it{p}_{T} distribution of trigger particles vs mixing bin", nptbins,ptmin,ptmax,nMixBins,0,nMixBins);
3070 fhPhiTriggerMixed =
new TH2F (
"hPhiTriggerMixed",
"#varphi distribution of trigger Particles, used for mixing",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
3073 fhEtaTriggerMixed =
new TH2F (
"hEtaTriggerMixed",
"#eta distribution of trigger, used for mixing",nptbins,ptmin,ptmax, netabins,etamin,etamax);
3090 for(
Int_t ice = 0 ; ice < nce ; ice++ )
3092 for(
Int_t ivz = 0 ; ivz < nvz ; ivz++ )
3094 for(
Int_t irp = 0 ; irp < nrp ; irp++ )
3111 if( !
GetReader()->ListWithMixedEventsForTracksExists() )
3114 if( !
GetReader()->ListWithMixedEventsForCaloExists() )
3118 fhEventBin=
new TH1I(
"hEventBin",
"Number of triggers per bin(cen,vz,rp)",
3124 fhEventMixBin=
new TH1I(
"hEventMixBin",
"Number of triggers mixed per event bin(cen,vz,rp)",
3130 fhEventMBBin=
new TH1I(
"hEventMBBin",
"Number of min bias events per bin(cen,vz,rp)",
3136 fhNtracksMB=
new TH2F(
"hNtracksMBEvent",
"Number of filtered tracks in MB event per event bin",ntrbins,trmin,trmax,
3145 fhNclustersMB=
new TH2F(
"hNclustersMBEvent",
"Number of filtered clusters in MB events per event bin",nclbins,clmin,clmax,
3154 (
"hMixDeltaPhiCharged",
"Mixed event : #varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}",
3155 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
3161 (
"hMixDeltaPhiDeltaEtaCharged",
"Mixed event : #varphi_{trigger} - #varphi_{h^{#pm}} vs #eta_{trigger} - #eta_{h^{#pm}}",
3162 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
3168 new TH2F(
"hMixXECharged",
"Mixed event : #it{x}_{#it{E}} for charged tracks",
3169 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3175 new TH2F(
"hMixXEUeCharged",
"Mixed event : #it{x}_{#it{E}} for charged tracks in Ue region",
3176 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3182 new TH2F(
"hMixHbpXECharged",
"mixed event : #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",
3183 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3195 for(
Int_t z = 0 ; z < nz ; z++)
3201 sz = Form(
"_vz%d",z);
3202 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
3208 Form(
"Mixed event #Delta #varphi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
3209 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
3216 Form(
"Mixed event #Delta #varphi vs #it{p}_{T trigger} for associated #it{p}_{T} bin [%2.1f,%2.1f]%s",
fAssocPtBinLimit[i],
fAssocPtBinLimit[i+1],tz.Data()),
3217 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3226 Form(
"Mixed event #Delta #varphi 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()),
3227 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3232 Form(
"Mixed event #Delta #varphi 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()),
3233 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3244 return outputContainer;
3258 if(indexPhoton1!=-1 || indexPhoton2!=-1)
return kFALSE;
3260 AliDebug(1,Form(
"indexPhoton1 = %d, indexPhoton2 = %d", indexPhoton1, indexPhoton2));
3266 for(
Int_t iclus = 0; iclus < clusters->GetEntriesFast(); iclus++)
3268 AliVCluster * photon = (AliVCluster*) (clusters->At(iclus));
3303 AliFatal(
"STOP!: You want to use CTS tracks in analysis but not read!! \n!!Check the configuration file!!");
3409 for(
Int_t iphoton = 0; iphoton < nphoton; iphoton++)
3463 if(check == 0)
continue;
3464 if(check == -1)
return kFALSE;
3467 if (particle->
Pt() > ptTrig)
3469 ptTrig = particle->
Pt() ;
3470 phiTrig = particle->
Phi();
3472 pLeading = particle ;
3476 if(index < 0)
return kFALSE;
3480 if(phiTrig < 0 ) phiTrig += TMath::TwoPi();
3486 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
3494 Bool_t contained = kFALSE;
3496 for(
Int_t i = 0; i < 4; i++)
3498 if( trackID == pLeading->
GetTrackLabel(i) ) contained = kTRUE;
3501 if ( contained ) continue ;
3504 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
3507 if(phi < 0) phi+=TMath::TwoPi();
3512 Float_t deltaPhi = phiTrig-phi;
3513 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
3514 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
3516 if(pt > ptTrig && deltaPhi < TMath::PiOver2())
return kFALSE;
3521 if(pt > ptTrig)
return kFALSE ;
3536 if(!nePl)
return kTRUE;
3538 for(
Int_t ipr = 0;ipr < nePl->GetEntriesFast() ; ipr ++ )
3540 AliVCluster * cluster = (AliVCluster *) (nePl->At(ipr)) ;
3548 if(phi < 0) phi+=TMath::TwoPi();
3556 Float_t deltaPhi = phiTrig-phi;
3557 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
3558 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
3560 if(pt > ptTrig && deltaPhi < TMath::PiOver2())
return kFALSE ;
3565 if(pt > ptTrig)
return kFALSE ;
3573 AliDebug(1,Form(
"\t particle AOD with index %d is leading with pT %2.2f",
fLeadingTriggerIndex, pLeading->
Pt()));
3597 AliFatal(Form(
"No input particles in AOD with name branch < %s >, STOP",
GetInputAODName().
Data()));
3604 AliDebug(1,
"No particle AOD found!");
3608 AliDebug(1,Form(
"Begin hadron correlation analysis, fill histograms"));
3609 AliDebug(1,Form(
"n particle branch aod entries %d", naod));
3610 AliDebug(1,Form(
"In CTS aod entries %d",
GetCTSTracks()->GetEntriesFast()));
3625 AliDebug(1,
"Leading was requested and not found");
3649 for( iaod = 0; iaod < naod; iaod++ )
3669 AliDebug(1,Form(
"%s Trigger : min %f, max %f, det %d",
3692 AliDebug(1,
"Pass the shower shape cut");
3705 AliDebug(1,
"Pass the isolation cut");
3715 if(! in ) continue ;
3717 AliDebug(1,
"Pass the fiducial cut");
3727 Bool_t okLeadHad = kTRUE;
3742 Bool_t lostDecayPair = kFALSE;
3787 Float_t pTLeadTrackInCone = 0;
3789 Float_t pTLeadClusterInCone = 0;
3790 Float_t pTSumClusterInCone = 0;
3798 Float_t pTLeadInCone = pTLeadTrackInCone;
3799 if(pTLeadClusterInCone > pTLeadInCone) pTLeadInCone = pTLeadClusterInCone;
3800 Float_t pTSumInCone = pTSumTrackInCone + pTSumClusterInCone;
3803 Int_t pTSumBin = -1;
3804 Int_t pTLeadBin = -1;
3825 if(decayTag < 0) decayTag = 0;
3883 AliFatal(Form(
"Lost decay Bit assigned to bad case, mcIndex %d",mcIndex));
3906 if(decayTag < 0) decayTag = 0;
3932 if( phi < 0 ) phi+=TMath::TwoPi();
3972 AliDebug(1,
"End fill histograms");
3984 AliDebug(1,
"Make trigger particle - charged hadron correlation");
3997 decayTag = aodParticle->
DecayTag();
3998 if(decayTag < 0) decayTag = 0;
4016 Int_t evtIndex11 = -1 ;
4017 Int_t evtIndex12 = -1 ;
4018 Int_t evtIndex13 = -1 ;
4036 Bool_t decayFound = kFALSE;
4053 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
4055 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
4059 if(phi < 0) phi+=TMath::TwoPi();
4062 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
4070 Bool_t contained = kFALSE;
4072 for(
Int_t i = 0; i < 4; i++)
4074 if( trackID == aodParticle->
GetTrackLabel(i) ) contained = kTRUE;
4077 if ( contained ) continue ;
4081 Int_t evtIndex2 = 0 ;
4085 if (evtIndex11 == evtIndex2 || evtIndex12 == evtIndex2 || evtIndex13 == evtIndex2 )
4092 AliDebug(2,Form(
"Selected charge for momentum imbalance: pt %2.2f, phi %2.2f, eta %2.2f",pt,phi,eta));
4101 Int_t assocBin = -1;
4120 Int_t bin = assocBin*nz+vz;
4127 ULong_t status = track->GetStatus();
4128 Bool_t okTOF = ( (status & AliVTrack::kTOFout) == AliVTrack::kTOFout ) ;
4130 Int_t trackBC = track->GetTOFBunchCrossing(bz);
4133 if (okTOF && trackBC!=0) outTOF = 1;
4134 else if(okTOF && trackBC==0) outTOF = 0;
4143 deltaPhi = phiTrig-phi;
4150 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4151 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4154 eta, etaTrig, decayTag, track->GetHMPIDsignal(),
4155 outTOF, cenbin, mcTag);
4161 AliESDtrack * esdTrack =
dynamic_cast<AliESDtrack*
>(track);
4176 assocBin, decayTag, outTOF, mcTag);
4215 reftracks->SetName(trackname.Data());
4216 reftracks->SetOwner(kFALSE);
4219 reftracks->Add(track);
4235 AliDebug(1,Form(
"Make trigger particle - charged hadron mixed event correlation"));
4244 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
4246 if(!inputHandler)
return;
4254 if(eventBin < 0)
return;
4263 TList * poolCalo = 0;
4277 if( neutralMix && !poolCalo )
4278 AliWarning(
"Careful, cluster pool not available");
4283 if(phiTrig < 0.) phiTrig+=TMath::TwoPi();
4285 AliDebug(1,Form(
"Pool bin %d size %d, trigger trigger pt=%f, phi=%f, eta=%f",
4286 eventBin,pool->GetSize(), ptTrig,phiTrig,etaTrig));
4299 for(
Int_t ev=ev0; ev < pool->GetSize(); ev++)
4308 if( neutralMix && poolCalo )
4310 if(pool->GetSize()!=poolCalo->GetSize())
4311 AliWarning(
"Different size of calo and track pools");
4313 bgCalo =
static_cast<TObjArray*
>(poolCalo->At(ev));
4315 if(!bgCalo) AliDebug(1,Form(
"Event %d in calo pool not available?",ev));
4323 Int_t n=0, nfrac = 0;
4324 Bool_t isolated = kFALSE;
4325 Float_t coneptsum = 0, coneptlead = 0;
4328 kFALSE, aodParticle,
"",
4329 n,nfrac,coneptsum,coneptlead,isolated);
4336 if(!isolated) continue ;
4342 Int_t nTracks=bgTracks->GetEntriesFast();
4347 for(
Int_t jlead = 0;jlead < nTracks; jlead++ )
4351 ptAssoc = track->
Pt();
4352 phiAssoc = track->
Phi() ;
4353 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4357 deltaPhi = phiTrig-phiAssoc;
4358 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4359 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4361 if(ptAssoc > ptTrig && deltaPhi < TMath::PiOver2())
4370 if(ptAssoc > ptTrig)
4379 AliWarning(
"Leading of clusters requested but no clusters in mixed event");
4383 Int_t nClusters=bgCalo->GetEntriesFast();
4384 for(
Int_t jlead = 0;jlead <nClusters; jlead++ )
4388 ptAssoc = cluster->
Pt();
4389 phiAssoc = cluster->
Phi() ;
4390 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4394 deltaPhi = phiTrig-phiAssoc;
4395 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4396 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4398 if(ptAssoc > ptTrig && deltaPhi < TMath::PiOver2())
4407 if(ptAssoc > ptTrig)
4416 if(!leading)
continue;
4437 for(
Int_t j1 = 0;j1 <nTracks; j1++ )
4441 if(!track)
continue;
4443 ptAssoc = track->
Pt();
4444 etaAssoc = track->
Eta();
4445 phiAssoc = track->
Phi() ;
4446 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4448 deltaPhi = phiTrig-phiAssoc;
4449 if(deltaPhi < -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4450 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4451 deltaEta = etaTrig-etaAssoc;
4453 AliDebug(1,Form(
"deltaPhi= %f, deltaEta=%f",deltaPhi, deltaEta));
4464 xE = -ptAssoc/ptTrig*TMath::Cos(deltaPhi);
4467 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4481 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
4484 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4491 Int_t assocBin = -1;
4509 Int_t bin = assocBin*nz+vz;
4511 if(bin < 0) continue ;
4518 if(TMath::Abs(deltaEta) > 0.8)
4520 if(TMath::Abs(deltaEta) < 0.01)
4535 if(!pi0list) return ;
4537 Int_t npi0 = pi0list->GetEntriesFast();
4538 if(npi0 == 0) return ;
4540 AliDebug(1,Form(
"Particle - pi0 correlation, %d pi0's",npi0));
4542 Int_t evtIndex11 = 0 ;
4543 Int_t evtIndex12 = 0 ;
4567 Bool_t decayFound = kFALSE;
4575 for(
Int_t iaod = 0; iaod < npi0 ; iaod++)
4579 Int_t evtIndex2 = 0 ;
4580 Int_t evtIndex3 = 0 ;
4586 if (evtIndex11 == evtIndex2 || evtIndex12 == evtIndex2 ||
4587 evtIndex11 == evtIndex3 || evtIndex12 == evtIndex3)
4593 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
4607 deltaEta = etaTrig-eta;
4608 deltaPhi = phiTrig-phi;
4609 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4610 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4627 if(zT > 0 ) hbpZT = TMath::Log(1./zT);
4632 xE =-pt/ptTrig*TMath::Cos(deltaPhi);
4635 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4638 if( xE > 0 ) hbpXE = TMath::Log(1./xE);
4651 xE = -(pt/ptTrig)*TMath::Cos(randomphi);
4652 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
4678 refpi0->SetOwner(kFALSE);
4683 AliDebug(1,Form(
"Selected pi0: pt %2.2f, phi %2.2f, eta %2.2f",pt,phi,eta));
4699 AliDebug(1,
"Make trigger particle - charged hadron correlation in AOD MC level");
4703 AliDebug(1,Form(
" *** bad label ***: label %d", label));
4709 AliFatal(
"Stack not available, is the MC handler called? STOP");
4714 Int_t nTracks =
GetMC()->GetNumberOfPrimaries();
4716 if( label >= nTracks )
4719 AliInfo(Form(
" *** large label ***: label %d, n prim tracks %d", label,nTracks));
4727 if(histoIndex < fMCGenTypeMin || histoIndex >
fMCGenTypeMax) return ;
4733 Int_t iParticle = 0 ;
4736 AliVParticle * primary =
GetMC()->GetTrack(label);
4739 AliInfo(Form(
" *** no primary ***: label %d", label));
4743 eprim = primary->E();
4744 ptprim = primary->Pt();
4745 etaprim = primary->Eta();
4746 phiprim = primary->Phi();
4747 if(phiprim < 0) phiprim+=TMath::TwoPi();
4749 if(ptprim < 0.01 || eprim < 0.01) return ;
4753 for (iParticle = 0; iParticle < nTracks; iParticle++)
4755 if ( !
GetReader()->AcceptParticleMCLabel( iParticle ) ) continue ;
4757 AliVParticle * particle =
GetMC()->GetTrack(iParticle);
4759 if ( !particle->IsPhysicalPrimary() )
continue;
4761 if ( particle->Charge() == 0 )
continue;
4769 if( !inCTS )
continue;
4772 Int_t indexmother = particle->GetMother();
4773 if ( indexmother > -1 )
4776 Int_t mPdg = (
GetMC()->GetTrack(indexmother))->PdgCode();
4777 if (TMath::Abs(pdg) == 11 && mPdg == 22)
continue;
4780 if ( label == iParticle )
continue;
4782 Float_t phi = particle->Phi();
4783 if(phi < 0) phi+=TMath::TwoPi();
4787 if ( !lead ) leadTrig = kFALSE;
4801 if (histoIndex == 2 && 8 >=
fMCGenTypeMin && 8 <= fMCGenTypeMax )
4808 else if(histoIndex == 4 && 9 >=
fMCGenTypeMin && 9 <= fMCGenTypeMax )