AliPhysics  master (3d17d9d)
AliAnaParticleIsolation.cxx
Go to the documentation of this file.
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  * *
4  * Author: The ALICE Off-line Project. *
5  * Contributors are mentioned in the code where appropriate. *
6  * *
7  * Permission to use, copy, modify and distribute this software and its *
8  * documentation strictly for non-commercial purposes hereby granted *
9  * without fee, provided that the above copyright notice appears in all *
10  * copies and that both the copyright notice and this permission notice *
11  * appear in the supporting documentation. The authors make no claims *
12  * about the suitability of this software for any purpose. It is *
13  * provided "as is" without express or implied warranty. *
14  **************************************************************************/
15 
16 // --- ROOT system ---
17 #include <TClonesArray.h>
18 #include <TList.h>
19 #include <TObjString.h>
20 #include <TH2F.h>
21 #include <TH3F.h>
22 #include <TClass.h>
23 #include <TH2F.h>
24 #include "TDatabasePDG.h"
25 #include <TCustomBinning.h>
26 
27 // --- Analysis system ---
29 #include "AliCaloTrackReader.h"
30 #include "AliMCEvent.h"
31 #include "AliIsolationCut.h"
32 #include "AliFiducialCut.h"
33 #include "AliMCAnalysisUtils.h"
35 #include "AliVParticle.h"
37 #include "AliMCAnalysisUtils.h"
38 #include "AliVTrack.h"
39 #include "AliVCluster.h"
40 #include "AliESDEvent.h"
41 #include "AliAODEvent.h"
42 
43 // --- Detectors ---
44 #include "AliEMCALGeometry.h"
45 #include "AliPHOSGeoUtils.h"
46 
48 ClassImp(AliAnaParticleIsolation) ;
50 
51 //__________________________________________________
53 //__________________________________________________
56 fIsoDetector(-1), fIsoDetectorString(""),
57 fReMakeIC(0), fMakeSeveralIC(0),
58 fFillTMHisto(0), fFillSSHisto(1),
59 fFillPerSMHistograms(0), fFillPerTCardIndexHistograms(0), fTCardIndex(-1),
60 fFillEMCALRegionHistograms(0),
61 fFillOverlapHistograms(0),
62 fStudyTracksInCone(0), fStudyMCConversionRadius(0),
63 fFillTaggedDecayHistograms(0), fNDecayBits(0),
64 fDecayBits(), fDecayTagsM02Cut(0),
65 fFillNLMHistograms(0),
66 fLeadingOnly(0), fCheckLeadingWithNeutralClusters(0),
67 fSelectPrimariesInCone(0), fMakePrimaryPi0DecayStudy(0),
68 fFillBackgroundBinHistograms(0), fNBkgBin(0),
69 fFillPtTrigBinHistograms(0), fNPtTrigBin(0),
70 fMinCellsAngleOverlap(0),
71 // Several IC
72 fNCones(0), fNPtThresFrac(0),
73 fConeSizes(), fPtThresholds(),
74 fPtFractions(), fSumPtThresholds(),
75 fStudyPtCutInCone(0), fNPtCutsInCone(0),
76 fMinPtCutInCone(), fMaxPtCutInCone(),
77 fStudyEtaCutInCone(0), fNEtaCutsInCone(0), fEtaCutInCone(),
78 fStudyRCutInCone(0), fNRCutsInCone(0), fRCutInCone(),
79 fStudyNCellsCut(0), fNNCellsInCandidate(0), fNCellsInCandidate(),
80 fNCellsWithWeight(0), fTrigSupMod(-1),
81 fStudyExoticTrigger(0), fNExoCutInCandidate(0), fExoCutInCandidate(),
82 fMomentum(), fMomIso(),
83 fMomDaugh1(), fMomDaugh2(),
84 fTrackVector(), fProdVertex(),
85 fCluster(0), fClustersArr(0), fCaloCells(0),
86 fIsExoticTrigger(0), fClusterExoticity(1),
87 // Histograms
88 fhEIso(0), fhPtIso(0),
89 fhPtCentralityIso(0), fhPtEventPlaneIso(0),
90 fhPtNLocMaxIso(0),
91 fhPhiIso(0), fhEtaIso(0), fhEtaPhiIso(0),
92 fhEtaPhiNoIso(0),
93 fhENoIso(0), fhPtNoIso(0), fhPtNLocMaxNoIso(0),
94 fhEIsoExoTrigger(0), fhENoIsoExoTrigger(0),
95 fhPtIsoExoTrigger(0), fhPtNoIsoExoTrigger(0),
96 fhPtInConeExoTrigger(0), fhPtClusterInConeExoTrigger(0), fhPtTrackInConeExoTrigger(0),
97 fhPtTrackInConeOtherBCPileUpSPD(0), fhPtTrackInConeVtxBC0(0),
98 fhPtTrackInConeBC0PileUpSPD(0),
99 fhPtInConePileUp(), fhPtInConeCent(0),
100 
101 fhPerpConeSumPtTOFBC0(0), fhPtInPerpConeTOFBC0(0),
102 fhEtaPhiInPerpConeTOFBC0(0),
103 
104 fhPtM02SumPtCone(0),
105 
106 fhConeSumPtExoTrigger(0), fhConeSumPtClusterExoTrigger(0), fhConeSumPtTrackExoTrigger(0),
107 
108 fhPtPrimMCPi0DecayPairOutOfCone(0),
109 fhPtPrimMCPi0DecayPairOutOfAcceptance(0),
110 fhPtPrimMCPi0DecayPairOutOfAcceptanceNoOverlap(0),
111 fhPtPrimMCPi0DecayPairAcceptInConeLowPt(0),
112 fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap(0),
113 fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE(0),
114 fhPtPrimMCPi0DecayPairNoOverlap(0),
115 fhPtPrimMCPi0DecayIsoPairOutOfCone(0),
116 fhPtPrimMCPi0DecayIsoPairOutOfAcceptance(0),
117 fhPtPrimMCPi0DecayIsoPairOutOfAcceptanceNoOverlap(0),
118 fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPt(0),
119 fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap(0),
120 fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE(0),
121 fhPtPrimMCPi0DecayIsoPairNoOverlap(0),
122 fhPtPrimMCPi0Overlap(0), fhPtPrimMCPi0IsoOverlap(0),
123 fhPtPrimMCEtaDecayPairOutOfCone(0),
124 fhPtPrimMCEtaDecayPairOutOfAcceptance(0),
125 fhPtPrimMCEtaDecayPairOutOfAcceptanceNoOverlap(0),
126 fhPtPrimMCEtaDecayPairAcceptInConeLowPt(0),
127 fhPtPrimMCEtaDecayPairAcceptInConeLowPtNoOverlap(0),
128 fhPtPrimMCEtaDecayPairAcceptInConeLowPtNoOverlapCaloE(0),
129 fhPtPrimMCEtaDecayPairNoOverlap(0),
130 fhPtPrimMCEtaDecayIsoPairOutOfCone(0),
131 fhPtPrimMCEtaDecayIsoPairOutOfAcceptance(0),
132 fhPtPrimMCEtaDecayIsoPairOutOfAcceptanceNoOverlap(0),
133 fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPt(0),
134 fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPtNoOverlap(0),
135 fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPtNoOverlapCaloE(0),
136 fhPtPrimMCEtaDecayIsoPairNoOverlap(0),
137 fhPtPrimMCEtaOverlap(0), fhPtPrimMCEtaIsoOverlap(0),
138 fhPtLeadConeBin(0), fhSumPtConeBin(0),
139 fhPtLeadConeBinMC(0), fhSumPtConeBinMC(0),
140 fhPtLeadConeBinDecay(0), fhSumPtConeBinDecay(0),
141 fhPtLeadConeBinLambda0(0), fhSumPtConeBinLambda0(0),
142 fhPtLeadConeBinLambda0MC(0), fhSumPtConeBinLambda0MC(0),
143 fhPtTrigBinPtLeadCone(0), fhPtTrigBinSumPtCone(0),
144 
145 fhPtTrigBinSumPtTrackCone(0), fhPtTrigBinSumPtClusterCone(0),
146 fhPtTrigBinPtLeadConeMC(0), fhPtTrigBinSumPtConeMC(0),
147 fhPtTrigBinSumPtTrackConeMC(0), fhPtTrigBinSumPtClusterConeMC(0),
148 fhPtTrigBinPtLeadConeDecay(0), fhPtTrigBinSumPtConeDecay(0),
149 fhPtTrigBinSumPtTrackConeDecay(0), fhPtTrigBinSumPtClusterConeDecay(0),
150 fhPtTrigBinLambda0vsPtLeadCone(0), fhPtTrigBinLambda0vsSumPtCone(0),
151 fhPtTrigBinLambda0vsSumPtTrackCone(0), fhPtTrigBinLambda0vsSumPtClusterCone(0),
152 fhPtTrigBinLambda0vsPtLeadConeMC(0), fhPtTrigBinLambda0vsSumPtConeMC(0),
153 fhPtTrigBinLambda0vsSumPtTrackConeMC(0), fhPtTrigBinLambda0vsSumPtClusterConeMC(0),
154 fhPtTrigBinLambda0vsSumPtConeMCNoOverlap(0),fhPtTrigBinLambda0vsSumPtTrackConeMCNoOverlap(0),
155 fhPtTrigBinLambda0vsSumPtClusterConeMCNoOverlap(0), fhPtTrigBinLambda0vsSumPtConeMC1Overlap(0),
156 fhPtTrigBinLambda0vsSumPtTrackConeMC1Overlap(0),fhPtTrigBinLambda0vsSumPtClusterConeMC1Overlap(0),
157 
158 
159 // Number of local maxima in cluster
160 fhNLocMax(),
161 fhELambda0LocMax1(), fhELambda1LocMax1(),
162 fhELambda0LocMax2(), fhELambda1LocMax2(),
163 fhELambda0LocMaxN(), fhELambda1LocMaxN(),
164 // PileUp
165 fhEIsoPileUp(), fhPtIsoPileUp(),
166 fhENoIsoPileUp(), fhPtNoIsoPileUp(),
167 fhTimeENoCut(0), fhTimeESPD(0), fhTimeESPDMulti(0),
168 fhTimeNPileUpVertSPD(0), fhTimeNPileUpVertTrack(0),
169 fhTimeNPileUpVertContributors(0),
170 fhTimePileUpMainVertexZDistance(0), fhTimePileUpMainVertexZDiamond(0),
171 
172 fhPtClusterInConePerRCut(0), fhPtClusterInConePerRCutLargePtTrig(0),
173 fhPtTrackInConePerRCut(0), fhPtTrackInConePerRCutLargePtTrig(0),
174 fhConeSumPtClusterPerRCut(0), fhConeSumPtClusterPerRCutLargePtTrig(0),
175 fhConeSumPtTrackPerRCut(0), fhConeSumPtTrackPerRCutLargePtTrig(0),
176 fhConeNClusterPerMinPtCut(0), fhConeNClusterPerMinPtCutLargePtTrig(0),
177 fhConeNTrackPerMinPtCut(0), fhConeNTrackPerMinPtCutLargePtTrig(0),
178 fhPerpConeNTrackPerMinPtCut(0), fhPerpConeNTrackPerMinPtCutLargePtTrig(0),
179 fhConeSumPtClusterPerMinPtCut(0), fhConeSumPtClusterPerMinPtCutLargePtTrig(0),
180 fhConeSumPtTrackPerMinPtCut(0), fhConeSumPtTrackPerMinPtCutLargePtTrig(0),
181 fhPerpConeSumPtTrackPerMinPtCut(0), fhPerpConeSumPtTrackPerMinPtCutLargePtTrig(0),
182 fhConeSumPtClusterPerMaxPtCut(0), fhConeSumPtClusterPerMaxPtCutLargePtTrig(0),
183 fhConeSumPtTrackPerMaxPtCut(0), fhConeSumPtTrackPerMaxPtCutLargePtTrig(0),
184 fhConeSumPtTrackPerEtaCut(0), fhConeSumPtTrackPerEtaCutLargePtTrig(0),
185 
186 fhPtClusterInConePerNCellCut(0), fhPtClusterInConePerNCellCutLargePtTrig(0),
187 fhPtTrackInConePerNCellCut(0), fhPtTrackInConePerNCellCutLargePtTrig(0),
188 fhConeSumPtClusterPerNCellCut(0), fhConeSumPtClusterPerNCellCutLargePtTrig(0),
189 fhConeSumPtTrackPerNCellCut(0), fhConeSumPtTrackPerNCellCutLargePtTrig(0),
190 fhPtClusterInConePerExoCut(0), fhPtClusterInConePerExoCutLargePtTrig(0),
191 fhPtTrackInConePerExoCut(0), fhPtTrackInConePerExoCutLargePtTrig(0),
192 fhConeSumPtClusterPerExoCut(0), fhConeSumPtClusterPerExoCutLargePtTrig(0),
193 fhConeSumPtTrackPerExoCut(0), fhConeSumPtTrackPerExoCutLargePtTrig(0),
194 
195 fhConeSumPtTrackTOFBC0(0), fhConeSumPtTrackTOFBCN(0), fhConeSumPtTrackTOFNo(0),
196 fhPtTrackInConeTOFBC0 (0), fhPtTrackInConeTOFBCN (0), fhPtTrackInConeTOFNo (0),
197 fhPhiTrackInCone(0), fhEtaTrackInCone(0), fhEtaPhiTrackInCone(0),
198 fhPhiTrackInConeTOFBC0(0), fhPhiTrackInConeTOFBCN(0), fhPhiTrackInConeTOFNo(0),
199 fhEtaTrackInConeTOFBC0(0), fhEtaTrackInConeTOFBCN(0), fhEtaTrackInConeTOFNo(0),
200 fhEtaPhiTrackInConeTOFBC0(0), fhEtaPhiTrackInConeTOFBCN(0), fhEtaPhiTrackInConeTOFNo(0),
201 fhTrackTOFInCone(0), fhTrackTOFInConeBC0(0), fhTrackTOFInConeExoTrigger(0),
202 
203 fhConeSumPtTrackITSRefitOnSPDOn(0), fhConeSumPtTrackITSRefitOnSPDOff(0), fhConeSumPtTrackITSRefitOffSPDOff(0),
204 fhPtTrackInConeITSRefitOnSPDOn(0), fhPtTrackInConeITSRefitOnSPDOff(0) , fhPtTrackInConeITSRefitOffSPDOff(0),
205 fhPhiTrackInConeITSRefitOnSPDOn(0), fhPhiTrackInConeITSRefitOnSPDOff(0), fhPhiTrackInConeITSRefitOffSPDOff(0),
206 fhEtaTrackInConeITSRefitOnSPDOn(0), fhEtaTrackInConeITSRefitOnSPDOff(0), fhEtaTrackInConeITSRefitOffSPDOff(0),
207 fhEtaPhiTrackInConeITSRefitOnSPDOn(0),fhEtaPhiTrackInConeITSRefitOnSPDOff(0), fhEtaPhiTrackInConeITSRefitOffSPDOff(0),
208 fhConeSumPtTrackTOFBC0ITSRefitOnSPDOn(0), fhPtTrackInConeTOFBC0ITSRefitOnSPDOn(0),
209 fhPhiTrackInConeTOFBC0ITSRefitOnSPDOn(0), fhEtaTrackInConeTOFBC0ITSRefitOnSPDOn(0),fhEtaPhiTrackInConeTOFBC0ITSRefitOnSPDOn(0),
210 fhPerpConeSumPtITSRefitOnSPDOn (0), fhPtInPerpConeITSRefitOnSPDOn(0), fhEtaPhiInPerpConeITSRefitOnSPDOn(0),
211 fhPerpConeSumPtTOFBC0ITSRefitOnSPDOn (0), fhPtInPerpConeTOFBC0ITSRefitOnSPDOn (0), fhEtaPhiInPerpConeTOFBC0ITSRefitOnSPDOn(0)
212 {
213  InitParameters();
214 
215  for(Int_t i = 0; i < 5 ; i++)
216  {
217  fConeSizes[i] = 0 ;
218 
219  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
220  fhSumPtLeadingPtMC[imc][i] = 0 ;
221 
222  for(Int_t j = 0; j < 5 ; j++)
223  {
224  fhPtThresIsolated [i][j] = 0 ;
225  fhPtFracIsolated [i][j] = 0 ;
226  fhSumPtIsolated [i][j] = 0 ;
227 
228  fhEtaPhiPtThresIso [i][j] = 0 ;
229  fhEtaPhiPtThresDecayIso [i][j] = 0 ;
230  fhPtPtThresDecayIso [i][j] = 0 ;
231 
232  fhEtaPhiPtFracIso [i][j] = 0 ;
233  fhEtaPhiPtFracDecayIso [i][j] = 0 ;
234  fhPtPtFracDecayIso [i][j] = 0 ;
235  fhPtPtSumDecayIso [i][j] = 0 ;
236  fhPtSumDensityIso [i][j] = 0 ;
237  fhPtSumDensityDecayIso [i][j] = 0 ;
238  fhEtaPhiSumDensityIso [i][j] = 0 ;
239  fhEtaPhiSumDensityDecayIso [i][j] = 0 ;
240  fhPtFracPtSumIso [i][j] = 0 ;
241  fhPtFracPtSumDecayIso [i][j] = 0 ;
242  fhEtaPhiFracPtSumIso [i][j] = 0 ;
243  fhEtaPhiFracPtSumDecayIso [i][j] = 0 ;
244 
245  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
246  {
247  fhPtThresIsolatedMC[imc][i][j] = 0 ;
248  fhPtFracIsolatedMC [imc][i][j] = 0 ;
249  fhSumPtIsolatedMC [imc][i][j] = 0 ;
250 
251  }
252  }
253  }
254 
255  for(Int_t ibit =0; ibit < AliNeutralMesonSelection::fgkMaxNDecayBits; ibit++)
256  {
257  for(Int_t iso =0; iso < 2; iso++)
258  {
259  fhPtDecay [iso][ibit] = 0;
260  fhEtaPhiDecay [iso][ibit] = 0;
261  fhPtLambda0Decay[iso][ibit] = 0;
262  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
263  fhPtDecayMC[iso][ibit][imc] = 0;
264  }
265  }
266 
267  for(Int_t i = 0; i < 5 ; i++)
268  {
269  fPtFractions [i] = 0 ;
270  fPtThresholds [i] = 0 ;
271  fSumPtThresholds[i] = 0 ;
272 
273  fhSumPtLeadingPt [i] = 0 ;
274  fhPtLeadingPt [i] = 0 ;
275  fhPerpSumPtLeadingPt[i] = 0 ;
276  fhPerpPtLeadingPt [i] = 0 ;
277  }
278 
279  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
280  {
281  fhPtNoIsoMC [imc] = 0;
282  fhPtIsoMC [imc] = 0;
283  fhPhiIsoMC [imc] = 0;
284  fhEtaIsoMC [imc] = 0;
285 
286  for(Int_t i = 0; i < 2 ; i++)
287  {
288  fhPtLambda0MC [imc][i] = 0;
289  fhPtLambda0MCConv [imc][i] = 0;
290  fhPtLambda0MCWith1Overlap [imc][i] = 0;
291  fhPtLambda0MCConvWith1Overlap[imc][i] = 0;
292  fhPtLambda0MCWithNoOverlap [imc][i] = 0;
293  fhPtLambda0MCConvWithNoOverlap[imc][i] = 0;
294  fhPtNOverlap [imc][i] = 0;
295  fhPtNOverlapConv [imc][i] = 0;
296  fhTrackMatchedDEtaMC [imc][i] = 0 ;
297  fhTrackMatchedDPhiMC [imc][i] = 0 ;
298  fhTrackMatchedDEtaDPhiMC [imc][i] = 0 ;
299  }
300  }
301 
302  for(Int_t imc = 0; imc < 4; imc++)
303  {
304  fhPtTrackInConeMCPrimary [imc] = 0;
305  fhPtTrackInConeMCSecondary [imc] = 0;
308  }
309 
310  for(Int_t i = 0; i < 2 ; i++)
311  {
313  fhdEdx [i] = 0 ; fhEOverP [i] = 0 ; fhTrackMatchedMCParticle[i] = 0 ;
314  fhELambda0 [i] = 0 ; fhPtLambda0 [i] = 0 ; //fhELambda1 [i] = 0 ;
315  fhELambda0TRD [i] = 0 ; fhPtLambda0TRD [i] = 0 ; //fhELambda1TRD [i] = 0 ;
316 
317  // Number of local maxima in cluster
318  fhNLocMax [i] = 0 ;
319  fhELambda0LocMax1[i] = 0 ; fhELambda1LocMax1[i] = 0 ;
320  fhELambda0LocMax2[i] = 0 ; fhELambda1LocMax2[i] = 0 ;
321  fhELambda0LocMaxN[i] = 0 ; fhELambda1LocMaxN[i] = 0 ;
322 
324  for(Int_t iR = 0; iR < 6; iR++) fhMCConversionLambda0RcutTRD[iR][i] = 0;
325 
326  for(Int_t ieta = 0; ieta < 4; ieta++)
327  {
328  for(Int_t iphi = 0; iphi < 3; iphi++)
329  {
330 // fhLam0EMCALRegion [i][ieta][iphi] = 0;
331 // fhLam0EMCALRegionTRD[i][ieta][iphi] = 0;
332 //
333 // for(Int_t ireg = 0; ireg < 6; ireg++)
334 // {
335 // fhLam0EMCALRegionMCConvRcut [i][ieta][iphi][ireg] = 0;
336 // fhLam0EMCALRegionTRDMCConvRcut[i][ieta][iphi][ireg] = 0;
337 // }
338 
339  for(Int_t ism =0; ism < 20; ism++)
340  {
341  fhLam0EMCALRegionPerSM [i][ieta][iphi][ism] = 0;
342  fhConeSumPtTrackEMCALRegionPerSM [ieta][iphi][ism] = 0;
343  fhConeSumPtClusterEMCALRegionPerSM [ieta][iphi][ism] = 0;
344  }
345  }
346  }
347  for(Int_t j = 0; j < 7; j++) fhEtaPhiLam0BinPtBin[i][j] = 0 ;
348  }
349 
350  // Acceptance
351  for(Int_t i = 0; i < fgkNmcPrimTypes; i++)
352  {
353  fhPtPrimMCiso[i] = 0;
354  fhEPrimMC [i] = 0;
355  fhPtPrimMC [i] = 0;
356  fhEtaPrimMC [i] = 0;
357  fhPhiPrimMC [i] = 0;
358  }
359 
360  // Pile-Up
361 
362  for(Int_t i = 0 ; i < 7 ; i++)
363  {
364  fhPtInConePileUp[i] = 0 ;
365  fhEIsoPileUp [i] = 0 ;
366  fhPtIsoPileUp [i] = 0 ;
367  fhENoIsoPileUp [i] = 0 ;
368  fhPtNoIsoPileUp [i] = 0 ;
369  }
370 
371  for(Int_t i = 0 ; i < 3 ; i++)
372  {
373  fhPtTrackInConeDCA [i] = 0 ;
374  fhPtTrackInPerpConeDCA[i] = 0 ;
375  }
376 
377  for(Int_t i = 0 ; i < 4 ; i++)
378  {
383  }
384 
385  fhPtPerSM[0] = 0;
386  fhPtPerSM[1] = 0;
387  for(Int_t ism =0; ism < 20; ism++)
388  {
389  for(Int_t iso =0; iso < 2; iso++)
390  {
391  fhPtLambda0PerSM [iso][ism] = 0;
392  fhPtLambda0PerSMNCellCut[iso][ism] = 0;
393  fhPtNCellPerSM [iso][ism] = 0;
394  fhPtNCellLowM02PerSM [iso][ism] = 0;
395  fhPtNCellHighM02PerSM[iso][ism] = 0;
396  }
397 
398  fhConeSumPtPerSM [ism] = 0;
399  fhConeSumPtClusterPerSM[ism] = 0;
400  fhConeSumPtTrackPerSM [ism] = 0;
401 
402  fhPtInConePerSM [ism] = 0;
403  fhPtClusterInConePerSM [ism] = 0;
404  fhPtTrackInConePerSM [ism] = 0;
405  }
406 
407  fhPtPerTCardIndex[0] = 0;
408  fhPtPerTCardIndex[1] = 0;
409  for(Int_t itc =0; itc < 16; itc++)
410  {
411  fhPtLambda0PerTCardIndex [0][itc] = 0;
412  fhPtLambda0PerTCardIndex [1][itc] = 0;
413 
414  fhConeSumPtPerTCardIndex [itc] = 0;
417 
418  fhPtInConePerTCardIndex [itc] = 0;
421  }
422 }
423 
424 //_____________________________________________________________________________
426 //_____________________________________________________________________________
428 {
429  AliVEvent * event = GetReader()->GetInputEvent();
430 
431  fhTimeENoCut->Fill(energy, time, GetEventWeight());
432  if(GetReader()->IsPileUpFromSPD()) fhTimeESPD ->Fill(energy, time, GetEventWeight());
433  if(event->IsPileupFromSPDInMultBins()) fhTimeESPDMulti->Fill(energy, time, GetEventWeight());
434 
435  if(energy < 8) return; // Fill time figures for high energy clusters not too close to trigger threshold
436 
437  AliESDEvent* esdEv = dynamic_cast<AliESDEvent*> (event);
438  AliAODEvent* aodEv = dynamic_cast<AliAODEvent*> (event);
439 
440  // N pile up vertices
441  Int_t nVerticesSPD = -1;
442  Int_t nVerticesTracks = -1;
443 
444  if (esdEv)
445  {
446  nVerticesSPD = esdEv->GetNumberOfPileupVerticesSPD();
447  nVerticesTracks = esdEv->GetNumberOfPileupVerticesTracks();
448 
449  }//ESD
450  else if (aodEv)
451  {
452  nVerticesSPD = aodEv->GetNumberOfPileupVerticesSPD();
453  nVerticesTracks = aodEv->GetNumberOfPileupVerticesTracks();
454  }//AOD
455 
456  fhTimeNPileUpVertSPD ->Fill(time, nVerticesSPD , GetEventWeight());
457  fhTimeNPileUpVertTrack->Fill(time, nVerticesTracks, GetEventWeight());
458 
459  //printf("Is SPD %d, Is SPD Multi %d, n spd %d, n track %d\n",
460  // GetReader()->IsPileUpFromSPD(),event->IsPileupFromSPDInMultBins(),nVerticesSPD,nVerticesTracks);
461 
462  Int_t ncont = -1;
463  Float_t z1 = -1, z2 = -1;
464  Float_t diamZ = -1;
465  for(Int_t iVert=0; iVert<nVerticesSPD;iVert++)
466  {
467  if (esdEv)
468  {
469  const AliESDVertex* pv=esdEv->GetPileupVertexSPD(iVert);
470  ncont=pv->GetNContributors();
471  z1 = esdEv->GetPrimaryVertexSPD()->GetZ();
472  z2 = pv->GetZ();
473  diamZ = esdEv->GetDiamondZ();
474  }//ESD
475  else if (aodEv)
476  {
477  AliAODVertex *pv=aodEv->GetVertex(iVert);
478  if(pv->GetType()!=AliAODVertex::kPileupSPD) continue;
479  ncont=pv->GetNContributors();
480  z1=aodEv->GetPrimaryVertexSPD()->GetZ();
481  z2=pv->GetZ();
482  diamZ = aodEv->GetDiamondZ();
483  }// AOD
484 
485  Double_t distZ = TMath::Abs(z2-z1);
486  diamZ = TMath::Abs(z2-diamZ);
487 
488  fhTimeNPileUpVertContributors ->Fill(time, ncont, GetEventWeight());
489  fhTimePileUpMainVertexZDistance->Fill(time, distZ, GetEventWeight());
490  fhTimePileUpMainVertexZDiamond ->Fill(time, diamZ, GetEventWeight());
491 
492  }// loop
493 }
494 
495 //_____________________________________________________________________________________________________________________
497 //_____________________________________________________________________________________________________________________
500 {
502 
503  // Cone energy and particle content, after corrections
504  Float_t coneptsumTrack = pCandidate->GetChargedPtSumInCone();
505  Float_t coneptsumClust = pCandidate->GetNeutralPtSumInCone();
506  Float_t coneptsum = coneptsumTrack + coneptsumClust;
507  Float_t coneleadpt = pCandidate->GetChargedLeadPtInCone();
508  if (pCandidate->GetNeutralLeadPtInCone() > coneleadpt )
509  coneleadpt = pCandidate->GetNeutralLeadPtInCone();
510 
511  // Trigger candidate info
512  Int_t nMaxima = pCandidate->GetNLM();
513  Int_t mcTag = pCandidate->GetTag() ;
514  Bool_t isolated = pCandidate->IsIsolated();
515 
516  Float_t m02 = pCandidate->GetM02() ;
517  Float_t energy = pCandidate->E();
518  Float_t pt = pCandidate->Pt();
519  Float_t eta = pCandidate->Eta();
520  Float_t phi = GetPhi(pCandidate->Phi());
521  Int_t iSM = pCandidate->GetSModNumber();
522  Float_t weightTrig = pCandidate->GetWeight();
523 
524  // Candidates tagged as decay in another analysis (AliAnaPi0EbE)
525  //
527  {
528  Int_t decayTag = pCandidate->DecayTag();
529  if(decayTag < 0) decayTag = 0;
530 
531  for(Int_t ibit = 0; ibit < fNDecayBits; ibit++)
532  {
533  if(!GetNeutralMesonSelection()->CheckDecayBit(decayTag,fDecayBits[ibit])) continue;
534 
535  if(fFillSSHisto) fhPtLambda0Decay[isolated][ibit]->Fill(pt, m02, GetEventWeight()*weightTrig);
536 
537  // In case it was not done on the trigger selection task
538  // apply here a shower shape cut to select photons
539  if( m02 > fDecayTagsM02Cut ) continue;
540 
541  fhPtDecay [isolated][ibit]->Fill(pt, GetEventWeight()*weightTrig);
542  fhEtaPhiDecay[isolated][ibit]->Fill(eta, phi, GetEventWeight()*weightTrig);
543 
544  if ( IsDataMC() )
545  {
546  fhPtDecayMC[isolated][ibit][mcIndex]->Fill(pt, GetEventWeight()*weightTrig);
547 
548  if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton))
549  fhPtDecayMC[isolated][ibit][kmcPhoton]->Fill(pt, GetEventWeight()*weightTrig);
550 
552  {
553  if ( mcIndex == kmcPi0Decay ) fhPtDecayMC[isolated][ibit][kmcPi0DecayLostPair]->Fill(pt, GetEventWeight()*weightTrig);
554  else if( mcIndex == kmcEtaDecay ) fhPtDecayMC[isolated][ibit][kmcEtaDecayLostPair]->Fill(pt, GetEventWeight()*weightTrig);
555  }
556  }
557  } // bit loop
558  } // decay histograms
559 
560  // Get the max pt leading in cone or the sum of pt in cone
561  // assign a bin to the candidate, depending on both quantities
562  // see the shower shape in those bins.
564  {
565  // Get the background bin for this cone and trigger
566  Int_t ptsumBin = -1;
567  Int_t leadptBin = -1;
568 
569  AliDebug(1,Form("pT cand: %2.2f, In cone pT: Sum %2.2f, Lead %2.2f, n bins %d",pt,coneptsum,coneleadpt,fNBkgBin));
570 
571  for(Int_t ibin = 0; ibin < fNBkgBin; ibin++)
572  {
573  if( coneptsum >= fBkgBinLimit[ibin] && coneptsum < fBkgBinLimit[ibin+1]) ptsumBin = ibin;
574  if( coneleadpt >= fBkgBinLimit[ibin] && coneleadpt < fBkgBinLimit[ibin+1]) leadptBin = ibin;
575  }
576 
577  // Fill the histograms per bin of pt lead or pt sum
578 
579  if ( leadptBin >= 0 )
580  {
581  AliDebug(1,Form("\t Lead bin %d [%2.2f,%2.2f]", leadptBin,fBkgBinLimit[leadptBin],fBkgBinLimit[leadptBin+1]));
582 
583  fhPtLeadConeBin[leadptBin]->Fill(pt, GetEventWeight()*weightTrig);
584 
585  if(fFillSSHisto)
586  fhPtLeadConeBinLambda0[leadptBin]->Fill(pt, m02, GetEventWeight()*weightTrig);
587 
588  if ( leadptBin == 0 )
589  AliDebug(1,Form("No track/clusters in isolation cone: cand pt %2.2f GeV/c, track multiplicity %d, N clusters %d",
590  pt, GetTrackMultiplicity(),GetEMCALClusters()->GetEntriesFast()));
591  }
592 
593  if ( ptsumBin >= 0 )
594  {
595  AliDebug(1,Form("\t Sum bin %d [%2.2f,%2.2f]" , ptsumBin ,fBkgBinLimit[ptsumBin] ,fBkgBinLimit[ptsumBin +1]));
596 
597  fhSumPtConeBin[ptsumBin]->Fill(pt, GetEventWeight()*weightTrig);
598 
599  if(fFillSSHisto) fhSumPtConeBinLambda0[ptsumBin]->Fill(pt, m02, GetEventWeight()*weightTrig);
600  }
601 
602  // Check if it was a decay
604  {
605  Int_t decayTag = pCandidate->DecayTag();
606  if(decayTag < 0) decayTag = 0;
607 
608  for(Int_t ibit = 0; ibit < fNDecayBits; ibit++)
609  {
610  if(GetNeutralMesonSelection()->CheckDecayBit(decayTag,fDecayBits[ibit]))
611  {
612  Int_t leadptBinDecay = leadptBin+ibit*fNBkgBin;
613  Int_t ptsumBinDecay = ptsumBin+ibit*fNBkgBin;
614  if( leadptBin >=0 ) fhPtLeadConeBinDecay[leadptBinDecay]->Fill(pt, GetEventWeight()*weightTrig);
615  if( ptsumBin >=0 ) fhSumPtConeBinDecay [ ptsumBinDecay]->Fill(pt, GetEventWeight()*weightTrig);
616  }
617  }
618  }
619 
620  if(IsDataMC())
621  {
622  Int_t leadptBinMC = leadptBin+mcIndex*fNBkgBin;
623  Int_t ptsumBinMC = ptsumBin+mcIndex*fNBkgBin;
624 
625  if( leadptBin >=0 )
626  {
627  fhPtLeadConeBinMC[leadptBinMC]->Fill(pt, GetEventWeight()*weightTrig);
628  if(fFillSSHisto) fhPtLeadConeBinLambda0MC[leadptBinMC]->Fill(pt, m02, GetEventWeight()*weightTrig);
629  }
630 
631  if( ptsumBin >=0 )
632  {
633  fhSumPtConeBinMC [ ptsumBinMC]->Fill(pt, GetEventWeight()*weightTrig);
634  if(fFillSSHisto) fhSumPtConeBinLambda0MC [ ptsumBinMC]->Fill(pt, m02, GetEventWeight()*weightTrig);
635  }
636 
637  if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton))
638  {
639  leadptBinMC = leadptBin+kmcPhoton*fNBkgBin;
640  ptsumBinMC = ptsumBin+kmcPhoton*fNBkgBin;
641  if( leadptBin >=0 )
642  {
643  fhPtLeadConeBinMC[leadptBinMC]->Fill(pt, GetEventWeight()*weightTrig);
644  if(fFillSSHisto) fhPtLeadConeBinLambda0MC[leadptBinMC]->Fill(pt, m02, GetEventWeight()*weightTrig);
645  }
646 
647  if( ptsumBin >=0 )
648  {
649  fhSumPtConeBinMC [ ptsumBinMC]->Fill(pt, GetEventWeight()*weightTrig);
650  if(fFillSSHisto) fhSumPtConeBinLambda0MC [ ptsumBinMC]->Fill(pt, m02, GetEventWeight()*weightTrig);
651  }
652  }
653 
654  // Check if decay and if pair is lost
655  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) )
656  {
657  if ( mcIndex == kmcPi0Decay )
658  {
659  leadptBinMC = leadptBin+kmcPi0DecayLostPair*fNBkgBin;
660  ptsumBinMC = ptsumBin+kmcPi0DecayLostPair*fNBkgBin;
661  }
662  else if(mcIndex == kmcEtaDecay)
663  {
664  leadptBinMC = leadptBin+kmcEtaDecayLostPair*fNBkgBin;
665  ptsumBinMC = ptsumBin+kmcEtaDecayLostPair*fNBkgBin;
666  }
667  else
668  AliFatal(Form("Lost decay Bit assigned to bad case, mcIndex %d",mcIndex));
669 
670  if( leadptBin >=0 )
671  {
672  fhPtLeadConeBinMC[leadptBinMC]->Fill(pt, GetEventWeight()*weightTrig);
673  if(fFillSSHisto) fhPtLeadConeBinLambda0MC[leadptBinMC]->Fill(pt, m02, GetEventWeight()*weightTrig);
674  }
675 
676  if( ptsumBin >=0 )
677  {
678  fhSumPtConeBinMC [ ptsumBinMC]->Fill(pt);
679  if(fFillSSHisto) fhSumPtConeBinLambda0MC [ ptsumBinMC]->Fill(pt, m02, GetEventWeight()*weightTrig);
680  }
681 
682  } // check decays with lost pairs
683 
684  } // MC data
685  } // background dependent bins
686 
687  // Fill histograms on selected pt bins of the trigger particle
688  Int_t ptTrigBin = -1;
690  {
691  for(Int_t ibin = 0; ibin < fNPtTrigBin; ibin++)
692  {
693  if( pt >= fPtTrigBinLimit[ibin] && pt < fPtTrigBinLimit[ibin+1]) ptTrigBin = ibin;
694  }
695 
696  // Fill the histograms if the bin is found.
697  if ( ptTrigBin >= 0 )
698  {
699  AliDebug(1,Form("Trigger pT %f, bin %d [%2.2f,%2.2f]",pt,ptTrigBin,fPtTrigBinLimit[ptTrigBin],fPtTrigBinLimit[ptTrigBin+1]));
700 
701  fhPtTrigBinPtLeadCone[ptTrigBin]->Fill(coneleadpt, GetEventWeight()*weightTrig);
702  fhPtTrigBinSumPtCone [ptTrigBin]->Fill(coneptsum , GetEventWeight()*weightTrig);
703 
704  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
705  {
706  fhPtTrigBinSumPtTrackCone [ptTrigBin]->Fill(coneptsumTrack, GetEventWeight()*weightTrig);
707  fhPtTrigBinSumPtClusterCone[ptTrigBin]->Fill(coneptsumClust, GetEventWeight()*weightTrig);
708  }
709 
710  if(fFillSSHisto)
711  {
712  fhPtTrigBinLambda0vsPtLeadCone[ptTrigBin]->Fill(coneleadpt, m02, GetEventWeight()*weightTrig);
713  fhPtTrigBinLambda0vsSumPtCone [ptTrigBin]->Fill(coneptsum , m02, GetEventWeight()*weightTrig);
714 
715  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
716  {
717  fhPtTrigBinLambda0vsSumPtTrackCone [ptTrigBin]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
718  fhPtTrigBinLambda0vsSumPtClusterCone[ptTrigBin]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
719  }
720  }
721 
722  // Check if it was a decay
724  {
725  Int_t decayTag = pCandidate->DecayTag();
726  if(decayTag < 0) decayTag = 0;
727 
728  for(Int_t ibit = 0; ibit < fNDecayBits; ibit++)
729  {
730  if(GetNeutralMesonSelection()->CheckDecayBit(decayTag,fDecayBits[ibit]))
731  {
732  Int_t binDecay = ptTrigBin+ibit*fNPtTrigBin;
733  if( binDecay > 0 )
734  {
735  fhPtTrigBinPtLeadConeDecay[binDecay]->Fill(coneleadpt, GetEventWeight()*weightTrig);
736  fhPtTrigBinSumPtConeDecay [binDecay]->Fill(coneptsum , GetEventWeight()*weightTrig);
737 
738  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
739  {
740  fhPtTrigBinSumPtTrackConeDecay [binDecay]->Fill(coneptsumTrack, GetEventWeight()*weightTrig);
741  fhPtTrigBinSumPtClusterConeDecay[binDecay]->Fill(coneptsumClust, GetEventWeight()*weightTrig);
742  }
743  }
744  }
745  }
746  } // decay
747 
748  if( IsDataMC() )
749  {
750  Int_t ptTrigBinMC = ptTrigBin+mcIndex*fNPtTrigBin;
751 
752  fhPtTrigBinPtLeadConeMC[ptTrigBinMC]->Fill(coneleadpt , GetEventWeight()*weightTrig);
753  fhPtTrigBinSumPtConeMC [ptTrigBinMC]->Fill(coneptsum , GetEventWeight()*weightTrig);
754 
755  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
756  {
757  fhPtTrigBinSumPtTrackConeMC [ptTrigBinMC]->Fill(coneptsumTrack, GetEventWeight()*weightTrig);
758  fhPtTrigBinSumPtClusterConeMC[ptTrigBinMC]->Fill(coneptsumClust, GetEventWeight()*weightTrig);
759  }
760  } // MC
761 
762  } // proper pT bin found
763  } // pT trigger bins
764 
765  //
766  // Shower shape dependent histograms
767  //
768  if ( fFillSSHisto )
769  {
770  fhELambda0 [isolated]->Fill(energy, m02, GetEventWeight()*weightTrig);
771  fhPtLambda0[isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
772  //fhELambda1 [isolated]->Fill(energy, m20);
773 
774  if ( fFillPerSMHistograms )
775  {
776  fhPtPerSM [isolated] ->Fill(pt,iSM, GetEventWeight()*weightTrig);
777  fhPtLambda0PerSM[isolated][iSM]->Fill(pt,m02, GetEventWeight()*weightTrig);
778 
779  if ( fStudyNCellsCut )
780  {
781  if ( fNCellsWithWeight > 4 )
782  fhPtLambda0PerSMNCellCut[isolated][iSM]->Fill(pt, m02, GetEventWeight()*weightTrig);
783 
784  fhPtNCellPerSM[isolated][iSM]->Fill(pt, fNCellsWithWeight, GetEventWeight()*weightTrig);
785 
786  if ( m02 > 0.1 && m02 <= 0.3 ) fhPtNCellLowM02PerSM [isolated][iSM]->Fill(pt, fNCellsWithWeight, GetEventWeight()*weightTrig);
787  else if ( m02 > 0.5 && m02 <= 2 ) fhPtNCellHighM02PerSM[isolated][iSM]->Fill(pt, fNCellsWithWeight, GetEventWeight()*weightTrig);
788  }
789  }
790 
792  {
793  fhPtPerTCardIndex [isolated] ->Fill(pt,fTCardIndex, GetEventWeight()*weightTrig);
794  fhPtLambda0PerTCardIndex[isolated][fTCardIndex]->Fill(pt,m02, GetEventWeight()*weightTrig);
795  }
796 
797  //
798  // MC
799  //
800  if(IsDataMC())
801  {
802  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
803  {
804  fhPtLambda0MC[kmcPhoton][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
805  if ( fNCellsWithWeight > 4 && fStudyNCellsCut )
806  fhPtLambda0MCNCellCut[kmcPhoton][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
807  }
808 
809  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) )
810  {
811  if ( mcIndex == kmcPi0Decay ) fhPtLambda0MC[kmcPi0DecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
812  else if( mcIndex == kmcEtaDecay ) fhPtLambda0MC[kmcEtaDecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
813  if ( fNCellsWithWeight > 4 && fStudyNCellsCut )
814  {
815  if ( mcIndex == kmcPi0Decay ) fhPtLambda0MCNCellCut[kmcPi0DecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
816  else if( mcIndex == kmcEtaDecay ) fhPtLambda0MCNCellCut[kmcEtaDecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
817  }
818  }
819 
820  fhPtLambda0MC[mcIndex][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
821  if ( fNCellsWithWeight > 4 && fStudyNCellsCut )
822  fhPtLambda0MCNCellCut[mcIndex][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
823 
824  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion) )
825  {
826  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
827  fhPtLambda0MCConv[kmcPhoton][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
828 
829  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) )
830  {
831  if ( mcIndex == kmcPi0Decay ) fhPtLambda0MCConv[kmcPi0DecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
832  else if( mcIndex == kmcEtaDecay ) fhPtLambda0MCConv[kmcEtaDecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
833  }
834 
835  fhPtLambda0MCConv[mcIndex][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
836  } // Conversion
837 
838  //
839  // Check overlaps
840  //
841  Int_t noverlaps = 0;
843  {
844  const UInt_t nlabels = fCluster->GetNLabels();
845  Int_t overpdg[nlabels];
846  Int_t overlab[nlabels];
847  noverlaps = GetMCAnalysisUtils()->GetNOverlaps(fCluster->GetLabels(), nlabels, mcTag, -1,
848  GetMC(), overpdg, overlab);
849 
851  fhPtNOverlap[kmcPhoton][isolated]->Fill(pt, noverlaps, GetEventWeight()*weightTrig);
852 
854  {
855  if ( mcIndex == kmcPi0Decay ) fhPtNOverlap[kmcPi0DecayLostPair][isolated]->Fill(pt, noverlaps, GetEventWeight()*weightTrig);
856  else if( mcIndex == kmcEtaDecay ) fhPtNOverlap[kmcEtaDecayLostPair][isolated]->Fill(pt, noverlaps, GetEventWeight()*weightTrig);
857  }
858 
859  fhPtNOverlap[mcIndex][isolated]->Fill(pt, noverlaps, GetEventWeight()*weightTrig);
860 
861  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion) )
862  {
863  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
864  fhPtNOverlapConv[kmcPhoton][isolated]->Fill(pt, noverlaps, GetEventWeight()*weightTrig);
865 
866  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) )
867  {
868  if ( mcIndex == kmcPi0Decay ) fhPtNOverlapConv[kmcPi0DecayLostPair][isolated]->Fill(pt, noverlaps, GetEventWeight()*weightTrig);
869  else if( mcIndex == kmcEtaDecay ) fhPtNOverlapConv[kmcEtaDecayLostPair][isolated]->Fill(pt, noverlaps, GetEventWeight()*weightTrig);
870  }
871 
872  fhPtNOverlapConv[mcIndex][isolated]->Fill(pt, noverlaps, GetEventWeight()*weightTrig);
873  } // Conversion
874 
875 
876  if ( noverlaps == 1 )
877  {
878  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
879  fhPtLambda0MCWith1Overlap[kmcPhoton][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
880 
881  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) )
882  {
883  if ( mcIndex == kmcPi0Decay ) fhPtLambda0MCWith1Overlap[kmcPi0DecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
884  else if( mcIndex == kmcEtaDecay ) fhPtLambda0MCWith1Overlap[kmcEtaDecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
885  }
886 
887  fhPtLambda0MCWith1Overlap[mcIndex][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
888 
889  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion) )
890  {
891  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
892  fhPtLambda0MCConvWith1Overlap[kmcPhoton][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
893 
894  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) )
895  {
896  if ( mcIndex == kmcPi0Decay ) fhPtLambda0MCConvWith1Overlap[kmcPi0DecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
897  else if( mcIndex == kmcEtaDecay ) fhPtLambda0MCConvWith1Overlap[kmcEtaDecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
898  }
899 
900  fhPtLambda0MCConvWith1Overlap[mcIndex][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
901  } // Conversion
902  } // At least 1 overlap
903  else if (noverlaps == 0 ) // No overlap
904  {
905  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
906  fhPtLambda0MCWithNoOverlap[kmcPhoton][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
907 
908  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) )
909  {
910  if ( mcIndex == kmcPi0Decay ) fhPtLambda0MCWithNoOverlap[kmcPi0DecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
911  else if( mcIndex == kmcEtaDecay ) fhPtLambda0MCWithNoOverlap[kmcEtaDecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
912  }
913 
914  fhPtLambda0MCWithNoOverlap[mcIndex][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
915 
916  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion) )
917  {
918  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
919  fhPtLambda0MCConvWithNoOverlap[kmcPhoton][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
920 
921  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCDecayPairLost) )
922  {
923  if ( mcIndex == kmcPi0Decay ) fhPtLambda0MCConvWithNoOverlap[kmcPi0DecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
924  else if( mcIndex == kmcEtaDecay ) fhPtLambda0MCConvWithNoOverlap[kmcEtaDecayLostPair][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
925  }
926 
927  fhPtLambda0MCConvWithNoOverlap[mcIndex][isolated]->Fill(pt, m02, GetEventWeight()*weightTrig);
928  } // Conversion
929  } // more than 1 overlap
930  }
931 
932  //
933  // Sum in cone and shower shape in different pT bins of candidate and overlap condition
934  //
936  {
937  Int_t ptTrigBinMC = ptTrigBin+mcIndex *fNPtTrigBin;
938  Int_t ptTrigBinMCPhoton = ptTrigBin+kmcPhoton*fNPtTrigBin;
939  Int_t ptTrigBinMCPi0Lost = ptTrigBin+kmcPi0DecayLostPair*fNPtTrigBin;
940  Int_t ptTrigBinMCEtaLost = ptTrigBin+kmcEtaDecayLostPair*fNPtTrigBin;
941 
942  if ( ptTrigBin >= 0 )
943  {
944  fhPtTrigBinLambda0vsSumPtConeMC [ptTrigBinMC]->Fill(coneptsum , m02, GetEventWeight()*weightTrig);
945  fhPtTrigBinLambda0vsPtLeadConeMC[ptTrigBinMC]->Fill(coneleadpt, m02, GetEventWeight()*weightTrig);
946 
947  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
948  {
949  fhPtTrigBinLambda0vsSumPtTrackConeMC [ptTrigBinMC]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
950  fhPtTrigBinLambda0vsSumPtClusterConeMC[ptTrigBinMC]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
951  }
952 
953  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
954  {
955  fhPtTrigBinLambda0vsSumPtConeMC [ptTrigBinMCPhoton]->Fill(coneptsum , m02, GetEventWeight()*weightTrig);
956  fhPtTrigBinLambda0vsPtLeadConeMC[ptTrigBinMCPhoton]->Fill(coneleadpt, m02, GetEventWeight()*weightTrig);
957 
958  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
959  {
960  fhPtTrigBinLambda0vsSumPtTrackConeMC [ptTrigBinMCPhoton]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
961  fhPtTrigBinLambda0vsSumPtClusterConeMC[ptTrigBinMCPhoton]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
962  }
963  }
964 
965  if( mcIndex == kmcPi0Decay )
966  {
967  fhPtTrigBinLambda0vsSumPtConeMC [ptTrigBinMCPi0Lost]->Fill(coneptsum , m02, GetEventWeight()*weightTrig);
968  fhPtTrigBinLambda0vsPtLeadConeMC[ptTrigBinMCPi0Lost]->Fill(coneleadpt, m02, GetEventWeight()*weightTrig);
969 
970  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
971  {
972  fhPtTrigBinLambda0vsSumPtTrackConeMC [ptTrigBinMCPi0Lost]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
973  fhPtTrigBinLambda0vsSumPtClusterConeMC[ptTrigBinMCPi0Lost]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
974  }
975  }
976 
977  if( mcIndex == kmcEtaDecay )
978  {
979  fhPtTrigBinLambda0vsSumPtConeMC [ptTrigBinMCEtaLost]->Fill(coneptsum , m02, GetEventWeight()*weightTrig);
980  fhPtTrigBinLambda0vsPtLeadConeMC[ptTrigBinMCEtaLost]->Fill(coneleadpt, m02, GetEventWeight()*weightTrig);
981 
982  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
983  {
984  fhPtTrigBinLambda0vsSumPtTrackConeMC [ptTrigBinMCEtaLost]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
985  fhPtTrigBinLambda0vsSumPtClusterConeMC[ptTrigBinMCEtaLost]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
986  }
987  }
988 
990  {
991  if ( noverlaps == 0 )
992  {
993  fhPtTrigBinLambda0vsSumPtConeMCNoOverlap[ptTrigBinMC]->Fill(coneptsum, m02, GetEventWeight()*weightTrig);
994 
995  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
996  {
997  fhPtTrigBinLambda0vsSumPtTrackConeMCNoOverlap [ptTrigBinMC]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
998  fhPtTrigBinLambda0vsSumPtClusterConeMCNoOverlap[ptTrigBinMC]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
999  }
1000 
1001  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
1002  {
1003  fhPtTrigBinLambda0vsSumPtConeMCNoOverlap[ptTrigBinMCPhoton]->Fill(coneptsum, m02, GetEventWeight()*weightTrig);
1004 
1005  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1006  {
1007  fhPtTrigBinLambda0vsSumPtTrackConeMCNoOverlap [ptTrigBinMCPhoton]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
1008  fhPtTrigBinLambda0vsSumPtClusterConeMCNoOverlap[ptTrigBinMCPhoton]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
1009  }
1010  }
1011 
1012  if( mcIndex == kmcPi0Decay )
1013  {
1014  fhPtTrigBinLambda0vsSumPtConeMCNoOverlap[ptTrigBinMCPi0Lost]->Fill(coneptsum, m02, GetEventWeight()*weightTrig);
1015 
1016  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1017  {
1018  fhPtTrigBinLambda0vsSumPtTrackConeMCNoOverlap [ptTrigBinMCPi0Lost]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
1019  fhPtTrigBinLambda0vsSumPtClusterConeMCNoOverlap[ptTrigBinMCPi0Lost]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
1020  }
1021  }
1022 
1023  if( mcIndex == kmcEtaDecay )
1024  {
1025  fhPtTrigBinLambda0vsSumPtConeMCNoOverlap[ptTrigBinMCEtaLost]->Fill(coneptsum, m02, GetEventWeight()*weightTrig);
1026 
1027  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1028  {
1029  fhPtTrigBinLambda0vsSumPtTrackConeMCNoOverlap [ptTrigBinMCEtaLost]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
1030  fhPtTrigBinLambda0vsSumPtClusterConeMCNoOverlap[ptTrigBinMCEtaLost]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
1031  }
1032  }
1033 
1034 
1035  } // nover = 0
1036  else if ( noverlaps == 1 )
1037  {
1038  fhPtTrigBinLambda0vsSumPtConeMC1Overlap[ptTrigBinMC]->Fill(coneptsum, m02, GetEventWeight()*weightTrig);
1039  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1040  {
1041  fhPtTrigBinLambda0vsSumPtTrackConeMC1Overlap [ptTrigBinMC]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
1042  fhPtTrigBinLambda0vsSumPtClusterConeMC1Overlap[ptTrigBinMC]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
1043  }
1044 
1045  if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) )
1046  {
1047  fhPtTrigBinLambda0vsSumPtConeMC1Overlap[ptTrigBinMCPhoton]->Fill(coneptsum, m02, GetEventWeight()*weightTrig);
1048 
1049  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1050  {
1051  fhPtTrigBinLambda0vsSumPtTrackConeMC1Overlap [ptTrigBinMCPhoton]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
1052  fhPtTrigBinLambda0vsSumPtClusterConeMC1Overlap[ptTrigBinMCPhoton]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
1053  }
1054 
1055  if( mcIndex == kmcPi0Decay )
1056  {
1057  fhPtTrigBinLambda0vsSumPtConeMC1Overlap[ptTrigBinMCPi0Lost]->Fill(coneptsum, m02, GetEventWeight()*weightTrig);
1058 
1059  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1060  {
1061  fhPtTrigBinLambda0vsSumPtTrackConeMC1Overlap [ptTrigBinMCPi0Lost]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
1062  fhPtTrigBinLambda0vsSumPtClusterConeMC1Overlap[ptTrigBinMCPi0Lost]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
1063  }
1064  }
1065 
1066  if( mcIndex == kmcEtaDecay )
1067  {
1068  fhPtTrigBinLambda0vsSumPtConeMC1Overlap[ptTrigBinMCEtaLost]->Fill(coneptsum, m02, GetEventWeight()*weightTrig);
1069 
1070  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1071  {
1072  fhPtTrigBinLambda0vsSumPtTrackConeMC1Overlap [ptTrigBinMCEtaLost]->Fill(coneptsumTrack, m02, GetEventWeight()*weightTrig);
1073  fhPtTrigBinLambda0vsSumPtClusterConeMC1Overlap[ptTrigBinMCEtaLost]->Fill(coneptsumClust, m02, GetEventWeight()*weightTrig);
1074  }
1075  }
1076  }
1077  } // nover = 1
1078  } // fill overlaps
1079 
1080  } // pt bin exists
1081  } // fFillPtTrigBinHistograms && fFillSSHisto
1082 
1083  } // MC
1084 
1085  if(GetCalorimeter() == kEMCAL && GetFirstSMCoveredByTRD() >= 0 &&
1086  GetModuleNumber(pCandidate) >= GetFirstSMCoveredByTRD() )
1087  {
1088  fhELambda0TRD [isolated]->Fill(energy, m02, GetEventWeight()*weightTrig);
1089  fhPtLambda0TRD[isolated]->Fill(pt , m02, GetEventWeight()*weightTrig);
1090  //fhELambda1TRD [isolated]->Fill(energy, m20 );
1091  }
1092 
1093  if(fFillNLMHistograms)
1094  {
1095  fhNLocMax[isolated]->Fill(energy, nMaxima, GetEventWeight()*weightTrig);
1096  if (nMaxima==1)
1097  {
1098  fhELambda0LocMax1[isolated]->Fill(energy, m02, GetEventWeight()*weightTrig);
1099  fhELambda1LocMax1[isolated]->Fill(energy, m02, GetEventWeight()*weightTrig);
1100  }
1101  else if(nMaxima==2)
1102  {
1103  fhELambda0LocMax2[isolated]->Fill(energy, m02, GetEventWeight()*weightTrig);
1104  fhELambda1LocMax2[isolated]->Fill(energy, m02, GetEventWeight()*weightTrig);
1105  }
1106  else
1107  {
1108  fhELambda0LocMaxN[isolated]->Fill(energy, m02, GetEventWeight()*weightTrig);
1109  fhELambda1LocMaxN[isolated]->Fill(energy, m02, GetEventWeight()*weightTrig);
1110  }
1111  }
1112  } // SS histo fill
1113 
1114  // Track matching dependent histograms
1115  if ( fFillTMHisto && fCluster )
1116  {
1117  Float_t dZ = fCluster->GetTrackDz();
1118  Float_t dR = fCluster->GetTrackDx();
1119 
1120 // if(fCluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn())
1121 // {
1122 // dR = 2000., dZ = 2000.;
1123 // GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(fCluster->GetID(),dZ,dR);
1124 // }
1125 
1126  //printf("ParticleIsolation: dPhi %f, dEta %f\n",dR,dZ);
1127  if(fhTrackMatchedDEta[isolated] && TMath::Abs(dR) < 999)
1128  {
1129  fhTrackMatchedDEta[isolated]->Fill(energy, dZ, GetEventWeight()*weightTrig);
1130  fhTrackMatchedDPhi[isolated]->Fill(energy, dR, GetEventWeight()*weightTrig);
1131  if(energy > 0.5) fhTrackMatchedDEtaDPhi[isolated]->Fill(dZ, dR, GetEventWeight()*weightTrig);
1132  if(IsDataMC())
1133  {
1134  fhTrackMatchedDEtaMC[mcIndex][isolated]->Fill(energy, dZ, GetEventWeight()*weightTrig);
1135  fhTrackMatchedDPhiMC[mcIndex][isolated]->Fill(energy, dR, GetEventWeight()*weightTrig);
1136  if(energy > 0.5) fhTrackMatchedDEtaDPhiMC[mcIndex][isolated]->Fill(dZ, dR, GetEventWeight()*weightTrig);
1137  }
1138  }
1139 
1140  // Check dEdx and E/p of matched clusters
1141 
1142  if(TMath::Abs(dZ) < 0.05 && TMath::Abs(dR) < 0.05)
1143  {
1144  AliVTrack *track = GetCaloUtils()->GetMatchedTrack(fCluster, GetReader()->GetInputEvent());
1145 
1146  if(track)
1147  {
1148  Float_t dEdx = track->GetTPCsignal();
1149  fhdEdx[isolated]->Fill(fCluster->E(), dEdx, GetEventWeight()*weightTrig);
1150 
1151  Float_t eOverp = fCluster->E()/track->P();
1152  fhEOverP[isolated]->Fill(fCluster->E(), eOverp, GetEventWeight()*weightTrig);
1153  }
1154  //else
1155  // printf("AliAnaParticleIsolation::FillTrackMatchingShowerShapeHistograms() - Residual OK but (dR, dZ)= (%2.4f,%2.4f) no track associated WHAT? \n", dR,dZ);
1156 
1157 
1158  if(IsDataMC())
1159  {
1161  {
1163  GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEta) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 2.5, GetEventWeight()*weightTrig);
1164  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 0.5, GetEventWeight()*weightTrig);
1165  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 1.5, GetEventWeight()*weightTrig);
1166  else fhTrackMatchedMCParticle[isolated]->Fill(energy, 3.5, GetEventWeight()*weightTrig);
1167 
1168  }
1169  else
1170  {
1171  if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0) ||
1172  GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEta) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 6.5, GetEventWeight()*weightTrig);
1173  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 4.5, GetEventWeight()*weightTrig);
1174  else if ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron) ) fhTrackMatchedMCParticle[isolated]->Fill(energy, 5.5, GetEventWeight()*weightTrig);
1175  else fhTrackMatchedMCParticle[isolated]->Fill(energy, 7.5, GetEventWeight()*weightTrig);
1176  }
1177  } // MC
1178  } // match window
1179  }// TM histos fill
1180 }
1181 
1182 //______________________________________________________
1184 //______________________________________________________
1186 {
1187  TString parList ; //this will be list of parameters used for this analysis.
1188  const Int_t buffersize = 255;
1189  char onePar[buffersize] ;
1190 
1191  snprintf(onePar, buffersize,"--- AliAnaParticleIsolation ---:") ;
1192  parList+=onePar ;
1193  snprintf(onePar, buffersize,"Calorimeter: %s;",GetCalorimeterString().Data()) ;
1194  parList+=onePar ;
1195  snprintf(onePar, buffersize,"Cand. Detector: %s;",fIsoDetectorString.Data()) ;
1196  parList+=onePar ;
1197  snprintf(onePar, buffersize,"fReMakeIC =%d;",fReMakeIC) ;
1198  parList+=onePar ;
1199  snprintf(onePar, buffersize,"fMakeSeveralIC=%d;",fMakeSeveralIC) ;
1200  parList+=onePar ;
1201  snprintf(onePar, buffersize,"fFillTMHisto=%d;",fFillTMHisto) ;
1202  parList+=onePar ;
1203  snprintf(onePar, buffersize,"fFillSSHisto=%d;",fFillSSHisto) ;
1204  parList+=onePar ;
1205 
1206  if ( fMakeSeveralIC )
1207  {
1208  snprintf(onePar, buffersize,"fNCones=%d;",fNCones) ;
1209  parList+=onePar ;
1210  snprintf(onePar, buffersize,"fNPtThresFrac=%d;",fNPtThresFrac) ;
1211  parList+=onePar ;
1212 
1213  for(Int_t icone = 0; icone < fNCones ; icone++)
1214  {
1215  snprintf(onePar, buffersize,"fConeSizes[%d]=%1.2f;",icone, fConeSizes[icone]) ;
1216  parList+=onePar ;
1217  }
1218  for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++)
1219  {
1220  snprintf(onePar, buffersize,"fPtThresholds[%d]=%1.2f;",ipt, fPtThresholds[ipt]) ;
1221  parList+=onePar ;
1222  }
1223  for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++)
1224  {
1225  snprintf(onePar, buffersize,"fPtFractions[%d]=%1.2f;",ipt, fPtFractions[ipt]) ;
1226  parList+=onePar ;
1227  }
1228  for(Int_t ipt = 0; ipt < fNPtThresFrac ; ipt++)
1229  {
1230  snprintf(onePar, buffersize,"fSumPtThresholds[%d]=%1.2f;",ipt, fSumPtThresholds[ipt]) ;
1231  parList+=onePar ;
1232  }
1233  }
1234 
1235  //Get parameters set in base class.
1236  parList += GetBaseParametersList() ;
1237 
1238  //Get parameters set in IC class.
1239  if ( !fMakeSeveralIC )
1240  parList += GetIsolationCut()->GetICParametersList() ;
1241 
1242  return new TObjString(parList) ;
1243 }
1244 
1245 //________________________________________________________
1248 //________________________________________________________
1250 {
1251  TList * outputContainer = new TList() ;
1252  outputContainer->SetName("IsolatedParticleHistos") ;
1253 
1255  Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins();
1256  Int_t netabins = GetHistogramRanges()->GetHistoEtaBins();
1266  Int_t ntimebins= GetHistogramRanges()->GetHistoTimeBins();
1269 
1276 
1277  Int_t ndedxbins = GetHistogramRanges()->GetHistodEdxBins();
1280  Int_t nPoverEbins = GetHistogramRanges()->GetHistoEOverPBins();
1281  Float_t pOverEmax = GetHistogramRanges()->GetHistoEOverPMax();
1282  Float_t pOverEmin = GetHistogramRanges()->GetHistoEOverPMin();
1283 
1284  Int_t nptsumbins = GetHistogramRanges()->GetHistoNPtSumBins();
1287  Int_t nptinconebins = GetHistogramRanges()->GetHistoNPtInConeBins();
1288  Float_t ptinconemax = GetHistogramRanges()->GetHistoPtInConeMax();
1289  Float_t ptinconemin = GetHistogramRanges()->GetHistoPtInConeMin();
1290 
1294 
1295  // n cell bins for TH3
1296  Int_t cellBins = 15;
1297  Float_t cellMax = 15;
1298  Float_t cellMin = 0;
1299 
1300  // Init the number of modules, set in the class AliCalorimeterUtils
1301  //
1302  InitCaloParameters(); // See AliCaloTrackCorrBaseClass
1303 
1304  //Float_t ptthre = GetIsolationCut()->GetPtThreshold();
1305  //Float_t ptsumthre = GetIsolationCut()->GetSumPtThreshold();
1306  //Float_t ptfrac = GetIsolationCut()->GetPtFraction();
1309  Int_t particle = GetIsolationCut()->GetParticleTypeInCone() ;
1310 
1311  // For UE subtracted histograms, shift it down by 20 GeV
1312  // keep same histogram binning.
1313  // Same as done in AliIsolationCut::GetCreateOutput()
1314  if ( method >= AliIsolationCut::kSumBkgSubIC )
1315  {
1316  ptsummin = ptsummin-20;
1317  nptsumbins = nptsumbins*(1.+20./(ptsummax-ptsummin));
1318  }
1319 
1320  TString sThreshold = "";
1321  if ( method == AliIsolationCut::kSumPtIC ||
1322  method >= AliIsolationCut::kSumBkgSubIC )
1323  {
1324  sThreshold = Form(", %2.2f < #Sigma #it{p}_{T}^{in cone} < %2.2f GeV/#it{c}",
1325  GetIsolationCut()->GetSumPtThreshold(),
1326  GetIsolationCut()->GetSumPtThresholdMax());
1327  if ( GetIsolationCut()->GetSumPtThresholdMax() > 200 )
1328  sThreshold = Form(", #Sigma #it{p}_{T}^{in cone} = %2.2f GeV/#it{c}",
1329  GetIsolationCut()->GetSumPtThreshold());
1330  if ( method == AliIsolationCut::kSumBkgSubIC )
1331  sThreshold+="-UE #perp cones";
1332  else if ( method == AliIsolationCut::kSumBkgSubEtaBandIC )
1333  sThreshold+="-UE #eta band";
1334  else if ( method == AliIsolationCut::kSumBkgSubPhiBandIC )
1335  sThreshold+="-UE #varphi band";
1336  }
1337  else if ( method == AliIsolationCut::kPtThresIC)
1338  {
1339  sThreshold = Form(", %2.2f < #it{p}_{T}^{th} < %2.2f GeV/#it{c}",
1340  GetIsolationCut()->GetPtThreshold(),GetIsolationCut()->GetPtThresholdMax());
1341  if(GetIsolationCut()->GetSumPtThreshold() > 200)
1342  sThreshold = Form(", #it{p}_{T}^{th} = %2.2f GeV/#it{c}",
1343  GetIsolationCut()->GetPtThreshold());
1344  }
1345  else if ( method == AliIsolationCut::kPtFracIC)
1346  sThreshold = Form(", #Sigma #it{p}_{T}^{in cone}/#it{p}_{T}^{trig} = %2.2f" ,
1347  GetIsolationCut()->GetPtFraction());
1348 
1349  TString sParticle = ", x^{0,#pm}";
1350  if ( particle == AliIsolationCut::kOnlyNeutral ) sParticle = ", x^{0}";
1351  else if ( particle == AliIsolationCut::kOnlyCharged ) sParticle = ", x^{#pm}";
1352 
1353  TString parTitle = Form("#it{R} = %2.2f%s%s" ,GetIsolationCut()->GetConeSize(),sThreshold.Data(),sParticle.Data());
1354  TString parTitleR = Form("#it{R} = %2.2f%s" ,GetIsolationCut()->GetConeSize(),sParticle.Data());
1355  TString parTitleRCh = Form("#it{R} = %2.2f, x^{#pm}",GetIsolationCut()->GetConeSize());
1356  TString parTitleRNe = Form("#it{R} = %2.2f, x^{0}" ,GetIsolationCut()->GetConeSize());
1357 
1358  if( GetIsolationCut()->GetMinDistToTrigger() > 0 )
1359  {
1360  parTitle = Form("%2.2f<#it{R}<%2.2f%s%s" ,
1361  GetIsolationCut()->GetMinDistToTrigger(),GetIsolationCut()->GetConeSize(),sThreshold.Data(),sParticle.Data());
1362  parTitleR = Form("%2.2f<#it{R}<%2.2f%s" ,
1363  GetIsolationCut()->GetMinDistToTrigger(),GetIsolationCut()->GetConeSize(),sParticle.Data());
1364  parTitleRCh = Form("%2.2f<#it{R}<%2.2f, x^{#pm}",
1365  GetIsolationCut()->GetMinDistToTrigger(),GetIsolationCut()->GetConeSize());
1366  parTitleRNe = Form("%2.2f<#it{R}<%2.2f, x^{0}" ,
1367  GetIsolationCut()->GetMinDistToTrigger(),GetIsolationCut()->GetConeSize());
1368  }
1369 
1370  TString pileUpName[] = {"SPD","EMCAL","SPDOrEMCAL","SPDAndEMCAL","SPDAndNotEMCAL","EMCALAndNotSPD","NotSPDAndNotEMCAL"} ;
1371 
1372  // MC histograms title and name
1373  TString mcPartType[] = { "#gamma" , "#gamma_{prompt}" , "#gamma_{fragmentation}",
1374  "#pi^{0} (merged #gamma)", "#gamma_{#pi decay}" , "#gamma_{#pi decay} lost companion",
1375  "#eta (merged #gamma)" , "#gamma_{#eta decay}", "#gamma_{#eta decay} lost companion",
1376  "#gamma_{other decay}" , "e^{#pm}" , "hadrons?"} ;
1377 
1378  TString mcPartName[] = { "Photon","PhotonPrompt","PhotonFrag",
1379  "Pi0" ,"Pi0Decay" ,"Pi0DecayLostPair",
1380  "Eta" ,"EtaDecay" ,"EtaDecayLostPair",
1381  "OtherDecay","Electron","Hadron"} ;
1382 
1383  // Primary MC histograms title and name
1384  TString pptype[] = { "#gamma" , "#gamma_{#pi decay}" , "#gamma_{#eta decay}", "#gamma_{other decay}",
1385  "#gamma_{prompt}", "#gamma_{fragmentation}", "#gamma_{ISR}" ,
1386  "#pi^{0}" , "#eta"} ;
1387 
1388  TString ppname[] = { "Photon" , "PhotonPi0Decay","PhotonEtaDecay", "PhotonOtherDecay",
1389  "PhotonPrompt", "PhotonFrag" , "PhotonISR" ,
1390  "Pi0" , "Eta"} ;
1391 
1392  // Not Isolated histograms, reference histograms
1393 
1394  fhENoIso = new TH1F("hENoIso",
1395  Form("Number of not isolated leading particles vs #it{p}_{T}, %s",parTitle.Data()),
1396  nptbins,ptmin,ptmax);
1397  fhENoIso->SetYTitle("#it{counts}");
1398  fhENoIso->SetXTitle("E (GeV/#it{c})");
1399  outputContainer->Add(fhENoIso) ;
1400 
1401  fhPtNoIso = new TH1F("hPtNoIso",
1402  Form("Number of not isolated leading particles vs #it{p}_{T}, %s",parTitle.Data()),
1403  nptbins,ptmin,ptmax);
1404  fhPtNoIso->SetYTitle("#it{counts}");
1405  fhPtNoIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1406  outputContainer->Add(fhPtNoIso) ;
1407 
1409  {
1410  fhENoIsoExoTrigger = new TH1F
1411  ("hENoIsoExoTrigger",
1412  Form("Number of not isolated particles vs E, %s, exot>0.97",parTitle.Data()),
1413  nptbins,ptmin,ptmax);
1414  fhENoIsoExoTrigger->SetYTitle("d#it{N} / d#it{E}");
1415  fhENoIsoExoTrigger->SetXTitle("#it{E} (GeV/#it{c})");
1416  outputContainer->Add(fhENoIsoExoTrigger) ;
1417 
1418  fhPtNoIsoExoTrigger = new TH1F
1419  ("hPtNoIsoExoTrigger",
1420  Form("Number of not isolated particles vs #it{p}_{T}, %s, exot>0.97",parTitle.Data()),
1421  nptbins,ptmin,ptmax);
1422  fhPtNoIsoExoTrigger->SetYTitle("d#it{N} / #it{p}_{T}");
1423  fhPtNoIsoExoTrigger->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1424  outputContainer->Add(fhPtNoIsoExoTrigger) ;
1425  }
1426 
1427  fhEtaPhiNoIso = new TH2F("hEtaPhiNoIso",
1428  Form("Number of not isolated leading particles #eta vs #varphi, %s",parTitle.Data()),
1429  netabins,etamin,etamax,nphibins,phimin,phimax);
1430  fhEtaPhiNoIso->SetXTitle("#eta");
1431  fhEtaPhiNoIso->SetYTitle("#varphi (rad)");
1432  outputContainer->Add(fhEtaPhiNoIso) ;
1433 
1434  if(IsDataMC())
1435  {
1436  // For histograms in arrays, index in the array, corresponding to any particle origin
1437 
1438  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
1439  {
1440  fhPtNoIsoMC[imc] = new TH1F(Form("hPtNoIsoMC%s",mcPartName[imc].Data()),
1441  Form("#it{p}_{T} of NOT isolated %s, %s",mcPartType[imc].Data(),parTitle.Data()),
1442  nptbins,ptmin,ptmax);
1443  fhPtNoIsoMC[imc]->SetYTitle("#it{counts}");
1444  fhPtNoIsoMC[imc]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
1445  outputContainer->Add(fhPtNoIsoMC[imc]) ;
1446 
1447  fhPtIsoMC[imc] = new TH1F(Form("hPtMC%s",mcPartName[imc].Data()),
1448  Form("#it{p}_{T} of isolated %s, %s",mcPartType[imc].Data(),parTitle.Data()),
1449  nptbins,ptmin,ptmax);
1450  fhPtIsoMC[imc]->SetYTitle("#it{counts}");
1451  fhPtIsoMC[imc]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
1452  outputContainer->Add(fhPtIsoMC[imc]) ;
1453 
1454  fhPhiIsoMC[imc] = new TH2F(Form("hPhiMC%s",mcPartName[imc].Data()),
1455  Form("#varphi vs #it{p}_{T} of isolated %s, %s",mcPartType[imc].Data(),parTitle.Data()),
1456  nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1457  fhPhiIsoMC[imc]->SetYTitle("#varphi (rad)");
1458  fhPhiIsoMC[imc]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
1459  outputContainer->Add(fhPhiIsoMC[imc]) ;
1460 
1461  fhEtaIsoMC[imc] = new TH2F(Form("hEtaMC%s",mcPartName[imc].Data()),
1462  Form("#eta vs #it{p}_{T} of isolated %s, %s",mcPartType[imc].Data(),parTitle.Data()),
1463  nptbins,ptmin,ptmax,netabins,etamin,etamax);
1464  fhEtaIsoMC[imc]->SetYTitle("#eta");
1465  fhEtaIsoMC[imc]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
1466  outputContainer->Add(fhEtaIsoMC[imc]) ;
1467  }
1468  }
1469 
1470  // Histograms for tagged candidates as decay
1472  {
1473  TString isoName [] = {"NoIso","Iso"};
1474  TString isoTitle[] = {"Not isolated" ,"isolated"};
1475 
1476  for(Int_t ibit = 0; ibit < fNDecayBits; ibit++)
1477  {
1478  for(Int_t iso = 0; iso < 2; iso++)
1479  {
1480  if(fMakeSeveralIC && iso) continue;
1481  fhPtDecay[iso][ibit] =
1482  new TH1F(Form("hPtDecay%s_bit%d",isoName[iso].Data(),fDecayBits[ibit]),
1483  Form("Number of %s leading pi0 decay particles vs #it{p}_{T}, bit %d, %s",isoTitle[iso].Data(),fDecayBits[ibit],parTitle.Data()),
1484  nptbins,ptmin,ptmax);
1485  fhPtDecay[iso][ibit]->SetYTitle("#it{counts}");
1486  fhPtDecay[iso][ibit]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1487  outputContainer->Add(fhPtDecay[iso][ibit]) ;
1488 
1489  fhEtaPhiDecay[iso][ibit] =
1490  new TH2F(Form("hEtaPhiDecay%s_bit%d",isoName[iso].Data(),fDecayBits[ibit]),
1491  Form("Number of %s leading Pi0 decay particles #eta vs #varphi, bit %d, %s",isoTitle[iso].Data(),fDecayBits[ibit],parTitle.Data()),
1492  netabins,etamin,etamax,nphibins,phimin,phimax);
1493  fhEtaPhiDecay[iso][ibit]->SetXTitle("#eta");
1494  fhEtaPhiDecay[iso][ibit]->SetYTitle("#varphi (rad)");
1495  outputContainer->Add(fhEtaPhiDecay[iso][ibit]) ;
1496 
1497  if(fFillSSHisto)
1498  {
1499  fhPtLambda0Decay[iso][ibit] = new TH2F
1500  (Form("hPtLambda0Decay%s_bit%d",isoName[iso].Data(),fDecayBits[ibit]),
1501  Form("%s cluster : #it{p}_{T} vs #lambda_{0}, decay bit %d, %s",isoTitle[iso].Data(), fDecayBits[ibit], parTitle.Data()),
1502  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1503  fhPtLambda0Decay[iso][ibit]->SetYTitle("#lambda_{0}^{2}");
1504  fhPtLambda0Decay[iso][ibit]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1505  outputContainer->Add(fhPtLambda0Decay[iso][ibit]) ;
1506  }
1507 
1508  if(IsDataMC())
1509  {
1510  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
1511  {
1512  fhPtDecayMC[iso][ibit][imc] =
1513  new TH1F(Form("hPtDecay%s_bit%d_MC%s",isoName[iso].Data(),fDecayBits[ibit],mcPartName[imc].Data()),
1514  Form("#it{p}_{T} of %s, decay bit %d, %s, %s",isoTitle[iso].Data(),fDecayBits[ibit],mcPartType[imc].Data(),parTitle.Data()),
1515  nptbins,ptmin,ptmax);
1516  fhPtDecayMC[iso][ibit][imc]->SetYTitle("#it{counts}");
1517  fhPtDecayMC[iso][ibit][imc]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
1518  outputContainer->Add(fhPtDecayMC[iso][ibit][imc]) ;
1519  }// MC particle loop
1520  }// MC
1521  } // bit loop
1522  } //iso loop
1523  }// decay
1524 
1525  if(!fMakeSeveralIC)
1526  {
1527  TString isoName [] = {"NoIso","Iso"};
1528  TString isoTitle[] = {"Not isolated" ,"isolated"};
1529 
1530  fhEIso = new TH1F("hE",
1531  Form("Number of isolated particles vs E, %s",parTitle.Data()),
1532  nptbins,ptmin,ptmax);
1533  fhEIso->SetYTitle("d#it{N} / d#it{E}");
1534  fhEIso->SetXTitle("#it{E} (GeV/#it{c})");
1535  outputContainer->Add(fhEIso) ;
1536 
1537  fhPtIso = new TH1F("hPt",
1538  Form("Number of isolated particles vs #it{p}_{T}, %s",parTitle.Data()),
1539  nptbins,ptmin,ptmax);
1540  fhPtIso->SetYTitle("d#it{N} / #it{p}_{T}");
1541  fhPtIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1542  outputContainer->Add(fhPtIso) ;
1543 
1545  {
1546  fhEIsoExoTrigger = new TH1F
1547  ("hEIsoExoTrigger",
1548  Form("Number of isolated particles vs E, %s, exot>0.97",parTitle.Data()),
1549  nptbins,ptmin,ptmax);
1550  fhEIsoExoTrigger->SetYTitle("d#it{N} / d#it{E}");
1551  fhEIsoExoTrigger->SetXTitle("#it{E} (GeV/#it{c})");
1552  outputContainer->Add(fhEIsoExoTrigger) ;
1553 
1554  fhPtIsoExoTrigger = new TH1F
1555  ("hPtIsoExoTrigger",
1556  Form("Number of isolated particles vs #it{p}_{T}, %s, exot>0.97",parTitle.Data()),
1557  nptbins,ptmin,ptmax);
1558  fhPtIsoExoTrigger->SetYTitle("d#it{N} / #it{p}_{T}");
1559  fhPtIsoExoTrigger->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1560  outputContainer->Add(fhPtIsoExoTrigger) ;
1561  }
1562 
1563  fhPhiIso = new TH2F("hPhi",
1564  Form("Number of isolated particles vs #varphi, %s",parTitle.Data()),
1565  nptbins,ptmin,ptmax,nphibins,phimin,phimax);
1566  fhPhiIso->SetYTitle("#varphi (rad)");
1567  fhPhiIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1568  outputContainer->Add(fhPhiIso) ;
1569 
1570  fhEtaIso = new TH2F("hEta",
1571  Form("Number of isolated particles vs #eta, %s",parTitle.Data()),
1572  nptbins,ptmin,ptmax,netabins,etamin,etamax);
1573  fhEtaIso->SetYTitle("#eta");
1574  fhEtaIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1575  outputContainer->Add(fhEtaIso) ;
1576 
1577  fhEtaPhiIso = new TH2F("hEtaPhiIso",
1578  Form("Number of isolated particles #eta vs #varphi, %s",parTitle.Data()),
1579  netabins,etamin,etamax,nphibins,phimin,phimax);
1580  fhEtaPhiIso->SetXTitle("#eta");
1581  fhEtaPhiIso->SetYTitle("#varphi (rad)");
1582  outputContainer->Add(fhEtaPhiIso) ;
1583 
1585  (method == AliIsolationCut::kSumPtIC ||
1586  method >= AliIsolationCut::kSumBkgSubIC) )
1587  {
1588  TCustomBinning ptBinning;
1589  ptBinning.SetMinimum(ptmin);
1590  ptBinning.AddStep(ptmax, (ptmax-ptmin)/nptbins);
1591 // ptBinning.SetMinimum(GetMinPt());
1592 // ptBinning.AddStep(15,0.5); // 30
1593 // if ( GetMaxPt() > 15 ) ptBinning.AddStep( 30, 1.0); // 15
1594 // if ( GetMaxPt() > 30 ) ptBinning.AddStep( 60, 2.5); // 12
1595 // if ( GetMaxPt() > 60 ) ptBinning.AddStep(100, 5.0); // 8
1596 // if ( GetMaxPt() > 100) ptBinning.AddStep(200,10.0); // 10
1597 // if ( GetMaxPt() > 200) ptBinning.AddStep(300,20.0); // 5
1598  TArrayD ptBinsArray;
1599  ptBinning.CreateBinEdges(ptBinsArray);
1600 
1601  TCustomBinning sumBinning;
1602  sumBinning.SetMinimum(0.0);
1603  if ( method >= AliIsolationCut::kSumBkgSubIC )
1604  {
1605  sumBinning.SetMinimum(-50.0);
1606  sumBinning.AddStep(-25, 2.50); // 10
1607  sumBinning.AddStep(-10, 1.00); // 15
1608  sumBinning.AddStep(-4 , 0.50); // 12
1609  }
1610  else
1611  {
1612  sumBinning.SetMinimum(0.0);
1613  }
1614  sumBinning.AddStep( 4, 0.20); // 20
1615  sumBinning.AddStep( 10, 0.50); // 12
1616  sumBinning.AddStep( 25, 1.00); // 15
1617  sumBinning.AddStep( 50, 2.50); // 10
1618  sumBinning.AddStep(100, 5.00); // 10
1619  sumBinning.AddStep(200,10.00); // 10
1620  TArrayD sumBinsArray;
1621  sumBinning.CreateBinEdges(sumBinsArray);
1622 
1623  TCustomBinning ssBinning;
1624  ssBinning.SetMinimum(-0.01);
1625  ssBinning.AddStep(0.50,0.01); // 51
1626  ssBinning.AddStep(1.00,0.05); // 10
1627  ssBinning.AddStep(3.00,0.1); // 20
1628  ssBinning.AddStep(5.00,0.25); // 20
1629  TArrayD ssBinsArray;
1630  ssBinning.CreateBinEdges(ssBinsArray);
1631 
1632  fhPtM02SumPtCone = new TH3F
1633  (Form("hPtM02SumPtCone"),
1634  Form("ABCD 3D Matrix: #it{p}_{T} vs #sigma_{long}^{2} vs #it{p}_{T}^{iso}, #it{R} = %2.2f",r),
1635  ptBinsArray.GetSize() - 1, ptBinsArray.GetArray(),
1636  ssBinsArray.GetSize() - 1, ssBinsArray.GetArray(),
1637  sumBinsArray.GetSize() - 1, sumBinsArray.GetArray());
1638  fhPtM02SumPtCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1639  fhPtM02SumPtCone->SetYTitle("#sigma_{long}^{2}");
1640  fhPtM02SumPtCone->SetZTitle("#it{p}_{T}^{iso} (GeV/#it{c})");
1641  outputContainer->Add(fhPtM02SumPtCone) ;
1642  }
1643 
1645  {
1646  fhPtCentralityIso = new TH2F("hPtCentrality",
1647  Form("centrality vs #it{p}_{T} for isolated particles, %s",parTitle.Data()),
1648  nptbins,ptmin,ptmax, 100,0,100);
1649  fhPtCentralityIso->SetYTitle("centrality");
1650  fhPtCentralityIso->SetXTitle("#it{p}_{T}(GeV/#it{c})");
1651  outputContainer->Add(fhPtCentralityIso) ;
1652 
1653  fhPtEventPlaneIso = new TH2F("hPtEventPlane",
1654  Form("event plane angle vs #it{p}_{T} for isolated particles, %s",parTitle.Data()),
1655  nptbins,ptmin,ptmax, 100,0,TMath::Pi());
1656  fhPtEventPlaneIso->SetYTitle("Event plane angle (rad)");
1657  fhPtEventPlaneIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1658  outputContainer->Add(fhPtEventPlaneIso) ;
1659  }
1660 
1661  if(fFillNLMHistograms)
1662  {
1663  fhPtNLocMaxIso = new TH2F("hPtNLocMax",
1664  Form("Number of isolated particles vs #it{p}_{T}, %s",parTitle.Data()),
1665  nptbins,ptmin,ptmax,10,0,10);
1666  fhPtNLocMaxIso->SetYTitle("#it{NLM}");
1667  fhPtNLocMaxIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1668 
1669  fhPtNLocMaxNoIso = new TH2F("hPtNLocMaxNoIso",
1670  Form("Number of not isolated particles vs #it{p}_{T}, %s",parTitle.Data()),
1671  nptbins,ptmin,ptmax,10,0,10);
1672  fhPtNLocMaxNoIso->SetYTitle("#it{NLM}");
1673  fhPtNLocMaxNoIso->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1674  outputContainer->Add(fhPtNLocMaxNoIso) ;
1675  }
1676 
1677  if ( fFillPerSMHistograms )
1678  {
1679  for(Int_t ism = 0; ism < fNModules; ism++)
1680  {
1681  if ( ism < fFirstModule || ism > fLastModule ) continue;
1682 
1683  fhConeSumPtPerSM[ism] = new TH2F
1684  (Form("hConePtSum_SM%d",ism),
1685  Form("Track and Cluster #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, SM %d",r,ism),
1686  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1687  fhConeSumPtPerSM[ism]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
1688  fhConeSumPtPerSM[ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1689  outputContainer->Add(fhConeSumPtPerSM[ism]) ;
1690  }
1691  }
1692 
1694  {
1695  for(Int_t itc = 0; itc < 16; itc++)
1696  {
1697  fhConeSumPtPerTCardIndex[itc] = new TH2F
1698  (Form("hConePtSum_TC%d",itc),
1699  Form("Track and Cluster #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, TC index %d",r,itc),
1700  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1701  fhConeSumPtPerTCardIndex[itc]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
1702  fhConeSumPtPerTCardIndex[itc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1703  outputContainer->Add(fhConeSumPtPerTCardIndex[itc]) ;
1704  }
1705  }
1706 
1708  {
1710  ("hConePtSumExoTrigger",
1711  Form("#Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, exo trigger",r),
1712  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
1713  fhConeSumPtExoTrigger->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
1714  fhConeSumPtExoTrigger->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
1715  outputContainer->Add(fhConeSumPtExoTrigger) ;
1716  }
1717 
1718  if ( fFillPerSMHistograms )
1719  {
1720  for(Int_t ism = 0; ism < fNModules; ism++)
1721  {
1722  if ( ism < fFirstModule || ism > fLastModule ) continue;
1723 
1724  fhPtInConePerSM[ism] = new TH2F
1725  (Form("hPtInCone_SM%d",ism),
1726  Form("#it{p}_{T} of clusters and tracks in isolation cone for %s, SM %d", parTitleR.Data(),ism),
1727  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
1728  fhPtInConePerSM[ism]->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
1729  fhPtInConePerSM[ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1730  outputContainer->Add(fhPtInConePerSM[ism]) ;
1731  }
1732  }
1733 
1735  {
1736  for(Int_t itc = 0; itc < 16; itc++)
1737  {
1738  fhPtInConePerTCardIndex[itc] = new TH2F
1739  (Form("hPtInCone_TC%d",itc),
1740  Form("#it{p}_{T} of clusters and tracks in isolation cone for %s, TC index %d", parTitleR.Data(),itc),
1741  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
1742  fhPtInConePerTCardIndex[itc]->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
1743  fhPtInConePerTCardIndex[itc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1744  outputContainer->Add(fhPtInConePerTCardIndex[itc]) ;
1745  }
1746  }
1747 
1749  {
1750  fhPtInConeExoTrigger = new TH2F("hPtInConeExoTrigger",
1751  Form("#it{p}_{T} in isolation cone for %s, exotic trigger",parTitleR.Data()),
1752  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
1753  fhPtInConeExoTrigger->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
1754  fhPtInConeExoTrigger->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1755  outputContainer->Add(fhPtInConeExoTrigger) ;
1756  }
1757 
1759  {
1760  fhPtLeadConeBin = new TH1F*[fNBkgBin];
1761  fhSumPtConeBin = new TH1F*[fNBkgBin];
1762 
1763  if(fFillSSHisto)
1764  {
1767  }
1768 
1770  {
1773  }
1774 
1775  if(IsDataMC())
1776  {
1777  fhPtLeadConeBinMC = new TH1F*[fNBkgBin*fgkNmcTypes];
1778  fhSumPtConeBinMC = new TH1F*[fNBkgBin*fgkNmcTypes];
1779 
1780  if(fFillSSHisto)
1781  {
1784  }
1785  }
1786 
1787  for(Int_t ibin = 0; ibin < fNBkgBin; ibin++)
1788  {
1789  fhPtLeadConeBin[ibin] = new TH1F
1790  (Form("hPtLeadCone_Bin%d",ibin),
1791  Form("cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1792  fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], parTitleR.Data()),nptbins,ptmin,ptmax);
1793  fhPtLeadConeBin[ibin]->SetYTitle("d #it{N} / d #it{p}_{T}");
1794  fhPtLeadConeBin[ibin]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1795  outputContainer->Add(fhPtLeadConeBin[ibin]) ;
1796 
1797  fhSumPtConeBin[ibin] = new TH1F
1798  (Form("hSumPtCone_Bin%d",ibin),
1799  Form("in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1800  fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], parTitleR.Data()),nptbins,ptmin,ptmax);
1801  fhSumPtConeBin[ibin]->SetYTitle("d #it{N} / d #it{p}_{T}");
1802  fhSumPtConeBin[ibin]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1803  outputContainer->Add(fhSumPtConeBin[ibin]) ;
1804 
1806  {
1807  for(Int_t idecay = 0; idecay < fNDecayBits; idecay++)
1808  {
1809  Int_t bindecay = ibin+idecay*fNBkgBin;
1810 
1811  fhPtLeadConeBinDecay[bindecay] = new TH1F
1812  (Form("hPtLeadCone_Bin%d_DecayBit%d",ibin,fDecayBits[idecay]),
1813  Form("Decay bit %d, cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1814  fDecayBits[idecay],fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], parTitleR.Data()),nptbins,ptmin,ptmax);
1815  fhPtLeadConeBinDecay[bindecay]->SetYTitle("d #it{N} / d #it{p}_{T}");
1816  fhPtLeadConeBinDecay[bindecay]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1817  outputContainer->Add(fhPtLeadConeBinDecay[bindecay]) ;
1818 
1819  fhSumPtConeBinDecay[bindecay] = new TH1F
1820  (Form("hSumPtCone_Bin%d_DecayBit%d",ibin,fDecayBits[idecay]),
1821  Form("Decay bit %d, in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1822  fDecayBits[idecay],fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], parTitleR.Data()),nptbins,ptmin,ptmax);
1823  fhSumPtConeBinDecay[bindecay]->SetYTitle("d #it{N} / d #it{p}_{T}");
1824  fhSumPtConeBinDecay[bindecay]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1825  outputContainer->Add(fhSumPtConeBinDecay[bindecay]) ;
1826  }
1827  }
1828 
1829  if(IsDataMC())
1830  {
1831  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
1832  {
1833  Int_t binmc = ibin+imc*fNBkgBin;
1834  fhPtLeadConeBinMC[binmc] = new TH1F
1835  (Form("hPtLeadCone_Bin%d_MC%s",ibin, mcPartName[imc].Data()),
1836  Form("in cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, MC %s, %s",
1837  fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),nptbins,ptmin,ptmax);
1838  fhPtLeadConeBinMC[binmc]->SetYTitle("d #it{N} / d #it{p}_{T}");
1839  fhPtLeadConeBinMC[binmc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1840  outputContainer->Add(fhPtLeadConeBinMC[binmc]) ;
1841 
1842  fhSumPtConeBinMC[binmc] = new TH1F
1843  (Form("hSumPtCone_Bin%d_MC%s",ibin,mcPartName[imc].Data()),
1844  Form("in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, MC %s, %s",
1845  fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),nptbins,ptmin,ptmax);
1846  fhSumPtConeBinMC[binmc]->SetYTitle("d #it{N} / d #it{p}_{T}");
1847  fhSumPtConeBinMC[binmc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1848  outputContainer->Add(fhSumPtConeBinMC[binmc]) ;
1849 
1850  } // MC particle loop
1851  }
1852 
1853  if(fFillSSHisto)
1854  {
1855  fhPtLeadConeBinLambda0[ibin] = new TH2F
1856  (Form("hPtLeadConeLambda0_Bin%d",ibin),
1857  Form("#lambda_{0}, in cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, %s",
1858  fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], parTitleR.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1859  fhPtLeadConeBinLambda0[ibin]->SetYTitle("#lambda_{0}^{2}");
1860  fhPtLeadConeBinLambda0[ibin]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1861  outputContainer->Add(fhPtLeadConeBinLambda0[ibin]) ;
1862 
1863  fhSumPtConeBinLambda0[ibin] = new TH2F
1864  (Form("hSumPtConeLambda0_Bin%d",ibin),
1865  Form("#lambda_{0}, in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, %s",
1866  fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], parTitleR.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1867  fhSumPtConeBinLambda0[ibin]->SetYTitle("#lambda_{0}^{2}");
1868  fhSumPtConeBinLambda0[ibin]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1869  outputContainer->Add(fhSumPtConeBinLambda0[ibin]) ;
1870 
1871  if(IsDataMC())
1872  {
1873  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
1874  {
1875  Int_t binmc = ibin+imc*fNBkgBin;
1876  fhPtLeadConeBinLambda0MC[binmc] = new TH2F
1877  (Form("hPtLeadConeLambda0_Bin%d_MC%s",ibin, mcPartName[imc].Data()),
1878  Form("#lambda_{0}, in cone %2.2f<#it{p}_{T}^{leading}<%2.2f GeV/#it{c}, MC %s, %s",
1879  fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1880  fhPtLeadConeBinLambda0MC[binmc]->SetYTitle("#lambda_{0}^{2}");
1881  fhPtLeadConeBinLambda0MC[binmc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1882  outputContainer->Add(fhPtLeadConeBinLambda0MC[binmc]) ;
1883 
1884  fhSumPtConeBinLambda0MC[binmc] = new TH2F
1885  (Form("hSumPtConeLambda0_Bin%d_MC%s",ibin,mcPartName[imc].Data()),
1886  Form("#lambda_{0}, in cone %2.2f <#Sigma #it{p}_{T}< %2.2f GeV/#it{c}, MC %s, %s",
1887  fBkgBinLimit[ibin],fBkgBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
1888  fhSumPtConeBinLambda0MC[binmc]->SetYTitle("#lambda_{0}^{2}");
1889  fhSumPtConeBinLambda0MC[binmc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
1890  outputContainer->Add(fhSumPtConeBinLambda0MC[binmc]) ;
1891 
1892  } // MC particle loop
1893  }
1894  } // shower shape on
1895 
1896  } // pt in cone bin loop
1897  } // bkg cone pt bin histograms
1898 
1900  {
1901  fhPtTrigBinPtLeadCone = new TH1F*[fNPtTrigBin];
1902  fhPtTrigBinSumPtCone = new TH1F*[fNPtTrigBin];
1903 
1906 
1907  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1908  {
1911 
1914  }
1915 
1916  if(IsDataMC())
1917  {
1920  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1921  {
1924  }
1925  }
1926 
1927  if(fFillSSHisto)
1928  {
1931  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1932  {
1935  }
1936 
1937  if(IsDataMC())
1938  {
1941  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1942  {
1945  }
1946 
1948  {
1951  if ( GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1952  {
1957  }
1958  }
1959  }
1960  }
1961 
1962  for(Int_t ibin = 0; ibin < fNPtTrigBin; ibin++)
1963  {
1964  fhPtTrigBinPtLeadCone[ibin] = new TH1F
1965  (Form("hPtTrigBin_PtLeadCone_Bin%d",ibin),
1966  Form("#it{p}_{T}^{lead. in cone}, %2.2f<#it{p}_{T}^{cand}<%2.2f GeV/#it{c}, %s",
1967  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleR.Data()),nptbins,ptmin,ptmax);
1968  fhPtTrigBinPtLeadCone[ibin]->SetYTitle("d #it{N} / d #it{p}_{T}");
1969  fhPtTrigBinPtLeadCone[ibin]->SetXTitle("#it{p}_{T}^{in cone} (GeV/#it{c})");
1970  outputContainer->Add(fhPtTrigBinPtLeadCone[ibin]) ;
1971 
1972  fhPtTrigBinSumPtCone[ibin] = new TH1F
1973  (Form("hPtTrigBin_SumPtCone_Bin%d",ibin),
1974  Form("#Sigma #it{p}_{T}^{in cone} %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, %s",
1975  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleR.Data()),nptsumbins,ptsummin,ptsummax);
1976  fhPtTrigBinSumPtCone[ibin]->SetYTitle("d #it{N} / d #it{p}_{T}");
1977  fhPtTrigBinSumPtCone[ibin]->SetXTitle("#Sigma #it{p}_{T}^{in cone} (GeV/#it{c})");
1978  outputContainer->Add(fhPtTrigBinSumPtCone[ibin]) ;
1979 
1980  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
1981  {
1982  fhPtTrigBinSumPtTrackCone[ibin] = new TH1F
1983  (Form("hPtTrigBin_SumPtTrackCone_Bin%d",ibin),
1984  Form("#Sigma #it{p}_{T}^{in cone}_{track} %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, %s",
1985  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleRCh.Data()),nptsumbins,ptsummin,ptsummax);
1986  fhPtTrigBinSumPtTrackCone[ibin]->SetYTitle("d #it{N} / d #it{p}_{T}");
1987  fhPtTrigBinSumPtTrackCone[ibin]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{track} (GeV/#it{c})");
1988  outputContainer->Add(fhPtTrigBinSumPtTrackCone[ibin]) ;
1989 
1990  fhPtTrigBinSumPtClusterCone[ibin] = new TH1F
1991  (Form("hPtTrigBin_SumPtClusterCone_Bin%d",ibin),
1992  Form("#Sigma #it{p}_{T}^{in cone}_{cluster} %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, %s",
1993  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleRNe.Data()),nptsumbins,ptsummin,ptsummax);
1994  fhPtTrigBinSumPtClusterCone[ibin]->SetYTitle("d #it{N} / d #it{p}_{T}");
1995  fhPtTrigBinSumPtClusterCone[ibin]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{cluster} (GeV/#it{c})");
1996  outputContainer->Add(fhPtTrigBinSumPtClusterCone[ibin]) ;
1997  }
1998 
2000  {
2001  for(Int_t idecay = 0; idecay < fNDecayBits; idecay++)
2002  {
2003  Int_t binDecay = ibin+idecay*fNPtTrigBin;
2004 
2005  fhPtTrigBinPtLeadConeDecay[binDecay] = new TH1F
2006  (Form("hPtTrigBin_PtLeadCone_Bin%d_DecayBit%d",ibin,fDecayBits[idecay]),
2007  Form("Decay bit %d, #it{p}_{T}^{lead. in cone}, %2.2f<#it{p}_{T}^{cand}<%2.2f GeV/#it{c}, %s",
2008  fDecayBits[idecay],fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleR.Data()),nptbins,ptmin,ptmax);
2009  fhPtTrigBinPtLeadConeDecay[binDecay]->SetYTitle("d #it{N} / d #it{p}_{T}");
2010  fhPtTrigBinPtLeadConeDecay[binDecay]->SetXTitle("#it{p}_{T}^{lead in cone} (GeV/#it{c})");
2011  outputContainer->Add(fhPtTrigBinPtLeadConeDecay[binDecay]) ;
2012 
2013  fhPtTrigBinSumPtConeDecay[binDecay] = new TH1F
2014  (Form("hPtTrigBin_SumPtCone_Bin%d_DecayBit%d",ibin,fDecayBits[idecay]),
2015  Form("Decay bit %d, #Sigma #it{p}_{T}^{in cone} %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, %s",
2016  fDecayBits[idecay],fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleR.Data()),nptsumbins,ptsummin,ptsummax);
2017  fhPtTrigBinSumPtConeDecay[binDecay]->SetYTitle("d #it{N} / d #it{p}_{T}");
2018  fhPtTrigBinSumPtConeDecay[binDecay]->SetXTitle("#Sigma #it{p}_{T}^{in cone} (GeV/#it{c})");
2019  outputContainer->Add(fhPtTrigBinSumPtConeDecay[binDecay]) ;
2020 
2021  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
2022  {
2023  fhPtTrigBinSumPtTrackConeDecay[binDecay] = new TH1F
2024  (Form("hPtTrigBin_SumPtTrackCone_Bin%d_DecayBit%d",ibin,fDecayBits[idecay]),
2025  Form("Decay bit %d, #Sigma #it{p}_{T}^{in cone}_{track} %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, %s",
2026  fDecayBits[idecay],fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleRCh.Data()),nptsumbins,ptsummin,ptsummax);
2027  fhPtTrigBinSumPtTrackConeDecay[binDecay]->SetYTitle("d #it{N} / d #it{p}_{T}");
2028  fhPtTrigBinSumPtTrackConeDecay[binDecay]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{track} (GeV/#it{c})");
2029  outputContainer->Add(fhPtTrigBinSumPtTrackConeDecay[binDecay]) ;
2030 
2031  fhPtTrigBinSumPtClusterConeDecay[binDecay] = new TH1F
2032  (Form("hPtTrigBin_SumPtClusterCone_Bin%d_DecayBit%d",ibin,fDecayBits[idecay]),
2033  Form("Decay bit %d, #Sigma #it{p}_{T}^{in cone}_{cluster} %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, %s",
2034  fDecayBits[idecay],fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleRNe.Data()),nptsumbins,ptsummin,ptsummax);
2035  fhPtTrigBinSumPtClusterConeDecay[binDecay]->SetYTitle("d #it{N} / d #it{p}_{T}");
2036  fhPtTrigBinSumPtClusterConeDecay[binDecay]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{cluster} (GeV/#it{c})");
2037  outputContainer->Add(fhPtTrigBinSumPtClusterConeDecay[binDecay]) ;
2038  }
2039  }
2040  }
2041 
2042  if(IsDataMC())
2043  {
2044  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
2045  {
2046  Int_t binmc = ibin+imc*fNPtTrigBin;
2047  fhPtTrigBinPtLeadConeMC[binmc] = new TH1F
2048  (Form("hPtTrigBin_PtLeadCone_Bin%d_MC%s",ibin, mcPartName[imc].Data()),
2049  Form("#it{p}_{T}^{lead. in cone}, %2.2f<#it{p}_{T}^{cand}<%2.2f GeV/#it{c}, MC %s, %s",
2050  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),nptbins,ptmin,ptmax);
2051  fhPtTrigBinPtLeadConeMC[binmc]->SetYTitle("d #it{N} / d #it{p}_{T}");
2052  fhPtTrigBinPtLeadConeMC[binmc]->SetXTitle("#it{p}_{T}^{lead in cone} (GeV/#it{c})");
2053  outputContainer->Add(fhPtTrigBinPtLeadConeMC[binmc]) ;
2054 
2055  fhPtTrigBinSumPtConeMC[binmc] = new TH1F
2056  (Form("hPtTrigBin_SumPtCone_Bin%d_MC%s",ibin,mcPartName[imc].Data()),
2057  Form("#Sigma #it{p}_{T}^{in cone}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC %s, %s",
2058  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),nptsumbins,ptsummin,ptsummax);
2059  fhPtTrigBinSumPtConeMC[binmc]->SetYTitle("d #it{N} / d #it{p}_{T}");
2060  fhPtTrigBinSumPtConeMC[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone} (GeV/#it{c})");
2061  outputContainer->Add(fhPtTrigBinSumPtConeMC[binmc]) ;
2062 
2063  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
2064  {
2065  fhPtTrigBinSumPtTrackConeMC[binmc] = new TH1F
2066  (Form("hPtTrigBin_SumPtTrackCone_Bin%d_MC%s",ibin,mcPartName[imc].Data()),
2067  Form("#Sigma #it{p}_{T}^{in cone}_{track}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC %s, %s",
2068  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleRCh.Data()),nptsumbins,ptsummin,ptsummax);
2069  fhPtTrigBinSumPtTrackConeMC[binmc]->SetYTitle("d #it{N} / d #it{p}_{T}");
2070  fhPtTrigBinSumPtTrackConeMC[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{track} (GeV/#it{c})");
2071  outputContainer->Add(fhPtTrigBinSumPtTrackConeMC[binmc]) ;
2072 
2073  fhPtTrigBinSumPtClusterConeMC[binmc] = new TH1F
2074  (Form("hPtTrigBin_SumPtClusterCone_Bin%d_MC%s",ibin,mcPartName[imc].Data()),
2075  Form("#Sigma #it{p}_{T}^{in cone}_{cluster}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC %s, %s",
2076  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleRNe.Data()),nptsumbins,ptsummin,ptsummax);
2077  fhPtTrigBinSumPtClusterConeMC[binmc]->SetYTitle("d #it{N} / d #it{p}_{T}");
2078  fhPtTrigBinSumPtClusterConeMC[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone} (GeV/#it{c})");
2079  outputContainer->Add(fhPtTrigBinSumPtClusterConeMC[binmc]) ;
2080  }
2081  } // MC particle loop
2082  } // MC
2083 
2084  if(fFillSSHisto)
2085  {
2087  (Form("hPtTrigBin_PtLeadConeVSLambda0_Bin%d",ibin),
2088  Form("#lambda_{0} vs #it{p}_{T}^{lead. in cone}, %2.2f<#it{p}_{T}^{cand}<%2.2f GeV/#it{c}, %s",
2089  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleR.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2090  fhPtTrigBinLambda0vsPtLeadCone[ibin]->SetYTitle("#lambda_{0}^{2}");
2091  fhPtTrigBinLambda0vsPtLeadCone[ibin]->SetXTitle("#it{p}_{T}^{lead in cone} (GeV/#it{c})");
2092  outputContainer->Add(fhPtTrigBinLambda0vsPtLeadCone[ibin]) ;
2093 
2095  (Form("hPtTrigBin_SumPtConeVSLambda0_Bin%d",ibin),
2096  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone} %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, %s",
2097  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleR.Data()),nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2098  fhPtTrigBinLambda0vsSumPtCone[ibin]->SetYTitle("#lambda_{0}^{2}");
2099  fhPtTrigBinLambda0vsSumPtCone[ibin]->SetXTitle("#Sigma #it{p}_{T}^{in cone} (GeV/#it{c})");
2100  outputContainer->Add(fhPtTrigBinLambda0vsSumPtCone[ibin]) ;
2101 
2102  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
2103  {
2105  (Form("hPtTrigBin_SumPtTrackConeVSLambda0_Bin%d",ibin),
2106  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}_{track} %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, %s",
2107  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleRCh.Data()),nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2108  fhPtTrigBinLambda0vsSumPtTrackCone[ibin]->SetYTitle("#lambda_{0}^{2}");
2109  fhPtTrigBinLambda0vsSumPtTrackCone[ibin]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{track} (GeV/#it{c})");
2110  outputContainer->Add(fhPtTrigBinLambda0vsSumPtTrackCone[ibin]) ;
2111 
2113  (Form("hPtTrigBin_SumPtClusterConeVSLambda0_Bin%d",ibin),
2114  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}_{cluster} %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, %s",
2115  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], parTitleRNe.Data()),nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2116  fhPtTrigBinLambda0vsSumPtClusterCone[ibin]->SetYTitle("#lambda_{0}^{2}");
2117  fhPtTrigBinLambda0vsSumPtClusterCone[ibin]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{cluster} (GeV/#it{c})");
2118  outputContainer->Add(fhPtTrigBinLambda0vsSumPtClusterCone[ibin]) ;
2119  }
2120 
2121  if(IsDataMC())
2122  {
2123  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
2124  {
2125  Int_t binmc = ibin+imc*fNPtTrigBin;
2127  (Form("hPtTrigBin_PtLeadConeVSLambda0_Bin%d_MC%s",ibin, mcPartName[imc].Data()),
2128  Form("#lambda_{0} vs #it{p}_{T}^{lead. in cone}, %2.2f<#it{p}_{T}^{cand}<%2.2f GeV/#it{c}, MC %s, %s",
2129  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),
2130  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2131  fhPtTrigBinLambda0vsPtLeadConeMC[binmc]->SetYTitle("#lambda_{0}^{2}");
2132  fhPtTrigBinLambda0vsPtLeadConeMC[binmc]->SetXTitle("#it{p}_{T}^{lead in cone} (GeV/#it{c})");
2133  outputContainer->Add(fhPtTrigBinLambda0vsPtLeadConeMC[binmc]) ;
2134 
2136  (Form("hPtTrigBin_SumPtConeVSLambda0_Bin%d_MC%s",ibin,mcPartName[imc].Data()),
2137  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC %s, %s",
2138  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),
2139  nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2140  fhPtTrigBinLambda0vsSumPtConeMC[binmc]->SetYTitle("#lambda_{0}^{2}");
2141  fhPtTrigBinLambda0vsSumPtConeMC[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone} (GeV/#it{c})");
2142  outputContainer->Add(fhPtTrigBinLambda0vsSumPtConeMC[binmc]) ;
2143 
2144  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
2145  {
2147  (Form("hPtTrigBin_SumPtTrackConeVSLambda0_Bin%d_MC%s",ibin,mcPartName[imc].Data()),
2148  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}_{track}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC %s, %s",
2149  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleRCh.Data()),
2150  nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2151  fhPtTrigBinLambda0vsSumPtTrackConeMC[binmc]->SetYTitle("#lambda_{0}^{2}");
2152  fhPtTrigBinLambda0vsSumPtTrackConeMC[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{track} (GeV/#it{c})");
2153  outputContainer->Add(fhPtTrigBinLambda0vsSumPtTrackConeMC[binmc]) ;
2154 
2156  (Form("hPtTrigBin_SumPtClusterConeVSLambda0_Bin%d_MC%s",ibin,mcPartName[imc].Data()),
2157  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}_{cluster}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC %s, %s",
2158  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleRNe.Data()),
2159  nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2160  fhPtTrigBinLambda0vsSumPtClusterConeMC[binmc]->SetYTitle("#lambda_{0}^{2}");
2161  fhPtTrigBinLambda0vsSumPtClusterConeMC[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{cluster} (GeV/#it{c})");
2162  outputContainer->Add(fhPtTrigBinLambda0vsSumPtClusterConeMC[binmc]) ;
2163  }
2164 
2166  {
2168  (Form("hPtTrigBin_SumPtConeVSLambda0_Bin%d_MC_NoOverlap%s",ibin,mcPartName[imc].Data()),
2169  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC, No Overlaps %s, %s",
2170  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),
2171  nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2172  fhPtTrigBinLambda0vsSumPtConeMCNoOverlap[binmc]->SetYTitle("#lambda_{0}^{2}");
2173  fhPtTrigBinLambda0vsSumPtConeMCNoOverlap[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone} (GeV/#it{c})");
2174  outputContainer->Add(fhPtTrigBinLambda0vsSumPtConeMCNoOverlap[binmc]) ;
2175 
2177  (Form("hPtTrigBin_SumPtConeVSLambda0_Bin%d_MC_1Overlap%s",ibin,mcPartName[imc].Data()),
2178  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC, 1 Overlap %s, %s",
2179  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleR.Data()),
2180  nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2181  fhPtTrigBinLambda0vsSumPtConeMC1Overlap[binmc]->SetYTitle("#lambda_{0}^{2}");
2182  fhPtTrigBinLambda0vsSumPtConeMC1Overlap[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone} (GeV/#it{c})");
2183  outputContainer->Add(fhPtTrigBinLambda0vsSumPtConeMC1Overlap[binmc]) ;
2184 
2185  if(GetIsolationCut()->GetParticleTypeInCone()==AliIsolationCut::kNeutralAndCharged )
2186  {
2188  (Form("hPtTrigBin_SumPtTrackConeVSLambda0_Bin%d_MC_NoOverlap%s",ibin,mcPartName[imc].Data()),
2189  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}_{track}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC, No Overlaps %s, %s",
2190  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleRCh.Data()),
2191  nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2192  fhPtTrigBinLambda0vsSumPtTrackConeMCNoOverlap[binmc]->SetYTitle("#lambda_{0}^{2}");
2193  fhPtTrigBinLambda0vsSumPtTrackConeMCNoOverlap[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{track} (GeV/#it{c})");
2194  outputContainer->Add(fhPtTrigBinLambda0vsSumPtTrackConeMCNoOverlap[binmc]) ;
2195 
2197  (Form("hPtTrigBin_SumPtClusterConeVSLambda0_Bin%d_MC_NoOverlap%s",ibin,mcPartName[imc].Data()),
2198  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}_{cluster}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC, No Overlaps %s, %s",
2199  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleRNe.Data()),
2200  nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2201  fhPtTrigBinLambda0vsSumPtClusterConeMCNoOverlap[binmc]->SetYTitle("#lambda_{0}^{2}");
2202  fhPtTrigBinLambda0vsSumPtClusterConeMCNoOverlap[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{cluster} (GeV/#it{c})");
2203  outputContainer->Add(fhPtTrigBinLambda0vsSumPtClusterConeMCNoOverlap[binmc]) ;
2204 
2206  (Form("hPtTrigBin_SumPtTrackConeVSLambda0_Bin%d_MC_1Overlap%s",ibin,mcPartName[imc].Data()),
2207  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}_{track}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC, 1 Overlap %s, %s",
2208  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleRCh.Data()),
2209  nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2210  fhPtTrigBinLambda0vsSumPtTrackConeMC1Overlap[binmc]->SetYTitle("#lambda_{0}^{2}");
2211  fhPtTrigBinLambda0vsSumPtTrackConeMC1Overlap[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{track} (GeV/#it{c})");
2212  outputContainer->Add(fhPtTrigBinLambda0vsSumPtTrackConeMC1Overlap[binmc]) ;
2213 
2215  (Form("hPtTrigBin_SumPtClusterConeVSLambda0_Bin%d_MC_1Overlap%s",ibin,mcPartName[imc].Data()),
2216  Form("#lambda_{0} vs #Sigma #it{p}_{T}^{in cone}_{cluster}, %2.2f <#it{p}_{T}^{cand}< %2.2f GeV/#it{c}, MC, 1 Overlap %s, %s",
2217  fPtTrigBinLimit[ibin],fPtTrigBinLimit[ibin+1], mcPartType[imc].Data(), parTitleRNe.Data()),
2218  nptsumbins,ptsummin,ptsummax,ssbins,ssmin,ssmax);
2219  fhPtTrigBinLambda0vsSumPtClusterConeMC1Overlap[binmc]->SetYTitle("#lambda_{0}^{2}");
2220  fhPtTrigBinLambda0vsSumPtClusterConeMC1Overlap[binmc]->SetXTitle("#Sigma #it{p}_{T}^{in cone}_{cluster} (GeV/#it{c})");
2221  outputContainer->Add(fhPtTrigBinLambda0vsSumPtClusterConeMC1Overlap[binmc]) ;
2222 
2223  }
2224  } // Overlap histograms
2225  } // MC particle loop
2226  } // MC
2227  } // SS histo
2228  } // pt trig bin loop
2229  } // pt trig bin histograms
2230 
2232  {
2233  fhPtInConeCent = new TH2F("hPtInConeCent",
2234  Form("#it{p}_{T} in isolation cone for %s",parTitleR.Data()),
2235  100,0,100,nptinconebins,ptinconemin,ptinconemax);
2236  fhPtInConeCent->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
2237  fhPtInConeCent->SetXTitle("centrality");
2238  outputContainer->Add(fhPtInConeCent) ;
2239  }
2240 
2241  // Cluster only histograms
2242  if(GetIsolationCut()->GetParticleTypeInCone()!=AliIsolationCut::kOnlyCharged)
2243  {
2244  if ( fFillPerSMHistograms )
2245  {
2246  for(Int_t ism = 0; ism < fNModules; ism++)
2247  {
2248  if ( ism < fFirstModule || ism > fLastModule ) continue;
2249 
2250  fhConeSumPtClusterPerSM[ism] = new TH2F
2251  (Form("hConePtSumCluster_SM%d",ism),
2252  Form("Cluster #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, SM %d",r,ism),
2253  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2254  fhConeSumPtClusterPerSM[ism]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2255  fhConeSumPtClusterPerSM[ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2256  outputContainer->Add(fhConeSumPtClusterPerSM[ism]) ;
2257  }
2258  }
2259 
2261  {
2262  for(Int_t itc = 0; itc < 16; itc++)
2263  {
2265  (Form("hConePtSumCluster_TC%d",itc),
2266  Form("Cluster #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, TC index %d",r,itc),
2267  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2268  fhConeSumPtClusterPerTCardIndex[itc]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2269  fhConeSumPtClusterPerTCardIndex[itc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2270  outputContainer->Add(fhConeSumPtClusterPerTCardIndex[itc]) ;
2271  }
2272  }
2273 
2275  {
2277  ("hConePtSumClusterExoTrigger",
2278  Form("Cluster #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, exo trigger",r),
2279  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2280  fhConeSumPtClusterExoTrigger->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2281  fhConeSumPtClusterExoTrigger->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
2282  outputContainer->Add(fhConeSumPtClusterExoTrigger) ;
2283  }
2284 
2285  if(fStudyPtCutInCone)
2286  {
2288  ("hConeNClusterPerMinPtCut",
2289  Form("N clusters, different min #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f",r),
2290  fNPtCutsInCone,-0.5,fNPtCutsInCone-0.5,nmultbin,multmin,multmax);
2291  fhConeNClusterPerMinPtCut->SetYTitle("#it{N}^{cluster}");
2292  fhConeNClusterPerMinPtCut->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2293  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2294  fhConeNClusterPerMinPtCut->GetXaxis()->SetBinLabel(i ,Form("%2.1f",fMinPtCutInCone[i-1]));
2295  outputContainer->Add(fhConeNClusterPerMinPtCut) ;
2296 
2298  ("hConeNClusterPerMinPtCutLargePtTrig",
2299  Form("N cluster, different min #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f, #it{p}_{T}^{trig} > 10 GeV",r),
2300  fNPtCutsInCone,-0.5,fNPtCutsInCone-0.5,nmultbin,multmin,multmax);
2301  fhConeNClusterPerMinPtCutLargePtTrig->SetYTitle("#it{N}^{cluster}");
2302  fhConeNClusterPerMinPtCutLargePtTrig->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2303  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2304  fhConeNClusterPerMinPtCutLargePtTrig->GetXaxis()->SetBinLabel(i ,Form("%2.1f",fMinPtCutInCone[i-1]));
2305  outputContainer->Add(fhConeNClusterPerMinPtCutLargePtTrig) ;
2306 
2308  ("hConePtSumClusterPerMinPtCut",
2309  Form("Cluster #Sigma #it{p}_{T}, different min #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f",r),
2310  fNPtCutsInCone,-0.5,fNPtCutsInCone-0.5,nptsumbins,ptsummin,ptsummax);
2311  fhConeSumPtClusterPerMinPtCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2312  fhConeSumPtClusterPerMinPtCut->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2313  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2314  fhConeSumPtClusterPerMinPtCut->GetXaxis()->SetBinLabel(i ,Form("%2.1f",fMinPtCutInCone[i-1]));
2315  outputContainer->Add(fhConeSumPtClusterPerMinPtCut) ;
2316 
2318  ("hConePtSumClusterPerMinPtCutLargePtTrig",
2319  Form("Cluster #Sigma #it{p}_{T}, different min #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f, #it{p}_{T}^{trig} > 10 GeV",r),
2320  fNPtCutsInCone,-0.5,fNPtCutsInCone-0.5,nptsumbins,ptsummin,ptsummax);
2321  fhConeSumPtClusterPerMinPtCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2322  fhConeSumPtClusterPerMinPtCutLargePtTrig->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2323  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2324  fhConeSumPtClusterPerMinPtCutLargePtTrig->GetXaxis()->SetBinLabel(i ,Form("%2.1f",fMinPtCutInCone[i-1]));
2325  outputContainer->Add(fhConeSumPtClusterPerMinPtCutLargePtTrig) ;
2326 
2327 
2329  ("hConePtSumClusterPerMaxPtCut",
2330  Form("Cluster #Sigma #it{p}_{T}, different max #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f",r),
2331  fNPtCutsInCone,-0.5,fNPtCutsInCone-0.5,nptsumbins,ptsummin,ptsummax);
2332  fhConeSumPtClusterPerMaxPtCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2333  fhConeSumPtClusterPerMaxPtCut->SetXTitle("#it{p}_{T, max} (GeV/#it{c})");
2334  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2335  fhConeSumPtClusterPerMaxPtCut->GetXaxis()->SetBinLabel(i ,Form("%2.1f",fMaxPtCutInCone[i-1]));
2336  outputContainer->Add(fhConeSumPtClusterPerMaxPtCut) ;
2337 
2339  ("hConePtSumClusterPerMaxPtCutLargePtTrig",
2340  Form("Cluster #Sigma #it{p}_{T}, different max #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f, #it{p}_{T}^{trig} > 10 GeV",r),
2341  fNPtCutsInCone,-0.5,fNPtCutsInCone-0.5,nptsumbins,ptsummin,ptsummax);
2342  fhConeSumPtClusterPerMaxPtCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2343  fhConeSumPtClusterPerMaxPtCutLargePtTrig->SetXTitle("#it{p}_{T, max} (GeV/#it{c})");
2344  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2345  fhConeSumPtClusterPerMaxPtCutLargePtTrig->GetXaxis()->SetBinLabel(i ,Form("%2.1f",fMaxPtCutInCone[i-1]));
2346  outputContainer->Add(fhConeSumPtClusterPerMaxPtCutLargePtTrig) ;
2347  }
2348 
2349  if(fStudyRCutInCone)
2350  {
2352  ("hConePtSumClusterPerRCut","Cluster #Sigma #it{p}_{T}, different #it{R} cuts",
2353  fNRCutsInCone,0.5,fNRCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2354  fhConeSumPtClusterPerRCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2355  fhConeSumPtClusterPerRCut->SetXTitle("#it{R}");
2356  for(Int_t i = 1; i <= fNRCutsInCone; i++)
2357  fhConeSumPtClusterPerRCut->GetXaxis()->SetBinLabel(i, Form("%2.2f",fRCutInCone[i-1]));
2358  outputContainer->Add(fhConeSumPtClusterPerRCut) ;
2359 
2361  ("hConePtSumClusterPerRCutLargePtTrig","Cluster #Sigma #it{p}_{T}, different #it{R} cuts, #it{p}_{T}^{trig} > 10 GeV",
2362  fNRCutsInCone,0.5,fNRCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2363  fhConeSumPtClusterPerRCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2364  fhConeSumPtClusterPerRCutLargePtTrig->SetXTitle("#it{R}");
2365  for(Int_t i = 1; i <= fNRCutsInCone; i++)
2366  fhConeSumPtClusterPerRCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.2f",fRCutInCone[i-1]));
2367  outputContainer->Add(fhConeSumPtClusterPerRCutLargePtTrig) ;
2368 
2370  ("hPtClusterInConePerRCut","Cluster #it{p}_{T}, different #it{R} cuts",
2371  fNRCutsInCone,0.5,fNRCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2372  fhPtClusterInConePerRCut->SetYTitle("#it{p}_{T}^{cluster} (GeV/#it{c})");
2373  fhPtClusterInConePerRCut->SetXTitle("#it{R}");
2374  for(Int_t i = 1; i <= fNRCutsInCone; i++)
2375  fhPtClusterInConePerRCut->GetXaxis()->SetBinLabel(i, Form("%2.2f",fRCutInCone[i-1]));
2376  outputContainer->Add(fhPtClusterInConePerRCut) ;
2377 
2379  ("hPtClusterInConePerRCutLargePtTrig","Cluster #it{p}_{T}, different #it{R} cuts, #it{p}_{T}^{trig} > 10 GeV",
2380  fNRCutsInCone,0.5,fNRCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2381  fhPtClusterInConePerRCutLargePtTrig->SetYTitle("#it{p}_{T}^{cluster} (GeV/#it{c})");
2382  fhPtClusterInConePerRCutLargePtTrig->SetXTitle("#it{R}");
2383  for(Int_t i = 1; i <= fNRCutsInCone; i++)
2384  fhPtClusterInConePerRCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.2f",fRCutInCone[i-1]));
2385  outputContainer->Add(fhPtClusterInConePerRCutLargePtTrig) ;
2386  }
2387 
2388  if(fStudyNCellsCut)
2389  {
2391  ("hConePtSumClusterPerNCellCut","Cluster #Sigma #it{p}_{T}, different #it{N}_{cell} cuts",
2392  fNNCellsInCandidate,0.5,fNNCellsInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2393  fhConeSumPtClusterPerNCellCut->SetYTitle("#Sigma #it{p}_{T}^{cluster} (GeV/#it{c})");
2394  fhConeSumPtClusterPerNCellCut->SetXTitle("#it{N}_{cell}^{min}");
2395  for(Int_t i = 1; i <= fNNCellsInCandidate; i++)
2396  fhConeSumPtClusterPerNCellCut->GetXaxis()->SetBinLabel(i, Form("%d",fNCellsInCandidate[i-1]));
2397  outputContainer->Add(fhConeSumPtClusterPerNCellCut) ;
2398 
2400  ("hConePtSumClusterPerNCellCutLargePtTrig","Cluster #Sigma #it{p}_{T}, different #it{N}_{cell} cuts, #it{p}_{T}^{trig} > 10 GeV",
2401  fNNCellsInCandidate,0.5,fNNCellsInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2402  fhConeSumPtClusterPerNCellCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T}^{cluster} (GeV/#it{c})");
2403  fhConeSumPtClusterPerNCellCutLargePtTrig->SetXTitle("#it{N}_{cell}^{min}");
2404  for(Int_t i = 1; i <= fNNCellsInCandidate; i++)
2405  fhConeSumPtClusterPerNCellCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%d",fNCellsInCandidate[i-1]));
2406  outputContainer->Add(fhConeSumPtClusterPerNCellCutLargePtTrig) ;
2407 
2409  ("hPtClusterInConePerNCellCut","Cluster #it{p}_{T}, different #it{N}_{cell} cuts",
2410  fNNCellsInCandidate,0.5,fNNCellsInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2411  fhPtClusterInConePerNCellCut->SetYTitle("#it{p}_{T}^{cluster} (GeV/#it{c})");
2412  fhPtClusterInConePerNCellCut->SetXTitle("#it{N}_{cell}^{min}");
2413  for(Int_t i = 1; i <= fNNCellsInCandidate; i++)
2414  fhPtClusterInConePerNCellCut->GetXaxis()->SetBinLabel(i, Form("%d",fNCellsInCandidate[i-1]));
2415  outputContainer->Add(fhPtClusterInConePerNCellCut) ;
2416 
2418  ("hPtClusterInConePerNCellCutLargePtTrig","Cluster #it{p}_{T}, different #it{N}_{cell} cuts, #it{p}_{T}^{trig} > 10 GeV",
2419  fNNCellsInCandidate,0.5,fNNCellsInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2420  fhPtClusterInConePerNCellCutLargePtTrig->SetYTitle("#it{p}_{T}^{cluster} (GeV/#it{c})");
2421  fhPtClusterInConePerNCellCutLargePtTrig->SetXTitle("#it{N}_{cell}^{min}");
2422  for(Int_t i = 1; i <= fNNCellsInCandidate; i++)
2423  fhPtClusterInConePerNCellCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%d",fNCellsInCandidate[i-1]));
2424  outputContainer->Add(fhPtClusterInConePerNCellCutLargePtTrig) ;
2425 
2426  for(Int_t ishsh = 0; ishsh < 4; ishsh++)
2427  {
2429  (Form("hPtClusterInConePerNCellPerSM_ShSh%d",ishsh),
2430  Form("Cluster #it{p}_{T} vs #it{n}_{cell} vs SM , 8 < #it{p}_{T}^{trig} < 12 GeV, sh. shape bin %d",ishsh),
2431  200,0,20,fNModules,-0.5,fNModules-0.5,cellBins,cellMin,cellMax);
2432  fhPtClusterInConePerNCellPerSM[ishsh]->SetZTitle("#it{n}_{cells}^{w>0.01}");
2433  fhPtClusterInConePerNCellPerSM[ishsh]->SetYTitle("SM number");
2434  fhPtClusterInConePerNCellPerSM[ishsh]->SetXTitle("#it{p}_{T}^{cluster} (GeV/#it{c})");
2435  outputContainer->Add(fhPtClusterInConePerNCellPerSM[ishsh]) ;
2436 
2438  (Form("hConeSumPtClusterPerNCellPerSM_ShSh%d",ishsh),
2439  Form("Cluster #Sigma #it{p}_{T} in cone vs #it{n}_{cell} vs SM , 8 < #it{p}_{T}^{trig} < 12 GeV, sh. shape bin %d",ishsh),
2440  200,0,50,fNModules,-0.5,fNModules-0.5,cellBins,cellMin,cellMax);
2441  fhConeSumPtClusterPerNCellPerSM[ishsh]->SetZTitle("#it{n}_{cells}^{w>0.01}");
2442  fhConeSumPtClusterPerNCellPerSM[ishsh]->SetYTitle("SM number");
2443  fhConeSumPtClusterPerNCellPerSM[ishsh]->SetXTitle("#Sigma #it{p}_{T}^{cluster} (GeV/#it{c})");
2444  outputContainer->Add(fhConeSumPtClusterPerNCellPerSM[ishsh]) ;
2445  }
2446  }
2447 
2449  {
2451  ("hConePtSumClusterPerExoCut","Cluster #Sigma #it{p}_{T}, different exoticity cuts",
2452  fNExoCutInCandidate,0.5,fNExoCutInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2453  fhConeSumPtClusterPerExoCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2454  fhConeSumPtClusterPerExoCut->SetXTitle("exoticity");
2455  for(Int_t i = 1; i <= fNExoCutInCandidate; i++)
2456  fhConeSumPtClusterPerExoCut->GetXaxis()->SetBinLabel(i, Form("%2.2f",fExoCutInCandidate[i-1]));
2457  outputContainer->Add(fhConeSumPtClusterPerExoCut) ;
2458 
2460  ("hConePtSumClusterPerExoCutLargePtTrig","Cluster #Sigma #it{p}_{T}, different exoticity cuts, #it{p}_{T}^{trig} > 10 GeV",
2461  fNExoCutInCandidate,0.5,fNExoCutInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2462  fhConeSumPtClusterPerExoCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2463  fhConeSumPtClusterPerExoCutLargePtTrig->SetXTitle("exoticity");
2464  for(Int_t i = 1; i <= fNExoCutInCandidate; i++)
2465  fhConeSumPtClusterPerExoCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.2f",fExoCutInCandidate[i-1]));
2466  outputContainer->Add(fhConeSumPtClusterPerExoCutLargePtTrig) ;
2467 
2469  ("hPtClusterInConePerExoCut","Cluster #it{p}_{T}, different exoticity cuts",
2470  fNExoCutInCandidate,0.5,fNExoCutInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2471  fhPtClusterInConePerExoCut->SetYTitle("#it{p}_{T}^{cluster} (GeV/#it{c})");
2472  fhPtClusterInConePerExoCut->SetXTitle("exoticity");
2473  for(Int_t i = 1; i <= fNExoCutInCandidate; i++)
2474  fhPtClusterInConePerExoCut->GetXaxis()->SetBinLabel(i, Form("%2.2f",fExoCutInCandidate[i-1]));
2475  outputContainer->Add(fhPtClusterInConePerExoCut) ;
2476 
2478  ("hPtClusterInConePerExoCutLargePtTrig","Cluster #it{p}_{T}, different exoticity cuts, #it{p}_{T}^{trig} > 10 GeV",
2479  fNExoCutInCandidate,0.5,fNExoCutInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2480  fhPtClusterInConePerExoCutLargePtTrig->SetYTitle("#it{p}_{T}^{cluster} (GeV/#it{c})");
2481  fhPtClusterInConePerExoCutLargePtTrig->SetXTitle("exoticity");
2482  for(Int_t i = 1; i <= fNExoCutInCandidate; i++)
2483  fhPtClusterInConePerExoCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.2f",fExoCutInCandidate[i-1]));
2484  outputContainer->Add(fhPtClusterInConePerExoCutLargePtTrig) ;
2485  }
2486 
2487  if ( fFillPerSMHistograms )
2488  {
2489  for(Int_t ism = 0; ism < fNModules; ism++)
2490  {
2491  if ( ism < fFirstModule || ism > fLastModule ) continue;
2492 
2493  fhPtClusterInConePerSM[ism] = new TH2F
2494  (Form("hPtClusterInCone_SM%d",ism),
2495  Form("#it{p}_{T} of clusters in isolation cone for %s, SM %d", parTitleR.Data(),ism),
2496  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2497  fhPtClusterInConePerSM[ism]->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
2498  fhPtClusterInConePerSM[ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2499  outputContainer->Add(fhPtClusterInConePerSM[ism]) ;
2500  }
2501  }
2502 
2504  {
2505  for(Int_t itc = 0; itc < 16; itc++)
2506  {
2508  (Form("hPtClusterInCone_TC%d",itc),
2509  Form("#it{p}_{T} of clusters in isolation cone for %s, TC index %d", parTitleR.Data(),itc),
2510  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2511  fhPtClusterInConePerTCardIndex[itc]->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
2512  fhPtClusterInConePerTCardIndex[itc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2513  outputContainer->Add(fhPtClusterInConePerTCardIndex[itc]) ;
2514  }
2515  }
2516 
2518  {
2520  ("hPtClusterInConeExoTrigger",
2521  Form("#it{p}_{T} of clusters in isolation cone for #it{R} = %2.2f, exotic trigger",r),
2522  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2523  fhPtClusterInConeExoTrigger->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
2524  fhPtClusterInConeExoTrigger->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2525  outputContainer->Add(fhPtClusterInConeExoTrigger) ;
2526  }
2527  }
2528 
2529  // Track only histograms
2530  if ( GetIsolationCut()->GetParticleTypeInCone()!=AliIsolationCut::kOnlyNeutral )
2531  {
2532  if ( fFillPerSMHistograms )
2533  {
2534  for(Int_t ism = 0; ism < fNModules; ism++)
2535  {
2536  if ( ism < fFirstModule || ism > fLastModule ) continue;
2537 
2538  fhPtTrackInConePerSM[ism] = new TH2F
2539  (Form("hPtTrackInCone_SM%d",ism),
2540  Form("#it{p}_{T} of tracks in isolation cone for %s, SM %d", parTitleR.Data(),ism),
2541  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2542  fhPtTrackInConePerSM[ism]->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
2543  fhPtTrackInConePerSM[ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2544  outputContainer->Add(fhPtTrackInConePerSM[ism]) ;
2545  }
2546  }
2547 
2549  {
2550  for(Int_t itc = 0; itc < 16; itc++)
2551  {
2553  (Form("hPtTrackInCone_TC%d",itc),
2554  Form("#it{p}_{T} of tracks in isolation cone for %s, TC index %d", parTitleR.Data(),itc),
2555  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2556  fhPtTrackInConePerTCardIndex[itc]->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
2557  fhPtTrackInConePerTCardIndex[itc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2558  outputContainer->Add(fhPtTrackInConePerTCardIndex[itc]) ;
2559  }
2560  }
2561 
2562  if(IsDataMC())
2563  {
2564  TString mcChPartName[] = {"Pion","Kaon","Proton","Other"};
2565  for(Int_t imc = 0; imc < 4; imc++)
2566  {
2567  fhPtTrackInConeMCPrimary[imc] = new TH2F
2568  (Form("hPtTrackInCone_Primary_%s",mcChPartName[imc].Data()),
2569  Form("reconstructed #it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, primary MC %s",r,mcChPartName[imc].Data()),
2570  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2571  fhPtTrackInConeMCPrimary[imc]->SetYTitle("#it{p}_{T in cone}^{reco} (GeV/#it{c})");
2572  fhPtTrackInConeMCPrimary[imc]->SetXTitle("#it{p}_{T}^{reco} (GeV/#it{c})");
2573  outputContainer->Add(fhPtTrackInConeMCPrimary[imc]) ;
2574 
2575  fhPtTrackInConeMCSecondary[imc] = new TH2F
2576  (Form("hPtTrackInCone_Secondary_%s",mcChPartName[imc].Data()),
2577  Form("reconstructed #it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, secondary MC %s",r,mcChPartName[imc].Data()),
2578  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2579  fhPtTrackInConeMCSecondary[imc]->SetYTitle("#it{p}_{T in cone}^{reco} (GeV/#it{c})");
2580  fhPtTrackInConeMCSecondary[imc]->SetXTitle("#it{p}_{T}^{reco} (GeV/#it{c})");
2581  outputContainer->Add(fhPtTrackInConeMCSecondary[imc]) ;
2582 
2584  (Form("hPtTrackInCone_Gener_Primary_%s",mcChPartName[imc].Data()),
2585  Form("generated #it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, primary MC %s",r,mcChPartName[imc].Data()),
2586  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2587  fhPtTrackInConeMCPrimaryGener[imc]->SetYTitle("#it{p}_{T in cone}^{gener} (GeV/#it{c})");
2588  fhPtTrackInConeMCPrimaryGener[imc]->SetXTitle("#it{p}_{T}^{gener} (GeV/#it{c})");
2589  outputContainer->Add(fhPtTrackInConeMCPrimaryGener[imc]) ;
2590 
2592  (Form("hPtTrackInCone_Gener_Secondary_%s",mcChPartName[imc].Data()),
2593  Form("generated #it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, secondary MC %s",r,mcChPartName[imc].Data()),
2594  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2595  fhPtTrackInConeMCSecondaryGener[imc]->SetYTitle("#it{p}_{T in cone}^{gener} (GeV/#it{c})");
2596  fhPtTrackInConeMCSecondaryGener[imc]->SetXTitle("#it{p}_{T}^{gener} (GeV/#it{c})");
2597  outputContainer->Add(fhPtTrackInConeMCSecondaryGener[imc]) ;
2598  }
2599 
2600  }
2601 
2603  {
2604  fhPtTrackInConeExoTrigger = new TH2F("hPtTrackInConeExoTrigger",
2605  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, exotic trigger",r),
2606  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2607  fhPtTrackInConeExoTrigger->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
2608  fhPtTrackInConeExoTrigger->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2609  outputContainer->Add(fhPtTrackInConeExoTrigger) ;
2610  }
2611 
2612  if(fStudyPtCutInCone)
2613  {
2615  ("hConeNTrackPerMinPtCut",
2616  Form("N tracks, different #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f",r),
2617  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nmultbin,multmin,multmax);
2618  fhConeNTrackPerMinPtCut->SetYTitle("#it{N}^{track}");
2619  fhConeNTrackPerMinPtCut->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2620  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2621  fhConeNTrackPerMinPtCut->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMinPtCutInCone[i-1]));
2622  outputContainer->Add(fhConeNTrackPerMinPtCut) ;
2623 
2625  ("hConeNTrackPerMinPtCutLargePtTrig",
2626  Form("N tracks, different #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f, #it{p}_{T}^{trig} > 10 GeV",r),
2627  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nmultbin,multmin,multmax);
2628  fhConeNTrackPerMinPtCutLargePtTrig->SetYTitle("#it{N}^{track}");
2629  fhConeNTrackPerMinPtCutLargePtTrig->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2630  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2631  fhConeNTrackPerMinPtCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMinPtCutInCone[i-1]));
2632  outputContainer->Add(fhConeNTrackPerMinPtCutLargePtTrig) ;
2633 
2635  ("hConePtSumTrackPerMinPtCut",
2636  Form("Track #Sigma #it{p}_{T}, different #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f",r),
2637  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2638  fhConeSumPtTrackPerMinPtCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2639  fhConeSumPtTrackPerMinPtCut->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2640  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2641  fhConeSumPtTrackPerMinPtCut->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMinPtCutInCone[i-1]));
2642  outputContainer->Add(fhConeSumPtTrackPerMinPtCut) ;
2643 
2645  ("hConePtSumTrackPerMinPtCutLargePtTrig",
2646  Form("Track #Sigma #it{p}_{T}, different #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f, #it{p}_{T}^{trig} > 10 GeV",r),
2647  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2648  fhConeSumPtTrackPerMinPtCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2649  fhConeSumPtTrackPerMinPtCutLargePtTrig->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2650  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2651  fhConeSumPtTrackPerMinPtCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMinPtCutInCone[i-1]));
2652  outputContainer->Add(fhConeSumPtTrackPerMinPtCutLargePtTrig) ;
2653 
2655  ("hPerpConeNTrackPerMinPtCut",
2656  Form("N tracks, different #it{p}_{T} cuts in perpendicular cone for #it{R} = %2.2f",r),
2657  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nmultbin,multmin,multmax);
2658  fhPerpConeNTrackPerMinPtCut->SetYTitle("#it{N}^{track}");
2659  fhPerpConeNTrackPerMinPtCut->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2660  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2661  fhPerpConeNTrackPerMinPtCut->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMinPtCutInCone[i-1]));
2662  outputContainer->Add(fhPerpConeNTrackPerMinPtCut) ;
2663 
2665  ("hPerpConeNTrackPerMinPtCutLargePtTrig",
2666  Form("N tracks, different #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f, #it{p}_{T}^{trig} > 10 GeV",r),
2667  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nmultbin,multmin,multmax);
2668  fhPerpConeNTrackPerMinPtCutLargePtTrig->SetYTitle("#it{N}^{track}");
2669  fhPerpConeNTrackPerMinPtCutLargePtTrig->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2670  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2671  fhPerpConeNTrackPerMinPtCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMinPtCutInCone[i-1]));
2672  outputContainer->Add(fhPerpConeNTrackPerMinPtCutLargePtTrig) ;
2673 
2675  ("hPerpConePtSumTrackPerMinPtCut",
2676  Form("Track #Sigma #it{p}_{T}, different #it{p}_{T} cuts in perpendicular cone for #it{R} = %2.2f",r),
2677  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2678  fhPerpConeSumPtTrackPerMinPtCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2679  fhPerpConeSumPtTrackPerMinPtCut->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2680  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2681  fhPerpConeSumPtTrackPerMinPtCut->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMinPtCutInCone[i-1]));
2682  outputContainer->Add(fhPerpConeSumPtTrackPerMinPtCut) ;
2683 
2685  ("hPerpConePtSumTrackPerMinPtCutLargePtTrig",
2686  Form("Track #Sigma #it{p}_{T}, different #it{p}_{T} cuts in perpendicular cone for #it{R} = %2.2f, #it{p}_{T}^{trig} > 10 GeV",r),
2687  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2688  fhPerpConeSumPtTrackPerMinPtCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2689  fhPerpConeSumPtTrackPerMinPtCutLargePtTrig->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2690  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2691  fhPerpConeSumPtTrackPerMinPtCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMinPtCutInCone[i-1]));
2692  outputContainer->Add(fhPerpConeSumPtTrackPerMinPtCutLargePtTrig) ;
2693 
2695  ("hConePtSumTrackPerMaxPtCut",
2696  Form("Track #Sigma #it{p}_{T}, different #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f",r),
2697  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2698  fhConeSumPtTrackPerMaxPtCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2699  fhConeSumPtTrackPerMaxPtCut->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2700  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2701  fhConeSumPtTrackPerMaxPtCut->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMaxPtCutInCone[i-1]));
2702  outputContainer->Add(fhConeSumPtTrackPerMaxPtCut) ;
2703 
2705  ("hConePtSumTrackPerMaxPtCutLargePtTrig",
2706  Form("Track #Sigma #it{p}_{T}, different #it{p}_{T} cuts in isolation cone for #it{R} = %2.2f, #it{p}_{T}^{trig} > 10 GeV",r),
2707  fNPtCutsInCone,0.5,fNPtCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2708  fhConeSumPtTrackPerMaxPtCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2709  fhConeSumPtTrackPerMaxPtCutLargePtTrig->SetXTitle("#it{p}_{T, min} (GeV/#it{c})");
2710  for(Int_t i = 1; i <= fNPtCutsInCone; i++)
2711  fhConeSumPtTrackPerMaxPtCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.1f",fMaxPtCutInCone[i-1]));
2712  outputContainer->Add(fhConeSumPtTrackPerMaxPtCutLargePtTrig) ;
2713  }
2714 
2715  if(fStudyEtaCutInCone)
2716  {
2717  fhConeSumPtTrackPerEtaCut = new TH2F("hConePtSumTrackPerEtaCut",
2718  Form("Track #Sigma #it{p}_{T}, different #eta cuts in isolation cone for #it{R} = %2.2f",r),
2719  fNEtaCutsInCone,0.5,fNEtaCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2720  fhConeSumPtTrackPerEtaCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2721  fhConeSumPtTrackPerEtaCut->SetXTitle("#eta_{max}");
2722  for(Int_t i = 1; i <= fNEtaCutsInCone; i++)
2723  fhConeSumPtTrackPerEtaCut->GetXaxis()->SetBinLabel(i, Form("%2.2f",fEtaCutInCone[i-1]));
2724  outputContainer->Add(fhConeSumPtTrackPerEtaCut) ;
2725 
2726  fhConeSumPtTrackPerEtaCutLargePtTrig = new TH2F("hConePtSumTrackPerEtaCutLargePtTrig",
2727  Form("Track #Sigma #it{p}_{T}, different #eta cuts in isolation cone for #it{R} = %2.2f, #it{p}_{T}^{trig} > 10 GeV",r),
2728  fNEtaCutsInCone,0.5,fNEtaCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2729  fhConeSumPtTrackPerEtaCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2730  fhConeSumPtTrackPerEtaCutLargePtTrig->SetXTitle("#eta_{max}");
2731  for(Int_t i = 1; i <= fNEtaCutsInCone; i++)
2732  fhConeSumPtTrackPerEtaCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.2f",fEtaCutInCone[i-1]));
2733  outputContainer->Add(fhConeSumPtTrackPerEtaCutLargePtTrig) ;
2734  }
2735 
2736  if(fStudyRCutInCone)
2737  {
2739  ("hConePtSumTrackPerRCut","Track #Sigma #it{p}_{T}, different #it{R} cuts",
2740  fNRCutsInCone,0.5,fNRCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2741  fhConeSumPtTrackPerRCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2742  fhConeSumPtTrackPerRCut->SetXTitle("#it{R}");
2743  for(Int_t i = 1; i <= fNRCutsInCone; i++)
2744  fhConeSumPtTrackPerRCut->GetXaxis()->SetBinLabel(i, Form("%2.2f",fRCutInCone[i-1]));
2745  outputContainer->Add(fhConeSumPtTrackPerRCut) ;
2746 
2748  ("hConePtSumTrackPerRCutLargePtTrig","Track #Sigma #it{p}_{T}, different #it{R} cuts, #it{p}_{T}^{trig} > 10 GeV",
2749  fNRCutsInCone,0.5,fNRCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2750  fhConeSumPtTrackPerRCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2751  fhConeSumPtTrackPerRCutLargePtTrig->SetXTitle("#it{R}");
2752  for(Int_t i = 1; i <= fNRCutsInCone; i++)
2753  fhConeSumPtTrackPerRCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.2f",fRCutInCone[i-1]));
2754  outputContainer->Add(fhConeSumPtTrackPerRCutLargePtTrig) ;
2755 
2757  ("hPtTrackInConePerRCut","Track #it{p}_{T}, different #it{R} cuts",
2758  fNRCutsInCone,0.5,fNRCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2759  fhPtTrackInConePerRCut->SetYTitle("#it{p}_{T}^{track} (GeV/#it{c})");
2760  fhPtTrackInConePerRCut->SetXTitle("#it{R}");
2761  for(Int_t i = 1; i <= fNRCutsInCone; i++)
2762  fhPtTrackInConePerRCut->GetXaxis()->SetBinLabel(i, Form("%2.2f",fRCutInCone[i-1]));
2763  outputContainer->Add(fhPtTrackInConePerRCut) ;
2764 
2766  ("hPtTrackInConePerRCutLargePtTrig","Track #it{p}_{T}, different #it{R} cuts, #it{p}_{T}^{trig} > 10 GeV",
2767  fNRCutsInCone,0.5,fNRCutsInCone+0.5,nptsumbins,ptsummin,ptsummax);
2768  fhPtTrackInConePerRCutLargePtTrig->SetYTitle("#it{p}_{T}^{track} (GeV/#it{c})");
2769  fhPtTrackInConePerRCutLargePtTrig->SetXTitle("#it{R}");
2770  for(Int_t i = 1; i <= fNRCutsInCone; i++)
2771  fhPtTrackInConePerRCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.2f",fRCutInCone[i-1]));
2772  outputContainer->Add(fhPtTrackInConePerRCutLargePtTrig) ;
2773  }
2774 
2775  if(fStudyNCellsCut)
2776  {
2778  ("hConePtSumTrackPerNCellCut","Track #Sigma #it{p}_{T}, different #it{N}_{cell} cuts",
2779  fNNCellsInCandidate,0.5,fNNCellsInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2780  fhConeSumPtTrackPerNCellCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2781  fhConeSumPtTrackPerNCellCut->SetXTitle("#it{N}_{cell}^{min}");
2782  for(Int_t i = 1; i <= fNNCellsInCandidate; i++)
2783  fhConeSumPtTrackPerNCellCut->GetXaxis()->SetBinLabel(i, Form("%d",fNCellsInCandidate[i-1]));
2784  outputContainer->Add(fhConeSumPtTrackPerNCellCut) ;
2785 
2787  ("hConePtSumTrackPerNCellCutLargePtTrig","Track #Sigma #it{p}_{T}, different #it{N}_{cell} cuts, #it{p}_{T}^{trig} > 10 GeV",
2788  fNNCellsInCandidate,0.5,fNNCellsInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2789  fhConeSumPtTrackPerNCellCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2790  fhConeSumPtTrackPerNCellCutLargePtTrig->SetXTitle("#it{N}_{cell}^{min}");
2791  for(Int_t i = 1; i <= fNNCellsInCandidate; i++)
2792  fhConeSumPtTrackPerNCellCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%d",fNCellsInCandidate[i-1]));
2793  outputContainer->Add(fhConeSumPtTrackPerNCellCutLargePtTrig) ;
2794 
2796  ("hPtTrackInConePerNCellCut","Track #it{p}_{T}, different #it{N}_{cell} cuts",
2797  fNNCellsInCandidate,0.5,fNNCellsInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2798  fhPtTrackInConePerNCellCut->SetYTitle("#it{p}_{T}^{track} (GeV/#it{c})");
2799  fhPtTrackInConePerNCellCut->SetXTitle("#it{N}_{cell}^{min}");
2800  for(Int_t i = 1; i <= fNNCellsInCandidate; i++)
2801  fhPtTrackInConePerNCellCut->GetXaxis()->SetBinLabel(i, Form("%d",fNCellsInCandidate[i-1]));
2802  outputContainer->Add(fhPtTrackInConePerNCellCut) ;
2803 
2805  ("hPtTrackInConePerNCellCutLargePtTrig","Track #it{p}_{T}, different #it{N}_{cell} cuts, #it{p}_{T}^{trig} > 10 GeV",
2806  fNNCellsInCandidate,0.5,fNNCellsInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2807  fhPtTrackInConePerNCellCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T}^{track} (GeV/#it{c})");
2808  fhPtTrackInConePerNCellCutLargePtTrig->SetXTitle("#it{N}_{cell}^{min}");
2809  for(Int_t i = 1; i <= fNNCellsInCandidate; i++)
2810  fhPtTrackInConePerNCellCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%d",fNCellsInCandidate[i-1]));
2811  outputContainer->Add(fhPtTrackInConePerNCellCutLargePtTrig) ;
2812 
2813  for(Int_t ishsh = 0; ishsh < 4; ishsh++)
2814  {
2815  fhPtTrackInConePerNCellPerSM[ishsh] = new TH3F
2816  (Form("hPtTrackInConePerNCellPerSM_ShSh%d",ishsh),
2817  Form("Track #it{p}_{T} vs #it{n}_{cell} vs SM , 8 < #it{p}_{T}^{trig} < 12 GeV, sh. shape bin %d",ishsh),
2818  200,0,20,fNModules,-0.5,fNModules-0.5,cellBins,cellMin,cellMax);
2819  fhPtTrackInConePerNCellPerSM[ishsh]->SetZTitle("#it{n}_{cells}^{w>0.01}");
2820  fhPtTrackInConePerNCellPerSM[ishsh]->SetYTitle("SM number");
2821  fhPtTrackInConePerNCellPerSM[ishsh]->SetXTitle("#it{p}_{T}^{track} (GeV/#it{c})");
2822  outputContainer->Add(fhPtTrackInConePerNCellPerSM[ishsh]) ;
2823 
2824  fhConeSumPtTrackPerNCellPerSM[ishsh] = new TH3F
2825  (Form("hConeSumPtTrackPerNCellPerSM_ShSh%d",ishsh),
2826  Form("Track #Sigma #it{p}_{T} in cone vs #it{n}_{cell} vs SM , 8 < #it{p}_{T}^{trig} < 12 GeV, sh. shape bin %d",ishsh),
2827  200,0,50,fNModules,-0.5,fNModules-0.5,cellBins,cellMin,cellMax);
2828  fhConeSumPtTrackPerNCellPerSM[ishsh]->SetZTitle("#it{n}_{cells}^{w>0.01}");
2829  fhConeSumPtTrackPerNCellPerSM[ishsh]->SetYTitle("SM number");
2830  fhConeSumPtTrackPerNCellPerSM[ishsh]->SetXTitle("#Sigma #it{p}_{T}^{track} (GeV/#it{c})");
2831  outputContainer->Add(fhConeSumPtTrackPerNCellPerSM[ishsh]) ;
2832  }
2833  }
2834 
2836  {
2838  ("hConePtSumTrackPerExoCut","Track #Sigma #it{p}_{T}, different exoticity cuts",
2839  fNExoCutInCandidate,0.5,fNExoCutInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2840  fhConeSumPtTrackPerExoCut->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2841  fhConeSumPtTrackPerExoCut->SetXTitle("exoticity");
2842  for(Int_t i = 1; i <= fNExoCutInCandidate; i++)
2843  fhConeSumPtTrackPerExoCut->GetXaxis()->SetBinLabel(i, Form("%2.2f",fExoCutInCandidate[i-1]));
2844  outputContainer->Add(fhConeSumPtTrackPerExoCut) ;
2845 
2847  ("hConePtSumTrackPerExoCutLargePtTrig","Track #Sigma #it{p}_{T}, different exoticity cuts, #it{p}_{T}^{trig} > 10 GeV",
2848  fNExoCutInCandidate,0.5,fNExoCutInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2849  fhConeSumPtTrackPerExoCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2850  fhConeSumPtTrackPerExoCutLargePtTrig->SetXTitle("exoticity");
2851  for(Int_t i = 1; i <= fNExoCutInCandidate; i++)
2852  fhConeSumPtTrackPerExoCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.2f",fExoCutInCandidate[i-1]));
2853  outputContainer->Add(fhConeSumPtTrackPerExoCutLargePtTrig) ;
2854 
2856  ("hPtTrackInConePerExoCut","Track #it{p}_{T}, different exoticity cuts",
2857  fNExoCutInCandidate,0.5,fNExoCutInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2858  fhPtTrackInConePerExoCut->SetYTitle("#it{p}_{T}^{track} (GeV/#it{c})");
2859  fhPtTrackInConePerExoCut->SetXTitle("exoticity");
2860  for(Int_t i = 1; i <= fNExoCutInCandidate; i++)
2861  fhPtTrackInConePerExoCut->GetXaxis()->SetBinLabel(i, Form("%2.2f",fExoCutInCandidate[i-1]));
2862  outputContainer->Add(fhPtTrackInConePerExoCut) ;
2863 
2865  ("hPtTrackInConePerExoCutLargePtTrig","Track #it{p}_{T}, different exoticity cuts, #it{p}_{T}^{trig} > 10 GeV",
2866  fNExoCutInCandidate,0.5,fNExoCutInCandidate+0.5,nptsumbins,ptsummin,ptsummax);
2867  fhPtTrackInConePerExoCutLargePtTrig->SetYTitle("#Sigma #it{p}_{T}^{track} (GeV/#it{c})");
2868  fhPtTrackInConePerExoCutLargePtTrig->SetXTitle("exoticity");
2869  for(Int_t i = 1; i <= fNExoCutInCandidate; i++)
2870  fhPtTrackInConePerExoCutLargePtTrig->GetXaxis()->SetBinLabel(i, Form("%2.2f",fExoCutInCandidate[i-1]));
2871  outputContainer->Add(fhPtTrackInConePerExoCutLargePtTrig) ;
2872  }
2873 
2874  if ( fFillPerSMHistograms )
2875  {
2876  for(Int_t ism = 0; ism < fNModules; ism++)
2877  {
2878  if ( ism < fFirstModule || ism > fLastModule ) continue;
2879 
2880  fhConeSumPtTrackPerSM[ism] = new TH2F
2881  (Form("hConePtSumTrack_SM%d",ism),
2882  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, SM %d",r,ism),
2883  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2884  fhConeSumPtTrackPerSM[ism]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2885  fhConeSumPtTrackPerSM[ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2886  outputContainer->Add(fhConeSumPtTrackPerSM[ism]) ;
2887  }
2888  }
2889 
2891  {
2892  for(Int_t itc = 0; itc < 16; itc++)
2893  {
2895  (Form("hConePtSumTrack_TC%d",itc),
2896  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, TC index %d",r,itc),
2897  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2898  fhConeSumPtTrackPerTCardIndex[itc]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2899  fhConeSumPtTrackPerTCardIndex[itc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2900  outputContainer->Add(fhConeSumPtTrackPerTCardIndex[itc]) ;
2901  }
2902  }
2903 
2905  {
2907  ("hConePtSumTrackExoTrigger",
2908  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, exo trigger",r),
2909  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2910  fhConeSumPtTrackExoTrigger->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2911  fhConeSumPtTrackExoTrigger->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
2912  outputContainer->Add(fhConeSumPtTrackExoTrigger) ;
2913  }
2914 
2915  if(fStudyTracksInCone)
2916  {
2917  Int_t ntofbins = 1000;
2918  Int_t mintof = -500;
2919  Int_t maxtof = 500;
2920 
2921  fhTrackTOFInCone = new TH2F
2922  ("hTrackTOFInCone","TOF signal vs track #it{p}_{T}",
2923  nptbins,ptmin,ptmax,ntofbins,mintof,maxtof);
2924  fhTrackTOFInCone->SetYTitle("TOF signal (ns)");
2925  fhTrackTOFInCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2926  outputContainer->Add(fhTrackTOFInCone);
2927 
2929  {
2931  ("hTrackTOFInConeExoTrigger","TOF signal vs track #it{p}_{T}, exoticity > 0.97",
2932  nptbins,ptmin,ptmax,ntofbins,mintof,maxtof);
2933  fhTrackTOFInConeExoTrigger->SetYTitle("TOF signal (ns)");
2934  fhTrackTOFInConeExoTrigger->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2935  outputContainer->Add(fhTrackTOFInConeExoTrigger);
2936  }
2937 
2938  fhTrackTOFInConeBC0 = new TH2F
2939  ("hTrackTOFInConeBC0","TOF signal vs track #it{p}_{T}, BC=0",
2940  nptbins,ptmin,ptmax,ntofbins,mintof,maxtof);
2941  fhTrackTOFInConeBC0->SetYTitle("TOF signal (ns)");
2942  fhTrackTOFInConeBC0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2943  outputContainer->Add(fhTrackTOFInConeBC0);
2944 
2945  fhPtTrackInConeVtxBC0 = new TH2F("hPtTrackInConeVtxBC0",
2946  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC==0",r),
2947  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
2948  fhPtTrackInConeVtxBC0->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
2949  fhPtTrackInConeVtxBC0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2950  outputContainer->Add(fhPtTrackInConeVtxBC0) ;
2951 
2952  fhEtaPhiTrackInCone = new TH2F("hEtaPhiTrackInCone",
2953  Form("#eta vs #varphi of Tracks in cone for #it{R} = %2.2f",r),
2954  netabins,-1,1,nphibins,0,TMath::TwoPi());
2955  fhEtaPhiTrackInCone->SetXTitle("#eta");
2956  fhEtaPhiTrackInCone->SetYTitle("#varphi (rad)");
2957  outputContainer->Add(fhEtaPhiTrackInCone) ;
2958 
2959  fhEtaTrackInCone = new TH2F("hEtaTrackInCone",
2960  Form("#eta vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f",r),
2961  nptbins,ptmin,ptmax,netabins,-1,1);
2962  fhEtaTrackInCone->SetYTitle("#eta");
2963  fhEtaTrackInCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2964  outputContainer->Add(fhEtaTrackInCone) ;
2965 
2966  fhPhiTrackInCone = new TH2F("hPhiTrackInCone",
2967  Form("#varphi vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f",r),
2968  nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
2969  fhPhiTrackInCone->SetYTitle("#varphi (rad)");
2970  fhPhiTrackInCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
2971  outputContainer->Add(fhPhiTrackInCone) ;
2972 
2973  //
2974  // Different track cuts:
2975  //
2976  // TOF info
2977  //
2978  fhConeSumPtTrackTOFBC0 = new TH2F("hConePtSumTrackTOFBC0",
2979  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, track TOF BC=0",r),
2980  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2981  fhConeSumPtTrackTOFBC0->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2982  fhConeSumPtTrackTOFBC0->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
2983  outputContainer->Add(fhConeSumPtTrackTOFBC0) ;
2984 
2985  fhConeSumPtTrackTOFBCN = new TH2F("hConePtSumTrackTOFBCN",
2986  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, track TOF BC!=0",r),
2987  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2988  fhConeSumPtTrackTOFBCN->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2989  fhConeSumPtTrackTOFBCN->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
2990  outputContainer->Add(fhConeSumPtTrackTOFBCN) ;
2991 
2992  fhConeSumPtTrackTOFNo = new TH2F("hConePtSumTrackTOFNo",
2993  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, track no TOF",r),
2994  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
2995  fhConeSumPtTrackTOFNo->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
2996  fhConeSumPtTrackTOFNo->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
2997  outputContainer->Add(fhConeSumPtTrackTOFNo) ;
2998 
2999  fhPtTrackInConeTOFBC0 = new TH2F("hPtTrackInConeTOFBC0",
3000  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC=0",r),
3001  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3002  fhPtTrackInConeTOFBC0->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3003  fhPtTrackInConeTOFBC0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3004  outputContainer->Add(fhPtTrackInConeTOFBC0) ;
3005 
3006  fhPtTrackInConeTOFBCN = new TH2F("hPtTrackInConeTOFBCN",
3007  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC!=0",r),
3008  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3009  fhPtTrackInConeTOFBCN->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3010  fhPtTrackInConeTOFBCN->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3011  outputContainer->Add(fhPtTrackInConeTOFBCN) ;
3012 
3013  fhPtTrackInConeTOFNo = new TH2F("hPtTrackInConeTOFNo",
3014  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, no TOF",r),
3015  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3016  fhPtTrackInConeTOFNo->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3017  fhPtTrackInConeTOFNo->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3018  outputContainer->Add(fhPtTrackInConeTOFNo) ;
3019 
3020 
3021  fhEtaPhiTrackInConeTOFBC0 = new TH2F("hEtaPhiTrackInConeTOFBC0",
3022  Form("#eta vs #varphi of Tracks in cone for #it{R} = %2.2f, TOF BC=0",r),
3023  netabins,-1,1,nphibins,0,TMath::TwoPi());
3024  fhEtaPhiTrackInConeTOFBC0->SetXTitle("#eta");
3025  fhEtaPhiTrackInConeTOFBC0->SetYTitle("#varphi (rad)");
3026  outputContainer->Add(fhEtaPhiTrackInConeTOFBC0) ;
3027 
3028  fhEtaPhiTrackInConeTOFBCN = new TH2F("hEtaPhiTrackInConeTOFBCN",
3029  Form("#eta vs #varphi of Tracks in cone for #it{R} = %2.2f, TOF BC!=0",r),
3030  netabins,-1,1,nphibins,0,TMath::TwoPi());
3031  fhEtaPhiTrackInConeTOFBCN->SetXTitle("#eta");
3032  fhEtaPhiTrackInConeTOFBCN->SetYTitle("#varphi (rad)");
3033  outputContainer->Add(fhEtaPhiTrackInConeTOFBCN) ;
3034 
3035  fhEtaPhiTrackInConeTOFNo = new TH2F("hEtaPhiTrackInConeTOFNo",
3036  Form("#eta vs #varphi of Tracks in cone for #it{R} = %2.2f, no TOF",r),
3037  netabins,-1,1,nphibins,0,TMath::TwoPi());
3038  fhEtaPhiTrackInConeTOFNo->SetXTitle("#eta");
3039  fhEtaPhiTrackInConeTOFNo->SetYTitle("#varphi (rad)");
3040  outputContainer->Add(fhEtaPhiTrackInConeTOFNo) ;
3041 
3042  fhEtaTrackInConeTOFBC0 = new TH2F("hEtaTrackInConeTOFBC0",
3043  Form("#eta vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, TOF BC=0",r),
3044  nptbins,ptmin,ptmax,netabins,-1,1);
3045  fhEtaTrackInConeTOFBC0->SetYTitle("#eta");
3046  fhEtaTrackInConeTOFBC0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3047  outputContainer->Add(fhEtaTrackInConeTOFBC0) ;
3048 
3049  fhEtaTrackInConeTOFBCN = new TH2F("hEtaTrackInConeTOFBCN",
3050  Form("#eta vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, TOF BC!=0",r),
3051  nptbins,ptmin,ptmax,netabins,-1,1);
3052  fhEtaTrackInConeTOFBCN->SetYTitle("#eta");
3053  fhEtaTrackInConeTOFBCN->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3054  outputContainer->Add(fhEtaTrackInConeTOFBCN) ;
3055 
3056  fhEtaTrackInConeTOFNo = new TH2F("hEtaTrackInConeTOFNo",
3057  Form("#eta vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, no TOF",r),
3058  nptbins,ptmin,ptmax,netabins,-1,1);
3059  fhEtaTrackInConeTOFNo->SetYTitle("#eta");
3060  fhEtaTrackInConeTOFNo->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3061  outputContainer->Add(fhEtaTrackInConeTOFNo) ;
3062 
3063  fhPhiTrackInConeTOFBC0 = new TH2F("hPhiTrackInConeTOFBC0",
3064  Form("#varphi vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, TOF BC=0",r),
3065  nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3066  fhPhiTrackInConeTOFBC0->SetYTitle("#varphi (rad)");
3067  fhPhiTrackInConeTOFBC0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3068  outputContainer->Add(fhPhiTrackInConeTOFBC0) ;
3069 
3070  fhPhiTrackInConeTOFBCN = new TH2F("hPhiTrackInConeTOFBCN",
3071  Form("#varphi vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, TOF BC!=0",r),
3072  nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3073  fhPhiTrackInConeTOFBCN->SetYTitle("#varphi (rad)");
3074  fhPhiTrackInConeTOFBCN->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3075  outputContainer->Add(fhPhiTrackInConeTOFBCN) ;
3076 
3077  fhPhiTrackInConeTOFNo = new TH2F("hPhiTrackInConeTOFNo",
3078  Form("#varphi vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, no TOF",r),
3079  nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3080  fhPhiTrackInConeTOFNo->SetYTitle("#varphi (rad)");
3081  fhPhiTrackInConeTOFNo->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3082  outputContainer->Add(fhPhiTrackInConeTOFNo) ;
3083 
3084  //
3085  // ITS info
3086  //
3087  fhConeSumPtTrackITSRefitOnSPDOn = new TH2F("hConePtSumTrackITSRefitOnSPDOn",
3088  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, track ITS Refit SPD On",r),
3089  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
3090  fhConeSumPtTrackITSRefitOnSPDOn->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3091  fhConeSumPtTrackITSRefitOnSPDOn->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
3092  outputContainer->Add(fhConeSumPtTrackITSRefitOnSPDOn) ;
3093 
3094  fhConeSumPtTrackITSRefitOnSPDOff = new TH2F("hConePtSumTrackITSRefitOnSPDOff",
3095  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, track ITS Refit SPD Off",r),
3096  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
3097  fhConeSumPtTrackITSRefitOnSPDOff->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3098  fhConeSumPtTrackITSRefitOnSPDOff->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
3099  outputContainer->Add(fhConeSumPtTrackITSRefitOnSPDOff) ;
3100 
3101  fhConeSumPtTrackITSRefitOffSPDOff = new TH2F("hConePtSumTrackITSRefitOffSPDOff",
3102  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, track no ITS Refit SPD Off",r),
3103  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
3104  fhConeSumPtTrackITSRefitOffSPDOff->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3105  fhConeSumPtTrackITSRefitOffSPDOff->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
3106  outputContainer->Add(fhConeSumPtTrackITSRefitOffSPDOff) ;
3107 
3108  fhPtTrackInConeITSRefitOnSPDOn = new TH2F("hPtTrackInConeITSRefitOnSPDOn",
3109  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC=0",r),
3110  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3111  fhPtTrackInConeITSRefitOnSPDOn->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3112  fhPtTrackInConeITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3113  outputContainer->Add(fhPtTrackInConeITSRefitOnSPDOn) ;
3114 
3115  fhPtTrackInConeITSRefitOnSPDOff = new TH2F("hPtTrackInConeITSRefitOnSPDOff",
3116  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC!=0",r),
3117  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3118  fhPtTrackInConeITSRefitOnSPDOff->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3119  fhPtTrackInConeITSRefitOnSPDOff->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3120  outputContainer->Add(fhPtTrackInConeITSRefitOnSPDOff) ;
3121 
3122  fhPtTrackInConeITSRefitOffSPDOff = new TH2F("hPtTrackInConeITSRefitOffSPDOff",
3123  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, no ITS Refit SPD Off",r),
3124  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3125  fhPtTrackInConeITSRefitOffSPDOff->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3126  fhPtTrackInConeITSRefitOffSPDOff->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3127  outputContainer->Add(fhPtTrackInConeITSRefitOffSPDOff) ;
3128 
3129 
3130  fhEtaPhiTrackInConeITSRefitOnSPDOn = new TH2F("hEtaPhiTrackInConeITSRefitOnSPDOn",
3131  Form("#eta vs #varphi of Tracks in cone for #it{R} = %2.2f, ITS Refit SPD On",r),
3132  netabins,-1,1,nphibins,0,TMath::TwoPi());
3133  fhEtaPhiTrackInConeITSRefitOnSPDOn->SetXTitle("#eta");
3134  fhEtaPhiTrackInConeITSRefitOnSPDOn->SetYTitle("#varphi (rad)");
3135  outputContainer->Add(fhEtaPhiTrackInConeITSRefitOnSPDOn) ;
3136 
3137  fhEtaPhiTrackInConeITSRefitOnSPDOff = new TH2F("hEtaPhiTrackInConeITSRefitOnSPDOff",
3138  Form("#eta vs #varphi of Tracks in cone for #it{R} = %2.2f, ITS Refit SPD Off",r),
3139  netabins,-1,1,nphibins,0,TMath::TwoPi());
3140  fhEtaPhiTrackInConeITSRefitOnSPDOff->SetXTitle("#eta");
3141  fhEtaPhiTrackInConeITSRefitOnSPDOff->SetYTitle("#varphi (rad)");
3142  outputContainer->Add(fhEtaPhiTrackInConeITSRefitOnSPDOff) ;
3143 
3144  fhEtaPhiTrackInConeITSRefitOffSPDOff = new TH2F("hEtaPhiTrackInConeITSRefitOffSPDOff",
3145  Form("#eta vs #varphi of Tracks in cone for #it{R} = %2.2f, no ITS Refit SPD Off",r),
3146  netabins,-1,1,nphibins,0,TMath::TwoPi());
3147  fhEtaPhiTrackInConeITSRefitOffSPDOff->SetXTitle("#eta");
3148  fhEtaPhiTrackInConeITSRefitOffSPDOff->SetYTitle("#varphi (rad)");
3149  outputContainer->Add(fhEtaPhiTrackInConeITSRefitOffSPDOff) ;
3150 
3151  fhEtaTrackInConeITSRefitOnSPDOn = new TH2F("hEtaTrackInConeITSRefitOnSPDOn",
3152  Form("#eta vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, ITS Refit SPD On",r),
3153  nptbins,ptmin,ptmax,netabins,-1,1);
3154  fhEtaTrackInConeITSRefitOnSPDOn->SetYTitle("#eta");
3155  fhEtaTrackInConeITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3156  outputContainer->Add(fhEtaTrackInConeITSRefitOnSPDOn) ;
3157 
3158  fhEtaTrackInConeITSRefitOnSPDOff = new TH2F("hEtaTrackInConeITSRefitOnSPDOff",
3159  Form("#eta vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, ITS Refit SPD Off",r),
3160  nptbins,ptmin,ptmax,netabins,-1,1);
3161  fhEtaTrackInConeITSRefitOnSPDOff->SetYTitle("#eta");
3162  fhEtaTrackInConeITSRefitOnSPDOff->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3163  outputContainer->Add(fhEtaTrackInConeITSRefitOnSPDOff) ;
3164 
3165  fhEtaTrackInConeITSRefitOffSPDOff = new TH2F("hEtaTrackInConeITSRefitOffSPDOff",
3166  Form("#eta vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, no ITS Refit SPD Off",r),
3167  nptbins,ptmin,ptmax,netabins,-1,1);
3168  fhEtaTrackInConeITSRefitOffSPDOff->SetYTitle("#eta");
3169  fhEtaTrackInConeITSRefitOffSPDOff->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3170  outputContainer->Add(fhEtaTrackInConeITSRefitOffSPDOff) ;
3171 
3172  fhPhiTrackInConeITSRefitOnSPDOn = new TH2F("hPhiTrackInConeITSRefitOnSPDOn",
3173  Form("#varphi vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, ITS Refit SPD On",r),
3174  nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3175  fhPhiTrackInConeITSRefitOnSPDOn->SetYTitle("#varphi (rad)");
3176  fhPhiTrackInConeITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3177  outputContainer->Add(fhPhiTrackInConeITSRefitOnSPDOn) ;
3178 
3179  fhPhiTrackInConeITSRefitOnSPDOff = new TH2F("hPhiTrackInConeITSRefitOnSPDOff",
3180  Form("#varphi vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, ITS Refit SPD Off",r),
3181  nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3182  fhPhiTrackInConeITSRefitOnSPDOff->SetYTitle("#varphi (rad)");
3183  fhPhiTrackInConeITSRefitOnSPDOff->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3184  outputContainer->Add(fhPhiTrackInConeITSRefitOnSPDOff) ;
3185 
3186  fhPhiTrackInConeITSRefitOffSPDOff = new TH2F("hPhiTrackInConeITSRefitOffSPDOff",
3187  Form("#varphi vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, no ITS Refit SPD Off",r),
3188  nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3189  fhPhiTrackInConeITSRefitOffSPDOff->SetYTitle("#varphi (rad)");
3190  fhPhiTrackInConeITSRefitOffSPDOff->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3191  outputContainer->Add(fhPhiTrackInConeITSRefitOffSPDOff) ;
3192 
3193  //
3194  // TOF and ITS info
3195  //
3196  fhConeSumPtTrackTOFBC0ITSRefitOnSPDOn = new TH2F("hConePtSumTrackTOFBC0ITSRefitOnSPDOn",
3197  Form("Track #Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f, track TOF BC=0, track ITS Refit SPD On",r),
3198  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
3199  fhConeSumPtTrackTOFBC0ITSRefitOnSPDOn->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3200  fhConeSumPtTrackTOFBC0ITSRefitOnSPDOn->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
3201  outputContainer->Add(fhConeSumPtTrackTOFBC0ITSRefitOnSPDOn) ;
3202 
3203  fhPtTrackInConeTOFBC0ITSRefitOnSPDOn = new TH2F("hPtTrackInConeTOFBC0ITSRefitOnSPDOn",
3204  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC=0, track ITS Refit SPD On",r),
3205  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3206  fhPtTrackInConeTOFBC0ITSRefitOnSPDOn->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3207  fhPtTrackInConeTOFBC0ITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3208  outputContainer->Add(fhPtTrackInConeTOFBC0ITSRefitOnSPDOn) ;
3209 
3210  fhEtaPhiTrackInConeTOFBC0ITSRefitOnSPDOn = new TH2F("hEtaPhiTrackInConeTOFBC0ITSRefitOnSPDOn",
3211  Form("#eta vs #varphi of Tracks in cone for #it{R} = %2.2f, TOF BC=0, track ITS Refit SPD On",r),
3212  netabins,-1,1,nphibins,0,TMath::TwoPi());
3213  fhEtaPhiTrackInConeTOFBC0ITSRefitOnSPDOn->SetXTitle("#eta");
3214  fhEtaPhiTrackInConeTOFBC0ITSRefitOnSPDOn->SetYTitle("#varphi (rad)");
3215  outputContainer->Add(fhEtaPhiTrackInConeTOFBC0ITSRefitOnSPDOn) ;
3216 
3217  fhEtaTrackInConeTOFBC0ITSRefitOnSPDOn = new TH2F("hEtaTrackInConeTOFBC0ITSRefitOnSPDOn",
3218  Form("#eta vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, TOF BC=0, track ITS Refit SPD On",r),
3219  nptbins,ptmin,ptmax,netabins,-1,1);
3220  fhEtaTrackInConeTOFBC0ITSRefitOnSPDOn->SetYTitle("#eta");
3221  fhEtaTrackInConeTOFBC0ITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3222  outputContainer->Add(fhEtaTrackInConeTOFBC0ITSRefitOnSPDOn) ;
3223 
3224  fhPhiTrackInConeTOFBC0ITSRefitOnSPDOn = new TH2F("hPhiTrackInConeTOFBC0ITSRefitOnSPDOn",
3225  Form("#varphi vs #it{p}_{T} of Tracks in cone for #it{R} = %2.2f, TOF BC=0, track ITS Refit SPD On",r),
3226  nptbins,ptmin,ptmax,nphibins,0,TMath::TwoPi());
3227  fhPhiTrackInConeTOFBC0ITSRefitOnSPDOn->SetYTitle("#varphi (rad)");
3228  fhPhiTrackInConeTOFBC0ITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3229  outputContainer->Add(fhPhiTrackInConeTOFBC0ITSRefitOnSPDOn) ;
3230 
3231  //
3232  // DCA
3233  //
3234  TString dcaName[] = {"xy","z","Cons"} ;
3235  Int_t ndcabins = 400;
3236  Int_t mindca = -2;
3237  Int_t maxdca = 2;
3238 
3239  for(Int_t i = 0 ; i < 3 ; i++)
3240  {
3241  fhPtTrackInConeDCA[i] = new TH2F(Form("hPtTrackInConeDCA%s",dcaName[i].Data()),
3242  Form("Track DCA%s vs #it{p}_{T}^{track} in cone for trigger #it{p}_{T} >10 GeV/#it{c}",dcaName[i].Data()),
3243  nptbins,ptmin,ptmax,ndcabins,mindca,maxdca);
3244  fhPtTrackInConeDCA[i]->SetXTitle("#it{p}_{T}^{} (GeV/#it{c})");
3245  fhPtTrackInConeDCA[i]->SetYTitle(Form("DCA_{%s}",dcaName[i].Data()));
3246  outputContainer->Add(fhPtTrackInConeDCA[i]);
3247 
3248  fhPtTrackInPerpConeDCA[i] = new TH2F(Form("hPtTrackInPerpConeDCA%s",dcaName[i].Data()),
3249  Form("Track DCA%s vs #it{p}_{T}^{track} in perpendicular cone for trigger #it{p}_{T} >10 GeV/#it{c}",dcaName[i].Data()),
3250  nptbins,ptmin,ptmax,ndcabins,mindca,maxdca);
3251  fhPtTrackInPerpConeDCA[i]->SetXTitle("#it{p}_{T}^{} (GeV/#it{c})");
3252  fhPtTrackInPerpConeDCA[i]->SetYTitle(Form("DCA_{%s}",dcaName[i].Data()));
3253  outputContainer->Add(fhPtTrackInPerpConeDCA[i]);
3254  }
3255  }
3256 
3257  if(fStudyTracksInCone)
3258  {
3259  // TOF info
3260  fhPerpConeSumPtTOFBC0 = new TH2F("hPerpConePtSumTOFBC0",
3261  Form("#Sigma #it{p}_{T} in isolation cone at #pm 45 degree #varphi from trigger particle, #it{R} = %2.2f, TOF BC=0",r),
3262  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
3263  fhPerpConeSumPtTOFBC0->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3264  fhPerpConeSumPtTOFBC0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3265  outputContainer->Add(fhPerpConeSumPtTOFBC0) ;
3266 
3267  fhPtInPerpConeTOFBC0 = new TH2F("hPtInPerpConeTOFBC0",
3268  Form("#it{p}_{T} in isolation cone at #pm 45 degree #varphi from trigger particle, #it{R} = %2.2f, TOF BC=0",r),
3269  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3270  fhPtInPerpConeTOFBC0->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3271  fhPtInPerpConeTOFBC0->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3272  outputContainer->Add(fhPtInPerpConeTOFBC0) ;
3273 
3274  fhEtaPhiInPerpConeTOFBC0= new TH2F("hEtaPhiInPerpConeTOFBC0",
3275  Form("#eta vs #varphi of all Tracks, TOF BC=0"),
3276  netabins,-1,1,nphibins,0,TMath::TwoPi());
3277  fhEtaPhiInPerpConeTOFBC0->SetXTitle("#eta");
3278  fhEtaPhiInPerpConeTOFBC0->SetYTitle("#varphi (rad)");
3279  outputContainer->Add(fhEtaPhiInPerpConeTOFBC0) ;
3280 
3281  // ITS info
3282  fhPerpConeSumPtITSRefitOnSPDOn = new TH2F("hPerpConePtSumITSRefitOnSPDOn",
3283  Form("#Sigma #it{p}_{T} in isolation cone at #pm 45 degree #varphi from trigger particle, #it{R} = %2.2f, ITS Refit, SPD On",r),
3284  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
3285  fhPerpConeSumPtITSRefitOnSPDOn->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3286  fhPerpConeSumPtITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3287  outputContainer->Add(fhPerpConeSumPtITSRefitOnSPDOn) ;
3288 
3289  fhPtInPerpConeITSRefitOnSPDOn = new TH2F("hPtInPerpConeITSRefitOnSPDOn",
3290  Form("#it{p}_{T} in isolation cone at #pm 45 degree #varphi from trigger particle, #it{R} = %2.2f, ITS Refit, SPD On",r),
3291  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3292  fhPtInPerpConeITSRefitOnSPDOn->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3293  fhPtInPerpConeITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3294  outputContainer->Add(fhPtInPerpConeITSRefitOnSPDOn) ;
3295 
3296  fhEtaPhiInPerpConeITSRefitOnSPDOn= new TH2F("hEtaPhiInPerpConeITSRefitOnSPDOn",
3297  Form("#eta vs #varphi of all Tracks, ITS Refit, SPD On"),
3298  netabins,-1,1,nphibins,0,TMath::TwoPi());
3299  fhEtaPhiInPerpConeITSRefitOnSPDOn->SetXTitle("#eta");
3300  fhEtaPhiInPerpConeITSRefitOnSPDOn->SetYTitle("#varphi (rad)");
3301  outputContainer->Add(fhEtaPhiInPerpConeITSRefitOnSPDOn) ;
3302 
3303 
3304  // TOF and ITS info
3305  fhPerpConeSumPtTOFBC0ITSRefitOnSPDOn = new TH2F("hPerpConePtSumTOFBC0ITSRefitOnSPDOn",
3306  Form("#Sigma #it{p}_{T} in isolation cone at #pm 45 degree #varphi from trigger particle, #it{R} = %2.2f, TOF BC=0, ITS refit, SPD on",r),
3307  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
3308  fhPerpConeSumPtTOFBC0ITSRefitOnSPDOn->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3309  fhPerpConeSumPtTOFBC0ITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3310  outputContainer->Add(fhPerpConeSumPtTOFBC0ITSRefitOnSPDOn) ;
3311 
3312  fhPtInPerpConeTOFBC0ITSRefitOnSPDOn = new TH2F("hPtInPerpConeTOFBC0ITSRefitOnSPDOn",
3313  Form("#it{p}_{T} in isolation cone at #pm 45 degree #varphi from trigger particle, #it{R} = %2.2f, TOF BC=0, ITS refit, SPD on",r),
3314  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3315  fhPtInPerpConeTOFBC0ITSRefitOnSPDOn->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3316  fhPtInPerpConeTOFBC0ITSRefitOnSPDOn->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3317  outputContainer->Add(fhPtInPerpConeTOFBC0ITSRefitOnSPDOn) ;
3318 
3319  fhEtaPhiInPerpConeTOFBC0ITSRefitOnSPDOn = new TH2F("hEtaPhiInPerpConeTOFBC0ITSRefitOnSPDOn",
3320  Form("#eta vs #varphi of all Tracks, TOF BC=0, ITS refit, SPD on"),
3321  netabins,-1,1,nphibins,0,TMath::TwoPi());
3322  fhEtaPhiInPerpConeTOFBC0ITSRefitOnSPDOn->SetXTitle("#eta");
3323  fhEtaPhiInPerpConeTOFBC0ITSRefitOnSPDOn->SetYTitle("#varphi (rad)");
3324  outputContainer->Add(fhEtaPhiInPerpConeTOFBC0ITSRefitOnSPDOn) ;
3325 
3326  }
3327  }
3328 
3329  TString region[] = {"ITS","TPC","TRD","TOF","Top EMCal","In EMCal"}; // conversion regions
3330 
3331  for(Int_t iso = 0; iso < 2; iso++)
3332  {
3333  if(fFillTMHisto)
3334  {
3335  fhTrackMatchedDEta[iso] = new TH2F
3336  (Form("hTrackMatchedDEta%s",isoName[iso].Data()),
3337  Form("%s - d#eta of cluster-track vs cluster energy, %s",isoTitle[iso].Data(),parTitle.Data()),
3338  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3339  fhTrackMatchedDEta[iso]->SetYTitle("d#eta");
3340  fhTrackMatchedDEta[iso]->SetXTitle("E_{cluster} (GeV)");
3341 
3342  fhTrackMatchedDPhi[iso] = new TH2F
3343  (Form("hTrackMatchedDPhi%s",isoName[iso].Data()),
3344  Form("%s - d#varphi of cluster-track vs cluster energy, %s",isoTitle[iso].Data(),parTitle.Data()),
3345  nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
3346  fhTrackMatchedDPhi[iso]->SetYTitle("d#varphi (rad)");
3347  fhTrackMatchedDPhi[iso]->SetXTitle("E_{cluster} (GeV)");
3348 
3349  fhTrackMatchedDEtaDPhi[iso] = new TH2F
3350  (Form("hTrackMatchedDEtaDPhi%s",isoName[iso].Data()),
3351  Form("%s - d#eta vs d#varphi of cluster-track, %s",isoTitle[iso].Data(),parTitle.Data()),
3352  nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
3353  fhTrackMatchedDEtaDPhi[iso]->SetYTitle("d#varphi (rad)");
3354  fhTrackMatchedDEtaDPhi[iso]->SetXTitle("d#eta");
3355 
3356  outputContainer->Add(fhTrackMatchedDEta[iso]) ;
3357  outputContainer->Add(fhTrackMatchedDPhi[iso]) ;
3358  outputContainer->Add(fhTrackMatchedDEtaDPhi[iso]) ;
3359 
3360  if(IsDataMC())
3361  {
3362  for(int imc = 0; imc < fgkNmcTypes; imc++)
3363  {
3364  fhTrackMatchedDEtaMC[imc][iso] = new TH2F
3365  (Form("hTrackMatchedDEta%s_MC%s",isoName[iso].Data(),mcPartName[imc].Data()),
3366  Form("%s - d#eta of cluster-track vs cluster energy, %s",isoTitle[iso].Data(),parTitle.Data()),
3367  nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
3368  fhTrackMatchedDEtaMC[imc][iso]->SetYTitle("d#eta");
3369  fhTrackMatchedDEtaMC[imc][iso]->SetXTitle("E_{cluster} (GeV)");
3370 
3371  fhTrackMatchedDPhiMC[imc][iso] = new TH2F
3372  (Form("hTrackMatchedDPhi%s_MC%s",isoName[iso].Data(),mcPartName[imc].Data()),
3373  Form("%s - d#varphi of cluster-track vs cluster energy, %s",isoTitle[iso].Data(),parTitle.Data()),
3374  nptbins,ptmin,ptmax,nresetabins,resphimin,resphimax);
3375  fhTrackMatchedDPhiMC[imc][iso]->SetYTitle("d#varphi (rad)");
3376  fhTrackMatchedDPhiMC[imc][iso]->SetXTitle("E_{cluster} (GeV)");
3377 
3378  fhTrackMatchedDEtaDPhiMC[imc][iso] = new TH2F
3379  (Form("hTrackMatchedDEtaDPhi%s_MC%s",isoName[iso].Data(),mcPartName[imc].Data()),
3380  Form("%s - d#eta vs d#varphi of cluster-track, %s",isoTitle[iso].Data(),parTitle.Data()),
3381  nresetabins,resetamin,resetamax,nresphibins,resphimin,resphimax);
3382  fhTrackMatchedDEtaDPhiMC[imc][iso]->SetYTitle("d#varphi (rad)");
3383  fhTrackMatchedDEtaDPhiMC[imc][iso]->SetXTitle("d#eta");
3384 
3385  outputContainer->Add(fhTrackMatchedDEtaMC[imc][iso]) ;
3386  outputContainer->Add(fhTrackMatchedDPhiMC[imc][iso]) ;
3387  outputContainer->Add(fhTrackMatchedDEtaDPhiMC[imc][iso]);
3388  }
3389 
3390  }
3391 
3392  fhdEdx[iso] = new TH2F
3393  (Form("hdEdx%s",isoName[iso].Data()),
3394  Form("%s - Matched track <d#it{E}/d#it{x}> vs cluster #it{E}, %s",isoTitle[iso].Data(),parTitle.Data()),
3395  nptbins,ptmin,ptmax,ndedxbins, dedxmin, dedxmax);
3396  fhdEdx[iso]->SetXTitle("#it{E} (GeV)");
3397  fhdEdx[iso]->SetYTitle("<d#it{E}/d#it{x}>");
3398  outputContainer->Add(fhdEdx[iso]);
3399 
3400  fhEOverP[iso] = new TH2F
3401  (Form("hEOverP%s",isoName[iso].Data()),
3402  Form("%s - Matched track #it{E}/#it{p} vs cluster, %s",isoTitle[iso].Data(),parTitle.Data()),
3403  nptbins,ptmin,ptmax,nPoverEbins,pOverEmin,pOverEmax);
3404  fhEOverP[iso]->SetXTitle("#it{E} (GeV)");
3405  fhEOverP[iso]->SetYTitle("#it{E}/#it{p}");
3406  outputContainer->Add(fhEOverP[iso]);
3407 
3408  if(IsDataMC())
3409  {
3410  fhTrackMatchedMCParticle[iso] = new TH2F
3411  (Form("hTrackMatchedMCParticle%s",isoName[iso].Data()),
3412  Form("%s - Origin of particle vs cluster #it{E}, %s",isoTitle[iso].Data(),parTitle.Data()),
3413  nptbins,ptmin,ptmax,8,0,8);
3414  fhTrackMatchedMCParticle[iso]->SetXTitle("#it{E} (GeV)");
3415  //fhTrackMatchedMCParticle[iso]->SetYTitle("Particle type");
3416 
3417  fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(1 ,"Photon");
3418  fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(2 ,"Electron");
3419  fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(3 ,"Meson Merged");
3420  fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(4 ,"Rest");
3421  fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(5 ,"Conv. Photon");
3422  fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(6 ,"Conv. Electron");
3423  fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(7 ,"Conv. Merged");
3424  fhTrackMatchedMCParticle[iso]->GetYaxis()->SetBinLabel(8 ,"Conv. Rest");
3425 
3426  outputContainer->Add(fhTrackMatchedMCParticle[iso]);
3427  }
3428  }
3429 
3430  if(fFillSSHisto)
3431  {
3432  fhELambda0[iso] = new TH2F
3433  (Form("hELambda0%s",isoName[iso].Data()),
3434  Form("%s cluster : #it{E} vs #lambda_{0}, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3435  fhELambda0[iso]->SetYTitle("#lambda_{0}^{2}");
3436  fhELambda0[iso]->SetXTitle("#it{E} (GeV)");
3437  outputContainer->Add(fhELambda0[iso]) ;
3438 
3439 // fhELambda1[iso] = new TH2F
3440 // (Form("hELambda1%s",isoName[iso].Data()),
3441 // Form("%s cluster: #it{E} vs #lambda_{1}, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3442 // fhELambda1[iso]->SetYTitle("#lambda_{1}^{2}");
3443 // fhELambda1[iso]->SetXTitle("#it{E} (GeV)");
3444 // outputContainer->Add(fhELambda1[iso]) ;
3445 
3446  fhPtLambda0[iso] = new TH2F
3447  (Form("hPtLambda0%s",isoName[iso].Data()),
3448  Form("%s cluster : #it{p}_{T} vs #lambda_{0}, %s",isoTitle[iso].Data(), parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3449  fhPtLambda0[iso]->SetYTitle("#lambda_{0}^{2}");
3450  fhPtLambda0[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3451  outputContainer->Add(fhPtLambda0[iso]) ;
3452 
3453  if ( fFillPerSMHistograms )
3454  {
3455  Int_t totalSM = fLastModule-fFirstModule+1;
3456 
3457  fhPtPerSM[iso] = new TH2F
3458  (Form("hPtPerSM_%s",isoName[iso].Data()),
3459  Form("%s candidate #it{p}_{T} and super-module number, %s",isoTitle[iso].Data(), parTitle.Data()),
3460  nptbins,ptmin,ptmax,totalSM,fFirstModule-0.5,fLastModule+0.5);
3461  fhPtPerSM[iso]->SetYTitle("SuperModule ");
3462  fhPtPerSM[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3463  outputContainer->Add(fhPtPerSM[iso]) ;
3464 
3465  for(Int_t ism = 0; ism < fNModules; ism++)
3466  {
3467  if ( ism < fFirstModule || ism > fLastModule ) continue;
3468 
3469  fhPtLambda0PerSM[iso][ism] = new TH2F
3470  (Form("hPtLambda0_SM%d_%s",ism,isoName[iso].Data()),
3471  Form("%s cluster : #it{p}_{T} vs #lambda_{0}^{2}, SM %d, %s",isoTitle[iso].Data(), ism, parTitle.Data()),
3472  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3473  fhPtLambda0PerSM[iso][ism]->SetYTitle("#lambda_{0}^{2}");
3474  fhPtLambda0PerSM[iso][ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3475  outputContainer->Add(fhPtLambda0PerSM[iso][ism]) ;
3476 
3477  if ( fStudyNCellsCut )
3478  {
3479  fhPtLambda0PerSMNCellCut[iso][ism] = new TH2F
3480  (Form("hPtLambda0_NCellCut_SM%d_%s",ism,isoName[iso].Data()),
3481  Form("%s cluster : #it{p}_{T} vs #lambda_{0}^{2}, n_{cell}^{w>0} > 4, SM %d, %s",isoTitle[iso].Data(), ism, parTitle.Data()),
3482  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3483  fhPtLambda0PerSMNCellCut[iso][ism]->SetYTitle("#lambda_{0}^{2}");
3484  fhPtLambda0PerSMNCellCut[iso][ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3485  outputContainer->Add(fhPtLambda0PerSMNCellCut[iso][ism]) ;
3486 
3487  fhPtNCellPerSM[iso][ism] = new TH2F
3488  (Form("hPtNCell_SM%d_%s",ism,isoName[iso].Data()),
3489  Form("%s cluster : #it{p}_{T} vs n_{cell}^{w>0}, SM %d, %s",isoTitle[iso].Data(), ism, parTitle.Data()),
3490  nptbins,ptmin,ptmax,30,-0.5,29.5);
3491  fhPtNCellPerSM[iso][ism]->SetYTitle("n_{cell}^{w>0}");
3492  fhPtNCellPerSM[iso][ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3493  outputContainer->Add(fhPtNCellPerSM[iso][ism]) ;
3494 
3495  fhPtNCellLowM02PerSM[iso][ism] = new TH2F
3496  (Form("hPtNCell_LowM02_SM%d_%s",ism,isoName[iso].Data()),
3497  Form("%s cluster : #it{p}_{T} vs n_{cell}^{w>0}, 0.1<#lambda_{0}^{2}<0.3, SM %d, %s",isoTitle[iso].Data(), ism, parTitle.Data()),
3498  nptbins,ptmin,ptmax,30,-0.5,29.5);
3499  fhPtNCellLowM02PerSM[iso][ism]->SetYTitle("n_{cell}^{w>0}");
3500  fhPtNCellLowM02PerSM[iso][ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3501  outputContainer->Add(fhPtNCellLowM02PerSM[iso][ism]) ;
3502 
3503  fhPtNCellHighM02PerSM[iso][ism] = new TH2F
3504  (Form("hPtNCell_HighM02_SM%d_%s",ism,isoName[iso].Data()),
3505  Form("%s cluster : #it{p}_{T} vs n_{cell}^{w>0}, 0.5<#lambda_{0}^{2}<2, SM %d, %s",isoTitle[iso].Data(), ism, parTitle.Data()),
3506  nptbins,ptmin,ptmax,30,-0.5,29.5);
3507  fhPtNCellHighM02PerSM[iso][ism]->SetYTitle("n_{cell}^{w>0}");
3508  fhPtNCellHighM02PerSM[iso][ism]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3509  outputContainer->Add(fhPtNCellHighM02PerSM[iso][ism]) ;
3510  }
3511  }
3512  }
3513 
3515  {
3516  fhPtPerTCardIndex[iso] = new TH2F
3517  (Form("hPtPerTCardIndex_%s",isoName[iso].Data()),
3518  Form("%s candidate #it{p}_{T} and super-module number, %s",isoTitle[iso].Data(), parTitle.Data()),
3519  nptbins,ptmin,ptmax,16,-0.5,15.5);
3520  fhPtPerTCardIndex[iso]->SetYTitle("T-Card cell max index");
3521  fhPtPerTCardIndex[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3522  outputContainer->Add(fhPtPerTCardIndex[iso]) ;
3523 
3524  for(Int_t itc = 0; itc < 16; itc++)
3525  {
3526  fhPtLambda0PerTCardIndex[iso][itc] = new TH2F
3527  (Form("hPtLambda0_TC%d_%s",itc,isoName[iso].Data()),
3528  Form("%s cluster : #it{p}_{T} vs #lambda_{0}, TC index %d, %s",isoTitle[iso].Data(), itc, parTitle.Data()),
3529  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3530  fhPtLambda0PerTCardIndex[iso][itc]->SetYTitle("#lambda_{0}^{2}");
3531  fhPtLambda0PerTCardIndex[iso][itc]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3532  outputContainer->Add(fhPtLambda0PerTCardIndex[iso][itc]) ;
3533  }
3534  }
3535 
3536  if(IsDataMC())
3537  {
3538  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
3539  {
3540  fhPtLambda0MC[imc][iso] = new TH2F
3541  (Form("hPtLambda0%s_MC%s",isoName[iso].Data(),mcPartName[imc].Data()),
3542  Form("%s cluster : #it{p}_{T} vs #lambda_{0}: %s %s",isoTitle[iso].Data(),mcPartType[imc].Data(),parTitle.Data()),
3543  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3544  fhPtLambda0MC[imc][iso]->SetYTitle("#lambda_{0}^{2}");
3545  fhPtLambda0MC[imc][iso]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
3546  outputContainer->Add( fhPtLambda0MC[imc][iso]) ;
3547 
3548  fhPtLambda0MCConv[imc][iso] = new TH2F
3549  (Form("hPtLambda0%s_MC%sConv",isoName[iso].Data(),mcPartName[imc].Data()),
3550  Form("%s cluster : #it{p}_{T} vs #lambda_{0}: %s %s, from conversion",isoTitle[iso].Data(),mcPartType[imc].Data(),parTitle.Data()),
3551  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3552  fhPtLambda0MCConv[imc][iso]->SetYTitle("#lambda_{0}^{2}");
3553  fhPtLambda0MCConv[imc][iso]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
3554  outputContainer->Add( fhPtLambda0MCConv[imc][iso]) ;
3555 
3556  if ( fStudyNCellsCut )
3557  {
3558  fhPtLambda0MCNCellCut[imc][iso] = new TH2F
3559  (Form("hPtLambda0%s_MC%sNCellCut",isoName[iso].Data(),mcPartName[imc].Data()),
3560  Form("%s cluster : #it{p}_{T} vs #lambda_{0}, n_{cell}^{w>0.1} > 4: %s %s",isoTitle[iso].Data(),mcPartType[imc].Data(),parTitle.Data()),
3561  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3562  fhPtLambda0MCNCellCut[imc][iso]->SetYTitle("#lambda_{0}^{2}");
3563  fhPtLambda0MCNCellCut[imc][iso]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
3564  outputContainer->Add( fhPtLambda0MCNCellCut[imc][iso]) ;
3565  }
3566 
3568  {
3569  fhPtLambda0MCWith1Overlap[imc][iso] = new TH2F
3570  (Form("hPtLambda0%s_MC%s_1Overlap",isoName[iso].Data(),mcPartName[imc].Data()),
3571  Form("%s cluster : #it{p}_{T} vs #lambda_{0}: %s %s, 1 overlap",
3572  isoTitle[iso].Data(),mcPartType[imc].Data(),parTitle.Data()),
3573  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3574  fhPtLambda0MCWith1Overlap[imc][iso]->SetYTitle("#lambda_{0}^{2}");
3575  fhPtLambda0MCWith1Overlap[imc][iso]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
3576  outputContainer->Add( fhPtLambda0MCWith1Overlap[imc][iso]) ;
3577 
3578  fhPtLambda0MCConvWith1Overlap[imc][iso] = new TH2F
3579  (Form("hPtLambda0%s_MC%sConv_1Overlap",isoName[iso].Data(),mcPartName[imc].Data()),
3580  Form("%s cluster : #it{p}_{T} vs #lambda_{0}: %s %s, from conversion, 1 overlap",
3581  isoTitle[iso].Data(),mcPartType[imc].Data(),parTitle.Data()),
3582  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3583  fhPtLambda0MCConvWith1Overlap[imc][iso]->SetYTitle("#lambda_{0}^{2}");
3584  fhPtLambda0MCConvWith1Overlap[imc][iso]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
3585  outputContainer->Add( fhPtLambda0MCConvWith1Overlap[imc][iso]) ;
3586 
3587  fhPtLambda0MCWithNoOverlap[imc][iso] = new TH2F
3588  (Form("hPtLambda0%s_MC%s_NoOverlap",isoName[iso].Data(),mcPartName[imc].Data()),
3589  Form("%s cluster : #it{p}_{T} vs #lambda_{0}: %s %s, no overlap",
3590  isoTitle[iso].Data(),mcPartType[imc].Data(),parTitle.Data()),
3591  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3592  fhPtLambda0MCWithNoOverlap[imc][iso]->SetYTitle("#lambda_{0}^{2}");
3593  fhPtLambda0MCWithNoOverlap[imc][iso]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
3594  outputContainer->Add( fhPtLambda0MCWithNoOverlap[imc][iso]) ;
3595 
3596  fhPtLambda0MCConvWithNoOverlap[imc][iso] = new TH2F
3597  (Form("hPtLambda0%s_MC%sConv_NoOverlap",isoName[iso].Data(),mcPartName[imc].Data()),
3598  Form("%s cluster : #it{p}_{T} vs #lambda_{0}: %s %s, from conversion, no overlap",
3599  isoTitle[iso].Data(),mcPartType[imc].Data(),parTitle.Data()),
3600  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3601  fhPtLambda0MCConvWithNoOverlap[imc][iso]->SetYTitle("#lambda_{0}^{2}");
3602  fhPtLambda0MCConvWithNoOverlap[imc][iso]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
3603  outputContainer->Add( fhPtLambda0MCConvWithNoOverlap[imc][iso]) ;
3604 
3605  fhPtNOverlap[imc][iso] = new TH2F
3606  (Form("hPtNOverlaps%s_MC%s_1Overlap",isoName[iso].Data(),mcPartName[imc].Data()),
3607  Form("%s cluster : #it{p}_{T} vs #lambda_{0}: %s %s, 1 overlap",
3608  isoTitle[iso].Data(),mcPartType[imc].Data(),parTitle.Data()),
3609  nptbins,ptmin,ptmax,10,0,10);
3610  fhPtNOverlap[imc][iso]->SetYTitle("#it{N} overlaps");
3611  fhPtNOverlap[imc][iso]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
3612  outputContainer->Add( fhPtNOverlap[imc][iso]) ;
3613 
3614  fhPtNOverlapConv[imc][iso] = new TH2F
3615  (Form("hPtNOverlaps%s_MC%sConv_1Overlap",isoName[iso].Data(),mcPartName[imc].Data()),
3616  Form("%s cluster : #it{p}_{T} vs #lambda_{0}: %s %s, from conversion, 1 overlap",
3617  isoTitle[iso].Data(),mcPartType[imc].Data(),parTitle.Data()),
3618  nptbins,ptmin,ptmax,10,0,10);
3619  fhPtNOverlapConv[imc][iso]->SetYTitle("#it{N} overlaps");
3620  fhPtNOverlapConv[imc][iso]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
3621  outputContainer->Add( fhPtNOverlapConv[imc][iso]) ;
3622  }
3623 
3624  }
3625  }
3626 
3628  {
3629  fhPtLambda0TRD[iso] = new TH2F
3630  (Form("hPtLambda0TRD%s",isoName[iso].Data()),
3631  Form("%s cluster: #it{p}_{T} vs #lambda_{0}, SM behind TRD, %s",isoTitle[iso].Data(),parTitle.Data()),
3632  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3633  fhPtLambda0TRD[iso]->SetYTitle("#lambda_{0}^{2}");
3634  fhPtLambda0TRD[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3635  outputContainer->Add(fhPtLambda0TRD[iso]) ;
3636 
3637  fhELambda0TRD[iso] = new TH2F
3638  (Form("hELambda0TRD%s",isoName[iso].Data()),
3639  Form("%s cluster: #it{E} vs #lambda_{0}, SM behind TRD, %s",isoTitle[iso].Data(),parTitle.Data()),
3640  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3641  fhELambda0TRD[iso]->SetYTitle("#lambda_{0}^{2}");
3642  fhELambda0TRD[iso]->SetXTitle("#it{E} (GeV)");
3643  outputContainer->Add(fhELambda0TRD[iso]) ;
3644 
3645 // fhELambda1TRD[iso] = new TH2F
3646 // (Form("hELambda1TRD%s",isoName[iso].Data()),
3647 // Form("%s cluster: #it{E} vs #lambda_{1}, SM behind TRD, %s",isoTitle[iso].Data(),parTitle.Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3648 // fhELambda1TRD[iso]->SetYTitle("#lambda_{1}^{2}");
3649 // fhELambda1TRD[iso]->SetXTitle("#it{E} (GeV)");
3650 // outputContainer->Add(fhELambda1TRD[iso]) ;
3651  }
3652 
3653  if(fFillNLMHistograms)
3654  {
3655  fhNLocMax[iso] = new TH2F
3656  (Form("hNLocMax%s",isoName[iso].Data()),
3657  Form("%s - Number of local maxima in cluster, %s",isoTitle[iso].Data(),parTitle.Data()),
3658  nptbins,ptmin,ptmax,10,0,10);
3659  fhNLocMax[iso]->SetYTitle("#it{NLM}");
3660  fhNLocMax[iso]->SetXTitle("#it{E} (GeV)");
3661  outputContainer->Add(fhNLocMax[iso]) ;
3662 
3663  fhELambda0LocMax1[iso] = new TH2F
3664  (Form("hELambda0LocMax1%s",isoName[iso].Data()),
3665  Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{0}, #it{NLM}=1, %s",isoTitle[iso].Data(),parTitle.Data()),
3666  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3667  fhELambda0LocMax1[iso]->SetYTitle("#lambda_{0}^{2}");
3668  fhELambda0LocMax1[iso]->SetXTitle("#it{E} (GeV)");
3669  outputContainer->Add(fhELambda0LocMax1[iso]) ;
3670 
3671  fhELambda1LocMax1[iso] = new TH2F
3672  (Form("hELambda1LocMax1%s",isoName[iso].Data()),
3673  Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{1}, #it{NLM}=1, %s",isoTitle[iso].Data(),parTitle.Data()),
3674  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3675  fhELambda1LocMax1[iso]->SetYTitle("#lambda_{1}^{2}");
3676  fhELambda1LocMax1[iso]->SetXTitle("#it{E} (GeV)");
3677  outputContainer->Add(fhELambda1LocMax1[iso]) ;
3678 
3679  fhELambda0LocMax2[iso] = new TH2F
3680  (Form("hELambda0LocMax2%s",isoName[iso].Data()),
3681  Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{0}, #it{NLM}=2, %s",isoTitle[iso].Data(),parTitle.Data()),
3682  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3683  fhELambda0LocMax2[iso]->SetYTitle("#lambda_{0}^{2}");
3684  fhELambda0LocMax2[iso]->SetXTitle("#it{E} (GeV)");
3685  outputContainer->Add(fhELambda0LocMax2[iso]) ;
3686 
3687  fhELambda1LocMax2[iso] = new TH2F
3688  (Form("hELambda1LocMax2%s",isoName[iso].Data()),
3689  Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{1}, #it{NLM}=2, %s",isoTitle[iso].Data(),parTitle.Data()),
3690  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3691  fhELambda1LocMax2[iso]->SetYTitle("#lambda_{1}^{2}");
3692  fhELambda1LocMax2[iso]->SetXTitle("#it{E} (GeV)");
3693  outputContainer->Add(fhELambda1LocMax2[iso]) ;
3694 
3695  fhELambda0LocMaxN[iso] = new TH2F
3696  ( Form("hELambda0LocMaxN%s",isoName[iso].Data()),
3697  Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{0}, #it{NLM}>2, %s",isoTitle[iso].Data(),parTitle.Data()),
3698  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3699  fhELambda0LocMaxN[iso]->SetYTitle("#lambda_{0}^{2}");
3700  fhELambda0LocMaxN[iso]->SetXTitle("#it{E} (GeV)");
3701  outputContainer->Add(fhELambda0LocMaxN[iso]) ;
3702 
3703  fhELambda1LocMaxN[iso] = new TH2F
3704  (Form("hELambda1LocMaxN%s",isoName[iso].Data()),
3705  Form("%s cluster (#eta) pairs: #it{E} vs #lambda_{1}, #it{NLM}>2, %s",isoTitle[iso].Data(),parTitle.Data()),
3706  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3707  fhELambda1LocMaxN[iso]->SetYTitle("#lambda_{1}^{2}");
3708  fhELambda1LocMaxN[iso]->SetXTitle("#it{E} (GeV)");
3709  outputContainer->Add(fhELambda1LocMaxN[iso]) ;
3710  } // NLM
3711  } // SS histo
3712 
3714  {
3715  for(Int_t ieta = 0; ieta < 4; ieta++)
3716  {
3717  for(Int_t iphi = 0; iphi < 3; iphi++)
3718  {
3719  for(Int_t ism = 0; ism < fNModules; ism++)
3720  {
3721  if ( ism < fFirstModule || ism > fLastModule ) continue;
3722 
3723  fhLam0EMCALRegionPerSM[iso][ieta][iphi][ism] =
3724  new TH2F(Form("hLam0_%s_eta%d_phi%d_sm%d",isoName[iso].Data(),ieta,iphi,ism),
3725  Form("%s, #it{p}_{T} vs #lambda_{0}^{2}, sm %d, region #eta %d, #varphi %d",
3726  isoTitle[iso].Data(),ism,ieta,iphi),
3727  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3728  fhLam0EMCALRegionPerSM[iso][ieta][iphi][ism]->SetYTitle("#lambda_{0}^{2}");
3729  fhLam0EMCALRegionPerSM[iso][ieta][iphi][ism]->SetXTitle("#it{p}_{T} (GeV)");
3730  outputContainer->Add(fhLam0EMCALRegionPerSM[iso][ieta][iphi][ism]) ;
3731 
3732  if(iso==0)
3733  {
3734  fhConeSumPtTrackEMCALRegionPerSM[ieta][iphi][ism] = new TH2F
3735  (Form("hConePtSumTrack_eta%d_phi%d_sm%d",ieta,iphi,ism),
3736  Form("Track #Sigma #it{p}_{T}, sm %d, region #eta %d, #varphi %d",ism,ieta,iphi),
3737  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
3738  fhConeSumPtTrackEMCALRegionPerSM[ieta][iphi][ism]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3739  fhConeSumPtTrackEMCALRegionPerSM[ieta][iphi][ism]->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
3740  outputContainer->Add(fhConeSumPtTrackEMCALRegionPerSM[ieta][iphi][ism]) ;
3741 
3742  fhConeSumPtClusterEMCALRegionPerSM[ieta][iphi][ism] = new TH2F
3743  (Form("hConePtSumCluster_eta%d_phi%d_sm%d",ieta,iphi,ism),
3744  Form("Track #Sigma #it{p}_{T}, sm %d, region #eta %d, #varphi %d",ism,ieta,iphi),
3745  nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
3746  fhConeSumPtClusterEMCALRegionPerSM[ieta][iphi][ism]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
3747  fhConeSumPtClusterEMCALRegionPerSM[ieta][iphi][ism]->SetXTitle("#it{p}_{T, trigger} (GeV/#it{c})");
3748  outputContainer->Add(fhConeSumPtClusterEMCALRegionPerSM[ieta][iphi][ism]) ;
3749  }
3750  } // ism
3751  } // iphi
3752  } // ieta
3753 
3754  Float_t ptLimit[] = {2,3,4,5,6,8,10,12};
3755  for(Int_t ipt = 0; ipt < 7; ipt++)
3756  {
3757  fhEtaPhiLam0BinPtBin[iso][ipt] = new TH2F
3758  (Form("hEtaPhiLam0BinPtBin%d%s",ipt,isoName[iso].Data()),
3759  Form("%s, #eta vs #varphi in #it{p}_{T}=[%2.1f,%2.1f] GeV/#it{c} and #lambda^{2}_{0}=[0.3,0.4]",
3760  isoTitle[iso].Data(),ptLimit[ipt],ptLimit[ipt+1]),
3761  netabins,etamin,etamax,nphibins,phimin,phimax);
3762  fhEtaPhiLam0BinPtBin[iso][ipt]->SetYTitle("#varphi (rad)");
3763  fhEtaPhiLam0BinPtBin[iso][ipt]->SetXTitle("#eta");
3764  outputContainer->Add(fhEtaPhiLam0BinPtBin[iso][ipt]) ;
3765  }
3766  } // regions in EMCal
3767 
3769  {
3770  fhMCConversionVertex[iso] = new TH2F(Form("hMCPhotonConversionVertex%s",isoName[iso].Data()),
3771  Form("%s, cluster from converted photon, #it{p}_{T} vs vertex distance, %s",
3772  isoTitle[iso].Data(),parTitle.Data()),
3773  nptbins,ptmin,ptmax,500,0,500);
3774  fhMCConversionVertex[iso]->SetYTitle("#it{R} (cm)");
3775  fhMCConversionVertex[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3776  outputContainer->Add(fhMCConversionVertex[iso]) ;
3777 
3778  if(GetCalorimeter() == kEMCAL && GetFirstSMCoveredByTRD() >= 0)
3779  {
3780  fhMCConversionVertexTRD[iso] = new TH2F(Form("hMCPhotonConversionVertexTRD%s",isoName[iso].Data()),
3781  Form("%s, cluster from converted photon, #it{p}_{T} vs vertex distance, %s, SM covered by TRD",
3782  isoTitle[iso].Data(),parTitle.Data()),
3783  nptbins,ptmin,ptmax,500,0,500);
3784  fhMCConversionVertexTRD[iso]->SetYTitle("#it{R} (cm)");
3785  fhMCConversionVertexTRD[iso]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3786  outputContainer->Add(fhMCConversionVertexTRD[iso]) ;
3787  }
3788 
3789  for(Int_t iR = 0; iR < 6; iR++)
3790  {
3791  fhMCConversionLambda0Rcut[iR][iso] = new TH2F(Form("hMCPhotonConversionLambda0%s_R%d",isoName[iso].Data(),iR),
3792  Form("%s, cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, conversion in %s",
3793  isoTitle[iso].Data(),region[iR].Data()),
3794  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3795  fhMCConversionLambda0Rcut[iR][iso]->SetYTitle("#lambda_{0}^{2}");
3796  fhMCConversionLambda0Rcut[iR][iso]->SetXTitle("#it{p}_{T} (GeV)");
3797  outputContainer->Add(fhMCConversionLambda0Rcut[iR][iso]) ;
3798 
3799  if(GetCalorimeter() == kEMCAL && GetFirstSMCoveredByTRD() >= 0)
3800  {
3801  fhMCConversionLambda0RcutTRD[iR][iso] = new TH2F(Form("hMCPhotonConversionLambda0TRD%s_R%d",isoName[iso].Data(),iR),
3802  Form("%s, cluster from converted photon, #it{p}_{T} vs #lambda_{0}^{2}, conversion in %s, SM covered by TRD",
3803  isoTitle[iso].Data(),region[iR].Data()),
3804  nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3805  fhMCConversionLambda0RcutTRD[iR][iso]->SetYTitle("#lambda_{0}^{2}");
3806  fhMCConversionLambda0RcutTRD[iR][iso]->SetXTitle("#it{p}_{T} (GeV)");
3807  outputContainer->Add(fhMCConversionLambda0RcutTRD[iR][iso]) ;
3808  }
3809  }
3810  } // conversion radius
3811 
3812  } // control histograms for isolated and non isolated objects
3813 
3814  if(IsPileUpAnalysisOn())
3815  {
3816  if(fStudyTracksInCone)
3817  {
3818  fhPtTrackInConeOtherBCPileUpSPD = new TH2F("hPtTrackInConeOtherBCPileUpSPD",
3819  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC!=0, pile-up from SPD",r),
3820  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3821  fhPtTrackInConeOtherBCPileUpSPD->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3822  fhPtTrackInConeOtherBCPileUpSPD->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3823  outputContainer->Add(fhPtTrackInConeOtherBCPileUpSPD) ;
3824 
3825  fhPtTrackInConeBC0PileUpSPD = new TH2F("hPtTrackInConeBC0PileUpSPD",
3826  Form("#it{p}_{T} of tracks in isolation cone for #it{R} = %2.2f, TOF from BC==0, pile-up from SPD",r),
3827  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3828  fhPtTrackInConeBC0PileUpSPD->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3829  fhPtTrackInConeBC0PileUpSPD->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3830  outputContainer->Add(fhPtTrackInConeBC0PileUpSPD) ;
3831  }
3832 
3833  for (Int_t i = 0; i < 7 ; i++)
3834  {
3835  fhPtInConePileUp[i] = new TH2F(Form("hPtInConePileUp%s",pileUpName[i].Data()),
3836  Form("#it{p}_{T} in isolation cone for #it{R} = %2.2f, from pile-up (%s)",r,pileUpName[i].Data()),
3837  nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
3838  fhPtInConePileUp[i]->SetYTitle("#it{p}_{T in cone} (GeV/#it{c})");
3839  fhPtInConePileUp[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3840  outputContainer->Add(fhPtInConePileUp[i]) ;
3841  }
3842  }
3843 
3844  if(IsDataMC())
3845  {
3846  // For histograms in arrays, index in the array, corresponding to any particle origin
3847 
3848  for(Int_t i = 0; i < fgkNmcPrimTypes; i++)
3849  {
3850  fhEPrimMC[i] = new TH1F(Form("hEPrim_MC%s",ppname[i].Data()),
3851  Form("primary photon %s : #it{E}, %s",pptype[i].Data(),parTitle.Data()),
3852  nptbins,ptmin,ptmax);
3853  fhEPrimMC[i]->SetXTitle("#it{E} (GeV)");
3854  outputContainer->Add(fhEPrimMC[i]) ;
3855 
3856  fhPtPrimMC[i] = new TH1F(Form("hPtPrim_MC%s",ppname[i].Data()),
3857  Form("primary photon %s : #it{p}_{T}, %s",pptype[i].Data(),parTitle.Data()),
3858  nptbins,ptmin,ptmax);
3859  fhPtPrimMC[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3860  outputContainer->Add(fhPtPrimMC[i]) ;
3861 
3862  fhPtPrimMCiso[i] = new TH1F(Form("hPtPrim_MCiso%s",ppname[i].Data()),
3863  Form("primary isolated photon %s : #it{p}_{T}, %s",pptype[i].Data(),parTitle.Data()),
3864  nptbins,ptmin,ptmax);
3865  fhPtPrimMCiso[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3866  outputContainer->Add(fhPtPrimMCiso[i]) ;
3867 
3868  fhEtaPrimMC[i] = new TH2F(Form("hEtaPrim_MC%s",ppname[i].Data()),
3869  Form("primary photon %s : #eta vs #it{p}_{T}, %s",pptype[i].Data(),parTitle.Data()),
3870  nptbins,ptmin,ptmax,200,-2,2);
3871  fhEtaPrimMC[i]->SetYTitle("#eta");
3872  fhEtaPrimMC[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3873  outputContainer->Add(fhEtaPrimMC[i]) ;
3874 
3875  fhPhiPrimMC[i] = new TH2F(Form("hPhiPrim_MC%s",ppname[i].Data()),
3876  Form("primary photon %s : #varphi vs #it{p}_{T}, %s",pptype[i].Data(),parTitle.Data()),
3877  nptbins,ptmin,ptmax,200,0.,TMath::TwoPi());
3878  fhPhiPrimMC[i]->SetYTitle("#varphi (rad)");
3879  fhPhiPrimMC[i]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3880  outputContainer->Add(fhPhiPrimMC[i]) ;
3881  }
3882 
3884  {
3885  fhPtPrimMCPi0DecayPairAcceptInConeLowPt = new TH1F("hPtPrim_MCPhotonPi0DecayPairAcceptInConeLowPt",
3886  Form("primary photon %s : #it{p}_{T}, pair in cone, %s",pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3887  nptbins,ptmin,ptmax);
3888  fhPtPrimMCPi0DecayPairAcceptInConeLowPt->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3889  outputContainer->Add(fhPtPrimMCPi0DecayPairAcceptInConeLowPt) ;
3890 
3891  fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPt = new TH1F("hPtPrim_MCisoPhotonPi0DecayPairAcceptInConeLowPt",
3892  Form("isolated primary photon %s, pair in cone : #it{p}_{T}, %s",
3893  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3894  nptbins,ptmin,ptmax);
3895  fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPt->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3896  outputContainer->Add(fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPt) ;
3897 
3898  fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap = new TH1F("hPtPrim_MCPhotonPi0DecayPairAcceptInConeLowPtNoOverlap",
3899  Form("primary photon %s, no overlap, pair in cone : #it{p}_{T}, %s",
3900  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3901  nptbins,ptmin,ptmax);
3902  fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3903  outputContainer->Add(fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap) ;
3904 
3905  fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap = new TH1F("hPtPrim_MCisoPhotonPi0DecayPairAcceptInConeLowPtNoOverlap",
3906  Form("isolated primary photon %s, pair in cone,no overlap : #it{p}_{T}, %s",
3907  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3908  nptbins,ptmin,ptmax);
3909  fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3911 
3912  fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE = new TH1F("hPtPrim_MCPhotonPi0DecayPairAcceptInConeLowPtNoOverlapCaloE",
3913  Form("primary photon %s, no overlap, pair in cone, E > calo min: #it{p}_{T}, %s",
3914  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3915  nptbins,ptmin,ptmax);
3916  fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3918 
3919  fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE = new TH1F("hPtPrim_MCisoPhotonPi0DecayPairAcceptInConeLowPtNoOverlapCaloE",
3920  Form("isolated primary photon %s, pair in cone,no overlap, E > calo min: #it{p}_{T}, %s",
3921  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3922  nptbins,ptmin,ptmax);
3923  fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3925 
3926 
3927  fhPtPrimMCPi0DecayPairNoOverlap = new TH1F("hPtPrim_MCPhotonPi0DecayPairNoOverlap",
3928  Form("primary photon %s, no overlap: #it{p}_{T}, %s",
3929  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3930  nptbins,ptmin,ptmax);
3931  fhPtPrimMCPi0DecayPairNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3932  outputContainer->Add(fhPtPrimMCPi0DecayPairNoOverlap) ;
3933 
3934  fhPtPrimMCPi0DecayIsoPairNoOverlap = new TH1F("hPtPrim_MCisoPhotonPi0DecayPairNoOverlap",
3935  Form("isolated primary photon %s, no overlap: #it{p}_{T}, %s",
3936  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3937  nptbins,ptmin,ptmax);
3938  fhPtPrimMCPi0DecayIsoPairNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3939  outputContainer->Add(fhPtPrimMCPi0DecayIsoPairNoOverlap) ;
3940 
3941  fhPtPrimMCPi0DecayPairOutOfCone = new TH1F("hPtPrim_MCPhotonPi0DecayPairOutOfCone",
3942  Form("primary photon %s : #it{p}_{T}, pair out of cone, %s",pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3943  nptbins,ptmin,ptmax);
3944  fhPtPrimMCPi0DecayPairOutOfCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3945  outputContainer->Add(fhPtPrimMCPi0DecayPairOutOfCone) ;
3946 
3947  fhPtPrimMCPi0DecayIsoPairOutOfCone = new TH1F("hPtPrim_MCisoPhotonPi0DecayPairOutOfCone",
3948  Form("isolated primary photon %s, pair out of cone : #it{p}_{T}, %s",
3949  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3950  nptbins,ptmin,ptmax);
3951  fhPtPrimMCPi0DecayIsoPairOutOfCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3952  outputContainer->Add(fhPtPrimMCPi0DecayIsoPairOutOfCone) ;
3953 
3954  fhPtPrimMCPi0DecayPairOutOfAcceptance = new TH1F("hPtPrim_MCPhotonPi0DecayPairOutOfAcceptance",
3955  Form("primary photon %s : #it{p}_{T}, pair out of acceptance, %s",pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3956  nptbins,ptmin,ptmax);
3957  fhPtPrimMCPi0DecayPairOutOfAcceptance->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3958  outputContainer->Add(fhPtPrimMCPi0DecayPairOutOfAcceptance) ;
3959 
3960  fhPtPrimMCPi0DecayPairOutOfAcceptanceNoOverlap = new TH1F("hPtPrim_MCPhotonPi0DecayPairOutOfAcceptanceNoOverlap",
3961  Form("primary photon %s : #it{p}_{T}, pair out of acceptance, no overlap, %s",pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3962  nptbins,ptmin,ptmax);
3963  fhPtPrimMCPi0DecayPairOutOfAcceptanceNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3964  outputContainer->Add(fhPtPrimMCPi0DecayPairOutOfAcceptanceNoOverlap) ;
3965 
3966  fhPtPrimMCPi0DecayIsoPairOutOfAcceptance = new TH1F("hPtPrim_MCisoPhotonPi0DecayPairOutOfAcceptance",
3967  Form("isolated primary photon %s, pair out of acceptance : #it{p}_{T}, %s",
3968  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3969  nptbins,ptmin,ptmax);
3970  fhPtPrimMCPi0DecayIsoPairOutOfAcceptance->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3971  outputContainer->Add(fhPtPrimMCPi0DecayIsoPairOutOfAcceptance) ;
3972 
3973  fhPtPrimMCPi0DecayIsoPairOutOfAcceptanceNoOverlap = new TH1F("hPtPrim_MCisoPhotonPi0DecayPairOutOfAcceptanceNoOverlap",
3974  Form("isolated primary photon %s, pair out of acceptance, no overlap : #it{p}_{T}, %s",
3975  pptype[kmcPrimPi0Decay].Data(),parTitle.Data()),
3976  nptbins,ptmin,ptmax);
3977  fhPtPrimMCPi0DecayIsoPairOutOfAcceptanceNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3979 
3980  fhPtPrimMCPi0Overlap = new TH1F("hPtPrim_MCPi0Overlap",
3981  Form("primary %s, overlap: #it{p}_{T}, %s",
3982  pptype[kmcPrimPi0].Data(),parTitle.Data()),
3983  nptbins,ptmin,ptmax);
3984  fhPtPrimMCPi0Overlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3985  outputContainer->Add(fhPtPrimMCPi0Overlap) ;
3986 
3987  fhPtPrimMCPi0IsoOverlap = new TH1F("hPtPrim_MCisoPi0Overlap",
3988  Form("primary %s, overlap: #it{p}_{T}, %s",
3989  pptype[kmcPrimPi0].Data(),parTitle.Data()),
3990  nptbins,ptmin,ptmax);
3991  fhPtPrimMCPi0IsoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3992  outputContainer->Add(fhPtPrimMCPi0IsoOverlap) ;
3993 
3994 
3995  fhPtPrimMCEtaDecayPairAcceptInConeLowPt = new TH1F("hPtPrim_MCPhotonEtaDecayPairAcceptInConeLowPt",
3996  Form("primary photon %s : #it{p}_{T}, pair in cone, %s",pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
3997  nptbins,ptmin,ptmax);
3998  fhPtPrimMCEtaDecayPairAcceptInConeLowPt->SetXTitle("#it{p}_{T} (GeV/#it{c})");
3999  outputContainer->Add(fhPtPrimMCEtaDecayPairAcceptInConeLowPt) ;
4000 
4001  fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPt = new TH1F("hPtPrim_MCisoPhotonEtaDecayPairAcceptInConeLowPt",
4002  Form("isolated primary photon %s, pair in cone : #it{p}_{T}, %s",
4003  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4004  nptbins,ptmin,ptmax);
4005  fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPt->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4006  outputContainer->Add(fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPt) ;
4007 
4008  fhPtPrimMCEtaDecayPairAcceptInConeLowPtNoOverlap = new TH1F("hPtPrim_MCPhotonEtaDecayPairAcceptInConeLowPtNoOverlap",
4009  Form("primary photon %s, no overlap, pair in cone : #it{p}_{T}, %s",
4010  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4011  nptbins,ptmin,ptmax);
4012  fhPtPrimMCEtaDecayPairAcceptInConeLowPtNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4013  outputContainer->Add(fhPtPrimMCEtaDecayPairAcceptInConeLowPtNoOverlap) ;
4014 
4015  fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPtNoOverlap = new TH1F("hPtPrim_MCisoPhotonEtaDecayPairAcceptInConeLowPtNoOverlap",
4016  Form("isolated primary photon %s, pair in cone,no overlap : #it{p}_{T}, %s",
4017  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4018  nptbins,ptmin,ptmax);
4019  fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPtNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4021 
4022  fhPtPrimMCEtaDecayPairAcceptInConeLowPtNoOverlapCaloE = new TH1F("hPtPrim_MCPhotonEtaDecayPairAcceptInConeLowPtNoOverlapCaloE",
4023  Form("primary photon %s, no overlap, pair in cone, E > calo min: #it{p}_{T}, %s",
4024  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4025  nptbins,ptmin,ptmax);
4026  fhPtPrimMCEtaDecayPairAcceptInConeLowPtNoOverlapCaloE->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4028 
4029  fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPtNoOverlapCaloE = new TH1F("hPtPrim_MCisoPhotonEtaDecayPairAcceptInConeLowPtNoOverlapCaloE",
4030  Form("isolated primary photon %s, pair in cone,no overlap, E > calo min: #it{p}_{T}, %s",
4031  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4032  nptbins,ptmin,ptmax);
4033  fhPtPrimMCEtaDecayIsoPairAcceptInConeLowPtNoOverlapCaloE->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4035 
4036 
4037  fhPtPrimMCEtaDecayPairNoOverlap = new TH1F("hPtPrim_MCPhotonEtaDecayPairNoOverlap",
4038  Form("primary photon %s, no overlap: #it{p}_{T}, %s",
4039  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4040  nptbins,ptmin,ptmax);
4041  fhPtPrimMCEtaDecayPairNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4042  outputContainer->Add(fhPtPrimMCEtaDecayPairNoOverlap) ;
4043 
4044  fhPtPrimMCEtaDecayIsoPairNoOverlap = new TH1F("hPtPrim_MCisoPhotonEtaDecayPairNoOverlap",
4045  Form("isolated primary photon %s, no overlap: #it{p}_{T}, %s",
4046  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4047  nptbins,ptmin,ptmax);
4048  fhPtPrimMCEtaDecayIsoPairNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4049  outputContainer->Add(fhPtPrimMCEtaDecayIsoPairNoOverlap) ;
4050 
4051  fhPtPrimMCEtaDecayPairOutOfCone = new TH1F("hPtPrim_MCPhotonEtaDecayPairOutOfCone",
4052  Form("primary photon %s : #it{p}_{T}, pair out of cone, %s",pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4053  nptbins,ptmin,ptmax);
4054  fhPtPrimMCEtaDecayPairOutOfCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4055  outputContainer->Add(fhPtPrimMCEtaDecayPairOutOfCone) ;
4056 
4057  fhPtPrimMCEtaDecayIsoPairOutOfCone = new TH1F("hPtPrim_MCisoPhotonEtaDecayPairOutOfCone",
4058  Form("isolated primary photon %s, pair out of cone : #it{p}_{T}, %s",
4059  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4060  nptbins,ptmin,ptmax);
4061  fhPtPrimMCEtaDecayIsoPairOutOfCone->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4062  outputContainer->Add(fhPtPrimMCEtaDecayIsoPairOutOfCone) ;
4063 
4064  fhPtPrimMCEtaDecayPairOutOfAcceptance = new TH1F("hPtPrim_MCPhotonEtaDecayPairOutOfAcceptance",
4065  Form("primary photon %s : #it{p}_{T}, pair out of acceptance, %s",pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4066  nptbins,ptmin,ptmax);
4067  fhPtPrimMCEtaDecayPairOutOfAcceptance->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4068  outputContainer->Add(fhPtPrimMCEtaDecayPairOutOfAcceptance) ;
4069 
4070  fhPtPrimMCEtaDecayPairOutOfAcceptanceNoOverlap = new TH1F("hPtPrim_MCPhotonEtaDecayPairOutOfAcceptanceNoOverlap",
4071  Form("primary photon %s : #it{p}_{T}, pair out of acceptance, no overlap, %s",pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4072  nptbins,ptmin,ptmax);
4073  fhPtPrimMCEtaDecayPairOutOfAcceptanceNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4074  outputContainer->Add(fhPtPrimMCEtaDecayPairOutOfAcceptanceNoOverlap) ;
4075 
4076  fhPtPrimMCEtaDecayIsoPairOutOfAcceptance = new TH1F("hPtPrim_MCisoPhotonEtaDecayPairOutOfAcceptance",
4077  Form("isolated primary photon %s, pair out of acceptance : #it{p}_{T}, %s",
4078  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4079  nptbins,ptmin,ptmax);
4080  fhPtPrimMCEtaDecayIsoPairOutOfAcceptance->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4081  outputContainer->Add(fhPtPrimMCEtaDecayIsoPairOutOfAcceptance) ;
4082 
4083  fhPtPrimMCEtaDecayIsoPairOutOfAcceptanceNoOverlap = new TH1F("hPtPrim_MCisoPhotonEtaDecayPairOutOfAcceptanceNoOverlap",
4084  Form("isolated primary photon %s, pair out of acceptance, no overlap : #it{p}_{T}, %s",
4085  pptype[kmcPrimEtaDecay].Data(),parTitle.Data()),
4086  nptbins,ptmin,ptmax);
4087  fhPtPrimMCEtaDecayIsoPairOutOfAcceptanceNoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4089 
4090  fhPtPrimMCEtaOverlap = new TH1F("hPtPrim_MCEtaOverlap",
4091  Form("primary %s, overlap: #it{p}_{T}, %s",
4092  pptype[kmcPrimEta].Data(),parTitle.Data()),
4093  nptbins,ptmin,ptmax);
4094  fhPtPrimMCEtaOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4095  outputContainer->Add(fhPtPrimMCEtaOverlap) ;
4096 
4097  fhPtPrimMCEtaIsoOverlap = new TH1F("hPtPrim_MCisoEtaOverlap",
4098  Form("primary %s, overlap: #it{p}_{T}, %s",
4099  pptype[kmcPrimEta].Data(),parTitle.Data()),
4100  nptbins,ptmin,ptmax);
4101  fhPtPrimMCEtaIsoOverlap->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4102  outputContainer->Add(fhPtPrimMCEtaIsoOverlap) ;
4103 
4104  }
4105 
4106  }//Histos with MC
4107 
4108  }
4109 
4110  if(fMakeSeveralIC)
4111  {
4112  const Int_t buffersize = 255;
4113  char name[buffersize];
4114  char title[buffersize];
4115  for(Int_t icone = 0; icone<fNCones; icone++)
4116  {
4117  // sum pt in cone vs. pt leading
4118  snprintf(name, buffersize,"hSumPtLeadingPt_Cone_%d",icone);
4119  snprintf(title, buffersize,"#Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",fConeSizes[icone]);
4120  fhSumPtLeadingPt[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
4121  fhSumPtLeadingPt[icone] ->SetYTitle("#sum_{cone}#it{p}_{T} (GeV/#it{c})");//#Sigma #it{p}_{T}
4122  fhSumPtLeadingPt[icone] ->SetXTitle("#it{p}_{T}^{leading} (GeV/#it{c})");
4123  outputContainer->Add(fhSumPtLeadingPt[icone]) ;
4124 
4125  // pt in cone vs. pt leading
4126  snprintf(name, buffersize,"hPtLeadingPt_Cone_%d",icone);
4127  snprintf(title, buffersize,"#it{p}_{T} in isolation cone for #it{R} = %2.2f",fConeSizes[icone]);
4128  fhPtLeadingPt[icone] = new TH2F(name, title, nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
4129  fhPtLeadingPt[icone] ->SetYTitle("#it{p}_{T}^{cone} (GeV/#it{c})");
4130  fhPtLeadingPt[icone] ->SetXTitle("#it{p}_{T}^{leading} (GeV/#it{c})");
4131  outputContainer->Add(fhPtLeadingPt[icone]) ;
4132 
4133  // sum pt in cone vs. pt leading in the forward region (for background subtraction studies)
4134  snprintf(name, buffersize,"hPerpSumPtLeadingPt_Cone_%d",icone);
4135  snprintf(title, buffersize,"#Sigma #it{p}_{T} in isolation cone for #it{R} = %2.2f",fConeSizes[icone]);
4136  fhPerpSumPtLeadingPt[icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
4137  fhPerpSumPtLeadingPt[icone] ->SetYTitle("#sum_{cone}#it{p}_{T} (GeV/#it{c})");//#Sigma #it{p}_{T}
4138  fhPerpSumPtLeadingPt[icone] ->SetXTitle("#it{p}_{T}^{leading} (GeV/#it{c})");
4139  outputContainer->Add(fhPerpSumPtLeadingPt[icone]) ;
4140 
4141  // pt in cone vs. pt leading in the forward region (for background subtraction studies)
4142  snprintf(name, buffersize,"hPerpPtLeadingPt_Cone_%d",icone);
4143  snprintf(title, buffersize,"#it{p}_{T} in isolation cone for #it{R} = %2.2f",fConeSizes[icone]);
4144  fhPerpPtLeadingPt[icone] = new TH2F(name, title, nptbins,ptmin,ptmax,nptinconebins,ptinconemin,ptinconemax);
4145  fhPerpPtLeadingPt[icone] ->SetYTitle("#it{p}_{T}^{cone} (GeV/#it{c})");
4146  fhPerpPtLeadingPt[icone] ->SetXTitle("#it{p}_{T}^{leading} (GeV/#it{c})");
4147  outputContainer->Add(fhPerpPtLeadingPt[icone]) ;
4148 
4149  if(IsDataMC())
4150  {
4151  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
4152  {
4153  snprintf(name , buffersize,"hSumPtLeadingPt_MC%s_Cone_%d",mcPartName[imc].Data(),icone);
4154  snprintf(title, buffersize,"Candidate %s #it{p}_{T} vs cone #Sigma #it{p}_{T} for #it{R}=%2.2f",mcPartType[imc].Data(),fConeSizes[icone]);
4155  fhSumPtLeadingPtMC[imc][icone] = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
4156  fhSumPtLeadingPtMC[imc][icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
4157  fhSumPtLeadingPtMC[imc][icone]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
4158  outputContainer->Add(fhSumPtLeadingPtMC[imc][icone]) ;
4159  }
4160  }//Histos with MC
4161 
4162  for(Int_t ipt = 0; ipt<fNPtThresFrac;ipt++)
4163  {
4164  snprintf(name, buffersize,"hPtThres_Cone_%d_Pt%d",icone,ipt);
4165  snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{th} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtThresholds[ipt]);
4166  fhPtThresIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
4167  fhPtThresIsolated[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4168  outputContainer->Add(fhPtThresIsolated[icone][ipt]) ;
4169 
4170  snprintf(name, buffersize,"hPtFrac_Cone_%d_Pt%d",icone,ipt);
4171  snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
4172  fhPtFracIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
4173  fhPtFracIsolated[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4174  outputContainer->Add(fhPtFracIsolated[icone][ipt]) ;
4175 
4176  snprintf(name, buffersize,"hSumPt_Cone_%d_Pt%d",icone,ipt);
4177  snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
4178  fhSumPtIsolated[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
4179  // fhSumPtIsolated[icone][ipt]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
4180  fhSumPtIsolated[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4181  outputContainer->Add(fhSumPtIsolated[icone][ipt]) ;
4182 
4183  snprintf(name, buffersize,"hPtSumDensity_Cone_%d_Pt%d",icone,ipt);
4184  snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for density in #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
4185  fhPtSumDensityIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
4186  //fhPtSumIsolated[icone][ipt]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
4187  fhPtSumDensityIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4188  outputContainer->Add(fhPtSumDensityIso[icone][ipt]) ;
4189 
4190  snprintf(name, buffersize,"hPtFracPtSum_Cone_%d_Pt%d",icone,ipt);
4191  snprintf(title, buffersize,"Isolated candidate #it{p}_{T} distribution for PtFracPtSum in #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
4192  fhPtFracPtSumIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
4193  //fhPtSumIsolated[icone][ipt]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
4194  fhPtFracPtSumIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4195  outputContainer->Add(fhPtFracPtSumIso[icone][ipt]) ;
4196 
4197  // eta:phi
4198  snprintf(name, buffersize,"hEtaPhiPtThres_Cone_%d_Pt%d",icone,ipt);
4199  snprintf(title, buffersize,"Isolated candidate #eta:#varphi distribution for #it{R} = %2.2f and #it{p}_{T}^{th} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtThresholds[ipt]);
4200  fhEtaPhiPtThresIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4201  fhEtaPhiPtThresIso[icone][ipt]->SetXTitle("#eta");
4202  fhEtaPhiPtThresIso[icone][ipt]->SetYTitle("#varphi (rad)");
4203  outputContainer->Add(fhEtaPhiPtThresIso[icone][ipt]) ;
4204 
4205  snprintf(name, buffersize,"hEtaPhiPtFrac_Cone_%d_Pt%d",icone,ipt);
4206  snprintf(title, buffersize,"Isolated candidate #eta:#varphi distribution for #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
4207  fhEtaPhiPtFracIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4208  fhEtaPhiPtFracIso[icone][ipt]->SetXTitle("#eta");
4209  fhEtaPhiPtFracIso[icone][ipt]->SetYTitle("#varphi (rad)");
4210  outputContainer->Add(fhEtaPhiPtFracIso[icone][ipt]) ;
4211 
4212  snprintf(name, buffersize,"hEtaPhiPtSum_Cone_%d_Pt%d",icone,ipt);
4213  snprintf(title, buffersize,"Isolated candidate #eta:#varphi distribution for #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
4214  fhEtaPhiPtSumIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4215  fhEtaPhiPtSumIso[icone][ipt]->SetXTitle("#eta");
4216  fhEtaPhiPtSumIso[icone][ipt]->SetYTitle("#varphi (rad)");
4217  outputContainer->Add(fhEtaPhiPtSumIso[icone][ipt]) ;
4218 
4219  snprintf(name, buffersize,"hEtaPhiSumDensity_Cone_%d_Pt%d",icone,ipt);
4220  snprintf(title, buffersize,"Isolated candidate #eta:#varphi distribution for density #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
4221  fhEtaPhiSumDensityIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4222  fhEtaPhiSumDensityIso[icone][ipt]->SetXTitle("#eta");
4223  fhEtaPhiSumDensityIso[icone][ipt]->SetYTitle("#varphi (rad)");
4224  outputContainer->Add(fhEtaPhiSumDensityIso[icone][ipt]) ;
4225 
4226  snprintf(name, buffersize,"hEtaPhiFracPtSum_Cone_%d_Pt%d",icone,ipt);
4227  snprintf(title, buffersize,"Isolated candidate #eta:#varphi distribution for FracPtSum #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
4228  fhEtaPhiFracPtSumIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4229  fhEtaPhiFracPtSumIso[icone][ipt]->SetXTitle("#eta");
4230  fhEtaPhiFracPtSumIso[icone][ipt]->SetYTitle("#varphi (rad)");
4231  outputContainer->Add(fhEtaPhiFracPtSumIso[icone][ipt]) ;
4232 
4234  {
4235  // pt decays isolated
4236  snprintf(name, buffersize,"hPtThres_Decay_Cone_%d_Pt%d",icone,ipt);
4237  snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{th} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtThresholds[ipt]);
4238  fhPtPtThresDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
4239  fhPtPtThresDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4240  outputContainer->Add(fhPtPtThresDecayIso[icone][ipt]) ;
4241 
4242  snprintf(name, buffersize,"hPtFrac_Decay_Cone_%d_Pt%d",icone,ipt);
4243  snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
4244  fhPtPtFracDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
4245  fhPtPtFracDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4246  outputContainer->Add(fhPtPtFracDecayIso[icone][ipt]) ;
4247 
4248  snprintf(name, buffersize,"hPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
4249  snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
4250  fhPtPtSumDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
4251  // fhPtPtSumDecayIso[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
4252  fhPtPtSumDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4253  outputContainer->Add(fhPtPtSumDecayIso[icone][ipt]) ;
4254 
4255  snprintf(name, buffersize,"hPtSumDensity_Decay_Cone_%d_Pt%d",icone,ipt);
4256  snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for density in #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
4257  fhPtSumDensityDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
4258  // fhPtPtSumDecayIso[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
4259  fhPtSumDensityDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4260  outputContainer->Add(fhPtSumDensityDecayIso[icone][ipt]) ;
4261 
4262  snprintf(name, buffersize,"hPtFracPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
4263  snprintf(title, buffersize,"Isolated decay candidate #it{p}_{T} distribution for PtFracPtSum in #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
4264  fhPtFracPtSumDecayIso[icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);//,nptsumbins,ptsummin,ptsummax);
4265  // fhPtPtSumDecayIso[icone]->SetYTitle("#Sigma #it{p}_{T} (GeV/#it{c})");
4266  fhPtFracPtSumDecayIso[icone][ipt]->SetXTitle("#it{p}_{T} (GeV/#it{c})");
4267  outputContainer->Add(fhPtFracPtSumDecayIso[icone][ipt]) ;
4268 
4269  // eta:phi decays
4270  snprintf(name, buffersize,"hEtaPhiPtThres_Decay_Cone_%d_Pt%d",icone,ipt);
4271  snprintf(title, buffersize,"Isolated decay candidate #eta:#varphi distribution for #it{R} = %2.2f and #it{p}_{T}^{th} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtThresholds[ipt]);
4272  fhEtaPhiPtThresDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4273  fhEtaPhiPtThresDecayIso[icone][ipt]->SetXTitle("#eta");
4274  fhEtaPhiPtThresDecayIso[icone][ipt]->SetYTitle("#varphi (rad)");
4275  outputContainer->Add(fhEtaPhiPtThresDecayIso[icone][ipt]) ;
4276 
4277  snprintf(name, buffersize,"hEtaPhiPtFrac_Decay_Cone_%d_Pt%d",icone,ipt);
4278  snprintf(title, buffersize,"Isolated decay candidate #eta:#varphi distribution for #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
4279  fhEtaPhiPtFracDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4280  fhEtaPhiPtFracDecayIso[icone][ipt]->SetXTitle("#eta");
4281  fhEtaPhiPtFracDecayIso[icone][ipt]->SetYTitle("#varphi (rad)");
4282  outputContainer->Add(fhEtaPhiPtFracDecayIso[icone][ipt]) ;
4283 
4284 
4285  snprintf(name, buffersize,"hEtaPhiPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
4286  snprintf(title, buffersize,"Isolated decay candidate #eta:#varphi distribution for #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
4287  fhEtaPhiPtSumDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4288  fhEtaPhiPtSumDecayIso[icone][ipt]->SetXTitle("#eta");
4289  fhEtaPhiPtSumDecayIso[icone][ipt]->SetYTitle("#varphi (rad)");
4290  outputContainer->Add(fhEtaPhiPtSumDecayIso[icone][ipt]) ;
4291 
4292  snprintf(name, buffersize,"hEtaPhiSumDensity_Decay_Cone_%d_Pt%d",icone,ipt);
4293  snprintf(title, buffersize,"Isolated decay candidate #eta:#varphi distribution for density #it{R} = %2.2f and #it{p}_{T}^{sum} = %2.2f GeV/#it{c}",fConeSizes[icone],fSumPtThresholds[ipt]);
4294  fhEtaPhiSumDensityDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4295  fhEtaPhiSumDensityDecayIso[icone][ipt]->SetXTitle("#eta");
4296  fhEtaPhiSumDensityDecayIso[icone][ipt]->SetYTitle("#varphi (rad)");
4297  outputContainer->Add(fhEtaPhiSumDensityDecayIso[icone][ipt]) ;
4298 
4299  snprintf(name, buffersize,"hEtaPhiFracPtSum_Decay_Cone_%d_Pt%d",icone,ipt);
4300  snprintf(title, buffersize,"Isolated decay candidate #eta:#varphi distribution for FracPtSum #it{R} = %2.2f and #it{p}_{T}^{fr} = %2.2f GeV/#it{c}",fConeSizes[icone],fPtFractions[ipt]);
4301  fhEtaPhiFracPtSumDecayIso[icone][ipt] = new TH2F(name, title,netabins,etamin,etamax,nphibins,phimin,phimax);
4302  fhEtaPhiFracPtSumDecayIso[icone][ipt]->SetXTitle("#eta");
4303  fhEtaPhiFracPtSumDecayIso[icone][ipt]->SetYTitle("#varphi (rad)");
4304  outputContainer->Add(fhEtaPhiFracPtSumDecayIso[icone][ipt]) ;
4305 
4306  }
4307 
4308  if(IsDataMC())
4309  {
4310  for(Int_t imc = 0; imc < fgkNmcTypes; imc++)
4311  {
4312  snprintf(name , buffersize,"hPtThreshMC%s_Cone_%d_Pt%d",mcPartName[imc].Data(),icone,ipt);
4313  snprintf(title, buffersize,"Isolated %s #it{p}_{T} for #it{R}=%2.2f and #it{p}_{T}^{th}=%2.2f",
4314  mcPartType[imc].Data(),fConeSizes[icone], fPtThresholds[ipt]);
4315  fhPtThresIsolatedMC[imc][icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
4316  fhPtThresIsolatedMC[imc][icone][ipt]->SetYTitle("#it{counts}");
4317  fhPtThresIsolatedMC[imc][icone][ipt]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
4318  outputContainer->Add(fhPtThresIsolatedMC[imc][icone][ipt]) ;
4319 
4320 
4321  snprintf(name , buffersize,"hPtFracMC%s_Cone_%d_Pt%d",mcPartName[imc].Data(),icone,ipt);
4322  snprintf(title, buffersize,"Isolated %s #it{p}_{T} for #it{R}=%2.2f and #Sigma #it{p}_{T}^{in cone}/#it{p}_{T}^{trig}=%2.2f",
4323  mcPartType[imc].Data(),fConeSizes[icone], fPtFractions[ipt]);
4324  fhPtFracIsolatedMC[imc][icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
4325  fhPtFracIsolatedMC[imc][icone][ipt]->SetYTitle("#it{counts}");
4326  fhPtFracIsolatedMC[imc][icone][ipt]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
4327  outputContainer->Add(fhPtFracIsolatedMC[imc][icone][ipt]) ;
4328 
4329  snprintf(name , buffersize,"hSumPtMC%s_Cone_%d_Pt%d",mcPartName[imc].Data(),icone,ipt);
4330  snprintf(title, buffersize,"Isolated %s #it{p}_{T} for #it{R}=%2.2f and #Sigma #it{p}_{T}^{in cone}=%2.2f",
4331  mcPartType[imc].Data(),fConeSizes[icone], fSumPtThresholds[ipt]);
4332  fhSumPtIsolatedMC[imc][icone][ipt] = new TH1F(name, title,nptbins,ptmin,ptmax);
4333  fhSumPtIsolatedMC[imc][icone][ipt]->SetYTitle("#it{counts}");
4334  fhSumPtIsolatedMC[imc][icone][ipt]->SetXTitle("#it{p}_{T}(GeV/#it{c})");
4335  outputContainer->Add(fhSumPtIsolatedMC[imc][icone][ipt]) ;
4336  }
4337  }//Histos with MC
4338  }//icone loop
4339  }//ipt loop
4340  }
4341 
4342  if(IsPileUpAnalysisOn())
4343  {
4344  for (Int_t i = 0; i < 7 ; i++)
4345  {
4346  fhEIsoPileUp[i] = new TH1F(Form("hEPileUp%s",pileUpName[i].Data()),
4347  Form("Number of isolated particles vs E, %s, pile-up event by %s",parTitle.Data(),pileUpName[i].Data()),
4348  nptbins,ptmin,ptmax);
4349  fhEIsoPileUp[i]->SetYTitle("d#it{N} / d#it{E}");
4350  fhEIsoPileUp[i]->SetXTitle("#it{E} (GeV)");
4351  outputContainer->Add(fhEIsoPileUp[i]) ;
4352 
4353  fhPtIsoPileUp[i] = new TH1F(Form("hPtPileUp%s",pileUpName[i].Data()),
4354  Form("Number of isolate