]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx
Dalitz: New histogram for photon effiVsRadius
[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() :
0cea6003 55 AliAnaCaloTrackCorrBaseClass(),
0186b6a2 56 fMinNCells(0), fMinBadDist(0),
57 fHistoECut(0), fCheckSplitDistToBad(0), fFillAngleHisto(kFALSE),
58 fFillTMHisto(kFALSE), fFillTMResidualHisto(kFALSE), fFillSSExtraHisto(kFALSE),
ff6aa4ce 59 fFillMCHisto(kFALSE), fFillSSWeightHisto(kFALSE),
60 fFillNLMDiffCutHisto(kFALSE), fFillEbinHisto(0),
0186b6a2 61 fFillMCOverlapHisto(0), fFillNCellHisto(0), fFillIdConvHisto(0),
29555e96 62 fFillIdEtaHisto(0), fFillHighMultHisto(0),
63 fFillArmenterosHisto(0), fFillThetaStarHisto(0),
ff6aa4ce 64 fSSWeightN(0), fSSECellCutN(0),
09a5b22d 65 fNLMSettingN(0), fWSimu(),
1a8c88c1 66 fClusterMomentum(), fSubClusterMom1(), fSubClusterMom2(),
67 fSubClusterMomSum(), fSubClusterMomBoost(),
3b13fd81 68 fPrimaryMom(), fGrandMotherMom(),
69 fMCDaughMom1(), fMCDaughMom2(),
1a8c88c1 70 fProdVertex(),
71// Histograms
0186b6a2 72 fhMassAsyCutNLocMax1(0), fhMassAsyCutNLocMax2(0), fhMassAsyCutNLocMaxN(0),
73 fhM02AsyCutNLocMax1(0), fhM02AsyCutNLocMax2(0), fhM02AsyCutNLocMaxN(0),
74 fhMassM02CutNLocMax1(0), fhMassM02CutNLocMax2(0), fhMassM02CutNLocMaxN(0),
75 fhAsymM02CutNLocMax1(0), fhAsymM02CutNLocMax2(0), fhAsymM02CutNLocMaxN(0),
2c36e041 76 fhMassEnCutNLocMax1(0), fhMassEnCutNLocMax2(0), fhMassEnCutNLocMaxN(0),
77 fhM02EnCutNLocMax1(0), fhM02EnCutNLocMax2(0), fhM02EnCutNLocMaxN(0),
78 fhAsymEnCutNLocMax1(0), fhAsymEnCutNLocMax2(0), fhAsymEnCutNLocMaxN(0),
a6d3b0a8 79 fhSplitEFracEnCutNLocMax1(0), fhSplitEFracEnCutNLocMax2(0), fhSplitEFracEnCutNLocMaxN(0),
0186b6a2 80 fhMassSplitECutNLocMax1(0), fhMassSplitECutNLocMax2(0), fhMassSplitECutNLocMaxN(0),
81 fhMCGenFracAfterCutsNLocMax1MCPi0(0), fhMCGenFracAfterCutsNLocMax2MCPi0(0), fhMCGenFracAfterCutsNLocMaxNMCPi0(0),
82 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMax2MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0(0),
83 fhNCellMassEHighNLocMax1MCPi0(0), fhNCellM02EHighNLocMax1MCPi0(0),
84 fhNCellMassELowNLocMax1MCPi0(0), fhNCellM02ELowNLocMax1MCPi0(0),
85 fhNCellMassEHighNLocMax2MCPi0(0), fhNCellM02EHighNLocMax2MCPi0(0),
86 fhNCellMassELowNLocMax2MCPi0(0), fhNCellM02ELowNLocMax2MCPi0(0),
87 fhNCellMassEHighNLocMaxNMCPi0(0), fhNCellM02EHighNLocMaxNMCPi0(0),
88 fhNCellMassELowNLocMaxNMCPi0(0), fhNCellM02ELowNLocMaxNMCPi0(0),
89 fhAnglePairPrimPi0RecoNLocMax1(0), fhAnglePairPrimPi0RecoNLocMax2(0), fhAnglePairPrimPi0RecoNLocMaxN(0),
90 fhAnglePairPrimPi0vsRecoNLocMax1(0), fhAnglePairPrimPi0vsRecoNLocMax2(0), fhAnglePairPrimPi0vsRecoNLocMaxN(0),
4e5a94c5 91 fhAnglePairPrimPi0OverM02NLocMax1(0), fhAnglePairPrimPi0OverM02NLocMax2(0), fhAnglePairPrimPi0OverM02NLocMaxN(0),
0186b6a2 92 fhCentralityPi0NLocMax1(0), fhCentralityEtaNLocMax1(0),
93 fhCentralityPi0NLocMax2(0), fhCentralityEtaNLocMax2(0),
94 fhCentralityPi0NLocMaxN(0), fhCentralityEtaNLocMaxN(0),
95 fhEventPlanePi0NLocMax1(0), fhEventPlaneEtaNLocMax1(0),
96 fhEventPlanePi0NLocMax2(0), fhEventPlaneEtaNLocMax2(0),
97 fhEventPlanePi0NLocMaxN(0), fhEventPlaneEtaNLocMaxN(0),
98 fhClusterEtaPhiNLocMax1(0), fhClusterEtaPhiNLocMax2(0), fhClusterEtaPhiNLocMaxN(0),
99 fhPi0EtaPhiNLocMax1(0), fhPi0EtaPhiNLocMax2(0), fhPi0EtaPhiNLocMaxN(0),
100 fhEtaEtaPhiNLocMax1(0), fhEtaEtaPhiNLocMax2(0), fhEtaEtaPhiNLocMaxN(0),
101 fhPi0EPairDiffTimeNLM1(0), fhPi0EPairDiffTimeNLM2(0), fhPi0EPairDiffTimeNLMN(0),
102 fhEtaEPairDiffTimeNLM1(0), fhEtaEPairDiffTimeNLM2(0), fhEtaEPairDiffTimeNLMN(0),
103 fhMCPi0HighNLMPair(0), fhMCPi0LowNLMPair(0),
104 fhMCPi0AnyNLMPair(0), fhMCPi0NoneNLMPair(0),
105 fhMCPi0HighNLMPairNoMCMatch(0), fhMCPi0LowNLMPairNoMCMatch(0),
106 fhMCPi0AnyNLMPairNoMCMatch(0), fhMCPi0NoneNLMPairNoMCMatch(0),
107 fhMCPi0HighNLMPairOverlap(0), fhMCPi0LowNLMPairOverlap(0),
108 fhMCPi0AnyNLMPairOverlap(0), fhMCPi0NoneNLMPairOverlap(0),
109 fhMCPi0HighNLMPairNoMCMatchOverlap(0), fhMCPi0LowNLMPairNoMCMatchOverlap(0),
110 fhMCPi0AnyNLMPairNoMCMatchOverlap(0), fhMCPi0NoneNLMPairNoMCMatchOverlap(0),
111 fhMCPi0DecayPhotonHitHighLM(0), fhMCPi0DecayPhotonAdjHighLM(0),
112 fhMCPi0DecayPhotonHitOtherLM(0), fhMCPi0DecayPhotonAdjOtherLM(0),
113 fhMCPi0DecayPhotonAdjacent(0), fhMCPi0DecayPhotonHitNoLM(0),
114 fhMCPi0DecayPhotonHitHighLMOverlap(0), fhMCPi0DecayPhotonAdjHighLMOverlap(0),
115 fhMCPi0DecayPhotonHitOtherLMOverlap(0), fhMCPi0DecayPhotonAdjOtherLMOverlap(0),
116 fhMCPi0DecayPhotonAdjacentOverlap(0), fhMCPi0DecayPhotonHitNoLMOverlap(0),
117 fhMCEOverlapType(0), fhMCEOverlapTypeMatch(0)
992b14a7 118{
119 //default ctor
120
121 // Init array of histograms
cb99fa55 122 for(Int_t i = 0; i < 7; i++)
5c46c992 123 {
124 for(Int_t j = 0; j < 2; j++)
125 {
5c46c992 126 fhMassNLocMax1[i][j] = 0;
127 fhMassNLocMax2[i][j] = 0;
128 fhMassNLocMaxN[i][j] = 0;
c7e9a4e9 129 fhMassSplitENLocMax1[i][j] = 0;
130 fhMassSplitENLocMax2[i][j] = 0;
131 fhMassSplitENLocMaxN[i][j] = 0;
5c46c992 132 fhNLocMax[i][j] = 0;
5c46c992 133 fhNLocMaxM02Cut[i][j] = 0;
cc909e6f 134 fhSplitClusterENLocMax [i][j] = 0;
135 fhSplitClusterEPi0NLocMax[i][j] = 0;
5c46c992 136 fhM02NLocMax1[i][j] = 0;
137 fhM02NLocMax2[i][j] = 0;
138 fhM02NLocMaxN[i][j] = 0;
139 fhNCellNLocMax1[i][j] = 0;
140 fhNCellNLocMax2[i][j] = 0;
141 fhNCellNLocMaxN[i][j] = 0;
c8710850 142 fhM02Pi0NLocMax1[i][j] = 0;
143 fhM02EtaNLocMax1[i][j] = 0;
144 fhM02ConNLocMax1[i][j] = 0;
145 fhM02Pi0NLocMax2[i][j] = 0;
146 fhM02EtaNLocMax2[i][j] = 0;
147 fhM02ConNLocMax2[i][j] = 0;
148 fhM02Pi0NLocMaxN[i][j] = 0;
149 fhM02EtaNLocMaxN[i][j] = 0;
150 fhM02ConNLocMaxN[i][j] = 0;
151
152 fhMassPi0NLocMax1[i][j] = 0;
153 fhMassEtaNLocMax1[i][j] = 0;
154 fhMassConNLocMax1[i][j] = 0;
155 fhMassPi0NLocMax2[i][j] = 0;
156 fhMassEtaNLocMax2[i][j] = 0;
157 fhMassConNLocMax2[i][j] = 0;
158 fhMassPi0NLocMaxN[i][j] = 0;
159 fhMassEtaNLocMaxN[i][j] = 0;
160 fhMassConNLocMaxN[i][j] = 0;
cb99fa55 161
1253480f 162 fhNCellPi0NLocMax1[i][j] = 0;
163 fhNCellEtaNLocMax1[i][j] = 0;
164 fhNCellPi0NLocMax2[i][j] = 0;
165 fhNCellEtaNLocMax2[i][j] = 0;
166 fhNCellPi0NLocMaxN[i][j] = 0;
167 fhNCellEtaNLocMaxN[i][j] = 0;
c8710850 168
169 fhAsyPi0NLocMax1[i][j] = 0;
170 fhAsyEtaNLocMax1[i][j] = 0;
171 fhAsyConNLocMax1[i][j] = 0;
172 fhAsyPi0NLocMax2[i][j] = 0;
173 fhAsyEtaNLocMax2[i][j] = 0;
174 fhAsyConNLocMax2[i][j] = 0;
175 fhAsyPi0NLocMaxN[i][j] = 0;
176 fhAsyEtaNLocMaxN[i][j] = 0;
177 fhAsyConNLocMaxN[i][j] = 0;
e671adc2 178
0137016b 179 fhMassM02NLocMax1[i][j]= 0;
180 fhMassM02NLocMax2[i][j]= 0;
c7e9a4e9 181 fhMassM02NLocMaxN[i][j]= 0;
182
183 fhMassSplitEPi0NLocMax1[i][j] = 0;
184 fhMassSplitEPi0NLocMax2[i][j] = 0;
185 fhMassSplitEPi0NLocMaxN[i][j] = 0;
186
187 fhMassSplitEAfterCutsNLocMax1[i][j] = 0;
188 fhMassSplitEAfterCutsNLocMax2[i][j] = 0;
189 fhMassSplitEAfterCutsNLocMaxN[i][j] = 0;
190
191
d2655d46 192 fhMassDispEtaNLocMax1[i][j]= 0;
193 fhMassDispEtaNLocMax2[i][j]= 0;
194 fhMassDispEtaNLocMaxN[i][j]= 0;
195 fhMassDispPhiNLocMax1[i][j]= 0;
196 fhMassDispPhiNLocMax2[i][j]= 0;
197 fhMassDispPhiNLocMaxN[i][j]= 0;
198 fhMassDispAsyNLocMax1[i][j]= 0;
199 fhMassDispAsyNLocMax2[i][j]= 0;
200 fhMassDispAsyNLocMaxN[i][j]= 0;
8e81c2cf 201
fc01318e 202 fhSplitEFractionNLocMax1[i][j]=0;
203 fhSplitEFractionNLocMax2[i][j]=0;
204 fhSplitEFractionNLocMaxN[i][j]=0;
205
29555e96 206 fhAnglePairNLocMax1 [i][j] = 0;
207 fhAnglePairNLocMax2 [i][j] = 0;
208 fhAnglePairNLocMaxN [i][j] = 0;
209
210 fhAnglePairAfterCutsNLocMax1[i][j] = 0;
211 fhAnglePairAfterCutsNLocMax2[i][j] = 0;
212 fhAnglePairAfterCutsNLocMaxN[i][j] = 0;
213
214 fhAnglePairPi0NLocMax1 [i][j] = 0;
215 fhAnglePairPi0NLocMax2 [i][j] = 0;
216 fhAnglePairPi0NLocMaxN [i][j] = 0;
217
218 fhAnglePairMassNLocMax1 [i][j] = 0;
219 fhAnglePairMassNLocMax2 [i][j] = 0;
220 fhAnglePairMassNLocMaxN [i][j] = 0;
d261ae67 221
222 fhAnglePairM02NLocMax1 [i][j] = 0;
223 fhAnglePairM02NLocMax2 [i][j] = 0;
224 fhAnglePairM02NLocMaxN [i][j] = 0;
29555e96 225
4e5a94c5 226 fhAnglePairOverM02NLocMax1 [i][j] = 0;
227 fhAnglePairOverM02NLocMax2 [i][j] = 0;
228 fhAnglePairOverM02NLocMaxN [i][j] = 0;
229
230 fhAnglePairOverM02NLocMax1Overlap0[i][j] = 0;
231 fhAnglePairOverM02NLocMax2Overlap0[i][j] = 0;
232 fhAnglePairOverM02NLocMaxNOverlap0[i][j] = 0;
233
29555e96 234 fhCosThStarNLocMax1 [i][j] = 0;
235 fhCosThStarNLocMax2 [i][j] = 0;
236 fhCosThStarNLocMaxN [i][j] = 0;
237
238 fhCosThStarAfterCutsNLocMax1[i][j] = 0;
239 fhCosThStarAfterCutsNLocMax2[i][j] = 0;
240 fhCosThStarAfterCutsNLocMaxN[i][j] = 0;
241
242 fhCosThStarPi0NLocMax1 [i][j] = 0;
243 fhCosThStarPi0NLocMax2 [i][j] = 0;
244 fhCosThStarPi0NLocMaxN [i][j] = 0;
0186b6a2 245
8e81c2cf 246 fhMCGenFracNLocMax1[i][j]= 0;
247 fhMCGenFracNLocMax2[i][j]= 0;
248 fhMCGenFracNLocMaxN[i][j]= 0;
4914e781 249
250 fhMCGenFracNLocMax1NoOverlap[i][j]= 0;
251 fhMCGenFracNLocMax2NoOverlap[i][j]= 0;
252 fhMCGenFracNLocMaxNNoOverlap[i][j]= 0;
5094c724 253
254 fhMCGenSplitEFracNLocMax1[i][j]= 0;
255 fhMCGenSplitEFracNLocMax2[i][j]= 0;
bb2d339b 256 fhMCGenSplitEFracNLocMaxN[i][j]= 0;
4914e781 257
258 fhMCGenSplitEFracNLocMax1NoOverlap[i][j]= 0;
259 fhMCGenSplitEFracNLocMax2NoOverlap[i][j]= 0;
260 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]= 0;
bb2d339b 261
262 fhMCGenEFracvsSplitEFracNLocMax1[i][j]= 0;
263 fhMCGenEFracvsSplitEFracNLocMax2[i][j]= 0;
264 fhMCGenEFracvsSplitEFracNLocMaxN[i][j]= 0;
265
266 fhMCGenEvsSplitENLocMax1[i][j]= 0;
267 fhMCGenEvsSplitENLocMax2[i][j]= 0;
e671adc2 268 fhMCGenEvsSplitENLocMaxN[i][j]= 0;
269
270 fhAsymNLocMax1 [i][j] = 0;
271 fhAsymNLocMax2 [i][j] = 0;
272 fhAsymNLocMaxN [i][j] = 0;
74858845 273
274 fhMassAfterCutsNLocMax1[i][j] = 0;
275 fhMassAfterCutsNLocMax2[i][j] = 0;
276 fhMassAfterCutsNLocMaxN[i][j] = 0;
cb99fa55 277
74858845 278
279 fhSplitEFractionAfterCutsNLocMax1[i][j] = 0 ;
280 fhSplitEFractionAfterCutsNLocMax2[i][j] = 0 ;
281 fhSplitEFractionAfterCutsNLocMaxN[i][j] = 0 ;
8e81c2cf 282 }
19391b8c 283
8e81c2cf 284 for(Int_t jj = 0; jj < 4; jj++)
285 {
53f2c382 286 fhM02MCGenFracNLocMax1Ebin[i][jj] = 0;
287 fhM02MCGenFracNLocMax2Ebin[i][jj] = 0;
288 fhM02MCGenFracNLocMaxNEbin[i][jj] = 0;
8e81c2cf 289
290 fhMassMCGenFracNLocMax1Ebin[i][jj]= 0;
291 fhMassMCGenFracNLocMax2Ebin[i][jj]= 0;
292 fhMassMCGenFracNLocMaxNEbin[i][jj]= 0;
53f2c382 293
fc01318e 294 fhMCGenFracNLocMaxEbin[i][jj] = 0;
53f2c382 295 fhMCGenFracNLocMaxEbinMatched[i][jj]= 0;
fc01318e 296
297 fhMassSplitEFractionNLocMax1Ebin[i][jj] = 0;
298 fhMassSplitEFractionNLocMax2Ebin[i][jj] = 0;
299 fhMassSplitEFractionNLocMaxNEbin[i][jj] = 0;
5c46c992 300 }
301
b2e375c7 302 fhTrackMatchedDEtaNLocMax1[i] = 0;
c8710850 303 fhTrackMatchedDPhiNLocMax1[i] = 0;
304 fhTrackMatchedDEtaNLocMax2[i] = 0;
305 fhTrackMatchedDPhiNLocMax2[i] = 0;
306 fhTrackMatchedDEtaNLocMaxN[i] = 0;
307 fhTrackMatchedDPhiNLocMaxN[i] = 0;
b2e375c7 308
309 fhTrackMatchedDEtaNLocMax1Pos[i] = 0;
310 fhTrackMatchedDPhiNLocMax1Pos[i] = 0;
311 fhTrackMatchedDEtaNLocMax2Pos[i] = 0;
312 fhTrackMatchedDPhiNLocMax2Pos[i] = 0;
313 fhTrackMatchedDEtaNLocMaxNPos[i] = 0;
314 fhTrackMatchedDPhiNLocMaxNPos[i] = 0;
315
316 fhTrackMatchedDEtaNLocMax1Neg[i] = 0;
317 fhTrackMatchedDPhiNLocMax1Neg[i] = 0;
318 fhTrackMatchedDEtaNLocMax2Neg[i] = 0;
319 fhTrackMatchedDPhiNLocMax2Neg[i] = 0;
320 fhTrackMatchedDEtaNLocMaxNNeg[i] = 0;
321 fhTrackMatchedDPhiNLocMaxNNeg[i] = 0;
243c2909 322
b2e375c7 323 for(Int_t nlm = 0; nlm < 3; nlm++)
324 {
325 fhMCEM02Overlap0 [nlm][i] = 0;
326 fhMCEM02Overlap1 [nlm][i] = 0;
327 fhMCEM02OverlapN [nlm][i] = 0;
328 fhMCEM02Overlap0Match[nlm][i] = 0;
329 fhMCEM02Overlap1Match[nlm][i] = 0;
330 fhMCEM02OverlapNMatch[nlm][i] = 0;
331
332 fhMCEMassOverlap0 [nlm][i] = 0;
333 fhMCEMassOverlap1 [nlm][i] = 0;
334 fhMCEMassOverlapN [nlm][i] = 0;
335 fhMCEMassOverlap0Match[nlm][i] = 0;
336 fhMCEMassOverlap1Match[nlm][i] = 0;
337 fhMCEMassOverlapNMatch[nlm][i] = 0;
83351853 338
4914e781 339 fhMCEAsymOverlap0 [nlm][i] = 0;
340 fhMCEAsymOverlap1 [nlm][i] = 0;
341 fhMCEAsymOverlapN [nlm][i] = 0;
342 fhMCEAsymOverlap0Match[nlm][i] = 0;
343 fhMCEAsymOverlap1Match[nlm][i] = 0;
344 fhMCEAsymOverlapNMatch[nlm][i] = 0;
345
74e3eb22 346 fhMCENCellOverlap0 [nlm][i] = 0;
347 fhMCENCellOverlap1 [nlm][i] = 0;
348 fhMCENCellOverlapN [nlm][i] = 0;
349 fhMCENCellOverlap0Match[nlm][i] = 0;
350 fhMCENCellOverlap1Match[nlm][i] = 0;
351 fhMCENCellOverlapNMatch[nlm][i] = 0;
352
4914e781 353 fhMCEEpriOverlap0 [nlm][i] = 0;
354 fhMCEEpriOverlap1 [nlm][i] = 0;
355 fhMCEEpriOverlapN [nlm][i] = 0;
356 fhMCEEpriOverlap0Match[nlm][i] = 0;
357 fhMCEEpriOverlap1Match[nlm][i] = 0;
358 fhMCEEpriOverlapNMatch[nlm][i] = 0;
cc909e6f 359
360 fhMCEEpriOverlap0IdPi0[nlm][i] = 0;
361 fhMCEEpriOverlap1IdPi0[nlm][i] = 0;
362 fhMCEEpriOverlapNIdPi0[nlm][i] = 0;
4914e781 363
83351853 364 fhMCESplitEFracOverlap0 [nlm][i] = 0;
365 fhMCESplitEFracOverlap1 [nlm][i] = 0;
366 fhMCESplitEFracOverlapN [nlm][i] = 0;
367 fhMCESplitEFracOverlap0Match[nlm][i] = 0;
368 fhMCESplitEFracOverlap1Match[nlm][i] = 0;
369 fhMCESplitEFracOverlapNMatch[nlm][i] = 0;
b2e375c7 370
371 fhMCENOverlaps [nlm][i] = 0;
372 fhMCENOverlapsMatch [nlm][i] = 0;
b583134f 373
b2e375c7 374 if(i > 3) continue ;
375
376 fhMCPi0MassM02Overlap0 [nlm][i] = 0;
377 fhMCPi0MassM02Overlap1 [nlm][i] = 0;
378 fhMCPi0MassM02OverlapN [nlm][i] = 0;
379 fhMCPi0MassM02Overlap0Match[nlm][i] = 0;
380 fhMCPi0MassM02Overlap1Match[nlm][i] = 0;
381 fhMCPi0MassM02OverlapNMatch[nlm][i] = 0;
382 }
992b14a7 383 }
384
5c46c992 385 for(Int_t i = 0; i < 2; i++)
386 {
e671adc2 387 fhSplitEFractionvsAsyNLocMax1[i] = 0;
388 fhSplitEFractionvsAsyNLocMax2[i] = 0;
389 fhSplitEFractionvsAsyNLocMaxN[i] = 0;
5c46c992 390 }
391
7b686344 392 for(Int_t i = 0; i < 4; i++)
393 {
394 fhMassM02NLocMax1Ebin[i] = 0 ;
395 fhMassM02NLocMax2Ebin[i] = 0 ;
396 fhMassM02NLocMaxNEbin[i] = 0 ;
b8eb40fc 397
398 fhMassAsyNLocMax1Ebin[i] = 0 ;
399 fhMassAsyNLocMax2Ebin[i] = 0 ;
400 fhMassAsyNLocMaxNEbin[i] = 0 ;
401
402 fhAsyMCGenRecoNLocMax1EbinPi0[i] = 0 ;
403 fhAsyMCGenRecoNLocMax2EbinPi0[i] = 0 ;
404 fhAsyMCGenRecoNLocMaxNEbinPi0[i] = 0 ;
d2655d46 405
406 fhMassDispEtaNLocMax1Ebin[i] = 0 ;
407 fhMassDispEtaNLocMax2Ebin[i] = 0 ;
408 fhMassDispEtaNLocMaxNEbin[i] = 0 ;
409
410 fhMassDispPhiNLocMax1Ebin[i] = 0 ;
411 fhMassDispPhiNLocMax2Ebin[i] = 0 ;
412 fhMassDispPhiNLocMaxNEbin[i] = 0 ;
413
414 fhMassDispAsyNLocMax1Ebin[i] = 0 ;
415 fhMassDispAsyNLocMax2Ebin[i] = 0 ;
416 fhMassDispAsyNLocMaxNEbin[i] = 0 ;
8e81c2cf 417
418 fhMCAsymM02NLocMax1MCPi0Ebin[i] = 0 ;
419 fhMCAsymM02NLocMax2MCPi0Ebin[i] = 0 ;
420 fhMCAsymM02NLocMaxNMCPi0Ebin[i] = 0 ;
7b686344 421 }
422
dbe09c26 423 for(Int_t nlm = 0; nlm < 3; nlm++)
424 {
b583134f 425
426 fhMCPi0DecayPhotonHitHighLMDiffELM1 [nlm] = 0 ;
427 fhMCPi0DecayPhotonAdjHighLMDiffELM1 [nlm] = 0 ;
428 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = 0 ;
429 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = 0 ;
430
431 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1 [nlm] = 0 ;
432 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1 [nlm] = 0 ;
433 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = 0 ;
434 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = 0 ;
435
436 fhMCPi0DecayPhotonHitHighLMDiffELM2 [nlm] = 0 ;
437 fhMCPi0DecayPhotonAdjHighLMDiffELM2 [nlm] = 0 ;
438 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = 0 ;
439 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = 0 ;
440
441 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2 [nlm] = 0 ;
442 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2 [nlm] = 0 ;
443 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = 0 ;
29555e96 444 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = 0 ;
445
446 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1 [nlm] = 0 ;
447 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1 [nlm] = 0 ;
448 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = 0 ;
449 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = 0 ;
b583134f 450
29555e96 451 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ;
452 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ;
453 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ;
454 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ;
455
456 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2 [nlm] = 0 ;
457 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2 [nlm] = 0 ;
458 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = 0 ;
459 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = 0 ;
460
461 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ;
462 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ;
463 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ;
464 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ;
465
466 fhMCPi0DecayPhotonHitHighLMMass [nlm] = 0 ;
b583134f 467 fhMCPi0DecayPhotonAdjHighLMMass [nlm] = 0 ;
468 fhMCPi0DecayPhotonHitOtherLMMass[nlm] = 0 ;
469 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = 0 ;
470 fhMCPi0DecayPhotonAdjacentMass [nlm] = 0 ;
471 fhMCPi0DecayPhotonHitNoLMMass [nlm] = 0 ;
472
473 fhMCPi0DecayPhotonHitHighLMOverlapMass [nlm] = 0 ;
474 fhMCPi0DecayPhotonAdjHighLMOverlapMass [nlm] = 0 ;
475 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = 0 ;
476 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = 0 ;
477 fhMCPi0DecayPhotonAdjacentOverlapMass [nlm] = 0 ;
478 fhMCPi0DecayPhotonHitNoLMOverlapMass [nlm] = 0 ;
479
dbe09c26 480 fhPi0CellE [nlm] = 0 ;
481 fhPi0CellEFrac [nlm] = 0 ;
482 fhPi0CellLogEFrac[nlm] = 0 ;
483
19391b8c 484 fhPi0CellEMaxEMax2Frac [nlm] = 0 ;
485 fhPi0CellEMaxClusterFrac [nlm] = 0 ;
486 fhPi0CellEMax2ClusterFrac[nlm] = 0 ;
487
488 fhPi0CellEMaxFrac [nlm] = 0 ;
489 fhPi0CellEMax2Frac[nlm] = 0 ;
490
5cd814a9 491 for(Int_t i = 0; i < 20; i++)
19391b8c 492 {
493 fhM02WeightPi0 [nlm][i] = 0;
494 fhM02ECellCutPi0[nlm][i] = 0;
495 }
ce49dd72 496
497 fhMassBadDistClose[nlm] = 0;
498 fhM02BadDistClose [nlm] = 0;
499 fhMassOnBorder [nlm] = 0;
500 fhM02OnBorder [nlm] = 0;
b583134f 501
502 fhAsyMCGenRecoDiffMCPi0 [nlm] = 0;
503 fhAsyMCGenRecoDiffMCPi0Conv[nlm] = 0;
504
dbe09c26 505 }
506
ed10b649 507 for(Int_t i = 0; i < 7; i++)
508 {
509 for(Int_t j = 0; j < 4; j++)
510 {
511
512 fhArmNLocMax1[i][j] = 0;
513 fhArmNLocMax2[i][j] = 0;
514 fhArmNLocMaxN[i][j] = 0;
515
516 fhArmPi0NLocMax1[i][j] = 0;
517 fhArmPi0NLocMax2[i][j] = 0;
518 fhArmPi0NLocMaxN[i][j] = 0;
519
520 fhArmAfterCutsNLocMax1[i][j] = 0;
521 fhArmAfterCutsNLocMax2[i][j] = 0;
522 fhArmAfterCutsNLocMaxN[i][j] = 0;
523
524 }
525 }
526
ff6aa4ce 527 for(Int_t i = 0; i < 5; i++)
528 {
529 for(Int_t j = 0; j < 5; j++)
530 {
58a18c5d 531 fhNLocMaxDiffCut [i][j][0] = 0;
532 fhNLocMaxDiffCut [i][j][1] = 0;
533 fhNLocMaxDiffCutPi0[i][j][0] = 0;
534 fhNLocMaxDiffCutPi0[i][j][1] = 0;
ff6aa4ce 535 for(Int_t k = 0; k < 3; k++)
536 {
58a18c5d 537 fhM02NLocMaxDiffCut [i][j][k][0] = 0;
538 fhM02NLocMaxDiffCut [i][j][k][1] = 0;
539 fhM02NLocMaxDiffCutPi0 [i][j][k][0] = 0;
540 fhM02NLocMaxDiffCutPi0 [i][j][k][1] = 0;
541 fhMassNLocMaxDiffCut [i][j][k][0] = 0;
542 fhMassNLocMaxDiffCut [i][j][k][1] = 0;
543 fhMassNLocMaxDiffCutPi0[i][j][k][0] = 0;
544 fhMassNLocMaxDiffCutPi0[i][j][k][1] = 0;
ff6aa4ce 545 }
546 }
547 }
548
992b14a7 549 InitParameters();
19391b8c 550
992b14a7 551}
552
b94e038e 553//___________________________________________________________________________________________________________________
554void AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(AliVCluster* cluster, Int_t mcindex, Int_t noverlaps,
555 Float_t e1, Float_t e2, Float_t mass)
b583134f 556 //Float_t m02,
4914e781 557 //TLorentzVector l1, TLorentzVector l2)
b2e375c7 558{
559 // Check origin NLM tower of the cluster, when MC gives merged pi0
560
b2e375c7 561 if(mcindex != kmcPi0 && mcindex != kmcPi0Conv) return;
36769d30 562
b2e375c7 563 const UInt_t nc = cluster->GetNCells();
564 Int_t list[nc];
565 Float_t elist[nc];
566 Int_t nMax = GetCaloUtils()->GetNumberOfLocalMaxima(cluster, GetEMCALCells(),list, elist);
36769d30 567
4914e781 568
569 //// PRINTS /////
570
571 //if(mcindex==kmcPi0) printf("** Normal Pi0 **\n");
572 //if(mcindex==kmcPi0Conv) printf("** Converted Pi0 **\n");
573
574// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
b2e375c7 575// {
4914e781 576// 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",
577// nMax, noverlaps,mass,m02,
578// l1.E(),l1.Eta(),l1.Phi()*TMath::RadToDeg(),
579// l2.E(),l2.Eta(),l2.Phi()*TMath::RadToDeg(), (l1+l2).M());
36769d30 580//
4914e781 581// // Study the mothers of cluster
582// printf("Cluster MC labels %d \n", cluster->GetNLabels());
583// for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ )
36769d30 584// {
4914e781 585// Int_t mclabel = cluster->GetLabels()[ilab];
586//
587// Bool_t mOK = 0;
588// Int_t mpdg = -999999;
589// Int_t mstatus = -1;
590// Int_t grandLabel = -1;
1a8c88c1 591// fPrimaryMom = GetMCAnalysisUtils()->GetMother(mclabel,GetReader(),mpdg,mstatus,mOK,grandLabel);
4914e781 592//
593// printf("******** mother %d : Label %d, pdg %d; status %d, E %2.2f, Eta %2.2f, Phi %2.2f, ok %d, mother label %d\n",
1a8c88c1 594// ilab, mclabel, mpdg, mstatus,fPrimaryMom.E(), fPrimaryMom.Eta(),fPrimaryMom.Phi()*TMath::RadToDeg(),mOK,grandLabel);
4914e781 595//
596// if( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 )
36769d30 597// {
4914e781 598// while( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 )
599// {
600// Int_t newLabel = -1;
601// TLorentzVector grandmother = GetMCAnalysisUtils()->GetMother(grandLabel,GetReader(),mpdg,mstatus,mOK,newLabel);
602// 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",
603// ilab, grandLabel, mpdg, mstatus,grandmother.E(), grandmother.Eta(), grandmother.Phi()*TMath::RadToDeg(),mOK,newLabel);
604// grandLabel = newLabel;
605//
606// }
36769d30 607// }
608// }
b2e375c7 609//
4914e781 610// printf("Cells in cluster %d\n",cluster->GetNCells() );
611// for(Int_t icell = 0; icell < cluster->GetNCells(); icell++)
612// {
613// Int_t absIdCell = cluster->GetCellAbsId(icell);
614// Int_t mcLabel = GetEMCALCells()->GetCellMCLabel(absIdCell);
615// GetReader()->RemapMCLabelForAODs(mcLabel);
616// Int_t ietac=-1; Int_t iphic = 0; Int_t rcuc = 0;
0cea6003 617// Int_t smc = GetModuleNumberCellIndexes(absIdCell,GetCalorimeter(), ietac, iphic, rcuc);
4914e781 618//
619// 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);
620// }
bfa0a1a7 621// }
4914e781 622 //// PRINTS /////
623
bfa0a1a7 624
625 //If only one maxima, consider all the towers in the cluster
626 if(nMax==1)
627 {
36769d30 628 for (UInt_t icell = 0; icell < nc; icell++ )
629 {
630 list [icell] = cluster->GetCellAbsId(icell);
631 elist[icell] = GetEMCALCells()->GetCellAmplitude(list[icell]);
632 }
b2e375c7 633 }
634
83351853 635 Int_t nmaxima = nMax;
636 if(nMax==1) nmaxima = nc ;
637
b2e375c7 638 //Find highest energy Local Maxima Towers
86b521c9 639 Int_t imax = 999;
640 Int_t imax2 = 999;
b2e375c7 641 Float_t emax = -1;
642 Float_t emax2 = -1;
83351853 643 for(Int_t i = 0; i < nmaxima; i++)
b2e375c7 644 {
645 //printf("i %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]);
646 if(elist[i] > emax)
647 {
648 imax = i;
649 emax = elist[i];
650 }
651 }
86b521c9 652
b2e375c7 653 //Find second highest
83351853 654 for(Int_t i = 0; i < nmaxima; i++)
b2e375c7 655 {
656 if(i==imax) continue;
bfa0a1a7 657
83351853 658 //printf("j %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]);
36769d30 659
b2e375c7 660 if(elist[i] > emax2)
661 {
662 imax2 = i;
663 emax2 = elist[i];
664 }
665 }
666
4914e781 667// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
668// printf("Local maxima: a) index %d, absId %d; b) index %d, absId %d\n",imax, list[imax], imax2, list[imax2]);
b2e375c7 669
36769d30 670 //---------------------------------------------------------
83351853 671 //---------------------------------------------------------
672 // Compare ancestors of all local maxima at cell MC level
673 //---------------------------------------------------------
36769d30 674 //---------------------------------------------------------
83351853 675
b2e375c7 676 // Check that the highest mc label and the max cluster label are the same
87c4fd53 677 Int_t mcLabelMax = -1 ;
86b521c9 678 if(imax >=0 && imax < 999)
87c4fd53 679 {
680 mcLabelMax = GetEMCALCells()->GetCellMCLabel(list[imax]);
681 GetReader()->RemapMCLabelForAODs(mcLabelMax);
682 }
683
684 Int_t mcLabelMax2 = -1 ;
86b521c9 685 if(imax2 >=0 && imax2 < 999)
87c4fd53 686 {
687 mcLabelMax2 = GetEMCALCells()->GetCellMCLabel(list[imax2]);
688 GetReader()->RemapMCLabelForAODs(mcLabelMax2);
689 }
b2e375c7 690
691 Int_t mcLabelclusterMax = cluster->GetLabels()[0];
692 Bool_t matchHighLMAndHighMC = kFALSE;
693
36769d30 694 //printf("MC label: LM1 %d, LM2 %d, cluster %d\n",mcLabelMax,mcLabelMax2,mcLabelclusterMax);
695
87c4fd53 696 if(mcLabelclusterMax == mcLabelMax && mcLabelclusterMax >= 0)
b2e375c7 697 {
698 matchHighLMAndHighMC = kTRUE;
36769d30 699 //printf("\t *** MATCH cluster and LM maximum ***\n");
b2e375c7 700 }
701 else
702 {
36769d30 703 //printf("\t *** NO MATCH cluster and LM maximum, check second ***\n");
87c4fd53 704 if(mcLabelclusterMax == mcLabelMax2 && mcLabelclusterMax >= 0)
b2e375c7 705 {
36769d30 706 //printf("\t \t *** MATCH cluster and 2nd LM maximum ***\n");
b2e375c7 707 matchHighLMAndHighMC = kTRUE;
708 }
709 else
710 {
36769d30 711 //printf("\t \t *** NO MATCH***\n");
b2e375c7 712 matchHighLMAndHighMC = kFALSE;
713 }
714 }
715
716 // Compare the common ancestors of the 2 highest energy local maxima
717 Int_t ancPDG = 0, ancStatus = -1;
b2e375c7 718 Int_t ancLabel = 0;
719 Bool_t high = kFALSE;
720 Bool_t low = kFALSE;
721
722// // print maxima origin
723// for(Int_t i = 0; i < nMax; i++)
724// {
725// Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]);
726// GetReader()->RemapMCLabelForAODs(mcLabel1);
727//
728// Bool_t ok =kFALSE,gok = kFALSE;
729// Int_t pdg = -22222, status = -1;
730// Int_t gpdg = -22222, gstatus = -1;
731// Int_t ggpdg = -22222, ggstatus = -1;
732// Int_t gLabel = -1, ggLabel = -1;
733// TLorentzVector primary =GetMCAnalysisUtils()->GetMother (mcLabel1,GetReader(), pdg, status, ok);
734// TLorentzVector gprimary =GetMCAnalysisUtils()->GetGrandMother(mcLabel1,GetReader(), gpdg, gstatus,gok, gLabel,ggLabel);
735// TLorentzVector ggprimary =GetMCAnalysisUtils()->GetMother(ggLabel ,GetReader(),ggpdg,ggstatus,gok);
736// 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",
737// i,mcLabel1,pdg,primary.E(), gLabel,gpdg,gprimary.E(), ggLabel,ggpdg,ggprimary.E());
738// }
83351853 739
bfa0a1a7 740 for(Int_t i = 0; i < nmaxima-1; i++)
b2e375c7 741 {
742 Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]);
743 GetReader()->RemapMCLabelForAODs(mcLabel1);
744
bfa0a1a7 745 for(Int_t j = i+1; j < nmaxima; j++)
b2e375c7 746 {
747 Int_t mcLabel2 = GetEMCALCells()->GetCellMCLabel(list[j]);
748 GetReader()->RemapMCLabelForAODs(mcLabel2);
749
750 if(mcLabel1 < 0 || mcLabel2 < 0 )
751 {
752 //printf("\t i %d label %d - j %d label %d; skip!\n",i,mcLabel1,j,mcLabel2);
753 continue;
754 }
83351853 755
b2e375c7 756 ancLabel = GetMCAnalysisUtils()->CheckCommonAncestor(mcLabel1,mcLabel2,
1a8c88c1 757 GetReader(),ancPDG,ancStatus,fPrimaryMom,fProdVertex);
b2e375c7 758 if(ancPDG==111)
759 {
760 if((i==imax && j==imax2) || (j==imax && i==imax2))
761 high = kTRUE;
762 else
763 low = kTRUE;
764 }
765 else if(ancPDG==22 || TMath::Abs(ancPDG)==11)
766 {
767 // If both bits are set, it could be that one of the maxima had a conversion
768 // reset the bit in this case
769 if(high && low)
770 {
771 //printf("\t Reset low bit\n");
772 low = kFALSE;
773 }
774 }
775
776 Bool_t ok =kFALSE;
777 Int_t pdg = -22222, status = -1;
1a8c88c1 778 fPrimaryMom = GetMCAnalysisUtils()->GetMother(ancLabel,GetReader(), pdg, status, ok);
b2e375c7 779 //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);
780
781 }
782 }
783
784 Float_t en = cluster->E();
785
4914e781 786// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
787// printf("Cell MC match: nMax %d; Match MC? %d; high %d; low %d\n",nMax,matchHighLMAndHighMC,high,low);
b2e375c7 788
36769d30 789 if(!noverlaps)
b2e375c7 790 {
36769d30 791 if(matchHighLMAndHighMC)
792 {
793 if (high && !low) fhMCPi0HighNLMPair->Fill(en,nMax);
794 else if(low && !high) fhMCPi0LowNLMPair ->Fill(en,nMax);
795 else if(low && high) fhMCPi0AnyNLMPair ->Fill(en,nMax);
796 else fhMCPi0NoneNLMPair->Fill(en,nMax);
797 }
798 else
799 {
800 if (high && !low) fhMCPi0HighNLMPairNoMCMatch->Fill(en,nMax);
801 else if(low && !high) fhMCPi0LowNLMPairNoMCMatch ->Fill(en,nMax);
802 else if(low && high) fhMCPi0AnyNLMPairNoMCMatch ->Fill(en,nMax);
803 else fhMCPi0NoneNLMPairNoMCMatch->Fill(en,nMax);
804 }
b2e375c7 805 }
806 else
807 {
36769d30 808 if(matchHighLMAndHighMC)
809 {
810 if (high && !low) fhMCPi0HighNLMPairOverlap->Fill(en,nMax);
811 else if(low && !high) fhMCPi0LowNLMPairOverlap->Fill(en,nMax);
812 else if(low && high) fhMCPi0AnyNLMPairOverlap->Fill(en,nMax);
813 else fhMCPi0NoneNLMPairOverlap->Fill(en,nMax);
814 }
815 else
816 {
817 if (high && !low) fhMCPi0HighNLMPairNoMCMatchOverlap->Fill(en,nMax);
818 else if(low && !high) fhMCPi0LowNLMPairNoMCMatchOverlap->Fill(en,nMax);
819 else if(low && high) fhMCPi0AnyNLMPairNoMCMatchOverlap->Fill(en,nMax);
820 else fhMCPi0NoneNLMPairNoMCMatchOverlap->Fill(en,nMax);
821 }
b2e375c7 822 }
1253480f 823
36769d30 824 //----------------------------------------------------------------------
83351853 825 //----------------------------------------------------------------------
826 // Compare MC decay photon projection to cell location and Local Maxima
827 //----------------------------------------------------------------------
36769d30 828 //----------------------------------------------------------------------
83351853 829
830 // Get the mother pi0
831
832 Bool_t ok = kFALSE;
833 Int_t pdg = -22222, status = -1;
834 Int_t gLabel = -1;
835
836 Int_t label = cluster->GetLabel();
1a8c88c1 837
83351853 838 while( pdg!=111 && label>=0 )
839 {
1a8c88c1 840 fPrimaryMom = GetMCAnalysisUtils()->GetGrandMother(label,GetReader(),pdg,status,ok, label,gLabel);
83351853 841 }
842
843 if(pdg!=111 || label < 0)
844 {
a6d3b0a8 845 Info("CheckLocalMaximaMCOrigin","Mother Pi0 not found!\n");
83351853 846 return;
847 }
848
849 Int_t nDaugthers = GetMCAnalysisUtils()->GetNDaughters(label,GetReader(),ok);
850
851 if(nDaugthers != 2)
852 {
a6d3b0a8 853 Info("CheckLocalMaximaMCOrigin","N daughters %d !=2!\n",nDaugthers);
83351853 854 return;
855 }
856
857 // Get daughter photon kinematics
858 Int_t pdg0 = -22222, status0 = -1; Int_t label0 = -1;
1a8c88c1 859 fMCDaughMom1 = GetMCAnalysisUtils()->GetDaughter(0,label,GetReader(),pdg0,status0,ok,label0);
83351853 860 Int_t pdg1 = -22222, status1 = -1; Int_t label1 = -1;
1a8c88c1 861 fMCDaughMom2 = GetMCAnalysisUtils()->GetDaughter(1,label,GetReader(),pdg1,status1,ok,label1);
83351853 862
863 if(pdg1!=22 || pdg0 != 22)
864 {
a6d3b0a8 865 Info("CheckLocalMaximaMCOrigin","Wrong daughters PDG: photon0 %d - photon1 %d\n",pdg0,pdg1);
83351853 866 return;
867 }
868
869 // In what cells did the photons hit
1a8c88c1 870 Float_t eta0 = fMCDaughMom1.Eta();
871 Float_t eta1 = fMCDaughMom2.Eta();
83351853 872
1a8c88c1 873 Float_t phi0 = fMCDaughMom1.Phi();
874 Float_t phi1 = fMCDaughMom2.Phi();
83351853 875
4914e781 876// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
877// {
878// 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",
1a8c88c1 879// label , fPrimaryMom.E() , fPrimaryMom.Eta(),fPrimaryMom.Phi()*TMath::RadToDeg(), (fMCDaughMom1+fMCDaughMom2).M(),
880// label0, fMCDaughMom1.E(), eta0, phi0*TMath::RadToDeg(),
881// label1, fMCDaughMom2.E(), eta1, phi1*TMath::RadToDeg());
4914e781 882//
883// TLorentzVector momclus;
884// cluster->GetMomentum(momclus,GetVertex(0));
885// 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());
886// }
36769d30 887
83351853 888 if(phi0 < 0 ) phi0+=TMath::TwoPi();
889 if(phi1 < 0 ) phi1+=TMath::TwoPi();
890
891 Int_t absId0=-1, absId1=-1;
892 GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta0, phi0, absId0);
893 GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta1, phi1, absId1);
894
7e2cebc3 895 if(absId0 < 0 || absId1 < 0)
83351853 896 {
4914e781 897 //printf("AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(() - Photon hit AbsId: photon0 %d - photon1 %d\n",absId0,absId1);
83351853 898 return;
899 }
900
36769d30 901 //-----------------------------------------------
83351853 902 // Check that the 2 photons hit the Local Maxima
36769d30 903 //-----------------------------------------------
83351853 904
4914e781 905
906// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
907// {
908// printf("Photons AbsId (%d,%d); Local Maxima AbsId(%d,%d)\n",absId0,absId1,list[imax],list[imax2]);
909// printf("Photon1 (eta,phi)=(%f,%f); Photon2 (eta,phi)=(%f,%f);\n",eta0,phi0*TMath::RadToDeg(),eta1,phi1*TMath::RadToDeg());
910//
911// Int_t ieta0=-1; Int_t iphi0 = 0; Int_t rcu0 = 0;
0cea6003 912// Int_t sm0 = GetModuleNumberCellIndexes(absId0,GetCalorimeter(), ieta0, iphi0, rcu0);
4914e781 913// Int_t ieta1=-1; Int_t iphi1 = 0; Int_t rcu1 = 0;
0cea6003 914// Int_t sm1 = GetModuleNumberCellIndexes(absId1,GetCalorimeter(), ieta1, iphi1, rcu1);
4914e781 915//
916// printf("Photon1 (id,sm,eta,phi)=(%d,%d,%d,%d), Photon2 (id,sm,eta,phi)=(%d,%d,%d,%d)\n",
917// absId0,sm0,ieta0,iphi0,absId1,sm1,ieta1,iphi1);
918//
919// Int_t ietam0=-1; Int_t iphim0 = 0; Int_t rcum0 = 0; Int_t smm0 = -1 ;
0cea6003 920// if(imax >= 0) smm0 = GetModuleNumberCellIndexes(list[imax] ,GetCalorimeter(), ietam0, iphim0, rcum0);
4914e781 921// Int_t ietam1=-1; Int_t iphim1 = 0; Int_t rcum1 = 0; Int_t smm1 = -1 ;
0cea6003 922// if(imax2 >= 0) smm1 = GetModuleNumberCellIndexes(list[imax2],GetCalorimeter(), ietam1, iphim1, rcum1);
4914e781 923//
924// printf("Max (id, sm,eta,phi)=(%d,%d,%d,%d), Max2 (id, sm,eta,phi)=(%d,%d,%d,%d)\n",
925// list[imax],smm0,ietam0,iphim0,list[imax2],smm1,ietam1,iphim1);
926// }
927
b583134f 928 Int_t inlm = nMax-1;
929 if(inlm > 2) inlm = 2;
83351853 930
36769d30 931 Bool_t match0 = kFALSE;
932 Bool_t match1 = kFALSE;
933 Int_t imatch0 = -1;
934 Int_t imatch1 = -1;
935 if(imax >= 0 && imax2 >=0 && absId0 > 0 && absId1 > 0 )
87c4fd53 936 {
36769d30 937 if (absId0 == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
938 else if(absId0 == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
939
940 if (absId1 == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
941 else if(absId1 == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
87c4fd53 942 }
83351853 943
36769d30 944 //printf("primary imatch0 %d, imatch1 %d\n",imatch0,imatch1);
945
946 // If one or the 2 not matched, check with the other MC labels
947 // only in case there was a conversion
83351853 948
36769d30 949 Int_t absId0second = -1;
950 Int_t absId1second = -1;
951 Int_t secLabel0 = -1;
952 Int_t secLabel1 = -1;
953 Int_t mcLabel0 = -1;
954 Int_t mcLabel1 = -1;
955 Bool_t secOK = 0;
956 Int_t secpdg = -999999;
957 Int_t secstatus = -1;
958 Int_t secgrandLabel = -1;
959
960 if(match0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
961 if(match1) { secLabel1 = label1 ; mcLabel1 = label1 ; }
962
963 if((!match0 || !match1) && mcindex == kmcPi0Conv)
83351853 964 {
36769d30 965 for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ )
966 {
967 Int_t mclabel = cluster->GetLabels()[ilab];
968
969 //printf("Check label %d - %d\n",ilab,mclabel);
970
971 if(mclabel == label0 || mclabel == label1)
972 {
973 //printf("continue: secLabel %d, label0 %d, label1 %d\n",mclabel,label0,label1);
974 if(mclabel == label0 && secLabel0 < 0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
975 if(mclabel == label1 && secLabel1 < 0) { secLabel1 = label1 ; mcLabel1 = label1 ; }
976 continue ;
977 }
978
979 //printf("Before while: secLabel0 %d, secLabel1 %d\n",secLabel0,secLabel1);
980
981 // match mc label and parent photon
982 Int_t tmplabel = mclabel;
983 while((secLabel0 < 0 || secLabel1 < 0) && tmplabel > 0 )
984 {
1a8c88c1 985 fPrimaryMom = GetMCAnalysisUtils()->GetMother(tmplabel,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
36769d30 986
987 //printf("\t \t while secLabel %d, mom %d, granmom %d\n",mclabel,tmplabel,secgrandLabel);
988
989 if((secgrandLabel == label0) || (secgrandLabel == label1 ))
990 {
991 //printf("mcMatch! grand label %d, secLabel %d\n",secgrandLabel, mclabel);
992 if(!match0 && mcLabel1 != secgrandLabel) { secLabel0 = mclabel; mcLabel0 = secgrandLabel; }
993 if(!match1 && mcLabel0 != secgrandLabel) { secLabel1 = mclabel; mcLabel1 = secgrandLabel; }
994 }
995
996 //printf("\t GrandMother %d, secLabel0 %d, secLabel1 %d \n",secgrandLabel, secLabel0,secLabel1);
83351853 997
36769d30 998 tmplabel = secgrandLabel;
999 }
1000 }
83351853 1001
36769d30 1002 // Get the position of the found secondaries mother
1003 if(!match0 && secLabel0 > 0)
87c4fd53 1004 {
1a8c88c1 1005 fPrimaryMom = GetMCAnalysisUtils()->GetMother(secLabel0,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
36769d30 1006
1a8c88c1 1007 //Float_t eta = fPrimaryMom.Eta();
1008 //Float_t phi = fPrimaryMom.Phi();
4914e781 1009 //if(phi < 0 ) phi+=TMath::TwoPi();
1010 //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId0second);
36769d30 1011
1a8c88c1 1012 //printf("Secondary MC0 label %d, absId %d E %2.2F eta %2.2f, phi %f\n", secLabel0,absId0second, fPrimaryMom.E(),fPrimaryMom.Eta(),fPrimaryMom.Phi()*TMath::RadToDeg());
36769d30 1013
1014 if(absId0second == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
1015 if(absId0second == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
87c4fd53 1016 }
36769d30 1017
1018 if(!match1 && secLabel1 > 0)
87c4fd53 1019 {
1a8c88c1 1020 fPrimaryMom = GetMCAnalysisUtils()->GetMother(secLabel1,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
36769d30 1021
1a8c88c1 1022 //Float_t eta = fPrimaryMom.Eta();
1023 //Float_t phi = fPrimaryMom.Phi();
4914e781 1024 //if(phi < 0 ) phi+=TMath::TwoPi();
1025 //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId1second);
36769d30 1026
1a8c88c1 1027 //printf("Secondary MC1 label %d absId %d E %2.2F eta %2.2f, phi %f\n",secLabel1, absId1second, fPrimaryMom.E(),fPrimaryMom.Eta(),fPrimaryMom.Phi()*TMath::RadToDeg());
36769d30 1028
1029 if(absId1second == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
1030 if(absId1second == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
87c4fd53 1031 }
36769d30 1032
1033 //printf("secondary label mc0 %d, mc1 %d, imatch0 %d, imatch1 %d\n",secLabel0,secLabel1,imatch0,imatch1);
1034
1035 }
1036
1037 //printf("imatch0 %d, imatch1 %d\n",imatch0,imatch1);
1038 if( match0 && match1 )
1039 {
4914e781 1040// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1041// printf("a) Both Photons hit local maxima \n");
36769d30 1042
b583134f 1043 if(!noverlaps)
1044 {
1045 fhMCPi0DecayPhotonHitHighLM ->Fill(en,nMax);
1046 fhMCPi0DecayPhotonHitHighLMMass[inlm]->Fill(en,mass);
1047 if(match0 && imatch0 == imax)
1048 {
1a8c88c1 1049 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1050 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
1051 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1052 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1053 }
1054 else
1055 {
1a8c88c1 1056 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1057 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
1058 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1059 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1060 }
1061 }
1062 else
1063 {
1064 fhMCPi0DecayPhotonHitHighLMOverlap ->Fill(en,nMax);
1065 fhMCPi0DecayPhotonHitHighLMOverlapMass[inlm]->Fill(en,mass);
1066 if(match0 && imatch0 == imax )
1067 {
1a8c88c1 1068 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1069 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
1070 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1071 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1072 }
1073 else
1074 {
1a8c88c1 1075 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1076 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
1077 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1078 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1079 }
1080
1081 }
36769d30 1082
1083 return ;
1084 }
1085
1086 //printf("Any match? photon0 %d, photon1 %d\n",match0,match1);
1087 //if(!match0 && !match1) printf("WARNING, LM not matched to any photon decay!\n");
1088
1089 //---------------------------------------------
1090 // Check the adjacent cells to the local maxima
1091 //---------------------------------------------
1092
36769d30 1093 if(!match0)
1094 {
0cea6003 1095 if(imatch1!=imax && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,list[imax])) { match0 = kTRUE; imatch0 = imax ; }
36769d30 1096 //printf("imax - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam0,ieta0-ietam0, iphi0,iphim0,iphi0-iphim0);
0cea6003 1097 if(imatch1!=imax2 && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,list[imax2]) ) { match0 = kTRUE; imatch0 = imax2 ; }
36769d30 1098 //printf("imax2 - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam1,ieta0-ietam1, iphi0,iphim1,iphi0-iphim1);
1099 }
1100
1101 if(!match1)
1102 {
0cea6003 1103 if(imatch0!=imax && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId1,list[imax]) ) { match1 = kTRUE; imatch1 = imax ; }
36769d30 1104 //printf("imax - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam0,ieta1-ietam0, iphi1,iphim0,iphi1-iphim0);
1105
0cea6003 1106 if(imatch0!=imax2 && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId1,list[imax2])) { match1 = kTRUE; imatch1 = imax2 ; }
36769d30 1107 //printf("imax2 - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam1,ieta1-ietam1, iphi1,iphim1,iphi1-iphim1);
1108 }
1109
1110 //printf("Local Maxima: adjacent0 %d,adjacent1 %d \n",match0,match1);
1111
1112 if(match0 && match1)
1113 {
4914e781 1114// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1115// printf("b) Both Photons hit local maxima or cell adjacent or 2 cells adjacent \n");
83351853 1116
b583134f 1117 if(!noverlaps)
1118 {
1119 fhMCPi0DecayPhotonAdjHighLM ->Fill(en,nMax);
1120 fhMCPi0DecayPhotonAdjHighLMMass[inlm]->Fill(en,mass);
1121
1122 if(match0 && imatch0 == imax)
1123 {
1a8c88c1 1124 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1125 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
1126 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1127 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1128 }
1129 else
1130 {
1a8c88c1 1131 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1132 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
1133 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1134 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1135 }
1136 }
1137 else
1138 {
1139 fhMCPi0DecayPhotonAdjHighLMOverlap ->Fill(en,nMax);
1140 fhMCPi0DecayPhotonAdjHighLMOverlapMass[inlm]->Fill(en,mass);
1141 if(match0 && imatch0 == imax)
1142 {
1a8c88c1 1143 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1144 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
1145 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1146 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1147 }
1148 else
1149 {
1a8c88c1 1150 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1151 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
1152 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1153 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1154 }
1155 }
36769d30 1156
1157 return;
1158 }
36769d30 1159
1160 // Decay photon cells are adjacent?
1161
0cea6003 1162 if( (match0 || match1) && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,absId1) )
36769d30 1163 {
4914e781 1164// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1165// printf("c) Both Photons hit a local maxima and in adjacent cells \n");
b583134f 1166 if(!noverlaps)
1167 {
1168 fhMCPi0DecayPhotonAdjacent ->Fill(en,nMax);
1169 fhMCPi0DecayPhotonAdjacentMass[inlm]->Fill(en,mass);
1170 }
1171 else
1172 {
1173 fhMCPi0DecayPhotonAdjacentOverlap ->Fill(en,nMax);
1174 fhMCPi0DecayPhotonAdjacentOverlapMass[inlm]->Fill(en,mass);
1175 }
83351853 1176
36769d30 1177 return;
83351853 1178 }
1179
36769d30 1180 //--------------------
1181 // Other Local maxima
1182 //--------------------
1183
83351853 1184 Bool_t matchMCHitOtherLM = kFALSE;
36769d30 1185 if(!match1)
1186 {
1187 for(Int_t i = 0; i < nmaxima; i++)
1188 {
1189 if(imax!=i && imax2!=i && absId1 == list[i]) { match1 = kTRUE; matchMCHitOtherLM = kTRUE; }
1190 }
1191 }
1192
1193 if(!match0)
1194 {
1195 for(Int_t i = 0; i < nmaxima; i++)
1196 {
1197 if(imax!=i && imax2!=i && absId0 == list[i]) { match0 = kTRUE; matchMCHitOtherLM = kTRUE; }
1198 }
1199 }
1200
1201 if(matchMCHitOtherLM)
1202 {
4914e781 1203// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1204// printf("d) One Photon hits a local maxima, the other another not high \n");
36769d30 1205
b583134f 1206 if(!noverlaps)
1207 {
1208 fhMCPi0DecayPhotonHitOtherLM ->Fill(en,nMax);
1209 fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass);
1210 if(match0 && imatch0 == imax)
1211 {
1a8c88c1 1212 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1213 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1214 }
1215 else
1216 {
1a8c88c1 1217 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1218 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1219 }
1220 }
1221 else
1222 {
1223 fhMCPi0DecayPhotonHitOtherLMOverlap ->Fill(en,nMax);
1224 fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass);
1225 if(match0 && imatch0 == imax)
1226 {
1a8c88c1 1227 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1228 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1229 }
1230 else
1231 {
1a8c88c1 1232 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1233 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1234 }
1235 }
36769d30 1236
1237 return ;
1238 }
1239
1240 // Adjacent to other maxima
1241
1242 Bool_t adjacentOther1 = kFALSE;
1243 if(match0)
83351853 1244 {
36769d30 1245 for(Int_t i = 0; i < nmaxima; i++)
83351853 1246 {
36769d30 1247 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
0cea6003 1248 GetModuleNumberCellIndexes(list[i] ,GetCalorimeter(), ieta, iphi, rcu);
83351853 1249
36769d30 1250 //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
1251
0cea6003 1252 if(GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId1,list[i]) ) adjacentOther1 = kTRUE;
36769d30 1253
1254 //printf("Other Maxima: adjacentOther1 %d\n",adjacentOther1);
83351853 1255 }
1256 }
1257
36769d30 1258 Bool_t adjacentOther0 = kFALSE;
1259 if(match1)
83351853 1260 {
36769d30 1261 for(Int_t i = 0; i < nmaxima; i++)
83351853 1262 {
36769d30 1263 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
0cea6003 1264 GetModuleNumberCellIndexes(list[i] ,GetCalorimeter(), ieta, iphi, rcu);
83351853 1265
36769d30 1266 //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
1267
0cea6003 1268 if(GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,list[i]) ) adjacentOther0 = kTRUE;
36769d30 1269
1270 //printf("Other Maxima: adjacentOther0 %d\n",adjacentOther0);
83351853 1271 }
1272 }
1273
36769d30 1274 if((match0 && adjacentOther1) || (match1 && adjacentOther0))
1275 {
4914e781 1276
1277// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1278// printf("e) One Photon hits a local maxima, the other another not high, adjacent \n");
36769d30 1279
b583134f 1280 if(!noverlaps)
1281 {
1282 fhMCPi0DecayPhotonAdjOtherLM ->Fill(en,nMax);
1283 fhMCPi0DecayPhotonAdjOtherLMMass[inlm]->Fill(en,mass);
1284 if(match0 && imatch0 == imax)
1285 {
1a8c88c1 1286 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1287 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1288 }
1289 else
1290 {
1a8c88c1 1291 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1292 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1293 }
1294 }
1295 else
1296 {
1297 fhMCPi0DecayPhotonAdjOtherLMOverlap ->Fill(en,nMax);
1298 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[inlm]->Fill(en,mass);
1299 if(match0 && imatch0 == imax)
1300 {
1a8c88c1 1301 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1302 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1303 }
1304 else
1305 {
1a8c88c1 1306 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1307 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1308 }
1309 }
36769d30 1310
1311 return;
1312 }
1313
4914e781 1314// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1315// printf("f) No hit found \n");
b583134f 1316 if(!noverlaps)
1317 {
1318 fhMCPi0DecayPhotonHitNoLM ->Fill(en,nMax);
1319 fhMCPi0DecayPhotonHitNoLMMass[inlm]->Fill(en,mass);
1320 }
1321 else
1322 {
1323 fhMCPi0DecayPhotonHitNoLMOverlap ->Fill(en,nMax);
1324 fhMCPi0DecayPhotonHitNoLMOverlapMass[inlm]->Fill(en,mass);
1325 }
83351853 1326
b2e375c7 1327}
1328
b94e038e 1329//___________________________________________________________________________________________________________
1330void AliAnaInsideClusterInvariantMass::FillAngleHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex,
1331 Float_t en, Float_t e1, Float_t e2,
1332 Float_t angle, Float_t mass,
1333 Float_t anglePrim, Float_t m02,
1334 Float_t asym, Int_t pid, Int_t noverlaps)
b2e375c7 1335{
1336 // Fill histograms related to opening angle
29555e96 1337
1338 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1339 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1340 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1341 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
a6d3b0a8 1342
1343 Bool_t eCutOK= kFALSE;
1344 Int_t inlm = nMax-1;
1345 if(inlm > 2 ) inlm = 2;
1346 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1347 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1348 else if(ensubcut < 0.1) eCutOK = kTRUE;
1349
b2e375c7 1350 if (nMax==1)
1351 {
0186b6a2 1352 fhAnglePairNLocMax1[0][matched]->Fill(en,angle);
29555e96 1353
a6d3b0a8 1354 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1355 fhAnglePairAfterCutsNLocMax1[0][matched]->Fill(en,angle);
1356 if(pid==AliCaloPID::kPi0)
1357 fhAnglePairPi0NLocMax1[0][matched]->Fill(en,angle);
1358
4e5a94c5 1359 if(m02 > 0)
1360 {
1361 fhAnglePairOverM02NLocMax1[0][matched]->Fill(en,angle/m02);
1362 if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[0][matched]->Fill(en,angle/m02);
1363 }
1364
d261ae67 1365 if( en > 15 )
1366 {
1367 fhAnglePairMassNLocMax1[0][matched]->Fill(mass,angle);
1368 fhAnglePairM02NLocMax1 [0][matched]->Fill(m02 ,angle);
1369 }
b2e375c7 1370 }
1371 else if(nMax==2)
1372 {
0186b6a2 1373 fhAnglePairNLocMax2[0][matched]->Fill(en,angle);
29555e96 1374
a6d3b0a8 1375 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1376 fhAnglePairAfterCutsNLocMax2[0][matched]->Fill(en,angle);
1377 if(pid==AliCaloPID::kPi0)
1378 fhAnglePairPi0NLocMax2[0][matched]->Fill(en,angle);
1379
4e5a94c5 1380 if(m02 > 0)
1381 {
1382 fhAnglePairOverM02NLocMax2[0][matched]->Fill(en,angle/m02);
1383 if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[0][matched]->Fill(angle/m02,en);
1384 }
1385
d261ae67 1386 if( en > fHistoECut )
1387 {
1388 fhAnglePairMassNLocMax2[0][matched]->Fill(mass,angle);
1389 fhAnglePairM02NLocMax2 [0][matched]->Fill(m02,angle);
1390 }
b2e375c7 1391 }
1392 else if(nMax >2)
1393 {
0186b6a2 1394 fhAnglePairNLocMaxN[0][matched]->Fill(en,angle);
29555e96 1395
a6d3b0a8 1396 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1397 fhAnglePairAfterCutsNLocMaxN[0][matched]->Fill(en,angle);
1398 if(pid==AliCaloPID::kPi0)
1399 fhAnglePairPi0NLocMaxN[0][matched]->Fill(en,angle);
1400
4e5a94c5 1401 if(m02 > 0)
1402 {
1403 fhAnglePairOverM02NLocMaxN[0][matched]->Fill(en,angle/m02);
1404 if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[0][matched]->Fill(angle/m02,en);
1405 }
1406
d261ae67 1407 if( en > fHistoECut )
1408 {
1409 fhAnglePairMassNLocMaxN[0][matched]->Fill(mass,angle);
1410 fhAnglePairM02NLocMaxN [0][matched]->Fill(m02,angle);
1411 }
0186b6a2 1412 }
1413
1414 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
1415 {
1416 if (nMax==1)
1417 {
1418 fhAnglePairNLocMax1[mcIndex][matched]->Fill(en,angle);
d261ae67 1419 if( en > 15 )
1420 {
1421 fhAnglePairMassNLocMax1[mcIndex][matched]->Fill(mass,angle);
1422 fhAnglePairM02NLocMax1 [mcIndex][matched]->Fill(m02,angle);
1423 }
a6d3b0a8 1424 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1425 fhAnglePairAfterCutsNLocMax1[mcIndex][matched]->Fill(en,angle);
1426 if(pid==AliCaloPID::kPi0)
1427 fhAnglePairPi0NLocMax1[mcIndex][matched]->Fill(en,angle);
1428
4e5a94c5 1429 if(m02 > 0)
1430 {
1431 fhAnglePairOverM02NLocMax1[mcIndex][matched]->Fill(en,angle/m02);
1432 if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[mcIndex][matched]->Fill(angle/m02,en);
1433 }
1434
0186b6a2 1435 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1436 {
1437 fhAnglePairPrimPi0RecoNLocMax1->Fill(en,angle/anglePrim);
4e5a94c5 1438 if(m02>0)fhAnglePairPrimPi0OverM02NLocMax1->Fill(en,anglePrim/m02);
0186b6a2 1439 if(en > 15) fhAnglePairPrimPi0vsRecoNLocMax1->Fill(anglePrim,angle);
1440
1441 }
1442 }
1443 else if(nMax==2)
1444 {
1445 fhAnglePairNLocMax2[mcIndex][matched]->Fill(en,angle);
d261ae67 1446 if( en > fHistoECut )
1447 {
1448 fhAnglePairMassNLocMax2[mcIndex][matched]->Fill(mass,angle);
1449 fhAnglePairM02NLocMax2 [mcIndex][matched]->Fill(m02 ,angle);
1450 }
29555e96 1451
a6d3b0a8 1452 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1453 fhAnglePairAfterCutsNLocMax2[mcIndex][matched]->Fill(en,angle);
1454 if(pid==AliCaloPID::kPi0)
1455 fhAnglePairPi0NLocMax2[mcIndex][matched]->Fill(en,angle);
1456
4e5a94c5 1457 if(m02 > 0)
1458 {
1459 fhAnglePairOverM02NLocMax2[mcIndex][matched]->Fill(en,angle/m02);
1460 if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[mcIndex][matched]->Fill(angle/m02,en);
1461 }
1462
0186b6a2 1463 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1464 {
1465 fhAnglePairPrimPi0RecoNLocMax2->Fill(en,angle/anglePrim);
4e5a94c5 1466 if(m02>0)fhAnglePairPrimPi0OverM02NLocMax2->Fill(en,anglePrim/m02);
0186b6a2 1467 if(en > 10) fhAnglePairPrimPi0vsRecoNLocMax2->Fill(anglePrim,angle);
1468 }
1469 }
1470 else if(nMax >2)
1471 {
1472 fhAnglePairNLocMaxN[mcIndex][matched]->Fill(en,angle);
d261ae67 1473 if( en > fHistoECut )
1474 {
1475 fhAnglePairMassNLocMaxN[mcIndex][matched]->Fill(mass,angle);
1476 fhAnglePairM02NLocMaxN [mcIndex][matched]->Fill(m02 ,angle);
1477 }
a6d3b0a8 1478 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1479 fhAnglePairAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,angle);
1480 if(pid==AliCaloPID::kPi0)
1481 fhAnglePairPi0NLocMaxN[mcIndex][matched]->Fill(en,angle);
1482
4e5a94c5 1483 if(m02 > 0)
1484 {
1485 fhAnglePairOverM02NLocMaxN[mcIndex][matched]->Fill(en,angle/m02);
1486 if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[mcIndex][matched]->Fill(angle/m02,en);
1487 }
1488
0186b6a2 1489 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1490 {
1491 fhAnglePairPrimPi0RecoNLocMaxN->Fill(en,angle/anglePrim);
4e5a94c5 1492 if(m02>0)fhAnglePairPrimPi0OverM02NLocMaxN->Fill(en,anglePrim/m02);
0186b6a2 1493 if(en > 10) fhAnglePairPrimPi0vsRecoNLocMaxN->Fill(anglePrim,angle);
1494 }
1495 }
1496
b2e375c7 1497 }
1498
1499}
1500
cb99fa55 1501//______________________________________________________________________________________________________________________
b94e038e 1502void AliAnaInsideClusterInvariantMass::FillArmenterosHistograms(Int_t nMax, Int_t ebin, Int_t mcIndex,
1a8c88c1 1503 Float_t en, Float_t m02, Int_t pid)
cb99fa55 1504{
1505 // Fill Armeteros type histograms
be894c1d 1506
1507 // Get pTArm and AlphaArm
1a8c88c1 1508 fSubClusterMomSum = fSubClusterMom1+fSubClusterMom2;
1509 Float_t momentumSquaredMother = fSubClusterMomSum.P()*fSubClusterMomSum.P();
be894c1d 1510 Float_t momentumDaughter1AlongMother = 0.;
1511 Float_t momentumDaughter2AlongMother = 0.;
1512
1513 if (momentumSquaredMother > 0.)
1514 {
1a8c88c1 1515 momentumDaughter1AlongMother = (fSubClusterMom1.Px()*fSubClusterMomSum.Px() + fSubClusterMom1.Py()*fSubClusterMomSum.Py()+ fSubClusterMom1.Pz()*fSubClusterMomSum.Pz()) / sqrt(momentumSquaredMother);
1516 momentumDaughter2AlongMother = (fSubClusterMom2.Px()*fSubClusterMomSum.Px() + fSubClusterMom2.Py()*fSubClusterMomSum.Py()+ fSubClusterMom2.Pz()*fSubClusterMomSum.Pz()) / sqrt(momentumSquaredMother);
be894c1d 1517 }
1518
1a8c88c1 1519 Float_t momentumSquaredDaughter1 = fSubClusterMom1.P()*fSubClusterMom1.P();
be894c1d 1520 Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother;
1521
1522 Float_t pTArm = 0.;
1523 if (ptArmSquared > 0.)
1524 pTArm = sqrt(ptArmSquared);
1525
1526 Float_t alphaArm = 0.;
1527 if(momentumDaughter1AlongMother +momentumDaughter2AlongMother > 0)
1528 alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother);
1529
1a8c88c1 1530 Float_t asym = TMath::Abs( fSubClusterMom1.Energy()-fSubClusterMom2.Energy() )/( fSubClusterMom1.Energy()+fSubClusterMom2.Energy() ) ;
be894c1d 1531
a6d3b0a8 1532 if(GetDebug() > 2 ) Info("FillArmenterosHistograms()","E %f, alphaArm %f, pTArm %f\n",en,alphaArm,pTArm);
be894c1d 1533
cb99fa55 1534 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1535 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1536 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1537 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
cb99fa55 1538
a6d3b0a8 1539 Bool_t eCutOK= kFALSE;
1540 Int_t inlm = nMax-1;
1541 if(inlm > 2 ) inlm = 2;
1542 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1a8c88c1 1543 if (ensubcut > 0.1 && ensubcut < fSubClusterMom1.E() && ensubcut < fSubClusterMom2.E() ) eCutOK = kTRUE;
a6d3b0a8 1544 else if(ensubcut < 0.1) eCutOK = kTRUE;
1545
1546
cb99fa55 1547 if (nMax==1)
1548 {
be894c1d 1549 fhArmNLocMax1[0][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1550 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1551 fhArmAfterCutsNLocMax1[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1552 if(pid==AliCaloPID::kPi0)
be894c1d 1553 fhArmPi0NLocMax1[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1554 }
1555 else if(nMax==2)
1556 {
be894c1d 1557 fhArmNLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1558 if((m02OK && asyOK) && (asyOn || m02On))
be894c1d 1559 fhArmAfterCutsNLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1560 if(pid==AliCaloPID::kPi0)
be894c1d 1561 fhArmPi0NLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1562 }
1563 else if(nMax >2)
1564 {
be894c1d 1565 fhArmNLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1566 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1567 fhArmAfterCutsNLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1568 if(pid==AliCaloPID::kPi0)
be894c1d 1569 fhArmPi0NLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1570 }
1571
ed10b649 1572 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
cb99fa55 1573 {
1574 if (nMax==1)
1575 {
be894c1d 1576 fhArmNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1577 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1578 fhArmAfterCutsNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1579 if(pid==AliCaloPID::kPi0)
be894c1d 1580 fhArmPi0NLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1581 }
1582 else if(nMax==2)
1583 {
be894c1d 1584 fhArmNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1585 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1586 fhArmAfterCutsNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1587 if(pid==AliCaloPID::kPi0)
be894c1d 1588 fhArmPi0NLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1589 }
1590 else if(nMax >2)
1591 {
be894c1d 1592 fhArmNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1593 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1594 fhArmAfterCutsNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1595 if(pid==AliCaloPID::kPi0)
be894c1d 1596 fhArmPi0NLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1597 }
1598
1599 }
1600
1601}
1602
b94e038e 1603//______________________________________________________________________________________________________________
1604void AliAnaInsideClusterInvariantMass::FillThetaStarHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex,
1a8c88c1 1605 Float_t en, Float_t m02, Int_t pid)
29555e96 1606{
1607 // Fill cos Theta^star histograms
1608
1609
1610 // Get cos Theta^star
1a8c88c1 1611 fSubClusterMomSum = fSubClusterMom1+fSubClusterMom2;
1612 fSubClusterMomBoost = fSubClusterMom1;
1613 fSubClusterMomBoost.Boost(-fSubClusterMomSum.BoostVector());
1614 Float_t cosThStar=TMath::Cos(fSubClusterMomBoost.Vect().Angle(fSubClusterMomSum.Vect()));
29555e96 1615
1a8c88c1 1616 Float_t asym = TMath::Abs( fSubClusterMom1.Energy()-fSubClusterMom2.Energy() )/( fSubClusterMom1.Energy()+fSubClusterMom2.Energy() ) ;
29555e96 1617
1618 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1619 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1620 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1621 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
1622
a6d3b0a8 1623 Bool_t eCutOK= kFALSE;
1624 Int_t inlm = nMax-1;
1625 if(inlm > 2 ) inlm = 2;
1626 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1a8c88c1 1627 if (ensubcut > 0.1 && ensubcut < fSubClusterMom1.E() && ensubcut < fSubClusterMom2.E() ) eCutOK = kTRUE;
a6d3b0a8 1628 else if(ensubcut < 0.1) eCutOK = kTRUE;
1629
29555e96 1630 //printf("Reco cos %f, asy %f\n",cosThStar,asym);
1631
1632 if (nMax==1)
1633 {
1634 fhCosThStarNLocMax1[0][matched]->Fill(en,cosThStar);
1635
a6d3b0a8 1636 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1637 fhCosThStarAfterCutsNLocMax1[0][matched]->Fill(en,cosThStar);
1638 if(pid==AliCaloPID::kPi0)
1639 fhCosThStarPi0NLocMax1[0][matched]->Fill(en,cosThStar);
1640 }
1641 else if(nMax==2)
1642 {
1643 fhCosThStarNLocMax2[0][matched]->Fill(en,cosThStar);
1644
a6d3b0a8 1645 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1646 fhCosThStarAfterCutsNLocMax2[0][matched]->Fill(en,cosThStar);
1647 if(pid==AliCaloPID::kPi0)
1648 fhCosThStarPi0NLocMax2[0][matched]->Fill(en,cosThStar);
1649 }
1650 else if(nMax >2)
1651 {
1652 fhCosThStarNLocMaxN[0][matched]->Fill(en,cosThStar);
1653
a6d3b0a8 1654 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1655 fhCosThStarAfterCutsNLocMaxN[0][matched]->Fill(en,cosThStar);
1656 if(pid==AliCaloPID::kPi0)
1657 fhCosThStarPi0NLocMaxN[0][matched]->Fill(en,cosThStar);
1658 }
1659
1660 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
1661 {
1662 if (nMax==1)
1663 {
1664 fhCosThStarNLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1665
a6d3b0a8 1666 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1667 fhCosThStarAfterCutsNLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1668 if(pid==AliCaloPID::kPi0)
1669 fhCosThStarPi0NLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1670 }
1671 else if(nMax==2)
1672 {
1673 fhCosThStarNLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1674
a6d3b0a8 1675 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1676 fhCosThStarAfterCutsNLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1677 if(pid==AliCaloPID::kPi0)
1678 fhCosThStarPi0NLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1679 }
1680 else if(nMax >2)
1681 {
1682 fhCosThStarNLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1683
a6d3b0a8 1684 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1685 fhCosThStarAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1686 if(pid==AliCaloPID::kPi0)
1687 fhCosThStarPi0NLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1688 }
1689
1690 }
1691
1692}
1693
b94e038e 1694//__________________________________________________________________________________________________________________
1695void AliAnaInsideClusterInvariantMass::FillEBinHistograms(Int_t ebin , Int_t nMax, Int_t mcindex,
1696 Float_t splitFrac, Float_t mass, Float_t asym, Float_t l0)
b2e375c7 1697{
1698 // Fill some histograms integrating in few energy bins
1253480f 1699
b2e375c7 1700 if (nMax==1)
1701 {
1702 fhMassSplitEFractionNLocMax1Ebin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1703 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax1Ebin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1704
1705 fhMassM02NLocMax1Ebin [ebin]->Fill(l0 , mass );
1706 fhMassAsyNLocMax1Ebin [ebin]->Fill(asym, mass );
1707 }
1708 else if(nMax==2)
1709 {
1710 fhMassSplitEFractionNLocMax2Ebin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1711 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax2Ebin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1712
1713 fhMassM02NLocMax2Ebin [ebin]->Fill(l0 , mass );
1714 fhMassAsyNLocMax2Ebin [ebin]->Fill(asym, mass );
1715 }
1716 else if(nMax > 2 )
1717 {
1718 fhMassSplitEFractionNLocMaxNEbin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1719 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMaxNEbin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1720
1721 fhMassM02NLocMaxNEbin [ebin]->Fill(l0 , mass );
1722 fhMassAsyNLocMaxNEbin [ebin]->Fill(asym, mass );
1723 }
1724
1725}
1726
b94e038e 1727//________________________________________________________________________________________________
1728void AliAnaInsideClusterInvariantMass::FillHistograms1(Float_t en, Float_t e1, Float_t e2,
1729 Int_t nMax, Float_t mass, Float_t l0,
1730 Float_t eta, Float_t phi,
1731 Bool_t matched, Int_t mcindex)
1253480f 1732{
1733 // Fill histograms for clusters before any selection after spliting
1734
1735 Float_t splitFrac = (e1+e2)/en;
1736
1737 Float_t asym = -10;
1738 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1739
29555e96 1740 fhNLocMax [0][matched]->Fill(en,nMax);
1741 fhLM1NLocMax[0][matched]->Fill(e1,nMax);
1742 fhLM2NLocMax[0][matched]->Fill(e2,nMax);
cc909e6f 1743 fhSplitClusterENLocMax[0][matched]->Fill(e1,nMax);
1744 fhSplitClusterENLocMax[0][matched]->Fill(e2,nMax);
1745
cb99fa55 1746 if(IsDataMC() && mcindex > 0 && mcindex < 7)
cc909e6f 1747 {
29555e96 1748 fhNLocMax [mcindex][matched]->Fill(en,nMax);
1749 fhLM1NLocMax[mcindex][matched]->Fill(e1,nMax);
1750 fhLM2NLocMax[mcindex][matched]->Fill(e2,nMax);
b583134f 1751 fhSplitClusterENLocMax[mcindex][matched]->Fill(e1,nMax);
1752 fhSplitClusterENLocMax[mcindex][matched]->Fill(e2,nMax);
cc909e6f 1753 }
1253480f 1754
1755 if ( nMax == 1 )
1756 {
1757 fhM02NLocMax1[0][matched]->Fill(en,l0) ;
1758 fhSplitEFractionNLocMax1[0][matched]->Fill(en,splitFrac) ;
1759
cb99fa55 1760 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1761 {
1762 fhM02NLocMax1[mcindex][matched]->Fill(en,l0) ;
1763 fhSplitEFractionNLocMax1[mcindex][matched]->Fill(en,splitFrac) ;
1764 }
1765
1766 if(en > fHistoECut)
1767 {
1768 fhMassM02NLocMax1[0][matched]->Fill(l0, mass);
cb99fa55 1769 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax1[mcindex][matched]->Fill(l0, mass);
1253480f 1770
1771 fhSplitEFractionvsAsyNLocMax1[matched]->Fill(asym,splitFrac) ;
1772 if(!matched)fhClusterEtaPhiNLocMax1->Fill(eta,phi);
1773 }
1774 }
1775 else if( nMax == 2 )
1776 {
1777 fhM02NLocMax2[0][matched]->Fill(en,l0) ;
1778 fhSplitEFractionNLocMax2[0][matched]->Fill(en,splitFrac) ;
1779
cb99fa55 1780 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1781 {
1782 fhM02NLocMax2[mcindex][matched]->Fill(en,l0) ;
1783 fhSplitEFractionNLocMax2[mcindex][matched]->Fill(en,splitFrac) ;
1784 }
1785
1786 if(en > fHistoECut)
1787 {
1788 fhMassM02NLocMax2[0][matched]->Fill(l0, mass );
cb99fa55 1789 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax2[mcindex][matched]->Fill(l0,mass);
1253480f 1790
1791 fhSplitEFractionvsAsyNLocMax2[matched]->Fill(asym,splitFrac) ;
1792 if(!matched)fhClusterEtaPhiNLocMax2->Fill(eta,phi);
1793 }
1794 }
1795 else if( nMax >= 3 )
1796 {
1797 fhM02NLocMaxN[0][matched]->Fill(en,l0) ;
1798 fhSplitEFractionNLocMaxN[0][matched]->Fill(en,splitFrac) ;
1799
cb99fa55 1800 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1801 {
1802 fhM02NLocMaxN[mcindex][matched]->Fill(en,l0) ;
1803 fhSplitEFractionNLocMaxN[mcindex][matched]->Fill(en,splitFrac) ;
1804 }
1805
1806 if(en > fHistoECut)
1807 {
1808
1809 fhMassM02NLocMaxN[0][matched]->Fill(l0,mass);
cb99fa55 1810 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMaxN[mcindex][matched]->Fill(l0,mass);
1253480f 1811
1812 fhSplitEFractionvsAsyNLocMaxN[matched]->Fill(asym,splitFrac) ;
1813 if(!matched)fhClusterEtaPhiNLocMaxN->Fill(eta,phi);
1814 }
1815 }
1816
1817
1818}
1819
b94e038e 1820//________________________________________________________________________________________________
1821void AliAnaInsideClusterInvariantMass::FillHistograms2(Float_t en, Float_t eprim,
1822 Float_t e1, Float_t e2,
1823 Int_t nMax, Float_t mass, Float_t l0,
1824 Bool_t matched, Int_t mcindex)
1253480f 1825{
1826 // Fill histograms for clusters passing the first M02 selection
1827
1828 Float_t efrac = eprim/en;
1829 Float_t efracSplit = 0;
1830 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
1831
1832 Float_t splitFrac = (e1+e2)/en;
1833
1834 Float_t asym = -10;
1835 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1836
1837 Int_t inlm = nMax-1;
1838 if(inlm > 2) inlm = 2;
1839 Float_t splitFracMin = GetCaloPID()->GetSplitEnergyFractionMinimum(inlm) ;
1840
1841 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,l0,nMax);
1842 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1843 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1844 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
1845
a6d3b0a8 1846 Bool_t eCutOK = kFALSE;
1847 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1848 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1849 else if(ensubcut < 0.1) eCutOK = kTRUE;
1850
1851 //printf("splitFracMin %f, val %f, m02ok %d, asyok %d, m02On %d, asyOn %d, ecutOK %d\n",splitFracMin,splitFrac,m02OK,asyOK,m02On,asyOn,eCutOK);
1253480f 1852
1853 if(m02On && m02OK)
1854 {
29555e96 1855 fhNLocMaxM02Cut [0][matched]->Fill(en,nMax);
1856 fhLM1NLocMaxM02Cut[0][matched]->Fill(e1,nMax);
1857 fhLM2NLocMaxM02Cut[0][matched]->Fill(e2,nMax);
1858 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1859 {
1860 fhNLocMaxM02Cut [mcindex][matched]->Fill(en,nMax);
1861 fhLM1NLocMaxM02Cut[mcindex][matched]->Fill(e1,nMax);
1862 fhLM2NLocMaxM02Cut[mcindex][matched]->Fill(e2,nMax);
1863 }
1253480f 1864 }
1865
1866 if (nMax==1)
1867 {
1868 fhMassNLocMax1[0][matched]->Fill(en,mass );
1869 fhAsymNLocMax1[0][matched]->Fill(en,asym );
c7e9a4e9 1870 fhMassSplitENLocMax1[0][matched]->Fill(e1+e2,mass);
1253480f 1871
1872 // Effect of cuts in mass histograms
cb99fa55 1873
1874 if(!matched && asyOK && asyOn )
1875 {
1876 fhMassAsyCutNLocMax1->Fill(en,mass);
1877 fhM02AsyCutNLocMax1 ->Fill(en,l0 );
1878 }
1253480f 1879
1880 if(!matched && m02OK && m02On )
1881 {
1882 fhMassM02CutNLocMax1->Fill(en,mass);
1883 fhAsymM02CutNLocMax1->Fill(en,asym );
1884 if(splitFrac > splitFracMin && fhMassSplitECutNLocMax1) fhMassSplitECutNLocMax1->Fill(en,mass );
1885 }
1886
a6d3b0a8 1887 if(!matched && eCutOK && ensubcut > 0.1)
2c36e041 1888 {
1889 fhMassEnCutNLocMax1->Fill(en,mass );
1890 fhM02EnCutNLocMax1 ->Fill(en,l0 );
1891 fhAsymEnCutNLocMax1->Fill(en,asym );
a6d3b0a8 1892 fhSplitEFracEnCutNLocMax1->Fill(en,splitFrac );
2c36e041 1893 }
1894
a6d3b0a8 1895 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1896 {
1897 fhSplitEFractionAfterCutsNLocMax1[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1898 if(splitFrac > splitFracMin)
1899 {
1900 fhMassAfterCutsNLocMax1[0][matched]->Fill(en,mass);
1901 fhMassSplitEAfterCutsNLocMax1[0][matched]->Fill(e1+e2,mass);
1902 }
1253480f 1903 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1904 {
1905 fhMCGenFracAfterCutsNLocMax1MCPi0 ->Fill(en , efrac );
1906 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0->Fill(en , efracSplit);
1907 }
1908 }
1909 }
2c36e041 1910 else if( nMax == 2 )
1253480f 1911 {
1912 fhMassNLocMax2[0][matched]->Fill(en,mass );
1913 fhAsymNLocMax2[0][matched]->Fill(en,asym );
c7e9a4e9 1914 fhMassSplitENLocMax2[0][matched]->Fill(e1+e2,mass);
1915
1253480f 1916 // Effect of cuts in mass histograms
1917
cb99fa55 1918 if(!matched && asyOK && asyOn )
1919 {
1920 fhMassAsyCutNLocMax2->Fill(en,mass);
1921 fhM02AsyCutNLocMax2 ->Fill(en,l0 );
1922 }
1923
1253480f 1924 if(!matched && m02OK && m02On )
1925 {
1926 fhMassM02CutNLocMax2->Fill(en,mass);
1927 fhAsymM02CutNLocMax2->Fill(en,asym );
1928 if(splitFrac > splitFracMin && fhMassSplitECutNLocMax2) fhMassSplitECutNLocMax2->Fill(en,mass );
1929 }
1930
a6d3b0a8 1931 if(!matched && eCutOK && ensubcut > 0.1)
2c36e041 1932 {
1933 fhMassEnCutNLocMax2->Fill(en,mass );
1934 fhM02EnCutNLocMax2 ->Fill(en,l0 );
1935 fhAsymEnCutNLocMax2->Fill(en,asym );
a6d3b0a8 1936 fhSplitEFracEnCutNLocMax2->Fill(en,splitFrac );
2c36e041 1937 }
1938
a6d3b0a8 1939 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1940 {
1941 fhSplitEFractionAfterCutsNLocMax2[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1942 if(splitFrac > splitFracMin)
1943 {
1944 fhMassAfterCutsNLocMax2[0][matched]->Fill(en,mass);
1945 fhMassSplitEAfterCutsNLocMax2[0][matched]->Fill(e1+e2,mass);
1946 }
1253480f 1947
1948 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1949 {
1950 fhMCGenFracAfterCutsNLocMax2MCPi0 ->Fill(en , efrac );
1951 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0->Fill(en , efracSplit);
1952 }
1953 }
1954 }
2c36e041 1955 else if( nMax > 2 )
1253480f 1956 {
1957 fhMassNLocMaxN[0][matched]->Fill(en,mass);
1958 fhAsymNLocMaxN[0][matched]->Fill(en,asym);
c7e9a4e9 1959 fhMassSplitENLocMaxN[0][matched]->Fill(e1+e2,mass);
1960
1253480f 1961 // Effect of cuts in mass histograms
cb99fa55 1962
1963 if(!matched && asyOK && asyOn )
1964 {
1965 fhMassAsyCutNLocMaxN->Fill(en,mass);
1966 fhM02AsyCutNLocMaxN ->Fill(en,l0 );
1967 }
1968
1253480f 1969 if(!matched && m02OK && m02On )
1970 {
1971 fhMassM02CutNLocMaxN->Fill(en,mass);
1972 fhAsymM02CutNLocMaxN->Fill(en,asym );
1973 if(splitFrac > splitFracMin && fhMassSplitECutNLocMaxN) fhMassSplitECutNLocMaxN->Fill(en,mass );
1974 }
1975
a6d3b0a8 1976 if(!matched && eCutOK && ensubcut > 0.1 )
2c36e041 1977 {
1978 fhMassEnCutNLocMaxN->Fill(en,mass );
1979 fhM02EnCutNLocMaxN ->Fill(en,l0 );
1980 fhAsymEnCutNLocMaxN->Fill(en,asym );
a6d3b0a8 1981 fhSplitEFracEnCutNLocMaxN->Fill(en,splitFrac );
2c36e041 1982 }
1983
a6d3b0a8 1984 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1985 {
1986 fhSplitEFractionAfterCutsNLocMaxN[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1987 if(splitFrac > splitFracMin)
1988 {
1989 fhMassAfterCutsNLocMaxN[0][matched]->Fill(en,mass);
1990 fhMassSplitEAfterCutsNLocMaxN[0][matched]->Fill(e1+e2,mass);
1991 }
1253480f 1992
1993 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1994 {
1995 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->Fill(en , efrac );
1996 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0->Fill(en , efracSplit);
1997 }
1998 }
1999 }
2000
cb99fa55 2001 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2002 {
2003 if (nMax==1)
2004 {
2005 fhMassNLocMax1[mcindex][matched]->Fill(en,mass);
2006 fhAsymNLocMax1[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2007 fhMassSplitENLocMax1[mcindex][matched]->Fill(e1+e2,mass);
2008
a6d3b0a8 2009 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2010 {
2011 fhSplitEFractionAfterCutsNLocMax1[mcindex][matched]->Fill(en,splitFrac);
2012 if(splitFrac > splitFracMin)
c7e9a4e9 2013 {
1253480f 2014 fhMassAfterCutsNLocMax1[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2015 fhMassSplitEAfterCutsNLocMax1[mcindex][matched]->Fill(e1+e2,mass);
2016 }
1253480f 2017 }
2018 }
2019 else if(nMax==2)
2020 {
2021 fhMassNLocMax2[mcindex][matched]->Fill(en,mass);
2022 fhAsymNLocMax2[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2023 fhMassSplitENLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2024
a6d3b0a8 2025 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2026 {
2027 fhSplitEFractionAfterCutsNLocMax2[mcindex][matched]->Fill(en,splitFrac);
c7e9a4e9 2028 if(splitFrac > splitFracMin)
2029 {
1253480f 2030 fhMassAfterCutsNLocMax2[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2031 fhMassSplitEAfterCutsNLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2032 }
2033
1253480f 2034 }
2035 }
2036 else if(nMax >2)
2037 {
2038 fhMassNLocMaxN[mcindex][matched]->Fill(en,mass);
2039 fhAsymNLocMaxN[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2040 fhMassSplitENLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
2041
a6d3b0a8 2042 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2043 {
2044 fhSplitEFractionAfterCutsNLocMaxN[mcindex][matched]->Fill(en,splitFrac);
c7e9a4e9 2045 if(splitFrac > splitFracMin)
2046 {
1253480f 2047 fhMassAfterCutsNLocMaxN[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2048 fhMassSplitEAfterCutsNLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
2049 }
1253480f 2050 }
2051 }
2052 }//Work with MC truth
2053}
2054
2055
b94e038e 2056//_________________________________________________________________________________________________________
2057void AliAnaInsideClusterInvariantMass::FillIdPi0Histograms(Float_t en, Float_t e1, Float_t e2,
2058 Int_t nc, Int_t nMax, Float_t t12diff,
2059 Float_t mass, Float_t l0,
2060 Float_t eta, Float_t phi,
2061 Bool_t matched, Int_t mcindex)
1253480f 2062{
2063 // Fill histograms for clusters passing the pi0 selection
2064
2065 Float_t asym = -10;
2066 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2067
29555e96 2068 fhNLocMaxIdPi0 [0][matched]->Fill(en,nMax);
2069 fhLM1NLocMaxIdPi0[0][matched]->Fill(e1,nMax);
2070 fhLM2NLocMaxIdPi0[0][matched]->Fill(e2,nMax);
2071
cc909e6f 2072 fhSplitClusterEPi0NLocMax[0][matched]->Fill(e1,nMax);
2073 fhSplitClusterEPi0NLocMax[0][matched]->Fill(e2,nMax);
2074
cb99fa55 2075 if(IsDataMC() && mcindex > 0 && mcindex < 7)
cc909e6f 2076 {
2077 fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e1,nMax);
2078 fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e2,nMax);
2079 }
2080
1253480f 2081 if (nMax==1)
2082 {
2083 fhM02Pi0NLocMax1 [0][matched]->Fill(en,l0);
2084 fhMassPi0NLocMax1[0][matched]->Fill(en,mass);
2085 fhAsyPi0NLocMax1 [0][matched]->Fill(en,asym);
c7e9a4e9 2086 fhMassSplitEPi0NLocMax1[0][matched]->Fill(e1+e2,mass);
1253480f 2087 if(fFillNCellHisto) fhNCellPi0NLocMax1[0][matched]->Fill(en,nc);
2088
2089 if(!matched)
2090 {
2091 if(fFillHighMultHisto)
2092 {
2093 fhCentralityPi0NLocMax1->Fill(en,GetEventCentrality()) ;
2094 fhEventPlanePi0NLocMax1->Fill(en,GetEventPlaneAngle()) ;
2095 }
2096 if(en > fHistoECut)fhPi0EtaPhiNLocMax1->Fill(eta,phi);
2097 fhPi0EPairDiffTimeNLM1->Fill(e1+e2,t12diff);
2098 }
2099 }
2100 else if(nMax==2)
2101 {
2102 fhM02Pi0NLocMax2 [0][matched]->Fill(en,l0);
2103 fhMassPi0NLocMax2[0][matched]->Fill(en,mass);
2104 fhAsyPi0NLocMax2 [0][matched]->Fill(en,asym);
c7e9a4e9 2105 fhMassSplitEPi0NLocMax2[0][matched]->Fill(e1+e2,mass);
1253480f 2106 if(fFillNCellHisto) fhNCellPi0NLocMax2[0][matched]->Fill(en,nc);
2107
2108 if(!matched)
2109 {
2110 if(fFillHighMultHisto)
2111 {
2112 fhCentralityPi0NLocMax2->Fill(en,GetEventCentrality()) ;
2113 fhEventPlanePi0NLocMax2->Fill(en,GetEventPlaneAngle()) ;
2114 }
2115 if(en > fHistoECut)fhPi0EtaPhiNLocMax2->Fill(eta,phi);
2116 fhPi0EPairDiffTimeNLM2->Fill(e1+e2,t12diff);
2117 }
2118 }
2119 else if(nMax >2)
2120 {
2121 fhM02Pi0NLocMaxN [0][matched]->Fill(en,l0);
2122 fhMassPi0NLocMaxN[0][matched]->Fill(en,mass);
2123 fhAsyPi0NLocMaxN [0][matched]->Fill(en,asym);
c7e9a4e9 2124 fhMassSplitEPi0NLocMaxN[0][matched]->Fill(e1+e2,mass);
1253480f 2125 if(fFillNCellHisto) fhNCellPi0NLocMaxN[0][matched]->Fill(en,nc);
2126
2127 if(!matched)
2128 {
2129 if(fFillHighMultHisto)
2130 {
2131 fhCentralityPi0NLocMaxN->Fill(en,GetEventCentrality()) ;
2132 fhEventPlanePi0NLocMaxN->Fill(en,GetEventPlaneAngle()) ;
2133 }
2134 if(en > fHistoECut)fhPi0EtaPhiNLocMaxN->Fill(eta,phi);
2135 fhPi0EPairDiffTimeNLMN->Fill(e1+e2,t12diff);
2136 }
2137 }
2138
cb99fa55 2139 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2140 {
db790ee8 2141 fhNLocMaxIdPi0 [mcindex][matched]->Fill(en,nMax);
2142 fhLM1NLocMaxIdPi0[mcindex][matched]->Fill(e1,nMax);
2143 fhLM2NLocMaxIdPi0[mcindex][matched]->Fill(e2,nMax);
29555e96 2144
1253480f 2145 if (nMax==1)
2146 {
2147 fhM02Pi0NLocMax1 [mcindex][matched]->Fill(en,l0);
2148 fhMassPi0NLocMax1[mcindex][matched]->Fill(en,mass);
2149 fhAsyPi0NLocMax1 [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2150 fhMassSplitEPi0NLocMax1[mcindex][matched]->Fill(e1+e2,mass);
1253480f 2151 if(fFillNCellHisto) fhNCellPi0NLocMax1[mcindex][matched]->Fill(en,nc);
2152
2153 }
2154 else if(nMax==2)
2155 {
2156 fhM02Pi0NLocMax2 [mcindex][matched]->Fill(en,l0);
2157 fhMassPi0NLocMax2[mcindex][matched]->Fill(en,mass);
2158 fhAsyPi0NLocMax2 [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2159 fhMassSplitEPi0NLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2160 if(fFillNCellHisto) fhNCellPi0NLocMax2[mcindex][matched]->Fill(en,nc);
1253480f 2161 }
2162 else if(nMax >2)
2163 {
cc909e6f 2164 fhM02Pi0NLocMaxN [mcindex][matched]->Fill(en,l0);
1253480f 2165 fhMassPi0NLocMaxN[mcindex][matched]->Fill(en,mass);
cc909e6f 2166 fhAsyPi0NLocMaxN [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2167 fhMassSplitEPi0NLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
1253480f 2168 if(fFillNCellHisto) fhNCellPi0NLocMaxN[mcindex][matched]->Fill(en,nc);
2169 }
2170 }//Work with MC truth
2171}
2172
b94e038e 2173//______________________________________________________________________________________________________
2174void AliAnaInsideClusterInvariantMass::FillIdEtaHistograms(Float_t en, Float_t e1, Float_t e2,
2175 Int_t nc, Int_t nMax, Float_t t12diff,
2176 Float_t mass, Float_t l0,
2177 Float_t eta, Float_t phi,
2178 Bool_t matched, Int_t mcindex)
1253480f 2179{
2180 // Fill histograms for clusters passing the eta selection
2181
2182 Float_t asym = -10;
2183 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2184
2185 if (nMax==1)
2186 {
2187 fhM02EtaNLocMax1 [0][matched]->Fill(en,l0);
2188 fhMassEtaNLocMax1[0][matched]->Fill(en,mass);
2189 fhAsyEtaNLocMax1 [0][matched]->Fill(en,asym);
2190 if(fFillNCellHisto) fhNCellEtaNLocMax1[0][matched]->Fill(en,nc);
2191
2192 if(!matched)
2193 {
2194 if(fFillHighMultHisto)
2195 {
2196 fhCentralityEtaNLocMax1->Fill(en,GetEventCentrality()) ;
2197 fhEventPlaneEtaNLocMax1->Fill(en,GetEventPlaneAngle()) ;
2198 }
2199 if(en > fHistoECut)fhEtaEtaPhiNLocMax1->Fill(eta,phi);
2200 fhEtaEPairDiffTimeNLM1->Fill(e1+e2,t12diff);
2201 }
2202 }
2203 else if(nMax==2)
2204 {
2205 fhM02EtaNLocMax2 [0][matched]->Fill(en,l0);
2206 fhMassEtaNLocMax2[0][matched]->Fill(en,mass);
2207 fhAsyEtaNLocMax2 [0][matched]->Fill(en,asym);
2208 if(fFillNCellHisto) fhNCellEtaNLocMax2[0][matched]->Fill(en,nc);
2209
2210 if(!matched)
2211 {
2212 if(fFillHighMultHisto)
2213 {
2214 fhCentralityEtaNLocMax2->Fill(en,GetEventCentrality()) ;
2215 fhEventPlaneEtaNLocMax2->Fill(en,GetEventPlaneAngle()) ;
2216 }
2217 if(en > fHistoECut)fhEtaEtaPhiNLocMax2->Fill(eta,phi);
2218 fhEtaEPairDiffTimeNLM2->Fill(e1+e2,t12diff);
2219 }
2220 }
2221 else if(nMax >2)
2222 {
2223 fhM02EtaNLocMaxN [0][matched]->Fill(en,l0);
2224 fhMassEtaNLocMaxN[0][matched]->Fill(en,mass);
2225 fhAsyEtaNLocMaxN [0][matched]->Fill(en,asym);
2226 if(fFillNCellHisto) fhNCellEtaNLocMaxN[0][matched]->Fill(en,nc);
2227
2228 if(!matched)
2229 {
2230 if(fFillHighMultHisto)
2231 {
2232 fhCentralityEtaNLocMaxN->Fill(en,GetEventCentrality()) ;
2233 fhEventPlaneEtaNLocMaxN->Fill(en,GetEventPlaneAngle()) ;
2234 }
2235 if(en > fHistoECut)fhEtaEtaPhiNLocMaxN->Fill(eta,phi);
2236 fhEtaEPairDiffTimeNLMN->Fill(e1+e2,t12diff);
2237 }
2238 }
2239
cb99fa55 2240 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2241 {
2242 if (nMax==1)
2243 {
2244 fhM02EtaNLocMax1[mcindex][matched]->Fill(en,l0);
2245 fhMassEtaNLocMax1[mcindex][matched]->Fill(en,mass);
2246 fhAsyEtaNLocMax1[mcindex][matched]->Fill(en,asym);
2247 if(fFillNCellHisto) fhNCellEtaNLocMax1[mcindex][matched]->Fill(en,nc);
2248 }
2249 else if(nMax==2)
2250 {
2251 fhM02EtaNLocMax2 [mcindex][matched]->Fill(en,l0);
2252 fhMassEtaNLocMax2[mcindex][matched]->Fill(en,mass);
2253 fhAsyEtaNLocMax2 [mcindex][matched]->Fill(en,asym);
2254 if(fFillNCellHisto) fhNCellEtaNLocMax2[mcindex][matched]->Fill(en,nc);
2255
2256 }
2257 else if(nMax >2)
2258 {
c7e9a4e9 2259 fhM02EtaNLocMaxN[mcindex][matched]->Fill(en,l0);
2260 fhMassEtaNLocMaxN[mcindex][matched]->Fill(en,mass);
2261 fhAsyEtaNLocMaxN[mcindex][matched]->Fill(en,asym);
2262 if(fFillNCellHisto) fhNCellEtaNLocMaxN[mcindex][matched]->Fill(en,nc);
1253480f 2263 }
2264 }//Work with MC truth
2265}
2266
2267
b94e038e 2268//__________________________________________________________________________________________________
2269void AliAnaInsideClusterInvariantMass::FillIdConvHistograms(Float_t en, Int_t nMax, Float_t asym,
2270 Float_t mass, Float_t l0,
2271 Bool_t matched, Int_t mcindex)
1253480f 2272{
2273 // Fill histograms for clusters passing the photon selection
2274
2275 if (nMax==1)
2276 {
2277 fhM02ConNLocMax1 [0][matched]->Fill(en,l0);
2278 fhMassConNLocMax1[0][matched]->Fill(en,mass);
2279 fhAsyConNLocMax1 [0][matched]->Fill(en,asym);
2280 }
2281 else if(nMax==2)
2282 {
2283 fhM02ConNLocMax2 [0][matched]->Fill(en,l0);
2284 fhMassConNLocMax2[0][matched]->Fill(en,mass);
2285 fhAsyConNLocMax2 [0][matched]->Fill(en,asym);
2286 }
2287 else if(nMax >2)
2288 {
2289 fhM02ConNLocMaxN [0][matched]->Fill(en,l0);
2290 fhMassConNLocMaxN[0][matched]->Fill(en,mass);
2291 fhAsyConNLocMaxN [0][matched]->Fill(en,asym);
2292 }
2293
cb99fa55 2294 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2295 {
2296 if (nMax==1)
2297 {
2298 fhM02ConNLocMax1 [mcindex][matched]->Fill(en,l0);
2299 fhMassConNLocMax1[mcindex][matched]->Fill(en,mass);
2300 fhAsyConNLocMax1 [mcindex][matched]->Fill(en,asym);
2301 }
2302 else if(nMax==2)
2303 {
2304 fhM02ConNLocMax2 [mcindex][matched]->Fill(en,l0);
2305 fhMassConNLocMax2[mcindex][matched]->Fill(en,mass);
2306 fhAsyConNLocMax2 [mcindex][matched]->Fill(en,asym);
2307 }
2308 else if(nMax >2)
2309 {
2310 fhM02ConNLocMaxN [mcindex][matched]->Fill(en,l0);
2311 fhMassConNLocMaxN[mcindex][matched]->Fill(en,mass);
2312 fhAsyConNLocMaxN [mcindex][matched]->Fill(en,asym);
2313 }
2314
2315 }//Work with MC truth
2316}
2317
b94e038e 2318//_______________________________________________________________________________________________________
2319void AliAnaInsideClusterInvariantMass::FillMCHistograms(Float_t en, Float_t e1 , Float_t e2,
2320 Int_t ebin, Int_t mcindex,Int_t noverlaps,
2321 Float_t l0, Float_t mass,
2322 Int_t nMax, Bool_t matched,
2323 Float_t splitFrac, Float_t asym,
2324 Float_t eprim, Float_t asymGen)
b2e375c7 2325{
2326 // Fill histograms needing some MC input
1253480f 2327
b2e375c7 2328 Float_t efrac = eprim/en;
2329 Float_t efracSplit = 0;
2330 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
b583134f 2331 Float_t asymDiff = TMath::Abs(asym) - TMath::Abs(asymGen);
2332
b2e375c7 2333 //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",
2334 // e1,e2,eprim,en,splitFrac,efrac,efracSplit);
2335
2336 if(ebin >= 0 && fFillEbinHisto)
2337 {
2338 if( !matched ) fhMCGenFracNLocMaxEbin [mcindex][ebin]->Fill(efrac,nMax);
2339 else fhMCGenFracNLocMaxEbinMatched[mcindex][ebin]->Fill(efrac,nMax);
2340 }
2341
2342 if (nMax==1)
2343 {
2344 fhMCGenFracNLocMax1 [mcindex][matched]->Fill(en , efrac );
2345 fhMCGenSplitEFracNLocMax1[mcindex][matched]->Fill(en , efracSplit );
2346 fhMCGenEvsSplitENLocMax1 [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2347 if(asym > 0 && !matched)
2348 {
2349 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[0] ->Fill(en, asymDiff );
2350 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[0]->Fill(en, asymDiff );
2351 }
2352
4914e781 2353 if(noverlaps==0)
2354 {
2355 fhMCGenFracNLocMax1NoOverlap [mcindex][matched]->Fill(en , efrac );
2356 fhMCGenSplitEFracNLocMax1NoOverlap[mcindex][matched]->Fill(en , efracSplit );
2357 }
2358
b2e375c7 2359 if( en > fHistoECut )
2360 {
2361 fhMCGenEFracvsSplitEFracNLocMax1[mcindex][matched]->Fill(efrac,splitFrac );
2362
2363 if(!matched && ebin >= 0 && fFillEbinHisto)
2364 {
2365 fhM02MCGenFracNLocMax1Ebin [mcindex][ebin]->Fill(efrac , l0 );
2366 fhMassMCGenFracNLocMax1Ebin[mcindex][ebin]->Fill(efrac , mass );
2367
b583134f 2368 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2369 {
2370 fhMCAsymM02NLocMax1MCPi0Ebin [ebin]->Fill(l0 , asymGen );
2371 fhAsyMCGenRecoNLocMax1EbinPi0[ebin]->Fill(asym, asymGen );
2372 }
b2e375c7 2373 }
2374 }
2375 }
2376 else if(nMax==2)
2377 {
2378 fhMCGenFracNLocMax2 [mcindex][matched]->Fill(en , efrac );
2379 fhMCGenSplitEFracNLocMax2[mcindex][matched]->Fill(en , efracSplit );
2380 fhMCGenEvsSplitENLocMax2 [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2381
2382 if(asym > 0 && !matched)
2383 {
2384 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[1] ->Fill(en, asymDiff );
2385 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[1]->Fill(en, asymDiff );
2386 }
b2e375c7 2387
4914e781 2388 if(noverlaps==0)
2389 {
2390 fhMCGenFracNLocMax2NoOverlap [mcindex][matched]->Fill(en , efrac );
2391 fhMCGenSplitEFracNLocMax2NoOverlap[mcindex][matched]->Fill(en , efracSplit );
2392 }
2393
b2e375c7 2394 if( en > fHistoECut )
2395 {
2396 fhMCGenEFracvsSplitEFracNLocMax2[mcindex][matched]->Fill(efrac,splitFrac );
2397
2398 if(!matched && ebin >= 0 && fFillEbinHisto)
2399 {
2400 fhM02MCGenFracNLocMax2Ebin [mcindex][ebin]->Fill(efrac , l0 );
2401 fhMassMCGenFracNLocMax2Ebin[mcindex][ebin]->Fill(efrac , mass );
b583134f 2402 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2403 {
2404 fhMCAsymM02NLocMax2MCPi0Ebin [ebin]->Fill(l0 , asymGen );
2405 fhAsyMCGenRecoNLocMax2EbinPi0[ebin]->Fill(asym, asymGen );
2406 }
b2e375c7 2407 }
2408 }
2409
2410 }
2411 else if(nMax > 2 )
2412 {
2413 fhMCGenFracNLocMaxN [mcindex][matched]->Fill(en , efrac );
2414 fhMCGenSplitEFracNLocMaxN[mcindex][matched]->Fill(en , efracSplit );
2415 fhMCGenEvsSplitENLocMaxN [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2416 if(asym > 0 && !matched)
2417 {
2418 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[2] ->Fill(en, asymDiff );
2419 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[2]->Fill(en, asymDiff );
2420 }
2421
4914e781 2422 if(noverlaps==0)
2423 {
2424 fhMCGenFracNLocMaxNNoOverlap [mcindex][matched]->Fill(en , efrac );
2425 fhMCGenSplitEFracNLocMaxNNoOverlap[mcindex][matched]->Fill(en , efracSplit );
2426 }
2427
b2e375c7 2428 if( en > fHistoECut )
2429 {
2430 fhMCGenEFracvsSplitEFracNLocMaxN[mcindex][matched]->Fill(efrac,splitFrac );
2431
2432 if(!matched && ebin >= 0 && fFillEbinHisto)
2433 {
2434 fhM02MCGenFracNLocMaxNEbin [mcindex][ebin]->Fill(efrac , l0 );
2435 fhMassMCGenFracNLocMaxNEbin[mcindex][ebin]->Fill(efrac , mass );
2436
b583134f 2437 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2438 {
2439 fhMCAsymM02NLocMaxNMCPi0Ebin [ebin]->Fill(l0 , asymGen );
2440 fhAsyMCGenRecoNLocMaxNEbinPi0[ebin]->Fill(asym, asymGen );
2441 }
b2e375c7 2442 }
2443 }
2444 }
2445}
2446
b94e038e 2447//__________________________________________________________________________________________________________
2448void AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms(Float_t en, Float_t enprim,
2449 Int_t nc, Float_t mass, Float_t l0,
2450 Float_t asym, Float_t splitFrac,
2451 Int_t inlm, Int_t ebin, Bool_t matched,
2452 Int_t mcindex, Int_t noverlaps)
b2e375c7 2453{
b2e375c7 2454 // Fill histograms for MC Overlaps
2455
2456 //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 2457
b2e375c7 2458 //printf("AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms - NLM bin=%d, mcIndex %d, n Overlaps %d\n",inlm,mcindex,noverlaps);
2459
2460 if(!matched)
2461 {
2462 fhMCENOverlaps[inlm][mcindex]->Fill(en,noverlaps);
2463
2464 if (noverlaps == 0)
2465 {
74e3eb22 2466 fhMCEM02Overlap0 [inlm][mcindex]->Fill(en, l0);
2467 fhMCEMassOverlap0 [inlm][mcindex]->Fill(en, mass);
2468 fhMCEEpriOverlap0 [inlm][mcindex]->Fill(en, enprim);
2469 fhMCEAsymOverlap0 [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2470 if(fFillNCellHisto) fhMCENCellOverlap0[inlm][mcindex]->Fill(en, nc);
83351853 2471 fhMCESplitEFracOverlap0[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2472 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0[inlm][ebin]->Fill(l0,mass);
2473 }
2474 else if(noverlaps == 1)
2475 {
74e3eb22 2476 fhMCEM02Overlap1 [inlm][mcindex]->Fill(en, l0);
2477 fhMCEMassOverlap1 [inlm][mcindex]->Fill(en, mass);
2478 fhMCEEpriOverlap1 [inlm][mcindex]->Fill(en, enprim);
2479 fhMCEAsymOverlap1 [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2480 if(fFillNCellHisto) fhMCENCellOverlap1[inlm][mcindex]->Fill(en, nc);
83351853 2481 fhMCESplitEFracOverlap1[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2482 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1[inlm][ebin]->Fill(l0,mass);
2483 }
2484 else if(noverlaps > 1)
2485 {
74e3eb22 2486 fhMCEM02OverlapN [inlm][mcindex]->Fill(en, l0);
2487 fhMCEMassOverlapN [inlm][mcindex]->Fill(en, mass);
2488 fhMCEEpriOverlapN [inlm][mcindex]->Fill(en, enprim);
2489 fhMCEAsymOverlapN [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2490 if(fFillNCellHisto) fhMCENCellOverlapN[inlm][mcindex]->Fill(en, nc);
83351853 2491 fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2492 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapN[inlm][ebin]->Fill(l0,mass);
2493 }
2494 else
a6d3b0a8 2495 Info("FillMCOverlapHistograms","n overlaps = %d!!", noverlaps);
b2e375c7 2496 }
2497 else if(fFillTMHisto)
2498 {
2499 fhMCENOverlapsMatch[inlm][mcindex]->Fill(en,noverlaps);
2500
2501 if (noverlaps == 0)
2502 {
74e3eb22 2503 fhMCEM02Overlap0Match [inlm][mcindex]->Fill(en, l0);
2504 fhMCEMassOverlap0Match [inlm][mcindex]->Fill(en, mass);
2505 fhMCEEpriOverlap0Match [inlm][mcindex]->Fill(en, enprim);
2506 fhMCEAsymOverlap0Match [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2507 if(fFillNCellHisto) fhMCENCellOverlap0Match[inlm][mcindex]->Fill(en, nc);
83351853 2508 fhMCESplitEFracOverlap0Match[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2509 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0Match[inlm][ebin]->Fill(l0,mass);
2510 }
2511 else if(noverlaps == 1)
2512 {
74e3eb22 2513 fhMCEM02Overlap1Match [inlm][mcindex]->Fill(en, l0);
2514 fhMCEMassOverlap1Match [inlm][mcindex]->Fill(en, mass);
2515 fhMCEEpriOverlap1Match [inlm][mcindex]->Fill(en, enprim);
2516 fhMCEAsymOverlap1Match [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2517 if(fFillNCellHisto) fhMCENCellOverlap1Match[inlm][mcindex]->Fill(en, nc);
83351853 2518 fhMCESplitEFracOverlap1Match[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2519 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1Match[inlm][ebin]->Fill(l0,mass);
2520 }
2521 else if(noverlaps > 1)
2522 {
74e3eb22 2523 fhMCEM02OverlapNMatch [inlm][mcindex]->Fill(en, l0);
2524 fhMCEMassOverlapNMatch [inlm][mcindex]->Fill(en, mass);
2525 fhMCEEpriOverlapNMatch [inlm][mcindex]->Fill(en, enprim);
2526 fhMCEAsymOverlapNMatch [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2527 if(fFillNCellHisto) fhMCENCellOverlapNMatch[inlm][mcindex]->Fill(en, nc);
83351853 2528 fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2529 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapNMatch[inlm][ebin]->Fill(l0,mass);
2530 }
2531 else
a6d3b0a8 2532 Info("FillMCOverlapHistograms()","n overlaps in matched = %d!!", noverlaps);
b2e375c7 2533 }
2534}
2535
4914e781 2536
b94e038e 2537//_____________________________________________________________________________________________________
2538void AliAnaInsideClusterInvariantMass::FillNCellHistograms(Int_t ncells, Float_t energy, Int_t nMax,
2539 Bool_t matched, Int_t mcindex,
2540 Float_t mass , Float_t l0)
4914e781 2541
2542{
2543 // Fill optional histograms with more SS parameters
1253480f 2544
4914e781 2545 if (nMax==1)
2546 {
2547 fhNCellNLocMax1[0][matched]->Fill(energy,ncells) ;
2548 if(mcindex > 0 ) fhNCellNLocMax1[mcindex][matched]->Fill(energy,ncells) ;
2549
2550 if (mcindex==kmcPi0 && !matched)
2551 {
2552 if( energy > fHistoECut)
2553 {
2554 fhNCellMassEHighNLocMax1MCPi0->Fill(ncells,mass);
2555 fhNCellM02EHighNLocMax1MCPi0 ->Fill(ncells,l0);
2556 }
2557 else
2558 {
2559 fhNCellMassELowNLocMax1MCPi0->Fill(ncells,mass);
2560 fhNCellM02ELowNLocMax1MCPi0 ->Fill(ncells,l0);
2561 }
2562 }
2563 }
2564 else if( nMax == 2 )
2565 {
2566 fhNCellNLocMax2[0][matched]->Fill(energy,ncells) ;
2567 if(mcindex > 0 ) fhNCellNLocMax2[mcindex][matched]->Fill(energy,ncells) ;
2568
2569
2570 if (mcindex==kmcPi0 && !matched)
2571 {
2572 if( energy > fHistoECut)
2573 {
2574 fhNCellMassEHighNLocMax2MCPi0->Fill(ncells,mass);
2575 fhNCellM02EHighNLocMax2MCPi0 ->Fill(ncells,l0);
2576 }
2577 else
2578 {
2579 fhNCellMassELowNLocMax2MCPi0->Fill(ncells,mass);
2580 fhNCellM02ELowNLocMax2MCPi0 ->Fill(ncells,l0);
2581 }
2582 }
2583 }
2584 else if( nMax >= 3 )
2585 {
2586 fhNCellNLocMaxN[0][matched]->Fill(energy,ncells) ;
2587 if(mcindex > 0 ) fhNCellNLocMaxN[mcindex][matched]->Fill(energy,ncells) ;
2588
2589 if (mcindex==kmcPi0 && !matched)
2590 {
2591 if( energy > fHistoECut)
2592 {
2593 fhNCellMassEHighNLocMaxNMCPi0->Fill(ncells,mass);
2594 fhNCellM02EHighNLocMaxNMCPi0 ->Fill(ncells,l0);
2595 }
2596 else
2597 {
2598 fhNCellMassELowNLocMaxNMCPi0->Fill(ncells,mass);
2599 fhNCellM02ELowNLocMaxNMCPi0 ->Fill(ncells,l0);
2600 }
2601 }
2602 }
2603}
2604
ff6aa4ce 2605//______________________________________________________________________________________________________
2606void AliAnaInsideClusterInvariantMass::FillNLMDiffCutHistograms(AliVCluster *clus, AliVCaloCells* cells, Bool_t matched)
2607{
58a18c5d 2608 // Calculate NLM for different settings
ff6aa4ce 2609
2610 Float_t energy = clus->E();
2611 Float_t m02 = clus->GetM02();
2612
2613 Float_t minEOrg = GetCaloUtils()->GetLocalMaximaCutE() ;
2614 Float_t minEDiffOrg = GetCaloUtils()->GetLocalMaximaCutEDiff();
2615
58a18c5d 2616 Int_t nlm = 0;
2617 Double_t mass = 0., angle = 0.;
58a18c5d 2618 Int_t absId1 =-1; Int_t absId2 =-1;
2619 Float_t distbad1 =-1; Float_t distbad2 =-1;
2620 Bool_t fidcut1 = 0; Bool_t fidcut2 = 0;
2621 Int_t pidTag = -1;
2622
ff6aa4ce 2623 //printf("E %f, m02 %f; Org: minE %f, minDiffE %f\n",energy, m02, minEOrg,minEDiffOrg);
2624 for(Int_t iE = 0; iE < fNLMSettingN; iE++)
2625 {
2626 for(Int_t iDiff = 0; iDiff < fNLMSettingN; iDiff++)
2627 {
2628 GetCaloUtils()->SetLocalMaximaCutE (fNLMMinE [iE] );
2629 GetCaloUtils()->SetLocalMaximaCutEDiff(fNLMMinDiff[iDiff]);
58a18c5d 2630
2631 //nlm = GetCaloUtils()->GetNumberOfLocalMaxima(clus, cells) ;
2632
2633 //printf("\t Change: i %d minE %f, j %d minDiffE %f - NLM = %d\n",iE, fNLMMinE[iE], iDiff, fNLMMinDiff[iDiff],nlm);
2634
2635 pidTag = GetCaloPID()->GetIdentifiedParticleTypeFromClusterSplitting(clus,cells,GetCaloUtils(),
2636 GetVertex(0), nlm, mass, angle,
1a8c88c1 2637 fSubClusterMom1,fSubClusterMom2,absId1,absId2,
58a18c5d 2638 distbad1,distbad2,fidcut1,fidcut2);
2639 if (nlm <= 0)
2640 {
2641 if(GetDebug() > 0 )
2642 Info("MakeAnalysisFillHistograms","No local maximum found! It did not pass CaloPID selection criteria \n");
2643
2644 continue;
2645 }
2646
ff6aa4ce 2647 Int_t inlm = nlm-1;
2648 if(inlm>2) inlm = 2;
ff6aa4ce 2649
58a18c5d 2650 fhNLocMaxDiffCut [iE][iDiff] [matched]->Fill(energy,nlm);
2651 fhM02NLocMaxDiffCut [iE][iDiff][inlm][matched]->Fill(energy,m02);
2652 fhMassNLocMaxDiffCut[iE][iDiff][inlm][matched]->Fill(energy,mass);
ff6aa4ce 2653
58a18c5d 2654 if(pidTag==AliCaloPID::kPi0)
2655 {
2656 fhNLocMaxDiffCutPi0 [iE][iDiff] [matched]->Fill(energy,nlm);
2657 fhM02NLocMaxDiffCutPi0 [iE][iDiff][inlm][matched]->Fill(energy,m02);
2658 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][matched]->Fill(energy,mass);
2659 }
2660
ff6aa4ce 2661 }
2662 }
2663
2664 GetCaloUtils()->SetLocalMaximaCutE (minEOrg );
2665 GetCaloUtils()->SetLocalMaximaCutEDiff(minEDiffOrg);
2666
2667}
2668
2669
b94e038e 2670//_____________________________________________________________________________________________
2671void AliAnaInsideClusterInvariantMass::FillSSExtraHistograms(AliVCluster *cluster, Int_t nMax,
2672 Bool_t matched, Int_t mcindex,
2673 Float_t mass , Int_t ebin)
b2e375c7 2674{
2675 // Fill optional histograms with more SS parameters
1253480f 2676
b2e375c7 2677 Float_t en = cluster->E();
b2e375c7 2678
2679 // Get more Shower Shape parameters
2680 Float_t ll0 = 0., ll1 = 0.;
2681 Float_t disp= 0., dispEta = 0., dispPhi = 0.;
2682 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2683
2684 GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
2685 ll0, ll1, disp, dispEta, dispPhi, sEta, sPhi, sEtaPhi);
2686
2687 Float_t dispAsy = -1;
2688 if(dispEta+dispPhi >0 ) dispAsy = (dispPhi-dispEta) / (dispPhi+dispEta);
b2e375c7 2689
2690 if (nMax==1)
2691 {
b2e375c7 2692 if( en > fHistoECut )
2693 {
2694 fhMassDispEtaNLocMax1[0][matched]->Fill(dispEta, mass );
2695 fhMassDispPhiNLocMax1[0][matched]->Fill(dispPhi, mass );
2696 fhMassDispAsyNLocMax1[0][matched]->Fill(dispAsy, mass );
2697
cb99fa55 2698 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2699 {
2700 fhMassDispEtaNLocMax1[mcindex][matched]->Fill(dispEta, mass );
2701 fhMassDispPhiNLocMax1[mcindex][matched]->Fill(dispPhi, mass );
2702 fhMassDispAsyNLocMax1[mcindex][matched]->Fill(dispAsy, mass );
2703 }
2704 }
2705
2706 if(!matched && ebin >= 0 && fFillEbinHisto)
2707 {
2708 fhMassDispEtaNLocMax1Ebin[ebin]->Fill(dispEta, mass );
2709 fhMassDispPhiNLocMax1Ebin[ebin]->Fill(dispPhi, mass );
2710 fhMassDispAsyNLocMax1Ebin[ebin]->Fill(dispAsy, mass );
2711 }
2712 }
2713 else if( nMax == 2 )
2714 {
b2e375c7 2715 if( en > fHistoECut )
2716 {
2717 fhMassDispEtaNLocMax2[0][matched]->Fill(dispEta, mass );
2718 fhMassDispPhiNLocMax2[0][matched]->Fill(dispPhi, mass );
2719 fhMassDispAsyNLocMax2[0][matched]->Fill(dispAsy, mass );
2720
cb99fa55 2721 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2722 {
2723 fhMassDispEtaNLocMax2[mcindex][matched]->Fill(dispEta, mass );
2724 fhMassDispPhiNLocMax2[mcindex][matched]->Fill(dispPhi, mass );
2725 fhMassDispAsyNLocMax2[mcindex][matched]->Fill(dispAsy, mass );
2726 }
2727 }
2728
2729 if(!matched && ebin >= 0 && fFillEbinHisto)
2730 {
2731 fhMassDispEtaNLocMax2Ebin[ebin]->Fill(dispEta, mass );
2732 fhMassDispPhiNLocMax2Ebin[ebin]->Fill(dispPhi, mass );
2733 fhMassDispAsyNLocMax2Ebin[ebin]->Fill(dispAsy, mass );
2734 }
2735
2736 }
2737 else if( nMax >= 3 )
2738 {
b2e375c7 2739 if( en > fHistoECut )
2740 {
2741 fhMassDispEtaNLocMaxN[0][matched]->Fill(dispEta, mass );
2742 fhMassDispPhiNLocMaxN[0][matched]->Fill(dispPhi, mass );
2743 fhMassDispAsyNLocMaxN[0][matched]->Fill(dispAsy, mass );
2744
cb99fa55 2745 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2746 {
2747 fhMassDispEtaNLocMaxN[mcindex][matched]->Fill(dispEta, mass );
2748 fhMassDispPhiNLocMaxN[mcindex][matched]->Fill(dispPhi, mass );
2749 fhMassDispAsyNLocMaxN[mcindex][matched]->Fill(dispAsy, mass );
2750 }
2751 }
2752
2753 if(!matched && ebin >= 0 && fFillEbinHisto)
2754 {
2755 fhMassDispEtaNLocMaxNEbin[ebin]->Fill(dispEta, mass );
2756 fhMassDispPhiNLocMaxNEbin[ebin]->Fill(dispPhi, mass );
2757 fhMassDispAsyNLocMaxNEbin[ebin]->Fill(dispAsy, mass );
2758 }
2759
2760 }
2761
2762}
2763
b94e038e 2764//__________________________________________________________________________________________
2765void AliAnaInsideClusterInvariantMass::FillSSWeightHistograms(AliVCluster *clus, Int_t nlm,
2766 Int_t absId1, Int_t absId2)
dbe09c26 2767{
2768 // Calculate weights and fill histograms
1253480f 2769
dbe09c26 2770 AliVCaloCells* cells = 0;
bdb39dbd 2771 if(GetCalorimeter() == kEMCAL) cells = GetEMCALCells();
dbe09c26 2772 else cells = GetPHOSCells();
2773
2774 // First recalculate energy in case non linearity was applied
09a5b22d 2775 Float_t energy = GetCaloUtils()->RecalibrateClusterEnergy(clus, cells);// recalculate cluster energy, avoid non lin correction.
2776
2777 Float_t simuTotWeight = 0;
2778 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
dbe09c26 2779 {
09a5b22d 2780 simuTotWeight = GetCaloUtils()->RecalibrateClusterEnergyWeightCell(clus, cells,energy);
2781 simuTotWeight/= energy;
2782 }
dbe09c26 2783
2784 if(energy <=0 )
2785 {
a6d3b0a8 2786 Info("WeightHistograms()","Wrong calculated energy %f\n",energy);
dbe09c26 2787 return;
2788 }
2789
19391b8c 2790 //Get amplitude of main local maxima, recalibrate if needed
2791 Float_t amp1 = cells->GetCellAmplitude(absId1);
0cea6003 2792 GetCaloUtils()->RecalibrateCellAmplitude(amp1,GetCalorimeter(), absId1);
19391b8c 2793 Float_t amp2 = cells->GetCellAmplitude(absId2);
0cea6003 2794 GetCaloUtils()->RecalibrateCellAmplitude(amp2,GetCalorimeter(), absId2);
19391b8c 2795
a6d3b0a8 2796 if(amp1 < amp2) Info("FillSSWeightHistograms","Bad local maxima E ordering : id1 E %f, id2 E %f\n ",amp1,amp2);
2797 if(amp1==0 || amp2==0) Info("FillSSWeightHistograms","Null E local maxima : id1 E %f, id2 E %f\n " ,amp1,amp2);
19391b8c 2798
09a5b22d 2799 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
2800 {
2801 amp1*=GetCaloUtils()->GetMCECellClusFracCorrection(amp1,energy)/simuTotWeight;
2802 amp2*=GetCaloUtils()->GetMCECellClusFracCorrection(amp2,energy)/simuTotWeight;
2803 }
2804
19391b8c 2805 if(amp1>0)fhPi0CellEMaxEMax2Frac [nlm]->Fill(energy,amp2/amp1);
2806 fhPi0CellEMaxClusterFrac [nlm]->Fill(energy,amp1/energy);
2807 fhPi0CellEMax2ClusterFrac[nlm]->Fill(energy,amp2/energy);
2808
dbe09c26 2809 //Get the ratio and log ratio to all cells in cluster
2810 for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
2811 {
2812 Int_t id = clus->GetCellsAbsId()[ipos];
2813
2814 //Recalibrate cell energy if needed
2815 Float_t amp = cells->GetCellAmplitude(id);
0cea6003 2816 GetCaloUtils()->RecalibrateCellAmplitude(amp,GetCalorimeter(), id);
09a5b22d 2817 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
2818 {
2819 //printf("eCell a) %f",amp);
2820 amp*=GetCaloUtils()->GetMCECellClusFracCorrection(amp,energy)/simuTotWeight;
2821 //printf(", b)%f\n",amp);
2822 }
dbe09c26 2823
19391b8c 2824 if(amp > 0)fhPi0CellE [nlm]->Fill(energy,amp);
dbe09c26 2825 fhPi0CellEFrac [nlm]->Fill(energy,amp/energy);
2826 fhPi0CellLogEFrac[nlm]->Fill(energy,TMath::Log(amp/energy));
19391b8c 2827
2828 if (id!=absId1 && id!=absId2)
2829 {
2830 if(amp1>0)fhPi0CellEMaxFrac [nlm]->Fill(energy,amp/amp1);
2831 if(amp2>0)fhPi0CellEMax2Frac[nlm]->Fill(energy,amp/amp2);
2832 }
2833
dbe09c26 2834 }
09a5b22d 2835
dbe09c26 2836 //Recalculate shower shape for different W0
bdb39dbd 2837 if(GetCalorimeter()==kEMCAL)
dbe09c26 2838 {
2839 Float_t l0org = clus->GetM02();
2840 Float_t l1org = clus->GetM20();
2841 Float_t dorg = clus->GetDispersion();
19391b8c 2842 Float_t w0org = GetCaloUtils()->GetEMCALRecoUtils()->GetW0();
dbe09c26 2843
5cd814a9 2844 //printf("E cl %2.3f, E recal %2.3f, nlm %d, Org w0 %2.3f, org l0 %2.3f\n",clus->E(), energy,nlm, w0org,l0org);
2845
dbe09c26 2846 for(Int_t iw = 0; iw < fSSWeightN; iw++)
2847 {
2848 GetCaloUtils()->GetEMCALRecoUtils()->SetW0(fSSWeight[iw]);
8edbd100 2849 //GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), cells, clus);
5cd814a9 2850 //fhM02WeightPi0[nlm][iw]->Fill(energy,clus->GetM02());
2851
8edbd100 2852 Float_t l0 = 0., l1 = 0.;
2853 Float_t disp = 0., dEta = 0., dPhi = 0.;
2854 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2855
2856 RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp,
5cd814a9 2857 dEta, dPhi, sEta, sPhi, sEtaPhi,fSSECellCut[0]);
2858 //Make sure that for pp fSSECellCut[0]=0.05 and for PbPb fSSECellCut[0]=0.15
8edbd100 2859
dbe09c26 2860
5cd814a9 2861 fhM02WeightPi0[nlm][iw]->Fill(energy,l0);
2862
2863 //printf("\t w0 %2.3f, l0 %2.3f\n",GetCaloUtils()->GetEMCALRecoUtils()->GetW0(),l0);
dbe09c26 2864
2865 } // w0 loop
2866
2867 // Set the original values back
2868 clus->SetM02(l0org);
2869 clus->SetM20(l1org);
2870 clus->SetDispersion(dorg);
19391b8c 2871 GetCaloUtils()->GetEMCALRecoUtils()->SetW0(w0org);
2872
2873 for(Int_t iec = 0; iec < fSSECellCutN; iec++)
2874 {
2875 Float_t l0 = 0., l1 = 0.;
2876 Float_t disp = 0., dEta = 0., dPhi = 0.;
2877 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
19391b8c 2878
3ae72bd8 2879 RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp,
2880 dEta, dPhi, sEta, sPhi, sEtaPhi,fSSECellCut[iec]);
2881
19391b8c 2882 fhM02ECellCutPi0[nlm][iec]->Fill(energy,l0);
2883
5cd814a9 2884 //printf("\t min E cell %2.3f, l0 %2.3f\n",fSSECellCut[iec], l0);
2885
19391b8c 2886 } // w0 loop
3ae72bd8 2887
dbe09c26 2888 }// EMCAL
2889}
2890
b94e038e 2891//____________________________________________________________________________________________
2892void AliAnaInsideClusterInvariantMass::FillTrackMatchingHistograms(AliVCluster * cluster,
2893 Int_t nMax, Int_t mcindex)
b2e375c7 2894{
2895 // Fill histograms related to track matching
1253480f 2896
b2e375c7 2897 Float_t dZ = cluster->GetTrackDz();
2898 Float_t dR = cluster->GetTrackDx();
2899 Float_t en = cluster->E();
2900
2901 if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn())
2902 {
2903 dR = 2000., dZ = 2000.;
2904 GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR);
2905 }
2906
2907 //printf("Pi0EbE: dPhi %f, dEta %f\n",dR,dZ);
2908
2909 if(TMath::Abs(dR) < 999)
2910 {
2911 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[0]->Fill(en,dR); }
2912 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[0]->Fill(en,dR); }
2913 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[0]->Fill(en,dR); }
2914
cb99fa55 2915 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2916 {
2917 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[mcindex]->Fill(en,dR); }
2918 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[mcindex]->Fill(en,dR); }
2919 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[mcindex]->Fill(en,dR); }
2920 }
2921
2922 AliVTrack *track = GetCaloUtils()->GetMatchedTrack(cluster, GetReader()->GetInputEvent());
2923
2924 Bool_t positive = kFALSE;
2925 if(track) positive = (track->Charge()>0);
2926
2927 if(track)
2928 {
2929 if(positive)
2930 {
2931 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[0]->Fill(en,dR); }
2932 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[0]->Fill(en,dR); }
2933 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[0]->Fill(en,dR); }
2934
cb99fa55 2935 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2936 {
2937 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[mcindex]->Fill(en,dR); }
2938 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[mcindex]->Fill(en,dR); }
2939 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[mcindex]->Fill(en,dR); }
2940 }
2941 }
2942 else
2943 {
2944 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[0]->Fill(en,dR); }
2945 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[0]->Fill(en,dR); }
2946 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[0]->Fill(en,dR); }
2947
cb99fa55 2948 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2949 {
2950 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[mcindex]->Fill(en,dR); }
2951 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[mcindex]->Fill(en,dR); }
2952 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[mcindex]->Fill(en,dR); }
2953 }
2954 }
2955
2956 }// track exists
2957
2958 }
2959}
dbe09c26 2960
992b14a7 2961//_______________________________________________________________
2962TObjString * AliAnaInsideClusterInvariantMass::GetAnalysisCuts()
2963{
2964 //Save parameters used for analysis
2965 TString parList ; //this will be list of parameters used for this analysis.
b94e038e 2966 Int_t buffersize = 255;
992b14a7 2967 char onePar[buffersize] ;
2968
2969 snprintf(onePar,buffersize,"--- AliAnaInsideClusterInvariantMass ---\n") ;
2970 parList+=onePar ;
2971
bdb39dbd 2972 snprintf(onePar,buffersize,"Calorimeter: %s\n", GetCalorimeterString().Data()) ;
992b14a7 2973 parList+=onePar ;
c8710850 2974 snprintf(onePar,buffersize,"fNLocMaxCutE =%2.2f \n", GetCaloUtils()->GetLocalMaximaCutE()) ;
29ca9cad 2975 parList+=onePar ;
c8710850 2976 snprintf(onePar,buffersize,"fNLocMaxCutEDiff =%2.2f \n",GetCaloUtils()->GetLocalMaximaCutEDiff()) ;
29ca9cad 2977 parList+=onePar ;
e23a0471 2978 snprintf(onePar,buffersize,"fMinNCells =%d \n", fMinNCells) ;
2cb134fb 2979 parList+=onePar ;
3c1d9afb 2980 snprintf(onePar,buffersize,"fMinBadDist =%1.1f \n", fMinBadDist) ;
992b14a7 2981 parList+=onePar ;
19391b8c 2982 if(fFillSSWeightHisto)
2983 {
2984 snprintf(onePar,buffersize," N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN);
2985 parList+=onePar ;
2986 }
2987
992b14a7 2988 return new TObjString(parList) ;
2989
2990}
2991
992b14a7 2992//________________________________________________________________
2993TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
1253480f 2994{
992b14a7 2995 // Create histograms to be saved in output file and
2996 // store them in outputContainer
2997 TList * outputContainer = new TList() ;
667432ef 2998 outputContainer->SetName("InsideClusterHistos") ;
992b14a7 2999
745913ae 3000 Int_t nptbins = GetHistogramRanges()->GetHistoPtBins(); Float_t ptmax = GetHistogramRanges()->GetHistoPtMax(); Float_t ptmin = GetHistogramRanges()->GetHistoPtMin();
3001 Int_t ssbins = GetHistogramRanges()->GetHistoShowerShapeBins(); Float_t ssmax = GetHistogramRanges()->GetHistoShowerShapeMax(); Float_t ssmin = GetHistogramRanges()->GetHistoShowerShapeMin();
3002 Int_t mbins = GetHistogramRanges()->GetHistoMassBins(); Float_t mmax = GetHistogramRanges()->GetHistoMassMax(); Float_t mmin = GetHistogramRanges()->GetHistoMassMin();
3003 Int_t ncbins = GetHistogramRanges()->GetHistoNClusterCellBins(); Int_t ncmax = GetHistogramRanges()->GetHistoNClusterCellMax(); Int_t ncmin = GetHistogramRanges()->GetHistoNClusterCellMin();
9554fc65 3004 Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins(); Float_t phimax = GetHistogramRanges()->GetHistoPhiMax(); Float_t phimin = GetHistogramRanges()->GetHistoPhiMin();
3005 Int_t netabins = GetHistogramRanges()->GetHistoEtaBins(); Float_t etamax = GetHistogramRanges()->GetHistoEtaMax(); Float_t etamin = GetHistogramRanges()->GetHistoEtaMin();
1253480f 3006
5c46c992 3007 Int_t nresetabins = GetHistogramRanges()->GetHistoTrackResidualEtaBins();
3008 Float_t resetamax = GetHistogramRanges()->GetHistoTrackResidualEtaMax();
3009 Float_t resetamin = GetHistogramRanges()->GetHistoTrackResidualEtaMin();
3010 Int_t nresphibins = GetHistogramRanges()->GetHistoTrackResidualPhiBins();
3011 Float_t resphimax = GetHistogramRanges()->GetHistoTrackResidualPhiMax();
3012 Float_t resphimin = GetHistogramRanges()->GetHistoTrackResidualPhiMin();
3013
1253480f 3014 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
3015 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
3016 Bool_t splitOn = kFALSE;
3017 if(GetCaloPID()->GetSplitEnergyFractionMinimum(0) > 0 ||
3018 GetCaloPID()->GetSplitEnergyFractionMinimum(1) > 0 ||
3019 GetCaloPID()->GetSplitEnergyFractionMinimum(2) > 0) splitOn = kTRUE;
3020
cb99fa55 3021 TString ptype[] ={"","#gamma","#gamma->e^{#pm}","#pi^{0}","#pi^{0} (#gamma->e^{#pm})","#eta", "hadron"};
3022 TString pname[] ={"","Photon","Conversion", "Pi0", "Pi0Conv", "Eta","Hadron"};
ce49dd72 3023 TString snlm [] = {"1","2","N"};
3024
25330263 3025 TString sEBin[] = {"8 < #it{E} < 12 GeV","12 < #it{E} < 16 GeV", "16 < #it{E} < 20 GeV", "#it{E} > 20 GeV" };
be894c1d 3026
992b14a7 3027 Int_t n = 1;
3028
cb99fa55 3029 if(IsDataMC()) n = 7;
992b14a7 3030
243c2909 3031 Int_t nMaxBins = 10;
3032
5c46c992 3033 TString sMatched[] = {"","Matched"};
3034
8edbd100 3035 Int_t nMatched = 2;
3036 if(!fFillTMHisto) nMatched = 1;
aa12888f 3037
58a18c5d 3038
3039 if(fFillNLMDiffCutHisto)
3040 {
3041 for(Int_t imatch = 0; imatch < nMatched; imatch++)
3042 {
3043 for(Int_t iE = 0; iE < fNLMSettingN; iE++)
3044 {
3045 for(Int_t iDiff = 0; iDiff < fNLMSettingN; iDiff++)
3046 {
3047 fhNLocMaxDiffCut[iE][iDiff][imatch] = new TH2F(Form("hNLocMax_MinE%d_MinDiffE%d%s",iE, iDiff, sMatched[imatch].Data()),
25330263 3048 Form("NLM for #it{E}_{LM}>%1.2f, #Delta E=%1.2F %s", fNLMMinE[iE], fNLMMinDiff[iDiff],sMatched[imatch].Data()),
58a18c5d 3049 nptbins,ptmin,ptmax, nMaxBins,0,nMaxBins);
25330263 3050 fhNLocMaxDiffCut[iE][iDiff][imatch]->SetYTitle("#it{NLM}");
3051 fhNLocMaxDiffCut[iE][iDiff][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3052 outputContainer->Add(fhNLocMaxDiffCut[iE][iDiff][imatch]) ;
3053
3054 fhNLocMaxDiffCutPi0[iE][iDiff][imatch] = new TH2F(Form("hNLocMaxPi0_MinE%d_MinDiffE%d%s",iE, iDiff, sMatched[imatch].Data()),
25330263 3055 Form("#pi^{0} NLM for #it{E}_{LM}>%1.2f, #Delta E=%1.2F %s",
58a18c5d 3056 fNLMMinE[iE], fNLMMinDiff[iDiff],sMatched[imatch].Data()),
3057 nptbins,ptmin,ptmax, nMaxBins,0,nMaxBins);
25330263 3058 fhNLocMaxDiffCutPi0[iE][iDiff][imatch]->SetYTitle("#it{NLM}");
3059 fhNLocMaxDiffCutPi0[iE][iDiff][imatch]->SetXTitle("#it{E}_{#pi^{0}}");
58a18c5d 3060 outputContainer->Add(fhNLocMaxDiffCutPi0[iE][iDiff][imatch]) ;
3061
3062 for(Int_t inlm = 0; inlm < 3; inlm++)
3063 {
3064
3065 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxM02_MinE%d_MinDiffE%d_NLM%s%s",
3066 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3067 Form("#lambda^{2}_{0} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3068 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3069 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3070 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetYTitle("#lambda^{2}_{0}");
25330263 3071 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3072 outputContainer->Add(fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch]) ;
3073
3074 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxMass_MinE%d_MinDiffE%d_NLM%s%s",
3075 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3076 Form("#it{M}_{split} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3077 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3078 nptbins,ptmin,ptmax, mbins,mmin,mmax);
25330263 3079 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetYTitle("#it{M}_{split}");
3080 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3081 outputContainer->Add(fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch]) ;
3082
3083 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxPi0M02_MinE%d_MinDiffE%d_NLM%s%s",
3084 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3085 Form("#pi^{0} #lambda^{2}_{0} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3086 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3087 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3088 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetYTitle("#lambda^{2}_{0}");
25330263 3089 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3090 outputContainer->Add(fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]) ;
3091
3092 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxPi0Mass_MinE%d_MinDiffE%d_NLM%s%s",
3093 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3094 Form("#pi^{0} #it{M}_{split} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3095 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3096 nptbins,ptmin,ptmax, mbins,mmin,mmax);
25330263 3097 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetYTitle("#it{M}_{split}");
3098 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3099 outputContainer->Add(fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]) ;
3100
3101 }
3102
3103 }
3104 }
3105 }
3106 return outputContainer;
3107 }
3108
ce49dd72 3109 if(fCheckSplitDistToBad)
3110 {
3111 for(Int_t inlm = 0; inlm < 3; inlm++)
3112 {
3113 fhMassBadDistClose[inlm] = new TH2F(Form("hMassBadDistCloseNLocMax%s",snlm[inlm].Data()),
25330263 3114 Form("Invariant mass of splitted cluster with #it{NLM}=%d vs E, 2nd LM close to bad channel",inlm),
ce49dd72 3115 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3116 fhMassBadDistClose[inlm]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3117 fhMassBadDistClose[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3118 outputContainer->Add(fhMassBadDistClose[inlm]) ;
3119
3120 fhM02BadDistClose[inlm] = new TH2F(Form("hM02BadDistCloseNLocMax%s",snlm[inlm].Data()),
25330263 3121 Form("#lambda_{0}^{2} for cluster with #it{NLM}=%d vs E, 2nd LM close to bad channel",inlm),
ce49dd72 3122 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3123 fhM02BadDistClose[inlm]->SetYTitle("#lambda_{0}^{2}");
25330263 3124 fhM02BadDistClose[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3125 outputContainer->Add(fhM02BadDistClose[inlm]) ;
3126
3127 fhMassOnBorder[inlm] = new TH2F(Form("hMassOnBorderNLocMax%s",snlm[inlm].Data()),
25330263 3128 Form("Invariant mass of splitted cluster with #it{NLM}=%d vs E, 2nd LM close to border",inlm),
ce49dd72 3129 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3130 fhMassOnBorder[inlm]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3131 fhMassOnBorder[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3132 outputContainer->Add(fhMassOnBorder[inlm]) ;
3133
3134 fhM02OnBorder[inlm] = new TH2F(Form("hM02OnBorderNLocMax%s",snlm[inlm].Data()),
25330263 3135 Form("#lambda_{0}^{2} for cluster with #it{NLM}=%d vs E, 2nd LM close to border",inlm),
ce49dd72 3136 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3137 fhM02OnBorder[inlm]->SetYTitle("#lambda_{0}^{2}");
25330263 3138 fhM02OnBorder[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3139 outputContainer->Add(fhM02OnBorder[inlm]) ;
3140
3141 }
3142 }
3143
5c46c992 3144 for(Int_t i = 0; i < n; i++)
667432ef 3145 {
8edbd100 3146 for(Int_t j = 0; j < nMatched; j++)
667432ef 3147 {
5c46c992 3148
ce49dd72 3149 fhNLocMax[i][j] = new TH2F(Form("hNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3150 Form("Number of local maxima in cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
3151 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3152 fhNLocMax[i][j] ->SetYTitle("#it{N} maxima");
3153 fhNLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3154 outputContainer->Add(fhNLocMax[i][j]) ;
29555e96 3155
3156 fhLM1NLocMax[i][j] = new TH2F(Form("hLM1NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3157 Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3158 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3159 fhLM1NLocMax[i][j] ->SetYTitle("#it{N} maxima");
3160 fhLM1NLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3161 outputContainer->Add(fhLM1NLocMax[i][j]) ;
3162
3163 fhLM2NLocMax[i][j] = new TH2F(Form("hLM2NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3164 Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3165 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3166 fhLM2NLocMax[i][j] ->SetYTitle("#it{N} maxima");
3167 fhLM2NLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3168 outputContainer->Add(fhLM2NLocMax[i][j]) ;
3169
3170 if(m02On)
3171 {
3172 fhNLocMaxM02Cut[i][j] = new TH2F(Form("hNLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3173 Form("Number of local maxima in cluster %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3174 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3175 fhNLocMaxM02Cut[i][j]->SetYTitle("#it{N} maxima");
3176 fhNLocMaxM02Cut[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 3177 outputContainer->Add(fhNLocMaxM02Cut[i][j]) ;
3178
3179 fhLM1NLocMaxM02Cut[i][j] = new TH2F(Form("hLM1NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3180 Form("Number of local maxima in cluster for split cluster 1 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3181 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3182 fhLM1NLocMaxM02Cut[i][j] ->SetYTitle("#it{N} maxima");
3183 fhLM1NLocMaxM02Cut[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3184 outputContainer->Add(fhLM1NLocMaxM02Cut[i][j]) ;
3185
3186 fhLM2NLocMaxM02Cut[i][j] = new TH2F(Form("hLM2NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3187 Form("Number of local maxima in cluster for split cluster 2 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3188 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3189 fhLM2NLocMaxM02Cut[i][j] ->SetYTitle("#it{N} maxima");
3190 fhLM2NLocMaxM02Cut[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3191 outputContainer->Add(fhLM2NLocMaxM02Cut[i][j]) ;
3192
3193 }
3194
3195
3196 fhNLocMaxIdPi0[i][j] = new TH2F(Form("hNLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3197 Form("Number of local maxima in pi0 ID cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
3198 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3199 fhNLocMaxIdPi0[i][j] ->SetYTitle("#it{N} maxima");
3200 fhNLocMaxIdPi0[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3201 outputContainer->Add(fhNLocMaxIdPi0[i][j]) ;
3202
3203
3204 fhLM1NLocMaxIdPi0[i][j] = new TH2F(Form("hLM1NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3205 Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3206 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3207 fhLM1NLocMaxIdPi0[i][j] ->SetYTitle("#it{N} maxima");
3208 fhLM1NLocMaxIdPi0[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3209 outputContainer->Add(fhLM1NLocMaxIdPi0[i][j]) ;
3210
3211 fhLM2NLocMaxIdPi0[i][j] = new TH2F(Form("hLM2NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3212 Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3213 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3214 fhLM2NLocMaxIdPi0[i][j] ->SetYTitle("#it{N} maxima");
3215 fhLM2NLocMaxIdPi0[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3216 outputContainer->Add(fhLM2NLocMaxIdPi0[i][j]) ;
3217
3218
3219
ce49dd72 3220
3221 fhSplitClusterENLocMax[i][j] = new TH2F(Form("hSplitEClusterNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3222 Form("Number of local maxima vs E of split clusters %s %s",ptype[i].Data(),sMatched[j].Data()),
3223 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3224 fhSplitClusterENLocMax[i][j] ->SetYTitle("#it{N} maxima");
3225 fhSplitClusterENLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3226 outputContainer->Add(fhSplitClusterENLocMax[i][j]) ;
3227
3228
3229 fhSplitClusterEPi0NLocMax[i][j] = new TH2F(Form("hSplitEClusterPi0NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3230 Form("Number of local maxima vs E of split clusters, id as pi0, %s %s",ptype[i].Data(),sMatched[j].Data()),
3231 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3232 fhSplitClusterEPi0NLocMax[i][j] ->SetYTitle("#it{N} maxima");
3233 fhSplitClusterEPi0NLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3234 outputContainer->Add(fhSplitClusterEPi0NLocMax[i][j]) ;
3235
3236 if(fFillNCellHisto)
3237 {
3238 fhNCellNLocMax1[i][j] = new TH2F(Form("hNCellNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3239 Form("n cells vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3240 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3241 fhNCellNLocMax1[i][j] ->SetYTitle("#it{N} cells");
3242 fhNCellNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3243 outputContainer->Add(fhNCellNLocMax1[i][j]) ;
3244
3245 fhNCellNLocMax2[i][j] = new TH2F(Form("hNCellNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3246 Form("n cells vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3247 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3248 fhNCellNLocMax2[i][j] ->SetYTitle("#it{N} cells");
3249 fhNCellNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3250 outputContainer->Add(fhNCellNLocMax2[i][j]) ;
3251
3252
3253 fhNCellNLocMaxN[i][j] = new TH2F(Form("hNCellNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3254 Form("n cells vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3255 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3256 fhNCellNLocMaxN[i][j] ->SetYTitle("#it{N} cells");
3257 fhNCellNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3258 outputContainer->Add(fhNCellNLocMaxN[i][j]) ;
3259 }
3260
5c46c992 3261 fhMassNLocMax1[i][j] = new TH2F(Form("hMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3262 Form("Invariant mass of splitted cluster with #it{NLM}=1 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3263 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3264 fhMassNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3265 fhMassNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
5c46c992 3266 outputContainer->Add(fhMassNLocMax1[i][j]) ;
3267
3268 fhMassNLocMax2[i][j] = new TH2F(Form("hMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3269 Form("Invariant mass of splitted cluster with #it{NLM}=2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3270 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3271 fhMassNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3272 fhMassNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
5c46c992 3273 outputContainer->Add(fhMassNLocMax2[i][j]) ;
3274
3275 fhMassNLocMaxN[i][j] = new TH2F(Form("hMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3276 Form("Invariant mass of splitted cluster with NLM>2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3277 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3278 fhMassNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3279 fhMassNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
667432ef 3280 outputContainer->Add(fhMassNLocMaxN[i][j]) ;
c7e9a4e9 3281
3282 fhMassSplitENLocMax1[i][j] = new TH2F(Form("hMassSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3283 Form("Invariant mass of splitted cluster with #it{NLM}=1 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3284 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3285 fhMassSplitENLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3286 fhMassSplitENLocMax1[i][j]->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3287 outputContainer->Add(fhMassSplitENLocMax1[i][j]) ;
3288
3289 fhMassSplitENLocMax2[i][j] = new TH2F(Form("hMassSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3290 Form("Invariant mass of splitted cluster with #it{NLM}=2 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3291 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3292 fhMassSplitENLocMax2[i][j]->SetYTitle("#it{E} _{M} (GeV/#it{c}^{2})");
3293 fhMassSplitENLocMax2[i][j]->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3294 outputContainer->Add(fhMassSplitENLocMax2[i][j]) ;
3295
3296 fhMassSplitENLocMaxN[i][j] = new TH2F(Form("hMassSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3297 Form("Invariant mass of splitted cluster with NLM>2 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3298 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3299 fhMassSplitENLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3300 fhMassSplitENLocMaxN[i][j]->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3301 outputContainer->Add(fhMassSplitENLocMaxN[i][j]) ;
1253480f 3302
3303 fhM02NLocMax1[i][j] = new TH2F(Form("hM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3304 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3305 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3306 fhM02NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3307 fhM02NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3308 outputContainer->Add(fhM02NLocMax1[i][j]) ;
3309
3310 fhM02NLocMax2[i][j] = new TH2F(Form("hM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3311 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3312 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3313 fhM02NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3314 fhM02NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3315 outputContainer->Add(fhM02NLocMax2[i][j]) ;
3316
3317 fhM02NLocMaxN[i][j] = new TH2F(Form("hM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3318 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3319 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3320 fhM02NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3321 fhM02NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3322 outputContainer->Add(fhM02NLocMaxN[i][j]) ;
3323
3324 fhAsymNLocMax1[i][j] = new TH2F(Form("hAsymNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3325 Form("Asymmetry of #it{NLM}=1 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3326 nptbins,ptmin,ptmax,200,-1,1);
25330263 3327 fhAsymNLocMax1[i][j]->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3328 fhAsymNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
1253480f 3329 outputContainer->Add(fhAsymNLocMax1[i][j]) ;
3330
3331 fhAsymNLocMax2[i][j] = new TH2F(Form("hAsymNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3332 Form("Asymmetry of #it{NLM}=2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3333 nptbins,ptmin,ptmax,200,-1,1);
25330263 3334 fhAsymNLocMax2[i][j]->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3335 fhAsymNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
1253480f 3336 outputContainer->Add(fhAsymNLocMax2[i][j]) ;
3337
3338 fhAsymNLocMaxN[i][j] = new TH2F(Form("hAsymNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3339 Form("Asymmetry of NLM>2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
3340 nptbins,ptmin,ptmax,200,-1,1);
25330263 3341 fhAsymNLocMaxN[i][j]->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3342 fhAsymNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
1253480f 3343 outputContainer->Add(fhAsymNLocMaxN[i][j]) ;
3344
3345 fhSplitEFractionNLocMax1[i][j] = new TH2F(Form("hSplitEFractionNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3346 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3347 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3348 fhSplitEFractionNLocMax1[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3349 fhSplitEFractionNLocMax1[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3350 outputContainer->Add(fhSplitEFractionNLocMax1[i][j]) ;
3351
3352 fhSplitEFractionNLocMax2[i][j] = new TH2F(Form("hSplitEFractionNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3353 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3354 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3355 fhSplitEFractionNLocMax2[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3356 fhSplitEFractionNLocMax2[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3357 outputContainer->Add(fhSplitEFractionNLocMax2[i][j]) ;
3358
3359 fhSplitEFractionNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3360 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3361 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3362 fhSplitEFractionNLocMaxN[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3363 fhSplitEFractionNLocMaxN[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3364 outputContainer->Add(fhSplitEFractionNLocMaxN[i][j]) ;
1253480f 3365
cb99fa55 3366 if(i==0 && j==0 )
1253480f 3367 {
cb99fa55 3368 if(m02On)
1253480f 3369 {
25330263 3370 fhMassM02CutNLocMax1 = new TH2F("hMassM02CutNLocMax1","Invariant mass of splitted cluster with #it{NLM}=1 vs E, M02 cut, no TM",
cb99fa55 3371 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3372 fhMassM02CutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3373 fhMassM02CutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3374 outputContainer->Add(fhMassM02CutNLocMax1) ;
1253480f 3375
25330263 3376 fhMassM02CutNLocMax2 = new TH2F("hMassM02CutNLocMax2","Invariant mass of splitted cluster with #it{NLM}=2 vs E, M02 cut, no TM",
cb99fa55 3377 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3378 fhMassM02CutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3379 fhMassM02CutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3380 outputContainer->Add(fhMassM02CutNLocMax2) ;
1253480f 3381
cb99fa55 3382 fhMassM02CutNLocMaxN = new TH2F("hMassM02CutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, M02 cut, no TM",
3383 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3384 fhMassM02CutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3385 fhMassM02CutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3386 outputContainer->Add(fhMassM02CutNLocMaxN) ;
3387
25330263 3388 fhAsymM02CutNLocMax1 = new TH2F("hAsymM02CutNLocMax1","Asymmetry of #it{NLM}=1 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3389 fhAsymM02CutNLocMax1->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3390 fhAsymM02CutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3391 outputContainer->Add(fhAsymM02CutNLocMax1) ;
3392
25330263 3393 fhAsymM02CutNLocMax2 = new TH2F("hAsymM02CutNLocMax2","Asymmetry of #it{NLM}=2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3394 fhAsymM02CutNLocMax2->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3395 fhAsymM02CutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3396 outputContainer->Add(fhAsymM02CutNLocMax2) ;
3397
3398 fhAsymM02CutNLocMaxN = new TH2F("hAsymM02CutNLocMaxN","Asymmetry of NLM>2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
25330263 3399 fhAsymM02CutNLocMaxN->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3400 fhAsymM02CutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3401 outputContainer->Add(fhAsymM02CutNLocMaxN) ;
7350f5d6 3402
cb99fa55 3403 if(splitOn)
3404 {
25330263 3405 fhMassSplitECutNLocMax1 = new TH2F("hMassSplitECutNLocMax1","Invariant mass of splitted cluster with #it{NLM}=1 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
cb99fa55 3406 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3407 fhMassSplitECutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3408 fhMassSplitECutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3409 outputContainer->Add(fhMassSplitECutNLocMax1) ;
3410
25330263 3411 fhMassSplitECutNLocMax2 = new TH2F("hMassSplitECutNLocMax2","Invariant mass of splitted cluster with #it{NLM}=2 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
cb99fa55 3412 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3413 fhMassSplitECutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3414 fhMassSplitECutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3415 outputContainer->Add(fhMassSplitECutNLocMax2) ;
3416
25330263 3417 fhMassSplitECutNLocMaxN = new TH2F("hMassSplitECutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
cb99fa55 3418 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3419 fhMassSplitECutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3420 fhMassSplitECutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3421 outputContainer->Add(fhMassSplitECutNLocMaxN) ;
3422 }
3423 }//m02on
1253480f 3424
cb99fa55 3425 if(asyOn)
3426 {
25330263 3427 fhMassAsyCutNLocMax1 = new TH2F("hMassAsyCutNLocMax1","Invariant mass of splitted cluster with #it{NLM}=1 vs E, Asy cut, no TM",
cb99fa55 3428 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3429 fhMassAsyCutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3430 fhMassAsyCutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3431 outputContainer->Add(fhMassAsyCutNLocMax1) ;
3432
25330263 3433 fhMassAsyCutNLocMax2 = new TH2F("hMassAsyCutNLocMax2","Invariant mass of splitted cluster with #it{NLM}=2 vs E, Asy cut, no TM",
cb99fa55 3434 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3435 fhMassAsyCutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3436 fhMassAsyCutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3437 outputContainer->Add(fhMassAsyCutNLocMax2) ;
3438
2c36e041 3439 fhMassAsyCutNLocMaxN = new TH2F("hMassAsyCutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, Asy cut, no TM",
cb99fa55 3440 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3441 fhMassAsyCutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3442 fhMassAsyCutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3443 outputContainer->Add(fhMassAsyCutNLocMaxN) ;
3444
25330263 3445 fhM02AsyCutNLocMax1 = new TH2F("hM02AsyCutNLocMax1","#lambda_{0}^{2} of #it{NLM}=1 vs cluster Energy, AsyCut, no TM",
cb99fa55 3446 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3447 fhM02AsyCutNLocMax1->SetYTitle("#lambda_{0}^{2}");
25330263 3448 fhM02AsyCutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3449 outputContainer->Add(fhM02AsyCutNLocMax1) ;
3450
25330263 3451 fhM02AsyCutNLocMax2 = new TH2F("hM02AsyCutNLocMax2","#lambda_{0}^{2} of #it{NLM}=2 vs cluster Energy, AsyCut, no TM",
cb99fa55 3452 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3453 fhM02AsyCutNLocMax2->SetYTitle("#lambda_{0}^{2}");
25330263 3454 fhM02AsyCutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3455 outputContainer->Add(fhM02AsyCutNLocMax2) ;
3456
3457 fhM02AsyCutNLocMaxN = new TH2F("hM02AsyCutNLocMaxN","#lambda_{0}^{2} of NLM>2 vs cluster Energy, AsyCut, no TM",
3458 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3459 fhM02AsyCutNLocMaxN->SetYTitle("#lambda_{0}^{2}");
25330263 3460 fhM02AsyCutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3461 outputContainer->Add(fhM02AsyCutNLocMaxN) ;
2c36e041 3462 }
3463
7350f5d6 3464 if(GetCaloPID()->GetSubClusterEnergyMinimum(0) > 0.1)
2c36e041 3465 {
25330263 3466 fhMassEnCutNLocMax1 = new TH2F("hMassEnCutNLocMax1",Form("Invariant mass of splitted cluster with #it{NLM}=1 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)),
7350f5d6 3467 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3468 fhMassEnCutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3469 fhMassEnCutNLocMax1->SetXTitle("#it{E} (GeV)");
7350f5d6 3470 outputContainer->Add(fhMassEnCutNLocMax1) ;
3471
25330263 3472 fhMassEnCutNLocMax2 = new TH2F("hMassEnCutNLocMax2",Form("Invariant mass of splitted cluster with #it{NLM}=2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)),
7350f5d6 3473 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3474 fhMassEnCutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3475 fhMassEnCutNLocMax2->SetXTitle("#it{E} (GeV)");
7350f5d6 3476 outputContainer->Add(fhMassEnCutNLocMax2) ;
3477
3478 fhMassEnCutNLocMaxN = new TH2F("hMassEnCutNLocMaxN",Form("Invariant mass of splitted cluster with NLM>2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3479 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3480 fhMassEnCutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3481 fhMassEnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
7350f5d6 3482 outputContainer->Add(fhMassEnCutNLocMaxN) ;
3483
25330263 3484 fhM02EnCutNLocMax1 = new TH2F("hM02EnCutNLocMax1",Form("#lambda_{0}^{2} of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)),
7350f5d6 3485 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3486 fhM02EnCutNLocMax1->SetYTitle("#lambda_{0}^{2}");
25330263 3487 fhM02EnCutNLocMax1->SetXTitle("#it{E} (GeV)");
7350f5d6 3488 outputContainer->Add(fhM02EnCutNLocMax1) ;
3489
25330263 3490 fhM02EnCutNLocMax2 = new TH2F("hM02EnCutNLocMax2",Form("#lambda_{0}^{2} of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)),
7350f5d6 3491 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3492 fhM02EnCutNLocMax2->SetYTitle("#lambda_{0}^{2}");
25330263 3493 fhM02EnCutNLocMax2->SetXTitle("#it{E} (GeV)");
7350f5d6 3494 outputContainer->Add(fhM02EnCutNLocMax2) ;
3495
3496 fhM02EnCutNLocMaxN = new TH2F("hM02EnCutNLocMaxN",Form("#lambda_{0}^{2} of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3497 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3498 fhM02EnCutNLocMaxN->SetYTitle("#lambda_{0}^{2}");
25330263 3499 fhM02EnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
7350f5d6 3500 outputContainer->Add(fhM02EnCutNLocMaxN) ;
3501
25330263 3502 fhAsymEnCutNLocMax1 = new TH2F("hAsymEnCutNLocMax1",Form("Asymmetry of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0))
7350f5d6 3503 , nptbins,ptmin,ptmax,200,-1,1);
25330263 3504 fhAsymEnCutNLocMax1->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3505 fhAsymEnCutNLocMax1->SetXTitle("#it{E} (GeV)");
7350f5d6 3506 outputContainer->Add(fhAsymEnCutNLocMax1) ;
3507
25330263 3508 fhAsymEnCutNLocMax2 = new TH2F("hAsymEnCutNLocMax2",Form("Asymmetry of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1))
7350f5d6 3509 , nptbins,ptmin,ptmax,200,-1,1);
25330263 3510 fhAsymEnCutNLocMax2->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3511 fhAsymEnCutNLocMax2->SetXTitle("#it{E} (GeV)");
7350f5d6 3512 outputContainer->Add(fhAsymEnCutNLocMax2) ;
3513
3514 fhAsymEnCutNLocMaxN = new TH2F("hAsymEnCutNLocMaxN",Form("Asymmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2))
3515 , nptbins,ptmin,ptmax,200,-1,1);
25330263 3516 fhAsymEnCutNLocMaxN->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3517 fhAsymEnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
7350f5d6 3518 outputContainer->Add(fhAsymEnCutNLocMaxN) ;
a6d3b0a8 3519
25330263 3520 fhSplitEFracEnCutNLocMax1 = new TH2F("hSplitEFracEnCutNLocMax1",Form("SplitEFracmetry of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0))
a6d3b0a8 3521 , nptbins,ptmin,ptmax,120,0,1.2);
25330263 3522 fhSplitEFracEnCutNLocMax1->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
3523 fhSplitEFracEnCutNLocMax1->SetXTitle("#it{E} (GeV)");
a6d3b0a8 3524 outputContainer->Add(fhSplitEFracEnCutNLocMax1) ;
2c36e041 3525
25330263 3526 fhSplitEFracEnCutNLocMax2 = new TH2F("hSplitEFracEnCutNLocMax2",Form("SplitEFracmetry of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1))
a6d3b0a8 3527 , nptbins,ptmin,ptmax,120,0,1.2);
25330263 3528 fhSplitEFracEnCutNLocMax2->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
3529 fhSplitEFracEnCutNLocMax2->SetXTitle("#it{E} (GeV)");
a6d3b0a8 3530 outputContainer->Add(fhSplitEFracEnCutNLocMax2) ;
3531
3532 fhSplitEFracEnCutNLocMaxN = new TH2F("hSplitEFracEnCutNLocMaxN",Form("SplitEFracmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2))
3533 , nptbins,ptmin,ptmax,120,0,1.2);
25330263 3534 fhSplitEFracEnCutNLocMaxN->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
3535 fhSplitEFracEnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
a6d3b0a8 3536 outputContainer->Add(fhSplitEFracEnCutNLocMaxN) ;
2c36e041 3537 }
7350f5d6 3538
3539 } // no MC
aa12888f 3540
c7e9a4e9 3541 if(asyOn || m02On )
1253480f 3542 {
3543 fhMassAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3544 Form("Mass vs E, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3545 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3546 fhMassAfterCutsNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3547 fhMassAfterCutsNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3548 outputContainer->Add(fhMassAfterCutsNLocMax1[i][j]) ;
3549
3550 fhMassAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3551 Form("Mass vs E, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3552 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3553 fhMassAfterCutsNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3554 fhMassAfterCutsNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3555 outputContainer->Add(fhMassAfterCutsNLocMax2[i][j]) ;
3556
1253480f 3557 fhMassAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3558 Form("Mass vs E, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3559 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3560 fhMassAfterCutsNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3561 fhMassAfterCutsNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3562 outputContainer->Add(fhMassAfterCutsNLocMaxN[i][j]) ;
c7e9a4e9 3563
3564 fhMassSplitEAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3565 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3566 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3567 fhMassSplitEAfterCutsNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3568 fhMassSplitEAfterCutsNLocMax1[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3569 outputContainer->Add(fhMassSplitEAfterCutsNLocMax1[i][j]) ;
3570
3571 fhMassSplitEAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3572 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3573 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3574 fhMassSplitEAfterCutsNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3575 fhMassSplitEAfterCutsNLocMax2[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3576 outputContainer->Add(fhMassSplitEAfterCutsNLocMax2[i][j]) ;
3577
3578 fhMassSplitEAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3579 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3580 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3581 fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3582 fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3583 outputContainer->Add(fhMassSplitEAfterCutsNLocMaxN[i][j]) ;
3584
1253480f 3585
3586 fhSplitEFractionAfterCutsNLocMax1[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3587 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 1, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3588 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3589 fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3590 fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3591 outputContainer->Add(fhSplitEFractionAfterCutsNLocMax1[i][j]) ;
3592
3593 fhSplitEFractionAfterCutsNLocMax2[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3594 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3595 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3596 fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3597 fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3598 outputContainer->Add(fhSplitEFractionAfterCutsNLocMax2[i][j]) ;
3599
3600 fhSplitEFractionAfterCutsNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3601 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max > 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3602 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3603 fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3604 fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3605 outputContainer->Add(fhSplitEFractionAfterCutsNLocMaxN[i][j]) ;
3606 }
5c46c992 3607
0137016b 3608 fhMassM02NLocMax1[i][j] = new TH2F(Form("hMassM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3609 Form("Invariant mass of splitted cluster with #it{NLM}=1, #lambda_{0}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3610 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3611 fhMassM02NLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
0137016b 3612 fhMassM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}");
3613 outputContainer->Add(fhMassM02NLocMax1[i][j]) ;
3614
3615 fhMassM02NLocMax2[i][j] = new TH2F(Form("hMassM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3616 Form("Invariant mass of splitted cluster with #it{NLM}=2, #lambda_{0}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3617 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3618 fhMassM02NLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
0137016b 3619 fhMassM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}");
3620 outputContainer->Add(fhMassM02NLocMax2[i][j]) ;
3621
3622 fhMassM02NLocMaxN[i][j] = new TH2F(Form("hMassM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3623 Form("Invariant mass of splitted cluster with NLM>2, vs #lambda_{0}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3624 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3625 fhMassM02NLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
0137016b 3626 fhMassM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}");
3627 outputContainer->Add(fhMassM02NLocMaxN[i][j]) ;
3628
8e81c2cf 3629 if(fFillSSExtraHisto)
3630 {
3631 fhMassDispEtaNLocMax1[i][j] = new TH2F(Form("hMassDispEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3632 Form("Invariant mass of splitted cluster with #it{NLM}=1, #sigma_{#eta #eta}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3633 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3634 fhMassDispEtaNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3635 fhMassDispEtaNLocMax1[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3636 outputContainer->Add(fhMassDispEtaNLocMax1[i][j]) ;
3637
3638 fhMassDispEtaNLocMax2[i][j] = new TH2F(Form("hMassDispEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3639 Form("Invariant mass of splitted cluster with #it{NLM}=2 #sigma_{#eta #eta}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3640 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3641 fhMassDispEtaNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3642 fhMassDispEtaNLocMax2[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3643 outputContainer->Add(fhMassDispEtaNLocMax2[i][j]) ;
3644
3645 fhMassDispEtaNLocMaxN[i][j] = new TH2F(Form("hMassDispEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3646 Form("Invariant mass of splitted cluster with NLM>2, #sigma_{#eta #eta}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3647 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3648 fhMassDispEtaNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3649 fhMassDispEtaNLocMaxN[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3650 outputContainer->Add(fhMassDispEtaNLocMaxN[i][j]) ;
3651
3652 fhMassDispPhiNLocMax1[i][j] = new TH2F(Form("hMassDispPhiNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3653 Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3654 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3655 fhMassDispPhiNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3656 fhMassDispPhiNLocMax1[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3657 outputContainer->Add(fhMassDispPhiNLocMax1[i][j]) ;
3658
3659 fhMassDispPhiNLocMax2[i][j] = new TH2F(Form("hMassDispPhiNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3660 Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3661 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3662 fhMassDispPhiNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3663 fhMassDispPhiNLocMax2[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3664 outputContainer->Add(fhMassDispPhiNLocMax2[i][j]) ;
3665
3666 fhMassDispPhiNLocMaxN[i][j] = new TH2F(Form("hMassDispPhiNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3667 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3668 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3669 fhMassDispPhiNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3670 fhMassDispPhiNLocMaxN[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3671 outputContainer->Add(fhMassDispPhiNLocMaxN[i][j]) ;
3672
3673 fhMassDispAsyNLocMax1[i][j] = new TH2F(Form("hMassDispAsyNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3674 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 3675 200,-1,1,mbins,mmin,mmax);
25330263 3676 fhMassDispAsyNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3677 fhMassDispAsyNLocMax1[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3678 outputContainer->Add(fhMassDispAsyNLocMax1[i][j]) ;
3679
3680 fhMassDispAsyNLocMax2[i][j] = new TH2F(Form("hMassDispAsyNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3681 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 3682 200,-1,1,mbins,mmin,mmax);
25330263 3683 fhMassDispAsyNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3684 fhMassDispAsyNLocMax2[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3685 outputContainer->Add(fhMassDispAsyNLocMax2[i][j]) ;
3686
3687 fhMassDispAsyNLocMaxN[i][j] = new TH2F(Form("hMassDispAsyNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3688 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()),
3689 200,-1,1,mbins,mmin,mmax);
25330263 3690 fhMassDispAsyNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3691 fhMassDispAsyNLocMaxN[i][j]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
8e81c2cf 3692 outputContainer->Add(fhMassDispAsyNLocMaxN[i][j]) ;
3693 }
d2655d46 3694
fc01318e 3695
b2e375c7 3696 if(i > 0 && fFillMCHisto) // skip first entry in array, general case not filled
883411b2 3697 {
3698 fhMCGenFracNLocMax1[i][j] = new TH2F(Form("hMCGenFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3699 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3700 nptbins,ptmin,ptmax,200,0,2);
25330263 3701 fhMCGenFracNLocMax1[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3702 fhMCGenFracNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
883411b2 3703 outputContainer->Add(fhMCGenFracNLocMax1[i][j]) ;
3704
3705 fhMCGenFracNLocMax2[i][j] = new TH2F(Form("hMCGenFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3706 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3707 nptbins,ptmin,ptmax,200,0,2);
25330263 3708 fhMCGenFracNLocMax2[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3709 fhMCGenFracNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
883411b2 3710 outputContainer->Add(fhMCGenFracNLocMax2[i][j]) ;
3711
883411b2 3712 fhMCGenFracNLocMaxN[i][j] = new TH2F(Form("hMCGenFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3713 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3714 nptbins,ptmin,ptmax,200,0,2);
25330263 3715 fhMCGenFracNLocMaxN[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3716 fhMCGenFracNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
883411b2 3717 outputContainer->Add(fhMCGenFracNLocMaxN[i][j]) ;
4914e781 3718
3719 fhMCGenFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3720 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3721 nptbins,ptmin,ptmax,200,0,2);
25330263 3722 fhMCGenFracNLocMax1NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3723 fhMCGenFracNLocMax1NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3724 outputContainer->Add(fhMCGenFracNLocMax1NoOverlap[i][j]) ;
3725
3726 fhMCGenFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3727 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3728 nptbins,ptmin,ptmax,200,0,2);
25330263 3729 fhMCGenFracNLocMax2NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3730 fhMCGenFracNLocMax2NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3731 outputContainer->Add(fhMCGenFracNLocMax2NoOverlap[i][j]) ;
3732
3733 fhMCGenFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3734 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3735 nptbins,ptmin,ptmax,200,0,2);
25330263 3736 fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3737 fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3738 outputContainer->Add(fhMCGenFracNLocMaxNNoOverlap[i][j]) ;
1253480f 3739
4914e781 3740
5094c724 3741 fhMCGenSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3742 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3743 nptbins,ptmin,ptmax,200,0,2);
25330263 3744 fhMCGenSplitEFracNLocMax1[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3745 fhMCGenSplitEFracNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
5094c724 3746 outputContainer->Add(fhMCGenSplitEFracNLocMax1[i][j]) ;
3747
3748 fhMCGenSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3749 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3750 nptbins,ptmin,ptmax,200,0,2);
25330263 3751 fhMCGenSplitEFracNLocMax2[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3752 fhMCGenSplitEFracNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
5094c724 3753 outputContainer->Add(fhMCGenSplitEFracNLocMax2[i][j]) ;
3754
5094c724 3755 fhMCGenSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3756 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3757 nptbins,ptmin,ptmax,200,0,2);
25330263 3758 fhMCGenSplitEFracNLocMaxN[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3759 fhMCGenSplitEFracNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
5094c724 3760 outputContainer->Add(fhMCGenSplitEFracNLocMaxN[i][j]) ;
1253480f 3761
4914e781 3762 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3763 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3764 nptbins,ptmin,ptmax,200,0,2);
25330263 3765 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3766 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3767 outputContainer->Add(fhMCGenSplitEFracNLocMax1NoOverlap[i][j]) ;
3768
3769 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3770 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3771 nptbins,ptmin,ptmax,200,0,2);
25330263 3772 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3773 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3774 outputContainer->Add(fhMCGenSplitEFracNLocMax2NoOverlap[i][j]) ;
3775
3776 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3777 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3778 nptbins,ptmin,ptmax,200,0,2);
25330263 3779 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3780 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3781 outputContainer->Add(fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]) ;
3782
bb2d339b 3783 fhMCGenEFracvsSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3784 Form("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3785 200,0,2,200,0,2);
25330263 3786 fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetYTitle("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco}");
3787 fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
bb2d339b 3788 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax1[i][j]) ;
3789
3790 fhMCGenEFracvsSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3791 Form("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3792 200,0,2,200,0,2);
25330263 3793 fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetYTitle("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco}");
3794 fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
bb2d339b 3795 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax2[i][j]) ;
3796
3797
3798 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3799 Form("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3800 200,0,2,200,0,2);
25330263 3801 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetYTitle("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco}");
3802 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
bb2d339b 3803 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMaxN[i][j]) ;
3804
3805
3806 fhMCGenEvsSplitENLocMax1[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3807 Form("#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3808 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 3809 fhMCGenEvsSplitENLocMax1[i][j] ->SetYTitle("#it{E}_{1 split}+#it{E}_{2 split} (GeV)");
3810 fhMCGenEvsSplitENLocMax1[i][j] ->SetXTitle("#it{E}_{gen} (GeV)");
bb2d339b 3811 outputContainer->Add(fhMCGenEvsSplitENLocMax1[i][j]) ;
3812
3813 fhMCGenEvsSplitENLocMax2[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3814 Form("#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3815 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 3816 fhMCGenEvsSplitENLocMax2[i][j] ->SetYTitle("#it{E}_{1 split}+#it{E}_{2 split} (GeV)");
3817 fhMCGenEvsSplitENLocMax2[i][j] ->SetXTitle("#it{E}_{gen} (GeV)");
bb2d339b 3818 outputContainer->Add(fhMCGenEvsSplitENLocMax2[i][j]) ;
3819
3820
3821 fhMCGenEvsSplitENLocMaxN[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3822 Form("#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3823 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 3824 fhMCGenEvsSplitENLocMaxN[i][j] ->SetYTitle("#it{E}_{1 split}+#it{E}_{2 split} (GeV)");
3825 fhMCGenEvsSplitENLocMaxN[i][j] ->SetXTitle("#it{E}_{gen} (GeV)");
bb2d339b 3826 outputContainer->Add(fhMCGenEvsSplitENLocMaxN[i][j]) ;
883411b2 3827 }
ce49dd72 3828
1253480f 3829 // Histograms after cluster identification
17f5b4b6 3830
17f5b4b6 3831
1253480f 3832 // Pi0 //
17f5b4b6 3833
c8710850 3834 fhM02Pi0NLocMax1[i][j] = new TH2F(Form("hM02Pi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3835 Form("#lambda_{0}^{2} vs #it{E}, %s, for NLM = 1",ptype[i].Data()),
1253480f 3836 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3837 fhM02Pi0NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3838 fhM02Pi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
17f5b4b6 3839 outputContainer->Add(fhM02Pi0NLocMax1[i][j]) ;
5c46c992 3840
c8710850 3841 fhM02Pi0NLocMax2[i][j] = new TH2F(Form("hM02Pi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3842 Form("#lambda_{0}^{2} vs #it{E}, %s, for NLM = 2",ptype[i].Data()),
1253480f 3843 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3844 fhM02Pi0NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3845 fhM02Pi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3846 outputContainer->Add(fhM02Pi0NLocMax2[i][j]) ;
5c46c992 3847
c8710850 3848 fhM02Pi0NLocMaxN[i][j] = new TH2F(Form("hM02Pi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3849 Form("#lambda_{0}^{2} vs #it{E}, %s, for NLM > 2",ptype[i].Data()),
1253480f 3850 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3851 fhM02Pi0NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3852 fhM02Pi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3853 outputContainer->Add(fhM02Pi0NLocMaxN[i][j]) ;
5c46c992 3854
c8710850 3855 fhMassPi0NLocMax1[i][j] = new TH2F(Form("hMassPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3856 Form("Mass vs #it{E}, %s, for NLM = 1",ptype[i].Data()),
1253480f 3857 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3858 fhMassPi0NLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3859 fhMassPi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3860 outputContainer->Add(fhMassPi0NLocMax1[i][j]) ;
bb2d339b 3861
c8710850 3862 fhMassPi0NLocMax2[i][j] = new TH2F(Form("hMassPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3863 Form("Mass vs #it{E} , %s, for NLM = 2",ptype[i].Data()),
1253480f 3864 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3865 fhMassPi0NLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3866 fhMassPi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3867 outputContainer->Add(fhMassPi0NLocMax2[i][j]) ;
bb2d339b 3868
c8710850 3869 fhMassPi0NLocMaxN[i][j] = new TH2F(Form("hMassPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3870 Form("Mass vs #it{E}, %s, for NLM > 2",ptype[i].Data()),
1253480f 3871 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3872 fhMassPi0NLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3873 fhMassPi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3874 outputContainer->Add(fhMassPi0NLocMaxN[i][j]) ;
c7e9a4e9 3875
3876 fhMassSplitEPi0NLocMax1[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3877 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s, for NLM = 1",ptype[i].Data()),
c7e9a4e9 3878 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3879 fhMassSplitEPi0NLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3880 fhMassSplitEPi0NLocMax1[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3881 outputContainer->Add(fhMassSplitEPi0NLocMax1[i][j]) ;
3882
3883 fhMassSplitEPi0NLocMax2[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3884 Form("Mass vs #it{E}_{1}+#it{E}_{2} , %s, for NLM = 2",ptype[i].Data()),
c7e9a4e9 3885 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3886 fhMassSplitEPi0NLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3887 fhMassSplitEPi0NLocMax2[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3888 outputContainer->Add(fhMassSplitEPi0NLocMax2[i][j]) ;
3889
3890 fhMassSplitEPi0NLocMaxN[i][j] = new TH2F(Form("hMassSplitEPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3891 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s, for NLM > 2",ptype[i].Data()),
c7e9a4e9 3892 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3893 fhMassSplitEPi0NLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3894 fhMassSplitEPi0NLocMaxN[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3895 outputContainer->Add(fhMassSplitEPi0NLocMaxN[i][j]) ;
bb2d339b 3896
c8710850 3897 fhAsyPi0NLocMax1[i][j] = new TH2F(Form("hAsyPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3898 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
e671adc2 3899 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3900 fhAsyPi0NLocMax1[i][j] ->SetYTitle("#it{A}");
3901 fhAsyPi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3902 outputContainer->Add(fhAsyPi0NLocMax1[i][j]) ;
e671adc2 3903
c8710850 3904 fhAsyPi0NLocMax2[i][j] = new TH2F(Form("hAsyPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3905 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
e671adc2 3906 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3907 fhAsyPi0NLocMax2[i][j] ->SetYTitle("#it{A}");
3908 fhAsyPi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3909 outputContainer->Add(fhAsyPi0NLocMax2[i][j]) ;
e671adc2 3910
c8710850 3911 fhAsyPi0NLocMaxN[i][j] = new TH2F(Form("hAsyPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3912 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
e671adc2 3913 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3914 fhAsyPi0NLocMaxN[i][j] ->SetYTitle("#it{A}");
3915 fhAsyPi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3916 outputContainer->Add(fhAsyPi0NLocMaxN[i][j]) ;
e671adc2 3917
1253480f 3918 if(fFillNCellHisto)
3919 {
3920 fhNCellPi0NLocMax1[i][j] = new TH2F(Form("hNCellPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3921 Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()),
3922 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3923 fhNCellPi0NLocMax1[i][j] ->SetYTitle("#it{N} cells");
3924 fhNCellPi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3925 outputContainer->Add(fhNCellPi0NLocMax1[i][j]) ;
3926
3927 fhNCellPi0NLocMax2[i][j] = new TH2F(Form("hNCellPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3928 Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()),
3929 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3930 fhNCellPi0NLocMax2[i][j] ->SetYTitle("#it{N} cells");
3931 fhNCellPi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3932 outputContainer->Add(fhNCellPi0NLocMax2[i][j]) ;
3933
3934 fhNCellPi0NLocMaxN[i][j] = new TH2F(Form("hNCellPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3935 Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()),
3936 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3937 fhNCellPi0NLocMaxN[i][j] ->SetYTitle("#it{N} cells");
3938 fhNCellPi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3939 outputContainer->Add(fhNCellPi0NLocMaxN[i][j]) ;
3940 }
3941
3942 // Eta
3943
3944 if(fFillIdEtaHisto)
3945 {
3946 fhM02EtaNLocMax1[i][j] = new TH2F(Form("hM02EtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3947 Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
3948 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3949 fhM02EtaNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3950 fhM02EtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3951 outputContainer->Add(fhM02EtaNLocMax1[i][j]) ;
3952
3953
3954 fhM02EtaNLocMax2[i][j] = new TH2F(Form("hM02EtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3955 Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
3956 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3957 fhM02EtaNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3958 fhM02EtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3959 outputContainer->Add(fhM02EtaNLocMax2[i][j]) ;
3960
3961 fhM02EtaNLocMaxN[i][j] = new TH2F(Form("hM02EtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3962 Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
3963 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3964 fhM02EtaNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3965 fhM02EtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3966 outputContainer->Add(fhM02EtaNLocMaxN[i][j]) ;
3967
3968 fhMassEtaNLocMax1[i][j] = new TH2F(Form("hMassEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3969 Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()),
3970 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3971 fhMassEtaNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3972 fhMassEtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3973 outputContainer->Add(fhMassEtaNLocMax1[i][j]) ;
3974
3975 fhMassEtaNLocMax2[i][j] = new TH2F(Form("hMassEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3976 Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()),
3977 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3978 fhMassEtaNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3979 fhMassEtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3980 outputContainer->Add(fhMassEtaNLocMax2[i][j]) ;
3981
3982 fhMassEtaNLocMaxN[i][j] = new TH2F(Form("hMassEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3983 Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()),
3984 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3985 fhMassEtaNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3986 fhMassEtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3987 outputContainer->Add(fhMassEtaNLocMaxN[i][j]) ;
3988
3989 fhAsyEtaNLocMax1[i][j] = new TH2F(Form("hAsyEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3990 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
3991 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3992 fhAsyEtaNLocMax1[i][j] ->SetYTitle("#it{A}");
3993 fhAsyEtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3994 outputContainer->Add(fhAsyEtaNLocMax1[i][j]) ;
3995
3996 fhAsyEtaNLocMax2[i][j] = new TH2F(Form("hAsyEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3997 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
3998 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3999 fhAsyEtaNLocMax2[i][j] ->SetYTitle("#it{A}");
4000 fhAsyEtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4001 outputContainer->Add(fhAsyEtaNLocMax2[i][j]) ;
4002
4003 fhAsyEtaNLocMaxN[i][j] = new TH2F(Form("hAsyEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4004 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
4005 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4006 fhAsyEtaNLocMaxN[i][j] ->SetYTitle("#it{A}");
4007 fhAsyEtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4008 outputContainer->Add(fhAsyEtaNLocMaxN[i][j]) ;
4009
4010 if(fFillNCellHisto)
4011 {
4012 fhNCellEtaNLocMax1[i][j] = new TH2F(Form("hNCellEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4013 Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()),
4014 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 4015 fhNCellEtaNLocMax1[i][j] ->SetYTitle("#it{N} cells");
4016 fhNCellEtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4017 outputContainer->Add(fhNCellEtaNLocMax1[i][j]) ;
4018
4019 fhNCellEtaNLocMax2[i][j] = new TH2F(Form("hNCellEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4020 Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()),
4021 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 4022 fhNCellEtaNLocMax2[i][j] ->SetYTitle("#it{N} cells");
4023 fhNCellEtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4024 outputContainer->Add(fhNCellEtaNLocMax2[i][j]) ;
4025
4026 fhNCellEtaNLocMaxN[i][j] = new TH2F(Form("hNCellEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4027 Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()),
4028 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 4029 fhNCellEtaNLocMaxN[i][j] ->SetYTitle("#it{N} cells");
4030 fhNCellEtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4031 outputContainer->Add(fhNCellEtaNLocMaxN[i][j]) ;
4032
4033 }
4034 }
4035
4036 if(fFillIdConvHisto)
4037 {
4038 fhM02ConNLocMax1[i][j] = new TH2F(Form("hM02ConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4039 Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
4040 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4041 fhM02ConNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4042 fhM02ConNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4043 outputContainer->Add(fhM02ConNLocMax1[i][j]) ;
4044
4045 fhM02ConNLocMax2[i][j] = new TH2F(Form("hM02ConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4046 Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
4047 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4048 fhM02ConNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4049 fhM02ConNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4050 outputContainer->Add(fhM02ConNLocMax2[i][j]) ;
4051
4052 fhM02ConNLocMaxN[i][j] = new TH2F(Form("hM02ConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4053 Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
4054 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4055 fhM02ConNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4056 fhM02ConNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4057 outputContainer->Add(fhM02ConNLocMaxN[i][j]) ;
4058
4059
4060 fhMassConNLocMax1[i][j] = new TH2F(Form("hMassConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4061 Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()),
4062 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4063 fhMassConNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4064 fhMassConNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4065 outputContainer->Add(fhMassConNLocMax1[i][j]) ;
4066
4067 fhMassConNLocMax2[i][j] = new TH2F(Form("hMassConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4068 Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()),
4069 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4070 fhMassConNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4071 fhMassConNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4072 outputContainer->Add(fhMassConNLocMax2[i][j]) ;
4073
4074 fhMassConNLocMaxN[i][j] = new TH2F(Form("hMassConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4075 Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()),
4076 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4077 fhMassConNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4078 fhMassConNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4079 outputContainer->Add(fhMassConNLocMaxN[i][j]) ;
4080
4081 fhAsyConNLocMax1[i][j] = new TH2F(Form("hAsyConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4082 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
4083 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4084 fhAsyConNLocMax1[i][j] ->SetYTitle("#it{A}");
4085 fhAsyConNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4086 outputContainer->Add(fhAsyConNLocMax1[i][j]) ;
4087
4088 fhAsyConNLocMax2[i][j] = new TH2F(Form("hAsyConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4089 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
4090 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4091 fhAsyConNLocMax2[i][j] ->SetYTitle("#it{A}");
4092 fhAsyConNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4093 outputContainer->Add(fhAsyConNLocMax2[i][j]) ;
4094
4095 fhAsyConNLocMaxN[i][j] = new TH2F(Form("hAsyConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4096 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
4097 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4098 fhAsyConNLocMaxN[i][j] ->SetYTitle("#it{A}");
4099 fhAsyConNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4100 outputContainer->Add(fhAsyConNLocMaxN[i][j]) ;
4101
4102 }
e671adc2 4103
5c46c992 4104 } // matched, not matched
4105
19391b8c 4106 if(fFillEbinHisto)
4107 {
883411b2 4108 for(Int_t j = 0; j < 4; j++)
19391b8c 4109 {
53f2c382 4110
fc01318e 4111 fhMassSplitEFractionNLocMax1Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax1%sEbin%d",pname[i].Data(),j),
25330263 4112 Form("Invariant mass of 2 highest energy cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4113 120,0,1.2,mbins,mmin,mmax);
25330263 4114 fhMassSplitEFractionNLocMax1Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4115 fhMassSplitEFractionNLocMax1Ebin[i][j]->SetXTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
19391b8c 4116 outputContainer->Add(fhMassSplitEFractionNLocMax1Ebin[i][j]) ;
883411b2 4117
fc01318e 4118 fhMassSplitEFractionNLocMax2Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax2%sEbin%d",pname[i].Data(),j),
25330263 4119 Form("Invariant mass of 2 local maxima cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4120 120,0,1.2,mbins,mmin,mmax);
25330263 4121 fhMassSplitEFractionNLocMax2Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4122 fhMassSplitEFractionNLocMax2Ebin[i][j]->SetXTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
19391b8c 4123 outputContainer->Add(fhMassSplitEFractionNLocMax2Ebin[i][j]) ;
883411b2 4124
fc01318e 4125 fhMassSplitEFractionNLocMaxNEbin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMaxN%sEbin%d",pname[i].Data(),j),
25330263 4126 Form("Invariant mass of N>2 local maxima cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4127 120,0,1.2,mbins,mmin,mmax);
25330263 4128 fhMassSplitEFractionNLocMaxNEbin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4129 fhMassSplitEFractionNLocMaxNEbin[i][j]->SetXTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
19391b8c 4130 outputContainer->Add(fhMassSplitEFractionNLocMaxNEbin[i][j]) ;
883411b2 4131
b2e375c7 4132 if(i>0 && fFillMCHisto) // skip first entry in array, general case not filled
fc01318e 4133 {
4134 fhMCGenFracNLocMaxEbin[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%d",pname[i].Data(),j),
be894c1d 4135 Form("NLM vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4136 200,0,2,nMaxBins,0,nMaxBins);
25330263 4137 fhMCGenFracNLocMaxEbin[i][j]->SetYTitle("#it{NLM}");
4138 fhMCGenFracNLocMaxEbin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4139 outputContainer->Add(fhMCGenFracNLocMaxEbin[i][j]) ;
fc01318e 4140
4141 fhMCGenFracNLocMaxEbinMatched[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%dMatched",pname[i].Data(),j),
be894c1d 4142 Form("NLM vs E, %s, %s, matched to a track",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4143 200,0,2,nMaxBins,0,nMaxBins);
25330263 4144 fhMCGenFracNLocMaxEbinMatched[i][j]->SetYTitle("#it{NLM}");
4145 fhMCGenFracNLocMaxEbinMatched[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4146 outputContainer->Add(fhMCGenFracNLocMaxEbinMatched[i][j]) ;
fc01318e 4147
4148 fhMassMCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax1%sEbin%d",pname[i].Data(),j),
be894c1d 4149 Form("Invariant mass of 2 highest energy cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4150 200,0,2,mbins,mmin,mmax);
25330263 4151 fhMassMCGenFracNLocMax1Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4152 fhMassMCGenFracNLocMax1Ebin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4153 outputContainer->Add(fhMassMCGenFracNLocMax1Ebin[i][j]) ;
fc01318e 4154
4155 fhMassMCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax2%sEbin%d",pname[i].Data(),j),
be894c1d 4156 Form("Invariant mass of 2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4157 200,0,2,mbins,mmin,mmax);
25330263 4158 fhMassMCGenFracNLocMax2Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4159 fhMassMCGenFracNLocMax2Ebin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4160 outputContainer->Add(fhMassMCGenFracNLocMax2Ebin[i][j]) ;
fc01318e 4161
4162 fhMassMCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hMassMCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j),
be894c1d 4163 Form("Invariant mass of N>2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4164 200,0,2,mbins,mmin,mmax);
25330263 4165 fhMassMCGenFracNLocMaxNEbin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4166 fhMassMCGenFracNLocMaxNEbin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4167 outputContainer->Add(fhMassMCGenFracNLocMaxNEbin[i][j]) ;
fc01318e 4168
4169 fhM02MCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax1%sEbin%d",pname[i].Data(),j),
be894c1d 4170 Form("#lambda_{0}^{2} vs E for N max = 1 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4171 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4172 fhM02MCGenFracNLocMax1Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4173 fhM02MCGenFracNLocMax1Ebin[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4174 outputContainer->Add(fhM02MCGenFracNLocMax1Ebin[i][j]) ;
fc01318e 4175
4176 fhM02MCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax2%sEbin%d",pname[i].Data(),j),
be894c1d 4177 Form("#lambda_{0}^{2} vs E for N max = 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4178 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4179 fhM02MCGenFracNLocMax2Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4180 fhM02MCGenFracNLocMax2Ebin[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4181 outputContainer->Add(fhM02MCGenFracNLocMax2Ebin[i][j]) ;
fc01318e 4182
4183 fhM02MCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hM02MCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j),
be894c1d 4184 Form("#lambda_{0}^{2} vs E for N max > 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4185 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4186 fhM02MCGenFracNLocMaxNEbin[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4187 fhM02MCGenFracNLocMaxNEbin[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4188 outputContainer->Add(fhM02MCGenFracNLocMaxNEbin[i][j]) ;
fc01318e 4189 }
883411b2 4190 }
19391b8c 4191 }
5c46c992 4192 } // MC particle list
1253480f 4193
4194 if(fFillHighMultHisto)
4195 {
4196 // E vs centrality
4197
4198 fhCentralityPi0NLocMax1 = new TH2F("hCentralityPi0NLocMax1",
25330263 4199 "E vs Centrality, selected pi0 cluster with #it{NLM}=1",
1253480f 4200 nptbins,ptmin,ptmax,100,0,100);
25330263 4201 fhCentralityPi0NLocMax1->SetYTitle("#it{Centrality}");
4202 fhCentralityPi0NLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4203 outputContainer->Add(fhCentralityPi0NLocMax1) ;
4204
4205 fhCentralityPi0NLocMax2 = new TH2F("hCentralityPi0NLocMax2",
25330263 4206 "E vs Centrality, selected pi0 cluster with #it{NLM}=2",
1253480f 4207 nptbins,ptmin,ptmax,100,0,100);
25330263 4208 fhCentralityPi0NLocMax2->SetYTitle("#it{Centrality}");
4209 fhCentralityPi0NLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4210 outputContainer->Add(fhCentralityPi0NLocMax2) ;
4211
4212 fhCentralityPi0NLocMaxN = new TH2F("hCentralityPi0NLocMaxN",
4213 "E vs Centrality, selected pi0 cluster with NLM>1",
4214 nptbins,ptmin,ptmax,100,0,100);
25330263 4215 fhCentralityPi0NLocMaxN->SetYTitle("#it{Centrality}");
4216 fhCentralityPi0NLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4217 outputContainer->Add(fhCentralityPi0NLocMaxN) ;
4218
4219 if(fFillIdEtaHisto)
4220 {
4221 fhCentralityEtaNLocMax1 = new TH2F("hCentralityEtaNLocMax1",
25330263 4222 "E vs Centrality, selected pi0 cluster with #it{NLM}=1",
1253480f 4223 nptbins,ptmin,ptmax,100,0,100);
25330263 4224 fhCentralityEtaNLocMax1->SetYTitle("#it{Centrality}");
4225 fhCentralityEtaNLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4226 outputContainer->Add(fhCentralityEtaNLocMax1) ;
4227
4228 fhCentralityEtaNLocMax2 = new TH2F("hCentralityEtaNLocMax2",
25330263 4229 "E vs Centrality, selected pi0 cluster with #it{NLM}=2",
1253480f 4230 nptbins,ptmin,ptmax,100,0,100);
25330263 4231 fhCentralityEtaNLocMax2->SetYTitle("#it{Centrality}");
4232 fhCentralityEtaNLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4233 outputContainer->Add(fhCentralityEtaNLocMax2) ;
4234
4235 fhCentralityEtaNLocMaxN = new TH2F("hCentralityEtaNLocMaxN",
4236 "E vs Centrality, selected pi0 cluster with NLM>1",
4237 nptbins,ptmin,ptmax,100,0,100);
25330263 4238 fhCentralityEtaNLocMaxN->SetYTitle("#it{Centrality}");
4239 fhCentralityEtaNLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4240 outputContainer->Add(fhCentralityEtaNLocMaxN) ;
4241 }
4242
4243 // E vs Event plane angle
4244
25330263 4245 fhEventPlanePi0NLocMax1 = new TH2F("hEventPlanePi0NLocMax1","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=1",
1253480f 4246 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4247 fhEventPlanePi0NLocMax1->SetYTitle("#it{Event Plane Angle} (rad)");
4248 fhEventPlanePi0NLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4249 outputContainer->Add(fhEventPlanePi0NLocMax1) ;
4250
25330263 4251 fhEventPlanePi0NLocMax2 = new TH2F("hEventPlanePi0NLocMax2","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=2",
1253480f 4252 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4253 fhEventPlanePi0NLocMax2->SetYTitle("#it{Event Plane Angle} (rad)");
4254 fhEventPlanePi0NLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4255 outputContainer->Add(fhEventPlanePi0NLocMax2) ;
4256
4257 fhEventPlanePi0NLocMaxN = new TH2F("hEventPlanePi0NLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4258 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4259 fhEventPlanePi0NLocMaxN->SetYTitle("#it{Event Plane Angle} (rad)");
4260 fhEventPlanePi0NLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4261 outputContainer->Add(fhEventPlanePi0NLocMaxN) ;
4262
4263 if(fFillIdEtaHisto)
4264 {
25330263 4265 fhEventPlaneEtaNLocMax1 = new TH2F("hEventPlaneEtaNLocMax1","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=1",
1253480f 4266 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4267 fhEventPlaneEtaNLocMax1->SetYTitle("#it{Event Plane Angle} (rad)");
4268 fhEventPlaneEtaNLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4269 outputContainer->Add(fhEventPlaneEtaNLocMax1) ;
4270
25330263 4271 fhEventPlaneEtaNLocMax2 = new TH2F("hEventPlaneEtaNLocMax2","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=2",
1253480f 4272 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4273 fhEventPlaneEtaNLocMax2->SetYTitle("#it{Event Plane Angle} (rad)");
4274 fhEventPlaneEtaNLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4275 outputContainer->Add(fhEventPlaneEtaNLocMax2) ;
4276
4277 fhEventPlaneEtaNLocMaxN = new TH2F("hEventPlaneEtaNLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4278 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4279 fhEventPlaneEtaNLocMaxN->SetYTitle("#it{Event Plane Angle} (rad)");
4280 fhEventPlaneEtaNLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4281 outputContainer->Add(fhEventPlaneEtaNLocMaxN) ;
4282 }
4283 }
17f5b4b6 4284
19391b8c 4285 if(fFillEbinHisto)
4286 {
4287 for(Int_t i = 0; i < 4; i++)
8e81c2cf 4288 {
19391b8c 4289 fhMassM02NLocMax1Ebin[i] = new TH2F(Form("hMassM02NLocMax1Ebin%d",i),
25330263 4290 Form("Invariant mass of split clusters vs #lambda_{0}^{2}, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4291 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4292 fhMassM02NLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4293 fhMassM02NLocMax1Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4294 outputContainer->Add(fhMassM02NLocMax1Ebin[i]) ;
4295
4296 fhMassM02NLocMax2Ebin[i] = new TH2F(Form("hMassM02NLocMax2Ebin%d",i),
25330263 4297 Form("Invariant mass of split clusters vs #lambda_{0}^{2}, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4298 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4299 fhMassM02NLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4300 fhMassM02NLocMax2Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4301 outputContainer->Add(fhMassM02NLocMax2Ebin[i]) ;
4302
4303 fhMassM02NLocMaxNEbin[i] = new TH2F(Form("hMassM02NLocMaxNEbin%d",i),
be894c1d 4304 Form("Invariant mass of split clusters vs vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
19391b8c 4305 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4306 fhMassM02NLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4307 fhMassM02NLocMaxNEbin[i]->SetXTitle("#lambda_{0}^{2}");
4308 outputContainer->Add(fhMassM02NLocMaxNEbin[i]) ;
4309
4310
4311 fhMassAsyNLocMax1Ebin[i] = new TH2F(Form("hMassAsyNLocMax1Ebin%d",i),
25330263 4312 Form("Invariant mass of split clusters vs split asymmetry, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4313 200,-1,1,mbins,mmin,mmax);
25330263 4314 fhMassAsyNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4315 fhMassAsyNLocMax1Ebin[i]->SetXTitle("asymmetry");
4316 outputContainer->Add(fhMassAsyNLocMax1Ebin[i]) ;
4317
4318 fhMassAsyNLocMax2Ebin[i] = new TH2F(Form("hMassAsyNLocMax2Ebin%d",i),
25330263 4319 Form("Invariant mass of split clusters vs split asymmetry, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4320 200,-1,1,mbins,mmin,mmax);
25330263 4321 fhMassAsyNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4322 fhMassAsyNLocMax2Ebin[i]->SetXTitle("asymmetry");
4323 outputContainer->Add(fhMassAsyNLocMax2Ebin[i]) ;
4324
4325 fhMassAsyNLocMaxNEbin[i] = new TH2F(Form("hMassAsyNLocMaxNEbin%d",i),
be894c1d 4326 Form("Invariant mass of split clusters vs split asymmetry, NLM>2, %s",sEBin[i].Data()),
19391b8c 4327 200,-1,1,mbins,mmin,mmax);
25330263 4328 fhMassAsyNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4329 fhMassAsyNLocMaxNEbin[i]->SetXTitle("asymmetry");
4330 outputContainer->Add(fhMassAsyNLocMaxNEbin[i]) ;
4331
4332
b2e375c7 4333 if(IsDataMC() && fFillMCHisto)
19391b8c 4334 {
4335 fhMCAsymM02NLocMax1MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax1MCPi0Ebin%d",i),
25330263 4336 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4337 ssbins,ssmin,ssmax,100,0,1);
4338 fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4339 fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4340 outputContainer->Add(fhMCAsymM02NLocMax1MCPi0Ebin[i]) ;
4341
4342 fhMCAsymM02NLocMax2MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax2MCPi0Ebin%d",i),
25330263 4343 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4344 ssbins,ssmin,ssmax,100,0,1);
4345 fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4346 fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4347 outputContainer->Add(fhMCAsymM02NLocMax2MCPi0Ebin[i]) ;
4348
4349 fhMCAsymM02NLocMaxNMCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMaxNMCPi0Ebin%d",i),
be894c1d 4350 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
19391b8c 4351 ssbins,ssmin,ssmax,100,0,1);
4352 fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4353 fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4354 outputContainer->Add(fhMCAsymM02NLocMaxNMCPi0Ebin[i]) ;
4355
4356
4357 fhAsyMCGenRecoNLocMax1EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax1Ebin%dPi0",i),
25330263 4358 Form("Generated vs reconstructed asymmetry of split clusters from pi0, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4359 200,-1,1,200,-1,1);
25330263 4360 fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4361 fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetXTitle("#it{A}");
19391b8c 4362 outputContainer->Add(fhAsyMCGenRecoNLocMax1EbinPi0[i]) ;
4363
4364 fhAsyMCGenRecoNLocMax2EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax2Ebin%dPi0",i),
25330263 4365 Form("Generated vs reconstructed asymmetry of split clusters from pi0, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4366 200,-1,1,200,-1,1);
25330263 4367 fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4368 fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetXTitle("#it{A}");
19391b8c 4369 outputContainer->Add(fhAsyMCGenRecoNLocMax2EbinPi0[i]) ;
4370
4371 fhAsyMCGenRecoNLocMaxNEbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMaxNEbin%dPi0",i),
be894c1d 4372 Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM>2, %s",sEBin[i].Data()),
19391b8c 4373 200,-1,1,200,-1,1);
25330263 4374 fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4375 fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetXTitle("#it{A}");
19391b8c 4376 outputContainer->Add(fhAsyMCGenRecoNLocMaxNEbinPi0[i]) ;
4377 }
4378
4379 if(fFillSSExtraHisto)
4380 {
4381 fhMassDispEtaNLocMax1Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax1Ebin%d",i),
be894c1d 4382 Form("Invariant mass of 2 highest energy cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4383 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4384 fhMassDispEtaNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4385 fhMassDispEtaNLocMax1Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4386 outputContainer->Add(fhMassDispEtaNLocMax1Ebin[i]) ;
4387
4388 fhMassDispEtaNLocMax2Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax2Ebin%d",i),
be894c1d 4389 Form("Invariant mass of 2 local maxima cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4390 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4391 fhMassDispEtaNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4392 fhMassDispEtaNLocMax2Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4393 outputContainer->Add(fhMassDispEtaNLocMax2Ebin[i]) ;
4394
4395 fhMassDispEtaNLocMaxNEbin[i] = new TH2F(Form("hMassDispEtaNLocMaxNEbin%d",i),
be894c1d 4396 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4397 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4398 fhMassDispEtaNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4399 fhMassDispEtaNLocMaxNEbin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4400 outputContainer->Add(fhMassDispEtaNLocMaxNEbin[i]) ;
4401
4402 fhMassDispPhiNLocMax1Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax1Ebin%d",i),
be894c1d 4403 Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4404 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4405 fhMassDispPhiNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4406 fhMassDispPhiNLocMax1Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4407 outputContainer->Add(fhMassDispPhiNLocMax1Ebin[i]) ;
4408
4409 fhMassDispPhiNLocMax2Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax2Ebin%d",i),
be894c1d 4410 Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4411 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4412 fhMassDispPhiNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4413 fhMassDispPhiNLocMax2Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4414 outputContainer->Add(fhMassDispPhiNLocMax2Ebin[i]) ;
4415
4416 fhMassDispPhiNLocMaxNEbin[i] = new TH2F(Form("hMassDispPhiNLocMaxNEbin%d",i),
be894c1d 4417 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4418 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4419 fhMassDispPhiNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4420 fhMassDispPhiNLocMaxNEbin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4421 outputContainer->Add(fhMassDispPhiNLocMaxNEbin[i]) ;
4422
4423 fhMassDispAsyNLocMax1Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax1Ebin%d",i),
be894c1d 4424 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 4425 200,-1,1,mbins,mmin,mmax);
25330263 4426 fhMassDispAsyNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4427 fhMassDispAsyNLocMax1Ebin[i]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
19391b8c 4428 outputContainer->Add(fhMassDispAsyNLocMax1Ebin[i]) ;
4429
4430 fhMassDispAsyNLocMax2Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax2Ebin%d",i),
be894c1d 4431 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 4432 200,-1,1,mbins,mmin,mmax);
25330263 4433 fhMassDispAsyNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4434 fhMassDispAsyNLocMax2Ebin[i]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
19391b8c 4435 outputContainer->Add(fhMassDispAsyNLocMax2Ebin[i]) ;
4436
4437 fhMassDispAsyNLocMaxNEbin[i] = new TH2F(Form("hMassDispAsyNLocMaxNEbin%d",i),
be894c1d 4438 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 4439 200,-1,1,mbins,mmin,mmax);
25330263 4440 fhMassDispAsyNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4441 fhMassDispAsyNLocMaxNEbin[i]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
19391b8c 4442 outputContainer->Add(fhMassDispAsyNLocMaxNEbin[i]) ;
4443 }
8e81c2cf 4444 }
19391b8c 4445 }
1253480f 4446
c7e9a4e9 4447 if(IsDataMC() && fFillMCHisto && (asyOn || m02On))
c8710850 4448 {
4449 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax1MCPi0",
25330263 4450 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 MC Pi0, after M02 and Asym cut",
c8710850 4451 nptbins,ptmin,ptmax,200,0,2);
25330263 4452 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
4453 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4454 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax1MCPi0) ;
4455
4456 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax2MCPi0",
25330263 4457 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 MC Pi0, after M02 and Asym cut",
c8710850 4458 nptbins,ptmin,ptmax,200,0,2);
25330263 4459 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
4460 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4461 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax2MCPi0) ;
4462
4463
4464 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMaxNMCPi0",
25330263 4465 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 MC Pi0, after M02 and Asym cut",
c8710850 4466 nptbins,ptmin,ptmax,200,0,2);
25330263 4467 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
4468 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4469 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0) ;
4470
4471 fhMCGenFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax1MCPi0",
25330263 4472 "#it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max = 1 MC Pi0, after M02 and Asym cut",
c8710850 4473 nptbins,ptmin,ptmax,200,0,2);
25330263 4474 fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
4475 fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4476 outputContainer->Add(fhMCGenFracAfterCutsNLocMax1MCPi0) ;
4477
4478 fhMCGenFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax2MCPi0",
25330263 4479 " #it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max = 2 MC Pi0, after M02 and Asym cut",
c8710850 4480 nptbins,ptmin,ptmax,200,0,2);
25330263 4481 fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
4482 fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4483 outputContainer->Add(fhMCGenFracAfterCutsNLocMax2MCPi0) ;
4484
4485
4486 fhMCGenFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenFracAfterCutsNLocMaxNMCPi0",
25330263 4487 " #it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max > 2 MC Pi0, after M02 and Asym cut",
c8710850 4488 nptbins,ptmin,ptmax,200,0,2);
25330263 4489 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
4490 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4491 outputContainer->Add(fhMCGenFracAfterCutsNLocMaxNMCPi0) ;
4492
4493 }
4494
8edbd100 4495 if(fFillTMResidualHisto && fFillTMHisto)
8e81c2cf 4496 {
4497 for(Int_t i = 0; i < n; i++)
4498 {
4499
c8710850 4500 fhTrackMatchedDEtaNLocMax1[i] = new TH2F
4501 (Form("hTrackMatchedDEtaNLocMax1%s",pname[i].Data()),
8e81c2cf 4502 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4503 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4504 fhTrackMatchedDEtaNLocMax1[i]->SetYTitle("d#eta");
25330263 4505 fhTrackMatchedDEtaNLocMax1[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4506
c8710850 4507 fhTrackMatchedDPhiNLocMax1[i] = new TH2F
4508 (Form("hTrackMatchedDPhiNLocMax1%s",pname[i].Data()),
8e81c2cf 4509 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4510 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4511 fhTrackMatchedDPhiNLocMax1[i]->SetYTitle("d#phi (rad)");
25330263 4512 fhTrackMatchedDPhiNLocMax1[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4513
c8710850 4514 outputContainer->Add(fhTrackMatchedDEtaNLocMax1[i]) ;
4515 outputContainer->Add(fhTrackMatchedDPhiNLocMax1[i]) ;
8e81c2cf 4516
c8710850 4517 fhTrackMatchedDEtaNLocMax2[i] = new TH2F
4518 (Form("hTrackMatchedDEtaNLocMax2%s",pname[i].Data()),
8e81c2cf 4519 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4520 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4521 fhTrackMatchedDEtaNLocMax2[i]->SetYTitle("d#eta");
25330263 4522 fhTrackMatchedDEtaNLocMax2[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4523
c8710850 4524 fhTrackMatchedDPhiNLocMax2[i] = new TH2F
4525 (Form("hTrackMatchedDPhiNLocMax2%s",pname[i].Data()),
8e81c2cf 4526 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4527 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4528 fhTrackMatchedDPhiNLocMax2[i]->SetYTitle("d#phi (rad)");
25330263 4529 fhTrackMatchedDPhiNLocMax2[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4530
c8710850 4531 outputContainer->Add(fhTrackMatchedDEtaNLocMax2[i]) ;
4532 outputContainer->Add(fhTrackMatchedDPhiNLocMax2[i]) ;
8e81c2cf 4533
c8710850 4534 fhTrackMatchedDEtaNLocMaxN[i] = new TH2F
4535 (Form("hTrackMatchedDEtaNLocMaxN%s",pname[i].Data()),
8e81c2cf 4536 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4537 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4538 fhTrackMatchedDEtaNLocMaxN[i]->SetYTitle("d#eta");
25330263 4539 fhTrackMatchedDEtaNLocMaxN[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4540
c8710850 4541 fhTrackMatchedDPhiNLocMaxN[i] = new TH2F
4542 (Form("hTrackMatchedDPhiNLocMaxN%s",pname[i].Data()),
8e81c2cf 4543 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4544 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4545 fhTrackMatchedDPhiNLocMaxN[i]->SetYTitle("d#phi (rad)");
25330263 4546 fhTrackMatchedDPhiNLocMaxN[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4547
c8710850 4548 outputContainer->Add(fhTrackMatchedDEtaNLocMaxN[i]) ;
b2e375c7 4549 outputContainer->Add(fhTrackMatchedDPhiNLocMaxN[i]) ;
883411b2 4550
b2e375c7 4551 fhTrackMatchedDEtaNLocMax1Pos[i] = new TH2F
4552 (Form("hTrackMatchedDEtaNLocMax1Pos%s",pname[i].Data()),
4553 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4554 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4555 fhTrackMatchedDEtaNLocMax1Pos[i]->SetYTitle("d#eta");
25330263 4556 fhTrackMatchedDEtaNLocMax1Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4557
4558 fhTrackMatchedDPhiNLocMax1Pos[i] = new TH2F
4559 (Form("hTrackMatchedDPhiNLocMax1Pos%s",pname[i].Data()),
4560 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4561 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4562 fhTrackMatchedDPhiNLocMax1Pos[i]->SetYTitle("d#phi (rad)");
25330263 4563 fhTrackMatchedDPhiNLocMax1Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4564
4565 outputContainer->Add(fhTrackMatchedDEtaNLocMax1Pos[i]) ;
4566 outputContainer->Add(fhTrackMatchedDPhiNLocMax1Pos[i]) ;
4567
4568 fhTrackMatchedDEtaNLocMax2Pos[i] = new TH2F
4569 (Form("hTrackMatchedDEtaNLocMax2Pos%s",pname[i].Data()),
4570 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4571 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4572 fhTrackMatchedDEtaNLocMax2Pos[i]->SetYTitle("d#eta");
25330263 4573 fhTrackMatchedDEtaNLocMax2Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4574
4575 fhTrackMatchedDPhiNLocMax2Pos[i] = new TH2F
4576 (Form("hTrackMatchedDPhiNLocMax2Pos%s",pname[i].Data()),
4577 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4578 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4579 fhTrackMatchedDPhiNLocMax2Pos[i]->SetYTitle("d#phi (rad)");
25330263 4580 fhTrackMatchedDPhiNLocMax2Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4581
4582 outputContainer->Add(fhTrackMatchedDEtaNLocMax2Pos[i]) ;
4583 outputContainer->Add(fhTrackMatchedDPhiNLocMax2Pos[i]) ;
4584
4585 fhTrackMatchedDEtaNLocMaxNPos[i] = new TH2F
4586 (Form("hTrackMatchedDEtaNLocMaxNPos%s",pname[i].Data()),
4587 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4588 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4589 fhTrackMatchedDEtaNLocMaxNPos[i]->SetYTitle("d#eta");
25330263 4590 fhTrackMatchedDEtaNLocMaxNPos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4591
4592 fhTrackMatchedDPhiNLocMaxNPos[i] = new TH2F
4593 (Form("hTrackMatchedDPhiNLocMaxNPos%s",pname[i].Data()),
4594 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4595 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4596 fhTrackMatchedDPhiNLocMaxNPos[i]->SetYTitle("d#phi (rad)");
25330263 4597 fhTrackMatchedDPhiNLocMaxNPos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4598
4599 outputContainer->Add(fhTrackMatchedDEtaNLocMaxNPos[i]) ;
4600 outputContainer->Add(fhTrackMatchedDPhiNLocMaxNPos[i]) ;
4601
4602 fhTrackMatchedDEtaNLocMax1Neg[i] = new TH2F
4603 (Form("hTrackMatchedDEtaNLocMax1Neg%s",pname[i].Data()),
4604 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4605 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4606 fhTrackMatchedDEtaNLocMax1Neg[i]->SetYTitle("d#eta");
25330263 4607 fhTrackMatchedDEtaNLocMax1Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4608
4609 fhTrackMatchedDPhiNLocMax1Neg[i] = new TH2F
4610 (Form("hTrackMatchedDPhiNLocMax1Neg%s",pname[i].Data()),
4611 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4612 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4613 fhTrackMatchedDPhiNLocMax1Neg[i]->SetYTitle("d#phi (rad)");
25330263 4614 fhTrackMatchedDPhiNLocMax1Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4615
4616 outputContainer->Add(fhTrackMatchedDEtaNLocMax1Neg[i]) ;
4617 outputContainer->Add(fhTrackMatchedDPhiNLocMax1Neg[i]) ;
4618
4619 fhTrackMatchedDEtaNLocMax2Neg[i] = new TH2F
4620 (Form("hTrackMatchedDEtaNLocMax2Neg%s",pname[i].Data()),
4621 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4622 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4623 fhTrackMatchedDEtaNLocMax2Neg[i]->SetYTitle("d#eta");
25330263 4624 fhTrackMatchedDEtaNLocMax2Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4625
4626 fhTrackMatchedDPhiNLocMax2Neg[i] = new TH2F
4627 (Form("hTrackMatchedDPhiNLocMax2Neg%s",pname[i].Data()),
4628 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4629 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4630 fhTrackMatchedDPhiNLocMax2Neg[i]->SetYTitle("d#phi (rad)");
25330263 4631 fhTrackMatchedDPhiNLocMax2Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4632
4633 outputContainer->Add(fhTrackMatchedDEtaNLocMax2Neg[i]) ;
4634 outputContainer->Add(fhTrackMatchedDPhiNLocMax2Neg[i]) ;
4635
4636 fhTrackMatchedDEtaNLocMaxNNeg[i] = new TH2F
4637 (Form("hTrackMatchedDEtaNLocMaxNNeg%s",pname[i].Data()),
4638 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4639 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4640 fhTrackMatchedDEtaNLocMaxNNeg[i]->SetYTitle("d#eta");
25330263 4641 fhTrackMatchedDEtaNLocMaxNNeg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4642
4643 fhTrackMatchedDPhiNLocMaxNNeg[i] = new TH2F
4644 (Form("hTrackMatchedDPhiNLocMaxNNeg%s",pname[i].Data()),
4645 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4646 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4647 fhTrackMatchedDPhiNLocMaxNNeg[i]->SetYTitle("d#phi (rad)");
25330263 4648 fhTrackMatchedDPhiNLocMaxNNeg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4649
4650 outputContainer->Add(fhTrackMatchedDEtaNLocMaxNNeg[i]) ;
4651 outputContainer->Add(fhTrackMatchedDPhiNLocMaxNNeg[i]) ;
4652
4653 }
4654 }
4655
4656 if(fFillAngleHisto)
4657 {
0186b6a2 4658 for(Int_t i = 0; i < n; i++)
4659 {
4660 for(Int_t j = 0; j < nMatched; j++)
4661 {
4662
0186b6a2 4663 fhAnglePairNLocMax1[i][j] = new TH2F(Form("hAnglePairNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4664 Form("Opening angle split sub-clusters of cluster #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4665 nptbins,ptmin,ptmax,200,0,0.2);
4666 fhAnglePairNLocMax1[i][j]->SetYTitle("#alpha (rad)");
25330263 4667 fhAnglePairNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
0186b6a2 4668 outputContainer->Add(fhAnglePairNLocMax1[i][j]) ;
4669
4670 fhAnglePairNLocMax2[i][j] = new TH2F(Form("hAnglePairNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4671 Form("Opening angle split sub-clusters of cluster #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4672 nptbins,ptmin,ptmax,200,0,0.2);
4673 fhAnglePairNLocMax2[i][j]->SetYTitle("#alpha (rad)");
25330263 4674 fhAnglePairNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
0186b6a2 4675 outputContainer->Add(fhAnglePairNLocMax2[i][j]) ;
4676
4677 fhAnglePairNLocMaxN[i][j] = new TH2F(Form("hAnglePairNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4678 Form("Opening angle split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4679 nptbins,ptmin,ptmax,200,0,0.2);
4680 fhAnglePairNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
25330263 4681 fhAnglePairNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
0186b6a2 4682 outputContainer->Add(fhAnglePairNLocMaxN[i][j]) ;
4683
c7e9a4e9 4684 if(asyOn || m02On)
29555e96 4685 {
4686 fhAnglePairAfterCutsNLocMax1[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4687 Form("Opening angle split sub-clusters of cluster #it{NLM}=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4688 nptbins,ptmin,ptmax,200,0,0.2);
4689 fhAnglePairAfterCutsNLocMax1[i][j]->SetYTitle("#alpha (rad)");
25330263 4690 fhAnglePairAfterCutsNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4691 outputContainer->Add(fhAnglePairAfterCutsNLocMax1[i][j]) ;
4692
4693 fhAnglePairAfterCutsNLocMax2[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4694 Form("Opening angle split sub-clusters of cluster, after cuts, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4695 nptbins,ptmin,ptmax,200,0,0.2);
4696 fhAnglePairAfterCutsNLocMax2[i][j]->SetYTitle("#alpha (rad)");
25330263 4697 fhAnglePairAfterCutsNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4698 outputContainer->Add(fhAnglePairAfterCutsNLocMax2[i][j]) ;
4699
4700 fhAnglePairAfterCutsNLocMaxN[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4701 Form("Opening angle split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4702 nptbins,ptmin,ptmax,200,0,0.2);
4703 fhAnglePairAfterCutsNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
25330263 4704 fhAnglePairAfterCutsNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4705 outputContainer->Add(fhAnglePairAfterCutsNLocMaxN[i][j]) ;
4706
4707 }
4708
4709 fhAnglePairPi0NLocMax1[i][j] = new TH2F(Form("hAnglePairPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4710 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4711 nptbins,ptmin,ptmax,200,0,0.2);
4712 fhAnglePairPi0NLocMax1[i][j]->SetYTitle("#alpha (rad)");
25330263 4713 fhAnglePairPi0NLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4714 outputContainer->Add(fhAnglePairPi0NLocMax1[i][j]) ;
4715
4716 fhAnglePairPi0NLocMax2[i][j] = new TH2F(Form("hAnglePairPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4717 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4718 nptbins,ptmin,ptmax,200,0,0.2);
4719 fhAnglePairPi0NLocMax2[i][j]->SetYTitle("#alpha (rad)");
25330263 4720 fhAnglePairPi0NLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4721 outputContainer->Add(fhAnglePairPi0NLocMax2[i][j]) ;
4722
4723 fhAnglePairPi0NLocMaxN[i][j] = new TH2F(Form("hAnglePairPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4724 Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4725 nptbins,ptmin,ptmax,200,0,0.2);
4726 fhAnglePairPi0NLocMaxN[i][j]->SetYTitle("#alpha (rad)");
25330263 4727 fhAnglePairPi0NLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4728 outputContainer->Add(fhAnglePairPi0NLocMaxN[i][j]) ;
4729
0186b6a2 4730 fhAnglePairMassNLocMax1[i][j] = new TH2F(Form("hAnglePairMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4731 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4732 mbins,mmin,mmax,200,0,0.2);
25330263 4733 fhAnglePairMassNLocMax1[i][j]->SetXTitle("#it{M} (GeV/#it{c}^{2})");
0186b6a2 4734 fhAnglePairMassNLocMax1[i][j]->SetYTitle("#alpha (rad)");
4735 outputContainer->Add(fhAnglePairMassNLocMax1[i][j]) ;
4736
29555e96 4737
0186b6a2 4738 fhAnglePairMassNLocMax2[i][j] = new TH2F(Form("hAnglePairMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4739 Form("Opening angle split sub-clusters of cluster #it{NLM}=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4740 mbins,mmin,mmax,200,0,0.2);
25330263 4741 fhAnglePairMassNLocMax2[i][j]->SetXTitle("#it{M} (GeV/#it{c}^{2})");
0186b6a2 4742 fhAnglePairMassNLocMax2[i][j]->SetYTitle("#alpha (rad)");
4743 outputContainer->Add(fhAnglePairMassNLocMax2[i][j]) ;
4744
4745 fhAnglePairMassNLocMaxN[i][j] = new TH2F(Form("hAnglePairMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4746 Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4747 mbins,mmin,mmax,200,0,0.2);
25330263 4748 fhAnglePairMassNLocMaxN[i][j]->SetXTitle("#it{M} (GeV/#it{c}^{2})");
0186b6a2 4749 fhAnglePairMassNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4750 outputContainer->Add(fhAnglePairMassNLocMaxN[i][j]) ;
d261ae67 4751
4752
4753 fhAnglePairM02NLocMax1[i][j] = new TH2F(Form("hAnglePairM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4754 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs Mass for E > 15 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
d261ae67 4755 ssbins,ssmin,ssmax,200,0,0.2);
4756 fhAnglePairM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}");
4757 fhAnglePairM02NLocMax1[i][j]->SetYTitle("#alpha (rad)");
4758 outputContainer->Add(fhAnglePairM02NLocMax1[i][j]) ;
4759
0186b6a2 4760
d261ae67 4761 fhAnglePairM02NLocMax2[i][j] = new TH2F(Form("hAnglePairM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4762 Form("Opening angle split sub-clusters of cluster #it{NLM}=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
d261ae67 4763 ssbins,ssmin,ssmax,200,0,0.2);
4764 fhAnglePairM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}");
4765 fhAnglePairM02NLocMax2[i][j]->SetYTitle("#alpha (rad)");
4766 outputContainer->Add(fhAnglePairM02NLocMax2[i][j]) ;
4767
4768 fhAnglePairM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4769 Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4770 ssbins,ssmin,ssmax,200,0,0.2);
4771 fhAnglePairM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}");
4772 fhAnglePairM02NLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4773 outputContainer->Add(fhAnglePairM02NLocMaxN[i][j]) ;
4774
4e5a94c5 4775 fhAnglePairOverM02NLocMax1[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4776 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4777 nptbins,ptmin,ptmax,200,0,0.2);
4778 fhAnglePairOverM02NLocMax1[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4779 fhAnglePairOverM02NLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4780 outputContainer->Add(fhAnglePairOverM02NLocMax1[i][j]) ;
4781
4782 fhAnglePairOverM02NLocMax2[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4783 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4784 nptbins,ptmin,ptmax,200,0,0.2);
4785 fhAnglePairOverM02NLocMax2[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4786 fhAnglePairOverM02NLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4787 outputContainer->Add(fhAnglePairOverM02NLocMax2[i][j]) ;
4788
4789 fhAnglePairOverM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4790 Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4791 nptbins,ptmin,ptmax,200,0,0.2);
4792 fhAnglePairOverM02NLocMaxN[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4793 fhAnglePairOverM02NLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4794 outputContainer->Add(fhAnglePairOverM02NLocMaxN[i][j]) ;
4795
4796
4797 fhAnglePairOverM02NLocMax1Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1Overlap0%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4798 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=1 vs pair Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4799 nptbins,ptmin,ptmax,200,0,0.2);
4800 fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4801 fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4802 outputContainer->Add(fhAnglePairOverM02NLocMax1Overlap0[i][j]) ;
4803
4804 fhAnglePairOverM02NLocMax2Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2Overlap0%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4805 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=2 cells vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4806 nptbins,ptmin,ptmax,200,0,0.2);
4807 fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4808 fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4809 outputContainer->Add(fhAnglePairOverM02NLocMax2Overlap0[i][j]) ;
4810
4811 fhAnglePairOverM02NLocMaxNOverlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxNOverlap0%s%s",pname[i].Data(),sMatched[j].Data()),
4812 Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4813 nptbins,ptmin,ptmax,200,0,0.2);
4814 fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4815 fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4816 outputContainer->Add(fhAnglePairOverM02NLocMaxNOverlap0[i][j]) ;
4817
4818
0186b6a2 4819 }
4820 }
4821
4822 if(IsDataMC())
4823 {
4824 fhAnglePairPrimPi0RecoNLocMax1 = new TH2F("fhAnglePairPrimPi0RecoNLocMax1",
25330263 4825 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, #it{NLM}=1",
0186b6a2 4826 nptbins,ptmin,ptmax,300,0,3);
4827 fhAnglePairPrimPi0RecoNLocMax1->SetYTitle("#alpha_{reco} / #alpha_{gen}");
25330263 4828 fhAnglePairPrimPi0RecoNLocMax1->SetXTitle("#it{E} (GeV)");
0186b6a2 4829 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax1) ;
4830
4831 fhAnglePairPrimPi0RecoNLocMax2 = new TH2F("fhAnglePairPrimPi0RecoNLocMax2",
25330263 4832 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, #it{NLM}=2",
0186b6a2 4833 nptbins,ptmin,ptmax,300,0,3);
4834 fhAnglePairPrimPi0RecoNLocMax2->SetYTitle("#alpha_{reco} / #alpha_{gen}");
25330263 4835 fhAnglePairPrimPi0RecoNLocMax2->SetXTitle("#it{E} (GeV)");
0186b6a2 4836 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax2) ;
4837
4838 fhAnglePairPrimPi0RecoNLocMaxN = new TH2F("fhAnglePairPrimPi0RecoNLocMaxN",
4839 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM>2",
4840 nptbins,ptmin,ptmax,300,0,3);
4841 fhAnglePairPrimPi0RecoNLocMaxN->SetYTitle("#alpha_{reco} / #alpha_{gen}");
25330263 4842 fhAnglePairPrimPi0RecoNLocMaxN->SetXTitle("#it{E} (GeV)");
0186b6a2 4843 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMaxN) ;
4844
b2e375c7 4845
0186b6a2 4846 fhAnglePairPrimPi0vsRecoNLocMax1 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax1",
25330263 4847 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 15 GeV, #it{NLM}=1",
0186b6a2 4848 200,0,0.2,200,0,0.2);
29555e96 4849 fhAnglePairPrimPi0vsRecoNLocMax1->SetYTitle("#alpha_{reco} (rad)");
4850 fhAnglePairPrimPi0vsRecoNLocMax1->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4851 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax1) ;
4852
4853 fhAnglePairPrimPi0vsRecoNLocMax2 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax2",
25330263 4854 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, #it{NLM}=2",
0186b6a2 4855 200,0,0.2,200,0,0.2);
29555e96 4856 fhAnglePairPrimPi0vsRecoNLocMax2->SetYTitle("#alpha_{reco} (rad)");
4857 fhAnglePairPrimPi0vsRecoNLocMax2->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4858 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax2) ;
4859
4860 fhAnglePairPrimPi0vsRecoNLocMaxN = new TH2F("fhAnglePairPrimPi0vsRecoNLocMaxN",
25330263 4861 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, #it{NLM}=2",
0186b6a2 4862 200,0,0.2,200,0,0.2);
29555e96 4863 fhAnglePairPrimPi0vsRecoNLocMaxN->SetYTitle("#alpha_{reco} (rad)");
4864 fhAnglePairPrimPi0vsRecoNLocMaxN->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4865 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMaxN) ;
883411b2 4866
4e5a94c5 4867
4868 fhAnglePairPrimPi0OverM02NLocMax1 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax1",
25330263 4869 "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, #it{NLM}=1",
4e5a94c5 4870 nptbins,ptmin,ptmax,200,0,0.2);
4871 fhAnglePairPrimPi0OverM02NLocMax1->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
25330263 4872 fhAnglePairPrimPi0OverM02NLocMax1->SetXTitle("#it{E} (GeV)");
4e5a94c5 4873 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax1) ;
4874
4875 fhAnglePairPrimPi0OverM02NLocMax2 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax2",
25330263 4876 "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, #it{NLM}=2",
4e5a94c5 4877 nptbins,ptmin,ptmax,200,0,0.2);
4878 fhAnglePairPrimPi0OverM02NLocMax2->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
25330263 4879 fhAnglePairPrimPi0OverM02NLocMax2->SetXTitle("#it{E} (GeV)");
4e5a94c5 4880 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax2) ;
4881
4882 fhAnglePairPrimPi0OverM02NLocMaxN = new TH2F("fhAnglePairPrimPi0OverM02NLocMaxN",
4883 "Primary Opening angle split neutral sub-clusters reconstructed / M02 vs cluster Energy, NLM>2",
4884 nptbins,ptmin,ptmax,200,0,0.2);
4885 fhAnglePairPrimPi0OverM02NLocMaxN->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
25330263 4886 fhAnglePairPrimPi0OverM02NLocMaxN->SetXTitle("#it{E} (GeV)");
4e5a94c5 4887 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMaxN) ;
4888
883411b2 4889 }
992b14a7 4890 }
29555e96 4891
4892 // Same as asymmetry ...
4893 if(fFillThetaStarHisto)
4894 {
4895 for(Int_t i = 0; i < n; i++)
4896 {
4897 for(Int_t j = 0; j < nMatched; j++)
4898 {
4899
4900 fhCosThStarNLocMax1[i][j] = new TH2F(Form("hCosThStarNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4901 Form("cos(#theta^{*}) split sub-clusters of cluster #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4902 nptbins,ptmin,ptmax,200,-1,1);
4903 fhCosThStarNLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4904 fhCosThStarNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4905 outputContainer->Add(fhCosThStarNLocMax1[i][j]) ;
4906
4907 fhCosThStarNLocMax2[i][j] = new TH2F(Form("hCosThStarNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4908 Form("cos(#theta^{*}) split sub-clusters of cluster #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4909 nptbins,ptmin,ptmax,200,-1,1);
4910 fhCosThStarNLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4911 fhCosThStarNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4912 outputContainer->Add(fhCosThStarNLocMax2[i][j]) ;
4913
4914 fhCosThStarNLocMaxN[i][j] = new TH2F(Form("hCosThStarNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4915 Form("cos(#theta^{*}) split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4916 nptbins,ptmin,ptmax,200,-1,1);
4917 fhCosThStarNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4918 fhCosThStarNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4919 outputContainer->Add(fhCosThStarNLocMaxN[i][j]) ;
4920
c7e9a4e9 4921 if(asyOn || m02On)
29555e96 4922 {
4923 fhCosThStarAfterCutsNLocMax1[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4924 Form("cos(#theta^{*}) split sub-clusters of cluster #it{NLM}=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4925 nptbins,ptmin,ptmax,200,-1,1);
4926 fhCosThStarAfterCutsNLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4927 fhCosThStarAfterCutsNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4928 outputContainer->Add(fhCosThStarAfterCutsNLocMax1[i][j]) ;
4929
4930 fhCosThStarAfterCutsNLocMax2[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4931 Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4932 nptbins,ptmin,ptmax,200,-1,1);
4933 fhCosThStarAfterCutsNLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4934 fhCosThStarAfterCutsNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4935 outputContainer->Add(fhCosThStarAfterCutsNLocMax2[i][j]) ;
4936
4937 fhCosThStarAfterCutsNLocMaxN[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4938 Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4939 nptbins,ptmin,ptmax,200,-1,1);
4940 fhCosThStarAfterCutsNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4941 fhCosThStarAfterCutsNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4942 outputContainer->Add(fhCosThStarAfterCutsNLocMaxN[i][j]) ;
4943
4944 }
4945
4946 fhCosThStarPi0NLocMax1[i][j] = new TH2F(Form("hCosThStarPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4947 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4948 nptbins,ptmin,ptmax,200,-1,1);
4949 fhCosThStarPi0NLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4950 fhCosThStarPi0NLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4951 outputContainer->Add(fhCosThStarPi0NLocMax1[i][j]) ;
4952
4953 fhCosThStarPi0NLocMax2[i][j] = new TH2F(Form("hCosThStarPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4954 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4955 nptbins,ptmin,ptmax,200,-1,1);
4956 fhCosThStarPi0NLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4957 fhCosThStarPi0NLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4958 outputContainer->Add(fhCosThStarPi0NLocMax2[i][j]) ;
4959
4960 fhCosThStarPi0NLocMaxN[i][j] = new TH2F(Form("hCosThStarPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4961 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4962 nptbins,ptmin,ptmax,200,-1,1);
4963 fhCosThStarPi0NLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4964 fhCosThStarPi0NLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4965 outputContainer->Add(fhCosThStarPi0NLocMaxN[i][j]) ;
4966
4967 }
4968 }
4969 }
4970
992b14a7 4971
8edbd100 4972 for(Int_t j = 0; j < nMatched; j++)
17f5b4b6 4973 {
4974 fhSplitEFractionvsAsyNLocMax1[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax1%s",sMatched[j].Data()),
25330263 4975 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs (#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2}) for N max = 1, E>12, %s",sMatched[j].Data()),
17f5b4b6 4976 100,-1,1,120,0,1.2);
25330263 4977 fhSplitEFractionvsAsyNLocMax1[j] ->SetXTitle("(#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2})");
4978 fhSplitEFractionvsAsyNLocMax1[j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
17f5b4b6 4979 outputContainer->Add(fhSplitEFractionvsAsyNLocMax1[j]) ;
4980
4981 fhSplitEFractionvsAsyNLocMax2[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax2%s",sMatched[j].Data()),
25330263 4982 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs (#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2}) for N max = 2,E>12, %s",sMatched[j].Data()),
17f5b4b6 4983 100,-1,1,120,0,1.2);
25330263 4984 fhSplitEFractionvsAsyNLocMax2[j] ->SetXTitle("(#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2})");
4985 fhSplitEFractionvsAsyNLocMax2[j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
17f5b4b6 4986 outputContainer->Add(fhSplitEFractionvsAsyNLocMax2[j]) ;
4987
4988 fhSplitEFractionvsAsyNLocMaxN[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMaxN%s",sMatched[j].Data()),
25330263 4989 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs (#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2}) for N max > 2, E>12, %s",sMatched[j].Data()),
17f5b4b6 4990 100,-1,1,120,0,1.2);
25330263 4991 fhSplitEFractionvsAsyNLocMaxN[j] ->SetXTitle("(#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2})");
4992 fhSplitEFractionvsAsyNLocMaxN[j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
17f5b4b6 4993 outputContainer->Add(fhSplitEFractionvsAsyNLocMaxN[j]) ;
e671adc2 4994 }
9554fc65 4995
1253480f 4996
9554fc65 4997 fhClusterEtaPhiNLocMax1 = new TH2F
4998 ("hClusterEtaPhiNLocMax1","Neutral Clusters with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4999 fhClusterEtaPhiNLocMax1->SetYTitle("#phi (rad)");
5000 fhClusterEtaPhiNLocMax1->SetXTitle("#eta");
5001 outputContainer->Add(fhClusterEtaPhiNLocMax1) ;
1253480f 5002
9554fc65 5003 fhClusterEtaPhiNLocMax2 = new TH2F
5004 ("hClusterEtaPhiNLocMax2","Neutral Clusters with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5005 fhClusterEtaPhiNLocMax2->SetYTitle("#phi (rad)");
5006 fhClusterEtaPhiNLocMax2->SetXTitle("#eta");
5007 outputContainer->Add(fhClusterEtaPhiNLocMax2) ;
5008
5009 fhClusterEtaPhiNLocMaxN = new TH2F
5010 ("hClusterEtaPhiNLocMaxN","Neutral Clusters with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5011 fhClusterEtaPhiNLocMaxN->SetYTitle("#phi (rad)");
5012 fhClusterEtaPhiNLocMaxN->SetXTitle("#eta");
5013 outputContainer->Add(fhClusterEtaPhiNLocMaxN) ;
5014
5015 fhPi0EtaPhiNLocMax1 = new TH2F
5016 ("hPi0EtaPhiNLocMax1","Selected #pi^{0}'s with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5017 fhPi0EtaPhiNLocMax1->SetYTitle("#phi (rad)");
5018 fhPi0EtaPhiNLocMax1->SetXTitle("#eta");
5019 outputContainer->Add(fhPi0EtaPhiNLocMax1) ;
5020
5021 fhPi0EtaPhiNLocMax2 = new TH2F
5022 ("hPi0EtaPhiNLocMax2","Selected #pi^{0}'s with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5023 fhPi0EtaPhiNLocMax2->SetYTitle("#phi (rad)");
5024 fhPi0EtaPhiNLocMax2->SetXTitle("#eta");
5025 outputContainer->Add(fhPi0EtaPhiNLocMax2) ;
5026
5027 fhPi0EtaPhiNLocMaxN = new TH2F
5028 ("hPi0EtaPhiNLocMaxN","Selected #pi^{0}'s with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5029 fhPi0EtaPhiNLocMaxN->SetYTitle("#phi (rad)");
5030 fhPi0EtaPhiNLocMaxN->SetXTitle("#eta");
5031 outputContainer->Add(fhPi0EtaPhiNLocMaxN) ;
1253480f 5032
5033 if(fFillIdEtaHisto)
5034 {
5035 fhEtaEtaPhiNLocMax1 = new TH2F
5036 ("hEtaEtaPhiNLocMax1","Selected #eta's with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5037 fhEtaEtaPhiNLocMax1->SetYTitle("#phi (rad)");
5038 fhEtaEtaPhiNLocMax1->SetXTitle("#eta");
5039 outputContainer->Add(fhEtaEtaPhiNLocMax1) ;
5040
5041 fhEtaEtaPhiNLocMax2 = new TH2F
5042 ("hEtaEtaPhiNLocMax2","Selected #eta's with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5043 fhEtaEtaPhiNLocMax2->SetYTitle("#phi (rad)");
5044 fhEtaEtaPhiNLocMax2->SetXTitle("#eta");
5045 outputContainer->Add(fhEtaEtaPhiNLocMax2) ;
5046
5047 fhEtaEtaPhiNLocMaxN = new TH2F
5048 ("hEtaEtaPhiNLocMaxN","Selected #eta's with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5049 fhEtaEtaPhiNLocMaxN->SetYTitle("#phi (rad)");
5050 fhEtaEtaPhiNLocMaxN->SetXTitle("#eta");
5051 outputContainer->Add(fhEtaEtaPhiNLocMaxN) ;
5052 }
e671adc2 5053
ff6aa4ce 5054
dbe09c26 5055 if(fFillSSWeightHisto)
5056 {
dbe09c26 5057 for(Int_t nlm = 0; nlm < 3; nlm++)
5058 {
5059 fhPi0CellE[nlm] = new TH2F(Form("hPi0CellENLocMax%s",snlm[nlm].Data()),
5060 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E",snlm[nlm].Data()),
5061 nptbins,ptmin,ptmax, nptbins,ptmin,ptmax);
25330263 5062 fhPi0CellE[nlm]->SetYTitle("#it{E}_{cell}");
5063 fhPi0CellE[nlm]->SetXTitle("#it{E}_{cluster}");
dbe09c26 5064 outputContainer->Add(fhPi0CellE[nlm]) ;
5065
5066 fhPi0CellEFrac[nlm] = new TH2F(Form("hPi0CellEFracNLocMax%s",snlm[nlm].Data()),
5067 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E / cluster E",snlm[nlm].Data()),
5068 nptbins,ptmin,ptmax, 100,0,1);
25330263 5069 fhPi0CellEFrac[nlm]->SetYTitle("#it{E}_{cell} / #it{E}_{cluster}");
5070 fhPi0CellEFrac[nlm]->SetXTitle("#it{E}_{cluster}");
dbe09c26 5071 outputContainer->Add(fhPi0CellEFrac[nlm]) ;
5072
5073 fhPi0CellLogEFrac[nlm] = new TH2F(Form("hPi0CellLogEFracNLocMax%s",snlm[nlm].Data()),
1253480f 5074 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs Log(cell E / cluster E)",snlm[nlm].Data()),
5075 nptbins,ptmin,ptmax, 100,-10,0);
25330263 5076 fhPi0CellLogEFrac[nlm]->SetYTitle("Log(#it{E}_{cell} / #it{E}_{cluster})");
5077 fhPi0CellLogEFrac[nlm]->SetXTitle("#it{E}_{cluster}");
dbe09c26 5078 outputContainer->Add(fhPi0CellLogEFrac[nlm]) ;
1253480f 5079
dbe09c26 5080
19391b8c 5081 fhPi0CellEMaxEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMaxEMax2FracNLocMax%s",snlm[nlm].Data()),
1253480f 5082 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / 1st loc. max. E",snlm[nlm].Data()),
5083 nptbins,ptmin,ptmax, 100,0,1);
25330263 5084 fhPi0CellEMaxEMax2Frac[nlm]->SetYTitle("#it{E}_{Loc Max 2} / #it{E}_{Loc Max 1}");
5085 fhPi0CellEMaxEMax2Frac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5086 outputContainer->Add(fhPi0CellEMaxEMax2Frac[nlm]) ;
5087
5088 fhPi0CellEMaxClusterFrac[nlm] = new TH2F(Form("hPi0CellEMaxClusterFracNLocMax%s",snlm[nlm].Data()),
1253480f 5089 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cluster",snlm[nlm].Data()),
5090 nptbins,ptmin,ptmax, 100,0,1);
25330263 5091 fhPi0CellEMaxClusterFrac[nlm]->SetYTitle("#it{E}_{Loc Max 1} / #it{E}_{cluster}");
5092 fhPi0CellEMaxClusterFrac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5093 outputContainer->Add(fhPi0CellEMaxClusterFrac[nlm]) ;
1253480f 5094
19391b8c 5095 fhPi0CellEMax2ClusterFrac[nlm] = new TH2F(Form("hPi0CellEMax2ClusterFracNLocMax%s",snlm[nlm].Data()),
1253480f 5096 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cluster",snlm[nlm].Data()),
5097 nptbins,ptmin,ptmax, 100,0,1);
25330263 5098 fhPi0CellEMax2ClusterFrac[nlm]->SetYTitle("#it{E}_{Loc Max 2} / #it{E}_{cluster}");
5099 fhPi0CellEMax2ClusterFrac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5100 outputContainer->Add(fhPi0CellEMax2ClusterFrac[nlm]) ;
5101
5102 fhPi0CellEMaxFrac[nlm] = new TH2F(Form("hPi0CellEMaxFracNLocMax%s",snlm[nlm].Data()),
1253480f 5103 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cell i",snlm[nlm].Data()),
5104 nptbins,ptmin,ptmax, 100,0,1);
25330263 5105 fhPi0CellEMaxFrac[nlm]->SetYTitle("#it{E}_{Loc Max 1} / #it{E}_{cell i}");
5106 fhPi0CellEMaxFrac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5107 outputContainer->Add(fhPi0CellEMaxFrac[nlm]) ;
5108
5109 fhPi0CellEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMax2FracNLocMax%s",snlm[nlm].Data()),
1253480f 5110 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cell i",snlm[nlm].Data()),
5111 nptbins,ptmin,ptmax, 200,0,2);
25330263 5112 fhPi0CellEMax2Frac[nlm]->SetYTitle("#it{E}_{Loc Max 2} / #it{E}_{cell i}");
5113 fhPi0CellEMax2Frac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5114 outputContainer->Add(fhPi0CellEMax2Frac[nlm]) ;
1253480f 5115
19391b8c 5116
dbe09c26 5117 for(Int_t i = 0; i < fSSWeightN; i++)
5118 {
5119 fhM02WeightPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_W%d",snlm[nlm].Data(),i),
1253480f 5120 Form("#lambda_{0}^{2} vs E, with W0 = %2.2f, for NLM = %s", fSSWeight[i], snlm[nlm].Data()),
dbe09c26 5121 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5122 fhM02WeightPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5123 fhM02WeightPi0[nlm][i] ->SetXTitle("#it{E} (GeV)");
dbe09c26 5124 outputContainer->Add(fhM02WeightPi0[nlm][i]) ;
5125 }
19391b8c 5126
5127 for(Int_t i = 0; i < fSSECellCutN; i++)
5128 {
5129 fhM02ECellCutPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_Ecell%d",snlm[nlm].Data(),i),
1253480f 5130 Form("#lambda_{0}^{2} vs E, with Ecell > %2.2f, for NLM = %s", fSSECellCut[i], snlm[nlm].Data()),
5131 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
19391b8c 5132 fhM02ECellCutPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5133 fhM02ECellCutPi0[nlm][i] ->SetXTitle("#it{E} (GeV)");
19391b8c 5134 outputContainer->Add(fhM02ECellCutPi0[nlm][i]) ;
5135 }
1253480f 5136
dbe09c26 5137 }
5138 }
5139
a1fd1b69 5140 Int_t tdbins = GetHistogramRanges()->GetHistoDiffTimeBins() ; Float_t tdmax = GetHistogramRanges()->GetHistoDiffTimeMax(); Float_t tdmin = GetHistogramRanges()->GetHistoDiffTimeMin();
1253480f 5141
25330263 5142 fhPi0EPairDiffTimeNLM1 = new TH2F("hPi0EPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #pi, #it{NLM}=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5143 fhPi0EPairDiffTimeNLM1->SetXTitle("#it{E}_{pair} (GeV)");
5144 fhPi0EPairDiffTimeNLM1->SetYTitle("#Delta #it{t} (ns)");
a1fd1b69 5145 outputContainer->Add(fhPi0EPairDiffTimeNLM1);
1253480f 5146
25330263 5147 fhPi0EPairDiffTimeNLM2 = new TH2F("hPi0EPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #pi, #it{NLM}=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5148 fhPi0EPairDiffTimeNLM2->SetXTitle("#it{E}_{pair} (GeV)");
5149 fhPi0EPairDiffTimeNLM2->SetYTitle("#Delta #it{t} (ns)");
a1fd1b69 5150 outputContainer->Add(fhPi0EPairDiffTimeNLM2);
1253480f 5151
a1fd1b69 5152 fhPi0EPairDiffTimeNLMN = new TH2F("hPi0EPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #pi, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
25330263 5153 fhPi0EPairDiffTimeNLMN->SetXTitle("#it{E}_{pair} (GeV)");
5154 fhPi0EPairDiffTimeNLMN->SetYTitle("#Delta #it{t} (ns)");
a1fd1b69 5155 outputContainer->Add(fhPi0EPairDiffTimeNLMN);
a1fd1b69 5156
1253480f 5157 if(fFillIdEtaHisto)
5158 {
25330263 5159 fhEtaEPairDiffTimeNLM1 = new TH2F("hEtaEPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #eta, #it{NLM}=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5160 fhEtaEPairDiffTimeNLM1->SetXTitle("#it{E}_{pair} (GeV)");
5161 fhEtaEPairDiffTimeNLM1->SetYTitle("#Delta #it{t} (ns)");
1253480f 5162 outputContainer->Add(fhEtaEPairDiffTimeNLM1);
5163
25330263 5164 fhEtaEPairDiffTimeNLM2 = new TH2F("hEtaEPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #eta, #it{NLM}=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5165 fhEtaEPairDiffTimeNLM2->SetXTitle("#it{E}_{pair} (GeV)");
5166 fhEtaEPairDiffTimeNLM2->SetYTitle("#Delta #it{t} (ns)");
1253480f 5167 outputContainer->Add(fhEtaEPairDiffTimeNLM2);
5168
5169 fhEtaEPairDiffTimeNLMN = new TH2F("hEtaEPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #eta, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
25330263 5170 fhEtaEPairDiffTimeNLMN->SetXTitle("#it{E}_{pair} (GeV)");
5171 fhEtaEPairDiffTimeNLMN->SetYTitle("#Delta #it{t} (ns)");
1253480f 5172 outputContainer->Add(fhEtaEPairDiffTimeNLMN);
5173 }
a1fd1b69 5174
4914e781 5175 if(fFillNCellHisto && IsDataMC())
5176 {
1253480f 5177
25330263 5178 fhNCellMassEHighNLocMax1MCPi0 = new TH2F("hNCellMassEHighNLocMax1MCPi0","n cells vs mass for MC pi0, high energy, #it{NLM}=1",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5179 fhNCellMassEHighNLocMax1MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5180 fhNCellMassEHighNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5181 outputContainer->Add(fhNCellMassEHighNLocMax1MCPi0) ;
5182
25330263 5183 fhNCellMassELowNLocMax1MCPi0 = new TH2F("hNCellMassELowNLocMax1MCPi0","n cells vs mass for MC pi0, low energy, #it{NLM}=1",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5184 fhNCellMassELowNLocMax1MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5185 fhNCellMassELowNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5186 outputContainer->Add(fhNCellMassELowNLocMax1MCPi0) ;
1253480f 5187
25330263 5188 fhNCellM02EHighNLocMax1MCPi0 = new TH2F("hNCellM02EHighNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, #it{NLM}=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5189 fhNCellM02EHighNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5190 fhNCellM02EHighNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5191 outputContainer->Add(fhNCellM02EHighNLocMax1MCPi0) ;
5192
25330263 5193 fhNCellM02ELowNLocMax1MCPi0 = new TH2F("hNCellM02ELowNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, #it{NLM}=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5194 fhNCellM02ELowNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5195 fhNCellM02ELowNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5196 outputContainer->Add(fhNCellM02ELowNLocMax1MCPi0) ;
1253480f 5197
25330263 5198 fhNCellMassEHighNLocMax2MCPi0 = new TH2F("hNCellMassEHighNLocMax2MCPi0","n cells vs mass for MC pi0, high energy, #it{NLM}=2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5199 fhNCellMassEHighNLocMax2MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5200 fhNCellMassEHighNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5201 outputContainer->Add(fhNCellMassEHighNLocMax2MCPi0) ;
5202
25330263 5203 fhNCellMassELowNLocMax2MCPi0 = new TH2F("hNCellMassELowNLocMax2MCPi0","n cells vs mass for MC pi0, low energy, #it{NLM}=2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5204 fhNCellMassELowNLocMax2MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5205 fhNCellMassELowNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5206 outputContainer->Add(fhNCellMassELowNLocMax2MCPi0) ;
5207
25330263 5208 fhNCellM02EHighNLocMax2MCPi0 = new TH2F("hNCellM02EHighNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, #it{NLM}=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5209 fhNCellM02EHighNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5210 fhNCellM02EHighNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5211 outputContainer->Add(fhNCellM02EHighNLocMax2MCPi0) ;
5212
25330263 5213 fhNCellM02ELowNLocMax2MCPi0 = new TH2F("hNCellM02ELowNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, #it{NLM}=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5214 fhNCellM02ELowNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5215 fhNCellM02ELowNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5216 outputContainer->Add(fhNCellM02ELowNLocMax2MCPi0) ;
1253480f 5217
4914e781 5218 fhNCellMassEHighNLocMaxNMCPi0 = new TH2F("hNCellMassEHighNLocMaxNMCPi0","n cells vs mass for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
25330263 5219 fhNCellMassEHighNLocMaxNMCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5220 fhNCellMassEHighNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5221 outputContainer->Add(fhNCellMassEHighNLocMaxNMCPi0) ;
5222
5223 fhNCellMassELowNLocMaxNMCPi0 = new TH2F("hNCellMassELowNLocMaxNMCPi0","n cells vs mass for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
25330263 5224 fhNCellMassELowNLocMaxNMCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5225 fhNCellMassELowNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5226 outputContainer->Add(fhNCellMassELowNLocMaxNMCPi0) ;
5227
5228 fhNCellM02EHighNLocMaxNMCPi0 = new TH2F("hNCellM02EHighNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5229 fhNCellM02EHighNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5230 fhNCellM02EHighNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5231 outputContainer->Add(fhNCellM02EHighNLocMaxNMCPi0) ;
5232
5233 fhNCellM02ELowNLocMaxNMCPi0 = new TH2F("hNCellM02ELowNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5234 fhNCellM02ELowNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5235 fhNCellM02ELowNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5236 outputContainer->Add(fhNCellM02ELowNLocMaxNMCPi0) ;
5237
5238 }
b2e375c7 5239
5240 if(IsDataMC() && fFillMCOverlapHisto)
5241 {
5242 for(Int_t i = 1; i < n; i++)
5243 {
5244 for(Int_t j = 0; j < 3; j++)
5245 {
5246 fhMCENOverlaps[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5247 Form("# overlaps vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5248 nptbins,ptmin,ptmax,10,0,10);
5249 fhMCENOverlaps[j][i] ->SetYTitle("# overlaps");
25330263 5250 fhMCENOverlaps[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5251 outputContainer->Add(fhMCENOverlaps[j][i]) ;
5252
5253 fhMCEM02Overlap0[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5254 Form("Overlap 0, #lambda_{0}^{2} vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5255 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5256 fhMCEM02Overlap0[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5257 fhMCEM02Overlap0[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5258 outputContainer->Add(fhMCEM02Overlap0[j][i]) ;
5259
5260 fhMCEM02Overlap1[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5261 Form("Overlap 1, #lambda_{0}^{2} vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5262 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5263 fhMCEM02Overlap1[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5264 fhMCEM02Overlap1[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5265 outputContainer->Add(fhMCEM02Overlap1[j][i]) ;
5266
5267 fhMCEM02OverlapN[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5268 Form("Overlap N, #lambda_{0}^{2} vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5269 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5270 fhMCEM02OverlapN[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5271 fhMCEM02OverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5272 outputContainer->Add(fhMCEM02OverlapN[j][i]) ;
5273
5274 fhMCEMassOverlap0[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5275 Form("Overlap 0, Mass vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5276 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5277 fhMCEMassOverlap0[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5278 fhMCEMassOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5279 outputContainer->Add(fhMCEMassOverlap0[j][i]) ;
5280
5281 fhMCEMassOverlap1[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5282 Form("Overalap 1, Mass vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5283 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5284 fhMCEMassOverlap1[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5285 fhMCEMassOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5286 outputContainer->Add(fhMCEMassOverlap1[j][i]) ;
5287
5288 fhMCEMassOverlapN[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5289 Form("Overlap N, Mass vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5290 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5291 fhMCEMassOverlapN[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5292 fhMCEMassOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5293 outputContainer->Add(fhMCEMassOverlapN[j][i]) ;
4914e781 5294
5295 fhMCEAsymOverlap0[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5296 Form("Overlap 0, Asymmetry vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5297 nptbins,ptmin,ptmax,100,0,1);
5298 fhMCEAsymOverlap0[j][i] ->SetYTitle("|A|");
25330263 5299 fhMCEAsymOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5300 outputContainer->Add(fhMCEAsymOverlap0[j][i]) ;
5301
5302 fhMCEAsymOverlap1[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5303 Form("Overalap 1, Asymmetry vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5304 nptbins,ptmin,ptmax,100,0,1);
5305 fhMCEAsymOverlap1[j][i] ->SetYTitle("|A|");
25330263 5306 fhMCEAsymOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5307 outputContainer->Add(fhMCEAsymOverlap1[j][i]) ;
5308
5309 fhMCEAsymOverlapN[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5310 Form("Overlap N, Asymmetry vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5311 nptbins,ptmin,ptmax,100,0,1);
5312 fhMCEAsymOverlapN[j][i] ->SetYTitle("|A|");
25330263 5313 fhMCEAsymOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5314 outputContainer->Add(fhMCEAsymOverlapN[j][i]) ;
74e3eb22 5315
5316
cb99fa55 5317 if(fFillNCellHisto)
5318 {
5319 fhMCENCellOverlap0[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5320 Form("Overlap 0, n cells vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cb99fa55 5321 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5322 fhMCENCellOverlap0[j][i] ->SetYTitle("#it{N} cells");
5323 fhMCENCellOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
cb99fa55 5324 outputContainer->Add(fhMCENCellOverlap0[j][i]) ;
5325
5326 fhMCENCellOverlap1[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5327 Form("Overalap 1, n cells vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cb99fa55 5328 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5329 fhMCENCellOverlap1[j][i] ->SetYTitle("#it{N} cells");
5330 fhMCENCellOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
cb99fa55 5331 outputContainer->Add(fhMCENCellOverlap1[j][i]) ;
5332
5333 fhMCENCellOverlapN[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5334 Form("Overlap N, n cells vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
cb99fa55 5335 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5336 fhMCENCellOverlapN[j][i] ->SetYTitle("#it{N} cells");
5337 fhMCENCellOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
cb99fa55 5338 outputContainer->Add(fhMCENCellOverlapN[j][i]) ;
5339 }
4914e781 5340
5341 fhMCEEpriOverlap0[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5342 Form("Overlap 0, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5343 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5344 fhMCEEpriOverlap0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5345 fhMCEEpriOverlap0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5346 outputContainer->Add(fhMCEEpriOverlap0[j][i]) ;
5347
5348 fhMCEEpriOverlap1[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5349 Form("Overalap 1, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5350 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5351 fhMCEEpriOverlap1[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5352 fhMCEEpriOverlap1[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5353 outputContainer->Add(fhMCEEpriOverlap1[j][i]) ;
5354
5355 fhMCEEpriOverlapN[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5356 Form("Overlap N, E reco vs E prim for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5357 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5358 fhMCEEpriOverlapN[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5359 fhMCEEpriOverlapN[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5360 outputContainer->Add(fhMCEEpriOverlapN[j][i]) ;
1253480f 5361
4914e781 5362
cc909e6f 5363 fhMCEEpriOverlap0IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap0IdPi0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5364 Form("Overlap 0, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cc909e6f 5365 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5366 fhMCEEpriOverlap0IdPi0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5367 fhMCEEpriOverlap0IdPi0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
cc909e6f 5368 outputContainer->Add(fhMCEEpriOverlap0IdPi0[j][i]) ;
5369
5370 fhMCEEpriOverlap1IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap1IdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5371 Form("Overlap 1, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cc909e6f 5372 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5373 fhMCEEpriOverlap1IdPi0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5374 fhMCEEpriOverlap1IdPi0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
cc909e6f 5375 outputContainer->Add(fhMCEEpriOverlap1IdPi0[j][i]) ;
5376
5377 fhMCEEpriOverlapNIdPi0[j][i] = new TH2F(Form("hMCEEpriOverlapNIdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5378 Form("Overlap N, E reco vs E prim for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
cc909e6f 5379 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5380 fhMCEEpriOverlapNIdPi0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5381 fhMCEEpriOverlapNIdPi0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
cc909e6f 5382 outputContainer->Add(fhMCEEpriOverlapNIdPi0[j][i]) ;
5383
5384
83351853 5385 fhMCESplitEFracOverlap0[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5386 Form("Overlap 0, SplitEFrac vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
1253480f 5387 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5388 fhMCESplitEFracOverlap0[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5389 fhMCESplitEFracOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5390 outputContainer->Add(fhMCESplitEFracOverlap0[j][i]) ;
5391
5392 fhMCESplitEFracOverlap1[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5393 Form("Overalap 1, SplitEFrac vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
1253480f 5394 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5395 fhMCESplitEFracOverlap1[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5396 fhMCESplitEFracOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5397 outputContainer->Add(fhMCESplitEFracOverlap1[j][i]) ;
5398
5399 fhMCESplitEFracOverlapN[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5400 Form("Overlap N, SplitEFrac vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
1253480f 5401 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5402 fhMCESplitEFracOverlapN[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5403 fhMCESplitEFracOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5404 outputContainer->Add(fhMCESplitEFracOverlapN[j][i]) ;
b2e375c7 5405
5406 if(i < 5)
5407 {
5408 fhMCPi0MassM02Overlap0[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%d",snlm[j].Data(),i-1),
25330263 5409 Form("Overlap 0, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5410 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5411 fhMCPi0MassM02Overlap0[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5412 fhMCPi0MassM02Overlap0[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5413 outputContainer->Add(fhMCPi0MassM02Overlap0[j][i-1]) ;
5414
5415 fhMCPi0MassM02Overlap1[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%d",snlm[j].Data(),i-1),
25330263 5416 Form("Overlap 1, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5417 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5418 fhMCPi0MassM02Overlap1[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5419 fhMCPi0MassM02Overlap1[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5420 outputContainer->Add(fhMCPi0MassM02Overlap1[j][i-1]) ;
5421
5422 fhMCPi0MassM02OverlapN[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%d",snlm[j].Data(),i-1),
25330263 5423 Form("Overlap N, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5424 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5425 fhMCPi0MassM02OverlapN[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5426 fhMCPi0MassM02OverlapN[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5427 outputContainer->Add(fhMCPi0MassM02OverlapN[j][i-1]) ;
5428 }
5429
5430 if(fFillTMHisto)
5431 {
5432 fhMCENOverlapsMatch[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5433 Form("# overlaps vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5434 nptbins,ptmin,ptmax,10,0,10);
5435 fhMCENOverlapsMatch[j][i] ->SetYTitle("# overlaps");
25330263 5436 fhMCENOverlapsMatch[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5437 outputContainer->Add(fhMCENOverlapsMatch[j][i]) ;
5438
5439 fhMCEM02Overlap0Match[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5440 Form("#lambda_{0}^{2} vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5441 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5442 fhMCEM02Overlap0Match[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5443 fhMCEM02Overlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5444 outputContainer->Add(fhMCEM02Overlap0Match[j][i]) ;
5445
5446 fhMCEM02Overlap1Match[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5447 Form("#lambda_{0}^{2} vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5448 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5449 fhMCEM02Overlap1Match[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5450 fhMCEM02Overlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5451 outputContainer->Add(fhMCEM02Overlap1Match[j][i]) ;
5452
5453 fhMCEM02OverlapNMatch[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5454 Form("#lambda_{0}^{2} vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5455 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5456 fhMCEM02OverlapNMatch[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5457 fhMCEM02OverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5458 outputContainer->Add(fhMCEM02OverlapNMatch[j][i]) ;
5459
5460 fhMCEMassOverlap0Match[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5461 Form("Mass vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5462 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5463 fhMCEMassOverlap0Match[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5464 fhMCEMassOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5465 outputContainer->Add(fhMCEMassOverlap0Match[j][i]) ;
5466
5467 fhMCEMassOverlap1Match[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5468 Form("Mass vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5469 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5470 fhMCEMassOverlap1Match[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5471 fhMCEMassOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5472 outputContainer->Add(fhMCEMassOverlap1Match[j][i]) ;
5473
5474 fhMCEMassOverlapNMatch[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5475 Form("Mass vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5476 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5477 fhMCEMassOverlapNMatch[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5478 fhMCEMassOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5479 outputContainer->Add(fhMCEMassOverlapNMatch[j][i]) ;
5480
4914e781 5481
5482 fhMCEAsymOverlap0Match[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5483 Form("Overlap 0, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5484 nptbins,ptmin,ptmax,100,0,1);
25330263 5485 fhMCEAsymOverlap0Match[j][i] ->SetYTitle("|#it{A}|");
5486 fhMCEAsymOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5487 outputContainer->Add(fhMCEAsymOverlap0Match[j][i]) ;
5488
5489 fhMCEAsymOverlap1Match[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5490 Form("Overalap 1, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5491 nptbins,ptmin,ptmax,100,0,1);
25330263 5492 fhMCEAsymOverlap1Match[j][i] ->SetYTitle("|#it{A}|");
5493 fhMCEAsymOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5494 outputContainer->Add(fhMCEAsymOverlap1Match[j][i]) ;
5495
5496 fhMCEAsymOverlapNMatch[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5497 Form("Overlap N, Asymmetry vs E for #it{NLM}=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5498 nptbins,ptmin,ptmax,100,0,1);
25330263 5499 fhMCEAsymOverlapNMatch[j][i] ->SetYTitle("|#it{A}|");
5500 fhMCEAsymOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5501 outputContainer->Add(fhMCEAsymOverlapNMatch[j][i]) ;
74e3eb22 5502
5503
5504 fhMCENCellOverlap0Match[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5505 Form("Overlap 0, n cells vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
74e3eb22 5506 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5507 fhMCENCellOverlap0Match[j][i] ->SetYTitle("#it{N} cells");
5508 fhMCENCellOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
74e3eb22 5509 outputContainer->Add(fhMCENCellOverlap0Match[j][i]) ;
1253480f 5510
74e3eb22 5511 fhMCENCellOverlap1Match[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5512 Form("Overalap 1, n cell vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
74e3eb22 5513 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5514 fhMCENCellOverlap1Match[j][i] ->SetYTitle("#it{N} cells");
5515 fhMCENCellOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
74e3eb22 5516 outputContainer->Add(fhMCENCellOverlap1Match[j][i]) ;
4914e781 5517
74e3eb22 5518 fhMCENCellOverlapNMatch[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5519 Form("Overlap N, n cell vs E for #it{NLM}=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
74e3eb22 5520 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5521 fhMCENCellOverlapNMatch[j][i] ->SetYTitle("#it{N} cells");
5522 fhMCENCellOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
74e3eb22 5523 outputContainer->Add(fhMCENCellOverlapNMatch[j][i]) ;
5524
4914e781 5525 fhMCEEpriOverlap0Match[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5526 Form("Overlap 0, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
4914e781 5527 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5528 fhMCEEpriOverlap0Match[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5529 fhMCEEpriOverlap0Match[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5530 outputContainer->Add(fhMCEEpriOverlap0Match[j][i]) ;
5531
5532 fhMCEEpriOverlap1Match[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5533 Form("Overalap 1, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
4914e781 5534 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5535 fhMCEEpriOverlap1Match[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5536 fhMCEEpriOverlap1Match[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5537 outputContainer->Add(fhMCEEpriOverlap1Match[j][i]) ;
5538
cc909e6f 5539 fhMCEEpriOverlapNMatch[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5540 Form("Overlap N, Asymmetry vs E for #it{NLM}=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
4914e781 5541 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5542 fhMCEEpriOverlapNMatch[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5543 fhMCEEpriOverlapNMatch[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5544 outputContainer->Add(fhMCEEpriOverlapNMatch[j][i]) ;
1253480f 5545
4914e781 5546
83351853 5547 fhMCESplitEFracOverlap0Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5548 Form("SplitEFrac vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5549 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5550 fhMCESplitEFracOverlap0Match[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5551 fhMCESplitEFracOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5552 outputContainer->Add(fhMCESplitEFracOverlap0Match[j][i]) ;
5553
5554 fhMCESplitEFracOverlap1Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5555 Form("SplitEFrac vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5556 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5557 fhMCESplitEFracOverlap1Match[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5558 fhMCESplitEFracOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5559 outputContainer->Add(fhMCESplitEFracOverlap1Match[j][i]) ;
5560
5561 fhMCESplitEFracOverlapNMatch[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5562 Form("SplitEFrac vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5563 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5564 fhMCESplitEFracOverlapNMatch[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5565 fhMCESplitEFracOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5566 outputContainer->Add(fhMCESplitEFracOverlapNMatch[j][i]) ;
1253480f 5567
83351853 5568
b2e375c7 5569 if(i < 5)
5570 {
5571 fhMCPi0MassM02Overlap0Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
25330263 5572 Form("Overlap 0, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5573 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5574 fhMCPi0MassM02Overlap0Match[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5575 fhMCPi0MassM02Overlap0Match[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5576 outputContainer->Add(fhMCPi0MassM02Overlap0Match[j][i-1]) ;
5577
5578 fhMCPi0MassM02Overlap1Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
25330263 5579 Form("Overlap 1, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5580 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5581 fhMCPi0MassM02Overlap1Match[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5582 fhMCPi0MassM02Overlap1Match[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5583 outputContainer->Add(fhMCPi0MassM02Overlap1Match[j][i-1]) ;
5584
5585 fhMCPi0MassM02OverlapNMatch[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
25330263 5586 Form("Overlap N, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5587 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5588 fhMCPi0MassM02OverlapNMatch[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5589 fhMCPi0MassM02OverlapNMatch[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5590 outputContainer->Add(fhMCPi0MassM02OverlapNMatch[j][i-1]) ;
5591
5592 }
5593
5594 }
5595 }
5596 }
5597
5598 fhMCPi0HighNLMPair = new TH2F("hMCPi0HighNLMPair","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5599 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5600 fhMCPi0HighNLMPair ->SetYTitle("#it{N} maxima");
5601 fhMCPi0HighNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5602 outputContainer->Add(fhMCPi0HighNLMPair) ;
5603
5604 fhMCPi0LowNLMPair = new TH2F("hMCPi0LowNLMPair","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5605 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5606 fhMCPi0LowNLMPair ->SetYTitle("#it{N} maxima");
5607 fhMCPi0LowNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5608 outputContainer->Add(fhMCPi0LowNLMPair) ;
5609
5610 fhMCPi0AnyNLMPair = new TH2F("hMCPi0AnyNLMPair","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5611 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5612 fhMCPi0AnyNLMPair ->SetYTitle("#it{N} maxima");
5613 fhMCPi0AnyNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5614 outputContainer->Add(fhMCPi0AnyNLMPair) ;
5615
5616 fhMCPi0NoneNLMPair = new TH2F("hMCPi0NoneNLMPair","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5617 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5618 fhMCPi0NoneNLMPair ->SetYTitle("#it{N} maxima");
5619 fhMCPi0NoneNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5620 outputContainer->Add(fhMCPi0NoneNLMPair) ;
1253480f 5621
b2e375c7 5622
5623 fhMCPi0HighNLMPairNoMCMatch = new TH2F("hMCPi0HighNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
1253480f 5624 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5625 fhMCPi0HighNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5626 fhMCPi0HighNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5627 outputContainer->Add(fhMCPi0HighNLMPairNoMCMatch) ;
5628
5629 fhMCPi0LowNLMPairNoMCMatch = new TH2F("hMCPi0LowNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
1253480f 5630 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5631 fhMCPi0LowNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5632 fhMCPi0LowNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5633 outputContainer->Add(fhMCPi0LowNLMPairNoMCMatch) ;
5634
5635 fhMCPi0AnyNLMPairNoMCMatch = new TH2F("hMCPi0AnyNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
1253480f 5636 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5637 fhMCPi0AnyNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5638 fhMCPi0AnyNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5639 outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatch) ;
5640
5641 fhMCPi0NoneNLMPairNoMCMatch = new TH2F("hMCPi0NoneNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, no NLM pair are decays",
1253480f 5642 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5643 fhMCPi0NoneNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5644 fhMCPi0NoneNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5645 outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatch) ;
1253480f 5646
b2e375c7 5647
36769d30 5648 fhMCPi0HighNLMPairOverlap = new TH2F("hMCPi0HighNLMPairOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5649 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5650 fhMCPi0HighNLMPairOverlap ->SetYTitle("#it{N} maxima");
5651 fhMCPi0HighNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5652 outputContainer->Add(fhMCPi0HighNLMPairOverlap) ;
5653
5654 fhMCPi0LowNLMPairOverlap = new TH2F("hMCPi0LowNLMPairOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5655 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5656 fhMCPi0LowNLMPairOverlap ->SetYTitle("#it{N} maxima");
5657 fhMCPi0LowNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5658 outputContainer->Add(fhMCPi0LowNLMPairOverlap) ;
5659
5660 fhMCPi0AnyNLMPairOverlap = new TH2F("hMCPi0AnyNLMPairOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5661 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5662 fhMCPi0AnyNLMPairOverlap ->SetYTitle("#it{N} maxima");
5663 fhMCPi0AnyNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5664 outputContainer->Add(fhMCPi0AnyNLMPairOverlap) ;
5665
5666 fhMCPi0NoneNLMPairOverlap = new TH2F("hMCPi0NoneNLMPairOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5667 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5668 fhMCPi0NoneNLMPairOverlap ->SetYTitle("#it{N} maxima");
5669 fhMCPi0NoneNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5670 outputContainer->Add(fhMCPi0NoneNLMPairOverlap) ;
5671
5672 fhMCPi0HighNLMPairNoMCMatchOverlap = new TH2F("hMCPi0HighNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5673 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5674 fhMCPi0HighNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5675 fhMCPi0HighNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5676 outputContainer->Add(fhMCPi0HighNLMPairNoMCMatchOverlap) ;
5677
5678 fhMCPi0LowNLMPairNoMCMatchOverlap = new TH2F("hMCPi0LowNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5679 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5680 fhMCPi0LowNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5681 fhMCPi0LowNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5682 outputContainer->Add(fhMCPi0LowNLMPairNoMCMatchOverlap) ;
5683
5684 fhMCPi0AnyNLMPairNoMCMatchOverlap = new TH2F("hMCPi0AnyNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5685 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5686 fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5687 fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5688 outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatchOverlap) ;
5689
5690 fhMCPi0NoneNLMPairNoMCMatchOverlap = new TH2F("hMCPi0NoneNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5691 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5692 fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5693 fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5694 outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatchOverlap) ;
b583134f 5695
1253480f 5696
36769d30 5697 fhMCPi0DecayPhotonHitHighLM = new TH2F("hMCPi0DecayPhotonHitHighLM","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima",
83351853 5698 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5699 fhMCPi0DecayPhotonHitHighLM ->SetYTitle("#it{N} maxima");
5700 fhMCPi0DecayPhotonHitHighLM ->SetXTitle("#it{E} (GeV)");
83351853 5701 outputContainer->Add(fhMCPi0DecayPhotonHitHighLM ) ;
5702
36769d30 5703 fhMCPi0DecayPhotonAdjHighLM = new TH2F("hMCPi0DecayPhotonAdjHighLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima",
1253480f 5704 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5705 fhMCPi0DecayPhotonAdjHighLM ->SetYTitle("#it{N} maxima");
5706 fhMCPi0DecayPhotonAdjHighLM ->SetXTitle("#it{E} (GeV)");
83351853 5707 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLM ) ;
1253480f 5708
36769d30 5709 fhMCPi0DecayPhotonHitOtherLM = new TH2F("hMCPi0DecayPhotonHitOtherLM","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima",
1253480f 5710 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5711 fhMCPi0DecayPhotonHitOtherLM ->SetYTitle("#it{N} maxima");
5712 fhMCPi0DecayPhotonHitOtherLM ->SetXTitle("#it{E} (GeV)");
83351853 5713 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLM ) ;
5714
36769d30 5715 fhMCPi0DecayPhotonAdjOtherLM = new TH2F("hMCPi0DecayPhotonAdjOtherLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima",
1253480f 5716 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5717 fhMCPi0DecayPhotonAdjOtherLM ->SetYTitle("#it{N} maxima");
5718 fhMCPi0DecayPhotonAdjOtherLM ->SetXTitle("#it{E} (GeV)");
83351853 5719 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLM ) ;
1253480f 5720
36769d30 5721 fhMCPi0DecayPhotonAdjacent = new TH2F("hMCPi0DecayPhotonAdjacent","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells",
5722 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5723 fhMCPi0DecayPhotonAdjacent ->SetYTitle("#it{N} maxima");
5724 fhMCPi0DecayPhotonAdjacent ->SetXTitle("#it{E} (GeV)");
36769d30 5725 outputContainer->Add(fhMCPi0DecayPhotonAdjacent ) ;
5726
5727 fhMCPi0DecayPhotonHitNoLM = new TH2F("hMCPi0DecayPhotonHitNoLM","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima",
5728 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5729 fhMCPi0DecayPhotonHitNoLM ->SetYTitle("#it{N} maxima");
5730 fhMCPi0DecayPhotonHitNoLM ->SetXTitle("#it{E} (GeV)");
83351853 5731 outputContainer->Add(fhMCPi0DecayPhotonHitNoLM ) ;
5732
36769d30 5733
5734 fhMCPi0DecayPhotonHitHighLMOverlap = new TH2F("hMCPi0DecayPhotonHitHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima, there was an overlap",
5735 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5736 fhMCPi0DecayPhotonHitHighLMOverlap ->SetYTitle("#it{N} maxima");
5737 fhMCPi0DecayPhotonHitHighLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5738 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlap ) ;
5739
5740 fhMCPi0DecayPhotonAdjHighLMOverlap = new TH2F("hMCPi0DecayPhotonAdjHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima, there was an overlap",
5741 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5742 fhMCPi0DecayPhotonAdjHighLMOverlap ->SetYTitle("#it{N} maxima");
5743 fhMCPi0DecayPhotonAdjHighLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5744 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlap ) ;
5745
5746 fhMCPi0DecayPhotonHitOtherLMOverlap = new TH2F("hMCPi0DecayPhotonHitOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima, there was an overlap",
5747 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5748 fhMCPi0DecayPhotonHitOtherLMOverlap ->SetYTitle("#it{N} maxima");
5749 fhMCPi0DecayPhotonHitOtherLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5750 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlap ) ;
5751
5752 fhMCPi0DecayPhotonAdjOtherLMOverlap = new TH2F("hMCPi0DecayPhotonAdjOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",
5753 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5754 fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetYTitle("#it{N} maxima");
5755 fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5756 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlap ) ;
5757
5758 fhMCPi0DecayPhotonAdjacentOverlap = new TH2F("hMCPi0DecayPhotonAdjacentOverlap","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells, there was an overlap",
5759 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5760 fhMCPi0DecayPhotonAdjacentOverlap ->SetYTitle("#it{N} maxima");
5761 fhMCPi0DecayPhotonAdjacentOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5762 outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlap ) ;
5763
5764 fhMCPi0DecayPhotonHitNoLMOverlap = new TH2F("hMCPi0DecayPhotonHitNoLMOverlap","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima, there was an overlap",
5765 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5766 fhMCPi0DecayPhotonHitNoLMOverlap ->SetYTitle("#it{N} maxima");
5767 fhMCPi0DecayPhotonHitNoLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5768 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlap ) ;
5769
1253480f 5770
b583134f 5771 for(Int_t nlm = 0; nlm < 3; nlm++)
5772 {
5773 fhMCPi0DecayPhotonHitHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sMass",snlm[nlm].Data()),
25330263 5774 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 5775 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5776 fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5777 fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5778 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMMass[nlm] ) ;
5779
5780 fhMCPi0DecayPhotonAdjHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sMass",snlm[nlm].Data()),
25330263 5781 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5782 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5783 fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5784 fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5785 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMMass[nlm] ) ;
5786
5787 fhMCPi0DecayPhotonHitOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sMass",snlm[nlm].Data()),
25330263 5788 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5789 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5790 fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5791 fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5792 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMMass[nlm] ) ;
5793
5794 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sMass",snlm[nlm].Data()),
25330263 5795 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5796 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5797 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5798 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5799 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ) ;
5800
5801 fhMCPi0DecayPhotonAdjacentMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sMass",snlm[nlm].Data()),
25330263 5802 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit adjacent cells",snlm[nlm].Data()),
29555e96 5803 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5804 fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5805 fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5806 outputContainer->Add(fhMCPi0DecayPhotonAdjacentMass[nlm] ) ;
5807
5808 fhMCPi0DecayPhotonHitNoLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sMass",snlm[nlm].Data()),
25330263 5809 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon do not hit Local Maxima",snlm[nlm].Data()),
29555e96 5810 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5811 fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5812 fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5813 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMMass[nlm] ) ;
5814
5815
5816 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapMass",snlm[nlm].Data()),
25330263 5817 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5818 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5819 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5820 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5821 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm]) ;
5822
5823 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapMass",snlm[nlm].Data()),
25330263 5824 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5825 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5826 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5827 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5828 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm]) ;
5829
5830 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapMass",snlm[nlm].Data()),
25330263 5831 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5832 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5833 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5834 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5835 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm]) ;
5836
5837 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapMass",snlm[nlm].Data()),
25330263 5838 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5839 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5840 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5841 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5842 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm]) ;
5843
5844 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sOverlapMass",snlm[nlm].Data()),
25330263 5845 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit adjacent cells, there was an overlap",snlm[nlm].Data()),
29555e96 5846 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5847 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5848 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5849 outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlapMass[nlm]) ;
5850
5851 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sOverlapMass",snlm[nlm].Data()),
25330263 5852 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon do not hit Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5853 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5854 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5855 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5856 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm]) ;
29555e96 5857
b583134f 5858 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1",snlm[nlm].Data()),
25330263 5859 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs E pi0 for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
cb99fa55 5860 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5861 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5862 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5863 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ) ;
5864
5865 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1",snlm[nlm].Data()),
25330263 5866 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5867 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5868 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
29555e96 5869 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetXTitle("E pi0 (GeV)");
b583134f 5870 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ) ;
5871
5872 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1",snlm[nlm].Data()),
25330263 5873 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5874 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5875 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5876 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
b583134f 5877 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ) ;
5878
5879 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1",snlm[nlm].Data()),
25330263 5880 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5881 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5882 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5883 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5884 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ) ;
5885
5886 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5887 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5888 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5889 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5890 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5891 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm]) ;
5892
5893 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5894 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5895 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5896 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5897 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5898 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm]) ;
5899
5900 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5901 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5902 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5903 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5904 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5905 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm]) ;
5906
5907 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5908 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5909 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5910 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5911 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5912 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm]) ;
5913
5914 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2",snlm[nlm].Data()),
25330263 5915 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
cb99fa55 5916 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5917 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5918 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5919 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ) ;
5920
5921 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2",snlm[nlm].Data()),
25330263 5922 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
cb99fa55 5923 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5924 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5925 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5926 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ) ;
5927
5928 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2",snlm[nlm].Data()),
25330263 5929 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
cb99fa55 5930 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5931 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5932 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5933 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ) ;
5934
5935 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2",snlm[nlm].Data()),
25330263 5936 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
cb99fa55 5937 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5938 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5939 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5940 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ) ;
5941
5942 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5943 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5944 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5945 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5946 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5947 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm]) ;
5948
5949 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5950 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5951 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5952 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5953 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5954 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm]) ;
5955
5956 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5957 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5958 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5959 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5960 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5961 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm]) ;
5962
5963 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5964 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5965 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5966 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5967 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5968 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm]) ;
29555e96 5969
5970
5971 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5972 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 5973 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5974 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5975 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 5976 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ) ;
5977
5978 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5979 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5980 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5981 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5982 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E} (GeV)");
29555e96 5983 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ) ;
5984
5985 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5986 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5987 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5988 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5989 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 5990 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ) ;
5991
5992 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5993 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5994 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5995 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5996 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 5997 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ) ;
5998
5999 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6000 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6001 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6002 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6003 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6004 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm]) ;
6005
6006 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6007 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6008 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6009 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6010 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6011 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm]) ;
6012
6013 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6014 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6015 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6016 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6017 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6018 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm]) ;
6019
6020 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6021 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6022 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6023 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6024 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6025 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm]) ;
6026
6027 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6028 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 6029 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6030 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6031 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6032 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ) ;
6033
6034 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6035 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 6036 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6037 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6038 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6039 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ) ;
6040
6041 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6042 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 6043 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6044 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6045 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6046 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ) ;
6047
6048 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6049 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 6050 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6051 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6052 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6053 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ) ;
6054
6055 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6056 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6057 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6058 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6059 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6060 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm]) ;
6061
6062 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6063 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6064 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6065 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6066 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6067 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm]) ;
6068
6069 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6070 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6071 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6072 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6073 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6074 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm]) ;
6075
6076 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6077 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6078 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6079 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6080 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6081 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm]) ;
6082
b583134f 6083 }
6084
b2e375c7 6085 fhMCEOverlapType = new TH2F("hMCEOverlapType","Kind of overlap particle, neutral clusters",
6086 nptbins,ptmin,ptmax,5,0,5);
6087 //fhMCEOverlapType ->SetYTitle("Overlap Type");
6088 fhMCEOverlapType->GetYaxis()->SetBinLabel(1 ,"#gamma");
6089 fhMCEOverlapType->GetYaxis()->SetBinLabel(2 ,"e^{#pm}");
6090 fhMCEOverlapType->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}");
6091 fhMCEOverlapType->GetYaxis()->SetBinLabel(4 ,"hadron^{0}");
6092 fhMCEOverlapType->GetYaxis()->SetBinLabel(5 ,"??");
25330263 6093 fhMCEOverlapType->SetXTitle("Cluster #it{E} (GeV)");
b2e375c7 6094 outputContainer->Add(fhMCEOverlapType) ;
1253480f 6095
b2e375c7 6096 fhMCEOverlapTypeMatch = new TH2F("hMCEOverlapTypeMatched","Kind of overlap particle, charged clusters",
1253480f 6097 nptbins,ptmin,ptmax,5,0,5);
b2e375c7 6098 //fhMCEOverlapTypeMatch ->SetYTitle("Overlap Type");
6099 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(1 ,"#gamma");
6100 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(2 ,"e^{#pm}");
6101 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}");
6102 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(4 ,"hadron^{0}");
6103 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(5 ,"??");
25330263 6104 fhMCEOverlapTypeMatch->SetXTitle("Cluster #it{E} (GeV)");
b2e375c7 6105 outputContainer->Add(fhMCEOverlapTypeMatch) ;
1253480f 6106
b2e375c7 6107 }// MC analysis, check overlaps
6108
ce49dd72 6109
b583134f 6110 if(IsDataMC())
6111 {
6112 for(Int_t inlm = 0; inlm < 3; inlm++)
6113 {
6114 fhAsyMCGenRecoDiffMCPi0[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0",snlm[inlm].Data()),
25330263 6115 Form("Reconstructed - Generated asymmetry with #it{NLM}=%d vs E, MC Pi0",inlm),
b583134f 6116 nptbins,ptmin,ptmax,200,-1,1);
25330263 6117 fhAsyMCGenRecoDiffMCPi0[inlm]->SetYTitle("#it{A}_{reco} - #it{A}_{gen}");
6118 fhAsyMCGenRecoDiffMCPi0[inlm]->SetXTitle("#it{E} (GeV)");
b583134f 6119 outputContainer->Add(fhAsyMCGenRecoDiffMCPi0[inlm]) ;
6120
6121 fhAsyMCGenRecoDiffMCPi0Conv[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0Conv",snlm[inlm].Data()),
25330263 6122 Form("Reconstructed - Generated asymmetry with #it{NLM}=%d vs E, MC Pi0Conv",inlm),
b583134f 6123 nptbins,ptmin,ptmax,200,-1,1);
25330263 6124 fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetYTitle("#it{A}_{reco} - #it{A}_{gen}");
6125 fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetXTitle("#it{E} (GeV)");
b583134f 6126 outputContainer->Add(fhAsyMCGenRecoDiffMCPi0Conv[inlm]) ;
6127 }
6128 }
6129
cb99fa55 6130 if(fFillArmenterosHisto)
6131 {
be894c1d 6132 Int_t narmbins = 400;
6133 Float_t armmin = 0;
6134 Float_t armmax = 0.4;
6135
ed10b649 6136 for(Int_t i = 0; i < 7; i++) // MC bin
cb99fa55 6137 {
6138 for(Int_t j = 0; j < 4; j++) // E bin
6139 {
6140 fhArmNLocMax1[i][j] = new TH2F(Form("hArmNLocMax1EBin%d%s",j,pname[i].Data()),
25330263 6141 Form("Armenteros of splitted cluster with #it{NLM}=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6142 200, -1, 1, narmbins,armmin,armmax);
25330263 6143 fhArmNLocMax1[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6144 fhArmNLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6145 outputContainer->Add(fhArmNLocMax1[i][j]) ;
6146
6147 fhArmNLocMax2[i][j] = new TH2F(Form("hArmNLocMax2EBin%d%s",j,pname[i].Data()),
25330263 6148 Form("Armenteros of splitted cluster with #it{NLM}=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6149 200, -1, 1, narmbins,armmin,armmax);
25330263 6150 fhArmNLocMax2[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6151 fhArmNLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6152 outputContainer->Add(fhArmNLocMax2[i][j]) ;
6153
6154 fhArmNLocMaxN[i][j] = new TH2F(Form("hArmNLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6155 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6156 200, -1, 1, narmbins,armmin,armmax);
25330263 6157 fhArmNLocMaxN[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6158 fhArmNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6159 outputContainer->Add(fhArmNLocMaxN[i][j]) ;
6160
c7e9a4e9 6161 if(asyOn || m02On)
cb99fa55 6162 {
6163 fhArmAfterCutsNLocMax1[i][j] = new TH2F(Form("hArmAfterCutsNLocMax1EBin%d%s",j,pname[i].Data()),
25330263 6164 Form("Armenteros of splitted cluster with #it{NLM}=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6165 200, -1, 1, narmbins,armmin,armmax);
25330263 6166 fhArmAfterCutsNLocMax1[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6167 fhArmAfterCutsNLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6168 outputContainer->Add(fhArmAfterCutsNLocMax1[i][j]) ;
6169
6170 fhArmAfterCutsNLocMax2[i][j] = new TH2F(Form("hArmAfterCutsNLocMax2EBin%d%s",j,pname[i].Data()),
25330263 6171 Form("Armenteros of splitted cluster with #it{NLM}=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6172 200, -1, 1, narmbins,armmin,armmax);
25330263 6173 fhArmAfterCutsNLocMax2[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6174 fhArmAfterCutsNLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6175 outputContainer->Add(fhArmAfterCutsNLocMax2[i][j]) ;
6176
6177 fhArmAfterCutsNLocMaxN[i][j] = new TH2F(Form("hArmAfterCutsNLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6178 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6179 200, -1, 1, narmbins,armmin,armmax);
25330263 6180 fhArmAfterCutsNLocMaxN[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6181 fhArmAfterCutsNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6182 outputContainer->Add(fhArmAfterCutsNLocMaxN[i][j]) ;
6183 }
6184
6185 fhArmPi0NLocMax1[i][j] = new TH2F(Form("hArmPi0NLocMax1EBin%d%s",j,pname[i].Data()),
25330263 6186 Form("Armenteros of splitted cluster with #it{NLM}=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6187 200, -1, 1, narmbins,armmin,armmax);
25330263 6188 fhArmPi0NLocMax1[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6189 fhArmPi0NLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6190 outputContainer->Add(fhArmPi0NLocMax1[i][j]) ;
6191
6192 fhArmPi0NLocMax2[i][j] = new TH2F(Form("hArmPi0NLocMax2EBin%d%s",j,pname[i].Data()),
25330263 6193 Form("Armenteros of splitted cluster with #it{NLM}=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6194 200, -1, 1, narmbins,armmin,armmax);
25330263 6195 fhArmPi0NLocMax2[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6196 fhArmPi0NLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6197 outputContainer->Add(fhArmPi0NLocMax2[i][j]) ;
6198
6199 fhArmPi0NLocMaxN[i][j] = new TH2F(Form("hArmPi0NLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6200 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6201 200, -1, 1, narmbins,armmin,armmax);
25330263 6202 fhArmPi0NLocMaxN[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6203 fhArmPi0NLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6204 outputContainer->Add(fhArmPi0NLocMaxN[i][j]) ;
6205
6206 }
6207 }
6208 }
6209
992b14a7 6210 return outputContainer ;
6211
6212}
6213
b2e375c7 6214//_____________________________________________________________________________
4914e781 6215void AliAnaInsideClusterInvariantMass::GetMCIndex(AliVCluster* cluster,
6216 Int_t & mcindex, Int_t & tag)
b2e375c7 6217{
6218
6219 // Assign mc index depending on MC bit set, to be used in histograms arrays
1253480f 6220
0cea6003 6221 tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader(),GetCalorimeter());
b2e375c7 6222
6223 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) &&
6224 !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPi0;
6225 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) ) mcindex = kmcPi0Conv;
6226 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta) ) mcindex = kmcEta;
6227 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
6228 !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPhoton;
6229 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
6230 GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcConversion;
cb99fa55 6231 else if (!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron) ) mcindex = kmcHadron;
6232
6233 //printf("MC index %d\n",mcindex);
b2e375c7 6234
6235}
6236
b94e038e 6237//____________________________________________________________________________________________
6238void AliAnaInsideClusterInvariantMass::GetMCPrimaryKine(AliVCluster* cluster, Int_t mcindex,
6239 Int_t mctag, Bool_t matched,
6240 Float_t & eprim, Float_t & asymGen,
6241 Float_t & angleGen, Int_t & noverlaps )
b2e375c7 6242{
6243 // Check origin of the candidates, get primary kinematics if overlapped meson decay
6244
b2e375c7 6245 Bool_t ok = kFALSE;
6246 Int_t mcLabel = cluster->GetLabel();
6247
1a8c88c1 6248 fPrimaryMom = GetMCAnalysisUtils()->GetMother(mcLabel,GetReader(),ok);
6249 eprim = fPrimaryMom.E();
b2e375c7 6250
36769d30 6251 Int_t mesonLabel = -1;
6252
b2e375c7 6253 if(mcindex == kmcPi0 || mcindex == kmcEta || mcindex == kmcPi0Conv)
6254 {
6255 if(mcindex == kmcPi0 || mcindex == kmcPi0Conv)
6256 {
0186b6a2 6257 GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,111,GetReader(),asymGen,angleGen,ok);
6258 asymGen = TMath::Abs(asymGen);
1a8c88c1 6259 fGrandMotherMom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,111,GetReader(),ok,mesonLabel);
6260 if(fGrandMotherMom.E() > 0 && ok) eprim = fGrandMotherMom.E();
b2e375c7 6261 }
6262 else
6263 {
0186b6a2 6264 GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,221,GetReader(),asymGen,angleGen,ok);
6265 asymGen = TMath::Abs(asymGen);
1a8c88c1 6266 fGrandMotherMom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,221,GetReader(),ok,mesonLabel);
6267 if(fGrandMotherMom.E() > 0 && ok) eprim = fGrandMotherMom.E();
b2e375c7 6268 }
6269 }
6270
6271 if(!fFillMCOverlapHisto) return;
36769d30 6272
4914e781 6273 const UInt_t nlabels = cluster->GetNLabels();
6274 Int_t overpdg[nlabels];
6275 noverlaps = GetMCAnalysisUtils()->GetNOverlaps(cluster->GetLabels(), nlabels,mctag,mesonLabel,GetReader(),overpdg);
6276
6277 for(Int_t iover = 0; iover < noverlaps; iover++)
6278 {
36769d30 6279 Float_t histobin = -1;
4914e781 6280 Int_t mpdg = overpdg[iover];
6281
36769d30 6282 if (mpdg==22) histobin = 0.5;
6283 else if(TMath::Abs(mpdg)==11) histobin = 1.5;
6284 else if(mpdg==-999999) histobin = 4.5;
6285 else
6286 {
6287 Double_t charge = TDatabasePDG::Instance()->GetParticle(mpdg)->Charge();
6288 if(TMath::Abs(charge) > 0 ) histobin = 2.5;
6289 else histobin = 3.5;
6290 //printf("charge %f\n",charge);
6291 }
6292
6293 //printf("\t pdg = %d, histobin %2.1f\n",mpdg,histobin);
6294 if(histobin > 0)
6295 {
6296 if(matched)fhMCEOverlapType ->Fill(cluster->E(),histobin);
6297 else fhMCEOverlapTypeMatch->Fill(cluster->E(),histobin);
6298 }
b2e375c7 6299 }
b2e375c7 6300}
6301
992b14a7 6302//___________________________________________
6303void AliAnaInsideClusterInvariantMass::Init()
b2e375c7 6304{
992b14a7 6305 //Init
6306 //Do some checks
a6d3b0a8 6307
bdb39dbd 6308 if(GetCalorimeter() == kPHOS && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD())
3c1d9afb 6309 {
a6d3b0a8 6310 AliFatal("!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n");
992b14a7 6311 }
bdb39dbd 6312 else if(GetCalorimeter() == kEMCAL && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD())
3c1d9afb 6313 {
a6d3b0a8 6314 AliFatal("!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n");
992b14a7 6315 }
6316
3c1d9afb 6317 if( GetReader()->GetDataType() == AliCaloTrackReader::kMC )
6318 {
a6d3b0a8 6319 AliFatal("!!STOP: You want to use pure MC data!!\n");
992b14a7 6320 }
6321
6322}
6323
6324//_____________________________________________________
6325void AliAnaInsideClusterInvariantMass::InitParameters()
6326{
6327 //Initialize the parameters of the analysis.
6328 AddToHistogramsName("AnaPi0InsideClusterInvariantMass_");
6329
992b14a7 6330 fMinNCells = 4 ;
2cb134fb 6331 fMinBadDist = 2 ;
dbe09c26 6332
b2e375c7 6333 fHistoECut = 8 ;
6334
5cd814a9 6335 fSSWeightN = 10;
6336 fSSWeight [0] = 4.00; fSSWeight [1] = 4.10; fSSWeight [2] = 4.20; fSSWeight [3] = 4.30; fSSWeight [4] = 4.35;
6337 fSSWeight [5] = 4.40; fSSWeight [6] = 4.45; fSSWeight [7] = 4.50; fSSWeight [8] = 4.55; fSSWeight [9] = 4.60;
6338 fSSWeight[10] = 4.70; fSSWeight[11] = 4.80; fSSWeight[12] = 4.90; fSSWeight[13] = 5.00; fSSWeight[14] = 5.10;
6339 fSSWeight[15] = 5.20; fSSWeight[16] = 5.50; fSSWeight[17] = 5.75; fSSWeight[18] = 6.00; fSSWeight[19] = 7.00;
19391b8c 6340
5cd814a9 6341 fSSECellCutN = 10;
6342 fSSECellCut [0] = 0.05; fSSECellCut [1] = 0.06; fSSECellCut [2] = 0.07; fSSECellCut [3] = 0.08; fSSECellCut [4] = 0.09;
6343 fSSECellCut [5] = 0.10; fSSECellCut [6] = 0.11; fSSECellCut [7] = 0.12; fSSECellCut [8] = 0.13; fSSECellCut [9] = 0.14;
6344 fSSECellCut[10] = 0.15; fSSECellCut[11] = 0.16; fSSECellCut[12] = 0.17; fSSECellCut[13] = 0.18; fSSECellCut[14] = 0.19;
6345 fSSECellCut[15] = 0.20; fSSECellCut[16] = 0.21; fSSECellCut[17] = 0.22; fSSECellCut[18] = 0.23; fSSECellCut[19] = 0.24;
19391b8c 6346
ff6aa4ce 6347 fNLMSettingN = 5;
6348 fNLMMinE [0] = 0.10; fNLMMinE [1] = 0.20; fNLMMinE [2] = 0.35; fNLMMinE [3] = 0.50; fNLMMinE [4] = 1.00;
6349 fNLMMinDiff[0] = 0.03; fNLMMinDiff[1] = 0.05; fNLMMinDiff[2] = 0.10; fNLMMinDiff[3] = 0.15; fNLMMinDiff[4] = 0.20;
6350
09a5b22d 6351 fWSimu[0] = 1; // Default, do not correct, change to 1.05-1.1
6352 fWSimu[1] = 0; // Default, do not correct, change to 0.07
6353
992b14a7 6354}
6355
6356
6357//__________________________________________________________________
6358void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
6359{
0cea6003 6360 //Search for pi0 in GetCalorimeter() with shower shape analysis
992b14a7 6361
6362 TObjArray * pl = 0x0;
6363 AliVCaloCells* cells = 0x0;
6364
6365 //Select the Calorimeter of the photon
bdb39dbd 6366 if(GetCalorimeter() == kPHOS)
2cb134fb 6367 {
992b14a7 6368 pl = GetPHOSClusters();
6369 cells = GetPHOSCells();
6370 }
bdb39dbd 6371 else if (GetCalorimeter() == kEMCAL)
2cb134fb 6372 {
992b14a7 6373 pl = GetEMCALClusters();
6374 cells = GetEMCALCells();
6375 }
6376
3c1d9afb 6377 if(!pl || !cells)
6378 {
bdb39dbd 6379 Info("MakeAnalysisFillHistograms","TObjArray with %s clusters is NULL!\n",GetCalorimeterString().Data());
992b14a7 6380 return;
6381 }
6382
bdb39dbd 6383 if(GetCalorimeter() == kPHOS) return; // Not implemented for PHOS yet
992b14a7 6384
2cb134fb 6385 for(Int_t icluster = 0; icluster < pl->GetEntriesFast(); icluster++)
6386 {
992b14a7 6387 AliVCluster * cluster = (AliVCluster*) (pl->At(icluster));
6388
b2e375c7 6389 //-------------------------------------------
6390 // Get cluster parameters, do some rejection
6391 //-------------------------------------------
8edbd100 6392
992b14a7 6393 Float_t en = cluster->E();
6394 Float_t l0 = cluster->GetM02();
6395 Int_t nc = cluster->GetNCells();
2cb134fb 6396 Float_t bd = cluster->GetDistanceToBadChannel() ;
d2655d46 6397
2cb134fb 6398 //If too small or big E or low number of cells, or close to a bad channel skip it
b2e375c7 6399
8edbd100 6400 if( en < GetMinEnergy() || en > GetMaxEnergy() || nc < fMinNCells || bd < fMinBadDist) continue ;
2cb134fb 6401
83351853 6402 //printf("en %2.3f GetMinEnergy() %2.3f, GetMaxEnergy() %2.3f , nc %d fMinNCells %d\n",en, GetMinEnergy(),GetMaxEnergy(),nc ,fMinNCells);
6403
b2e375c7 6404 // Track-cluster matching
6405
6406 Bool_t matched = IsTrackMatched(cluster,GetReader()->GetInputEvent());
6407 if(!fFillTMHisto && matched) continue ;
6408
6409 // Get cluster angles
6410
1a8c88c1 6411 cluster->GetMomentum(fClusterMomentum, GetVertex(0));
6412 Float_t eta = fClusterMomentum.Eta();
6413 Float_t phi = fClusterMomentum.Phi();
9554fc65 6414 if(phi<0) phi=+TMath::TwoPi();
6415
2cb134fb 6416 //printf("en %2.2f, GetMinEnergy() %2.2f, GetMaxEnergy() %2.2f, nc %d, fMinNCells %d, bd %2.2f, fMinBadDist %2.2f\n",
6417 // en,GetMinEnergy(), GetMaxEnergy(), nc, fMinNCells, bd, fMinBadDist);
6418
ff6aa4ce 6419 if(fFillNLMDiffCutHisto)
6420 {
6421 FillNLMDiffCutHistograms(cluster,cells,matched);
58a18c5d 6422 return;
ff6aa4ce 6423 }
6424
b2e375c7 6425 // Get PID, N local maximum, *** split cluster ***
d2655d46 6426
3c1d9afb 6427 Int_t nMax = 0;
bfdcf7fb 6428 Double_t mass = 0., angle = 0.;
4914e781 6429 Int_t absId1 =-1; Int_t absId2 =-1;
6430 Float_t distbad1 =-1; Float_t distbad2 =-1;
6431 Bool_t fidcut1 = 0; Bool_t fidcut2 = 0;
b2e375c7 6432
3c1d9afb 6433 Int_t pidTag = GetCaloPID()->GetIdentifiedParticleTypeFromClusterSplitting(cluster,cells,GetCaloUtils(),
19391b8c 6434 GetVertex(0), nMax, mass, angle,
1a8c88c1 6435 fSubClusterMom1,fSubClusterMom2,
6436 absId1,absId2,
6437 distbad1,distbad2,
6438 fidcut1,fidcut2);
5c46c992 6439 if (nMax <= 0)
6440 {
de454976 6441 if(GetDebug() > 0 )
a6d3b0a8 6442 Info("MakeAnalysisFillHistograms","No local maximum found! It did not pass CaloPID selection criteria \n");
5c46c992 6443
4914e781 6444 continue;
992b14a7 6445 }
6446
ce49dd72 6447 // Set some index for array histograms
6448
6449 Int_t inlm = -1;
6450 if (nMax == 1) inlm = 0;
6451 else if(nMax == 2) inlm = 1;
6452 else if(nMax > 2) inlm = 2;
a6d3b0a8 6453 else Info("MakeAnalysisFillHistograms","Wrong N local maximum -> %d, n cells in cluster %d \n",nMax,nc);
ce49dd72 6454
4914e781 6455 // Skip events where one of the new clusters (lowest energy) is close to an EMCal border or a bad channel
1253480f 6456 if( (fCheckSplitDistToBad) &&
6457 (!fidcut2 || !fidcut1 || distbad1 < fMinBadDist || distbad2 < fMinBadDist))
4914e781 6458 {
6459 if(GetDebug() > 1)
a6d3b0a8 6460 Info("MakeAnalysisFillHistograms","Dist to bad channel cl1 %f, cl2 %f; fid cl1 %d, cl2 %d \n",
4914e781 6461 distbad1,distbad2, fidcut1,fidcut2);
ce49dd72 6462
6463 if(distbad1 < fMinBadDist || distbad2 < fMinBadDist)
6464 {
6465 fhMassBadDistClose[inlm]->Fill(en,mass);
6466 fhM02BadDistClose [inlm]->Fill(en,l0 );
6467 }
6468
6469 if(!fidcut1 || !fidcut2)
6470 {
6471 fhMassOnBorder[inlm]->Fill(en,mass);
6472 fhM02OnBorder [inlm]->Fill(en,l0 );
6473 }
6474
4914e781 6475 continue ;
6476 }
6477
b2e375c7 6478 // Get sub-cluster parameters
6479
1a8c88c1 6480 Float_t e1 = fSubClusterMom1.Energy();
6481 Float_t e2 = fSubClusterMom2.Energy();
cfdf2b91 6482
a1fd1b69 6483 Double_t tof1 = cells->GetCellTime(absId1);
0cea6003 6484 GetCaloUtils()->RecalibrateCellTime(tof1, GetCalorimeter(), absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
a1fd1b69 6485 tof1*=1.e9;
6486
6487 Double_t tof2 = cells->GetCellTime(absId2);
0cea6003 6488 GetCaloUtils()->RecalibrateCellTime(tof2, GetCalorimeter(), absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber());
a1fd1b69 6489 tof2*=1.e9;
6490
6491 Double_t t12diff = tof1-tof2;
6492
fc01318e 6493 Float_t splitFrac = (e1+e2)/en;
cfdf2b91 6494
e671adc2 6495 Float_t asym = -10;
6496 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
29ca9cad 6497
b2e375c7 6498 //
6499
6500 Int_t ebin = -1;
6501 if(en > 8 && en <= 12) ebin = 0;
6502 if(en > 12 && en <= 16) ebin = 1;
6503 if(en > 16 && en <= 20) ebin = 2;
6504 if(en > 20) ebin = 3;
6505
1253480f 6506 // MC data histograms and some related calculations
6507 // mc tag, n overlaps, asym of generated mesons
b2e375c7 6508
0186b6a2 6509 Int_t mcindex = -1;
6510 Int_t mctag = -1;
6511 Float_t eprim = -1;
6512 Float_t asymGen = -2;
6513 Float_t angleGen = 2000;
6514 Int_t noverlaps = 0;
b2e375c7 6515
b2e375c7 6516 if(IsDataMC())
1253480f 6517 {
6518 // MC indexes
b2e375c7 6519
1253480f 6520 GetMCIndex(cluster,mcindex,mctag);
6521
6522 // MC primary kine, generation fractions
b2e375c7 6523
0186b6a2 6524 GetMCPrimaryKine(cluster,mcindex,mctag,matched,eprim,asymGen,angleGen,noverlaps);
1253480f 6525
6526 // For cluster with MC pi0 and more than 1 maxima
b2e375c7 6527
cb99fa55 6528 }
5c46c992 6529
b2e375c7 6530 //
2a77f6f4 6531
1253480f 6532 FillHistograms1(en, e1, e2, nMax, mass, l0, eta, phi, matched, mcindex);
4914e781 6533
6534 //
6535
1253480f 6536 if(fFillNCellHisto)
6537 FillNCellHistograms(nc,en, nMax,matched, mcindex,mass,l0);
d2655d46 6538
b2e375c7 6539 //
bb2d339b 6540
1253480f 6541 if(fFillSSExtraHisto)
cb99fa55 6542 FillSSExtraHistograms(cluster, nMax, matched,mcindex,mass,ebin) ;
d2655d46 6543
b2e375c7 6544 //
1253480f 6545
cb99fa55 6546 if(!matched && ebin >= 0 && fFillEbinHisto)
1253480f 6547 FillEBinHistograms(ebin,nMax,mcindex,splitFrac,mass,asym,l0);
fc01318e 6548
b2e375c7 6549 //
6550
1253480f 6551 if(fFillAngleHisto)
a6d3b0a8 6552 FillAngleHistograms(nMax,matched,mcindex,en,e1,e2,angle,mass,angleGen,l0, asym,pidTag,noverlaps);
1253480f 6553
cb99fa55 6554 if(fFillArmenterosHisto && ebin >= 0)
1a8c88c1 6555 FillArmenterosHistograms(nMax, ebin, mcindex, en, l0, pidTag);
29555e96 6556
6557 if(fFillThetaStarHisto)
1a8c88c1 6558 FillThetaStarHistograms(nMax,matched,mcindex, en, l0, pidTag);
29555e96 6559
cb99fa55 6560
26680f06 6561 //---------------------------------------------------------------------
1253480f 6562 // From here start applying some cuts
26680f06 6563 //---------------------------------------------------------------------
cb99fa55 6564
6565 // If set, check just on MC clusters when SS cut is applied
6566 if( IsDataMC() && mcindex > 0 && mcindex < 7 && GetCaloPID()->IsInM02Range(l0) )
6567 {
6568 // For cluster with MC pi0 and more than 1 maxima
6569
6570 if(fFillMCOverlapHisto)
6571 CheckLocalMaximaMCOrigin(cluster, mcindex,noverlaps,e1,e2,mass);
6572 //l0, l1, l2);
6573
6574 //
6575
6576 if(fFillMCHisto)
6577 FillMCHistograms(en,e1,e2,ebin,mcindex,noverlaps,l0,mass,
6578 nMax,matched,splitFrac, asym, eprim,asymGen);
6579
6580 //
6581
6582 if(fFillMCOverlapHisto)
6583 FillMCOverlapHistograms(en,eprim,nc,mass,l0,asym,splitFrac,inlm,ebin,matched,mcindex,noverlaps);
6584
6585 }
6586
6587 // Fill few histograms, some still without cuts
1253480f 6588 FillHistograms2(en, eprim, e1, e2, nMax, mass, l0, matched, mcindex);
26680f06 6589
1253480f 6590 if(pidTag==AliCaloPID::kPi0)
b2e375c7 6591 {
1253480f 6592 FillIdPi0Histograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex);
17f5b4b6 6593
5cd814a9 6594 if(fFillSSWeightHisto && !matched)
1253480f 6595 FillSSWeightHistograms(cluster, inlm, absId1, absId2);
cc909e6f 6596
6597 if(fFillTMHisto && fFillTMResidualHisto)
6598 FillTrackMatchingHistograms(cluster,nMax,mcindex);
6599
cb99fa55 6600 if(fFillMCOverlapHisto && IsDataMC() && mcindex > 0 && mcindex < 7 && !matched)
cc909e6f 6601 {
6602 if (noverlaps == 0) fhMCEEpriOverlap0IdPi0 [inlm][mcindex]->Fill(en, eprim);
6603 else if(noverlaps == 1) fhMCEEpriOverlap1IdPi0 [inlm][mcindex]->Fill(en, eprim);
6604 else if(noverlaps > 1) fhMCEEpriOverlapNIdPi0 [inlm][mcindex]->Fill(en, eprim);
6605 }
167f2534 6606 }
1253480f 6607 else if(fFillIdEtaHisto && pidTag==AliCaloPID::kEta)
5c46c992 6608 {
1253480f 6609 FillIdEtaHistograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex);
243c2909 6610 }
1253480f 6611 else if(fFillIdConvHisto && pidTag==AliCaloPID::kPhoton)
5c46c992 6612 {
1253480f 6613 FillIdConvHistograms(en, nMax, asym, mass, l0, matched, mcindex);
243c2909 6614 }
6615
992b14a7 6616 }//loop
6617
a6d3b0a8 6618 if(GetDebug() > 1) Info("MakeAnalysisFillHistograms","END \n");
e23a0471 6619
992b14a7 6620}
6621
6622//______________________________________________________________________
6623void AliAnaInsideClusterInvariantMass::Print(const Option_t * opt) const
6624{
6625 //Print some relevant parameters set for the analysis
6626 if(! opt)
6627 return;
6628
6629 printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
745913ae 6630 AliAnaCaloTrackCorrBaseClass::Print("");
bdb39dbd 6631 printf("Calorimeter = %s\n", GetCalorimeterString().Data()) ;
19391b8c 6632 if(GetCaloUtils()) printf("Loc. Max. E > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutE());
6633 if(GetCaloUtils()) printf("Loc. Max. E Diff > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutEDiff());
cfc19369 6634 printf("Min. N Cells =%d \n", fMinNCells) ;
6635 printf("Min. Dist. to Bad =%1.1f \n", fMinBadDist) ;
19391b8c 6636 if(fFillSSWeightHisto) printf(" N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN);
6637
992b14a7 6638 printf(" \n") ;
6639
6640}
6641
19391b8c 6642//___________________________________________________________________________________________________________________
6643void AliAnaInsideClusterInvariantMass::RecalculateClusterShowerShapeParametersWithCellCut(const AliEMCALGeometry * geom,
6644 AliVCaloCells* cells,
6645 AliVCluster * cluster,
6646 Float_t & l0, Float_t & l1,
6647 Float_t & disp, Float_t & dEta, Float_t & dPhi,
6648 Float_t & sEta, Float_t & sPhi, Float_t & sEtaPhi,
6649 Float_t eCellMin)
6650{
6651 // Calculates new center of gravity in the local EMCAL-module coordinates
6652 // and tranfers into global ALICE coordinates
6653 // Calculates Dispersion and main axis
6654
6655 if(!cluster)
6656 {
6657 AliInfo("Cluster pointer null!");
6658 return;
6659 }
6660
6661 Double_t eCell = 0.;
6662 Float_t fraction = 1.;
6663 Float_t recalFactor = 1.;
6664
6665 Int_t iSupMod = -1;
6666 Int_t iTower = -1;
6667 Int_t iIphi = -1;
6668 Int_t iIeta = -1;
6669 Int_t iphi = -1;
6670 Int_t ieta = -1;
6671 Double_t etai = -1.;
6672 Double_t phii = -1.;
6673
6674 Int_t nstat = 0 ;
6675 Float_t wtot = 0.;
6676 Double_t w = 0.;
6677 Double_t etaMean = 0.;
6678 Double_t phiMean = 0.;
3ae72bd8 6679
09a5b22d 6680 Bool_t shared = GetCaloUtils()-> IsClusterSharedByTwoSuperModules(geom,cluster);
3ae72bd8 6681
09a5b22d 6682 Float_t energy = GetCaloUtils()->RecalibrateClusterEnergy(cluster, cells);
6683
6684 Float_t simuTotWeight = 0;
6685 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
19391b8c 6686 {
09a5b22d 6687 simuTotWeight = GetCaloUtils()->RecalibrateClusterEnergyWeightCell(cluster, cells,energy);
6688 simuTotWeight/= energy;
6689 }
19391b8c 6690
6691 //Loop on cells, get weighted parameters
6692 for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
6693 {
6694 //Get from the absid the supermodule, tower and eta/phi numbers
6695 geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
6696 geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
6697
6698 //Get the cell energy, if recalibration is on, apply factors
6699 fraction = cluster->GetCellAmplitudeFraction(iDigit);
6700 if(fraction < 1e-4) fraction = 1.; // in case unfolding is off
6701
3ae72bd8 6702 if(GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn())
6703 {
6704 recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
6705 }
19391b8c 6706
6707 eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor;
6708
3ae72bd8 6709 // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2
6710 // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0
6711 if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols;
6712
9ae170de 6713 if(energy > 0 && eCell > eCellMin)
19391b8c 6714 {
09a5b22d 6715 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
6716 eCell*=GetCaloUtils()->GetMCECellClusFracCorrection(eCell,energy)/simuTotWeight;
6717
19391b8c 6718 w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy);
8edbd100 6719
6720 //correct weight, ONLY in simulation
09a5b22d 6721 w *= (fWSimu[0] - fWSimu[1] * w );
aa12888f 6722
19391b8c 6723 etai=(Double_t)ieta;
6724 phii=(Double_t)iphi;
6725
6726 if(w > 0.0)
6727 {
6728 wtot += w ;
6729 nstat++;
6730 //Shower shape
6731 sEta += w * etai * etai ;
6732 etaMean += w * etai ;
6733 sPhi += w * phii * phii ;
6734 phiMean += w * phii ;
6735 sEtaPhi += w * etai * phii ;
6736 }
6737 }
9ae170de 6738 else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy));
19391b8c 6739
6740 }//cell loop
6741
6742 //Normalize to the weight
6743 if (wtot > 0)
6744 {
6745 etaMean /= wtot ;
6746 phiMean /= wtot ;
6747 }
6748 else
6749 AliError(Form("Wrong weight %f\n", wtot));
6750
6751 //Calculate dispersion
6752 for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
6753 {
6754 //Get from the absid the supermodule, tower and eta/phi numbers
6755 geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
6756 geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
6757
6758 //Get the cell energy, if recalibration is on, apply factors
6759 fraction = cluster->GetCellAmplitudeFraction(iDigit);
6760 if(fraction < 1e-4) fraction = 1.; // in case unfolding is off
6761 if (GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn())
6762 {
6763 recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
6764 }
3ae72bd8 6765
19391b8c 6766 eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor;
6767
3ae72bd8 6768 // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2
6769 // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0
6770 if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols;
6771
9ae170de 6772 if(energy > 0 && eCell > eCellMin)
19391b8c 6773 {
09a5b22d 6774 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
6775 eCell*=GetCaloUtils()->GetMCECellClusFracCorrection(eCell,energy)/simuTotWeight;
6776
19391b8c 6777 w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy);
6778
8edbd100 6779 //correct weight, ONLY in simulation
09a5b22d 6780 w *= (fWSimu[0] - fWSimu[1] * w );
8edbd100 6781
19391b8c 6782 etai=(Double_t)ieta;
6783 phii=(Double_t)iphi;
6784 if(w > 0.0)
6785 {
6786 disp += w *((etai-etaMean)*(etai-etaMean)+(phii-phiMean)*(phii-phiMean));
6787 dEta += w * (etai-etaMean)*(etai-etaMean) ;
6788 dPhi += w * (phii-phiMean)*(phii-phiMean) ;
6789 }
6790 }
9ae170de 6791 else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy));
19391b8c 6792 }// cell loop
6793
6794 //Normalize to the weigth and set shower shape parameters
6795 if (wtot > 0 && nstat > 1)
6796 {
6797 disp /= wtot ;
6798 dEta /= wtot ;
6799 dPhi /= wtot ;
6800 sEta /= wtot ;
6801 sPhi /= wtot ;
6802 sEtaPhi /= wtot ;
6803
6804 sEta -= etaMean * etaMean ;
6805 sPhi -= phiMean * phiMean ;
6806 sEtaPhi -= etaMean * phiMean ;
6807
6808 l0 = (0.5 * (sEta + sPhi) + TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi ));
6809 l1 = (0.5 * (sEta + sPhi) - TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi ));
6810 }
6811 else
6812 {
6813 l0 = 0. ;
6814 l1 = 0. ;
6815 dEta = 0. ; dPhi = 0. ; disp = 0. ;
6816 sEta = 0. ; sPhi = 0. ; sEtaPhi = 0. ;
6817 }
6818
6819}
6820
992b14a7 6821