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 fFillPerSMHistograms(0),
80 fFillTaggedDecayHistograms(0), fDecayTagsM02Cut(0),
81 fMCGenTypeMin(0), fMCGenTypeMax(0),
82 fTrackVector(), fMomentum(), fMomentumIM(),
83 fDecayMom1(), fDecayMom2(),
85 fhPtTriggerInput(0), fhPtTriggerSSCut(0),
86 fhPtTriggerIsoCut(0), fhPtTriggerFidCut(0),
87 fhPtTrigger(0), fhPtTriggerVtxBC0(0),
88 fhPtTriggerVzBin(0), fhPtTriggerBin(0),
89 fhPhiTrigger(0), fhEtaTrigger(0),
91 fhPtDecayTrigger(), fhPtDecayTriggerMC(),
92 fhPtTriggerCentrality(0), fhPtTriggerEventPlane(0),
93 fhTriggerEventPlaneCentrality(0),
94 fhPtTriggerMixed(0), fhPtTriggerMixedVzBin(0), fhPtTriggerMixedBin(0),
95 fhPhiTriggerMixed(0), fhEtaTriggerMixed(0),
96 fhPtLeadingOppositeHadron(0), fhPtDiffPhiLeadingOppositeHadron(0), fhPtDiffEtaLeadingOppositeHadron(0),
97 fhPtNoLeadingOppositeHadron(0), fhEtaPhiNoLeadingOppositeHadron(0),
98 fhDeltaPhiDeltaEtaCharged(0),
99 fhPhiCharged(0), fhEtaCharged(0),
100 fhDeltaPhiCharged(0), fhDeltaEtaCharged(0),
101 fhDeltaPhiChargedPt(0), fhDeltaPhiUeChargedPt(0),
103 fhXECharged(0), fhXECharged_Cone2(0), fhXEUeCharged(0),
104 fhXEUeChargedSmallCone(0), fhXEUeChargedMediumCone(0), fhXEUeChargedLargeCone(0),
105 fhXEPosCharged(0), fhXENegCharged(0),
106 fhPtHbpXECharged(0), fhPtHbpXECharged_Cone2(0), fhPtHbpXEUeCharged(0),
107 fhZTCharged(0), fhZTUeCharged(0),
108 fhZTPosCharged(0), fhZTNegCharged(0),
109 fhPtHbpZTCharged(0), fhPtHbpZTUeCharged(0),
110 fhXEChargedMC(), fhDeltaPhiChargedMC(),
111 fhXEUeChargedRightMC(), fhXEUeChargedLeftMC(),
112 fhDeltaPhiDeltaEtaChargedPtA3GeV(0),
113 fhDeltaPhiChargedPtA3GeV(0), fhDeltaEtaChargedPtA3GeV(0),
115 fhDeltaPhiChargedPileUp(), fhDeltaEtaChargedPileUp(),
116 fhDeltaPhiChargedPtA3GeVPileUp(), fhDeltaEtaChargedPtA3GeVPileUp(),
117 fhXEChargedPileUp(), fhXEUeChargedPileUp(),
118 fhZTChargedPileUp(), fhZTUeChargedPileUp(),
119 fhPtTrigChargedPileUp(),
120 fhDeltaPhiChargedOtherBC(), fhDeltaPhiChargedPtA3GeVOtherBC(),
121 fhXEChargedOtherBC(), fhXEUeChargedOtherBC(),
122 fhZTChargedOtherBC(), fhZTUeChargedOtherBC(),
123 fhPtTrigChargedOtherBC(),
124 fhDeltaPhiChargedBC0(), fhDeltaPhiChargedPtA3GeVBC0(),
125 fhXEChargedBC0(), fhXEUeChargedBC0(),
126 fhZTChargedBC0(), fhZTUeChargedBC0(),
127 fhPtTrigChargedBC0(),
128 fhDeltaPhiChargedVtxBC0(), fhDeltaPhiChargedPtA3GeVVtxBC0(),
129 fhXEChargedVtxBC0(), fhXEUeChargedVtxBC0(),
130 fhZTChargedVtxBC0(), fhZTUeChargedVtxBC0(),
131 fhPtTrigChargedVtxBC0(),
132 fhDeltaPhiUeLeftCharged(0),
133 fhDeltaPhiUeLeftUpCharged(0), fhDeltaPhiUeRightUpCharged(0),
134 fhDeltaPhiUeLeftDownCharged(0), fhDeltaPhiUeRightDownCharged(0),
135 fhXEUeLeftCharged(0),
136 fhXEUeLeftUpCharged(0), fhXEUeRightUpCharged(0),
137 fhXEUeLeftDownCharged(0), fhXEUeRightDownCharged(0),
138 fhPtHbpXEUeLeftCharged(0), fhZTUeLeftCharged(0),
139 fhPtHbpZTUeLeftCharged(0),
140 fhPtTrigPout(0), fhPtTrigCharged(0),
141 fhDeltaPhiChargedMult(0x0), fhDeltaEtaChargedMult(0x0),
142 fhXEMult(0x0), fhXEUeMult(0x0),
143 fhZTMult(0x0), fhZTUeMult(0x0),
144 fhAssocPtBkg(0), fhDeltaPhiDeltaEtaAssocPtBin(0),
145 fhDeltaPhiAssocPtBin(0),
146 fhDeltaPhiAssocPtBinDEta08(0), fhDeltaPhiAssocPtBinDEta0(0),
147 fhDeltaPhiAssocPtBinHMPID(0), fhDeltaPhiAssocPtBinHMPIDAcc(0),
148 fhDeltaPhiBradAssocPtBin(0), fhDeltaPhiBrad(0),
149 fhXEAssocPtBin(0), fhZTAssocPtBin(0),
150 fhXEVZ(0), fhZTVZ(0),
151 fhDeltaPhiDeltaEtaNeutral(0),
152 fhPhiNeutral(0), fhEtaNeutral(0),
153 fhDeltaPhiNeutral(0), fhDeltaEtaNeutral(0),
154 fhDeltaPhiNeutralPt(0), fhDeltaPhiUeNeutralPt(0),
155 fhXENeutral(0), fhXEUeNeutral(0),
156 fhPtHbpXENeutral(0), fhPtHbpXEUeNeutral(0),
157 fhZTNeutral(0), fhZTUeNeutral(0),
158 fhPtHbpZTNeutral(0), fhPtHbpZTUeNeutral(0),
159 fhDeltaPhiUeLeftNeutral(0), fhXEUeLeftNeutral(0),
160 fhPtHbpXEUeLeftNeutral(0), fhZTUeLeftNeutral(0),
161 fhPtHbpZTUeLeftNeutral(0), fhPtPi0DecayRatio(0),
162 fhDeltaPhiPi0DecayCharged(0), fhXEPi0DecayCharged(0), fhZTPi0DecayCharged(0),
163 fhDeltaPhiPi0DecayNeutral(0), fhXEPi0DecayNeutral(0), fhZTPi0DecayNeutral(0),
164 fhDeltaPhiDecayCharged(), fhXEDecayCharged(), fhZTDecayCharged(),
165 fhDeltaPhiDecayChargedAssocPtBin(),
166 fhMCPtTrigger(), fhMCPhiTrigger(), fhMCEtaTrigger(),
167 fhMCPtTriggerNotLeading(), fhMCPhiTriggerNotLeading(), fhMCEtaTriggerNotLeading(),
168 fhMCEtaCharged(), fhMCPhiCharged(),
169 fhMCDeltaEtaCharged(), fhMCDeltaPhiCharged(),
170 fhMCDeltaPhiDeltaEtaCharged(), fhMCDeltaPhiChargedPt(),
171 fhMCPtXECharged(), fhMCPtXEUeCharged(),
172 fhMCPtXEUeLeftCharged(),
173 fhMCPtHbpXECharged(), fhMCPtHbpXEUeCharged(),
174 fhMCPtHbpXEUeLeftCharged(),
176 fhMCPtZTCharged(), fhMCPtZTUeCharged(),
177 fhMCPtZTUeLeftCharged(),
178 fhMCPtHbpZTCharged(), fhMCPtHbpZTUeCharged(),
179 fhMCPtHbpZTUeLeftCharged(),
180 fhMCPtTrigPout(), fhMCPtAssocDeltaPhi(),
182 fhNEventsTrigger(0), fhNtracksMB(0), fhNclustersMB(0),
183 fhMixDeltaPhiCharged(0), fhMixDeltaPhiDeltaEtaCharged(0),
184 fhMixXECharged(0), fhMixXEUeCharged(0), fhMixHbpXECharged(0),
185 fhMixDeltaPhiChargedAssocPtBin(),
186 fhMixDeltaPhiChargedAssocPtBinDEta08(),
187 fhMixDeltaPhiChargedAssocPtBinDEta0(),
188 fhMixDeltaPhiDeltaEtaChargedAssocPtBin(),
189 fhEventBin(0), fhEventMixBin(0), fhEventMBBin(0),
190 fhMassPtTrigger(0), fhMCMassPtTrigger(),
191 fhPtLeadInConeBin(), fhPtSumInConeBin(),
192 fhPtLeadConeBinDecay(), fhSumPtConeBinDecay(),
193 fhPtLeadConeBinMC(), fhSumPtConeBinMC(),
194 fhTrackResolution(0), fhTrackResolutionUE(0),
213 for(
Int_t i = 0; i < 7; i++)
223 for(
Int_t ism = 0; ism < 20; ism++)
286 Float_t deltaEta = etaTrig-etaAssoc;
287 Float_t deltaPhiOrg = phiTrig-phiAssoc;
326 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA)
342 if(
GetReader()->IsPileUpFromSPDOrEMCal())
347 if(
GetReader()->IsPileUpFromSPDAndEMCal())
352 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
357 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
362 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
380 if(
GetReader()->IsPileUpFromSPDOrEMCal())
385 if(
GetReader()->IsPileUpFromSPDAndEMCal())
390 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
395 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
400 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
433 dphiBrad = atan2(sin(deltaPhiOrg), cos(deltaPhiOrg))/TMath::Pi();
434 if( TMath::Abs(dphiBrad) > 0.325 && TMath::Abs(dphiBrad) < 0.475 )
439 if( dphiBrad < -1./3 ) dphiBrad += 2;
452 if(TMath::Abs(deltaEta)> 0.8)
455 if(TMath::Abs(deltaEta)< 0.01)
470 if( hmpidSignal > 0 )
476 if(phiAssoc > 5*TMath::DegToRad() && phiAssoc < 20*TMath::DegToRad())
508 if( mcAssocPhi < 0 ) mcAssocPhi+=TMath::TwoPi();
510 Float_t mcdeltaPhi= mcTrigPhi-mcAssocPhi;
511 if(mcdeltaPhi <= -TMath::PiOver2()) mcdeltaPhi+=TMath::TwoPi();
512 if(mcdeltaPhi > 3*TMath::PiOver2()) mcdeltaPhi-=TMath::TwoPi();
516 if( mcAssocPt > mcTrigPt && mcdeltaPhi < TMath::PiOver2() ) lead = kFALSE;
521 if ( mcAssocPt < fMinAssocPt || mcAssocPt >
fMaxAssocPt )
return lead ;
522 if ( mcAssocPt <
GetReader()->GetCTSPtMin())
return lead ;
527 if(TMath::Abs(mcAssocPt -mcTrigPt ) < 1e-6 &&
529 TMath::Abs(mcAssocEta-mcTrigEta) < 1e-6)
return lead ;
531 Float_t mcxE =-mcAssocPt/mcTrigPt*TMath::Cos(mcdeltaPhi);
533 if(mcxE > 0 ) mchbpXE = TMath::Log(1./mcxE);
535 Float_t mczT = mcAssocPt/mcTrigPt ;
537 if(mczT > 0 ) mchbpZT = TMath::Log(1./mczT);
539 Double_t mcpout = mcAssocPt*TMath::Sin(mcdeltaPhi) ;
541 AliDebug(1,Form(
"Charged hadron: track Pt %f, track Phi %f, phi trigger %f. Cuts: delta phi %2.2f < %2.2f < %2.2f",
620 Double_t mcUexE = -(mcAssocPt/mcTrigPt)*TMath::Cos(randomphi);
621 Double_t mcUezT = mcAssocPt/mcTrigPt;
624 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
669 Double_t mcUexE = -(mcAssocPt/mcTrigPt)*TMath::Cos(randomphi);
670 Double_t mcUezT = mcAssocPt/mcTrigPt;
673 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
721 Float_t xE =-ptAssoc/ptTrig*TMath::Cos(deltaPhi);
722 Float_t pout = ptAssoc*TMath::Sin(deltaPhi) ;
725 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
731 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
732 if(zT > 0 ) hbpZT = TMath::Log(1./zT);
743 if((deltaPhi > 5*TMath::Pi()/6.) && (deltaPhi < 7*TMath::Pi()/6.))
780 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA)
799 if(
GetReader()->IsPileUpFromSPDOrEMCal())
805 if(
GetReader()->IsPileUpFromSPDAndEMCal())
811 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
817 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
823 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
886 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
890 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
935 if(vtxBC == 0 || vtxBC==AliVTrack::kTOFBCNA)
951 if(
GetReader()->IsPileUpFromSPDOrEMCal())
956 if(
GetReader()->IsPileUpFromSPDAndEMCal())
961 if(
GetReader()->IsPileUpFromSPDAndNotEMCal())
966 if(
GetReader()->IsPileUpFromEMCalAndNotSPD())
971 if(
GetReader()->IsPileUpFromNotSPDAndNotEMCal())
1000 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1004 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1034 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1037 AliWarning(Form(
"Careful!!, negative xE %2.2f for left-down UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1048 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1051 AliWarning(Form(
"Careful!!, negative xE %2.2f for left-up UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1062 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1065 AliWarning(Form(
"Careful!!, negative xE %2.2f for right-up UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1076 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
1079 AliWarning(Form(
"Careful!!, negative xE %2.2f for right-down UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
1095 Float_t zTDecay1 = -100, zTDecay2 = -100;
1096 if(ptDecay1 > 0) zTDecay1 = ptAssoc/ptDecay1 ;
1097 if(ptDecay2 > 0) zTDecay2 = ptAssoc/ptDecay2 ;
1100 if(deltaPhiDecay1< -TMath::PiOver2()) deltaPhiDecay1+=TMath::TwoPi();
1101 if(deltaPhiDecay1>3*TMath::PiOver2()) deltaPhiDecay1-=TMath::TwoPi();
1104 if(deltaPhiDecay2< -TMath::PiOver2()) deltaPhiDecay2+=TMath::TwoPi();
1105 if(deltaPhiDecay2>3*TMath::PiOver2()) deltaPhiDecay2-=TMath::TwoPi();
1107 Float_t xEDecay1 =-zTDecay1*TMath::Cos(deltaPhiDecay1);
1108 Float_t xEDecay2 =-zTDecay2*TMath::Cos(deltaPhiDecay2);
1110 if(bChargedOrNeutral)
1115 AliDebug(2,Form(
"deltaPhoton1 = %f, deltaPhoton2 = %f", deltaPhiDecay1, deltaPhiDecay2));
1133 AliDebug(2,Form(
"deltaPhoton1 = %f, deltaPhoton2 = %f", deltaPhiDecay1, deltaPhiDecay2));
1158 Float_t xE =-ptAssoc/ptTrig*TMath::Cos(randomphi);
1160 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
1202 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
1204 if(!inputHandler) return ;
1212 if(eventBin < 0)
return;
1231 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
1233 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
1237 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
1242 mixEventTracks->Add(mixedTrack);
1251 pool->AddFirst(mixEventTracks);
1259 TClonesArray * tmp =
static_cast<TClonesArray*
>(pool->Last()) ;
1260 pool->RemoveLast() ;
1284 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
1286 if(!inputHandler) return ;
1294 if(eventBin < 0)
return;
1307 for(
Int_t ipr = 0;ipr < pl->GetEntriesFast() ; ipr ++ )
1309 AliVCluster * calo = (AliVCluster *) (pl->At(ipr)) ;
1328 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
1332 mixEventCalo->Add(mixedCalo);
1341 poolCalo->AddFirst(mixEventCalo);
1349 TClonesArray * tmp =
static_cast<TClonesArray*
>(poolCalo->Last()) ;
1350 poolCalo->RemoveLast() ;
1364 if(phiTrig < 0 ) phiTrig+= TMath::TwoPi();
1374 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
1376 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
1380 if(phi < 0 ) phi+= TMath::TwoPi();
1382 Float_t deltaPhi = phiTrig-phi;
1388 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
1389 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
1391 if(pt > ptLeadHad && deltaPhi > TMath::PiOver2())
1395 dphiLeadHad= deltaPhi;
1417 AliDebug(1,Form(
"pT %2.2f, phi %2.2f, eta %2.2f, nTracks away %d, total tracks %d",
1419 AliDebug(1,Form(
"\t pT trig %2.2f, Dphi (trigger-hadron) %2.2f, Deta (trigger-hadron) %2.2f",
1420 ptTrig, dphiLeadHad*TMath::RadToDeg(), etaLeadHad-etaTrig));
1421 AliDebug(1,Form(
"\t cuts pT: min %2.2f, max %2.2f; DPhi: min %2.2f, max %2.2f",
1427 if( nTrack == 0 )
return kFALSE;
1429 if( ptLeadHad < fMinLeadHadPt || ptLeadHad >
fMaxLeadHadPt )
return kFALSE;
1433 if( dphiLeadHad < fMinLeadHadPhi || dphiLeadHad >
fMaxLeadHadPhi )
return kFALSE;
1446 const Int_t buffersize = 560;
1447 char onePar[buffersize] ;
1449 snprintf(onePar,buffersize,
"--- AliAnaPaticleHadronCorrelation ---:") ;
1457 snprintf(onePar,buffersize,
"Isolated Trigger? %d;",
fSelectIsolated) ;
1461 snprintf(onePar,buffersize,
"Name of AOD Pi0 Branch %s;",
fPi0AODBranchName.Data());
1465 snprintf(onePar,buffersize,
"Select absolute leading for cluster triggers ? %d or Near Side Leading %d;",
1468 snprintf(onePar,buffersize,
"Associated particle pt bins %d: ",
fNAssocPtBins) ;
1481 return new TObjString(parList) ;
1491 outputContainer->SetName(
"CorrelationHistos") ;
1515 TString nameMC[] = {
"Photon",
"Pi0",
"Pi0Decay",
"Eta",
"EtaDecay",
"OtherDecay",
"Electron",
"Hadron",
"Pi0DecayLostPair",
"EtaDecayLostPair"};
1516 TString mcPartType[] = {
"#gamma",
"#pi^{0} (merged #gamma)",
"#gamma_{#pi decay}",
"#eta (merged #gamma)" ,
"#gamma_{#eta decay}",
"#gamma_{other decay}",
1517 "e^{#pm}" ,
"hadrons?" ,
"#gamma_{#pi decay} lost companion",
"#gamma_{#eta decay} lost companion"} ;
1518 TString pileUpName[] = {
"SPD",
"EMCAL",
"SPDOrEMCAL",
"SPDAndEMCAL",
"SPDAndNotEMCAL",
"EMCALAndNotSPD",
"NotSPDAndNotEMCAL"} ;
1538 fhTrackResolution =
new TH2F (
"hTrackResolution",
"Track resolution: #sigma_{#it{p}_{T}} vs #it{p}_{T}, away side, ESDs",
1539 nptbins,ptmin,ptmax,600,0,0.3);
1544 fhTrackResolutionUE =
new TH2F (
"hTrackResolutionUE",
"Track resolution: #sigma_{#it{p}_{T}} vs #it{p}_{T}, UE, ESDs",
1545 nptbins,ptmin,ptmax,600,0,0.3);
1551 fhPtTriggerInput =
new TH1F(
"hPtTriggerInput",
"Input trigger #it{p}_{T}", nptbins,ptmin,ptmax);
1557 fhPtTriggerSSCut =
new TH1F(
"hPtTriggerSSCut",
"Trigger #it{p}_{T} after #lambda^{2}_{0} cut", nptbins,ptmin,ptmax);
1564 fhPtTriggerIsoCut =
new TH1F(
"hPtTriggerIsoCut",
"Trigger #it{p}_{T} after isolation (and #lambda^{2}_{0} cut)", nptbins,ptmin,ptmax);
1569 fhPtTriggerFidCut =
new TH1F(
"hPtTriggerFidCut",
"Trigger #it{p}_{T} after fiducial (isolation and #lambda^{2}_{0}) cut", nptbins,ptmin,ptmax);
1573 fhPtTrigger =
new TH1F(
"hPtTrigger",
"#it{p}_{T} distribution of trigger particles (after opposite hadron leading cut and rest)", nptbins,ptmin,ptmax);
1574 fhPtTrigger->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
1580 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1604 (Form(
"hPtLeadCone_Bin%d",ibin),
1605 Form(
"cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1612 (Form(
"hSumPtCone_Bin%d",ibin),
1613 Form(
"in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1626 (Form(
"hPtLeadCone_Bin%d_DecayBit%d",ibin,
fDecayBits[idecay]),
1627 Form(
"Decay bit %d, cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1634 (Form(
"hSumPtCone_Bin%d_DecayBit%d",ibin,
fDecayBits[idecay]),
1635 Form(
"Decay bit %d, in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1649 (Form(
"hPtLeadCone_Bin%d_MC%s",ibin, nameMC[imc].
Data()),
1650 Form(
"in cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, MC %s, %s",
1657 (Form(
"hSumPtCone_Bin%d_MC%s",ibin,nameMC[imc].
Data()),
1658 Form(
"in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, MC %s, %s",
1673 Form(
"#it{p}_{T} distribution of trigger particles, trigger origin is %s",nameMC[i].
Data()),
1674 nptbins,ptmin,ptmax);
1675 fhPtTriggerMC[i]->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
1681 Form(
"2 photons invariant mass, trigger origin is %s",nameMC[i].
Data()),
1682 nptbins,ptmin,ptmax,nmassbins,massmin,massmax);
1695 Form(
"#it{p}_{T} distribution of trigger particles, decay Bit %d",
fDecayBits[ibit]),
1696 nptbins,ptmin,ptmax);
1705 Form(
"#it{p}_{T} distribution of trigger particles, decay Bit %d, trigger origin is %s",
fDecayBits[ibit], nameMC[i].
Data()),
1706 nptbins,ptmin,ptmax);
1722 fhPtTriggerBin =
new TH2F (
"hPtTriggerBin",
"#it{p}_{T} distribution of trigger particles", nptbins,ptmin,ptmax,nMixBins,0,nMixBins);
1727 fhPhiTrigger =
new TH2F (
"hPhiTrigger",
"#varphi distribution of trigger Particles",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
1731 fhEtaTrigger =
new TH2F (
"hEtaTrigger",
"#eta distribution of trigger",nptbins,ptmin,ptmax, netabins,etamin,etamax);
1737 fhPtTriggerCentrality =
new TH2F(
"hPtTriggerCentrality",
"Trigger particle #it{p}_{T} vs centrality",nptbins,ptmin,ptmax,100,0.,100) ;
1742 fhPtTriggerEventPlane =
new TH2F(
"hPtTriggerEventPlane",
"Trigger particle #it{p}_{T} vs event plane angle",nptbins,ptmin,ptmax, 100,0.,TMath::Pi()) ;
1757 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
1763 nptbins,ptmin,ptmax);
1768 netabins,etamin,etamax,nphibins,phimin,phimax);
1775 nptbins,ptmin,ptmax,ndeltaphibins,deltaphimin,deltaphimax);
1781 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1790 (
"hDeltaPhiDeltaEtaCharged",
"#eta_{trigger} - #eta_{h^{#pm}} vs #varphi_{trigger} - #varphi_{h^{#pm}}",
1791 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
1796 (
"hDeltaPhiDeltaEtaChargedPtA3GeV",
"#eta_{trigger} - #eta_{h^{#pm}} vs #varphi_{trigger} - #varphi_{h^{#pm}, #it{p}_{TA}>3 GeV/#it{c}}",
1797 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
1802 (
"hPhiCharged",
"#varphi_{h^{#pm}} vs #it{p}_{T #pm}",
1803 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
1805 fhPhiCharged->SetXTitle(
"#it{p}_{T #pm} (GeV/#it{c})");
1808 (
"hEtaCharged",
"#eta_{h^{#pm}} vs #it{p}_{T #pm}",
1809 nptbins,ptmin,ptmax,100,-1.,1.);
1811 fhEtaCharged->SetXTitle(
"#it{p}_{T #pm} (GeV/#it{c})");
1814 (
"hDeltaPhiCharged",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}",
1815 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1820 (
"hDeltaPhiChargedPtA3GeV",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}",
1821 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1827 (
"hDeltaPhiChargedPt",
"#varphi_{trigger} - #varphi_{#h^{#pm}} vs #it{p}_{T h^{#pm}}",
1828 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1833 (
"hDeltaEtaCharged",
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}",
1834 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1839 (
"hDeltaEtaChargedPtA3GeV",
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}",
1840 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
1845 new TH2F(
"hXECharged",
"#it{x}_{#it{E}} for charged tracks",
1846 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1848 fhXECharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1851 new TH2F(
"hXECharged_Cone2",
"#it{x}_{#it{E}} for charged tracks in cone 2 (5#pi/6-7#pi/6)",
1852 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1857 new TH2F(
"hXEPositiveCharged",
"#it{x}_{#it{E}} for positive charged tracks",
1858 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1863 new TH2F(
"hXENegativeCharged",
"#it{x}_{#it{E}} for negative charged tracks",
1864 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1869 new TH2F(
"hHbpXECharged",
"#xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",
1870 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1875 new TH2F(
"hHbpXECharged_Cone2",
"#xi = ln(1/#it{x}_{#it{E}}) with charged hadrons in cone 2 (5#pi/6-7#pi/6)",
1876 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1881 new TH2F(
"hZTCharged",
"#it{z}_{T} for charged tracks",
1882 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1887 new TH2F(
"hZTPositiveCharged",
"#it{z}_{T} for positive charged tracks",
1888 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1893 new TH2F(
"hZTNegativeCharged",
"#it{z}_{T} for negative charged tracks",
1894 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1899 new TH2F(
"hHbpZTCharged",
"#xi = ln(1/#it{z}_{T}) with charged hadrons",
1900 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
1905 new TH2F(
"hPtTrigPout",
"Pout with triggers",
1906 nptbins,ptmin,ptmax,nptbins,-1.*ptmax/2.,ptmax/2.);
1908 fhPtTrigPout->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1911 new TH2F(
"hPtTrigCharged",
"trigger and charged tracks pt distribution",
1912 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
1935 Form(
"#Delta #varphi for charged tracks, trigger origin is %s",nameMC[i].
Data()),
1936 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
1942 Form(
"#it{x}_{#it{E}} for charged tracks, trigger origin is %s",nameMC[i].
Data()),
1943 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1945 fhXEChargedMC[i]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1949 Form(
"#it{x}_{#it{E}} for charged tracks in right UE cone, trigger origin is %s",nameMC[i].
Data()),
1950 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1956 Form(
"#it{x}_{#it{E}} for charged tracks in left UE cone, trigger origin is %s",nameMC[i].
Data()),
1957 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1980 fhUePart =
new TH1F(
"hUePart",
"UE particles distribution vs pt trig",
1981 nptbins,ptmin,ptmax);
1983 fhUePart->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1986 (Form(
"hDeltaPhiUe%sChargedPt",right.Data()),
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}}",
1987 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
1992 new TH2F(Form(
"hXEUeCharged%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event",
1993 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
1995 fhXEUeCharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
1998 new TH2F(Form(
"hXEUeChargedSmallCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [80,100] deg",
1999 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2004 new TH2F(Form(
"hXEUeChargedMediumCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [70,110] deg",
2005 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2010 new TH2F(Form(
"hXEUeChargedLargeCone%s",right.Data()),
"#it{x}_{#it{E}} for Underlying Event in a cone [60,120] deg",
2011 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2016 new TH2F(Form(
"hHbpXEUeCharged%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for Underlying Event",
2017 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2022 new TH2F(Form(
"hZTUeCharged%s",right.Data()),
"#it{z}_{T} for Underlying Event",
2023 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2025 fhZTUeCharged->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2028 new TH2F(Form(
"hHbpZTUeCharged%s",right.Data()),
"#xi = ln(1/#it{z}_{T}) for Underlying Event",
2029 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2046 (
"hDeltaPhiUeLeftChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left side range of trigger particles",
2047 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2053 (
"hDeltaPhiUeLeftUpChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left Up side range of trigger particles",
2054 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2060 (
"hDeltaPhiUeRightUpChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE right Up side range of trigger particles",
2061 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2067 (
"hDeltaPhiUeLeftDownChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE left Down side range of trigger particles",
2068 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2074 (
"hDeltaPhiUeRightDownChargedPt",
"#varphi_{trigger} - #varphi_{#Ueh^{#pm}} vs #it{p}_{T Ueh^{#pm}} with UE right Down side range of trigger particles",
2075 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2081 new TH2F(
"hXEUeChargedLeft",
"#it{x}_{#it{E}} with UE left side of trigger",
2082 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2088 new TH2F(
"hXEUeChargedLeftUp",
"#it{x}_{#it{E}} with UE left Up side of trigger",
2089 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2095 new TH2F(
"hXEUeChargedRightUp",
"#it{x}_{#it{E} h^{#pm}} with UE right Up side of trigger",
2096 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2102 new TH2F(
"hXEUeChargedLeftDown",
"#it{x}_{#it{E}} with UE left Down side of trigger",
2103 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2109 new TH2F(
"hXEUeChargedRightDown",
"#it{x}_{#it{E} h^{#pm}} with UE right Down side of trigger",
2110 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2116 new TH2F(
"hHbpXEUeChargedLeft",
"#xi = ln(1/#it{x}_{#it{E}}) with charged UE left side of trigger",
2117 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2123 new TH2F(
"hZTUeChargedLeft",
"#it{z}_{trigger h^{#pm}} = #it{p}_{T Ueh^{#pm}} / #it{p}_{T trigger} with UE left side of trigger",
2124 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2130 new TH2F(
"hHbpZTUeChargedLeft",
"#xi = ln(1/#it{z}_{T}) with charged UE left side of trigger",
2131 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2140 (
"hDeltaPhiChargedOtherBC",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, track BC!=0",
2141 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2146 (
"hDeltaPhiChargedPtA3GeVOtherBC",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC!=0",
2147 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2152 new TH2F(
"hPtTrigChargedOtherBC",
"trigger and charged tracks pt distribution, track BC!=0",
2153 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2158 new TH2F(
"hXEChargedOtherBC",
"#it{x}_{#it{E}} for charged tracks, track BC!=0",
2159 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2164 new TH2F(
"hXEUeChargedOtherBC",
"#it{x}_{#it{E}} for Underlying Event, track BC!=0",
2165 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2170 new TH2F(
"hZTChargedOtherBC",
"#it{z}_{T} for charged tracks, track BC!=0",
2171 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2176 new TH2F(
"hZTUeChargedOtherBC",
"#it{z}_{T} for Underlying Event, track BC!=0",
2177 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2190 (
"hDeltaPhiChargedBC0",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, track BC==0",
2191 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2196 (
"hDeltaPhiChargedPtA3GeVBC0",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC==0",
2197 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2202 new TH2F(
"hPtTrigChargedBC0",
"trigger and charged tracks pt distribution, track BC==0",
2203 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2208 new TH2F(
"hXEChargedBC0",
"#it{x}_{#it{E}} for charged tracks, track BC==0",
2209 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2214 new TH2F(
"hXEUeChargedBC0",
"#it{x}_{#it{E}} for Underlying Event, track BC==0",
2215 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2220 new TH2F(
"hZTChargedBC0",
"#it{z}_{T} for charged tracks, track BC==0",
2221 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2226 new TH2F(
"hZTUeChargedBC0",
"#it{z}_{T} for Underlying Event, track BC==0",
2227 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2239 fhPtTriggerVtxBC0 =
new TH1F(
"hPtTriggerVtxBC0",
"#it{p}_{T} distribution of trigger particles", nptbins,ptmin,ptmax);
2243 (
"hDeltaPhiChargedVtxBC0",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, track BC==0",
2244 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2249 (
"hDeltaPhiChargedPtA3GeVVtxBC0",
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, track BC==0",
2250 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2255 new TH2F(
"hPtTrigChargedVtxBC0",
"trigger and charged tracks pt distribution, track BC==0",
2256 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2261 new TH2F(
"hXEChargedVtxBC0",
"#it{x}_{#it{E}} for charged tracks, track BC==0",
2262 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2267 new TH2F(
"hXEUeChargedVtxBC0",
"#it{x}_{#it{E}} for Underlying Event, track BC==0",
2268 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2273 new TH2F(
"hZTChargedVtxBC0",
"#it{z}_{T} for charged tracks, track BC==0",
2274 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2279 new TH2F(
"hZTUeChargedVtxBC0",
"#it{z}_{T} for Underlying Event, track BC==0",
2280 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2293 for(
Int_t i = 0 ; i < 7 ; i++)
2296 Form(
"#it{p}_{T} distribution of trigger particles, %s Pile-Up event",pileUpName[i].
Data()), nptbins,ptmin,ptmax);
2301 Form(
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, %s Pile-Up event",pileUpName[i].
Data()),
2302 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2308 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()),
2309 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2315 Form(
"#eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger}, %s Pile-Up event",pileUpName[i].
Data()),
2316 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
2322 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()),
2323 nptbins,ptmin,ptmax,ndeltaetabins,deltaetamin,deltaetamax);
2329 Form(
"#it{x}_{#it{E}} for charged tracks, %s Pile-Up event",pileUpName[i].
Data()),
2330 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2336 Form(
"#it{x}_{#it{E}} for Underlying Event, %s Pile-Up event",pileUpName[i].
Data()),
2337 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2343 Form(
"#it{z}_{T} for charged tracks, %s Pile-Up event",pileUpName[i].
Data()),
2344 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2350 Form(
"#it{z}_{T} for Underlying Event, %s Pile-Up event",pileUpName[i].
Data()),
2351 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2357 Form(
"trigger and charged tracks pt distribution, %s Pile-Up event",pileUpName[i].
Data()),
2358 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
2375 for(
Int_t im=0; im<nMultiBins; im++)
2378 (Form(
"hDeltaPhiCharged_Mult%d",im),Form(
"#Delta #varphi charged Mult bin %d",im), nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2383 (Form(
"hDeltaEtaCharged_Mult%d",im),Form(
"#Delta #eta charged Mult bin %d",im), nptbins,ptmin,ptmax, ndeltaetabins ,deltaetamin,deltaetamax);
2388 (Form(
"hXECharged_Mult%d",im),Form(
"#it{x}_{E} charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2389 fhXEMult[im]->SetYTitle(
"#it{x}_{E}");
2390 fhXEMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2393 (Form(
"hXEUeCharged_Mult%d",im),Form(
"#it{x}_{E} UE charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2395 fhXEUeMult[im]->SetXTitle(
"#it{p}_{T trigger}(GeV/#it{c})");
2398 (Form(
"hZTCharged_Mult%d",im),Form(
"#it{z}_{T} charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2399 fhZTMult[im]->SetYTitle(
"#it{z}_{T}");
2400 fhZTMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2403 (Form(
"hZTUeCharged_Mult%d",im),Form(
"#it{z}_{T} UE charged Mult bin %d",im), nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2405 fhZTUeMult[im]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2409 outputContainer->Add(
fhXEMult [im]);
2411 outputContainer->Add(
fhZTMult [im]);
2418 fhAssocPtBkg =
new TH2F(
"hAssocPtBkg",
" Trigger #it{p}_{T} vs associated hadron #it{p}_{T} from background",
2419 nptbins, ptmin, ptmax,nptbins,ptmin,ptmax);
2420 fhAssocPtBkg->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2421 fhAssocPtBkg->SetYTitle(
"#it{p}_{T associated} (GeV/#it{c})");
2424 fhDeltaPhiBrad =
new TH2F(
"hDeltaPhiBrad",
"atan2(sin(#Delta #varphi), cos(#Delta #varphi))/#pi vs #it{p}_{T trigger} ",
2425 nptbins, ptmin, ptmax,288, -1.0/3.0, 5.0/3.0);
2427 fhDeltaPhiBrad->SetYTitle(
"atan2(sin(#Delta #varphi), cos(#Delta #varphi))/#pi");
2464 for(
Int_t z = 0 ; z < nz ; z++)
2470 sz = Form(
"_vz%d",z);
2471 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
2478 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins,deltaetamin,deltaetamax);
2484 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2494 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()),
2495 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2500 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()),
2501 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2513 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2523 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()),
2524 nptbins, ptmin, ptmax,288, -1.0/3.0, 5.0/3.0);
2533 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()),
2534 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2539 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()),
2540 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2556 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2562 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2574 for(
Int_t z = 0 ; z < nz ; z++)
2576 sz = Form(
"_vz%d",z);
2577 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
2579 fhXEVZ[z] =
new TH2F(Form(
"hXE%s", sz.Data()),
2580 Form(
"#it{x}_{#it{E}} vs #it{p}_{T trigger}%s", tz.Data()),
2581 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2582 fhXEVZ[z]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2583 fhXEVZ[z]->SetYTitle(
"#it{x}_{#it{E}}");
2585 fhZTVZ[z] =
new TH2F(Form(
"hZT%s",sz.Data()),
2586 Form(
"#it{z}_{T} vs #it{p}_{T trigger}%s", tz.Data()),
2587 nptbins, ptmin, ptmax,nxeztbins,xeztmin,xeztmax);
2588 fhZTVZ[z]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2589 fhZTVZ[z]->SetYTitle(
"#it{z}_{T}");
2591 outputContainer->Add(
fhXEVZ[z]);
2592 outputContainer->Add(
fhZTVZ[z]);
2599 (
"hPtPi0DecayRatio",
"#it{p}_{T} of #pi^{0} and the ratio of pt for two decay",
2600 nptbins,ptmin,ptmax, 100,0.,2.);
2606 (
"hDeltaPhiPi0DecayCharged",
"#varphi_{Decay} - #varphi_{h^{#pm}} vs #it{p}_{T Decay}",
2607 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2612 new TH2F(
"hXEPi0DecayCharged",
"#it{x}_{#it{E}} Decay",
2613 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2618 new TH2F(
"hZTPi0DecayCharged",
"#it{z}_{trigger h^{#pm}} = #it{p}_{T h^{#pm}} / #it{p}_{T Decay}",
2619 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2633 (Form(
"hDeltaPhiDecayCharged_bit%d",
fDecayBits[ibit]),
2634 Form(
"#varphi_{Decay} - #varphi_{h^{#pm}} vs #it{p}_{T Decay}, Bit %d",
fDecayBits[ibit]),
2635 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2641 Form(
"#it{x}_{#it{E}} Decay, Bit %d",
fDecayBits[ibit]),
2642 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2648 Form(
"#it{z}_{trigger h^{#pm}} = #it{p}_{T h^{#pm}} / #it{p}_{T Decay}, Bit %d",
fDecayBits[ibit]),
2649 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2663 (
"hDeltaPhiDeltaEtaNeutral",
"#varphi_{trigger} - #varphi_{h^{0}} vs #eta_{trigger} - #eta_{h^{0}}",
2664 ndeltaphibins ,deltaphimin,deltaphimax, ndeltaetabins ,deltaetamin,deltaetamax);
2669 (
"hPhiNeutral",
"#varphi_{#pi^{0}} vs #it{p}_{T #pi^{0}}",
2670 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
2672 fhPhiNeutral->SetXTitle(
"#it{p}_{T #pi^{0}} (GeV/#it{c})");
2675 (
"hEtaNeutral",
"#eta_{#pi^{0}} vs #it{p}_{T #pi^{0}}",
2676 nptbins,ptmin,ptmax,200,-1.,1.);
2678 fhEtaNeutral->SetXTitle(
"#it{p}_{T #pi^{0}} (GeV/#it{c})");
2681 (
"hDeltaPhiNeutral",
"#varphi_{trigger} - #varphi_{#pi^{0}} vs #it{p}_{T trigger}",
2682 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2687 (
"hDeltaPhiNeutralPt",
"#varphi_{trigger} - #varphi_{#pi^{0}} vs #it{p}_{T #pi^{0}}}",
2688 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2693 (
"hDeltaEtaNeutral",
"#eta_{trigger} - #eta_{#pi^{0}} vs #it{p}_{T trigger}",
2694 nptbins,ptmin,ptmax, ndeltaetabins ,deltaetamin,deltaetamax);
2699 new TH2F(
"hXENeutral",
"#it{x}_{#it{E}} for #pi^{0} associated",
2700 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2702 fhXENeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2705 new TH2F(
"hHbpXENeutral",
"#xi = ln(1/#it{x}_{#it{E}})for #pi^{0} associated",
2706 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2711 new TH2F(
"hZTNeutral",
"#it{z}_{trigger #pi} = #it{p}_{T #pi^{0}} / #it{p}_{T trigger} for #pi^{0} associated",
2712 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2713 fhZTNeutral->SetYTitle(
"#it{z}_{trigger #pi^{0}}");
2714 fhZTNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2717 new TH2F(
"hHbpZTNeutral",
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2718 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2734 (Form(
"hDeltaPhiUe%sNeutralPt",right.Data()),
"#varphi_{trigger} - #varphi_{#pi^{0}} vs #it{p}_{T #pi^{0}}}",
2735 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2740 new TH2F(Form(
"hXEUeNeutral%s",right.Data()),
"#it{x}_{#it{E}} for #pi^{0} associated",
2741 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2743 fhXEUeNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2746 new TH2F(Form(
"hHbpXEUeNeutral%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2747 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2752 new TH2F(Form(
"hZTUeNeutral%s",right.Data()),
"#it{z}_{trigger #pi} = #it{p}_{T #pi^{0}} / #it{p}_{T trigger} for #pi^{0} associated",
2753 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2755 fhZTUeNeutral->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2758 new TH2F(Form(
"hHbpZTUeNeutral%s",right.Data()),
"#xi = ln(1/#it{x}_{#it{E}}) for #pi^{0} associated",
2759 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2772 (
"hDeltaPhiUeLeftNeutralPt",
"#varphi_{trigger} - #varphi_{#Ueh^{0}} vs #it{p}_{T h^{0}} with neutral UE left side range of trigger particles",
2773 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2779 new TH2F(
"hXEUeNeutralLeft",
"#it{x}_{#it{E}} = #it{p}_{T Ueh^{0}} / #it{p}_{T trigger} with neutral UE left side of trigger",
2780 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2786 new TH2F(
"hHbpXEUeNeutralLeft",
"#xi = ln(1/#it{x}_{#it{E}}) with neutral UE left side of trigger",
2787 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2793 new TH2F(
"hZTUeNeutralLeft",
"#it{z}_{trigger h^{0}} = #it{p}_{T Ueh^{0}} / #it{p}_{T trigger} with neutral UE left side of trigger",
2794 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2800 new TH2F(
"hHbpZTUeNeutralLeft",
"#xi = ln(1/#it{z}_{T}) with neutral UE left side of trigger",
2801 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2810 (
"hDeltaPhiPi0DecayNeutral",
"#varphi_{Decay} - #varphi_{h^{0}} vs #it{p}_{T Decay}",
2811 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
2816 new TH2F(
"hXEPi0DecayNeutral",
"#it{x}_{#it{E}} for decay trigger",
2817 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2822 new TH2F(
"hZTPi0DecayNeutral",
"#it{z}_{trigger h^{0}} = #it{p}_{T h^{0}} / #it{p}_{T Decay}",
2823 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2839 Form(
"MC %s: generated trigger #it{p}_{T}",nameMC[i].
Data()),
2840 nptbins,ptmin,ptmax);
2841 fhMCPtTrigger[i]->SetXTitle(
"#it{p}_{T}^{trig} (GeV/#it{c})");
2844 Form(
"MC %s: generated trigger #varphi",nameMC[i].
Data()),
2845 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
2850 Form(
"MC %s: generated trigger #eta",nameMC[i].
Data()),
2851 nptbins,ptmin,ptmax, netabins,etamin,etamax);
2858 Form(
"MC %s: generated trigger #it{p}_{T}, when not leading of primaries",nameMC[i].
Data()),
2859 nptbins,ptmin,ptmax);
2863 Form(
"MC %s: generated trigger #varphi, when not leading of primaries",nameMC[i].
Data()),
2864 nptbins,ptmin,ptmax, nphibins,phimin,phimax);
2870 Form(
"MC %s: generated triogger #eta, when not leading of primaries",nameMC[i].
Data()),
2871 nptbins,ptmin,ptmax, netabins,etamin,etamax);
2877 Form(
"MC %s: #eta_{h^{#pm}} vs #it{p}_{T #pm}",nameMC[i].
Data()),
2878 nptbins,ptmin,ptmax,100,-1.,1.);
2883 Form(
"MC %s: phi_{h^{#pm}} vs #it{p}_{T #pm}",nameMC[i].
Data()),
2884 nptbins,ptmin,ptmax,180,0,TMath::TwoPi());
2889 Form(
"MC %s: phi_{trigger} - #varphi_{h^{#pm}} vs #eta_{trigger} - #eta_{h^{#pm}}",nameMC[i].
Data()),
2890 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
2895 Form(
"MC %s: #eta_{trigger} - #eta_{h^{#pm}} vs #it{p}_{T trigger} and #it{p}_{T assoc}",nameMC[i].
Data()),
2896 nptbins,ptmin,ptmax,ndeltaetabins ,deltaetamin,deltaetamax);
2901 Form(
"MC %s: #varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}",nameMC[i].
Data()),
2902 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2907 Form(
"MC %s: #varphi_{trigger} - #varphi_{#h^{#pm}} vs #it{p}_{T h^{#pm}}",nameMC[i].
Data()),
2908 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2913 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons",nameMC[i].
Data()),
2914 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2919 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",nameMC[i].
Data()),
2920 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2925 Form(
"MC %s: #it{z}_{T} with charged hadrons",nameMC[i].
Data()),
2926 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2931 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons",nameMC[i].
Data()),
2932 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2937 Form(
"MC %s: #it{p}_{out} with triggers",nameMC[i].
Data()),
2938 nptbins,ptmin,ptmax,nptbins,-1.*ptmax/2.,ptmax/2.);
2943 Form(
"MC %s: #Delta #varphi with associated charged hadrons",nameMC[i].
Data()),
2944 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
2976 new TH1F(Form(
"hMCUePart_%s",nameMC[i].
Data()),
2977 Form(
"MC %s: UE particles distribution vs #it{p}_{T trigger}",nameMC[i].
Data()),
2978 nptbins,ptmin,ptmax);
2980 fhMCUePart[i]->SetXTitle(
"#it{p}_{T trigger} (GeV/#it{c})");
2983 new TH2F(Form(
"hMCPtXEUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2984 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2985 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
2990 new TH2F(Form(
"hMCPtHbpXEUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2991 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2992 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
2997 new TH2F(Form(
"hMCPtZTUeCharged%s_%s",right.Data(),nameMC[i].Data()),
2998 Form(
"MC %s: #it{z}_{T} with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
2999 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3004 new TH2F(Form(
"hMCPtHbpZTUeCharged%s_%s",right.Data(),nameMC[i].Data()),
3005 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons, Underlying Event %s",nameMC[i].
Data(),right.Data()),
3006 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3019 Form(
"MC %s: #it{x}_{#it{E}} with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3020 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3025 Form(
"MC %s: #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3026 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3031 Form(
"MC %s: #it{z}_{T} with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3032 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3037 Form(
"MC %s: #xi = ln(1/#it{z}_{T}) with charged hadrons, with UE left side range of trigger particles",nameMC[i].
Data()),
3038 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3063 for(
Int_t ice = 0 ; ice < nce ; ice++ )
3065 for(
Int_t ivz = 0 ; ivz < nvz ; ivz++ )
3067 for(
Int_t irp = 0 ; irp < nrp ; irp++ )
3081 fhPtTriggerMixed =
new TH1F (
"hPtTriggerMixed",
"#it{p}_{T} distribution of trigger particles, used for mixing", nptbins,ptmin,ptmax);
3092 fhPtTriggerMixedBin =
new TH2F (
"hPtTriggerMixedBin",
"#it{p}_{T} distribution of trigger particles vs mixing bin", nptbins,ptmin,ptmax,nMixBins,0,nMixBins);
3096 fhPhiTriggerMixed =
new TH2F (
"hPhiTriggerMixed",
"#varphi distribution of trigger Particles, used for mixing",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
3099 fhEtaTriggerMixed =
new TH2F (
"hEtaTriggerMixed",
"#eta distribution of trigger, used for mixing",nptbins,ptmin,ptmax, netabins,etamin,etamax);
3116 for(
Int_t ice = 0 ; ice < nce ; ice++ )
3118 for(
Int_t ivz = 0 ; ivz < nvz ; ivz++ )
3120 for(
Int_t irp = 0 ; irp < nrp ; irp++ )
3137 if( !
GetReader()->ListWithMixedEventsForTracksExists() )
3140 if( !
GetReader()->ListWithMixedEventsForCaloExists() )
3144 fhEventBin=
new TH1I(
"hEventBin",
"Number of triggers per bin(cen,vz,rp)",
3150 fhEventMixBin=
new TH1I(
"hEventMixBin",
"Number of triggers mixed per event bin(cen,vz,rp)",
3156 fhEventMBBin=
new TH1I(
"hEventMBBin",
"Number of min bias events per bin(cen,vz,rp)",
3162 fhNtracksMB=
new TH2F(
"hNtracksMBEvent",
"Number of filtered tracks in MB event per event bin",ntrbins,trmin,trmax,
3171 fhNclustersMB=
new TH2F(
"hNclustersMBEvent",
"Number of filtered clusters in MB events per event bin",nclbins,clmin,clmax,
3180 (
"hMixDeltaPhiCharged",
"Mixed event : #varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}",
3181 nptbins,ptmin,ptmax,ndeltaphibins ,deltaphimin,deltaphimax);
3187 (
"hMixDeltaPhiDeltaEtaCharged",
"Mixed event : #varphi_{trigger} - #varphi_{h^{#pm}} vs #eta_{trigger} - #eta_{h^{#pm}}",
3188 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
3194 new TH2F(
"hMixXECharged",
"Mixed event : #it{x}_{#it{E}} for charged tracks",
3195 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3201 new TH2F(
"hMixXEUeCharged",
"Mixed event : #it{x}_{#it{E}} for charged tracks in Ue region",
3202 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3208 new TH2F(
"hMixHbpXECharged",
"mixed event : #xi = ln(1/#it{x}_{#it{E}}) with charged hadrons",
3209 nptbins,ptmin,ptmax,nhbpbins,hbpmin,hbpmax);
3221 for(
Int_t z = 0 ; z < nz ; z++)
3227 sz = Form(
"_vz%d",z);
3228 tz = Form(
", #it{v}_{#it{z}} bin %d",z);
3234 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()),
3235 ndeltaphibins ,deltaphimin,deltaphimax,ndeltaetabins ,deltaetamin,deltaetamax);
3242 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()),
3243 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3252 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()),
3253 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3258 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()),
3259 nptbins, ptmin, ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3274 fhPtTriggerPerSM =
new TH2F(
"hPtTriggerPerSM",
"Selected triggers #it{p}_{T} and super-module number",
3275 nptbins,ptmin,ptmax,
3283 if ( ism < fFirstModule || ism >
fLastModule )
continue;
3286 (Form(
"hXECharged_SM%d",ism),Form(
"#it{x}_{#it{E}} for charged tracks, SM %d",ism),
3287 nptbins,ptmin,ptmax,nxeztbins,xeztmin,xeztmax);
3293 (Form(
"hXEUeCharged%s_SM%d",right.Data(),ism),Form(
"#it{x}_{#it{E}} for Underlying event, SM %d",ism),
3300 (Form(
"hDeltaPhiCharged_SM%d",ism),
3301 Form(
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, SM %d",ism),
3302 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3308 (Form(
"hDeltaPhiChargedPtA3GeV_SM%d",ism),
3309 Form(
"#varphi_{trigger} - #varphi_{h^{#pm}} vs #it{p}_{T trigger}, #it{p}_{TA}>3 GeV/#it{c}, SM %d",ism),
3310 nptbins,ptmin,ptmax, ndeltaphibins ,deltaphimin,deltaphimax);
3317 return outputContainer;
3331 if(indexPhoton1!=-1 || indexPhoton2!=-1)
return kFALSE;
3333 AliDebug(1,Form(
"indexPhoton1 = %d, indexPhoton2 = %d", indexPhoton1, indexPhoton2));
3339 for(
Int_t iclus = 0; iclus < clusters->GetEntriesFast(); iclus++)
3341 AliVCluster * photon = (AliVCluster*) (clusters->At(iclus));
3376 AliFatal(
"STOP!: You want to use CTS tracks in analysis but not read!! \n!!Check the configuration file!!");
3482 for(
Int_t iphoton = 0; iphoton < nphoton; iphoton++)
3536 if(check == 0)
continue;
3537 if(check == -1)
return kFALSE;
3540 if (particle->
Pt() > ptTrig)
3542 ptTrig = particle->
Pt() ;
3543 phiTrig = particle->
Phi();
3545 pLeading = particle ;
3549 if(index < 0)
return kFALSE;
3553 if(phiTrig < 0 ) phiTrig += TMath::TwoPi();
3559 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
3567 Bool_t contained = kFALSE;
3569 for(
Int_t i = 0; i < 4; i++)
3571 if( trackID == pLeading->
GetTrackLabel(i) ) contained = kTRUE;
3574 if ( contained ) continue ;
3577 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
3580 if(phi < 0) phi+=TMath::TwoPi();
3585 Float_t deltaPhi = phiTrig-phi;
3586 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
3587 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
3589 if(pt > ptTrig && deltaPhi < TMath::PiOver2())
return kFALSE;
3594 if(pt > ptTrig)
return kFALSE ;
3609 if(!nePl)
return kTRUE;
3611 for(
Int_t ipr = 0;ipr < nePl->GetEntriesFast() ; ipr ++ )
3613 AliVCluster * cluster = (AliVCluster *) (nePl->At(ipr)) ;
3621 if(phi < 0) phi+=TMath::TwoPi();
3629 Float_t deltaPhi = phiTrig-phi;
3630 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
3631 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
3633 if(pt > ptTrig && deltaPhi < TMath::PiOver2())
return kFALSE ;
3638 if(pt > ptTrig)
return kFALSE ;
3646 AliDebug(1,Form(
"\t particle AOD with index %d is leading with pT %2.2f",
fLeadingTriggerIndex, pLeading->
Pt()));
3670 AliFatal(Form(
"No input particles in AOD with name branch < %s >, STOP",
GetInputAODName().
Data()));
3677 AliDebug(1,
"No particle AOD found!");
3681 AliDebug(1,Form(
"Begin hadron correlation analysis, fill histograms"));
3682 AliDebug(1,Form(
"n particle branch aod entries %d", naod));
3683 AliDebug(1,Form(
"In CTS aod entries %d",
GetCTSTracks()->GetEntriesFast()));
3698 AliDebug(1,
"Leading was requested and not found");
3722 for( iaod = 0; iaod < naod; iaod++ )
3742 AliDebug(1,Form(
"%s Trigger : min %f, max %f, det %d",
3765 AliDebug(1,
"Pass the shower shape cut");
3778 AliDebug(1,
"Pass the isolation cut");
3788 if(! in ) continue ;
3790 AliDebug(1,
"Pass the fiducial cut");
3800 Bool_t okLeadHad = kTRUE;
3815 Bool_t lostDecayPair = kFALSE;
3862 Float_t pTLeadTrackInCone = 0;
3864 Float_t pTLeadClusterInCone = 0;
3865 Float_t pTSumClusterInCone = 0;
3873 Float_t pTLeadInCone = pTLeadTrackInCone;
3874 if(pTLeadClusterInCone > pTLeadInCone) pTLeadInCone = pTLeadClusterInCone;
3875 Float_t pTSumInCone = pTSumTrackInCone + pTSumClusterInCone;
3878 Int_t pTSumBin = -1;
3879 Int_t pTLeadBin = -1;
3900 if(decayTag < 0) decayTag = 0;
3958 AliFatal(Form(
"Lost decay Bit assigned to bad case, mcIndex %d",mcIndex));
3981 if(decayTag < 0) decayTag = 0;
4007 if( phi < 0 ) phi+=TMath::TwoPi();
4047 AliDebug(1,
"End fill histograms");
4059 AliDebug(1,
"Make trigger particle - charged hadron correlation");
4072 decayTag = aodParticle->
DecayTag();
4073 if(decayTag < 0) decayTag = 0;
4091 Int_t evtIndex11 = -1 ;
4092 Int_t evtIndex12 = -1 ;
4093 Int_t evtIndex13 = -1 ;
4111 Bool_t decayFound = kFALSE;
4128 AliVTrack * track = (AliVTrack *) (
GetCTSTracks()->At(ipr)) ;
4130 fTrackVector.SetXYZ(track->Px(),track->Py(),track->Pz());
4134 if(phi < 0) phi+=TMath::TwoPi();
4137 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
4145 Bool_t contained = kFALSE;
4147 for(
Int_t i = 0; i < 4; i++)
4149 if( trackID == aodParticle->
GetTrackLabel(i) ) contained = kTRUE;
4152 if ( contained ) continue ;
4156 Int_t evtIndex2 = 0 ;
4160 if (evtIndex11 == evtIndex2 || evtIndex12 == evtIndex2 || evtIndex13 == evtIndex2 )
4167 AliDebug(2,Form(
"Selected charge for momentum imbalance: pt %2.2f, phi %2.2f, eta %2.2f",pt,phi,eta));
4176 Int_t assocBin = -1;
4195 Int_t bin = assocBin*nz+vz;
4202 ULong_t status = track->GetStatus();
4203 Bool_t okTOF = ( (status & AliVTrack::kTOFout) == AliVTrack::kTOFout ) ;
4205 Int_t trackBC = track->GetTOFBunchCrossing(bz);
4208 if (okTOF && trackBC!=0) outTOF = 1;
4209 else if(okTOF && trackBC==0) outTOF = 0;
4218 deltaPhi = phiTrig-phi;
4225 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4226 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4229 eta, etaTrig, sm, decayTag, track->GetHMPIDsignal(),
4230 outTOF, cenbin, mcTag);
4236 AliESDtrack * esdTrack =
dynamic_cast<AliESDtrack*
>(track);
4251 assocBin, decayTag, outTOF, mcTag);
4290 reftracks->SetName(trackname.Data());
4291 reftracks->SetOwner(kFALSE);
4294 reftracks->Add(track);
4310 AliDebug(1,Form(
"Make trigger particle - charged hadron mixed event correlation"));
4319 AliInputEventHandler * inputHandler =
dynamic_cast<AliInputEventHandler*
>(manager->GetInputEventHandler());
4321 if(!inputHandler)
return;
4329 if(eventBin < 0)
return;
4338 TList * poolCalo = 0;
4352 if( neutralMix && !poolCalo )
4353 AliWarning(
"Careful, cluster pool not available");
4358 if(phiTrig < 0.) phiTrig+=TMath::TwoPi();
4360 AliDebug(1,Form(
"Pool bin %d size %d, trigger trigger pt=%f, phi=%f, eta=%f",
4361 eventBin,pool->GetSize(), ptTrig,phiTrig,etaTrig));
4374 for(
Int_t ev=ev0; ev < pool->GetSize(); ev++)
4383 if( neutralMix && poolCalo )
4385 if(pool->GetSize()!=poolCalo->GetSize())
4386 AliWarning(
"Different size of calo and track pools");
4388 bgCalo =
static_cast<TObjArray*
>(poolCalo->At(ev));
4390 if(!bgCalo) AliDebug(1,Form(
"Event %d in calo pool not available?",ev));
4398 Int_t n=0, nfrac = 0;
4399 Bool_t isolated = kFALSE;
4400 Float_t coneptsum = 0, coneptlead = 0;
4403 kFALSE, aodParticle,
"",
4404 n,nfrac,coneptsum,coneptlead,isolated);
4411 if(!isolated) continue ;
4417 Int_t nTracks=bgTracks->GetEntriesFast();
4422 for(
Int_t jlead = 0;jlead < nTracks; jlead++ )
4426 ptAssoc = track->
Pt();
4427 phiAssoc = track->
Phi() ;
4428 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4432 deltaPhi = phiTrig-phiAssoc;
4433 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4434 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4436 if(ptAssoc > ptTrig && deltaPhi < TMath::PiOver2())
4445 if(ptAssoc > ptTrig)
4454 AliWarning(
"Leading of clusters requested but no clusters in mixed event");
4458 Int_t nClusters=bgCalo->GetEntriesFast();
4459 for(
Int_t jlead = 0;jlead <nClusters; jlead++ )
4463 ptAssoc = cluster->
Pt();
4464 phiAssoc = cluster->
Phi() ;
4465 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4469 deltaPhi = phiTrig-phiAssoc;
4470 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4471 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4473 if(ptAssoc > ptTrig && deltaPhi < TMath::PiOver2())
4482 if(ptAssoc > ptTrig)
4491 if(!leading)
continue;
4512 for(
Int_t j1 = 0;j1 <nTracks; j1++ )
4516 if(!track)
continue;
4518 ptAssoc = track->
Pt();
4519 etaAssoc = track->
Eta();
4520 phiAssoc = track->
Phi() ;
4521 if(phiAssoc < 0) phiAssoc+=TMath::TwoPi();
4523 deltaPhi = phiTrig-phiAssoc;
4524 if(deltaPhi < -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4525 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4526 deltaEta = etaTrig-etaAssoc;
4528 AliDebug(1,Form(
"deltaPhi= %f, deltaEta=%f",deltaPhi, deltaEta));
4539 xE = -ptAssoc/ptTrig*TMath::Cos(deltaPhi);
4542 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4556 Double_t uexE = -(ptAssoc/ptTrig)*TMath::Cos(randomphi);
4559 AliWarning(Form(
"Careful!!, negative xE %2.2f for left UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4566 Int_t assocBin = -1;
4584 Int_t bin = assocBin*nz+vz;
4586 if(bin < 0) continue ;
4593 if(TMath::Abs(deltaEta) > 0.8)
4595 if(TMath::Abs(deltaEta) < 0.01)
4610 if(!pi0list) return ;
4612 Int_t npi0 = pi0list->GetEntriesFast();
4613 if(npi0 == 0) return ;
4615 AliDebug(1,Form(
"Particle - pi0 correlation, %d pi0's",npi0));
4617 Int_t evtIndex11 = 0 ;
4618 Int_t evtIndex12 = 0 ;
4642 Bool_t decayFound = kFALSE;
4650 for(
Int_t iaod = 0; iaod < npi0 ; iaod++)
4654 Int_t evtIndex2 = 0 ;
4655 Int_t evtIndex3 = 0 ;
4661 if (evtIndex11 == evtIndex2 || evtIndex12 == evtIndex2 ||
4662 evtIndex11 == evtIndex3 || evtIndex12 == evtIndex3)
4668 if(pt < fMinAssocPt || pt >
fMaxAssocPt) continue ;
4682 deltaEta = etaTrig-eta;
4683 deltaPhi = phiTrig-phi;
4684 if(deltaPhi <= -TMath::PiOver2()) deltaPhi+=TMath::TwoPi();
4685 if(deltaPhi > 3*TMath::PiOver2()) deltaPhi-=TMath::TwoPi();
4702 if(zT > 0 ) hbpZT = TMath::Log(1./zT);
4707 xE =-pt/ptTrig*TMath::Cos(deltaPhi);
4710 AliWarning(Form(
"Careful!!, negative xE %2.2f for right UE cos(dPhi %2.2f) = %2.2f, check correlation dPhi limits %f to %f",
4713 if( xE > 0 ) hbpXE = TMath::Log(1./xE);
4726 xE = -(pt/ptTrig)*TMath::Cos(randomphi);
4727 if(xE > 0 ) hbpXE = TMath::Log(1./xE);
4753 refpi0->SetOwner(kFALSE);
4758 AliDebug(1,Form(
"Selected pi0: pt %2.2f, phi %2.2f, eta %2.2f",pt,phi,eta));
4774 AliDebug(1,
"Make trigger particle - charged hadron correlation in AOD MC level");
4778 AliDebug(1,Form(
" *** bad label ***: label %d", label));
4784 AliFatal(
"Stack not available, is the MC handler called? STOP");
4789 Int_t nTracks =
GetMC()->GetNumberOfPrimaries();
4791 if( label >= nTracks )
4794 AliInfo(Form(
" *** large label ***: label %d, n prim tracks %d", label,nTracks));