]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx
it is not possible to have the label of more than 2 daughters, coverity fix 24498
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaInsideClusterInvariantMass.cxx
CommitLineData
992b14a7 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 is 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//_________________________________________________________________________
17//
18// Split clusters with some criteria and calculate invariant mass
19// to identify them as pi0 or conversion
20//
21//
22//-- Author: Gustavo Conesa (LPSC-Grenoble)
23//_________________________________________________________________________
24
25//////////////////////////////////////////////////////////////////////////////
26
27
28// --- ROOT system ---
29#include <TList.h>
30#include <TClonesArray.h>
31#include <TObjString.h>
3c1d9afb 32#include <TH2F.h>
b2e375c7 33#include <TDatabasePDG.h>
992b14a7 34
35// --- Analysis system ---
36#include "AliAnaInsideClusterInvariantMass.h"
37#include "AliCaloTrackReader.h"
38#include "AliMCAnalysisUtils.h"
39#include "AliStack.h"
40#include "AliFiducialCut.h"
41#include "TParticle.h"
42#include "AliVCluster.h"
43#include "AliAODEvent.h"
44#include "AliAODMCParticle.h"
45#include "AliEMCALGeoParams.h"
46
1253480f 47// --- Detectors ---
c5693f62 48//#include "AliPHOSGeoUtils.h"
49#include "AliEMCALGeometry.h"
50
992b14a7 51ClassImp(AliAnaInsideClusterInvariantMass)
52
53//__________________________________________________________________
54AliAnaInsideClusterInvariantMass::AliAnaInsideClusterInvariantMass() :
0186b6a2 55 AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""),
56 fMinNCells(0), fMinBadDist(0),
57 fHistoECut(0), fCheckSplitDistToBad(0), fFillAngleHisto(kFALSE),
58 fFillTMHisto(kFALSE), fFillTMResidualHisto(kFALSE), fFillSSExtraHisto(kFALSE),
ff6aa4ce 59 fFillMCHisto(kFALSE), fFillSSWeightHisto(kFALSE),
60 fFillNLMDiffCutHisto(kFALSE), fFillEbinHisto(0),
0186b6a2 61 fFillMCOverlapHisto(0), fFillNCellHisto(0), fFillIdConvHisto(0),
29555e96 62 fFillIdEtaHisto(0), fFillHighMultHisto(0),
63 fFillArmenterosHisto(0), fFillThetaStarHisto(0),
ff6aa4ce 64 fSSWeightN(0), fSSECellCutN(0),
09a5b22d 65 fNLMSettingN(0), fWSimu(),
0186b6a2 66 fhMassAsyCutNLocMax1(0), fhMassAsyCutNLocMax2(0), fhMassAsyCutNLocMaxN(0),
67 fhM02AsyCutNLocMax1(0), fhM02AsyCutNLocMax2(0), fhM02AsyCutNLocMaxN(0),
68 fhMassM02CutNLocMax1(0), fhMassM02CutNLocMax2(0), fhMassM02CutNLocMaxN(0),
69 fhAsymM02CutNLocMax1(0), fhAsymM02CutNLocMax2(0), fhAsymM02CutNLocMaxN(0),
2c36e041 70 fhMassEnCutNLocMax1(0), fhMassEnCutNLocMax2(0), fhMassEnCutNLocMaxN(0),
71 fhM02EnCutNLocMax1(0), fhM02EnCutNLocMax2(0), fhM02EnCutNLocMaxN(0),
72 fhAsymEnCutNLocMax1(0), fhAsymEnCutNLocMax2(0), fhAsymEnCutNLocMaxN(0),
a6d3b0a8 73 fhSplitEFracEnCutNLocMax1(0), fhSplitEFracEnCutNLocMax2(0), fhSplitEFracEnCutNLocMaxN(0),
0186b6a2 74 fhMassSplitECutNLocMax1(0), fhMassSplitECutNLocMax2(0), fhMassSplitECutNLocMaxN(0),
75 fhMCGenFracAfterCutsNLocMax1MCPi0(0), fhMCGenFracAfterCutsNLocMax2MCPi0(0), fhMCGenFracAfterCutsNLocMaxNMCPi0(0),
76 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMax2MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0(0),
77 fhNCellMassEHighNLocMax1MCPi0(0), fhNCellM02EHighNLocMax1MCPi0(0),
78 fhNCellMassELowNLocMax1MCPi0(0), fhNCellM02ELowNLocMax1MCPi0(0),
79 fhNCellMassEHighNLocMax2MCPi0(0), fhNCellM02EHighNLocMax2MCPi0(0),
80 fhNCellMassELowNLocMax2MCPi0(0), fhNCellM02ELowNLocMax2MCPi0(0),
81 fhNCellMassEHighNLocMaxNMCPi0(0), fhNCellM02EHighNLocMaxNMCPi0(0),
82 fhNCellMassELowNLocMaxNMCPi0(0), fhNCellM02ELowNLocMaxNMCPi0(0),
83 fhAnglePairPrimPi0RecoNLocMax1(0), fhAnglePairPrimPi0RecoNLocMax2(0), fhAnglePairPrimPi0RecoNLocMaxN(0),
84 fhAnglePairPrimPi0vsRecoNLocMax1(0), fhAnglePairPrimPi0vsRecoNLocMax2(0), fhAnglePairPrimPi0vsRecoNLocMaxN(0),
4e5a94c5 85 fhAnglePairPrimPi0OverM02NLocMax1(0), fhAnglePairPrimPi0OverM02NLocMax2(0), fhAnglePairPrimPi0OverM02NLocMaxN(0),
0186b6a2 86 fhCentralityPi0NLocMax1(0), fhCentralityEtaNLocMax1(0),
87 fhCentralityPi0NLocMax2(0), fhCentralityEtaNLocMax2(0),
88 fhCentralityPi0NLocMaxN(0), fhCentralityEtaNLocMaxN(0),
89 fhEventPlanePi0NLocMax1(0), fhEventPlaneEtaNLocMax1(0),
90 fhEventPlanePi0NLocMax2(0), fhEventPlaneEtaNLocMax2(0),
91 fhEventPlanePi0NLocMaxN(0), fhEventPlaneEtaNLocMaxN(0),
92 fhClusterEtaPhiNLocMax1(0), fhClusterEtaPhiNLocMax2(0), fhClusterEtaPhiNLocMaxN(0),
93 fhPi0EtaPhiNLocMax1(0), fhPi0EtaPhiNLocMax2(0), fhPi0EtaPhiNLocMaxN(0),
94 fhEtaEtaPhiNLocMax1(0), fhEtaEtaPhiNLocMax2(0), fhEtaEtaPhiNLocMaxN(0),
95 fhPi0EPairDiffTimeNLM1(0), fhPi0EPairDiffTimeNLM2(0), fhPi0EPairDiffTimeNLMN(0),
96 fhEtaEPairDiffTimeNLM1(0), fhEtaEPairDiffTimeNLM2(0), fhEtaEPairDiffTimeNLMN(0),
97 fhMCPi0HighNLMPair(0), fhMCPi0LowNLMPair(0),
98 fhMCPi0AnyNLMPair(0), fhMCPi0NoneNLMPair(0),
99 fhMCPi0HighNLMPairNoMCMatch(0), fhMCPi0LowNLMPairNoMCMatch(0),
100 fhMCPi0AnyNLMPairNoMCMatch(0), fhMCPi0NoneNLMPairNoMCMatch(0),
101 fhMCPi0HighNLMPairOverlap(0), fhMCPi0LowNLMPairOverlap(0),
102 fhMCPi0AnyNLMPairOverlap(0), fhMCPi0NoneNLMPairOverlap(0),
103 fhMCPi0HighNLMPairNoMCMatchOverlap(0), fhMCPi0LowNLMPairNoMCMatchOverlap(0),
104 fhMCPi0AnyNLMPairNoMCMatchOverlap(0), fhMCPi0NoneNLMPairNoMCMatchOverlap(0),
105 fhMCPi0DecayPhotonHitHighLM(0), fhMCPi0DecayPhotonAdjHighLM(0),
106 fhMCPi0DecayPhotonHitOtherLM(0), fhMCPi0DecayPhotonAdjOtherLM(0),
107 fhMCPi0DecayPhotonAdjacent(0), fhMCPi0DecayPhotonHitNoLM(0),
108 fhMCPi0DecayPhotonHitHighLMOverlap(0), fhMCPi0DecayPhotonAdjHighLMOverlap(0),
109 fhMCPi0DecayPhotonHitOtherLMOverlap(0), fhMCPi0DecayPhotonAdjOtherLMOverlap(0),
110 fhMCPi0DecayPhotonAdjacentOverlap(0), fhMCPi0DecayPhotonHitNoLMOverlap(0),
111 fhMCEOverlapType(0), fhMCEOverlapTypeMatch(0)
992b14a7 112{
113 //default ctor
114
115 // Init array of histograms
cb99fa55 116 for(Int_t i = 0; i < 7; i++)
5c46c992 117 {
118 for(Int_t j = 0; j < 2; j++)
119 {
5c46c992 120 fhMassNLocMax1[i][j] = 0;
121 fhMassNLocMax2[i][j] = 0;
122 fhMassNLocMaxN[i][j] = 0;
c7e9a4e9 123 fhMassSplitENLocMax1[i][j] = 0;
124 fhMassSplitENLocMax2[i][j] = 0;
125 fhMassSplitENLocMaxN[i][j] = 0;
5c46c992 126 fhNLocMax[i][j] = 0;
5c46c992 127 fhNLocMaxM02Cut[i][j] = 0;
cc909e6f 128 fhSplitClusterENLocMax [i][j] = 0;
129 fhSplitClusterEPi0NLocMax[i][j] = 0;
5c46c992 130 fhM02NLocMax1[i][j] = 0;
131 fhM02NLocMax2[i][j] = 0;
132 fhM02NLocMaxN[i][j] = 0;
133 fhNCellNLocMax1[i][j] = 0;
134 fhNCellNLocMax2[i][j] = 0;
135 fhNCellNLocMaxN[i][j] = 0;
c8710850 136 fhM02Pi0NLocMax1[i][j] = 0;
137 fhM02EtaNLocMax1[i][j] = 0;
138 fhM02ConNLocMax1[i][j] = 0;
139 fhM02Pi0NLocMax2[i][j] = 0;
140 fhM02EtaNLocMax2[i][j] = 0;
141 fhM02ConNLocMax2[i][j] = 0;
142 fhM02Pi0NLocMaxN[i][j] = 0;
143 fhM02EtaNLocMaxN[i][j] = 0;
144 fhM02ConNLocMaxN[i][j] = 0;
145
146 fhMassPi0NLocMax1[i][j] = 0;
147 fhMassEtaNLocMax1[i][j] = 0;
148 fhMassConNLocMax1[i][j] = 0;
149 fhMassPi0NLocMax2[i][j] = 0;
150 fhMassEtaNLocMax2[i][j] = 0;
151 fhMassConNLocMax2[i][j] = 0;
152 fhMassPi0NLocMaxN[i][j] = 0;
153 fhMassEtaNLocMaxN[i][j] = 0;
154 fhMassConNLocMaxN[i][j] = 0;
cb99fa55 155
1253480f 156 fhNCellPi0NLocMax1[i][j] = 0;
157 fhNCellEtaNLocMax1[i][j] = 0;
158 fhNCellPi0NLocMax2[i][j] = 0;
159 fhNCellEtaNLocMax2[i][j] = 0;
160 fhNCellPi0NLocMaxN[i][j] = 0;
161 fhNCellEtaNLocMaxN[i][j] = 0;
c8710850 162
163 fhAsyPi0NLocMax1[i][j] = 0;
164 fhAsyEtaNLocMax1[i][j] = 0;
165 fhAsyConNLocMax1[i][j] = 0;
166 fhAsyPi0NLocMax2[i][j] = 0;
167 fhAsyEtaNLocMax2[i][j] = 0;
168 fhAsyConNLocMax2[i][j] = 0;
169 fhAsyPi0NLocMaxN[i][j] = 0;
170 fhAsyEtaNLocMaxN[i][j] = 0;
171 fhAsyConNLocMaxN[i][j] = 0;
e671adc2 172
0137016b 173 fhMassM02NLocMax1[i][j]= 0;
174 fhMassM02NLocMax2[i][j]= 0;
c7e9a4e9 175 fhMassM02NLocMaxN[i][j]= 0;
176
177 fhMassSplitEPi0NLocMax1[i][j] = 0;
178 fhMassSplitEPi0NLocMax2[i][j] = 0;
179 fhMassSplitEPi0NLocMaxN[i][j] = 0;
180
181 fhMassSplitEAfterCutsNLocMax1[i][j] = 0;
182 fhMassSplitEAfterCutsNLocMax2[i][j] = 0;
183 fhMassSplitEAfterCutsNLocMaxN[i][j] = 0;
184
185
d2655d46 186 fhMassDispEtaNLocMax1[i][j]= 0;
187 fhMassDispEtaNLocMax2[i][j]= 0;
188 fhMassDispEtaNLocMaxN[i][j]= 0;
189 fhMassDispPhiNLocMax1[i][j]= 0;
190 fhMassDispPhiNLocMax2[i][j]= 0;
191 fhMassDispPhiNLocMaxN[i][j]= 0;
192 fhMassDispAsyNLocMax1[i][j]= 0;
193 fhMassDispAsyNLocMax2[i][j]= 0;
194 fhMassDispAsyNLocMaxN[i][j]= 0;
8e81c2cf 195
fc01318e 196 fhSplitEFractionNLocMax1[i][j]=0;
197 fhSplitEFractionNLocMax2[i][j]=0;
198 fhSplitEFractionNLocMaxN[i][j]=0;
199
29555e96 200 fhAnglePairNLocMax1 [i][j] = 0;
201 fhAnglePairNLocMax2 [i][j] = 0;
202 fhAnglePairNLocMaxN [i][j] = 0;
203
204 fhAnglePairAfterCutsNLocMax1[i][j] = 0;
205 fhAnglePairAfterCutsNLocMax2[i][j] = 0;
206 fhAnglePairAfterCutsNLocMaxN[i][j] = 0;
207
208 fhAnglePairPi0NLocMax1 [i][j] = 0;
209 fhAnglePairPi0NLocMax2 [i][j] = 0;
210 fhAnglePairPi0NLocMaxN [i][j] = 0;
211
212 fhAnglePairMassNLocMax1 [i][j] = 0;
213 fhAnglePairMassNLocMax2 [i][j] = 0;
214 fhAnglePairMassNLocMaxN [i][j] = 0;
d261ae67 215
216 fhAnglePairM02NLocMax1 [i][j] = 0;
217 fhAnglePairM02NLocMax2 [i][j] = 0;
218 fhAnglePairM02NLocMaxN [i][j] = 0;
29555e96 219
4e5a94c5 220 fhAnglePairOverM02NLocMax1 [i][j] = 0;
221 fhAnglePairOverM02NLocMax2 [i][j] = 0;
222 fhAnglePairOverM02NLocMaxN [i][j] = 0;
223
224 fhAnglePairOverM02NLocMax1Overlap0[i][j] = 0;
225 fhAnglePairOverM02NLocMax2Overlap0[i][j] = 0;
226 fhAnglePairOverM02NLocMaxNOverlap0[i][j] = 0;
227
29555e96 228 fhCosThStarNLocMax1 [i][j] = 0;
229 fhCosThStarNLocMax2 [i][j] = 0;
230 fhCosThStarNLocMaxN [i][j] = 0;
231
232 fhCosThStarAfterCutsNLocMax1[i][j] = 0;
233 fhCosThStarAfterCutsNLocMax2[i][j] = 0;
234 fhCosThStarAfterCutsNLocMaxN[i][j] = 0;
235
236 fhCosThStarPi0NLocMax1 [i][j] = 0;
237 fhCosThStarPi0NLocMax2 [i][j] = 0;
238 fhCosThStarPi0NLocMaxN [i][j] = 0;
0186b6a2 239
8e81c2cf 240 fhMCGenFracNLocMax1[i][j]= 0;
241 fhMCGenFracNLocMax2[i][j]= 0;
242 fhMCGenFracNLocMaxN[i][j]= 0;
4914e781 243
244 fhMCGenFracNLocMax1NoOverlap[i][j]= 0;
245 fhMCGenFracNLocMax2NoOverlap[i][j]= 0;
246 fhMCGenFracNLocMaxNNoOverlap[i][j]= 0;
5094c724 247
248 fhMCGenSplitEFracNLocMax1[i][j]= 0;
249 fhMCGenSplitEFracNLocMax2[i][j]= 0;
bb2d339b 250 fhMCGenSplitEFracNLocMaxN[i][j]= 0;
4914e781 251
252 fhMCGenSplitEFracNLocMax1NoOverlap[i][j]= 0;
253 fhMCGenSplitEFracNLocMax2NoOverlap[i][j]= 0;
254 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]= 0;
bb2d339b 255
256 fhMCGenEFracvsSplitEFracNLocMax1[i][j]= 0;
257 fhMCGenEFracvsSplitEFracNLocMax2[i][j]= 0;
258 fhMCGenEFracvsSplitEFracNLocMaxN[i][j]= 0;
259
260 fhMCGenEvsSplitENLocMax1[i][j]= 0;
261 fhMCGenEvsSplitENLocMax2[i][j]= 0;
e671adc2 262 fhMCGenEvsSplitENLocMaxN[i][j]= 0;
263
264 fhAsymNLocMax1 [i][j] = 0;
265 fhAsymNLocMax2 [i][j] = 0;
266 fhAsymNLocMaxN [i][j] = 0;
74858845 267
268 fhMassAfterCutsNLocMax1[i][j] = 0;
269 fhMassAfterCutsNLocMax2[i][j] = 0;
270 fhMassAfterCutsNLocMaxN[i][j] = 0;
cb99fa55 271
74858845 272
273 fhSplitEFractionAfterCutsNLocMax1[i][j] = 0 ;
274 fhSplitEFractionAfterCutsNLocMax2[i][j] = 0 ;
275 fhSplitEFractionAfterCutsNLocMaxN[i][j] = 0 ;
8e81c2cf 276 }
19391b8c 277
8e81c2cf 278 for(Int_t jj = 0; jj < 4; jj++)
279 {
53f2c382 280 fhM02MCGenFracNLocMax1Ebin[i][jj] = 0;
281 fhM02MCGenFracNLocMax2Ebin[i][jj] = 0;
282 fhM02MCGenFracNLocMaxNEbin[i][jj] = 0;
8e81c2cf 283
284 fhMassMCGenFracNLocMax1Ebin[i][jj]= 0;
285 fhMassMCGenFracNLocMax2Ebin[i][jj]= 0;
286 fhMassMCGenFracNLocMaxNEbin[i][jj]= 0;
53f2c382 287
fc01318e 288 fhMCGenFracNLocMaxEbin[i][jj] = 0;
53f2c382 289 fhMCGenFracNLocMaxEbinMatched[i][jj]= 0;
fc01318e 290
291 fhMassSplitEFractionNLocMax1Ebin[i][jj] = 0;
292 fhMassSplitEFractionNLocMax2Ebin[i][jj] = 0;
293 fhMassSplitEFractionNLocMaxNEbin[i][jj] = 0;
5c46c992 294 }
295
b2e375c7 296 fhTrackMatchedDEtaNLocMax1[i] = 0;
c8710850 297 fhTrackMatchedDPhiNLocMax1[i] = 0;
298 fhTrackMatchedDEtaNLocMax2[i] = 0;
299 fhTrackMatchedDPhiNLocMax2[i] = 0;
300 fhTrackMatchedDEtaNLocMaxN[i] = 0;
301 fhTrackMatchedDPhiNLocMaxN[i] = 0;
b2e375c7 302
303 fhTrackMatchedDEtaNLocMax1Pos[i] = 0;
304 fhTrackMatchedDPhiNLocMax1Pos[i] = 0;
305 fhTrackMatchedDEtaNLocMax2Pos[i] = 0;
306 fhTrackMatchedDPhiNLocMax2Pos[i] = 0;
307 fhTrackMatchedDEtaNLocMaxNPos[i] = 0;
308 fhTrackMatchedDPhiNLocMaxNPos[i] = 0;
309
310 fhTrackMatchedDEtaNLocMax1Neg[i] = 0;
311 fhTrackMatchedDPhiNLocMax1Neg[i] = 0;
312 fhTrackMatchedDEtaNLocMax2Neg[i] = 0;
313 fhTrackMatchedDPhiNLocMax2Neg[i] = 0;
314 fhTrackMatchedDEtaNLocMaxNNeg[i] = 0;
315 fhTrackMatchedDPhiNLocMaxNNeg[i] = 0;
243c2909 316
b2e375c7 317 for(Int_t nlm = 0; nlm < 3; nlm++)
318 {
319 fhMCEM02Overlap0 [nlm][i] = 0;
320 fhMCEM02Overlap1 [nlm][i] = 0;
321 fhMCEM02OverlapN [nlm][i] = 0;
322 fhMCEM02Overlap0Match[nlm][i] = 0;
323 fhMCEM02Overlap1Match[nlm][i] = 0;
324 fhMCEM02OverlapNMatch[nlm][i] = 0;
325
326 fhMCEMassOverlap0 [nlm][i] = 0;
327 fhMCEMassOverlap1 [nlm][i] = 0;
328 fhMCEMassOverlapN [nlm][i] = 0;
329 fhMCEMassOverlap0Match[nlm][i] = 0;
330 fhMCEMassOverlap1Match[nlm][i] = 0;
331 fhMCEMassOverlapNMatch[nlm][i] = 0;
83351853 332
4914e781 333 fhMCEAsymOverlap0 [nlm][i] = 0;
334 fhMCEAsymOverlap1 [nlm][i] = 0;
335 fhMCEAsymOverlapN [nlm][i] = 0;
336 fhMCEAsymOverlap0Match[nlm][i] = 0;
337 fhMCEAsymOverlap1Match[nlm][i] = 0;
338 fhMCEAsymOverlapNMatch[nlm][i] = 0;
339
74e3eb22 340 fhMCENCellOverlap0 [nlm][i] = 0;
341 fhMCENCellOverlap1 [nlm][i] = 0;
342 fhMCENCellOverlapN [nlm][i] = 0;
343 fhMCENCellOverlap0Match[nlm][i] = 0;
344 fhMCENCellOverlap1Match[nlm][i] = 0;
345 fhMCENCellOverlapNMatch[nlm][i] = 0;
346
4914e781 347 fhMCEEpriOverlap0 [nlm][i] = 0;
348 fhMCEEpriOverlap1 [nlm][i] = 0;
349 fhMCEEpriOverlapN [nlm][i] = 0;
350 fhMCEEpriOverlap0Match[nlm][i] = 0;
351 fhMCEEpriOverlap1Match[nlm][i] = 0;
352 fhMCEEpriOverlapNMatch[nlm][i] = 0;
cc909e6f 353
354 fhMCEEpriOverlap0IdPi0[nlm][i] = 0;
355 fhMCEEpriOverlap1IdPi0[nlm][i] = 0;
356 fhMCEEpriOverlapNIdPi0[nlm][i] = 0;
4914e781 357
83351853 358 fhMCESplitEFracOverlap0 [nlm][i] = 0;
359 fhMCESplitEFracOverlap1 [nlm][i] = 0;
360 fhMCESplitEFracOverlapN [nlm][i] = 0;
361 fhMCESplitEFracOverlap0Match[nlm][i] = 0;
362 fhMCESplitEFracOverlap1Match[nlm][i] = 0;
363 fhMCESplitEFracOverlapNMatch[nlm][i] = 0;
b2e375c7 364
365 fhMCENOverlaps [nlm][i] = 0;
366 fhMCENOverlapsMatch [nlm][i] = 0;
b583134f 367
b2e375c7 368 if(i > 3) continue ;
369
370 fhMCPi0MassM02Overlap0 [nlm][i] = 0;
371 fhMCPi0MassM02Overlap1 [nlm][i] = 0;
372 fhMCPi0MassM02OverlapN [nlm][i] = 0;
373 fhMCPi0MassM02Overlap0Match[nlm][i] = 0;
374 fhMCPi0MassM02Overlap1Match[nlm][i] = 0;
375 fhMCPi0MassM02OverlapNMatch[nlm][i] = 0;
376 }
992b14a7 377 }
378
5c46c992 379 for(Int_t i = 0; i < 2; i++)
380 {
e671adc2 381 fhSplitEFractionvsAsyNLocMax1[i] = 0;
382 fhSplitEFractionvsAsyNLocMax2[i] = 0;
383 fhSplitEFractionvsAsyNLocMaxN[i] = 0;
5c46c992 384 }
385
7b686344 386 for(Int_t i = 0; i < 4; i++)
387 {
388 fhMassM02NLocMax1Ebin[i] = 0 ;
389 fhMassM02NLocMax2Ebin[i] = 0 ;
390 fhMassM02NLocMaxNEbin[i] = 0 ;
b8eb40fc 391
392 fhMassAsyNLocMax1Ebin[i] = 0 ;
393 fhMassAsyNLocMax2Ebin[i] = 0 ;
394 fhMassAsyNLocMaxNEbin[i] = 0 ;
395
396 fhAsyMCGenRecoNLocMax1EbinPi0[i] = 0 ;
397 fhAsyMCGenRecoNLocMax2EbinPi0[i] = 0 ;
398 fhAsyMCGenRecoNLocMaxNEbinPi0[i] = 0 ;
d2655d46 399
400 fhMassDispEtaNLocMax1Ebin[i] = 0 ;
401 fhMassDispEtaNLocMax2Ebin[i] = 0 ;
402 fhMassDispEtaNLocMaxNEbin[i] = 0 ;
403
404 fhMassDispPhiNLocMax1Ebin[i] = 0 ;
405 fhMassDispPhiNLocMax2Ebin[i] = 0 ;
406 fhMassDispPhiNLocMaxNEbin[i] = 0 ;
407
408 fhMassDispAsyNLocMax1Ebin[i] = 0 ;
409 fhMassDispAsyNLocMax2Ebin[i] = 0 ;
410 fhMassDispAsyNLocMaxNEbin[i] = 0 ;
8e81c2cf 411
412 fhMCAsymM02NLocMax1MCPi0Ebin[i] = 0 ;
413 fhMCAsymM02NLocMax2MCPi0Ebin[i] = 0 ;
414 fhMCAsymM02NLocMaxNMCPi0Ebin[i] = 0 ;
7b686344 415 }
416
dbe09c26 417 for(Int_t nlm = 0; nlm < 3; nlm++)
418 {
b583134f 419
420 fhMCPi0DecayPhotonHitHighLMDiffELM1 [nlm] = 0 ;
421 fhMCPi0DecayPhotonAdjHighLMDiffELM1 [nlm] = 0 ;
422 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = 0 ;
423 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = 0 ;
424
425 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1 [nlm] = 0 ;
426 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1 [nlm] = 0 ;
427 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = 0 ;
428 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = 0 ;
429
430 fhMCPi0DecayPhotonHitHighLMDiffELM2 [nlm] = 0 ;
431 fhMCPi0DecayPhotonAdjHighLMDiffELM2 [nlm] = 0 ;
432 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = 0 ;
433 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = 0 ;
434
435 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2 [nlm] = 0 ;
436 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2 [nlm] = 0 ;
437 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = 0 ;
29555e96 438 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = 0 ;
439
440 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1 [nlm] = 0 ;
441 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1 [nlm] = 0 ;
442 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = 0 ;
443 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = 0 ;
b583134f 444
29555e96 445 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ;
446 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ;
447 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ;
448 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ;
449
450 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2 [nlm] = 0 ;
451 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2 [nlm] = 0 ;
452 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = 0 ;
453 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = 0 ;
454
455 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ;
456 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ;
457 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ;
458 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ;
459
460 fhMCPi0DecayPhotonHitHighLMMass [nlm] = 0 ;
b583134f 461 fhMCPi0DecayPhotonAdjHighLMMass [nlm] = 0 ;
462 fhMCPi0DecayPhotonHitOtherLMMass[nlm] = 0 ;
463 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = 0 ;
464 fhMCPi0DecayPhotonAdjacentMass [nlm] = 0 ;
465 fhMCPi0DecayPhotonHitNoLMMass [nlm] = 0 ;
466
467 fhMCPi0DecayPhotonHitHighLMOverlapMass [nlm] = 0 ;
468 fhMCPi0DecayPhotonAdjHighLMOverlapMass [nlm] = 0 ;
469 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = 0 ;
470 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = 0 ;
471 fhMCPi0DecayPhotonAdjacentOverlapMass [nlm] = 0 ;
472 fhMCPi0DecayPhotonHitNoLMOverlapMass [nlm] = 0 ;
473
dbe09c26 474 fhPi0CellE [nlm] = 0 ;
475 fhPi0CellEFrac [nlm] = 0 ;
476 fhPi0CellLogEFrac[nlm] = 0 ;
477
19391b8c 478 fhPi0CellEMaxEMax2Frac [nlm] = 0 ;
479 fhPi0CellEMaxClusterFrac [nlm] = 0 ;
480 fhPi0CellEMax2ClusterFrac[nlm] = 0 ;
481
482 fhPi0CellEMaxFrac [nlm] = 0 ;
483 fhPi0CellEMax2Frac[nlm] = 0 ;
484
5cd814a9 485 for(Int_t i = 0; i < 20; i++)
19391b8c 486 {
487 fhM02WeightPi0 [nlm][i] = 0;
488 fhM02ECellCutPi0[nlm][i] = 0;
489 }
ce49dd72 490
491 fhMassBadDistClose[nlm] = 0;
492 fhM02BadDistClose [nlm] = 0;
493 fhMassOnBorder [nlm] = 0;
494 fhM02OnBorder [nlm] = 0;
b583134f 495
496 fhAsyMCGenRecoDiffMCPi0 [nlm] = 0;
497 fhAsyMCGenRecoDiffMCPi0Conv[nlm] = 0;
498
dbe09c26 499 }
500
ed10b649 501 for(Int_t i = 0; i < 7; i++)
502 {
503 for(Int_t j = 0; j < 4; j++)
504 {
505
506 fhArmNLocMax1[i][j] = 0;
507 fhArmNLocMax2[i][j] = 0;
508 fhArmNLocMaxN[i][j] = 0;
509
510 fhArmPi0NLocMax1[i][j] = 0;
511 fhArmPi0NLocMax2[i][j] = 0;
512 fhArmPi0NLocMaxN[i][j] = 0;
513
514 fhArmAfterCutsNLocMax1[i][j] = 0;
515 fhArmAfterCutsNLocMax2[i][j] = 0;
516 fhArmAfterCutsNLocMaxN[i][j] = 0;
517
518 }
519 }
520
ff6aa4ce 521 for(Int_t i = 0; i < 5; i++)
522 {
523 for(Int_t j = 0; j < 5; j++)
524 {
58a18c5d 525 fhNLocMaxDiffCut [i][j][0] = 0;
526 fhNLocMaxDiffCut [i][j][1] = 0;
527 fhNLocMaxDiffCutPi0[i][j][0] = 0;
528 fhNLocMaxDiffCutPi0[i][j][1] = 0;
ff6aa4ce 529 for(Int_t k = 0; k < 3; k++)
530 {
58a18c5d 531 fhM02NLocMaxDiffCut [i][j][k][0] = 0;
532 fhM02NLocMaxDiffCut [i][j][k][1] = 0;
533 fhM02NLocMaxDiffCutPi0 [i][j][k][0] = 0;
534 fhM02NLocMaxDiffCutPi0 [i][j][k][1] = 0;
535 fhMassNLocMaxDiffCut [i][j][k][0] = 0;
536 fhMassNLocMaxDiffCut [i][j][k][1] = 0;
537 fhMassNLocMaxDiffCutPi0[i][j][k][0] = 0;
538 fhMassNLocMaxDiffCutPi0[i][j][k][1] = 0;
ff6aa4ce 539 }
540 }
541 }
542
992b14a7 543 InitParameters();
19391b8c 544
992b14a7 545}
546
b94e038e 547//___________________________________________________________________________________________________________________
548void AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(AliVCluster* cluster, Int_t mcindex, Int_t noverlaps,
549 Float_t e1, Float_t e2, Float_t mass)
b583134f 550 //Float_t m02,
4914e781 551 //TLorentzVector l1, TLorentzVector l2)
b2e375c7 552{
553 // Check origin NLM tower of the cluster, when MC gives merged pi0
554
b2e375c7 555 if(mcindex != kmcPi0 && mcindex != kmcPi0Conv) return;
36769d30 556
b2e375c7 557 const UInt_t nc = cluster->GetNCells();
558 Int_t list[nc];
559 Float_t elist[nc];
560 Int_t nMax = GetCaloUtils()->GetNumberOfLocalMaxima(cluster, GetEMCALCells(),list, elist);
36769d30 561
4914e781 562
563 //// PRINTS /////
564
565 //if(mcindex==kmcPi0) printf("** Normal Pi0 **\n");
566 //if(mcindex==kmcPi0Conv) printf("** Converted Pi0 **\n");
567
568// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
b2e375c7 569// {
4914e781 570// printf("** N max %d - Overlaps = %d **, mass %2.2f, m02 %2.2f, Cl1(E,eta,phi)=(%2.2f,%2.2f,%2.2f),Cl2(E,eta,phi)=(%2.2f,%2.2f,%2.2f), mass(1,2) %2.2f \n",
571// nMax, noverlaps,mass,m02,
572// l1.E(),l1.Eta(),l1.Phi()*TMath::RadToDeg(),
573// l2.E(),l2.Eta(),l2.Phi()*TMath::RadToDeg(), (l1+l2).M());
36769d30 574//
4914e781 575// // Study the mothers of cluster
576// printf("Cluster MC labels %d \n", cluster->GetNLabels());
577// for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ )
36769d30 578// {
4914e781 579// Int_t mclabel = cluster->GetLabels()[ilab];
580//
581// Bool_t mOK = 0;
582// Int_t mpdg = -999999;
583// Int_t mstatus = -1;
584// Int_t grandLabel = -1;
585// TLorentzVector mother = GetMCAnalysisUtils()->GetMother(mclabel,GetReader(),mpdg,mstatus,mOK,grandLabel);
586//
587// printf("******** mother %d : Label %d, pdg %d; status %d, E %2.2f, Eta %2.2f, Phi %2.2f, ok %d, mother label %d\n",
588// ilab, mclabel, mpdg, mstatus,mother.E(), mother.Eta(),mother.Phi()*TMath::RadToDeg(),mOK,grandLabel);
589//
590// if( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 )
36769d30 591// {
4914e781 592// while( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 )
593// {
594// Int_t newLabel = -1;
595// TLorentzVector grandmother = GetMCAnalysisUtils()->GetMother(grandLabel,GetReader(),mpdg,mstatus,mOK,newLabel);
596// printf("\t grandmother %d : Label %d, pdg %d; status %d, E %2.2f, Eta %2.2f, Phi %2.2f, ok %d, mother label %d\n",
597// ilab, grandLabel, mpdg, mstatus,grandmother.E(), grandmother.Eta(), grandmother.Phi()*TMath::RadToDeg(),mOK,newLabel);
598// grandLabel = newLabel;
599//
600// }
36769d30 601// }
602// }
b2e375c7 603//
4914e781 604// printf("Cells in cluster %d\n",cluster->GetNCells() );
605// for(Int_t icell = 0; icell < cluster->GetNCells(); icell++)
606// {
607// Int_t absIdCell = cluster->GetCellAbsId(icell);
608// Int_t mcLabel = GetEMCALCells()->GetCellMCLabel(absIdCell);
609// GetReader()->RemapMCLabelForAODs(mcLabel);
610// Int_t ietac=-1; Int_t iphic = 0; Int_t rcuc = 0;
611// Int_t smc = GetModuleNumberCellIndexes(absIdCell,fCalorimeter, ietac, iphic, rcuc);
612//
613// printf(" \t cell i %d, abs %d, amp %2.3f, mclabel %d, (sm,ieta,iphi)=(%d,%d,%d)\n",icell,absIdCell,GetEMCALCells()->GetCellAmplitude(absIdCell),mcLabel,smc,ietac,iphic);
614// }
bfa0a1a7 615// }
4914e781 616 //// PRINTS /////
617
bfa0a1a7 618
619 //If only one maxima, consider all the towers in the cluster
620 if(nMax==1)
621 {
36769d30 622 for (UInt_t icell = 0; icell < nc; icell++ )
623 {
624 list [icell] = cluster->GetCellAbsId(icell);
625 elist[icell] = GetEMCALCells()->GetCellAmplitude(list[icell]);
626 }
b2e375c7 627 }
628
83351853 629 Int_t nmaxima = nMax;
630 if(nMax==1) nmaxima = nc ;
631
b2e375c7 632 //Find highest energy Local Maxima Towers
86b521c9 633 Int_t imax = 999;
634 Int_t imax2 = 999;
b2e375c7 635 Float_t emax = -1;
636 Float_t emax2 = -1;
83351853 637 for(Int_t i = 0; i < nmaxima; i++)
b2e375c7 638 {
639 //printf("i %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]);
640 if(elist[i] > emax)
641 {
642 imax = i;
643 emax = elist[i];
644 }
645 }
86b521c9 646
b2e375c7 647 //Find second highest
83351853 648 for(Int_t i = 0; i < nmaxima; i++)
b2e375c7 649 {
650 if(i==imax) continue;
bfa0a1a7 651
83351853 652 //printf("j %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]);
36769d30 653
b2e375c7 654 if(elist[i] > emax2)
655 {
656 imax2 = i;
657 emax2 = elist[i];
658 }
659 }
660
4914e781 661// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
662// printf("Local maxima: a) index %d, absId %d; b) index %d, absId %d\n",imax, list[imax], imax2, list[imax2]);
b2e375c7 663
36769d30 664 //---------------------------------------------------------
83351853 665 //---------------------------------------------------------
666 // Compare ancestors of all local maxima at cell MC level
667 //---------------------------------------------------------
36769d30 668 //---------------------------------------------------------
83351853 669
b2e375c7 670 // Check that the highest mc label and the max cluster label are the same
87c4fd53 671 Int_t mcLabelMax = -1 ;
86b521c9 672 if(imax >=0 && imax < 999)
87c4fd53 673 {
674 mcLabelMax = GetEMCALCells()->GetCellMCLabel(list[imax]);
675 GetReader()->RemapMCLabelForAODs(mcLabelMax);
676 }
677
678 Int_t mcLabelMax2 = -1 ;
86b521c9 679 if(imax2 >=0 && imax2 < 999)
87c4fd53 680 {
681 mcLabelMax2 = GetEMCALCells()->GetCellMCLabel(list[imax2]);
682 GetReader()->RemapMCLabelForAODs(mcLabelMax2);
683 }
b2e375c7 684
685 Int_t mcLabelclusterMax = cluster->GetLabels()[0];
686 Bool_t matchHighLMAndHighMC = kFALSE;
687
36769d30 688 //printf("MC label: LM1 %d, LM2 %d, cluster %d\n",mcLabelMax,mcLabelMax2,mcLabelclusterMax);
689
87c4fd53 690 if(mcLabelclusterMax == mcLabelMax && mcLabelclusterMax >= 0)
b2e375c7 691 {
692 matchHighLMAndHighMC = kTRUE;
36769d30 693 //printf("\t *** MATCH cluster and LM maximum ***\n");
b2e375c7 694 }
695 else
696 {
36769d30 697 //printf("\t *** NO MATCH cluster and LM maximum, check second ***\n");
87c4fd53 698 if(mcLabelclusterMax == mcLabelMax2 && mcLabelclusterMax >= 0)
b2e375c7 699 {
36769d30 700 //printf("\t \t *** MATCH cluster and 2nd LM maximum ***\n");
b2e375c7 701 matchHighLMAndHighMC = kTRUE;
702 }
703 else
704 {
36769d30 705 //printf("\t \t *** NO MATCH***\n");
b2e375c7 706 matchHighLMAndHighMC = kFALSE;
707 }
708 }
709
710 // Compare the common ancestors of the 2 highest energy local maxima
711 Int_t ancPDG = 0, ancStatus = -1;
712 TLorentzVector momentum; TVector3 prodVertex;
713 Int_t ancLabel = 0;
714 Bool_t high = kFALSE;
715 Bool_t low = kFALSE;
716
717// // print maxima origin
718// for(Int_t i = 0; i < nMax; i++)
719// {
720// Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]);
721// GetReader()->RemapMCLabelForAODs(mcLabel1);
722//
723// Bool_t ok =kFALSE,gok = kFALSE;
724// Int_t pdg = -22222, status = -1;
725// Int_t gpdg = -22222, gstatus = -1;
726// Int_t ggpdg = -22222, ggstatus = -1;
727// Int_t gLabel = -1, ggLabel = -1;
728// TLorentzVector primary =GetMCAnalysisUtils()->GetMother (mcLabel1,GetReader(), pdg, status, ok);
729// TLorentzVector gprimary =GetMCAnalysisUtils()->GetGrandMother(mcLabel1,GetReader(), gpdg, gstatus,gok, gLabel,ggLabel);
730// TLorentzVector ggprimary =GetMCAnalysisUtils()->GetMother(ggLabel ,GetReader(),ggpdg,ggstatus,gok);
731// printf("Max index %d; mother: Label %d; PDG %d; E %2.2f - grand mother label %d; PDG %d; E %2.2f- great grand mother label %d; PDG %d; E %2.2f\n",
732// i,mcLabel1,pdg,primary.E(), gLabel,gpdg,gprimary.E(), ggLabel,ggpdg,ggprimary.E());
733// }
83351853 734
bfa0a1a7 735 for(Int_t i = 0; i < nmaxima-1; i++)
b2e375c7 736 {
737 Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]);
738 GetReader()->RemapMCLabelForAODs(mcLabel1);
739
bfa0a1a7 740 for(Int_t j = i+1; j < nmaxima; j++)
b2e375c7 741 {
742 Int_t mcLabel2 = GetEMCALCells()->GetCellMCLabel(list[j]);
743 GetReader()->RemapMCLabelForAODs(mcLabel2);
744
745 if(mcLabel1 < 0 || mcLabel2 < 0 )
746 {
747 //printf("\t i %d label %d - j %d label %d; skip!\n",i,mcLabel1,j,mcLabel2);
748 continue;
749 }
83351853 750
b2e375c7 751 ancLabel = GetMCAnalysisUtils()->CheckCommonAncestor(mcLabel1,mcLabel2,
752 GetReader(),ancPDG,ancStatus,momentum,prodVertex);
753 if(ancPDG==111)
754 {
755 if((i==imax && j==imax2) || (j==imax && i==imax2))
756 high = kTRUE;
757 else
758 low = kTRUE;
759 }
760 else if(ancPDG==22 || TMath::Abs(ancPDG)==11)
761 {
762 // If both bits are set, it could be that one of the maxima had a conversion
763 // reset the bit in this case
764 if(high && low)
765 {
766 //printf("\t Reset low bit\n");
767 low = kFALSE;
768 }
769 }
770
771 Bool_t ok =kFALSE;
772 Int_t pdg = -22222, status = -1;
773 TLorentzVector primary =GetMCAnalysisUtils()->GetMother(ancLabel,GetReader(), pdg, status, ok);
b2e375c7 774 //printf("\t i %d label %d - j %d label %d; ancestor label %d, PDG %d-%d; E %2.2f; high %d, any %d \n",i,mcLabel1,j,mcLabel2, ancLabel, ancPDG,pdg, primary.E(), high, low);
775
776 }
777 }
778
779 Float_t en = cluster->E();
780
4914e781 781// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
782// printf("Cell MC match: nMax %d; Match MC? %d; high %d; low %d\n",nMax,matchHighLMAndHighMC,high,low);
b2e375c7 783
36769d30 784 if(!noverlaps)
b2e375c7 785 {
36769d30 786 if(matchHighLMAndHighMC)
787 {
788 if (high && !low) fhMCPi0HighNLMPair->Fill(en,nMax);
789 else if(low && !high) fhMCPi0LowNLMPair ->Fill(en,nMax);
790 else if(low && high) fhMCPi0AnyNLMPair ->Fill(en,nMax);
791 else fhMCPi0NoneNLMPair->Fill(en,nMax);
792 }
793 else
794 {
795 if (high && !low) fhMCPi0HighNLMPairNoMCMatch->Fill(en,nMax);
796 else if(low && !high) fhMCPi0LowNLMPairNoMCMatch ->Fill(en,nMax);
797 else if(low && high) fhMCPi0AnyNLMPairNoMCMatch ->Fill(en,nMax);
798 else fhMCPi0NoneNLMPairNoMCMatch->Fill(en,nMax);
799 }
b2e375c7 800 }
801 else
802 {
36769d30 803 if(matchHighLMAndHighMC)
804 {
805 if (high && !low) fhMCPi0HighNLMPairOverlap->Fill(en,nMax);
806 else if(low && !high) fhMCPi0LowNLMPairOverlap->Fill(en,nMax);
807 else if(low && high) fhMCPi0AnyNLMPairOverlap->Fill(en,nMax);
808 else fhMCPi0NoneNLMPairOverlap->Fill(en,nMax);
809 }
810 else
811 {
812 if (high && !low) fhMCPi0HighNLMPairNoMCMatchOverlap->Fill(en,nMax);
813 else if(low && !high) fhMCPi0LowNLMPairNoMCMatchOverlap->Fill(en,nMax);
814 else if(low && high) fhMCPi0AnyNLMPairNoMCMatchOverlap->Fill(en,nMax);
815 else fhMCPi0NoneNLMPairNoMCMatchOverlap->Fill(en,nMax);
816 }
b2e375c7 817 }
1253480f 818
36769d30 819 //----------------------------------------------------------------------
83351853 820 //----------------------------------------------------------------------
821 // Compare MC decay photon projection to cell location and Local Maxima
822 //----------------------------------------------------------------------
36769d30 823 //----------------------------------------------------------------------
83351853 824
825 // Get the mother pi0
826
827 Bool_t ok = kFALSE;
828 Int_t pdg = -22222, status = -1;
829 Int_t gLabel = -1;
830
831 Int_t label = cluster->GetLabel();
832 TLorentzVector pi0Kine;
833
834 while( pdg!=111 && label>=0 )
835 {
836 pi0Kine = GetMCAnalysisUtils()->GetGrandMother(label,GetReader(),pdg,status,ok, label,gLabel);
837 }
838
839 if(pdg!=111 || label < 0)
840 {
a6d3b0a8 841 Info("CheckLocalMaximaMCOrigin","Mother Pi0 not found!\n");
83351853 842 return;
843 }
844
845 Int_t nDaugthers = GetMCAnalysisUtils()->GetNDaughters(label,GetReader(),ok);
846
847 if(nDaugthers != 2)
848 {
a6d3b0a8 849 Info("CheckLocalMaximaMCOrigin","N daughters %d !=2!\n",nDaugthers);
83351853 850 return;
851 }
852
853 // Get daughter photon kinematics
854 Int_t pdg0 = -22222, status0 = -1; Int_t label0 = -1;
855 TLorentzVector photon0Kine = GetMCAnalysisUtils()->GetDaughter(0,label,GetReader(),pdg0,status0,ok,label0);
856 Int_t pdg1 = -22222, status1 = -1; Int_t label1 = -1;
857 TLorentzVector photon1Kine = GetMCAnalysisUtils()->GetDaughter(1,label,GetReader(),pdg1,status1,ok,label1);
858
859 if(pdg1!=22 || pdg0 != 22)
860 {
a6d3b0a8 861 Info("CheckLocalMaximaMCOrigin","Wrong daughters PDG: photon0 %d - photon1 %d\n",pdg0,pdg1);
83351853 862 return;
863 }
864
865 // In what cells did the photons hit
866 Float_t eta0 = photon0Kine.Eta();
867 Float_t eta1 = photon1Kine.Eta();
868
869 Float_t phi0 = photon0Kine.Phi();
870 Float_t phi1 = photon1Kine.Phi();
871
4914e781 872// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
873// {
874// printf("MC pi0 label %d E %2.2f, eta %2.2f, phi %2.2f, mass (ph1, ph2) %2.2f: \n \t photon0 label %d E %2.2f, eta %2.2f, phi %2.2f \n \t photon1 label %d E %2.2f eta %2.2f, phi %2.2f\n",
875// label , pi0Kine.E() , pi0Kine.Eta(),pi0Kine.Phi()*TMath::RadToDeg(), (photon0Kine+photon1Kine).M(),
876// label0, photon0Kine.E(), eta0, phi0*TMath::RadToDeg(),
877// label1, photon1Kine.E(), eta1, phi1*TMath::RadToDeg());
878//
879// TLorentzVector momclus;
880// cluster->GetMomentum(momclus,GetVertex(0));
881// printf("Cluster E %2.2F eta %2.2f, phi %2.2f, dist to bad %2.2f\n",momclus.E(),momclus.Eta(),momclus.Phi()*TMath::RadToDeg(), cluster->GetDistanceToBadChannel());
882// }
36769d30 883
83351853 884 if(phi0 < 0 ) phi0+=TMath::TwoPi();
885 if(phi1 < 0 ) phi1+=TMath::TwoPi();
886
887 Int_t absId0=-1, absId1=-1;
888 GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta0, phi0, absId0);
889 GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta1, phi1, absId1);
890
7e2cebc3 891 if(absId0 < 0 || absId1 < 0)
83351853 892 {
4914e781 893 //printf("AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(() - Photon hit AbsId: photon0 %d - photon1 %d\n",absId0,absId1);
83351853 894 return;
895 }
896
36769d30 897 //-----------------------------------------------
83351853 898 // Check that the 2 photons hit the Local Maxima
36769d30 899 //-----------------------------------------------
83351853 900
4914e781 901
902// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
903// {
904// printf("Photons AbsId (%d,%d); Local Maxima AbsId(%d,%d)\n",absId0,absId1,list[imax],list[imax2]);
905// printf("Photon1 (eta,phi)=(%f,%f); Photon2 (eta,phi)=(%f,%f);\n",eta0,phi0*TMath::RadToDeg(),eta1,phi1*TMath::RadToDeg());
906//
907// Int_t ieta0=-1; Int_t iphi0 = 0; Int_t rcu0 = 0;
908// Int_t sm0 = GetModuleNumberCellIndexes(absId0,fCalorimeter, ieta0, iphi0, rcu0);
909// Int_t ieta1=-1; Int_t iphi1 = 0; Int_t rcu1 = 0;
910// Int_t sm1 = GetModuleNumberCellIndexes(absId1,fCalorimeter, ieta1, iphi1, rcu1);
911//
912// printf("Photon1 (id,sm,eta,phi)=(%d,%d,%d,%d), Photon2 (id,sm,eta,phi)=(%d,%d,%d,%d)\n",
913// absId0,sm0,ieta0,iphi0,absId1,sm1,ieta1,iphi1);
914//
915// Int_t ietam0=-1; Int_t iphim0 = 0; Int_t rcum0 = 0; Int_t smm0 = -1 ;
916// if(imax >= 0) smm0 = GetModuleNumberCellIndexes(list[imax] ,fCalorimeter, ietam0, iphim0, rcum0);
917// Int_t ietam1=-1; Int_t iphim1 = 0; Int_t rcum1 = 0; Int_t smm1 = -1 ;
918// if(imax2 >= 0) smm1 = GetModuleNumberCellIndexes(list[imax2],fCalorimeter, ietam1, iphim1, rcum1);
919//
920// printf("Max (id, sm,eta,phi)=(%d,%d,%d,%d), Max2 (id, sm,eta,phi)=(%d,%d,%d,%d)\n",
921// list[imax],smm0,ietam0,iphim0,list[imax2],smm1,ietam1,iphim1);
922// }
923
b583134f 924 Int_t inlm = nMax-1;
925 if(inlm > 2) inlm = 2;
83351853 926
36769d30 927 Bool_t match0 = kFALSE;
928 Bool_t match1 = kFALSE;
929 Int_t imatch0 = -1;
930 Int_t imatch1 = -1;
931 if(imax >= 0 && imax2 >=0 && absId0 > 0 && absId1 > 0 )
87c4fd53 932 {
36769d30 933 if (absId0 == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
934 else if(absId0 == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
935
936 if (absId1 == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
937 else if(absId1 == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
87c4fd53 938 }
83351853 939
36769d30 940 //printf("primary imatch0 %d, imatch1 %d\n",imatch0,imatch1);
941
942 // If one or the 2 not matched, check with the other MC labels
943 // only in case there was a conversion
83351853 944
36769d30 945 Int_t absId0second = -1;
946 Int_t absId1second = -1;
947 Int_t secLabel0 = -1;
948 Int_t secLabel1 = -1;
949 Int_t mcLabel0 = -1;
950 Int_t mcLabel1 = -1;
951 Bool_t secOK = 0;
952 Int_t secpdg = -999999;
953 Int_t secstatus = -1;
954 Int_t secgrandLabel = -1;
955
956 if(match0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
957 if(match1) { secLabel1 = label1 ; mcLabel1 = label1 ; }
958
959 if((!match0 || !match1) && mcindex == kmcPi0Conv)
83351853 960 {
36769d30 961 for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ )
962 {
963 Int_t mclabel = cluster->GetLabels()[ilab];
964
965 //printf("Check label %d - %d\n",ilab,mclabel);
966
967 if(mclabel == label0 || mclabel == label1)
968 {
969 //printf("continue: secLabel %d, label0 %d, label1 %d\n",mclabel,label0,label1);
970 if(mclabel == label0 && secLabel0 < 0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
971 if(mclabel == label1 && secLabel1 < 0) { secLabel1 = label1 ; mcLabel1 = label1 ; }
972 continue ;
973 }
974
975 //printf("Before while: secLabel0 %d, secLabel1 %d\n",secLabel0,secLabel1);
976
977 // match mc label and parent photon
978 Int_t tmplabel = mclabel;
979 while((secLabel0 < 0 || secLabel1 < 0) && tmplabel > 0 )
980 {
981 TLorentzVector mother = GetMCAnalysisUtils()->GetMother(tmplabel,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
982
983 //printf("\t \t while secLabel %d, mom %d, granmom %d\n",mclabel,tmplabel,secgrandLabel);
984
985 if((secgrandLabel == label0) || (secgrandLabel == label1 ))
986 {
987 //printf("mcMatch! grand label %d, secLabel %d\n",secgrandLabel, mclabel);
988 if(!match0 && mcLabel1 != secgrandLabel) { secLabel0 = mclabel; mcLabel0 = secgrandLabel; }
989 if(!match1 && mcLabel0 != secgrandLabel) { secLabel1 = mclabel; mcLabel1 = secgrandLabel; }
990 }
991
992 //printf("\t GrandMother %d, secLabel0 %d, secLabel1 %d \n",secgrandLabel, secLabel0,secLabel1);
83351853 993
36769d30 994 tmplabel = secgrandLabel;
995 }
996 }
83351853 997
36769d30 998 // Get the position of the found secondaries mother
999 if(!match0 && secLabel0 > 0)
87c4fd53 1000 {
36769d30 1001 TLorentzVector mother = GetMCAnalysisUtils()->GetMother(secLabel0,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
1002
4914e781 1003 //Float_t eta = mother.Eta();
1004 //Float_t phi = mother.Phi();
1005 //if(phi < 0 ) phi+=TMath::TwoPi();
1006 //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId0second);
36769d30 1007
1008 //printf("Secondary MC0 label %d, absId %d E %2.2F eta %2.2f, phi %f\n", secLabel0,absId0second, mother.E(),mother.Eta(),mother.Phi()*TMath::RadToDeg());
1009
1010 if(absId0second == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
1011 if(absId0second == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
87c4fd53 1012 }
36769d30 1013
1014 if(!match1 && secLabel1 > 0)
87c4fd53 1015 {
36769d30 1016 TLorentzVector mother = GetMCAnalysisUtils()->GetMother(secLabel1,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
1017
4914e781 1018 //Float_t eta = mother.Eta();
1019 //Float_t phi = mother.Phi();
1020 //if(phi < 0 ) phi+=TMath::TwoPi();
1021 //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId1second);
36769d30 1022
1023 //printf("Secondary MC1 label %d absId %d E %2.2F eta %2.2f, phi %f\n",secLabel1, absId1second, mother.E(),mother.Eta(),mother.Phi()*TMath::RadToDeg());
1024
1025 if(absId1second == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
1026 if(absId1second == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
87c4fd53 1027 }
36769d30 1028
1029 //printf("secondary label mc0 %d, mc1 %d, imatch0 %d, imatch1 %d\n",secLabel0,secLabel1,imatch0,imatch1);
1030
1031 }
1032
1033 //printf("imatch0 %d, imatch1 %d\n",imatch0,imatch1);
1034 if( match0 && match1 )
1035 {
4914e781 1036// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1037// printf("a) Both Photons hit local maxima \n");
36769d30 1038
b583134f 1039 if(!noverlaps)
1040 {
1041 fhMCPi0DecayPhotonHitHighLM ->Fill(en,nMax);
1042 fhMCPi0DecayPhotonHitHighLMMass[inlm]->Fill(en,mass);
1043 if(match0 && imatch0 == imax)
1044 {
cb99fa55 1045 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1046 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
29555e96 1047 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E());
1048 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1049 }
1050 else
1051 {
cb99fa55 1052 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1053 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
29555e96 1054 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E());
1055 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1056 }
1057 }
1058 else
1059 {
1060 fhMCPi0DecayPhotonHitHighLMOverlap ->Fill(en,nMax);
1061 fhMCPi0DecayPhotonHitHighLMOverlapMass[inlm]->Fill(en,mass);
1062 if(match0 && imatch0 == imax )
1063 {
cb99fa55 1064 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1065 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
29555e96 1066 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E());
1067 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1068 }
1069 else
1070 {
cb99fa55 1071 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1072 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
29555e96 1073 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E());
1074 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1075 }
1076
1077 }
36769d30 1078
1079 return ;
1080 }
1081
1082 //printf("Any match? photon0 %d, photon1 %d\n",match0,match1);
1083 //if(!match0 && !match1) printf("WARNING, LM not matched to any photon decay!\n");
1084
1085 //---------------------------------------------
1086 // Check the adjacent cells to the local maxima
1087 //---------------------------------------------
1088
36769d30 1089 if(!match0)
1090 {
b583134f 1091 if(imatch1!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax])) { match0 = kTRUE; imatch0 = imax ; }
36769d30 1092 //printf("imax - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam0,ieta0-ietam0, iphi0,iphim0,iphi0-iphim0);
b583134f 1093 if(imatch1!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax2]) ) { match0 = kTRUE; imatch0 = imax2 ; }
36769d30 1094 //printf("imax2 - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam1,ieta0-ietam1, iphi0,iphim1,iphi0-iphim1);
1095 }
1096
1097 if(!match1)
1098 {
b583134f 1099 if(imatch0!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax]) ) { match1 = kTRUE; imatch1 = imax ; }
36769d30 1100 //printf("imax - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam0,ieta1-ietam0, iphi1,iphim0,iphi1-iphim0);
1101
b583134f 1102 if(imatch0!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax2])) { match1 = kTRUE; imatch1 = imax2 ; }
36769d30 1103 //printf("imax2 - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam1,ieta1-ietam1, iphi1,iphim1,iphi1-iphim1);
1104 }
1105
1106 //printf("Local Maxima: adjacent0 %d,adjacent1 %d \n",match0,match1);
1107
1108 if(match0 && match1)
1109 {
4914e781 1110// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1111// printf("b) Both Photons hit local maxima or cell adjacent or 2 cells adjacent \n");
83351853 1112
b583134f 1113 if(!noverlaps)
1114 {
1115 fhMCPi0DecayPhotonAdjHighLM ->Fill(en,nMax);
1116 fhMCPi0DecayPhotonAdjHighLMMass[inlm]->Fill(en,mass);
1117
1118 if(match0 && imatch0 == imax)
1119 {
cb99fa55 1120 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1121 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
29555e96 1122 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E());
1123 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1124 }
1125 else
1126 {
cb99fa55 1127 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1128 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
29555e96 1129 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E());
1130 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1131 }
1132 }
1133 else
1134 {
1135 fhMCPi0DecayPhotonAdjHighLMOverlap ->Fill(en,nMax);
1136 fhMCPi0DecayPhotonAdjHighLMOverlapMass[inlm]->Fill(en,mass);
1137 if(match0 && imatch0 == imax)
1138 {
cb99fa55 1139 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1140 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
29555e96 1141 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E());
1142 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1143 }
1144 else
1145 {
cb99fa55 1146 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1147 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
29555e96 1148 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E());
1149 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1150 }
1151 }
36769d30 1152
1153 return;
1154 }
36769d30 1155
1156 // Decay photon cells are adjacent?
1157
1158 if( (match0 || match1) && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,absId1) )
1159 {
4914e781 1160// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1161// printf("c) Both Photons hit a local maxima and in adjacent cells \n");
b583134f 1162 if(!noverlaps)
1163 {
1164 fhMCPi0DecayPhotonAdjacent ->Fill(en,nMax);
1165 fhMCPi0DecayPhotonAdjacentMass[inlm]->Fill(en,mass);
1166 }
1167 else
1168 {
1169 fhMCPi0DecayPhotonAdjacentOverlap ->Fill(en,nMax);
1170 fhMCPi0DecayPhotonAdjacentOverlapMass[inlm]->Fill(en,mass);
1171 }
83351853 1172
36769d30 1173 return;
83351853 1174 }
1175
36769d30 1176 //--------------------
1177 // Other Local maxima
1178 //--------------------
1179
83351853 1180 Bool_t matchMCHitOtherLM = kFALSE;
36769d30 1181 if(!match1)
1182 {
1183 for(Int_t i = 0; i < nmaxima; i++)
1184 {
1185 if(imax!=i && imax2!=i && absId1 == list[i]) { match1 = kTRUE; matchMCHitOtherLM = kTRUE; }
1186 }
1187 }
1188
1189 if(!match0)
1190 {
1191 for(Int_t i = 0; i < nmaxima; i++)
1192 {
1193 if(imax!=i && imax2!=i && absId0 == list[i]) { match0 = kTRUE; matchMCHitOtherLM = kTRUE; }
1194 }
1195 }
1196
1197 if(matchMCHitOtherLM)
1198 {
4914e781 1199// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1200// printf("d) One Photon hits a local maxima, the other another not high \n");
36769d30 1201
b583134f 1202 if(!noverlaps)
1203 {
1204 fhMCPi0DecayPhotonHitOtherLM ->Fill(en,nMax);
1205 fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass);
1206 if(match0 && imatch0 == imax)
1207 {
cb99fa55 1208 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1209 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1210 }
1211 else
1212 {
cb99fa55 1213 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1214 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1215 }
1216 }
1217 else
1218 {
1219 fhMCPi0DecayPhotonHitOtherLMOverlap ->Fill(en,nMax);
1220 fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass);
1221 if(match0 && imatch0 == imax)
1222 {
cb99fa55 1223 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1224 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1225 }
1226 else
1227 {
cb99fa55 1228 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1229 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1230 }
1231 }
36769d30 1232
1233 return ;
1234 }
1235
1236 // Adjacent to other maxima
1237
1238 Bool_t adjacentOther1 = kFALSE;
1239 if(match0)
83351853 1240 {
36769d30 1241 for(Int_t i = 0; i < nmaxima; i++)
83351853 1242 {
36769d30 1243 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
1244 GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu);
83351853 1245
36769d30 1246 //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
1247
1248 if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[i]) ) adjacentOther1 = kTRUE;
1249
1250 //printf("Other Maxima: adjacentOther1 %d\n",adjacentOther1);
83351853 1251 }
1252 }
1253
36769d30 1254 Bool_t adjacentOther0 = kFALSE;
1255 if(match1)
83351853 1256 {
36769d30 1257 for(Int_t i = 0; i < nmaxima; i++)
83351853 1258 {
36769d30 1259 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
1260 GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu);
83351853 1261
36769d30 1262 //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
1263
1264 if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[i]) ) adjacentOther0 = kTRUE;
1265
1266 //printf("Other Maxima: adjacentOther0 %d\n",adjacentOther0);
83351853 1267 }
1268 }
1269
36769d30 1270 if((match0 && adjacentOther1) || (match1 && adjacentOther0))
1271 {
4914e781 1272
1273// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1274// printf("e) One Photon hits a local maxima, the other another not high, adjacent \n");
36769d30 1275
b583134f 1276 if(!noverlaps)
1277 {
1278 fhMCPi0DecayPhotonAdjOtherLM ->Fill(en,nMax);
1279 fhMCPi0DecayPhotonAdjOtherLMMass[inlm]->Fill(en,mass);
1280 if(match0 && imatch0 == imax)
1281 {
cb99fa55 1282 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1283 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1284 }
1285 else
1286 {
cb99fa55 1287 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1288 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1289 }
1290 }
1291 else
1292 {
1293 fhMCPi0DecayPhotonAdjOtherLMOverlap ->Fill(en,nMax);
1294 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[inlm]->Fill(en,mass);
1295 if(match0 && imatch0 == imax)
1296 {
cb99fa55 1297 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1298 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1299 }
1300 else
1301 {
cb99fa55 1302 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1303 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1304 }
1305 }
36769d30 1306
1307 return;
1308 }
1309
4914e781 1310// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1311// printf("f) No hit found \n");
b583134f 1312 if(!noverlaps)
1313 {
1314 fhMCPi0DecayPhotonHitNoLM ->Fill(en,nMax);
1315 fhMCPi0DecayPhotonHitNoLMMass[inlm]->Fill(en,mass);
1316 }
1317 else
1318 {
1319 fhMCPi0DecayPhotonHitNoLMOverlap ->Fill(en,nMax);
1320 fhMCPi0DecayPhotonHitNoLMOverlapMass[inlm]->Fill(en,mass);
1321 }
83351853 1322
b2e375c7 1323}
1324
b94e038e 1325//___________________________________________________________________________________________________________
1326void AliAnaInsideClusterInvariantMass::FillAngleHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex,
1327 Float_t en, Float_t e1, Float_t e2,
1328 Float_t angle, Float_t mass,
1329 Float_t anglePrim, Float_t m02,
1330 Float_t asym, Int_t pid, Int_t noverlaps)
b2e375c7 1331{
1332 // Fill histograms related to opening angle
29555e96 1333
1334 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1335 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1336 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1337 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
a6d3b0a8 1338
1339 Bool_t eCutOK= kFALSE;
1340 Int_t inlm = nMax-1;
1341 if(inlm > 2 ) inlm = 2;
1342 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1343 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1344 else if(ensubcut < 0.1) eCutOK = kTRUE;
1345
b2e375c7 1346 if (nMax==1)
1347 {
0186b6a2 1348 fhAnglePairNLocMax1[0][matched]->Fill(en,angle);
29555e96 1349
a6d3b0a8 1350 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1351 fhAnglePairAfterCutsNLocMax1[0][matched]->Fill(en,angle);
1352 if(pid==AliCaloPID::kPi0)
1353 fhAnglePairPi0NLocMax1[0][matched]->Fill(en,angle);
1354
4e5a94c5 1355 if(m02 > 0)
1356 {
1357 fhAnglePairOverM02NLocMax1[0][matched]->Fill(en,angle/m02);
1358 if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[0][matched]->Fill(en,angle/m02);
1359 }
1360
d261ae67 1361 if( en > 15 )
1362 {
1363 fhAnglePairMassNLocMax1[0][matched]->Fill(mass,angle);
1364 fhAnglePairM02NLocMax1 [0][matched]->Fill(m02 ,angle);
1365 }
b2e375c7 1366 }
1367 else if(nMax==2)
1368 {
0186b6a2 1369 fhAnglePairNLocMax2[0][matched]->Fill(en,angle);
29555e96 1370
a6d3b0a8 1371 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1372 fhAnglePairAfterCutsNLocMax2[0][matched]->Fill(en,angle);
1373 if(pid==AliCaloPID::kPi0)
1374 fhAnglePairPi0NLocMax2[0][matched]->Fill(en,angle);
1375
4e5a94c5 1376 if(m02 > 0)
1377 {
1378 fhAnglePairOverM02NLocMax2[0][matched]->Fill(en,angle/m02);
1379 if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[0][matched]->Fill(angle/m02,en);
1380 }
1381
d261ae67 1382 if( en > fHistoECut )
1383 {
1384 fhAnglePairMassNLocMax2[0][matched]->Fill(mass,angle);
1385 fhAnglePairM02NLocMax2 [0][matched]->Fill(m02,angle);
1386 }
b2e375c7 1387 }
1388 else if(nMax >2)
1389 {
0186b6a2 1390 fhAnglePairNLocMaxN[0][matched]->Fill(en,angle);
29555e96 1391
a6d3b0a8 1392 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1393 fhAnglePairAfterCutsNLocMaxN[0][matched]->Fill(en,angle);
1394 if(pid==AliCaloPID::kPi0)
1395 fhAnglePairPi0NLocMaxN[0][matched]->Fill(en,angle);
1396
4e5a94c5 1397 if(m02 > 0)
1398 {
1399 fhAnglePairOverM02NLocMaxN[0][matched]->Fill(en,angle/m02);
1400 if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[0][matched]->Fill(angle/m02,en);
1401 }
1402
d261ae67 1403 if( en > fHistoECut )
1404 {
1405 fhAnglePairMassNLocMaxN[0][matched]->Fill(mass,angle);
1406 fhAnglePairM02NLocMaxN [0][matched]->Fill(m02,angle);
1407 }
0186b6a2 1408 }
1409
1410 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
1411 {
1412 if (nMax==1)
1413 {
1414 fhAnglePairNLocMax1[mcIndex][matched]->Fill(en,angle);
d261ae67 1415 if( en > 15 )
1416 {
1417 fhAnglePairMassNLocMax1[mcIndex][matched]->Fill(mass,angle);
1418 fhAnglePairM02NLocMax1 [mcIndex][matched]->Fill(m02,angle);
1419 }
a6d3b0a8 1420 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1421 fhAnglePairAfterCutsNLocMax1[mcIndex][matched]->Fill(en,angle);
1422 if(pid==AliCaloPID::kPi0)
1423 fhAnglePairPi0NLocMax1[mcIndex][matched]->Fill(en,angle);
1424
4e5a94c5 1425 if(m02 > 0)
1426 {
1427 fhAnglePairOverM02NLocMax1[mcIndex][matched]->Fill(en,angle/m02);
1428 if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[mcIndex][matched]->Fill(angle/m02,en);
1429 }
1430
0186b6a2 1431 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1432 {
1433 fhAnglePairPrimPi0RecoNLocMax1->Fill(en,angle/anglePrim);
4e5a94c5 1434 if(m02>0)fhAnglePairPrimPi0OverM02NLocMax1->Fill(en,anglePrim/m02);
0186b6a2 1435 if(en > 15) fhAnglePairPrimPi0vsRecoNLocMax1->Fill(anglePrim,angle);
1436
1437 }
1438 }
1439 else if(nMax==2)
1440 {
1441 fhAnglePairNLocMax2[mcIndex][matched]->Fill(en,angle);
d261ae67 1442 if( en > fHistoECut )
1443 {
1444 fhAnglePairMassNLocMax2[mcIndex][matched]->Fill(mass,angle);
1445 fhAnglePairM02NLocMax2 [mcIndex][matched]->Fill(m02 ,angle);
1446 }
29555e96 1447
a6d3b0a8 1448 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1449 fhAnglePairAfterCutsNLocMax2[mcIndex][matched]->Fill(en,angle);
1450 if(pid==AliCaloPID::kPi0)
1451 fhAnglePairPi0NLocMax2[mcIndex][matched]->Fill(en,angle);
1452
4e5a94c5 1453 if(m02 > 0)
1454 {
1455 fhAnglePairOverM02NLocMax2[mcIndex][matched]->Fill(en,angle/m02);
1456 if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[mcIndex][matched]->Fill(angle/m02,en);
1457 }
1458
0186b6a2 1459 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1460 {
1461 fhAnglePairPrimPi0RecoNLocMax2->Fill(en,angle/anglePrim);
4e5a94c5 1462 if(m02>0)fhAnglePairPrimPi0OverM02NLocMax2->Fill(en,anglePrim/m02);
0186b6a2 1463 if(en > 10) fhAnglePairPrimPi0vsRecoNLocMax2->Fill(anglePrim,angle);
1464 }
1465 }
1466 else if(nMax >2)
1467 {
1468 fhAnglePairNLocMaxN[mcIndex][matched]->Fill(en,angle);
d261ae67 1469 if( en > fHistoECut )
1470 {
1471 fhAnglePairMassNLocMaxN[mcIndex][matched]->Fill(mass,angle);
1472 fhAnglePairM02NLocMaxN [mcIndex][matched]->Fill(m02 ,angle);
1473 }
a6d3b0a8 1474 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1475 fhAnglePairAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,angle);
1476 if(pid==AliCaloPID::kPi0)
1477 fhAnglePairPi0NLocMaxN[mcIndex][matched]->Fill(en,angle);
1478
4e5a94c5 1479 if(m02 > 0)
1480 {
1481 fhAnglePairOverM02NLocMaxN[mcIndex][matched]->Fill(en,angle/m02);
1482 if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[mcIndex][matched]->Fill(angle/m02,en);
1483 }
1484
0186b6a2 1485 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1486 {
1487 fhAnglePairPrimPi0RecoNLocMaxN->Fill(en,angle/anglePrim);
4e5a94c5 1488 if(m02>0)fhAnglePairPrimPi0OverM02NLocMaxN->Fill(en,anglePrim/m02);
0186b6a2 1489 if(en > 10) fhAnglePairPrimPi0vsRecoNLocMaxN->Fill(anglePrim,angle);
1490 }
1491 }
1492
b2e375c7 1493 }
1494
1495}
1496
cb99fa55 1497//______________________________________________________________________________________________________________________
b94e038e 1498void AliAnaInsideClusterInvariantMass::FillArmenterosHistograms(Int_t nMax, Int_t ebin, Int_t mcIndex,
1499 Float_t en, TLorentzVector g1, TLorentzVector g2,
1500 Float_t m02, Int_t pid)
cb99fa55 1501{
1502 // Fill Armeteros type histograms
be894c1d 1503
1504 // Get pTArm and AlphaArm
29555e96 1505 TLorentzVector pi0 = g1+g2;
be894c1d 1506 Float_t momentumSquaredMother = pi0.P()*pi0.P();
1507 Float_t momentumDaughter1AlongMother = 0.;
1508 Float_t momentumDaughter2AlongMother = 0.;
1509
1510 if (momentumSquaredMother > 0.)
1511 {
1512 momentumDaughter1AlongMother = (g1.Px()*pi0.Px() + g1.Py()*pi0.Py()+ g1.Pz()*pi0.Pz()) / sqrt(momentumSquaredMother);
1513 momentumDaughter2AlongMother = (g2.Px()*pi0.Px() + g2.Py()*pi0.Py()+ g2.Pz()*pi0.Pz()) / sqrt(momentumSquaredMother);
1514 }
1515
1516 Float_t momentumSquaredDaughter1 = g1.P()*g1.P();
1517 Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother;
1518
1519 Float_t pTArm = 0.;
1520 if (ptArmSquared > 0.)
1521 pTArm = sqrt(ptArmSquared);
1522
1523 Float_t alphaArm = 0.;
1524 if(momentumDaughter1AlongMother +momentumDaughter2AlongMother > 0)
1525 alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother);
1526
cb99fa55 1527 Float_t asym = TMath::Abs( g1.Energy()-g2.Energy() )/( g1.Energy()+g2.Energy() ) ;
be894c1d 1528
a6d3b0a8 1529 if(GetDebug() > 2 ) Info("FillArmenterosHistograms()","E %f, alphaArm %f, pTArm %f\n",en,alphaArm,pTArm);
be894c1d 1530
cb99fa55 1531 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1532 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1533 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1534 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
cb99fa55 1535
a6d3b0a8 1536 Bool_t eCutOK= kFALSE;
1537 Int_t inlm = nMax-1;
1538 if(inlm > 2 ) inlm = 2;
1539 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1540 if (ensubcut > 0.1 && ensubcut < g1.E() && ensubcut < g2.E() ) eCutOK = kTRUE;
1541 else if(ensubcut < 0.1) eCutOK = kTRUE;
1542
1543
cb99fa55 1544 if (nMax==1)
1545 {
be894c1d 1546 fhArmNLocMax1[0][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1547 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1548 fhArmAfterCutsNLocMax1[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1549 if(pid==AliCaloPID::kPi0)
be894c1d 1550 fhArmPi0NLocMax1[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1551 }
1552 else if(nMax==2)
1553 {
be894c1d 1554 fhArmNLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1555 if((m02OK && asyOK) && (asyOn || m02On))
be894c1d 1556 fhArmAfterCutsNLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1557 if(pid==AliCaloPID::kPi0)
be894c1d 1558 fhArmPi0NLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1559 }
1560 else if(nMax >2)
1561 {
be894c1d 1562 fhArmNLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1563 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1564 fhArmAfterCutsNLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1565 if(pid==AliCaloPID::kPi0)
be894c1d 1566 fhArmPi0NLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1567 }
1568
ed10b649 1569 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
cb99fa55 1570 {
1571 if (nMax==1)
1572 {
be894c1d 1573 fhArmNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1574 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1575 fhArmAfterCutsNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1576 if(pid==AliCaloPID::kPi0)
be894c1d 1577 fhArmPi0NLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1578 }
1579 else if(nMax==2)
1580 {
be894c1d 1581 fhArmNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1582 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1583 fhArmAfterCutsNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1584 if(pid==AliCaloPID::kPi0)
be894c1d 1585 fhArmPi0NLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1586 }
1587 else if(nMax >2)
1588 {
be894c1d 1589 fhArmNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1590 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1591 fhArmAfterCutsNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1592 if(pid==AliCaloPID::kPi0)
be894c1d 1593 fhArmPi0NLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1594 }
1595
1596 }
1597
1598}
1599
b94e038e 1600//______________________________________________________________________________________________________________
1601void AliAnaInsideClusterInvariantMass::FillThetaStarHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex,
1602 Float_t en, TLorentzVector g1, TLorentzVector g2,
1603 Float_t m02, Int_t pid)
29555e96 1604{
1605 // Fill cos Theta^star histograms
1606
1607
1608 // Get cos Theta^star
1609 TLorentzVector pi0 = g1+g2;
1610 TLorentzVector g1Boost = g1;
1611 g1Boost.Boost(-pi0.BoostVector());
1612 Float_t cosThStar=TMath::Cos(g1Boost.Vect().Angle(pi0.Vect()));
1613
1614 Float_t asym = TMath::Abs( g1.Energy()-g2.Energy() )/( g1.Energy()+g2.Energy() ) ;
1615
1616 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1617 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1618 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1619 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
1620
a6d3b0a8 1621 Bool_t eCutOK= kFALSE;
1622 Int_t inlm = nMax-1;
1623 if(inlm > 2 ) inlm = 2;
1624 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1625 if (ensubcut > 0.1 && ensubcut < g1.E() && ensubcut < g2.E() ) eCutOK = kTRUE;
1626 else if(ensubcut < 0.1) eCutOK = kTRUE;
1627
29555e96 1628 //printf("Reco cos %f, asy %f\n",cosThStar,asym);
1629
1630 if (nMax==1)
1631 {
1632 fhCosThStarNLocMax1[0][matched]->Fill(en,cosThStar);
1633
a6d3b0a8 1634 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1635 fhCosThStarAfterCutsNLocMax1[0][matched]->Fill(en,cosThStar);
1636 if(pid==AliCaloPID::kPi0)
1637 fhCosThStarPi0NLocMax1[0][matched]->Fill(en,cosThStar);
1638 }
1639 else if(nMax==2)
1640 {
1641 fhCosThStarNLocMax2[0][matched]->Fill(en,cosThStar);
1642
a6d3b0a8 1643 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1644 fhCosThStarAfterCutsNLocMax2[0][matched]->Fill(en,cosThStar);
1645 if(pid==AliCaloPID::kPi0)
1646 fhCosThStarPi0NLocMax2[0][matched]->Fill(en,cosThStar);
1647 }
1648 else if(nMax >2)
1649 {
1650 fhCosThStarNLocMaxN[0][matched]->Fill(en,cosThStar);
1651
a6d3b0a8 1652 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1653 fhCosThStarAfterCutsNLocMaxN[0][matched]->Fill(en,cosThStar);
1654 if(pid==AliCaloPID::kPi0)
1655 fhCosThStarPi0NLocMaxN[0][matched]->Fill(en,cosThStar);
1656 }
1657
1658 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
1659 {
1660 if (nMax==1)
1661 {
1662 fhCosThStarNLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1663
a6d3b0a8 1664 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1665 fhCosThStarAfterCutsNLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1666 if(pid==AliCaloPID::kPi0)
1667 fhCosThStarPi0NLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1668 }
1669 else if(nMax==2)
1670 {
1671 fhCosThStarNLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1672
a6d3b0a8 1673 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1674 fhCosThStarAfterCutsNLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1675 if(pid==AliCaloPID::kPi0)
1676 fhCosThStarPi0NLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1677 }
1678 else if(nMax >2)
1679 {
1680 fhCosThStarNLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1681
a6d3b0a8 1682 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1683 fhCosThStarAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1684 if(pid==AliCaloPID::kPi0)
1685 fhCosThStarPi0NLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1686 }
1687
1688 }
1689
1690}
1691
b94e038e 1692//__________________________________________________________________________________________________________________
1693void AliAnaInsideClusterInvariantMass::FillEBinHistograms(Int_t ebin , Int_t nMax, Int_t mcindex,
1694 Float_t splitFrac, Float_t mass, Float_t asym, Float_t l0)
b2e375c7 1695{
1696 // Fill some histograms integrating in few energy bins
1253480f 1697
b2e375c7 1698 if (nMax==1)
1699 {
1700 fhMassSplitEFractionNLocMax1Ebin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1701 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax1Ebin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1702
1703 fhMassM02NLocMax1Ebin [ebin]->Fill(l0 , mass );
1704 fhMassAsyNLocMax1Ebin [ebin]->Fill(asym, mass );
1705 }
1706 else if(nMax==2)
1707 {
1708 fhMassSplitEFractionNLocMax2Ebin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1709 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax2Ebin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1710
1711 fhMassM02NLocMax2Ebin [ebin]->Fill(l0 , mass );
1712 fhMassAsyNLocMax2Ebin [ebin]->Fill(asym, mass );
1713 }
1714 else if(nMax > 2 )
1715 {
1716 fhMassSplitEFractionNLocMaxNEbin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1717 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMaxNEbin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1718
1719 fhMassM02NLocMaxNEbin [ebin]->Fill(l0 , mass );
1720 fhMassAsyNLocMaxNEbin [ebin]->Fill(asym, mass );
1721 }
1722
1723}
1724
b94e038e 1725//________________________________________________________________________________________________
1726void AliAnaInsideClusterInvariantMass::FillHistograms1(Float_t en, Float_t e1, Float_t e2,
1727 Int_t nMax, Float_t mass, Float_t l0,
1728 Float_t eta, Float_t phi,
1729 Bool_t matched, Int_t mcindex)
1253480f 1730{
1731 // Fill histograms for clusters before any selection after spliting
1732
1733 Float_t splitFrac = (e1+e2)/en;
1734
1735 Float_t asym = -10;
1736 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1737
29555e96 1738 fhNLocMax [0][matched]->Fill(en,nMax);
1739 fhLM1NLocMax[0][matched]->Fill(e1,nMax);
1740 fhLM2NLocMax[0][matched]->Fill(e2,nMax);
cc909e6f 1741 fhSplitClusterENLocMax[0][matched]->Fill(e1,nMax);
1742 fhSplitClusterENLocMax[0][matched]->Fill(e2,nMax);
1743
cb99fa55 1744 if(IsDataMC() && mcindex > 0 && mcindex < 7)
cc909e6f 1745 {
29555e96 1746 fhNLocMax [mcindex][matched]->Fill(en,nMax);
1747 fhLM1NLocMax[mcindex][matched]->Fill(e1,nMax);
1748 fhLM2NLocMax[mcindex][matched]->Fill(e2,nMax);
b583134f 1749 fhSplitClusterENLocMax[mcindex][matched]->Fill(e1,nMax);
1750 fhSplitClusterENLocMax[mcindex][matched]->Fill(e2,nMax);
cc909e6f 1751 }
1253480f 1752
1753 if ( nMax == 1 )
1754 {
1755 fhM02NLocMax1[0][matched]->Fill(en,l0) ;
1756 fhSplitEFractionNLocMax1[0][matched]->Fill(en,splitFrac) ;
1757
cb99fa55 1758 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1759 {
1760 fhM02NLocMax1[mcindex][matched]->Fill(en,l0) ;
1761 fhSplitEFractionNLocMax1[mcindex][matched]->Fill(en,splitFrac) ;
1762 }
1763
1764 if(en > fHistoECut)
1765 {
1766 fhMassM02NLocMax1[0][matched]->Fill(l0, mass);
cb99fa55 1767 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax1[mcindex][matched]->Fill(l0, mass);
1253480f 1768
1769 fhSplitEFractionvsAsyNLocMax1[matched]->Fill(asym,splitFrac) ;
1770 if(!matched)fhClusterEtaPhiNLocMax1->Fill(eta,phi);
1771 }
1772 }
1773 else if( nMax == 2 )
1774 {
1775 fhM02NLocMax2[0][matched]->Fill(en,l0) ;
1776 fhSplitEFractionNLocMax2[0][matched]->Fill(en,splitFrac) ;
1777
cb99fa55 1778 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1779 {
1780 fhM02NLocMax2[mcindex][matched]->Fill(en,l0) ;
1781 fhSplitEFractionNLocMax2[mcindex][matched]->Fill(en,splitFrac) ;
1782 }
1783
1784 if(en > fHistoECut)
1785 {
1786 fhMassM02NLocMax2[0][matched]->Fill(l0, mass );
cb99fa55 1787 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax2[mcindex][matched]->Fill(l0,mass);
1253480f 1788
1789 fhSplitEFractionvsAsyNLocMax2[matched]->Fill(asym,splitFrac) ;
1790 if(!matched)fhClusterEtaPhiNLocMax2->Fill(eta,phi);
1791 }
1792 }
1793 else if( nMax >= 3 )
1794 {
1795 fhM02NLocMaxN[0][matched]->Fill(en,l0) ;
1796 fhSplitEFractionNLocMaxN[0][matched]->Fill(en,splitFrac) ;
1797
cb99fa55 1798 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1799 {
1800 fhM02NLocMaxN[mcindex][matched]->Fill(en,l0) ;
1801 fhSplitEFractionNLocMaxN[mcindex][matched]->Fill(en,splitFrac) ;
1802 }
1803
1804 if(en > fHistoECut)
1805 {
1806
1807 fhMassM02NLocMaxN[0][matched]->Fill(l0,mass);
cb99fa55 1808 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMaxN[mcindex][matched]->Fill(l0,mass);
1253480f 1809
1810 fhSplitEFractionvsAsyNLocMaxN[matched]->Fill(asym,splitFrac) ;
1811 if(!matched)fhClusterEtaPhiNLocMaxN->Fill(eta,phi);
1812 }
1813 }
1814
1815
1816}
1817
b94e038e 1818//________________________________________________________________________________________________
1819void AliAnaInsideClusterInvariantMass::FillHistograms2(Float_t en, Float_t eprim,
1820 Float_t e1, Float_t e2,
1821 Int_t nMax, Float_t mass, Float_t l0,
1822 Bool_t matched, Int_t mcindex)
1253480f 1823{
1824 // Fill histograms for clusters passing the first M02 selection
1825
1826 Float_t efrac = eprim/en;
1827 Float_t efracSplit = 0;
1828 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
1829
1830 Float_t splitFrac = (e1+e2)/en;
1831
1832 Float_t asym = -10;
1833 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1834
1835 Int_t inlm = nMax-1;
1836 if(inlm > 2) inlm = 2;
1837 Float_t splitFracMin = GetCaloPID()->GetSplitEnergyFractionMinimum(inlm) ;
1838
1839 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,l0,nMax);
1840 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1841 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1842 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
1843
a6d3b0a8 1844 Bool_t eCutOK = kFALSE;
1845 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1846 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1847 else if(ensubcut < 0.1) eCutOK = kTRUE;
1848
1849 //printf("splitFracMin %f, val %f, m02ok %d, asyok %d, m02On %d, asyOn %d, ecutOK %d\n",splitFracMin,splitFrac,m02OK,asyOK,m02On,asyOn,eCutOK);
1253480f 1850
1851 if(m02On && m02OK)
1852 {
29555e96 1853 fhNLocMaxM02Cut [0][matched]->Fill(en,nMax);
1854 fhLM1NLocMaxM02Cut[0][matched]->Fill(e1,nMax);
1855 fhLM2NLocMaxM02Cut[0][matched]->Fill(e2,nMax);
1856 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1857 {
1858 fhNLocMaxM02Cut [mcindex][matched]->Fill(en,nMax);
1859 fhLM1NLocMaxM02Cut[mcindex][matched]->Fill(e1,nMax);
1860 fhLM2NLocMaxM02Cut[mcindex][matched]->Fill(e2,nMax);
1861 }
1253480f 1862 }
1863
1864 if (nMax==1)
1865 {
1866 fhMassNLocMax1[0][matched]->Fill(en,mass );
1867 fhAsymNLocMax1[0][matched]->Fill(en,asym );
c7e9a4e9 1868 fhMassSplitENLocMax1[0][matched]->Fill(e1+e2,mass);
1253480f 1869
1870 // Effect of cuts in mass histograms
cb99fa55 1871
1872 if(!matched && asyOK && asyOn )
1873 {
1874 fhMassAsyCutNLocMax1->Fill(en,mass);
1875 fhM02AsyCutNLocMax1 ->Fill(en,l0 );
1876 }
1253480f 1877
1878 if(!matched && m02OK && m02On )
1879 {
1880 fhMassM02CutNLocMax1->Fill(en,mass);
1881 fhAsymM02CutNLocMax1->Fill(en,asym );
1882 if(splitFrac > splitFracMin && fhMassSplitECutNLocMax1) fhMassSplitECutNLocMax1->Fill(en,mass );
1883 }
1884
a6d3b0a8 1885 if(!matched && eCutOK && ensubcut > 0.1)
2c36e041 1886 {
1887 fhMassEnCutNLocMax1->Fill(en,mass );
1888 fhM02EnCutNLocMax1 ->Fill(en,l0 );
1889 fhAsymEnCutNLocMax1->Fill(en,asym );
a6d3b0a8 1890 fhSplitEFracEnCutNLocMax1->Fill(en,splitFrac );
2c36e041 1891 }
1892
a6d3b0a8 1893 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1894 {
1895 fhSplitEFractionAfterCutsNLocMax1[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1896 if(splitFrac > splitFracMin)
1897 {
1898 fhMassAfterCutsNLocMax1[0][matched]->Fill(en,mass);
1899 fhMassSplitEAfterCutsNLocMax1[0][matched]->Fill(e1+e2,mass);
1900 }
1253480f 1901 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1902 {
1903 fhMCGenFracAfterCutsNLocMax1MCPi0 ->Fill(en , efrac );
1904 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0->Fill(en , efracSplit);
1905 }
1906 }
1907 }
2c36e041 1908 else if( nMax == 2 )
1253480f 1909 {
1910 fhMassNLocMax2[0][matched]->Fill(en,mass );
1911 fhAsymNLocMax2[0][matched]->Fill(en,asym );
c7e9a4e9 1912 fhMassSplitENLocMax2[0][matched]->Fill(e1+e2,mass);
1913
1253480f 1914 // Effect of cuts in mass histograms
1915
cb99fa55 1916 if(!matched && asyOK && asyOn )
1917 {
1918 fhMassAsyCutNLocMax2->Fill(en,mass);
1919 fhM02AsyCutNLocMax2 ->Fill(en,l0 );
1920 }
1921
1253480f 1922 if(!matched && m02OK && m02On )
1923 {
1924 fhMassM02CutNLocMax2->Fill(en,mass);
1925 fhAsymM02CutNLocMax2->Fill(en,asym );
1926 if(splitFrac > splitFracMin && fhMassSplitECutNLocMax2) fhMassSplitECutNLocMax2->Fill(en,mass );
1927 }
1928
a6d3b0a8 1929 if(!matched && eCutOK && ensubcut > 0.1)
2c36e041 1930 {
1931 fhMassEnCutNLocMax2->Fill(en,mass );
1932 fhM02EnCutNLocMax2 ->Fill(en,l0 );
1933 fhAsymEnCutNLocMax2->Fill(en,asym );
a6d3b0a8 1934 fhSplitEFracEnCutNLocMax2->Fill(en,splitFrac );
2c36e041 1935 }
1936
a6d3b0a8 1937 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1938 {
1939 fhSplitEFractionAfterCutsNLocMax2[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1940 if(splitFrac > splitFracMin)
1941 {
1942 fhMassAfterCutsNLocMax2[0][matched]->Fill(en,mass);
1943 fhMassSplitEAfterCutsNLocMax2[0][matched]->Fill(e1+e2,mass);
1944 }
1253480f 1945
1946 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1947 {
1948 fhMCGenFracAfterCutsNLocMax2MCPi0 ->Fill(en , efrac );
1949 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0->Fill(en , efracSplit);
1950 }
1951 }
1952 }
2c36e041 1953 else if( nMax > 2 )
1253480f 1954 {
1955 fhMassNLocMaxN[0][matched]->Fill(en,mass);
1956 fhAsymNLocMaxN[0][matched]->Fill(en,asym);
c7e9a4e9 1957 fhMassSplitENLocMaxN[0][matched]->Fill(e1+e2,mass);
1958
1253480f 1959 // Effect of cuts in mass histograms
cb99fa55 1960
1961 if(!matched && asyOK && asyOn )
1962 {
1963 fhMassAsyCutNLocMaxN->Fill(en,mass);
1964 fhM02AsyCutNLocMaxN ->Fill(en,l0 );
1965 }
1966
1253480f 1967 if(!matched && m02OK && m02On )
1968 {
1969 fhMassM02CutNLocMaxN->Fill(en,mass);
1970 fhAsymM02CutNLocMaxN->Fill(en,asym );
1971 if(splitFrac > splitFracMin && fhMassSplitECutNLocMaxN) fhMassSplitECutNLocMaxN->Fill(en,mass );
1972 }
1973
a6d3b0a8 1974 if(!matched && eCutOK && ensubcut > 0.1 )
2c36e041 1975 {
1976 fhMassEnCutNLocMaxN->Fill(en,mass );
1977 fhM02EnCutNLocMaxN ->Fill(en,l0 );
1978 fhAsymEnCutNLocMaxN->Fill(en,asym );
a6d3b0a8 1979 fhSplitEFracEnCutNLocMaxN->Fill(en,splitFrac );
2c36e041 1980 }
1981
a6d3b0a8 1982 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1983 {
1984 fhSplitEFractionAfterCutsNLocMaxN[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1985 if(splitFrac > splitFracMin)
1986 {
1987 fhMassAfterCutsNLocMaxN[0][matched]->Fill(en,mass);
1988 fhMassSplitEAfterCutsNLocMaxN[0][matched]->Fill(e1+e2,mass);
1989 }
1253480f 1990
1991 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1992 {
1993 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->Fill(en , efrac );
1994 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0->Fill(en , efracSplit);
1995 }
1996 }
1997 }
1998
cb99fa55 1999 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2000 {
2001 if (nMax==1)
2002 {
2003 fhMassNLocMax1[mcindex][matched]->Fill(en,mass);
2004 fhAsymNLocMax1[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2005 fhMassSplitENLocMax1[mcindex][matched]->Fill(e1+e2,mass);
2006
a6d3b0a8 2007 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2008 {
2009 fhSplitEFractionAfterCutsNLocMax1[mcindex][matched]->Fill(en,splitFrac);
2010 if(splitFrac > splitFracMin)
c7e9a4e9 2011 {
1253480f 2012 fhMassAfterCutsNLocMax1[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2013 fhMassSplitEAfterCutsNLocMax1[mcindex][matched]->Fill(e1+e2,mass);
2014 }
1253480f 2015 }
2016 }
2017 else if(nMax==2)
2018 {
2019 fhMassNLocMax2[mcindex][matched]->Fill(en,mass);
2020 fhAsymNLocMax2[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2021 fhMassSplitENLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2022
a6d3b0a8 2023 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2024 {
2025 fhSplitEFractionAfterCutsNLocMax2[mcindex][matched]->Fill(en,splitFrac);
c7e9a4e9 2026 if(splitFrac > splitFracMin)
2027 {
1253480f 2028 fhMassAfterCutsNLocMax2[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2029 fhMassSplitEAfterCutsNLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2030 }
2031
1253480f 2032 }
2033 }
2034 else if(nMax >2)
2035 {
2036 fhMassNLocMaxN[mcindex][matched]->Fill(en,mass);
2037 fhAsymNLocMaxN[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2038 fhMassSplitENLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
2039
a6d3b0a8 2040 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2041 {
2042 fhSplitEFractionAfterCutsNLocMaxN[mcindex][matched]->Fill(en,splitFrac);
c7e9a4e9 2043 if(splitFrac > splitFracMin)
2044 {
1253480f 2045 fhMassAfterCutsNLocMaxN[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2046 fhMassSplitEAfterCutsNLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
2047 }
1253480f 2048 }
2049 }
2050 }//Work with MC truth
2051}
2052
2053
b94e038e 2054//_________________________________________________________________________________________________________
2055void AliAnaInsideClusterInvariantMass::FillIdPi0Histograms(Float_t en, Float_t e1, Float_t e2,
2056 Int_t nc, Int_t nMax, Float_t t12diff,
2057 Float_t mass, Float_t l0,
2058 Float_t eta, Float_t phi,
2059 Bool_t matched, Int_t mcindex)
1253480f 2060{
2061 // Fill histograms for clusters passing the pi0 selection
2062
2063 Float_t asym = -10;
2064 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2065
29555e96 2066 fhNLocMaxIdPi0 [0][matched]->Fill(en,nMax);
2067 fhLM1NLocMaxIdPi0[0][matched]->Fill(e1,nMax);
2068 fhLM2NLocMaxIdPi0[0][matched]->Fill(e2,nMax);
2069
cc909e6f 2070 fhSplitClusterEPi0NLocMax[0][matched]->Fill(e1,nMax);
2071 fhSplitClusterEPi0NLocMax[0][matched]->Fill(e2,nMax);
2072
cb99fa55 2073 if(IsDataMC() && mcindex > 0 && mcindex < 7)
cc909e6f 2074 {
2075 fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e1,nMax);
2076 fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e2,nMax);
2077 }
2078
1253480f 2079 if (nMax==1)
2080 {
2081 fhM02Pi0NLocMax1 [0][matched]->Fill(en,l0);
2082 fhMassPi0NLocMax1[0][matched]->Fill(en,mass);
2083 fhAsyPi0NLocMax1 [0][matched]->Fill(en,asym);
c7e9a4e9 2084 fhMassSplitEPi0NLocMax1[0][matched]->Fill(e1+e2,mass);
1253480f 2085 if(fFillNCellHisto) fhNCellPi0NLocMax1[0][matched]->Fill(en,nc);
2086
2087 if(!matched)
2088 {
2089 if(fFillHighMultHisto)
2090 {
2091 fhCentralityPi0NLocMax1->Fill(en,GetEventCentrality()) ;
2092 fhEventPlanePi0NLocMax1->Fill(en,GetEventPlaneAngle()) ;
2093 }
2094 if(en > fHistoECut)fhPi0EtaPhiNLocMax1->Fill(eta,phi);
2095 fhPi0EPairDiffTimeNLM1->Fill(e1+e2,t12diff);
2096 }
2097 }
2098 else if(nMax==2)
2099 {
2100 fhM02Pi0NLocMax2 [0][matched]->Fill(en,l0);
2101 fhMassPi0NLocMax2[0][matched]->Fill(en,mass);
2102 fhAsyPi0NLocMax2 [0][matched]->Fill(en,asym);
c7e9a4e9 2103 fhMassSplitEPi0NLocMax2[0][matched]->Fill(e1+e2,mass);
1253480f 2104 if(fFillNCellHisto) fhNCellPi0NLocMax2[0][matched]->Fill(en,nc);
2105
2106 if(!matched)
2107 {
2108 if(fFillHighMultHisto)
2109 {
2110 fhCentralityPi0NLocMax2->Fill(en,GetEventCentrality()) ;
2111 fhEventPlanePi0NLocMax2->Fill(en,GetEventPlaneAngle()) ;
2112 }
2113 if(en > fHistoECut)fhPi0EtaPhiNLocMax2->Fill(eta,phi);
2114 fhPi0EPairDiffTimeNLM2->Fill(e1+e2,t12diff);
2115 }
2116 }
2117 else if(nMax >2)
2118 {
2119 fhM02Pi0NLocMaxN [0][matched]->Fill(en,l0);
2120 fhMassPi0NLocMaxN[0][matched]->Fill(en,mass);
2121 fhAsyPi0NLocMaxN [0][matched]->Fill(en,asym);
c7e9a4e9 2122 fhMassSplitEPi0NLocMaxN[0][matched]->Fill(e1+e2,mass);
1253480f 2123 if(fFillNCellHisto) fhNCellPi0NLocMaxN[0][matched]->Fill(en,nc);
2124
2125 if(!matched)
2126 {
2127 if(fFillHighMultHisto)
2128 {
2129 fhCentralityPi0NLocMaxN->Fill(en,GetEventCentrality()) ;
2130 fhEventPlanePi0NLocMaxN->Fill(en,GetEventPlaneAngle()) ;
2131 }
2132 if(en > fHistoECut)fhPi0EtaPhiNLocMaxN->Fill(eta,phi);
2133 fhPi0EPairDiffTimeNLMN->Fill(e1+e2,t12diff);
2134 }
2135 }
2136
cb99fa55 2137 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2138 {
db790ee8 2139 fhNLocMaxIdPi0 [mcindex][matched]->Fill(en,nMax);
2140 fhLM1NLocMaxIdPi0[mcindex][matched]->Fill(e1,nMax);
2141 fhLM2NLocMaxIdPi0[mcindex][matched]->Fill(e2,nMax);
29555e96 2142
1253480f 2143 if (nMax==1)
2144 {
2145 fhM02Pi0NLocMax1 [mcindex][matched]->Fill(en,l0);
2146 fhMassPi0NLocMax1[mcindex][matched]->Fill(en,mass);
2147 fhAsyPi0NLocMax1 [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2148 fhMassSplitEPi0NLocMax1[mcindex][matched]->Fill(e1+e2,mass);
1253480f 2149 if(fFillNCellHisto) fhNCellPi0NLocMax1[mcindex][matched]->Fill(en,nc);
2150
2151 }
2152 else if(nMax==2)
2153 {
2154 fhM02Pi0NLocMax2 [mcindex][matched]->Fill(en,l0);
2155 fhMassPi0NLocMax2[mcindex][matched]->Fill(en,mass);
2156 fhAsyPi0NLocMax2 [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2157 fhMassSplitEPi0NLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2158 if(fFillNCellHisto) fhNCellPi0NLocMax2[mcindex][matched]->Fill(en,nc);
1253480f 2159 }
2160 else if(nMax >2)
2161 {
cc909e6f 2162 fhM02Pi0NLocMaxN [mcindex][matched]->Fill(en,l0);
1253480f 2163 fhMassPi0NLocMaxN[mcindex][matched]->Fill(en,mass);
cc909e6f 2164 fhAsyPi0NLocMaxN [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2165 fhMassSplitEPi0NLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
1253480f 2166 if(fFillNCellHisto) fhNCellPi0NLocMaxN[mcindex][matched]->Fill(en,nc);
2167 }
2168 }//Work with MC truth
2169}
2170
b94e038e 2171//______________________________________________________________________________________________________
2172void AliAnaInsideClusterInvariantMass::FillIdEtaHistograms(Float_t en, Float_t e1, Float_t e2,
2173 Int_t nc, Int_t nMax, Float_t t12diff,
2174 Float_t mass, Float_t l0,
2175 Float_t eta, Float_t phi,
2176 Bool_t matched, Int_t mcindex)
1253480f 2177{
2178 // Fill histograms for clusters passing the eta selection
2179
2180 Float_t asym = -10;
2181 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2182
2183 if (nMax==1)
2184 {
2185 fhM02EtaNLocMax1 [0][matched]->Fill(en,l0);
2186 fhMassEtaNLocMax1[0][matched]->Fill(en,mass);
2187 fhAsyEtaNLocMax1 [0][matched]->Fill(en,asym);
2188 if(fFillNCellHisto) fhNCellEtaNLocMax1[0][matched]->Fill(en,nc);
2189
2190 if(!matched)
2191 {
2192 if(fFillHighMultHisto)
2193 {
2194 fhCentralityEtaNLocMax1->Fill(en,GetEventCentrality()) ;
2195 fhEventPlaneEtaNLocMax1->Fill(en,GetEventPlaneAngle()) ;
2196 }
2197 if(en > fHistoECut)fhEtaEtaPhiNLocMax1->Fill(eta,phi);
2198 fhEtaEPairDiffTimeNLM1->Fill(e1+e2,t12diff);
2199 }
2200 }
2201 else if(nMax==2)
2202 {
2203 fhM02EtaNLocMax2 [0][matched]->Fill(en,l0);
2204 fhMassEtaNLocMax2[0][matched]->Fill(en,mass);
2205 fhAsyEtaNLocMax2 [0][matched]->Fill(en,asym);
2206 if(fFillNCellHisto) fhNCellEtaNLocMax2[0][matched]->Fill(en,nc);
2207
2208 if(!matched)
2209 {
2210 if(fFillHighMultHisto)
2211 {
2212 fhCentralityEtaNLocMax2->Fill(en,GetEventCentrality()) ;
2213 fhEventPlaneEtaNLocMax2->Fill(en,GetEventPlaneAngle()) ;
2214 }
2215 if(en > fHistoECut)fhEtaEtaPhiNLocMax2->Fill(eta,phi);
2216 fhEtaEPairDiffTimeNLM2->Fill(e1+e2,t12diff);
2217 }
2218 }
2219 else if(nMax >2)
2220 {
2221 fhM02EtaNLocMaxN [0][matched]->Fill(en,l0);
2222 fhMassEtaNLocMaxN[0][matched]->Fill(en,mass);
2223 fhAsyEtaNLocMaxN [0][matched]->Fill(en,asym);
2224 if(fFillNCellHisto) fhNCellEtaNLocMaxN[0][matched]->Fill(en,nc);
2225
2226 if(!matched)
2227 {
2228 if(fFillHighMultHisto)
2229 {
2230 fhCentralityEtaNLocMaxN->Fill(en,GetEventCentrality()) ;
2231 fhEventPlaneEtaNLocMaxN->Fill(en,GetEventPlaneAngle()) ;
2232 }
2233 if(en > fHistoECut)fhEtaEtaPhiNLocMaxN->Fill(eta,phi);
2234 fhEtaEPairDiffTimeNLMN->Fill(e1+e2,t12diff);
2235 }
2236 }
2237
cb99fa55 2238 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2239 {
2240 if (nMax==1)
2241 {
2242 fhM02EtaNLocMax1[mcindex][matched]->Fill(en,l0);
2243 fhMassEtaNLocMax1[mcindex][matched]->Fill(en,mass);
2244 fhAsyEtaNLocMax1[mcindex][matched]->Fill(en,asym);
2245 if(fFillNCellHisto) fhNCellEtaNLocMax1[mcindex][matched]->Fill(en,nc);
2246 }
2247 else if(nMax==2)
2248 {
2249 fhM02EtaNLocMax2 [mcindex][matched]->Fill(en,l0);
2250 fhMassEtaNLocMax2[mcindex][matched]->Fill(en,mass);
2251 fhAsyEtaNLocMax2 [mcindex][matched]->Fill(en,asym);
2252 if(fFillNCellHisto) fhNCellEtaNLocMax2[mcindex][matched]->Fill(en,nc);
2253
2254 }
2255 else if(nMax >2)
2256 {
c7e9a4e9 2257 fhM02EtaNLocMaxN[mcindex][matched]->Fill(en,l0);
2258 fhMassEtaNLocMaxN[mcindex][matched]->Fill(en,mass);
2259 fhAsyEtaNLocMaxN[mcindex][matched]->Fill(en,asym);
2260 if(fFillNCellHisto) fhNCellEtaNLocMaxN[mcindex][matched]->Fill(en,nc);
1253480f 2261 }
2262 }//Work with MC truth
2263}
2264
2265
b94e038e 2266//__________________________________________________________________________________________________
2267void AliAnaInsideClusterInvariantMass::FillIdConvHistograms(Float_t en, Int_t nMax, Float_t asym,
2268 Float_t mass, Float_t l0,
2269 Bool_t matched, Int_t mcindex)
1253480f 2270{
2271 // Fill histograms for clusters passing the photon selection
2272
2273 if (nMax==1)
2274 {
2275 fhM02ConNLocMax1 [0][matched]->Fill(en,l0);
2276 fhMassConNLocMax1[0][matched]->Fill(en,mass);
2277 fhAsyConNLocMax1 [0][matched]->Fill(en,asym);
2278 }
2279 else if(nMax==2)
2280 {
2281 fhM02ConNLocMax2 [0][matched]->Fill(en,l0);
2282 fhMassConNLocMax2[0][matched]->Fill(en,mass);
2283 fhAsyConNLocMax2 [0][matched]->Fill(en,asym);
2284 }
2285 else if(nMax >2)
2286 {
2287 fhM02ConNLocMaxN [0][matched]->Fill(en,l0);
2288 fhMassConNLocMaxN[0][matched]->Fill(en,mass);
2289 fhAsyConNLocMaxN [0][matched]->Fill(en,asym);
2290 }
2291
cb99fa55 2292 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2293 {
2294 if (nMax==1)
2295 {
2296 fhM02ConNLocMax1 [mcindex][matched]->Fill(en,l0);
2297 fhMassConNLocMax1[mcindex][matched]->Fill(en,mass);
2298 fhAsyConNLocMax1 [mcindex][matched]->Fill(en,asym);
2299 }
2300 else if(nMax==2)
2301 {
2302 fhM02ConNLocMax2 [mcindex][matched]->Fill(en,l0);
2303 fhMassConNLocMax2[mcindex][matched]->Fill(en,mass);
2304 fhAsyConNLocMax2 [mcindex][matched]->Fill(en,asym);
2305 }
2306 else if(nMax >2)
2307 {
2308 fhM02ConNLocMaxN [mcindex][matched]->Fill(en,l0);
2309 fhMassConNLocMaxN[mcindex][matched]->Fill(en,mass);
2310 fhAsyConNLocMaxN [mcindex][matched]->Fill(en,asym);
2311 }
2312
2313 }//Work with MC truth
2314}
2315
b94e038e 2316//_______________________________________________________________________________________________________
2317void AliAnaInsideClusterInvariantMass::FillMCHistograms(Float_t en, Float_t e1 , Float_t e2,
2318 Int_t ebin, Int_t mcindex,Int_t noverlaps,
2319 Float_t l0, Float_t mass,
2320 Int_t nMax, Bool_t matched,
2321 Float_t splitFrac, Float_t asym,
2322 Float_t eprim, Float_t asymGen)
b2e375c7 2323{
2324 // Fill histograms needing some MC input
1253480f 2325
b2e375c7 2326 Float_t efrac = eprim/en;
2327 Float_t efracSplit = 0;
2328 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
b583134f 2329 Float_t asymDiff = TMath::Abs(asym) - TMath::Abs(asymGen);
2330
b2e375c7 2331 //printf("e1 %2.2f, e2 %2.2f, eprim %2.2f, ereco %2.2f, esplit/ereco %2.2f, egen/ereco %2.2f, egen/esplit %2.2f\n",
2332 // e1,e2,eprim,en,splitFrac,efrac,efracSplit);
2333
2334 if(ebin >= 0 && fFillEbinHisto)
2335 {
2336 if( !matched ) fhMCGenFracNLocMaxEbin [mcindex][ebin]->Fill(efrac,nMax);
2337 else fhMCGenFracNLocMaxEbinMatched[mcindex][ebin]->Fill(efrac,nMax);
2338 }
2339
2340 if (nMax==1)
2341 {
2342 fhMCGenFracNLocMax1 [mcindex][matched]->Fill(en , efrac );
2343 fhMCGenSplitEFracNLocMax1[mcindex][matched]->Fill(en , efracSplit );
2344 fhMCGenEvsSplitENLocMax1 [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2345 if(asym > 0 && !matched)
2346 {
2347 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[0] ->Fill(en, asymDiff );
2348 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[0]->Fill(en, asymDiff );
2349 }
2350
4914e781 2351 if(noverlaps==0)
2352 {
2353 fhMCGenFracNLocMax1NoOverlap [mcindex][matched]->Fill(en , efrac );
2354 fhMCGenSplitEFracNLocMax1NoOverlap[mcindex][matched]->Fill(en , efracSplit );
2355 }
2356
b2e375c7 2357 if( en > fHistoECut )
2358 {
2359 fhMCGenEFracvsSplitEFracNLocMax1[mcindex][matched]->Fill(efrac,splitFrac );
2360
2361 if(!matched && ebin >= 0 && fFillEbinHisto)
2362 {
2363 fhM02MCGenFracNLocMax1Ebin [mcindex][ebin]->Fill(efrac , l0 );
2364 fhMassMCGenFracNLocMax1Ebin[mcindex][ebin]->Fill(efrac , mass );
2365
b583134f 2366 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2367 {
2368 fhMCAsymM02NLocMax1MCPi0Ebin [ebin]->Fill(l0 , asymGen );
2369 fhAsyMCGenRecoNLocMax1EbinPi0[ebin]->Fill(asym, asymGen );
2370 }
b2e375c7 2371 }
2372 }
2373 }
2374 else if(nMax==2)
2375 {
2376 fhMCGenFracNLocMax2 [mcindex][matched]->Fill(en , efrac );
2377 fhMCGenSplitEFracNLocMax2[mcindex][matched]->Fill(en , efracSplit );
2378 fhMCGenEvsSplitENLocMax2 [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2379
2380 if(asym > 0 && !matched)
2381 {
2382 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[1] ->Fill(en, asymDiff );
2383 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[1]->Fill(en, asymDiff );
2384 }
b2e375c7 2385
4914e781 2386 if(noverlaps==0)
2387 {
2388 fhMCGenFracNLocMax2NoOverlap [mcindex][matched]->Fill(en , efrac );
2389 fhMCGenSplitEFracNLocMax2NoOverlap[mcindex][matched]->Fill(en , efracSplit );
2390 }
2391
b2e375c7 2392 if( en > fHistoECut )
2393 {
2394 fhMCGenEFracvsSplitEFracNLocMax2[mcindex][matched]->Fill(efrac,splitFrac );
2395
2396 if(!matched && ebin >= 0 && fFillEbinHisto)
2397 {
2398 fhM02MCGenFracNLocMax2Ebin [mcindex][ebin]->Fill(efrac , l0 );
2399 fhMassMCGenFracNLocMax2Ebin[mcindex][ebin]->Fill(efrac , mass );
b583134f 2400 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2401 {
2402 fhMCAsymM02NLocMax2MCPi0Ebin [ebin]->Fill(l0 , asymGen );
2403 fhAsyMCGenRecoNLocMax2EbinPi0[ebin]->Fill(asym, asymGen );
2404 }
b2e375c7 2405 }
2406 }
2407
2408 }
2409 else if(nMax > 2 )
2410 {
2411 fhMCGenFracNLocMaxN [mcindex][matched]->Fill(en , efrac );
2412 fhMCGenSplitEFracNLocMaxN[mcindex][matched]->Fill(en , efracSplit );
2413 fhMCGenEvsSplitENLocMaxN [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2414 if(asym > 0 && !matched)
2415 {
2416 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[2] ->Fill(en, asymDiff );
2417 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[2]->Fill(en, asymDiff );
2418 }
2419
4914e781 2420 if(noverlaps==0)
2421 {
2422 fhMCGenFracNLocMaxNNoOverlap [mcindex][matched]->Fill(en , efrac );
2423 fhMCGenSplitEFracNLocMaxNNoOverlap[mcindex][matched]->Fill(en , efracSplit );
2424 }
2425
b2e375c7 2426 if( en > fHistoECut )
2427 {
2428 fhMCGenEFracvsSplitEFracNLocMaxN[mcindex][matched]->Fill(efrac,splitFrac );
2429
2430 if(!matched && ebin >= 0 && fFillEbinHisto)
2431 {
2432 fhM02MCGenFracNLocMaxNEbin [mcindex][ebin]->Fill(efrac , l0 );
2433 fhMassMCGenFracNLocMaxNEbin[mcindex][ebin]->Fill(efrac , mass );
2434
b583134f 2435 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2436 {
2437 fhMCAsymM02NLocMaxNMCPi0Ebin [ebin]->Fill(l0 , asymGen );
2438 fhAsyMCGenRecoNLocMaxNEbinPi0[ebin]->Fill(asym, asymGen );
2439 }
b2e375c7 2440 }
2441 }
2442 }
2443}
2444
b94e038e 2445//__________________________________________________________________________________________________________
2446void AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms(Float_t en, Float_t enprim,
2447 Int_t nc, Float_t mass, Float_t l0,
2448 Float_t asym, Float_t splitFrac,
2449 Int_t inlm, Int_t ebin, Bool_t matched,
2450 Int_t mcindex, Int_t noverlaps)
b2e375c7 2451{
b2e375c7 2452 // Fill histograms for MC Overlaps
2453
2454 //printf("en %f,mass %f,l0 %f,inlm %d,ebin %d,matched %d,mcindex %d,noverlaps %d \n",en,mass,l0,inlm,ebin,matched,mcindex,noverlaps);
1253480f 2455
b2e375c7 2456 //printf("AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms - NLM bin=%d, mcIndex %d, n Overlaps %d\n",inlm,mcindex,noverlaps);
2457
2458 if(!matched)
2459 {
2460 fhMCENOverlaps[inlm][mcindex]->Fill(en,noverlaps);
2461
2462 if (noverlaps == 0)
2463 {
74e3eb22 2464 fhMCEM02Overlap0 [inlm][mcindex]->Fill(en, l0);
2465 fhMCEMassOverlap0 [inlm][mcindex]->Fill(en, mass);
2466 fhMCEEpriOverlap0 [inlm][mcindex]->Fill(en, enprim);
2467 fhMCEAsymOverlap0 [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2468 if(fFillNCellHisto) fhMCENCellOverlap0[inlm][mcindex]->Fill(en, nc);
83351853 2469 fhMCESplitEFracOverlap0[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2470 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0[inlm][ebin]->Fill(l0,mass);
2471 }
2472 else if(noverlaps == 1)
2473 {
74e3eb22 2474 fhMCEM02Overlap1 [inlm][mcindex]->Fill(en, l0);
2475 fhMCEMassOverlap1 [inlm][mcindex]->Fill(en, mass);
2476 fhMCEEpriOverlap1 [inlm][mcindex]->Fill(en, enprim);
2477 fhMCEAsymOverlap1 [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2478 if(fFillNCellHisto) fhMCENCellOverlap1[inlm][mcindex]->Fill(en, nc);
83351853 2479 fhMCESplitEFracOverlap1[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2480 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1[inlm][ebin]->Fill(l0,mass);
2481 }
2482 else if(noverlaps > 1)
2483 {
74e3eb22 2484 fhMCEM02OverlapN [inlm][mcindex]->Fill(en, l0);
2485 fhMCEMassOverlapN [inlm][mcindex]->Fill(en, mass);
2486 fhMCEEpriOverlapN [inlm][mcindex]->Fill(en, enprim);
2487 fhMCEAsymOverlapN [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2488 if(fFillNCellHisto) fhMCENCellOverlapN[inlm][mcindex]->Fill(en, nc);
83351853 2489 fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2490 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapN[inlm][ebin]->Fill(l0,mass);
2491 }
2492 else
a6d3b0a8 2493 Info("FillMCOverlapHistograms","n overlaps = %d!!", noverlaps);
b2e375c7 2494 }
2495 else if(fFillTMHisto)
2496 {
2497 fhMCENOverlapsMatch[inlm][mcindex]->Fill(en,noverlaps);
2498
2499 if (noverlaps == 0)
2500 {
74e3eb22 2501 fhMCEM02Overlap0Match [inlm][mcindex]->Fill(en, l0);
2502 fhMCEMassOverlap0Match [inlm][mcindex]->Fill(en, mass);
2503 fhMCEEpriOverlap0Match [inlm][mcindex]->Fill(en, enprim);
2504 fhMCEAsymOverlap0Match [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2505 if(fFillNCellHisto) fhMCENCellOverlap0Match[inlm][mcindex]->Fill(en, nc);
83351853 2506 fhMCESplitEFracOverlap0Match[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2507 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0Match[inlm][ebin]->Fill(l0,mass);
2508 }
2509 else if(noverlaps == 1)
2510 {
74e3eb22 2511 fhMCEM02Overlap1Match [inlm][mcindex]->Fill(en, l0);
2512 fhMCEMassOverlap1Match [inlm][mcindex]->Fill(en, mass);
2513 fhMCEEpriOverlap1Match [inlm][mcindex]->Fill(en, enprim);
2514 fhMCEAsymOverlap1Match [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2515 if(fFillNCellHisto) fhMCENCellOverlap1Match[inlm][mcindex]->Fill(en, nc);
83351853 2516 fhMCESplitEFracOverlap1Match[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2517 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1Match[inlm][ebin]->Fill(l0,mass);
2518 }
2519 else if(noverlaps > 1)
2520 {
74e3eb22 2521 fhMCEM02OverlapNMatch [inlm][mcindex]->Fill(en, l0);
2522 fhMCEMassOverlapNMatch [inlm][mcindex]->Fill(en, mass);
2523 fhMCEEpriOverlapNMatch [inlm][mcindex]->Fill(en, enprim);
2524 fhMCEAsymOverlapNMatch [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2525 if(fFillNCellHisto) fhMCENCellOverlapNMatch[inlm][mcindex]->Fill(en, nc);
83351853 2526 fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2527 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapNMatch[inlm][ebin]->Fill(l0,mass);
2528 }
2529 else
a6d3b0a8 2530 Info("FillMCOverlapHistograms()","n overlaps in matched = %d!!", noverlaps);
b2e375c7 2531 }
2532}
2533
4914e781 2534
b94e038e 2535//_____________________________________________________________________________________________________
2536void AliAnaInsideClusterInvariantMass::FillNCellHistograms(Int_t ncells, Float_t energy, Int_t nMax,
2537 Bool_t matched, Int_t mcindex,
2538 Float_t mass , Float_t l0)
4914e781 2539
2540{
2541 // Fill optional histograms with more SS parameters
1253480f 2542
4914e781 2543 if (nMax==1)
2544 {
2545 fhNCellNLocMax1[0][matched]->Fill(energy,ncells) ;
2546 if(mcindex > 0 ) fhNCellNLocMax1[mcindex][matched]->Fill(energy,ncells) ;
2547
2548 if (mcindex==kmcPi0 && !matched)
2549 {
2550 if( energy > fHistoECut)
2551 {
2552 fhNCellMassEHighNLocMax1MCPi0->Fill(ncells,mass);
2553 fhNCellM02EHighNLocMax1MCPi0 ->Fill(ncells,l0);
2554 }
2555 else
2556 {
2557 fhNCellMassELowNLocMax1MCPi0->Fill(ncells,mass);
2558 fhNCellM02ELowNLocMax1MCPi0 ->Fill(ncells,l0);
2559 }
2560 }
2561 }
2562 else if( nMax == 2 )
2563 {
2564 fhNCellNLocMax2[0][matched]->Fill(energy,ncells) ;
2565 if(mcindex > 0 ) fhNCellNLocMax2[mcindex][matched]->Fill(energy,ncells) ;
2566
2567
2568 if (mcindex==kmcPi0 && !matched)
2569 {
2570 if( energy > fHistoECut)
2571 {
2572 fhNCellMassEHighNLocMax2MCPi0->Fill(ncells,mass);
2573 fhNCellM02EHighNLocMax2MCPi0 ->Fill(ncells,l0);
2574 }
2575 else
2576 {
2577 fhNCellMassELowNLocMax2MCPi0->Fill(ncells,mass);
2578 fhNCellM02ELowNLocMax2MCPi0 ->Fill(ncells,l0);
2579 }
2580 }
2581 }
2582 else if( nMax >= 3 )
2583 {
2584 fhNCellNLocMaxN[0][matched]->Fill(energy,ncells) ;
2585 if(mcindex > 0 ) fhNCellNLocMaxN[mcindex][matched]->Fill(energy,ncells) ;
2586
2587 if (mcindex==kmcPi0 && !matched)
2588 {
2589 if( energy > fHistoECut)
2590 {
2591 fhNCellMassEHighNLocMaxNMCPi0->Fill(ncells,mass);
2592 fhNCellM02EHighNLocMaxNMCPi0 ->Fill(ncells,l0);
2593 }
2594 else
2595 {
2596 fhNCellMassELowNLocMaxNMCPi0->Fill(ncells,mass);
2597 fhNCellM02ELowNLocMaxNMCPi0 ->Fill(ncells,l0);
2598 }
2599 }
2600 }
2601}
2602
ff6aa4ce 2603//______________________________________________________________________________________________________
2604void AliAnaInsideClusterInvariantMass::FillNLMDiffCutHistograms(AliVCluster *clus, AliVCaloCells* cells, Bool_t matched)
2605{
58a18c5d 2606 // Calculate NLM for different settings
ff6aa4ce 2607
2608 Float_t energy = clus->E();
2609 Float_t m02 = clus->GetM02();
2610
2611 Float_t minEOrg = GetCaloUtils()->GetLocalMaximaCutE() ;
2612 Float_t minEDiffOrg = GetCaloUtils()->GetLocalMaximaCutEDiff();
2613
58a18c5d 2614 Int_t nlm = 0;
2615 Double_t mass = 0., angle = 0.;
2616 TLorentzVector lv1, lv2;
2617 Int_t absId1 =-1; Int_t absId2 =-1;
2618 Float_t distbad1 =-1; Float_t distbad2 =-1;
2619 Bool_t fidcut1 = 0; Bool_t fidcut2 = 0;
2620 Int_t pidTag = -1;
2621
ff6aa4ce 2622 //printf("E %f, m02 %f; Org: minE %f, minDiffE %f\n",energy, m02, minEOrg,minEDiffOrg);
2623 for(Int_t iE = 0; iE < fNLMSettingN; iE++)
2624 {
2625 for(Int_t iDiff = 0; iDiff < fNLMSettingN; iDiff++)
2626 {
2627 GetCaloUtils()->SetLocalMaximaCutE (fNLMMinE [iE] );
2628 GetCaloUtils()->SetLocalMaximaCutEDiff(fNLMMinDiff[iDiff]);
58a18c5d 2629
2630 //nlm = GetCaloUtils()->GetNumberOfLocalMaxima(clus, cells) ;
2631
2632 //printf("\t Change: i %d minE %f, j %d minDiffE %f - NLM = %d\n",iE, fNLMMinE[iE], iDiff, fNLMMinDiff[iDiff],nlm);
2633
2634 pidTag = GetCaloPID()->GetIdentifiedParticleTypeFromClusterSplitting(clus,cells,GetCaloUtils(),
2635 GetVertex(0), nlm, mass, angle,
2636 lv1,lv2,absId1,absId2,
2637 distbad1,distbad2,fidcut1,fidcut2);
2638 if (nlm <= 0)
2639 {
2640 if(GetDebug() > 0 )
2641 Info("MakeAnalysisFillHistograms","No local maximum found! It did not pass CaloPID selection criteria \n");
2642
2643 continue;
2644 }
2645
ff6aa4ce 2646 Int_t inlm = nlm-1;
2647 if(inlm>2) inlm = 2;
ff6aa4ce 2648
58a18c5d 2649 fhNLocMaxDiffCut [iE][iDiff] [matched]->Fill(energy,nlm);
2650 fhM02NLocMaxDiffCut [iE][iDiff][inlm][matched]->Fill(energy,m02);
2651 fhMassNLocMaxDiffCut[iE][iDiff][inlm][matched]->Fill(energy,mass);
ff6aa4ce 2652
58a18c5d 2653 if(pidTag==AliCaloPID::kPi0)
2654 {
2655 fhNLocMaxDiffCutPi0 [iE][iDiff] [matched]->Fill(energy,nlm);
2656 fhM02NLocMaxDiffCutPi0 [iE][iDiff][inlm][matched]->Fill(energy,m02);
2657 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][matched]->Fill(energy,mass);
2658 }
2659
ff6aa4ce 2660 }
2661 }
2662
2663 GetCaloUtils()->SetLocalMaximaCutE (minEOrg );
2664 GetCaloUtils()->SetLocalMaximaCutEDiff(minEDiffOrg);
2665
2666}
2667
2668
b94e038e 2669//_____________________________________________________________________________________________
2670void AliAnaInsideClusterInvariantMass::FillSSExtraHistograms(AliVCluster *cluster, Int_t nMax,
2671 Bool_t matched, Int_t mcindex,
2672 Float_t mass , Int_t ebin)
b2e375c7 2673{
2674 // Fill optional histograms with more SS parameters
1253480f 2675
b2e375c7 2676 Float_t en = cluster->E();
b2e375c7 2677
2678 // Get more Shower Shape parameters
2679 Float_t ll0 = 0., ll1 = 0.;
2680 Float_t disp= 0., dispEta = 0., dispPhi = 0.;
2681 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2682
2683 GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
2684 ll0, ll1, disp, dispEta, dispPhi, sEta, sPhi, sEtaPhi);
2685
2686 Float_t dispAsy = -1;
2687 if(dispEta+dispPhi >0 ) dispAsy = (dispPhi-dispEta) / (dispPhi+dispEta);
b2e375c7 2688
2689 if (nMax==1)
2690 {
b2e375c7 2691 if( en > fHistoECut )
2692 {
2693 fhMassDispEtaNLocMax1[0][matched]->Fill(dispEta, mass );
2694 fhMassDispPhiNLocMax1[0][matched]->Fill(dispPhi, mass );
2695 fhMassDispAsyNLocMax1[0][matched]->Fill(dispAsy, mass );
2696
cb99fa55 2697 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2698 {
2699 fhMassDispEtaNLocMax1[mcindex][matched]->Fill(dispEta, mass );
2700 fhMassDispPhiNLocMax1[mcindex][matched]->Fill(dispPhi, mass );
2701 fhMassDispAsyNLocMax1[mcindex][matched]->Fill(dispAsy, mass );
2702 }
2703 }
2704
2705 if(!matched && ebin >= 0 && fFillEbinHisto)
2706 {
2707 fhMassDispEtaNLocMax1Ebin[ebin]->Fill(dispEta, mass );
2708 fhMassDispPhiNLocMax1Ebin[ebin]->Fill(dispPhi, mass );
2709 fhMassDispAsyNLocMax1Ebin[ebin]->Fill(dispAsy, mass );
2710 }
2711 }
2712 else if( nMax == 2 )
2713 {
b2e375c7 2714 if( en > fHistoECut )
2715 {
2716 fhMassDispEtaNLocMax2[0][matched]->Fill(dispEta, mass );
2717 fhMassDispPhiNLocMax2[0][matched]->Fill(dispPhi, mass );
2718 fhMassDispAsyNLocMax2[0][matched]->Fill(dispAsy, mass );
2719
cb99fa55 2720 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2721 {
2722 fhMassDispEtaNLocMax2[mcindex][matched]->Fill(dispEta, mass );
2723 fhMassDispPhiNLocMax2[mcindex][matched]->Fill(dispPhi, mass );
2724 fhMassDispAsyNLocMax2[mcindex][matched]->Fill(dispAsy, mass );
2725 }
2726 }
2727
2728 if(!matched && ebin >= 0 && fFillEbinHisto)
2729 {
2730 fhMassDispEtaNLocMax2Ebin[ebin]->Fill(dispEta, mass );
2731 fhMassDispPhiNLocMax2Ebin[ebin]->Fill(dispPhi, mass );
2732 fhMassDispAsyNLocMax2Ebin[ebin]->Fill(dispAsy, mass );
2733 }
2734
2735 }
2736 else if( nMax >= 3 )
2737 {
b2e375c7 2738 if( en > fHistoECut )
2739 {
2740 fhMassDispEtaNLocMaxN[0][matched]->Fill(dispEta, mass );
2741 fhMassDispPhiNLocMaxN[0][matched]->Fill(dispPhi, mass );
2742 fhMassDispAsyNLocMaxN[0][matched]->Fill(dispAsy, mass );
2743
cb99fa55 2744 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2745 {
2746 fhMassDispEtaNLocMaxN[mcindex][matched]->Fill(dispEta, mass );
2747 fhMassDispPhiNLocMaxN[mcindex][matched]->Fill(dispPhi, mass );
2748 fhMassDispAsyNLocMaxN[mcindex][matched]->Fill(dispAsy, mass );
2749 }
2750 }
2751
2752 if(!matched && ebin >= 0 && fFillEbinHisto)
2753 {
2754 fhMassDispEtaNLocMaxNEbin[ebin]->Fill(dispEta, mass );
2755 fhMassDispPhiNLocMaxNEbin[ebin]->Fill(dispPhi, mass );
2756 fhMassDispAsyNLocMaxNEbin[ebin]->Fill(dispAsy, mass );
2757 }
2758
2759 }
2760
2761}
2762
b94e038e 2763//__________________________________________________________________________________________
2764void AliAnaInsideClusterInvariantMass::FillSSWeightHistograms(AliVCluster *clus, Int_t nlm,
2765 Int_t absId1, Int_t absId2)
dbe09c26 2766{
2767 // Calculate weights and fill histograms
1253480f 2768
dbe09c26 2769 AliVCaloCells* cells = 0;
2770 if(fCalorimeter == "EMCAL") cells = GetEMCALCells();
2771 else cells = GetPHOSCells();
2772
2773 // First recalculate energy in case non linearity was applied
09a5b22d 2774 Float_t energy = GetCaloUtils()->RecalibrateClusterEnergy(clus, cells);// recalculate cluster energy, avoid non lin correction.
2775
2776 Float_t simuTotWeight = 0;
2777 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
dbe09c26 2778 {
09a5b22d 2779 simuTotWeight = GetCaloUtils()->RecalibrateClusterEnergyWeightCell(clus, cells,energy);
2780 simuTotWeight/= energy;
2781 }
dbe09c26 2782
2783 if(energy <=0 )
2784 {
a6d3b0a8 2785 Info("WeightHistograms()","Wrong calculated energy %f\n",energy);
dbe09c26 2786 return;
2787 }
2788
19391b8c 2789 //Get amplitude of main local maxima, recalibrate if needed
2790 Float_t amp1 = cells->GetCellAmplitude(absId1);
2791 GetCaloUtils()->RecalibrateCellAmplitude(amp1,fCalorimeter, absId1);
2792 Float_t amp2 = cells->GetCellAmplitude(absId2);
2793 GetCaloUtils()->RecalibrateCellAmplitude(amp2,fCalorimeter, absId2);
2794
a6d3b0a8 2795 if(amp1 < amp2) Info("FillSSWeightHistograms","Bad local maxima E ordering : id1 E %f, id2 E %f\n ",amp1,amp2);
2796 if(amp1==0 || amp2==0) Info("FillSSWeightHistograms","Null E local maxima : id1 E %f, id2 E %f\n " ,amp1,amp2);
19391b8c 2797
09a5b22d 2798 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
2799 {
2800 amp1*=GetCaloUtils()->GetMCECellClusFracCorrection(amp1,energy)/simuTotWeight;
2801 amp2*=GetCaloUtils()->GetMCECellClusFracCorrection(amp2,energy)/simuTotWeight;
2802 }
2803
19391b8c 2804 if(amp1>0)fhPi0CellEMaxEMax2Frac [nlm]->Fill(energy,amp2/amp1);
2805 fhPi0CellEMaxClusterFrac [nlm]->Fill(energy,amp1/energy);
2806 fhPi0CellEMax2ClusterFrac[nlm]->Fill(energy,amp2/energy);
2807
dbe09c26 2808 //Get the ratio and log ratio to all cells in cluster
2809 for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
2810 {
2811 Int_t id = clus->GetCellsAbsId()[ipos];
2812
2813 //Recalibrate cell energy if needed
2814 Float_t amp = cells->GetCellAmplitude(id);
2815 GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id);
09a5b22d 2816 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
2817 {
2818 //printf("eCell a) %f",amp);
2819 amp*=GetCaloUtils()->GetMCECellClusFracCorrection(amp,energy)/simuTotWeight;
2820 //printf(", b)%f\n",amp);
2821 }
dbe09c26 2822
19391b8c 2823 if(amp > 0)fhPi0CellE [nlm]->Fill(energy,amp);
dbe09c26 2824 fhPi0CellEFrac [nlm]->Fill(energy,amp/energy);
2825 fhPi0CellLogEFrac[nlm]->Fill(energy,TMath::Log(amp/energy));
19391b8c 2826
2827 if (id!=absId1 && id!=absId2)
2828 {
2829 if(amp1>0)fhPi0CellEMaxFrac [nlm]->Fill(energy,amp/amp1);
2830 if(amp2>0)fhPi0CellEMax2Frac[nlm]->Fill(energy,amp/amp2);
2831 }
2832
dbe09c26 2833 }
09a5b22d 2834
dbe09c26 2835 //Recalculate shower shape for different W0
2836 if(fCalorimeter=="EMCAL")
2837 {
2838 Float_t l0org = clus->GetM02();
2839 Float_t l1org = clus->GetM20();
2840 Float_t dorg = clus->GetDispersion();
19391b8c 2841 Float_t w0org = GetCaloUtils()->GetEMCALRecoUtils()->GetW0();
dbe09c26 2842
5cd814a9 2843 //printf("E cl %2.3f, E recal %2.3f, nlm %d, Org w0 %2.3f, org l0 %2.3f\n",clus->E(), energy,nlm, w0org,l0org);
2844
dbe09c26 2845 for(Int_t iw = 0; iw < fSSWeightN; iw++)
2846 {
2847 GetCaloUtils()->GetEMCALRecoUtils()->SetW0(fSSWeight[iw]);
8edbd100 2848 //GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), cells, clus);
5cd814a9 2849 //fhM02WeightPi0[nlm][iw]->Fill(energy,clus->GetM02());
2850
8edbd100 2851 Float_t l0 = 0., l1 = 0.;
2852 Float_t disp = 0., dEta = 0., dPhi = 0.;
2853 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2854
2855 RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp,
5cd814a9 2856 dEta, dPhi, sEta, sPhi, sEtaPhi,fSSECellCut[0]);
2857 //Make sure that for pp fSSECellCut[0]=0.05 and for PbPb fSSECellCut[0]=0.15
8edbd100 2858
dbe09c26 2859
5cd814a9 2860 fhM02WeightPi0[nlm][iw]->Fill(energy,l0);
2861
2862 //printf("\t w0 %2.3f, l0 %2.3f\n",GetCaloUtils()->GetEMCALRecoUtils()->GetW0(),l0);
dbe09c26 2863
2864 } // w0 loop
2865
2866 // Set the original values back
2867 clus->SetM02(l0org);
2868 clus->SetM20(l1org);
2869 clus->SetDispersion(dorg);
19391b8c 2870 GetCaloUtils()->GetEMCALRecoUtils()->SetW0(w0org);
2871
2872 for(Int_t iec = 0; iec < fSSECellCutN; iec++)
2873 {
2874 Float_t l0 = 0., l1 = 0.;
2875 Float_t disp = 0., dEta = 0., dPhi = 0.;
2876 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
19391b8c 2877
3ae72bd8 2878 RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp,
2879 dEta, dPhi, sEta, sPhi, sEtaPhi,fSSECellCut[iec]);
2880
19391b8c 2881 fhM02ECellCutPi0[nlm][iec]->Fill(energy,l0);
2882
5cd814a9 2883 //printf("\t min E cell %2.3f, l0 %2.3f\n",fSSECellCut[iec], l0);
2884
19391b8c 2885 } // w0 loop
3ae72bd8 2886
dbe09c26 2887 }// EMCAL
2888}
2889
b94e038e 2890//____________________________________________________________________________________________
2891void AliAnaInsideClusterInvariantMass::FillTrackMatchingHistograms(AliVCluster * cluster,
2892 Int_t nMax, Int_t mcindex)
b2e375c7 2893{
2894 // Fill histograms related to track matching
1253480f 2895
b2e375c7 2896 Float_t dZ = cluster->GetTrackDz();
2897 Float_t dR = cluster->GetTrackDx();
2898 Float_t en = cluster->E();
2899
2900 if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn())
2901 {
2902 dR = 2000., dZ = 2000.;
2903 GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR);
2904 }
2905
2906 //printf("Pi0EbE: dPhi %f, dEta %f\n",dR,dZ);
2907
2908 if(TMath::Abs(dR) < 999)
2909 {
2910 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[0]->Fill(en,dR); }
2911 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[0]->Fill(en,dR); }
2912 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[0]->Fill(en,dR); }
2913
cb99fa55 2914 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2915 {
2916 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[mcindex]->Fill(en,dR); }
2917 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[mcindex]->Fill(en,dR); }
2918 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[mcindex]->Fill(en,dR); }
2919 }
2920
2921 AliVTrack *track = GetCaloUtils()->GetMatchedTrack(cluster, GetReader()->GetInputEvent());
2922
2923 Bool_t positive = kFALSE;
2924 if(track) positive = (track->Charge()>0);
2925
2926 if(track)
2927 {
2928 if(positive)
2929 {
2930 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[0]->Fill(en,dR); }
2931 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[0]->Fill(en,dR); }
2932 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[0]->Fill(en,dR); }
2933
cb99fa55 2934 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2935 {
2936 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[mcindex]->Fill(en,dR); }
2937 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[mcindex]->Fill(en,dR); }
2938 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[mcindex]->Fill(en,dR); }
2939 }
2940 }
2941 else
2942 {
2943 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[0]->Fill(en,dR); }
2944 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[0]->Fill(en,dR); }
2945 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[0]->Fill(en,dR); }
2946
cb99fa55 2947 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2948 {
2949 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[mcindex]->Fill(en,dR); }
2950 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[mcindex]->Fill(en,dR); }
2951 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[mcindex]->Fill(en,dR); }
2952 }
2953 }
2954
2955 }// track exists
2956
2957 }
2958}
dbe09c26 2959
992b14a7 2960//_______________________________________________________________
2961TObjString * AliAnaInsideClusterInvariantMass::GetAnalysisCuts()
2962{
2963 //Save parameters used for analysis
2964 TString parList ; //this will be list of parameters used for this analysis.
b94e038e 2965 Int_t buffersize = 255;
992b14a7 2966 char onePar[buffersize] ;
2967
2968 snprintf(onePar,buffersize,"--- AliAnaInsideClusterInvariantMass ---\n") ;
2969 parList+=onePar ;
2970
243c2909 2971 snprintf(onePar,buffersize,"Calorimeter: %s\n", fCalorimeter.Data()) ;
992b14a7 2972 parList+=onePar ;
c8710850 2973 snprintf(onePar,buffersize,"fNLocMaxCutE =%2.2f \n", GetCaloUtils()->GetLocalMaximaCutE()) ;
29ca9cad 2974 parList+=onePar ;
c8710850 2975 snprintf(onePar,buffersize,"fNLocMaxCutEDiff =%2.2f \n",GetCaloUtils()->GetLocalMaximaCutEDiff()) ;
29ca9cad 2976 parList+=onePar ;
e23a0471 2977 snprintf(onePar,buffersize,"fMinNCells =%d \n", fMinNCells) ;
2cb134fb 2978 parList+=onePar ;
3c1d9afb 2979 snprintf(onePar,buffersize,"fMinBadDist =%1.1f \n", fMinBadDist) ;
992b14a7 2980 parList+=onePar ;
19391b8c 2981 if(fFillSSWeightHisto)
2982 {
2983 snprintf(onePar,buffersize," N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN);
2984 parList+=onePar ;
2985 }
2986
992b14a7 2987 return new TObjString(parList) ;
2988
2989}
2990
992b14a7 2991//________________________________________________________________
2992TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
1253480f 2993{
992b14a7 2994 // Create histograms to be saved in output file and
2995 // store them in outputContainer
2996 TList * outputContainer = new TList() ;
667432ef 2997 outputContainer->SetName("InsideClusterHistos") ;
992b14a7 2998
745913ae 2999 Int_t nptbins = GetHistogramRanges()->GetHistoPtBins(); Float_t ptmax = GetHistogramRanges()->GetHistoPtMax(); Float_t ptmin = GetHistogramRanges()->GetHistoPtMin();
3000 Int_t ssbins = GetHistogramRanges()->GetHistoShowerShapeBins(); Float_t ssmax = GetHistogramRanges()->GetHistoShowerShapeMax(); Float_t ssmin = GetHistogramRanges()->GetHistoShowerShapeMin();
3001 Int_t mbins = GetHistogramRanges()->GetHistoMassBins(); Float_t mmax = GetHistogramRanges()->GetHistoMassMax(); Float_t mmin = GetHistogramRanges()->GetHistoMassMin();
3002 Int_t ncbins = GetHistogramRanges()->GetHistoNClusterCellBins(); Int_t ncmax = GetHistogramRanges()->GetHistoNClusterCellMax(); Int_t ncmin = GetHistogramRanges()->GetHistoNClusterCellMin();
9554fc65 3003 Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins(); Float_t phimax = GetHistogramRanges()->GetHistoPhiMax(); Float_t phimin = GetHistogramRanges()->GetHistoPhiMin();
3004 Int_t netabins = GetHistogramRanges()->GetHistoEtaBins(); Float_t etamax = GetHistogramRanges()->GetHistoEtaMax(); Float_t etamin = GetHistogramRanges()->GetHistoEtaMin();
1253480f 3005
5c46c992 3006 Int_t nresetabins = GetHistogramRanges()->GetHistoTrackResidualEtaBins();
3007 Float_t resetamax = GetHistogramRanges()->GetHistoTrackResidualEtaMax();
3008 Float_t resetamin = GetHistogramRanges()->GetHistoTrackResidualEtaMin();
3009 Int_t nresphibins = GetHistogramRanges()->GetHistoTrackResidualPhiBins();
3010 Float_t resphimax = GetHistogramRanges()->GetHistoTrackResidualPhiMax();
3011 Float_t resphimin = GetHistogramRanges()->GetHistoTrackResidualPhiMin();
3012
1253480f 3013 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
3014 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
3015 Bool_t splitOn = kFALSE;
3016 if(GetCaloPID()->GetSplitEnergyFractionMinimum(0) > 0 ||
3017 GetCaloPID()->GetSplitEnergyFractionMinimum(1) > 0 ||
3018 GetCaloPID()->GetSplitEnergyFractionMinimum(2) > 0) splitOn = kTRUE;
3019
cb99fa55 3020 TString ptype[] ={"","#gamma","#gamma->e^{#pm}","#pi^{0}","#pi^{0} (#gamma->e^{#pm})","#eta", "hadron"};
3021 TString pname[] ={"","Photon","Conversion", "Pi0", "Pi0Conv", "Eta","Hadron"};
ce49dd72 3022 TString snlm [] = {"1","2","N"};
3023
25330263 3024 TString sEBin[] = {"8 < #it{E} < 12 GeV","12 < #it{E} < 16 GeV", "16 < #it{E} < 20 GeV", "#it{E} > 20 GeV" };
be894c1d 3025
992b14a7 3026 Int_t n = 1;
3027
cb99fa55 3028 if(IsDataMC()) n = 7;
992b14a7 3029
243c2909 3030 Int_t nMaxBins = 10;
3031
5c46c992 3032 TString sMatched[] = {"","Matched"};
3033
8edbd100 3034 Int_t nMatched = 2;
3035 if(!fFillTMHisto) nMatched = 1;
aa12888f 3036
58a18c5d 3037
3038 if(fFillNLMDiffCutHisto)
3039 {
3040 for(Int_t imatch = 0; imatch < nMatched; imatch++)
3041 {
3042 for(Int_t iE = 0; iE < fNLMSettingN; iE++)
3043 {
3044 for(Int_t iDiff = 0; iDiff < fNLMSettingN; iDiff++)
3045 {
3046 fhNLocMaxDiffCut[iE][iDiff][imatch] = new TH2F(Form("hNLocMax_MinE%d_MinDiffE%d%s",iE, iDiff, sMatched[imatch].Data()),
25330263 3047 Form("NLM for #it{E}_{LM}>%1.2f, #Delta E=%1.2F %s", fNLMMinE[iE], fNLMMinDiff[iDiff],sMatched[imatch].Data()),
58a18c5d 3048 nptbins,ptmin,ptmax, nMaxBins,0,nMaxBins);
25330263 3049 fhNLocMaxDiffCut[iE][iDiff][imatch]->SetYTitle("#it{NLM}");
3050 fhNLocMaxDiffCut[iE][iDiff][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3051 outputContainer->Add(fhNLocMaxDiffCut[iE][iDiff][imatch]) ;
3052
3053 fhNLocMaxDiffCutPi0[iE][iDiff][imatch] = new TH2F(Form("hNLocMaxPi0_MinE%d_MinDiffE%d%s",iE, iDiff, sMatched[imatch].Data()),
25330263 3054 Form("#pi^{0} NLM for #it{E}_{LM}>%1.2f, #Delta E=%1.2F %s",
58a18c5d 3055 fNLMMinE[iE], fNLMMinDiff[iDiff],sMatched[imatch].Data()),
3056 nptbins,ptmin,ptmax, nMaxBins,0,nMaxBins);
25330263 3057 fhNLocMaxDiffCutPi0[iE][iDiff][imatch]->SetYTitle("#it{NLM}");
3058 fhNLocMaxDiffCutPi0[iE][iDiff][imatch]->SetXTitle("#it{E}_{#pi^{0}}");
58a18c5d 3059 outputContainer->Add(fhNLocMaxDiffCutPi0[iE][iDiff][imatch]) ;
3060
3061 for(Int_t inlm = 0; inlm < 3; inlm++)
3062 {
3063
3064 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxM02_MinE%d_MinDiffE%d_NLM%s%s",
3065 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3066 Form("#lambda^{2}_{0} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3067 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3068 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3069 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetYTitle("#lambda^{2}_{0}");
25330263 3070 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3071 outputContainer->Add(fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch]) ;
3072
3073 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxMass_MinE%d_MinDiffE%d_NLM%s%s",
3074 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3075 Form("#it{M}_{split} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3076 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3077 nptbins,ptmin,ptmax, mbins,mmin,mmax);
25330263 3078 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetYTitle("#it{M}_{split}");
3079 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3080 outputContainer->Add(fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch]) ;
3081
3082 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxPi0M02_MinE%d_MinDiffE%d_NLM%s%s",
3083 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3084 Form("#pi^{0} #lambda^{2}_{0} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3085 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3086 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3087 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetYTitle("#lambda^{2}_{0}");
25330263 3088 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3089 outputContainer->Add(fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]) ;
3090
3091 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxPi0Mass_MinE%d_MinDiffE%d_NLM%s%s",
3092 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3093 Form("#pi^{0} #it{M}_{split} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3094 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3095 nptbins,ptmin,ptmax, mbins,mmin,mmax);
25330263 3096 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetYTitle("#it{M}_{split}");
3097 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3098 outputContainer->Add(fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]) ;
3099
3100 }
3101
3102 }
3103 }
3104 }
3105 return outputContainer;
3106 }
3107
ce49dd72 3108 if(fCheckSplitDistToBad)
3109 {
3110 for(Int_t inlm = 0; inlm < 3; inlm++)
3111 {
3112 fhMassBadDistClose[inlm] = new TH2F(Form("hMassBadDistCloseNLocMax%s",snlm[inlm].Data()),
25330263 3113 Form("Invariant mass of splitted cluster with #it{NLM}=%d vs E, 2nd LM close to bad channel",inlm),
ce49dd72 3114 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3115 fhMassBadDistClose[inlm]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3116 fhMassBadDistClose[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3117 outputContainer->Add(fhMassBadDistClose[inlm]) ;
3118
3119 fhM02BadDistClose[inlm] = new TH2F(Form("hM02BadDistCloseNLocMax%s",snlm[inlm].Data()),
25330263 3120 Form("#lambda_{0}^{2} for cluster with #it{NLM}=%d vs E, 2nd LM close to bad channel",inlm),
ce49dd72 3121 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3122 fhM02BadDistClose[inlm]->SetYTitle("#lambda_{0}^{2}");
25330263 3123 fhM02BadDistClose[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3124 outputContainer->Add(fhM02BadDistClose[inlm]) ;
3125
3126 fhMassOnBorder[inlm] = new TH2F(Form("hMassOnBorderNLocMax%s",snlm[inlm].Data()),
25330263 3127 Form("Invariant mass of splitted cluster with #it{NLM}=%d vs E, 2nd LM close to border",inlm),
ce49dd72 3128 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3129 fhMassOnBorder[inlm]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3130 fhMassOnBorder[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3131 outputContainer->Add(fhMassOnBorder[inlm]) ;
3132
3133 fhM02OnBorder[inlm] = new TH2F(Form("hM02OnBorderNLocMax%s",snlm[inlm].Data()),
25330263 3134 Form("#lambda_{0}^{2} for cluster with #it{NLM}=%d vs E, 2nd LM close to border",inlm),
ce49dd72 3135 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3136 fhM02OnBorder[inlm]->SetYTitle("#lambda_{0}^{2}");
25330263 3137 fhM02OnBorder[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3138 outputContainer->Add(fhM02OnBorder[inlm]) ;
3139
3140 }
3141 }
3142
5c46c992 3143 for(Int_t i = 0; i < n; i++)
667432ef 3144 {
8edbd100 3145 for(Int_t j = 0; j < nMatched; j++)
667432ef 3146 {
5c46c992 3147
ce49dd72 3148 fhNLocMax[i][j] = new TH2F(Form("hNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3149 Form("Number of local maxima in cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
3150 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3151 fhNLocMax[i][j] ->SetYTitle("#it{N} maxima");
3152 fhNLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3153 outputContainer->Add(fhNLocMax[i][j]) ;
29555e96 3154
3155 fhLM1NLocMax[i][j] = new TH2F(Form("hLM1NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3156 Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3157 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3158 fhLM1NLocMax[i][j] ->SetYTitle("#it{N} maxima");
3159 fhLM1NLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3160 outputContainer->Add(fhLM1NLocMax[i][j]) ;
3161
3162 fhLM2NLocMax[i][j] = new TH2F(Form("hLM2NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3163 Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3164 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3165 fhLM2NLocMax[i][j] ->SetYTitle("#it{N} maxima");
3166 fhLM2NLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3167 outputContainer->Add(fhLM2NLocMax[i][j]) ;
3168
3169 if(m02On)
3170 {
3171 fhNLocMaxM02Cut[i][j] = new TH2F(Form("hNLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3172 Form("Number of local maxima in cluster %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3173 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3174 fhNLocMaxM02Cut[i][j]->SetYTitle("#it{N} maxima");
3175 fhNLocMaxM02Cut[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 3176 outputContainer->Add(fhNLocMaxM02Cut[i][j]) ;
3177
3178 fhLM1NLocMaxM02Cut[i][j] = new TH2F(Form("hLM1NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3179 Form("Number of local maxima in cluster for split cluster 1 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3180 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3181 fhLM1NLocMaxM02Cut[i][j] ->SetYTitle("#it{N} maxima");
3182 fhLM1NLocMaxM02Cut[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3183 outputContainer->Add(fhLM1NLocMaxM02Cut[i][j]) ;
3184
3185 fhLM2NLocMaxM02Cut[i][j] = new TH2F(Form("hLM2NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3186 Form("Number of local maxima in cluster for split cluster 2 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3187 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3188 fhLM2NLocMaxM02Cut[i][j] ->SetYTitle("#it{N} maxima");
3189 fhLM2NLocMaxM02Cut[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3190 outputContainer->Add(fhLM2NLocMaxM02Cut[i][j]) ;
3191
3192 }
3193
3194
3195 fhNLocMaxIdPi0[i][j] = new TH2F(Form("hNLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3196 Form("Number of local maxima in pi0 ID cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
3197 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3198 fhNLocMaxIdPi0[i][j] ->SetYTitle("#it{N} maxima");
3199 fhNLocMaxIdPi0[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3200 outputContainer->Add(fhNLocMaxIdPi0[i][j]) ;
3201
3202
3203 fhLM1NLocMaxIdPi0[i][j] = new TH2F(Form("hLM1NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3204 Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3205 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3206 fhLM1NLocMaxIdPi0[i][j] ->SetYTitle("#it{N} maxima");
3207 fhLM1NLocMaxIdPi0[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3208 outputContainer->Add(fhLM1NLocMaxIdPi0[i][j]) ;
3209
3210 fhLM2NLocMaxIdPi0[i][j] = new TH2F(Form("hLM2NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3211 Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3212 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3213 fhLM2NLocMaxIdPi0[i][j] ->SetYTitle("#it{N} maxima");
3214 fhLM2NLocMaxIdPi0[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3215 outputContainer->Add(fhLM2NLocMaxIdPi0[i][j]) ;
3216
3217
3218
ce49dd72 3219
3220 fhSplitClusterENLocMax[i][j] = new TH2F(Form("hSplitEClusterNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3221 Form("Number of local maxima vs E of split clusters %s %s",ptype[i].Data(),sMatched[j].Data()),
3222 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3223 fhSplitClusterENLocMax[i][j] ->SetYTitle("#it{N} maxima");
3224 fhSplitClusterENLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3225 outputContainer->Add(fhSplitClusterENLocMax[i][j]) ;
3226
3227
3228 fhSplitClusterEPi0NLocMax[i][j] = new TH2F(Form("hSplitEClusterPi0NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3229 Form("Number of local maxima vs E of split clusters, id as pi0, %s %s",ptype[i].Data(),sMatched[j].Data()),
3230 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3231 fhSplitClusterEPi0NLocMax[i][j] ->SetYTitle("#it{N} maxima");
3232 fhSplitClusterEPi0NLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3233 outputContainer->Add(fhSplitClusterEPi0NLocMax[i][j]) ;
3234
3235 if(fFillNCellHisto)
3236 {
3237 fhNCellNLocMax1[i][j] = new TH2F(Form("hNCellNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3238 Form("n cells vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3239 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3240 fhNCellNLocMax1[i][j] ->SetYTitle("#it{N} cells");
3241 fhNCellNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3242 outputContainer->Add(fhNCellNLocMax1[i][j]) ;
3243
3244 fhNCellNLocMax2[i][j] = new TH2F(Form("hNCellNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3245 Form("n cells vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3246 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3247 fhNCellNLocMax2[i][j] ->SetYTitle("#it{N} cells");
3248 fhNCellNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3249 outputContainer->Add(fhNCellNLocMax2[i][j]) ;
3250
3251
3252 fhNCellNLocMaxN[i][j] = new TH2F(Form("hNCellNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3253 Form("n cells vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3254 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3255 fhNCellNLocMaxN[i][j] ->SetYTitle("#it{N} cells");
3256 fhNCellNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3257 outputContainer->Add(fhNCellNLocMaxN[i][j]) ;
3258 }
3259
5c46c992 3260 fhMassNLocMax1[i][j] = new TH2F(Form("hMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3261 Form("Invariant mass of splitted cluster with #it{NLM}=1 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3262 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3263 fhMassNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3264 fhMassNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
5c46c992 3265 outputContainer->Add(fhMassNLocMax1[i][j]) ;
3266
3267 fhMassNLocMax2[i][j] = new TH2F(Form("hMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3268 Form("Invariant mass of splitted cluster with #it{NLM}=2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3269 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3270 fhMassNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3271 fhMassNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
5c46c992 3272 outputContainer->Add(fhMassNLocMax2[i][j]) ;
3273
3274 fhMassNLocMaxN[i][j] = new TH2F(Form("hMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3275 Form("Invariant mass of splitted cluster with NLM>2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3276 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3277 fhMassNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3278 fhMassNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
667432ef 3279 outputContainer->Add(fhMassNLocMaxN[i][j]) ;
c7e9a4e9 3280
3281 fhMassSplitENLocMax1[i][j] = new TH2F(Form("hMassSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3282 Form("Invariant mass of splitted cluster with #it{NLM}=1 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3283 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3284 fhMassSplitENLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3285 fhMassSplitENLocMax1[i][j]->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3286 outputContainer->Add(fhMassSplitENLocMax1[i][j]) ;
3287
3288 fhMassSplitENLocMax2[i][j] = new TH2F(Form("hMassSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3289 Form("Invariant mass of splitted cluster with #it{NLM}=2 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3290 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3291 fhMassSplitENLocMax2[i][j]->SetYTitle("#it{E} _{M} (GeV/#it{c}^{2})");
3292 fhMassSplitENLocMax2[i][j]->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3293 outputContainer->Add(fhMassSplitENLocMax2[i][j]) ;
3294
3295 fhMassSplitENLocMaxN[i][j] = new TH2F(Form("hMassSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3296 Form("Invariant mass of splitted cluster with NLM>2 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3297 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3298 fhMassSplitENLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3299 fhMassSplitENLocMaxN[i][j]->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3300 outputContainer->Add(fhMassSplitENLocMaxN[i][j]) ;
1253480f 3301
3302 fhM02NLocMax1[i][j] = new TH2F(Form("hM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3303 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3304 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3305 fhM02NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3306 fhM02NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3307 outputContainer->Add(fhM02NLocMax1[i][j]) ;
3308
3309 fhM02NLocMax2[i][j] = new TH2F(Form("hM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3310 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3311 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3312 fhM02NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3313 fhM02NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3314 outputContainer->Add(fhM02NLocMax2[i][j]) ;
3315
3316 fhM02NLocMaxN[i][j] = new TH2F(Form("hM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3317 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3318 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3319 fhM02NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3320 fhM02NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3321 outputContainer->Add(fhM02NLocMaxN[i][j]) ;
3322
3323 fhAsymNLocMax1[i][j] = new TH2F(Form("hAsymNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3324 Form("Asymmetry of #it{NLM}=1 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3325 nptbins,ptmin,ptmax,200,-1,1);
25330263 3326 fhAsymNLocMax1[i][j]->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3327 fhAsymNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
1253480f 3328 outputContainer->Add(fhAsymNLocMax1[i][j]) ;
3329
3330 fhAsymNLocMax2[i][j] = new TH2F(Form("hAsymNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3331 Form("Asymmetry of #it{NLM}=2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3332 nptbins,ptmin,ptmax,200,-1,1);
25330263 3333 fhAsymNLocMax2[i][j]->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3334 fhAsymNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
1253480f 3335 outputContainer->Add(fhAsymNLocMax2[i][j]) ;
3336
3337 fhAsymNLocMaxN[i][j] = new TH2F(Form("hAsymNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3338 Form("Asymmetry of NLM>2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
3339 nptbins,ptmin,ptmax,200,-1,1);
25330263 3340 fhAsymNLocMaxN[i][j]->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3341 fhAsymNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
1253480f 3342 outputContainer->Add(fhAsymNLocMaxN[i][j]) ;
3343
3344 fhSplitEFractionNLocMax1[i][j] = new TH2F(Form("hSplitEFractionNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3345 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3346 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3347 fhSplitEFractionNLocMax1[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3348 fhSplitEFractionNLocMax1[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3349 outputContainer->Add(fhSplitEFractionNLocMax1[i][j]) ;
3350
3351 fhSplitEFractionNLocMax2[i][j] = new TH2F(Form("hSplitEFractionNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3352 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3353 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3354 fhSplitEFractionNLocMax2[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3355 fhSplitEFractionNLocMax2[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3356 outputContainer->Add(fhSplitEFractionNLocMax2[i][j]) ;
3357
3358 fhSplitEFractionNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3359 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3360 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3361 fhSplitEFractionNLocMaxN[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3362 fhSplitEFractionNLocMaxN[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3363 outputContainer->Add(fhSplitEFractionNLocMaxN[i][j]) ;
1253480f 3364
cb99fa55 3365 if(i==0 && j==0 )
1253480f 3366 {
cb99fa55 3367 if(m02On)
1253480f 3368 {
25330263 3369 fhMassM02CutNLocMax1 = new TH2F("hMassM02CutNLocMax1","Invariant mass of splitted cluster with #it{NLM}=1 vs E, M02 cut, no TM",
cb99fa55 3370 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3371 fhMassM02CutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3372 fhMassM02CutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3373 outputContainer->Add(fhMassM02CutNLocMax1) ;
1253480f 3374
25330263 3375 fhMassM02CutNLocMax2 = new TH2F("hMassM02CutNLocMax2","Invariant mass of splitted cluster with #it{NLM}=2 vs E, M02 cut, no TM",
cb99fa55 3376 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3377 fhMassM02CutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3378 fhMassM02CutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3379 outputContainer->Add(fhMassM02CutNLocMax2) ;
1253480f 3380
cb99fa55 3381 fhMassM02CutNLocMaxN = new TH2F("hMassM02CutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, M02 cut, no TM",
3382 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3383 fhMassM02CutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3384 fhMassM02CutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3385 outputContainer->Add(fhMassM02CutNLocMaxN) ;
3386
25330263 3387 fhAsymM02CutNLocMax1 = new TH2F("hAsymM02CutNLocMax1","Asymmetry of #it{NLM}=1 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3388 fhAsymM02CutNLocMax1->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3389 fhAsymM02CutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3390 outputContainer->Add(fhAsymM02CutNLocMax1) ;
3391
25330263 3392 fhAsymM02CutNLocMax2 = new TH2F("hAsymM02CutNLocMax2","Asymmetry of #it{NLM}=2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3393 fhAsymM02CutNLocMax2->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3394 fhAsymM02CutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3395 outputContainer->Add(fhAsymM02CutNLocMax2) ;
3396
3397 fhAsymM02CutNLocMaxN = new TH2F("hAsymM02CutNLocMaxN","Asymmetry of NLM>2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
25330263 3398 fhAsymM02CutNLocMaxN->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3399 fhAsymM02CutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3400 outputContainer->Add(fhAsymM02CutNLocMaxN) ;
7350f5d6 3401
cb99fa55 3402 if(splitOn)
3403 {
25330263 3404 fhMassSplitECutNLocMax1 = new TH2F("hMassSplitECutNLocMax1","Invariant mass of splitted cluster with #it{NLM}=1 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
cb99fa55 3405 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3406 fhMassSplitECutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3407 fhMassSplitECutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3408 outputContainer->Add(fhMassSplitECutNLocMax1) ;
3409
25330263 3410 fhMassSplitECutNLocMax2 = new TH2F("hMassSplitECutNLocMax2","Invariant mass of splitted cluster with #it{NLM}=2 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
cb99fa55 3411 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3412 fhMassSplitECutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3413 fhMassSplitECutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3414 outputContainer->Add(fhMassSplitECutNLocMax2) ;
3415
25330263 3416 fhMassSplitECutNLocMaxN = new TH2F("hMassSplitECutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
cb99fa55 3417 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3418 fhMassSplitECutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3419 fhMassSplitECutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3420 outputContainer->Add(fhMassSplitECutNLocMaxN) ;
3421 }
3422 }//m02on
1253480f 3423
cb99fa55 3424 if(asyOn)
3425 {
25330263 3426 fhMassAsyCutNLocMax1 = new TH2F("hMassAsyCutNLocMax1","Invariant mass of splitted cluster with #it{NLM}=1 vs E, Asy cut, no TM",
cb99fa55 3427 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3428 fhMassAsyCutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3429 fhMassAsyCutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3430 outputContainer->Add(fhMassAsyCutNLocMax1) ;
3431
25330263 3432 fhMassAsyCutNLocMax2 = new TH2F("hMassAsyCutNLocMax2","Invariant mass of splitted cluster with #it{NLM}=2 vs E, Asy cut, no TM",
cb99fa55 3433 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3434 fhMassAsyCutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3435 fhMassAsyCutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3436 outputContainer->Add(fhMassAsyCutNLocMax2) ;
3437
2c36e041 3438 fhMassAsyCutNLocMaxN = new TH2F("hMassAsyCutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, Asy cut, no TM",
cb99fa55 3439 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3440 fhMassAsyCutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3441 fhMassAsyCutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3442 outputContainer->Add(fhMassAsyCutNLocMaxN) ;
3443
25330263 3444 fhM02AsyCutNLocMax1 = new TH2F("hM02AsyCutNLocMax1","#lambda_{0}^{2} of #it{NLM}=1 vs cluster Energy, AsyCut, no TM",
cb99fa55 3445 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3446 fhM02AsyCutNLocMax1->SetYTitle("#lambda_{0}^{2}");
25330263 3447 fhM02AsyCutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3448 outputContainer->Add(fhM02AsyCutNLocMax1) ;
3449
25330263 3450 fhM02AsyCutNLocMax2 = new TH2F("hM02AsyCutNLocMax2","#lambda_{0}^{2} of #it{NLM}=2 vs cluster Energy, AsyCut, no TM",
cb99fa55 3451 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3452 fhM02AsyCutNLocMax2->SetYTitle("#lambda_{0}^{2}");
25330263 3453 fhM02AsyCutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3454 outputContainer->Add(fhM02AsyCutNLocMax2) ;
3455
3456 fhM02AsyCutNLocMaxN = new TH2F("hM02AsyCutNLocMaxN","#lambda_{0}^{2} of NLM>2 vs cluster Energy, AsyCut, no TM",
3457 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3458 fhM02AsyCutNLocMaxN->SetYTitle("#lambda_{0}^{2}");
25330263 3459 fhM02AsyCutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3460 outputContainer->Add(fhM02AsyCutNLocMaxN) ;
2c36e041 3461 }
3462
7350f5d6 3463 if(GetCaloPID()->GetSubClusterEnergyMinimum(0) > 0.1)
2c36e041 3464 {
25330263 3465 fhMassEnCutNLocMax1 = new TH2F("hMassEnCutNLocMax1",Form("Invariant mass of splitted cluster with #it{NLM}=1 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)),
7350f5d6 3466 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3467 fhMassEnCutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3468 fhMassEnCutNLocMax1->SetXTitle("#it{E} (GeV)");
7350f5d6 3469 outputContainer->Add(fhMassEnCutNLocMax1) ;
3470
25330263 3471 fhMassEnCutNLocMax2 = new TH2F("hMassEnCutNLocMax2",Form("Invariant mass of splitted cluster with #it{NLM}=2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)),
7350f5d6 3472 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3473 fhMassEnCutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3474 fhMassEnCutNLocMax2->SetXTitle("#it{E} (GeV)");
7350f5d6 3475 outputContainer->Add(fhMassEnCutNLocMax2) ;
3476
3477 fhMassEnCutNLocMaxN = new TH2F("hMassEnCutNLocMaxN",Form("Invariant mass of splitted cluster with NLM>2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3478 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3479 fhMassEnCutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3480 fhMassEnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
7350f5d6 3481 outputContainer->Add(fhMassEnCutNLocMaxN) ;
3482
25330263 3483 fhM02EnCutNLocMax1 = new TH2F("hM02EnCutNLocMax1",Form("#lambda_{0}^{2} of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)),
7350f5d6 3484 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3485 fhM02EnCutNLocMax1->SetYTitle("#lambda_{0}^{2}");
25330263 3486 fhM02EnCutNLocMax1->SetXTitle("#it{E} (GeV)");
7350f5d6 3487 outputContainer->Add(fhM02EnCutNLocMax1) ;
3488
25330263 3489 fhM02EnCutNLocMax2 = new TH2F("hM02EnCutNLocMax2",Form("#lambda_{0}^{2} of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)),
7350f5d6 3490 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3491 fhM02EnCutNLocMax2->SetYTitle("#lambda_{0}^{2}");
25330263 3492 fhM02EnCutNLocMax2->SetXTitle("#it{E} (GeV)");
7350f5d6 3493 outputContainer->Add(fhM02EnCutNLocMax2) ;
3494
3495 fhM02EnCutNLocMaxN = new TH2F("hM02EnCutNLocMaxN",Form("#lambda_{0}^{2} of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3496 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3497 fhM02EnCutNLocMaxN->SetYTitle("#lambda_{0}^{2}");
25330263 3498 fhM02EnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
7350f5d6 3499 outputContainer->Add(fhM02EnCutNLocMaxN) ;
3500
25330263 3501 fhAsymEnCutNLocMax1 = new TH2F("hAsymEnCutNLocMax1",Form("Asymmetry of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0))
7350f5d6 3502 , nptbins,ptmin,ptmax,200,-1,1);
25330263 3503 fhAsymEnCutNLocMax1->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3504 fhAsymEnCutNLocMax1->SetXTitle("#it{E} (GeV)");
7350f5d6 3505 outputContainer->Add(fhAsymEnCutNLocMax1) ;
3506
25330263 3507 fhAsymEnCutNLocMax2 = new TH2F("hAsymEnCutNLocMax2",Form("Asymmetry of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1))
7350f5d6 3508 , nptbins,ptmin,ptmax,200,-1,1);
25330263 3509 fhAsymEnCutNLocMax2->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3510 fhAsymEnCutNLocMax2->SetXTitle("#it{E} (GeV)");
7350f5d6 3511 outputContainer->Add(fhAsymEnCutNLocMax2) ;
3512
3513 fhAsymEnCutNLocMaxN = new TH2F("hAsymEnCutNLocMaxN",Form("Asymmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2))
3514 , nptbins,ptmin,ptmax,200,-1,1);
25330263 3515 fhAsymEnCutNLocMaxN->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3516 fhAsymEnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
7350f5d6 3517 outputContainer->Add(fhAsymEnCutNLocMaxN) ;
a6d3b0a8 3518
25330263 3519 fhSplitEFracEnCutNLocMax1 = new TH2F("hSplitEFracEnCutNLocMax1",Form("SplitEFracmetry of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0))
a6d3b0a8 3520 , nptbins,ptmin,ptmax,120,0,1.2);
25330263 3521 fhSplitEFracEnCutNLocMax1->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
3522 fhSplitEFracEnCutNLocMax1->SetXTitle("#it{E} (GeV)");
a6d3b0a8 3523 outputContainer->Add(fhSplitEFracEnCutNLocMax1) ;
2c36e041 3524
25330263 3525 fhSplitEFracEnCutNLocMax2 = new TH2F("hSplitEFracEnCutNLocMax2",Form("SplitEFracmetry of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1))
a6d3b0a8 3526 , nptbins,ptmin,ptmax,120,0,1.2);
25330263 3527 fhSplitEFracEnCutNLocMax2->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
3528 fhSplitEFracEnCutNLocMax2->SetXTitle("#it{E} (GeV)");
a6d3b0a8 3529 outputContainer->Add(fhSplitEFracEnCutNLocMax2) ;
3530
3531 fhSplitEFracEnCutNLocMaxN = new TH2F("hSplitEFracEnCutNLocMaxN",Form("SplitEFracmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2))
3532 , nptbins,ptmin,ptmax,120,0,1.2);
25330263 3533 fhSplitEFracEnCutNLocMaxN->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
3534 fhSplitEFracEnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
a6d3b0a8 3535 outputContainer->Add(fhSplitEFracEnCutNLocMaxN) ;
2c36e041 3536 }
7350f5d6 3537
3538 } // no MC
aa12888f 3539
c7e9a4e9 3540 if(asyOn || m02On )
1253480f 3541 {
3542 fhMassAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3543 Form("Mass vs E, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3544 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3545 fhMassAfterCutsNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3546 fhMassAfterCutsNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3547 outputContainer->Add(fhMassAfterCutsNLocMax1[i][j]) ;
3548
3549 fhMassAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3550 Form("Mass vs E, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3551 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3552 fhMassAfterCutsNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3553 fhMassAfterCutsNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3554 outputContainer->Add(fhMassAfterCutsNLocMax2[i][j]) ;
3555
1253480f 3556 fhMassAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3557 Form("Mass vs E, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3558 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3559 fhMassAfterCutsNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3560 fhMassAfterCutsNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3561 outputContainer->Add(fhMassAfterCutsNLocMaxN[i][j]) ;
c7e9a4e9 3562
3563 fhMassSplitEAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3564 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3565 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3566 fhMassSplitEAfterCutsNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3567 fhMassSplitEAfterCutsNLocMax1[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3568 outputContainer->Add(fhMassSplitEAfterCutsNLocMax1[i][j]) ;
3569
3570 fhMassSplitEAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3571 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3572 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3573 fhMassSplitEAfterCutsNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3574 fhMassSplitEAfterCutsNLocMax2[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3575 outputContainer->Add(fhMassSplitEAfterCutsNLocMax2[i][j]) ;
3576
3577 fhMassSplitEAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3578 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3579 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3580 fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3581 fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3582 outputContainer->Add(fhMassSplitEAfterCutsNLocMaxN[i][j]) ;
3583
1253480f 3584
3585 fhSplitEFractionAfterCutsNLocMax1[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3586 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 1, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3587 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3588 fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3589 fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3590 outputContainer->Add(fhSplitEFractionAfterCutsNLocMax1[i][j]) ;
3591
3592 fhSplitEFractionAfterCutsNLocMax2[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3593 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3594 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3595 fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3596 fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3597 outputContainer->Add(fhSplitEFractionAfterCutsNLocMax2[i][j]) ;
3598
3599 fhSplitEFractionAfterCutsNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3600 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max > 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3601 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3602 fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3603 fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3604 outputContainer->Add(fhSplitEFractionAfterCutsNLocMaxN[i][j]) ;
3605 }
5c46c992 3606
0137016b 3607 fhMassM02NLocMax1[i][j] = new TH2F(Form("hMassM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3608 Form("Invariant mass of splitted cluster with #it{NLM}=1, #lambda_{0}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3609 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3610 fhMassM02NLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
0137016b 3611 fhMassM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}");
3612 outputContainer->Add(fhMassM02NLocMax1[i][j]) ;
3613
3614 fhMassM02NLocMax2[i][j] = new TH2F(Form("hMassM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3615 Form("Invariant mass of splitted cluster with #it{NLM}=2, #lambda_{0}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3616 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3617 fhMassM02NLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
0137016b 3618 fhMassM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}");
3619 outputContainer->Add(fhMassM02NLocMax2[i][j]) ;
3620
3621 fhMassM02NLocMaxN[i][j] = new TH2F(Form("hMassM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3622 Form("Invariant mass of splitted cluster with NLM>2, vs #lambda_{0}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3623 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3624 fhMassM02NLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
0137016b 3625 fhMassM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}");
3626 outputContainer->Add(fhMassM02NLocMaxN[i][j]) ;
3627
8e81c2cf 3628 if(fFillSSExtraHisto)
3629 {
3630 fhMassDispEtaNLocMax1[i][j] = new TH2F(Form("hMassDispEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3631 Form("Invariant mass of splitted cluster with #it{NLM}=1, #sigma_{#eta #eta}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3632 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3633 fhMassDispEtaNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3634 fhMassDispEtaNLocMax1[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3635 outputContainer->Add(fhMassDispEtaNLocMax1[i][j]) ;
3636
3637 fhMassDispEtaNLocMax2[i][j] = new TH2F(Form("hMassDispEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3638 Form("Invariant mass of splitted cluster with #it{NLM}=2 #sigma_{#eta #eta}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3639 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3640 fhMassDispEtaNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3641 fhMassDispEtaNLocMax2[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3642 outputContainer->Add(fhMassDispEtaNLocMax2[i][j]) ;
3643
3644 fhMassDispEtaNLocMaxN[i][j] = new TH2F(Form("hMassDispEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3645 Form("Invariant mass of splitted cluster with NLM>2, #sigma_{#eta #eta}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3646 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3647 fhMassDispEtaNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3648 fhMassDispEtaNLocMaxN[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3649 outputContainer->Add(fhMassDispEtaNLocMaxN[i][j]) ;
3650
3651 fhMassDispPhiNLocMax1[i][j] = new TH2F(Form("hMassDispPhiNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3652 Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3653 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3654 fhMassDispPhiNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3655 fhMassDispPhiNLocMax1[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3656 outputContainer->Add(fhMassDispPhiNLocMax1[i][j]) ;
3657
3658 fhMassDispPhiNLocMax2[i][j] = new TH2F(Form("hMassDispPhiNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3659 Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3660 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3661 fhMassDispPhiNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3662 fhMassDispPhiNLocMax2[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3663 outputContainer->Add(fhMassDispPhiNLocMax2[i][j]) ;
3664
3665 fhMassDispPhiNLocMaxN[i][j] = new TH2F(Form("hMassDispPhiNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3666 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3667 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3668 fhMassDispPhiNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3669 fhMassDispPhiNLocMaxN[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3670 outputContainer->Add(fhMassDispPhiNLocMaxN[i][j]) ;
3671
3672 fhMassDispAsyNLocMax1[i][j] = new TH2F(Form("hMassDispAsyNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3673 Form("Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3674 200,-1,1,mbins,mmin,mmax);
25330263 3675 fhMassDispAsyNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3676 fhMassDispAsyNLocMax1[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3677 outputContainer->Add(fhMassDispAsyNLocMax1[i][j]) ;
3678
3679 fhMassDispAsyNLocMax2[i][j] = new TH2F(Form("hMassDispAsyNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3680 Form("Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3681 200,-1,1,mbins,mmin,mmax);
25330263 3682 fhMassDispAsyNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3683 fhMassDispAsyNLocMax2[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3684 outputContainer->Add(fhMassDispAsyNLocMax2[i][j]) ;
3685
3686 fhMassDispAsyNLocMaxN[i][j] = new TH2F(Form("hMassDispAsyNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3687 Form("Invariant mass of N>2 local maxima cells vsA = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s %s",ptype[i].Data(),sMatched[j].Data()),
3688 200,-1,1,mbins,mmin,mmax);
25330263 3689 fhMassDispAsyNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3690 fhMassDispAsyNLocMaxN[i][j]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
8e81c2cf 3691 outputContainer->Add(fhMassDispAsyNLocMaxN[i][j]) ;
3692 }
d2655d46 3693
fc01318e 3694
b2e375c7 3695 if(i > 0 && fFillMCHisto) // skip first entry in array, general case not filled
883411b2 3696 {
3697 fhMCGenFracNLocMax1[i][j] = new TH2F(Form("hMCGenFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3698 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3699 nptbins,ptmin,ptmax,200,0,2);
25330263 3700 fhMCGenFracNLocMax1[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3701 fhMCGenFracNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
883411b2 3702 outputContainer->Add(fhMCGenFracNLocMax1[i][j]) ;
3703
3704 fhMCGenFracNLocMax2[i][j] = new TH2F(Form("hMCGenFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3705 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3706 nptbins,ptmin,ptmax,200,0,2);
25330263 3707 fhMCGenFracNLocMax2[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3708 fhMCGenFracNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
883411b2 3709 outputContainer->Add(fhMCGenFracNLocMax2[i][j]) ;
3710
883411b2 3711 fhMCGenFracNLocMaxN[i][j] = new TH2F(Form("hMCGenFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3712 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3713 nptbins,ptmin,ptmax,200,0,2);
25330263 3714 fhMCGenFracNLocMaxN[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3715 fhMCGenFracNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
883411b2 3716 outputContainer->Add(fhMCGenFracNLocMaxN[i][j]) ;
4914e781 3717
3718 fhMCGenFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3719 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3720 nptbins,ptmin,ptmax,200,0,2);
25330263 3721 fhMCGenFracNLocMax1NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3722 fhMCGenFracNLocMax1NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3723 outputContainer->Add(fhMCGenFracNLocMax1NoOverlap[i][j]) ;
3724
3725 fhMCGenFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3726 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3727 nptbins,ptmin,ptmax,200,0,2);
25330263 3728 fhMCGenFracNLocMax2NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3729 fhMCGenFracNLocMax2NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3730 outputContainer->Add(fhMCGenFracNLocMax2NoOverlap[i][j]) ;
3731
3732 fhMCGenFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3733 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3734 nptbins,ptmin,ptmax,200,0,2);
25330263 3735 fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3736 fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3737 outputContainer->Add(fhMCGenFracNLocMaxNNoOverlap[i][j]) ;
1253480f 3738
4914e781 3739
5094c724 3740 fhMCGenSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3741 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3742 nptbins,ptmin,ptmax,200,0,2);
25330263 3743 fhMCGenSplitEFracNLocMax1[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3744 fhMCGenSplitEFracNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
5094c724 3745 outputContainer->Add(fhMCGenSplitEFracNLocMax1[i][j]) ;
3746
3747 fhMCGenSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3748 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3749 nptbins,ptmin,ptmax,200,0,2);
25330263 3750 fhMCGenSplitEFracNLocMax2[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3751 fhMCGenSplitEFracNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
5094c724 3752 outputContainer->Add(fhMCGenSplitEFracNLocMax2[i][j]) ;
3753
5094c724 3754 fhMCGenSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3755 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3756 nptbins,ptmin,ptmax,200,0,2);
25330263 3757 fhMCGenSplitEFracNLocMaxN[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3758 fhMCGenSplitEFracNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
5094c724 3759 outputContainer->Add(fhMCGenSplitEFracNLocMaxN[i][j]) ;
1253480f 3760
4914e781 3761 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3762 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3763 nptbins,ptmin,ptmax,200,0,2);
25330263 3764 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3765 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3766 outputContainer->Add(fhMCGenSplitEFracNLocMax1NoOverlap[i][j]) ;
3767
3768 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3769 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3770 nptbins,ptmin,ptmax,200,0,2);
25330263 3771 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3772 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3773 outputContainer->Add(fhMCGenSplitEFracNLocMax2NoOverlap[i][j]) ;
3774
3775 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3776 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3777 nptbins,ptmin,ptmax,200,0,2);
25330263 3778 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3779 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3780 outputContainer->Add(fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]) ;
3781
bb2d339b 3782 fhMCGenEFracvsSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3783 Form("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3784 200,0,2,200,0,2);
25330263 3785 fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetYTitle("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco}");
3786 fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
bb2d339b 3787 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax1[i][j]) ;
3788
3789 fhMCGenEFracvsSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3790 Form("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3791 200,0,2,200,0,2);
25330263 3792 fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetYTitle("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco}");
3793 fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
bb2d339b 3794 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax2[i][j]) ;
3795
3796
3797 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3798 Form("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3799 200,0,2,200,0,2);
25330263 3800 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetYTitle("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco}");
3801 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
bb2d339b 3802 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMaxN[i][j]) ;
3803
3804
3805 fhMCGenEvsSplitENLocMax1[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3806 Form("#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3807 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 3808 fhMCGenEvsSplitENLocMax1[i][j] ->SetYTitle("#it{E}_{1 split}+#it{E}_{2 split} (GeV)");
3809 fhMCGenEvsSplitENLocMax1[i][j] ->SetXTitle("#it{E}_{gen} (GeV)");
bb2d339b 3810 outputContainer->Add(fhMCGenEvsSplitENLocMax1[i][j]) ;
3811
3812 fhMCGenEvsSplitENLocMax2[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3813 Form("#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3814 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 3815 fhMCGenEvsSplitENLocMax2[i][j] ->SetYTitle("#it{E}_{1 split}+#it{E}_{2 split} (GeV)");
3816 fhMCGenEvsSplitENLocMax2[i][j] ->SetXTitle("#it{E}_{gen} (GeV)");
bb2d339b 3817 outputContainer->Add(fhMCGenEvsSplitENLocMax2[i][j]) ;
3818
3819
3820 fhMCGenEvsSplitENLocMaxN[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3821 Form("#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3822 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 3823 fhMCGenEvsSplitENLocMaxN[i][j] ->SetYTitle("#it{E}_{1 split}+#it{E}_{2 split} (GeV)");
3824 fhMCGenEvsSplitENLocMaxN[i][j] ->SetXTitle("#it{E}_{gen} (GeV)");
bb2d339b 3825 outputContainer->Add(fhMCGenEvsSplitENLocMaxN[i][j]) ;
883411b2 3826 }
ce49dd72 3827
1253480f 3828 // Histograms after cluster identification
17f5b4b6 3829
17f5b4b6 3830
1253480f 3831 // Pi0 //
17f5b4b6 3832
c8710850 3833 fhM02Pi0NLocMax1[i][j] = new TH2F(Form("hM02Pi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3834 Form("#lambda_{0}^{2} vs #it{E}, %s, for NLM = 1",ptype[i].Data()),
1253480f 3835 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3836 fhM02Pi0NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3837 fhM02Pi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
17f5b4b6 3838 outputContainer->Add(fhM02Pi0NLocMax1[i][j]) ;
5c46c992 3839
c8710850 3840 fhM02Pi0NLocMax2[i][j] = new TH2F(Form("hM02Pi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3841 Form("#lambda_{0}^{2} vs #it{E}, %s, for NLM = 2",ptype[i].Data()),
1253480f 3842 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3843 fhM02Pi0NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3844 fhM02Pi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3845 outputContainer->Add(fhM02Pi0NLocMax2[i][j]) ;
5c46c992 3846
c8710850 3847 fhM02Pi0NLocMaxN[i][j] = new TH2F(Form("hM02Pi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3848 Form("#lambda_{0}^{2} vs #it{E}, %s, for NLM > 2",ptype[i].Data()),
1253480f 3849 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3850 fhM02Pi0NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3851 fhM02Pi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3852 outputContainer->Add(fhM02Pi0NLocMaxN[i][j]) ;
5c46c992 3853
c8710850 3854 fhMassPi0NLocMax1[i][j] = new TH2F(Form("hMassPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3855 Form("Mass vs #it{E}, %s, for NLM = 1",ptype[i].Data()),
1253480f 3856 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3857 fhMassPi0NLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3858 fhMassPi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3859 outputContainer->Add(fhMassPi0NLocMax1[i][j]) ;
bb2d339b 3860
c8710850 3861 fhMassPi0NLocMax2[i][j] = new TH2F(Form("hMassPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3862 Form("Mass vs #it{E} , %s, for NLM = 2",ptype[i].Data()),
1253480f 3863 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3864 fhMassPi0NLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3865 fhMassPi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3866 outputContainer->Add(fhMassPi0NLocMax2[i][j]) ;
bb2d339b 3867
c8710850 3868 fhMassPi0NLocMaxN[i][j] = new TH2F(Form("hMassPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3869 Form("Mass vs #it{E}, %s, for NLM > 2",ptype[i].Data()),
1253480f 3870 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3871 fhMassPi0NLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3872 fhMassPi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3873 outputContainer->Add(fhMassPi0NLocMaxN[i][j]) ;
c7e9a4e9 3874
3875 fhMassSplitEPi0NLocMax1[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3876 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s, for NLM = 1",ptype[i].Data()),
c7e9a4e9 3877 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3878 fhMassSplitEPi0NLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3879 fhMassSplitEPi0NLocMax1[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3880 outputContainer->Add(fhMassSplitEPi0NLocMax1[i][j]) ;
3881
3882 fhMassSplitEPi0NLocMax2[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3883 Form("Mass vs #it{E}_{1}+#it{E}_{2} , %s, for NLM = 2",ptype[i].Data()),
c7e9a4e9 3884 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3885 fhMassSplitEPi0NLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3886 fhMassSplitEPi0NLocMax2[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3887 outputContainer->Add(fhMassSplitEPi0NLocMax2[i][j]) ;
3888
3889 fhMassSplitEPi0NLocMaxN[i][j] = new TH2F(Form("hMassSplitEPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3890 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s, for NLM > 2",ptype[i].Data()),
c7e9a4e9 3891 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3892 fhMassSplitEPi0NLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3893 fhMassSplitEPi0NLocMaxN[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3894 outputContainer->Add(fhMassSplitEPi0NLocMaxN[i][j]) ;
bb2d339b 3895
c8710850 3896 fhAsyPi0NLocMax1[i][j] = new TH2F(Form("hAsyPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3897 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
e671adc2 3898 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3899 fhAsyPi0NLocMax1[i][j] ->SetYTitle("#it{A}");
3900 fhAsyPi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3901 outputContainer->Add(fhAsyPi0NLocMax1[i][j]) ;
e671adc2 3902
c8710850 3903 fhAsyPi0NLocMax2[i][j] = new TH2F(Form("hAsyPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3904 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
e671adc2 3905 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3906 fhAsyPi0NLocMax2[i][j] ->SetYTitle("#it{A}");
3907 fhAsyPi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3908 outputContainer->Add(fhAsyPi0NLocMax2[i][j]) ;
e671adc2 3909
c8710850 3910 fhAsyPi0NLocMaxN[i][j] = new TH2F(Form("hAsyPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3911 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
e671adc2 3912 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3913 fhAsyPi0NLocMaxN[i][j] ->SetYTitle("#it{A}");
3914 fhAsyPi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3915 outputContainer->Add(fhAsyPi0NLocMaxN[i][j]) ;
e671adc2 3916
1253480f 3917 if(fFillNCellHisto)
3918 {
3919 fhNCellPi0NLocMax1[i][j] = new TH2F(Form("hNCellPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3920 Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()),
3921 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3922 fhNCellPi0NLocMax1[i][j] ->SetYTitle("#it{N} cells");
3923 fhNCellPi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3924 outputContainer->Add(fhNCellPi0NLocMax1[i][j]) ;
3925
3926 fhNCellPi0NLocMax2[i][j] = new TH2F(Form("hNCellPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3927 Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()),
3928 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3929 fhNCellPi0NLocMax2[i][j] ->SetYTitle("#it{N} cells");
3930 fhNCellPi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3931 outputContainer->Add(fhNCellPi0NLocMax2[i][j]) ;
3932
3933 fhNCellPi0NLocMaxN[i][j] = new TH2F(Form("hNCellPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3934 Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()),
3935 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3936 fhNCellPi0NLocMaxN[i][j] ->SetYTitle("#it{N} cells");
3937 fhNCellPi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3938 outputContainer->Add(fhNCellPi0NLocMaxN[i][j]) ;
3939 }
3940
3941 // Eta
3942
3943 if(fFillIdEtaHisto)
3944 {
3945 fhM02EtaNLocMax1[i][j] = new TH2F(Form("hM02EtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3946 Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
3947 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3948 fhM02EtaNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3949 fhM02EtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3950 outputContainer->Add(fhM02EtaNLocMax1[i][j]) ;
3951
3952
3953 fhM02EtaNLocMax2[i][j] = new TH2F(Form("hM02EtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3954 Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
3955 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3956 fhM02EtaNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3957 fhM02EtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3958 outputContainer->Add(fhM02EtaNLocMax2[i][j]) ;
3959
3960 fhM02EtaNLocMaxN[i][j] = new TH2F(Form("hM02EtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3961 Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
3962 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3963 fhM02EtaNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3964 fhM02EtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3965 outputContainer->Add(fhM02EtaNLocMaxN[i][j]) ;
3966
3967 fhMassEtaNLocMax1[i][j] = new TH2F(Form("hMassEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3968 Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()),
3969 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3970 fhMassEtaNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3971 fhMassEtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3972 outputContainer->Add(fhMassEtaNLocMax1[i][j]) ;
3973
3974 fhMassEtaNLocMax2[i][j] = new TH2F(Form("hMassEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3975 Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()),
3976 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3977 fhMassEtaNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3978 fhMassEtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3979 outputContainer->Add(fhMassEtaNLocMax2[i][j]) ;
3980
3981 fhMassEtaNLocMaxN[i][j] = new TH2F(Form("hMassEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3982 Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()),
3983 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3984 fhMassEtaNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3985 fhMassEtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3986 outputContainer->Add(fhMassEtaNLocMaxN[i][j]) ;
3987
3988 fhAsyEtaNLocMax1[i][j] = new TH2F(Form("hAsyEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3989 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
3990 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3991 fhAsyEtaNLocMax1[i][j] ->SetYTitle("#it{A}");
3992 fhAsyEtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3993 outputContainer->Add(fhAsyEtaNLocMax1[i][j]) ;
3994
3995 fhAsyEtaNLocMax2[i][j] = new TH2F(Form("hAsyEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3996 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
3997 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3998 fhAsyEtaNLocMax2[i][j] ->SetYTitle("#it{A}");
3999 fhAsyEtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4000 outputContainer->Add(fhAsyEtaNLocMax2[i][j]) ;
4001
4002 fhAsyEtaNLocMaxN[i][j] = new TH2F(Form("hAsyEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4003 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
4004 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4005 fhAsyEtaNLocMaxN[i][j] ->SetYTitle("#it{A}");
4006 fhAsyEtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4007 outputContainer->Add(fhAsyEtaNLocMaxN[i][j]) ;
4008
4009 if(fFillNCellHisto)
4010 {
4011 fhNCellEtaNLocMax1[i][j] = new TH2F(Form("hNCellEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4012 Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()),
4013 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 4014 fhNCellEtaNLocMax1[i][j] ->SetYTitle("#it{N} cells");
4015 fhNCellEtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4016 outputContainer->Add(fhNCellEtaNLocMax1[i][j]) ;
4017
4018 fhNCellEtaNLocMax2[i][j] = new TH2F(Form("hNCellEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4019 Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()),
4020 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 4021 fhNCellEtaNLocMax2[i][j] ->SetYTitle("#it{N} cells");
4022 fhNCellEtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4023 outputContainer->Add(fhNCellEtaNLocMax2[i][j]) ;
4024
4025 fhNCellEtaNLocMaxN[i][j] = new TH2F(Form("hNCellEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4026 Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()),
4027 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 4028 fhNCellEtaNLocMaxN[i][j] ->SetYTitle("#it{N} cells");
4029 fhNCellEtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4030 outputContainer->Add(fhNCellEtaNLocMaxN[i][j]) ;
4031
4032 }
4033 }
4034
4035 if(fFillIdConvHisto)
4036 {
4037 fhM02ConNLocMax1[i][j] = new TH2F(Form("hM02ConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4038 Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
4039 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4040 fhM02ConNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4041 fhM02ConNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4042 outputContainer->Add(fhM02ConNLocMax1[i][j]) ;
4043
4044 fhM02ConNLocMax2[i][j] = new TH2F(Form("hM02ConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4045 Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
4046 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4047 fhM02ConNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4048 fhM02ConNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4049 outputContainer->Add(fhM02ConNLocMax2[i][j]) ;
4050
4051 fhM02ConNLocMaxN[i][j] = new TH2F(Form("hM02ConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4052 Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
4053 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4054 fhM02ConNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4055 fhM02ConNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4056 outputContainer->Add(fhM02ConNLocMaxN[i][j]) ;
4057
4058
4059 fhMassConNLocMax1[i][j] = new TH2F(Form("hMassConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4060 Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()),
4061 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4062 fhMassConNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4063 fhMassConNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4064 outputContainer->Add(fhMassConNLocMax1[i][j]) ;
4065
4066 fhMassConNLocMax2[i][j] = new TH2F(Form("hMassConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4067 Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()),
4068 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4069 fhMassConNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4070 fhMassConNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4071 outputContainer->Add(fhMassConNLocMax2[i][j]) ;
4072
4073 fhMassConNLocMaxN[i][j] = new TH2F(Form("hMassConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4074 Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()),
4075 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4076 fhMassConNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4077 fhMassConNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4078 outputContainer->Add(fhMassConNLocMaxN[i][j]) ;
4079
4080 fhAsyConNLocMax1[i][j] = new TH2F(Form("hAsyConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4081 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
4082 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4083 fhAsyConNLocMax1[i][j] ->SetYTitle("#it{A}");
4084 fhAsyConNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4085 outputContainer->Add(fhAsyConNLocMax1[i][j]) ;
4086
4087 fhAsyConNLocMax2[i][j] = new TH2F(Form("hAsyConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4088 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
4089 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4090 fhAsyConNLocMax2[i][j] ->SetYTitle("#it{A}");
4091 fhAsyConNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4092 outputContainer->Add(fhAsyConNLocMax2[i][j]) ;
4093
4094 fhAsyConNLocMaxN[i][j] = new TH2F(Form("hAsyConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4095 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
4096 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4097 fhAsyConNLocMaxN[i][j] ->SetYTitle("#it{A}");
4098 fhAsyConNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4099 outputContainer->Add(fhAsyConNLocMaxN[i][j]) ;
4100
4101 }
e671adc2 4102
5c46c992 4103 } // matched, not matched
4104
19391b8c 4105 if(fFillEbinHisto)
4106 {
883411b2 4107 for(Int_t j = 0; j < 4; j++)
19391b8c 4108 {
53f2c382 4109
fc01318e 4110 fhMassSplitEFractionNLocMax1Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax1%sEbin%d",pname[i].Data(),j),
25330263 4111 Form("Invariant mass of 2 highest energy cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4112 120,0,1.2,mbins,mmin,mmax);
25330263 4113 fhMassSplitEFractionNLocMax1Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4114 fhMassSplitEFractionNLocMax1Ebin[i][j]->SetXTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
19391b8c 4115 outputContainer->Add(fhMassSplitEFractionNLocMax1Ebin[i][j]) ;
883411b2 4116
fc01318e 4117 fhMassSplitEFractionNLocMax2Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax2%sEbin%d",pname[i].Data(),j),
25330263 4118 Form("Invariant mass of 2 local maxima cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4119 120,0,1.2,mbins,mmin,mmax);
25330263 4120 fhMassSplitEFractionNLocMax2Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4121 fhMassSplitEFractionNLocMax2Ebin[i][j]->SetXTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
19391b8c 4122 outputContainer->Add(fhMassSplitEFractionNLocMax2Ebin[i][j]) ;
883411b2 4123
fc01318e 4124 fhMassSplitEFractionNLocMaxNEbin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMaxN%sEbin%d",pname[i].Data(),j),
25330263 4125 Form("Invariant mass of N>2 local maxima cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4126 120,0,1.2,mbins,mmin,mmax);
25330263 4127 fhMassSplitEFractionNLocMaxNEbin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4128 fhMassSplitEFractionNLocMaxNEbin[i][j]->SetXTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
19391b8c 4129 outputContainer->Add(fhMassSplitEFractionNLocMaxNEbin[i][j]) ;
883411b2 4130
b2e375c7 4131 if(i>0 && fFillMCHisto) // skip first entry in array, general case not filled
fc01318e 4132 {
4133 fhMCGenFracNLocMaxEbin[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%d",pname[i].Data(),j),
be894c1d 4134 Form("NLM vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4135 200,0,2,nMaxBins,0,nMaxBins);
25330263 4136 fhMCGenFracNLocMaxEbin[i][j]->SetYTitle("#it{NLM}");
4137 fhMCGenFracNLocMaxEbin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4138 outputContainer->Add(fhMCGenFracNLocMaxEbin[i][j]) ;
fc01318e 4139
4140 fhMCGenFracNLocMaxEbinMatched[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%dMatched",pname[i].Data(),j),
be894c1d 4141 Form("NLM vs E, %s, %s, matched to a track",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4142 200,0,2,nMaxBins,0,nMaxBins);
25330263 4143 fhMCGenFracNLocMaxEbinMatched[i][j]->SetYTitle("#it{NLM}");
4144 fhMCGenFracNLocMaxEbinMatched[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4145 outputContainer->Add(fhMCGenFracNLocMaxEbinMatched[i][j]) ;
fc01318e 4146
4147 fhMassMCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax1%sEbin%d",pname[i].Data(),j),
be894c1d 4148 Form("Invariant mass of 2 highest energy cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4149 200,0,2,mbins,mmin,mmax);
25330263 4150 fhMassMCGenFracNLocMax1Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4151 fhMassMCGenFracNLocMax1Ebin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4152 outputContainer->Add(fhMassMCGenFracNLocMax1Ebin[i][j]) ;
fc01318e 4153
4154 fhMassMCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax2%sEbin%d",pname[i].Data(),j),
be894c1d 4155 Form("Invariant mass of 2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4156 200,0,2,mbins,mmin,mmax);
25330263 4157 fhMassMCGenFracNLocMax2Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4158 fhMassMCGenFracNLocMax2Ebin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4159 outputContainer->Add(fhMassMCGenFracNLocMax2Ebin[i][j]) ;
fc01318e 4160
4161 fhMassMCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hMassMCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j),
be894c1d 4162 Form("Invariant mass of N>2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4163 200,0,2,mbins,mmin,mmax);
25330263 4164 fhMassMCGenFracNLocMaxNEbin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4165 fhMassMCGenFracNLocMaxNEbin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4166 outputContainer->Add(fhMassMCGenFracNLocMaxNEbin[i][j]) ;
fc01318e 4167
4168 fhM02MCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax1%sEbin%d",pname[i].Data(),j),
be894c1d 4169 Form("#lambda_{0}^{2} vs E for N max = 1 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4170 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4171 fhM02MCGenFracNLocMax1Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4172 fhM02MCGenFracNLocMax1Ebin[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4173 outputContainer->Add(fhM02MCGenFracNLocMax1Ebin[i][j]) ;
fc01318e 4174
4175 fhM02MCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax2%sEbin%d",pname[i].Data(),j),
be894c1d 4176 Form("#lambda_{0}^{2} vs E for N max = 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4177 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4178 fhM02MCGenFracNLocMax2Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4179 fhM02MCGenFracNLocMax2Ebin[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4180 outputContainer->Add(fhM02MCGenFracNLocMax2Ebin[i][j]) ;
fc01318e 4181
4182 fhM02MCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hM02MCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j),
be894c1d 4183 Form("#lambda_{0}^{2} vs E for N max > 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4184 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4185 fhM02MCGenFracNLocMaxNEbin[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4186 fhM02MCGenFracNLocMaxNEbin[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4187 outputContainer->Add(fhM02MCGenFracNLocMaxNEbin[i][j]) ;
fc01318e 4188 }
883411b2 4189 }
19391b8c 4190 }
5c46c992 4191 } // MC particle list
1253480f 4192
4193 if(fFillHighMultHisto)
4194 {
4195 // E vs centrality
4196
4197 fhCentralityPi0NLocMax1 = new TH2F("hCentralityPi0NLocMax1",
25330263 4198 "E vs Centrality, selected pi0 cluster with #it{NLM}=1",
1253480f 4199 nptbins,ptmin,ptmax,100,0,100);
25330263 4200 fhCentralityPi0NLocMax1->SetYTitle("#it{Centrality}");
4201 fhCentralityPi0NLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4202 outputContainer->Add(fhCentralityPi0NLocMax1) ;
4203
4204 fhCentralityPi0NLocMax2 = new TH2F("hCentralityPi0NLocMax2",
25330263 4205 "E vs Centrality, selected pi0 cluster with #it{NLM}=2",
1253480f 4206 nptbins,ptmin,ptmax,100,0,100);
25330263 4207 fhCentralityPi0NLocMax2->SetYTitle("#it{Centrality}");
4208 fhCentralityPi0NLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4209 outputContainer->Add(fhCentralityPi0NLocMax2) ;
4210
4211 fhCentralityPi0NLocMaxN = new TH2F("hCentralityPi0NLocMaxN",
4212 "E vs Centrality, selected pi0 cluster with NLM>1",
4213 nptbins,ptmin,ptmax,100,0,100);
25330263 4214 fhCentralityPi0NLocMaxN->SetYTitle("#it{Centrality}");
4215 fhCentralityPi0NLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4216 outputContainer->Add(fhCentralityPi0NLocMaxN) ;
4217
4218 if(fFillIdEtaHisto)
4219 {
4220 fhCentralityEtaNLocMax1 = new TH2F("hCentralityEtaNLocMax1",
25330263 4221 "E vs Centrality, selected pi0 cluster with #it{NLM}=1",
1253480f 4222 nptbins,ptmin,ptmax,100,0,100);
25330263 4223 fhCentralityEtaNLocMax1->SetYTitle("#it{Centrality}");
4224 fhCentralityEtaNLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4225 outputContainer->Add(fhCentralityEtaNLocMax1) ;
4226
4227 fhCentralityEtaNLocMax2 = new TH2F("hCentralityEtaNLocMax2",
25330263 4228 "E vs Centrality, selected pi0 cluster with #it{NLM}=2",
1253480f 4229 nptbins,ptmin,ptmax,100,0,100);
25330263 4230 fhCentralityEtaNLocMax2->SetYTitle("#it{Centrality}");
4231 fhCentralityEtaNLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4232 outputContainer->Add(fhCentralityEtaNLocMax2) ;
4233
4234 fhCentralityEtaNLocMaxN = new TH2F("hCentralityEtaNLocMaxN",
4235 "E vs Centrality, selected pi0 cluster with NLM>1",
4236 nptbins,ptmin,ptmax,100,0,100);
25330263 4237 fhCentralityEtaNLocMaxN->SetYTitle("#it{Centrality}");
4238 fhCentralityEtaNLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4239 outputContainer->Add(fhCentralityEtaNLocMaxN) ;
4240 }
4241
4242 // E vs Event plane angle
4243
25330263 4244 fhEventPlanePi0NLocMax1 = new TH2F("hEventPlanePi0NLocMax1","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=1",
1253480f 4245 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4246 fhEventPlanePi0NLocMax1->SetYTitle("#it{Event Plane Angle} (rad)");
4247 fhEventPlanePi0NLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4248 outputContainer->Add(fhEventPlanePi0NLocMax1) ;
4249
25330263 4250 fhEventPlanePi0NLocMax2 = new TH2F("hEventPlanePi0NLocMax2","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=2",
1253480f 4251 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4252 fhEventPlanePi0NLocMax2->SetYTitle("#it{Event Plane Angle} (rad)");
4253 fhEventPlanePi0NLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4254 outputContainer->Add(fhEventPlanePi0NLocMax2) ;
4255
4256 fhEventPlanePi0NLocMaxN = new TH2F("hEventPlanePi0NLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4257 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4258 fhEventPlanePi0NLocMaxN->SetYTitle("#it{Event Plane Angle} (rad)");
4259 fhEventPlanePi0NLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4260 outputContainer->Add(fhEventPlanePi0NLocMaxN) ;
4261
4262 if(fFillIdEtaHisto)
4263 {
25330263 4264 fhEventPlaneEtaNLocMax1 = new TH2F("hEventPlaneEtaNLocMax1","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=1",
1253480f 4265 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4266 fhEventPlaneEtaNLocMax1->SetYTitle("#it{Event Plane Angle} (rad)");
4267 fhEventPlaneEtaNLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4268 outputContainer->Add(fhEventPlaneEtaNLocMax1) ;
4269
25330263 4270 fhEventPlaneEtaNLocMax2 = new TH2F("hEventPlaneEtaNLocMax2","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=2",
1253480f 4271 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4272 fhEventPlaneEtaNLocMax2->SetYTitle("#it{Event Plane Angle} (rad)");
4273 fhEventPlaneEtaNLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4274 outputContainer->Add(fhEventPlaneEtaNLocMax2) ;
4275
4276 fhEventPlaneEtaNLocMaxN = new TH2F("hEventPlaneEtaNLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4277 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4278 fhEventPlaneEtaNLocMaxN->SetYTitle("#it{Event Plane Angle} (rad)");
4279 fhEventPlaneEtaNLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4280 outputContainer->Add(fhEventPlaneEtaNLocMaxN) ;
4281 }
4282 }
17f5b4b6 4283
19391b8c 4284 if(fFillEbinHisto)
4285 {
4286 for(Int_t i = 0; i < 4; i++)
8e81c2cf 4287 {
19391b8c 4288 fhMassM02NLocMax1Ebin[i] = new TH2F(Form("hMassM02NLocMax1Ebin%d",i),
25330263 4289 Form("Invariant mass of split clusters vs #lambda_{0}^{2}, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4290 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4291 fhMassM02NLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4292 fhMassM02NLocMax1Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4293 outputContainer->Add(fhMassM02NLocMax1Ebin[i]) ;
4294
4295 fhMassM02NLocMax2Ebin[i] = new TH2F(Form("hMassM02NLocMax2Ebin%d",i),
25330263 4296 Form("Invariant mass of split clusters vs #lambda_{0}^{2}, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4297 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4298 fhMassM02NLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4299 fhMassM02NLocMax2Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4300 outputContainer->Add(fhMassM02NLocMax2Ebin[i]) ;
4301
4302 fhMassM02NLocMaxNEbin[i] = new TH2F(Form("hMassM02NLocMaxNEbin%d",i),
be894c1d 4303 Form("Invariant mass of split clusters vs vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
19391b8c 4304 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4305 fhMassM02NLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4306 fhMassM02NLocMaxNEbin[i]->SetXTitle("#lambda_{0}^{2}");
4307 outputContainer->Add(fhMassM02NLocMaxNEbin[i]) ;
4308
4309
4310 fhMassAsyNLocMax1Ebin[i] = new TH2F(Form("hMassAsyNLocMax1Ebin%d",i),
25330263 4311 Form("Invariant mass of split clusters vs split asymmetry, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4312 200,-1,1,mbins,mmin,mmax);
25330263 4313 fhMassAsyNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4314 fhMassAsyNLocMax1Ebin[i]->SetXTitle("asymmetry");
4315 outputContainer->Add(fhMassAsyNLocMax1Ebin[i]) ;
4316
4317 fhMassAsyNLocMax2Ebin[i] = new TH2F(Form("hMassAsyNLocMax2Ebin%d",i),
25330263 4318 Form("Invariant mass of split clusters vs split asymmetry, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4319 200,-1,1,mbins,mmin,mmax);
25330263 4320 fhMassAsyNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4321 fhMassAsyNLocMax2Ebin[i]->SetXTitle("asymmetry");
4322 outputContainer->Add(fhMassAsyNLocMax2Ebin[i]) ;
4323
4324 fhMassAsyNLocMaxNEbin[i] = new TH2F(Form("hMassAsyNLocMaxNEbin%d",i),
be894c1d 4325 Form("Invariant mass of split clusters vs split asymmetry, NLM>2, %s",sEBin[i].Data()),
19391b8c 4326 200,-1,1,mbins,mmin,mmax);
25330263 4327 fhMassAsyNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4328 fhMassAsyNLocMaxNEbin[i]->SetXTitle("asymmetry");
4329 outputContainer->Add(fhMassAsyNLocMaxNEbin[i]) ;
4330
4331
b2e375c7 4332 if(IsDataMC() && fFillMCHisto)
19391b8c 4333 {
4334 fhMCAsymM02NLocMax1MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax1MCPi0Ebin%d",i),
25330263 4335 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4336 ssbins,ssmin,ssmax,100,0,1);
4337 fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4338 fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4339 outputContainer->Add(fhMCAsymM02NLocMax1MCPi0Ebin[i]) ;
4340
4341 fhMCAsymM02NLocMax2MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax2MCPi0Ebin%d",i),
25330263 4342 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4343 ssbins,ssmin,ssmax,100,0,1);
4344 fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4345 fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4346 outputContainer->Add(fhMCAsymM02NLocMax2MCPi0Ebin[i]) ;
4347
4348 fhMCAsymM02NLocMaxNMCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMaxNMCPi0Ebin%d",i),
be894c1d 4349 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
19391b8c 4350 ssbins,ssmin,ssmax,100,0,1);
4351 fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4352 fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4353 outputContainer->Add(fhMCAsymM02NLocMaxNMCPi0Ebin[i]) ;
4354
4355
4356 fhAsyMCGenRecoNLocMax1EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax1Ebin%dPi0",i),
25330263 4357 Form("Generated vs reconstructed asymmetry of split clusters from pi0, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4358 200,-1,1,200,-1,1);
25330263 4359 fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4360 fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetXTitle("#it{A}");
19391b8c 4361 outputContainer->Add(fhAsyMCGenRecoNLocMax1EbinPi0[i]) ;
4362
4363 fhAsyMCGenRecoNLocMax2EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax2Ebin%dPi0",i),
25330263 4364 Form("Generated vs reconstructed asymmetry of split clusters from pi0, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4365 200,-1,1,200,-1,1);
25330263 4366 fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4367 fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetXTitle("#it{A}");
19391b8c 4368 outputContainer->Add(fhAsyMCGenRecoNLocMax2EbinPi0[i]) ;
4369
4370 fhAsyMCGenRecoNLocMaxNEbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMaxNEbin%dPi0",i),
be894c1d 4371 Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM>2, %s",sEBin[i].Data()),
19391b8c 4372 200,-1,1,200,-1,1);
25330263 4373 fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4374 fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetXTitle("#it{A}");
19391b8c 4375 outputContainer->Add(fhAsyMCGenRecoNLocMaxNEbinPi0[i]) ;
4376 }
4377
4378 if(fFillSSExtraHisto)
4379 {
4380 fhMassDispEtaNLocMax1Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax1Ebin%d",i),
be894c1d 4381 Form("Invariant mass of 2 highest energy cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4382 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4383 fhMassDispEtaNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4384 fhMassDispEtaNLocMax1Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4385 outputContainer->Add(fhMassDispEtaNLocMax1Ebin[i]) ;
4386
4387 fhMassDispEtaNLocMax2Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax2Ebin%d",i),
be894c1d 4388 Form("Invariant mass of 2 local maxima cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4389 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4390 fhMassDispEtaNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4391 fhMassDispEtaNLocMax2Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4392 outputContainer->Add(fhMassDispEtaNLocMax2Ebin[i]) ;
4393
4394 fhMassDispEtaNLocMaxNEbin[i] = new TH2F(Form("hMassDispEtaNLocMaxNEbin%d",i),
be894c1d 4395 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4396 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4397 fhMassDispEtaNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4398 fhMassDispEtaNLocMaxNEbin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4399 outputContainer->Add(fhMassDispEtaNLocMaxNEbin[i]) ;
4400
4401 fhMassDispPhiNLocMax1Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax1Ebin%d",i),
be894c1d 4402 Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4403 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4404 fhMassDispPhiNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4405 fhMassDispPhiNLocMax1Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4406 outputContainer->Add(fhMassDispPhiNLocMax1Ebin[i]) ;
4407
4408 fhMassDispPhiNLocMax2Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax2Ebin%d",i),
be894c1d 4409 Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4410 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4411 fhMassDispPhiNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4412 fhMassDispPhiNLocMax2Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4413 outputContainer->Add(fhMassDispPhiNLocMax2Ebin[i]) ;
4414
4415 fhMassDispPhiNLocMaxNEbin[i] = new TH2F(Form("hMassDispPhiNLocMaxNEbin%d",i),
be894c1d 4416 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4417 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4418 fhMassDispPhiNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4419 fhMassDispPhiNLocMaxNEbin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4420 outputContainer->Add(fhMassDispPhiNLocMaxNEbin[i]) ;
4421
4422 fhMassDispAsyNLocMax1Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax1Ebin%d",i),
be894c1d 4423 Form("Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()),
19391b8c 4424 200,-1,1,mbins,mmin,mmax);
25330263 4425 fhMassDispAsyNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4426 fhMassDispAsyNLocMax1Ebin[i]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
19391b8c 4427 outputContainer->Add(fhMassDispAsyNLocMax1Ebin[i]) ;
4428
4429 fhMassDispAsyNLocMax2Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax2Ebin%d",i),
be894c1d 4430 Form("Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()),
19391b8c 4431 200,-1,1,mbins,mmin,mmax);
25330263 4432 fhMassDispAsyNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4433 fhMassDispAsyNLocMax2Ebin[i]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
19391b8c 4434 outputContainer->Add(fhMassDispAsyNLocMax2Ebin[i]) ;
4435
4436 fhMassDispAsyNLocMaxNEbin[i] = new TH2F(Form("hMassDispAsyNLocMaxNEbin%d",i),
be894c1d 4437 Form("Invariant mass of N>2 local maxima cells vs A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()),
19391b8c 4438 200,-1,1,mbins,mmin,mmax);
25330263 4439 fhMassDispAsyNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4440 fhMassDispAsyNLocMaxNEbin[i]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
19391b8c 4441 outputContainer->Add(fhMassDispAsyNLocMaxNEbin[i]) ;
4442 }
8e81c2cf 4443 }
19391b8c 4444 }
1253480f 4445
c7e9a4e9 4446 if(IsDataMC() && fFillMCHisto && (asyOn || m02On))
c8710850 4447 {
4448 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax1MCPi0",
25330263 4449 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 MC Pi0, after M02 and Asym cut",
c8710850 4450 nptbins,ptmin,ptmax,200,0,2);
25330263 4451 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
4452 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4453 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax1MCPi0) ;
4454
4455 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax2MCPi0",
25330263 4456 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 MC Pi0, after M02 and Asym cut",
c8710850 4457 nptbins,ptmin,ptmax,200,0,2);
25330263 4458 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
4459 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4460 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax2MCPi0) ;
4461
4462
4463 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMaxNMCPi0",
25330263 4464 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 MC Pi0, after M02 and Asym cut",
c8710850 4465 nptbins,ptmin,ptmax,200,0,2);
25330263 4466 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
4467 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4468 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0) ;
4469
4470 fhMCGenFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax1MCPi0",
25330263 4471 "#it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max = 1 MC Pi0, after M02 and Asym cut",
c8710850 4472 nptbins,ptmin,ptmax,200,0,2);
25330263 4473 fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
4474 fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4475 outputContainer->Add(fhMCGenFracAfterCutsNLocMax1MCPi0) ;
4476
4477 fhMCGenFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax2MCPi0",
25330263 4478 " #it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max = 2 MC Pi0, after M02 and Asym cut",
c8710850 4479 nptbins,ptmin,ptmax,200,0,2);
25330263 4480 fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
4481 fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4482 outputContainer->Add(fhMCGenFracAfterCutsNLocMax2MCPi0) ;
4483
4484
4485 fhMCGenFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenFracAfterCutsNLocMaxNMCPi0",
25330263 4486 " #it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max > 2 MC Pi0, after M02 and Asym cut",
c8710850 4487 nptbins,ptmin,ptmax,200,0,2);
25330263 4488 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
4489 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4490 outputContainer->Add(fhMCGenFracAfterCutsNLocMaxNMCPi0) ;
4491
4492 }
4493
8edbd100 4494 if(fFillTMResidualHisto && fFillTMHisto)
8e81c2cf 4495 {
4496 for(Int_t i = 0; i < n; i++)
4497 {
4498
c8710850 4499 fhTrackMatchedDEtaNLocMax1[i] = new TH2F
4500 (Form("hTrackMatchedDEtaNLocMax1%s",pname[i].Data()),
8e81c2cf 4501 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4502 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4503 fhTrackMatchedDEtaNLocMax1[i]->SetYTitle("d#eta");
25330263 4504 fhTrackMatchedDEtaNLocMax1[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4505
c8710850 4506 fhTrackMatchedDPhiNLocMax1[i] = new TH2F
4507 (Form("hTrackMatchedDPhiNLocMax1%s",pname[i].Data()),
8e81c2cf 4508 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4509 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4510 fhTrackMatchedDPhiNLocMax1[i]->SetYTitle("d#phi (rad)");
25330263 4511 fhTrackMatchedDPhiNLocMax1[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4512
c8710850 4513 outputContainer->Add(fhTrackMatchedDEtaNLocMax1[i]) ;
4514 outputContainer->Add(fhTrackMatchedDPhiNLocMax1[i]) ;
8e81c2cf 4515
c8710850 4516 fhTrackMatchedDEtaNLocMax2[i] = new TH2F
4517 (Form("hTrackMatchedDEtaNLocMax2%s",pname[i].Data()),
8e81c2cf 4518 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4519 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4520 fhTrackMatchedDEtaNLocMax2[i]->SetYTitle("d#eta");
25330263 4521 fhTrackMatchedDEtaNLocMax2[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4522
c8710850 4523 fhTrackMatchedDPhiNLocMax2[i] = new TH2F
4524 (Form("hTrackMatchedDPhiNLocMax2%s",pname[i].Data()),
8e81c2cf 4525 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4526 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4527 fhTrackMatchedDPhiNLocMax2[i]->SetYTitle("d#phi (rad)");
25330263 4528 fhTrackMatchedDPhiNLocMax2[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4529
c8710850 4530 outputContainer->Add(fhTrackMatchedDEtaNLocMax2[i]) ;
4531 outputContainer->Add(fhTrackMatchedDPhiNLocMax2[i]) ;
8e81c2cf 4532
c8710850 4533 fhTrackMatchedDEtaNLocMaxN[i] = new TH2F
4534 (Form("hTrackMatchedDEtaNLocMaxN%s",pname[i].Data()),
8e81c2cf 4535 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4536 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4537 fhTrackMatchedDEtaNLocMaxN[i]->SetYTitle("d#eta");
25330263 4538 fhTrackMatchedDEtaNLocMaxN[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4539
c8710850 4540 fhTrackMatchedDPhiNLocMaxN[i] = new TH2F
4541 (Form("hTrackMatchedDPhiNLocMaxN%s",pname[i].Data()),
8e81c2cf 4542 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4543 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4544 fhTrackMatchedDPhiNLocMaxN[i]->SetYTitle("d#phi (rad)");
25330263 4545 fhTrackMatchedDPhiNLocMaxN[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4546
c8710850 4547 outputContainer->Add(fhTrackMatchedDEtaNLocMaxN[i]) ;
b2e375c7 4548 outputContainer->Add(fhTrackMatchedDPhiNLocMaxN[i]) ;
883411b2 4549
b2e375c7 4550 fhTrackMatchedDEtaNLocMax1Pos[i] = new TH2F
4551 (Form("hTrackMatchedDEtaNLocMax1Pos%s",pname[i].Data()),
4552 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4553 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4554 fhTrackMatchedDEtaNLocMax1Pos[i]->SetYTitle("d#eta");
25330263 4555 fhTrackMatchedDEtaNLocMax1Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4556
4557 fhTrackMatchedDPhiNLocMax1Pos[i] = new TH2F
4558 (Form("hTrackMatchedDPhiNLocMax1Pos%s",pname[i].Data()),
4559 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4560 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4561 fhTrackMatchedDPhiNLocMax1Pos[i]->SetYTitle("d#phi (rad)");
25330263 4562 fhTrackMatchedDPhiNLocMax1Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4563
4564 outputContainer->Add(fhTrackMatchedDEtaNLocMax1Pos[i]) ;
4565 outputContainer->Add(fhTrackMatchedDPhiNLocMax1Pos[i]) ;
4566
4567 fhTrackMatchedDEtaNLocMax2Pos[i] = new TH2F
4568 (Form("hTrackMatchedDEtaNLocMax2Pos%s",pname[i].Data()),
4569 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4570 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4571 fhTrackMatchedDEtaNLocMax2Pos[i]->SetYTitle("d#eta");
25330263 4572 fhTrackMatchedDEtaNLocMax2Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4573
4574 fhTrackMatchedDPhiNLocMax2Pos[i] = new TH2F
4575 (Form("hTrackMatchedDPhiNLocMax2Pos%s",pname[i].Data()),
4576 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4577 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4578 fhTrackMatchedDPhiNLocMax2Pos[i]->SetYTitle("d#phi (rad)");
25330263 4579 fhTrackMatchedDPhiNLocMax2Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4580
4581 outputContainer->Add(fhTrackMatchedDEtaNLocMax2Pos[i]) ;
4582 outputContainer->Add(fhTrackMatchedDPhiNLocMax2Pos[i]) ;
4583
4584 fhTrackMatchedDEtaNLocMaxNPos[i] = new TH2F
4585 (Form("hTrackMatchedDEtaNLocMaxNPos%s",pname[i].Data()),
4586 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4587 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4588 fhTrackMatchedDEtaNLocMaxNPos[i]->SetYTitle("d#eta");
25330263 4589 fhTrackMatchedDEtaNLocMaxNPos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4590
4591 fhTrackMatchedDPhiNLocMaxNPos[i] = new TH2F
4592 (Form("hTrackMatchedDPhiNLocMaxNPos%s",pname[i].Data()),
4593 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4594 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4595 fhTrackMatchedDPhiNLocMaxNPos[i]->SetYTitle("d#phi (rad)");
25330263 4596 fhTrackMatchedDPhiNLocMaxNPos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4597
4598 outputContainer->Add(fhTrackMatchedDEtaNLocMaxNPos[i]) ;
4599 outputContainer->Add(fhTrackMatchedDPhiNLocMaxNPos[i]) ;
4600
4601 fhTrackMatchedDEtaNLocMax1Neg[i] = new TH2F
4602 (Form("hTrackMatchedDEtaNLocMax1Neg%s",pname[i].Data()),
4603 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4604 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4605 fhTrackMatchedDEtaNLocMax1Neg[i]->SetYTitle("d#eta");
25330263 4606 fhTrackMatchedDEtaNLocMax1Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4607
4608 fhTrackMatchedDPhiNLocMax1Neg[i] = new TH2F
4609 (Form("hTrackMatchedDPhiNLocMax1Neg%s",pname[i].Data()),
4610 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4611 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4612 fhTrackMatchedDPhiNLocMax1Neg[i]->SetYTitle("d#phi (rad)");
25330263 4613 fhTrackMatchedDPhiNLocMax1Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4614
4615 outputContainer->Add(fhTrackMatchedDEtaNLocMax1Neg[i]) ;
4616 outputContainer->Add(fhTrackMatchedDPhiNLocMax1Neg[i]) ;
4617
4618 fhTrackMatchedDEtaNLocMax2Neg[i] = new TH2F
4619 (Form("hTrackMatchedDEtaNLocMax2Neg%s",pname[i].Data()),
4620 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4621 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4622 fhTrackMatchedDEtaNLocMax2Neg[i]->SetYTitle("d#eta");
25330263 4623 fhTrackMatchedDEtaNLocMax2Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4624
4625 fhTrackMatchedDPhiNLocMax2Neg[i] = new TH2F
4626 (Form("hTrackMatchedDPhiNLocMax2Neg%s",pname[i].Data()),
4627 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4628 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4629 fhTrackMatchedDPhiNLocMax2Neg[i]->SetYTitle("d#phi (rad)");
25330263 4630 fhTrackMatchedDPhiNLocMax2Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4631
4632 outputContainer->Add(fhTrackMatchedDEtaNLocMax2Neg[i]) ;
4633 outputContainer->Add(fhTrackMatchedDPhiNLocMax2Neg[i]) ;
4634
4635 fhTrackMatchedDEtaNLocMaxNNeg[i] = new TH2F
4636 (Form("hTrackMatchedDEtaNLocMaxNNeg%s",pname[i].Data()),
4637 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4638 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4639 fhTrackMatchedDEtaNLocMaxNNeg[i]->SetYTitle("d#eta");
25330263 4640 fhTrackMatchedDEtaNLocMaxNNeg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4641
4642 fhTrackMatchedDPhiNLocMaxNNeg[i] = new TH2F
4643 (Form("hTrackMatchedDPhiNLocMaxNNeg%s",pname[i].Data()),
4644 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4645 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4646 fhTrackMatchedDPhiNLocMaxNNeg[i]->SetYTitle("d#phi (rad)");
25330263 4647 fhTrackMatchedDPhiNLocMaxNNeg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4648
4649 outputContainer->Add(fhTrackMatchedDEtaNLocMaxNNeg[i]) ;
4650 outputContainer->Add(fhTrackMatchedDPhiNLocMaxNNeg[i]) ;
4651
4652 }
4653 }
4654
4655 if(fFillAngleHisto)
4656 {
0186b6a2 4657 for(Int_t i = 0; i < n; i++)
4658 {
4659 for(Int_t j = 0; j < nMatched; j++)
4660 {
4661
0186b6a2 4662 fhAnglePairNLocMax1[i][j] = new TH2F(Form("hAnglePairNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4663 Form("Opening angle split sub-clusters of cluster #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4664 nptbins,ptmin,ptmax,200,0,0.2);
4665 fhAnglePairNLocMax1[i][j]->SetYTitle("#alpha (rad)");
25330263 4666 fhAnglePairNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
0186b6a2 4667 outputContainer->Add(fhAnglePairNLocMax1[i][j]) ;
4668
4669 fhAnglePairNLocMax2[i][j] = new TH2F(Form("hAnglePairNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4670 Form("Opening angle split sub-clusters of cluster #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4671 nptbins,ptmin,ptmax,200,0,0.2);
4672 fhAnglePairNLocMax2[i][j]->SetYTitle("#alpha (rad)");
25330263 4673 fhAnglePairNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
0186b6a2 4674 outputContainer->Add(fhAnglePairNLocMax2[i][j]) ;
4675
4676 fhAnglePairNLocMaxN[i][j] = new TH2F(Form("hAnglePairNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4677 Form("Opening angle split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4678 nptbins,ptmin,ptmax,200,0,0.2);
4679 fhAnglePairNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
25330263 4680 fhAnglePairNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
0186b6a2 4681 outputContainer->Add(fhAnglePairNLocMaxN[i][j]) ;
4682
c7e9a4e9 4683 if(asyOn || m02On)
29555e96 4684 {
4685 fhAnglePairAfterCutsNLocMax1[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4686 Form("Opening angle split sub-clusters of cluster #it{NLM}=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4687 nptbins,ptmin,ptmax,200,0,0.2);
4688 fhAnglePairAfterCutsNLocMax1[i][j]->SetYTitle("#alpha (rad)");
25330263 4689 fhAnglePairAfterCutsNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4690 outputContainer->Add(fhAnglePairAfterCutsNLocMax1[i][j]) ;
4691
4692 fhAnglePairAfterCutsNLocMax2[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4693 Form("Opening angle split sub-clusters of cluster, after cuts, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4694 nptbins,ptmin,ptmax,200,0,0.2);
4695 fhAnglePairAfterCutsNLocMax2[i][j]->SetYTitle("#alpha (rad)");
25330263 4696 fhAnglePairAfterCutsNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4697 outputContainer->Add(fhAnglePairAfterCutsNLocMax2[i][j]) ;
4698
4699 fhAnglePairAfterCutsNLocMaxN[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4700 Form("Opening angle split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4701 nptbins,ptmin,ptmax,200,0,0.2);
4702 fhAnglePairAfterCutsNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
25330263 4703 fhAnglePairAfterCutsNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4704 outputContainer->Add(fhAnglePairAfterCutsNLocMaxN[i][j]) ;
4705
4706 }
4707
4708 fhAnglePairPi0NLocMax1[i][j] = new TH2F(Form("hAnglePairPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4709 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4710 nptbins,ptmin,ptmax,200,0,0.2);
4711 fhAnglePairPi0NLocMax1[i][j]->SetYTitle("#alpha (rad)");
25330263 4712 fhAnglePairPi0NLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4713 outputContainer->Add(fhAnglePairPi0NLocMax1[i][j]) ;
4714
4715 fhAnglePairPi0NLocMax2[i][j] = new TH2F(Form("hAnglePairPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4716 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4717 nptbins,ptmin,ptmax,200,0,0.2);
4718 fhAnglePairPi0NLocMax2[i][j]->SetYTitle("#alpha (rad)");
25330263 4719 fhAnglePairPi0NLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4720 outputContainer->Add(fhAnglePairPi0NLocMax2[i][j]) ;
4721
4722 fhAnglePairPi0NLocMaxN[i][j] = new TH2F(Form("hAnglePairPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4723 Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4724 nptbins,ptmin,ptmax,200,0,0.2);
4725 fhAnglePairPi0NLocMaxN[i][j]->SetYTitle("#alpha (rad)");
25330263 4726 fhAnglePairPi0NLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4727 outputContainer->Add(fhAnglePairPi0NLocMaxN[i][j]) ;
4728
0186b6a2 4729 fhAnglePairMassNLocMax1[i][j] = new TH2F(Form("hAnglePairMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4730 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4731 mbins,mmin,mmax,200,0,0.2);
25330263 4732 fhAnglePairMassNLocMax1[i][j]->SetXTitle("#it{M} (GeV/#it{c}^{2})");
0186b6a2 4733 fhAnglePairMassNLocMax1[i][j]->SetYTitle("#alpha (rad)");
4734 outputContainer->Add(fhAnglePairMassNLocMax1[i][j]) ;
4735
29555e96 4736
0186b6a2 4737 fhAnglePairMassNLocMax2[i][j] = new TH2F(Form("hAnglePairMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4738 Form("Opening angle split sub-clusters of cluster #it{NLM}=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4739 mbins,mmin,mmax,200,0,0.2);
25330263 4740 fhAnglePairMassNLocMax2[i][j]->SetXTitle("#it{M} (GeV/#it{c}^{2})");
0186b6a2 4741 fhAnglePairMassNLocMax2[i][j]->SetYTitle("#alpha (rad)");
4742 outputContainer->Add(fhAnglePairMassNLocMax2[i][j]) ;
4743
4744 fhAnglePairMassNLocMaxN[i][j] = new TH2F(Form("hAnglePairMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4745 Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4746 mbins,mmin,mmax,200,0,0.2);
25330263 4747 fhAnglePairMassNLocMaxN[i][j]->SetXTitle("#it{M} (GeV/#it{c}^{2})");
0186b6a2 4748 fhAnglePairMassNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4749 outputContainer->Add(fhAnglePairMassNLocMaxN[i][j]) ;
d261ae67 4750
4751
4752 fhAnglePairM02NLocMax1[i][j] = new TH2F(Form("hAnglePairM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4753 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs Mass for E > 15 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
d261ae67 4754 ssbins,ssmin,ssmax,200,0,0.2);
4755 fhAnglePairM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}");
4756 fhAnglePairM02NLocMax1[i][j]->SetYTitle("#alpha (rad)");
4757 outputContainer->Add(fhAnglePairM02NLocMax1[i][j]) ;
4758
0186b6a2 4759
d261ae67 4760 fhAnglePairM02NLocMax2[i][j] = new TH2F(Form("hAnglePairM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4761 Form("Opening angle split sub-clusters of cluster #it{NLM}=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
d261ae67 4762 ssbins,ssmin,ssmax,200,0,0.2);
4763 fhAnglePairM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}");
4764 fhAnglePairM02NLocMax2[i][j]->SetYTitle("#alpha (rad)");
4765 outputContainer->Add(fhAnglePairM02NLocMax2[i][j]) ;
4766
4767 fhAnglePairM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4768 Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4769 ssbins,ssmin,ssmax,200,0,0.2);
4770 fhAnglePairM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}");
4771 fhAnglePairM02NLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4772 outputContainer->Add(fhAnglePairM02NLocMaxN[i][j]) ;
4773
4e5a94c5 4774 fhAnglePairOverM02NLocMax1[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4775 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4776 nptbins,ptmin,ptmax,200,0,0.2);
4777 fhAnglePairOverM02NLocMax1[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4778 fhAnglePairOverM02NLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4779 outputContainer->Add(fhAnglePairOverM02NLocMax1[i][j]) ;
4780
4781 fhAnglePairOverM02NLocMax2[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4782 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4783 nptbins,ptmin,ptmax,200,0,0.2);
4784 fhAnglePairOverM02NLocMax2[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4785 fhAnglePairOverM02NLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4786 outputContainer->Add(fhAnglePairOverM02NLocMax2[i][j]) ;
4787
4788 fhAnglePairOverM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4789 Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4790 nptbins,ptmin,ptmax,200,0,0.2);
4791 fhAnglePairOverM02NLocMaxN[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4792 fhAnglePairOverM02NLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4793 outputContainer->Add(fhAnglePairOverM02NLocMaxN[i][j]) ;
4794
4795
4796 fhAnglePairOverM02NLocMax1Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1Overlap0%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4797 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=1 vs pair Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4798 nptbins,ptmin,ptmax,200,0,0.2);
4799 fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4800 fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4801 outputContainer->Add(fhAnglePairOverM02NLocMax1Overlap0[i][j]) ;
4802
4803 fhAnglePairOverM02NLocMax2Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2Overlap0%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4804 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=2 cells vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4805 nptbins,ptmin,ptmax,200,0,0.2);
4806 fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4807 fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4808 outputContainer->Add(fhAnglePairOverM02NLocMax2Overlap0[i][j]) ;
4809
4810 fhAnglePairOverM02NLocMaxNOverlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxNOverlap0%s%s",pname[i].Data(),sMatched[j].Data()),
4811 Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4812 nptbins,ptmin,ptmax,200,0,0.2);
4813 fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4814 fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4815 outputContainer->Add(fhAnglePairOverM02NLocMaxNOverlap0[i][j]) ;
4816
4817
0186b6a2 4818 }
4819 }
4820
4821 if(IsDataMC())
4822 {
4823 fhAnglePairPrimPi0RecoNLocMax1 = new TH2F("fhAnglePairPrimPi0RecoNLocMax1",
25330263 4824 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, #it{NLM}=1",
0186b6a2 4825 nptbins,ptmin,ptmax,300,0,3);
4826 fhAnglePairPrimPi0RecoNLocMax1->SetYTitle("#alpha_{reco} / #alpha_{gen}");
25330263 4827 fhAnglePairPrimPi0RecoNLocMax1->SetXTitle("#it{E} (GeV)");
0186b6a2 4828 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax1) ;
4829
4830 fhAnglePairPrimPi0RecoNLocMax2 = new TH2F("fhAnglePairPrimPi0RecoNLocMax2",
25330263 4831 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, #it{NLM}=2",
0186b6a2 4832 nptbins,ptmin,ptmax,300,0,3);
4833 fhAnglePairPrimPi0RecoNLocMax2->SetYTitle("#alpha_{reco} / #alpha_{gen}");
25330263 4834 fhAnglePairPrimPi0RecoNLocMax2->SetXTitle("#it{E} (GeV)");
0186b6a2 4835 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax2) ;
4836
4837 fhAnglePairPrimPi0RecoNLocMaxN = new TH2F("fhAnglePairPrimPi0RecoNLocMaxN",
4838 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM>2",
4839 nptbins,ptmin,ptmax,300,0,3);
4840 fhAnglePairPrimPi0RecoNLocMaxN->SetYTitle("#alpha_{reco} / #alpha_{gen}");
25330263 4841 fhAnglePairPrimPi0RecoNLocMaxN->SetXTitle("#it{E} (GeV)");
0186b6a2 4842 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMaxN) ;
4843
b2e375c7 4844
0186b6a2 4845 fhAnglePairPrimPi0vsRecoNLocMax1 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax1",
25330263 4846 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 15 GeV, #it{NLM}=1",
0186b6a2 4847 200,0,0.2,200,0,0.2);
29555e96 4848 fhAnglePairPrimPi0vsRecoNLocMax1->SetYTitle("#alpha_{reco} (rad)");
4849 fhAnglePairPrimPi0vsRecoNLocMax1->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4850 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax1) ;
4851
4852 fhAnglePairPrimPi0vsRecoNLocMax2 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax2",
25330263 4853 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, #it{NLM}=2",
0186b6a2 4854 200,0,0.2,200,0,0.2);
29555e96 4855 fhAnglePairPrimPi0vsRecoNLocMax2->SetYTitle("#alpha_{reco} (rad)");
4856 fhAnglePairPrimPi0vsRecoNLocMax2->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4857 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax2) ;
4858
4859 fhAnglePairPrimPi0vsRecoNLocMaxN = new TH2F("fhAnglePairPrimPi0vsRecoNLocMaxN",
25330263 4860 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, #it{NLM}=2",
0186b6a2 4861 200,0,0.2,200,0,0.2);
29555e96 4862 fhAnglePairPrimPi0vsRecoNLocMaxN->SetYTitle("#alpha_{reco} (rad)");
4863 fhAnglePairPrimPi0vsRecoNLocMaxN->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4864 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMaxN) ;
883411b2 4865
4e5a94c5 4866
4867 fhAnglePairPrimPi0OverM02NLocMax1 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax1",
25330263 4868 "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, #it{NLM}=1",
4e5a94c5 4869 nptbins,ptmin,ptmax,200,0,0.2);
4870 fhAnglePairPrimPi0OverM02NLocMax1->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
25330263 4871 fhAnglePairPrimPi0OverM02NLocMax1->SetXTitle("#it{E} (GeV)");
4e5a94c5 4872 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax1) ;
4873
4874 fhAnglePairPrimPi0OverM02NLocMax2 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax2",
25330263 4875 "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, #it{NLM}=2",
4e5a94c5 4876 nptbins,ptmin,ptmax,200,0,0.2);
4877 fhAnglePairPrimPi0OverM02NLocMax2->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
25330263 4878 fhAnglePairPrimPi0OverM02NLocMax2->SetXTitle("#it{E} (GeV)");
4e5a94c5 4879 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax2) ;
4880
4881 fhAnglePairPrimPi0OverM02NLocMaxN = new TH2F("fhAnglePairPrimPi0OverM02NLocMaxN",
4882 "Primary Opening angle split neutral sub-clusters reconstructed / M02 vs cluster Energy, NLM>2",
4883 nptbins,ptmin,ptmax,200,0,0.2);
4884 fhAnglePairPrimPi0OverM02NLocMaxN->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
25330263 4885 fhAnglePairPrimPi0OverM02NLocMaxN->SetXTitle("#it{E} (GeV)");
4e5a94c5 4886 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMaxN) ;
4887
883411b2 4888 }
992b14a7 4889 }
29555e96 4890
4891 // Same as asymmetry ...
4892 if(fFillThetaStarHisto)
4893 {
4894 for(Int_t i = 0; i < n; i++)
4895 {
4896 for(Int_t j = 0; j < nMatched; j++)
4897 {
4898
4899 fhCosThStarNLocMax1[i][j] = new TH2F(Form("hCosThStarNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4900 Form("cos(#theta^{*}) split sub-clusters of cluster #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4901 nptbins,ptmin,ptmax,200,-1,1);
4902 fhCosThStarNLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4903 fhCosThStarNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4904 outputContainer->Add(fhCosThStarNLocMax1[i][j]) ;
4905
4906 fhCosThStarNLocMax2[i][j] = new TH2F(Form("hCosThStarNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4907 Form("cos(#theta^{*}) split sub-clusters of cluster #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4908 nptbins,ptmin,ptmax,200,-1,1);
4909 fhCosThStarNLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4910 fhCosThStarNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4911 outputContainer->Add(fhCosThStarNLocMax2[i][j]) ;
4912
4913 fhCosThStarNLocMaxN[i][j] = new TH2F(Form("hCosThStarNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4914 Form("cos(#theta^{*}) split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4915 nptbins,ptmin,ptmax,200,-1,1);
4916 fhCosThStarNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4917 fhCosThStarNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4918 outputContainer->Add(fhCosThStarNLocMaxN[i][j]) ;
4919
c7e9a4e9 4920 if(asyOn || m02On)
29555e96 4921 {
4922 fhCosThStarAfterCutsNLocMax1[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4923 Form("cos(#theta^{*}) split sub-clusters of cluster #it{NLM}=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4924 nptbins,ptmin,ptmax,200,-1,1);
4925 fhCosThStarAfterCutsNLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4926 fhCosThStarAfterCutsNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4927 outputContainer->Add(fhCosThStarAfterCutsNLocMax1[i][j]) ;
4928
4929 fhCosThStarAfterCutsNLocMax2[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4930 Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4931 nptbins,ptmin,ptmax,200,-1,1);
4932 fhCosThStarAfterCutsNLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4933 fhCosThStarAfterCutsNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4934 outputContainer->Add(fhCosThStarAfterCutsNLocMax2[i][j]) ;
4935
4936 fhCosThStarAfterCutsNLocMaxN[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4937 Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4938 nptbins,ptmin,ptmax,200,-1,1);
4939 fhCosThStarAfterCutsNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4940 fhCosThStarAfterCutsNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4941 outputContainer->Add(fhCosThStarAfterCutsNLocMaxN[i][j]) ;
4942
4943 }
4944
4945 fhCosThStarPi0NLocMax1[i][j] = new TH2F(Form("hCosThStarPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4946 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4947 nptbins,ptmin,ptmax,200,-1,1);
4948 fhCosThStarPi0NLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4949 fhCosThStarPi0NLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4950 outputContainer->Add(fhCosThStarPi0NLocMax1[i][j]) ;
4951
4952 fhCosThStarPi0NLocMax2[i][j] = new TH2F(Form("hCosThStarPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4953 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4954 nptbins,ptmin,ptmax,200,-1,1);
4955 fhCosThStarPi0NLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4956 fhCosThStarPi0NLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4957 outputContainer->Add(fhCosThStarPi0NLocMax2[i][j]) ;
4958
4959 fhCosThStarPi0NLocMaxN[i][j] = new TH2F(Form("hCosThStarPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4960 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4961 nptbins,ptmin,ptmax,200,-1,1);
4962 fhCosThStarPi0NLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4963 fhCosThStarPi0NLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4964 outputContainer->Add(fhCosThStarPi0NLocMaxN[i][j]) ;
4965
4966 }
4967 }
4968 }
4969
992b14a7 4970
8edbd100 4971 for(Int_t j = 0; j < nMatched; j++)
17f5b4b6 4972 {
4973 fhSplitEFractionvsAsyNLocMax1[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax1%s",sMatched[j].Data()),
25330263 4974 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs (#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2}) for N max = 1, E>12, %s",sMatched[j].Data()),
17f5b4b6 4975 100,-1,1,120,0,1.2);
25330263 4976 fhSplitEFractionvsAsyNLocMax1[j] ->SetXTitle("(#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2})");
4977 fhSplitEFractionvsAsyNLocMax1[j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
17f5b4b6 4978 outputContainer->Add(fhSplitEFractionvsAsyNLocMax1[j]) ;
4979
4980 fhSplitEFractionvsAsyNLocMax2[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax2%s",sMatched[j].Data()),
25330263 4981 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs (#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2}) for N max = 2,E>12, %s",sMatched[j].Data()),
17f5b4b6 4982 100,-1,1,120,0,1.2);
25330263 4983 fhSplitEFractionvsAsyNLocMax2[j] ->SetXTitle("(#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2})");
4984 fhSplitEFractionvsAsyNLocMax2[j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
17f5b4b6 4985 outputContainer->Add(fhSplitEFractionvsAsyNLocMax2[j]) ;
4986
4987 fhSplitEFractionvsAsyNLocMaxN[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMaxN%s",sMatched[j].Data()),
25330263 4988 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs (#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2}) for N max > 2, E>12, %s",sMatched[j].Data()),
17f5b4b6 4989 100,-1,1,120,0,1.2);
25330263 4990 fhSplitEFractionvsAsyNLocMaxN[j] ->SetXTitle("(#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2})");
4991 fhSplitEFractionvsAsyNLocMaxN[j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
17f5b4b6 4992 outputContainer->Add(fhSplitEFractionvsAsyNLocMaxN[j]) ;
e671adc2 4993 }
9554fc65 4994
1253480f 4995
9554fc65 4996 fhClusterEtaPhiNLocMax1 = new TH2F
4997 ("hClusterEtaPhiNLocMax1","Neutral Clusters with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4998 fhClusterEtaPhiNLocMax1->SetYTitle("#phi (rad)");
4999 fhClusterEtaPhiNLocMax1->SetXTitle("#eta");
5000 outputContainer->Add(fhClusterEtaPhiNLocMax1) ;
1253480f 5001
9554fc65 5002 fhClusterEtaPhiNLocMax2 = new TH2F
5003 ("hClusterEtaPhiNLocMax2","Neutral Clusters with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5004 fhClusterEtaPhiNLocMax2->SetYTitle("#phi (rad)");
5005 fhClusterEtaPhiNLocMax2->SetXTitle("#eta");
5006 outputContainer->Add(fhClusterEtaPhiNLocMax2) ;
5007
5008 fhClusterEtaPhiNLocMaxN = new TH2F
5009 ("hClusterEtaPhiNLocMaxN","Neutral Clusters with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5010 fhClusterEtaPhiNLocMaxN->SetYTitle("#phi (rad)");
5011 fhClusterEtaPhiNLocMaxN->SetXTitle("#eta");
5012 outputContainer->Add(fhClusterEtaPhiNLocMaxN) ;
5013
5014 fhPi0EtaPhiNLocMax1 = new TH2F
5015 ("hPi0EtaPhiNLocMax1","Selected #pi^{0}'s with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5016 fhPi0EtaPhiNLocMax1->SetYTitle("#phi (rad)");
5017 fhPi0EtaPhiNLocMax1->SetXTitle("#eta");
5018 outputContainer->Add(fhPi0EtaPhiNLocMax1) ;
5019
5020 fhPi0EtaPhiNLocMax2 = new TH2F
5021 ("hPi0EtaPhiNLocMax2","Selected #pi^{0}'s with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5022 fhPi0EtaPhiNLocMax2->SetYTitle("#phi (rad)");
5023 fhPi0EtaPhiNLocMax2->SetXTitle("#eta");
5024 outputContainer->Add(fhPi0EtaPhiNLocMax2) ;
5025
5026 fhPi0EtaPhiNLocMaxN = new TH2F
5027 ("hPi0EtaPhiNLocMaxN","Selected #pi^{0}'s with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5028 fhPi0EtaPhiNLocMaxN->SetYTitle("#phi (rad)");
5029 fhPi0EtaPhiNLocMaxN->SetXTitle("#eta");
5030 outputContainer->Add(fhPi0EtaPhiNLocMaxN) ;
1253480f 5031
5032 if(fFillIdEtaHisto)
5033 {
5034 fhEtaEtaPhiNLocMax1 = new TH2F
5035 ("hEtaEtaPhiNLocMax1","Selected #eta's with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5036 fhEtaEtaPhiNLocMax1->SetYTitle("#phi (rad)");
5037 fhEtaEtaPhiNLocMax1->SetXTitle("#eta");
5038 outputContainer->Add(fhEtaEtaPhiNLocMax1) ;
5039
5040 fhEtaEtaPhiNLocMax2 = new TH2F
5041 ("hEtaEtaPhiNLocMax2","Selected #eta's with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5042 fhEtaEtaPhiNLocMax2->SetYTitle("#phi (rad)");
5043 fhEtaEtaPhiNLocMax2->SetXTitle("#eta");
5044 outputContainer->Add(fhEtaEtaPhiNLocMax2) ;
5045
5046 fhEtaEtaPhiNLocMaxN = new TH2F
5047 ("hEtaEtaPhiNLocMaxN","Selected #eta's with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5048 fhEtaEtaPhiNLocMaxN->SetYTitle("#phi (rad)");
5049 fhEtaEtaPhiNLocMaxN->SetXTitle("#eta");
5050 outputContainer->Add(fhEtaEtaPhiNLocMaxN) ;
5051 }
e671adc2 5052
ff6aa4ce 5053
dbe09c26 5054 if(fFillSSWeightHisto)
5055 {
dbe09c26 5056 for(Int_t nlm = 0; nlm < 3; nlm++)
5057 {
5058 fhPi0CellE[nlm] = new TH2F(Form("hPi0CellENLocMax%s",snlm[nlm].Data()),
5059 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E",snlm[nlm].Data()),
5060 nptbins,ptmin,ptmax, nptbins,ptmin,ptmax);
25330263 5061 fhPi0CellE[nlm]->SetYTitle("#it{E}_{cell}");
5062 fhPi0CellE[nlm]->SetXTitle("#it{E}_{cluster}");
dbe09c26 5063 outputContainer->Add(fhPi0CellE[nlm]) ;
5064
5065 fhPi0CellEFrac[nlm] = new TH2F(Form("hPi0CellEFracNLocMax%s",snlm[nlm].Data()),
5066 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E / cluster E",snlm[nlm].Data()),
5067 nptbins,ptmin,ptmax, 100,0,1);
25330263 5068 fhPi0CellEFrac[nlm]->SetYTitle("#it{E}_{cell} / #it{E}_{cluster}");
5069 fhPi0CellEFrac[nlm]->SetXTitle("#it{E}_{cluster}");
dbe09c26 5070 outputContainer->Add(fhPi0CellEFrac[nlm]) ;
5071
5072 fhPi0CellLogEFrac[nlm] = new TH2F(Form("hPi0CellLogEFracNLocMax%s",snlm[nlm].Data()),
1253480f 5073 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs Log(cell E / cluster E)",snlm[nlm].Data()),
5074 nptbins,ptmin,ptmax, 100,-10,0);
25330263 5075 fhPi0CellLogEFrac[nlm]->SetYTitle("Log(#it{E}_{cell} / #it{E}_{cluster})");
5076 fhPi0CellLogEFrac[nlm]->SetXTitle("#it{E}_{cluster}");
dbe09c26 5077 outputContainer->Add(fhPi0CellLogEFrac[nlm]) ;
1253480f 5078
dbe09c26 5079
19391b8c 5080 fhPi0CellEMaxEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMaxEMax2FracNLocMax%s",snlm[nlm].Data()),
1253480f 5081 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / 1st loc. max. E",snlm[nlm].Data()),
5082 nptbins,ptmin,ptmax, 100,0,1);
25330263 5083 fhPi0CellEMaxEMax2Frac[nlm]->SetYTitle("#it{E}_{Loc Max 2} / #it{E}_{Loc Max 1}");
5084 fhPi0CellEMaxEMax2Frac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5085 outputContainer->Add(fhPi0CellEMaxEMax2Frac[nlm]) ;
5086
5087 fhPi0CellEMaxClusterFrac[nlm] = new TH2F(Form("hPi0CellEMaxClusterFracNLocMax%s",snlm[nlm].Data()),
1253480f 5088 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cluster",snlm[nlm].Data()),
5089 nptbins,ptmin,ptmax, 100,0,1);
25330263 5090 fhPi0CellEMaxClusterFrac[nlm]->SetYTitle("#it{E}_{Loc Max 1} / #it{E}_{cluster}");
5091 fhPi0CellEMaxClusterFrac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5092 outputContainer->Add(fhPi0CellEMaxClusterFrac[nlm]) ;
1253480f 5093
19391b8c 5094 fhPi0CellEMax2ClusterFrac[nlm] = new TH2F(Form("hPi0CellEMax2ClusterFracNLocMax%s",snlm[nlm].Data()),
1253480f 5095 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cluster",snlm[nlm].Data()),
5096 nptbins,ptmin,ptmax, 100,0,1);
25330263 5097 fhPi0CellEMax2ClusterFrac[nlm]->SetYTitle("#it{E}_{Loc Max 2} / #it{E}_{cluster}");
5098 fhPi0CellEMax2ClusterFrac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5099 outputContainer->Add(fhPi0CellEMax2ClusterFrac[nlm]) ;
5100
5101 fhPi0CellEMaxFrac[nlm] = new TH2F(Form("hPi0CellEMaxFracNLocMax%s",snlm[nlm].Data()),
1253480f 5102 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cell i",snlm[nlm].Data()),
5103 nptbins,ptmin,ptmax, 100,0,1);
25330263 5104 fhPi0CellEMaxFrac[nlm]->SetYTitle("#it{E}_{Loc Max 1} / #it{E}_{cell i}");
5105 fhPi0CellEMaxFrac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5106 outputContainer->Add(fhPi0CellEMaxFrac[nlm]) ;
5107
5108 fhPi0CellEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMax2FracNLocMax%s",snlm[nlm].Data()),
1253480f 5109 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cell i",snlm[nlm].Data()),
5110 nptbins,ptmin,ptmax, 200,0,2);
25330263 5111 fhPi0CellEMax2Frac[nlm]->SetYTitle("#it{E}_{Loc Max 2} / #it{E}_{cell i}");
5112 fhPi0CellEMax2Frac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5113 outputContainer->Add(fhPi0CellEMax2Frac[nlm]) ;
1253480f 5114
19391b8c 5115
dbe09c26 5116 for(Int_t i = 0; i < fSSWeightN; i++)
5117 {
5118 fhM02WeightPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_W%d",snlm[nlm].Data(),i),
1253480f 5119 Form("#lambda_{0}^{2} vs E, with W0 = %2.2f, for NLM = %s", fSSWeight[i], snlm[nlm].Data()),
dbe09c26 5120 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5121 fhM02WeightPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5122 fhM02WeightPi0[nlm][i] ->SetXTitle("#it{E} (GeV)");
dbe09c26 5123 outputContainer->Add(fhM02WeightPi0[nlm][i]) ;
5124 }
19391b8c 5125
5126 for(Int_t i = 0; i < fSSECellCutN; i++)
5127 {
5128 fhM02ECellCutPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_Ecell%d",snlm[nlm].Data(),i),
1253480f 5129 Form("#lambda_{0}^{2} vs E, with Ecell > %2.2f, for NLM = %s", fSSECellCut[i], snlm[nlm].Data()),
5130 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
19391b8c 5131 fhM02ECellCutPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5132 fhM02ECellCutPi0[nlm][i] ->SetXTitle("#it{E} (GeV)");
19391b8c 5133 outputContainer->Add(fhM02ECellCutPi0[nlm][i]) ;
5134 }
1253480f 5135
dbe09c26 5136 }
5137 }
5138
a1fd1b69 5139 Int_t tdbins = GetHistogramRanges()->GetHistoDiffTimeBins() ; Float_t tdmax = GetHistogramRanges()->GetHistoDiffTimeMax(); Float_t tdmin = GetHistogramRanges()->GetHistoDiffTimeMin();
1253480f 5140
25330263 5141 fhPi0EPairDiffTimeNLM1 = new TH2F("hPi0EPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #pi, #it{NLM}=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5142 fhPi0EPairDiffTimeNLM1->SetXTitle("#it{E}_{pair} (GeV)");
5143 fhPi0EPairDiffTimeNLM1->SetYTitle("#Delta #it{t} (ns)");
a1fd1b69 5144 outputContainer->Add(fhPi0EPairDiffTimeNLM1);
1253480f 5145
25330263 5146 fhPi0EPairDiffTimeNLM2 = new TH2F("hPi0EPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #pi, #it{NLM}=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5147 fhPi0EPairDiffTimeNLM2->SetXTitle("#it{E}_{pair} (GeV)");
5148 fhPi0EPairDiffTimeNLM2->SetYTitle("#Delta #it{t} (ns)");
a1fd1b69 5149 outputContainer->Add(fhPi0EPairDiffTimeNLM2);
1253480f 5150
a1fd1b69 5151 fhPi0EPairDiffTimeNLMN = new TH2F("hPi0EPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #pi, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
25330263 5152 fhPi0EPairDiffTimeNLMN->SetXTitle("#it{E}_{pair} (GeV)");
5153 fhPi0EPairDiffTimeNLMN->SetYTitle("#Delta #it{t} (ns)");
a1fd1b69 5154 outputContainer->Add(fhPi0EPairDiffTimeNLMN);
a1fd1b69 5155
1253480f 5156 if(fFillIdEtaHisto)
5157 {
25330263 5158 fhEtaEPairDiffTimeNLM1 = new TH2F("hEtaEPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #eta, #it{NLM}=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5159 fhEtaEPairDiffTimeNLM1->SetXTitle("#it{E}_{pair} (GeV)");
5160 fhEtaEPairDiffTimeNLM1->SetYTitle("#Delta #it{t} (ns)");
1253480f 5161 outputContainer->Add(fhEtaEPairDiffTimeNLM1);
5162
25330263 5163 fhEtaEPairDiffTimeNLM2 = new TH2F("hEtaEPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #eta, #it{NLM}=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5164 fhEtaEPairDiffTimeNLM2->SetXTitle("#it{E}_{pair} (GeV)");
5165 fhEtaEPairDiffTimeNLM2->SetYTitle("#Delta #it{t} (ns)");
1253480f 5166 outputContainer->Add(fhEtaEPairDiffTimeNLM2);
5167
5168 fhEtaEPairDiffTimeNLMN = new TH2F("hEtaEPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #eta, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
25330263 5169 fhEtaEPairDiffTimeNLMN->SetXTitle("#it{E}_{pair} (GeV)");
5170 fhEtaEPairDiffTimeNLMN->SetYTitle("#Delta #it{t} (ns)");
1253480f 5171 outputContainer->Add(fhEtaEPairDiffTimeNLMN);
5172 }
a1fd1b69 5173
4914e781 5174 if(fFillNCellHisto && IsDataMC())
5175 {
1253480f 5176
25330263 5177 fhNCellMassEHighNLocMax1MCPi0 = new TH2F("hNCellMassEHighNLocMax1MCPi0","n cells vs mass for MC pi0, high energy, #it{NLM}=1",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5178 fhNCellMassEHighNLocMax1MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5179 fhNCellMassEHighNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5180 outputContainer->Add(fhNCellMassEHighNLocMax1MCPi0) ;
5181
25330263 5182 fhNCellMassELowNLocMax1MCPi0 = new TH2F("hNCellMassELowNLocMax1MCPi0","n cells vs mass for MC pi0, low energy, #it{NLM}=1",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5183 fhNCellMassELowNLocMax1MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5184 fhNCellMassELowNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5185 outputContainer->Add(fhNCellMassELowNLocMax1MCPi0) ;
1253480f 5186
25330263 5187 fhNCellM02EHighNLocMax1MCPi0 = new TH2F("hNCellM02EHighNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, #it{NLM}=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5188 fhNCellM02EHighNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5189 fhNCellM02EHighNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5190 outputContainer->Add(fhNCellM02EHighNLocMax1MCPi0) ;
5191
25330263 5192 fhNCellM02ELowNLocMax1MCPi0 = new TH2F("hNCellM02ELowNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, #it{NLM}=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5193 fhNCellM02ELowNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5194 fhNCellM02ELowNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5195 outputContainer->Add(fhNCellM02ELowNLocMax1MCPi0) ;
1253480f 5196
25330263 5197 fhNCellMassEHighNLocMax2MCPi0 = new TH2F("hNCellMassEHighNLocMax2MCPi0","n cells vs mass for MC pi0, high energy, #it{NLM}=2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5198 fhNCellMassEHighNLocMax2MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5199 fhNCellMassEHighNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5200 outputContainer->Add(fhNCellMassEHighNLocMax2MCPi0) ;
5201
25330263 5202 fhNCellMassELowNLocMax2MCPi0 = new TH2F("hNCellMassELowNLocMax2MCPi0","n cells vs mass for MC pi0, low energy, #it{NLM}=2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5203 fhNCellMassELowNLocMax2MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5204 fhNCellMassELowNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5205 outputContainer->Add(fhNCellMassELowNLocMax2MCPi0) ;
5206
25330263 5207 fhNCellM02EHighNLocMax2MCPi0 = new TH2F("hNCellM02EHighNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, #it{NLM}=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5208 fhNCellM02EHighNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5209 fhNCellM02EHighNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5210 outputContainer->Add(fhNCellM02EHighNLocMax2MCPi0) ;
5211
25330263 5212 fhNCellM02ELowNLocMax2MCPi0 = new TH2F("hNCellM02ELowNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, #it{NLM}=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5213 fhNCellM02ELowNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5214 fhNCellM02ELowNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5215 outputContainer->Add(fhNCellM02ELowNLocMax2MCPi0) ;
1253480f 5216
4914e781 5217 fhNCellMassEHighNLocMaxNMCPi0 = new TH2F("hNCellMassEHighNLocMaxNMCPi0","n cells vs mass for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
25330263 5218 fhNCellMassEHighNLocMaxNMCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5219 fhNCellMassEHighNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5220 outputContainer->Add(fhNCellMassEHighNLocMaxNMCPi0) ;
5221
5222 fhNCellMassELowNLocMaxNMCPi0 = new TH2F("hNCellMassELowNLocMaxNMCPi0","n cells vs mass for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
25330263 5223 fhNCellMassELowNLocMaxNMCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5224 fhNCellMassELowNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5225 outputContainer->Add(fhNCellMassELowNLocMaxNMCPi0) ;
5226
5227 fhNCellM02EHighNLocMaxNMCPi0 = new TH2F("hNCellM02EHighNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5228 fhNCellM02EHighNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5229 fhNCellM02EHighNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5230 outputContainer->Add(fhNCellM02EHighNLocMaxNMCPi0) ;
5231
5232 fhNCellM02ELowNLocMaxNMCPi0 = new TH2F("hNCellM02ELowNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5233 fhNCellM02ELowNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5234 fhNCellM02ELowNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5235 outputContainer->Add(fhNCellM02ELowNLocMaxNMCPi0) ;
5236
5237 }
b2e375c7 5238
5239 if(IsDataMC() && fFillMCOverlapHisto)
5240 {
5241 for(Int_t i = 1; i < n; i++)
5242 {
5243 for(Int_t j = 0; j < 3; j++)
5244 {
5245 fhMCENOverlaps[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5246 Form("# overlaps vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5247 nptbins,ptmin,ptmax,10,0,10);
5248 fhMCENOverlaps[j][i] ->SetYTitle("# overlaps");
25330263 5249 fhMCENOverlaps[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5250 outputContainer->Add(fhMCENOverlaps[j][i]) ;
5251
5252 fhMCEM02Overlap0[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5253 Form("Overlap 0, #lambda_{0}^{2} vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5254 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5255 fhMCEM02Overlap0[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5256 fhMCEM02Overlap0[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5257 outputContainer->Add(fhMCEM02Overlap0[j][i]) ;
5258
5259 fhMCEM02Overlap1[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5260 Form("Overlap 1, #lambda_{0}^{2} vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5261 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5262 fhMCEM02Overlap1[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5263 fhMCEM02Overlap1[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5264 outputContainer->Add(fhMCEM02Overlap1[j][i]) ;
5265
5266 fhMCEM02OverlapN[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5267 Form("Overlap N, #lambda_{0}^{2} vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5268 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5269 fhMCEM02OverlapN[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5270 fhMCEM02OverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5271 outputContainer->Add(fhMCEM02OverlapN[j][i]) ;
5272
5273 fhMCEMassOverlap0[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5274 Form("Overlap 0, Mass vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5275 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5276 fhMCEMassOverlap0[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5277 fhMCEMassOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5278 outputContainer->Add(fhMCEMassOverlap0[j][i]) ;
5279
5280 fhMCEMassOverlap1[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5281 Form("Overalap 1, Mass vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5282 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5283 fhMCEMassOverlap1[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5284 fhMCEMassOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5285 outputContainer->Add(fhMCEMassOverlap1[j][i]) ;
5286
5287 fhMCEMassOverlapN[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5288 Form("Overlap N, Mass vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5289 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5290 fhMCEMassOverlapN[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5291 fhMCEMassOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5292 outputContainer->Add(fhMCEMassOverlapN[j][i]) ;
4914e781 5293
5294 fhMCEAsymOverlap0[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5295 Form("Overlap 0, Asymmetry vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5296 nptbins,ptmin,ptmax,100,0,1);
5297 fhMCEAsymOverlap0[j][i] ->SetYTitle("|A|");
25330263 5298 fhMCEAsymOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5299 outputContainer->Add(fhMCEAsymOverlap0[j][i]) ;
5300
5301 fhMCEAsymOverlap1[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5302 Form("Overalap 1, Asymmetry vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5303 nptbins,ptmin,ptmax,100,0,1);
5304 fhMCEAsymOverlap1[j][i] ->SetYTitle("|A|");
25330263 5305 fhMCEAsymOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5306 outputContainer->Add(fhMCEAsymOverlap1[j][i]) ;
5307
5308 fhMCEAsymOverlapN[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5309 Form("Overlap N, Asymmetry vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5310 nptbins,ptmin,ptmax,100,0,1);
5311 fhMCEAsymOverlapN[j][i] ->SetYTitle("|A|");
25330263 5312 fhMCEAsymOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5313 outputContainer->Add(fhMCEAsymOverlapN[j][i]) ;
74e3eb22 5314
5315
cb99fa55 5316 if(fFillNCellHisto)
5317 {
5318 fhMCENCellOverlap0[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5319 Form("Overlap 0, n cells vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cb99fa55 5320 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5321 fhMCENCellOverlap0[j][i] ->SetYTitle("#it{N} cells");
5322 fhMCENCellOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
cb99fa55 5323 outputContainer->Add(fhMCENCellOverlap0[j][i]) ;
5324
5325 fhMCENCellOverlap1[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5326 Form("Overalap 1, n cells vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cb99fa55 5327 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5328 fhMCENCellOverlap1[j][i] ->SetYTitle("#it{N} cells");
5329 fhMCENCellOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
cb99fa55 5330 outputContainer->Add(fhMCENCellOverlap1[j][i]) ;
5331
5332 fhMCENCellOverlapN[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5333 Form("Overlap N, n cells vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
cb99fa55 5334 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5335 fhMCENCellOverlapN[j][i] ->SetYTitle("#it{N} cells");
5336 fhMCENCellOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
cb99fa55 5337 outputContainer->Add(fhMCENCellOverlapN[j][i]) ;
5338 }
4914e781 5339
5340 fhMCEEpriOverlap0[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5341 Form("Overlap 0, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5342 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5343 fhMCEEpriOverlap0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5344 fhMCEEpriOverlap0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5345 outputContainer->Add(fhMCEEpriOverlap0[j][i]) ;
5346
5347 fhMCEEpriOverlap1[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5348 Form("Overalap 1, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5349 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5350 fhMCEEpriOverlap1[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5351 fhMCEEpriOverlap1[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5352 outputContainer->Add(fhMCEEpriOverlap1[j][i]) ;
5353
5354 fhMCEEpriOverlapN[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5355 Form("Overlap N, E reco vs E prim for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5356 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5357 fhMCEEpriOverlapN[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5358 fhMCEEpriOverlapN[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5359 outputContainer->Add(fhMCEEpriOverlapN[j][i]) ;
1253480f 5360
4914e781 5361
cc909e6f 5362 fhMCEEpriOverlap0IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap0IdPi0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5363 Form("Overlap 0, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cc909e6f 5364 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5365 fhMCEEpriOverlap0IdPi0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5366 fhMCEEpriOverlap0IdPi0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
cc909e6f 5367 outputContainer->Add(fhMCEEpriOverlap0IdPi0[j][i]) ;
5368
5369 fhMCEEpriOverlap1IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap1IdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5370 Form("Overlap 1, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cc909e6f 5371 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5372 fhMCEEpriOverlap1IdPi0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5373 fhMCEEpriOverlap1IdPi0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
cc909e6f 5374 outputContainer->Add(fhMCEEpriOverlap1IdPi0[j][i]) ;
5375
5376 fhMCEEpriOverlapNIdPi0[j][i] = new TH2F(Form("hMCEEpriOverlapNIdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5377 Form("Overlap N, E reco vs E prim for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
cc909e6f 5378 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5379 fhMCEEpriOverlapNIdPi0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5380 fhMCEEpriOverlapNIdPi0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
cc909e6f 5381 outputContainer->Add(fhMCEEpriOverlapNIdPi0[j][i]) ;
5382
5383
83351853 5384 fhMCESplitEFracOverlap0[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5385 Form("Overlap 0, SplitEFrac vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
1253480f 5386 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5387 fhMCESplitEFracOverlap0[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5388 fhMCESplitEFracOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5389 outputContainer->Add(fhMCESplitEFracOverlap0[j][i]) ;
5390
5391 fhMCESplitEFracOverlap1[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5392 Form("Overalap 1, SplitEFrac vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
1253480f 5393 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5394 fhMCESplitEFracOverlap1[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5395 fhMCESplitEFracOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5396 outputContainer->Add(fhMCESplitEFracOverlap1[j][i]) ;
5397
5398 fhMCESplitEFracOverlapN[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5399 Form("Overlap N, SplitEFrac vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
1253480f 5400 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5401 fhMCESplitEFracOverlapN[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5402 fhMCESplitEFracOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5403 outputContainer->Add(fhMCESplitEFracOverlapN[j][i]) ;
b2e375c7 5404
5405 if(i < 5)
5406 {
5407 fhMCPi0MassM02Overlap0[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%d",snlm[j].Data(),i-1),
25330263 5408 Form("Overlap 0, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5409 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5410 fhMCPi0MassM02Overlap0[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5411 fhMCPi0MassM02Overlap0[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5412 outputContainer->Add(fhMCPi0MassM02Overlap0[j][i-1]) ;
5413
5414 fhMCPi0MassM02Overlap1[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%d",snlm[j].Data(),i-1),
25330263 5415 Form("Overlap 1, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5416 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5417 fhMCPi0MassM02Overlap1[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5418 fhMCPi0MassM02Overlap1[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5419 outputContainer->Add(fhMCPi0MassM02Overlap1[j][i-1]) ;
5420
5421 fhMCPi0MassM02OverlapN[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%d",snlm[j].Data(),i-1),
25330263 5422 Form("Overlap N, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5423 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5424 fhMCPi0MassM02OverlapN[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5425 fhMCPi0MassM02OverlapN[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5426 outputContainer->Add(fhMCPi0MassM02OverlapN[j][i-1]) ;
5427 }
5428
5429 if(fFillTMHisto)
5430 {
5431 fhMCENOverlapsMatch[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5432 Form("# overlaps vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5433 nptbins,ptmin,ptmax,10,0,10);
5434 fhMCENOverlapsMatch[j][i] ->SetYTitle("# overlaps");
25330263 5435 fhMCENOverlapsMatch[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5436 outputContainer->Add(fhMCENOverlapsMatch[j][i]) ;
5437
5438 fhMCEM02Overlap0Match[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5439 Form("#lambda_{0}^{2} vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5440 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5441 fhMCEM02Overlap0Match[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5442 fhMCEM02Overlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5443 outputContainer->Add(fhMCEM02Overlap0Match[j][i]) ;
5444
5445 fhMCEM02Overlap1Match[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5446 Form("#lambda_{0}^{2} vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5447 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5448 fhMCEM02Overlap1Match[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5449 fhMCEM02Overlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5450 outputContainer->Add(fhMCEM02Overlap1Match[j][i]) ;
5451
5452 fhMCEM02OverlapNMatch[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5453 Form("#lambda_{0}^{2} vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5454 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5455 fhMCEM02OverlapNMatch[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5456 fhMCEM02OverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5457 outputContainer->Add(fhMCEM02OverlapNMatch[j][i]) ;
5458
5459 fhMCEMassOverlap0Match[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5460 Form("Mass vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5461 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5462 fhMCEMassOverlap0Match[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5463 fhMCEMassOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5464 outputContainer->Add(fhMCEMassOverlap0Match[j][i]) ;
5465
5466 fhMCEMassOverlap1Match[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5467 Form("Mass vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5468 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5469 fhMCEMassOverlap1Match[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5470 fhMCEMassOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5471 outputContainer->Add(fhMCEMassOverlap1Match[j][i]) ;
5472
5473 fhMCEMassOverlapNMatch[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5474 Form("Mass vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5475 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5476 fhMCEMassOverlapNMatch[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5477 fhMCEMassOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5478 outputContainer->Add(fhMCEMassOverlapNMatch[j][i]) ;
5479
4914e781 5480
5481 fhMCEAsymOverlap0Match[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5482 Form("Overlap 0, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5483 nptbins,ptmin,ptmax,100,0,1);
25330263 5484 fhMCEAsymOverlap0Match[j][i] ->SetYTitle("|#it{A}|");
5485 fhMCEAsymOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5486 outputContainer->Add(fhMCEAsymOverlap0Match[j][i]) ;
5487
5488 fhMCEAsymOverlap1Match[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5489 Form("Overalap 1, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5490 nptbins,ptmin,ptmax,100,0,1);
25330263 5491 fhMCEAsymOverlap1Match[j][i] ->SetYTitle("|#it{A}|");
5492 fhMCEAsymOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5493 outputContainer->Add(fhMCEAsymOverlap1Match[j][i]) ;
5494
5495 fhMCEAsymOverlapNMatch[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5496 Form("Overlap N, Asymmetry vs E for #it{NLM}=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5497 nptbins,ptmin,ptmax,100,0,1);
25330263 5498 fhMCEAsymOverlapNMatch[j][i] ->SetYTitle("|#it{A}|");
5499 fhMCEAsymOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5500 outputContainer->Add(fhMCEAsymOverlapNMatch[j][i]) ;
74e3eb22 5501
5502
5503 fhMCENCellOverlap0Match[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5504 Form("Overlap 0, n cells vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
74e3eb22 5505 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5506 fhMCENCellOverlap0Match[j][i] ->SetYTitle("#it{N} cells");
5507 fhMCENCellOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
74e3eb22 5508 outputContainer->Add(fhMCENCellOverlap0Match[j][i]) ;
1253480f 5509
74e3eb22 5510 fhMCENCellOverlap1Match[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5511 Form("Overalap 1, n cell vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
74e3eb22 5512 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5513 fhMCENCellOverlap1Match[j][i] ->SetYTitle("#it{N} cells");
5514 fhMCENCellOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
74e3eb22 5515 outputContainer->Add(fhMCENCellOverlap1Match[j][i]) ;
4914e781 5516
74e3eb22 5517 fhMCENCellOverlapNMatch[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5518 Form("Overlap N, n cell vs E for #it{NLM}=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
74e3eb22 5519 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5520 fhMCENCellOverlapNMatch[j][i] ->SetYTitle("#it{N} cells");
5521 fhMCENCellOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
74e3eb22 5522 outputContainer->Add(fhMCENCellOverlapNMatch[j][i]) ;
5523
4914e781 5524 fhMCEEpriOverlap0Match[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5525 Form("Overlap 0, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
4914e781 5526 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5527 fhMCEEpriOverlap0Match[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5528 fhMCEEpriOverlap0Match[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5529 outputContainer->Add(fhMCEEpriOverlap0Match[j][i]) ;
5530
5531 fhMCEEpriOverlap1Match[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5532 Form("Overalap 1, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
4914e781 5533 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5534 fhMCEEpriOverlap1Match[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5535 fhMCEEpriOverlap1Match[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5536 outputContainer->Add(fhMCEEpriOverlap1Match[j][i]) ;
5537
cc909e6f 5538 fhMCEEpriOverlapNMatch[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5539 Form("Overlap N, Asymmetry vs E for #it{NLM}=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
4914e781 5540 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5541 fhMCEEpriOverlapNMatch[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5542 fhMCEEpriOverlapNMatch[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5543 outputContainer->Add(fhMCEEpriOverlapNMatch[j][i]) ;
1253480f 5544
4914e781 5545
83351853 5546 fhMCESplitEFracOverlap0Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5547 Form("SplitEFrac vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5548 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5549 fhMCESplitEFracOverlap0Match[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5550 fhMCESplitEFracOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5551 outputContainer->Add(fhMCESplitEFracOverlap0Match[j][i]) ;
5552
5553 fhMCESplitEFracOverlap1Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5554 Form("SplitEFrac vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5555 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5556 fhMCESplitEFracOverlap1Match[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5557 fhMCESplitEFracOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5558 outputContainer->Add(fhMCESplitEFracOverlap1Match[j][i]) ;
5559
5560 fhMCESplitEFracOverlapNMatch[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5561 Form("SplitEFrac vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5562 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5563 fhMCESplitEFracOverlapNMatch[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5564 fhMCESplitEFracOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5565 outputContainer->Add(fhMCESplitEFracOverlapNMatch[j][i]) ;
1253480f 5566
83351853 5567
b2e375c7 5568 if(i < 5)
5569 {
5570 fhMCPi0MassM02Overlap0Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
25330263 5571 Form("Overlap 0, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5572 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5573 fhMCPi0MassM02Overlap0Match[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5574 fhMCPi0MassM02Overlap0Match[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5575 outputContainer->Add(fhMCPi0MassM02Overlap0Match[j][i-1]) ;
5576
5577 fhMCPi0MassM02Overlap1Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
25330263 5578 Form("Overlap 1, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5579 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5580 fhMCPi0MassM02Overlap1Match[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5581 fhMCPi0MassM02Overlap1Match[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5582 outputContainer->Add(fhMCPi0MassM02Overlap1Match[j][i-1]) ;
5583
5584 fhMCPi0MassM02OverlapNMatch[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
25330263 5585 Form("Overlap N, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5586 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5587 fhMCPi0MassM02OverlapNMatch[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5588 fhMCPi0MassM02OverlapNMatch[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5589 outputContainer->Add(fhMCPi0MassM02OverlapNMatch[j][i-1]) ;
5590
5591 }
5592
5593 }
5594 }
5595 }
5596
5597 fhMCPi0HighNLMPair = new TH2F("hMCPi0HighNLMPair","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5598 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5599 fhMCPi0HighNLMPair ->SetYTitle("#it{N} maxima");
5600 fhMCPi0HighNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5601 outputContainer->Add(fhMCPi0HighNLMPair) ;
5602
5603 fhMCPi0LowNLMPair = new TH2F("hMCPi0LowNLMPair","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5604 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5605 fhMCPi0LowNLMPair ->SetYTitle("#it{N} maxima");
5606 fhMCPi0LowNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5607 outputContainer->Add(fhMCPi0LowNLMPair) ;
5608
5609 fhMCPi0AnyNLMPair = new TH2F("hMCPi0AnyNLMPair","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5610 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5611 fhMCPi0AnyNLMPair ->SetYTitle("#it{N} maxima");
5612 fhMCPi0AnyNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5613 outputContainer->Add(fhMCPi0AnyNLMPair) ;
5614
5615 fhMCPi0NoneNLMPair = new TH2F("hMCPi0NoneNLMPair","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5616 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5617 fhMCPi0NoneNLMPair ->SetYTitle("#it{N} maxima");
5618 fhMCPi0NoneNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5619 outputContainer->Add(fhMCPi0NoneNLMPair) ;
1253480f 5620
b2e375c7 5621
5622 fhMCPi0HighNLMPairNoMCMatch = new TH2F("hMCPi0HighNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
1253480f 5623 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5624 fhMCPi0HighNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5625 fhMCPi0HighNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5626 outputContainer->Add(fhMCPi0HighNLMPairNoMCMatch) ;
5627
5628 fhMCPi0LowNLMPairNoMCMatch = new TH2F("hMCPi0LowNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
1253480f 5629 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5630 fhMCPi0LowNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5631 fhMCPi0LowNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5632 outputContainer->Add(fhMCPi0LowNLMPairNoMCMatch) ;
5633
5634 fhMCPi0AnyNLMPairNoMCMatch = new TH2F("hMCPi0AnyNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
1253480f 5635 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5636 fhMCPi0AnyNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5637 fhMCPi0AnyNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5638 outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatch) ;
5639
5640 fhMCPi0NoneNLMPairNoMCMatch = new TH2F("hMCPi0NoneNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, no NLM pair are decays",
1253480f 5641 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5642 fhMCPi0NoneNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5643 fhMCPi0NoneNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5644 outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatch) ;
1253480f 5645
b2e375c7 5646
36769d30 5647 fhMCPi0HighNLMPairOverlap = new TH2F("hMCPi0HighNLMPairOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5648 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5649 fhMCPi0HighNLMPairOverlap ->SetYTitle("#it{N} maxima");
5650 fhMCPi0HighNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5651 outputContainer->Add(fhMCPi0HighNLMPairOverlap) ;
5652
5653 fhMCPi0LowNLMPairOverlap = new TH2F("hMCPi0LowNLMPairOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5654 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5655 fhMCPi0LowNLMPairOverlap ->SetYTitle("#it{N} maxima");
5656 fhMCPi0LowNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5657 outputContainer->Add(fhMCPi0LowNLMPairOverlap) ;
5658
5659 fhMCPi0AnyNLMPairOverlap = new TH2F("hMCPi0AnyNLMPairOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5660 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5661 fhMCPi0AnyNLMPairOverlap ->SetYTitle("#it{N} maxima");
5662 fhMCPi0AnyNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5663 outputContainer->Add(fhMCPi0AnyNLMPairOverlap) ;
5664
5665 fhMCPi0NoneNLMPairOverlap = new TH2F("hMCPi0NoneNLMPairOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5666 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5667 fhMCPi0NoneNLMPairOverlap ->SetYTitle("#it{N} maxima");
5668 fhMCPi0NoneNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5669 outputContainer->Add(fhMCPi0NoneNLMPairOverlap) ;
5670
5671 fhMCPi0HighNLMPairNoMCMatchOverlap = new TH2F("hMCPi0HighNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5672 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5673 fhMCPi0HighNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5674 fhMCPi0HighNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5675 outputContainer->Add(fhMCPi0HighNLMPairNoMCMatchOverlap) ;
5676
5677 fhMCPi0LowNLMPairNoMCMatchOverlap = new TH2F("hMCPi0LowNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5678 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5679 fhMCPi0LowNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5680 fhMCPi0LowNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5681 outputContainer->Add(fhMCPi0LowNLMPairNoMCMatchOverlap) ;
5682
5683 fhMCPi0AnyNLMPairNoMCMatchOverlap = new TH2F("hMCPi0AnyNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5684 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5685 fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5686 fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5687 outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatchOverlap) ;
5688
5689 fhMCPi0NoneNLMPairNoMCMatchOverlap = new TH2F("hMCPi0NoneNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5690 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5691 fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5692 fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5693 outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatchOverlap) ;
b583134f 5694
1253480f 5695
36769d30 5696 fhMCPi0DecayPhotonHitHighLM = new TH2F("hMCPi0DecayPhotonHitHighLM","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima",
83351853 5697 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5698 fhMCPi0DecayPhotonHitHighLM ->SetYTitle("#it{N} maxima");
5699 fhMCPi0DecayPhotonHitHighLM ->SetXTitle("#it{E} (GeV)");
83351853 5700 outputContainer->Add(fhMCPi0DecayPhotonHitHighLM ) ;
5701
36769d30 5702 fhMCPi0DecayPhotonAdjHighLM = new TH2F("hMCPi0DecayPhotonAdjHighLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima",
1253480f 5703 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5704 fhMCPi0DecayPhotonAdjHighLM ->SetYTitle("#it{N} maxima");
5705 fhMCPi0DecayPhotonAdjHighLM ->SetXTitle("#it{E} (GeV)");
83351853 5706 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLM ) ;
1253480f 5707
36769d30 5708 fhMCPi0DecayPhotonHitOtherLM = new TH2F("hMCPi0DecayPhotonHitOtherLM","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima",
1253480f 5709 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5710 fhMCPi0DecayPhotonHitOtherLM ->SetYTitle("#it{N} maxima");
5711 fhMCPi0DecayPhotonHitOtherLM ->SetXTitle("#it{E} (GeV)");
83351853 5712 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLM ) ;
5713
36769d30 5714 fhMCPi0DecayPhotonAdjOtherLM = new TH2F("hMCPi0DecayPhotonAdjOtherLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima",
1253480f 5715 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5716 fhMCPi0DecayPhotonAdjOtherLM ->SetYTitle("#it{N} maxima");
5717 fhMCPi0DecayPhotonAdjOtherLM ->SetXTitle("#it{E} (GeV)");
83351853 5718 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLM ) ;
1253480f 5719
36769d30 5720 fhMCPi0DecayPhotonAdjacent = new TH2F("hMCPi0DecayPhotonAdjacent","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells",
5721 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5722 fhMCPi0DecayPhotonAdjacent ->SetYTitle("#it{N} maxima");
5723 fhMCPi0DecayPhotonAdjacent ->SetXTitle("#it{E} (GeV)");
36769d30 5724 outputContainer->Add(fhMCPi0DecayPhotonAdjacent ) ;
5725
5726 fhMCPi0DecayPhotonHitNoLM = new TH2F("hMCPi0DecayPhotonHitNoLM","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima",
5727 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5728 fhMCPi0DecayPhotonHitNoLM ->SetYTitle("#it{N} maxima");
5729 fhMCPi0DecayPhotonHitNoLM ->SetXTitle("#it{E} (GeV)");
83351853 5730 outputContainer->Add(fhMCPi0DecayPhotonHitNoLM ) ;
5731
36769d30 5732
5733 fhMCPi0DecayPhotonHitHighLMOverlap = new TH2F("hMCPi0DecayPhotonHitHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima, there was an overlap",
5734 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5735 fhMCPi0DecayPhotonHitHighLMOverlap ->SetYTitle("#it{N} maxima");
5736 fhMCPi0DecayPhotonHitHighLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5737 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlap ) ;
5738
5739 fhMCPi0DecayPhotonAdjHighLMOverlap = new TH2F("hMCPi0DecayPhotonAdjHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima, there was an overlap",
5740 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5741 fhMCPi0DecayPhotonAdjHighLMOverlap ->SetYTitle("#it{N} maxima");
5742 fhMCPi0DecayPhotonAdjHighLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5743 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlap ) ;
5744
5745 fhMCPi0DecayPhotonHitOtherLMOverlap = new TH2F("hMCPi0DecayPhotonHitOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima, there was an overlap",
5746 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5747 fhMCPi0DecayPhotonHitOtherLMOverlap ->SetYTitle("#it{N} maxima");
5748 fhMCPi0DecayPhotonHitOtherLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5749 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlap ) ;
5750
5751 fhMCPi0DecayPhotonAdjOtherLMOverlap = new TH2F("hMCPi0DecayPhotonAdjOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",
5752 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5753 fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetYTitle("#it{N} maxima");
5754 fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5755 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlap ) ;
5756
5757 fhMCPi0DecayPhotonAdjacentOverlap = new TH2F("hMCPi0DecayPhotonAdjacentOverlap","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells, there was an overlap",
5758 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5759 fhMCPi0DecayPhotonAdjacentOverlap ->SetYTitle("#it{N} maxima");
5760 fhMCPi0DecayPhotonAdjacentOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5761 outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlap ) ;
5762
5763 fhMCPi0DecayPhotonHitNoLMOverlap = new TH2F("hMCPi0DecayPhotonHitNoLMOverlap","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima, there was an overlap",
5764 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5765 fhMCPi0DecayPhotonHitNoLMOverlap ->SetYTitle("#it{N} maxima");
5766 fhMCPi0DecayPhotonHitNoLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5767 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlap ) ;
5768
1253480f 5769
b583134f 5770 for(Int_t nlm = 0; nlm < 3; nlm++)
5771 {
5772 fhMCPi0DecayPhotonHitHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sMass",snlm[nlm].Data()),
25330263 5773 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 5774 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5775 fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5776 fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5777 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMMass[nlm] ) ;
5778
5779 fhMCPi0DecayPhotonAdjHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sMass",snlm[nlm].Data()),
25330263 5780 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5781 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5782 fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5783 fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5784 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMMass[nlm] ) ;
5785
5786 fhMCPi0DecayPhotonHitOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sMass",snlm[nlm].Data()),
25330263 5787 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5788 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5789 fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5790 fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5791 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMMass[nlm] ) ;
5792
5793 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sMass",snlm[nlm].Data()),
25330263 5794 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5795 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5796 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5797 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5798 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ) ;
5799
5800 fhMCPi0DecayPhotonAdjacentMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sMass",snlm[nlm].Data()),
25330263 5801 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit adjacent cells",snlm[nlm].Data()),
29555e96 5802 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5803 fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5804 fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5805 outputContainer->Add(fhMCPi0DecayPhotonAdjacentMass[nlm] ) ;
5806
5807 fhMCPi0DecayPhotonHitNoLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sMass",snlm[nlm].Data()),
25330263 5808 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon do not hit Local Maxima",snlm[nlm].Data()),
29555e96 5809 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5810 fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5811 fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5812 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMMass[nlm] ) ;
5813
5814
5815 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapMass",snlm[nlm].Data()),
25330263 5816 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5817 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5818 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5819 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5820 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm]) ;
5821
5822 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapMass",snlm[nlm].Data()),
25330263 5823 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5824 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5825 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5826 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5827 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm]) ;
5828
5829 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapMass",snlm[nlm].Data()),
25330263 5830 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5831 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5832 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5833 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5834 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm]) ;
5835
5836 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapMass",snlm[nlm].Data()),
25330263 5837 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5838 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5839 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5840 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5841 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm]) ;
5842
5843 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sOverlapMass",snlm[nlm].Data()),
25330263 5844 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit adjacent cells, there was an overlap",snlm[nlm].Data()),
29555e96 5845 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5846 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5847 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5848 outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlapMass[nlm]) ;
5849
5850 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sOverlapMass",snlm[nlm].Data()),
25330263 5851 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon do not hit Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5852 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5853 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5854 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5855 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm]) ;
29555e96 5856
b583134f 5857 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1",snlm[nlm].Data()),
25330263 5858 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs E pi0 for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
cb99fa55 5859 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5860 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5861 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5862 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ) ;
5863
5864 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1",snlm[nlm].Data()),
25330263 5865 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5866 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5867 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
29555e96 5868 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetXTitle("E pi0 (GeV)");
b583134f 5869 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ) ;
5870
5871 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1",snlm[nlm].Data()),
25330263 5872 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5873 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5874 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5875 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
b583134f 5876 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ) ;
5877
5878 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1",snlm[nlm].Data()),
25330263 5879 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5880 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5881 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5882 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5883 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ) ;
5884
5885 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5886 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5887 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5888 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5889 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5890 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm]) ;
5891
5892 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5893 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5894 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5895 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5896 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5897 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm]) ;
5898
5899 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5900 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5901 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5902 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5903 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5904 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm]) ;
5905
5906 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5907 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5908 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5909 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5910 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5911 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm]) ;
5912
5913 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2",snlm[nlm].Data()),
25330263 5914 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
cb99fa55 5915 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5916 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5917 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5918 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ) ;
5919
5920 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2",snlm[nlm].Data()),
25330263 5921 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
cb99fa55 5922 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5923 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5924 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5925 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ) ;
5926
5927 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2",snlm[nlm].Data()),
25330263 5928 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
cb99fa55 5929 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5930 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5931 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5932 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ) ;
5933
5934 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2",snlm[nlm].Data()),
25330263 5935 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
cb99fa55 5936 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5937 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5938 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5939 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ) ;
5940
5941 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5942 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5943 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5944 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5945 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5946 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm]) ;
5947
5948 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5949 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5950 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5951 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5952 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5953 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm]) ;
5954
5955 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5956 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5957 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5958 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5959 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5960 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm]) ;
5961
5962 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5963 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5964 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5965 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5966 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5967 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm]) ;
29555e96 5968
5969
5970 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5971 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 5972 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5973 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5974 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 5975 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ) ;
5976
5977 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5978 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5979 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5980 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5981 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E} (GeV)");
29555e96 5982 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ) ;
5983
5984 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5985 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5986 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5987 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5988 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 5989 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ) ;
5990
5991 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5992 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5993 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5994 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5995 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 5996 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ) ;
5997
5998 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5999 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6000 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6001 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6002 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6003 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm]) ;
6004
6005 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6006 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6007 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6008 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6009 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6010 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm]) ;
6011
6012 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6013 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6014 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6015 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6016 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6017 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm]) ;
6018
6019 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6020 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6021 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6022 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6023 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6024 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm]) ;
6025
6026 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6027 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 6028 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6029 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6030 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6031 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ) ;
6032
6033 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6034 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 6035 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6036 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6037 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6038 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ) ;
6039
6040 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6041 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 6042 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6043 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6044 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6045 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ) ;
6046
6047 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6048 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 6049 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6050 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6051 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6052 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ) ;
6053
6054 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6055 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6056 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6057 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6058 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6059 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm]) ;
6060
6061 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6062 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6063 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6064 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6065 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6066 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm]) ;
6067
6068 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6069 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6070 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6071 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6072 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6073 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm]) ;
6074
6075 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6076 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6077 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6078 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6079 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6080 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm]) ;
6081
b583134f 6082 }
6083
b2e375c7 6084 fhMCEOverlapType = new TH2F("hMCEOverlapType","Kind of overlap particle, neutral clusters",
6085 nptbins,ptmin,ptmax,5,0,5);
6086 //fhMCEOverlapType ->SetYTitle("Overlap Type");
6087 fhMCEOverlapType->GetYaxis()->SetBinLabel(1 ,"#gamma");
6088 fhMCEOverlapType->GetYaxis()->SetBinLabel(2 ,"e^{#pm}");
6089 fhMCEOverlapType->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}");
6090 fhMCEOverlapType->GetYaxis()->SetBinLabel(4 ,"hadron^{0}");
6091 fhMCEOverlapType->GetYaxis()->SetBinLabel(5 ,"??");
25330263 6092 fhMCEOverlapType->SetXTitle("Cluster #it{E} (GeV)");
b2e375c7 6093 outputContainer->Add(fhMCEOverlapType) ;
1253480f 6094
b2e375c7 6095 fhMCEOverlapTypeMatch = new TH2F("hMCEOverlapTypeMatched","Kind of overlap particle, charged clusters",
1253480f 6096 nptbins,ptmin,ptmax,5,0,5);
b2e375c7 6097 //fhMCEOverlapTypeMatch ->SetYTitle("Overlap Type");
6098 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(1 ,"#gamma");
6099 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(2 ,"e^{#pm}");
6100 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}");
6101 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(4 ,"hadron^{0}");
6102 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(5 ,"??");
25330263 6103 fhMCEOverlapTypeMatch->SetXTitle("Cluster #it{E} (GeV)");
b2e375c7 6104 outputContainer->Add(fhMCEOverlapTypeMatch) ;
1253480f 6105
b2e375c7 6106 }// MC analysis, check overlaps
6107
ce49dd72 6108
b583134f 6109 if(IsDataMC())
6110 {
6111 for(Int_t inlm = 0; inlm < 3; inlm++)
6112 {
6113 fhAsyMCGenRecoDiffMCPi0[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0",snlm[inlm].Data()),
25330263 6114 Form("Reconstructed - Generated asymmetry with #it{NLM}=%d vs E, MC Pi0",inlm),
b583134f 6115 nptbins,ptmin,ptmax,200,-1,1);
25330263 6116 fhAsyMCGenRecoDiffMCPi0[inlm]->SetYTitle("#it{A}_{reco} - #it{A}_{gen}");
6117 fhAsyMCGenRecoDiffMCPi0[inlm]->SetXTitle("#it{E} (GeV)");
b583134f 6118 outputContainer->Add(fhAsyMCGenRecoDiffMCPi0[inlm]) ;
6119
6120 fhAsyMCGenRecoDiffMCPi0Conv[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0Conv",snlm[inlm].Data()),
25330263 6121 Form("Reconstructed - Generated asymmetry with #it{NLM}=%d vs E, MC Pi0Conv",inlm),
b583134f 6122 nptbins,ptmin,ptmax,200,-1,1);
25330263 6123 fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetYTitle("#it{A}_{reco} - #it{A}_{gen}");
6124 fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetXTitle("#it{E} (GeV)");
b583134f 6125 outputContainer->Add(fhAsyMCGenRecoDiffMCPi0Conv[inlm]) ;
6126 }
6127 }
6128
cb99fa55 6129 if(fFillArmenterosHisto)
6130 {
be894c1d 6131 Int_t narmbins = 400;
6132 Float_t armmin = 0;
6133 Float_t armmax = 0.4;
6134
ed10b649 6135 for(Int_t i = 0; i < 7; i++) // MC bin
cb99fa55 6136 {
6137 for(Int_t j = 0; j < 4; j++) // E bin
6138 {
6139 fhArmNLocMax1[i][j] = new TH2F(Form("hArmNLocMax1EBin%d%s",j,pname[i].Data()),
25330263 6140 Form("Armenteros of splitted cluster with #it{NLM}=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6141 200, -1, 1, narmbins,armmin,armmax);
25330263 6142 fhArmNLocMax1[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6143 fhArmNLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6144 outputContainer->Add(fhArmNLocMax1[i][j]) ;
6145
6146 fhArmNLocMax2[i][j] = new TH2F(Form("hArmNLocMax2EBin%d%s",j,pname[i].Data()),
25330263 6147 Form("Armenteros of splitted cluster with #it{NLM}=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6148 200, -1, 1, narmbins,armmin,armmax);
25330263 6149 fhArmNLocMax2[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6150 fhArmNLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6151 outputContainer->Add(fhArmNLocMax2[i][j]) ;
6152
6153 fhArmNLocMaxN[i][j] = new TH2F(Form("hArmNLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6154 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6155 200, -1, 1, narmbins,armmin,armmax);
25330263 6156 fhArmNLocMaxN[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6157 fhArmNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6158 outputContainer->Add(fhArmNLocMaxN[i][j]) ;
6159
c7e9a4e9 6160 if(asyOn || m02On)
cb99fa55 6161 {
6162 fhArmAfterCutsNLocMax1[i][j] = new TH2F(Form("hArmAfterCutsNLocMax1EBin%d%s",j,pname[i].Data()),
25330263 6163 Form("Armenteros of splitted cluster with #it{NLM}=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6164 200, -1, 1, narmbins,armmin,armmax);
25330263 6165 fhArmAfterCutsNLocMax1[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6166 fhArmAfterCutsNLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6167 outputContainer->Add(fhArmAfterCutsNLocMax1[i][j]) ;
6168
6169 fhArmAfterCutsNLocMax2[i][j] = new TH2F(Form("hArmAfterCutsNLocMax2EBin%d%s",j,pname[i].Data()),
25330263 6170 Form("Armenteros of splitted cluster with #it{NLM}=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6171 200, -1, 1, narmbins,armmin,armmax);
25330263 6172 fhArmAfterCutsNLocMax2[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6173 fhArmAfterCutsNLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6174 outputContainer->Add(fhArmAfterCutsNLocMax2[i][j]) ;
6175
6176 fhArmAfterCutsNLocMaxN[i][j] = new TH2F(Form("hArmAfterCutsNLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6177 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6178 200, -1, 1, narmbins,armmin,armmax);
25330263 6179 fhArmAfterCutsNLocMaxN[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6180 fhArmAfterCutsNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6181 outputContainer->Add(fhArmAfterCutsNLocMaxN[i][j]) ;
6182 }
6183
6184 fhArmPi0NLocMax1[i][j] = new TH2F(Form("hArmPi0NLocMax1EBin%d%s",j,pname[i].Data()),
25330263 6185 Form("Armenteros of splitted cluster with #it{NLM}=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6186 200, -1, 1, narmbins,armmin,armmax);
25330263 6187 fhArmPi0NLocMax1[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6188 fhArmPi0NLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6189 outputContainer->Add(fhArmPi0NLocMax1[i][j]) ;
6190
6191 fhArmPi0NLocMax2[i][j] = new TH2F(Form("hArmPi0NLocMax2EBin%d%s",j,pname[i].Data()),
25330263 6192 Form("Armenteros of splitted cluster with #it{NLM}=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6193 200, -1, 1, narmbins,armmin,armmax);
25330263 6194 fhArmPi0NLocMax2[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6195 fhArmPi0NLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6196 outputContainer->Add(fhArmPi0NLocMax2[i][j]) ;
6197
6198 fhArmPi0NLocMaxN[i][j] = new TH2F(Form("hArmPi0NLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6199 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6200 200, -1, 1, narmbins,armmin,armmax);
25330263 6201 fhArmPi0NLocMaxN[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6202 fhArmPi0NLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6203 outputContainer->Add(fhArmPi0NLocMaxN[i][j]) ;
6204
6205 }
6206 }
6207 }
6208
992b14a7 6209 return outputContainer ;
6210
6211}
6212
b2e375c7 6213//_____________________________________________________________________________
4914e781 6214void AliAnaInsideClusterInvariantMass::GetMCIndex(AliVCluster* cluster,
6215 Int_t & mcindex, Int_t & tag)
b2e375c7 6216{
6217
6218 // Assign mc index depending on MC bit set, to be used in histograms arrays
1253480f 6219
9a2ff511 6220 tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader(),fCalorimeter);
b2e375c7 6221
6222 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) &&
6223 !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPi0;
6224 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) ) mcindex = kmcPi0Conv;
6225 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta) ) mcindex = kmcEta;
6226 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
6227 !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPhoton;
6228 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
6229 GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcConversion;
cb99fa55 6230 else if (!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron) ) mcindex = kmcHadron;
6231
6232 //printf("MC index %d\n",mcindex);
b2e375c7 6233
6234}
6235
b94e038e 6236//____________________________________________________________________________________________
6237void AliAnaInsideClusterInvariantMass::GetMCPrimaryKine(AliVCluster* cluster, Int_t mcindex,
6238 Int_t mctag, Bool_t matched,
6239 Float_t & eprim, Float_t & asymGen,
6240 Float_t & angleGen, Int_t & noverlaps )
b2e375c7 6241{
6242 // Check origin of the candidates, get primary kinematics if overlapped meson decay
6243
b2e375c7 6244 Bool_t ok = kFALSE;
6245 Int_t mcLabel = cluster->GetLabel();
6246
6247 TLorentzVector primary = GetMCAnalysisUtils()->GetMother(mcLabel,GetReader(),ok);
6248 eprim = primary.E();
6249
36769d30 6250 Int_t mesonLabel = -1;
6251
b2e375c7 6252 if(mcindex == kmcPi0 || mcindex == kmcEta || mcindex == kmcPi0Conv)
6253 {
6254 if(mcindex == kmcPi0 || mcindex == kmcPi0Conv)
6255 {
0186b6a2 6256 GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,111,GetReader(),asymGen,angleGen,ok);
6257 asymGen = TMath::Abs(asymGen);
36769d30 6258 TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,111,GetReader(),ok,mesonLabel);
b2e375c7 6259 if(grandmom.E() > 0 && ok) eprim = grandmom.E();
6260 }
6261 else
6262 {
0186b6a2 6263 GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,221,GetReader(),asymGen,angleGen,ok);
6264 asymGen = TMath::Abs(asymGen);
36769d30 6265 TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,221,GetReader(),ok,mesonLabel);
b2e375c7 6266 if(grandmom.E() > 0 && ok) eprim = grandmom.E();
6267 }
6268 }
6269
6270 if(!fFillMCOverlapHisto) return;
36769d30 6271
4914e781 6272 const UInt_t nlabels = cluster->GetNLabels();
6273 Int_t overpdg[nlabels];
6274 noverlaps = GetMCAnalysisUtils()->GetNOverlaps(cluster->GetLabels(), nlabels,mctag,mesonLabel,GetReader(),overpdg);
6275
6276 for(Int_t iover = 0; iover < noverlaps; iover++)
6277 {
36769d30 6278 Float_t histobin = -1;
4914e781 6279 Int_t mpdg = overpdg[iover];
6280
36769d30 6281 if (mpdg==22) histobin = 0.5;
6282 else if(TMath::Abs(mpdg)==11) histobin = 1.5;
6283 else if(mpdg==-999999) histobin = 4.5;
6284 else
6285 {
6286 Double_t charge = TDatabasePDG::Instance()->GetParticle(mpdg)->Charge();
6287 if(TMath::Abs(charge) > 0 ) histobin = 2.5;
6288 else histobin = 3.5;
6289 //printf("charge %f\n",charge);
6290 }
6291
6292 //printf("\t pdg = %d, histobin %2.1f\n",mpdg,histobin);
6293 if(histobin > 0)
6294 {
6295 if(matched)fhMCEOverlapType ->Fill(cluster->E(),histobin);
6296 else fhMCEOverlapTypeMatch->Fill(cluster->E(),histobin);
6297 }
b2e375c7 6298 }
b2e375c7 6299}
6300
992b14a7 6301//___________________________________________
6302void AliAnaInsideClusterInvariantMass::Init()
b2e375c7 6303{
992b14a7 6304 //Init
6305 //Do some checks
a6d3b0a8 6306
3c1d9afb 6307 if(fCalorimeter == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD())
6308 {
a6d3b0a8 6309 AliFatal("!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n");
992b14a7 6310 }
3c1d9afb 6311 else if(fCalorimeter == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD())
6312 {
a6d3b0a8 6313 AliFatal("!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n");
992b14a7 6314 }
6315
3c1d9afb 6316 if( GetReader()->GetDataType() == AliCaloTrackReader::kMC )
6317 {
a6d3b0a8 6318 AliFatal("!!STOP: You want to use pure MC data!!\n");
992b14a7 6319 }
6320
6321}
6322
6323//_____________________________________________________
6324void AliAnaInsideClusterInvariantMass::InitParameters()
6325{
6326 //Initialize the parameters of the analysis.
6327 AddToHistogramsName("AnaPi0InsideClusterInvariantMass_");
6328
6329 fCalorimeter = "EMCAL" ;
29ca9cad 6330
992b14a7 6331 fMinNCells = 4 ;
2cb134fb 6332 fMinBadDist = 2 ;
dbe09c26 6333
b2e375c7 6334 fHistoECut = 8 ;
6335
5cd814a9 6336 fSSWeightN = 10;
6337 fSSWeight [0] = 4.00; fSSWeight [1] = 4.10; fSSWeight [2] = 4.20; fSSWeight [3] = 4.30; fSSWeight [4] = 4.35;
6338 fSSWeight [5] = 4.40; fSSWeight [6] = 4.45; fSSWeight [7] = 4.50; fSSWeight [8] = 4.55; fSSWeight [9] = 4.60;
6339 fSSWeight[10] = 4.70; fSSWeight[11] = 4.80; fSSWeight[12] = 4.90; fSSWeight[13] = 5.00; fSSWeight[14] = 5.10;
6340 fSSWeight[15] = 5.20; fSSWeight[16] = 5.50; fSSWeight[17] = 5.75; fSSWeight[18] = 6.00; fSSWeight[19] = 7.00;
19391b8c 6341
5cd814a9 6342 fSSECellCutN = 10;
6343 fSSECellCut [0] = 0.05; fSSECellCut [1] = 0.06; fSSECellCut [2] = 0.07; fSSECellCut [3] = 0.08; fSSECellCut [4] = 0.09;
6344 fSSECellCut [5] = 0.10; fSSECellCut [6] = 0.11; fSSECellCut [7] = 0.12; fSSECellCut [8] = 0.13; fSSECellCut [9] = 0.14;
6345 fSSECellCut[10] = 0.15; fSSECellCut[11] = 0.16; fSSECellCut[12] = 0.17; fSSECellCut[13] = 0.18; fSSECellCut[14] = 0.19;
6346 fSSECellCut[15] = 0.20; fSSECellCut[16] = 0.21; fSSECellCut[17] = 0.22; fSSECellCut[18] = 0.23; fSSECellCut[19] = 0.24;
19391b8c 6347
ff6aa4ce 6348 fNLMSettingN = 5;
6349 fNLMMinE [0] = 0.10; fNLMMinE [1] = 0.20; fNLMMinE [2] = 0.35; fNLMMinE [3] = 0.50; fNLMMinE [4] = 1.00;
6350 fNLMMinDiff[0] = 0.03; fNLMMinDiff[1] = 0.05; fNLMMinDiff[2] = 0.10; fNLMMinDiff[3] = 0.15; fNLMMinDiff[4] = 0.20;
6351
09a5b22d 6352 fWSimu[0] = 1; // Default, do not correct, change to 1.05-1.1
6353 fWSimu[1] = 0; // Default, do not correct, change to 0.07
6354
992b14a7 6355}
6356
6357
6358//__________________________________________________________________
6359void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
6360{
6361 //Search for pi0 in fCalorimeter with shower shape analysis
6362
6363 TObjArray * pl = 0x0;
6364 AliVCaloCells* cells = 0x0;
6365
6366 //Select the Calorimeter of the photon
2cb134fb 6367 if(fCalorimeter == "PHOS")
6368 {
992b14a7 6369 pl = GetPHOSClusters();
6370 cells = GetPHOSCells();
6371 }
2cb134fb 6372 else if (fCalorimeter == "EMCAL")
6373 {
992b14a7 6374 pl = GetEMCALClusters();
6375 cells = GetEMCALCells();
6376 }
6377
3c1d9afb 6378 if(!pl || !cells)
6379 {
992b14a7 6380 Info("MakeAnalysisFillHistograms","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data());
6381 return;
6382 }
6383
6384 if(fCalorimeter == "PHOS") return; // Not implemented for PHOS yet
6385
2cb134fb 6386 for(Int_t icluster = 0; icluster < pl->GetEntriesFast(); icluster++)
6387 {
992b14a7 6388 AliVCluster * cluster = (AliVCluster*) (pl->At(icluster));
6389
b2e375c7 6390 //-------------------------------------------
6391 // Get cluster parameters, do some rejection
6392 //-------------------------------------------
8edbd100 6393
992b14a7 6394 Float_t en = cluster->E();
6395 Float_t l0 = cluster->GetM02();
6396 Int_t nc = cluster->GetNCells();
2cb134fb 6397 Float_t bd = cluster->GetDistanceToBadChannel() ;
d2655d46 6398
2cb134fb 6399 //If too small or big E or low number of cells, or close to a bad channel skip it
b2e375c7 6400
8edbd100 6401 if( en < GetMinEnergy() || en > GetMaxEnergy() || nc < fMinNCells || bd < fMinBadDist) continue ;
2cb134fb 6402
83351853 6403 //printf("en %2.3f GetMinEnergy() %2.3f, GetMaxEnergy() %2.3f , nc %d fMinNCells %d\n",en, GetMinEnergy(),GetMaxEnergy(),nc ,fMinNCells);
6404
b2e375c7 6405 // Track-cluster matching
6406
6407 Bool_t matched = IsTrackMatched(cluster,GetReader()->GetInputEvent());
6408 if(!fFillTMHisto && matched) continue ;
6409
6410 // Get cluster angles
6411
9554fc65 6412 TLorentzVector lv;
6413 cluster->GetMomentum(lv, GetVertex(0));
6414 Float_t eta = lv.Eta();
6415 Float_t phi = lv.Phi();
6416 if(phi<0) phi=+TMath::TwoPi();
6417
2cb134fb 6418 //printf("en %2.2f, GetMinEnergy() %2.2f, GetMaxEnergy() %2.2f, nc %d, fMinNCells %d, bd %2.2f, fMinBadDist %2.2f\n",
6419 // en,GetMinEnergy(), GetMaxEnergy(), nc, fMinNCells, bd, fMinBadDist);
6420
ff6aa4ce 6421 if(fFillNLMDiffCutHisto)
6422 {
6423 FillNLMDiffCutHistograms(cluster,cells,matched);
58a18c5d 6424 return;
ff6aa4ce 6425 }
6426
b2e375c7 6427 // Get PID, N local maximum, *** split cluster ***
d2655d46 6428
3c1d9afb 6429 Int_t nMax = 0;
bfdcf7fb 6430 Double_t mass = 0., angle = 0.;
cb99fa55 6431 TLorentzVector lv1, lv2;
4914e781 6432 Int_t absId1 =-1; Int_t absId2 =-1;
6433 Float_t distbad1 =-1; Float_t distbad2 =-1;
6434 Bool_t fidcut1 = 0; Bool_t fidcut2 = 0;
b2e375c7 6435
3c1d9afb 6436 Int_t pidTag = GetCaloPID()->GetIdentifiedParticleTypeFromClusterSplitting(cluster,cells,GetCaloUtils(),
19391b8c 6437 GetVertex(0), nMax, mass, angle,
cb99fa55 6438 lv1,lv2,absId1,absId2,
4914e781 6439 distbad1,distbad2,fidcut1,fidcut2);
5c46c992 6440 if (nMax <= 0)
6441 {
de454976 6442 if(GetDebug() > 0 )
a6d3b0a8 6443 Info("MakeAnalysisFillHistograms","No local maximum found! It did not pass CaloPID selection criteria \n");
5c46c992 6444
4914e781 6445 continue;
992b14a7 6446 }
6447
ce49dd72 6448 // Set some index for array histograms
6449
6450 Int_t inlm = -1;
6451 if (nMax == 1) inlm = 0;
6452 else if(nMax == 2) inlm = 1;
6453 else if(nMax > 2) inlm = 2;
a6d3b0a8 6454 else Info("MakeAnalysisFillHistograms","Wrong N local maximum -> %d, n cells in cluster %d \n",nMax,nc);
ce49dd72 6455
4914e781 6456 // Skip events where one of the new clusters (lowest energy) is close to an EMCal border or a bad channel
1253480f 6457 if( (fCheckSplitDistToBad) &&
6458 (!fidcut2 || !fidcut1 || distbad1 < fMinBadDist || distbad2 < fMinBadDist))
4914e781 6459 {
6460 if(GetDebug() > 1)
a6d3b0a8 6461 Info("MakeAnalysisFillHistograms","Dist to bad channel cl1 %f, cl2 %f; fid cl1 %d, cl2 %d \n",
4914e781 6462 distbad1,distbad2, fidcut1,fidcut2);
ce49dd72 6463
6464 if(distbad1 < fMinBadDist || distbad2 < fMinBadDist)
6465 {
6466 fhMassBadDistClose[inlm]->Fill(en,mass);
6467 fhM02BadDistClose [inlm]->Fill(en,l0 );
6468 }
6469
6470 if(!fidcut1 || !fidcut2)
6471 {
6472 fhMassOnBorder[inlm]->Fill(en,mass);
6473 fhM02OnBorder [inlm]->Fill(en,l0 );
6474 }
6475
4914e781 6476 continue ;
6477 }
6478
b2e375c7 6479 // Get sub-cluster parameters
6480
cb99fa55 6481 Float_t e1 = lv1.Energy();
6482 Float_t e2 = lv2.Energy();
cfdf2b91 6483
a1fd1b69 6484 Double_t tof1 = cells->GetCellTime(absId1);
6485 GetCaloUtils()->RecalibrateCellTime(tof1, fCalorimeter, absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
6486 tof1*=1.e9;
6487
6488 Double_t tof2 = cells->GetCellTime(absId2);
6489 GetCaloUtils()->RecalibrateCellTime(tof2, fCalorimeter, absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber());
6490 tof2*=1.e9;
6491
6492 Double_t t12diff = tof1-tof2;
6493
fc01318e 6494 Float_t splitFrac = (e1+e2)/en;
cfdf2b91 6495
e671adc2 6496 Float_t asym = -10;
6497 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
29ca9cad 6498
b2e375c7 6499 //
6500
6501 Int_t ebin = -1;
6502 if(en > 8 && en <= 12) ebin = 0;
6503 if(en > 12 && en <= 16) ebin = 1;
6504 if(en > 16 && en <= 20) ebin = 2;
6505 if(en > 20) ebin = 3;
6506
1253480f 6507 // MC data histograms and some related calculations
6508 // mc tag, n overlaps, asym of generated mesons
b2e375c7 6509
0186b6a2 6510 Int_t mcindex = -1;
6511 Int_t mctag = -1;
6512 Float_t eprim = -1;
6513 Float_t asymGen = -2;
6514 Float_t angleGen = 2000;
6515 Int_t noverlaps = 0;
b2e375c7 6516
b2e375c7 6517 if(IsDataMC())
1253480f 6518 {
6519 // MC indexes
b2e375c7 6520
1253480f 6521 GetMCIndex(cluster,mcindex,mctag);
6522
6523 // MC primary kine, generation fractions
b2e375c7 6524
0186b6a2 6525 GetMCPrimaryKine(cluster,mcindex,mctag,matched,eprim,asymGen,angleGen,noverlaps);
1253480f 6526
6527 // For cluster with MC pi0 and more than 1 maxima
b2e375c7 6528
cb99fa55 6529 }
5c46c992 6530
b2e375c7 6531 //
2a77f6f4 6532
1253480f 6533 FillHistograms1(en, e1, e2, nMax, mass, l0, eta, phi, matched, mcindex);
4914e781 6534
6535 //
6536
1253480f 6537 if(fFillNCellHisto)
6538 FillNCellHistograms(nc,en, nMax,matched, mcindex,mass,l0);
d2655d46 6539
b2e375c7 6540 //
bb2d339b 6541
1253480f 6542 if(fFillSSExtraHisto)
cb99fa55 6543 FillSSExtraHistograms(cluster, nMax, matched,mcindex,mass,ebin) ;
d2655d46 6544
b2e375c7 6545 //
1253480f 6546
cb99fa55 6547 if(!matched && ebin >= 0 && fFillEbinHisto)
1253480f 6548 FillEBinHistograms(ebin,nMax,mcindex,splitFrac,mass,asym,l0);
fc01318e 6549
b2e375c7 6550 //
6551
1253480f 6552 if(fFillAngleHisto)
a6d3b0a8 6553 FillAngleHistograms(nMax,matched,mcindex,en,e1,e2,angle,mass,angleGen,l0, asym,pidTag,noverlaps);
1253480f 6554
cb99fa55 6555 if(fFillArmenterosHisto && ebin >= 0)
29555e96 6556 FillArmenterosHistograms(nMax, ebin, mcindex, en, lv1, lv2, l0, pidTag);
6557
6558 if(fFillThetaStarHisto)
6559 FillThetaStarHistograms(nMax,matched,mcindex, en, lv1, lv2, l0, pidTag);
6560
cb99fa55 6561
26680f06 6562 //---------------------------------------------------------------------
1253480f 6563 // From here start applying some cuts
26680f06 6564 //---------------------------------------------------------------------
cb99fa55 6565
6566 // If set, check just on MC clusters when SS cut is applied
6567 if( IsDataMC() && mcindex > 0 && mcindex < 7 && GetCaloPID()->IsInM02Range(l0) )
6568 {
6569 // For cluster with MC pi0 and more than 1 maxima
6570
6571 if(fFillMCOverlapHisto)
6572 CheckLocalMaximaMCOrigin(cluster, mcindex,noverlaps,e1,e2,mass);
6573 //l0, l1, l2);
6574
6575 //
6576
6577 if(fFillMCHisto)
6578 FillMCHistograms(en,e1,e2,ebin,mcindex,noverlaps,l0,mass,
6579 nMax,matched,splitFrac, asym, eprim,asymGen);
6580
6581 //
6582
6583 if(fFillMCOverlapHisto)
6584 FillMCOverlapHistograms(en,eprim,nc,mass,l0,asym,splitFrac,inlm,ebin,matched,mcindex,noverlaps);
6585
6586 }
6587
6588 // Fill few histograms, some still without cuts
1253480f 6589 FillHistograms2(en, eprim, e1, e2, nMax, mass, l0, matched, mcindex);
26680f06 6590
1253480f 6591 if(pidTag==AliCaloPID::kPi0)
b2e375c7 6592 {
1253480f 6593 FillIdPi0Histograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex);
17f5b4b6 6594
5cd814a9 6595 if(fFillSSWeightHisto && !matched)
1253480f 6596 FillSSWeightHistograms(cluster, inlm, absId1, absId2);
cc909e6f 6597
6598 if(fFillTMHisto && fFillTMResidualHisto)
6599 FillTrackMatchingHistograms(cluster,nMax,mcindex);
6600
cb99fa55 6601 if(fFillMCOverlapHisto && IsDataMC() && mcindex > 0 && mcindex < 7 && !matched)
cc909e6f 6602 {
6603 if (noverlaps == 0) fhMCEEpriOverlap0IdPi0 [inlm][mcindex]->Fill(en, eprim);
6604 else if(noverlaps == 1) fhMCEEpriOverlap1IdPi0 [inlm][mcindex]->Fill(en, eprim);
6605 else if(noverlaps > 1) fhMCEEpriOverlapNIdPi0 [inlm][mcindex]->Fill(en, eprim);
6606 }
167f2534 6607 }
1253480f 6608 else if(fFillIdEtaHisto && pidTag==AliCaloPID::kEta)
5c46c992 6609 {
1253480f 6610 FillIdEtaHistograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex);
243c2909 6611 }
1253480f 6612 else if(fFillIdConvHisto && pidTag==AliCaloPID::kPhoton)
5c46c992 6613 {
1253480f 6614 FillIdConvHistograms(en, nMax, asym, mass, l0, matched, mcindex);
243c2909 6615 }
6616
992b14a7 6617 }//loop
6618
a6d3b0a8 6619 if(GetDebug() > 1) Info("MakeAnalysisFillHistograms","END \n");
e23a0471 6620
992b14a7 6621}
6622
6623//______________________________________________________________________
6624void AliAnaInsideClusterInvariantMass::Print(const Option_t * opt) const
6625{
6626 //Print some relevant parameters set for the analysis
6627 if(! opt)
6628 return;
6629
6630 printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
745913ae 6631 AliAnaCaloTrackCorrBaseClass::Print("");
243c2909 6632 printf("Calorimeter = %s\n", fCalorimeter.Data()) ;
19391b8c 6633 if(GetCaloUtils()) printf("Loc. Max. E > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutE());
6634 if(GetCaloUtils()) printf("Loc. Max. E Diff > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutEDiff());
cfc19369 6635 printf("Min. N Cells =%d \n", fMinNCells) ;
6636 printf("Min. Dist. to Bad =%1.1f \n", fMinBadDist) ;
19391b8c 6637 if(fFillSSWeightHisto) printf(" N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN);
6638
992b14a7 6639 printf(" \n") ;
6640
6641}
6642
19391b8c 6643//___________________________________________________________________________________________________________________
6644void AliAnaInsideClusterInvariantMass::RecalculateClusterShowerShapeParametersWithCellCut(const AliEMCALGeometry * geom,
6645 AliVCaloCells* cells,
6646 AliVCluster * cluster,
6647 Float_t & l0, Float_t & l1,
6648 Float_t & disp, Float_t & dEta, Float_t & dPhi,
6649 Float_t & sEta, Float_t & sPhi, Float_t & sEtaPhi,
6650 Float_t eCellMin)
6651{
6652 // Calculates new center of gravity in the local EMCAL-module coordinates
6653 // and tranfers into global ALICE coordinates
6654 // Calculates Dispersion and main axis
6655
6656 if(!cluster)
6657 {
6658 AliInfo("Cluster pointer null!");
6659 return;
6660 }
6661
6662 Double_t eCell = 0.;
6663 Float_t fraction = 1.;
6664 Float_t recalFactor = 1.;
6665
6666 Int_t iSupMod = -1;
6667 Int_t iTower = -1;
6668 Int_t iIphi = -1;
6669 Int_t iIeta = -1;
6670 Int_t iphi = -1;
6671 Int_t ieta = -1;
6672 Double_t etai = -1.;
6673 Double_t phii = -1.;
6674
6675 Int_t nstat = 0 ;
6676 Float_t wtot = 0.;
6677 Double_t w = 0.;
6678 Double_t etaMean = 0.;
6679 Double_t phiMean = 0.;
3ae72bd8 6680
09a5b22d 6681 Bool_t shared = GetCaloUtils()-> IsClusterSharedByTwoSuperModules(geom,cluster);
3ae72bd8 6682
09a5b22d 6683 Float_t energy = GetCaloUtils()->RecalibrateClusterEnergy(cluster, cells);
6684
6685 Float_t simuTotWeight = 0;
6686 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
19391b8c 6687 {
09a5b22d 6688 simuTotWeight = GetCaloUtils()->RecalibrateClusterEnergyWeightCell(cluster, cells,energy);
6689 simuTotWeight/= energy;
6690 }
19391b8c 6691
6692 //Loop on cells, get weighted parameters
6693 for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
6694 {
6695 //Get from the absid the supermodule, tower and eta/phi numbers
6696 geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
6697 geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
6698
6699 //Get the cell energy, if recalibration is on, apply factors
6700 fraction = cluster->GetCellAmplitudeFraction(iDigit);
6701 if(fraction < 1e-4) fraction = 1.; // in case unfolding is off
6702
3ae72bd8 6703 if(GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn())
6704 {
6705 recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
6706 }
19391b8c 6707
6708 eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor;
6709
3ae72bd8 6710 // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2
6711 // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0
6712 if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols;
6713
9ae170de 6714 if(energy > 0 && eCell > eCellMin)
19391b8c 6715 {
09a5b22d 6716 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
6717 eCell*=GetCaloUtils()->GetMCECellClusFracCorrection(eCell,energy)/simuTotWeight;
6718
19391b8c 6719 w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy);
8edbd100 6720
6721 //correct weight, ONLY in simulation
09a5b22d 6722 w *= (fWSimu[0] - fWSimu[1] * w );
aa12888f 6723
19391b8c 6724 etai=(Double_t)ieta;
6725 phii=(Double_t)iphi;
6726
6727 if(w > 0.0)
6728 {
6729 wtot += w ;
6730 nstat++;
6731 //Shower shape
6732 sEta += w * etai * etai ;
6733 etaMean += w * etai ;
6734 sPhi += w * phii * phii ;
6735 phiMean += w * phii ;
6736 sEtaPhi += w * etai * phii ;
6737 }
6738 }
9ae170de 6739 else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy));
19391b8c 6740
6741 }//cell loop
6742
6743 //Normalize to the weight
6744 if (wtot > 0)
6745 {
6746 etaMean /= wtot ;
6747 phiMean /= wtot ;
6748 }
6749 else
6750 AliError(Form("Wrong weight %f\n", wtot));
6751
6752 //Calculate dispersion
6753 for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
6754 {
6755 //Get from the absid the supermodule, tower and eta/phi numbers
6756 geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
6757 geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
6758
6759 //Get the cell energy, if recalibration is on, apply factors
6760 fraction = cluster->GetCellAmplitudeFraction(iDigit);
6761 if(fraction < 1e-4) fraction = 1.; // in case unfolding is off
6762 if (GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn())
6763 {
6764 recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
6765 }
3ae72bd8 6766
19391b8c 6767 eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor;
6768
3ae72bd8 6769 // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2
6770 // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0
6771 if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols;
6772
9ae170de 6773 if(energy > 0 && eCell > eCellMin)
19391b8c 6774 {
09a5b22d 6775 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
6776 eCell*=GetCaloUtils()->GetMCECellClusFracCorrection(eCell,energy)/simuTotWeight;
6777
19391b8c 6778 w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy);
6779
8edbd100 6780 //correct weight, ONLY in simulation
09a5b22d 6781 w *= (fWSimu[0] - fWSimu[1] * w );
8edbd100 6782
19391b8c 6783 etai=(Double_t)ieta;
6784 phii=(Double_t)iphi;
6785 if(w > 0.0)
6786 {
6787 disp += w *((etai-etaMean)*(etai-etaMean)+(phii-phiMean)*(phii-phiMean));
6788 dEta += w * (etai-etaMean)*(etai-etaMean) ;
6789 dPhi += w * (phii-phiMean)*(phii-phiMean) ;
6790 }
6791 }
9ae170de 6792 else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy));
19391b8c 6793 }// cell loop
6794
6795 //Normalize to the weigth and set shower shape parameters
6796 if (wtot > 0 && nstat > 1)
6797 {
6798 disp /= wtot ;
6799 dEta /= wtot ;
6800 dPhi /= wtot ;
6801 sEta /= wtot ;
6802 sPhi /= wtot ;
6803 sEtaPhi /= wtot ;
6804
6805 sEta -= etaMean * etaMean ;
6806 sPhi -= phiMean * phiMean ;
6807 sEtaPhi -= etaMean * phiMean ;
6808
6809 l0 = (0.5 * (sEta + sPhi) + TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi ));
6810 l1 = (0.5 * (sEta + sPhi) - TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi ));
6811 }
6812 else
6813 {
6814 l0 = 0. ;
6815 l1 = 0. ;
6816 dEta = 0. ; dPhi = 0. ; disp = 0. ;
6817 sEta = 0. ; sPhi = 0. ; sEtaPhi = 0. ;
6818 }
6819
6820}
6821
992b14a7 6822