]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx
reduced histo binning
[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),
59 fFillMCHisto(kFALSE), fFillSSWeightHisto(kFALSE), fFillEbinHisto(0),
60 fFillMCOverlapHisto(0), fFillNCellHisto(0), fFillIdConvHisto(0),
29555e96 61 fFillIdEtaHisto(0), fFillHighMultHisto(0),
62 fFillArmenterosHisto(0), fFillThetaStarHisto(0),
0186b6a2 63 fSSWeightN(0), fSSECellCutN(0), fWSimu(0),
64 fhMassAsyCutNLocMax1(0), fhMassAsyCutNLocMax2(0), fhMassAsyCutNLocMaxN(0),
65 fhM02AsyCutNLocMax1(0), fhM02AsyCutNLocMax2(0), fhM02AsyCutNLocMaxN(0),
66 fhMassM02CutNLocMax1(0), fhMassM02CutNLocMax2(0), fhMassM02CutNLocMaxN(0),
67 fhAsymM02CutNLocMax1(0), fhAsymM02CutNLocMax2(0), fhAsymM02CutNLocMaxN(0),
2c36e041 68 fhMassEnCutNLocMax1(0), fhMassEnCutNLocMax2(0), fhMassEnCutNLocMaxN(0),
69 fhM02EnCutNLocMax1(0), fhM02EnCutNLocMax2(0), fhM02EnCutNLocMaxN(0),
70 fhAsymEnCutNLocMax1(0), fhAsymEnCutNLocMax2(0), fhAsymEnCutNLocMaxN(0),
a6d3b0a8 71 fhSplitEFracEnCutNLocMax1(0), fhSplitEFracEnCutNLocMax2(0), fhSplitEFracEnCutNLocMaxN(0),
0186b6a2 72 fhMassSplitECutNLocMax1(0), fhMassSplitECutNLocMax2(0), fhMassSplitECutNLocMaxN(0),
73 fhMCGenFracAfterCutsNLocMax1MCPi0(0), fhMCGenFracAfterCutsNLocMax2MCPi0(0), fhMCGenFracAfterCutsNLocMaxNMCPi0(0),
74 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMax2MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0(0),
75 fhNCellMassEHighNLocMax1MCPi0(0), fhNCellM02EHighNLocMax1MCPi0(0),
76 fhNCellMassELowNLocMax1MCPi0(0), fhNCellM02ELowNLocMax1MCPi0(0),
77 fhNCellMassEHighNLocMax2MCPi0(0), fhNCellM02EHighNLocMax2MCPi0(0),
78 fhNCellMassELowNLocMax2MCPi0(0), fhNCellM02ELowNLocMax2MCPi0(0),
79 fhNCellMassEHighNLocMaxNMCPi0(0), fhNCellM02EHighNLocMaxNMCPi0(0),
80 fhNCellMassELowNLocMaxNMCPi0(0), fhNCellM02ELowNLocMaxNMCPi0(0),
81 fhAnglePairPrimPi0RecoNLocMax1(0), fhAnglePairPrimPi0RecoNLocMax2(0), fhAnglePairPrimPi0RecoNLocMaxN(0),
82 fhAnglePairPrimPi0vsRecoNLocMax1(0), fhAnglePairPrimPi0vsRecoNLocMax2(0), fhAnglePairPrimPi0vsRecoNLocMaxN(0),
4e5a94c5 83 fhAnglePairPrimPi0OverM02NLocMax1(0), fhAnglePairPrimPi0OverM02NLocMax2(0), fhAnglePairPrimPi0OverM02NLocMaxN(0),
0186b6a2 84 fhCentralityPi0NLocMax1(0), fhCentralityEtaNLocMax1(0),
85 fhCentralityPi0NLocMax2(0), fhCentralityEtaNLocMax2(0),
86 fhCentralityPi0NLocMaxN(0), fhCentralityEtaNLocMaxN(0),
87 fhEventPlanePi0NLocMax1(0), fhEventPlaneEtaNLocMax1(0),
88 fhEventPlanePi0NLocMax2(0), fhEventPlaneEtaNLocMax2(0),
89 fhEventPlanePi0NLocMaxN(0), fhEventPlaneEtaNLocMaxN(0),
90 fhClusterEtaPhiNLocMax1(0), fhClusterEtaPhiNLocMax2(0), fhClusterEtaPhiNLocMaxN(0),
91 fhPi0EtaPhiNLocMax1(0), fhPi0EtaPhiNLocMax2(0), fhPi0EtaPhiNLocMaxN(0),
92 fhEtaEtaPhiNLocMax1(0), fhEtaEtaPhiNLocMax2(0), fhEtaEtaPhiNLocMaxN(0),
93 fhPi0EPairDiffTimeNLM1(0), fhPi0EPairDiffTimeNLM2(0), fhPi0EPairDiffTimeNLMN(0),
94 fhEtaEPairDiffTimeNLM1(0), fhEtaEPairDiffTimeNLM2(0), fhEtaEPairDiffTimeNLMN(0),
95 fhMCPi0HighNLMPair(0), fhMCPi0LowNLMPair(0),
96 fhMCPi0AnyNLMPair(0), fhMCPi0NoneNLMPair(0),
97 fhMCPi0HighNLMPairNoMCMatch(0), fhMCPi0LowNLMPairNoMCMatch(0),
98 fhMCPi0AnyNLMPairNoMCMatch(0), fhMCPi0NoneNLMPairNoMCMatch(0),
99 fhMCPi0HighNLMPairOverlap(0), fhMCPi0LowNLMPairOverlap(0),
100 fhMCPi0AnyNLMPairOverlap(0), fhMCPi0NoneNLMPairOverlap(0),
101 fhMCPi0HighNLMPairNoMCMatchOverlap(0), fhMCPi0LowNLMPairNoMCMatchOverlap(0),
102 fhMCPi0AnyNLMPairNoMCMatchOverlap(0), fhMCPi0NoneNLMPairNoMCMatchOverlap(0),
103 fhMCPi0DecayPhotonHitHighLM(0), fhMCPi0DecayPhotonAdjHighLM(0),
104 fhMCPi0DecayPhotonHitOtherLM(0), fhMCPi0DecayPhotonAdjOtherLM(0),
105 fhMCPi0DecayPhotonAdjacent(0), fhMCPi0DecayPhotonHitNoLM(0),
106 fhMCPi0DecayPhotonHitHighLMOverlap(0), fhMCPi0DecayPhotonAdjHighLMOverlap(0),
107 fhMCPi0DecayPhotonHitOtherLMOverlap(0), fhMCPi0DecayPhotonAdjOtherLMOverlap(0),
108 fhMCPi0DecayPhotonAdjacentOverlap(0), fhMCPi0DecayPhotonHitNoLMOverlap(0),
109 fhMCEOverlapType(0), fhMCEOverlapTypeMatch(0)
992b14a7 110{
111 //default ctor
112
113 // Init array of histograms
cb99fa55 114 for(Int_t i = 0; i < 7; i++)
5c46c992 115 {
116 for(Int_t j = 0; j < 2; j++)
117 {
5c46c992 118 fhMassNLocMax1[i][j] = 0;
119 fhMassNLocMax2[i][j] = 0;
120 fhMassNLocMaxN[i][j] = 0;
c7e9a4e9 121 fhMassSplitENLocMax1[i][j] = 0;
122 fhMassSplitENLocMax2[i][j] = 0;
123 fhMassSplitENLocMaxN[i][j] = 0;
5c46c992 124 fhNLocMax[i][j] = 0;
5c46c992 125 fhNLocMaxM02Cut[i][j] = 0;
cc909e6f 126 fhSplitClusterENLocMax [i][j] = 0;
127 fhSplitClusterEPi0NLocMax[i][j] = 0;
5c46c992 128 fhM02NLocMax1[i][j] = 0;
129 fhM02NLocMax2[i][j] = 0;
130 fhM02NLocMaxN[i][j] = 0;
131 fhNCellNLocMax1[i][j] = 0;
132 fhNCellNLocMax2[i][j] = 0;
133 fhNCellNLocMaxN[i][j] = 0;
c8710850 134 fhM02Pi0NLocMax1[i][j] = 0;
135 fhM02EtaNLocMax1[i][j] = 0;
136 fhM02ConNLocMax1[i][j] = 0;
137 fhM02Pi0NLocMax2[i][j] = 0;
138 fhM02EtaNLocMax2[i][j] = 0;
139 fhM02ConNLocMax2[i][j] = 0;
140 fhM02Pi0NLocMaxN[i][j] = 0;
141 fhM02EtaNLocMaxN[i][j] = 0;
142 fhM02ConNLocMaxN[i][j] = 0;
143
144 fhMassPi0NLocMax1[i][j] = 0;
145 fhMassEtaNLocMax1[i][j] = 0;
146 fhMassConNLocMax1[i][j] = 0;
147 fhMassPi0NLocMax2[i][j] = 0;
148 fhMassEtaNLocMax2[i][j] = 0;
149 fhMassConNLocMax2[i][j] = 0;
150 fhMassPi0NLocMaxN[i][j] = 0;
151 fhMassEtaNLocMaxN[i][j] = 0;
152 fhMassConNLocMaxN[i][j] = 0;
cb99fa55 153
1253480f 154 fhNCellPi0NLocMax1[i][j] = 0;
155 fhNCellEtaNLocMax1[i][j] = 0;
156 fhNCellPi0NLocMax2[i][j] = 0;
157 fhNCellEtaNLocMax2[i][j] = 0;
158 fhNCellPi0NLocMaxN[i][j] = 0;
159 fhNCellEtaNLocMaxN[i][j] = 0;
c8710850 160
161 fhAsyPi0NLocMax1[i][j] = 0;
162 fhAsyEtaNLocMax1[i][j] = 0;
163 fhAsyConNLocMax1[i][j] = 0;
164 fhAsyPi0NLocMax2[i][j] = 0;
165 fhAsyEtaNLocMax2[i][j] = 0;
166 fhAsyConNLocMax2[i][j] = 0;
167 fhAsyPi0NLocMaxN[i][j] = 0;
168 fhAsyEtaNLocMaxN[i][j] = 0;
169 fhAsyConNLocMaxN[i][j] = 0;
e671adc2 170
0137016b 171 fhMassM02NLocMax1[i][j]= 0;
172 fhMassM02NLocMax2[i][j]= 0;
c7e9a4e9 173 fhMassM02NLocMaxN[i][j]= 0;
174
175 fhMassSplitEPi0NLocMax1[i][j] = 0;
176 fhMassSplitEPi0NLocMax2[i][j] = 0;
177 fhMassSplitEPi0NLocMaxN[i][j] = 0;
178
179 fhMassSplitEAfterCutsNLocMax1[i][j] = 0;
180 fhMassSplitEAfterCutsNLocMax2[i][j] = 0;
181 fhMassSplitEAfterCutsNLocMaxN[i][j] = 0;
182
183
d2655d46 184 fhMassDispEtaNLocMax1[i][j]= 0;
185 fhMassDispEtaNLocMax2[i][j]= 0;
186 fhMassDispEtaNLocMaxN[i][j]= 0;
187 fhMassDispPhiNLocMax1[i][j]= 0;
188 fhMassDispPhiNLocMax2[i][j]= 0;
189 fhMassDispPhiNLocMaxN[i][j]= 0;
190 fhMassDispAsyNLocMax1[i][j]= 0;
191 fhMassDispAsyNLocMax2[i][j]= 0;
192 fhMassDispAsyNLocMaxN[i][j]= 0;
8e81c2cf 193
fc01318e 194 fhSplitEFractionNLocMax1[i][j]=0;
195 fhSplitEFractionNLocMax2[i][j]=0;
196 fhSplitEFractionNLocMaxN[i][j]=0;
197
29555e96 198 fhAnglePairNLocMax1 [i][j] = 0;
199 fhAnglePairNLocMax2 [i][j] = 0;
200 fhAnglePairNLocMaxN [i][j] = 0;
201
202 fhAnglePairAfterCutsNLocMax1[i][j] = 0;
203 fhAnglePairAfterCutsNLocMax2[i][j] = 0;
204 fhAnglePairAfterCutsNLocMaxN[i][j] = 0;
205
206 fhAnglePairPi0NLocMax1 [i][j] = 0;
207 fhAnglePairPi0NLocMax2 [i][j] = 0;
208 fhAnglePairPi0NLocMaxN [i][j] = 0;
209
210 fhAnglePairMassNLocMax1 [i][j] = 0;
211 fhAnglePairMassNLocMax2 [i][j] = 0;
212 fhAnglePairMassNLocMaxN [i][j] = 0;
d261ae67 213
214 fhAnglePairM02NLocMax1 [i][j] = 0;
215 fhAnglePairM02NLocMax2 [i][j] = 0;
216 fhAnglePairM02NLocMaxN [i][j] = 0;
29555e96 217
4e5a94c5 218 fhAnglePairOverM02NLocMax1 [i][j] = 0;
219 fhAnglePairOverM02NLocMax2 [i][j] = 0;
220 fhAnglePairOverM02NLocMaxN [i][j] = 0;
221
222 fhAnglePairOverM02NLocMax1Overlap0[i][j] = 0;
223 fhAnglePairOverM02NLocMax2Overlap0[i][j] = 0;
224 fhAnglePairOverM02NLocMaxNOverlap0[i][j] = 0;
225
29555e96 226 fhCosThStarNLocMax1 [i][j] = 0;
227 fhCosThStarNLocMax2 [i][j] = 0;
228 fhCosThStarNLocMaxN [i][j] = 0;
229
230 fhCosThStarAfterCutsNLocMax1[i][j] = 0;
231 fhCosThStarAfterCutsNLocMax2[i][j] = 0;
232 fhCosThStarAfterCutsNLocMaxN[i][j] = 0;
233
234 fhCosThStarPi0NLocMax1 [i][j] = 0;
235 fhCosThStarPi0NLocMax2 [i][j] = 0;
236 fhCosThStarPi0NLocMaxN [i][j] = 0;
0186b6a2 237
8e81c2cf 238 fhMCGenFracNLocMax1[i][j]= 0;
239 fhMCGenFracNLocMax2[i][j]= 0;
240 fhMCGenFracNLocMaxN[i][j]= 0;
4914e781 241
242 fhMCGenFracNLocMax1NoOverlap[i][j]= 0;
243 fhMCGenFracNLocMax2NoOverlap[i][j]= 0;
244 fhMCGenFracNLocMaxNNoOverlap[i][j]= 0;
5094c724 245
246 fhMCGenSplitEFracNLocMax1[i][j]= 0;
247 fhMCGenSplitEFracNLocMax2[i][j]= 0;
bb2d339b 248 fhMCGenSplitEFracNLocMaxN[i][j]= 0;
4914e781 249
250 fhMCGenSplitEFracNLocMax1NoOverlap[i][j]= 0;
251 fhMCGenSplitEFracNLocMax2NoOverlap[i][j]= 0;
252 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]= 0;
bb2d339b 253
254 fhMCGenEFracvsSplitEFracNLocMax1[i][j]= 0;
255 fhMCGenEFracvsSplitEFracNLocMax2[i][j]= 0;
256 fhMCGenEFracvsSplitEFracNLocMaxN[i][j]= 0;
257
258 fhMCGenEvsSplitENLocMax1[i][j]= 0;
259 fhMCGenEvsSplitENLocMax2[i][j]= 0;
e671adc2 260 fhMCGenEvsSplitENLocMaxN[i][j]= 0;
261
262 fhAsymNLocMax1 [i][j] = 0;
263 fhAsymNLocMax2 [i][j] = 0;
264 fhAsymNLocMaxN [i][j] = 0;
74858845 265
266 fhMassAfterCutsNLocMax1[i][j] = 0;
267 fhMassAfterCutsNLocMax2[i][j] = 0;
268 fhMassAfterCutsNLocMaxN[i][j] = 0;
cb99fa55 269
74858845 270
271 fhSplitEFractionAfterCutsNLocMax1[i][j] = 0 ;
272 fhSplitEFractionAfterCutsNLocMax2[i][j] = 0 ;
273 fhSplitEFractionAfterCutsNLocMaxN[i][j] = 0 ;
8e81c2cf 274 }
19391b8c 275
8e81c2cf 276 for(Int_t jj = 0; jj < 4; jj++)
277 {
53f2c382 278 fhM02MCGenFracNLocMax1Ebin[i][jj] = 0;
279 fhM02MCGenFracNLocMax2Ebin[i][jj] = 0;
280 fhM02MCGenFracNLocMaxNEbin[i][jj] = 0;
8e81c2cf 281
282 fhMassMCGenFracNLocMax1Ebin[i][jj]= 0;
283 fhMassMCGenFracNLocMax2Ebin[i][jj]= 0;
284 fhMassMCGenFracNLocMaxNEbin[i][jj]= 0;
53f2c382 285
fc01318e 286 fhMCGenFracNLocMaxEbin[i][jj] = 0;
53f2c382 287 fhMCGenFracNLocMaxEbinMatched[i][jj]= 0;
fc01318e 288
289 fhMassSplitEFractionNLocMax1Ebin[i][jj] = 0;
290 fhMassSplitEFractionNLocMax2Ebin[i][jj] = 0;
291 fhMassSplitEFractionNLocMaxNEbin[i][jj] = 0;
5c46c992 292 }
293
b2e375c7 294 fhTrackMatchedDEtaNLocMax1[i] = 0;
c8710850 295 fhTrackMatchedDPhiNLocMax1[i] = 0;
296 fhTrackMatchedDEtaNLocMax2[i] = 0;
297 fhTrackMatchedDPhiNLocMax2[i] = 0;
298 fhTrackMatchedDEtaNLocMaxN[i] = 0;
299 fhTrackMatchedDPhiNLocMaxN[i] = 0;
b2e375c7 300
301 fhTrackMatchedDEtaNLocMax1Pos[i] = 0;
302 fhTrackMatchedDPhiNLocMax1Pos[i] = 0;
303 fhTrackMatchedDEtaNLocMax2Pos[i] = 0;
304 fhTrackMatchedDPhiNLocMax2Pos[i] = 0;
305 fhTrackMatchedDEtaNLocMaxNPos[i] = 0;
306 fhTrackMatchedDPhiNLocMaxNPos[i] = 0;
307
308 fhTrackMatchedDEtaNLocMax1Neg[i] = 0;
309 fhTrackMatchedDPhiNLocMax1Neg[i] = 0;
310 fhTrackMatchedDEtaNLocMax2Neg[i] = 0;
311 fhTrackMatchedDPhiNLocMax2Neg[i] = 0;
312 fhTrackMatchedDEtaNLocMaxNNeg[i] = 0;
313 fhTrackMatchedDPhiNLocMaxNNeg[i] = 0;
243c2909 314
b2e375c7 315 for(Int_t nlm = 0; nlm < 3; nlm++)
316 {
317 fhMCEM02Overlap0 [nlm][i] = 0;
318 fhMCEM02Overlap1 [nlm][i] = 0;
319 fhMCEM02OverlapN [nlm][i] = 0;
320 fhMCEM02Overlap0Match[nlm][i] = 0;
321 fhMCEM02Overlap1Match[nlm][i] = 0;
322 fhMCEM02OverlapNMatch[nlm][i] = 0;
323
324 fhMCEMassOverlap0 [nlm][i] = 0;
325 fhMCEMassOverlap1 [nlm][i] = 0;
326 fhMCEMassOverlapN [nlm][i] = 0;
327 fhMCEMassOverlap0Match[nlm][i] = 0;
328 fhMCEMassOverlap1Match[nlm][i] = 0;
329 fhMCEMassOverlapNMatch[nlm][i] = 0;
83351853 330
4914e781 331 fhMCEAsymOverlap0 [nlm][i] = 0;
332 fhMCEAsymOverlap1 [nlm][i] = 0;
333 fhMCEAsymOverlapN [nlm][i] = 0;
334 fhMCEAsymOverlap0Match[nlm][i] = 0;
335 fhMCEAsymOverlap1Match[nlm][i] = 0;
336 fhMCEAsymOverlapNMatch[nlm][i] = 0;
337
74e3eb22 338 fhMCENCellOverlap0 [nlm][i] = 0;
339 fhMCENCellOverlap1 [nlm][i] = 0;
340 fhMCENCellOverlapN [nlm][i] = 0;
341 fhMCENCellOverlap0Match[nlm][i] = 0;
342 fhMCENCellOverlap1Match[nlm][i] = 0;
343 fhMCENCellOverlapNMatch[nlm][i] = 0;
344
4914e781 345 fhMCEEpriOverlap0 [nlm][i] = 0;
346 fhMCEEpriOverlap1 [nlm][i] = 0;
347 fhMCEEpriOverlapN [nlm][i] = 0;
348 fhMCEEpriOverlap0Match[nlm][i] = 0;
349 fhMCEEpriOverlap1Match[nlm][i] = 0;
350 fhMCEEpriOverlapNMatch[nlm][i] = 0;
cc909e6f 351
352 fhMCEEpriOverlap0IdPi0[nlm][i] = 0;
353 fhMCEEpriOverlap1IdPi0[nlm][i] = 0;
354 fhMCEEpriOverlapNIdPi0[nlm][i] = 0;
4914e781 355
83351853 356 fhMCESplitEFracOverlap0 [nlm][i] = 0;
357 fhMCESplitEFracOverlap1 [nlm][i] = 0;
358 fhMCESplitEFracOverlapN [nlm][i] = 0;
359 fhMCESplitEFracOverlap0Match[nlm][i] = 0;
360 fhMCESplitEFracOverlap1Match[nlm][i] = 0;
361 fhMCESplitEFracOverlapNMatch[nlm][i] = 0;
b2e375c7 362
363 fhMCENOverlaps [nlm][i] = 0;
364 fhMCENOverlapsMatch [nlm][i] = 0;
b583134f 365
b2e375c7 366 if(i > 3) continue ;
367
368 fhMCPi0MassM02Overlap0 [nlm][i] = 0;
369 fhMCPi0MassM02Overlap1 [nlm][i] = 0;
370 fhMCPi0MassM02OverlapN [nlm][i] = 0;
371 fhMCPi0MassM02Overlap0Match[nlm][i] = 0;
372 fhMCPi0MassM02Overlap1Match[nlm][i] = 0;
373 fhMCPi0MassM02OverlapNMatch[nlm][i] = 0;
374 }
992b14a7 375 }
376
5c46c992 377 for(Int_t i = 0; i < 2; i++)
378 {
e671adc2 379 fhSplitEFractionvsAsyNLocMax1[i] = 0;
380 fhSplitEFractionvsAsyNLocMax2[i] = 0;
381 fhSplitEFractionvsAsyNLocMaxN[i] = 0;
5c46c992 382 }
383
7b686344 384 for(Int_t i = 0; i < 4; i++)
385 {
386 fhMassM02NLocMax1Ebin[i] = 0 ;
387 fhMassM02NLocMax2Ebin[i] = 0 ;
388 fhMassM02NLocMaxNEbin[i] = 0 ;
b8eb40fc 389
390 fhMassAsyNLocMax1Ebin[i] = 0 ;
391 fhMassAsyNLocMax2Ebin[i] = 0 ;
392 fhMassAsyNLocMaxNEbin[i] = 0 ;
393
394 fhAsyMCGenRecoNLocMax1EbinPi0[i] = 0 ;
395 fhAsyMCGenRecoNLocMax2EbinPi0[i] = 0 ;
396 fhAsyMCGenRecoNLocMaxNEbinPi0[i] = 0 ;
d2655d46 397
398 fhMassDispEtaNLocMax1Ebin[i] = 0 ;
399 fhMassDispEtaNLocMax2Ebin[i] = 0 ;
400 fhMassDispEtaNLocMaxNEbin[i] = 0 ;
401
402 fhMassDispPhiNLocMax1Ebin[i] = 0 ;
403 fhMassDispPhiNLocMax2Ebin[i] = 0 ;
404 fhMassDispPhiNLocMaxNEbin[i] = 0 ;
405
406 fhMassDispAsyNLocMax1Ebin[i] = 0 ;
407 fhMassDispAsyNLocMax2Ebin[i] = 0 ;
408 fhMassDispAsyNLocMaxNEbin[i] = 0 ;
8e81c2cf 409
410 fhMCAsymM02NLocMax1MCPi0Ebin[i] = 0 ;
411 fhMCAsymM02NLocMax2MCPi0Ebin[i] = 0 ;
412 fhMCAsymM02NLocMaxNMCPi0Ebin[i] = 0 ;
7b686344 413 }
414
dbe09c26 415 for(Int_t nlm = 0; nlm < 3; nlm++)
416 {
b583134f 417
418 fhMCPi0DecayPhotonHitHighLMDiffELM1 [nlm] = 0 ;
419 fhMCPi0DecayPhotonAdjHighLMDiffELM1 [nlm] = 0 ;
420 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = 0 ;
421 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = 0 ;
422
423 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1 [nlm] = 0 ;
424 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1 [nlm] = 0 ;
425 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = 0 ;
426 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = 0 ;
427
428 fhMCPi0DecayPhotonHitHighLMDiffELM2 [nlm] = 0 ;
429 fhMCPi0DecayPhotonAdjHighLMDiffELM2 [nlm] = 0 ;
430 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = 0 ;
431 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = 0 ;
432
433 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2 [nlm] = 0 ;
434 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2 [nlm] = 0 ;
435 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = 0 ;
29555e96 436 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = 0 ;
437
438 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1 [nlm] = 0 ;
439 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1 [nlm] = 0 ;
440 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = 0 ;
441 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = 0 ;
b583134f 442
29555e96 443 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ;
444 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ;
445 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ;
446 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ;
447
448 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2 [nlm] = 0 ;
449 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2 [nlm] = 0 ;
450 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = 0 ;
451 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = 0 ;
452
453 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ;
454 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ;
455 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ;
456 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ;
457
458 fhMCPi0DecayPhotonHitHighLMMass [nlm] = 0 ;
b583134f 459 fhMCPi0DecayPhotonAdjHighLMMass [nlm] = 0 ;
460 fhMCPi0DecayPhotonHitOtherLMMass[nlm] = 0 ;
461 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = 0 ;
462 fhMCPi0DecayPhotonAdjacentMass [nlm] = 0 ;
463 fhMCPi0DecayPhotonHitNoLMMass [nlm] = 0 ;
464
465 fhMCPi0DecayPhotonHitHighLMOverlapMass [nlm] = 0 ;
466 fhMCPi0DecayPhotonAdjHighLMOverlapMass [nlm] = 0 ;
467 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = 0 ;
468 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = 0 ;
469 fhMCPi0DecayPhotonAdjacentOverlapMass [nlm] = 0 ;
470 fhMCPi0DecayPhotonHitNoLMOverlapMass [nlm] = 0 ;
471
dbe09c26 472 fhPi0CellE [nlm] = 0 ;
473 fhPi0CellEFrac [nlm] = 0 ;
474 fhPi0CellLogEFrac[nlm] = 0 ;
475
19391b8c 476 fhPi0CellEMaxEMax2Frac [nlm] = 0 ;
477 fhPi0CellEMaxClusterFrac [nlm] = 0 ;
478 fhPi0CellEMax2ClusterFrac[nlm] = 0 ;
479
480 fhPi0CellEMaxFrac [nlm] = 0 ;
481 fhPi0CellEMax2Frac[nlm] = 0 ;
482
dbe09c26 483 for(Int_t i = 0; i < 10; i++)
19391b8c 484 {
485 fhM02WeightPi0 [nlm][i] = 0;
486 fhM02ECellCutPi0[nlm][i] = 0;
487 }
ce49dd72 488
489 fhMassBadDistClose[nlm] = 0;
490 fhM02BadDistClose [nlm] = 0;
491 fhMassOnBorder [nlm] = 0;
492 fhM02OnBorder [nlm] = 0;
b583134f 493
494 fhAsyMCGenRecoDiffMCPi0 [nlm] = 0;
495 fhAsyMCGenRecoDiffMCPi0Conv[nlm] = 0;
496
dbe09c26 497 }
498
ed10b649 499 for(Int_t i = 0; i < 7; i++)
500 {
501 for(Int_t j = 0; j < 4; j++)
502 {
503
504 fhArmNLocMax1[i][j] = 0;
505 fhArmNLocMax2[i][j] = 0;
506 fhArmNLocMaxN[i][j] = 0;
507
508 fhArmPi0NLocMax1[i][j] = 0;
509 fhArmPi0NLocMax2[i][j] = 0;
510 fhArmPi0NLocMaxN[i][j] = 0;
511
512 fhArmAfterCutsNLocMax1[i][j] = 0;
513 fhArmAfterCutsNLocMax2[i][j] = 0;
514 fhArmAfterCutsNLocMaxN[i][j] = 0;
515
516 }
517 }
518
992b14a7 519 InitParameters();
19391b8c 520
992b14a7 521}
522
b94e038e 523//___________________________________________________________________________________________________________________
524void AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(AliVCluster* cluster, Int_t mcindex, Int_t noverlaps,
525 Float_t e1, Float_t e2, Float_t mass)
b583134f 526 //Float_t m02,
4914e781 527 //TLorentzVector l1, TLorentzVector l2)
b2e375c7 528{
529 // Check origin NLM tower of the cluster, when MC gives merged pi0
530
b2e375c7 531 if(mcindex != kmcPi0 && mcindex != kmcPi0Conv) return;
36769d30 532
b2e375c7 533 const UInt_t nc = cluster->GetNCells();
534 Int_t list[nc];
535 Float_t elist[nc];
536 Int_t nMax = GetCaloUtils()->GetNumberOfLocalMaxima(cluster, GetEMCALCells(),list, elist);
36769d30 537
4914e781 538
539 //// PRINTS /////
540
541 //if(mcindex==kmcPi0) printf("** Normal Pi0 **\n");
542 //if(mcindex==kmcPi0Conv) printf("** Converted Pi0 **\n");
543
544// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
b2e375c7 545// {
4914e781 546// 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",
547// nMax, noverlaps,mass,m02,
548// l1.E(),l1.Eta(),l1.Phi()*TMath::RadToDeg(),
549// l2.E(),l2.Eta(),l2.Phi()*TMath::RadToDeg(), (l1+l2).M());
36769d30 550//
4914e781 551// // Study the mothers of cluster
552// printf("Cluster MC labels %d \n", cluster->GetNLabels());
553// for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ )
36769d30 554// {
4914e781 555// Int_t mclabel = cluster->GetLabels()[ilab];
556//
557// Bool_t mOK = 0;
558// Int_t mpdg = -999999;
559// Int_t mstatus = -1;
560// Int_t grandLabel = -1;
561// TLorentzVector mother = GetMCAnalysisUtils()->GetMother(mclabel,GetReader(),mpdg,mstatus,mOK,grandLabel);
562//
563// printf("******** mother %d : Label %d, pdg %d; status %d, E %2.2f, Eta %2.2f, Phi %2.2f, ok %d, mother label %d\n",
564// ilab, mclabel, mpdg, mstatus,mother.E(), mother.Eta(),mother.Phi()*TMath::RadToDeg(),mOK,grandLabel);
565//
566// if( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 )
36769d30 567// {
4914e781 568// while( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 )
569// {
570// Int_t newLabel = -1;
571// TLorentzVector grandmother = GetMCAnalysisUtils()->GetMother(grandLabel,GetReader(),mpdg,mstatus,mOK,newLabel);
572// 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",
573// ilab, grandLabel, mpdg, mstatus,grandmother.E(), grandmother.Eta(), grandmother.Phi()*TMath::RadToDeg(),mOK,newLabel);
574// grandLabel = newLabel;
575//
576// }
36769d30 577// }
578// }
b2e375c7 579//
4914e781 580// printf("Cells in cluster %d\n",cluster->GetNCells() );
581// for(Int_t icell = 0; icell < cluster->GetNCells(); icell++)
582// {
583// Int_t absIdCell = cluster->GetCellAbsId(icell);
584// Int_t mcLabel = GetEMCALCells()->GetCellMCLabel(absIdCell);
585// GetReader()->RemapMCLabelForAODs(mcLabel);
586// Int_t ietac=-1; Int_t iphic = 0; Int_t rcuc = 0;
587// Int_t smc = GetModuleNumberCellIndexes(absIdCell,fCalorimeter, ietac, iphic, rcuc);
588//
589// 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);
590// }
bfa0a1a7 591// }
4914e781 592 //// PRINTS /////
593
bfa0a1a7 594
595 //If only one maxima, consider all the towers in the cluster
596 if(nMax==1)
597 {
36769d30 598 for (UInt_t icell = 0; icell < nc; icell++ )
599 {
600 list [icell] = cluster->GetCellAbsId(icell);
601 elist[icell] = GetEMCALCells()->GetCellAmplitude(list[icell]);
602 }
b2e375c7 603 }
604
83351853 605 Int_t nmaxima = nMax;
606 if(nMax==1) nmaxima = nc ;
607
b2e375c7 608 //Find highest energy Local Maxima Towers
86b521c9 609 Int_t imax = 999;
610 Int_t imax2 = 999;
b2e375c7 611 Float_t emax = -1;
612 Float_t emax2 = -1;
83351853 613 for(Int_t i = 0; i < nmaxima; i++)
b2e375c7 614 {
615 //printf("i %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]);
616 if(elist[i] > emax)
617 {
618 imax = i;
619 emax = elist[i];
620 }
621 }
86b521c9 622
b2e375c7 623 //Find second highest
83351853 624 for(Int_t i = 0; i < nmaxima; i++)
b2e375c7 625 {
626 if(i==imax) continue;
bfa0a1a7 627
83351853 628 //printf("j %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]);
36769d30 629
b2e375c7 630 if(elist[i] > emax2)
631 {
632 imax2 = i;
633 emax2 = elist[i];
634 }
635 }
636
4914e781 637// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
638// printf("Local maxima: a) index %d, absId %d; b) index %d, absId %d\n",imax, list[imax], imax2, list[imax2]);
b2e375c7 639
36769d30 640 //---------------------------------------------------------
83351853 641 //---------------------------------------------------------
642 // Compare ancestors of all local maxima at cell MC level
643 //---------------------------------------------------------
36769d30 644 //---------------------------------------------------------
83351853 645
b2e375c7 646 // Check that the highest mc label and the max cluster label are the same
87c4fd53 647 Int_t mcLabelMax = -1 ;
86b521c9 648 if(imax >=0 && imax < 999)
87c4fd53 649 {
650 mcLabelMax = GetEMCALCells()->GetCellMCLabel(list[imax]);
651 GetReader()->RemapMCLabelForAODs(mcLabelMax);
652 }
653
654 Int_t mcLabelMax2 = -1 ;
86b521c9 655 if(imax2 >=0 && imax2 < 999)
87c4fd53 656 {
657 mcLabelMax2 = GetEMCALCells()->GetCellMCLabel(list[imax2]);
658 GetReader()->RemapMCLabelForAODs(mcLabelMax2);
659 }
b2e375c7 660
661 Int_t mcLabelclusterMax = cluster->GetLabels()[0];
662 Bool_t matchHighLMAndHighMC = kFALSE;
663
36769d30 664 //printf("MC label: LM1 %d, LM2 %d, cluster %d\n",mcLabelMax,mcLabelMax2,mcLabelclusterMax);
665
87c4fd53 666 if(mcLabelclusterMax == mcLabelMax && mcLabelclusterMax >= 0)
b2e375c7 667 {
668 matchHighLMAndHighMC = kTRUE;
36769d30 669 //printf("\t *** MATCH cluster and LM maximum ***\n");
b2e375c7 670 }
671 else
672 {
36769d30 673 //printf("\t *** NO MATCH cluster and LM maximum, check second ***\n");
87c4fd53 674 if(mcLabelclusterMax == mcLabelMax2 && mcLabelclusterMax >= 0)
b2e375c7 675 {
36769d30 676 //printf("\t \t *** MATCH cluster and 2nd LM maximum ***\n");
b2e375c7 677 matchHighLMAndHighMC = kTRUE;
678 }
679 else
680 {
36769d30 681 //printf("\t \t *** NO MATCH***\n");
b2e375c7 682 matchHighLMAndHighMC = kFALSE;
683 }
684 }
685
686 // Compare the common ancestors of the 2 highest energy local maxima
687 Int_t ancPDG = 0, ancStatus = -1;
688 TLorentzVector momentum; TVector3 prodVertex;
689 Int_t ancLabel = 0;
690 Bool_t high = kFALSE;
691 Bool_t low = kFALSE;
692
693// // print maxima origin
694// for(Int_t i = 0; i < nMax; i++)
695// {
696// Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]);
697// GetReader()->RemapMCLabelForAODs(mcLabel1);
698//
699// Bool_t ok =kFALSE,gok = kFALSE;
700// Int_t pdg = -22222, status = -1;
701// Int_t gpdg = -22222, gstatus = -1;
702// Int_t ggpdg = -22222, ggstatus = -1;
703// Int_t gLabel = -1, ggLabel = -1;
704// TLorentzVector primary =GetMCAnalysisUtils()->GetMother (mcLabel1,GetReader(), pdg, status, ok);
705// TLorentzVector gprimary =GetMCAnalysisUtils()->GetGrandMother(mcLabel1,GetReader(), gpdg, gstatus,gok, gLabel,ggLabel);
706// TLorentzVector ggprimary =GetMCAnalysisUtils()->GetMother(ggLabel ,GetReader(),ggpdg,ggstatus,gok);
707// 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",
708// i,mcLabel1,pdg,primary.E(), gLabel,gpdg,gprimary.E(), ggLabel,ggpdg,ggprimary.E());
709// }
83351853 710
bfa0a1a7 711 for(Int_t i = 0; i < nmaxima-1; i++)
b2e375c7 712 {
713 Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]);
714 GetReader()->RemapMCLabelForAODs(mcLabel1);
715
bfa0a1a7 716 for(Int_t j = i+1; j < nmaxima; j++)
b2e375c7 717 {
718 Int_t mcLabel2 = GetEMCALCells()->GetCellMCLabel(list[j]);
719 GetReader()->RemapMCLabelForAODs(mcLabel2);
720
721 if(mcLabel1 < 0 || mcLabel2 < 0 )
722 {
723 //printf("\t i %d label %d - j %d label %d; skip!\n",i,mcLabel1,j,mcLabel2);
724 continue;
725 }
83351853 726
b2e375c7 727 ancLabel = GetMCAnalysisUtils()->CheckCommonAncestor(mcLabel1,mcLabel2,
728 GetReader(),ancPDG,ancStatus,momentum,prodVertex);
729 if(ancPDG==111)
730 {
731 if((i==imax && j==imax2) || (j==imax && i==imax2))
732 high = kTRUE;
733 else
734 low = kTRUE;
735 }
736 else if(ancPDG==22 || TMath::Abs(ancPDG)==11)
737 {
738 // If both bits are set, it could be that one of the maxima had a conversion
739 // reset the bit in this case
740 if(high && low)
741 {
742 //printf("\t Reset low bit\n");
743 low = kFALSE;
744 }
745 }
746
747 Bool_t ok =kFALSE;
748 Int_t pdg = -22222, status = -1;
749 TLorentzVector primary =GetMCAnalysisUtils()->GetMother(ancLabel,GetReader(), pdg, status, ok);
b2e375c7 750 //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);
751
752 }
753 }
754
755 Float_t en = cluster->E();
756
4914e781 757// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
758// printf("Cell MC match: nMax %d; Match MC? %d; high %d; low %d\n",nMax,matchHighLMAndHighMC,high,low);
b2e375c7 759
36769d30 760 if(!noverlaps)
b2e375c7 761 {
36769d30 762 if(matchHighLMAndHighMC)
763 {
764 if (high && !low) fhMCPi0HighNLMPair->Fill(en,nMax);
765 else if(low && !high) fhMCPi0LowNLMPair ->Fill(en,nMax);
766 else if(low && high) fhMCPi0AnyNLMPair ->Fill(en,nMax);
767 else fhMCPi0NoneNLMPair->Fill(en,nMax);
768 }
769 else
770 {
771 if (high && !low) fhMCPi0HighNLMPairNoMCMatch->Fill(en,nMax);
772 else if(low && !high) fhMCPi0LowNLMPairNoMCMatch ->Fill(en,nMax);
773 else if(low && high) fhMCPi0AnyNLMPairNoMCMatch ->Fill(en,nMax);
774 else fhMCPi0NoneNLMPairNoMCMatch->Fill(en,nMax);
775 }
b2e375c7 776 }
777 else
778 {
36769d30 779 if(matchHighLMAndHighMC)
780 {
781 if (high && !low) fhMCPi0HighNLMPairOverlap->Fill(en,nMax);
782 else if(low && !high) fhMCPi0LowNLMPairOverlap->Fill(en,nMax);
783 else if(low && high) fhMCPi0AnyNLMPairOverlap->Fill(en,nMax);
784 else fhMCPi0NoneNLMPairOverlap->Fill(en,nMax);
785 }
786 else
787 {
788 if (high && !low) fhMCPi0HighNLMPairNoMCMatchOverlap->Fill(en,nMax);
789 else if(low && !high) fhMCPi0LowNLMPairNoMCMatchOverlap->Fill(en,nMax);
790 else if(low && high) fhMCPi0AnyNLMPairNoMCMatchOverlap->Fill(en,nMax);
791 else fhMCPi0NoneNLMPairNoMCMatchOverlap->Fill(en,nMax);
792 }
b2e375c7 793 }
1253480f 794
36769d30 795 //----------------------------------------------------------------------
83351853 796 //----------------------------------------------------------------------
797 // Compare MC decay photon projection to cell location and Local Maxima
798 //----------------------------------------------------------------------
36769d30 799 //----------------------------------------------------------------------
83351853 800
801 // Get the mother pi0
802
803 Bool_t ok = kFALSE;
804 Int_t pdg = -22222, status = -1;
805 Int_t gLabel = -1;
806
807 Int_t label = cluster->GetLabel();
808 TLorentzVector pi0Kine;
809
810 while( pdg!=111 && label>=0 )
811 {
812 pi0Kine = GetMCAnalysisUtils()->GetGrandMother(label,GetReader(),pdg,status,ok, label,gLabel);
813 }
814
815 if(pdg!=111 || label < 0)
816 {
a6d3b0a8 817 Info("CheckLocalMaximaMCOrigin","Mother Pi0 not found!\n");
83351853 818 return;
819 }
820
821 Int_t nDaugthers = GetMCAnalysisUtils()->GetNDaughters(label,GetReader(),ok);
822
823 if(nDaugthers != 2)
824 {
a6d3b0a8 825 Info("CheckLocalMaximaMCOrigin","N daughters %d !=2!\n",nDaugthers);
83351853 826 return;
827 }
828
829 // Get daughter photon kinematics
830 Int_t pdg0 = -22222, status0 = -1; Int_t label0 = -1;
831 TLorentzVector photon0Kine = GetMCAnalysisUtils()->GetDaughter(0,label,GetReader(),pdg0,status0,ok,label0);
832 Int_t pdg1 = -22222, status1 = -1; Int_t label1 = -1;
833 TLorentzVector photon1Kine = GetMCAnalysisUtils()->GetDaughter(1,label,GetReader(),pdg1,status1,ok,label1);
834
835 if(pdg1!=22 || pdg0 != 22)
836 {
a6d3b0a8 837 Info("CheckLocalMaximaMCOrigin","Wrong daughters PDG: photon0 %d - photon1 %d\n",pdg0,pdg1);
83351853 838 return;
839 }
840
841 // In what cells did the photons hit
842 Float_t eta0 = photon0Kine.Eta();
843 Float_t eta1 = photon1Kine.Eta();
844
845 Float_t phi0 = photon0Kine.Phi();
846 Float_t phi1 = photon1Kine.Phi();
847
4914e781 848// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
849// {
850// 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",
851// label , pi0Kine.E() , pi0Kine.Eta(),pi0Kine.Phi()*TMath::RadToDeg(), (photon0Kine+photon1Kine).M(),
852// label0, photon0Kine.E(), eta0, phi0*TMath::RadToDeg(),
853// label1, photon1Kine.E(), eta1, phi1*TMath::RadToDeg());
854//
855// TLorentzVector momclus;
856// cluster->GetMomentum(momclus,GetVertex(0));
857// 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());
858// }
36769d30 859
83351853 860 if(phi0 < 0 ) phi0+=TMath::TwoPi();
861 if(phi1 < 0 ) phi1+=TMath::TwoPi();
862
863 Int_t absId0=-1, absId1=-1;
864 GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta0, phi0, absId0);
865 GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta1, phi1, absId1);
866
867 if(absId1 < 0 || absId1 < 0)
868 {
4914e781 869 //printf("AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(() - Photon hit AbsId: photon0 %d - photon1 %d\n",absId0,absId1);
83351853 870 return;
871 }
872
36769d30 873 //-----------------------------------------------
83351853 874 // Check that the 2 photons hit the Local Maxima
36769d30 875 //-----------------------------------------------
83351853 876
4914e781 877
878// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
879// {
880// printf("Photons AbsId (%d,%d); Local Maxima AbsId(%d,%d)\n",absId0,absId1,list[imax],list[imax2]);
881// printf("Photon1 (eta,phi)=(%f,%f); Photon2 (eta,phi)=(%f,%f);\n",eta0,phi0*TMath::RadToDeg(),eta1,phi1*TMath::RadToDeg());
882//
883// Int_t ieta0=-1; Int_t iphi0 = 0; Int_t rcu0 = 0;
884// Int_t sm0 = GetModuleNumberCellIndexes(absId0,fCalorimeter, ieta0, iphi0, rcu0);
885// Int_t ieta1=-1; Int_t iphi1 = 0; Int_t rcu1 = 0;
886// Int_t sm1 = GetModuleNumberCellIndexes(absId1,fCalorimeter, ieta1, iphi1, rcu1);
887//
888// printf("Photon1 (id,sm,eta,phi)=(%d,%d,%d,%d), Photon2 (id,sm,eta,phi)=(%d,%d,%d,%d)\n",
889// absId0,sm0,ieta0,iphi0,absId1,sm1,ieta1,iphi1);
890//
891// Int_t ietam0=-1; Int_t iphim0 = 0; Int_t rcum0 = 0; Int_t smm0 = -1 ;
892// if(imax >= 0) smm0 = GetModuleNumberCellIndexes(list[imax] ,fCalorimeter, ietam0, iphim0, rcum0);
893// Int_t ietam1=-1; Int_t iphim1 = 0; Int_t rcum1 = 0; Int_t smm1 = -1 ;
894// if(imax2 >= 0) smm1 = GetModuleNumberCellIndexes(list[imax2],fCalorimeter, ietam1, iphim1, rcum1);
895//
896// printf("Max (id, sm,eta,phi)=(%d,%d,%d,%d), Max2 (id, sm,eta,phi)=(%d,%d,%d,%d)\n",
897// list[imax],smm0,ietam0,iphim0,list[imax2],smm1,ietam1,iphim1);
898// }
899
b583134f 900 Int_t inlm = nMax-1;
901 if(inlm > 2) inlm = 2;
83351853 902
36769d30 903 Bool_t match0 = kFALSE;
904 Bool_t match1 = kFALSE;
905 Int_t imatch0 = -1;
906 Int_t imatch1 = -1;
907 if(imax >= 0 && imax2 >=0 && absId0 > 0 && absId1 > 0 )
87c4fd53 908 {
36769d30 909 if (absId0 == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
910 else if(absId0 == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
911
912 if (absId1 == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
913 else if(absId1 == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
87c4fd53 914 }
83351853 915
36769d30 916 //printf("primary imatch0 %d, imatch1 %d\n",imatch0,imatch1);
917
918 // If one or the 2 not matched, check with the other MC labels
919 // only in case there was a conversion
83351853 920
36769d30 921 Int_t absId0second = -1;
922 Int_t absId1second = -1;
923 Int_t secLabel0 = -1;
924 Int_t secLabel1 = -1;
925 Int_t mcLabel0 = -1;
926 Int_t mcLabel1 = -1;
927 Bool_t secOK = 0;
928 Int_t secpdg = -999999;
929 Int_t secstatus = -1;
930 Int_t secgrandLabel = -1;
931
932 if(match0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
933 if(match1) { secLabel1 = label1 ; mcLabel1 = label1 ; }
934
935 if((!match0 || !match1) && mcindex == kmcPi0Conv)
83351853 936 {
36769d30 937 for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ )
938 {
939 Int_t mclabel = cluster->GetLabels()[ilab];
940
941 //printf("Check label %d - %d\n",ilab,mclabel);
942
943 if(mclabel == label0 || mclabel == label1)
944 {
945 //printf("continue: secLabel %d, label0 %d, label1 %d\n",mclabel,label0,label1);
946 if(mclabel == label0 && secLabel0 < 0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
947 if(mclabel == label1 && secLabel1 < 0) { secLabel1 = label1 ; mcLabel1 = label1 ; }
948 continue ;
949 }
950
951 //printf("Before while: secLabel0 %d, secLabel1 %d\n",secLabel0,secLabel1);
952
953 // match mc label and parent photon
954 Int_t tmplabel = mclabel;
955 while((secLabel0 < 0 || secLabel1 < 0) && tmplabel > 0 )
956 {
957 TLorentzVector mother = GetMCAnalysisUtils()->GetMother(tmplabel,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
958
959 //printf("\t \t while secLabel %d, mom %d, granmom %d\n",mclabel,tmplabel,secgrandLabel);
960
961 if((secgrandLabel == label0) || (secgrandLabel == label1 ))
962 {
963 //printf("mcMatch! grand label %d, secLabel %d\n",secgrandLabel, mclabel);
964 if(!match0 && mcLabel1 != secgrandLabel) { secLabel0 = mclabel; mcLabel0 = secgrandLabel; }
965 if(!match1 && mcLabel0 != secgrandLabel) { secLabel1 = mclabel; mcLabel1 = secgrandLabel; }
966 }
967
968 //printf("\t GrandMother %d, secLabel0 %d, secLabel1 %d \n",secgrandLabel, secLabel0,secLabel1);
83351853 969
36769d30 970 tmplabel = secgrandLabel;
971 }
972 }
83351853 973
36769d30 974 // Get the position of the found secondaries mother
975 if(!match0 && secLabel0 > 0)
87c4fd53 976 {
36769d30 977 TLorentzVector mother = GetMCAnalysisUtils()->GetMother(secLabel0,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
978
4914e781 979 //Float_t eta = mother.Eta();
980 //Float_t phi = mother.Phi();
981 //if(phi < 0 ) phi+=TMath::TwoPi();
982 //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId0second);
36769d30 983
984 //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());
985
986 if(absId0second == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
987 if(absId0second == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
87c4fd53 988 }
36769d30 989
990 if(!match1 && secLabel1 > 0)
87c4fd53 991 {
36769d30 992 TLorentzVector mother = GetMCAnalysisUtils()->GetMother(secLabel1,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
993
4914e781 994 //Float_t eta = mother.Eta();
995 //Float_t phi = mother.Phi();
996 //if(phi < 0 ) phi+=TMath::TwoPi();
997 //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId1second);
36769d30 998
999 //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());
1000
1001 if(absId1second == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
1002 if(absId1second == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
87c4fd53 1003 }
36769d30 1004
1005 //printf("secondary label mc0 %d, mc1 %d, imatch0 %d, imatch1 %d\n",secLabel0,secLabel1,imatch0,imatch1);
1006
1007 }
1008
1009 //printf("imatch0 %d, imatch1 %d\n",imatch0,imatch1);
1010 if( match0 && match1 )
1011 {
4914e781 1012// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1013// printf("a) Both Photons hit local maxima \n");
36769d30 1014
b583134f 1015 if(!noverlaps)
1016 {
1017 fhMCPi0DecayPhotonHitHighLM ->Fill(en,nMax);
1018 fhMCPi0DecayPhotonHitHighLMMass[inlm]->Fill(en,mass);
1019 if(match0 && imatch0 == imax)
1020 {
cb99fa55 1021 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1022 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
29555e96 1023 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E());
1024 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1025 }
1026 else
1027 {
cb99fa55 1028 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1029 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
29555e96 1030 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E());
1031 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1032 }
1033 }
1034 else
1035 {
1036 fhMCPi0DecayPhotonHitHighLMOverlap ->Fill(en,nMax);
1037 fhMCPi0DecayPhotonHitHighLMOverlapMass[inlm]->Fill(en,mass);
1038 if(match0 && imatch0 == imax )
1039 {
cb99fa55 1040 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1041 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
29555e96 1042 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E());
1043 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1044 }
1045 else
1046 {
cb99fa55 1047 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1048 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
29555e96 1049 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E());
1050 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1051 }
1052
1053 }
36769d30 1054
1055 return ;
1056 }
1057
1058 //printf("Any match? photon0 %d, photon1 %d\n",match0,match1);
1059 //if(!match0 && !match1) printf("WARNING, LM not matched to any photon decay!\n");
1060
1061 //---------------------------------------------
1062 // Check the adjacent cells to the local maxima
1063 //---------------------------------------------
1064
36769d30 1065 if(!match0)
1066 {
b583134f 1067 if(imatch1!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax])) { match0 = kTRUE; imatch0 = imax ; }
36769d30 1068 //printf("imax - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam0,ieta0-ietam0, iphi0,iphim0,iphi0-iphim0);
b583134f 1069 if(imatch1!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax2]) ) { match0 = kTRUE; imatch0 = imax2 ; }
36769d30 1070 //printf("imax2 - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam1,ieta0-ietam1, iphi0,iphim1,iphi0-iphim1);
1071 }
1072
1073 if(!match1)
1074 {
b583134f 1075 if(imatch0!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax]) ) { match1 = kTRUE; imatch1 = imax ; }
36769d30 1076 //printf("imax - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam0,ieta1-ietam0, iphi1,iphim0,iphi1-iphim0);
1077
b583134f 1078 if(imatch0!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax2])) { match1 = kTRUE; imatch1 = imax2 ; }
36769d30 1079 //printf("imax2 - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam1,ieta1-ietam1, iphi1,iphim1,iphi1-iphim1);
1080 }
1081
1082 //printf("Local Maxima: adjacent0 %d,adjacent1 %d \n",match0,match1);
1083
1084 if(match0 && match1)
1085 {
4914e781 1086// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1087// printf("b) Both Photons hit local maxima or cell adjacent or 2 cells adjacent \n");
83351853 1088
b583134f 1089 if(!noverlaps)
1090 {
1091 fhMCPi0DecayPhotonAdjHighLM ->Fill(en,nMax);
1092 fhMCPi0DecayPhotonAdjHighLMMass[inlm]->Fill(en,mass);
1093
1094 if(match0 && imatch0 == imax)
1095 {
cb99fa55 1096 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1097 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
29555e96 1098 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E());
1099 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1100 }
1101 else
1102 {
cb99fa55 1103 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1104 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
29555e96 1105 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E());
1106 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1107 }
1108 }
1109 else
1110 {
1111 fhMCPi0DecayPhotonAdjHighLMOverlap ->Fill(en,nMax);
1112 fhMCPi0DecayPhotonAdjHighLMOverlapMass[inlm]->Fill(en,mass);
1113 if(match0 && imatch0 == imax)
1114 {
cb99fa55 1115 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1116 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
29555e96 1117 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E());
1118 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1119 }
1120 else
1121 {
cb99fa55 1122 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1123 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
29555e96 1124 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E());
1125 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1126 }
1127 }
36769d30 1128
1129 return;
1130 }
36769d30 1131
1132 // Decay photon cells are adjacent?
1133
1134 if( (match0 || match1) && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,absId1) )
1135 {
4914e781 1136// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1137// printf("c) Both Photons hit a local maxima and in adjacent cells \n");
b583134f 1138 if(!noverlaps)
1139 {
1140 fhMCPi0DecayPhotonAdjacent ->Fill(en,nMax);
1141 fhMCPi0DecayPhotonAdjacentMass[inlm]->Fill(en,mass);
1142 }
1143 else
1144 {
1145 fhMCPi0DecayPhotonAdjacentOverlap ->Fill(en,nMax);
1146 fhMCPi0DecayPhotonAdjacentOverlapMass[inlm]->Fill(en,mass);
1147 }
83351853 1148
36769d30 1149 return;
83351853 1150 }
1151
36769d30 1152 //--------------------
1153 // Other Local maxima
1154 //--------------------
1155
83351853 1156 Bool_t matchMCHitOtherLM = kFALSE;
36769d30 1157 if(!match1)
1158 {
1159 for(Int_t i = 0; i < nmaxima; i++)
1160 {
1161 if(imax!=i && imax2!=i && absId1 == list[i]) { match1 = kTRUE; matchMCHitOtherLM = kTRUE; }
1162 }
1163 }
1164
1165 if(!match0)
1166 {
1167 for(Int_t i = 0; i < nmaxima; i++)
1168 {
1169 if(imax!=i && imax2!=i && absId0 == list[i]) { match0 = kTRUE; matchMCHitOtherLM = kTRUE; }
1170 }
1171 }
1172
1173 if(matchMCHitOtherLM)
1174 {
4914e781 1175// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1176// printf("d) One Photon hits a local maxima, the other another not high \n");
36769d30 1177
b583134f 1178 if(!noverlaps)
1179 {
1180 fhMCPi0DecayPhotonHitOtherLM ->Fill(en,nMax);
1181 fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass);
1182 if(match0 && imatch0 == imax)
1183 {
cb99fa55 1184 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1185 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1186 }
1187 else
1188 {
cb99fa55 1189 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1190 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1191 }
1192 }
1193 else
1194 {
1195 fhMCPi0DecayPhotonHitOtherLMOverlap ->Fill(en,nMax);
1196 fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass);
1197 if(match0 && imatch0 == imax)
1198 {
cb99fa55 1199 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1200 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1201 }
1202 else
1203 {
cb99fa55 1204 if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1205 if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1206 }
1207 }
36769d30 1208
1209 return ;
1210 }
1211
1212 // Adjacent to other maxima
1213
1214 Bool_t adjacentOther1 = kFALSE;
1215 if(match0)
83351853 1216 {
36769d30 1217 for(Int_t i = 0; i < nmaxima; i++)
83351853 1218 {
36769d30 1219 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
1220 GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu);
83351853 1221
36769d30 1222 //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
1223
1224 if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[i]) ) adjacentOther1 = kTRUE;
1225
1226 //printf("Other Maxima: adjacentOther1 %d\n",adjacentOther1);
83351853 1227 }
1228 }
1229
36769d30 1230 Bool_t adjacentOther0 = kFALSE;
1231 if(match1)
83351853 1232 {
36769d30 1233 for(Int_t i = 0; i < nmaxima; i++)
83351853 1234 {
36769d30 1235 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
1236 GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu);
83351853 1237
36769d30 1238 //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
1239
1240 if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[i]) ) adjacentOther0 = kTRUE;
1241
1242 //printf("Other Maxima: adjacentOther0 %d\n",adjacentOther0);
83351853 1243 }
1244 }
1245
36769d30 1246 if((match0 && adjacentOther1) || (match1 && adjacentOther0))
1247 {
4914e781 1248
1249// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1250// printf("e) One Photon hits a local maxima, the other another not high, adjacent \n");
36769d30 1251
b583134f 1252 if(!noverlaps)
1253 {
1254 fhMCPi0DecayPhotonAdjOtherLM ->Fill(en,nMax);
1255 fhMCPi0DecayPhotonAdjOtherLMMass[inlm]->Fill(en,mass);
1256 if(match0 && imatch0 == imax)
1257 {
cb99fa55 1258 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1259 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1260 }
1261 else
1262 {
cb99fa55 1263 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1264 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1265 }
1266 }
1267 else
1268 {
1269 fhMCPi0DecayPhotonAdjOtherLMOverlap ->Fill(en,nMax);
1270 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[inlm]->Fill(en,mass);
1271 if(match0 && imatch0 == imax)
1272 {
cb99fa55 1273 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E());
1274 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E());
b583134f 1275 }
1276 else
1277 {
cb99fa55 1278 if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E());
1279 if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E());
b583134f 1280 }
1281 }
36769d30 1282
1283 return;
1284 }
1285
4914e781 1286// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1287// printf("f) No hit found \n");
b583134f 1288 if(!noverlaps)
1289 {
1290 fhMCPi0DecayPhotonHitNoLM ->Fill(en,nMax);
1291 fhMCPi0DecayPhotonHitNoLMMass[inlm]->Fill(en,mass);
1292 }
1293 else
1294 {
1295 fhMCPi0DecayPhotonHitNoLMOverlap ->Fill(en,nMax);
1296 fhMCPi0DecayPhotonHitNoLMOverlapMass[inlm]->Fill(en,mass);
1297 }
83351853 1298
b2e375c7 1299}
1300
b94e038e 1301//___________________________________________________________________________________________________________
1302void AliAnaInsideClusterInvariantMass::FillAngleHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex,
1303 Float_t en, Float_t e1, Float_t e2,
1304 Float_t angle, Float_t mass,
1305 Float_t anglePrim, Float_t m02,
1306 Float_t asym, Int_t pid, Int_t noverlaps)
b2e375c7 1307{
1308 // Fill histograms related to opening angle
29555e96 1309
1310 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1311 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1312 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1313 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
a6d3b0a8 1314
1315 Bool_t eCutOK= kFALSE;
1316 Int_t inlm = nMax-1;
1317 if(inlm > 2 ) inlm = 2;
1318 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1319 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1320 else if(ensubcut < 0.1) eCutOK = kTRUE;
1321
b2e375c7 1322 if (nMax==1)
1323 {
0186b6a2 1324 fhAnglePairNLocMax1[0][matched]->Fill(en,angle);
29555e96 1325
a6d3b0a8 1326 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1327 fhAnglePairAfterCutsNLocMax1[0][matched]->Fill(en,angle);
1328 if(pid==AliCaloPID::kPi0)
1329 fhAnglePairPi0NLocMax1[0][matched]->Fill(en,angle);
1330
4e5a94c5 1331 if(m02 > 0)
1332 {
1333 fhAnglePairOverM02NLocMax1[0][matched]->Fill(en,angle/m02);
1334 if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[0][matched]->Fill(en,angle/m02);
1335 }
1336
d261ae67 1337 if( en > 15 )
1338 {
1339 fhAnglePairMassNLocMax1[0][matched]->Fill(mass,angle);
1340 fhAnglePairM02NLocMax1 [0][matched]->Fill(m02 ,angle);
1341 }
b2e375c7 1342 }
1343 else if(nMax==2)
1344 {
0186b6a2 1345 fhAnglePairNLocMax2[0][matched]->Fill(en,angle);
29555e96 1346
a6d3b0a8 1347 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1348 fhAnglePairAfterCutsNLocMax2[0][matched]->Fill(en,angle);
1349 if(pid==AliCaloPID::kPi0)
1350 fhAnglePairPi0NLocMax2[0][matched]->Fill(en,angle);
1351
4e5a94c5 1352 if(m02 > 0)
1353 {
1354 fhAnglePairOverM02NLocMax2[0][matched]->Fill(en,angle/m02);
1355 if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[0][matched]->Fill(angle/m02,en);
1356 }
1357
d261ae67 1358 if( en > fHistoECut )
1359 {
1360 fhAnglePairMassNLocMax2[0][matched]->Fill(mass,angle);
1361 fhAnglePairM02NLocMax2 [0][matched]->Fill(m02,angle);
1362 }
b2e375c7 1363 }
1364 else if(nMax >2)
1365 {
0186b6a2 1366 fhAnglePairNLocMaxN[0][matched]->Fill(en,angle);
29555e96 1367
a6d3b0a8 1368 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1369 fhAnglePairAfterCutsNLocMaxN[0][matched]->Fill(en,angle);
1370 if(pid==AliCaloPID::kPi0)
1371 fhAnglePairPi0NLocMaxN[0][matched]->Fill(en,angle);
1372
4e5a94c5 1373 if(m02 > 0)
1374 {
1375 fhAnglePairOverM02NLocMaxN[0][matched]->Fill(en,angle/m02);
1376 if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[0][matched]->Fill(angle/m02,en);
1377 }
1378
d261ae67 1379 if( en > fHistoECut )
1380 {
1381 fhAnglePairMassNLocMaxN[0][matched]->Fill(mass,angle);
1382 fhAnglePairM02NLocMaxN [0][matched]->Fill(m02,angle);
1383 }
0186b6a2 1384 }
1385
1386 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
1387 {
1388 if (nMax==1)
1389 {
1390 fhAnglePairNLocMax1[mcIndex][matched]->Fill(en,angle);
d261ae67 1391 if( en > 15 )
1392 {
1393 fhAnglePairMassNLocMax1[mcIndex][matched]->Fill(mass,angle);
1394 fhAnglePairM02NLocMax1 [mcIndex][matched]->Fill(m02,angle);
1395 }
a6d3b0a8 1396 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1397 fhAnglePairAfterCutsNLocMax1[mcIndex][matched]->Fill(en,angle);
1398 if(pid==AliCaloPID::kPi0)
1399 fhAnglePairPi0NLocMax1[mcIndex][matched]->Fill(en,angle);
1400
4e5a94c5 1401 if(m02 > 0)
1402 {
1403 fhAnglePairOverM02NLocMax1[mcIndex][matched]->Fill(en,angle/m02);
1404 if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[mcIndex][matched]->Fill(angle/m02,en);
1405 }
1406
0186b6a2 1407 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1408 {
1409 fhAnglePairPrimPi0RecoNLocMax1->Fill(en,angle/anglePrim);
4e5a94c5 1410 if(m02>0)fhAnglePairPrimPi0OverM02NLocMax1->Fill(en,anglePrim/m02);
0186b6a2 1411 if(en > 15) fhAnglePairPrimPi0vsRecoNLocMax1->Fill(anglePrim,angle);
1412
1413 }
1414 }
1415 else if(nMax==2)
1416 {
1417 fhAnglePairNLocMax2[mcIndex][matched]->Fill(en,angle);
d261ae67 1418 if( en > fHistoECut )
1419 {
1420 fhAnglePairMassNLocMax2[mcIndex][matched]->Fill(mass,angle);
1421 fhAnglePairM02NLocMax2 [mcIndex][matched]->Fill(m02 ,angle);
1422 }
29555e96 1423
a6d3b0a8 1424 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1425 fhAnglePairAfterCutsNLocMax2[mcIndex][matched]->Fill(en,angle);
1426 if(pid==AliCaloPID::kPi0)
1427 fhAnglePairPi0NLocMax2[mcIndex][matched]->Fill(en,angle);
1428
4e5a94c5 1429 if(m02 > 0)
1430 {
1431 fhAnglePairOverM02NLocMax2[mcIndex][matched]->Fill(en,angle/m02);
1432 if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[mcIndex][matched]->Fill(angle/m02,en);
1433 }
1434
0186b6a2 1435 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1436 {
1437 fhAnglePairPrimPi0RecoNLocMax2->Fill(en,angle/anglePrim);
4e5a94c5 1438 if(m02>0)fhAnglePairPrimPi0OverM02NLocMax2->Fill(en,anglePrim/m02);
0186b6a2 1439 if(en > 10) fhAnglePairPrimPi0vsRecoNLocMax2->Fill(anglePrim,angle);
1440 }
1441 }
1442 else if(nMax >2)
1443 {
1444 fhAnglePairNLocMaxN[mcIndex][matched]->Fill(en,angle);
d261ae67 1445 if( en > fHistoECut )
1446 {
1447 fhAnglePairMassNLocMaxN[mcIndex][matched]->Fill(mass,angle);
1448 fhAnglePairM02NLocMaxN [mcIndex][matched]->Fill(m02 ,angle);
1449 }
a6d3b0a8 1450 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1451 fhAnglePairAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,angle);
1452 if(pid==AliCaloPID::kPi0)
1453 fhAnglePairPi0NLocMaxN[mcIndex][matched]->Fill(en,angle);
1454
4e5a94c5 1455 if(m02 > 0)
1456 {
1457 fhAnglePairOverM02NLocMaxN[mcIndex][matched]->Fill(en,angle/m02);
1458 if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[mcIndex][matched]->Fill(angle/m02,en);
1459 }
1460
0186b6a2 1461 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1462 {
1463 fhAnglePairPrimPi0RecoNLocMaxN->Fill(en,angle/anglePrim);
4e5a94c5 1464 if(m02>0)fhAnglePairPrimPi0OverM02NLocMaxN->Fill(en,anglePrim/m02);
0186b6a2 1465 if(en > 10) fhAnglePairPrimPi0vsRecoNLocMaxN->Fill(anglePrim,angle);
1466 }
1467 }
1468
b2e375c7 1469 }
1470
1471}
1472
cb99fa55 1473//______________________________________________________________________________________________________________________
b94e038e 1474void AliAnaInsideClusterInvariantMass::FillArmenterosHistograms(Int_t nMax, Int_t ebin, Int_t mcIndex,
1475 Float_t en, TLorentzVector g1, TLorentzVector g2,
1476 Float_t m02, Int_t pid)
cb99fa55 1477{
1478 // Fill Armeteros type histograms
be894c1d 1479
1480 // Get pTArm and AlphaArm
29555e96 1481 TLorentzVector pi0 = g1+g2;
be894c1d 1482 Float_t momentumSquaredMother = pi0.P()*pi0.P();
1483 Float_t momentumDaughter1AlongMother = 0.;
1484 Float_t momentumDaughter2AlongMother = 0.;
1485
1486 if (momentumSquaredMother > 0.)
1487 {
1488 momentumDaughter1AlongMother = (g1.Px()*pi0.Px() + g1.Py()*pi0.Py()+ g1.Pz()*pi0.Pz()) / sqrt(momentumSquaredMother);
1489 momentumDaughter2AlongMother = (g2.Px()*pi0.Px() + g2.Py()*pi0.Py()+ g2.Pz()*pi0.Pz()) / sqrt(momentumSquaredMother);
1490 }
1491
1492 Float_t momentumSquaredDaughter1 = g1.P()*g1.P();
1493 Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother;
1494
1495 Float_t pTArm = 0.;
1496 if (ptArmSquared > 0.)
1497 pTArm = sqrt(ptArmSquared);
1498
1499 Float_t alphaArm = 0.;
1500 if(momentumDaughter1AlongMother +momentumDaughter2AlongMother > 0)
1501 alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother);
1502
cb99fa55 1503 Float_t asym = TMath::Abs( g1.Energy()-g2.Energy() )/( g1.Energy()+g2.Energy() ) ;
be894c1d 1504
a6d3b0a8 1505 if(GetDebug() > 2 ) Info("FillArmenterosHistograms()","E %f, alphaArm %f, pTArm %f\n",en,alphaArm,pTArm);
be894c1d 1506
cb99fa55 1507 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1508 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1509 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1510 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
cb99fa55 1511
a6d3b0a8 1512 Bool_t eCutOK= kFALSE;
1513 Int_t inlm = nMax-1;
1514 if(inlm > 2 ) inlm = 2;
1515 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1516 if (ensubcut > 0.1 && ensubcut < g1.E() && ensubcut < g2.E() ) eCutOK = kTRUE;
1517 else if(ensubcut < 0.1) eCutOK = kTRUE;
1518
1519
cb99fa55 1520 if (nMax==1)
1521 {
be894c1d 1522 fhArmNLocMax1[0][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1523 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1524 fhArmAfterCutsNLocMax1[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1525 if(pid==AliCaloPID::kPi0)
be894c1d 1526 fhArmPi0NLocMax1[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1527 }
1528 else if(nMax==2)
1529 {
be894c1d 1530 fhArmNLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1531 if((m02OK && asyOK) && (asyOn || m02On))
be894c1d 1532 fhArmAfterCutsNLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1533 if(pid==AliCaloPID::kPi0)
be894c1d 1534 fhArmPi0NLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1535 }
1536 else if(nMax >2)
1537 {
be894c1d 1538 fhArmNLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1539 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1540 fhArmAfterCutsNLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1541 if(pid==AliCaloPID::kPi0)
be894c1d 1542 fhArmPi0NLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1543 }
1544
ed10b649 1545 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
cb99fa55 1546 {
1547 if (nMax==1)
1548 {
be894c1d 1549 fhArmNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1550 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1551 fhArmAfterCutsNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1552 if(pid==AliCaloPID::kPi0)
be894c1d 1553 fhArmPi0NLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1554 }
1555 else if(nMax==2)
1556 {
be894c1d 1557 fhArmNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1558 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1559 fhArmAfterCutsNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1560 if(pid==AliCaloPID::kPi0)
be894c1d 1561 fhArmPi0NLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1562 }
1563 else if(nMax >2)
1564 {
be894c1d 1565 fhArmNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1566 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1567 fhArmAfterCutsNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1568 if(pid==AliCaloPID::kPi0)
be894c1d 1569 fhArmPi0NLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1570 }
1571
1572 }
1573
1574}
1575
b94e038e 1576//______________________________________________________________________________________________________________
1577void AliAnaInsideClusterInvariantMass::FillThetaStarHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex,
1578 Float_t en, TLorentzVector g1, TLorentzVector g2,
1579 Float_t m02, Int_t pid)
29555e96 1580{
1581 // Fill cos Theta^star histograms
1582
1583
1584 // Get cos Theta^star
1585 TLorentzVector pi0 = g1+g2;
1586 TLorentzVector g1Boost = g1;
1587 g1Boost.Boost(-pi0.BoostVector());
1588 Float_t cosThStar=TMath::Cos(g1Boost.Vect().Angle(pi0.Vect()));
1589
1590 Float_t asym = TMath::Abs( g1.Energy()-g2.Energy() )/( g1.Energy()+g2.Energy() ) ;
1591
1592 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1593 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1594 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1595 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
1596
a6d3b0a8 1597 Bool_t eCutOK= kFALSE;
1598 Int_t inlm = nMax-1;
1599 if(inlm > 2 ) inlm = 2;
1600 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1601 if (ensubcut > 0.1 && ensubcut < g1.E() && ensubcut < g2.E() ) eCutOK = kTRUE;
1602 else if(ensubcut < 0.1) eCutOK = kTRUE;
1603
29555e96 1604 //printf("Reco cos %f, asy %f\n",cosThStar,asym);
1605
1606 if (nMax==1)
1607 {
1608 fhCosThStarNLocMax1[0][matched]->Fill(en,cosThStar);
1609
a6d3b0a8 1610 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1611 fhCosThStarAfterCutsNLocMax1[0][matched]->Fill(en,cosThStar);
1612 if(pid==AliCaloPID::kPi0)
1613 fhCosThStarPi0NLocMax1[0][matched]->Fill(en,cosThStar);
1614 }
1615 else if(nMax==2)
1616 {
1617 fhCosThStarNLocMax2[0][matched]->Fill(en,cosThStar);
1618
a6d3b0a8 1619 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1620 fhCosThStarAfterCutsNLocMax2[0][matched]->Fill(en,cosThStar);
1621 if(pid==AliCaloPID::kPi0)
1622 fhCosThStarPi0NLocMax2[0][matched]->Fill(en,cosThStar);
1623 }
1624 else if(nMax >2)
1625 {
1626 fhCosThStarNLocMaxN[0][matched]->Fill(en,cosThStar);
1627
a6d3b0a8 1628 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1629 fhCosThStarAfterCutsNLocMaxN[0][matched]->Fill(en,cosThStar);
1630 if(pid==AliCaloPID::kPi0)
1631 fhCosThStarPi0NLocMaxN[0][matched]->Fill(en,cosThStar);
1632 }
1633
1634 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
1635 {
1636 if (nMax==1)
1637 {
1638 fhCosThStarNLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1639
a6d3b0a8 1640 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1641 fhCosThStarAfterCutsNLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1642 if(pid==AliCaloPID::kPi0)
1643 fhCosThStarPi0NLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1644 }
1645 else if(nMax==2)
1646 {
1647 fhCosThStarNLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1648
a6d3b0a8 1649 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1650 fhCosThStarAfterCutsNLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1651 if(pid==AliCaloPID::kPi0)
1652 fhCosThStarPi0NLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1653 }
1654 else if(nMax >2)
1655 {
1656 fhCosThStarNLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1657
a6d3b0a8 1658 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1659 fhCosThStarAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1660 if(pid==AliCaloPID::kPi0)
1661 fhCosThStarPi0NLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1662 }
1663
1664 }
1665
1666}
1667
b94e038e 1668//__________________________________________________________________________________________________________________
1669void AliAnaInsideClusterInvariantMass::FillEBinHistograms(Int_t ebin , Int_t nMax, Int_t mcindex,
1670 Float_t splitFrac, Float_t mass, Float_t asym, Float_t l0)
b2e375c7 1671{
1672 // Fill some histograms integrating in few energy bins
1253480f 1673
b2e375c7 1674 if (nMax==1)
1675 {
1676 fhMassSplitEFractionNLocMax1Ebin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1677 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax1Ebin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1678
1679 fhMassM02NLocMax1Ebin [ebin]->Fill(l0 , mass );
1680 fhMassAsyNLocMax1Ebin [ebin]->Fill(asym, mass );
1681 }
1682 else if(nMax==2)
1683 {
1684 fhMassSplitEFractionNLocMax2Ebin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1685 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax2Ebin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1686
1687 fhMassM02NLocMax2Ebin [ebin]->Fill(l0 , mass );
1688 fhMassAsyNLocMax2Ebin [ebin]->Fill(asym, mass );
1689 }
1690 else if(nMax > 2 )
1691 {
1692 fhMassSplitEFractionNLocMaxNEbin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1693 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMaxNEbin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1694
1695 fhMassM02NLocMaxNEbin [ebin]->Fill(l0 , mass );
1696 fhMassAsyNLocMaxNEbin [ebin]->Fill(asym, mass );
1697 }
1698
1699}
1700
b94e038e 1701//________________________________________________________________________________________________
1702void AliAnaInsideClusterInvariantMass::FillHistograms1(Float_t en, Float_t e1, Float_t e2,
1703 Int_t nMax, Float_t mass, Float_t l0,
1704 Float_t eta, Float_t phi,
1705 Bool_t matched, Int_t mcindex)
1253480f 1706{
1707 // Fill histograms for clusters before any selection after spliting
1708
1709 Float_t splitFrac = (e1+e2)/en;
1710
1711 Float_t asym = -10;
1712 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1713
29555e96 1714 fhNLocMax [0][matched]->Fill(en,nMax);
1715 fhLM1NLocMax[0][matched]->Fill(e1,nMax);
1716 fhLM2NLocMax[0][matched]->Fill(e2,nMax);
cc909e6f 1717 fhSplitClusterENLocMax[0][matched]->Fill(e1,nMax);
1718 fhSplitClusterENLocMax[0][matched]->Fill(e2,nMax);
1719
cb99fa55 1720 if(IsDataMC() && mcindex > 0 && mcindex < 7)
cc909e6f 1721 {
29555e96 1722 fhNLocMax [mcindex][matched]->Fill(en,nMax);
1723 fhLM1NLocMax[mcindex][matched]->Fill(e1,nMax);
1724 fhLM2NLocMax[mcindex][matched]->Fill(e2,nMax);
b583134f 1725 fhSplitClusterENLocMax[mcindex][matched]->Fill(e1,nMax);
1726 fhSplitClusterENLocMax[mcindex][matched]->Fill(e2,nMax);
cc909e6f 1727 }
1253480f 1728
1729 if ( nMax == 1 )
1730 {
1731 fhM02NLocMax1[0][matched]->Fill(en,l0) ;
1732 fhSplitEFractionNLocMax1[0][matched]->Fill(en,splitFrac) ;
1733
cb99fa55 1734 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1735 {
1736 fhM02NLocMax1[mcindex][matched]->Fill(en,l0) ;
1737 fhSplitEFractionNLocMax1[mcindex][matched]->Fill(en,splitFrac) ;
1738 }
1739
1740 if(en > fHistoECut)
1741 {
1742 fhMassM02NLocMax1[0][matched]->Fill(l0, mass);
cb99fa55 1743 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax1[mcindex][matched]->Fill(l0, mass);
1253480f 1744
1745 fhSplitEFractionvsAsyNLocMax1[matched]->Fill(asym,splitFrac) ;
1746 if(!matched)fhClusterEtaPhiNLocMax1->Fill(eta,phi);
1747 }
1748 }
1749 else if( nMax == 2 )
1750 {
1751 fhM02NLocMax2[0][matched]->Fill(en,l0) ;
1752 fhSplitEFractionNLocMax2[0][matched]->Fill(en,splitFrac) ;
1753
cb99fa55 1754 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1755 {
1756 fhM02NLocMax2[mcindex][matched]->Fill(en,l0) ;
1757 fhSplitEFractionNLocMax2[mcindex][matched]->Fill(en,splitFrac) ;
1758 }
1759
1760 if(en > fHistoECut)
1761 {
1762 fhMassM02NLocMax2[0][matched]->Fill(l0, mass );
cb99fa55 1763 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax2[mcindex][matched]->Fill(l0,mass);
1253480f 1764
1765 fhSplitEFractionvsAsyNLocMax2[matched]->Fill(asym,splitFrac) ;
1766 if(!matched)fhClusterEtaPhiNLocMax2->Fill(eta,phi);
1767 }
1768 }
1769 else if( nMax >= 3 )
1770 {
1771 fhM02NLocMaxN[0][matched]->Fill(en,l0) ;
1772 fhSplitEFractionNLocMaxN[0][matched]->Fill(en,splitFrac) ;
1773
cb99fa55 1774 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1775 {
1776 fhM02NLocMaxN[mcindex][matched]->Fill(en,l0) ;
1777 fhSplitEFractionNLocMaxN[mcindex][matched]->Fill(en,splitFrac) ;
1778 }
1779
1780 if(en > fHistoECut)
1781 {
1782
1783 fhMassM02NLocMaxN[0][matched]->Fill(l0,mass);
cb99fa55 1784 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMaxN[mcindex][matched]->Fill(l0,mass);
1253480f 1785
1786 fhSplitEFractionvsAsyNLocMaxN[matched]->Fill(asym,splitFrac) ;
1787 if(!matched)fhClusterEtaPhiNLocMaxN->Fill(eta,phi);
1788 }
1789 }
1790
1791
1792}
1793
b94e038e 1794//________________________________________________________________________________________________
1795void AliAnaInsideClusterInvariantMass::FillHistograms2(Float_t en, Float_t eprim,
1796 Float_t e1, Float_t e2,
1797 Int_t nMax, Float_t mass, Float_t l0,
1798 Bool_t matched, Int_t mcindex)
1253480f 1799{
1800 // Fill histograms for clusters passing the first M02 selection
1801
1802 Float_t efrac = eprim/en;
1803 Float_t efracSplit = 0;
1804 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
1805
1806 Float_t splitFrac = (e1+e2)/en;
1807
1808 Float_t asym = -10;
1809 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1810
1811 Int_t inlm = nMax-1;
1812 if(inlm > 2) inlm = 2;
1813 Float_t splitFracMin = GetCaloPID()->GetSplitEnergyFractionMinimum(inlm) ;
1814
1815 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,l0,nMax);
1816 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1817 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1818 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
1819
a6d3b0a8 1820 Bool_t eCutOK = kFALSE;
1821 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1822 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1823 else if(ensubcut < 0.1) eCutOK = kTRUE;
1824
1825 //printf("splitFracMin %f, val %f, m02ok %d, asyok %d, m02On %d, asyOn %d, ecutOK %d\n",splitFracMin,splitFrac,m02OK,asyOK,m02On,asyOn,eCutOK);
1253480f 1826
1827 if(m02On && m02OK)
1828 {
29555e96 1829 fhNLocMaxM02Cut [0][matched]->Fill(en,nMax);
1830 fhLM1NLocMaxM02Cut[0][matched]->Fill(e1,nMax);
1831 fhLM2NLocMaxM02Cut[0][matched]->Fill(e2,nMax);
1832 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1833 {
1834 fhNLocMaxM02Cut [mcindex][matched]->Fill(en,nMax);
1835 fhLM1NLocMaxM02Cut[mcindex][matched]->Fill(e1,nMax);
1836 fhLM2NLocMaxM02Cut[mcindex][matched]->Fill(e2,nMax);
1837 }
1253480f 1838 }
1839
1840 if (nMax==1)
1841 {
1842 fhMassNLocMax1[0][matched]->Fill(en,mass );
1843 fhAsymNLocMax1[0][matched]->Fill(en,asym );
c7e9a4e9 1844 fhMassSplitENLocMax1[0][matched]->Fill(e1+e2,mass);
1253480f 1845
1846 // Effect of cuts in mass histograms
cb99fa55 1847
1848 if(!matched && asyOK && asyOn )
1849 {
1850 fhMassAsyCutNLocMax1->Fill(en,mass);
1851 fhM02AsyCutNLocMax1 ->Fill(en,l0 );
1852 }
1253480f 1853
1854 if(!matched && m02OK && m02On )
1855 {
1856 fhMassM02CutNLocMax1->Fill(en,mass);
1857 fhAsymM02CutNLocMax1->Fill(en,asym );
1858 if(splitFrac > splitFracMin && fhMassSplitECutNLocMax1) fhMassSplitECutNLocMax1->Fill(en,mass );
1859 }
1860
a6d3b0a8 1861 if(!matched && eCutOK && ensubcut > 0.1)
2c36e041 1862 {
1863 fhMassEnCutNLocMax1->Fill(en,mass );
1864 fhM02EnCutNLocMax1 ->Fill(en,l0 );
1865 fhAsymEnCutNLocMax1->Fill(en,asym );
a6d3b0a8 1866 fhSplitEFracEnCutNLocMax1->Fill(en,splitFrac );
2c36e041 1867 }
1868
a6d3b0a8 1869 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1870 {
1871 fhSplitEFractionAfterCutsNLocMax1[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1872 if(splitFrac > splitFracMin)
1873 {
1874 fhMassAfterCutsNLocMax1[0][matched]->Fill(en,mass);
1875 fhMassSplitEAfterCutsNLocMax1[0][matched]->Fill(e1+e2,mass);
1876 }
1253480f 1877 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1878 {
1879 fhMCGenFracAfterCutsNLocMax1MCPi0 ->Fill(en , efrac );
1880 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0->Fill(en , efracSplit);
1881 }
1882 }
1883 }
2c36e041 1884 else if( nMax == 2 )
1253480f 1885 {
1886 fhMassNLocMax2[0][matched]->Fill(en,mass );
1887 fhAsymNLocMax2[0][matched]->Fill(en,asym );
c7e9a4e9 1888 fhMassSplitENLocMax2[0][matched]->Fill(e1+e2,mass);
1889
1253480f 1890 // Effect of cuts in mass histograms
1891
cb99fa55 1892 if(!matched && asyOK && asyOn )
1893 {
1894 fhMassAsyCutNLocMax2->Fill(en,mass);
1895 fhM02AsyCutNLocMax2 ->Fill(en,l0 );
1896 }
1897
1253480f 1898 if(!matched && m02OK && m02On )
1899 {
1900 fhMassM02CutNLocMax2->Fill(en,mass);
1901 fhAsymM02CutNLocMax2->Fill(en,asym );
1902 if(splitFrac > splitFracMin && fhMassSplitECutNLocMax2) fhMassSplitECutNLocMax2->Fill(en,mass );
1903 }
1904
a6d3b0a8 1905 if(!matched && eCutOK && ensubcut > 0.1)
2c36e041 1906 {
1907 fhMassEnCutNLocMax2->Fill(en,mass );
1908 fhM02EnCutNLocMax2 ->Fill(en,l0 );
1909 fhAsymEnCutNLocMax2->Fill(en,asym );
a6d3b0a8 1910 fhSplitEFracEnCutNLocMax2->Fill(en,splitFrac );
2c36e041 1911 }
1912
a6d3b0a8 1913 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1914 {
1915 fhSplitEFractionAfterCutsNLocMax2[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1916 if(splitFrac > splitFracMin)
1917 {
1918 fhMassAfterCutsNLocMax2[0][matched]->Fill(en,mass);
1919 fhMassSplitEAfterCutsNLocMax2[0][matched]->Fill(e1+e2,mass);
1920 }
1253480f 1921
1922 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1923 {
1924 fhMCGenFracAfterCutsNLocMax2MCPi0 ->Fill(en , efrac );
1925 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0->Fill(en , efracSplit);
1926 }
1927 }
1928 }
2c36e041 1929 else if( nMax > 2 )
1253480f 1930 {
1931 fhMassNLocMaxN[0][matched]->Fill(en,mass);
1932 fhAsymNLocMaxN[0][matched]->Fill(en,asym);
c7e9a4e9 1933 fhMassSplitENLocMaxN[0][matched]->Fill(e1+e2,mass);
1934
1253480f 1935 // Effect of cuts in mass histograms
cb99fa55 1936
1937 if(!matched && asyOK && asyOn )
1938 {
1939 fhMassAsyCutNLocMaxN->Fill(en,mass);
1940 fhM02AsyCutNLocMaxN ->Fill(en,l0 );
1941 }
1942
1253480f 1943 if(!matched && m02OK && m02On )
1944 {
1945 fhMassM02CutNLocMaxN->Fill(en,mass);
1946 fhAsymM02CutNLocMaxN->Fill(en,asym );
1947 if(splitFrac > splitFracMin && fhMassSplitECutNLocMaxN) fhMassSplitECutNLocMaxN->Fill(en,mass );
1948 }
1949
a6d3b0a8 1950 if(!matched && eCutOK && ensubcut > 0.1 )
2c36e041 1951 {
1952 fhMassEnCutNLocMaxN->Fill(en,mass );
1953 fhM02EnCutNLocMaxN ->Fill(en,l0 );
1954 fhAsymEnCutNLocMaxN->Fill(en,asym );
a6d3b0a8 1955 fhSplitEFracEnCutNLocMaxN->Fill(en,splitFrac );
2c36e041 1956 }
1957
a6d3b0a8 1958 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1959 {
1960 fhSplitEFractionAfterCutsNLocMaxN[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1961 if(splitFrac > splitFracMin)
1962 {
1963 fhMassAfterCutsNLocMaxN[0][matched]->Fill(en,mass);
1964 fhMassSplitEAfterCutsNLocMaxN[0][matched]->Fill(e1+e2,mass);
1965 }
1253480f 1966
1967 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1968 {
1969 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->Fill(en , efrac );
1970 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0->Fill(en , efracSplit);
1971 }
1972 }
1973 }
1974
cb99fa55 1975 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1976 {
1977 if (nMax==1)
1978 {
1979 fhMassNLocMax1[mcindex][matched]->Fill(en,mass);
1980 fhAsymNLocMax1[mcindex][matched]->Fill(en,asym);
c7e9a4e9 1981 fhMassSplitENLocMax1[mcindex][matched]->Fill(e1+e2,mass);
1982
a6d3b0a8 1983 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1984 {
1985 fhSplitEFractionAfterCutsNLocMax1[mcindex][matched]->Fill(en,splitFrac);
1986 if(splitFrac > splitFracMin)
c7e9a4e9 1987 {
1253480f 1988 fhMassAfterCutsNLocMax1[mcindex][matched]->Fill(en,mass);
c7e9a4e9 1989 fhMassSplitEAfterCutsNLocMax1[mcindex][matched]->Fill(e1+e2,mass);
1990 }
1253480f 1991 }
1992 }
1993 else if(nMax==2)
1994 {
1995 fhMassNLocMax2[mcindex][matched]->Fill(en,mass);
1996 fhAsymNLocMax2[mcindex][matched]->Fill(en,asym);
c7e9a4e9 1997 fhMassSplitENLocMax2[mcindex][matched]->Fill(e1+e2,mass);
1998
a6d3b0a8 1999 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2000 {
2001 fhSplitEFractionAfterCutsNLocMax2[mcindex][matched]->Fill(en,splitFrac);
c7e9a4e9 2002 if(splitFrac > splitFracMin)
2003 {
1253480f 2004 fhMassAfterCutsNLocMax2[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2005 fhMassSplitEAfterCutsNLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2006 }
2007
1253480f 2008 }
2009 }
2010 else if(nMax >2)
2011 {
2012 fhMassNLocMaxN[mcindex][matched]->Fill(en,mass);
2013 fhAsymNLocMaxN[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2014 fhMassSplitENLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
2015
a6d3b0a8 2016 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2017 {
2018 fhSplitEFractionAfterCutsNLocMaxN[mcindex][matched]->Fill(en,splitFrac);
c7e9a4e9 2019 if(splitFrac > splitFracMin)
2020 {
1253480f 2021 fhMassAfterCutsNLocMaxN[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2022 fhMassSplitEAfterCutsNLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
2023 }
1253480f 2024 }
2025 }
2026 }//Work with MC truth
2027}
2028
2029
b94e038e 2030//_________________________________________________________________________________________________________
2031void AliAnaInsideClusterInvariantMass::FillIdPi0Histograms(Float_t en, Float_t e1, Float_t e2,
2032 Int_t nc, Int_t nMax, Float_t t12diff,
2033 Float_t mass, Float_t l0,
2034 Float_t eta, Float_t phi,
2035 Bool_t matched, Int_t mcindex)
1253480f 2036{
2037 // Fill histograms for clusters passing the pi0 selection
2038
2039 Float_t asym = -10;
2040 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2041
29555e96 2042 fhNLocMaxIdPi0 [0][matched]->Fill(en,nMax);
2043 fhLM1NLocMaxIdPi0[0][matched]->Fill(e1,nMax);
2044 fhLM2NLocMaxIdPi0[0][matched]->Fill(e2,nMax);
2045
cc909e6f 2046 fhSplitClusterEPi0NLocMax[0][matched]->Fill(e1,nMax);
2047 fhSplitClusterEPi0NLocMax[0][matched]->Fill(e2,nMax);
2048
cb99fa55 2049 if(IsDataMC() && mcindex > 0 && mcindex < 7)
cc909e6f 2050 {
2051 fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e1,nMax);
2052 fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e2,nMax);
2053 }
2054
1253480f 2055 if (nMax==1)
2056 {
2057 fhM02Pi0NLocMax1 [0][matched]->Fill(en,l0);
2058 fhMassPi0NLocMax1[0][matched]->Fill(en,mass);
2059 fhAsyPi0NLocMax1 [0][matched]->Fill(en,asym);
c7e9a4e9 2060 fhMassSplitEPi0NLocMax1[0][matched]->Fill(e1+e2,mass);
1253480f 2061 if(fFillNCellHisto) fhNCellPi0NLocMax1[0][matched]->Fill(en,nc);
2062
2063 if(!matched)
2064 {
2065 if(fFillHighMultHisto)
2066 {
2067 fhCentralityPi0NLocMax1->Fill(en,GetEventCentrality()) ;
2068 fhEventPlanePi0NLocMax1->Fill(en,GetEventPlaneAngle()) ;
2069 }
2070 if(en > fHistoECut)fhPi0EtaPhiNLocMax1->Fill(eta,phi);
2071 fhPi0EPairDiffTimeNLM1->Fill(e1+e2,t12diff);
2072 }
2073 }
2074 else if(nMax==2)
2075 {
2076 fhM02Pi0NLocMax2 [0][matched]->Fill(en,l0);
2077 fhMassPi0NLocMax2[0][matched]->Fill(en,mass);
2078 fhAsyPi0NLocMax2 [0][matched]->Fill(en,asym);
c7e9a4e9 2079 fhMassSplitEPi0NLocMax2[0][matched]->Fill(e1+e2,mass);
1253480f 2080 if(fFillNCellHisto) fhNCellPi0NLocMax2[0][matched]->Fill(en,nc);
2081
2082 if(!matched)
2083 {
2084 if(fFillHighMultHisto)
2085 {
2086 fhCentralityPi0NLocMax2->Fill(en,GetEventCentrality()) ;
2087 fhEventPlanePi0NLocMax2->Fill(en,GetEventPlaneAngle()) ;
2088 }
2089 if(en > fHistoECut)fhPi0EtaPhiNLocMax2->Fill(eta,phi);
2090 fhPi0EPairDiffTimeNLM2->Fill(e1+e2,t12diff);
2091 }
2092 }
2093 else if(nMax >2)
2094 {
2095 fhM02Pi0NLocMaxN [0][matched]->Fill(en,l0);
2096 fhMassPi0NLocMaxN[0][matched]->Fill(en,mass);
2097 fhAsyPi0NLocMaxN [0][matched]->Fill(en,asym);
c7e9a4e9 2098 fhMassSplitEPi0NLocMaxN[0][matched]->Fill(e1+e2,mass);
1253480f 2099 if(fFillNCellHisto) fhNCellPi0NLocMaxN[0][matched]->Fill(en,nc);
2100
2101 if(!matched)
2102 {
2103 if(fFillHighMultHisto)
2104 {
2105 fhCentralityPi0NLocMaxN->Fill(en,GetEventCentrality()) ;
2106 fhEventPlanePi0NLocMaxN->Fill(en,GetEventPlaneAngle()) ;
2107 }
2108 if(en > fHistoECut)fhPi0EtaPhiNLocMaxN->Fill(eta,phi);
2109 fhPi0EPairDiffTimeNLMN->Fill(e1+e2,t12diff);
2110 }
2111 }
2112
cb99fa55 2113 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2114 {
db790ee8 2115 fhNLocMaxIdPi0 [mcindex][matched]->Fill(en,nMax);
2116 fhLM1NLocMaxIdPi0[mcindex][matched]->Fill(e1,nMax);
2117 fhLM2NLocMaxIdPi0[mcindex][matched]->Fill(e2,nMax);
29555e96 2118
1253480f 2119 if (nMax==1)
2120 {
2121 fhM02Pi0NLocMax1 [mcindex][matched]->Fill(en,l0);
2122 fhMassPi0NLocMax1[mcindex][matched]->Fill(en,mass);
2123 fhAsyPi0NLocMax1 [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2124 fhMassSplitEPi0NLocMax1[mcindex][matched]->Fill(e1+e2,mass);
1253480f 2125 if(fFillNCellHisto) fhNCellPi0NLocMax1[mcindex][matched]->Fill(en,nc);
2126
2127 }
2128 else if(nMax==2)
2129 {
2130 fhM02Pi0NLocMax2 [mcindex][matched]->Fill(en,l0);
2131 fhMassPi0NLocMax2[mcindex][matched]->Fill(en,mass);
2132 fhAsyPi0NLocMax2 [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2133 fhMassSplitEPi0NLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2134 if(fFillNCellHisto) fhNCellPi0NLocMax2[mcindex][matched]->Fill(en,nc);
1253480f 2135 }
2136 else if(nMax >2)
2137 {
cc909e6f 2138 fhM02Pi0NLocMaxN [mcindex][matched]->Fill(en,l0);
1253480f 2139 fhMassPi0NLocMaxN[mcindex][matched]->Fill(en,mass);
cc909e6f 2140 fhAsyPi0NLocMaxN [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2141 fhMassSplitEPi0NLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
1253480f 2142 if(fFillNCellHisto) fhNCellPi0NLocMaxN[mcindex][matched]->Fill(en,nc);
2143 }
2144 }//Work with MC truth
2145}
2146
b94e038e 2147//______________________________________________________________________________________________________
2148void AliAnaInsideClusterInvariantMass::FillIdEtaHistograms(Float_t en, Float_t e1, Float_t e2,
2149 Int_t nc, Int_t nMax, Float_t t12diff,
2150 Float_t mass, Float_t l0,
2151 Float_t eta, Float_t phi,
2152 Bool_t matched, Int_t mcindex)
1253480f 2153{
2154 // Fill histograms for clusters passing the eta selection
2155
2156 Float_t asym = -10;
2157 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2158
2159 if (nMax==1)
2160 {
2161 fhM02EtaNLocMax1 [0][matched]->Fill(en,l0);
2162 fhMassEtaNLocMax1[0][matched]->Fill(en,mass);
2163 fhAsyEtaNLocMax1 [0][matched]->Fill(en,asym);
2164 if(fFillNCellHisto) fhNCellEtaNLocMax1[0][matched]->Fill(en,nc);
2165
2166 if(!matched)
2167 {
2168 if(fFillHighMultHisto)
2169 {
2170 fhCentralityEtaNLocMax1->Fill(en,GetEventCentrality()) ;
2171 fhEventPlaneEtaNLocMax1->Fill(en,GetEventPlaneAngle()) ;
2172 }
2173 if(en > fHistoECut)fhEtaEtaPhiNLocMax1->Fill(eta,phi);
2174 fhEtaEPairDiffTimeNLM1->Fill(e1+e2,t12diff);
2175 }
2176 }
2177 else if(nMax==2)
2178 {
2179 fhM02EtaNLocMax2 [0][matched]->Fill(en,l0);
2180 fhMassEtaNLocMax2[0][matched]->Fill(en,mass);
2181 fhAsyEtaNLocMax2 [0][matched]->Fill(en,asym);
2182 if(fFillNCellHisto) fhNCellEtaNLocMax2[0][matched]->Fill(en,nc);
2183
2184 if(!matched)
2185 {
2186 if(fFillHighMultHisto)
2187 {
2188 fhCentralityEtaNLocMax2->Fill(en,GetEventCentrality()) ;
2189 fhEventPlaneEtaNLocMax2->Fill(en,GetEventPlaneAngle()) ;
2190 }
2191 if(en > fHistoECut)fhEtaEtaPhiNLocMax2->Fill(eta,phi);
2192 fhEtaEPairDiffTimeNLM2->Fill(e1+e2,t12diff);
2193 }
2194 }
2195 else if(nMax >2)
2196 {
2197 fhM02EtaNLocMaxN [0][matched]->Fill(en,l0);
2198 fhMassEtaNLocMaxN[0][matched]->Fill(en,mass);
2199 fhAsyEtaNLocMaxN [0][matched]->Fill(en,asym);
2200 if(fFillNCellHisto) fhNCellEtaNLocMaxN[0][matched]->Fill(en,nc);
2201
2202 if(!matched)
2203 {
2204 if(fFillHighMultHisto)
2205 {
2206 fhCentralityEtaNLocMaxN->Fill(en,GetEventCentrality()) ;
2207 fhEventPlaneEtaNLocMaxN->Fill(en,GetEventPlaneAngle()) ;
2208 }
2209 if(en > fHistoECut)fhEtaEtaPhiNLocMaxN->Fill(eta,phi);
2210 fhEtaEPairDiffTimeNLMN->Fill(e1+e2,t12diff);
2211 }
2212 }
2213
cb99fa55 2214 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2215 {
2216 if (nMax==1)
2217 {
2218 fhM02EtaNLocMax1[mcindex][matched]->Fill(en,l0);
2219 fhMassEtaNLocMax1[mcindex][matched]->Fill(en,mass);
2220 fhAsyEtaNLocMax1[mcindex][matched]->Fill(en,asym);
2221 if(fFillNCellHisto) fhNCellEtaNLocMax1[mcindex][matched]->Fill(en,nc);
2222 }
2223 else if(nMax==2)
2224 {
2225 fhM02EtaNLocMax2 [mcindex][matched]->Fill(en,l0);
2226 fhMassEtaNLocMax2[mcindex][matched]->Fill(en,mass);
2227 fhAsyEtaNLocMax2 [mcindex][matched]->Fill(en,asym);
2228 if(fFillNCellHisto) fhNCellEtaNLocMax2[mcindex][matched]->Fill(en,nc);
2229
2230 }
2231 else if(nMax >2)
2232 {
c7e9a4e9 2233 fhM02EtaNLocMaxN[mcindex][matched]->Fill(en,l0);
2234 fhMassEtaNLocMaxN[mcindex][matched]->Fill(en,mass);
2235 fhAsyEtaNLocMaxN[mcindex][matched]->Fill(en,asym);
2236 if(fFillNCellHisto) fhNCellEtaNLocMaxN[mcindex][matched]->Fill(en,nc);
1253480f 2237 }
2238 }//Work with MC truth
2239}
2240
2241
b94e038e 2242//__________________________________________________________________________________________________
2243void AliAnaInsideClusterInvariantMass::FillIdConvHistograms(Float_t en, Int_t nMax, Float_t asym,
2244 Float_t mass, Float_t l0,
2245 Bool_t matched, Int_t mcindex)
1253480f 2246{
2247 // Fill histograms for clusters passing the photon selection
2248
2249 if (nMax==1)
2250 {
2251 fhM02ConNLocMax1 [0][matched]->Fill(en,l0);
2252 fhMassConNLocMax1[0][matched]->Fill(en,mass);
2253 fhAsyConNLocMax1 [0][matched]->Fill(en,asym);
2254 }
2255 else if(nMax==2)
2256 {
2257 fhM02ConNLocMax2 [0][matched]->Fill(en,l0);
2258 fhMassConNLocMax2[0][matched]->Fill(en,mass);
2259 fhAsyConNLocMax2 [0][matched]->Fill(en,asym);
2260 }
2261 else if(nMax >2)
2262 {
2263 fhM02ConNLocMaxN [0][matched]->Fill(en,l0);
2264 fhMassConNLocMaxN[0][matched]->Fill(en,mass);
2265 fhAsyConNLocMaxN [0][matched]->Fill(en,asym);
2266 }
2267
cb99fa55 2268 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2269 {
2270 if (nMax==1)
2271 {
2272 fhM02ConNLocMax1 [mcindex][matched]->Fill(en,l0);
2273 fhMassConNLocMax1[mcindex][matched]->Fill(en,mass);
2274 fhAsyConNLocMax1 [mcindex][matched]->Fill(en,asym);
2275 }
2276 else if(nMax==2)
2277 {
2278 fhM02ConNLocMax2 [mcindex][matched]->Fill(en,l0);
2279 fhMassConNLocMax2[mcindex][matched]->Fill(en,mass);
2280 fhAsyConNLocMax2 [mcindex][matched]->Fill(en,asym);
2281 }
2282 else if(nMax >2)
2283 {
2284 fhM02ConNLocMaxN [mcindex][matched]->Fill(en,l0);
2285 fhMassConNLocMaxN[mcindex][matched]->Fill(en,mass);
2286 fhAsyConNLocMaxN [mcindex][matched]->Fill(en,asym);
2287 }
2288
2289 }//Work with MC truth
2290}
2291
b94e038e 2292//_______________________________________________________________________________________________________
2293void AliAnaInsideClusterInvariantMass::FillMCHistograms(Float_t en, Float_t e1 , Float_t e2,
2294 Int_t ebin, Int_t mcindex,Int_t noverlaps,
2295 Float_t l0, Float_t mass,
2296 Int_t nMax, Bool_t matched,
2297 Float_t splitFrac, Float_t asym,
2298 Float_t eprim, Float_t asymGen)
b2e375c7 2299{
2300 // Fill histograms needing some MC input
1253480f 2301
b2e375c7 2302 Float_t efrac = eprim/en;
2303 Float_t efracSplit = 0;
2304 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
b583134f 2305 Float_t asymDiff = TMath::Abs(asym) - TMath::Abs(asymGen);
2306
b2e375c7 2307 //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",
2308 // e1,e2,eprim,en,splitFrac,efrac,efracSplit);
2309
2310 if(ebin >= 0 && fFillEbinHisto)
2311 {
2312 if( !matched ) fhMCGenFracNLocMaxEbin [mcindex][ebin]->Fill(efrac,nMax);
2313 else fhMCGenFracNLocMaxEbinMatched[mcindex][ebin]->Fill(efrac,nMax);
2314 }
2315
2316 if (nMax==1)
2317 {
2318 fhMCGenFracNLocMax1 [mcindex][matched]->Fill(en , efrac );
2319 fhMCGenSplitEFracNLocMax1[mcindex][matched]->Fill(en , efracSplit );
2320 fhMCGenEvsSplitENLocMax1 [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2321 if(asym > 0 && !matched)
2322 {
2323 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[0] ->Fill(en, asymDiff );
2324 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[0]->Fill(en, asymDiff );
2325 }
2326
4914e781 2327 if(noverlaps==0)
2328 {
2329 fhMCGenFracNLocMax1NoOverlap [mcindex][matched]->Fill(en , efrac );
2330 fhMCGenSplitEFracNLocMax1NoOverlap[mcindex][matched]->Fill(en , efracSplit );
2331 }
2332
b2e375c7 2333 if( en > fHistoECut )
2334 {
2335 fhMCGenEFracvsSplitEFracNLocMax1[mcindex][matched]->Fill(efrac,splitFrac );
2336
2337 if(!matched && ebin >= 0 && fFillEbinHisto)
2338 {
2339 fhM02MCGenFracNLocMax1Ebin [mcindex][ebin]->Fill(efrac , l0 );
2340 fhMassMCGenFracNLocMax1Ebin[mcindex][ebin]->Fill(efrac , mass );
2341
b583134f 2342 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2343 {
2344 fhMCAsymM02NLocMax1MCPi0Ebin [ebin]->Fill(l0 , asymGen );
2345 fhAsyMCGenRecoNLocMax1EbinPi0[ebin]->Fill(asym, asymGen );
2346 }
b2e375c7 2347 }
2348 }
2349 }
2350 else if(nMax==2)
2351 {
2352 fhMCGenFracNLocMax2 [mcindex][matched]->Fill(en , efrac );
2353 fhMCGenSplitEFracNLocMax2[mcindex][matched]->Fill(en , efracSplit );
2354 fhMCGenEvsSplitENLocMax2 [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2355
2356 if(asym > 0 && !matched)
2357 {
2358 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[1] ->Fill(en, asymDiff );
2359 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[1]->Fill(en, asymDiff );
2360 }
b2e375c7 2361
4914e781 2362 if(noverlaps==0)
2363 {
2364 fhMCGenFracNLocMax2NoOverlap [mcindex][matched]->Fill(en , efrac );
2365 fhMCGenSplitEFracNLocMax2NoOverlap[mcindex][matched]->Fill(en , efracSplit );
2366 }
2367
b2e375c7 2368 if( en > fHistoECut )
2369 {
2370 fhMCGenEFracvsSplitEFracNLocMax2[mcindex][matched]->Fill(efrac,splitFrac );
2371
2372 if(!matched && ebin >= 0 && fFillEbinHisto)
2373 {
2374 fhM02MCGenFracNLocMax2Ebin [mcindex][ebin]->Fill(efrac , l0 );
2375 fhMassMCGenFracNLocMax2Ebin[mcindex][ebin]->Fill(efrac , mass );
b583134f 2376 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2377 {
2378 fhMCAsymM02NLocMax2MCPi0Ebin [ebin]->Fill(l0 , asymGen );
2379 fhAsyMCGenRecoNLocMax2EbinPi0[ebin]->Fill(asym, asymGen );
2380 }
b2e375c7 2381 }
2382 }
2383
2384 }
2385 else if(nMax > 2 )
2386 {
2387 fhMCGenFracNLocMaxN [mcindex][matched]->Fill(en , efrac );
2388 fhMCGenSplitEFracNLocMaxN[mcindex][matched]->Fill(en , efracSplit );
2389 fhMCGenEvsSplitENLocMaxN [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2390 if(asym > 0 && !matched)
2391 {
2392 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[2] ->Fill(en, asymDiff );
2393 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[2]->Fill(en, asymDiff );
2394 }
2395
4914e781 2396 if(noverlaps==0)
2397 {
2398 fhMCGenFracNLocMaxNNoOverlap [mcindex][matched]->Fill(en , efrac );
2399 fhMCGenSplitEFracNLocMaxNNoOverlap[mcindex][matched]->Fill(en , efracSplit );
2400 }
2401
b2e375c7 2402 if( en > fHistoECut )
2403 {
2404 fhMCGenEFracvsSplitEFracNLocMaxN[mcindex][matched]->Fill(efrac,splitFrac );
2405
2406 if(!matched && ebin >= 0 && fFillEbinHisto)
2407 {
2408 fhM02MCGenFracNLocMaxNEbin [mcindex][ebin]->Fill(efrac , l0 );
2409 fhMassMCGenFracNLocMaxNEbin[mcindex][ebin]->Fill(efrac , mass );
2410
b583134f 2411 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2412 {
2413 fhMCAsymM02NLocMaxNMCPi0Ebin [ebin]->Fill(l0 , asymGen );
2414 fhAsyMCGenRecoNLocMaxNEbinPi0[ebin]->Fill(asym, asymGen );
2415 }
b2e375c7 2416 }
2417 }
2418 }
2419}
2420
b94e038e 2421//__________________________________________________________________________________________________________
2422void AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms(Float_t en, Float_t enprim,
2423 Int_t nc, Float_t mass, Float_t l0,
2424 Float_t asym, Float_t splitFrac,
2425 Int_t inlm, Int_t ebin, Bool_t matched,
2426 Int_t mcindex, Int_t noverlaps)
b2e375c7 2427{
b2e375c7 2428 // Fill histograms for MC Overlaps
2429
2430 //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 2431
b2e375c7 2432 //printf("AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms - NLM bin=%d, mcIndex %d, n Overlaps %d\n",inlm,mcindex,noverlaps);
2433
2434 if(!matched)
2435 {
2436 fhMCENOverlaps[inlm][mcindex]->Fill(en,noverlaps);
2437
2438 if (noverlaps == 0)
2439 {
74e3eb22 2440 fhMCEM02Overlap0 [inlm][mcindex]->Fill(en, l0);
2441 fhMCEMassOverlap0 [inlm][mcindex]->Fill(en, mass);
2442 fhMCEEpriOverlap0 [inlm][mcindex]->Fill(en, enprim);
2443 fhMCEAsymOverlap0 [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2444 if(fFillNCellHisto) fhMCENCellOverlap0[inlm][mcindex]->Fill(en, nc);
83351853 2445 fhMCESplitEFracOverlap0[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2446 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0[inlm][ebin]->Fill(l0,mass);
2447 }
2448 else if(noverlaps == 1)
2449 {
74e3eb22 2450 fhMCEM02Overlap1 [inlm][mcindex]->Fill(en, l0);
2451 fhMCEMassOverlap1 [inlm][mcindex]->Fill(en, mass);
2452 fhMCEEpriOverlap1 [inlm][mcindex]->Fill(en, enprim);
2453 fhMCEAsymOverlap1 [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2454 if(fFillNCellHisto) fhMCENCellOverlap1[inlm][mcindex]->Fill(en, nc);
83351853 2455 fhMCESplitEFracOverlap1[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2456 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1[inlm][ebin]->Fill(l0,mass);
2457 }
2458 else if(noverlaps > 1)
2459 {
74e3eb22 2460 fhMCEM02OverlapN [inlm][mcindex]->Fill(en, l0);
2461 fhMCEMassOverlapN [inlm][mcindex]->Fill(en, mass);
2462 fhMCEEpriOverlapN [inlm][mcindex]->Fill(en, enprim);
2463 fhMCEAsymOverlapN [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2464 if(fFillNCellHisto) fhMCENCellOverlapN[inlm][mcindex]->Fill(en, nc);
83351853 2465 fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2466 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapN[inlm][ebin]->Fill(l0,mass);
2467 }
2468 else
a6d3b0a8 2469 Info("FillMCOverlapHistograms","n overlaps = %d!!", noverlaps);
b2e375c7 2470 }
2471 else if(fFillTMHisto)
2472 {
2473 fhMCENOverlapsMatch[inlm][mcindex]->Fill(en,noverlaps);
2474
2475 if (noverlaps == 0)
2476 {
74e3eb22 2477 fhMCEM02Overlap0Match [inlm][mcindex]->Fill(en, l0);
2478 fhMCEMassOverlap0Match [inlm][mcindex]->Fill(en, mass);
2479 fhMCEEpriOverlap0Match [inlm][mcindex]->Fill(en, enprim);
2480 fhMCEAsymOverlap0Match [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2481 if(fFillNCellHisto) fhMCENCellOverlap0Match[inlm][mcindex]->Fill(en, nc);
83351853 2482 fhMCESplitEFracOverlap0Match[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2483 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0Match[inlm][ebin]->Fill(l0,mass);
2484 }
2485 else if(noverlaps == 1)
2486 {
74e3eb22 2487 fhMCEM02Overlap1Match [inlm][mcindex]->Fill(en, l0);
2488 fhMCEMassOverlap1Match [inlm][mcindex]->Fill(en, mass);
2489 fhMCEEpriOverlap1Match [inlm][mcindex]->Fill(en, enprim);
2490 fhMCEAsymOverlap1Match [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2491 if(fFillNCellHisto) fhMCENCellOverlap1Match[inlm][mcindex]->Fill(en, nc);
83351853 2492 fhMCESplitEFracOverlap1Match[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2493 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1Match[inlm][ebin]->Fill(l0,mass);
2494 }
2495 else if(noverlaps > 1)
2496 {
74e3eb22 2497 fhMCEM02OverlapNMatch [inlm][mcindex]->Fill(en, l0);
2498 fhMCEMassOverlapNMatch [inlm][mcindex]->Fill(en, mass);
2499 fhMCEEpriOverlapNMatch [inlm][mcindex]->Fill(en, enprim);
2500 fhMCEAsymOverlapNMatch [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2501 if(fFillNCellHisto) fhMCENCellOverlapNMatch[inlm][mcindex]->Fill(en, nc);
83351853 2502 fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2503 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapNMatch[inlm][ebin]->Fill(l0,mass);
2504 }
2505 else
a6d3b0a8 2506 Info("FillMCOverlapHistograms()","n overlaps in matched = %d!!", noverlaps);
b2e375c7 2507 }
2508}
2509
4914e781 2510
b94e038e 2511//_____________________________________________________________________________________________________
2512void AliAnaInsideClusterInvariantMass::FillNCellHistograms(Int_t ncells, Float_t energy, Int_t nMax,
2513 Bool_t matched, Int_t mcindex,
2514 Float_t mass , Float_t l0)
4914e781 2515
2516{
2517 // Fill optional histograms with more SS parameters
1253480f 2518
4914e781 2519 if (nMax==1)
2520 {
2521 fhNCellNLocMax1[0][matched]->Fill(energy,ncells) ;
2522 if(mcindex > 0 ) fhNCellNLocMax1[mcindex][matched]->Fill(energy,ncells) ;
2523
2524 if (mcindex==kmcPi0 && !matched)
2525 {
2526 if( energy > fHistoECut)
2527 {
2528 fhNCellMassEHighNLocMax1MCPi0->Fill(ncells,mass);
2529 fhNCellM02EHighNLocMax1MCPi0 ->Fill(ncells,l0);
2530 }
2531 else
2532 {
2533 fhNCellMassELowNLocMax1MCPi0->Fill(ncells,mass);
2534 fhNCellM02ELowNLocMax1MCPi0 ->Fill(ncells,l0);
2535 }
2536 }
2537 }
2538 else if( nMax == 2 )
2539 {
2540 fhNCellNLocMax2[0][matched]->Fill(energy,ncells) ;
2541 if(mcindex > 0 ) fhNCellNLocMax2[mcindex][matched]->Fill(energy,ncells) ;
2542
2543
2544 if (mcindex==kmcPi0 && !matched)
2545 {
2546 if( energy > fHistoECut)
2547 {
2548 fhNCellMassEHighNLocMax2MCPi0->Fill(ncells,mass);
2549 fhNCellM02EHighNLocMax2MCPi0 ->Fill(ncells,l0);
2550 }
2551 else
2552 {
2553 fhNCellMassELowNLocMax2MCPi0->Fill(ncells,mass);
2554 fhNCellM02ELowNLocMax2MCPi0 ->Fill(ncells,l0);
2555 }
2556 }
2557 }
2558 else if( nMax >= 3 )
2559 {
2560 fhNCellNLocMaxN[0][matched]->Fill(energy,ncells) ;
2561 if(mcindex > 0 ) fhNCellNLocMaxN[mcindex][matched]->Fill(energy,ncells) ;
2562
2563 if (mcindex==kmcPi0 && !matched)
2564 {
2565 if( energy > fHistoECut)
2566 {
2567 fhNCellMassEHighNLocMaxNMCPi0->Fill(ncells,mass);
2568 fhNCellM02EHighNLocMaxNMCPi0 ->Fill(ncells,l0);
2569 }
2570 else
2571 {
2572 fhNCellMassELowNLocMaxNMCPi0->Fill(ncells,mass);
2573 fhNCellM02ELowNLocMaxNMCPi0 ->Fill(ncells,l0);
2574 }
2575 }
2576 }
2577}
2578
b94e038e 2579//_____________________________________________________________________________________________
2580void AliAnaInsideClusterInvariantMass::FillSSExtraHistograms(AliVCluster *cluster, Int_t nMax,
2581 Bool_t matched, Int_t mcindex,
2582 Float_t mass , Int_t ebin)
b2e375c7 2583{
2584 // Fill optional histograms with more SS parameters
1253480f 2585
b2e375c7 2586 Float_t en = cluster->E();
b2e375c7 2587
2588 // Get more Shower Shape parameters
2589 Float_t ll0 = 0., ll1 = 0.;
2590 Float_t disp= 0., dispEta = 0., dispPhi = 0.;
2591 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2592
2593 GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
2594 ll0, ll1, disp, dispEta, dispPhi, sEta, sPhi, sEtaPhi);
2595
2596 Float_t dispAsy = -1;
2597 if(dispEta+dispPhi >0 ) dispAsy = (dispPhi-dispEta) / (dispPhi+dispEta);
b2e375c7 2598
2599 if (nMax==1)
2600 {
b2e375c7 2601 if( en > fHistoECut )
2602 {
2603 fhMassDispEtaNLocMax1[0][matched]->Fill(dispEta, mass );
2604 fhMassDispPhiNLocMax1[0][matched]->Fill(dispPhi, mass );
2605 fhMassDispAsyNLocMax1[0][matched]->Fill(dispAsy, mass );
2606
cb99fa55 2607 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2608 {
2609 fhMassDispEtaNLocMax1[mcindex][matched]->Fill(dispEta, mass );
2610 fhMassDispPhiNLocMax1[mcindex][matched]->Fill(dispPhi, mass );
2611 fhMassDispAsyNLocMax1[mcindex][matched]->Fill(dispAsy, mass );
2612 }
2613 }
2614
2615 if(!matched && ebin >= 0 && fFillEbinHisto)
2616 {
2617 fhMassDispEtaNLocMax1Ebin[ebin]->Fill(dispEta, mass );
2618 fhMassDispPhiNLocMax1Ebin[ebin]->Fill(dispPhi, mass );
2619 fhMassDispAsyNLocMax1Ebin[ebin]->Fill(dispAsy, mass );
2620 }
2621 }
2622 else if( nMax == 2 )
2623 {
b2e375c7 2624 if( en > fHistoECut )
2625 {
2626 fhMassDispEtaNLocMax2[0][matched]->Fill(dispEta, mass );
2627 fhMassDispPhiNLocMax2[0][matched]->Fill(dispPhi, mass );
2628 fhMassDispAsyNLocMax2[0][matched]->Fill(dispAsy, mass );
2629
cb99fa55 2630 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2631 {
2632 fhMassDispEtaNLocMax2[mcindex][matched]->Fill(dispEta, mass );
2633 fhMassDispPhiNLocMax2[mcindex][matched]->Fill(dispPhi, mass );
2634 fhMassDispAsyNLocMax2[mcindex][matched]->Fill(dispAsy, mass );
2635 }
2636 }
2637
2638 if(!matched && ebin >= 0 && fFillEbinHisto)
2639 {
2640 fhMassDispEtaNLocMax2Ebin[ebin]->Fill(dispEta, mass );
2641 fhMassDispPhiNLocMax2Ebin[ebin]->Fill(dispPhi, mass );
2642 fhMassDispAsyNLocMax2Ebin[ebin]->Fill(dispAsy, mass );
2643 }
2644
2645 }
2646 else if( nMax >= 3 )
2647 {
b2e375c7 2648 if( en > fHistoECut )
2649 {
2650 fhMassDispEtaNLocMaxN[0][matched]->Fill(dispEta, mass );
2651 fhMassDispPhiNLocMaxN[0][matched]->Fill(dispPhi, mass );
2652 fhMassDispAsyNLocMaxN[0][matched]->Fill(dispAsy, mass );
2653
cb99fa55 2654 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2655 {
2656 fhMassDispEtaNLocMaxN[mcindex][matched]->Fill(dispEta, mass );
2657 fhMassDispPhiNLocMaxN[mcindex][matched]->Fill(dispPhi, mass );
2658 fhMassDispAsyNLocMaxN[mcindex][matched]->Fill(dispAsy, mass );
2659 }
2660 }
2661
2662 if(!matched && ebin >= 0 && fFillEbinHisto)
2663 {
2664 fhMassDispEtaNLocMaxNEbin[ebin]->Fill(dispEta, mass );
2665 fhMassDispPhiNLocMaxNEbin[ebin]->Fill(dispPhi, mass );
2666 fhMassDispAsyNLocMaxNEbin[ebin]->Fill(dispAsy, mass );
2667 }
2668
2669 }
2670
2671}
2672
b94e038e 2673//__________________________________________________________________________________________
2674void AliAnaInsideClusterInvariantMass::FillSSWeightHistograms(AliVCluster *clus, Int_t nlm,
2675 Int_t absId1, Int_t absId2)
dbe09c26 2676{
2677 // Calculate weights and fill histograms
1253480f 2678
dbe09c26 2679 AliVCaloCells* cells = 0;
2680 if(fCalorimeter == "EMCAL") cells = GetEMCALCells();
2681 else cells = GetPHOSCells();
2682
2683 // First recalculate energy in case non linearity was applied
2684 Float_t energy = 0;
2685 for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
2686 {
2687
2688 Int_t id = clus->GetCellsAbsId()[ipos];
2689
2690 //Recalibrate cell energy if needed
2691 Float_t amp = cells->GetCellAmplitude(id);
2692 GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id);
2693
2694 energy += amp;
2695
2696 } // energy loop
2697
2698 if(energy <=0 )
2699 {
a6d3b0a8 2700 Info("WeightHistograms()","Wrong calculated energy %f\n",energy);
dbe09c26 2701 return;
2702 }
2703
19391b8c 2704 //Get amplitude of main local maxima, recalibrate if needed
2705 Float_t amp1 = cells->GetCellAmplitude(absId1);
2706 GetCaloUtils()->RecalibrateCellAmplitude(amp1,fCalorimeter, absId1);
2707 Float_t amp2 = cells->GetCellAmplitude(absId2);
2708 GetCaloUtils()->RecalibrateCellAmplitude(amp2,fCalorimeter, absId2);
2709
a6d3b0a8 2710 if(amp1 < amp2) Info("FillSSWeightHistograms","Bad local maxima E ordering : id1 E %f, id2 E %f\n ",amp1,amp2);
2711 if(amp1==0 || amp2==0) Info("FillSSWeightHistograms","Null E local maxima : id1 E %f, id2 E %f\n " ,amp1,amp2);
19391b8c 2712
2713 if(amp1>0)fhPi0CellEMaxEMax2Frac [nlm]->Fill(energy,amp2/amp1);
2714 fhPi0CellEMaxClusterFrac [nlm]->Fill(energy,amp1/energy);
2715 fhPi0CellEMax2ClusterFrac[nlm]->Fill(energy,amp2/energy);
2716
dbe09c26 2717 //Get the ratio and log ratio to all cells in cluster
2718 for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
2719 {
2720 Int_t id = clus->GetCellsAbsId()[ipos];
2721
2722 //Recalibrate cell energy if needed
2723 Float_t amp = cells->GetCellAmplitude(id);
2724 GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id);
2725
19391b8c 2726 if(amp > 0)fhPi0CellE [nlm]->Fill(energy,amp);
dbe09c26 2727 fhPi0CellEFrac [nlm]->Fill(energy,amp/energy);
2728 fhPi0CellLogEFrac[nlm]->Fill(energy,TMath::Log(amp/energy));
19391b8c 2729
2730 if (id!=absId1 && id!=absId2)
2731 {
2732 if(amp1>0)fhPi0CellEMaxFrac [nlm]->Fill(energy,amp/amp1);
2733 if(amp2>0)fhPi0CellEMax2Frac[nlm]->Fill(energy,amp/amp2);
2734 }
2735
dbe09c26 2736 }
2737
2738 //Recalculate shower shape for different W0
2739 if(fCalorimeter=="EMCAL")
2740 {
2741 Float_t l0org = clus->GetM02();
2742 Float_t l1org = clus->GetM20();
2743 Float_t dorg = clus->GetDispersion();
19391b8c 2744 Float_t w0org = GetCaloUtils()->GetEMCALRecoUtils()->GetW0();
dbe09c26 2745
2746 for(Int_t iw = 0; iw < fSSWeightN; iw++)
2747 {
2748 GetCaloUtils()->GetEMCALRecoUtils()->SetW0(fSSWeight[iw]);
8edbd100 2749 //GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), cells, clus);
2750
2751 Float_t l0 = 0., l1 = 0.;
2752 Float_t disp = 0., dEta = 0., dPhi = 0.;
2753 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2754
2755 RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp,
2756 dEta, dPhi, sEta, sPhi, sEtaPhi,0);
2757
dbe09c26 2758
2759 fhM02WeightPi0[nlm][iw]->Fill(energy,clus->GetM02());
2760
2761 } // w0 loop
2762
2763 // Set the original values back
2764 clus->SetM02(l0org);
2765 clus->SetM20(l1org);
2766 clus->SetDispersion(dorg);
19391b8c 2767 GetCaloUtils()->GetEMCALRecoUtils()->SetW0(w0org);
2768
2769 for(Int_t iec = 0; iec < fSSECellCutN; iec++)
2770 {
2771 Float_t l0 = 0., l1 = 0.;
2772 Float_t disp = 0., dEta = 0., dPhi = 0.;
2773 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
19391b8c 2774
3ae72bd8 2775 RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp,
2776 dEta, dPhi, sEta, sPhi, sEtaPhi,fSSECellCut[iec]);
2777
c0779373 2778 //printf("E %f, l0 org %f, l0 new %f, slope %f\n",clus->E(),l0org,l0,fSSECellCut[iec]);
19391b8c 2779 fhM02ECellCutPi0[nlm][iec]->Fill(energy,l0);
2780
2781 } // w0 loop
3ae72bd8 2782
dbe09c26 2783 }// EMCAL
2784}
2785
b94e038e 2786//____________________________________________________________________________________________
2787void AliAnaInsideClusterInvariantMass::FillTrackMatchingHistograms(AliVCluster * cluster,
2788 Int_t nMax, Int_t mcindex)
b2e375c7 2789{
2790 // Fill histograms related to track matching
1253480f 2791
b2e375c7 2792 Float_t dZ = cluster->GetTrackDz();
2793 Float_t dR = cluster->GetTrackDx();
2794 Float_t en = cluster->E();
2795
2796 if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn())
2797 {
2798 dR = 2000., dZ = 2000.;
2799 GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR);
2800 }
2801
2802 //printf("Pi0EbE: dPhi %f, dEta %f\n",dR,dZ);
2803
2804 if(TMath::Abs(dR) < 999)
2805 {
2806 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[0]->Fill(en,dR); }
2807 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[0]->Fill(en,dR); }
2808 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[0]->Fill(en,dR); }
2809
cb99fa55 2810 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2811 {
2812 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[mcindex]->Fill(en,dR); }
2813 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[mcindex]->Fill(en,dR); }
2814 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[mcindex]->Fill(en,dR); }
2815 }
2816
2817 AliVTrack *track = GetCaloUtils()->GetMatchedTrack(cluster, GetReader()->GetInputEvent());
2818
2819 Bool_t positive = kFALSE;
2820 if(track) positive = (track->Charge()>0);
2821
2822 if(track)
2823 {
2824 if(positive)
2825 {
2826 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[0]->Fill(en,dR); }
2827 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[0]->Fill(en,dR); }
2828 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[0]->Fill(en,dR); }
2829
cb99fa55 2830 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2831 {
2832 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[mcindex]->Fill(en,dR); }
2833 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[mcindex]->Fill(en,dR); }
2834 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[mcindex]->Fill(en,dR); }
2835 }
2836 }
2837 else
2838 {
2839 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[0]->Fill(en,dR); }
2840 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[0]->Fill(en,dR); }
2841 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[0]->Fill(en,dR); }
2842
cb99fa55 2843 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2844 {
2845 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[mcindex]->Fill(en,dR); }
2846 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[mcindex]->Fill(en,dR); }
2847 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[mcindex]->Fill(en,dR); }
2848 }
2849 }
2850
2851 }// track exists
2852
2853 }
2854}
dbe09c26 2855
992b14a7 2856//_______________________________________________________________
2857TObjString * AliAnaInsideClusterInvariantMass::GetAnalysisCuts()
2858{
2859 //Save parameters used for analysis
2860 TString parList ; //this will be list of parameters used for this analysis.
b94e038e 2861 Int_t buffersize = 255;
992b14a7 2862 char onePar[buffersize] ;
2863
2864 snprintf(onePar,buffersize,"--- AliAnaInsideClusterInvariantMass ---\n") ;
2865 parList+=onePar ;
2866
243c2909 2867 snprintf(onePar,buffersize,"Calorimeter: %s\n", fCalorimeter.Data()) ;
992b14a7 2868 parList+=onePar ;
c8710850 2869 snprintf(onePar,buffersize,"fNLocMaxCutE =%2.2f \n", GetCaloUtils()->GetLocalMaximaCutE()) ;
29ca9cad 2870 parList+=onePar ;
c8710850 2871 snprintf(onePar,buffersize,"fNLocMaxCutEDiff =%2.2f \n",GetCaloUtils()->GetLocalMaximaCutEDiff()) ;
29ca9cad 2872 parList+=onePar ;
e23a0471 2873 snprintf(onePar,buffersize,"fMinNCells =%d \n", fMinNCells) ;
2cb134fb 2874 parList+=onePar ;
3c1d9afb 2875 snprintf(onePar,buffersize,"fMinBadDist =%1.1f \n", fMinBadDist) ;
992b14a7 2876 parList+=onePar ;
19391b8c 2877 if(fFillSSWeightHisto)
2878 {
2879 snprintf(onePar,buffersize," N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN);
2880 parList+=onePar ;
2881 }
2882
992b14a7 2883 return new TObjString(parList) ;
2884
2885}
2886
992b14a7 2887//________________________________________________________________
2888TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
1253480f 2889{
992b14a7 2890 // Create histograms to be saved in output file and
2891 // store them in outputContainer
2892 TList * outputContainer = new TList() ;
667432ef 2893 outputContainer->SetName("InsideClusterHistos") ;
992b14a7 2894
745913ae 2895 Int_t nptbins = GetHistogramRanges()->GetHistoPtBins(); Float_t ptmax = GetHistogramRanges()->GetHistoPtMax(); Float_t ptmin = GetHistogramRanges()->GetHistoPtMin();
2896 Int_t ssbins = GetHistogramRanges()->GetHistoShowerShapeBins(); Float_t ssmax = GetHistogramRanges()->GetHistoShowerShapeMax(); Float_t ssmin = GetHistogramRanges()->GetHistoShowerShapeMin();
2897 Int_t mbins = GetHistogramRanges()->GetHistoMassBins(); Float_t mmax = GetHistogramRanges()->GetHistoMassMax(); Float_t mmin = GetHistogramRanges()->GetHistoMassMin();
2898 Int_t ncbins = GetHistogramRanges()->GetHistoNClusterCellBins(); Int_t ncmax = GetHistogramRanges()->GetHistoNClusterCellMax(); Int_t ncmin = GetHistogramRanges()->GetHistoNClusterCellMin();
9554fc65 2899 Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins(); Float_t phimax = GetHistogramRanges()->GetHistoPhiMax(); Float_t phimin = GetHistogramRanges()->GetHistoPhiMin();
2900 Int_t netabins = GetHistogramRanges()->GetHistoEtaBins(); Float_t etamax = GetHistogramRanges()->GetHistoEtaMax(); Float_t etamin = GetHistogramRanges()->GetHistoEtaMin();
1253480f 2901
5c46c992 2902 Int_t nresetabins = GetHistogramRanges()->GetHistoTrackResidualEtaBins();
2903 Float_t resetamax = GetHistogramRanges()->GetHistoTrackResidualEtaMax();
2904 Float_t resetamin = GetHistogramRanges()->GetHistoTrackResidualEtaMin();
2905 Int_t nresphibins = GetHistogramRanges()->GetHistoTrackResidualPhiBins();
2906 Float_t resphimax = GetHistogramRanges()->GetHistoTrackResidualPhiMax();
2907 Float_t resphimin = GetHistogramRanges()->GetHistoTrackResidualPhiMin();
2908
1253480f 2909 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
2910 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
2911 Bool_t splitOn = kFALSE;
2912 if(GetCaloPID()->GetSplitEnergyFractionMinimum(0) > 0 ||
2913 GetCaloPID()->GetSplitEnergyFractionMinimum(1) > 0 ||
2914 GetCaloPID()->GetSplitEnergyFractionMinimum(2) > 0) splitOn = kTRUE;
2915
cb99fa55 2916 TString ptype[] ={"","#gamma","#gamma->e^{#pm}","#pi^{0}","#pi^{0} (#gamma->e^{#pm})","#eta", "hadron"};
2917 TString pname[] ={"","Photon","Conversion", "Pi0", "Pi0Conv", "Eta","Hadron"};
ce49dd72 2918 TString snlm [] = {"1","2","N"};
2919
be894c1d 2920 TString sEBin[] = {"8 < E < 12 GeV","12 < E < 16 GeV", "16 < E < 20 GeV", "E > 20 GeV" };
2921
992b14a7 2922 Int_t n = 1;
2923
cb99fa55 2924 if(IsDataMC()) n = 7;
992b14a7 2925
243c2909 2926 Int_t nMaxBins = 10;
2927
5c46c992 2928 TString sMatched[] = {"","Matched"};
2929
8edbd100 2930 Int_t nMatched = 2;
2931 if(!fFillTMHisto) nMatched = 1;
aa12888f 2932
ce49dd72 2933 if(fCheckSplitDistToBad)
2934 {
2935 for(Int_t inlm = 0; inlm < 3; inlm++)
2936 {
2937 fhMassBadDistClose[inlm] = new TH2F(Form("hMassBadDistCloseNLocMax%s",snlm[inlm].Data()),
2938 Form("Invariant mass of splitted cluster with NLM=%d vs E, 2nd LM close to bad channel",inlm),
2939 nptbins,ptmin,ptmax,mbins,mmin,mmax);
2940 fhMassBadDistClose[inlm]->SetYTitle("M (GeV/c^{2})");
2941 fhMassBadDistClose[inlm]->SetXTitle("E (GeV)");
2942 outputContainer->Add(fhMassBadDistClose[inlm]) ;
2943
2944 fhM02BadDistClose[inlm] = new TH2F(Form("hM02BadDistCloseNLocMax%s",snlm[inlm].Data()),
2945 Form("#lambda_{0}^{2} for cluster with NLM=%d vs E, 2nd LM close to bad channel",inlm),
2946 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2947 fhM02BadDistClose[inlm]->SetYTitle("#lambda_{0}^{2}");
2948 fhM02BadDistClose[inlm]->SetXTitle("E (GeV)");
2949 outputContainer->Add(fhM02BadDistClose[inlm]) ;
2950
2951 fhMassOnBorder[inlm] = new TH2F(Form("hMassOnBorderNLocMax%s",snlm[inlm].Data()),
2952 Form("Invariant mass of splitted cluster with NLM=%d vs E, 2nd LM close to border",inlm),
2953 nptbins,ptmin,ptmax,mbins,mmin,mmax);
2954 fhMassOnBorder[inlm]->SetYTitle("M (GeV/c^{2})");
2955 fhMassOnBorder[inlm]->SetXTitle("E (GeV)");
2956 outputContainer->Add(fhMassOnBorder[inlm]) ;
2957
2958 fhM02OnBorder[inlm] = new TH2F(Form("hM02OnBorderNLocMax%s",snlm[inlm].Data()),
2959 Form("#lambda_{0}^{2} for cluster with NLM=%d vs E, 2nd LM close to border",inlm),
2960 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
2961 fhM02OnBorder[inlm]->SetYTitle("#lambda_{0}^{2}");
2962 fhM02OnBorder[inlm]->SetXTitle("E (GeV)");
2963 outputContainer->Add(fhM02OnBorder[inlm]) ;
2964
2965 }
2966 }
2967
5c46c992 2968 for(Int_t i = 0; i < n; i++)
667432ef 2969 {
8edbd100 2970 for(Int_t j = 0; j < nMatched; j++)
667432ef 2971 {
5c46c992 2972
ce49dd72 2973 fhNLocMax[i][j] = new TH2F(Form("hNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
2974 Form("Number of local maxima in cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
2975 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
2976 fhNLocMax[i][j] ->SetYTitle("N maxima");
2977 fhNLocMax[i][j] ->SetXTitle("E (GeV)");
2978 outputContainer->Add(fhNLocMax[i][j]) ;
29555e96 2979
2980 fhLM1NLocMax[i][j] = new TH2F(Form("hLM1NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
2981 Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
2982 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
2983 fhLM1NLocMax[i][j] ->SetYTitle("N maxima");
db790ee8 2984 fhLM1NLocMax[i][j] ->SetXTitle("E (GeV)");
29555e96 2985 outputContainer->Add(fhLM1NLocMax[i][j]) ;
2986
2987 fhLM2NLocMax[i][j] = new TH2F(Form("hLM2NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
2988 Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
2989 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
2990 fhLM2NLocMax[i][j] ->SetYTitle("N maxima");
db790ee8 2991 fhLM2NLocMax[i][j] ->SetXTitle("E (GeV)");
29555e96 2992 outputContainer->Add(fhLM2NLocMax[i][j]) ;
2993
2994 if(m02On)
2995 {
2996 fhNLocMaxM02Cut[i][j] = new TH2F(Form("hNLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
2997 Form("Number of local maxima in cluster %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
2998 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
2999 fhNLocMaxM02Cut[i][j]->SetYTitle("N maxima");
3000 fhNLocMaxM02Cut[i][j]->SetXTitle("E (GeV)");
3001 outputContainer->Add(fhNLocMaxM02Cut[i][j]) ;
3002
3003 fhLM1NLocMaxM02Cut[i][j] = new TH2F(Form("hLM1NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3004 Form("Number of local maxima in cluster for split cluster 1 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3005 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3006 fhLM1NLocMaxM02Cut[i][j] ->SetYTitle("N maxima");
db790ee8 3007 fhLM1NLocMaxM02Cut[i][j] ->SetXTitle("E (GeV)");
29555e96 3008 outputContainer->Add(fhLM1NLocMaxM02Cut[i][j]) ;
3009
3010 fhLM2NLocMaxM02Cut[i][j] = new TH2F(Form("hLM2NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3011 Form("Number of local maxima in cluster for split cluster 2 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3012 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3013 fhLM2NLocMaxM02Cut[i][j] ->SetYTitle("N maxima");
db790ee8 3014 fhLM2NLocMaxM02Cut[i][j] ->SetXTitle("E (GeV)");
29555e96 3015 outputContainer->Add(fhLM2NLocMaxM02Cut[i][j]) ;
3016
3017 }
3018
3019
3020 fhNLocMaxIdPi0[i][j] = new TH2F(Form("hNLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3021 Form("Number of local maxima in pi0 ID cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
3022 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3023 fhNLocMaxIdPi0[i][j] ->SetYTitle("N maxima");
3024 fhNLocMaxIdPi0[i][j] ->SetXTitle("E (GeV)");
3025 outputContainer->Add(fhNLocMaxIdPi0[i][j]) ;
3026
3027
3028 fhLM1NLocMaxIdPi0[i][j] = new TH2F(Form("hLM1NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3029 Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3030 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3031 fhLM1NLocMaxIdPi0[i][j] ->SetYTitle("N maxima");
db790ee8 3032 fhLM1NLocMaxIdPi0[i][j] ->SetXTitle("E (GeV)");
29555e96 3033 outputContainer->Add(fhLM1NLocMaxIdPi0[i][j]) ;
3034
3035 fhLM2NLocMaxIdPi0[i][j] = new TH2F(Form("hLM2NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3036 Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3037 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3038 fhLM2NLocMaxIdPi0[i][j] ->SetYTitle("N maxima");
db790ee8 3039 fhLM2NLocMaxIdPi0[i][j] ->SetXTitle("E (GeV)");
29555e96 3040 outputContainer->Add(fhLM2NLocMaxIdPi0[i][j]) ;
3041
3042
3043
ce49dd72 3044
3045 fhSplitClusterENLocMax[i][j] = new TH2F(Form("hSplitEClusterNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3046 Form("Number of local maxima vs E of split clusters %s %s",ptype[i].Data(),sMatched[j].Data()),
3047 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3048 fhSplitClusterENLocMax[i][j] ->SetYTitle("N maxima");
3049 fhSplitClusterENLocMax[i][j] ->SetXTitle("E (GeV)");
3050 outputContainer->Add(fhSplitClusterENLocMax[i][j]) ;
3051
3052
3053 fhSplitClusterEPi0NLocMax[i][j] = new TH2F(Form("hSplitEClusterPi0NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3054 Form("Number of local maxima vs E of split clusters, id as pi0, %s %s",ptype[i].Data(),sMatched[j].Data()),
3055 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
3056 fhSplitClusterEPi0NLocMax[i][j] ->SetYTitle("N maxima");
3057 fhSplitClusterEPi0NLocMax[i][j] ->SetXTitle("E (GeV)");
3058 outputContainer->Add(fhSplitClusterEPi0NLocMax[i][j]) ;
3059
3060 if(fFillNCellHisto)
3061 {
3062 fhNCellNLocMax1[i][j] = new TH2F(Form("hNCellNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3063 Form("n cells vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3064 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3065 fhNCellNLocMax1[i][j] ->SetYTitle("N cells");
3066 fhNCellNLocMax1[i][j] ->SetXTitle("E (GeV)");
3067 outputContainer->Add(fhNCellNLocMax1[i][j]) ;
3068
3069 fhNCellNLocMax2[i][j] = new TH2F(Form("hNCellNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3070 Form("n cells vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3071 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3072 fhNCellNLocMax2[i][j] ->SetYTitle("N cells");
3073 fhNCellNLocMax2[i][j] ->SetXTitle("E (GeV)");
3074 outputContainer->Add(fhNCellNLocMax2[i][j]) ;
3075
3076
3077 fhNCellNLocMaxN[i][j] = new TH2F(Form("hNCellNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3078 Form("n cells vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3079 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3080 fhNCellNLocMaxN[i][j] ->SetYTitle("N cells");
3081 fhNCellNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3082 outputContainer->Add(fhNCellNLocMaxN[i][j]) ;
3083 }
3084
5c46c992 3085 fhMassNLocMax1[i][j] = new TH2F(Form("hMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3086 Form("Invariant mass of splitted cluster with NLM=1 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3087 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3088 fhMassNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
3089 fhMassNLocMax1[i][j]->SetXTitle("E (GeV)");
3090 outputContainer->Add(fhMassNLocMax1[i][j]) ;
3091
3092 fhMassNLocMax2[i][j] = new TH2F(Form("hMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3093 Form("Invariant mass of splitted cluster with NLM=2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3094 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3095 fhMassNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
3096 fhMassNLocMax2[i][j]->SetXTitle("E (GeV)");
3097 outputContainer->Add(fhMassNLocMax2[i][j]) ;
3098
3099 fhMassNLocMaxN[i][j] = new TH2F(Form("hMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3100 Form("Invariant mass of splitted cluster with NLM>2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3101 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3102 fhMassNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})");
3103 fhMassNLocMaxN[i][j]->SetXTitle("E (GeV)");
667432ef 3104 outputContainer->Add(fhMassNLocMaxN[i][j]) ;
c7e9a4e9 3105
3106 fhMassSplitENLocMax1[i][j] = new TH2F(Form("hMassSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3107 Form("Invariant mass of splitted cluster with NLM=1 vs E1+E2, %s %s",ptype[i].Data(),sMatched[j].Data()),
3108 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3109 fhMassSplitENLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
3110 fhMassSplitENLocMax1[i][j]->SetXTitle("E1+E2 (GeV)");
3111 outputContainer->Add(fhMassSplitENLocMax1[i][j]) ;
3112
3113 fhMassSplitENLocMax2[i][j] = new TH2F(Form("hMassSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3114 Form("Invariant mass of splitted cluster with NLM=2 vs E1+E2, %s %s",ptype[i].Data(),sMatched[j].Data()),
3115 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3116 fhMassSplitENLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
3117 fhMassSplitENLocMax2[i][j]->SetXTitle("E1+E2 (GeV)");
3118 outputContainer->Add(fhMassSplitENLocMax2[i][j]) ;
3119
3120 fhMassSplitENLocMaxN[i][j] = new TH2F(Form("hMassSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3121 Form("Invariant mass of splitted cluster with NLM>2 vs E1+E2, %s %s",ptype[i].Data(),sMatched[j].Data()),
3122 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3123 fhMassSplitENLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})");
3124 fhMassSplitENLocMaxN[i][j]->SetXTitle("E1+E2 (GeV)");
3125 outputContainer->Add(fhMassSplitENLocMaxN[i][j]) ;
1253480f 3126
3127 fhM02NLocMax1[i][j] = new TH2F(Form("hM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3128 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3129 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3130 fhM02NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
3131 fhM02NLocMax1[i][j] ->SetXTitle("E (GeV)");
3132 outputContainer->Add(fhM02NLocMax1[i][j]) ;
3133
3134 fhM02NLocMax2[i][j] = new TH2F(Form("hM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3135 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3136 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3137 fhM02NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
3138 fhM02NLocMax2[i][j] ->SetXTitle("E (GeV)");
3139 outputContainer->Add(fhM02NLocMax2[i][j]) ;
3140
3141 fhM02NLocMaxN[i][j] = new TH2F(Form("hM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3142 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3143 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3144 fhM02NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
3145 fhM02NLocMaxN[i][j] ->SetXTitle("E (GeV)");
3146 outputContainer->Add(fhM02NLocMaxN[i][j]) ;
3147
3148 fhAsymNLocMax1[i][j] = new TH2F(Form("hAsymNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3149 Form("Asymmetry of NLM=1 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
3150 nptbins,ptmin,ptmax,200,-1,1);
3151 fhAsymNLocMax1[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
3152 fhAsymNLocMax1[i][j]->SetXTitle("E (GeV)");
3153 outputContainer->Add(fhAsymNLocMax1[i][j]) ;
3154
3155 fhAsymNLocMax2[i][j] = new TH2F(Form("hAsymNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3156 Form("Asymmetry of NLM=2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
3157 nptbins,ptmin,ptmax,200,-1,1);
3158 fhAsymNLocMax2[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
3159 fhAsymNLocMax2[i][j]->SetXTitle("E (GeV)");
3160 outputContainer->Add(fhAsymNLocMax2[i][j]) ;
3161
3162 fhAsymNLocMaxN[i][j] = new TH2F(Form("hAsymNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3163 Form("Asymmetry of NLM>2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
3164 nptbins,ptmin,ptmax,200,-1,1);
3165 fhAsymNLocMaxN[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
3166 fhAsymNLocMaxN[i][j]->SetXTitle("E (GeV)");
3167 outputContainer->Add(fhAsymNLocMaxN[i][j]) ;
3168
3169 fhSplitEFractionNLocMax1[i][j] = new TH2F(Form("hSplitEFractionNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3170 Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3171 nptbins,ptmin,ptmax,120,0,1.2);
3172 fhSplitEFractionNLocMax1[i][j] ->SetXTitle("E_{cluster} (GeV)");
3173 fhSplitEFractionNLocMax1[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
3174 outputContainer->Add(fhSplitEFractionNLocMax1[i][j]) ;
3175
3176 fhSplitEFractionNLocMax2[i][j] = new TH2F(Form("hSplitEFractionNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3177 Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3178 nptbins,ptmin,ptmax,120,0,1.2);
3179 fhSplitEFractionNLocMax2[i][j] ->SetXTitle("E_{cluster} (GeV)");
3180 fhSplitEFractionNLocMax2[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
3181 outputContainer->Add(fhSplitEFractionNLocMax2[i][j]) ;
3182
3183 fhSplitEFractionNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3184 Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3185 nptbins,ptmin,ptmax,120,0,1.2);
3186 fhSplitEFractionNLocMaxN[i][j] ->SetXTitle("E_{cluster} (GeV)");
3187 fhSplitEFractionNLocMaxN[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
3188 outputContainer->Add(fhSplitEFractionNLocMaxN[i][j]) ;
1253480f 3189
cb99fa55 3190 if(i==0 && j==0 )
1253480f 3191 {
cb99fa55 3192 if(m02On)
1253480f 3193 {
cb99fa55 3194 fhMassM02CutNLocMax1 = new TH2F("hMassM02CutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, M02 cut, no TM",
3195 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3196 fhMassM02CutNLocMax1->SetYTitle("M (GeV/c^{2})");
3197 fhMassM02CutNLocMax1->SetXTitle("E (GeV)");
3198 outputContainer->Add(fhMassM02CutNLocMax1) ;
1253480f 3199
cb99fa55 3200 fhMassM02CutNLocMax2 = new TH2F("hMassM02CutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, M02 cut, no TM",
3201 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3202 fhMassM02CutNLocMax2->SetYTitle("M (GeV/c^{2})");
3203 fhMassM02CutNLocMax2->SetXTitle("E (GeV)");
3204 outputContainer->Add(fhMassM02CutNLocMax2) ;
1253480f 3205
cb99fa55 3206 fhMassM02CutNLocMaxN = new TH2F("hMassM02CutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, M02 cut, no TM",
3207 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3208 fhMassM02CutNLocMaxN->SetYTitle("M (GeV/c^{2})");
3209 fhMassM02CutNLocMaxN->SetXTitle("E (GeV)");
3210 outputContainer->Add(fhMassM02CutNLocMaxN) ;
3211
3212 fhAsymM02CutNLocMax1 = new TH2F("hAsymM02CutNLocMax1","Asymmetry of NLM=1 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3213 fhAsymM02CutNLocMax1->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
3214 fhAsymM02CutNLocMax1->SetXTitle("E (GeV)");
3215 outputContainer->Add(fhAsymM02CutNLocMax1) ;
3216
3217 fhAsymM02CutNLocMax2 = new TH2F("hAsymM02CutNLocMax2","Asymmetry of NLM=2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3218 fhAsymM02CutNLocMax2->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
3219 fhAsymM02CutNLocMax2->SetXTitle("E (GeV)");
3220 outputContainer->Add(fhAsymM02CutNLocMax2) ;
3221
3222 fhAsymM02CutNLocMaxN = new TH2F("hAsymM02CutNLocMaxN","Asymmetry of NLM>2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3223 fhAsymM02CutNLocMaxN->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
3224 fhAsymM02CutNLocMaxN->SetXTitle("E (GeV)");
3225 outputContainer->Add(fhAsymM02CutNLocMaxN) ;
7350f5d6 3226
cb99fa55 3227 if(splitOn)
3228 {
3229 fhMassSplitECutNLocMax1 = new TH2F("hMassSplitECutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, (E1+E2)/E cut, M02 cut, no TM",
3230 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3231 fhMassSplitECutNLocMax1->SetYTitle("M (GeV/c^{2})");
3232 fhMassSplitECutNLocMax1->SetXTitle("E (GeV)");
3233 outputContainer->Add(fhMassSplitECutNLocMax1) ;
3234
3235 fhMassSplitECutNLocMax2 = new TH2F("hMassSplitECutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, (E1+E2)/E cut, M02 cut, no TM",
3236 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3237 fhMassSplitECutNLocMax2->SetYTitle("M (GeV/c^{2})");
3238 fhMassSplitECutNLocMax2->SetXTitle("E (GeV)");
3239 outputContainer->Add(fhMassSplitECutNLocMax2) ;
3240
3241 fhMassSplitECutNLocMaxN = new TH2F("hMassSplitECutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, (E1+E2)/E cut, M02 cut, no TM",
3242 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3243 fhMassSplitECutNLocMaxN->SetYTitle("M (GeV/c^{2})");
3244 fhMassSplitECutNLocMaxN->SetXTitle("E (GeV)");
3245 outputContainer->Add(fhMassSplitECutNLocMaxN) ;
3246 }
3247 }//m02on
1253480f 3248
cb99fa55 3249 if(asyOn)
3250 {
2c36e041 3251 fhMassAsyCutNLocMax1 = new TH2F("hMassAsyCutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, Asy cut, no TM",
cb99fa55 3252 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3253 fhMassAsyCutNLocMax1->SetYTitle("M (GeV/c^{2})");
3254 fhMassAsyCutNLocMax1->SetXTitle("E (GeV)");
3255 outputContainer->Add(fhMassAsyCutNLocMax1) ;
3256
2c36e041 3257 fhMassAsyCutNLocMax2 = new TH2F("hMassAsyCutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, Asy cut, no TM",
cb99fa55 3258 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3259 fhMassAsyCutNLocMax2->SetYTitle("M (GeV/c^{2})");
3260 fhMassAsyCutNLocMax2->SetXTitle("E (GeV)");
3261 outputContainer->Add(fhMassAsyCutNLocMax2) ;
3262
2c36e041 3263 fhMassAsyCutNLocMaxN = new TH2F("hMassAsyCutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, Asy cut, no TM",
cb99fa55 3264 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3265 fhMassAsyCutNLocMaxN->SetYTitle("M (GeV/c^{2})");
3266 fhMassAsyCutNLocMaxN->SetXTitle("E (GeV)");
3267 outputContainer->Add(fhMassAsyCutNLocMaxN) ;
3268
3269 fhM02AsyCutNLocMax1 = new TH2F("hM02AsyCutNLocMax1","#lambda_{0}^{2} of NLM=1 vs cluster Energy, AsyCut, no TM",
3270 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3271 fhM02AsyCutNLocMax1->SetYTitle("#lambda_{0}^{2}");
3272 fhM02AsyCutNLocMax1->SetXTitle("E (GeV)");
3273 outputContainer->Add(fhM02AsyCutNLocMax1) ;
3274
3275 fhM02AsyCutNLocMax2 = new TH2F("hM02AsyCutNLocMax2","#lambda_{0}^{2} of NLM=2 vs cluster Energy, AsyCut, no TM",
3276 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3277 fhM02AsyCutNLocMax2->SetYTitle("#lambda_{0}^{2}");
3278 fhM02AsyCutNLocMax2->SetXTitle("E (GeV)");
3279 outputContainer->Add(fhM02AsyCutNLocMax2) ;
3280
3281 fhM02AsyCutNLocMaxN = new TH2F("hM02AsyCutNLocMaxN","#lambda_{0}^{2} of NLM>2 vs cluster Energy, AsyCut, no TM",
3282 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3283 fhM02AsyCutNLocMaxN->SetYTitle("#lambda_{0}^{2}");
3284 fhM02AsyCutNLocMaxN->SetXTitle("E (GeV)");
3285 outputContainer->Add(fhM02AsyCutNLocMaxN) ;
2c36e041 3286 }
3287
7350f5d6 3288 if(GetCaloPID()->GetSubClusterEnergyMinimum(0) > 0.1)
2c36e041 3289 {
7350f5d6 3290 fhMassEnCutNLocMax1 = new TH2F("hMassEnCutNLocMax1",Form("Invariant mass of splitted cluster with NLM=1 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)),
3291 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3292 fhMassEnCutNLocMax1->SetYTitle("M (GeV/c^{2})");
3293 fhMassEnCutNLocMax1->SetXTitle("E (GeV)");
3294 outputContainer->Add(fhMassEnCutNLocMax1) ;
3295
3296 fhMassEnCutNLocMax2 = new TH2F("hMassEnCutNLocMax2",Form("Invariant mass of splitted cluster with NLM=2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)),
3297 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3298 fhMassEnCutNLocMax2->SetYTitle("M (GeV/c^{2})");
3299 fhMassEnCutNLocMax2->SetXTitle("E (GeV)");
3300 outputContainer->Add(fhMassEnCutNLocMax2) ;
3301
3302 fhMassEnCutNLocMaxN = new TH2F("hMassEnCutNLocMaxN",Form("Invariant mass of splitted cluster with NLM>2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3303 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3304 fhMassEnCutNLocMaxN->SetYTitle("M (GeV/c^{2})");
3305 fhMassEnCutNLocMaxN->SetXTitle("E (GeV)");
3306 outputContainer->Add(fhMassEnCutNLocMaxN) ;
3307
3308 fhM02EnCutNLocMax1 = new TH2F("hM02EnCutNLocMax1",Form("#lambda_{0}^{2} of NLM=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)),
3309 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3310 fhM02EnCutNLocMax1->SetYTitle("#lambda_{0}^{2}");
3311 fhM02EnCutNLocMax1->SetXTitle("E (GeV)");
3312 outputContainer->Add(fhM02EnCutNLocMax1) ;
3313
3314 fhM02EnCutNLocMax2 = new TH2F("hM02EnCutNLocMax2",Form("#lambda_{0}^{2} of NLM=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)),
3315 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3316 fhM02EnCutNLocMax2->SetYTitle("#lambda_{0}^{2}");
3317 fhM02EnCutNLocMax2->SetXTitle("E (GeV)");
3318 outputContainer->Add(fhM02EnCutNLocMax2) ;
3319
3320 fhM02EnCutNLocMaxN = new TH2F("hM02EnCutNLocMaxN",Form("#lambda_{0}^{2} of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3321 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3322 fhM02EnCutNLocMaxN->SetYTitle("#lambda_{0}^{2}");
3323 fhM02EnCutNLocMaxN->SetXTitle("E (GeV)");
3324 outputContainer->Add(fhM02EnCutNLocMaxN) ;
3325
3326 fhAsymEnCutNLocMax1 = new TH2F("hAsymEnCutNLocMax1",Form("Asymmetry of NLM=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0))
3327 , nptbins,ptmin,ptmax,200,-1,1);
3328 fhAsymEnCutNLocMax1->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
3329 fhAsymEnCutNLocMax1->SetXTitle("E (GeV)");
3330 outputContainer->Add(fhAsymEnCutNLocMax1) ;
3331
3332 fhAsymEnCutNLocMax2 = new TH2F("hAsymEnCutNLocMax2",Form("Asymmetry of NLM=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1))
3333 , nptbins,ptmin,ptmax,200,-1,1);
3334 fhAsymEnCutNLocMax2->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
3335 fhAsymEnCutNLocMax2->SetXTitle("E (GeV)");
3336 outputContainer->Add(fhAsymEnCutNLocMax2) ;
3337
3338 fhAsymEnCutNLocMaxN = new TH2F("hAsymEnCutNLocMaxN",Form("Asymmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2))
3339 , nptbins,ptmin,ptmax,200,-1,1);
3340 fhAsymEnCutNLocMaxN->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
3341 fhAsymEnCutNLocMaxN->SetXTitle("E (GeV)");
3342 outputContainer->Add(fhAsymEnCutNLocMaxN) ;
a6d3b0a8 3343
3344 fhSplitEFracEnCutNLocMax1 = new TH2F("hSplitEFracEnCutNLocMax1",Form("SplitEFracmetry of NLM=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0))
3345 , nptbins,ptmin,ptmax,120,0,1.2);
3346 fhSplitEFracEnCutNLocMax1->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
3347 fhSplitEFracEnCutNLocMax1->SetXTitle("E (GeV)");
3348 outputContainer->Add(fhSplitEFracEnCutNLocMax1) ;
2c36e041 3349
a6d3b0a8 3350 fhSplitEFracEnCutNLocMax2 = new TH2F("hSplitEFracEnCutNLocMax2",Form("SplitEFracmetry of NLM=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1))
3351 , nptbins,ptmin,ptmax,120,0,1.2);
3352 fhSplitEFracEnCutNLocMax2->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
3353 fhSplitEFracEnCutNLocMax2->SetXTitle("E (GeV)");
3354 outputContainer->Add(fhSplitEFracEnCutNLocMax2) ;
3355
3356 fhSplitEFracEnCutNLocMaxN = new TH2F("hSplitEFracEnCutNLocMaxN",Form("SplitEFracmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2))
3357 , nptbins,ptmin,ptmax,120,0,1.2);
3358 fhSplitEFracEnCutNLocMaxN->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
3359 fhSplitEFracEnCutNLocMaxN->SetXTitle("E (GeV)");
3360 outputContainer->Add(fhSplitEFracEnCutNLocMaxN) ;
2c36e041 3361 }
7350f5d6 3362
3363 } // no MC
aa12888f 3364
c7e9a4e9 3365 if(asyOn || m02On )
1253480f 3366 {
3367 fhMassAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3368 Form("Mass vs E, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3369 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3370 fhMassAfterCutsNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3371 fhMassAfterCutsNLocMax1[i][j] ->SetXTitle("E (GeV)");
3372 outputContainer->Add(fhMassAfterCutsNLocMax1[i][j]) ;
3373
3374 fhMassAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3375 Form("Mass vs E, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3376 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3377 fhMassAfterCutsNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3378 fhMassAfterCutsNLocMax2[i][j] ->SetXTitle("E (GeV)");
3379 outputContainer->Add(fhMassAfterCutsNLocMax2[i][j]) ;
3380
1253480f 3381 fhMassAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3382 Form("Mass vs E, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3383 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3384 fhMassAfterCutsNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3385 fhMassAfterCutsNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3386 outputContainer->Add(fhMassAfterCutsNLocMaxN[i][j]) ;
c7e9a4e9 3387
3388 fhMassSplitEAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3389 Form("Mass vs E1+E2, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3390 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3391 fhMassSplitEAfterCutsNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3392 fhMassSplitEAfterCutsNLocMax1[i][j] ->SetXTitle("E1+E2 (GeV)");
3393 outputContainer->Add(fhMassSplitEAfterCutsNLocMax1[i][j]) ;
3394
3395 fhMassSplitEAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3396 Form("Mass vs E1+E2, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3397 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3398 fhMassSplitEAfterCutsNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3399 fhMassSplitEAfterCutsNLocMax2[i][j] ->SetXTitle("E1+E2 (GeV)");
3400 outputContainer->Add(fhMassSplitEAfterCutsNLocMax2[i][j]) ;
3401
3402 fhMassSplitEAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3403 Form("Mass vs E1+E2, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3404 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3405 fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3406 fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetXTitle("E1+E2 (GeV)");
3407 outputContainer->Add(fhMassSplitEAfterCutsNLocMaxN[i][j]) ;
3408
1253480f 3409
3410 fhSplitEFractionAfterCutsNLocMax1[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3411 Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 1, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
3412 nptbins,ptmin,ptmax,120,0,1.2);
3413 fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetXTitle("E_{cluster} (GeV)");
3414 fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
3415 outputContainer->Add(fhSplitEFractionAfterCutsNLocMax1[i][j]) ;
3416
3417 fhSplitEFractionAfterCutsNLocMax2[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3418 Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
3419 nptbins,ptmin,ptmax,120,0,1.2);
3420 fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetXTitle("E_{cluster} (GeV)");
3421 fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
3422 outputContainer->Add(fhSplitEFractionAfterCutsNLocMax2[i][j]) ;
3423
3424 fhSplitEFractionAfterCutsNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3425 Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max > 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
3426 nptbins,ptmin,ptmax,120,0,1.2);
3427 fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetXTitle("E_{cluster} (GeV)");
3428 fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
3429 outputContainer->Add(fhSplitEFractionAfterCutsNLocMaxN[i][j]) ;
3430 }
5c46c992 3431
0137016b 3432 fhMassM02NLocMax1[i][j] = new TH2F(Form("hMassM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3433 Form("Invariant mass of splitted cluster with NLM=1, #lambda_{0}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3434 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3435 fhMassM02NLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
3436 fhMassM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}");
3437 outputContainer->Add(fhMassM02NLocMax1[i][j]) ;
3438
3439 fhMassM02NLocMax2[i][j] = new TH2F(Form("hMassM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3440 Form("Invariant mass of splitted cluster with NLM=2, #lambda_{0}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3441 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3442 fhMassM02NLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
3443 fhMassM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}");
3444 outputContainer->Add(fhMassM02NLocMax2[i][j]) ;
3445
3446 fhMassM02NLocMaxN[i][j] = new TH2F(Form("hMassM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3447 Form("Invariant mass of splitted cluster with NLM>2, vs #lambda_{0}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3448 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3449 fhMassM02NLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})");
3450 fhMassM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}");
3451 outputContainer->Add(fhMassM02NLocMaxN[i][j]) ;
3452
8e81c2cf 3453 if(fFillSSExtraHisto)
3454 {
3455 fhMassDispEtaNLocMax1[i][j] = new TH2F(Form("hMassDispEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3456 Form("Invariant mass of splitted cluster with NLM=1, #sigma_{#eta #eta}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3457 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3458 fhMassDispEtaNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
3459 fhMassDispEtaNLocMax1[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3460 outputContainer->Add(fhMassDispEtaNLocMax1[i][j]) ;
3461
3462 fhMassDispEtaNLocMax2[i][j] = new TH2F(Form("hMassDispEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3463 Form("Invariant mass of splitted cluster with NLM=2 #sigma_{#eta #eta}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3464 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3465 fhMassDispEtaNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
3466 fhMassDispEtaNLocMax2[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3467 outputContainer->Add(fhMassDispEtaNLocMax2[i][j]) ;
3468
3469 fhMassDispEtaNLocMaxN[i][j] = new TH2F(Form("hMassDispEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3470 Form("Invariant mass of splitted cluster with NLM>2, #sigma_{#eta #eta}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3471 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3472 fhMassDispEtaNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})");
3473 fhMassDispEtaNLocMaxN[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3474 outputContainer->Add(fhMassDispEtaNLocMaxN[i][j]) ;
3475
3476 fhMassDispPhiNLocMax1[i][j] = new TH2F(Form("hMassDispPhiNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3477 Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3478 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3479 fhMassDispPhiNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
3480 fhMassDispPhiNLocMax1[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3481 outputContainer->Add(fhMassDispPhiNLocMax1[i][j]) ;
3482
3483 fhMassDispPhiNLocMax2[i][j] = new TH2F(Form("hMassDispPhiNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3484 Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3485 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3486 fhMassDispPhiNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
3487 fhMassDispPhiNLocMax2[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3488 outputContainer->Add(fhMassDispPhiNLocMax2[i][j]) ;
3489
3490 fhMassDispPhiNLocMaxN[i][j] = new TH2F(Form("hMassDispPhiNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3491 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3492 ssbins,ssmin,ssmax,mbins,mmin,mmax);
3493 fhMassDispPhiNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})");
3494 fhMassDispPhiNLocMaxN[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3495 outputContainer->Add(fhMassDispPhiNLocMaxN[i][j]) ;
3496
3497 fhMassDispAsyNLocMax1[i][j] = new TH2F(Form("hMassDispAsyNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3498 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 3499 200,-1,1,mbins,mmin,mmax);
3500 fhMassDispAsyNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
3501 fhMassDispAsyNLocMax1[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3502 outputContainer->Add(fhMassDispAsyNLocMax1[i][j]) ;
3503
3504 fhMassDispAsyNLocMax2[i][j] = new TH2F(Form("hMassDispAsyNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3505 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 3506 200,-1,1,mbins,mmin,mmax);
3507 fhMassDispAsyNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
3508 fhMassDispAsyNLocMax2[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3509 outputContainer->Add(fhMassDispAsyNLocMax2[i][j]) ;
3510
3511 fhMassDispAsyNLocMaxN[i][j] = new TH2F(Form("hMassDispAsyNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3512 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()),
3513 200,-1,1,mbins,mmin,mmax);
3514 fhMassDispAsyNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})");
3515 fhMassDispAsyNLocMaxN[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3516 outputContainer->Add(fhMassDispAsyNLocMaxN[i][j]) ;
3517 }
d2655d46 3518
fc01318e 3519
b2e375c7 3520 if(i > 0 && fFillMCHisto) // skip first entry in array, general case not filled
883411b2 3521 {
3522 fhMCGenFracNLocMax1[i][j] = new TH2F(Form("hMCGenFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3523 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3524 nptbins,ptmin,ptmax,200,0,2);
fb51265c 3525 fhMCGenFracNLocMax1[i][j] ->SetYTitle("E_{gen} / E_{reco}");
883411b2 3526 fhMCGenFracNLocMax1[i][j] ->SetXTitle("E (GeV)");
3527 outputContainer->Add(fhMCGenFracNLocMax1[i][j]) ;
3528
3529 fhMCGenFracNLocMax2[i][j] = new TH2F(Form("hMCGenFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3530 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3531 nptbins,ptmin,ptmax,200,0,2);
fb51265c 3532 fhMCGenFracNLocMax2[i][j] ->SetYTitle("E_{gen} / E_{reco}");
883411b2 3533 fhMCGenFracNLocMax2[i][j] ->SetXTitle("E (GeV)");
3534 outputContainer->Add(fhMCGenFracNLocMax2[i][j]) ;
3535
883411b2 3536 fhMCGenFracNLocMaxN[i][j] = new TH2F(Form("hMCGenFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3537 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3538 nptbins,ptmin,ptmax,200,0,2);
fb51265c 3539 fhMCGenFracNLocMaxN[i][j] ->SetYTitle("E_{gen} / E_{reco}");
883411b2 3540 fhMCGenFracNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3541 outputContainer->Add(fhMCGenFracNLocMaxN[i][j]) ;
4914e781 3542
3543 fhMCGenFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3544 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3545 nptbins,ptmin,ptmax,200,0,2);
4914e781 3546 fhMCGenFracNLocMax1NoOverlap[i][j] ->SetYTitle("E_{gen} / E_{reco}");
3547 fhMCGenFracNLocMax1NoOverlap[i][j] ->SetXTitle("E (GeV)");
3548 outputContainer->Add(fhMCGenFracNLocMax1NoOverlap[i][j]) ;
3549
3550 fhMCGenFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3551 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3552 nptbins,ptmin,ptmax,200,0,2);
4914e781 3553 fhMCGenFracNLocMax2NoOverlap[i][j] ->SetYTitle("E_{gen} / E_{reco}");
3554 fhMCGenFracNLocMax2NoOverlap[i][j] ->SetXTitle("E (GeV)");
3555 outputContainer->Add(fhMCGenFracNLocMax2NoOverlap[i][j]) ;
3556
3557 fhMCGenFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3558 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3559 nptbins,ptmin,ptmax,200,0,2);
4914e781 3560 fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetYTitle("E_{gen} / E_{reco}");
3561 fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetXTitle("E (GeV)");
3562 outputContainer->Add(fhMCGenFracNLocMaxNNoOverlap[i][j]) ;
1253480f 3563
4914e781 3564
5094c724 3565 fhMCGenSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3566 Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3567 nptbins,ptmin,ptmax,200,0,2);
5094c724 3568 fhMCGenSplitEFracNLocMax1[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})");
3569 fhMCGenSplitEFracNLocMax1[i][j] ->SetXTitle("E (GeV)");
3570 outputContainer->Add(fhMCGenSplitEFracNLocMax1[i][j]) ;
3571
3572 fhMCGenSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3573 Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3574 nptbins,ptmin,ptmax,200,0,2);
5094c724 3575 fhMCGenSplitEFracNLocMax2[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})");
3576 fhMCGenSplitEFracNLocMax2[i][j] ->SetXTitle("E (GeV)");
3577 outputContainer->Add(fhMCGenSplitEFracNLocMax2[i][j]) ;
3578
5094c724 3579 fhMCGenSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3580 Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3581 nptbins,ptmin,ptmax,200,0,2);
5094c724 3582 fhMCGenSplitEFracNLocMaxN[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})");
3583 fhMCGenSplitEFracNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3584 outputContainer->Add(fhMCGenSplitEFracNLocMaxN[i][j]) ;
1253480f 3585
4914e781 3586 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3587 Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3588 nptbins,ptmin,ptmax,200,0,2);
4914e781 3589 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})");
3590 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetXTitle("E (GeV)");
3591 outputContainer->Add(fhMCGenSplitEFracNLocMax1NoOverlap[i][j]) ;
3592
3593 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3594 Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3595 nptbins,ptmin,ptmax,200,0,2);
4914e781 3596 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})");
3597 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetXTitle("E (GeV)");
3598 outputContainer->Add(fhMCGenSplitEFracNLocMax2NoOverlap[i][j]) ;
3599
3600 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3601 Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3602 nptbins,ptmin,ptmax,200,0,2);
4914e781 3603 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})");
3604 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetXTitle("E (GeV)");
3605 outputContainer->Add(fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]) ;
3606
bb2d339b 3607 fhMCGenEFracvsSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3608 Form("(E_{1 split}+E_{2 split})/E_{reco} vs E_{gen} / E_{reco} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3609 200,0,2,200,0,2);
bb2d339b 3610 fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetYTitle("(E_{1 split}+E_{2 split})/E_{reco}");
3611 fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetXTitle("E_{gen} / E_{reco}");
3612 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax1[i][j]) ;
3613
3614 fhMCGenEFracvsSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3615 Form("(E_{1 split}+E_{2 split})/E_{reco} vs E_{gen} / E_{reco} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3616 200,0,2,200,0,2);
bb2d339b 3617 fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetYTitle("(E_{1 split}+E_{2 split})/E_{reco}");
3618 fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetXTitle("E_{gen} / E_{reco}");
3619 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax2[i][j]) ;
3620
3621
3622 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3623 Form("(E_{1 split}+E_{2 split})/E_{reco} vs E_{gen} / E_{reco} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3624 200,0,2,200,0,2);
bb2d339b 3625 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetYTitle("(E_{1 split}+E_{2 split})/E_{reco}");
3626 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetXTitle("E_{gen} / E_{reco}");
3627 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMaxN[i][j]) ;
3628
3629
3630 fhMCGenEvsSplitENLocMax1[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3631 Form("E_{1 split}+E_{2 split} vs E_{gen} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3632 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
bb2d339b 3633 fhMCGenEvsSplitENLocMax1[i][j] ->SetYTitle("E_{1 split}+E_{2 split} (GeV)");
3634 fhMCGenEvsSplitENLocMax1[i][j] ->SetXTitle("E_{gen} (GeV)");
3635 outputContainer->Add(fhMCGenEvsSplitENLocMax1[i][j]) ;
3636
3637 fhMCGenEvsSplitENLocMax2[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3638 Form("E_{1 split}+E_{2 split} vs E_{gen} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3639 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
bb2d339b 3640 fhMCGenEvsSplitENLocMax2[i][j] ->SetYTitle("E_{1 split}+E_{2 split} (GeV)");
3641 fhMCGenEvsSplitENLocMax2[i][j] ->SetXTitle("E_{gen} (GeV)");
3642 outputContainer->Add(fhMCGenEvsSplitENLocMax2[i][j]) ;
3643
3644
3645 fhMCGenEvsSplitENLocMaxN[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3646 Form("E_{1 split}+E_{2 split} vs E_{gen} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3647 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
bb2d339b 3648 fhMCGenEvsSplitENLocMaxN[i][j] ->SetYTitle("E_{1 split}+E_{2 split} (GeV)");
3649 fhMCGenEvsSplitENLocMaxN[i][j] ->SetXTitle("E_{gen} (GeV)");
3650 outputContainer->Add(fhMCGenEvsSplitENLocMaxN[i][j]) ;
883411b2 3651 }
ce49dd72 3652
1253480f 3653 // Histograms after cluster identification
17f5b4b6 3654
17f5b4b6 3655
1253480f 3656 // Pi0 //
17f5b4b6 3657
c8710850 3658 fhM02Pi0NLocMax1[i][j] = new TH2F(Form("hM02Pi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3659 Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
3660 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3661 fhM02Pi0NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
3662 fhM02Pi0NLocMax1[i][j] ->SetXTitle("E (GeV)");
17f5b4b6 3663 outputContainer->Add(fhM02Pi0NLocMax1[i][j]) ;
5c46c992 3664
c8710850 3665 fhM02Pi0NLocMax2[i][j] = new TH2F(Form("hM02Pi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3666 Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
3667 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3668 fhM02Pi0NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
3669 fhM02Pi0NLocMax2[i][j] ->SetXTitle("E (GeV)");
3670 outputContainer->Add(fhM02Pi0NLocMax2[i][j]) ;
5c46c992 3671
c8710850 3672 fhM02Pi0NLocMaxN[i][j] = new TH2F(Form("hM02Pi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3673 Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
3674 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3675 fhM02Pi0NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
3676 fhM02Pi0NLocMaxN[i][j] ->SetXTitle("E (GeV)");
3677 outputContainer->Add(fhM02Pi0NLocMaxN[i][j]) ;
5c46c992 3678
c8710850 3679 fhMassPi0NLocMax1[i][j] = new TH2F(Form("hMassPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3680 Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()),
3681 nptbins,ptmin,ptmax,mbins,mmin,mmax);
74858845 3682 fhMassPi0NLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})");
c8710850 3683 fhMassPi0NLocMax1[i][j] ->SetXTitle("E (GeV)");
3684 outputContainer->Add(fhMassPi0NLocMax1[i][j]) ;
bb2d339b 3685
c8710850 3686 fhMassPi0NLocMax2[i][j] = new TH2F(Form("hMassPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3687 Form("Mass vs E , %s, for NLM = 2",ptype[i].Data()),
3688 nptbins,ptmin,ptmax,mbins,mmin,mmax);
74858845 3689 fhMassPi0NLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})");
c8710850 3690 fhMassPi0NLocMax2[i][j] ->SetXTitle("E (GeV)");
3691 outputContainer->Add(fhMassPi0NLocMax2[i][j]) ;
bb2d339b 3692
c8710850 3693 fhMassPi0NLocMaxN[i][j] = new TH2F(Form("hMassPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3694 Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()),
3695 nptbins,ptmin,ptmax,mbins,mmin,mmax);
74858845 3696 fhMassPi0NLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})");
c8710850 3697 fhMassPi0NLocMaxN[i][j] ->SetXTitle("E (GeV)");
3698 outputContainer->Add(fhMassPi0NLocMaxN[i][j]) ;
c7e9a4e9 3699
3700 fhMassSplitEPi0NLocMax1[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3701 Form("Mass vs E1+E2, %s, for NLM = 1",ptype[i].Data()),
3702 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3703 fhMassSplitEPi0NLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3704 fhMassSplitEPi0NLocMax1[i][j] ->SetXTitle("E1+E2 (GeV)");
3705 outputContainer->Add(fhMassSplitEPi0NLocMax1[i][j]) ;
3706
3707 fhMassSplitEPi0NLocMax2[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3708 Form("Mass vs E1+E2 , %s, for NLM = 2",ptype[i].Data()),
3709 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3710 fhMassSplitEPi0NLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3711 fhMassSplitEPi0NLocMax2[i][j] ->SetXTitle("E1+E2 (GeV)");
3712 outputContainer->Add(fhMassSplitEPi0NLocMax2[i][j]) ;
3713
3714 fhMassSplitEPi0NLocMaxN[i][j] = new TH2F(Form("hMassSplitEPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3715 Form("Mass vs E1+E2, %s, for NLM > 2",ptype[i].Data()),
3716 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3717 fhMassSplitEPi0NLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3718 fhMassSplitEPi0NLocMaxN[i][j] ->SetXTitle("E1+E2 (GeV)");
3719 outputContainer->Add(fhMassSplitEPi0NLocMaxN[i][j]) ;
bb2d339b 3720
c8710850 3721 fhAsyPi0NLocMax1[i][j] = new TH2F(Form("hAsyPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3722 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
e671adc2 3723 nptbins,ptmin,ptmax,mbins,mmin,mmax);
c8710850 3724 fhAsyPi0NLocMax1[i][j] ->SetYTitle("Asymmetry");
3725 fhAsyPi0NLocMax1[i][j] ->SetXTitle("E (GeV)");
3726 outputContainer->Add(fhAsyPi0NLocMax1[i][j]) ;
e671adc2 3727
c8710850 3728 fhAsyPi0NLocMax2[i][j] = new TH2F(Form("hAsyPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3729 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
e671adc2 3730 nptbins,ptmin,ptmax,mbins,mmin,mmax);
c8710850 3731 fhAsyPi0NLocMax2[i][j] ->SetYTitle("Asymmetry");
3732 fhAsyPi0NLocMax2[i][j] ->SetXTitle("E (GeV)");
3733 outputContainer->Add(fhAsyPi0NLocMax2[i][j]) ;
e671adc2 3734
c8710850 3735 fhAsyPi0NLocMaxN[i][j] = new TH2F(Form("hAsyPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3736 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
e671adc2 3737 nptbins,ptmin,ptmax,mbins,mmin,mmax);
c8710850 3738 fhAsyPi0NLocMaxN[i][j] ->SetYTitle("Asymmetry");
3739 fhAsyPi0NLocMaxN[i][j] ->SetXTitle("E (GeV)");
3740 outputContainer->Add(fhAsyPi0NLocMaxN[i][j]) ;
e671adc2 3741
1253480f 3742 if(fFillNCellHisto)
3743 {
3744 fhNCellPi0NLocMax1[i][j] = new TH2F(Form("hNCellPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3745 Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()),
3746 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3747 fhNCellPi0NLocMax1[i][j] ->SetYTitle("n cells");
3748 fhNCellPi0NLocMax1[i][j] ->SetXTitle("E (GeV)");
3749 outputContainer->Add(fhNCellPi0NLocMax1[i][j]) ;
3750
3751 fhNCellPi0NLocMax2[i][j] = new TH2F(Form("hNCellPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3752 Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()),
3753 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3754 fhNCellPi0NLocMax2[i][j] ->SetYTitle("n cells");
3755 fhNCellPi0NLocMax2[i][j] ->SetXTitle("E (GeV)");
3756 outputContainer->Add(fhNCellPi0NLocMax2[i][j]) ;
3757
3758 fhNCellPi0NLocMaxN[i][j] = new TH2F(Form("hNCellPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3759 Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()),
3760 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3761 fhNCellPi0NLocMaxN[i][j] ->SetYTitle("n cells");
3762 fhNCellPi0NLocMaxN[i][j] ->SetXTitle("E (GeV)");
3763 outputContainer->Add(fhNCellPi0NLocMaxN[i][j]) ;
3764 }
3765
3766 // Eta
3767
3768 if(fFillIdEtaHisto)
3769 {
3770 fhM02EtaNLocMax1[i][j] = new TH2F(Form("hM02EtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3771 Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
3772 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3773 fhM02EtaNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
3774 fhM02EtaNLocMax1[i][j] ->SetXTitle("E (GeV)");
3775 outputContainer->Add(fhM02EtaNLocMax1[i][j]) ;
3776
3777
3778 fhM02EtaNLocMax2[i][j] = new TH2F(Form("hM02EtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3779 Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
3780 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3781 fhM02EtaNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
3782 fhM02EtaNLocMax2[i][j] ->SetXTitle("E (GeV)");
3783 outputContainer->Add(fhM02EtaNLocMax2[i][j]) ;
3784
3785 fhM02EtaNLocMaxN[i][j] = new TH2F(Form("hM02EtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3786 Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
3787 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3788 fhM02EtaNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
3789 fhM02EtaNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3790 outputContainer->Add(fhM02EtaNLocMaxN[i][j]) ;
3791
3792 fhMassEtaNLocMax1[i][j] = new TH2F(Form("hMassEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3793 Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()),
3794 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3795 fhMassEtaNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3796 fhMassEtaNLocMax1[i][j] ->SetXTitle("E (GeV)");
3797 outputContainer->Add(fhMassEtaNLocMax1[i][j]) ;
3798
3799 fhMassEtaNLocMax2[i][j] = new TH2F(Form("hMassEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3800 Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()),
3801 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3802 fhMassEtaNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3803 fhMassEtaNLocMax2[i][j] ->SetXTitle("E (GeV)");
3804 outputContainer->Add(fhMassEtaNLocMax2[i][j]) ;
3805
3806 fhMassEtaNLocMaxN[i][j] = new TH2F(Form("hMassEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3807 Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()),
3808 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3809 fhMassEtaNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3810 fhMassEtaNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3811 outputContainer->Add(fhMassEtaNLocMaxN[i][j]) ;
3812
3813 fhAsyEtaNLocMax1[i][j] = new TH2F(Form("hAsyEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3814 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
3815 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3816 fhAsyEtaNLocMax1[i][j] ->SetYTitle("Asymmetry");
3817 fhAsyEtaNLocMax1[i][j] ->SetXTitle("E (GeV)");
3818 outputContainer->Add(fhAsyEtaNLocMax1[i][j]) ;
3819
3820 fhAsyEtaNLocMax2[i][j] = new TH2F(Form("hAsyEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3821 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
3822 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3823 fhAsyEtaNLocMax2[i][j] ->SetYTitle("Asymmetry");
3824 fhAsyEtaNLocMax2[i][j] ->SetXTitle("E (GeV)");
3825 outputContainer->Add(fhAsyEtaNLocMax2[i][j]) ;
3826
3827 fhAsyEtaNLocMaxN[i][j] = new TH2F(Form("hAsyEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3828 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
3829 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3830 fhAsyEtaNLocMaxN[i][j] ->SetYTitle("Asymmetry");
3831 fhAsyEtaNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3832 outputContainer->Add(fhAsyEtaNLocMaxN[i][j]) ;
3833
3834 if(fFillNCellHisto)
3835 {
3836 fhNCellEtaNLocMax1[i][j] = new TH2F(Form("hNCellEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3837 Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()),
3838 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3839 fhNCellEtaNLocMax1[i][j] ->SetYTitle("n cells");
3840 fhNCellEtaNLocMax1[i][j] ->SetXTitle("E (GeV)");
3841 outputContainer->Add(fhNCellEtaNLocMax1[i][j]) ;
3842
3843 fhNCellEtaNLocMax2[i][j] = new TH2F(Form("hNCellEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3844 Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()),
3845 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3846 fhNCellEtaNLocMax2[i][j] ->SetYTitle("n cells");
3847 fhNCellEtaNLocMax2[i][j] ->SetXTitle("E (GeV)");
3848 outputContainer->Add(fhNCellEtaNLocMax2[i][j]) ;
3849
3850 fhNCellEtaNLocMaxN[i][j] = new TH2F(Form("hNCellEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3851 Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()),
3852 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
3853 fhNCellEtaNLocMaxN[i][j] ->SetYTitle("n cells");
3854 fhNCellEtaNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3855 outputContainer->Add(fhNCellEtaNLocMaxN[i][j]) ;
3856
3857 }
3858 }
3859
3860 if(fFillIdConvHisto)
3861 {
3862 fhM02ConNLocMax1[i][j] = new TH2F(Form("hM02ConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3863 Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
3864 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3865 fhM02ConNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
3866 fhM02ConNLocMax1[i][j] ->SetXTitle("E (GeV)");
3867 outputContainer->Add(fhM02ConNLocMax1[i][j]) ;
3868
3869 fhM02ConNLocMax2[i][j] = new TH2F(Form("hM02ConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3870 Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
3871 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3872 fhM02ConNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
3873 fhM02ConNLocMax2[i][j] ->SetXTitle("E (GeV)");
3874 outputContainer->Add(fhM02ConNLocMax2[i][j]) ;
3875
3876 fhM02ConNLocMaxN[i][j] = new TH2F(Form("hM02ConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3877 Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
3878 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3879 fhM02ConNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
3880 fhM02ConNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3881 outputContainer->Add(fhM02ConNLocMaxN[i][j]) ;
3882
3883
3884 fhMassConNLocMax1[i][j] = new TH2F(Form("hMassConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3885 Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()),
3886 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3887 fhMassConNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3888 fhMassConNLocMax1[i][j] ->SetXTitle("E (GeV)");
3889 outputContainer->Add(fhMassConNLocMax1[i][j]) ;
3890
3891 fhMassConNLocMax2[i][j] = new TH2F(Form("hMassConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3892 Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()),
3893 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3894 fhMassConNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3895 fhMassConNLocMax2[i][j] ->SetXTitle("E (GeV)");
3896 outputContainer->Add(fhMassConNLocMax2[i][j]) ;
3897
3898 fhMassConNLocMaxN[i][j] = new TH2F(Form("hMassConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3899 Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()),
3900 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3901 fhMassConNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})");
3902 fhMassConNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3903 outputContainer->Add(fhMassConNLocMaxN[i][j]) ;
3904
3905 fhAsyConNLocMax1[i][j] = new TH2F(Form("hAsyConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3906 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
3907 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3908 fhAsyConNLocMax1[i][j] ->SetYTitle("Asymmetry");
3909 fhAsyConNLocMax1[i][j] ->SetXTitle("E (GeV)");
3910 outputContainer->Add(fhAsyConNLocMax1[i][j]) ;
3911
3912 fhAsyConNLocMax2[i][j] = new TH2F(Form("hAsyConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3913 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
3914 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3915 fhAsyConNLocMax2[i][j] ->SetYTitle("Asymmetry");
3916 fhAsyConNLocMax2[i][j] ->SetXTitle("E (GeV)");
3917 outputContainer->Add(fhAsyConNLocMax2[i][j]) ;
3918
3919 fhAsyConNLocMaxN[i][j] = new TH2F(Form("hAsyConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3920 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
3921 nptbins,ptmin,ptmax,mbins,mmin,mmax);
3922 fhAsyConNLocMaxN[i][j] ->SetYTitle("Asymmetry");
3923 fhAsyConNLocMaxN[i][j] ->SetXTitle("E (GeV)");
3924 outputContainer->Add(fhAsyConNLocMaxN[i][j]) ;
3925
3926 }
e671adc2 3927
5c46c992 3928 } // matched, not matched
3929
19391b8c 3930 if(fFillEbinHisto)
3931 {
883411b2 3932 for(Int_t j = 0; j < 4; j++)
19391b8c 3933 {
53f2c382 3934
fc01318e 3935 fhMassSplitEFractionNLocMax1Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax1%sEbin%d",pname[i].Data(),j),
be894c1d 3936 Form("Invariant mass of 2 highest energy cells vs (E1+E2)/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 3937 120,0,1.2,mbins,mmin,mmax);
fc01318e 3938 fhMassSplitEFractionNLocMax1Ebin[i][j]->SetYTitle("M (GeV/c^{2})");
3939 fhMassSplitEFractionNLocMax1Ebin[i][j]->SetXTitle("(E_{split1}+E_{split2})/E_{cluster}");
19391b8c 3940 outputContainer->Add(fhMassSplitEFractionNLocMax1Ebin[i][j]) ;
883411b2 3941
fc01318e 3942 fhMassSplitEFractionNLocMax2Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax2%sEbin%d",pname[i].Data(),j),
be894c1d 3943 Form("Invariant mass of 2 local maxima cells vs (E1+E2)/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 3944 120,0,1.2,mbins,mmin,mmax);
fc01318e 3945 fhMassSplitEFractionNLocMax2Ebin[i][j]->SetYTitle("M (GeV/c^{2})");
3946 fhMassSplitEFractionNLocMax2Ebin[i][j]->SetXTitle("(E_{split1}+E_{split2})/E_{cluster}");
19391b8c 3947 outputContainer->Add(fhMassSplitEFractionNLocMax2Ebin[i][j]) ;
883411b2 3948
fc01318e 3949 fhMassSplitEFractionNLocMaxNEbin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMaxN%sEbin%d",pname[i].Data(),j),
be894c1d 3950 Form("Invariant mass of N>2 local maxima cells vs (E1+E2)/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 3951 120,0,1.2,mbins,mmin,mmax);
fc01318e 3952 fhMassSplitEFractionNLocMaxNEbin[i][j]->SetYTitle("M (GeV/c^{2})");
3953 fhMassSplitEFractionNLocMaxNEbin[i][j]->SetXTitle("(E_{split1}+E_{split2})/E_{cluster}");
19391b8c 3954 outputContainer->Add(fhMassSplitEFractionNLocMaxNEbin[i][j]) ;
883411b2 3955
b2e375c7 3956 if(i>0 && fFillMCHisto) // skip first entry in array, general case not filled
fc01318e 3957 {
3958 fhMCGenFracNLocMaxEbin[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%d",pname[i].Data(),j),
be894c1d 3959 Form("NLM vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 3960 200,0,2,nMaxBins,0,nMaxBins);
fc01318e 3961 fhMCGenFracNLocMaxEbin[i][j]->SetYTitle("NLM");
fb51265c 3962 fhMCGenFracNLocMaxEbin[i][j]->SetXTitle("E_{gen} / E_{reco}");
19391b8c 3963 outputContainer->Add(fhMCGenFracNLocMaxEbin[i][j]) ;
fc01318e 3964
3965 fhMCGenFracNLocMaxEbinMatched[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%dMatched",pname[i].Data(),j),
be894c1d 3966 Form("NLM vs E, %s, %s, matched to a track",ptype[i].Data(),sEBin[j].Data()),
19391b8c 3967 200,0,2,nMaxBins,0,nMaxBins);
fc01318e 3968 fhMCGenFracNLocMaxEbinMatched[i][j]->SetYTitle("NLM");
fb51265c 3969 fhMCGenFracNLocMaxEbinMatched[i][j]->SetXTitle("E_{gen} / E_{reco}");
19391b8c 3970 outputContainer->Add(fhMCGenFracNLocMaxEbinMatched[i][j]) ;
fc01318e 3971
3972 fhMassMCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax1%sEbin%d",pname[i].Data(),j),
be894c1d 3973 Form("Invariant mass of 2 highest energy cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 3974 200,0,2,mbins,mmin,mmax);
fc01318e 3975 fhMassMCGenFracNLocMax1Ebin[i][j]->SetYTitle("M (GeV/c^{2})");
fb51265c 3976 fhMassMCGenFracNLocMax1Ebin[i][j]->SetXTitle("E_{gen} / E_{reco}");
19391b8c 3977 outputContainer->Add(fhMassMCGenFracNLocMax1Ebin[i][j]) ;
fc01318e 3978
3979 fhMassMCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax2%sEbin%d",pname[i].Data(),j),
be894c1d 3980 Form("Invariant mass of 2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 3981 200,0,2,mbins,mmin,mmax);
fc01318e 3982 fhMassMCGenFracNLocMax2Ebin[i][j]->SetYTitle("M (GeV/c^{2})");
fb51265c 3983 fhMassMCGenFracNLocMax2Ebin[i][j]->SetXTitle("E_{gen} / E_{reco}");
19391b8c 3984 outputContainer->Add(fhMassMCGenFracNLocMax2Ebin[i][j]) ;
fc01318e 3985
3986 fhMassMCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hMassMCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j),
be894c1d 3987 Form("Invariant mass of N>2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 3988 200,0,2,mbins,mmin,mmax);
fc01318e 3989 fhMassMCGenFracNLocMaxNEbin[i][j]->SetYTitle("M (GeV/c^{2})");
fb51265c 3990 fhMassMCGenFracNLocMaxNEbin[i][j]->SetXTitle("E_{gen} / E_{reco}");
19391b8c 3991 outputContainer->Add(fhMassMCGenFracNLocMaxNEbin[i][j]) ;
fc01318e 3992
3993 fhM02MCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax1%sEbin%d",pname[i].Data(),j),
be894c1d 3994 Form("#lambda_{0}^{2} vs E for N max = 1 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 3995 200,0,2,ssbins,ssmin,ssmax);
fc01318e 3996 fhM02MCGenFracNLocMax1Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}");
fb51265c 3997 fhM02MCGenFracNLocMax1Ebin[i][j] ->SetXTitle("E_{gen} / E_{reco}");
19391b8c 3998 outputContainer->Add(fhM02MCGenFracNLocMax1Ebin[i][j]) ;
fc01318e 3999
4000 fhM02MCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax2%sEbin%d",pname[i].Data(),j),
be894c1d 4001 Form("#lambda_{0}^{2} vs E for N max = 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4002 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4003 fhM02MCGenFracNLocMax2Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}");
fb51265c 4004 fhM02MCGenFracNLocMax2Ebin[i][j] ->SetXTitle("E_{gen} / E_{reco}");
19391b8c 4005 outputContainer->Add(fhM02MCGenFracNLocMax2Ebin[i][j]) ;
fc01318e 4006
4007 fhM02MCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hM02MCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j),
be894c1d 4008 Form("#lambda_{0}^{2} vs E for N max > 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4009 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4010 fhM02MCGenFracNLocMaxNEbin[i][j] ->SetYTitle("#lambda_{0}^{2}");
fb51265c 4011 fhM02MCGenFracNLocMaxNEbin[i][j] ->SetXTitle("E_{gen} / E_{reco}");
19391b8c 4012 outputContainer->Add(fhM02MCGenFracNLocMaxNEbin[i][j]) ;
fc01318e 4013 }
883411b2 4014 }
19391b8c 4015 }
5c46c992 4016 } // MC particle list
1253480f 4017
4018 if(fFillHighMultHisto)
4019 {
4020 // E vs centrality
4021
4022 fhCentralityPi0NLocMax1 = new TH2F("hCentralityPi0NLocMax1",
4023 "E vs Centrality, selected pi0 cluster with NLM=1",
4024 nptbins,ptmin,ptmax,100,0,100);
4025 fhCentralityPi0NLocMax1->SetYTitle("Centrality");
4026 fhCentralityPi0NLocMax1->SetXTitle("E (GeV)");
4027 outputContainer->Add(fhCentralityPi0NLocMax1) ;
4028
4029 fhCentralityPi0NLocMax2 = new TH2F("hCentralityPi0NLocMax2",
4030 "E vs Centrality, selected pi0 cluster with NLM=2",
4031 nptbins,ptmin,ptmax,100,0,100);
4032 fhCentralityPi0NLocMax2->SetYTitle("Centrality");
4033 fhCentralityPi0NLocMax2->SetXTitle("E (GeV)");
4034 outputContainer->Add(fhCentralityPi0NLocMax2) ;
4035
4036 fhCentralityPi0NLocMaxN = new TH2F("hCentralityPi0NLocMaxN",
4037 "E vs Centrality, selected pi0 cluster with NLM>1",
4038 nptbins,ptmin,ptmax,100,0,100);
4039 fhCentralityPi0NLocMaxN->SetYTitle("Centrality");
4040 fhCentralityPi0NLocMaxN->SetXTitle("E (GeV)");
4041 outputContainer->Add(fhCentralityPi0NLocMaxN) ;
4042
4043 if(fFillIdEtaHisto)
4044 {
4045 fhCentralityEtaNLocMax1 = new TH2F("hCentralityEtaNLocMax1",
4046 "E vs Centrality, selected pi0 cluster with NLM=1",
4047 nptbins,ptmin,ptmax,100,0,100);
4048 fhCentralityEtaNLocMax1->SetYTitle("Centrality");
4049 fhCentralityEtaNLocMax1->SetXTitle("E (GeV)");
4050 outputContainer->Add(fhCentralityEtaNLocMax1) ;
4051
4052 fhCentralityEtaNLocMax2 = new TH2F("hCentralityEtaNLocMax2",
4053 "E vs Centrality, selected pi0 cluster with NLM=2",
4054 nptbins,ptmin,ptmax,100,0,100);
4055 fhCentralityEtaNLocMax2->SetYTitle("Centrality");
4056 fhCentralityEtaNLocMax2->SetXTitle("E (GeV)");
4057 outputContainer->Add(fhCentralityEtaNLocMax2) ;
4058
4059 fhCentralityEtaNLocMaxN = new TH2F("hCentralityEtaNLocMaxN",
4060 "E vs Centrality, selected pi0 cluster with NLM>1",
4061 nptbins,ptmin,ptmax,100,0,100);
4062 fhCentralityEtaNLocMaxN->SetYTitle("Centrality");
4063 fhCentralityEtaNLocMaxN->SetXTitle("E (GeV)");
4064 outputContainer->Add(fhCentralityEtaNLocMaxN) ;
4065 }
4066
4067 // E vs Event plane angle
4068
4069 fhEventPlanePi0NLocMax1 = new TH2F("hEventPlanePi0NLocMax1","E vs Event Plane Angle, selected pi0 cluster with NLM=1",
4070 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4071 fhEventPlanePi0NLocMax1->SetYTitle("Event Plane Angle (rad)");
4072 fhEventPlanePi0NLocMax1->SetXTitle("E (GeV)");
4073 outputContainer->Add(fhEventPlanePi0NLocMax1) ;
4074
4075 fhEventPlanePi0NLocMax2 = new TH2F("hEventPlanePi0NLocMax2","E vs Event Plane Angle, selected pi0 cluster with NLM=2",
4076 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4077 fhEventPlanePi0NLocMax2->SetYTitle("Event Plane Angle (rad)");
4078 fhEventPlanePi0NLocMax2->SetXTitle("E (GeV)");
4079 outputContainer->Add(fhEventPlanePi0NLocMax2) ;
4080
4081 fhEventPlanePi0NLocMaxN = new TH2F("hEventPlanePi0NLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4082 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4083 fhEventPlanePi0NLocMaxN->SetYTitle("Event Plane Angle (rad)");
4084 fhEventPlanePi0NLocMaxN->SetXTitle("E (GeV)");
4085 outputContainer->Add(fhEventPlanePi0NLocMaxN) ;
4086
4087 if(fFillIdEtaHisto)
4088 {
4089 fhEventPlaneEtaNLocMax1 = new TH2F("hEventPlaneEtaNLocMax1","E vs Event Plane Angle, selected pi0 cluster with NLM=1",
4090 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4091 fhEventPlaneEtaNLocMax1->SetYTitle("Event Plane Angle (rad)");
4092 fhEventPlaneEtaNLocMax1->SetXTitle("E (GeV)");
4093 outputContainer->Add(fhEventPlaneEtaNLocMax1) ;
4094
4095 fhEventPlaneEtaNLocMax2 = new TH2F("hEventPlaneEtaNLocMax2","E vs Event Plane Angle, selected pi0 cluster with NLM=2",
4096 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4097 fhEventPlaneEtaNLocMax2->SetYTitle("Event Plane Angle (rad)");
4098 fhEventPlaneEtaNLocMax2->SetXTitle("E (GeV)");
4099 outputContainer->Add(fhEventPlaneEtaNLocMax2) ;
4100
4101 fhEventPlaneEtaNLocMaxN = new TH2F("hEventPlaneEtaNLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4102 nptbins,ptmin,ptmax,100,0,TMath::Pi());
4103 fhEventPlaneEtaNLocMaxN->SetYTitle("Event Plane Angle (rad)");
4104 fhEventPlaneEtaNLocMaxN->SetXTitle("E (GeV)");
4105 outputContainer->Add(fhEventPlaneEtaNLocMaxN) ;
4106 }
4107 }
17f5b4b6 4108
19391b8c 4109 if(fFillEbinHisto)
4110 {
4111 for(Int_t i = 0; i < 4; i++)
8e81c2cf 4112 {
19391b8c 4113 fhMassM02NLocMax1Ebin[i] = new TH2F(Form("hMassM02NLocMax1Ebin%d",i),
be894c1d 4114 Form("Invariant mass of split clusters vs #lambda_{0}^{2}, NLM=1, %s",sEBin[i].Data()),
19391b8c 4115 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4116 fhMassM02NLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})");
4117 fhMassM02NLocMax1Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4118 outputContainer->Add(fhMassM02NLocMax1Ebin[i]) ;
4119
4120 fhMassM02NLocMax2Ebin[i] = new TH2F(Form("hMassM02NLocMax2Ebin%d",i),
be894c1d 4121 Form("Invariant mass of split clusters vs #lambda_{0}^{2}, NLM=2, %s",sEBin[i].Data()),
19391b8c 4122 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4123 fhMassM02NLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})");
4124 fhMassM02NLocMax2Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4125 outputContainer->Add(fhMassM02NLocMax2Ebin[i]) ;
4126
4127 fhMassM02NLocMaxNEbin[i] = new TH2F(Form("hMassM02NLocMaxNEbin%d",i),
be894c1d 4128 Form("Invariant mass of split clusters vs vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
19391b8c 4129 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4130 fhMassM02NLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})");
4131 fhMassM02NLocMaxNEbin[i]->SetXTitle("#lambda_{0}^{2}");
4132 outputContainer->Add(fhMassM02NLocMaxNEbin[i]) ;
4133
4134
4135 fhMassAsyNLocMax1Ebin[i] = new TH2F(Form("hMassAsyNLocMax1Ebin%d",i),
be894c1d 4136 Form("Invariant mass of split clusters vs split asymmetry, NLM=1, %s",sEBin[i].Data()),
19391b8c 4137 200,-1,1,mbins,mmin,mmax);
4138 fhMassAsyNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})");
4139 fhMassAsyNLocMax1Ebin[i]->SetXTitle("asymmetry");
4140 outputContainer->Add(fhMassAsyNLocMax1Ebin[i]) ;
4141
4142 fhMassAsyNLocMax2Ebin[i] = new TH2F(Form("hMassAsyNLocMax2Ebin%d",i),
be894c1d 4143 Form("Invariant mass of split clusters vs split asymmetry, NLM=2, %s",sEBin[i].Data()),
19391b8c 4144 200,-1,1,mbins,mmin,mmax);
4145 fhMassAsyNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})");
4146 fhMassAsyNLocMax2Ebin[i]->SetXTitle("asymmetry");
4147 outputContainer->Add(fhMassAsyNLocMax2Ebin[i]) ;
4148
4149 fhMassAsyNLocMaxNEbin[i] = new TH2F(Form("hMassAsyNLocMaxNEbin%d",i),
be894c1d 4150 Form("Invariant mass of split clusters vs split asymmetry, NLM>2, %s",sEBin[i].Data()),
19391b8c 4151 200,-1,1,mbins,mmin,mmax);
4152 fhMassAsyNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})");
4153 fhMassAsyNLocMaxNEbin[i]->SetXTitle("asymmetry");
4154 outputContainer->Add(fhMassAsyNLocMaxNEbin[i]) ;
4155
4156
b2e375c7 4157 if(IsDataMC() && fFillMCHisto)
19391b8c 4158 {
4159 fhMCAsymM02NLocMax1MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax1MCPi0Ebin%d",i),
be894c1d 4160 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM=1, %s",sEBin[i].Data()),
19391b8c 4161 ssbins,ssmin,ssmax,100,0,1);
4162 fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4163 fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4164 outputContainer->Add(fhMCAsymM02NLocMax1MCPi0Ebin[i]) ;
4165
4166 fhMCAsymM02NLocMax2MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax2MCPi0Ebin%d",i),
be894c1d 4167 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM=2, %s",sEBin[i].Data()),
19391b8c 4168 ssbins,ssmin,ssmax,100,0,1);
4169 fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4170 fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4171 outputContainer->Add(fhMCAsymM02NLocMax2MCPi0Ebin[i]) ;
4172
4173 fhMCAsymM02NLocMaxNMCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMaxNMCPi0Ebin%d",i),
be894c1d 4174 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
19391b8c 4175 ssbins,ssmin,ssmax,100,0,1);
4176 fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4177 fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4178 outputContainer->Add(fhMCAsymM02NLocMaxNMCPi0Ebin[i]) ;
4179
4180
4181 fhAsyMCGenRecoNLocMax1EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax1Ebin%dPi0",i),
be894c1d 4182 Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM=1, %s",sEBin[i].Data()),
19391b8c 4183 200,-1,1,200,-1,1);
4184 fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetYTitle("M (GeV/c^{2})");
4185 fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetXTitle("asymmetry");
4186 outputContainer->Add(fhAsyMCGenRecoNLocMax1EbinPi0[i]) ;
4187
4188 fhAsyMCGenRecoNLocMax2EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax2Ebin%dPi0",i),
be894c1d 4189 Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM=2, %s",sEBin[i].Data()),
19391b8c 4190 200,-1,1,200,-1,1);
4191 fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetYTitle("M (GeV/c^{2})");
4192 fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetXTitle("asymmetry");
4193 outputContainer->Add(fhAsyMCGenRecoNLocMax2EbinPi0[i]) ;
4194
4195 fhAsyMCGenRecoNLocMaxNEbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMaxNEbin%dPi0",i),
be894c1d 4196 Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM>2, %s",sEBin[i].Data()),
19391b8c 4197 200,-1,1,200,-1,1);
4198 fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetYTitle("M (GeV/c^{2})");
4199 fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetXTitle("asymmetry");
4200 outputContainer->Add(fhAsyMCGenRecoNLocMaxNEbinPi0[i]) ;
4201 }
4202
4203 if(fFillSSExtraHisto)
4204 {
4205 fhMassDispEtaNLocMax1Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax1Ebin%d",i),
be894c1d 4206 Form("Invariant mass of 2 highest energy cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4207 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4208 fhMassDispEtaNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})");
4209 fhMassDispEtaNLocMax1Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4210 outputContainer->Add(fhMassDispEtaNLocMax1Ebin[i]) ;
4211
4212 fhMassDispEtaNLocMax2Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax2Ebin%d",i),
be894c1d 4213 Form("Invariant mass of 2 local maxima cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4214 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4215 fhMassDispEtaNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})");
4216 fhMassDispEtaNLocMax2Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4217 outputContainer->Add(fhMassDispEtaNLocMax2Ebin[i]) ;
4218
4219 fhMassDispEtaNLocMaxNEbin[i] = new TH2F(Form("hMassDispEtaNLocMaxNEbin%d",i),
be894c1d 4220 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4221 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4222 fhMassDispEtaNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})");
4223 fhMassDispEtaNLocMaxNEbin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4224 outputContainer->Add(fhMassDispEtaNLocMaxNEbin[i]) ;
4225
4226 fhMassDispPhiNLocMax1Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax1Ebin%d",i),
be894c1d 4227 Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4228 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4229 fhMassDispPhiNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})");
4230 fhMassDispPhiNLocMax1Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4231 outputContainer->Add(fhMassDispPhiNLocMax1Ebin[i]) ;
4232
4233 fhMassDispPhiNLocMax2Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax2Ebin%d",i),
be894c1d 4234 Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4235 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4236 fhMassDispPhiNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})");
4237 fhMassDispPhiNLocMax2Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4238 outputContainer->Add(fhMassDispPhiNLocMax2Ebin[i]) ;
4239
4240 fhMassDispPhiNLocMaxNEbin[i] = new TH2F(Form("hMassDispPhiNLocMaxNEbin%d",i),
be894c1d 4241 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4242 ssbins,ssmin,ssmax,mbins,mmin,mmax);
4243 fhMassDispPhiNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})");
4244 fhMassDispPhiNLocMaxNEbin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4245 outputContainer->Add(fhMassDispPhiNLocMaxNEbin[i]) ;
4246
4247 fhMassDispAsyNLocMax1Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax1Ebin%d",i),
be894c1d 4248 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 4249 200,-1,1,mbins,mmin,mmax);
4250 fhMassDispAsyNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})");
4251 fhMassDispAsyNLocMax1Ebin[i]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
4252 outputContainer->Add(fhMassDispAsyNLocMax1Ebin[i]) ;
4253
4254 fhMassDispAsyNLocMax2Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax2Ebin%d",i),
be894c1d 4255 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 4256 200,-1,1,mbins,mmin,mmax);
4257 fhMassDispAsyNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})");
4258 fhMassDispAsyNLocMax2Ebin[i]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
4259 outputContainer->Add(fhMassDispAsyNLocMax2Ebin[i]) ;
4260
4261 fhMassDispAsyNLocMaxNEbin[i] = new TH2F(Form("hMassDispAsyNLocMaxNEbin%d",i),
be894c1d 4262 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 4263 200,-1,1,mbins,mmin,mmax);
4264 fhMassDispAsyNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})");
4265 fhMassDispAsyNLocMaxNEbin[i]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
4266 outputContainer->Add(fhMassDispAsyNLocMaxNEbin[i]) ;
4267 }
8e81c2cf 4268 }
19391b8c 4269 }
1253480f 4270
c7e9a4e9 4271 if(IsDataMC() && fFillMCHisto && (asyOn || m02On))
c8710850 4272 {
4273 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax1MCPi0",
4274 "E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 1 MC Pi0, after M02 and Asym cut",
4275 nptbins,ptmin,ptmax,200,0,2);
4276 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})");
4277 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetXTitle("E (GeV)");
4278 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax1MCPi0) ;
4279
4280 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax2MCPi0",
4281 "E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 2 MC Pi0, after M02 and Asym cut",
4282 nptbins,ptmin,ptmax,200,0,2);
4283 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})");
4284 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetXTitle("E (GeV)");
4285 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax2MCPi0) ;
4286
4287
4288 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMaxNMCPi0",
4289 "E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max > 2 MC Pi0, after M02 and Asym cut",
4290 nptbins,ptmin,ptmax,200,0,2);
4291 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})");
4292 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("E (GeV)");
4293 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0) ;
4294
4295 fhMCGenFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax1MCPi0",
4296 "E_{gen} / E_{reco} vs E_{reco} for N max = 1 MC Pi0, after M02 and Asym cut",
4297 nptbins,ptmin,ptmax,200,0,2);
4298 fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetYTitle("E_{gen} / E_{reco}");
4299 fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetXTitle("E (GeV)");
4300 outputContainer->Add(fhMCGenFracAfterCutsNLocMax1MCPi0) ;
4301
4302 fhMCGenFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax2MCPi0",
4303 " E_{gen} / E_{reco} vs E_{reco} for N max = 2 MC Pi0, after M02 and Asym cut",
4304 nptbins,ptmin,ptmax,200,0,2);
4305 fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetYTitle("E_{gen} / E_{reco}");
4306 fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetXTitle("E (GeV)");
4307 outputContainer->Add(fhMCGenFracAfterCutsNLocMax2MCPi0) ;
4308
4309
4310 fhMCGenFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenFracAfterCutsNLocMaxNMCPi0",
4311 " E_{gen} / E_{reco} vs E_{reco} for N max > 2 MC Pi0, after M02 and Asym cut",
4312 nptbins,ptmin,ptmax,200,0,2);
4313 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("E_{gen} / E_{reco}");
4314 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("E (GeV)");
4315 outputContainer->Add(fhMCGenFracAfterCutsNLocMaxNMCPi0) ;
4316
4317 }
4318
8edbd100 4319 if(fFillTMResidualHisto && fFillTMHisto)
8e81c2cf 4320 {
4321 for(Int_t i = 0; i < n; i++)
4322 {
4323
c8710850 4324 fhTrackMatchedDEtaNLocMax1[i] = new TH2F
4325 (Form("hTrackMatchedDEtaNLocMax1%s",pname[i].Data()),
8e81c2cf 4326 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4327 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4328 fhTrackMatchedDEtaNLocMax1[i]->SetYTitle("d#eta");
4329 fhTrackMatchedDEtaNLocMax1[i]->SetXTitle("E_{cluster} (GeV)");
8e81c2cf 4330
c8710850 4331 fhTrackMatchedDPhiNLocMax1[i] = new TH2F
4332 (Form("hTrackMatchedDPhiNLocMax1%s",pname[i].Data()),
8e81c2cf 4333 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4334 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4335 fhTrackMatchedDPhiNLocMax1[i]->SetYTitle("d#phi (rad)");
4336 fhTrackMatchedDPhiNLocMax1[i]->SetXTitle("E_{cluster} (GeV)");
8e81c2cf 4337
c8710850 4338 outputContainer->Add(fhTrackMatchedDEtaNLocMax1[i]) ;
4339 outputContainer->Add(fhTrackMatchedDPhiNLocMax1[i]) ;
8e81c2cf 4340
c8710850 4341 fhTrackMatchedDEtaNLocMax2[i] = new TH2F
4342 (Form("hTrackMatchedDEtaNLocMax2%s",pname[i].Data()),
8e81c2cf 4343 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4344 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4345 fhTrackMatchedDEtaNLocMax2[i]->SetYTitle("d#eta");
4346 fhTrackMatchedDEtaNLocMax2[i]->SetXTitle("E_{cluster} (GeV)");
8e81c2cf 4347
c8710850 4348 fhTrackMatchedDPhiNLocMax2[i] = new TH2F
4349 (Form("hTrackMatchedDPhiNLocMax2%s",pname[i].Data()),
8e81c2cf 4350 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4351 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4352 fhTrackMatchedDPhiNLocMax2[i]->SetYTitle("d#phi (rad)");
4353 fhTrackMatchedDPhiNLocMax2[i]->SetXTitle("E_{cluster} (GeV)");
8e81c2cf 4354
c8710850 4355 outputContainer->Add(fhTrackMatchedDEtaNLocMax2[i]) ;
4356 outputContainer->Add(fhTrackMatchedDPhiNLocMax2[i]) ;
8e81c2cf 4357
c8710850 4358 fhTrackMatchedDEtaNLocMaxN[i] = new TH2F
4359 (Form("hTrackMatchedDEtaNLocMaxN%s",pname[i].Data()),
8e81c2cf 4360 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4361 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4362 fhTrackMatchedDEtaNLocMaxN[i]->SetYTitle("d#eta");
4363 fhTrackMatchedDEtaNLocMaxN[i]->SetXTitle("E_{cluster} (GeV)");
8e81c2cf 4364
c8710850 4365 fhTrackMatchedDPhiNLocMaxN[i] = new TH2F
4366 (Form("hTrackMatchedDPhiNLocMaxN%s",pname[i].Data()),
8e81c2cf 4367 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4368 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4369 fhTrackMatchedDPhiNLocMaxN[i]->SetYTitle("d#phi (rad)");
4370 fhTrackMatchedDPhiNLocMaxN[i]->SetXTitle("E_{cluster} (GeV)");
8e81c2cf 4371
c8710850 4372 outputContainer->Add(fhTrackMatchedDEtaNLocMaxN[i]) ;
b2e375c7 4373 outputContainer->Add(fhTrackMatchedDPhiNLocMaxN[i]) ;
883411b2 4374
b2e375c7 4375 fhTrackMatchedDEtaNLocMax1Pos[i] = new TH2F
4376 (Form("hTrackMatchedDEtaNLocMax1Pos%s",pname[i].Data()),
4377 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4378 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4379 fhTrackMatchedDEtaNLocMax1Pos[i]->SetYTitle("d#eta");
4380 fhTrackMatchedDEtaNLocMax1Pos[i]->SetXTitle("E_{cluster} (GeV)");
4381
4382 fhTrackMatchedDPhiNLocMax1Pos[i] = new TH2F
4383 (Form("hTrackMatchedDPhiNLocMax1Pos%s",pname[i].Data()),
4384 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4385 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4386 fhTrackMatchedDPhiNLocMax1Pos[i]->SetYTitle("d#phi (rad)");
4387 fhTrackMatchedDPhiNLocMax1Pos[i]->SetXTitle("E_{cluster} (GeV)");
4388
4389 outputContainer->Add(fhTrackMatchedDEtaNLocMax1Pos[i]) ;
4390 outputContainer->Add(fhTrackMatchedDPhiNLocMax1Pos[i]) ;
4391
4392 fhTrackMatchedDEtaNLocMax2Pos[i] = new TH2F
4393 (Form("hTrackMatchedDEtaNLocMax2Pos%s",pname[i].Data()),
4394 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4395 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4396 fhTrackMatchedDEtaNLocMax2Pos[i]->SetYTitle("d#eta");
4397 fhTrackMatchedDEtaNLocMax2Pos[i]->SetXTitle("E_{cluster} (GeV)");
4398
4399 fhTrackMatchedDPhiNLocMax2Pos[i] = new TH2F
4400 (Form("hTrackMatchedDPhiNLocMax2Pos%s",pname[i].Data()),
4401 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4402 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4403 fhTrackMatchedDPhiNLocMax2Pos[i]->SetYTitle("d#phi (rad)");
4404 fhTrackMatchedDPhiNLocMax2Pos[i]->SetXTitle("E_{cluster} (GeV)");
4405
4406 outputContainer->Add(fhTrackMatchedDEtaNLocMax2Pos[i]) ;
4407 outputContainer->Add(fhTrackMatchedDPhiNLocMax2Pos[i]) ;
4408
4409 fhTrackMatchedDEtaNLocMaxNPos[i] = new TH2F
4410 (Form("hTrackMatchedDEtaNLocMaxNPos%s",pname[i].Data()),
4411 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4412 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4413 fhTrackMatchedDEtaNLocMaxNPos[i]->SetYTitle("d#eta");
4414 fhTrackMatchedDEtaNLocMaxNPos[i]->SetXTitle("E_{cluster} (GeV)");
4415
4416 fhTrackMatchedDPhiNLocMaxNPos[i] = new TH2F
4417 (Form("hTrackMatchedDPhiNLocMaxNPos%s",pname[i].Data()),
4418 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4419 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4420 fhTrackMatchedDPhiNLocMaxNPos[i]->SetYTitle("d#phi (rad)");
4421 fhTrackMatchedDPhiNLocMaxNPos[i]->SetXTitle("E_{cluster} (GeV)");
4422
4423 outputContainer->Add(fhTrackMatchedDEtaNLocMaxNPos[i]) ;
4424 outputContainer->Add(fhTrackMatchedDPhiNLocMaxNPos[i]) ;
4425
4426 fhTrackMatchedDEtaNLocMax1Neg[i] = new TH2F
4427 (Form("hTrackMatchedDEtaNLocMax1Neg%s",pname[i].Data()),
4428 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4429 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4430 fhTrackMatchedDEtaNLocMax1Neg[i]->SetYTitle("d#eta");
4431 fhTrackMatchedDEtaNLocMax1Neg[i]->SetXTitle("E_{cluster} (GeV)");
4432
4433 fhTrackMatchedDPhiNLocMax1Neg[i] = new TH2F
4434 (Form("hTrackMatchedDPhiNLocMax1Neg%s",pname[i].Data()),
4435 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4436 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4437 fhTrackMatchedDPhiNLocMax1Neg[i]->SetYTitle("d#phi (rad)");
4438 fhTrackMatchedDPhiNLocMax1Neg[i]->SetXTitle("E_{cluster} (GeV)");
4439
4440 outputContainer->Add(fhTrackMatchedDEtaNLocMax1Neg[i]) ;
4441 outputContainer->Add(fhTrackMatchedDPhiNLocMax1Neg[i]) ;
4442
4443 fhTrackMatchedDEtaNLocMax2Neg[i] = new TH2F
4444 (Form("hTrackMatchedDEtaNLocMax2Neg%s",pname[i].Data()),
4445 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4446 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4447 fhTrackMatchedDEtaNLocMax2Neg[i]->SetYTitle("d#eta");
4448 fhTrackMatchedDEtaNLocMax2Neg[i]->SetXTitle("E_{cluster} (GeV)");
4449
4450 fhTrackMatchedDPhiNLocMax2Neg[i] = new TH2F
4451 (Form("hTrackMatchedDPhiNLocMax2Neg%s",pname[i].Data()),
4452 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4453 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4454 fhTrackMatchedDPhiNLocMax2Neg[i]->SetYTitle("d#phi (rad)");
4455 fhTrackMatchedDPhiNLocMax2Neg[i]->SetXTitle("E_{cluster} (GeV)");
4456
4457 outputContainer->Add(fhTrackMatchedDEtaNLocMax2Neg[i]) ;
4458 outputContainer->Add(fhTrackMatchedDPhiNLocMax2Neg[i]) ;
4459
4460 fhTrackMatchedDEtaNLocMaxNNeg[i] = new TH2F
4461 (Form("hTrackMatchedDEtaNLocMaxNNeg%s",pname[i].Data()),
4462 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4463 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4464 fhTrackMatchedDEtaNLocMaxNNeg[i]->SetYTitle("d#eta");
4465 fhTrackMatchedDEtaNLocMaxNNeg[i]->SetXTitle("E_{cluster} (GeV)");
4466
4467 fhTrackMatchedDPhiNLocMaxNNeg[i] = new TH2F
4468 (Form("hTrackMatchedDPhiNLocMaxNNeg%s",pname[i].Data()),
4469 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4470 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4471 fhTrackMatchedDPhiNLocMaxNNeg[i]->SetYTitle("d#phi (rad)");
4472 fhTrackMatchedDPhiNLocMaxNNeg[i]->SetXTitle("E_{cluster} (GeV)");
4473
4474 outputContainer->Add(fhTrackMatchedDEtaNLocMaxNNeg[i]) ;
4475 outputContainer->Add(fhTrackMatchedDPhiNLocMaxNNeg[i]) ;
4476
4477 }
4478 }
4479
4480 if(fFillAngleHisto)
4481 {
0186b6a2 4482 for(Int_t i = 0; i < n; i++)
4483 {
4484 for(Int_t j = 0; j < nMatched; j++)
4485 {
4486
0186b6a2 4487 fhAnglePairNLocMax1[i][j] = new TH2F(Form("hAnglePairNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4488 Form("Opening angle split sub-clusters of cluster NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4489 nptbins,ptmin,ptmax,200,0,0.2);
4490 fhAnglePairNLocMax1[i][j]->SetYTitle("#alpha (rad)");
4491 fhAnglePairNLocMax1[i][j]->SetXTitle("E (GeV)");
4492 outputContainer->Add(fhAnglePairNLocMax1[i][j]) ;
4493
4494 fhAnglePairNLocMax2[i][j] = new TH2F(Form("hAnglePairNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4495 Form("Opening angle split sub-clusters of cluster NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4496 nptbins,ptmin,ptmax,200,0,0.2);
4497 fhAnglePairNLocMax2[i][j]->SetYTitle("#alpha (rad)");
4498 fhAnglePairNLocMax2[i][j]->SetXTitle("E (GeV)");
4499 outputContainer->Add(fhAnglePairNLocMax2[i][j]) ;
4500
4501 fhAnglePairNLocMaxN[i][j] = new TH2F(Form("hAnglePairNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4502 Form("Opening angle split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4503 nptbins,ptmin,ptmax,200,0,0.2);
4504 fhAnglePairNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4505 fhAnglePairNLocMaxN[i][j]->SetXTitle("E (GeV)");
4506 outputContainer->Add(fhAnglePairNLocMaxN[i][j]) ;
4507
c7e9a4e9 4508 if(asyOn || m02On)
29555e96 4509 {
4510 fhAnglePairAfterCutsNLocMax1[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4511 Form("Opening angle split sub-clusters of cluster NLM=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4512 nptbins,ptmin,ptmax,200,0,0.2);
4513 fhAnglePairAfterCutsNLocMax1[i][j]->SetYTitle("#alpha (rad)");
4514 fhAnglePairAfterCutsNLocMax1[i][j]->SetXTitle("E (GeV)");
4515 outputContainer->Add(fhAnglePairAfterCutsNLocMax1[i][j]) ;
4516
4517 fhAnglePairAfterCutsNLocMax2[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4518 Form("Opening angle split sub-clusters of cluster, after cuts, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4519 nptbins,ptmin,ptmax,200,0,0.2);
4520 fhAnglePairAfterCutsNLocMax2[i][j]->SetYTitle("#alpha (rad)");
4521 fhAnglePairAfterCutsNLocMax2[i][j]->SetXTitle("E (GeV)");
4522 outputContainer->Add(fhAnglePairAfterCutsNLocMax2[i][j]) ;
4523
4524 fhAnglePairAfterCutsNLocMaxN[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4525 Form("Opening angle split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4526 nptbins,ptmin,ptmax,200,0,0.2);
4527 fhAnglePairAfterCutsNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4528 fhAnglePairAfterCutsNLocMaxN[i][j]->SetXTitle("E (GeV)");
4529 outputContainer->Add(fhAnglePairAfterCutsNLocMaxN[i][j]) ;
4530
4531 }
4532
4533 fhAnglePairPi0NLocMax1[i][j] = new TH2F(Form("hAnglePairPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4534 Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4535 nptbins,ptmin,ptmax,200,0,0.2);
4536 fhAnglePairPi0NLocMax1[i][j]->SetYTitle("#alpha (rad)");
4537 fhAnglePairPi0NLocMax1[i][j]->SetXTitle("E (GeV)");
4538 outputContainer->Add(fhAnglePairPi0NLocMax1[i][j]) ;
4539
4540 fhAnglePairPi0NLocMax2[i][j] = new TH2F(Form("hAnglePairPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4541 Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4542 nptbins,ptmin,ptmax,200,0,0.2);
4543 fhAnglePairPi0NLocMax2[i][j]->SetYTitle("#alpha (rad)");
4544 fhAnglePairPi0NLocMax2[i][j]->SetXTitle("E (GeV)");
4545 outputContainer->Add(fhAnglePairPi0NLocMax2[i][j]) ;
4546
4547 fhAnglePairPi0NLocMaxN[i][j] = new TH2F(Form("hAnglePairPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4548 Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4549 nptbins,ptmin,ptmax,200,0,0.2);
4550 fhAnglePairPi0NLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4551 fhAnglePairPi0NLocMaxN[i][j]->SetXTitle("E (GeV)");
4552 outputContainer->Add(fhAnglePairPi0NLocMaxN[i][j]) ;
4553
0186b6a2 4554 fhAnglePairMassNLocMax1[i][j] = new TH2F(Form("hAnglePairMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
29555e96 4555 Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=1 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4556 mbins,mmin,mmax,200,0,0.2);
4557 fhAnglePairMassNLocMax1[i][j]->SetXTitle("M (GeV/c^{2})");
4558 fhAnglePairMassNLocMax1[i][j]->SetYTitle("#alpha (rad)");
4559 outputContainer->Add(fhAnglePairMassNLocMax1[i][j]) ;
4560
29555e96 4561
0186b6a2 4562 fhAnglePairMassNLocMax2[i][j] = new TH2F(Form("hAnglePairMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4563 Form("Opening angle split sub-clusters of cluster NLM=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4564 mbins,mmin,mmax,200,0,0.2);
4565 fhAnglePairMassNLocMax2[i][j]->SetXTitle("M (GeV/c^{2})");
4566 fhAnglePairMassNLocMax2[i][j]->SetYTitle("#alpha (rad)");
4567 outputContainer->Add(fhAnglePairMassNLocMax2[i][j]) ;
4568
4569 fhAnglePairMassNLocMaxN[i][j] = new TH2F(Form("hAnglePairMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4570 Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4571 mbins,mmin,mmax,200,0,0.2);
4572 fhAnglePairMassNLocMaxN[i][j]->SetXTitle("M (GeV/c^{2})");
4573 fhAnglePairMassNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4574 outputContainer->Add(fhAnglePairMassNLocMaxN[i][j]) ;
d261ae67 4575
4576
4577 fhAnglePairM02NLocMax1[i][j] = new TH2F(Form("hAnglePairM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4578 Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=1 vs Mass for E > 15 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4579 ssbins,ssmin,ssmax,200,0,0.2);
4580 fhAnglePairM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}");
4581 fhAnglePairM02NLocMax1[i][j]->SetYTitle("#alpha (rad)");
4582 outputContainer->Add(fhAnglePairM02NLocMax1[i][j]) ;
4583
0186b6a2 4584
d261ae67 4585 fhAnglePairM02NLocMax2[i][j] = new TH2F(Form("hAnglePairM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4586 Form("Opening angle split sub-clusters of cluster NLM=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4587 ssbins,ssmin,ssmax,200,0,0.2);
4588 fhAnglePairM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}");
4589 fhAnglePairM02NLocMax2[i][j]->SetYTitle("#alpha (rad)");
4590 outputContainer->Add(fhAnglePairM02NLocMax2[i][j]) ;
4591
4592 fhAnglePairM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4593 Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4594 ssbins,ssmin,ssmax,200,0,0.2);
4595 fhAnglePairM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}");
4596 fhAnglePairM02NLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4597 outputContainer->Add(fhAnglePairM02NLocMaxN[i][j]) ;
4598
4e5a94c5 4599 fhAnglePairOverM02NLocMax1[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4600 Form("Opening angle split sub-clusters / M02 of cluster NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4601 nptbins,ptmin,ptmax,200,0,0.2);
4602 fhAnglePairOverM02NLocMax1[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
4603 fhAnglePairOverM02NLocMax1[i][j]->SetXTitle("E (GeV)");
4604 outputContainer->Add(fhAnglePairOverM02NLocMax1[i][j]) ;
4605
4606 fhAnglePairOverM02NLocMax2[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4607 Form("Opening angle split sub-clusters / M02 of cluster NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4608 nptbins,ptmin,ptmax,200,0,0.2);
4609 fhAnglePairOverM02NLocMax2[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
4610 fhAnglePairOverM02NLocMax2[i][j]->SetXTitle("E (GeV)");
4611 outputContainer->Add(fhAnglePairOverM02NLocMax2[i][j]) ;
4612
4613 fhAnglePairOverM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4614 Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4615 nptbins,ptmin,ptmax,200,0,0.2);
4616 fhAnglePairOverM02NLocMaxN[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
4617 fhAnglePairOverM02NLocMaxN[i][j]->SetXTitle("E (GeV)");
4618 outputContainer->Add(fhAnglePairOverM02NLocMaxN[i][j]) ;
4619
4620
4621 fhAnglePairOverM02NLocMax1Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1Overlap0%s%s",pname[i].Data(),sMatched[j].Data()),
4622 Form("Opening angle split sub-clusters / M02 of cluster NLM=1 vs pair Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4623 nptbins,ptmin,ptmax,200,0,0.2);
4624 fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
4625 fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetXTitle("E (GeV)");
4626 outputContainer->Add(fhAnglePairOverM02NLocMax1Overlap0[i][j]) ;
4627
4628 fhAnglePairOverM02NLocMax2Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2Overlap0%s%s",pname[i].Data(),sMatched[j].Data()),
4629 Form("Opening angle split sub-clusters / M02 of cluster NLM=2 cells vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4630 nptbins,ptmin,ptmax,200,0,0.2);
4631 fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
4632 fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetXTitle("E (GeV)");
4633 outputContainer->Add(fhAnglePairOverM02NLocMax2Overlap0[i][j]) ;
4634
4635 fhAnglePairOverM02NLocMaxNOverlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxNOverlap0%s%s",pname[i].Data(),sMatched[j].Data()),
4636 Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4637 nptbins,ptmin,ptmax,200,0,0.2);
4638 fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
4639 fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetXTitle("E (GeV)");
4640 outputContainer->Add(fhAnglePairOverM02NLocMaxNOverlap0[i][j]) ;
4641
4642
0186b6a2 4643 }
4644 }
4645
4646 if(IsDataMC())
4647 {
4648 fhAnglePairPrimPi0RecoNLocMax1 = new TH2F("fhAnglePairPrimPi0RecoNLocMax1",
4649 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM=1",
4650 nptbins,ptmin,ptmax,300,0,3);
4651 fhAnglePairPrimPi0RecoNLocMax1->SetYTitle("#alpha_{reco} / #alpha_{gen}");
4652 fhAnglePairPrimPi0RecoNLocMax1->SetXTitle("E (GeV)");
4653 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax1) ;
4654
4655 fhAnglePairPrimPi0RecoNLocMax2 = new TH2F("fhAnglePairPrimPi0RecoNLocMax2",
4656 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM=2",
4657 nptbins,ptmin,ptmax,300,0,3);
4658 fhAnglePairPrimPi0RecoNLocMax2->SetYTitle("#alpha_{reco} / #alpha_{gen}");
4659 fhAnglePairPrimPi0RecoNLocMax2->SetXTitle("E (GeV)");
4660 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax2) ;
4661
4662 fhAnglePairPrimPi0RecoNLocMaxN = new TH2F("fhAnglePairPrimPi0RecoNLocMaxN",
4663 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM>2",
4664 nptbins,ptmin,ptmax,300,0,3);
4665 fhAnglePairPrimPi0RecoNLocMaxN->SetYTitle("#alpha_{reco} / #alpha_{gen}");
4666 fhAnglePairPrimPi0RecoNLocMaxN->SetXTitle("E (GeV)");
4667 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMaxN) ;
4668
b2e375c7 4669
0186b6a2 4670 fhAnglePairPrimPi0vsRecoNLocMax1 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax1",
4671 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 15 GeV, NLM=1",
4672 200,0,0.2,200,0,0.2);
29555e96 4673 fhAnglePairPrimPi0vsRecoNLocMax1->SetYTitle("#alpha_{reco} (rad)");
4674 fhAnglePairPrimPi0vsRecoNLocMax1->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4675 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax1) ;
4676
4677 fhAnglePairPrimPi0vsRecoNLocMax2 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax2",
4678 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, NLM=2",
4679 200,0,0.2,200,0,0.2);
29555e96 4680 fhAnglePairPrimPi0vsRecoNLocMax2->SetYTitle("#alpha_{reco} (rad)");
4681 fhAnglePairPrimPi0vsRecoNLocMax2->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4682 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax2) ;
4683
4684 fhAnglePairPrimPi0vsRecoNLocMaxN = new TH2F("fhAnglePairPrimPi0vsRecoNLocMaxN",
4685 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, NLM=2",
4686 200,0,0.2,200,0,0.2);
29555e96 4687 fhAnglePairPrimPi0vsRecoNLocMaxN->SetYTitle("#alpha_{reco} (rad)");
4688 fhAnglePairPrimPi0vsRecoNLocMaxN->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4689 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMaxN) ;
883411b2 4690
4e5a94c5 4691
4692 fhAnglePairPrimPi0OverM02NLocMax1 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax1",
4693 "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, NLM=1",
4694 nptbins,ptmin,ptmax,200,0,0.2);
4695 fhAnglePairPrimPi0OverM02NLocMax1->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
4696 fhAnglePairPrimPi0OverM02NLocMax1->SetXTitle("E (GeV)");
4697 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax1) ;
4698
4699 fhAnglePairPrimPi0OverM02NLocMax2 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax2",
4700 "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, NLM=2",
4701 nptbins,ptmin,ptmax,200,0,0.2);
4702 fhAnglePairPrimPi0OverM02NLocMax2->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
4703 fhAnglePairPrimPi0OverM02NLocMax2->SetXTitle("E (GeV)");
4704 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax2) ;
4705
4706 fhAnglePairPrimPi0OverM02NLocMaxN = new TH2F("fhAnglePairPrimPi0OverM02NLocMaxN",
4707 "Primary Opening angle split neutral sub-clusters reconstructed / M02 vs cluster Energy, NLM>2",
4708 nptbins,ptmin,ptmax,200,0,0.2);
4709 fhAnglePairPrimPi0OverM02NLocMaxN->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
4710 fhAnglePairPrimPi0OverM02NLocMaxN->SetXTitle("E (GeV)");
4711 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMaxN) ;
4712
883411b2 4713 }
992b14a7 4714 }
29555e96 4715
4716 // Same as asymmetry ...
4717 if(fFillThetaStarHisto)
4718 {
4719 for(Int_t i = 0; i < n; i++)
4720 {
4721 for(Int_t j = 0; j < nMatched; j++)
4722 {
4723
4724 fhCosThStarNLocMax1[i][j] = new TH2F(Form("hCosThStarNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4725 Form("cos(#theta^{*}) split sub-clusters of cluster NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4726 nptbins,ptmin,ptmax,200,-1,1);
4727 fhCosThStarNLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
4728 fhCosThStarNLocMax1[i][j]->SetXTitle("E (GeV)");
4729 outputContainer->Add(fhCosThStarNLocMax1[i][j]) ;
4730
4731 fhCosThStarNLocMax2[i][j] = new TH2F(Form("hCosThStarNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4732 Form("cos(#theta^{*}) split sub-clusters of cluster NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4733 nptbins,ptmin,ptmax,200,-1,1);
4734 fhCosThStarNLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
4735 fhCosThStarNLocMax2[i][j]->SetXTitle("E (GeV)");
4736 outputContainer->Add(fhCosThStarNLocMax2[i][j]) ;
4737
4738 fhCosThStarNLocMaxN[i][j] = new TH2F(Form("hCosThStarNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4739 Form("cos(#theta^{*}) split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4740 nptbins,ptmin,ptmax,200,-1,1);
4741 fhCosThStarNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
4742 fhCosThStarNLocMaxN[i][j]->SetXTitle("E (GeV)");
4743 outputContainer->Add(fhCosThStarNLocMaxN[i][j]) ;
4744
c7e9a4e9 4745 if(asyOn || m02On)
29555e96 4746 {
4747 fhCosThStarAfterCutsNLocMax1[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4748 Form("cos(#theta^{*}) split sub-clusters of cluster NLM=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4749 nptbins,ptmin,ptmax,200,-1,1);
4750 fhCosThStarAfterCutsNLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
4751 fhCosThStarAfterCutsNLocMax1[i][j]->SetXTitle("E (GeV)");
4752 outputContainer->Add(fhCosThStarAfterCutsNLocMax1[i][j]) ;
4753
4754 fhCosThStarAfterCutsNLocMax2[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4755 Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4756 nptbins,ptmin,ptmax,200,-1,1);
4757 fhCosThStarAfterCutsNLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
4758 fhCosThStarAfterCutsNLocMax2[i][j]->SetXTitle("E (GeV)");
4759 outputContainer->Add(fhCosThStarAfterCutsNLocMax2[i][j]) ;
4760
4761 fhCosThStarAfterCutsNLocMaxN[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4762 Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4763 nptbins,ptmin,ptmax,200,-1,1);
4764 fhCosThStarAfterCutsNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
4765 fhCosThStarAfterCutsNLocMaxN[i][j]->SetXTitle("E (GeV)");
4766 outputContainer->Add(fhCosThStarAfterCutsNLocMaxN[i][j]) ;
4767
4768 }
4769
4770 fhCosThStarPi0NLocMax1[i][j] = new TH2F(Form("hCosThStarPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4771 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4772 nptbins,ptmin,ptmax,200,-1,1);
4773 fhCosThStarPi0NLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
4774 fhCosThStarPi0NLocMax1[i][j]->SetXTitle("E (GeV)");
4775 outputContainer->Add(fhCosThStarPi0NLocMax1[i][j]) ;
4776
4777 fhCosThStarPi0NLocMax2[i][j] = new TH2F(Form("hCosThStarPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4778 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4779 nptbins,ptmin,ptmax,200,-1,1);
4780 fhCosThStarPi0NLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
4781 fhCosThStarPi0NLocMax2[i][j]->SetXTitle("E (GeV)");
4782 outputContainer->Add(fhCosThStarPi0NLocMax2[i][j]) ;
4783
4784 fhCosThStarPi0NLocMaxN[i][j] = new TH2F(Form("hCosThStarPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4785 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4786 nptbins,ptmin,ptmax,200,-1,1);
4787 fhCosThStarPi0NLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
4788 fhCosThStarPi0NLocMaxN[i][j]->SetXTitle("E (GeV)");
4789 outputContainer->Add(fhCosThStarPi0NLocMaxN[i][j]) ;
4790
4791 }
4792 }
4793 }
4794
992b14a7 4795
8edbd100 4796 for(Int_t j = 0; j < nMatched; j++)
17f5b4b6 4797 {
4798 fhSplitEFractionvsAsyNLocMax1[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax1%s",sMatched[j].Data()),
4799 Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max = 1, E>12, %s",sMatched[j].Data()),
4800 100,-1,1,120,0,1.2);
4801 fhSplitEFractionvsAsyNLocMax1[j] ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})");
4802 fhSplitEFractionvsAsyNLocMax1[j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
4803 outputContainer->Add(fhSplitEFractionvsAsyNLocMax1[j]) ;
4804
4805 fhSplitEFractionvsAsyNLocMax2[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax2%s",sMatched[j].Data()),
4806 Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max = 2,E>12, %s",sMatched[j].Data()),
4807 100,-1,1,120,0,1.2);
4808 fhSplitEFractionvsAsyNLocMax2[j] ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})");
4809 fhSplitEFractionvsAsyNLocMax2[j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
4810 outputContainer->Add(fhSplitEFractionvsAsyNLocMax2[j]) ;
4811
4812 fhSplitEFractionvsAsyNLocMaxN[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMaxN%s",sMatched[j].Data()),
4813 Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max > 2, E>12, %s",sMatched[j].Data()),
4814 100,-1,1,120,0,1.2);
4815 fhSplitEFractionvsAsyNLocMaxN[j] ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})");
4816 fhSplitEFractionvsAsyNLocMaxN[j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
4817 outputContainer->Add(fhSplitEFractionvsAsyNLocMaxN[j]) ;
e671adc2 4818 }
9554fc65 4819
1253480f 4820
9554fc65 4821 fhClusterEtaPhiNLocMax1 = new TH2F
4822 ("hClusterEtaPhiNLocMax1","Neutral Clusters with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4823 fhClusterEtaPhiNLocMax1->SetYTitle("#phi (rad)");
4824 fhClusterEtaPhiNLocMax1->SetXTitle("#eta");
4825 outputContainer->Add(fhClusterEtaPhiNLocMax1) ;
1253480f 4826
9554fc65 4827 fhClusterEtaPhiNLocMax2 = new TH2F
4828 ("hClusterEtaPhiNLocMax2","Neutral Clusters with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4829 fhClusterEtaPhiNLocMax2->SetYTitle("#phi (rad)");
4830 fhClusterEtaPhiNLocMax2->SetXTitle("#eta");
4831 outputContainer->Add(fhClusterEtaPhiNLocMax2) ;
4832
4833 fhClusterEtaPhiNLocMaxN = new TH2F
4834 ("hClusterEtaPhiNLocMaxN","Neutral Clusters with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4835 fhClusterEtaPhiNLocMaxN->SetYTitle("#phi (rad)");
4836 fhClusterEtaPhiNLocMaxN->SetXTitle("#eta");
4837 outputContainer->Add(fhClusterEtaPhiNLocMaxN) ;
4838
4839 fhPi0EtaPhiNLocMax1 = new TH2F
4840 ("hPi0EtaPhiNLocMax1","Selected #pi^{0}'s with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4841 fhPi0EtaPhiNLocMax1->SetYTitle("#phi (rad)");
4842 fhPi0EtaPhiNLocMax1->SetXTitle("#eta");
4843 outputContainer->Add(fhPi0EtaPhiNLocMax1) ;
4844
4845 fhPi0EtaPhiNLocMax2 = new TH2F
4846 ("hPi0EtaPhiNLocMax2","Selected #pi^{0}'s with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4847 fhPi0EtaPhiNLocMax2->SetYTitle("#phi (rad)");
4848 fhPi0EtaPhiNLocMax2->SetXTitle("#eta");
4849 outputContainer->Add(fhPi0EtaPhiNLocMax2) ;
4850
4851 fhPi0EtaPhiNLocMaxN = new TH2F
4852 ("hPi0EtaPhiNLocMaxN","Selected #pi^{0}'s with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4853 fhPi0EtaPhiNLocMaxN->SetYTitle("#phi (rad)");
4854 fhPi0EtaPhiNLocMaxN->SetXTitle("#eta");
4855 outputContainer->Add(fhPi0EtaPhiNLocMaxN) ;
1253480f 4856
4857 if(fFillIdEtaHisto)
4858 {
4859 fhEtaEtaPhiNLocMax1 = new TH2F
4860 ("hEtaEtaPhiNLocMax1","Selected #eta's with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4861 fhEtaEtaPhiNLocMax1->SetYTitle("#phi (rad)");
4862 fhEtaEtaPhiNLocMax1->SetXTitle("#eta");
4863 outputContainer->Add(fhEtaEtaPhiNLocMax1) ;
4864
4865 fhEtaEtaPhiNLocMax2 = new TH2F
4866 ("hEtaEtaPhiNLocMax2","Selected #eta's with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4867 fhEtaEtaPhiNLocMax2->SetYTitle("#phi (rad)");
4868 fhEtaEtaPhiNLocMax2->SetXTitle("#eta");
4869 outputContainer->Add(fhEtaEtaPhiNLocMax2) ;
4870
4871 fhEtaEtaPhiNLocMaxN = new TH2F
4872 ("hEtaEtaPhiNLocMaxN","Selected #eta's with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4873 fhEtaEtaPhiNLocMaxN->SetYTitle("#phi (rad)");
4874 fhEtaEtaPhiNLocMaxN->SetXTitle("#eta");
4875 outputContainer->Add(fhEtaEtaPhiNLocMaxN) ;
4876 }
e671adc2 4877
dbe09c26 4878 if(fFillSSWeightHisto)
4879 {
dbe09c26 4880 for(Int_t nlm = 0; nlm < 3; nlm++)
4881 {
4882 fhPi0CellE[nlm] = new TH2F(Form("hPi0CellENLocMax%s",snlm[nlm].Data()),
4883 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E",snlm[nlm].Data()),
4884 nptbins,ptmin,ptmax, nptbins,ptmin,ptmax);
4885 fhPi0CellE[nlm]->SetYTitle("E_{cell}");
4886 fhPi0CellE[nlm]->SetXTitle("E_{cluster}");
4887 outputContainer->Add(fhPi0CellE[nlm]) ;
4888
4889 fhPi0CellEFrac[nlm] = new TH2F(Form("hPi0CellEFracNLocMax%s",snlm[nlm].Data()),
4890 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E / cluster E",snlm[nlm].Data()),
4891 nptbins,ptmin,ptmax, 100,0,1);
4892 fhPi0CellEFrac[nlm]->SetYTitle("E_{cell} / E_{cluster}");
4893 fhPi0CellEFrac[nlm]->SetXTitle("E_{cluster}");
4894 outputContainer->Add(fhPi0CellEFrac[nlm]) ;
4895
4896 fhPi0CellLogEFrac[nlm] = new TH2F(Form("hPi0CellLogEFracNLocMax%s",snlm[nlm].Data()),
1253480f 4897 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs Log(cell E / cluster E)",snlm[nlm].Data()),
4898 nptbins,ptmin,ptmax, 100,-10,0);
dbe09c26 4899 fhPi0CellLogEFrac[nlm]->SetYTitle("Log(E_{cell} / E_{cluster})");
4900 fhPi0CellLogEFrac[nlm]->SetXTitle("E_{cluster}");
4901 outputContainer->Add(fhPi0CellLogEFrac[nlm]) ;
1253480f 4902
dbe09c26 4903
19391b8c 4904 fhPi0CellEMaxEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMaxEMax2FracNLocMax%s",snlm[nlm].Data()),
1253480f 4905 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / 1st loc. max. E",snlm[nlm].Data()),
4906 nptbins,ptmin,ptmax, 100,0,1);
19391b8c 4907 fhPi0CellEMaxEMax2Frac[nlm]->SetYTitle("E_{Loc Max 2} / E_{Loc Max 1}");
4908 fhPi0CellEMaxEMax2Frac[nlm]->SetXTitle("E_{cluster}");
4909 outputContainer->Add(fhPi0CellEMaxEMax2Frac[nlm]) ;
4910
4911 fhPi0CellEMaxClusterFrac[nlm] = new TH2F(Form("hPi0CellEMaxClusterFracNLocMax%s",snlm[nlm].Data()),
1253480f 4912 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cluster",snlm[nlm].Data()),
4913 nptbins,ptmin,ptmax, 100,0,1);
19391b8c 4914 fhPi0CellEMaxClusterFrac[nlm]->SetYTitle("E_{Loc Max 1} / E_{cluster}");
4915 fhPi0CellEMaxClusterFrac[nlm]->SetXTitle("E_{cluster}");
4916 outputContainer->Add(fhPi0CellEMaxClusterFrac[nlm]) ;
1253480f 4917
19391b8c 4918 fhPi0CellEMax2ClusterFrac[nlm] = new TH2F(Form("hPi0CellEMax2ClusterFracNLocMax%s",snlm[nlm].Data()),
1253480f 4919 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cluster",snlm[nlm].Data()),
4920 nptbins,ptmin,ptmax, 100,0,1);
19391b8c 4921 fhPi0CellEMax2ClusterFrac[nlm]->SetYTitle("E_{Loc Max 2} / E_{cluster}");
4922 fhPi0CellEMax2ClusterFrac[nlm]->SetXTitle("E_{cluster}");
4923 outputContainer->Add(fhPi0CellEMax2ClusterFrac[nlm]) ;
4924
4925 fhPi0CellEMaxFrac[nlm] = new TH2F(Form("hPi0CellEMaxFracNLocMax%s",snlm[nlm].Data()),
1253480f 4926 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cell i",snlm[nlm].Data()),
4927 nptbins,ptmin,ptmax, 100,0,1);
8edbd100 4928 fhPi0CellEMaxFrac[nlm]->SetYTitle("E_{Loc Max 1} / E_{cell i}");
19391b8c 4929 fhPi0CellEMaxFrac[nlm]->SetXTitle("E_{cluster}");
4930 outputContainer->Add(fhPi0CellEMaxFrac[nlm]) ;
4931
4932 fhPi0CellEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMax2FracNLocMax%s",snlm[nlm].Data()),
1253480f 4933 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cell i",snlm[nlm].Data()),
4934 nptbins,ptmin,ptmax, 200,0,2);
19391b8c 4935 fhPi0CellEMax2Frac[nlm]->SetYTitle("E_{Loc Max 2} / E_{cell i}");
4936 fhPi0CellEMax2Frac[nlm]->SetXTitle("E_{cluster}");
4937 outputContainer->Add(fhPi0CellEMax2Frac[nlm]) ;
1253480f 4938
19391b8c 4939
dbe09c26 4940 for(Int_t i = 0; i < fSSWeightN; i++)
4941 {
4942 fhM02WeightPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_W%d",snlm[nlm].Data(),i),
1253480f 4943 Form("#lambda_{0}^{2} vs E, with W0 = %2.2f, for NLM = %s", fSSWeight[i], snlm[nlm].Data()),
dbe09c26 4944 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4945 fhM02WeightPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}");
4946 fhM02WeightPi0[nlm][i] ->SetXTitle("E (GeV)");
4947 outputContainer->Add(fhM02WeightPi0[nlm][i]) ;
4948 }
19391b8c 4949
4950 for(Int_t i = 0; i < fSSECellCutN; i++)
4951 {
4952 fhM02ECellCutPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_Ecell%d",snlm[nlm].Data(),i),
1253480f 4953 Form("#lambda_{0}^{2} vs E, with Ecell > %2.2f, for NLM = %s", fSSECellCut[i], snlm[nlm].Data()),
4954 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
19391b8c 4955 fhM02ECellCutPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}");
4956 fhM02ECellCutPi0[nlm][i] ->SetXTitle("E (GeV)");
4957 outputContainer->Add(fhM02ECellCutPi0[nlm][i]) ;
4958 }
1253480f 4959
dbe09c26 4960 }
4961 }
4962
a1fd1b69 4963 Int_t tdbins = GetHistogramRanges()->GetHistoDiffTimeBins() ; Float_t tdmax = GetHistogramRanges()->GetHistoDiffTimeMax(); Float_t tdmin = GetHistogramRanges()->GetHistoDiffTimeMin();
1253480f 4964
a1fd1b69 4965 fhPi0EPairDiffTimeNLM1 = new TH2F("hPi0EPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #pi, NLM=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
4966 fhPi0EPairDiffTimeNLM1->SetXTitle("E_{pair} (GeV)");
4967 fhPi0EPairDiffTimeNLM1->SetYTitle("#Delta t (ns)");
4968 outputContainer->Add(fhPi0EPairDiffTimeNLM1);
1253480f 4969
a1fd1b69 4970 fhPi0EPairDiffTimeNLM2 = new TH2F("hPi0EPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #pi, NLM=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
4971 fhPi0EPairDiffTimeNLM2->SetXTitle("E_{pair} (GeV)");
4972 fhPi0EPairDiffTimeNLM2->SetYTitle("#Delta t (ns)");
4973 outputContainer->Add(fhPi0EPairDiffTimeNLM2);
1253480f 4974
a1fd1b69 4975 fhPi0EPairDiffTimeNLMN = new TH2F("hPi0EPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #pi, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
4976 fhPi0EPairDiffTimeNLMN->SetXTitle("E_{pair} (GeV)");
4977 fhPi0EPairDiffTimeNLMN->SetYTitle("#Delta t (ns)");
4978 outputContainer->Add(fhPi0EPairDiffTimeNLMN);
a1fd1b69 4979
1253480f 4980 if(fFillIdEtaHisto)
4981 {
4982 fhEtaEPairDiffTimeNLM1 = new TH2F("hEtaEPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #eta, NLM=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
4983 fhEtaEPairDiffTimeNLM1->SetXTitle("E_{pair} (GeV)");
4984 fhEtaEPairDiffTimeNLM1->SetYTitle("#Delta t (ns)");
4985 outputContainer->Add(fhEtaEPairDiffTimeNLM1);
4986
4987 fhEtaEPairDiffTimeNLM2 = new TH2F("hEtaEPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #eta, NLM=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
4988 fhEtaEPairDiffTimeNLM2->SetXTitle("E_{pair} (GeV)");
4989 fhEtaEPairDiffTimeNLM2->SetYTitle("#Delta t (ns)");
4990 outputContainer->Add(fhEtaEPairDiffTimeNLM2);
4991
4992 fhEtaEPairDiffTimeNLMN = new TH2F("hEtaEPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #eta, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
4993 fhEtaEPairDiffTimeNLMN->SetXTitle("E_{pair} (GeV)");
4994 fhEtaEPairDiffTimeNLMN->SetYTitle("#Delta t (ns)");
4995 outputContainer->Add(fhEtaEPairDiffTimeNLMN);
4996 }
a1fd1b69 4997
4914e781 4998 if(fFillNCellHisto && IsDataMC())
4999 {
1253480f 5000
4914e781 5001 fhNCellMassEHighNLocMax1MCPi0 = new TH2F("hNCellMassEHighNLocMax1MCPi0","n cells vs mass for MC pi0, high energy, NLM=1",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5002 fhNCellMassEHighNLocMax1MCPi0->SetYTitle("M (GeV/c^{2})");
5003 fhNCellMassEHighNLocMax1MCPi0->SetXTitle("n cells");
5004 outputContainer->Add(fhNCellMassEHighNLocMax1MCPi0) ;
5005
5006 fhNCellMassELowNLocMax1MCPi0 = new TH2F("hNCellMassELowNLocMax1MCPi0","n cells vs mass for MC pi0, low energy, NLM=1",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5007 fhNCellMassELowNLocMax1MCPi0->SetYTitle("M (GeV/c^{2})");
5008 fhNCellMassELowNLocMax1MCPi0->SetXTitle("n cells");
5009 outputContainer->Add(fhNCellMassELowNLocMax1MCPi0) ;
1253480f 5010
4914e781 5011 fhNCellM02EHighNLocMax1MCPi0 = new TH2F("hNCellM02EHighNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5012 fhNCellM02EHighNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}");
5013 fhNCellM02EHighNLocMax1MCPi0->SetXTitle("n cells");
5014 outputContainer->Add(fhNCellM02EHighNLocMax1MCPi0) ;
5015
5016 fhNCellM02ELowNLocMax1MCPi0 = new TH2F("hNCellM02ELowNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5017 fhNCellM02ELowNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}");
5018 fhNCellM02ELowNLocMax1MCPi0->SetXTitle("n cells");
5019 outputContainer->Add(fhNCellM02ELowNLocMax1MCPi0) ;
1253480f 5020
4914e781 5021 fhNCellMassEHighNLocMax2MCPi0 = new TH2F("hNCellMassEHighNLocMax2MCPi0","n cells vs mass for MC pi0, high energy, NLM=2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5022 fhNCellMassEHighNLocMax2MCPi0->SetYTitle("M (GeV/c^{2})");
5023 fhNCellMassEHighNLocMax2MCPi0->SetXTitle("n cells");
5024 outputContainer->Add(fhNCellMassEHighNLocMax2MCPi0) ;
5025
5026 fhNCellMassELowNLocMax2MCPi0 = new TH2F("hNCellMassELowNLocMax2MCPi0","n cells vs mass for MC pi0, low energy, NLM=2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5027 fhNCellMassELowNLocMax2MCPi0->SetYTitle("M (GeV/c^{2})");
5028 fhNCellMassELowNLocMax2MCPi0->SetXTitle("n cells");
5029 outputContainer->Add(fhNCellMassELowNLocMax2MCPi0) ;
5030
5031 fhNCellM02EHighNLocMax2MCPi0 = new TH2F("hNCellM02EHighNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5032 fhNCellM02EHighNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}");
5033 fhNCellM02EHighNLocMax2MCPi0->SetXTitle("n cells");
5034 outputContainer->Add(fhNCellM02EHighNLocMax2MCPi0) ;
5035
5036 fhNCellM02ELowNLocMax2MCPi0 = new TH2F("hNCellM02ELowNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5037 fhNCellM02ELowNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}");
5038 fhNCellM02ELowNLocMax2MCPi0->SetXTitle("n cells");
5039 outputContainer->Add(fhNCellM02ELowNLocMax2MCPi0) ;
1253480f 5040
4914e781 5041 fhNCellMassEHighNLocMaxNMCPi0 = new TH2F("hNCellMassEHighNLocMaxNMCPi0","n cells vs mass for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5042 fhNCellMassEHighNLocMaxNMCPi0->SetYTitle("M (GeV/c^{2})");
5043 fhNCellMassEHighNLocMaxNMCPi0->SetXTitle("n cells");
5044 outputContainer->Add(fhNCellMassEHighNLocMaxNMCPi0) ;
5045
5046 fhNCellMassELowNLocMaxNMCPi0 = new TH2F("hNCellMassELowNLocMaxNMCPi0","n cells vs mass for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5047 fhNCellMassELowNLocMaxNMCPi0->SetYTitle("M (GeV/c^{2})");
5048 fhNCellMassELowNLocMaxNMCPi0->SetXTitle("n cells");
5049 outputContainer->Add(fhNCellMassELowNLocMaxNMCPi0) ;
5050
5051 fhNCellM02EHighNLocMaxNMCPi0 = new TH2F("hNCellM02EHighNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5052 fhNCellM02EHighNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}");
5053 fhNCellM02EHighNLocMaxNMCPi0->SetXTitle("n cells");
5054 outputContainer->Add(fhNCellM02EHighNLocMaxNMCPi0) ;
5055
5056 fhNCellM02ELowNLocMaxNMCPi0 = new TH2F("hNCellM02ELowNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5057 fhNCellM02ELowNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}");
5058 fhNCellM02ELowNLocMaxNMCPi0->SetXTitle("n cells");
5059 outputContainer->Add(fhNCellM02ELowNLocMaxNMCPi0) ;
5060
5061 }
b2e375c7 5062
5063 if(IsDataMC() && fFillMCOverlapHisto)
5064 {
5065 for(Int_t i = 1; i < n; i++)
5066 {
5067 for(Int_t j = 0; j < 3; j++)
5068 {
5069 fhMCENOverlaps[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%s",snlm[j].Data(),pname[i].Data()),
5070 Form("# overlaps vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5071 nptbins,ptmin,ptmax,10,0,10);
5072 fhMCENOverlaps[j][i] ->SetYTitle("# overlaps");
5073 fhMCENOverlaps[j][i] ->SetXTitle("E (GeV)");
5074 outputContainer->Add(fhMCENOverlaps[j][i]) ;
5075
5076 fhMCEM02Overlap0[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
5077 Form("Overlap 0, #lambda_{0}^{2} vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5078 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5079 fhMCEM02Overlap0[j][i] ->SetYTitle("#lambda_{0}^{2}");
5080 fhMCEM02Overlap0[j][i] ->SetXTitle("E (GeV)");
5081 outputContainer->Add(fhMCEM02Overlap0[j][i]) ;
5082
5083 fhMCEM02Overlap1[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5084 Form("Overlap 1, #lambda_{0}^{2} vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5085 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5086 fhMCEM02Overlap1[j][i] ->SetYTitle("#lambda_{0}^{2}");
5087 fhMCEM02Overlap1[j][i] ->SetXTitle("E (GeV)");
5088 outputContainer->Add(fhMCEM02Overlap1[j][i]) ;
5089
5090 fhMCEM02OverlapN[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5091 Form("Overlap N, #lambda_{0}^{2} vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()),
5092 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5093 fhMCEM02OverlapN[j][i] ->SetYTitle("#lambda_{0}^{2}");
5094 fhMCEM02OverlapN[j][i] ->SetXTitle("E (GeV)");
5095 outputContainer->Add(fhMCEM02OverlapN[j][i]) ;
5096
5097 fhMCEMassOverlap0[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
5098 Form("Overlap 0, Mass vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5099 nptbins,ptmin,ptmax,mbins,mmin,mmax);
5100 fhMCEMassOverlap0[j][i] ->SetYTitle("Mass (GeV/c^{2}");
5101 fhMCEMassOverlap0[j][i] ->SetXTitle("E (GeV)");
5102 outputContainer->Add(fhMCEMassOverlap0[j][i]) ;
5103
5104 fhMCEMassOverlap1[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5105 Form("Overalap 1, Mass vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5106 nptbins,ptmin,ptmax,mbins,mmin,mmax);
5107 fhMCEMassOverlap1[j][i] ->SetYTitle("Mass (GeV/c^{2}");
5108 fhMCEMassOverlap1[j][i] ->SetXTitle("E (GeV)");
5109 outputContainer->Add(fhMCEMassOverlap1[j][i]) ;
5110
5111 fhMCEMassOverlapN[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5112 Form("Overlap N, Mass vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()),
5113 nptbins,ptmin,ptmax,mbins,mmin,mmax);
5114 fhMCEMassOverlapN[j][i] ->SetYTitle("Mass (GeV/c^{2})");
5115 fhMCEMassOverlapN[j][i] ->SetXTitle("E (GeV)");
5116 outputContainer->Add(fhMCEMassOverlapN[j][i]) ;
4914e781 5117
5118 fhMCEAsymOverlap0[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
5119 Form("Overlap 0, Asymmetry vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5120 nptbins,ptmin,ptmax,100,0,1);
5121 fhMCEAsymOverlap0[j][i] ->SetYTitle("|A|");
5122 fhMCEAsymOverlap0[j][i] ->SetXTitle("E (GeV)");
5123 outputContainer->Add(fhMCEAsymOverlap0[j][i]) ;
5124
5125 fhMCEAsymOverlap1[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5126 Form("Overalap 1, Asymmetry vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5127 nptbins,ptmin,ptmax,100,0,1);
5128 fhMCEAsymOverlap1[j][i] ->SetYTitle("|A|");
5129 fhMCEAsymOverlap1[j][i] ->SetXTitle("E (GeV)");
5130 outputContainer->Add(fhMCEAsymOverlap1[j][i]) ;
5131
5132 fhMCEAsymOverlapN[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5133 Form("Overlap N, Asymmetry vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()),
5134 nptbins,ptmin,ptmax,100,0,1);
5135 fhMCEAsymOverlapN[j][i] ->SetYTitle("|A|");
5136 fhMCEAsymOverlapN[j][i] ->SetXTitle("E (GeV)");
5137 outputContainer->Add(fhMCEAsymOverlapN[j][i]) ;
74e3eb22 5138
5139
cb99fa55 5140 if(fFillNCellHisto)
5141 {
5142 fhMCENCellOverlap0[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
5143 Form("Overlap 0, n cells vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5144 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
5145 fhMCENCellOverlap0[j][i] ->SetYTitle("n cells");
5146 fhMCENCellOverlap0[j][i] ->SetXTitle("E (GeV)");
5147 outputContainer->Add(fhMCENCellOverlap0[j][i]) ;
5148
5149 fhMCENCellOverlap1[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5150 Form("Overalap 1, n cells vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5151 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
5152 fhMCENCellOverlap1[j][i] ->SetYTitle("n cells");
5153 fhMCENCellOverlap1[j][i] ->SetXTitle("E (GeV)");
5154 outputContainer->Add(fhMCENCellOverlap1[j][i]) ;
5155
5156 fhMCENCellOverlapN[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5157 Form("Overlap N, n cells vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()),
5158 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
5159 fhMCENCellOverlapN[j][i] ->SetYTitle("n cells");
5160 fhMCENCellOverlapN[j][i] ->SetXTitle("E (GeV)");
5161 outputContainer->Add(fhMCENCellOverlapN[j][i]) ;
5162 }
4914e781 5163
5164 fhMCEEpriOverlap0[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
5165 Form("Overlap 0, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5166 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
5167 fhMCEEpriOverlap0[j][i] ->SetYTitle("E_{gen} (GeV)");
5168 fhMCEEpriOverlap0[j][i] ->SetXTitle("E_{reco} (GeV)");
5169 outputContainer->Add(fhMCEEpriOverlap0[j][i]) ;
5170
5171 fhMCEEpriOverlap1[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5172 Form("Overalap 1, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5173 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
5174 fhMCEEpriOverlap1[j][i] ->SetYTitle("E_{gen} (GeV)");
5175 fhMCEEpriOverlap1[j][i] ->SetXTitle("E_{reco} (GeV)");
5176 outputContainer->Add(fhMCEEpriOverlap1[j][i]) ;
5177
5178 fhMCEEpriOverlapN[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5179 Form("Overlap N, E reco vs E prim for NLM=%s %s",snlm[j].Data(),ptype[i].Data()),
5180 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
5181 fhMCEEpriOverlapN[j][i] ->SetYTitle("E_{gen} (GeV)");
5182 fhMCEEpriOverlapN[j][i] ->SetXTitle("E_{reco} (GeV)");
5183 outputContainer->Add(fhMCEEpriOverlapN[j][i]) ;
1253480f 5184
4914e781 5185
cc909e6f 5186 fhMCEEpriOverlap0IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap0IdPi0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
5187 Form("Overlap 0, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5188 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
5189 fhMCEEpriOverlap0IdPi0[j][i] ->SetYTitle("E_{gen} (GeV)");
5190 fhMCEEpriOverlap0IdPi0[j][i] ->SetXTitle("E_{reco} (GeV)");
5191 outputContainer->Add(fhMCEEpriOverlap0IdPi0[j][i]) ;
5192
5193 fhMCEEpriOverlap1IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap1IdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5194 Form("Overalap 1, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5195 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
5196 fhMCEEpriOverlap1IdPi0[j][i] ->SetYTitle("E_{gen} (GeV)");
5197 fhMCEEpriOverlap1IdPi0[j][i] ->SetXTitle("E_{reco} (GeV)");
5198 outputContainer->Add(fhMCEEpriOverlap1IdPi0[j][i]) ;
5199
5200 fhMCEEpriOverlapNIdPi0[j][i] = new TH2F(Form("hMCEEpriOverlapNIdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
5201 Form("Overlap N, E reco vs E prim for NLM=%s %s",snlm[j].Data(),ptype[i].Data()),
5202 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
5203 fhMCEEpriOverlapNIdPi0[j][i] ->SetYTitle("E_{gen} (GeV)");
5204 fhMCEEpriOverlapNIdPi0[j][i] ->SetXTitle("E_{reco} (GeV)");
5205 outputContainer->Add(fhMCEEpriOverlapNIdPi0[j][i]) ;
5206
5207
83351853 5208 fhMCESplitEFracOverlap0[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
1253480f 5209 Form("Overlap 0, SplitEFrac vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5210 nptbins,ptmin,ptmax,120,0,1.2);
83351853 5211 fhMCESplitEFracOverlap0[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
5212 fhMCESplitEFracOverlap0[j][i] ->SetXTitle("E (GeV)");
5213 outputContainer->Add(fhMCESplitEFracOverlap0[j][i]) ;
5214
5215 fhMCESplitEFracOverlap1[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
1253480f 5216 Form("Overalap 1, SplitEFrac vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5217 nptbins,ptmin,ptmax,120,0,1.2);
83351853 5218 fhMCESplitEFracOverlap1[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
5219 fhMCESplitEFracOverlap1[j][i] ->SetXTitle("E (GeV)");
5220 outputContainer->Add(fhMCESplitEFracOverlap1[j][i]) ;
5221
5222 fhMCESplitEFracOverlapN[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
1253480f 5223 Form("Overlap N, SplitEFrac vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()),
5224 nptbins,ptmin,ptmax,120,0,1.2);
83351853 5225 fhMCESplitEFracOverlapN[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
5226 fhMCESplitEFracOverlapN[j][i] ->SetXTitle("E (GeV)");
5227 outputContainer->Add(fhMCESplitEFracOverlapN[j][i]) ;
b2e375c7 5228
5229 if(i < 5)
5230 {
5231 fhMCPi0MassM02Overlap0[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%d",snlm[j].Data(),i-1),
be894c1d 5232 Form("Overlap 0, Mass vs #lambda_{0}^{2}, NLM=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5233 ssbins,ssmin,ssmax,mbins,mmin,mmax);
b2e375c7 5234 fhMCPi0MassM02Overlap0[j][i-1]->SetYTitle("M (GeV/c^{2})");
5235 fhMCPi0MassM02Overlap0[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5236 outputContainer->Add(fhMCPi0MassM02Overlap0[j][i-1]) ;
5237
5238 fhMCPi0MassM02Overlap1[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%d",snlm[j].Data(),i-1),
be894c1d 5239 Form("Overlap 1, Mass vs #lambda_{0}^{2}, NLM=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5240 ssbins,ssmin,ssmax,mbins,mmin,mmax);
b2e375c7 5241 fhMCPi0MassM02Overlap1[j][i-1]->SetYTitle("M (GeV/c^{2})");
5242 fhMCPi0MassM02Overlap1[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5243 outputContainer->Add(fhMCPi0MassM02Overlap1[j][i-1]) ;
5244
5245 fhMCPi0MassM02OverlapN[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%d",snlm[j].Data(),i-1),
be894c1d 5246 Form("Overlap N, Mass vs #lambda_{0}^{2}, NLM=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5247 ssbins,ssmin,ssmax,mbins,mmin,mmax);
b2e375c7 5248 fhMCPi0MassM02OverlapN[j][i-1]->SetYTitle("M (GeV/c^{2})");
5249 fhMCPi0MassM02OverlapN[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5250 outputContainer->Add(fhMCPi0MassM02OverlapN[j][i-1]) ;
5251 }
5252
5253 if(fFillTMHisto)
5254 {
5255 fhMCENOverlapsMatch[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
5256 Form("# overlaps vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()),
5257 nptbins,ptmin,ptmax,10,0,10);
5258 fhMCENOverlapsMatch[j][i] ->SetYTitle("# overlaps");
5259 fhMCENOverlapsMatch[j][i] ->SetXTitle("E (GeV)");
5260 outputContainer->Add(fhMCENOverlapsMatch[j][i]) ;
5261
5262 fhMCEM02Overlap0Match[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
5263 Form("#lambda_{0}^{2} vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5264 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5265 fhMCEM02Overlap0Match[j][i] ->SetYTitle("#lambda_{0}^{2}");
5266 fhMCEM02Overlap0Match[j][i] ->SetXTitle("E (GeV)");
5267 outputContainer->Add(fhMCEM02Overlap0Match[j][i]) ;
5268
5269 fhMCEM02Overlap1Match[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
5270 Form("#lambda_{0}^{2} vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5271 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5272 fhMCEM02Overlap1Match[j][i] ->SetYTitle("#lambda_{0}^{2}");
5273 fhMCEM02Overlap1Match[j][i] ->SetXTitle("E (GeV)");
5274 outputContainer->Add(fhMCEM02Overlap1Match[j][i]) ;
5275
5276 fhMCEM02OverlapNMatch[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
5277 Form("#lambda_{0}^{2} vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5278 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5279 fhMCEM02OverlapNMatch[j][i] ->SetYTitle("#lambda_{0}^{2}");
5280 fhMCEM02OverlapNMatch[j][i] ->SetXTitle("E (GeV)");
5281 outputContainer->Add(fhMCEM02OverlapNMatch[j][i]) ;
5282
5283 fhMCEMassOverlap0Match[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
5284 Form("Mass vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5285 nptbins,ptmin,ptmax,mbins,mmin,mmax);
5286 fhMCEMassOverlap0Match[j][i] ->SetYTitle("Mass (GeV/c^{2}");
5287 fhMCEMassOverlap0Match[j][i] ->SetXTitle("E (GeV)");
5288 outputContainer->Add(fhMCEMassOverlap0Match[j][i]) ;
5289
5290 fhMCEMassOverlap1Match[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
5291 Form("Mass vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5292 nptbins,ptmin,ptmax,mbins,mmin,mmax);
5293 fhMCEMassOverlap1Match[j][i] ->SetYTitle("Mass (GeV/c^{2}");
5294 fhMCEMassOverlap1Match[j][i] ->SetXTitle("E (GeV)");
5295 outputContainer->Add(fhMCEMassOverlap1Match[j][i]) ;
5296
5297 fhMCEMassOverlapNMatch[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
5298 Form("Mass vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5299 nptbins,ptmin,ptmax,mbins,mmin,mmax);
5300 fhMCEMassOverlapNMatch[j][i] ->SetYTitle("Mass (GeV/c^{2}");
5301 fhMCEMassOverlapNMatch[j][i] ->SetXTitle("E (GeV)");
5302 outputContainer->Add(fhMCEMassOverlapNMatch[j][i]) ;
5303
4914e781 5304
5305 fhMCEAsymOverlap0Match[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
1253480f 5306 Form("Overlap 0, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5307 nptbins,ptmin,ptmax,100,0,1);
4914e781 5308 fhMCEAsymOverlap0Match[j][i] ->SetYTitle("|A|");
5309 fhMCEAsymOverlap0Match[j][i] ->SetXTitle("E (GeV)");
5310 outputContainer->Add(fhMCEAsymOverlap0Match[j][i]) ;
5311
5312 fhMCEAsymOverlap1Match[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
1253480f 5313 Form("Overalap 1, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5314 nptbins,ptmin,ptmax,100,0,1);
4914e781 5315 fhMCEAsymOverlap1Match[j][i] ->SetYTitle("|A|");
5316 fhMCEAsymOverlap1Match[j][i] ->SetXTitle("E (GeV)");
5317 outputContainer->Add(fhMCEAsymOverlap1Match[j][i]) ;
5318
5319 fhMCEAsymOverlapNMatch[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
1253480f 5320 Form("Overlap N, Asymmetry vs E for NLM=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5321 nptbins,ptmin,ptmax,100,0,1);
4914e781 5322 fhMCEAsymOverlapNMatch[j][i] ->SetYTitle("|A|");
5323 fhMCEAsymOverlapNMatch[j][i] ->SetXTitle("E (GeV)");
5324 outputContainer->Add(fhMCEAsymOverlapNMatch[j][i]) ;
74e3eb22 5325
5326
5327 fhMCENCellOverlap0Match[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
5328 Form("Overlap 0, n cells vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5329 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
5330 fhMCENCellOverlap0Match[j][i] ->SetYTitle("n cells");
5331 fhMCENCellOverlap0Match[j][i] ->SetXTitle("E (GeV)");
5332 outputContainer->Add(fhMCENCellOverlap0Match[j][i]) ;
1253480f 5333
74e3eb22 5334 fhMCENCellOverlap1Match[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
5335 Form("Overalap 1, n cell vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5336 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
5337 fhMCENCellOverlap1Match[j][i] ->SetYTitle("n cells");
5338 fhMCENCellOverlap1Match[j][i] ->SetXTitle("E (GeV)");
5339 outputContainer->Add(fhMCENCellOverlap1Match[j][i]) ;
4914e781 5340
74e3eb22 5341 fhMCENCellOverlapNMatch[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
5342 Form("Overlap N, n cell vs E for NLM=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5343 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
5344 fhMCENCellOverlapNMatch[j][i] ->SetYTitle("n cells");
5345 fhMCENCellOverlapNMatch[j][i] ->SetXTitle("E (GeV)");
5346 outputContainer->Add(fhMCENCellOverlapNMatch[j][i]) ;
5347
4914e781 5348 fhMCEEpriOverlap0Match[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
5349 Form("Overlap 0, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5350 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
5351 fhMCEEpriOverlap0Match[j][i] ->SetYTitle("E_{gen} (GeV)");
5352 fhMCEEpriOverlap0Match[j][i] ->SetXTitle("E_{reco} (GeV)");
5353 outputContainer->Add(fhMCEEpriOverlap0Match[j][i]) ;
5354
5355 fhMCEEpriOverlap1Match[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
5356 Form("Overalap 1, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5357 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
5358 fhMCEEpriOverlap1Match[j][i] ->SetYTitle("E_{gen} (GeV)");
5359 fhMCEEpriOverlap1Match[j][i] ->SetXTitle("E_{reco} (GeV)");
5360 outputContainer->Add(fhMCEEpriOverlap1Match[j][i]) ;
5361
cc909e6f 5362 fhMCEEpriOverlapNMatch[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
4914e781 5363 Form("Overlap N, Asymmetry vs E for NLM=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5364 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
5365 fhMCEEpriOverlapNMatch[j][i] ->SetYTitle("E_{gen} (GeV)");
5366 fhMCEEpriOverlapNMatch[j][i] ->SetXTitle("E_{reco} (GeV)");
5367 outputContainer->Add(fhMCEEpriOverlapNMatch[j][i]) ;
1253480f 5368
4914e781 5369
83351853 5370 fhMCESplitEFracOverlap0Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
1253480f 5371 Form("SplitEFrac vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5372 nptbins,ptmin,ptmax,120,0,1.2);
83351853 5373 fhMCESplitEFracOverlap0Match[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
5374 fhMCESplitEFracOverlap0Match[j][i] ->SetXTitle("E (GeV)");
5375 outputContainer->Add(fhMCESplitEFracOverlap0Match[j][i]) ;
5376
5377 fhMCESplitEFracOverlap1Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
1253480f 5378 Form("SplitEFrac vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5379 nptbins,ptmin,ptmax,120,0,1.2);
83351853 5380 fhMCESplitEFracOverlap1Match[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
5381 fhMCESplitEFracOverlap1Match[j][i] ->SetXTitle("E (GeV)");
5382 outputContainer->Add(fhMCESplitEFracOverlap1Match[j][i]) ;
5383
5384 fhMCESplitEFracOverlapNMatch[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
1253480f 5385 Form("SplitEFrac vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
5386 nptbins,ptmin,ptmax,120,0,1.2);
83351853 5387 fhMCESplitEFracOverlapNMatch[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
5388 fhMCESplitEFracOverlapNMatch[j][i] ->SetXTitle("E (GeV)");
5389 outputContainer->Add(fhMCESplitEFracOverlapNMatch[j][i]) ;
1253480f 5390
83351853 5391
b2e375c7 5392 if(i < 5)
5393 {
5394 fhMCPi0MassM02Overlap0Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
be894c1d 5395 Form("Overlap 0, Mass vs #lambda_{0}^{2}, NLM=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5396 ssbins,ssmin,ssmax,mbins,mmin,mmax);
b2e375c7 5397 fhMCPi0MassM02Overlap0Match[j][i-1]->SetYTitle("M (GeV/c^{2})");
5398 fhMCPi0MassM02Overlap0Match[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5399 outputContainer->Add(fhMCPi0MassM02Overlap0Match[j][i-1]) ;
5400
5401 fhMCPi0MassM02Overlap1Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
be894c1d 5402 Form("Overlap 1, Mass vs #lambda_{0}^{2}, NLM=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5403 ssbins,ssmin,ssmax,mbins,mmin,mmax);
b2e375c7 5404 fhMCPi0MassM02Overlap1Match[j][i-1]->SetYTitle("M (GeV/c^{2})");
5405 fhMCPi0MassM02Overlap1Match[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5406 outputContainer->Add(fhMCPi0MassM02Overlap1Match[j][i-1]) ;
5407
5408 fhMCPi0MassM02OverlapNMatch[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
be894c1d 5409 Form("Overlap N, Mass vs #lambda_{0}^{2}, NLM=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5410 ssbins,ssmin,ssmax,mbins,mmin,mmax);
b2e375c7 5411 fhMCPi0MassM02OverlapNMatch[j][i-1]->SetYTitle("M (GeV/c^{2})");
5412 fhMCPi0MassM02OverlapNMatch[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5413 outputContainer->Add(fhMCPi0MassM02OverlapNMatch[j][i-1]) ;
5414
5415 }
5416
5417 }
5418 }
5419 }
5420
5421 fhMCPi0HighNLMPair = new TH2F("hMCPi0HighNLMPair","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5422 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5423 fhMCPi0HighNLMPair ->SetYTitle("N maxima");
5424 fhMCPi0HighNLMPair ->SetXTitle("E (GeV)");
5425 outputContainer->Add(fhMCPi0HighNLMPair) ;
5426
5427 fhMCPi0LowNLMPair = new TH2F("hMCPi0LowNLMPair","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5428 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5429 fhMCPi0LowNLMPair ->SetYTitle("N maxima");
5430 fhMCPi0LowNLMPair ->SetXTitle("E (GeV)");
5431 outputContainer->Add(fhMCPi0LowNLMPair) ;
5432
5433 fhMCPi0AnyNLMPair = new TH2F("hMCPi0AnyNLMPair","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5434 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5435 fhMCPi0AnyNLMPair ->SetYTitle("N maxima");
5436 fhMCPi0AnyNLMPair ->SetXTitle("E (GeV)");
5437 outputContainer->Add(fhMCPi0AnyNLMPair) ;
5438
5439 fhMCPi0NoneNLMPair = new TH2F("hMCPi0NoneNLMPair","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5440 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5441 fhMCPi0NoneNLMPair ->SetYTitle("N maxima");
5442 fhMCPi0NoneNLMPair ->SetXTitle("E (GeV)");
5443 outputContainer->Add(fhMCPi0NoneNLMPair) ;
1253480f 5444
b2e375c7 5445
5446 fhMCPi0HighNLMPairNoMCMatch = new TH2F("hMCPi0HighNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
1253480f 5447 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
b2e375c7 5448 fhMCPi0HighNLMPairNoMCMatch ->SetYTitle("N maxima");
5449 fhMCPi0HighNLMPairNoMCMatch ->SetXTitle("E (GeV)");
5450 outputContainer->Add(fhMCPi0HighNLMPairNoMCMatch) ;
5451
5452 fhMCPi0LowNLMPairNoMCMatch = new TH2F("hMCPi0LowNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
1253480f 5453 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
b2e375c7 5454 fhMCPi0LowNLMPairNoMCMatch ->SetYTitle("N maxima");
5455 fhMCPi0LowNLMPairNoMCMatch ->SetXTitle("E (GeV)");
5456 outputContainer->Add(fhMCPi0LowNLMPairNoMCMatch) ;
5457
5458 fhMCPi0AnyNLMPairNoMCMatch = new TH2F("hMCPi0AnyNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
1253480f 5459 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
b2e375c7 5460 fhMCPi0AnyNLMPairNoMCMatch ->SetYTitle("N maxima");
5461 fhMCPi0AnyNLMPairNoMCMatch ->SetXTitle("E (GeV)");
5462 outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatch) ;
5463
5464 fhMCPi0NoneNLMPairNoMCMatch = new TH2F("hMCPi0NoneNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, no NLM pair are decays",
1253480f 5465 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
b2e375c7 5466 fhMCPi0NoneNLMPairNoMCMatch ->SetYTitle("N maxima");
5467 fhMCPi0NoneNLMPairNoMCMatch ->SetXTitle("E (GeV)");
5468 outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatch) ;
1253480f 5469
b2e375c7 5470
36769d30 5471 fhMCPi0HighNLMPairOverlap = new TH2F("hMCPi0HighNLMPairOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5472 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5473 fhMCPi0HighNLMPairOverlap ->SetYTitle("N maxima");
5474 fhMCPi0HighNLMPairOverlap ->SetXTitle("E (GeV)");
5475 outputContainer->Add(fhMCPi0HighNLMPairOverlap) ;
5476
5477 fhMCPi0LowNLMPairOverlap = new TH2F("hMCPi0LowNLMPairOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5478 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5479 fhMCPi0LowNLMPairOverlap ->SetYTitle("N maxima");
5480 fhMCPi0LowNLMPairOverlap ->SetXTitle("E (GeV)");
5481 outputContainer->Add(fhMCPi0LowNLMPairOverlap) ;
5482
5483 fhMCPi0AnyNLMPairOverlap = new TH2F("hMCPi0AnyNLMPairOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5484 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5485 fhMCPi0AnyNLMPairOverlap ->SetYTitle("N maxima");
5486 fhMCPi0AnyNLMPairOverlap ->SetXTitle("E (GeV)");
5487 outputContainer->Add(fhMCPi0AnyNLMPairOverlap) ;
5488
5489 fhMCPi0NoneNLMPairOverlap = new TH2F("hMCPi0NoneNLMPairOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5490 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5491 fhMCPi0NoneNLMPairOverlap ->SetYTitle("N maxima");
5492 fhMCPi0NoneNLMPairOverlap ->SetXTitle("E (GeV)");
5493 outputContainer->Add(fhMCPi0NoneNLMPairOverlap) ;
5494
5495 fhMCPi0HighNLMPairNoMCMatchOverlap = new TH2F("hMCPi0HighNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5496 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5497 fhMCPi0HighNLMPairNoMCMatchOverlap ->SetYTitle("N maxima");
5498 fhMCPi0HighNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)");
5499 outputContainer->Add(fhMCPi0HighNLMPairNoMCMatchOverlap) ;
5500
5501 fhMCPi0LowNLMPairNoMCMatchOverlap = new TH2F("hMCPi0LowNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5502 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5503 fhMCPi0LowNLMPairNoMCMatchOverlap ->SetYTitle("N maxima");
5504 fhMCPi0LowNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)");
5505 outputContainer->Add(fhMCPi0LowNLMPairNoMCMatchOverlap) ;
5506
5507 fhMCPi0AnyNLMPairNoMCMatchOverlap = new TH2F("hMCPi0AnyNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5508 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5509 fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetYTitle("N maxima");
5510 fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)");
5511 outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatchOverlap) ;
5512
5513 fhMCPi0NoneNLMPairNoMCMatchOverlap = new TH2F("hMCPi0NoneNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5514 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5515 fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetYTitle("N maxima");
5516 fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)");
5517 outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatchOverlap) ;
b583134f 5518
1253480f 5519
36769d30 5520 fhMCPi0DecayPhotonHitHighLM = new TH2F("hMCPi0DecayPhotonHitHighLM","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima",
83351853 5521 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5522 fhMCPi0DecayPhotonHitHighLM ->SetYTitle("N maxima");
5523 fhMCPi0DecayPhotonHitHighLM ->SetXTitle("E (GeV)");
5524 outputContainer->Add(fhMCPi0DecayPhotonHitHighLM ) ;
5525
36769d30 5526 fhMCPi0DecayPhotonAdjHighLM = new TH2F("hMCPi0DecayPhotonAdjHighLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima",
1253480f 5527 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
83351853 5528 fhMCPi0DecayPhotonAdjHighLM ->SetYTitle("N maxima");
5529 fhMCPi0DecayPhotonAdjHighLM ->SetXTitle("E (GeV)");
5530 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLM ) ;
1253480f 5531
36769d30 5532 fhMCPi0DecayPhotonHitOtherLM = new TH2F("hMCPi0DecayPhotonHitOtherLM","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima",
1253480f 5533 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
83351853 5534 fhMCPi0DecayPhotonHitOtherLM ->SetYTitle("N maxima");
5535 fhMCPi0DecayPhotonHitOtherLM ->SetXTitle("E (GeV)");
5536 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLM ) ;
5537
36769d30 5538 fhMCPi0DecayPhotonAdjOtherLM = new TH2F("hMCPi0DecayPhotonAdjOtherLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima",
1253480f 5539 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
83351853 5540 fhMCPi0DecayPhotonAdjOtherLM ->SetYTitle("N maxima");
5541 fhMCPi0DecayPhotonAdjOtherLM ->SetXTitle("E (GeV)");
5542 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLM ) ;
1253480f 5543
36769d30 5544 fhMCPi0DecayPhotonAdjacent = new TH2F("hMCPi0DecayPhotonAdjacent","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells",
5545 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5546 fhMCPi0DecayPhotonAdjacent ->SetYTitle("N maxima");
5547 fhMCPi0DecayPhotonAdjacent ->SetXTitle("E (GeV)");
5548 outputContainer->Add(fhMCPi0DecayPhotonAdjacent ) ;
5549
5550 fhMCPi0DecayPhotonHitNoLM = new TH2F("hMCPi0DecayPhotonHitNoLM","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima",
5551 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
83351853 5552 fhMCPi0DecayPhotonHitNoLM ->SetYTitle("N maxima");
5553 fhMCPi0DecayPhotonHitNoLM ->SetXTitle("E (GeV)");
5554 outputContainer->Add(fhMCPi0DecayPhotonHitNoLM ) ;
5555
36769d30 5556
5557 fhMCPi0DecayPhotonHitHighLMOverlap = new TH2F("hMCPi0DecayPhotonHitHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima, there was an overlap",
5558 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5559 fhMCPi0DecayPhotonHitHighLMOverlap ->SetYTitle("N maxima");
5560 fhMCPi0DecayPhotonHitHighLMOverlap ->SetXTitle("E (GeV)");
5561 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlap ) ;
5562
5563 fhMCPi0DecayPhotonAdjHighLMOverlap = new TH2F("hMCPi0DecayPhotonAdjHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima, there was an overlap",
5564 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5565 fhMCPi0DecayPhotonAdjHighLMOverlap ->SetYTitle("N maxima");
5566 fhMCPi0DecayPhotonAdjHighLMOverlap ->SetXTitle("E (GeV)");
5567 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlap ) ;
5568
5569 fhMCPi0DecayPhotonHitOtherLMOverlap = new TH2F("hMCPi0DecayPhotonHitOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima, there was an overlap",
5570 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5571 fhMCPi0DecayPhotonHitOtherLMOverlap ->SetYTitle("N maxima");
5572 fhMCPi0DecayPhotonHitOtherLMOverlap ->SetXTitle("E (GeV)");
5573 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlap ) ;
5574
5575 fhMCPi0DecayPhotonAdjOtherLMOverlap = new TH2F("hMCPi0DecayPhotonAdjOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",
5576 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5577 fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetYTitle("N maxima");
5578 fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetXTitle("E (GeV)");
5579 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlap ) ;
5580
5581 fhMCPi0DecayPhotonAdjacentOverlap = new TH2F("hMCPi0DecayPhotonAdjacentOverlap","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells, there was an overlap",
5582 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5583 fhMCPi0DecayPhotonAdjacentOverlap ->SetYTitle("N maxima");
5584 fhMCPi0DecayPhotonAdjacentOverlap ->SetXTitle("E (GeV)");
5585 outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlap ) ;
5586
5587 fhMCPi0DecayPhotonHitNoLMOverlap = new TH2F("hMCPi0DecayPhotonHitNoLMOverlap","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima, there was an overlap",
5588 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
5589 fhMCPi0DecayPhotonHitNoLMOverlap ->SetYTitle("N maxima");
5590 fhMCPi0DecayPhotonHitNoLMOverlap ->SetXTitle("E (GeV)");
5591 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlap ) ;
5592
1253480f 5593
b583134f 5594 for(Int_t nlm = 0; nlm < 3; nlm++)
5595 {
5596 fhMCPi0DecayPhotonHitHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sMass",snlm[nlm].Data()),
5597 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 5598 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5599 fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5600 fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetXTitle("E (GeV)");
5601 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMMass[nlm] ) ;
5602
5603 fhMCPi0DecayPhotonAdjHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sMass",snlm[nlm].Data()),
5604 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5605 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5606 fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5607 fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetXTitle("E (GeV)");
5608 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMMass[nlm] ) ;
5609
5610 fhMCPi0DecayPhotonHitOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sMass",snlm[nlm].Data()),
5611 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5612 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5613 fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5614 fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetXTitle("E (GeV)");
5615 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMMass[nlm] ) ;
5616
5617 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sMass",snlm[nlm].Data()),
5618 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5619 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5620 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5621 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetXTitle("E (GeV)");
5622 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ) ;
5623
5624 fhMCPi0DecayPhotonAdjacentMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sMass",snlm[nlm].Data()),
5625 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit adjacent cells",snlm[nlm].Data()),
29555e96 5626 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5627 fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5628 fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetXTitle("E (GeV)");
5629 outputContainer->Add(fhMCPi0DecayPhotonAdjacentMass[nlm] ) ;
5630
5631 fhMCPi0DecayPhotonHitNoLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sMass",snlm[nlm].Data()),
5632 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon do not hit Local Maxima",snlm[nlm].Data()),
29555e96 5633 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5634 fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5635 fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetXTitle("E (GeV)");
5636 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMMass[nlm] ) ;
5637
5638
5639 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapMass",snlm[nlm].Data()),
5640 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5641 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5642 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5643 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetXTitle("E (GeV)");
5644 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm]) ;
5645
5646 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapMass",snlm[nlm].Data()),
5647 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5648 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5649 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5650 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetXTitle("E (GeV)");
5651 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm]) ;
5652
5653 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapMass",snlm[nlm].Data()),
5654 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5655 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5656 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5657 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetXTitle("E (GeV)");
5658 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm]) ;
5659
5660 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapMass",snlm[nlm].Data()),
5661 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5662 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5663 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5664 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetXTitle("E (GeV)");
5665 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm]) ;
5666
5667 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sOverlapMass",snlm[nlm].Data()),
5668 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit adjacent cells, there was an overlap",snlm[nlm].Data()),
29555e96 5669 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5670 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5671 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetXTitle("E (GeV)");
5672 outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlapMass[nlm]) ;
5673
5674 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sOverlapMass",snlm[nlm].Data()),
5675 Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon do not hit Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5676 nptbins,ptmin,ptmax,mbins,mmin,mmax);
b583134f 5677 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})");
5678 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetXTitle("E (GeV)");
5679 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm]) ;
29555e96 5680
b583134f 5681 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1",snlm[nlm].Data()),
29555e96 5682 Form("(E_{reco}-E_{gen})/E_{gen} vs E pi0 for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
cb99fa55 5683 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5684 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5685 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5686 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ) ;
5687
5688 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1",snlm[nlm].Data()),
29555e96 5689 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
5690 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
cb99fa55 5691 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5692 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetXTitle("E pi0 (GeV)");
b583134f 5693 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ) ;
5694
5695 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1",snlm[nlm].Data()),
29555e96 5696 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
5697 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
cb99fa55 5698 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5699 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetXTitle("E_{reco} (GeV)");
b583134f 5700 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ) ;
5701
5702 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1",snlm[nlm].Data()),
29555e96 5703 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
5704 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
cb99fa55 5705 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5706 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5707 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ) ;
5708
5709 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1",snlm[nlm].Data()),
29555e96 5710 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
5711 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
cb99fa55 5712 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5713 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5714 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm]) ;
5715
5716 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1",snlm[nlm].Data()),
29555e96 5717 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
5718 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
cb99fa55 5719 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5720 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5721 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm]) ;
5722
5723 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1",snlm[nlm].Data()),
29555e96 5724 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
5725 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
cb99fa55 5726 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5727 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5728 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm]) ;
5729
5730 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1",snlm[nlm].Data()),
29555e96 5731 Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
5732 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
cb99fa55 5733 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5734 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5735 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm]) ;
5736
5737 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2",snlm[nlm].Data()),
29555e96 5738 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
cb99fa55 5739 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5740 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5741 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5742 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ) ;
5743
5744 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2",snlm[nlm].Data()),
29555e96 5745 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
cb99fa55 5746 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5747 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5748 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5749 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ) ;
5750
5751 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2",snlm[nlm].Data()),
29555e96 5752 Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
cb99fa55 5753 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5754 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5755 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5756 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ) ;
5757
5758 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2",snlm[nlm].Data()),
29555e96 5759 Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
cb99fa55 5760 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5761 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5762 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5763 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ) ;
5764
5765 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2",snlm[nlm].Data()),
29555e96 5766 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5767 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5768 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5769 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5770 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm]) ;
5771
5772 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2",snlm[nlm].Data()),
29555e96 5773 Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5774 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5775 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5776 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5777 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm]) ;
5778
5779 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2",snlm[nlm].Data()),
29555e96 5780 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5781 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5782 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5783 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5784 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm]) ;
5785
5786 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2",snlm[nlm].Data()),
29555e96 5787 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5788 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5789 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
29555e96 5790 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)");
b583134f 5791 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm]) ;
29555e96 5792
5793
5794 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1vsELM1",snlm[nlm].Data()),
5795 Form("(E_{reco}-E_{gen})/E_{gen} vs E for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
5796 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5797 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5798 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)");
5799 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ) ;
5800
5801 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1vsELM1",snlm[nlm].Data()),
5802 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
5803 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5804 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5805 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetXTitle("E (GeV)");
5806 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ) ;
5807
5808 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()),
5809 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
5810 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5811 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5812 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)");
5813 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ) ;
5814
5815 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()),
5816 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
5817 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5818 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5819 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)");
5820 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ) ;
5821
5822 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
5823 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
5824 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5825 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5826 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)");
5827 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm]) ;
5828
5829 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
5830 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
5831 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5832 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5833 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)");
5834 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm]) ;
5835
5836 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
5837 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
5838 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5839 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5840 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)");
5841 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm]) ;
5842
5843 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
5844 Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
5845 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5846 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5847 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)");
5848 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm]) ;
5849
5850 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2vsELM2",snlm[nlm].Data()),
5851 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
5852 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5853 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5854 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)");
5855 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ) ;
5856
5857 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2vsELM2",snlm[nlm].Data()),
5858 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
5859 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5860 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5861 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)");
5862 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ) ;
5863
5864 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()),
5865 Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
5866 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5867 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5868 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)");
5869 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ) ;
5870
5871 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()),
5872 Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
5873 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5874 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5875 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)");
5876 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ) ;
5877
5878 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
5879 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
5880 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5881 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5882 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)");
5883 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm]) ;
5884
5885 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
5886 Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
5887 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5888 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5889 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)");
5890 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm]) ;
5891
5892 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
5893 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
5894 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5895 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5896 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)");
5897 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm]) ;
5898
5899 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
5900 Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
5901 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
5902 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}");
5903 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)");
5904 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm]) ;
5905
b583134f 5906 }
5907
b2e375c7 5908 fhMCEOverlapType = new TH2F("hMCEOverlapType","Kind of overlap particle, neutral clusters",
5909 nptbins,ptmin,ptmax,5,0,5);
5910 //fhMCEOverlapType ->SetYTitle("Overlap Type");
5911 fhMCEOverlapType->GetYaxis()->SetBinLabel(1 ,"#gamma");
5912 fhMCEOverlapType->GetYaxis()->SetBinLabel(2 ,"e^{#pm}");
5913 fhMCEOverlapType->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}");
5914 fhMCEOverlapType->GetYaxis()->SetBinLabel(4 ,"hadron^{0}");
5915 fhMCEOverlapType->GetYaxis()->SetBinLabel(5 ,"??");
36769d30 5916 fhMCEOverlapType->SetXTitle("Cluster E (GeV)");
b2e375c7 5917 outputContainer->Add(fhMCEOverlapType) ;
1253480f 5918
b2e375c7 5919 fhMCEOverlapTypeMatch = new TH2F("hMCEOverlapTypeMatched","Kind of overlap particle, charged clusters",
1253480f 5920 nptbins,ptmin,ptmax,5,0,5);
b2e375c7 5921 //fhMCEOverlapTypeMatch ->SetYTitle("Overlap Type");
5922 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(1 ,"#gamma");
5923 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(2 ,"e^{#pm}");
5924 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}");
5925 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(4 ,"hadron^{0}");
5926 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(5 ,"??");
5927 fhMCEOverlapTypeMatch->SetXTitle("Cluster E (GeV)");
5928 outputContainer->Add(fhMCEOverlapTypeMatch) ;
1253480f 5929
b2e375c7 5930 }// MC analysis, check overlaps
5931
ce49dd72 5932
b583134f 5933 if(IsDataMC())
5934 {
5935 for(Int_t inlm = 0; inlm < 3; inlm++)
5936 {
5937 fhAsyMCGenRecoDiffMCPi0[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0",snlm[inlm].Data()),
5938 Form("Reconstructed - Generated asymmetry with NLM=%d vs E, MC Pi0",inlm),
5939 nptbins,ptmin,ptmax,200,-1,1);
5940 fhAsyMCGenRecoDiffMCPi0[inlm]->SetYTitle("A_{reco} - A_{gen}");
5941 fhAsyMCGenRecoDiffMCPi0[inlm]->SetXTitle("E (GeV)");
5942 outputContainer->Add(fhAsyMCGenRecoDiffMCPi0[inlm]) ;
5943
5944 fhAsyMCGenRecoDiffMCPi0Conv[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0Conv",snlm[inlm].Data()),
5945 Form("Reconstructed - Generated asymmetry with NLM=%d vs E, MC Pi0Conv",inlm),
5946 nptbins,ptmin,ptmax,200,-1,1);
5947 fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetYTitle("A_{reco} - A_{gen}");
5948 fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetXTitle("E (GeV)");
5949 outputContainer->Add(fhAsyMCGenRecoDiffMCPi0Conv[inlm]) ;
5950 }
5951 }
5952
cb99fa55 5953 if(fFillArmenterosHisto)
5954 {
be894c1d 5955 Int_t narmbins = 400;
5956 Float_t armmin = 0;
5957 Float_t armmax = 0.4;
5958
ed10b649 5959 for(Int_t i = 0; i < 7; i++) // MC bin
cb99fa55 5960 {
5961 for(Int_t j = 0; j < 4; j++) // E bin
5962 {
5963 fhArmNLocMax1[i][j] = new TH2F(Form("hArmNLocMax1EBin%d%s",j,pname[i].Data()),
be894c1d 5964 Form("Armenteros of splitted cluster with NLM=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
5965 200, -1, 1, narmbins,armmin,armmax);
5966 fhArmNLocMax1[i][j]->SetYTitle("p_{T}^{Arm}");
5967 fhArmNLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 5968 outputContainer->Add(fhArmNLocMax1[i][j]) ;
5969
5970 fhArmNLocMax2[i][j] = new TH2F(Form("hArmNLocMax2EBin%d%s",j,pname[i].Data()),
be894c1d 5971 Form("Armenteros of splitted cluster with NLM=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
5972 200, -1, 1, narmbins,armmin,armmax);
5973 fhArmNLocMax2[i][j]->SetYTitle("p_{T}^{Arm}");
5974 fhArmNLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 5975 outputContainer->Add(fhArmNLocMax2[i][j]) ;
5976
5977 fhArmNLocMaxN[i][j] = new TH2F(Form("hArmNLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 5978 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
5979 200, -1, 1, narmbins,armmin,armmax);
5980 fhArmNLocMaxN[i][j]->SetYTitle("p_{T}^{Arm}");
5981 fhArmNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 5982 outputContainer->Add(fhArmNLocMaxN[i][j]) ;
5983
c7e9a4e9 5984 if(asyOn || m02On)
cb99fa55 5985 {
5986 fhArmAfterCutsNLocMax1[i][j] = new TH2F(Form("hArmAfterCutsNLocMax1EBin%d%s",j,pname[i].Data()),
be894c1d 5987 Form("Armenteros of splitted cluster with NLM=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
5988 200, -1, 1, narmbins,armmin,armmax);
5989 fhArmAfterCutsNLocMax1[i][j]->SetYTitle("p_{T}^{Arm}");
5990 fhArmAfterCutsNLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 5991 outputContainer->Add(fhArmAfterCutsNLocMax1[i][j]) ;
5992
5993 fhArmAfterCutsNLocMax2[i][j] = new TH2F(Form("hArmAfterCutsNLocMax2EBin%d%s",j,pname[i].Data()),
be894c1d 5994 Form("Armenteros of splitted cluster with NLM=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
5995 200, -1, 1, narmbins,armmin,armmax);
5996 fhArmAfterCutsNLocMax2[i][j]->SetYTitle("p_{T}^{Arm}");
5997 fhArmAfterCutsNLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 5998 outputContainer->Add(fhArmAfterCutsNLocMax2[i][j]) ;
5999
6000 fhArmAfterCutsNLocMaxN[i][j] = new TH2F(Form("hArmAfterCutsNLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6001 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6002 200, -1, 1, narmbins,armmin,armmax);
6003 fhArmAfterCutsNLocMaxN[i][j]->SetYTitle("p_{T}^{Arm}");
6004 fhArmAfterCutsNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6005 outputContainer->Add(fhArmAfterCutsNLocMaxN[i][j]) ;
6006 }
6007
6008 fhArmPi0NLocMax1[i][j] = new TH2F(Form("hArmPi0NLocMax1EBin%d%s",j,pname[i].Data()),
be894c1d 6009 Form("Armenteros of splitted cluster with NLM=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6010 200, -1, 1, narmbins,armmin,armmax);
6011 fhArmPi0NLocMax1[i][j]->SetYTitle("p_{T}^{Arm}");
6012 fhArmPi0NLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6013 outputContainer->Add(fhArmPi0NLocMax1[i][j]) ;
6014
6015 fhArmPi0NLocMax2[i][j] = new TH2F(Form("hArmPi0NLocMax2EBin%d%s",j,pname[i].Data()),
be894c1d 6016 Form("Armenteros of splitted cluster with NLM=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6017 200, -1, 1, narmbins,armmin,armmax);
6018 fhArmPi0NLocMax2[i][j]->SetYTitle("p_{T}^{Arm}");
6019 fhArmPi0NLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6020 outputContainer->Add(fhArmPi0NLocMax2[i][j]) ;
6021
6022 fhArmPi0NLocMaxN[i][j] = new TH2F(Form("hArmPi0NLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6023 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6024 200, -1, 1, narmbins,armmin,armmax);
6025 fhArmPi0NLocMaxN[i][j]->SetYTitle("p_{T}^{Arm}");
6026 fhArmPi0NLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6027 outputContainer->Add(fhArmPi0NLocMaxN[i][j]) ;
6028
6029 }
6030 }
6031 }
6032
992b14a7 6033 return outputContainer ;
6034
6035}
6036
b2e375c7 6037//_____________________________________________________________________________
4914e781 6038void AliAnaInsideClusterInvariantMass::GetMCIndex(AliVCluster* cluster,
6039 Int_t & mcindex, Int_t & tag)
b2e375c7 6040{
6041
6042 // Assign mc index depending on MC bit set, to be used in histograms arrays
1253480f 6043
4914e781 6044 tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader());
b2e375c7 6045
6046 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) &&
6047 !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPi0;
6048 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) ) mcindex = kmcPi0Conv;
6049 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta) ) mcindex = kmcEta;
6050 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
6051 !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPhoton;
6052 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
6053 GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcConversion;
cb99fa55 6054 else if (!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron) ) mcindex = kmcHadron;
6055
6056 //printf("MC index %d\n",mcindex);
b2e375c7 6057
6058}
6059
b94e038e 6060//____________________________________________________________________________________________
6061void AliAnaInsideClusterInvariantMass::GetMCPrimaryKine(AliVCluster* cluster, Int_t mcindex,
6062 Int_t mctag, Bool_t matched,
6063 Float_t & eprim, Float_t & asymGen,
6064 Float_t & angleGen, Int_t & noverlaps )
b2e375c7 6065{
6066 // Check origin of the candidates, get primary kinematics if overlapped meson decay
6067
b2e375c7 6068 Bool_t ok = kFALSE;
6069 Int_t mcLabel = cluster->GetLabel();
6070
6071 TLorentzVector primary = GetMCAnalysisUtils()->GetMother(mcLabel,GetReader(),ok);
6072 eprim = primary.E();
6073
36769d30 6074 Int_t mesonLabel = -1;
6075
b2e375c7 6076 if(mcindex == kmcPi0 || mcindex == kmcEta || mcindex == kmcPi0Conv)
6077 {
6078 if(mcindex == kmcPi0 || mcindex == kmcPi0Conv)
6079 {
0186b6a2 6080 GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,111,GetReader(),asymGen,angleGen,ok);
6081 asymGen = TMath::Abs(asymGen);
36769d30 6082 TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,111,GetReader(),ok,mesonLabel);
b2e375c7 6083 if(grandmom.E() > 0 && ok) eprim = grandmom.E();
6084 }
6085 else
6086 {
0186b6a2 6087 GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,221,GetReader(),asymGen,angleGen,ok);
6088 asymGen = TMath::Abs(asymGen);
36769d30 6089 TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,221,GetReader(),ok,mesonLabel);
b2e375c7 6090 if(grandmom.E() > 0 && ok) eprim = grandmom.E();
6091 }
6092 }
6093
6094 if(!fFillMCOverlapHisto) return;
36769d30 6095
4914e781 6096 const UInt_t nlabels = cluster->GetNLabels();
6097 Int_t overpdg[nlabels];
6098 noverlaps = GetMCAnalysisUtils()->GetNOverlaps(cluster->GetLabels(), nlabels,mctag,mesonLabel,GetReader(),overpdg);
6099
6100 for(Int_t iover = 0; iover < noverlaps; iover++)
6101 {
36769d30 6102 Float_t histobin = -1;
4914e781 6103 Int_t mpdg = overpdg[iover];
6104
36769d30 6105 if (mpdg==22) histobin = 0.5;
6106 else if(TMath::Abs(mpdg)==11) histobin = 1.5;
6107 else if(mpdg==-999999) histobin = 4.5;
6108 else
6109 {
6110 Double_t charge = TDatabasePDG::Instance()->GetParticle(mpdg)->Charge();
6111 if(TMath::Abs(charge) > 0 ) histobin = 2.5;
6112 else histobin = 3.5;
6113 //printf("charge %f\n",charge);
6114 }
6115
6116 //printf("\t pdg = %d, histobin %2.1f\n",mpdg,histobin);
6117 if(histobin > 0)
6118 {
6119 if(matched)fhMCEOverlapType ->Fill(cluster->E(),histobin);
6120 else fhMCEOverlapTypeMatch->Fill(cluster->E(),histobin);
6121 }
b2e375c7 6122 }
b2e375c7 6123}
6124
992b14a7 6125//___________________________________________
6126void AliAnaInsideClusterInvariantMass::Init()
b2e375c7 6127{
992b14a7 6128 //Init
6129 //Do some checks
a6d3b0a8 6130
3c1d9afb 6131 if(fCalorimeter == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD())
6132 {
a6d3b0a8 6133 AliFatal("!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n");
992b14a7 6134 }
3c1d9afb 6135 else if(fCalorimeter == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD())
6136 {
a6d3b0a8 6137 AliFatal("!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n");
992b14a7 6138 }
6139
3c1d9afb 6140 if( GetReader()->GetDataType() == AliCaloTrackReader::kMC )
6141 {
a6d3b0a8 6142 AliFatal("!!STOP: You want to use pure MC data!!\n");
992b14a7 6143 }
6144
6145}
6146
6147//_____________________________________________________
6148void AliAnaInsideClusterInvariantMass::InitParameters()
6149{
6150 //Initialize the parameters of the analysis.
6151 AddToHistogramsName("AnaPi0InsideClusterInvariantMass_");
6152
6153 fCalorimeter = "EMCAL" ;
29ca9cad 6154
992b14a7 6155 fMinNCells = 4 ;
2cb134fb 6156 fMinBadDist = 2 ;
dbe09c26 6157
b2e375c7 6158 fHistoECut = 8 ;
6159
dbe09c26 6160 fSSWeightN = 5;
6161 fSSWeight[0] = 4.6; fSSWeight[1] = 4.7; fSSWeight[2] = 4.8; fSSWeight[3] = 4.9; fSSWeight[4] = 5.0;
6162 fSSWeight[5] = 5.1; fSSWeight[6] = 5.2; fSSWeight[7] = 5.3; fSSWeight[8] = 5.4; fSSWeight[9] = 5.5;
19391b8c 6163
6164 fSSECellCutN = 10;
6165 fSSECellCut[0] = 0.16; fSSECellCut[1] = 0.18; fSSECellCut[2] = 0.2; fSSECellCut[3] = 0.22; fSSECellCut[4] = 0.24;
6166 fSSECellCut[5] = 0.26; fSSECellCut[6] = 0.28; fSSECellCut[7] = 0.3; fSSECellCut[8] = 0.32; fSSECellCut[9] = 0.34;
6167
992b14a7 6168}
6169
6170
6171//__________________________________________________________________
6172void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
6173{
6174 //Search for pi0 in fCalorimeter with shower shape analysis
6175
6176 TObjArray * pl = 0x0;
6177 AliVCaloCells* cells = 0x0;
6178
6179 //Select the Calorimeter of the photon
2cb134fb 6180 if(fCalorimeter == "PHOS")
6181 {
992b14a7 6182 pl = GetPHOSClusters();
6183 cells = GetPHOSCells();
6184 }
2cb134fb 6185 else if (fCalorimeter == "EMCAL")
6186 {
992b14a7 6187 pl = GetEMCALClusters();
6188 cells = GetEMCALCells();
6189 }
6190
3c1d9afb 6191 if(!pl || !cells)
6192 {
992b14a7 6193 Info("MakeAnalysisFillHistograms","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data());
6194 return;
6195 }
6196
6197 if(fCalorimeter == "PHOS") return; // Not implemented for PHOS yet
6198
2cb134fb 6199 for(Int_t icluster = 0; icluster < pl->GetEntriesFast(); icluster++)
6200 {
992b14a7 6201 AliVCluster * cluster = (AliVCluster*) (pl->At(icluster));
6202
b2e375c7 6203 //-------------------------------------------
6204 // Get cluster parameters, do some rejection
6205 //-------------------------------------------
8edbd100 6206
992b14a7 6207 Float_t en = cluster->E();
6208 Float_t l0 = cluster->GetM02();
6209 Int_t nc = cluster->GetNCells();
2cb134fb 6210 Float_t bd = cluster->GetDistanceToBadChannel() ;
d2655d46 6211
2cb134fb 6212 //If too small or big E or low number of cells, or close to a bad channel skip it
b2e375c7 6213
8edbd100 6214 if( en < GetMinEnergy() || en > GetMaxEnergy() || nc < fMinNCells || bd < fMinBadDist) continue ;
2cb134fb 6215
83351853 6216 //printf("en %2.3f GetMinEnergy() %2.3f, GetMaxEnergy() %2.3f , nc %d fMinNCells %d\n",en, GetMinEnergy(),GetMaxEnergy(),nc ,fMinNCells);
6217
b2e375c7 6218 // Track-cluster matching
6219
6220 Bool_t matched = IsTrackMatched(cluster,GetReader()->GetInputEvent());
6221 if(!fFillTMHisto && matched) continue ;
6222
6223 // Get cluster angles
6224
9554fc65 6225 TLorentzVector lv;
6226 cluster->GetMomentum(lv, GetVertex(0));
6227 Float_t eta = lv.Eta();
6228 Float_t phi = lv.Phi();
6229 if(phi<0) phi=+TMath::TwoPi();
6230
2cb134fb 6231 //printf("en %2.2f, GetMinEnergy() %2.2f, GetMaxEnergy() %2.2f, nc %d, fMinNCells %d, bd %2.2f, fMinBadDist %2.2f\n",
6232 // en,GetMinEnergy(), GetMaxEnergy(), nc, fMinNCells, bd, fMinBadDist);
6233
b2e375c7 6234 // Get PID, N local maximum, *** split cluster ***
d2655d46 6235
3c1d9afb 6236 Int_t nMax = 0;
bfdcf7fb 6237 Double_t mass = 0., angle = 0.;
cb99fa55 6238 TLorentzVector lv1, lv2;
4914e781 6239 Int_t absId1 =-1; Int_t absId2 =-1;
6240 Float_t distbad1 =-1; Float_t distbad2 =-1;
6241 Bool_t fidcut1 = 0; Bool_t fidcut2 = 0;
b2e375c7 6242
3c1d9afb 6243 Int_t pidTag = GetCaloPID()->GetIdentifiedParticleTypeFromClusterSplitting(cluster,cells,GetCaloUtils(),
19391b8c 6244 GetVertex(0), nMax, mass, angle,
cb99fa55 6245 lv1,lv2,absId1,absId2,
4914e781 6246 distbad1,distbad2,fidcut1,fidcut2);
5c46c992 6247 if (nMax <= 0)
6248 {
de454976 6249 if(GetDebug() > 0 )
a6d3b0a8 6250 Info("MakeAnalysisFillHistograms","No local maximum found! It did not pass CaloPID selection criteria \n");
5c46c992 6251
4914e781 6252 continue;
992b14a7 6253 }
6254
ce49dd72 6255 // Set some index for array histograms
6256
6257 Int_t inlm = -1;
6258 if (nMax == 1) inlm = 0;
6259 else if(nMax == 2) inlm = 1;
6260 else if(nMax > 2) inlm = 2;
a6d3b0a8 6261 else Info("MakeAnalysisFillHistograms","Wrong N local maximum -> %d, n cells in cluster %d \n",nMax,nc);
ce49dd72 6262
4914e781 6263 // Skip events where one of the new clusters (lowest energy) is close to an EMCal border or a bad channel
1253480f 6264 if( (fCheckSplitDistToBad) &&
6265 (!fidcut2 || !fidcut1 || distbad1 < fMinBadDist || distbad2 < fMinBadDist))
4914e781 6266 {
6267 if(GetDebug() > 1)
a6d3b0a8 6268 Info("MakeAnalysisFillHistograms","Dist to bad channel cl1 %f, cl2 %f; fid cl1 %d, cl2 %d \n",
4914e781 6269 distbad1,distbad2, fidcut1,fidcut2);
ce49dd72 6270
6271 if(distbad1 < fMinBadDist || distbad2 < fMinBadDist)
6272 {
6273 fhMassBadDistClose[inlm]->Fill(en,mass);
6274 fhM02BadDistClose [inlm]->Fill(en,l0 );
6275 }
6276
6277 if(!fidcut1 || !fidcut2)
6278 {
6279 fhMassOnBorder[inlm]->Fill(en,mass);
6280 fhM02OnBorder [inlm]->Fill(en,l0 );
6281 }
6282
4914e781 6283 continue ;
6284 }
6285
b2e375c7 6286 // Get sub-cluster parameters
6287
cb99fa55 6288 Float_t e1 = lv1.Energy();
6289 Float_t e2 = lv2.Energy();
cfdf2b91 6290
a1fd1b69 6291 Double_t tof1 = cells->GetCellTime(absId1);
6292 GetCaloUtils()->RecalibrateCellTime(tof1, fCalorimeter, absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
6293 tof1*=1.e9;
6294
6295 Double_t tof2 = cells->GetCellTime(absId2);
6296 GetCaloUtils()->RecalibrateCellTime(tof2, fCalorimeter, absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber());
6297 tof2*=1.e9;
6298
6299 Double_t t12diff = tof1-tof2;
6300
fc01318e 6301 Float_t splitFrac = (e1+e2)/en;
cfdf2b91 6302
e671adc2 6303 Float_t asym = -10;
6304 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
29ca9cad 6305
b2e375c7 6306 //
6307
6308 Int_t ebin = -1;
6309 if(en > 8 && en <= 12) ebin = 0;
6310 if(en > 12 && en <= 16) ebin = 1;
6311 if(en > 16 && en <= 20) ebin = 2;
6312 if(en > 20) ebin = 3;
6313
1253480f 6314 // MC data histograms and some related calculations
6315 // mc tag, n overlaps, asym of generated mesons
b2e375c7 6316
0186b6a2 6317 Int_t mcindex = -1;
6318 Int_t mctag = -1;
6319 Float_t eprim = -1;
6320 Float_t asymGen = -2;
6321 Float_t angleGen = 2000;
6322 Int_t noverlaps = 0;
b2e375c7 6323
b2e375c7 6324 if(IsDataMC())
1253480f 6325 {
6326 // MC indexes
b2e375c7 6327
1253480f 6328 GetMCIndex(cluster,mcindex,mctag);
6329
6330 // MC primary kine, generation fractions
b2e375c7 6331
0186b6a2 6332 GetMCPrimaryKine(cluster,mcindex,mctag,matched,eprim,asymGen,angleGen,noverlaps);
1253480f 6333
6334 // For cluster with MC pi0 and more than 1 maxima
b2e375c7 6335
cb99fa55 6336 }
5c46c992 6337
b2e375c7 6338 //
2a77f6f4 6339
1253480f 6340 FillHistograms1(en, e1, e2, nMax, mass, l0, eta, phi, matched, mcindex);
4914e781 6341
6342 //
6343
1253480f 6344 if(fFillNCellHisto)
6345 FillNCellHistograms(nc,en, nMax,matched, mcindex,mass,l0);
d2655d46 6346
b2e375c7 6347 //
bb2d339b 6348
1253480f 6349 if(fFillSSExtraHisto)
cb99fa55 6350 FillSSExtraHistograms(cluster, nMax, matched,mcindex,mass,ebin) ;
d2655d46 6351
b2e375c7 6352 //
1253480f 6353
cb99fa55 6354 if(!matched && ebin >= 0 && fFillEbinHisto)
1253480f 6355 FillEBinHistograms(ebin,nMax,mcindex,splitFrac,mass,asym,l0);
fc01318e 6356
b2e375c7 6357 //
6358
1253480f 6359 if(fFillAngleHisto)
a6d3b0a8 6360 FillAngleHistograms(nMax,matched,mcindex,en,e1,e2,angle,mass,angleGen,l0, asym,pidTag,noverlaps);
1253480f 6361
cb99fa55 6362 if(fFillArmenterosHisto && ebin >= 0)
29555e96 6363 FillArmenterosHistograms(nMax, ebin, mcindex, en, lv1, lv2, l0, pidTag);
6364
6365 if(fFillThetaStarHisto)
6366 FillThetaStarHistograms(nMax,matched,mcindex, en, lv1, lv2, l0, pidTag);
6367
cb99fa55 6368
26680f06 6369 //---------------------------------------------------------------------
1253480f 6370 // From here start applying some cuts
26680f06 6371 //---------------------------------------------------------------------
cb99fa55 6372
6373 // If set, check just on MC clusters when SS cut is applied
6374 if( IsDataMC() && mcindex > 0 && mcindex < 7 && GetCaloPID()->IsInM02Range(l0) )
6375 {
6376 // For cluster with MC pi0 and more than 1 maxima
6377
6378 if(fFillMCOverlapHisto)
6379 CheckLocalMaximaMCOrigin(cluster, mcindex,noverlaps,e1,e2,mass);
6380 //l0, l1, l2);
6381
6382 //
6383
6384 if(fFillMCHisto)
6385 FillMCHistograms(en,e1,e2,ebin,mcindex,noverlaps,l0,mass,
6386 nMax,matched,splitFrac, asym, eprim,asymGen);
6387
6388 //
6389
6390 if(fFillMCOverlapHisto)
6391 FillMCOverlapHistograms(en,eprim,nc,mass,l0,asym,splitFrac,inlm,ebin,matched,mcindex,noverlaps);
6392
6393 }
6394
6395 // Fill few histograms, some still without cuts
1253480f 6396 FillHistograms2(en, eprim, e1, e2, nMax, mass, l0, matched, mcindex);
26680f06 6397
1253480f 6398 if(pidTag==AliCaloPID::kPi0)
b2e375c7 6399 {
1253480f 6400 FillIdPi0Histograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex);
17f5b4b6 6401
1253480f 6402 if(fFillSSWeightHisto)
6403 FillSSWeightHistograms(cluster, inlm, absId1, absId2);
cc909e6f 6404
6405 if(fFillTMHisto && fFillTMResidualHisto)
6406 FillTrackMatchingHistograms(cluster,nMax,mcindex);
6407
cb99fa55 6408 if(fFillMCOverlapHisto && IsDataMC() && mcindex > 0 && mcindex < 7 && !matched)
cc909e6f 6409 {
6410 if (noverlaps == 0) fhMCEEpriOverlap0IdPi0 [inlm][mcindex]->Fill(en, eprim);
6411 else if(noverlaps == 1) fhMCEEpriOverlap1IdPi0 [inlm][mcindex]->Fill(en, eprim);
6412 else if(noverlaps > 1) fhMCEEpriOverlapNIdPi0 [inlm][mcindex]->Fill(en, eprim);
6413 }
167f2534 6414 }
1253480f 6415 else if(fFillIdEtaHisto && pidTag==AliCaloPID::kEta)
5c46c992 6416 {
1253480f 6417 FillIdEtaHistograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex);
243c2909 6418 }
1253480f 6419 else if(fFillIdConvHisto && pidTag==AliCaloPID::kPhoton)
5c46c992 6420 {
1253480f 6421 FillIdConvHistograms(en, nMax, asym, mass, l0, matched, mcindex);
243c2909 6422 }
6423
992b14a7 6424 }//loop
6425
a6d3b0a8 6426 if(GetDebug() > 1) Info("MakeAnalysisFillHistograms","END \n");
e23a0471 6427
992b14a7 6428}
6429
6430//______________________________________________________________________
6431void AliAnaInsideClusterInvariantMass::Print(const Option_t * opt) const
6432{
6433 //Print some relevant parameters set for the analysis
6434 if(! opt)
6435 return;
6436
6437 printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
745913ae 6438 AliAnaCaloTrackCorrBaseClass::Print("");
243c2909 6439 printf("Calorimeter = %s\n", fCalorimeter.Data()) ;
19391b8c 6440 if(GetCaloUtils()) printf("Loc. Max. E > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutE());
6441 if(GetCaloUtils()) printf("Loc. Max. E Diff > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutEDiff());
cfc19369 6442 printf("Min. N Cells =%d \n", fMinNCells) ;
6443 printf("Min. Dist. to Bad =%1.1f \n", fMinBadDist) ;
19391b8c 6444 if(fFillSSWeightHisto) printf(" N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN);
6445
992b14a7 6446 printf(" \n") ;
6447
6448}
6449
19391b8c 6450//___________________________________________________________________________________________________________________
6451void AliAnaInsideClusterInvariantMass::RecalculateClusterShowerShapeParametersWithCellCut(const AliEMCALGeometry * geom,
6452 AliVCaloCells* cells,
6453 AliVCluster * cluster,
6454 Float_t & l0, Float_t & l1,
6455 Float_t & disp, Float_t & dEta, Float_t & dPhi,
6456 Float_t & sEta, Float_t & sPhi, Float_t & sEtaPhi,
6457 Float_t eCellMin)
6458{
6459 // Calculates new center of gravity in the local EMCAL-module coordinates
6460 // and tranfers into global ALICE coordinates
6461 // Calculates Dispersion and main axis
6462
6463 if(!cluster)
6464 {
6465 AliInfo("Cluster pointer null!");
6466 return;
6467 }
6468
6469 Double_t eCell = 0.;
6470 Float_t fraction = 1.;
6471 Float_t recalFactor = 1.;
6472
6473 Int_t iSupMod = -1;
6474 Int_t iTower = -1;
6475 Int_t iIphi = -1;
6476 Int_t iIeta = -1;
6477 Int_t iphi = -1;
6478 Int_t ieta = -1;
6479 Double_t etai = -1.;
6480 Double_t phii = -1.;
6481
6482 Int_t nstat = 0 ;
6483 Float_t wtot = 0.;
6484 Double_t w = 0.;
6485 Double_t etaMean = 0.;
6486 Double_t phiMean = 0.;
3ae72bd8 6487
19391b8c 6488 //Loop on cells, calculate the cluster energy, in case a cut on cell energy is added
3ae72bd8 6489 // and to check if the cluster is between 2 SM in eta
6490 Int_t iSM0 = -1;
6491 Bool_t shared = kFALSE;
6492 Float_t energy = 0;
6493
6494 for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
19391b8c 6495 {
3ae72bd8 6496 //Get from the absid the supermodule, tower and eta/phi numbers
6497 geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
6498 geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
6499
6500 //Check if there are cells of different SM
6501 if (iDigit == 0 ) iSM0 = iSupMod;
6502 else if(iSupMod!= iSM0) shared = kTRUE;
6503
6504 //Get the cell energy, if recalibration is on, apply factors
6505 fraction = cluster->GetCellAmplitudeFraction(iDigit);
6506 if(fraction < 1e-4) fraction = 1.; // in case unfolding is off
6507
6508 if(GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn())
19391b8c 6509 {
3ae72bd8 6510 recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
6511 }
6512
6513 eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor;
6514
9ae170de 6515 if(eCell > eCellMin) energy += eCell;
3ae72bd8 6516
6517 }//cell loop
19391b8c 6518
6519 //Loop on cells, get weighted parameters
6520 for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
6521 {
6522 //Get from the absid the supermodule, tower and eta/phi numbers
6523 geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
6524 geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
6525
6526 //Get the cell energy, if recalibration is on, apply factors
6527 fraction = cluster->GetCellAmplitudeFraction(iDigit);
6528 if(fraction < 1e-4) fraction = 1.; // in case unfolding is off
6529
3ae72bd8 6530 if(GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn())
6531 {
6532 recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
6533 }
19391b8c 6534
6535 eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor;
6536
3ae72bd8 6537 // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2
6538 // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0
6539 if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols;
6540
9ae170de 6541 if(energy > 0 && eCell > eCellMin)
19391b8c 6542 {
6543 w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy);
8edbd100 6544
6545 //correct weight, ONLY in simulation
9ae170de 6546 w *= (1 - fWSimu * w );
aa12888f 6547
19391b8c 6548 etai=(Double_t)ieta;
6549 phii=(Double_t)iphi;
6550
6551 if(w > 0.0)
6552 {
6553 wtot += w ;
6554 nstat++;
6555 //Shower shape
6556 sEta += w * etai * etai ;
6557 etaMean += w * etai ;
6558 sPhi += w * phii * phii ;
6559 phiMean += w * phii ;
6560 sEtaPhi += w * etai * phii ;
6561 }
6562 }
9ae170de 6563 else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy));
19391b8c 6564
6565 }//cell loop
6566
6567 //Normalize to the weight
6568 if (wtot > 0)
6569 {
6570 etaMean /= wtot ;
6571 phiMean /= wtot ;
6572 }
6573 else
6574 AliError(Form("Wrong weight %f\n", wtot));
6575
6576 //Calculate dispersion
6577 for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
6578 {
6579 //Get from the absid the supermodule, tower and eta/phi numbers
6580 geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
6581 geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
6582
6583 //Get the cell energy, if recalibration is on, apply factors
6584 fraction = cluster->GetCellAmplitudeFraction(iDigit);
6585 if(fraction < 1e-4) fraction = 1.; // in case unfolding is off
6586 if (GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn())
6587 {
6588 recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
6589 }
3ae72bd8 6590
19391b8c 6591 eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor;
6592
3ae72bd8 6593 // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2
6594 // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0
6595 if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols;
6596
9ae170de 6597 if(energy > 0 && eCell > eCellMin)
19391b8c 6598 {
6599 w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy);
6600
8edbd100 6601 //correct weight, ONLY in simulation
9ae170de 6602 w *= (1 - fWSimu * w );
8edbd100 6603
19391b8c 6604 etai=(Double_t)ieta;
6605 phii=(Double_t)iphi;
6606 if(w > 0.0)
6607 {
6608 disp += w *((etai-etaMean)*(etai-etaMean)+(phii-phiMean)*(phii-phiMean));
6609 dEta += w * (etai-etaMean)*(etai-etaMean) ;
6610 dPhi += w * (phii-phiMean)*(phii-phiMean) ;
6611 }
6612 }
9ae170de 6613 else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy));
19391b8c 6614 }// cell loop
6615
6616 //Normalize to the weigth and set shower shape parameters
6617 if (wtot > 0 && nstat > 1)
6618 {
6619 disp /= wtot ;
6620 dEta /= wtot ;
6621 dPhi /= wtot ;
6622 sEta /= wtot ;
6623 sPhi /= wtot ;
6624 sEtaPhi /= wtot ;
6625
6626 sEta -= etaMean * etaMean ;
6627 sPhi -= phiMean * phiMean ;
6628 sEtaPhi -= etaMean * phiMean ;
6629
6630 l0 = (0.5 * (sEta + sPhi) + TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi ));
6631 l1 = (0.5 * (sEta + sPhi) - TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi ));
6632 }
6633 else
6634 {
6635 l0 = 0. ;
6636 l1 = 0. ;
6637 dEta = 0. ; dPhi = 0. ; disp = 0. ;
6638 sEta = 0. ; sPhi = 0. ; sEtaPhi = 0. ;
6639 }
6640
6641}
6642
992b14a7 6643