]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx
declare only once different TLorentzVectors and TVector3s
[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(),
68 fPrimaryMom(), fMCDaughMom1(), fMCDaughMom2(),
69 fProdVertex(),
70// Histograms
0186b6a2 71 fhMassAsyCutNLocMax1(0), fhMassAsyCutNLocMax2(0), fhMassAsyCutNLocMaxN(0),
72 fhM02AsyCutNLocMax1(0), fhM02AsyCutNLocMax2(0), fhM02AsyCutNLocMaxN(0),
73 fhMassM02CutNLocMax1(0), fhMassM02CutNLocMax2(0), fhMassM02CutNLocMaxN(0),
74 fhAsymM02CutNLocMax1(0), fhAsymM02CutNLocMax2(0), fhAsymM02CutNLocMaxN(0),
2c36e041 75 fhMassEnCutNLocMax1(0), fhMassEnCutNLocMax2(0), fhMassEnCutNLocMaxN(0),
76 fhM02EnCutNLocMax1(0), fhM02EnCutNLocMax2(0), fhM02EnCutNLocMaxN(0),
77 fhAsymEnCutNLocMax1(0), fhAsymEnCutNLocMax2(0), fhAsymEnCutNLocMaxN(0),
a6d3b0a8 78 fhSplitEFracEnCutNLocMax1(0), fhSplitEFracEnCutNLocMax2(0), fhSplitEFracEnCutNLocMaxN(0),
0186b6a2 79 fhMassSplitECutNLocMax1(0), fhMassSplitECutNLocMax2(0), fhMassSplitECutNLocMaxN(0),
80 fhMCGenFracAfterCutsNLocMax1MCPi0(0), fhMCGenFracAfterCutsNLocMax2MCPi0(0), fhMCGenFracAfterCutsNLocMaxNMCPi0(0),
81 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMax2MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0(0),
82 fhNCellMassEHighNLocMax1MCPi0(0), fhNCellM02EHighNLocMax1MCPi0(0),
83 fhNCellMassELowNLocMax1MCPi0(0), fhNCellM02ELowNLocMax1MCPi0(0),
84 fhNCellMassEHighNLocMax2MCPi0(0), fhNCellM02EHighNLocMax2MCPi0(0),
85 fhNCellMassELowNLocMax2MCPi0(0), fhNCellM02ELowNLocMax2MCPi0(0),
86 fhNCellMassEHighNLocMaxNMCPi0(0), fhNCellM02EHighNLocMaxNMCPi0(0),
87 fhNCellMassELowNLocMaxNMCPi0(0), fhNCellM02ELowNLocMaxNMCPi0(0),
88 fhAnglePairPrimPi0RecoNLocMax1(0), fhAnglePairPrimPi0RecoNLocMax2(0), fhAnglePairPrimPi0RecoNLocMaxN(0),
89 fhAnglePairPrimPi0vsRecoNLocMax1(0), fhAnglePairPrimPi0vsRecoNLocMax2(0), fhAnglePairPrimPi0vsRecoNLocMaxN(0),
4e5a94c5 90 fhAnglePairPrimPi0OverM02NLocMax1(0), fhAnglePairPrimPi0OverM02NLocMax2(0), fhAnglePairPrimPi0OverM02NLocMaxN(0),
0186b6a2 91 fhCentralityPi0NLocMax1(0), fhCentralityEtaNLocMax1(0),
92 fhCentralityPi0NLocMax2(0), fhCentralityEtaNLocMax2(0),
93 fhCentralityPi0NLocMaxN(0), fhCentralityEtaNLocMaxN(0),
94 fhEventPlanePi0NLocMax1(0), fhEventPlaneEtaNLocMax1(0),
95 fhEventPlanePi0NLocMax2(0), fhEventPlaneEtaNLocMax2(0),
96 fhEventPlanePi0NLocMaxN(0), fhEventPlaneEtaNLocMaxN(0),
97 fhClusterEtaPhiNLocMax1(0), fhClusterEtaPhiNLocMax2(0), fhClusterEtaPhiNLocMaxN(0),
98 fhPi0EtaPhiNLocMax1(0), fhPi0EtaPhiNLocMax2(0), fhPi0EtaPhiNLocMaxN(0),
99 fhEtaEtaPhiNLocMax1(0), fhEtaEtaPhiNLocMax2(0), fhEtaEtaPhiNLocMaxN(0),
100 fhPi0EPairDiffTimeNLM1(0), fhPi0EPairDiffTimeNLM2(0), fhPi0EPairDiffTimeNLMN(0),
101 fhEtaEPairDiffTimeNLM1(0), fhEtaEPairDiffTimeNLM2(0), fhEtaEPairDiffTimeNLMN(0),
102 fhMCPi0HighNLMPair(0), fhMCPi0LowNLMPair(0),
103 fhMCPi0AnyNLMPair(0), fhMCPi0NoneNLMPair(0),
104 fhMCPi0HighNLMPairNoMCMatch(0), fhMCPi0LowNLMPairNoMCMatch(0),
105 fhMCPi0AnyNLMPairNoMCMatch(0), fhMCPi0NoneNLMPairNoMCMatch(0),
106 fhMCPi0HighNLMPairOverlap(0), fhMCPi0LowNLMPairOverlap(0),
107 fhMCPi0AnyNLMPairOverlap(0), fhMCPi0NoneNLMPairOverlap(0),
108 fhMCPi0HighNLMPairNoMCMatchOverlap(0), fhMCPi0LowNLMPairNoMCMatchOverlap(0),
109 fhMCPi0AnyNLMPairNoMCMatchOverlap(0), fhMCPi0NoneNLMPairNoMCMatchOverlap(0),
110 fhMCPi0DecayPhotonHitHighLM(0), fhMCPi0DecayPhotonAdjHighLM(0),
111 fhMCPi0DecayPhotonHitOtherLM(0), fhMCPi0DecayPhotonAdjOtherLM(0),
112 fhMCPi0DecayPhotonAdjacent(0), fhMCPi0DecayPhotonHitNoLM(0),
113 fhMCPi0DecayPhotonHitHighLMOverlap(0), fhMCPi0DecayPhotonAdjHighLMOverlap(0),
114 fhMCPi0DecayPhotonHitOtherLMOverlap(0), fhMCPi0DecayPhotonAdjOtherLMOverlap(0),
115 fhMCPi0DecayPhotonAdjacentOverlap(0), fhMCPi0DecayPhotonHitNoLMOverlap(0),
116 fhMCEOverlapType(0), fhMCEOverlapTypeMatch(0)
992b14a7 117{
118 //default ctor
119
120 // Init array of histograms
cb99fa55 121 for(Int_t i = 0; i < 7; i++)
5c46c992 122 {
123 for(Int_t j = 0; j < 2; j++)
124 {
5c46c992 125 fhMassNLocMax1[i][j] = 0;
126 fhMassNLocMax2[i][j] = 0;
127 fhMassNLocMaxN[i][j] = 0;
c7e9a4e9 128 fhMassSplitENLocMax1[i][j] = 0;
129 fhMassSplitENLocMax2[i][j] = 0;
130 fhMassSplitENLocMaxN[i][j] = 0;
5c46c992 131 fhNLocMax[i][j] = 0;
5c46c992 132 fhNLocMaxM02Cut[i][j] = 0;
cc909e6f 133 fhSplitClusterENLocMax [i][j] = 0;
134 fhSplitClusterEPi0NLocMax[i][j] = 0;
5c46c992 135 fhM02NLocMax1[i][j] = 0;
136 fhM02NLocMax2[i][j] = 0;
137 fhM02NLocMaxN[i][j] = 0;
138 fhNCellNLocMax1[i][j] = 0;
139 fhNCellNLocMax2[i][j] = 0;
140 fhNCellNLocMaxN[i][j] = 0;
c8710850 141 fhM02Pi0NLocMax1[i][j] = 0;
142 fhM02EtaNLocMax1[i][j] = 0;
143 fhM02ConNLocMax1[i][j] = 0;
144 fhM02Pi0NLocMax2[i][j] = 0;
145 fhM02EtaNLocMax2[i][j] = 0;
146 fhM02ConNLocMax2[i][j] = 0;
147 fhM02Pi0NLocMaxN[i][j] = 0;
148 fhM02EtaNLocMaxN[i][j] = 0;
149 fhM02ConNLocMaxN[i][j] = 0;
150
151 fhMassPi0NLocMax1[i][j] = 0;
152 fhMassEtaNLocMax1[i][j] = 0;
153 fhMassConNLocMax1[i][j] = 0;
154 fhMassPi0NLocMax2[i][j] = 0;
155 fhMassEtaNLocMax2[i][j] = 0;
156 fhMassConNLocMax2[i][j] = 0;
157 fhMassPi0NLocMaxN[i][j] = 0;
158 fhMassEtaNLocMaxN[i][j] = 0;
159 fhMassConNLocMaxN[i][j] = 0;
cb99fa55 160
1253480f 161 fhNCellPi0NLocMax1[i][j] = 0;
162 fhNCellEtaNLocMax1[i][j] = 0;
163 fhNCellPi0NLocMax2[i][j] = 0;
164 fhNCellEtaNLocMax2[i][j] = 0;
165 fhNCellPi0NLocMaxN[i][j] = 0;
166 fhNCellEtaNLocMaxN[i][j] = 0;
c8710850 167
168 fhAsyPi0NLocMax1[i][j] = 0;
169 fhAsyEtaNLocMax1[i][j] = 0;
170 fhAsyConNLocMax1[i][j] = 0;
171 fhAsyPi0NLocMax2[i][j] = 0;
172 fhAsyEtaNLocMax2[i][j] = 0;
173 fhAsyConNLocMax2[i][j] = 0;
174 fhAsyPi0NLocMaxN[i][j] = 0;
175 fhAsyEtaNLocMaxN[i][j] = 0;
176 fhAsyConNLocMaxN[i][j] = 0;
e671adc2 177
0137016b 178 fhMassM02NLocMax1[i][j]= 0;
179 fhMassM02NLocMax2[i][j]= 0;
c7e9a4e9 180 fhMassM02NLocMaxN[i][j]= 0;
181
182 fhMassSplitEPi0NLocMax1[i][j] = 0;
183 fhMassSplitEPi0NLocMax2[i][j] = 0;
184 fhMassSplitEPi0NLocMaxN[i][j] = 0;
185
186 fhMassSplitEAfterCutsNLocMax1[i][j] = 0;
187 fhMassSplitEAfterCutsNLocMax2[i][j] = 0;
188 fhMassSplitEAfterCutsNLocMaxN[i][j] = 0;
189
190
d2655d46 191 fhMassDispEtaNLocMax1[i][j]= 0;
192 fhMassDispEtaNLocMax2[i][j]= 0;
193 fhMassDispEtaNLocMaxN[i][j]= 0;
194 fhMassDispPhiNLocMax1[i][j]= 0;
195 fhMassDispPhiNLocMax2[i][j]= 0;
196 fhMassDispPhiNLocMaxN[i][j]= 0;
197 fhMassDispAsyNLocMax1[i][j]= 0;
198 fhMassDispAsyNLocMax2[i][j]= 0;
199 fhMassDispAsyNLocMaxN[i][j]= 0;
8e81c2cf 200
fc01318e 201 fhSplitEFractionNLocMax1[i][j]=0;
202 fhSplitEFractionNLocMax2[i][j]=0;
203 fhSplitEFractionNLocMaxN[i][j]=0;
204
29555e96 205 fhAnglePairNLocMax1 [i][j] = 0;
206 fhAnglePairNLocMax2 [i][j] = 0;
207 fhAnglePairNLocMaxN [i][j] = 0;
208
209 fhAnglePairAfterCutsNLocMax1[i][j] = 0;
210 fhAnglePairAfterCutsNLocMax2[i][j] = 0;
211 fhAnglePairAfterCutsNLocMaxN[i][j] = 0;
212
213 fhAnglePairPi0NLocMax1 [i][j] = 0;
214 fhAnglePairPi0NLocMax2 [i][j] = 0;
215 fhAnglePairPi0NLocMaxN [i][j] = 0;
216
217 fhAnglePairMassNLocMax1 [i][j] = 0;
218 fhAnglePairMassNLocMax2 [i][j] = 0;
219 fhAnglePairMassNLocMaxN [i][j] = 0;
d261ae67 220
221 fhAnglePairM02NLocMax1 [i][j] = 0;
222 fhAnglePairM02NLocMax2 [i][j] = 0;
223 fhAnglePairM02NLocMaxN [i][j] = 0;
29555e96 224
4e5a94c5 225 fhAnglePairOverM02NLocMax1 [i][j] = 0;
226 fhAnglePairOverM02NLocMax2 [i][j] = 0;
227 fhAnglePairOverM02NLocMaxN [i][j] = 0;
228
229 fhAnglePairOverM02NLocMax1Overlap0[i][j] = 0;
230 fhAnglePairOverM02NLocMax2Overlap0[i][j] = 0;
231 fhAnglePairOverM02NLocMaxNOverlap0[i][j] = 0;
232
29555e96 233 fhCosThStarNLocMax1 [i][j] = 0;
234 fhCosThStarNLocMax2 [i][j] = 0;
235 fhCosThStarNLocMaxN [i][j] = 0;
236
237 fhCosThStarAfterCutsNLocMax1[i][j] = 0;
238 fhCosThStarAfterCutsNLocMax2[i][j] = 0;
239 fhCosThStarAfterCutsNLocMaxN[i][j] = 0;
240
241 fhCosThStarPi0NLocMax1 [i][j] = 0;
242 fhCosThStarPi0NLocMax2 [i][j] = 0;
243 fhCosThStarPi0NLocMaxN [i][j] = 0;
0186b6a2 244
8e81c2cf 245 fhMCGenFracNLocMax1[i][j]= 0;
246 fhMCGenFracNLocMax2[i][j]= 0;
247 fhMCGenFracNLocMaxN[i][j]= 0;
4914e781 248
249 fhMCGenFracNLocMax1NoOverlap[i][j]= 0;
250 fhMCGenFracNLocMax2NoOverlap[i][j]= 0;
251 fhMCGenFracNLocMaxNNoOverlap[i][j]= 0;
5094c724 252
253 fhMCGenSplitEFracNLocMax1[i][j]= 0;
254 fhMCGenSplitEFracNLocMax2[i][j]= 0;
bb2d339b 255 fhMCGenSplitEFracNLocMaxN[i][j]= 0;
4914e781 256
257 fhMCGenSplitEFracNLocMax1NoOverlap[i][j]= 0;
258 fhMCGenSplitEFracNLocMax2NoOverlap[i][j]= 0;
259 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]= 0;
bb2d339b 260
261 fhMCGenEFracvsSplitEFracNLocMax1[i][j]= 0;
262 fhMCGenEFracvsSplitEFracNLocMax2[i][j]= 0;
263 fhMCGenEFracvsSplitEFracNLocMaxN[i][j]= 0;
264
265 fhMCGenEvsSplitENLocMax1[i][j]= 0;
266 fhMCGenEvsSplitENLocMax2[i][j]= 0;
e671adc2 267 fhMCGenEvsSplitENLocMaxN[i][j]= 0;
268
269 fhAsymNLocMax1 [i][j] = 0;
270 fhAsymNLocMax2 [i][j] = 0;
271 fhAsymNLocMaxN [i][j] = 0;
74858845 272
273 fhMassAfterCutsNLocMax1[i][j] = 0;
274 fhMassAfterCutsNLocMax2[i][j] = 0;
275 fhMassAfterCutsNLocMaxN[i][j] = 0;
cb99fa55 276
74858845 277
278 fhSplitEFractionAfterCutsNLocMax1[i][j] = 0 ;
279 fhSplitEFractionAfterCutsNLocMax2[i][j] = 0 ;
280 fhSplitEFractionAfterCutsNLocMaxN[i][j] = 0 ;
8e81c2cf 281 }
19391b8c 282
8e81c2cf 283 for(Int_t jj = 0; jj < 4; jj++)
284 {
53f2c382 285 fhM02MCGenFracNLocMax1Ebin[i][jj] = 0;
286 fhM02MCGenFracNLocMax2Ebin[i][jj] = 0;
287 fhM02MCGenFracNLocMaxNEbin[i][jj] = 0;
8e81c2cf 288
289 fhMassMCGenFracNLocMax1Ebin[i][jj]= 0;
290 fhMassMCGenFracNLocMax2Ebin[i][jj]= 0;
291 fhMassMCGenFracNLocMaxNEbin[i][jj]= 0;
53f2c382 292
fc01318e 293 fhMCGenFracNLocMaxEbin[i][jj] = 0;
53f2c382 294 fhMCGenFracNLocMaxEbinMatched[i][jj]= 0;
fc01318e 295
296 fhMassSplitEFractionNLocMax1Ebin[i][jj] = 0;
297 fhMassSplitEFractionNLocMax2Ebin[i][jj] = 0;
298 fhMassSplitEFractionNLocMaxNEbin[i][jj] = 0;
5c46c992 299 }
300
b2e375c7 301 fhTrackMatchedDEtaNLocMax1[i] = 0;
c8710850 302 fhTrackMatchedDPhiNLocMax1[i] = 0;
303 fhTrackMatchedDEtaNLocMax2[i] = 0;
304 fhTrackMatchedDPhiNLocMax2[i] = 0;
305 fhTrackMatchedDEtaNLocMaxN[i] = 0;
306 fhTrackMatchedDPhiNLocMaxN[i] = 0;
b2e375c7 307
308 fhTrackMatchedDEtaNLocMax1Pos[i] = 0;
309 fhTrackMatchedDPhiNLocMax1Pos[i] = 0;
310 fhTrackMatchedDEtaNLocMax2Pos[i] = 0;
311 fhTrackMatchedDPhiNLocMax2Pos[i] = 0;
312 fhTrackMatchedDEtaNLocMaxNPos[i] = 0;
313 fhTrackMatchedDPhiNLocMaxNPos[i] = 0;
314
315 fhTrackMatchedDEtaNLocMax1Neg[i] = 0;
316 fhTrackMatchedDPhiNLocMax1Neg[i] = 0;
317 fhTrackMatchedDEtaNLocMax2Neg[i] = 0;
318 fhTrackMatchedDPhiNLocMax2Neg[i] = 0;
319 fhTrackMatchedDEtaNLocMaxNNeg[i] = 0;
320 fhTrackMatchedDPhiNLocMaxNNeg[i] = 0;
243c2909 321
b2e375c7 322 for(Int_t nlm = 0; nlm < 3; nlm++)
323 {
324 fhMCEM02Overlap0 [nlm][i] = 0;
325 fhMCEM02Overlap1 [nlm][i] = 0;
326 fhMCEM02OverlapN [nlm][i] = 0;
327 fhMCEM02Overlap0Match[nlm][i] = 0;
328 fhMCEM02Overlap1Match[nlm][i] = 0;
329 fhMCEM02OverlapNMatch[nlm][i] = 0;
330
331 fhMCEMassOverlap0 [nlm][i] = 0;
332 fhMCEMassOverlap1 [nlm][i] = 0;
333 fhMCEMassOverlapN [nlm][i] = 0;
334 fhMCEMassOverlap0Match[nlm][i] = 0;
335 fhMCEMassOverlap1Match[nlm][i] = 0;
336 fhMCEMassOverlapNMatch[nlm][i] = 0;
83351853 337
4914e781 338 fhMCEAsymOverlap0 [nlm][i] = 0;
339 fhMCEAsymOverlap1 [nlm][i] = 0;
340 fhMCEAsymOverlapN [nlm][i] = 0;
341 fhMCEAsymOverlap0Match[nlm][i] = 0;
342 fhMCEAsymOverlap1Match[nlm][i] = 0;
343 fhMCEAsymOverlapNMatch[nlm][i] = 0;
344
74e3eb22 345 fhMCENCellOverlap0 [nlm][i] = 0;
346 fhMCENCellOverlap1 [nlm][i] = 0;
347 fhMCENCellOverlapN [nlm][i] = 0;
348 fhMCENCellOverlap0Match[nlm][i] = 0;
349 fhMCENCellOverlap1Match[nlm][i] = 0;
350 fhMCENCellOverlapNMatch[nlm][i] = 0;
351
4914e781 352 fhMCEEpriOverlap0 [nlm][i] = 0;
353 fhMCEEpriOverlap1 [nlm][i] = 0;
354 fhMCEEpriOverlapN [nlm][i] = 0;
355 fhMCEEpriOverlap0Match[nlm][i] = 0;
356 fhMCEEpriOverlap1Match[nlm][i] = 0;
357 fhMCEEpriOverlapNMatch[nlm][i] = 0;
cc909e6f 358
359 fhMCEEpriOverlap0IdPi0[nlm][i] = 0;
360 fhMCEEpriOverlap1IdPi0[nlm][i] = 0;
361 fhMCEEpriOverlapNIdPi0[nlm][i] = 0;
4914e781 362
83351853 363 fhMCESplitEFracOverlap0 [nlm][i] = 0;
364 fhMCESplitEFracOverlap1 [nlm][i] = 0;
365 fhMCESplitEFracOverlapN [nlm][i] = 0;
366 fhMCESplitEFracOverlap0Match[nlm][i] = 0;
367 fhMCESplitEFracOverlap1Match[nlm][i] = 0;
368 fhMCESplitEFracOverlapNMatch[nlm][i] = 0;
b2e375c7 369
370 fhMCENOverlaps [nlm][i] = 0;
371 fhMCENOverlapsMatch [nlm][i] = 0;
b583134f 372
b2e375c7 373 if(i > 3) continue ;
374
375 fhMCPi0MassM02Overlap0 [nlm][i] = 0;
376 fhMCPi0MassM02Overlap1 [nlm][i] = 0;
377 fhMCPi0MassM02OverlapN [nlm][i] = 0;
378 fhMCPi0MassM02Overlap0Match[nlm][i] = 0;
379 fhMCPi0MassM02Overlap1Match[nlm][i] = 0;
380 fhMCPi0MassM02OverlapNMatch[nlm][i] = 0;
381 }
992b14a7 382 }
383
5c46c992 384 for(Int_t i = 0; i < 2; i++)
385 {
e671adc2 386 fhSplitEFractionvsAsyNLocMax1[i] = 0;
387 fhSplitEFractionvsAsyNLocMax2[i] = 0;
388 fhSplitEFractionvsAsyNLocMaxN[i] = 0;
5c46c992 389 }
390
7b686344 391 for(Int_t i = 0; i < 4; i++)
392 {
393 fhMassM02NLocMax1Ebin[i] = 0 ;
394 fhMassM02NLocMax2Ebin[i] = 0 ;
395 fhMassM02NLocMaxNEbin[i] = 0 ;
b8eb40fc 396
397 fhMassAsyNLocMax1Ebin[i] = 0 ;
398 fhMassAsyNLocMax2Ebin[i] = 0 ;
399 fhMassAsyNLocMaxNEbin[i] = 0 ;
400
401 fhAsyMCGenRecoNLocMax1EbinPi0[i] = 0 ;
402 fhAsyMCGenRecoNLocMax2EbinPi0[i] = 0 ;
403 fhAsyMCGenRecoNLocMaxNEbinPi0[i] = 0 ;
d2655d46 404
405 fhMassDispEtaNLocMax1Ebin[i] = 0 ;
406 fhMassDispEtaNLocMax2Ebin[i] = 0 ;
407 fhMassDispEtaNLocMaxNEbin[i] = 0 ;
408
409 fhMassDispPhiNLocMax1Ebin[i] = 0 ;
410 fhMassDispPhiNLocMax2Ebin[i] = 0 ;
411 fhMassDispPhiNLocMaxNEbin[i] = 0 ;
412
413 fhMassDispAsyNLocMax1Ebin[i] = 0 ;
414 fhMassDispAsyNLocMax2Ebin[i] = 0 ;
415 fhMassDispAsyNLocMaxNEbin[i] = 0 ;
8e81c2cf 416
417 fhMCAsymM02NLocMax1MCPi0Ebin[i] = 0 ;
418 fhMCAsymM02NLocMax2MCPi0Ebin[i] = 0 ;
419 fhMCAsymM02NLocMaxNMCPi0Ebin[i] = 0 ;
7b686344 420 }
421
dbe09c26 422 for(Int_t nlm = 0; nlm < 3; nlm++)
423 {
b583134f 424
425 fhMCPi0DecayPhotonHitHighLMDiffELM1 [nlm] = 0 ;
426 fhMCPi0DecayPhotonAdjHighLMDiffELM1 [nlm] = 0 ;
427 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = 0 ;
428 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = 0 ;
429
430 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1 [nlm] = 0 ;
431 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1 [nlm] = 0 ;
432 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = 0 ;
433 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = 0 ;
434
435 fhMCPi0DecayPhotonHitHighLMDiffELM2 [nlm] = 0 ;
436 fhMCPi0DecayPhotonAdjHighLMDiffELM2 [nlm] = 0 ;
437 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = 0 ;
438 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = 0 ;
439
440 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2 [nlm] = 0 ;
441 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2 [nlm] = 0 ;
442 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = 0 ;
29555e96 443 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = 0 ;
444
445 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1 [nlm] = 0 ;
446 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1 [nlm] = 0 ;
447 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = 0 ;
448 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = 0 ;
b583134f 449
29555e96 450 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ;
451 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ;
452 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ;
453 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ;
454
455 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2 [nlm] = 0 ;
456 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2 [nlm] = 0 ;
457 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = 0 ;
458 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = 0 ;
459
460 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ;
461 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ;
462 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ;
463 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ;
464
465 fhMCPi0DecayPhotonHitHighLMMass [nlm] = 0 ;
b583134f 466 fhMCPi0DecayPhotonAdjHighLMMass [nlm] = 0 ;
467 fhMCPi0DecayPhotonHitOtherLMMass[nlm] = 0 ;
468 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = 0 ;
469 fhMCPi0DecayPhotonAdjacentMass [nlm] = 0 ;
470 fhMCPi0DecayPhotonHitNoLMMass [nlm] = 0 ;
471
472 fhMCPi0DecayPhotonHitHighLMOverlapMass [nlm] = 0 ;
473 fhMCPi0DecayPhotonAdjHighLMOverlapMass [nlm] = 0 ;
474 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = 0 ;
475 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = 0 ;
476 fhMCPi0DecayPhotonAdjacentOverlapMass [nlm] = 0 ;
477 fhMCPi0DecayPhotonHitNoLMOverlapMass [nlm] = 0 ;
478
dbe09c26 479 fhPi0CellE [nlm] = 0 ;
480 fhPi0CellEFrac [nlm] = 0 ;
481 fhPi0CellLogEFrac[nlm] = 0 ;
482
19391b8c 483 fhPi0CellEMaxEMax2Frac [nlm] = 0 ;
484 fhPi0CellEMaxClusterFrac [nlm] = 0 ;
485 fhPi0CellEMax2ClusterFrac[nlm] = 0 ;
486
487 fhPi0CellEMaxFrac [nlm] = 0 ;
488 fhPi0CellEMax2Frac[nlm] = 0 ;
489
5cd814a9 490 for(Int_t i = 0; i < 20; i++)
19391b8c 491 {
492 fhM02WeightPi0 [nlm][i] = 0;
493 fhM02ECellCutPi0[nlm][i] = 0;
494 }
ce49dd72 495
496 fhMassBadDistClose[nlm] = 0;
497 fhM02BadDistClose [nlm] = 0;
498 fhMassOnBorder [nlm] = 0;
499 fhM02OnBorder [nlm] = 0;
b583134f 500
501 fhAsyMCGenRecoDiffMCPi0 [nlm] = 0;
502 fhAsyMCGenRecoDiffMCPi0Conv[nlm] = 0;
503
dbe09c26 504 }
505
ed10b649 506 for(Int_t i = 0; i < 7; i++)
507 {
508 for(Int_t j = 0; j < 4; j++)
509 {
510
511 fhArmNLocMax1[i][j] = 0;
512 fhArmNLocMax2[i][j] = 0;
513 fhArmNLocMaxN[i][j] = 0;
514
515 fhArmPi0NLocMax1[i][j] = 0;
516 fhArmPi0NLocMax2[i][j] = 0;
517 fhArmPi0NLocMaxN[i][j] = 0;
518
519 fhArmAfterCutsNLocMax1[i][j] = 0;
520 fhArmAfterCutsNLocMax2[i][j] = 0;
521 fhArmAfterCutsNLocMaxN[i][j] = 0;
522
523 }
524 }
525
ff6aa4ce 526 for(Int_t i = 0; i < 5; i++)
527 {
528 for(Int_t j = 0; j < 5; j++)
529 {
58a18c5d 530 fhNLocMaxDiffCut [i][j][0] = 0;
531 fhNLocMaxDiffCut [i][j][1] = 0;
532 fhNLocMaxDiffCutPi0[i][j][0] = 0;
533 fhNLocMaxDiffCutPi0[i][j][1] = 0;
ff6aa4ce 534 for(Int_t k = 0; k < 3; k++)
535 {
58a18c5d 536 fhM02NLocMaxDiffCut [i][j][k][0] = 0;
537 fhM02NLocMaxDiffCut [i][j][k][1] = 0;
538 fhM02NLocMaxDiffCutPi0 [i][j][k][0] = 0;
539 fhM02NLocMaxDiffCutPi0 [i][j][k][1] = 0;
540 fhMassNLocMaxDiffCut [i][j][k][0] = 0;
541 fhMassNLocMaxDiffCut [i][j][k][1] = 0;
542 fhMassNLocMaxDiffCutPi0[i][j][k][0] = 0;
543 fhMassNLocMaxDiffCutPi0[i][j][k][1] = 0;
ff6aa4ce 544 }
545 }
546 }
547
992b14a7 548 InitParameters();
19391b8c 549
992b14a7 550}
551
b94e038e 552//___________________________________________________________________________________________________________________
553void AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(AliVCluster* cluster, Int_t mcindex, Int_t noverlaps,
554 Float_t e1, Float_t e2, Float_t mass)
b583134f 555 //Float_t m02,
4914e781 556 //TLorentzVector l1, TLorentzVector l2)
b2e375c7 557{
558 // Check origin NLM tower of the cluster, when MC gives merged pi0
559
b2e375c7 560 if(mcindex != kmcPi0 && mcindex != kmcPi0Conv) return;
36769d30 561
b2e375c7 562 const UInt_t nc = cluster->GetNCells();
563 Int_t list[nc];
564 Float_t elist[nc];
565 Int_t nMax = GetCaloUtils()->GetNumberOfLocalMaxima(cluster, GetEMCALCells(),list, elist);
36769d30 566
4914e781 567
568 //// PRINTS /////
569
570 //if(mcindex==kmcPi0) printf("** Normal Pi0 **\n");
571 //if(mcindex==kmcPi0Conv) printf("** Converted Pi0 **\n");
572
573// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
b2e375c7 574// {
4914e781 575// 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",
576// nMax, noverlaps,mass,m02,
577// l1.E(),l1.Eta(),l1.Phi()*TMath::RadToDeg(),
578// l2.E(),l2.Eta(),l2.Phi()*TMath::RadToDeg(), (l1+l2).M());
36769d30 579//
4914e781 580// // Study the mothers of cluster
581// printf("Cluster MC labels %d \n", cluster->GetNLabels());
582// for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ )
36769d30 583// {
4914e781 584// Int_t mclabel = cluster->GetLabels()[ilab];
585//
586// Bool_t mOK = 0;
587// Int_t mpdg = -999999;
588// Int_t mstatus = -1;
589// Int_t grandLabel = -1;
1a8c88c1 590// fPrimaryMom = GetMCAnalysisUtils()->GetMother(mclabel,GetReader(),mpdg,mstatus,mOK,grandLabel);
4914e781 591//
592// 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 593// ilab, mclabel, mpdg, mstatus,fPrimaryMom.E(), fPrimaryMom.Eta(),fPrimaryMom.Phi()*TMath::RadToDeg(),mOK,grandLabel);
4914e781 594//
595// if( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 )
36769d30 596// {
4914e781 597// while( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 )
598// {
599// Int_t newLabel = -1;
600// TLorentzVector grandmother = GetMCAnalysisUtils()->GetMother(grandLabel,GetReader(),mpdg,mstatus,mOK,newLabel);
601// 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",
602// ilab, grandLabel, mpdg, mstatus,grandmother.E(), grandmother.Eta(), grandmother.Phi()*TMath::RadToDeg(),mOK,newLabel);
603// grandLabel = newLabel;
604//
605// }
36769d30 606// }
607// }
b2e375c7 608//
4914e781 609// printf("Cells in cluster %d\n",cluster->GetNCells() );
610// for(Int_t icell = 0; icell < cluster->GetNCells(); icell++)
611// {
612// Int_t absIdCell = cluster->GetCellAbsId(icell);
613// Int_t mcLabel = GetEMCALCells()->GetCellMCLabel(absIdCell);
614// GetReader()->RemapMCLabelForAODs(mcLabel);
615// Int_t ietac=-1; Int_t iphic = 0; Int_t rcuc = 0;
0cea6003 616// Int_t smc = GetModuleNumberCellIndexes(absIdCell,GetCalorimeter(), ietac, iphic, rcuc);
4914e781 617//
618// 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);
619// }
bfa0a1a7 620// }
4914e781 621 //// PRINTS /////
622
bfa0a1a7 623
624 //If only one maxima, consider all the towers in the cluster
625 if(nMax==1)
626 {
36769d30 627 for (UInt_t icell = 0; icell < nc; icell++ )
628 {
629 list [icell] = cluster->GetCellAbsId(icell);
630 elist[icell] = GetEMCALCells()->GetCellAmplitude(list[icell]);
631 }
b2e375c7 632 }
633
83351853 634 Int_t nmaxima = nMax;
635 if(nMax==1) nmaxima = nc ;
636
b2e375c7 637 //Find highest energy Local Maxima Towers
86b521c9 638 Int_t imax = 999;
639 Int_t imax2 = 999;
b2e375c7 640 Float_t emax = -1;
641 Float_t emax2 = -1;
83351853 642 for(Int_t i = 0; i < nmaxima; i++)
b2e375c7 643 {
644 //printf("i %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]);
645 if(elist[i] > emax)
646 {
647 imax = i;
648 emax = elist[i];
649 }
650 }
86b521c9 651
b2e375c7 652 //Find second highest
83351853 653 for(Int_t i = 0; i < nmaxima; i++)
b2e375c7 654 {
655 if(i==imax) continue;
bfa0a1a7 656
83351853 657 //printf("j %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]);
36769d30 658
b2e375c7 659 if(elist[i] > emax2)
660 {
661 imax2 = i;
662 emax2 = elist[i];
663 }
664 }
665
4914e781 666// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
667// printf("Local maxima: a) index %d, absId %d; b) index %d, absId %d\n",imax, list[imax], imax2, list[imax2]);
b2e375c7 668
36769d30 669 //---------------------------------------------------------
83351853 670 //---------------------------------------------------------
671 // Compare ancestors of all local maxima at cell MC level
672 //---------------------------------------------------------
36769d30 673 //---------------------------------------------------------
83351853 674
b2e375c7 675 // Check that the highest mc label and the max cluster label are the same
87c4fd53 676 Int_t mcLabelMax = -1 ;
86b521c9 677 if(imax >=0 && imax < 999)
87c4fd53 678 {
679 mcLabelMax = GetEMCALCells()->GetCellMCLabel(list[imax]);
680 GetReader()->RemapMCLabelForAODs(mcLabelMax);
681 }
682
683 Int_t mcLabelMax2 = -1 ;
86b521c9 684 if(imax2 >=0 && imax2 < 999)
87c4fd53 685 {
686 mcLabelMax2 = GetEMCALCells()->GetCellMCLabel(list[imax2]);
687 GetReader()->RemapMCLabelForAODs(mcLabelMax2);
688 }
b2e375c7 689
690 Int_t mcLabelclusterMax = cluster->GetLabels()[0];
691 Bool_t matchHighLMAndHighMC = kFALSE;
692
36769d30 693 //printf("MC label: LM1 %d, LM2 %d, cluster %d\n",mcLabelMax,mcLabelMax2,mcLabelclusterMax);
694
87c4fd53 695 if(mcLabelclusterMax == mcLabelMax && mcLabelclusterMax >= 0)
b2e375c7 696 {
697 matchHighLMAndHighMC = kTRUE;
36769d30 698 //printf("\t *** MATCH cluster and LM maximum ***\n");
b2e375c7 699 }
700 else
701 {
36769d30 702 //printf("\t *** NO MATCH cluster and LM maximum, check second ***\n");
87c4fd53 703 if(mcLabelclusterMax == mcLabelMax2 && mcLabelclusterMax >= 0)
b2e375c7 704 {
36769d30 705 //printf("\t \t *** MATCH cluster and 2nd LM maximum ***\n");
b2e375c7 706 matchHighLMAndHighMC = kTRUE;
707 }
708 else
709 {
36769d30 710 //printf("\t \t *** NO MATCH***\n");
b2e375c7 711 matchHighLMAndHighMC = kFALSE;
712 }
713 }
714
715 // Compare the common ancestors of the 2 highest energy local maxima
716 Int_t ancPDG = 0, ancStatus = -1;
b2e375c7 717 Int_t ancLabel = 0;
718 Bool_t high = kFALSE;
719 Bool_t low = kFALSE;
720
721// // print maxima origin
722// for(Int_t i = 0; i < nMax; i++)
723// {
724// Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]);
725// GetReader()->RemapMCLabelForAODs(mcLabel1);
726//
727// Bool_t ok =kFALSE,gok = kFALSE;
728// Int_t pdg = -22222, status = -1;
729// Int_t gpdg = -22222, gstatus = -1;
730// Int_t ggpdg = -22222, ggstatus = -1;
731// Int_t gLabel = -1, ggLabel = -1;
732// TLorentzVector primary =GetMCAnalysisUtils()->GetMother (mcLabel1,GetReader(), pdg, status, ok);
733// TLorentzVector gprimary =GetMCAnalysisUtils()->GetGrandMother(mcLabel1,GetReader(), gpdg, gstatus,gok, gLabel,ggLabel);
734// TLorentzVector ggprimary =GetMCAnalysisUtils()->GetMother(ggLabel ,GetReader(),ggpdg,ggstatus,gok);
735// 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",
736// i,mcLabel1,pdg,primary.E(), gLabel,gpdg,gprimary.E(), ggLabel,ggpdg,ggprimary.E());
737// }
83351853 738
bfa0a1a7 739 for(Int_t i = 0; i < nmaxima-1; i++)
b2e375c7 740 {
741 Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]);
742 GetReader()->RemapMCLabelForAODs(mcLabel1);
743
bfa0a1a7 744 for(Int_t j = i+1; j < nmaxima; j++)
b2e375c7 745 {
746 Int_t mcLabel2 = GetEMCALCells()->GetCellMCLabel(list[j]);
747 GetReader()->RemapMCLabelForAODs(mcLabel2);
748
749 if(mcLabel1 < 0 || mcLabel2 < 0 )
750 {
751 //printf("\t i %d label %d - j %d label %d; skip!\n",i,mcLabel1,j,mcLabel2);
752 continue;
753 }
83351853 754
b2e375c7 755 ancLabel = GetMCAnalysisUtils()->CheckCommonAncestor(mcLabel1,mcLabel2,
1a8c88c1 756 GetReader(),ancPDG,ancStatus,fPrimaryMom,fProdVertex);
b2e375c7 757 if(ancPDG==111)
758 {
759 if((i==imax && j==imax2) || (j==imax && i==imax2))
760 high = kTRUE;
761 else
762 low = kTRUE;
763 }
764 else if(ancPDG==22 || TMath::Abs(ancPDG)==11)
765 {
766 // If both bits are set, it could be that one of the maxima had a conversion
767 // reset the bit in this case
768 if(high && low)
769 {
770 //printf("\t Reset low bit\n");
771 low = kFALSE;
772 }
773 }
774
775 Bool_t ok =kFALSE;
776 Int_t pdg = -22222, status = -1;
1a8c88c1 777 fPrimaryMom = GetMCAnalysisUtils()->GetMother(ancLabel,GetReader(), pdg, status, ok);
b2e375c7 778 //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);
779
780 }
781 }
782
783 Float_t en = cluster->E();
784
4914e781 785// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
786// printf("Cell MC match: nMax %d; Match MC? %d; high %d; low %d\n",nMax,matchHighLMAndHighMC,high,low);
b2e375c7 787
36769d30 788 if(!noverlaps)
b2e375c7 789 {
36769d30 790 if(matchHighLMAndHighMC)
791 {
792 if (high && !low) fhMCPi0HighNLMPair->Fill(en,nMax);
793 else if(low && !high) fhMCPi0LowNLMPair ->Fill(en,nMax);
794 else if(low && high) fhMCPi0AnyNLMPair ->Fill(en,nMax);
795 else fhMCPi0NoneNLMPair->Fill(en,nMax);
796 }
797 else
798 {
799 if (high && !low) fhMCPi0HighNLMPairNoMCMatch->Fill(en,nMax);
800 else if(low && !high) fhMCPi0LowNLMPairNoMCMatch ->Fill(en,nMax);
801 else if(low && high) fhMCPi0AnyNLMPairNoMCMatch ->Fill(en,nMax);
802 else fhMCPi0NoneNLMPairNoMCMatch->Fill(en,nMax);
803 }
b2e375c7 804 }
805 else
806 {
36769d30 807 if(matchHighLMAndHighMC)
808 {
809 if (high && !low) fhMCPi0HighNLMPairOverlap->Fill(en,nMax);
810 else if(low && !high) fhMCPi0LowNLMPairOverlap->Fill(en,nMax);
811 else if(low && high) fhMCPi0AnyNLMPairOverlap->Fill(en,nMax);
812 else fhMCPi0NoneNLMPairOverlap->Fill(en,nMax);
813 }
814 else
815 {
816 if (high && !low) fhMCPi0HighNLMPairNoMCMatchOverlap->Fill(en,nMax);
817 else if(low && !high) fhMCPi0LowNLMPairNoMCMatchOverlap->Fill(en,nMax);
818 else if(low && high) fhMCPi0AnyNLMPairNoMCMatchOverlap->Fill(en,nMax);
819 else fhMCPi0NoneNLMPairNoMCMatchOverlap->Fill(en,nMax);
820 }
b2e375c7 821 }
1253480f 822
36769d30 823 //----------------------------------------------------------------------
83351853 824 //----------------------------------------------------------------------
825 // Compare MC decay photon projection to cell location and Local Maxima
826 //----------------------------------------------------------------------
36769d30 827 //----------------------------------------------------------------------
83351853 828
829 // Get the mother pi0
830
831 Bool_t ok = kFALSE;
832 Int_t pdg = -22222, status = -1;
833 Int_t gLabel = -1;
834
835 Int_t label = cluster->GetLabel();
1a8c88c1 836
83351853 837 while( pdg!=111 && label>=0 )
838 {
1a8c88c1 839 fPrimaryMom = GetMCAnalysisUtils()->GetGrandMother(label,GetReader(),pdg,status,ok, label,gLabel);
83351853 840 }
841
842 if(pdg!=111 || label < 0)
843 {
a6d3b0a8 844 Info("CheckLocalMaximaMCOrigin","Mother Pi0 not found!\n");
83351853 845 return;
846 }
847
848 Int_t nDaugthers = GetMCAnalysisUtils()->GetNDaughters(label,GetReader(),ok);
849
850 if(nDaugthers != 2)
851 {
a6d3b0a8 852 Info("CheckLocalMaximaMCOrigin","N daughters %d !=2!\n",nDaugthers);
83351853 853 return;
854 }
855
856 // Get daughter photon kinematics
857 Int_t pdg0 = -22222, status0 = -1; Int_t label0 = -1;
1a8c88c1 858 fMCDaughMom1 = GetMCAnalysisUtils()->GetDaughter(0,label,GetReader(),pdg0,status0,ok,label0);
83351853 859 Int_t pdg1 = -22222, status1 = -1; Int_t label1 = -1;
1a8c88c1 860 fMCDaughMom2 = GetMCAnalysisUtils()->GetDaughter(1,label,GetReader(),pdg1,status1,ok,label1);
83351853 861
862 if(pdg1!=22 || pdg0 != 22)
863 {
a6d3b0a8 864 Info("CheckLocalMaximaMCOrigin","Wrong daughters PDG: photon0 %d - photon1 %d\n",pdg0,pdg1);
83351853 865 return;
866 }
867
868 // In what cells did the photons hit
1a8c88c1 869 Float_t eta0 = fMCDaughMom1.Eta();
870 Float_t eta1 = fMCDaughMom2.Eta();
83351853 871
1a8c88c1 872 Float_t phi0 = fMCDaughMom1.Phi();
873 Float_t phi1 = fMCDaughMom2.Phi();
83351853 874
4914e781 875// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
876// {
877// 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 878// label , fPrimaryMom.E() , fPrimaryMom.Eta(),fPrimaryMom.Phi()*TMath::RadToDeg(), (fMCDaughMom1+fMCDaughMom2).M(),
879// label0, fMCDaughMom1.E(), eta0, phi0*TMath::RadToDeg(),
880// label1, fMCDaughMom2.E(), eta1, phi1*TMath::RadToDeg());
4914e781 881//
882// TLorentzVector momclus;
883// cluster->GetMomentum(momclus,GetVertex(0));
884// 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());
885// }
36769d30 886
83351853 887 if(phi0 < 0 ) phi0+=TMath::TwoPi();
888 if(phi1 < 0 ) phi1+=TMath::TwoPi();
889
890 Int_t absId0=-1, absId1=-1;
891 GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta0, phi0, absId0);
892 GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta1, phi1, absId1);
893
7e2cebc3 894 if(absId0 < 0 || absId1 < 0)
83351853 895 {
4914e781 896 //printf("AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(() - Photon hit AbsId: photon0 %d - photon1 %d\n",absId0,absId1);
83351853 897 return;
898 }
899
36769d30 900 //-----------------------------------------------
83351853 901 // Check that the 2 photons hit the Local Maxima
36769d30 902 //-----------------------------------------------
83351853 903
4914e781 904
905// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
906// {
907// printf("Photons AbsId (%d,%d); Local Maxima AbsId(%d,%d)\n",absId0,absId1,list[imax],list[imax2]);
908// printf("Photon1 (eta,phi)=(%f,%f); Photon2 (eta,phi)=(%f,%f);\n",eta0,phi0*TMath::RadToDeg(),eta1,phi1*TMath::RadToDeg());
909//
910// Int_t ieta0=-1; Int_t iphi0 = 0; Int_t rcu0 = 0;
0cea6003 911// Int_t sm0 = GetModuleNumberCellIndexes(absId0,GetCalorimeter(), ieta0, iphi0, rcu0);
4914e781 912// Int_t ieta1=-1; Int_t iphi1 = 0; Int_t rcu1 = 0;
0cea6003 913// Int_t sm1 = GetModuleNumberCellIndexes(absId1,GetCalorimeter(), ieta1, iphi1, rcu1);
4914e781 914//
915// printf("Photon1 (id,sm,eta,phi)=(%d,%d,%d,%d), Photon2 (id,sm,eta,phi)=(%d,%d,%d,%d)\n",
916// absId0,sm0,ieta0,iphi0,absId1,sm1,ieta1,iphi1);
917//
918// Int_t ietam0=-1; Int_t iphim0 = 0; Int_t rcum0 = 0; Int_t smm0 = -1 ;
0cea6003 919// if(imax >= 0) smm0 = GetModuleNumberCellIndexes(list[imax] ,GetCalorimeter(), ietam0, iphim0, rcum0);
4914e781 920// Int_t ietam1=-1; Int_t iphim1 = 0; Int_t rcum1 = 0; Int_t smm1 = -1 ;
0cea6003 921// if(imax2 >= 0) smm1 = GetModuleNumberCellIndexes(list[imax2],GetCalorimeter(), ietam1, iphim1, rcum1);
4914e781 922//
923// printf("Max (id, sm,eta,phi)=(%d,%d,%d,%d), Max2 (id, sm,eta,phi)=(%d,%d,%d,%d)\n",
924// list[imax],smm0,ietam0,iphim0,list[imax2],smm1,ietam1,iphim1);
925// }
926
b583134f 927 Int_t inlm = nMax-1;
928 if(inlm > 2) inlm = 2;
83351853 929
36769d30 930 Bool_t match0 = kFALSE;
931 Bool_t match1 = kFALSE;
932 Int_t imatch0 = -1;
933 Int_t imatch1 = -1;
934 if(imax >= 0 && imax2 >=0 && absId0 > 0 && absId1 > 0 )
87c4fd53 935 {
36769d30 936 if (absId0 == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
937 else if(absId0 == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
938
939 if (absId1 == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
940 else if(absId1 == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
87c4fd53 941 }
83351853 942
36769d30 943 //printf("primary imatch0 %d, imatch1 %d\n",imatch0,imatch1);
944
945 // If one or the 2 not matched, check with the other MC labels
946 // only in case there was a conversion
83351853 947
36769d30 948 Int_t absId0second = -1;
949 Int_t absId1second = -1;
950 Int_t secLabel0 = -1;
951 Int_t secLabel1 = -1;
952 Int_t mcLabel0 = -1;
953 Int_t mcLabel1 = -1;
954 Bool_t secOK = 0;
955 Int_t secpdg = -999999;
956 Int_t secstatus = -1;
957 Int_t secgrandLabel = -1;
958
959 if(match0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
960 if(match1) { secLabel1 = label1 ; mcLabel1 = label1 ; }
961
962 if((!match0 || !match1) && mcindex == kmcPi0Conv)
83351853 963 {
36769d30 964 for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ )
965 {
966 Int_t mclabel = cluster->GetLabels()[ilab];
967
968 //printf("Check label %d - %d\n",ilab,mclabel);
969
970 if(mclabel == label0 || mclabel == label1)
971 {
972 //printf("continue: secLabel %d, label0 %d, label1 %d\n",mclabel,label0,label1);
973 if(mclabel == label0 && secLabel0 < 0) { secLabel0 = label0 ; mcLabel0 = label0 ; }
974 if(mclabel == label1 && secLabel1 < 0) { secLabel1 = label1 ; mcLabel1 = label1 ; }
975 continue ;
976 }
977
978 //printf("Before while: secLabel0 %d, secLabel1 %d\n",secLabel0,secLabel1);
979
980 // match mc label and parent photon
981 Int_t tmplabel = mclabel;
982 while((secLabel0 < 0 || secLabel1 < 0) && tmplabel > 0 )
983 {
1a8c88c1 984 fPrimaryMom = GetMCAnalysisUtils()->GetMother(tmplabel,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
36769d30 985
986 //printf("\t \t while secLabel %d, mom %d, granmom %d\n",mclabel,tmplabel,secgrandLabel);
987
988 if((secgrandLabel == label0) || (secgrandLabel == label1 ))
989 {
990 //printf("mcMatch! grand label %d, secLabel %d\n",secgrandLabel, mclabel);
991 if(!match0 && mcLabel1 != secgrandLabel) { secLabel0 = mclabel; mcLabel0 = secgrandLabel; }
992 if(!match1 && mcLabel0 != secgrandLabel) { secLabel1 = mclabel; mcLabel1 = secgrandLabel; }
993 }
994
995 //printf("\t GrandMother %d, secLabel0 %d, secLabel1 %d \n",secgrandLabel, secLabel0,secLabel1);
83351853 996
36769d30 997 tmplabel = secgrandLabel;
998 }
999 }
83351853 1000
36769d30 1001 // Get the position of the found secondaries mother
1002 if(!match0 && secLabel0 > 0)
87c4fd53 1003 {
1a8c88c1 1004 fPrimaryMom = GetMCAnalysisUtils()->GetMother(secLabel0,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
36769d30 1005
1a8c88c1 1006 //Float_t eta = fPrimaryMom.Eta();
1007 //Float_t phi = fPrimaryMom.Phi();
4914e781 1008 //if(phi < 0 ) phi+=TMath::TwoPi();
1009 //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId0second);
36769d30 1010
1a8c88c1 1011 //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 1012
1013 if(absId0second == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; }
1014 if(absId0second == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; }
87c4fd53 1015 }
36769d30 1016
1017 if(!match1 && secLabel1 > 0)
87c4fd53 1018 {
1a8c88c1 1019 fPrimaryMom = GetMCAnalysisUtils()->GetMother(secLabel1,GetReader(),secpdg,secstatus,secOK,secgrandLabel);
36769d30 1020
1a8c88c1 1021 //Float_t eta = fPrimaryMom.Eta();
1022 //Float_t phi = fPrimaryMom.Phi();
4914e781 1023 //if(phi < 0 ) phi+=TMath::TwoPi();
1024 //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId1second);
36769d30 1025
1a8c88c1 1026 //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 1027
1028 if(absId1second == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; }
1029 if(absId1second == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; }
87c4fd53 1030 }
36769d30 1031
1032 //printf("secondary label mc0 %d, mc1 %d, imatch0 %d, imatch1 %d\n",secLabel0,secLabel1,imatch0,imatch1);
1033
1034 }
1035
1036 //printf("imatch0 %d, imatch1 %d\n",imatch0,imatch1);
1037 if( match0 && match1 )
1038 {
4914e781 1039// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1040// printf("a) Both Photons hit local maxima \n");
36769d30 1041
b583134f 1042 if(!noverlaps)
1043 {
1044 fhMCPi0DecayPhotonHitHighLM ->Fill(en,nMax);
1045 fhMCPi0DecayPhotonHitHighLMMass[inlm]->Fill(en,mass);
1046 if(match0 && imatch0 == imax)
1047 {
1a8c88c1 1048 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1049 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
1050 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1051 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1052 }
1053 else
1054 {
1a8c88c1 1055 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1056 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
1057 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1058 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1059 }
1060 }
1061 else
1062 {
1063 fhMCPi0DecayPhotonHitHighLMOverlap ->Fill(en,nMax);
1064 fhMCPi0DecayPhotonHitHighLMOverlapMass[inlm]->Fill(en,mass);
1065 if(match0 && imatch0 == imax )
1066 {
1a8c88c1 1067 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1068 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
1069 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1070 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1071 }
1072 else
1073 {
1a8c88c1 1074 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1075 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
1076 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1077 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1078 }
1079
1080 }
36769d30 1081
1082 return ;
1083 }
1084
1085 //printf("Any match? photon0 %d, photon1 %d\n",match0,match1);
1086 //if(!match0 && !match1) printf("WARNING, LM not matched to any photon decay!\n");
1087
1088 //---------------------------------------------
1089 // Check the adjacent cells to the local maxima
1090 //---------------------------------------------
1091
36769d30 1092 if(!match0)
1093 {
0cea6003 1094 if(imatch1!=imax && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,list[imax])) { match0 = kTRUE; imatch0 = imax ; }
36769d30 1095 //printf("imax - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam0,ieta0-ietam0, iphi0,iphim0,iphi0-iphim0);
0cea6003 1096 if(imatch1!=imax2 && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,list[imax2]) ) { match0 = kTRUE; imatch0 = imax2 ; }
36769d30 1097 //printf("imax2 - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam1,ieta0-ietam1, iphi0,iphim1,iphi0-iphim1);
1098 }
1099
1100 if(!match1)
1101 {
0cea6003 1102 if(imatch0!=imax && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId1,list[imax]) ) { match1 = kTRUE; imatch1 = imax ; }
36769d30 1103 //printf("imax - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam0,ieta1-ietam0, iphi1,iphim0,iphi1-iphim0);
1104
0cea6003 1105 if(imatch0!=imax2 && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId1,list[imax2])) { match1 = kTRUE; imatch1 = imax2 ; }
36769d30 1106 //printf("imax2 - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam1,ieta1-ietam1, iphi1,iphim1,iphi1-iphim1);
1107 }
1108
1109 //printf("Local Maxima: adjacent0 %d,adjacent1 %d \n",match0,match1);
1110
1111 if(match0 && match1)
1112 {
4914e781 1113// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1114// printf("b) Both Photons hit local maxima or cell adjacent or 2 cells adjacent \n");
83351853 1115
b583134f 1116 if(!noverlaps)
1117 {
1118 fhMCPi0DecayPhotonAdjHighLM ->Fill(en,nMax);
1119 fhMCPi0DecayPhotonAdjHighLMMass[inlm]->Fill(en,mass);
1120
1121 if(match0 && imatch0 == imax)
1122 {
1a8c88c1 1123 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1124 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
1125 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1126 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1127 }
1128 else
1129 {
1a8c88c1 1130 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1131 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
1132 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1133 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1134 }
1135 }
1136 else
1137 {
1138 fhMCPi0DecayPhotonAdjHighLMOverlap ->Fill(en,nMax);
1139 fhMCPi0DecayPhotonAdjHighLMOverlapMass[inlm]->Fill(en,mass);
1140 if(match0 && imatch0 == imax)
1141 {
1a8c88c1 1142 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1143 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
1144 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1145 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1146 }
1147 else
1148 {
1a8c88c1 1149 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1150 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
1151 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1152 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1153 }
1154 }
36769d30 1155
1156 return;
1157 }
36769d30 1158
1159 // Decay photon cells are adjacent?
1160
0cea6003 1161 if( (match0 || match1) && GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,absId1) )
36769d30 1162 {
4914e781 1163// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1164// printf("c) Both Photons hit a local maxima and in adjacent cells \n");
b583134f 1165 if(!noverlaps)
1166 {
1167 fhMCPi0DecayPhotonAdjacent ->Fill(en,nMax);
1168 fhMCPi0DecayPhotonAdjacentMass[inlm]->Fill(en,mass);
1169 }
1170 else
1171 {
1172 fhMCPi0DecayPhotonAdjacentOverlap ->Fill(en,nMax);
1173 fhMCPi0DecayPhotonAdjacentOverlapMass[inlm]->Fill(en,mass);
1174 }
83351853 1175
36769d30 1176 return;
83351853 1177 }
1178
36769d30 1179 //--------------------
1180 // Other Local maxima
1181 //--------------------
1182
83351853 1183 Bool_t matchMCHitOtherLM = kFALSE;
36769d30 1184 if(!match1)
1185 {
1186 for(Int_t i = 0; i < nmaxima; i++)
1187 {
1188 if(imax!=i && imax2!=i && absId1 == list[i]) { match1 = kTRUE; matchMCHitOtherLM = kTRUE; }
1189 }
1190 }
1191
1192 if(!match0)
1193 {
1194 for(Int_t i = 0; i < nmaxima; i++)
1195 {
1196 if(imax!=i && imax2!=i && absId0 == list[i]) { match0 = kTRUE; matchMCHitOtherLM = kTRUE; }
1197 }
1198 }
1199
1200 if(matchMCHitOtherLM)
1201 {
4914e781 1202// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1203// printf("d) One Photon hits a local maxima, the other another not high \n");
36769d30 1204
b583134f 1205 if(!noverlaps)
1206 {
1207 fhMCPi0DecayPhotonHitOtherLM ->Fill(en,nMax);
1208 fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass);
1209 if(match0 && imatch0 == imax)
1210 {
1a8c88c1 1211 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1212 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1213 }
1214 else
1215 {
1a8c88c1 1216 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1217 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1218 }
1219 }
1220 else
1221 {
1222 fhMCPi0DecayPhotonHitOtherLMOverlap ->Fill(en,nMax);
1223 fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass);
1224 if(match0 && imatch0 == imax)
1225 {
1a8c88c1 1226 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1227 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1228 }
1229 else
1230 {
1a8c88c1 1231 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1232 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1233 }
1234 }
36769d30 1235
1236 return ;
1237 }
1238
1239 // Adjacent to other maxima
1240
1241 Bool_t adjacentOther1 = kFALSE;
1242 if(match0)
83351853 1243 {
36769d30 1244 for(Int_t i = 0; i < nmaxima; i++)
83351853 1245 {
36769d30 1246 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
0cea6003 1247 GetModuleNumberCellIndexes(list[i] ,GetCalorimeter(), ieta, iphi, rcu);
83351853 1248
36769d30 1249 //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
1250
0cea6003 1251 if(GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId1,list[i]) ) adjacentOther1 = kTRUE;
36769d30 1252
1253 //printf("Other Maxima: adjacentOther1 %d\n",adjacentOther1);
83351853 1254 }
1255 }
1256
36769d30 1257 Bool_t adjacentOther0 = kFALSE;
1258 if(match1)
83351853 1259 {
36769d30 1260 for(Int_t i = 0; i < nmaxima; i++)
83351853 1261 {
36769d30 1262 Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0;
0cea6003 1263 GetModuleNumberCellIndexes(list[i] ,GetCalorimeter(), ieta, iphi, rcu);
83351853 1264
36769d30 1265 //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi);
1266
0cea6003 1267 if(GetCaloUtils()->AreNeighbours(GetCalorimeter(),absId0,list[i]) ) adjacentOther0 = kTRUE;
36769d30 1268
1269 //printf("Other Maxima: adjacentOther0 %d\n",adjacentOther0);
83351853 1270 }
1271 }
1272
36769d30 1273 if((match0 && adjacentOther1) || (match1 && adjacentOther0))
1274 {
4914e781 1275
1276// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1277// printf("e) One Photon hits a local maxima, the other another not high, adjacent \n");
36769d30 1278
b583134f 1279 if(!noverlaps)
1280 {
1281 fhMCPi0DecayPhotonAdjOtherLM ->Fill(en,nMax);
1282 fhMCPi0DecayPhotonAdjOtherLMMass[inlm]->Fill(en,mass);
1283 if(match0 && imatch0 == imax)
1284 {
1a8c88c1 1285 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1286 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1287 }
1288 else
1289 {
1a8c88c1 1290 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1291 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1292 }
1293 }
1294 else
1295 {
1296 fhMCPi0DecayPhotonAdjOtherLMOverlap ->Fill(en,nMax);
1297 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[inlm]->Fill(en,mass);
1298 if(match0 && imatch0 == imax)
1299 {
1a8c88c1 1300 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom1.E())/fMCDaughMom1.E());
1301 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom2.E())/fMCDaughMom2.E());
b583134f 1302 }
1303 else
1304 {
1a8c88c1 1305 if(fMCDaughMom2.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-fMCDaughMom2.E())/fMCDaughMom2.E());
1306 if(fMCDaughMom1.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-fMCDaughMom1.E())/fMCDaughMom1.E());
b583134f 1307 }
1308 }
36769d30 1309
1310 return;
1311 }
1312
4914e781 1313// if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0)
1314// printf("f) No hit found \n");
b583134f 1315 if(!noverlaps)
1316 {
1317 fhMCPi0DecayPhotonHitNoLM ->Fill(en,nMax);
1318 fhMCPi0DecayPhotonHitNoLMMass[inlm]->Fill(en,mass);
1319 }
1320 else
1321 {
1322 fhMCPi0DecayPhotonHitNoLMOverlap ->Fill(en,nMax);
1323 fhMCPi0DecayPhotonHitNoLMOverlapMass[inlm]->Fill(en,mass);
1324 }
83351853 1325
b2e375c7 1326}
1327
b94e038e 1328//___________________________________________________________________________________________________________
1329void AliAnaInsideClusterInvariantMass::FillAngleHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex,
1330 Float_t en, Float_t e1, Float_t e2,
1331 Float_t angle, Float_t mass,
1332 Float_t anglePrim, Float_t m02,
1333 Float_t asym, Int_t pid, Int_t noverlaps)
b2e375c7 1334{
1335 // Fill histograms related to opening angle
29555e96 1336
1337 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1338 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1339 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1340 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
a6d3b0a8 1341
1342 Bool_t eCutOK= kFALSE;
1343 Int_t inlm = nMax-1;
1344 if(inlm > 2 ) inlm = 2;
1345 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1346 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1347 else if(ensubcut < 0.1) eCutOK = kTRUE;
1348
b2e375c7 1349 if (nMax==1)
1350 {
0186b6a2 1351 fhAnglePairNLocMax1[0][matched]->Fill(en,angle);
29555e96 1352
a6d3b0a8 1353 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1354 fhAnglePairAfterCutsNLocMax1[0][matched]->Fill(en,angle);
1355 if(pid==AliCaloPID::kPi0)
1356 fhAnglePairPi0NLocMax1[0][matched]->Fill(en,angle);
1357
4e5a94c5 1358 if(m02 > 0)
1359 {
1360 fhAnglePairOverM02NLocMax1[0][matched]->Fill(en,angle/m02);
1361 if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[0][matched]->Fill(en,angle/m02);
1362 }
1363
d261ae67 1364 if( en > 15 )
1365 {
1366 fhAnglePairMassNLocMax1[0][matched]->Fill(mass,angle);
1367 fhAnglePairM02NLocMax1 [0][matched]->Fill(m02 ,angle);
1368 }
b2e375c7 1369 }
1370 else if(nMax==2)
1371 {
0186b6a2 1372 fhAnglePairNLocMax2[0][matched]->Fill(en,angle);
29555e96 1373
a6d3b0a8 1374 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1375 fhAnglePairAfterCutsNLocMax2[0][matched]->Fill(en,angle);
1376 if(pid==AliCaloPID::kPi0)
1377 fhAnglePairPi0NLocMax2[0][matched]->Fill(en,angle);
1378
4e5a94c5 1379 if(m02 > 0)
1380 {
1381 fhAnglePairOverM02NLocMax2[0][matched]->Fill(en,angle/m02);
1382 if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[0][matched]->Fill(angle/m02,en);
1383 }
1384
d261ae67 1385 if( en > fHistoECut )
1386 {
1387 fhAnglePairMassNLocMax2[0][matched]->Fill(mass,angle);
1388 fhAnglePairM02NLocMax2 [0][matched]->Fill(m02,angle);
1389 }
b2e375c7 1390 }
1391 else if(nMax >2)
1392 {
0186b6a2 1393 fhAnglePairNLocMaxN[0][matched]->Fill(en,angle);
29555e96 1394
a6d3b0a8 1395 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1396 fhAnglePairAfterCutsNLocMaxN[0][matched]->Fill(en,angle);
1397 if(pid==AliCaloPID::kPi0)
1398 fhAnglePairPi0NLocMaxN[0][matched]->Fill(en,angle);
1399
4e5a94c5 1400 if(m02 > 0)
1401 {
1402 fhAnglePairOverM02NLocMaxN[0][matched]->Fill(en,angle/m02);
1403 if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[0][matched]->Fill(angle/m02,en);
1404 }
1405
d261ae67 1406 if( en > fHistoECut )
1407 {
1408 fhAnglePairMassNLocMaxN[0][matched]->Fill(mass,angle);
1409 fhAnglePairM02NLocMaxN [0][matched]->Fill(m02,angle);
1410 }
0186b6a2 1411 }
1412
1413 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
1414 {
1415 if (nMax==1)
1416 {
1417 fhAnglePairNLocMax1[mcIndex][matched]->Fill(en,angle);
d261ae67 1418 if( en > 15 )
1419 {
1420 fhAnglePairMassNLocMax1[mcIndex][matched]->Fill(mass,angle);
1421 fhAnglePairM02NLocMax1 [mcIndex][matched]->Fill(m02,angle);
1422 }
a6d3b0a8 1423 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1424 fhAnglePairAfterCutsNLocMax1[mcIndex][matched]->Fill(en,angle);
1425 if(pid==AliCaloPID::kPi0)
1426 fhAnglePairPi0NLocMax1[mcIndex][matched]->Fill(en,angle);
1427
4e5a94c5 1428 if(m02 > 0)
1429 {
1430 fhAnglePairOverM02NLocMax1[mcIndex][matched]->Fill(en,angle/m02);
1431 if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[mcIndex][matched]->Fill(angle/m02,en);
1432 }
1433
0186b6a2 1434 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1435 {
1436 fhAnglePairPrimPi0RecoNLocMax1->Fill(en,angle/anglePrim);
4e5a94c5 1437 if(m02>0)fhAnglePairPrimPi0OverM02NLocMax1->Fill(en,anglePrim/m02);
0186b6a2 1438 if(en > 15) fhAnglePairPrimPi0vsRecoNLocMax1->Fill(anglePrim,angle);
1439
1440 }
1441 }
1442 else if(nMax==2)
1443 {
1444 fhAnglePairNLocMax2[mcIndex][matched]->Fill(en,angle);
d261ae67 1445 if( en > fHistoECut )
1446 {
1447 fhAnglePairMassNLocMax2[mcIndex][matched]->Fill(mass,angle);
1448 fhAnglePairM02NLocMax2 [mcIndex][matched]->Fill(m02 ,angle);
1449 }
29555e96 1450
a6d3b0a8 1451 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1452 fhAnglePairAfterCutsNLocMax2[mcIndex][matched]->Fill(en,angle);
1453 if(pid==AliCaloPID::kPi0)
1454 fhAnglePairPi0NLocMax2[mcIndex][matched]->Fill(en,angle);
1455
4e5a94c5 1456 if(m02 > 0)
1457 {
1458 fhAnglePairOverM02NLocMax2[mcIndex][matched]->Fill(en,angle/m02);
1459 if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[mcIndex][matched]->Fill(angle/m02,en);
1460 }
1461
0186b6a2 1462 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1463 {
1464 fhAnglePairPrimPi0RecoNLocMax2->Fill(en,angle/anglePrim);
4e5a94c5 1465 if(m02>0)fhAnglePairPrimPi0OverM02NLocMax2->Fill(en,anglePrim/m02);
0186b6a2 1466 if(en > 10) fhAnglePairPrimPi0vsRecoNLocMax2->Fill(anglePrim,angle);
1467 }
1468 }
1469 else if(nMax >2)
1470 {
1471 fhAnglePairNLocMaxN[mcIndex][matched]->Fill(en,angle);
d261ae67 1472 if( en > fHistoECut )
1473 {
1474 fhAnglePairMassNLocMaxN[mcIndex][matched]->Fill(mass,angle);
1475 fhAnglePairM02NLocMaxN [mcIndex][matched]->Fill(m02 ,angle);
1476 }
a6d3b0a8 1477 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1478 fhAnglePairAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,angle);
1479 if(pid==AliCaloPID::kPi0)
1480 fhAnglePairPi0NLocMaxN[mcIndex][matched]->Fill(en,angle);
1481
4e5a94c5 1482 if(m02 > 0)
1483 {
1484 fhAnglePairOverM02NLocMaxN[mcIndex][matched]->Fill(en,angle/m02);
1485 if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[mcIndex][matched]->Fill(angle/m02,en);
1486 }
1487
0186b6a2 1488 if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0)
1489 {
1490 fhAnglePairPrimPi0RecoNLocMaxN->Fill(en,angle/anglePrim);
4e5a94c5 1491 if(m02>0)fhAnglePairPrimPi0OverM02NLocMaxN->Fill(en,anglePrim/m02);
0186b6a2 1492 if(en > 10) fhAnglePairPrimPi0vsRecoNLocMaxN->Fill(anglePrim,angle);
1493 }
1494 }
1495
b2e375c7 1496 }
1497
1498}
1499
cb99fa55 1500//______________________________________________________________________________________________________________________
b94e038e 1501void AliAnaInsideClusterInvariantMass::FillArmenterosHistograms(Int_t nMax, Int_t ebin, Int_t mcIndex,
1a8c88c1 1502 Float_t en, Float_t m02, Int_t pid)
cb99fa55 1503{
1504 // Fill Armeteros type histograms
be894c1d 1505
1506 // Get pTArm and AlphaArm
1a8c88c1 1507 fSubClusterMomSum = fSubClusterMom1+fSubClusterMom2;
1508 Float_t momentumSquaredMother = fSubClusterMomSum.P()*fSubClusterMomSum.P();
be894c1d 1509 Float_t momentumDaughter1AlongMother = 0.;
1510 Float_t momentumDaughter2AlongMother = 0.;
1511
1512 if (momentumSquaredMother > 0.)
1513 {
1a8c88c1 1514 momentumDaughter1AlongMother = (fSubClusterMom1.Px()*fSubClusterMomSum.Px() + fSubClusterMom1.Py()*fSubClusterMomSum.Py()+ fSubClusterMom1.Pz()*fSubClusterMomSum.Pz()) / sqrt(momentumSquaredMother);
1515 momentumDaughter2AlongMother = (fSubClusterMom2.Px()*fSubClusterMomSum.Px() + fSubClusterMom2.Py()*fSubClusterMomSum.Py()+ fSubClusterMom2.Pz()*fSubClusterMomSum.Pz()) / sqrt(momentumSquaredMother);
be894c1d 1516 }
1517
1a8c88c1 1518 Float_t momentumSquaredDaughter1 = fSubClusterMom1.P()*fSubClusterMom1.P();
be894c1d 1519 Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother;
1520
1521 Float_t pTArm = 0.;
1522 if (ptArmSquared > 0.)
1523 pTArm = sqrt(ptArmSquared);
1524
1525 Float_t alphaArm = 0.;
1526 if(momentumDaughter1AlongMother +momentumDaughter2AlongMother > 0)
1527 alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother);
1528
1a8c88c1 1529 Float_t asym = TMath::Abs( fSubClusterMom1.Energy()-fSubClusterMom2.Energy() )/( fSubClusterMom1.Energy()+fSubClusterMom2.Energy() ) ;
be894c1d 1530
a6d3b0a8 1531 if(GetDebug() > 2 ) Info("FillArmenterosHistograms()","E %f, alphaArm %f, pTArm %f\n",en,alphaArm,pTArm);
be894c1d 1532
cb99fa55 1533 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1534 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1535 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1536 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
cb99fa55 1537
a6d3b0a8 1538 Bool_t eCutOK= kFALSE;
1539 Int_t inlm = nMax-1;
1540 if(inlm > 2 ) inlm = 2;
1541 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1a8c88c1 1542 if (ensubcut > 0.1 && ensubcut < fSubClusterMom1.E() && ensubcut < fSubClusterMom2.E() ) eCutOK = kTRUE;
a6d3b0a8 1543 else if(ensubcut < 0.1) eCutOK = kTRUE;
1544
1545
cb99fa55 1546 if (nMax==1)
1547 {
be894c1d 1548 fhArmNLocMax1[0][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1549 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1550 fhArmAfterCutsNLocMax1[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1551 if(pid==AliCaloPID::kPi0)
be894c1d 1552 fhArmPi0NLocMax1[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1553 }
1554 else if(nMax==2)
1555 {
be894c1d 1556 fhArmNLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1557 if((m02OK && asyOK) && (asyOn || m02On))
be894c1d 1558 fhArmAfterCutsNLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1559 if(pid==AliCaloPID::kPi0)
be894c1d 1560 fhArmPi0NLocMax2[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1561 }
1562 else if(nMax >2)
1563 {
be894c1d 1564 fhArmNLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1565 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1566 fhArmAfterCutsNLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1567 if(pid==AliCaloPID::kPi0)
be894c1d 1568 fhArmPi0NLocMaxN[0][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1569 }
1570
ed10b649 1571 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
cb99fa55 1572 {
1573 if (nMax==1)
1574 {
be894c1d 1575 fhArmNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1576 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1577 fhArmAfterCutsNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1578 if(pid==AliCaloPID::kPi0)
be894c1d 1579 fhArmPi0NLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1580 }
1581 else if(nMax==2)
1582 {
be894c1d 1583 fhArmNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1584 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1585 fhArmAfterCutsNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1586 if(pid==AliCaloPID::kPi0)
be894c1d 1587 fhArmPi0NLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1588 }
1589 else if(nMax >2)
1590 {
be894c1d 1591 fhArmNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
a6d3b0a8 1592 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
be894c1d 1593 fhArmAfterCutsNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1594 if(pid==AliCaloPID::kPi0)
be894c1d 1595 fhArmPi0NLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm);
cb99fa55 1596 }
1597
1598 }
1599
1600}
1601
b94e038e 1602//______________________________________________________________________________________________________________
1603void AliAnaInsideClusterInvariantMass::FillThetaStarHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex,
1a8c88c1 1604 Float_t en, Float_t m02, Int_t pid)
29555e96 1605{
1606 // Fill cos Theta^star histograms
1607
1608
1609 // Get cos Theta^star
1a8c88c1 1610 fSubClusterMomSum = fSubClusterMom1+fSubClusterMom2;
1611 fSubClusterMomBoost = fSubClusterMom1;
1612 fSubClusterMomBoost.Boost(-fSubClusterMomSum.BoostVector());
1613 Float_t cosThStar=TMath::Cos(fSubClusterMomBoost.Vect().Angle(fSubClusterMomSum.Vect()));
29555e96 1614
1a8c88c1 1615 Float_t asym = TMath::Abs( fSubClusterMom1.Energy()-fSubClusterMom2.Energy() )/( fSubClusterMom1.Energy()+fSubClusterMom2.Energy() ) ;
29555e96 1616
1617 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax);
1618 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1619 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1620 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
1621
a6d3b0a8 1622 Bool_t eCutOK= kFALSE;
1623 Int_t inlm = nMax-1;
1624 if(inlm > 2 ) inlm = 2;
1625 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1a8c88c1 1626 if (ensubcut > 0.1 && ensubcut < fSubClusterMom1.E() && ensubcut < fSubClusterMom2.E() ) eCutOK = kTRUE;
a6d3b0a8 1627 else if(ensubcut < 0.1) eCutOK = kTRUE;
1628
29555e96 1629 //printf("Reco cos %f, asy %f\n",cosThStar,asym);
1630
1631 if (nMax==1)
1632 {
1633 fhCosThStarNLocMax1[0][matched]->Fill(en,cosThStar);
1634
a6d3b0a8 1635 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1636 fhCosThStarAfterCutsNLocMax1[0][matched]->Fill(en,cosThStar);
1637 if(pid==AliCaloPID::kPi0)
1638 fhCosThStarPi0NLocMax1[0][matched]->Fill(en,cosThStar);
1639 }
1640 else if(nMax==2)
1641 {
1642 fhCosThStarNLocMax2[0][matched]->Fill(en,cosThStar);
1643
a6d3b0a8 1644 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1645 fhCosThStarAfterCutsNLocMax2[0][matched]->Fill(en,cosThStar);
1646 if(pid==AliCaloPID::kPi0)
1647 fhCosThStarPi0NLocMax2[0][matched]->Fill(en,cosThStar);
1648 }
1649 else if(nMax >2)
1650 {
1651 fhCosThStarNLocMaxN[0][matched]->Fill(en,cosThStar);
1652
a6d3b0a8 1653 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1654 fhCosThStarAfterCutsNLocMaxN[0][matched]->Fill(en,cosThStar);
1655 if(pid==AliCaloPID::kPi0)
1656 fhCosThStarPi0NLocMaxN[0][matched]->Fill(en,cosThStar);
1657 }
1658
1659 if(IsDataMC() && mcIndex > 0 && mcIndex < 7)
1660 {
1661 if (nMax==1)
1662 {
1663 fhCosThStarNLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1664
a6d3b0a8 1665 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1666 fhCosThStarAfterCutsNLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1667 if(pid==AliCaloPID::kPi0)
1668 fhCosThStarPi0NLocMax1[mcIndex][matched]->Fill(en,cosThStar);
1669 }
1670 else if(nMax==2)
1671 {
1672 fhCosThStarNLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1673
a6d3b0a8 1674 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1675 fhCosThStarAfterCutsNLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1676 if(pid==AliCaloPID::kPi0)
1677 fhCosThStarPi0NLocMax2[mcIndex][matched]->Fill(en,cosThStar);
1678 }
1679 else if(nMax >2)
1680 {
1681 fhCosThStarNLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1682
a6d3b0a8 1683 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
29555e96 1684 fhCosThStarAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1685 if(pid==AliCaloPID::kPi0)
1686 fhCosThStarPi0NLocMaxN[mcIndex][matched]->Fill(en,cosThStar);
1687 }
1688
1689 }
1690
1691}
1692
b94e038e 1693//__________________________________________________________________________________________________________________
1694void AliAnaInsideClusterInvariantMass::FillEBinHistograms(Int_t ebin , Int_t nMax, Int_t mcindex,
1695 Float_t splitFrac, Float_t mass, Float_t asym, Float_t l0)
b2e375c7 1696{
1697 // Fill some histograms integrating in few energy bins
1253480f 1698
b2e375c7 1699 if (nMax==1)
1700 {
1701 fhMassSplitEFractionNLocMax1Ebin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1702 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax1Ebin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1703
1704 fhMassM02NLocMax1Ebin [ebin]->Fill(l0 , mass );
1705 fhMassAsyNLocMax1Ebin [ebin]->Fill(asym, mass );
1706 }
1707 else if(nMax==2)
1708 {
1709 fhMassSplitEFractionNLocMax2Ebin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1710 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax2Ebin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1711
1712 fhMassM02NLocMax2Ebin [ebin]->Fill(l0 , mass );
1713 fhMassAsyNLocMax2Ebin [ebin]->Fill(asym, mass );
1714 }
1715 else if(nMax > 2 )
1716 {
1717 fhMassSplitEFractionNLocMaxNEbin[0][ebin]->Fill(splitFrac, mass);
cb99fa55 1718 if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMaxNEbin[mcindex][ebin]->Fill(splitFrac, mass);
b2e375c7 1719
1720 fhMassM02NLocMaxNEbin [ebin]->Fill(l0 , mass );
1721 fhMassAsyNLocMaxNEbin [ebin]->Fill(asym, mass );
1722 }
1723
1724}
1725
b94e038e 1726//________________________________________________________________________________________________
1727void AliAnaInsideClusterInvariantMass::FillHistograms1(Float_t en, Float_t e1, Float_t e2,
1728 Int_t nMax, Float_t mass, Float_t l0,
1729 Float_t eta, Float_t phi,
1730 Bool_t matched, Int_t mcindex)
1253480f 1731{
1732 // Fill histograms for clusters before any selection after spliting
1733
1734 Float_t splitFrac = (e1+e2)/en;
1735
1736 Float_t asym = -10;
1737 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1738
29555e96 1739 fhNLocMax [0][matched]->Fill(en,nMax);
1740 fhLM1NLocMax[0][matched]->Fill(e1,nMax);
1741 fhLM2NLocMax[0][matched]->Fill(e2,nMax);
cc909e6f 1742 fhSplitClusterENLocMax[0][matched]->Fill(e1,nMax);
1743 fhSplitClusterENLocMax[0][matched]->Fill(e2,nMax);
1744
cb99fa55 1745 if(IsDataMC() && mcindex > 0 && mcindex < 7)
cc909e6f 1746 {
29555e96 1747 fhNLocMax [mcindex][matched]->Fill(en,nMax);
1748 fhLM1NLocMax[mcindex][matched]->Fill(e1,nMax);
1749 fhLM2NLocMax[mcindex][matched]->Fill(e2,nMax);
b583134f 1750 fhSplitClusterENLocMax[mcindex][matched]->Fill(e1,nMax);
1751 fhSplitClusterENLocMax[mcindex][matched]->Fill(e2,nMax);
cc909e6f 1752 }
1253480f 1753
1754 if ( nMax == 1 )
1755 {
1756 fhM02NLocMax1[0][matched]->Fill(en,l0) ;
1757 fhSplitEFractionNLocMax1[0][matched]->Fill(en,splitFrac) ;
1758
cb99fa55 1759 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1760 {
1761 fhM02NLocMax1[mcindex][matched]->Fill(en,l0) ;
1762 fhSplitEFractionNLocMax1[mcindex][matched]->Fill(en,splitFrac) ;
1763 }
1764
1765 if(en > fHistoECut)
1766 {
1767 fhMassM02NLocMax1[0][matched]->Fill(l0, mass);
cb99fa55 1768 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax1[mcindex][matched]->Fill(l0, mass);
1253480f 1769
1770 fhSplitEFractionvsAsyNLocMax1[matched]->Fill(asym,splitFrac) ;
1771 if(!matched)fhClusterEtaPhiNLocMax1->Fill(eta,phi);
1772 }
1773 }
1774 else if( nMax == 2 )
1775 {
1776 fhM02NLocMax2[0][matched]->Fill(en,l0) ;
1777 fhSplitEFractionNLocMax2[0][matched]->Fill(en,splitFrac) ;
1778
cb99fa55 1779 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1780 {
1781 fhM02NLocMax2[mcindex][matched]->Fill(en,l0) ;
1782 fhSplitEFractionNLocMax2[mcindex][matched]->Fill(en,splitFrac) ;
1783 }
1784
1785 if(en > fHistoECut)
1786 {
1787 fhMassM02NLocMax2[0][matched]->Fill(l0, mass );
cb99fa55 1788 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax2[mcindex][matched]->Fill(l0,mass);
1253480f 1789
1790 fhSplitEFractionvsAsyNLocMax2[matched]->Fill(asym,splitFrac) ;
1791 if(!matched)fhClusterEtaPhiNLocMax2->Fill(eta,phi);
1792 }
1793 }
1794 else if( nMax >= 3 )
1795 {
1796 fhM02NLocMaxN[0][matched]->Fill(en,l0) ;
1797 fhSplitEFractionNLocMaxN[0][matched]->Fill(en,splitFrac) ;
1798
cb99fa55 1799 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 1800 {
1801 fhM02NLocMaxN[mcindex][matched]->Fill(en,l0) ;
1802 fhSplitEFractionNLocMaxN[mcindex][matched]->Fill(en,splitFrac) ;
1803 }
1804
1805 if(en > fHistoECut)
1806 {
1807
1808 fhMassM02NLocMaxN[0][matched]->Fill(l0,mass);
cb99fa55 1809 if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMaxN[mcindex][matched]->Fill(l0,mass);
1253480f 1810
1811 fhSplitEFractionvsAsyNLocMaxN[matched]->Fill(asym,splitFrac) ;
1812 if(!matched)fhClusterEtaPhiNLocMaxN->Fill(eta,phi);
1813 }
1814 }
1815
1816
1817}
1818
b94e038e 1819//________________________________________________________________________________________________
1820void AliAnaInsideClusterInvariantMass::FillHistograms2(Float_t en, Float_t eprim,
1821 Float_t e1, Float_t e2,
1822 Int_t nMax, Float_t mass, Float_t l0,
1823 Bool_t matched, Int_t mcindex)
1253480f 1824{
1825 // Fill histograms for clusters passing the first M02 selection
1826
1827 Float_t efrac = eprim/en;
1828 Float_t efracSplit = 0;
1829 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
1830
1831 Float_t splitFrac = (e1+e2)/en;
1832
1833 Float_t asym = -10;
1834 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
1835
1836 Int_t inlm = nMax-1;
1837 if(inlm > 2) inlm = 2;
1838 Float_t splitFracMin = GetCaloPID()->GetSplitEnergyFractionMinimum(inlm) ;
1839
1840 Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,l0,nMax);
1841 Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax);
1842 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
1843 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
1844
a6d3b0a8 1845 Bool_t eCutOK = kFALSE;
1846 Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm);
1847 if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE;
1848 else if(ensubcut < 0.1) eCutOK = kTRUE;
1849
1850 //printf("splitFracMin %f, val %f, m02ok %d, asyok %d, m02On %d, asyOn %d, ecutOK %d\n",splitFracMin,splitFrac,m02OK,asyOK,m02On,asyOn,eCutOK);
1253480f 1851
1852 if(m02On && m02OK)
1853 {
29555e96 1854 fhNLocMaxM02Cut [0][matched]->Fill(en,nMax);
1855 fhLM1NLocMaxM02Cut[0][matched]->Fill(e1,nMax);
1856 fhLM2NLocMaxM02Cut[0][matched]->Fill(e2,nMax);
1857 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1858 {
1859 fhNLocMaxM02Cut [mcindex][matched]->Fill(en,nMax);
1860 fhLM1NLocMaxM02Cut[mcindex][matched]->Fill(e1,nMax);
1861 fhLM2NLocMaxM02Cut[mcindex][matched]->Fill(e2,nMax);
1862 }
1253480f 1863 }
1864
1865 if (nMax==1)
1866 {
1867 fhMassNLocMax1[0][matched]->Fill(en,mass );
1868 fhAsymNLocMax1[0][matched]->Fill(en,asym );
c7e9a4e9 1869 fhMassSplitENLocMax1[0][matched]->Fill(e1+e2,mass);
1253480f 1870
1871 // Effect of cuts in mass histograms
cb99fa55 1872
1873 if(!matched && asyOK && asyOn )
1874 {
1875 fhMassAsyCutNLocMax1->Fill(en,mass);
1876 fhM02AsyCutNLocMax1 ->Fill(en,l0 );
1877 }
1253480f 1878
1879 if(!matched && m02OK && m02On )
1880 {
1881 fhMassM02CutNLocMax1->Fill(en,mass);
1882 fhAsymM02CutNLocMax1->Fill(en,asym );
1883 if(splitFrac > splitFracMin && fhMassSplitECutNLocMax1) fhMassSplitECutNLocMax1->Fill(en,mass );
1884 }
1885
a6d3b0a8 1886 if(!matched && eCutOK && ensubcut > 0.1)
2c36e041 1887 {
1888 fhMassEnCutNLocMax1->Fill(en,mass );
1889 fhM02EnCutNLocMax1 ->Fill(en,l0 );
1890 fhAsymEnCutNLocMax1->Fill(en,asym );
a6d3b0a8 1891 fhSplitEFracEnCutNLocMax1->Fill(en,splitFrac );
2c36e041 1892 }
1893
a6d3b0a8 1894 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1895 {
1896 fhSplitEFractionAfterCutsNLocMax1[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1897 if(splitFrac > splitFracMin)
1898 {
1899 fhMassAfterCutsNLocMax1[0][matched]->Fill(en,mass);
1900 fhMassSplitEAfterCutsNLocMax1[0][matched]->Fill(e1+e2,mass);
1901 }
1253480f 1902 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1903 {
1904 fhMCGenFracAfterCutsNLocMax1MCPi0 ->Fill(en , efrac );
1905 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0->Fill(en , efracSplit);
1906 }
1907 }
1908 }
2c36e041 1909 else if( nMax == 2 )
1253480f 1910 {
1911 fhMassNLocMax2[0][matched]->Fill(en,mass );
1912 fhAsymNLocMax2[0][matched]->Fill(en,asym );
c7e9a4e9 1913 fhMassSplitENLocMax2[0][matched]->Fill(e1+e2,mass);
1914
1253480f 1915 // Effect of cuts in mass histograms
1916
cb99fa55 1917 if(!matched && asyOK && asyOn )
1918 {
1919 fhMassAsyCutNLocMax2->Fill(en,mass);
1920 fhM02AsyCutNLocMax2 ->Fill(en,l0 );
1921 }
1922
1253480f 1923 if(!matched && m02OK && m02On )
1924 {
1925 fhMassM02CutNLocMax2->Fill(en,mass);
1926 fhAsymM02CutNLocMax2->Fill(en,asym );
1927 if(splitFrac > splitFracMin && fhMassSplitECutNLocMax2) fhMassSplitECutNLocMax2->Fill(en,mass );
1928 }
1929
a6d3b0a8 1930 if(!matched && eCutOK && ensubcut > 0.1)
2c36e041 1931 {
1932 fhMassEnCutNLocMax2->Fill(en,mass );
1933 fhM02EnCutNLocMax2 ->Fill(en,l0 );
1934 fhAsymEnCutNLocMax2->Fill(en,asym );
a6d3b0a8 1935 fhSplitEFracEnCutNLocMax2->Fill(en,splitFrac );
2c36e041 1936 }
1937
a6d3b0a8 1938 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1939 {
1940 fhSplitEFractionAfterCutsNLocMax2[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1941 if(splitFrac > splitFracMin)
1942 {
1943 fhMassAfterCutsNLocMax2[0][matched]->Fill(en,mass);
1944 fhMassSplitEAfterCutsNLocMax2[0][matched]->Fill(e1+e2,mass);
1945 }
1253480f 1946
1947 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1948 {
1949 fhMCGenFracAfterCutsNLocMax2MCPi0 ->Fill(en , efrac );
1950 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0->Fill(en , efracSplit);
1951 }
1952 }
1953 }
2c36e041 1954 else if( nMax > 2 )
1253480f 1955 {
1956 fhMassNLocMaxN[0][matched]->Fill(en,mass);
1957 fhAsymNLocMaxN[0][matched]->Fill(en,asym);
c7e9a4e9 1958 fhMassSplitENLocMaxN[0][matched]->Fill(e1+e2,mass);
1959
1253480f 1960 // Effect of cuts in mass histograms
cb99fa55 1961
1962 if(!matched && asyOK && asyOn )
1963 {
1964 fhMassAsyCutNLocMaxN->Fill(en,mass);
1965 fhM02AsyCutNLocMaxN ->Fill(en,l0 );
1966 }
1967
1253480f 1968 if(!matched && m02OK && m02On )
1969 {
1970 fhMassM02CutNLocMaxN->Fill(en,mass);
1971 fhAsymM02CutNLocMaxN->Fill(en,asym );
1972 if(splitFrac > splitFracMin && fhMassSplitECutNLocMaxN) fhMassSplitECutNLocMaxN->Fill(en,mass );
1973 }
1974
a6d3b0a8 1975 if(!matched && eCutOK && ensubcut > 0.1 )
2c36e041 1976 {
1977 fhMassEnCutNLocMaxN->Fill(en,mass );
1978 fhM02EnCutNLocMaxN ->Fill(en,l0 );
1979 fhAsymEnCutNLocMaxN->Fill(en,asym );
a6d3b0a8 1980 fhSplitEFracEnCutNLocMaxN->Fill(en,splitFrac );
2c36e041 1981 }
1982
a6d3b0a8 1983 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 1984 {
1985 fhSplitEFractionAfterCutsNLocMaxN[0][matched]->Fill(en,splitFrac);
c7e9a4e9 1986 if(splitFrac > splitFracMin)
1987 {
1988 fhMassAfterCutsNLocMaxN[0][matched]->Fill(en,mass);
1989 fhMassSplitEAfterCutsNLocMaxN[0][matched]->Fill(e1+e2,mass);
1990 }
1253480f 1991
1992 if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0)
1993 {
1994 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->Fill(en , efrac );
1995 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0->Fill(en , efracSplit);
1996 }
1997 }
1998 }
1999
cb99fa55 2000 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2001 {
2002 if (nMax==1)
2003 {
2004 fhMassNLocMax1[mcindex][matched]->Fill(en,mass);
2005 fhAsymNLocMax1[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2006 fhMassSplitENLocMax1[mcindex][matched]->Fill(e1+e2,mass);
2007
a6d3b0a8 2008 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2009 {
2010 fhSplitEFractionAfterCutsNLocMax1[mcindex][matched]->Fill(en,splitFrac);
2011 if(splitFrac > splitFracMin)
c7e9a4e9 2012 {
1253480f 2013 fhMassAfterCutsNLocMax1[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2014 fhMassSplitEAfterCutsNLocMax1[mcindex][matched]->Fill(e1+e2,mass);
2015 }
1253480f 2016 }
2017 }
2018 else if(nMax==2)
2019 {
2020 fhMassNLocMax2[mcindex][matched]->Fill(en,mass);
2021 fhAsymNLocMax2[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2022 fhMassSplitENLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2023
a6d3b0a8 2024 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2025 {
2026 fhSplitEFractionAfterCutsNLocMax2[mcindex][matched]->Fill(en,splitFrac);
c7e9a4e9 2027 if(splitFrac > splitFracMin)
2028 {
1253480f 2029 fhMassAfterCutsNLocMax2[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2030 fhMassSplitEAfterCutsNLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2031 }
2032
1253480f 2033 }
2034 }
2035 else if(nMax >2)
2036 {
2037 fhMassNLocMaxN[mcindex][matched]->Fill(en,mass);
2038 fhAsymNLocMaxN[mcindex][matched]->Fill(en,asym);
c7e9a4e9 2039 fhMassSplitENLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
2040
a6d3b0a8 2041 if((m02OK && asyOK) && (asyOn || m02On) && eCutOK)
1253480f 2042 {
2043 fhSplitEFractionAfterCutsNLocMaxN[mcindex][matched]->Fill(en,splitFrac);
c7e9a4e9 2044 if(splitFrac > splitFracMin)
2045 {
1253480f 2046 fhMassAfterCutsNLocMaxN[mcindex][matched]->Fill(en,mass);
c7e9a4e9 2047 fhMassSplitEAfterCutsNLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
2048 }
1253480f 2049 }
2050 }
2051 }//Work with MC truth
2052}
2053
2054
b94e038e 2055//_________________________________________________________________________________________________________
2056void AliAnaInsideClusterInvariantMass::FillIdPi0Histograms(Float_t en, Float_t e1, Float_t e2,
2057 Int_t nc, Int_t nMax, Float_t t12diff,
2058 Float_t mass, Float_t l0,
2059 Float_t eta, Float_t phi,
2060 Bool_t matched, Int_t mcindex)
1253480f 2061{
2062 // Fill histograms for clusters passing the pi0 selection
2063
2064 Float_t asym = -10;
2065 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2066
29555e96 2067 fhNLocMaxIdPi0 [0][matched]->Fill(en,nMax);
2068 fhLM1NLocMaxIdPi0[0][matched]->Fill(e1,nMax);
2069 fhLM2NLocMaxIdPi0[0][matched]->Fill(e2,nMax);
2070
cc909e6f 2071 fhSplitClusterEPi0NLocMax[0][matched]->Fill(e1,nMax);
2072 fhSplitClusterEPi0NLocMax[0][matched]->Fill(e2,nMax);
2073
cb99fa55 2074 if(IsDataMC() && mcindex > 0 && mcindex < 7)
cc909e6f 2075 {
2076 fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e1,nMax);
2077 fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e2,nMax);
2078 }
2079
1253480f 2080 if (nMax==1)
2081 {
2082 fhM02Pi0NLocMax1 [0][matched]->Fill(en,l0);
2083 fhMassPi0NLocMax1[0][matched]->Fill(en,mass);
2084 fhAsyPi0NLocMax1 [0][matched]->Fill(en,asym);
c7e9a4e9 2085 fhMassSplitEPi0NLocMax1[0][matched]->Fill(e1+e2,mass);
1253480f 2086 if(fFillNCellHisto) fhNCellPi0NLocMax1[0][matched]->Fill(en,nc);
2087
2088 if(!matched)
2089 {
2090 if(fFillHighMultHisto)
2091 {
2092 fhCentralityPi0NLocMax1->Fill(en,GetEventCentrality()) ;
2093 fhEventPlanePi0NLocMax1->Fill(en,GetEventPlaneAngle()) ;
2094 }
2095 if(en > fHistoECut)fhPi0EtaPhiNLocMax1->Fill(eta,phi);
2096 fhPi0EPairDiffTimeNLM1->Fill(e1+e2,t12diff);
2097 }
2098 }
2099 else if(nMax==2)
2100 {
2101 fhM02Pi0NLocMax2 [0][matched]->Fill(en,l0);
2102 fhMassPi0NLocMax2[0][matched]->Fill(en,mass);
2103 fhAsyPi0NLocMax2 [0][matched]->Fill(en,asym);
c7e9a4e9 2104 fhMassSplitEPi0NLocMax2[0][matched]->Fill(e1+e2,mass);
1253480f 2105 if(fFillNCellHisto) fhNCellPi0NLocMax2[0][matched]->Fill(en,nc);
2106
2107 if(!matched)
2108 {
2109 if(fFillHighMultHisto)
2110 {
2111 fhCentralityPi0NLocMax2->Fill(en,GetEventCentrality()) ;
2112 fhEventPlanePi0NLocMax2->Fill(en,GetEventPlaneAngle()) ;
2113 }
2114 if(en > fHistoECut)fhPi0EtaPhiNLocMax2->Fill(eta,phi);
2115 fhPi0EPairDiffTimeNLM2->Fill(e1+e2,t12diff);
2116 }
2117 }
2118 else if(nMax >2)
2119 {
2120 fhM02Pi0NLocMaxN [0][matched]->Fill(en,l0);
2121 fhMassPi0NLocMaxN[0][matched]->Fill(en,mass);
2122 fhAsyPi0NLocMaxN [0][matched]->Fill(en,asym);
c7e9a4e9 2123 fhMassSplitEPi0NLocMaxN[0][matched]->Fill(e1+e2,mass);
1253480f 2124 if(fFillNCellHisto) fhNCellPi0NLocMaxN[0][matched]->Fill(en,nc);
2125
2126 if(!matched)
2127 {
2128 if(fFillHighMultHisto)
2129 {
2130 fhCentralityPi0NLocMaxN->Fill(en,GetEventCentrality()) ;
2131 fhEventPlanePi0NLocMaxN->Fill(en,GetEventPlaneAngle()) ;
2132 }
2133 if(en > fHistoECut)fhPi0EtaPhiNLocMaxN->Fill(eta,phi);
2134 fhPi0EPairDiffTimeNLMN->Fill(e1+e2,t12diff);
2135 }
2136 }
2137
cb99fa55 2138 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2139 {
db790ee8 2140 fhNLocMaxIdPi0 [mcindex][matched]->Fill(en,nMax);
2141 fhLM1NLocMaxIdPi0[mcindex][matched]->Fill(e1,nMax);
2142 fhLM2NLocMaxIdPi0[mcindex][matched]->Fill(e2,nMax);
29555e96 2143
1253480f 2144 if (nMax==1)
2145 {
2146 fhM02Pi0NLocMax1 [mcindex][matched]->Fill(en,l0);
2147 fhMassPi0NLocMax1[mcindex][matched]->Fill(en,mass);
2148 fhAsyPi0NLocMax1 [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2149 fhMassSplitEPi0NLocMax1[mcindex][matched]->Fill(e1+e2,mass);
1253480f 2150 if(fFillNCellHisto) fhNCellPi0NLocMax1[mcindex][matched]->Fill(en,nc);
2151
2152 }
2153 else if(nMax==2)
2154 {
2155 fhM02Pi0NLocMax2 [mcindex][matched]->Fill(en,l0);
2156 fhMassPi0NLocMax2[mcindex][matched]->Fill(en,mass);
2157 fhAsyPi0NLocMax2 [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2158 fhMassSplitEPi0NLocMax2[mcindex][matched]->Fill(e1+e2,mass);
2159 if(fFillNCellHisto) fhNCellPi0NLocMax2[mcindex][matched]->Fill(en,nc);
1253480f 2160 }
2161 else if(nMax >2)
2162 {
cc909e6f 2163 fhM02Pi0NLocMaxN [mcindex][matched]->Fill(en,l0);
1253480f 2164 fhMassPi0NLocMaxN[mcindex][matched]->Fill(en,mass);
cc909e6f 2165 fhAsyPi0NLocMaxN [mcindex][matched]->Fill(en,asym);
c7e9a4e9 2166 fhMassSplitEPi0NLocMaxN[mcindex][matched]->Fill(e1+e2,mass);
1253480f 2167 if(fFillNCellHisto) fhNCellPi0NLocMaxN[mcindex][matched]->Fill(en,nc);
2168 }
2169 }//Work with MC truth
2170}
2171
b94e038e 2172//______________________________________________________________________________________________________
2173void AliAnaInsideClusterInvariantMass::FillIdEtaHistograms(Float_t en, Float_t e1, Float_t e2,
2174 Int_t nc, Int_t nMax, Float_t t12diff,
2175 Float_t mass, Float_t l0,
2176 Float_t eta, Float_t phi,
2177 Bool_t matched, Int_t mcindex)
1253480f 2178{
2179 // Fill histograms for clusters passing the eta selection
2180
2181 Float_t asym = -10;
2182 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
2183
2184 if (nMax==1)
2185 {
2186 fhM02EtaNLocMax1 [0][matched]->Fill(en,l0);
2187 fhMassEtaNLocMax1[0][matched]->Fill(en,mass);
2188 fhAsyEtaNLocMax1 [0][matched]->Fill(en,asym);
2189 if(fFillNCellHisto) fhNCellEtaNLocMax1[0][matched]->Fill(en,nc);
2190
2191 if(!matched)
2192 {
2193 if(fFillHighMultHisto)
2194 {
2195 fhCentralityEtaNLocMax1->Fill(en,GetEventCentrality()) ;
2196 fhEventPlaneEtaNLocMax1->Fill(en,GetEventPlaneAngle()) ;
2197 }
2198 if(en > fHistoECut)fhEtaEtaPhiNLocMax1->Fill(eta,phi);
2199 fhEtaEPairDiffTimeNLM1->Fill(e1+e2,t12diff);
2200 }
2201 }
2202 else if(nMax==2)
2203 {
2204 fhM02EtaNLocMax2 [0][matched]->Fill(en,l0);
2205 fhMassEtaNLocMax2[0][matched]->Fill(en,mass);
2206 fhAsyEtaNLocMax2 [0][matched]->Fill(en,asym);
2207 if(fFillNCellHisto) fhNCellEtaNLocMax2[0][matched]->Fill(en,nc);
2208
2209 if(!matched)
2210 {
2211 if(fFillHighMultHisto)
2212 {
2213 fhCentralityEtaNLocMax2->Fill(en,GetEventCentrality()) ;
2214 fhEventPlaneEtaNLocMax2->Fill(en,GetEventPlaneAngle()) ;
2215 }
2216 if(en > fHistoECut)fhEtaEtaPhiNLocMax2->Fill(eta,phi);
2217 fhEtaEPairDiffTimeNLM2->Fill(e1+e2,t12diff);
2218 }
2219 }
2220 else if(nMax >2)
2221 {
2222 fhM02EtaNLocMaxN [0][matched]->Fill(en,l0);
2223 fhMassEtaNLocMaxN[0][matched]->Fill(en,mass);
2224 fhAsyEtaNLocMaxN [0][matched]->Fill(en,asym);
2225 if(fFillNCellHisto) fhNCellEtaNLocMaxN[0][matched]->Fill(en,nc);
2226
2227 if(!matched)
2228 {
2229 if(fFillHighMultHisto)
2230 {
2231 fhCentralityEtaNLocMaxN->Fill(en,GetEventCentrality()) ;
2232 fhEventPlaneEtaNLocMaxN->Fill(en,GetEventPlaneAngle()) ;
2233 }
2234 if(en > fHistoECut)fhEtaEtaPhiNLocMaxN->Fill(eta,phi);
2235 fhEtaEPairDiffTimeNLMN->Fill(e1+e2,t12diff);
2236 }
2237 }
2238
cb99fa55 2239 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2240 {
2241 if (nMax==1)
2242 {
2243 fhM02EtaNLocMax1[mcindex][matched]->Fill(en,l0);
2244 fhMassEtaNLocMax1[mcindex][matched]->Fill(en,mass);
2245 fhAsyEtaNLocMax1[mcindex][matched]->Fill(en,asym);
2246 if(fFillNCellHisto) fhNCellEtaNLocMax1[mcindex][matched]->Fill(en,nc);
2247 }
2248 else if(nMax==2)
2249 {
2250 fhM02EtaNLocMax2 [mcindex][matched]->Fill(en,l0);
2251 fhMassEtaNLocMax2[mcindex][matched]->Fill(en,mass);
2252 fhAsyEtaNLocMax2 [mcindex][matched]->Fill(en,asym);
2253 if(fFillNCellHisto) fhNCellEtaNLocMax2[mcindex][matched]->Fill(en,nc);
2254
2255 }
2256 else if(nMax >2)
2257 {
c7e9a4e9 2258 fhM02EtaNLocMaxN[mcindex][matched]->Fill(en,l0);
2259 fhMassEtaNLocMaxN[mcindex][matched]->Fill(en,mass);
2260 fhAsyEtaNLocMaxN[mcindex][matched]->Fill(en,asym);
2261 if(fFillNCellHisto) fhNCellEtaNLocMaxN[mcindex][matched]->Fill(en,nc);
1253480f 2262 }
2263 }//Work with MC truth
2264}
2265
2266
b94e038e 2267//__________________________________________________________________________________________________
2268void AliAnaInsideClusterInvariantMass::FillIdConvHistograms(Float_t en, Int_t nMax, Float_t asym,
2269 Float_t mass, Float_t l0,
2270 Bool_t matched, Int_t mcindex)
1253480f 2271{
2272 // Fill histograms for clusters passing the photon selection
2273
2274 if (nMax==1)
2275 {
2276 fhM02ConNLocMax1 [0][matched]->Fill(en,l0);
2277 fhMassConNLocMax1[0][matched]->Fill(en,mass);
2278 fhAsyConNLocMax1 [0][matched]->Fill(en,asym);
2279 }
2280 else if(nMax==2)
2281 {
2282 fhM02ConNLocMax2 [0][matched]->Fill(en,l0);
2283 fhMassConNLocMax2[0][matched]->Fill(en,mass);
2284 fhAsyConNLocMax2 [0][matched]->Fill(en,asym);
2285 }
2286 else if(nMax >2)
2287 {
2288 fhM02ConNLocMaxN [0][matched]->Fill(en,l0);
2289 fhMassConNLocMaxN[0][matched]->Fill(en,mass);
2290 fhAsyConNLocMaxN [0][matched]->Fill(en,asym);
2291 }
2292
cb99fa55 2293 if(IsDataMC() && mcindex > 0 && mcindex < 7)
1253480f 2294 {
2295 if (nMax==1)
2296 {
2297 fhM02ConNLocMax1 [mcindex][matched]->Fill(en,l0);
2298 fhMassConNLocMax1[mcindex][matched]->Fill(en,mass);
2299 fhAsyConNLocMax1 [mcindex][matched]->Fill(en,asym);
2300 }
2301 else if(nMax==2)
2302 {
2303 fhM02ConNLocMax2 [mcindex][matched]->Fill(en,l0);
2304 fhMassConNLocMax2[mcindex][matched]->Fill(en,mass);
2305 fhAsyConNLocMax2 [mcindex][matched]->Fill(en,asym);
2306 }
2307 else if(nMax >2)
2308 {
2309 fhM02ConNLocMaxN [mcindex][matched]->Fill(en,l0);
2310 fhMassConNLocMaxN[mcindex][matched]->Fill(en,mass);
2311 fhAsyConNLocMaxN [mcindex][matched]->Fill(en,asym);
2312 }
2313
2314 }//Work with MC truth
2315}
2316
b94e038e 2317//_______________________________________________________________________________________________________
2318void AliAnaInsideClusterInvariantMass::FillMCHistograms(Float_t en, Float_t e1 , Float_t e2,
2319 Int_t ebin, Int_t mcindex,Int_t noverlaps,
2320 Float_t l0, Float_t mass,
2321 Int_t nMax, Bool_t matched,
2322 Float_t splitFrac, Float_t asym,
2323 Float_t eprim, Float_t asymGen)
b2e375c7 2324{
2325 // Fill histograms needing some MC input
1253480f 2326
b2e375c7 2327 Float_t efrac = eprim/en;
2328 Float_t efracSplit = 0;
2329 if(e1+e2 > 0) efracSplit = eprim/(e1+e2);
b583134f 2330 Float_t asymDiff = TMath::Abs(asym) - TMath::Abs(asymGen);
2331
b2e375c7 2332 //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",
2333 // e1,e2,eprim,en,splitFrac,efrac,efracSplit);
2334
2335 if(ebin >= 0 && fFillEbinHisto)
2336 {
2337 if( !matched ) fhMCGenFracNLocMaxEbin [mcindex][ebin]->Fill(efrac,nMax);
2338 else fhMCGenFracNLocMaxEbinMatched[mcindex][ebin]->Fill(efrac,nMax);
2339 }
2340
2341 if (nMax==1)
2342 {
2343 fhMCGenFracNLocMax1 [mcindex][matched]->Fill(en , efrac );
2344 fhMCGenSplitEFracNLocMax1[mcindex][matched]->Fill(en , efracSplit );
2345 fhMCGenEvsSplitENLocMax1 [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2346 if(asym > 0 && !matched)
2347 {
2348 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[0] ->Fill(en, asymDiff );
2349 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[0]->Fill(en, asymDiff );
2350 }
2351
4914e781 2352 if(noverlaps==0)
2353 {
2354 fhMCGenFracNLocMax1NoOverlap [mcindex][matched]->Fill(en , efrac );
2355 fhMCGenSplitEFracNLocMax1NoOverlap[mcindex][matched]->Fill(en , efracSplit );
2356 }
2357
b2e375c7 2358 if( en > fHistoECut )
2359 {
2360 fhMCGenEFracvsSplitEFracNLocMax1[mcindex][matched]->Fill(efrac,splitFrac );
2361
2362 if(!matched && ebin >= 0 && fFillEbinHisto)
2363 {
2364 fhM02MCGenFracNLocMax1Ebin [mcindex][ebin]->Fill(efrac , l0 );
2365 fhMassMCGenFracNLocMax1Ebin[mcindex][ebin]->Fill(efrac , mass );
2366
b583134f 2367 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2368 {
2369 fhMCAsymM02NLocMax1MCPi0Ebin [ebin]->Fill(l0 , asymGen );
2370 fhAsyMCGenRecoNLocMax1EbinPi0[ebin]->Fill(asym, asymGen );
2371 }
b2e375c7 2372 }
2373 }
2374 }
2375 else if(nMax==2)
2376 {
2377 fhMCGenFracNLocMax2 [mcindex][matched]->Fill(en , efrac );
2378 fhMCGenSplitEFracNLocMax2[mcindex][matched]->Fill(en , efracSplit );
2379 fhMCGenEvsSplitENLocMax2 [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2380
2381 if(asym > 0 && !matched)
2382 {
2383 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[1] ->Fill(en, asymDiff );
2384 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[1]->Fill(en, asymDiff );
2385 }
b2e375c7 2386
4914e781 2387 if(noverlaps==0)
2388 {
2389 fhMCGenFracNLocMax2NoOverlap [mcindex][matched]->Fill(en , efrac );
2390 fhMCGenSplitEFracNLocMax2NoOverlap[mcindex][matched]->Fill(en , efracSplit );
2391 }
2392
b2e375c7 2393 if( en > fHistoECut )
2394 {
2395 fhMCGenEFracvsSplitEFracNLocMax2[mcindex][matched]->Fill(efrac,splitFrac );
2396
2397 if(!matched && ebin >= 0 && fFillEbinHisto)
2398 {
2399 fhM02MCGenFracNLocMax2Ebin [mcindex][ebin]->Fill(efrac , l0 );
2400 fhMassMCGenFracNLocMax2Ebin[mcindex][ebin]->Fill(efrac , mass );
b583134f 2401 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2402 {
2403 fhMCAsymM02NLocMax2MCPi0Ebin [ebin]->Fill(l0 , asymGen );
2404 fhAsyMCGenRecoNLocMax2EbinPi0[ebin]->Fill(asym, asymGen );
2405 }
b2e375c7 2406 }
2407 }
2408
2409 }
2410 else if(nMax > 2 )
2411 {
2412 fhMCGenFracNLocMaxN [mcindex][matched]->Fill(en , efrac );
2413 fhMCGenSplitEFracNLocMaxN[mcindex][matched]->Fill(en , efracSplit );
2414 fhMCGenEvsSplitENLocMaxN [mcindex][matched]->Fill(eprim , e1+e2);
b583134f 2415 if(asym > 0 && !matched)
2416 {
2417 if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[2] ->Fill(en, asymDiff );
2418 else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[2]->Fill(en, asymDiff );
2419 }
2420
4914e781 2421 if(noverlaps==0)
2422 {
2423 fhMCGenFracNLocMaxNNoOverlap [mcindex][matched]->Fill(en , efrac );
2424 fhMCGenSplitEFracNLocMaxNNoOverlap[mcindex][matched]->Fill(en , efracSplit );
2425 }
2426
b2e375c7 2427 if( en > fHistoECut )
2428 {
2429 fhMCGenEFracvsSplitEFracNLocMaxN[mcindex][matched]->Fill(efrac,splitFrac );
2430
2431 if(!matched && ebin >= 0 && fFillEbinHisto)
2432 {
2433 fhM02MCGenFracNLocMaxNEbin [mcindex][ebin]->Fill(efrac , l0 );
2434 fhMassMCGenFracNLocMaxNEbin[mcindex][ebin]->Fill(efrac , mass );
2435
b583134f 2436 if(mcindex==kmcPi0 || mcindex==kmcPi0Conv)
2437 {
2438 fhMCAsymM02NLocMaxNMCPi0Ebin [ebin]->Fill(l0 , asymGen );
2439 fhAsyMCGenRecoNLocMaxNEbinPi0[ebin]->Fill(asym, asymGen );
2440 }
b2e375c7 2441 }
2442 }
2443 }
2444}
2445
b94e038e 2446//__________________________________________________________________________________________________________
2447void AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms(Float_t en, Float_t enprim,
2448 Int_t nc, Float_t mass, Float_t l0,
2449 Float_t asym, Float_t splitFrac,
2450 Int_t inlm, Int_t ebin, Bool_t matched,
2451 Int_t mcindex, Int_t noverlaps)
b2e375c7 2452{
b2e375c7 2453 // Fill histograms for MC Overlaps
2454
2455 //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 2456
b2e375c7 2457 //printf("AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms - NLM bin=%d, mcIndex %d, n Overlaps %d\n",inlm,mcindex,noverlaps);
2458
2459 if(!matched)
2460 {
2461 fhMCENOverlaps[inlm][mcindex]->Fill(en,noverlaps);
2462
2463 if (noverlaps == 0)
2464 {
74e3eb22 2465 fhMCEM02Overlap0 [inlm][mcindex]->Fill(en, l0);
2466 fhMCEMassOverlap0 [inlm][mcindex]->Fill(en, mass);
2467 fhMCEEpriOverlap0 [inlm][mcindex]->Fill(en, enprim);
2468 fhMCEAsymOverlap0 [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2469 if(fFillNCellHisto) fhMCENCellOverlap0[inlm][mcindex]->Fill(en, nc);
83351853 2470 fhMCESplitEFracOverlap0[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2471 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0[inlm][ebin]->Fill(l0,mass);
2472 }
2473 else if(noverlaps == 1)
2474 {
74e3eb22 2475 fhMCEM02Overlap1 [inlm][mcindex]->Fill(en, l0);
2476 fhMCEMassOverlap1 [inlm][mcindex]->Fill(en, mass);
2477 fhMCEEpriOverlap1 [inlm][mcindex]->Fill(en, enprim);
2478 fhMCEAsymOverlap1 [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2479 if(fFillNCellHisto) fhMCENCellOverlap1[inlm][mcindex]->Fill(en, nc);
83351853 2480 fhMCESplitEFracOverlap1[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2481 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1[inlm][ebin]->Fill(l0,mass);
2482 }
2483 else if(noverlaps > 1)
2484 {
74e3eb22 2485 fhMCEM02OverlapN [inlm][mcindex]->Fill(en, l0);
2486 fhMCEMassOverlapN [inlm][mcindex]->Fill(en, mass);
2487 fhMCEEpriOverlapN [inlm][mcindex]->Fill(en, enprim);
2488 fhMCEAsymOverlapN [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2489 if(fFillNCellHisto) fhMCENCellOverlapN[inlm][mcindex]->Fill(en, nc);
83351853 2490 fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2491 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapN[inlm][ebin]->Fill(l0,mass);
2492 }
2493 else
a6d3b0a8 2494 Info("FillMCOverlapHistograms","n overlaps = %d!!", noverlaps);
b2e375c7 2495 }
2496 else if(fFillTMHisto)
2497 {
2498 fhMCENOverlapsMatch[inlm][mcindex]->Fill(en,noverlaps);
2499
2500 if (noverlaps == 0)
2501 {
74e3eb22 2502 fhMCEM02Overlap0Match [inlm][mcindex]->Fill(en, l0);
2503 fhMCEMassOverlap0Match [inlm][mcindex]->Fill(en, mass);
2504 fhMCEEpriOverlap0Match [inlm][mcindex]->Fill(en, enprim);
2505 fhMCEAsymOverlap0Match [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2506 if(fFillNCellHisto) fhMCENCellOverlap0Match[inlm][mcindex]->Fill(en, nc);
83351853 2507 fhMCESplitEFracOverlap0Match[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2508 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0Match[inlm][ebin]->Fill(l0,mass);
2509 }
2510 else if(noverlaps == 1)
2511 {
74e3eb22 2512 fhMCEM02Overlap1Match [inlm][mcindex]->Fill(en, l0);
2513 fhMCEMassOverlap1Match [inlm][mcindex]->Fill(en, mass);
2514 fhMCEEpriOverlap1Match [inlm][mcindex]->Fill(en, enprim);
2515 fhMCEAsymOverlap1Match [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2516 if(fFillNCellHisto) fhMCENCellOverlap1Match[inlm][mcindex]->Fill(en, nc);
83351853 2517 fhMCESplitEFracOverlap1Match[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2518 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1Match[inlm][ebin]->Fill(l0,mass);
2519 }
2520 else if(noverlaps > 1)
2521 {
74e3eb22 2522 fhMCEM02OverlapNMatch [inlm][mcindex]->Fill(en, l0);
2523 fhMCEMassOverlapNMatch [inlm][mcindex]->Fill(en, mass);
2524 fhMCEEpriOverlapNMatch [inlm][mcindex]->Fill(en, enprim);
2525 fhMCEAsymOverlapNMatch [inlm][mcindex]->Fill(en, TMath::Abs(asym));
cb99fa55 2526 if(fFillNCellHisto) fhMCENCellOverlapNMatch[inlm][mcindex]->Fill(en, nc);
83351853 2527 fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac);
b2e375c7 2528 if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapNMatch[inlm][ebin]->Fill(l0,mass);
2529 }
2530 else
a6d3b0a8 2531 Info("FillMCOverlapHistograms()","n overlaps in matched = %d!!", noverlaps);
b2e375c7 2532 }
2533}
2534
4914e781 2535
b94e038e 2536//_____________________________________________________________________________________________________
2537void AliAnaInsideClusterInvariantMass::FillNCellHistograms(Int_t ncells, Float_t energy, Int_t nMax,
2538 Bool_t matched, Int_t mcindex,
2539 Float_t mass , Float_t l0)
4914e781 2540
2541{
2542 // Fill optional histograms with more SS parameters
1253480f 2543
4914e781 2544 if (nMax==1)
2545 {
2546 fhNCellNLocMax1[0][matched]->Fill(energy,ncells) ;
2547 if(mcindex > 0 ) fhNCellNLocMax1[mcindex][matched]->Fill(energy,ncells) ;
2548
2549 if (mcindex==kmcPi0 && !matched)
2550 {
2551 if( energy > fHistoECut)
2552 {
2553 fhNCellMassEHighNLocMax1MCPi0->Fill(ncells,mass);
2554 fhNCellM02EHighNLocMax1MCPi0 ->Fill(ncells,l0);
2555 }
2556 else
2557 {
2558 fhNCellMassELowNLocMax1MCPi0->Fill(ncells,mass);
2559 fhNCellM02ELowNLocMax1MCPi0 ->Fill(ncells,l0);
2560 }
2561 }
2562 }
2563 else if( nMax == 2 )
2564 {
2565 fhNCellNLocMax2[0][matched]->Fill(energy,ncells) ;
2566 if(mcindex > 0 ) fhNCellNLocMax2[mcindex][matched]->Fill(energy,ncells) ;
2567
2568
2569 if (mcindex==kmcPi0 && !matched)
2570 {
2571 if( energy > fHistoECut)
2572 {
2573 fhNCellMassEHighNLocMax2MCPi0->Fill(ncells,mass);
2574 fhNCellM02EHighNLocMax2MCPi0 ->Fill(ncells,l0);
2575 }
2576 else
2577 {
2578 fhNCellMassELowNLocMax2MCPi0->Fill(ncells,mass);
2579 fhNCellM02ELowNLocMax2MCPi0 ->Fill(ncells,l0);
2580 }
2581 }
2582 }
2583 else if( nMax >= 3 )
2584 {
2585 fhNCellNLocMaxN[0][matched]->Fill(energy,ncells) ;
2586 if(mcindex > 0 ) fhNCellNLocMaxN[mcindex][matched]->Fill(energy,ncells) ;
2587
2588 if (mcindex==kmcPi0 && !matched)
2589 {
2590 if( energy > fHistoECut)
2591 {
2592 fhNCellMassEHighNLocMaxNMCPi0->Fill(ncells,mass);
2593 fhNCellM02EHighNLocMaxNMCPi0 ->Fill(ncells,l0);
2594 }
2595 else
2596 {
2597 fhNCellMassELowNLocMaxNMCPi0->Fill(ncells,mass);
2598 fhNCellM02ELowNLocMaxNMCPi0 ->Fill(ncells,l0);
2599 }
2600 }
2601 }
2602}
2603
ff6aa4ce 2604//______________________________________________________________________________________________________
2605void AliAnaInsideClusterInvariantMass::FillNLMDiffCutHistograms(AliVCluster *clus, AliVCaloCells* cells, Bool_t matched)
2606{
58a18c5d 2607 // Calculate NLM for different settings
ff6aa4ce 2608
2609 Float_t energy = clus->E();
2610 Float_t m02 = clus->GetM02();
2611
2612 Float_t minEOrg = GetCaloUtils()->GetLocalMaximaCutE() ;
2613 Float_t minEDiffOrg = GetCaloUtils()->GetLocalMaximaCutEDiff();
2614
58a18c5d 2615 Int_t nlm = 0;
2616 Double_t mass = 0., angle = 0.;
58a18c5d 2617 Int_t absId1 =-1; Int_t absId2 =-1;
2618 Float_t distbad1 =-1; Float_t distbad2 =-1;
2619 Bool_t fidcut1 = 0; Bool_t fidcut2 = 0;
2620 Int_t pidTag = -1;
2621
ff6aa4ce 2622 //printf("E %f, m02 %f; Org: minE %f, minDiffE %f\n",energy, m02, minEOrg,minEDiffOrg);
2623 for(Int_t iE = 0; iE < fNLMSettingN; iE++)
2624 {
2625 for(Int_t iDiff = 0; iDiff < fNLMSettingN; iDiff++)
2626 {
2627 GetCaloUtils()->SetLocalMaximaCutE (fNLMMinE [iE] );
2628 GetCaloUtils()->SetLocalMaximaCutEDiff(fNLMMinDiff[iDiff]);
58a18c5d 2629
2630 //nlm = GetCaloUtils()->GetNumberOfLocalMaxima(clus, cells) ;
2631
2632 //printf("\t Change: i %d minE %f, j %d minDiffE %f - NLM = %d\n",iE, fNLMMinE[iE], iDiff, fNLMMinDiff[iDiff],nlm);
2633
2634 pidTag = GetCaloPID()->GetIdentifiedParticleTypeFromClusterSplitting(clus,cells,GetCaloUtils(),
2635 GetVertex(0), nlm, mass, angle,
1a8c88c1 2636 fSubClusterMom1,fSubClusterMom2,absId1,absId2,
58a18c5d 2637 distbad1,distbad2,fidcut1,fidcut2);
2638 if (nlm <= 0)
2639 {
2640 if(GetDebug() > 0 )
2641 Info("MakeAnalysisFillHistograms","No local maximum found! It did not pass CaloPID selection criteria \n");
2642
2643 continue;
2644 }
2645
ff6aa4ce 2646 Int_t inlm = nlm-1;
2647 if(inlm>2) inlm = 2;
ff6aa4ce 2648
58a18c5d 2649 fhNLocMaxDiffCut [iE][iDiff] [matched]->Fill(energy,nlm);
2650 fhM02NLocMaxDiffCut [iE][iDiff][inlm][matched]->Fill(energy,m02);
2651 fhMassNLocMaxDiffCut[iE][iDiff][inlm][matched]->Fill(energy,mass);
ff6aa4ce 2652
58a18c5d 2653 if(pidTag==AliCaloPID::kPi0)
2654 {
2655 fhNLocMaxDiffCutPi0 [iE][iDiff] [matched]->Fill(energy,nlm);
2656 fhM02NLocMaxDiffCutPi0 [iE][iDiff][inlm][matched]->Fill(energy,m02);
2657 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][matched]->Fill(energy,mass);
2658 }
2659
ff6aa4ce 2660 }
2661 }
2662
2663 GetCaloUtils()->SetLocalMaximaCutE (minEOrg );
2664 GetCaloUtils()->SetLocalMaximaCutEDiff(minEDiffOrg);
2665
2666}
2667
2668
b94e038e 2669//_____________________________________________________________________________________________
2670void AliAnaInsideClusterInvariantMass::FillSSExtraHistograms(AliVCluster *cluster, Int_t nMax,
2671 Bool_t matched, Int_t mcindex,
2672 Float_t mass , Int_t ebin)
b2e375c7 2673{
2674 // Fill optional histograms with more SS parameters
1253480f 2675
b2e375c7 2676 Float_t en = cluster->E();
b2e375c7 2677
2678 // Get more Shower Shape parameters
2679 Float_t ll0 = 0., ll1 = 0.;
2680 Float_t disp= 0., dispEta = 0., dispPhi = 0.;
2681 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2682
2683 GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
2684 ll0, ll1, disp, dispEta, dispPhi, sEta, sPhi, sEtaPhi);
2685
2686 Float_t dispAsy = -1;
2687 if(dispEta+dispPhi >0 ) dispAsy = (dispPhi-dispEta) / (dispPhi+dispEta);
b2e375c7 2688
2689 if (nMax==1)
2690 {
b2e375c7 2691 if( en > fHistoECut )
2692 {
2693 fhMassDispEtaNLocMax1[0][matched]->Fill(dispEta, mass );
2694 fhMassDispPhiNLocMax1[0][matched]->Fill(dispPhi, mass );
2695 fhMassDispAsyNLocMax1[0][matched]->Fill(dispAsy, mass );
2696
cb99fa55 2697 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2698 {
2699 fhMassDispEtaNLocMax1[mcindex][matched]->Fill(dispEta, mass );
2700 fhMassDispPhiNLocMax1[mcindex][matched]->Fill(dispPhi, mass );
2701 fhMassDispAsyNLocMax1[mcindex][matched]->Fill(dispAsy, mass );
2702 }
2703 }
2704
2705 if(!matched && ebin >= 0 && fFillEbinHisto)
2706 {
2707 fhMassDispEtaNLocMax1Ebin[ebin]->Fill(dispEta, mass );
2708 fhMassDispPhiNLocMax1Ebin[ebin]->Fill(dispPhi, mass );
2709 fhMassDispAsyNLocMax1Ebin[ebin]->Fill(dispAsy, mass );
2710 }
2711 }
2712 else if( nMax == 2 )
2713 {
b2e375c7 2714 if( en > fHistoECut )
2715 {
2716 fhMassDispEtaNLocMax2[0][matched]->Fill(dispEta, mass );
2717 fhMassDispPhiNLocMax2[0][matched]->Fill(dispPhi, mass );
2718 fhMassDispAsyNLocMax2[0][matched]->Fill(dispAsy, mass );
2719
cb99fa55 2720 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2721 {
2722 fhMassDispEtaNLocMax2[mcindex][matched]->Fill(dispEta, mass );
2723 fhMassDispPhiNLocMax2[mcindex][matched]->Fill(dispPhi, mass );
2724 fhMassDispAsyNLocMax2[mcindex][matched]->Fill(dispAsy, mass );
2725 }
2726 }
2727
2728 if(!matched && ebin >= 0 && fFillEbinHisto)
2729 {
2730 fhMassDispEtaNLocMax2Ebin[ebin]->Fill(dispEta, mass );
2731 fhMassDispPhiNLocMax2Ebin[ebin]->Fill(dispPhi, mass );
2732 fhMassDispAsyNLocMax2Ebin[ebin]->Fill(dispAsy, mass );
2733 }
2734
2735 }
2736 else if( nMax >= 3 )
2737 {
b2e375c7 2738 if( en > fHistoECut )
2739 {
2740 fhMassDispEtaNLocMaxN[0][matched]->Fill(dispEta, mass );
2741 fhMassDispPhiNLocMaxN[0][matched]->Fill(dispPhi, mass );
2742 fhMassDispAsyNLocMaxN[0][matched]->Fill(dispAsy, mass );
2743
cb99fa55 2744 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2745 {
2746 fhMassDispEtaNLocMaxN[mcindex][matched]->Fill(dispEta, mass );
2747 fhMassDispPhiNLocMaxN[mcindex][matched]->Fill(dispPhi, mass );
2748 fhMassDispAsyNLocMaxN[mcindex][matched]->Fill(dispAsy, mass );
2749 }
2750 }
2751
2752 if(!matched && ebin >= 0 && fFillEbinHisto)
2753 {
2754 fhMassDispEtaNLocMaxNEbin[ebin]->Fill(dispEta, mass );
2755 fhMassDispPhiNLocMaxNEbin[ebin]->Fill(dispPhi, mass );
2756 fhMassDispAsyNLocMaxNEbin[ebin]->Fill(dispAsy, mass );
2757 }
2758
2759 }
2760
2761}
2762
b94e038e 2763//__________________________________________________________________________________________
2764void AliAnaInsideClusterInvariantMass::FillSSWeightHistograms(AliVCluster *clus, Int_t nlm,
2765 Int_t absId1, Int_t absId2)
dbe09c26 2766{
2767 // Calculate weights and fill histograms
1253480f 2768
dbe09c26 2769 AliVCaloCells* cells = 0;
bdb39dbd 2770 if(GetCalorimeter() == kEMCAL) cells = GetEMCALCells();
dbe09c26 2771 else cells = GetPHOSCells();
2772
2773 // First recalculate energy in case non linearity was applied
09a5b22d 2774 Float_t energy = GetCaloUtils()->RecalibrateClusterEnergy(clus, cells);// recalculate cluster energy, avoid non lin correction.
2775
2776 Float_t simuTotWeight = 0;
2777 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
dbe09c26 2778 {
09a5b22d 2779 simuTotWeight = GetCaloUtils()->RecalibrateClusterEnergyWeightCell(clus, cells,energy);
2780 simuTotWeight/= energy;
2781 }
dbe09c26 2782
2783 if(energy <=0 )
2784 {
a6d3b0a8 2785 Info("WeightHistograms()","Wrong calculated energy %f\n",energy);
dbe09c26 2786 return;
2787 }
2788
19391b8c 2789 //Get amplitude of main local maxima, recalibrate if needed
2790 Float_t amp1 = cells->GetCellAmplitude(absId1);
0cea6003 2791 GetCaloUtils()->RecalibrateCellAmplitude(amp1,GetCalorimeter(), absId1);
19391b8c 2792 Float_t amp2 = cells->GetCellAmplitude(absId2);
0cea6003 2793 GetCaloUtils()->RecalibrateCellAmplitude(amp2,GetCalorimeter(), absId2);
19391b8c 2794
a6d3b0a8 2795 if(amp1 < amp2) Info("FillSSWeightHistograms","Bad local maxima E ordering : id1 E %f, id2 E %f\n ",amp1,amp2);
2796 if(amp1==0 || amp2==0) Info("FillSSWeightHistograms","Null E local maxima : id1 E %f, id2 E %f\n " ,amp1,amp2);
19391b8c 2797
09a5b22d 2798 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
2799 {
2800 amp1*=GetCaloUtils()->GetMCECellClusFracCorrection(amp1,energy)/simuTotWeight;
2801 amp2*=GetCaloUtils()->GetMCECellClusFracCorrection(amp2,energy)/simuTotWeight;
2802 }
2803
19391b8c 2804 if(amp1>0)fhPi0CellEMaxEMax2Frac [nlm]->Fill(energy,amp2/amp1);
2805 fhPi0CellEMaxClusterFrac [nlm]->Fill(energy,amp1/energy);
2806 fhPi0CellEMax2ClusterFrac[nlm]->Fill(energy,amp2/energy);
2807
dbe09c26 2808 //Get the ratio and log ratio to all cells in cluster
2809 for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++)
2810 {
2811 Int_t id = clus->GetCellsAbsId()[ipos];
2812
2813 //Recalibrate cell energy if needed
2814 Float_t amp = cells->GetCellAmplitude(id);
0cea6003 2815 GetCaloUtils()->RecalibrateCellAmplitude(amp,GetCalorimeter(), id);
09a5b22d 2816 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
2817 {
2818 //printf("eCell a) %f",amp);
2819 amp*=GetCaloUtils()->GetMCECellClusFracCorrection(amp,energy)/simuTotWeight;
2820 //printf(", b)%f\n",amp);
2821 }
dbe09c26 2822
19391b8c 2823 if(amp > 0)fhPi0CellE [nlm]->Fill(energy,amp);
dbe09c26 2824 fhPi0CellEFrac [nlm]->Fill(energy,amp/energy);
2825 fhPi0CellLogEFrac[nlm]->Fill(energy,TMath::Log(amp/energy));
19391b8c 2826
2827 if (id!=absId1 && id!=absId2)
2828 {
2829 if(amp1>0)fhPi0CellEMaxFrac [nlm]->Fill(energy,amp/amp1);
2830 if(amp2>0)fhPi0CellEMax2Frac[nlm]->Fill(energy,amp/amp2);
2831 }
2832
dbe09c26 2833 }
09a5b22d 2834
dbe09c26 2835 //Recalculate shower shape for different W0
bdb39dbd 2836 if(GetCalorimeter()==kEMCAL)
dbe09c26 2837 {
2838 Float_t l0org = clus->GetM02();
2839 Float_t l1org = clus->GetM20();
2840 Float_t dorg = clus->GetDispersion();
19391b8c 2841 Float_t w0org = GetCaloUtils()->GetEMCALRecoUtils()->GetW0();
dbe09c26 2842
5cd814a9 2843 //printf("E cl %2.3f, E recal %2.3f, nlm %d, Org w0 %2.3f, org l0 %2.3f\n",clus->E(), energy,nlm, w0org,l0org);
2844
dbe09c26 2845 for(Int_t iw = 0; iw < fSSWeightN; iw++)
2846 {
2847 GetCaloUtils()->GetEMCALRecoUtils()->SetW0(fSSWeight[iw]);
8edbd100 2848 //GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), cells, clus);
5cd814a9 2849 //fhM02WeightPi0[nlm][iw]->Fill(energy,clus->GetM02());
2850
8edbd100 2851 Float_t l0 = 0., l1 = 0.;
2852 Float_t disp = 0., dEta = 0., dPhi = 0.;
2853 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
2854
2855 RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp,
5cd814a9 2856 dEta, dPhi, sEta, sPhi, sEtaPhi,fSSECellCut[0]);
2857 //Make sure that for pp fSSECellCut[0]=0.05 and for PbPb fSSECellCut[0]=0.15
8edbd100 2858
dbe09c26 2859
5cd814a9 2860 fhM02WeightPi0[nlm][iw]->Fill(energy,l0);
2861
2862 //printf("\t w0 %2.3f, l0 %2.3f\n",GetCaloUtils()->GetEMCALRecoUtils()->GetW0(),l0);
dbe09c26 2863
2864 } // w0 loop
2865
2866 // Set the original values back
2867 clus->SetM02(l0org);
2868 clus->SetM20(l1org);
2869 clus->SetDispersion(dorg);
19391b8c 2870 GetCaloUtils()->GetEMCALRecoUtils()->SetW0(w0org);
2871
2872 for(Int_t iec = 0; iec < fSSECellCutN; iec++)
2873 {
2874 Float_t l0 = 0., l1 = 0.;
2875 Float_t disp = 0., dEta = 0., dPhi = 0.;
2876 Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;
19391b8c 2877
3ae72bd8 2878 RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp,
2879 dEta, dPhi, sEta, sPhi, sEtaPhi,fSSECellCut[iec]);
2880
19391b8c 2881 fhM02ECellCutPi0[nlm][iec]->Fill(energy,l0);
2882
5cd814a9 2883 //printf("\t min E cell %2.3f, l0 %2.3f\n",fSSECellCut[iec], l0);
2884
19391b8c 2885 } // w0 loop
3ae72bd8 2886
dbe09c26 2887 }// EMCAL
2888}
2889
b94e038e 2890//____________________________________________________________________________________________
2891void AliAnaInsideClusterInvariantMass::FillTrackMatchingHistograms(AliVCluster * cluster,
2892 Int_t nMax, Int_t mcindex)
b2e375c7 2893{
2894 // Fill histograms related to track matching
1253480f 2895
b2e375c7 2896 Float_t dZ = cluster->GetTrackDz();
2897 Float_t dR = cluster->GetTrackDx();
2898 Float_t en = cluster->E();
2899
2900 if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn())
2901 {
2902 dR = 2000., dZ = 2000.;
2903 GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR);
2904 }
2905
2906 //printf("Pi0EbE: dPhi %f, dEta %f\n",dR,dZ);
2907
2908 if(TMath::Abs(dR) < 999)
2909 {
2910 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[0]->Fill(en,dR); }
2911 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[0]->Fill(en,dR); }
2912 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[0]->Fill(en,dR); }
2913
cb99fa55 2914 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2915 {
2916 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[mcindex]->Fill(en,dR); }
2917 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[mcindex]->Fill(en,dR); }
2918 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[mcindex]->Fill(en,dR); }
2919 }
2920
2921 AliVTrack *track = GetCaloUtils()->GetMatchedTrack(cluster, GetReader()->GetInputEvent());
2922
2923 Bool_t positive = kFALSE;
2924 if(track) positive = (track->Charge()>0);
2925
2926 if(track)
2927 {
2928 if(positive)
2929 {
2930 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[0]->Fill(en,dR); }
2931 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[0]->Fill(en,dR); }
2932 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[0]->Fill(en,dR); }
2933
cb99fa55 2934 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2935 {
2936 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[mcindex]->Fill(en,dR); }
2937 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[mcindex]->Fill(en,dR); }
2938 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[mcindex]->Fill(en,dR); }
2939 }
2940 }
2941 else
2942 {
2943 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[0]->Fill(en,dR); }
2944 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[0]->Fill(en,dR); }
2945 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[0]->Fill(en,dR); }
2946
cb99fa55 2947 if(IsDataMC() && mcindex > 0 && mcindex < 7)
b2e375c7 2948 {
2949 if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[mcindex]->Fill(en,dR); }
2950 else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[mcindex]->Fill(en,dR); }
2951 else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[mcindex]->Fill(en,dR); }
2952 }
2953 }
2954
2955 }// track exists
2956
2957 }
2958}
dbe09c26 2959
992b14a7 2960//_______________________________________________________________
2961TObjString * AliAnaInsideClusterInvariantMass::GetAnalysisCuts()
2962{
2963 //Save parameters used for analysis
2964 TString parList ; //this will be list of parameters used for this analysis.
b94e038e 2965 Int_t buffersize = 255;
992b14a7 2966 char onePar[buffersize] ;
2967
2968 snprintf(onePar,buffersize,"--- AliAnaInsideClusterInvariantMass ---\n") ;
2969 parList+=onePar ;
2970
bdb39dbd 2971 snprintf(onePar,buffersize,"Calorimeter: %s\n", GetCalorimeterString().Data()) ;
992b14a7 2972 parList+=onePar ;
c8710850 2973 snprintf(onePar,buffersize,"fNLocMaxCutE =%2.2f \n", GetCaloUtils()->GetLocalMaximaCutE()) ;
29ca9cad 2974 parList+=onePar ;
c8710850 2975 snprintf(onePar,buffersize,"fNLocMaxCutEDiff =%2.2f \n",GetCaloUtils()->GetLocalMaximaCutEDiff()) ;
29ca9cad 2976 parList+=onePar ;
e23a0471 2977 snprintf(onePar,buffersize,"fMinNCells =%d \n", fMinNCells) ;
2cb134fb 2978 parList+=onePar ;
3c1d9afb 2979 snprintf(onePar,buffersize,"fMinBadDist =%1.1f \n", fMinBadDist) ;
992b14a7 2980 parList+=onePar ;
19391b8c 2981 if(fFillSSWeightHisto)
2982 {
2983 snprintf(onePar,buffersize," N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN);
2984 parList+=onePar ;
2985 }
2986
992b14a7 2987 return new TObjString(parList) ;
2988
2989}
2990
992b14a7 2991//________________________________________________________________
2992TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
1253480f 2993{
992b14a7 2994 // Create histograms to be saved in output file and
2995 // store them in outputContainer
2996 TList * outputContainer = new TList() ;
667432ef 2997 outputContainer->SetName("InsideClusterHistos") ;
992b14a7 2998
745913ae 2999 Int_t nptbins = GetHistogramRanges()->GetHistoPtBins(); Float_t ptmax = GetHistogramRanges()->GetHistoPtMax(); Float_t ptmin = GetHistogramRanges()->GetHistoPtMin();
3000 Int_t ssbins = GetHistogramRanges()->GetHistoShowerShapeBins(); Float_t ssmax = GetHistogramRanges()->GetHistoShowerShapeMax(); Float_t ssmin = GetHistogramRanges()->GetHistoShowerShapeMin();
3001 Int_t mbins = GetHistogramRanges()->GetHistoMassBins(); Float_t mmax = GetHistogramRanges()->GetHistoMassMax(); Float_t mmin = GetHistogramRanges()->GetHistoMassMin();
3002 Int_t ncbins = GetHistogramRanges()->GetHistoNClusterCellBins(); Int_t ncmax = GetHistogramRanges()->GetHistoNClusterCellMax(); Int_t ncmin = GetHistogramRanges()->GetHistoNClusterCellMin();
9554fc65 3003 Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins(); Float_t phimax = GetHistogramRanges()->GetHistoPhiMax(); Float_t phimin = GetHistogramRanges()->GetHistoPhiMin();
3004 Int_t netabins = GetHistogramRanges()->GetHistoEtaBins(); Float_t etamax = GetHistogramRanges()->GetHistoEtaMax(); Float_t etamin = GetHistogramRanges()->GetHistoEtaMin();
1253480f 3005
5c46c992 3006 Int_t nresetabins = GetHistogramRanges()->GetHistoTrackResidualEtaBins();
3007 Float_t resetamax = GetHistogramRanges()->GetHistoTrackResidualEtaMax();
3008 Float_t resetamin = GetHistogramRanges()->GetHistoTrackResidualEtaMin();
3009 Int_t nresphibins = GetHistogramRanges()->GetHistoTrackResidualPhiBins();
3010 Float_t resphimax = GetHistogramRanges()->GetHistoTrackResidualPhiMax();
3011 Float_t resphimin = GetHistogramRanges()->GetHistoTrackResidualPhiMin();
3012
1253480f 3013 Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn();
3014 Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn();
3015 Bool_t splitOn = kFALSE;
3016 if(GetCaloPID()->GetSplitEnergyFractionMinimum(0) > 0 ||
3017 GetCaloPID()->GetSplitEnergyFractionMinimum(1) > 0 ||
3018 GetCaloPID()->GetSplitEnergyFractionMinimum(2) > 0) splitOn = kTRUE;
3019
cb99fa55 3020 TString ptype[] ={"","#gamma","#gamma->e^{#pm}","#pi^{0}","#pi^{0} (#gamma->e^{#pm})","#eta", "hadron"};
3021 TString pname[] ={"","Photon","Conversion", "Pi0", "Pi0Conv", "Eta","Hadron"};
ce49dd72 3022 TString snlm [] = {"1","2","N"};
3023
25330263 3024 TString sEBin[] = {"8 < #it{E} < 12 GeV","12 < #it{E} < 16 GeV", "16 < #it{E} < 20 GeV", "#it{E} > 20 GeV" };
be894c1d 3025
992b14a7 3026 Int_t n = 1;
3027
cb99fa55 3028 if(IsDataMC()) n = 7;
992b14a7 3029
243c2909 3030 Int_t nMaxBins = 10;
3031
5c46c992 3032 TString sMatched[] = {"","Matched"};
3033
8edbd100 3034 Int_t nMatched = 2;
3035 if(!fFillTMHisto) nMatched = 1;
aa12888f 3036
58a18c5d 3037
3038 if(fFillNLMDiffCutHisto)
3039 {
3040 for(Int_t imatch = 0; imatch < nMatched; imatch++)
3041 {
3042 for(Int_t iE = 0; iE < fNLMSettingN; iE++)
3043 {
3044 for(Int_t iDiff = 0; iDiff < fNLMSettingN; iDiff++)
3045 {
3046 fhNLocMaxDiffCut[iE][iDiff][imatch] = new TH2F(Form("hNLocMax_MinE%d_MinDiffE%d%s",iE, iDiff, sMatched[imatch].Data()),
25330263 3047 Form("NLM for #it{E}_{LM}>%1.2f, #Delta E=%1.2F %s", fNLMMinE[iE], fNLMMinDiff[iDiff],sMatched[imatch].Data()),
58a18c5d 3048 nptbins,ptmin,ptmax, nMaxBins,0,nMaxBins);
25330263 3049 fhNLocMaxDiffCut[iE][iDiff][imatch]->SetYTitle("#it{NLM}");
3050 fhNLocMaxDiffCut[iE][iDiff][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3051 outputContainer->Add(fhNLocMaxDiffCut[iE][iDiff][imatch]) ;
3052
3053 fhNLocMaxDiffCutPi0[iE][iDiff][imatch] = new TH2F(Form("hNLocMaxPi0_MinE%d_MinDiffE%d%s",iE, iDiff, sMatched[imatch].Data()),
25330263 3054 Form("#pi^{0} NLM for #it{E}_{LM}>%1.2f, #Delta E=%1.2F %s",
58a18c5d 3055 fNLMMinE[iE], fNLMMinDiff[iDiff],sMatched[imatch].Data()),
3056 nptbins,ptmin,ptmax, nMaxBins,0,nMaxBins);
25330263 3057 fhNLocMaxDiffCutPi0[iE][iDiff][imatch]->SetYTitle("#it{NLM}");
3058 fhNLocMaxDiffCutPi0[iE][iDiff][imatch]->SetXTitle("#it{E}_{#pi^{0}}");
58a18c5d 3059 outputContainer->Add(fhNLocMaxDiffCutPi0[iE][iDiff][imatch]) ;
3060
3061 for(Int_t inlm = 0; inlm < 3; inlm++)
3062 {
3063
3064 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxM02_MinE%d_MinDiffE%d_NLM%s%s",
3065 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3066 Form("#lambda^{2}_{0} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3067 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3068 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3069 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetYTitle("#lambda^{2}_{0}");
25330263 3070 fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3071 outputContainer->Add(fhM02NLocMaxDiffCut[iE][iDiff][inlm][imatch]) ;
3072
3073 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxMass_MinE%d_MinDiffE%d_NLM%s%s",
3074 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3075 Form("#it{M}_{split} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3076 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3077 nptbins,ptmin,ptmax, mbins,mmin,mmax);
25330263 3078 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetYTitle("#it{M}_{split}");
3079 fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3080 outputContainer->Add(fhMassNLocMaxDiffCut[iE][iDiff][inlm][imatch]) ;
3081
3082 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxPi0M02_MinE%d_MinDiffE%d_NLM%s%s",
3083 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3084 Form("#pi^{0} #lambda^{2}_{0} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3085 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3086 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3087 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetYTitle("#lambda^{2}_{0}");
25330263 3088 fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3089 outputContainer->Add(fhM02NLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]) ;
3090
3091 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch] = new TH2F(Form("hNLocMaxPi0Mass_MinE%d_MinDiffE%d_NLM%s%s",
3092 iE, iDiff, snlm[inlm].Data(),sMatched[imatch].Data()),
25330263 3093 Form("#pi^{0} #it{M}_{split} for #it{E}_{LM}>%1.2f, #Delta E=%1.2F NLM %s %s",
58a18c5d 3094 fNLMMinE[iE], fNLMMinDiff[iDiff],snlm[inlm].Data(), sMatched[imatch].Data()),
3095 nptbins,ptmin,ptmax, mbins,mmin,mmax);
25330263 3096 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetYTitle("#it{M}_{split}");
3097 fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]->SetXTitle("#it{E}_{cluster}");
58a18c5d 3098 outputContainer->Add(fhMassNLocMaxDiffCutPi0[iE][iDiff][inlm][imatch]) ;
3099
3100 }
3101
3102 }
3103 }
3104 }
3105 return outputContainer;
3106 }
3107
ce49dd72 3108 if(fCheckSplitDistToBad)
3109 {
3110 for(Int_t inlm = 0; inlm < 3; inlm++)
3111 {
3112 fhMassBadDistClose[inlm] = new TH2F(Form("hMassBadDistCloseNLocMax%s",snlm[inlm].Data()),
25330263 3113 Form("Invariant mass of splitted cluster with #it{NLM}=%d vs E, 2nd LM close to bad channel",inlm),
ce49dd72 3114 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3115 fhMassBadDistClose[inlm]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3116 fhMassBadDistClose[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3117 outputContainer->Add(fhMassBadDistClose[inlm]) ;
3118
3119 fhM02BadDistClose[inlm] = new TH2F(Form("hM02BadDistCloseNLocMax%s",snlm[inlm].Data()),
25330263 3120 Form("#lambda_{0}^{2} for cluster with #it{NLM}=%d vs E, 2nd LM close to bad channel",inlm),
ce49dd72 3121 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3122 fhM02BadDistClose[inlm]->SetYTitle("#lambda_{0}^{2}");
25330263 3123 fhM02BadDistClose[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3124 outputContainer->Add(fhM02BadDistClose[inlm]) ;
3125
3126 fhMassOnBorder[inlm] = new TH2F(Form("hMassOnBorderNLocMax%s",snlm[inlm].Data()),
25330263 3127 Form("Invariant mass of splitted cluster with #it{NLM}=%d vs E, 2nd LM close to border",inlm),
ce49dd72 3128 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3129 fhMassOnBorder[inlm]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3130 fhMassOnBorder[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3131 outputContainer->Add(fhMassOnBorder[inlm]) ;
3132
3133 fhM02OnBorder[inlm] = new TH2F(Form("hM02OnBorderNLocMax%s",snlm[inlm].Data()),
25330263 3134 Form("#lambda_{0}^{2} for cluster with #it{NLM}=%d vs E, 2nd LM close to border",inlm),
ce49dd72 3135 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3136 fhM02OnBorder[inlm]->SetYTitle("#lambda_{0}^{2}");
25330263 3137 fhM02OnBorder[inlm]->SetXTitle("#it{E} (GeV)");
ce49dd72 3138 outputContainer->Add(fhM02OnBorder[inlm]) ;
3139
3140 }
3141 }
3142
5c46c992 3143 for(Int_t i = 0; i < n; i++)
667432ef 3144 {
8edbd100 3145 for(Int_t j = 0; j < nMatched; j++)
667432ef 3146 {
5c46c992 3147
ce49dd72 3148 fhNLocMax[i][j] = new TH2F(Form("hNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3149 Form("Number of local maxima in cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
3150 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3151 fhNLocMax[i][j] ->SetYTitle("#it{N} maxima");
3152 fhNLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3153 outputContainer->Add(fhNLocMax[i][j]) ;
29555e96 3154
3155 fhLM1NLocMax[i][j] = new TH2F(Form("hLM1NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3156 Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3157 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3158 fhLM1NLocMax[i][j] ->SetYTitle("#it{N} maxima");
3159 fhLM1NLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3160 outputContainer->Add(fhLM1NLocMax[i][j]) ;
3161
3162 fhLM2NLocMax[i][j] = new TH2F(Form("hLM2NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3163 Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3164 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3165 fhLM2NLocMax[i][j] ->SetYTitle("#it{N} maxima");
3166 fhLM2NLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3167 outputContainer->Add(fhLM2NLocMax[i][j]) ;
3168
3169 if(m02On)
3170 {
3171 fhNLocMaxM02Cut[i][j] = new TH2F(Form("hNLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3172 Form("Number of local maxima in cluster %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3173 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3174 fhNLocMaxM02Cut[i][j]->SetYTitle("#it{N} maxima");
3175 fhNLocMaxM02Cut[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 3176 outputContainer->Add(fhNLocMaxM02Cut[i][j]) ;
3177
3178 fhLM1NLocMaxM02Cut[i][j] = new TH2F(Form("hLM1NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3179 Form("Number of local maxima in cluster for split cluster 1 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3180 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3181 fhLM1NLocMaxM02Cut[i][j] ->SetYTitle("#it{N} maxima");
3182 fhLM1NLocMaxM02Cut[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3183 outputContainer->Add(fhLM1NLocMaxM02Cut[i][j]) ;
3184
3185 fhLM2NLocMaxM02Cut[i][j] = new TH2F(Form("hLM2NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()),
3186 Form("Number of local maxima in cluster for split cluster 2 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()),
3187 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3188 fhLM2NLocMaxM02Cut[i][j] ->SetYTitle("#it{N} maxima");
3189 fhLM2NLocMaxM02Cut[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3190 outputContainer->Add(fhLM2NLocMaxM02Cut[i][j]) ;
3191
3192 }
3193
3194
3195 fhNLocMaxIdPi0[i][j] = new TH2F(Form("hNLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3196 Form("Number of local maxima in pi0 ID cluster %s %s",ptype[i].Data(),sMatched[j].Data()),
3197 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3198 fhNLocMaxIdPi0[i][j] ->SetYTitle("#it{N} maxima");
3199 fhNLocMaxIdPi0[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3200 outputContainer->Add(fhNLocMaxIdPi0[i][j]) ;
3201
3202
3203 fhLM1NLocMaxIdPi0[i][j] = new TH2F(Form("hLM1NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3204 Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3205 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3206 fhLM1NLocMaxIdPi0[i][j] ->SetYTitle("#it{N} maxima");
3207 fhLM1NLocMaxIdPi0[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3208 outputContainer->Add(fhLM1NLocMaxIdPi0[i][j]) ;
3209
3210 fhLM2NLocMaxIdPi0[i][j] = new TH2F(Form("hLM2NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()),
3211 Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3212 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3213 fhLM2NLocMaxIdPi0[i][j] ->SetYTitle("#it{N} maxima");
3214 fhLM2NLocMaxIdPi0[i][j] ->SetXTitle("#it{E} (GeV)");
29555e96 3215 outputContainer->Add(fhLM2NLocMaxIdPi0[i][j]) ;
3216
3217
3218
ce49dd72 3219
3220 fhSplitClusterENLocMax[i][j] = new TH2F(Form("hSplitEClusterNLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3221 Form("Number of local maxima vs E of split clusters %s %s",ptype[i].Data(),sMatched[j].Data()),
3222 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3223 fhSplitClusterENLocMax[i][j] ->SetYTitle("#it{N} maxima");
3224 fhSplitClusterENLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3225 outputContainer->Add(fhSplitClusterENLocMax[i][j]) ;
3226
3227
3228 fhSplitClusterEPi0NLocMax[i][j] = new TH2F(Form("hSplitEClusterPi0NLocMax%s%s",pname[i].Data(),sMatched[j].Data()),
3229 Form("Number of local maxima vs E of split clusters, id as pi0, %s %s",ptype[i].Data(),sMatched[j].Data()),
3230 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 3231 fhSplitClusterEPi0NLocMax[i][j] ->SetYTitle("#it{N} maxima");
3232 fhSplitClusterEPi0NLocMax[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3233 outputContainer->Add(fhSplitClusterEPi0NLocMax[i][j]) ;
3234
3235 if(fFillNCellHisto)
3236 {
3237 fhNCellNLocMax1[i][j] = new TH2F(Form("hNCellNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3238 Form("n cells vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3239 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3240 fhNCellNLocMax1[i][j] ->SetYTitle("#it{N} cells");
3241 fhNCellNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3242 outputContainer->Add(fhNCellNLocMax1[i][j]) ;
3243
3244 fhNCellNLocMax2[i][j] = new TH2F(Form("hNCellNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3245 Form("n cells vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3246 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3247 fhNCellNLocMax2[i][j] ->SetYTitle("#it{N} cells");
3248 fhNCellNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3249 outputContainer->Add(fhNCellNLocMax2[i][j]) ;
3250
3251
3252 fhNCellNLocMaxN[i][j] = new TH2F(Form("hNCellNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3253 Form("n cells vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3254 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3255 fhNCellNLocMaxN[i][j] ->SetYTitle("#it{N} cells");
3256 fhNCellNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
ce49dd72 3257 outputContainer->Add(fhNCellNLocMaxN[i][j]) ;
3258 }
3259
5c46c992 3260 fhMassNLocMax1[i][j] = new TH2F(Form("hMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3261 Form("Invariant mass of splitted cluster with #it{NLM}=1 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3262 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3263 fhMassNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3264 fhMassNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
5c46c992 3265 outputContainer->Add(fhMassNLocMax1[i][j]) ;
3266
3267 fhMassNLocMax2[i][j] = new TH2F(Form("hMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3268 Form("Invariant mass of splitted cluster with #it{NLM}=2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3269 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3270 fhMassNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3271 fhMassNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
5c46c992 3272 outputContainer->Add(fhMassNLocMax2[i][j]) ;
3273
3274 fhMassNLocMaxN[i][j] = new TH2F(Form("hMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3275 Form("Invariant mass of splitted cluster with NLM>2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()),
5c46c992 3276 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3277 fhMassNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3278 fhMassNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
667432ef 3279 outputContainer->Add(fhMassNLocMaxN[i][j]) ;
c7e9a4e9 3280
3281 fhMassSplitENLocMax1[i][j] = new TH2F(Form("hMassSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3282 Form("Invariant mass of splitted cluster with #it{NLM}=1 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3283 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3284 fhMassSplitENLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3285 fhMassSplitENLocMax1[i][j]->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3286 outputContainer->Add(fhMassSplitENLocMax1[i][j]) ;
3287
3288 fhMassSplitENLocMax2[i][j] = new TH2F(Form("hMassSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3289 Form("Invariant mass of splitted cluster with #it{NLM}=2 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3290 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3291 fhMassSplitENLocMax2[i][j]->SetYTitle("#it{E} _{M} (GeV/#it{c}^{2})");
3292 fhMassSplitENLocMax2[i][j]->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3293 outputContainer->Add(fhMassSplitENLocMax2[i][j]) ;
3294
3295 fhMassSplitENLocMaxN[i][j] = new TH2F(Form("hMassSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3296 Form("Invariant mass of splitted cluster with NLM>2 vs #it{E}_{1}+#it{E}_{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3297 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3298 fhMassSplitENLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3299 fhMassSplitENLocMaxN[i][j]->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3300 outputContainer->Add(fhMassSplitENLocMaxN[i][j]) ;
1253480f 3301
3302 fhM02NLocMax1[i][j] = new TH2F(Form("hM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3303 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3304 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3305 fhM02NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3306 fhM02NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3307 outputContainer->Add(fhM02NLocMax1[i][j]) ;
3308
3309 fhM02NLocMax2[i][j] = new TH2F(Form("hM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3310 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3311 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3312 fhM02NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3313 fhM02NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3314 outputContainer->Add(fhM02NLocMax2[i][j]) ;
3315
3316 fhM02NLocMaxN[i][j] = new TH2F(Form("hM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3317 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3318 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3319 fhM02NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3320 fhM02NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3321 outputContainer->Add(fhM02NLocMaxN[i][j]) ;
3322
3323 fhAsymNLocMax1[i][j] = new TH2F(Form("hAsymNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3324 Form("Asymmetry of #it{NLM}=1 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3325 nptbins,ptmin,ptmax,200,-1,1);
25330263 3326 fhAsymNLocMax1[i][j]->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3327 fhAsymNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
1253480f 3328 outputContainer->Add(fhAsymNLocMax1[i][j]) ;
3329
3330 fhAsymNLocMax2[i][j] = new TH2F(Form("hAsymNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3331 Form("Asymmetry of #it{NLM}=2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3332 nptbins,ptmin,ptmax,200,-1,1);
25330263 3333 fhAsymNLocMax2[i][j]->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3334 fhAsymNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
1253480f 3335 outputContainer->Add(fhAsymNLocMax2[i][j]) ;
3336
3337 fhAsymNLocMaxN[i][j] = new TH2F(Form("hAsymNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3338 Form("Asymmetry of NLM>2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
3339 nptbins,ptmin,ptmax,200,-1,1);
25330263 3340 fhAsymNLocMaxN[i][j]->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3341 fhAsymNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
1253480f 3342 outputContainer->Add(fhAsymNLocMaxN[i][j]) ;
3343
3344 fhSplitEFractionNLocMax1[i][j] = new TH2F(Form("hSplitEFractionNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3345 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3346 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3347 fhSplitEFractionNLocMax1[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3348 fhSplitEFractionNLocMax1[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3349 outputContainer->Add(fhSplitEFractionNLocMax1[i][j]) ;
3350
3351 fhSplitEFractionNLocMax2[i][j] = new TH2F(Form("hSplitEFractionNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3352 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3353 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3354 fhSplitEFractionNLocMax2[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3355 fhSplitEFractionNLocMax2[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3356 outputContainer->Add(fhSplitEFractionNLocMax2[i][j]) ;
3357
3358 fhSplitEFractionNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3359 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3360 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3361 fhSplitEFractionNLocMaxN[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3362 fhSplitEFractionNLocMaxN[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3363 outputContainer->Add(fhSplitEFractionNLocMaxN[i][j]) ;
1253480f 3364
cb99fa55 3365 if(i==0 && j==0 )
1253480f 3366 {
cb99fa55 3367 if(m02On)
1253480f 3368 {
25330263 3369 fhMassM02CutNLocMax1 = new TH2F("hMassM02CutNLocMax1","Invariant mass of splitted cluster with #it{NLM}=1 vs E, M02 cut, no TM",
cb99fa55 3370 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3371 fhMassM02CutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3372 fhMassM02CutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3373 outputContainer->Add(fhMassM02CutNLocMax1) ;
1253480f 3374
25330263 3375 fhMassM02CutNLocMax2 = new TH2F("hMassM02CutNLocMax2","Invariant mass of splitted cluster with #it{NLM}=2 vs E, M02 cut, no TM",
cb99fa55 3376 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3377 fhMassM02CutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3378 fhMassM02CutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3379 outputContainer->Add(fhMassM02CutNLocMax2) ;
1253480f 3380
cb99fa55 3381 fhMassM02CutNLocMaxN = new TH2F("hMassM02CutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, M02 cut, no TM",
3382 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3383 fhMassM02CutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3384 fhMassM02CutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3385 outputContainer->Add(fhMassM02CutNLocMaxN) ;
3386
25330263 3387 fhAsymM02CutNLocMax1 = new TH2F("hAsymM02CutNLocMax1","Asymmetry of #it{NLM}=1 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3388 fhAsymM02CutNLocMax1->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3389 fhAsymM02CutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3390 outputContainer->Add(fhAsymM02CutNLocMax1) ;
3391
25330263 3392 fhAsymM02CutNLocMax2 = new TH2F("hAsymM02CutNLocMax2","Asymmetry of #it{NLM}=2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
3393 fhAsymM02CutNLocMax2->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3394 fhAsymM02CutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3395 outputContainer->Add(fhAsymM02CutNLocMax2) ;
3396
3397 fhAsymM02CutNLocMaxN = new TH2F("hAsymM02CutNLocMaxN","Asymmetry of NLM>2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1);
25330263 3398 fhAsymM02CutNLocMaxN->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3399 fhAsymM02CutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3400 outputContainer->Add(fhAsymM02CutNLocMaxN) ;
7350f5d6 3401
cb99fa55 3402 if(splitOn)
3403 {
25330263 3404 fhMassSplitECutNLocMax1 = new TH2F("hMassSplitECutNLocMax1","Invariant mass of splitted cluster with #it{NLM}=1 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
cb99fa55 3405 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3406 fhMassSplitECutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3407 fhMassSplitECutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3408 outputContainer->Add(fhMassSplitECutNLocMax1) ;
3409
25330263 3410 fhMassSplitECutNLocMax2 = new TH2F("hMassSplitECutNLocMax2","Invariant mass of splitted cluster with #it{NLM}=2 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
cb99fa55 3411 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3412 fhMassSplitECutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3413 fhMassSplitECutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3414 outputContainer->Add(fhMassSplitECutNLocMax2) ;
3415
25330263 3416 fhMassSplitECutNLocMaxN = new TH2F("hMassSplitECutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, (#it{E}_{1}+#it{E}_{2})/E cut, M02 cut, no TM",
cb99fa55 3417 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3418 fhMassSplitECutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3419 fhMassSplitECutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3420 outputContainer->Add(fhMassSplitECutNLocMaxN) ;
3421 }
3422 }//m02on
1253480f 3423
cb99fa55 3424 if(asyOn)
3425 {
25330263 3426 fhMassAsyCutNLocMax1 = new TH2F("hMassAsyCutNLocMax1","Invariant mass of splitted cluster with #it{NLM}=1 vs E, Asy cut, no TM",
cb99fa55 3427 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3428 fhMassAsyCutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3429 fhMassAsyCutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3430 outputContainer->Add(fhMassAsyCutNLocMax1) ;
3431
25330263 3432 fhMassAsyCutNLocMax2 = new TH2F("hMassAsyCutNLocMax2","Invariant mass of splitted cluster with #it{NLM}=2 vs E, Asy cut, no TM",
cb99fa55 3433 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3434 fhMassAsyCutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3435 fhMassAsyCutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3436 outputContainer->Add(fhMassAsyCutNLocMax2) ;
3437
2c36e041 3438 fhMassAsyCutNLocMaxN = new TH2F("hMassAsyCutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, Asy cut, no TM",
cb99fa55 3439 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3440 fhMassAsyCutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3441 fhMassAsyCutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3442 outputContainer->Add(fhMassAsyCutNLocMaxN) ;
3443
25330263 3444 fhM02AsyCutNLocMax1 = new TH2F("hM02AsyCutNLocMax1","#lambda_{0}^{2} of #it{NLM}=1 vs cluster Energy, AsyCut, no TM",
cb99fa55 3445 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3446 fhM02AsyCutNLocMax1->SetYTitle("#lambda_{0}^{2}");
25330263 3447 fhM02AsyCutNLocMax1->SetXTitle("#it{E} (GeV)");
cb99fa55 3448 outputContainer->Add(fhM02AsyCutNLocMax1) ;
3449
25330263 3450 fhM02AsyCutNLocMax2 = new TH2F("hM02AsyCutNLocMax2","#lambda_{0}^{2} of #it{NLM}=2 vs cluster Energy, AsyCut, no TM",
cb99fa55 3451 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3452 fhM02AsyCutNLocMax2->SetYTitle("#lambda_{0}^{2}");
25330263 3453 fhM02AsyCutNLocMax2->SetXTitle("#it{E} (GeV)");
cb99fa55 3454 outputContainer->Add(fhM02AsyCutNLocMax2) ;
3455
3456 fhM02AsyCutNLocMaxN = new TH2F("hM02AsyCutNLocMaxN","#lambda_{0}^{2} of NLM>2 vs cluster Energy, AsyCut, no TM",
3457 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3458 fhM02AsyCutNLocMaxN->SetYTitle("#lambda_{0}^{2}");
25330263 3459 fhM02AsyCutNLocMaxN->SetXTitle("#it{E} (GeV)");
cb99fa55 3460 outputContainer->Add(fhM02AsyCutNLocMaxN) ;
2c36e041 3461 }
3462
7350f5d6 3463 if(GetCaloPID()->GetSubClusterEnergyMinimum(0) > 0.1)
2c36e041 3464 {
25330263 3465 fhMassEnCutNLocMax1 = new TH2F("hMassEnCutNLocMax1",Form("Invariant mass of splitted cluster with #it{NLM}=1 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)),
7350f5d6 3466 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3467 fhMassEnCutNLocMax1->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3468 fhMassEnCutNLocMax1->SetXTitle("#it{E} (GeV)");
7350f5d6 3469 outputContainer->Add(fhMassEnCutNLocMax1) ;
3470
25330263 3471 fhMassEnCutNLocMax2 = new TH2F("hMassEnCutNLocMax2",Form("Invariant mass of splitted cluster with #it{NLM}=2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)),
7350f5d6 3472 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3473 fhMassEnCutNLocMax2->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3474 fhMassEnCutNLocMax2->SetXTitle("#it{E} (GeV)");
7350f5d6 3475 outputContainer->Add(fhMassEnCutNLocMax2) ;
3476
3477 fhMassEnCutNLocMaxN = new TH2F("hMassEnCutNLocMaxN",Form("Invariant mass of splitted cluster with NLM>2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3478 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3479 fhMassEnCutNLocMaxN->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3480 fhMassEnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
7350f5d6 3481 outputContainer->Add(fhMassEnCutNLocMaxN) ;
3482
25330263 3483 fhM02EnCutNLocMax1 = new TH2F("hM02EnCutNLocMax1",Form("#lambda_{0}^{2} of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)),
7350f5d6 3484 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3485 fhM02EnCutNLocMax1->SetYTitle("#lambda_{0}^{2}");
25330263 3486 fhM02EnCutNLocMax1->SetXTitle("#it{E} (GeV)");
7350f5d6 3487 outputContainer->Add(fhM02EnCutNLocMax1) ;
3488
25330263 3489 fhM02EnCutNLocMax2 = new TH2F("hM02EnCutNLocMax2",Form("#lambda_{0}^{2} of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)),
7350f5d6 3490 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3491 fhM02EnCutNLocMax2->SetYTitle("#lambda_{0}^{2}");
25330263 3492 fhM02EnCutNLocMax2->SetXTitle("#it{E} (GeV)");
7350f5d6 3493 outputContainer->Add(fhM02EnCutNLocMax2) ;
3494
3495 fhM02EnCutNLocMaxN = new TH2F("hM02EnCutNLocMaxN",Form("#lambda_{0}^{2} of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)),
3496 nptbins,ptmin,ptmax, ssbins,ssmin,ssmax);
3497 fhM02EnCutNLocMaxN->SetYTitle("#lambda_{0}^{2}");
25330263 3498 fhM02EnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
7350f5d6 3499 outputContainer->Add(fhM02EnCutNLocMaxN) ;
3500
25330263 3501 fhAsymEnCutNLocMax1 = new TH2F("hAsymEnCutNLocMax1",Form("Asymmetry of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0))
7350f5d6 3502 , nptbins,ptmin,ptmax,200,-1,1);
25330263 3503 fhAsymEnCutNLocMax1->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3504 fhAsymEnCutNLocMax1->SetXTitle("#it{E} (GeV)");
7350f5d6 3505 outputContainer->Add(fhAsymEnCutNLocMax1) ;
3506
25330263 3507 fhAsymEnCutNLocMax2 = new TH2F("hAsymEnCutNLocMax2",Form("Asymmetry of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1))
7350f5d6 3508 , nptbins,ptmin,ptmax,200,-1,1);
25330263 3509 fhAsymEnCutNLocMax2->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3510 fhAsymEnCutNLocMax2->SetXTitle("#it{E} (GeV)");
7350f5d6 3511 outputContainer->Add(fhAsymEnCutNLocMax2) ;
3512
3513 fhAsymEnCutNLocMaxN = new TH2F("hAsymEnCutNLocMaxN",Form("Asymmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2))
3514 , nptbins,ptmin,ptmax,200,-1,1);
25330263 3515 fhAsymEnCutNLocMaxN->SetYTitle("(#it{E}_{1}-#it{E}_{2})/(#it{E}_{1}+#it{E}_{2})");
3516 fhAsymEnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
7350f5d6 3517 outputContainer->Add(fhAsymEnCutNLocMaxN) ;
a6d3b0a8 3518
25330263 3519 fhSplitEFracEnCutNLocMax1 = new TH2F("hSplitEFracEnCutNLocMax1",Form("SplitEFracmetry of #it{NLM}=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0))
a6d3b0a8 3520 , nptbins,ptmin,ptmax,120,0,1.2);
25330263 3521 fhSplitEFracEnCutNLocMax1->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
3522 fhSplitEFracEnCutNLocMax1->SetXTitle("#it{E} (GeV)");
a6d3b0a8 3523 outputContainer->Add(fhSplitEFracEnCutNLocMax1) ;
2c36e041 3524
25330263 3525 fhSplitEFracEnCutNLocMax2 = new TH2F("hSplitEFracEnCutNLocMax2",Form("SplitEFracmetry of #it{NLM}=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1))
a6d3b0a8 3526 , nptbins,ptmin,ptmax,120,0,1.2);
25330263 3527 fhSplitEFracEnCutNLocMax2->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
3528 fhSplitEFracEnCutNLocMax2->SetXTitle("#it{E} (GeV)");
a6d3b0a8 3529 outputContainer->Add(fhSplitEFracEnCutNLocMax2) ;
3530
3531 fhSplitEFracEnCutNLocMaxN = new TH2F("hSplitEFracEnCutNLocMaxN",Form("SplitEFracmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2))
3532 , nptbins,ptmin,ptmax,120,0,1.2);
25330263 3533 fhSplitEFracEnCutNLocMaxN->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
3534 fhSplitEFracEnCutNLocMaxN->SetXTitle("#it{E} (GeV)");
a6d3b0a8 3535 outputContainer->Add(fhSplitEFracEnCutNLocMaxN) ;
2c36e041 3536 }
7350f5d6 3537
3538 } // no MC
aa12888f 3539
c7e9a4e9 3540 if(asyOn || m02On )
1253480f 3541 {
3542 fhMassAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3543 Form("Mass vs E, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3544 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3545 fhMassAfterCutsNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3546 fhMassAfterCutsNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3547 outputContainer->Add(fhMassAfterCutsNLocMax1[i][j]) ;
3548
3549 fhMassAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3550 Form("Mass vs E, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3551 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3552 fhMassAfterCutsNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3553 fhMassAfterCutsNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3554 outputContainer->Add(fhMassAfterCutsNLocMax2[i][j]) ;
3555
1253480f 3556 fhMassAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3557 Form("Mass vs E, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
3558 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3559 fhMassAfterCutsNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3560 fhMassAfterCutsNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3561 outputContainer->Add(fhMassAfterCutsNLocMaxN[i][j]) ;
c7e9a4e9 3562
3563 fhMassSplitEAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3564 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3565 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3566 fhMassSplitEAfterCutsNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3567 fhMassSplitEAfterCutsNLocMax1[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3568 outputContainer->Add(fhMassSplitEAfterCutsNLocMax1[i][j]) ;
3569
3570 fhMassSplitEAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3571 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3572 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3573 fhMassSplitEAfterCutsNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3574 fhMassSplitEAfterCutsNLocMax2[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3575 outputContainer->Add(fhMassSplitEAfterCutsNLocMax2[i][j]) ;
3576
3577 fhMassSplitEAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3578 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()),
c7e9a4e9 3579 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3580 fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3581 fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3582 outputContainer->Add(fhMassSplitEAfterCutsNLocMaxN[i][j]) ;
3583
1253480f 3584
3585 fhSplitEFractionAfterCutsNLocMax1[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3586 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 1, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3587 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3588 fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3589 fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3590 outputContainer->Add(fhSplitEFractionAfterCutsNLocMax1[i][j]) ;
3591
3592 fhSplitEFractionAfterCutsNLocMax2[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3593 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max = 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3594 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3595 fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3596 fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3597 outputContainer->Add(fhSplitEFractionAfterCutsNLocMax2[i][j]) ;
3598
3599 fhSplitEFractionAfterCutsNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3600 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs #it{E}_{cluster} for N max > 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3601 nptbins,ptmin,ptmax,120,0,1.2);
25330263 3602 fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetXTitle("#it{E}_{cluster} (GeV)");
3603 fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
1253480f 3604 outputContainer->Add(fhSplitEFractionAfterCutsNLocMaxN[i][j]) ;
3605 }
5c46c992 3606
0137016b 3607 fhMassM02NLocMax1[i][j] = new TH2F(Form("hMassM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3608 Form("Invariant mass of splitted cluster with #it{NLM}=1, #lambda_{0}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3609 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3610 fhMassM02NLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
0137016b 3611 fhMassM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}");
3612 outputContainer->Add(fhMassM02NLocMax1[i][j]) ;
3613
3614 fhMassM02NLocMax2[i][j] = new TH2F(Form("hMassM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3615 Form("Invariant mass of splitted cluster with #it{NLM}=2, #lambda_{0}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3616 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3617 fhMassM02NLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
0137016b 3618 fhMassM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}");
3619 outputContainer->Add(fhMassM02NLocMax2[i][j]) ;
3620
3621 fhMassM02NLocMaxN[i][j] = new TH2F(Form("hMassM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3622 Form("Invariant mass of splitted cluster with NLM>2, vs #lambda_{0}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
0137016b 3623 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3624 fhMassM02NLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
0137016b 3625 fhMassM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}");
3626 outputContainer->Add(fhMassM02NLocMaxN[i][j]) ;
3627
8e81c2cf 3628 if(fFillSSExtraHisto)
3629 {
3630 fhMassDispEtaNLocMax1[i][j] = new TH2F(Form("hMassDispEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3631 Form("Invariant mass of splitted cluster with #it{NLM}=1, #sigma_{#eta #eta}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3632 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3633 fhMassDispEtaNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3634 fhMassDispEtaNLocMax1[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3635 outputContainer->Add(fhMassDispEtaNLocMax1[i][j]) ;
3636
3637 fhMassDispEtaNLocMax2[i][j] = new TH2F(Form("hMassDispEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3638 Form("Invariant mass of splitted cluster with #it{NLM}=2 #sigma_{#eta #eta}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3639 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3640 fhMassDispEtaNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3641 fhMassDispEtaNLocMax2[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3642 outputContainer->Add(fhMassDispEtaNLocMax2[i][j]) ;
3643
3644 fhMassDispEtaNLocMaxN[i][j] = new TH2F(Form("hMassDispEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
2a77f6f4 3645 Form("Invariant mass of splitted cluster with NLM>2, #sigma_{#eta #eta}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3646 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3647 fhMassDispEtaNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3648 fhMassDispEtaNLocMaxN[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
3649 outputContainer->Add(fhMassDispEtaNLocMaxN[i][j]) ;
3650
3651 fhMassDispPhiNLocMax1[i][j] = new TH2F(Form("hMassDispPhiNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3652 Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3653 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3654 fhMassDispPhiNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3655 fhMassDispPhiNLocMax1[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3656 outputContainer->Add(fhMassDispPhiNLocMax1[i][j]) ;
3657
3658 fhMassDispPhiNLocMax2[i][j] = new TH2F(Form("hMassDispPhiNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3659 Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3660 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3661 fhMassDispPhiNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3662 fhMassDispPhiNLocMax2[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3663 outputContainer->Add(fhMassDispPhiNLocMax2[i][j]) ;
3664
3665 fhMassDispPhiNLocMaxN[i][j] = new TH2F(Form("hMassDispPhiNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3666 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()),
3667 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 3668 fhMassDispPhiNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3669 fhMassDispPhiNLocMaxN[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
3670 outputContainer->Add(fhMassDispPhiNLocMaxN[i][j]) ;
3671
3672 fhMassDispAsyNLocMax1[i][j] = new TH2F(Form("hMassDispAsyNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3673 Form("Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3674 200,-1,1,mbins,mmin,mmax);
25330263 3675 fhMassDispAsyNLocMax1[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3676 fhMassDispAsyNLocMax1[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3677 outputContainer->Add(fhMassDispAsyNLocMax1[i][j]) ;
3678
3679 fhMassDispAsyNLocMax2[i][j] = new TH2F(Form("hMassDispAsyNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
c8710850 3680 Form("Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
8e81c2cf 3681 200,-1,1,mbins,mmin,mmax);
25330263 3682 fhMassDispAsyNLocMax2[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
8e81c2cf 3683 fhMassDispAsyNLocMax2[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
3684 outputContainer->Add(fhMassDispAsyNLocMax2[i][j]) ;
3685
3686 fhMassDispAsyNLocMaxN[i][j] = new TH2F(Form("hMassDispAsyNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3687 Form("Invariant mass of N>2 local maxima cells vsA = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s %s",ptype[i].Data(),sMatched[j].Data()),
3688 200,-1,1,mbins,mmin,mmax);
25330263 3689 fhMassDispAsyNLocMaxN[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3690 fhMassDispAsyNLocMaxN[i][j]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
8e81c2cf 3691 outputContainer->Add(fhMassDispAsyNLocMaxN[i][j]) ;
3692 }
d2655d46 3693
fc01318e 3694
b2e375c7 3695 if(i > 0 && fFillMCHisto) // skip first entry in array, general case not filled
883411b2 3696 {
3697 fhMCGenFracNLocMax1[i][j] = new TH2F(Form("hMCGenFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3698 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3699 nptbins,ptmin,ptmax,200,0,2);
25330263 3700 fhMCGenFracNLocMax1[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3701 fhMCGenFracNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
883411b2 3702 outputContainer->Add(fhMCGenFracNLocMax1[i][j]) ;
3703
3704 fhMCGenFracNLocMax2[i][j] = new TH2F(Form("hMCGenFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3705 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3706 nptbins,ptmin,ptmax,200,0,2);
25330263 3707 fhMCGenFracNLocMax2[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3708 fhMCGenFracNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
883411b2 3709 outputContainer->Add(fhMCGenFracNLocMax2[i][j]) ;
3710
883411b2 3711 fhMCGenFracNLocMaxN[i][j] = new TH2F(Form("hMCGenFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3712 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3713 nptbins,ptmin,ptmax,200,0,2);
25330263 3714 fhMCGenFracNLocMaxN[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3715 fhMCGenFracNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
883411b2 3716 outputContainer->Add(fhMCGenFracNLocMaxN[i][j]) ;
4914e781 3717
3718 fhMCGenFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3719 Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
3720 nptbins,ptmin,ptmax,200,0,2);
25330263 3721 fhMCGenFracNLocMax1NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3722 fhMCGenFracNLocMax1NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3723 outputContainer->Add(fhMCGenFracNLocMax1NoOverlap[i][j]) ;
3724
3725 fhMCGenFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3726 Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3727 nptbins,ptmin,ptmax,200,0,2);
25330263 3728 fhMCGenFracNLocMax2NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3729 fhMCGenFracNLocMax2NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3730 outputContainer->Add(fhMCGenFracNLocMax2NoOverlap[i][j]) ;
3731
3732 fhMCGenFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3733 Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
3734 nptbins,ptmin,ptmax,200,0,2);
25330263 3735 fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
3736 fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3737 outputContainer->Add(fhMCGenFracNLocMaxNNoOverlap[i][j]) ;
1253480f 3738
4914e781 3739
5094c724 3740 fhMCGenSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3741 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3742 nptbins,ptmin,ptmax,200,0,2);
25330263 3743 fhMCGenSplitEFracNLocMax1[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3744 fhMCGenSplitEFracNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
5094c724 3745 outputContainer->Add(fhMCGenSplitEFracNLocMax1[i][j]) ;
3746
3747 fhMCGenSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3748 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3749 nptbins,ptmin,ptmax,200,0,2);
25330263 3750 fhMCGenSplitEFracNLocMax2[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3751 fhMCGenSplitEFracNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
5094c724 3752 outputContainer->Add(fhMCGenSplitEFracNLocMax2[i][j]) ;
3753
5094c724 3754 fhMCGenSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3755 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3756 nptbins,ptmin,ptmax,200,0,2);
25330263 3757 fhMCGenSplitEFracNLocMaxN[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3758 fhMCGenSplitEFracNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
5094c724 3759 outputContainer->Add(fhMCGenSplitEFracNLocMaxN[i][j]) ;
1253480f 3760
4914e781 3761 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3762 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3763 nptbins,ptmin,ptmax,200,0,2);
25330263 3764 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3765 fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3766 outputContainer->Add(fhMCGenSplitEFracNLocMax1NoOverlap[i][j]) ;
3767
3768 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3769 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3770 nptbins,ptmin,ptmax,200,0,2);
25330263 3771 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3772 fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3773 outputContainer->Add(fhMCGenSplitEFracNLocMax2NoOverlap[i][j]) ;
3774
3775 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3776 Form("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3777 nptbins,ptmin,ptmax,200,0,2);
25330263 3778 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
3779 fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetXTitle("#it{E} (GeV)");
4914e781 3780 outputContainer->Add(fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]) ;
3781
bb2d339b 3782 fhMCGenEFracvsSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3783 Form("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3784 200,0,2,200,0,2);
25330263 3785 fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetYTitle("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco}");
3786 fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
bb2d339b 3787 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax1[i][j]) ;
3788
3789 fhMCGenEFracvsSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3790 Form("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3791 200,0,2,200,0,2);
25330263 3792 fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetYTitle("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco}");
3793 fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
bb2d339b 3794 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax2[i][j]) ;
3795
3796
3797 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3798 Form("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco} vs #it{E}_{gen} / #it{E}_{reco} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3799 200,0,2,200,0,2);
25330263 3800 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetYTitle("(#it{E}_{1 split}+#it{E}_{2 split})/#it{E}_{reco}");
3801 fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
bb2d339b 3802 outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMaxN[i][j]) ;
3803
3804
3805 fhMCGenEvsSplitENLocMax1[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3806 Form("#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3807 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 3808 fhMCGenEvsSplitENLocMax1[i][j] ->SetYTitle("#it{E}_{1 split}+#it{E}_{2 split} (GeV)");
3809 fhMCGenEvsSplitENLocMax1[i][j] ->SetXTitle("#it{E}_{gen} (GeV)");
bb2d339b 3810 outputContainer->Add(fhMCGenEvsSplitENLocMax1[i][j]) ;
3811
3812 fhMCGenEvsSplitENLocMax2[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3813 Form("#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3814 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 3815 fhMCGenEvsSplitENLocMax2[i][j] ->SetYTitle("#it{E}_{1 split}+#it{E}_{2 split} (GeV)");
3816 fhMCGenEvsSplitENLocMax2[i][j] ->SetXTitle("#it{E}_{gen} (GeV)");
bb2d339b 3817 outputContainer->Add(fhMCGenEvsSplitENLocMax2[i][j]) ;
3818
3819
3820 fhMCGenEvsSplitENLocMaxN[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3821 Form("#it{E}_{1 split}+#it{E}_{2 split} vs #it{E}_{gen} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()),
1253480f 3822 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 3823 fhMCGenEvsSplitENLocMaxN[i][j] ->SetYTitle("#it{E}_{1 split}+#it{E}_{2 split} (GeV)");
3824 fhMCGenEvsSplitENLocMaxN[i][j] ->SetXTitle("#it{E}_{gen} (GeV)");
bb2d339b 3825 outputContainer->Add(fhMCGenEvsSplitENLocMaxN[i][j]) ;
883411b2 3826 }
ce49dd72 3827
1253480f 3828 // Histograms after cluster identification
17f5b4b6 3829
17f5b4b6 3830
1253480f 3831 // Pi0 //
17f5b4b6 3832
c8710850 3833 fhM02Pi0NLocMax1[i][j] = new TH2F(Form("hM02Pi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3834 Form("#lambda_{0}^{2} vs #it{E}, %s, for NLM = 1",ptype[i].Data()),
1253480f 3835 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3836 fhM02Pi0NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3837 fhM02Pi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
17f5b4b6 3838 outputContainer->Add(fhM02Pi0NLocMax1[i][j]) ;
5c46c992 3839
c8710850 3840 fhM02Pi0NLocMax2[i][j] = new TH2F(Form("hM02Pi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3841 Form("#lambda_{0}^{2} vs #it{E}, %s, for NLM = 2",ptype[i].Data()),
1253480f 3842 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3843 fhM02Pi0NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3844 fhM02Pi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3845 outputContainer->Add(fhM02Pi0NLocMax2[i][j]) ;
5c46c992 3846
c8710850 3847 fhM02Pi0NLocMaxN[i][j] = new TH2F(Form("hM02Pi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3848 Form("#lambda_{0}^{2} vs #it{E}, %s, for NLM > 2",ptype[i].Data()),
1253480f 3849 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
c8710850 3850 fhM02Pi0NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3851 fhM02Pi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3852 outputContainer->Add(fhM02Pi0NLocMaxN[i][j]) ;
5c46c992 3853
c8710850 3854 fhMassPi0NLocMax1[i][j] = new TH2F(Form("hMassPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3855 Form("Mass vs #it{E}, %s, for NLM = 1",ptype[i].Data()),
1253480f 3856 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3857 fhMassPi0NLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3858 fhMassPi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3859 outputContainer->Add(fhMassPi0NLocMax1[i][j]) ;
bb2d339b 3860
c8710850 3861 fhMassPi0NLocMax2[i][j] = new TH2F(Form("hMassPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3862 Form("Mass vs #it{E} , %s, for NLM = 2",ptype[i].Data()),
1253480f 3863 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3864 fhMassPi0NLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3865 fhMassPi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3866 outputContainer->Add(fhMassPi0NLocMax2[i][j]) ;
bb2d339b 3867
c8710850 3868 fhMassPi0NLocMaxN[i][j] = new TH2F(Form("hMassPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3869 Form("Mass vs #it{E}, %s, for NLM > 2",ptype[i].Data()),
1253480f 3870 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3871 fhMassPi0NLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3872 fhMassPi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3873 outputContainer->Add(fhMassPi0NLocMaxN[i][j]) ;
c7e9a4e9 3874
3875 fhMassSplitEPi0NLocMax1[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3876 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s, for NLM = 1",ptype[i].Data()),
c7e9a4e9 3877 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3878 fhMassSplitEPi0NLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3879 fhMassSplitEPi0NLocMax1[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3880 outputContainer->Add(fhMassSplitEPi0NLocMax1[i][j]) ;
3881
3882 fhMassSplitEPi0NLocMax2[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3883 Form("Mass vs #it{E}_{1}+#it{E}_{2} , %s, for NLM = 2",ptype[i].Data()),
c7e9a4e9 3884 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3885 fhMassSplitEPi0NLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3886 fhMassSplitEPi0NLocMax2[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3887 outputContainer->Add(fhMassSplitEPi0NLocMax2[i][j]) ;
3888
3889 fhMassSplitEPi0NLocMaxN[i][j] = new TH2F(Form("hMassSplitEPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 3890 Form("Mass vs #it{E}_{1}+#it{E}_{2}, %s, for NLM > 2",ptype[i].Data()),
c7e9a4e9 3891 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3892 fhMassSplitEPi0NLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3893 fhMassSplitEPi0NLocMaxN[i][j] ->SetXTitle("#it{E}_{1}+#it{E}_{2} (GeV)");
c7e9a4e9 3894 outputContainer->Add(fhMassSplitEPi0NLocMaxN[i][j]) ;
bb2d339b 3895
c8710850 3896 fhAsyPi0NLocMax1[i][j] = new TH2F(Form("hAsyPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3897 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
e671adc2 3898 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3899 fhAsyPi0NLocMax1[i][j] ->SetYTitle("#it{A}");
3900 fhAsyPi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3901 outputContainer->Add(fhAsyPi0NLocMax1[i][j]) ;
e671adc2 3902
c8710850 3903 fhAsyPi0NLocMax2[i][j] = new TH2F(Form("hAsyPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3904 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
e671adc2 3905 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3906 fhAsyPi0NLocMax2[i][j] ->SetYTitle("#it{A}");
3907 fhAsyPi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3908 outputContainer->Add(fhAsyPi0NLocMax2[i][j]) ;
e671adc2 3909
c8710850 3910 fhAsyPi0NLocMaxN[i][j] = new TH2F(Form("hAsyPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
1253480f 3911 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
e671adc2 3912 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3913 fhAsyPi0NLocMaxN[i][j] ->SetYTitle("#it{A}");
3914 fhAsyPi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
c8710850 3915 outputContainer->Add(fhAsyPi0NLocMaxN[i][j]) ;
e671adc2 3916
1253480f 3917 if(fFillNCellHisto)
3918 {
3919 fhNCellPi0NLocMax1[i][j] = new TH2F(Form("hNCellPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3920 Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()),
3921 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3922 fhNCellPi0NLocMax1[i][j] ->SetYTitle("#it{N} cells");
3923 fhNCellPi0NLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3924 outputContainer->Add(fhNCellPi0NLocMax1[i][j]) ;
3925
3926 fhNCellPi0NLocMax2[i][j] = new TH2F(Form("hNCellPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3927 Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()),
3928 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3929 fhNCellPi0NLocMax2[i][j] ->SetYTitle("#it{N} cells");
3930 fhNCellPi0NLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3931 outputContainer->Add(fhNCellPi0NLocMax2[i][j]) ;
3932
3933 fhNCellPi0NLocMaxN[i][j] = new TH2F(Form("hNCellPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3934 Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()),
3935 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 3936 fhNCellPi0NLocMaxN[i][j] ->SetYTitle("#it{N} cells");
3937 fhNCellPi0NLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3938 outputContainer->Add(fhNCellPi0NLocMaxN[i][j]) ;
3939 }
3940
3941 // Eta
3942
3943 if(fFillIdEtaHisto)
3944 {
3945 fhM02EtaNLocMax1[i][j] = new TH2F(Form("hM02EtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3946 Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
3947 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3948 fhM02EtaNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3949 fhM02EtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3950 outputContainer->Add(fhM02EtaNLocMax1[i][j]) ;
3951
3952
3953 fhM02EtaNLocMax2[i][j] = new TH2F(Form("hM02EtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3954 Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
3955 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3956 fhM02EtaNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3957 fhM02EtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3958 outputContainer->Add(fhM02EtaNLocMax2[i][j]) ;
3959
3960 fhM02EtaNLocMaxN[i][j] = new TH2F(Form("hM02EtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3961 Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
3962 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
3963 fhM02EtaNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 3964 fhM02EtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3965 outputContainer->Add(fhM02EtaNLocMaxN[i][j]) ;
3966
3967 fhMassEtaNLocMax1[i][j] = new TH2F(Form("hMassEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3968 Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()),
3969 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3970 fhMassEtaNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3971 fhMassEtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3972 outputContainer->Add(fhMassEtaNLocMax1[i][j]) ;
3973
3974 fhMassEtaNLocMax2[i][j] = new TH2F(Form("hMassEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3975 Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()),
3976 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3977 fhMassEtaNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3978 fhMassEtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3979 outputContainer->Add(fhMassEtaNLocMax2[i][j]) ;
3980
3981 fhMassEtaNLocMaxN[i][j] = new TH2F(Form("hMassEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
3982 Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()),
3983 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3984 fhMassEtaNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
3985 fhMassEtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3986 outputContainer->Add(fhMassEtaNLocMaxN[i][j]) ;
3987
3988 fhAsyEtaNLocMax1[i][j] = new TH2F(Form("hAsyEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
3989 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
3990 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3991 fhAsyEtaNLocMax1[i][j] ->SetYTitle("#it{A}");
3992 fhAsyEtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 3993 outputContainer->Add(fhAsyEtaNLocMax1[i][j]) ;
3994
3995 fhAsyEtaNLocMax2[i][j] = new TH2F(Form("hAsyEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
3996 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
3997 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 3998 fhAsyEtaNLocMax2[i][j] ->SetYTitle("#it{A}");
3999 fhAsyEtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4000 outputContainer->Add(fhAsyEtaNLocMax2[i][j]) ;
4001
4002 fhAsyEtaNLocMaxN[i][j] = new TH2F(Form("hAsyEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4003 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
4004 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4005 fhAsyEtaNLocMaxN[i][j] ->SetYTitle("#it{A}");
4006 fhAsyEtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4007 outputContainer->Add(fhAsyEtaNLocMaxN[i][j]) ;
4008
4009 if(fFillNCellHisto)
4010 {
4011 fhNCellEtaNLocMax1[i][j] = new TH2F(Form("hNCellEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4012 Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()),
4013 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 4014 fhNCellEtaNLocMax1[i][j] ->SetYTitle("#it{N} cells");
4015 fhNCellEtaNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4016 outputContainer->Add(fhNCellEtaNLocMax1[i][j]) ;
4017
4018 fhNCellEtaNLocMax2[i][j] = new TH2F(Form("hNCellEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4019 Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()),
4020 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 4021 fhNCellEtaNLocMax2[i][j] ->SetYTitle("#it{N} cells");
4022 fhNCellEtaNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4023 outputContainer->Add(fhNCellEtaNLocMax2[i][j]) ;
4024
4025 fhNCellEtaNLocMaxN[i][j] = new TH2F(Form("hNCellEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4026 Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()),
4027 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 4028 fhNCellEtaNLocMaxN[i][j] ->SetYTitle("#it{N} cells");
4029 fhNCellEtaNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4030 outputContainer->Add(fhNCellEtaNLocMaxN[i][j]) ;
4031
4032 }
4033 }
4034
4035 if(fFillIdConvHisto)
4036 {
4037 fhM02ConNLocMax1[i][j] = new TH2F(Form("hM02ConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4038 Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()),
4039 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4040 fhM02ConNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4041 fhM02ConNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4042 outputContainer->Add(fhM02ConNLocMax1[i][j]) ;
4043
4044 fhM02ConNLocMax2[i][j] = new TH2F(Form("hM02ConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4045 Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()),
4046 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4047 fhM02ConNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4048 fhM02ConNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4049 outputContainer->Add(fhM02ConNLocMax2[i][j]) ;
4050
4051 fhM02ConNLocMaxN[i][j] = new TH2F(Form("hM02ConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4052 Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()),
4053 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
4054 fhM02ConNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4055 fhM02ConNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4056 outputContainer->Add(fhM02ConNLocMaxN[i][j]) ;
4057
4058
4059 fhMassConNLocMax1[i][j] = new TH2F(Form("hMassConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4060 Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()),
4061 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4062 fhMassConNLocMax1[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4063 fhMassConNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4064 outputContainer->Add(fhMassConNLocMax1[i][j]) ;
4065
4066 fhMassConNLocMax2[i][j] = new TH2F(Form("hMassConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4067 Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()),
4068 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4069 fhMassConNLocMax2[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4070 fhMassConNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4071 outputContainer->Add(fhMassConNLocMax2[i][j]) ;
4072
4073 fhMassConNLocMaxN[i][j] = new TH2F(Form("hMassConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4074 Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()),
4075 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4076 fhMassConNLocMaxN[i][j] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4077 fhMassConNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4078 outputContainer->Add(fhMassConNLocMaxN[i][j]) ;
4079
4080 fhAsyConNLocMax1[i][j] = new TH2F(Form("hAsyConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
4081 Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()),
4082 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4083 fhAsyConNLocMax1[i][j] ->SetYTitle("#it{A}");
4084 fhAsyConNLocMax1[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4085 outputContainer->Add(fhAsyConNLocMax1[i][j]) ;
4086
4087 fhAsyConNLocMax2[i][j] = new TH2F(Form("hAsyConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
4088 Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()),
4089 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4090 fhAsyConNLocMax2[i][j] ->SetYTitle("#it{A}");
4091 fhAsyConNLocMax2[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4092 outputContainer->Add(fhAsyConNLocMax2[i][j]) ;
4093
4094 fhAsyConNLocMaxN[i][j] = new TH2F(Form("hAsyConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4095 Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()),
4096 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 4097 fhAsyConNLocMaxN[i][j] ->SetYTitle("#it{A}");
4098 fhAsyConNLocMaxN[i][j] ->SetXTitle("#it{E} (GeV)");
1253480f 4099 outputContainer->Add(fhAsyConNLocMaxN[i][j]) ;
4100
4101 }
e671adc2 4102
5c46c992 4103 } // matched, not matched
4104
19391b8c 4105 if(fFillEbinHisto)
4106 {
883411b2 4107 for(Int_t j = 0; j < 4; j++)
19391b8c 4108 {
53f2c382 4109
fc01318e 4110 fhMassSplitEFractionNLocMax1Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax1%sEbin%d",pname[i].Data(),j),
25330263 4111 Form("Invariant mass of 2 highest energy cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4112 120,0,1.2,mbins,mmin,mmax);
25330263 4113 fhMassSplitEFractionNLocMax1Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4114 fhMassSplitEFractionNLocMax1Ebin[i][j]->SetXTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
19391b8c 4115 outputContainer->Add(fhMassSplitEFractionNLocMax1Ebin[i][j]) ;
883411b2 4116
fc01318e 4117 fhMassSplitEFractionNLocMax2Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax2%sEbin%d",pname[i].Data(),j),
25330263 4118 Form("Invariant mass of 2 local maxima cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4119 120,0,1.2,mbins,mmin,mmax);
25330263 4120 fhMassSplitEFractionNLocMax2Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4121 fhMassSplitEFractionNLocMax2Ebin[i][j]->SetXTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
19391b8c 4122 outputContainer->Add(fhMassSplitEFractionNLocMax2Ebin[i][j]) ;
883411b2 4123
fc01318e 4124 fhMassSplitEFractionNLocMaxNEbin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMaxN%sEbin%d",pname[i].Data(),j),
25330263 4125 Form("Invariant mass of N>2 local maxima cells vs (#it{E}_{1}+#it{E}_{2})/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4126 120,0,1.2,mbins,mmin,mmax);
25330263 4127 fhMassSplitEFractionNLocMaxNEbin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4128 fhMassSplitEFractionNLocMaxNEbin[i][j]->SetXTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
19391b8c 4129 outputContainer->Add(fhMassSplitEFractionNLocMaxNEbin[i][j]) ;
883411b2 4130
b2e375c7 4131 if(i>0 && fFillMCHisto) // skip first entry in array, general case not filled
fc01318e 4132 {
4133 fhMCGenFracNLocMaxEbin[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%d",pname[i].Data(),j),
be894c1d 4134 Form("NLM vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4135 200,0,2,nMaxBins,0,nMaxBins);
25330263 4136 fhMCGenFracNLocMaxEbin[i][j]->SetYTitle("#it{NLM}");
4137 fhMCGenFracNLocMaxEbin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4138 outputContainer->Add(fhMCGenFracNLocMaxEbin[i][j]) ;
fc01318e 4139
4140 fhMCGenFracNLocMaxEbinMatched[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%dMatched",pname[i].Data(),j),
be894c1d 4141 Form("NLM vs E, %s, %s, matched to a track",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4142 200,0,2,nMaxBins,0,nMaxBins);
25330263 4143 fhMCGenFracNLocMaxEbinMatched[i][j]->SetYTitle("#it{NLM}");
4144 fhMCGenFracNLocMaxEbinMatched[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4145 outputContainer->Add(fhMCGenFracNLocMaxEbinMatched[i][j]) ;
fc01318e 4146
4147 fhMassMCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax1%sEbin%d",pname[i].Data(),j),
be894c1d 4148 Form("Invariant mass of 2 highest energy cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4149 200,0,2,mbins,mmin,mmax);
25330263 4150 fhMassMCGenFracNLocMax1Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4151 fhMassMCGenFracNLocMax1Ebin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4152 outputContainer->Add(fhMassMCGenFracNLocMax1Ebin[i][j]) ;
fc01318e 4153
4154 fhMassMCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax2%sEbin%d",pname[i].Data(),j),
be894c1d 4155 Form("Invariant mass of 2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4156 200,0,2,mbins,mmin,mmax);
25330263 4157 fhMassMCGenFracNLocMax2Ebin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4158 fhMassMCGenFracNLocMax2Ebin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4159 outputContainer->Add(fhMassMCGenFracNLocMax2Ebin[i][j]) ;
fc01318e 4160
4161 fhMassMCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hMassMCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j),
be894c1d 4162 Form("Invariant mass of N>2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4163 200,0,2,mbins,mmin,mmax);
25330263 4164 fhMassMCGenFracNLocMaxNEbin[i][j]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4165 fhMassMCGenFracNLocMaxNEbin[i][j]->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4166 outputContainer->Add(fhMassMCGenFracNLocMaxNEbin[i][j]) ;
fc01318e 4167
4168 fhM02MCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax1%sEbin%d",pname[i].Data(),j),
be894c1d 4169 Form("#lambda_{0}^{2} vs E for N max = 1 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4170 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4171 fhM02MCGenFracNLocMax1Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4172 fhM02MCGenFracNLocMax1Ebin[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4173 outputContainer->Add(fhM02MCGenFracNLocMax1Ebin[i][j]) ;
fc01318e 4174
4175 fhM02MCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax2%sEbin%d",pname[i].Data(),j),
be894c1d 4176 Form("#lambda_{0}^{2} vs E for N max = 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4177 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4178 fhM02MCGenFracNLocMax2Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4179 fhM02MCGenFracNLocMax2Ebin[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4180 outputContainer->Add(fhM02MCGenFracNLocMax2Ebin[i][j]) ;
fc01318e 4181
4182 fhM02MCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hM02MCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j),
be894c1d 4183 Form("#lambda_{0}^{2} vs E for N max > 2 %s, %s",ptype[i].Data(),sEBin[j].Data()),
19391b8c 4184 200,0,2,ssbins,ssmin,ssmax);
fc01318e 4185 fhM02MCGenFracNLocMaxNEbin[i][j] ->SetYTitle("#lambda_{0}^{2}");
25330263 4186 fhM02MCGenFracNLocMaxNEbin[i][j] ->SetXTitle("#it{E}_{gen} / #it{E}_{reco}");
19391b8c 4187 outputContainer->Add(fhM02MCGenFracNLocMaxNEbin[i][j]) ;
fc01318e 4188 }
883411b2 4189 }
19391b8c 4190 }
5c46c992 4191 } // MC particle list
1253480f 4192
4193 if(fFillHighMultHisto)
4194 {
4195 // E vs centrality
4196
4197 fhCentralityPi0NLocMax1 = new TH2F("hCentralityPi0NLocMax1",
25330263 4198 "E vs Centrality, selected pi0 cluster with #it{NLM}=1",
1253480f 4199 nptbins,ptmin,ptmax,100,0,100);
25330263 4200 fhCentralityPi0NLocMax1->SetYTitle("#it{Centrality}");
4201 fhCentralityPi0NLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4202 outputContainer->Add(fhCentralityPi0NLocMax1) ;
4203
4204 fhCentralityPi0NLocMax2 = new TH2F("hCentralityPi0NLocMax2",
25330263 4205 "E vs Centrality, selected pi0 cluster with #it{NLM}=2",
1253480f 4206 nptbins,ptmin,ptmax,100,0,100);
25330263 4207 fhCentralityPi0NLocMax2->SetYTitle("#it{Centrality}");
4208 fhCentralityPi0NLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4209 outputContainer->Add(fhCentralityPi0NLocMax2) ;
4210
4211 fhCentralityPi0NLocMaxN = new TH2F("hCentralityPi0NLocMaxN",
4212 "E vs Centrality, selected pi0 cluster with NLM>1",
4213 nptbins,ptmin,ptmax,100,0,100);
25330263 4214 fhCentralityPi0NLocMaxN->SetYTitle("#it{Centrality}");
4215 fhCentralityPi0NLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4216 outputContainer->Add(fhCentralityPi0NLocMaxN) ;
4217
4218 if(fFillIdEtaHisto)
4219 {
4220 fhCentralityEtaNLocMax1 = new TH2F("hCentralityEtaNLocMax1",
25330263 4221 "E vs Centrality, selected pi0 cluster with #it{NLM}=1",
1253480f 4222 nptbins,ptmin,ptmax,100,0,100);
25330263 4223 fhCentralityEtaNLocMax1->SetYTitle("#it{Centrality}");
4224 fhCentralityEtaNLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4225 outputContainer->Add(fhCentralityEtaNLocMax1) ;
4226
4227 fhCentralityEtaNLocMax2 = new TH2F("hCentralityEtaNLocMax2",
25330263 4228 "E vs Centrality, selected pi0 cluster with #it{NLM}=2",
1253480f 4229 nptbins,ptmin,ptmax,100,0,100);
25330263 4230 fhCentralityEtaNLocMax2->SetYTitle("#it{Centrality}");
4231 fhCentralityEtaNLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4232 outputContainer->Add(fhCentralityEtaNLocMax2) ;
4233
4234 fhCentralityEtaNLocMaxN = new TH2F("hCentralityEtaNLocMaxN",
4235 "E vs Centrality, selected pi0 cluster with NLM>1",
4236 nptbins,ptmin,ptmax,100,0,100);
25330263 4237 fhCentralityEtaNLocMaxN->SetYTitle("#it{Centrality}");
4238 fhCentralityEtaNLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4239 outputContainer->Add(fhCentralityEtaNLocMaxN) ;
4240 }
4241
4242 // E vs Event plane angle
4243
25330263 4244 fhEventPlanePi0NLocMax1 = new TH2F("hEventPlanePi0NLocMax1","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=1",
1253480f 4245 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4246 fhEventPlanePi0NLocMax1->SetYTitle("#it{Event Plane Angle} (rad)");
4247 fhEventPlanePi0NLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4248 outputContainer->Add(fhEventPlanePi0NLocMax1) ;
4249
25330263 4250 fhEventPlanePi0NLocMax2 = new TH2F("hEventPlanePi0NLocMax2","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=2",
1253480f 4251 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4252 fhEventPlanePi0NLocMax2->SetYTitle("#it{Event Plane Angle} (rad)");
4253 fhEventPlanePi0NLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4254 outputContainer->Add(fhEventPlanePi0NLocMax2) ;
4255
4256 fhEventPlanePi0NLocMaxN = new TH2F("hEventPlanePi0NLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4257 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4258 fhEventPlanePi0NLocMaxN->SetYTitle("#it{Event Plane Angle} (rad)");
4259 fhEventPlanePi0NLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4260 outputContainer->Add(fhEventPlanePi0NLocMaxN) ;
4261
4262 if(fFillIdEtaHisto)
4263 {
25330263 4264 fhEventPlaneEtaNLocMax1 = new TH2F("hEventPlaneEtaNLocMax1","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=1",
1253480f 4265 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4266 fhEventPlaneEtaNLocMax1->SetYTitle("#it{Event Plane Angle} (rad)");
4267 fhEventPlaneEtaNLocMax1->SetXTitle("#it{E} (GeV)");
1253480f 4268 outputContainer->Add(fhEventPlaneEtaNLocMax1) ;
4269
25330263 4270 fhEventPlaneEtaNLocMax2 = new TH2F("hEventPlaneEtaNLocMax2","E vs Event Plane Angle, selected pi0 cluster with #it{NLM}=2",
1253480f 4271 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4272 fhEventPlaneEtaNLocMax2->SetYTitle("#it{Event Plane Angle} (rad)");
4273 fhEventPlaneEtaNLocMax2->SetXTitle("#it{E} (GeV)");
1253480f 4274 outputContainer->Add(fhEventPlaneEtaNLocMax2) ;
4275
4276 fhEventPlaneEtaNLocMaxN = new TH2F("hEventPlaneEtaNLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1",
4277 nptbins,ptmin,ptmax,100,0,TMath::Pi());
25330263 4278 fhEventPlaneEtaNLocMaxN->SetYTitle("#it{Event Plane Angle} (rad)");
4279 fhEventPlaneEtaNLocMaxN->SetXTitle("#it{E} (GeV)");
1253480f 4280 outputContainer->Add(fhEventPlaneEtaNLocMaxN) ;
4281 }
4282 }
17f5b4b6 4283
19391b8c 4284 if(fFillEbinHisto)
4285 {
4286 for(Int_t i = 0; i < 4; i++)
8e81c2cf 4287 {
19391b8c 4288 fhMassM02NLocMax1Ebin[i] = new TH2F(Form("hMassM02NLocMax1Ebin%d",i),
25330263 4289 Form("Invariant mass of split clusters vs #lambda_{0}^{2}, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4290 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4291 fhMassM02NLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4292 fhMassM02NLocMax1Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4293 outputContainer->Add(fhMassM02NLocMax1Ebin[i]) ;
4294
4295 fhMassM02NLocMax2Ebin[i] = new TH2F(Form("hMassM02NLocMax2Ebin%d",i),
25330263 4296 Form("Invariant mass of split clusters vs #lambda_{0}^{2}, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4297 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4298 fhMassM02NLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4299 fhMassM02NLocMax2Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4300 outputContainer->Add(fhMassM02NLocMax2Ebin[i]) ;
4301
4302 fhMassM02NLocMaxNEbin[i] = new TH2F(Form("hMassM02NLocMaxNEbin%d",i),
be894c1d 4303 Form("Invariant mass of split clusters vs vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
19391b8c 4304 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4305 fhMassM02NLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4306 fhMassM02NLocMaxNEbin[i]->SetXTitle("#lambda_{0}^{2}");
4307 outputContainer->Add(fhMassM02NLocMaxNEbin[i]) ;
4308
4309
4310 fhMassAsyNLocMax1Ebin[i] = new TH2F(Form("hMassAsyNLocMax1Ebin%d",i),
25330263 4311 Form("Invariant mass of split clusters vs split asymmetry, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4312 200,-1,1,mbins,mmin,mmax);
25330263 4313 fhMassAsyNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4314 fhMassAsyNLocMax1Ebin[i]->SetXTitle("asymmetry");
4315 outputContainer->Add(fhMassAsyNLocMax1Ebin[i]) ;
4316
4317 fhMassAsyNLocMax2Ebin[i] = new TH2F(Form("hMassAsyNLocMax2Ebin%d",i),
25330263 4318 Form("Invariant mass of split clusters vs split asymmetry, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4319 200,-1,1,mbins,mmin,mmax);
25330263 4320 fhMassAsyNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4321 fhMassAsyNLocMax2Ebin[i]->SetXTitle("asymmetry");
4322 outputContainer->Add(fhMassAsyNLocMax2Ebin[i]) ;
4323
4324 fhMassAsyNLocMaxNEbin[i] = new TH2F(Form("hMassAsyNLocMaxNEbin%d",i),
be894c1d 4325 Form("Invariant mass of split clusters vs split asymmetry, NLM>2, %s",sEBin[i].Data()),
19391b8c 4326 200,-1,1,mbins,mmin,mmax);
25330263 4327 fhMassAsyNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4328 fhMassAsyNLocMaxNEbin[i]->SetXTitle("asymmetry");
4329 outputContainer->Add(fhMassAsyNLocMaxNEbin[i]) ;
4330
4331
b2e375c7 4332 if(IsDataMC() && fFillMCHisto)
19391b8c 4333 {
4334 fhMCAsymM02NLocMax1MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax1MCPi0Ebin%d",i),
25330263 4335 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4336 ssbins,ssmin,ssmax,100,0,1);
4337 fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4338 fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4339 outputContainer->Add(fhMCAsymM02NLocMax1MCPi0Ebin[i]) ;
4340
4341 fhMCAsymM02NLocMax2MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax2MCPi0Ebin%d",i),
25330263 4342 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4343 ssbins,ssmin,ssmax,100,0,1);
4344 fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4345 fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4346 outputContainer->Add(fhMCAsymM02NLocMax2MCPi0Ebin[i]) ;
4347
4348 fhMCAsymM02NLocMaxNMCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMaxNMCPi0Ebin%d",i),
be894c1d 4349 Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()),
19391b8c 4350 ssbins,ssmin,ssmax,100,0,1);
4351 fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetYTitle("Decay asymmetry");
4352 fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}");
4353 outputContainer->Add(fhMCAsymM02NLocMaxNMCPi0Ebin[i]) ;
4354
4355
4356 fhAsyMCGenRecoNLocMax1EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax1Ebin%dPi0",i),
25330263 4357 Form("Generated vs reconstructed asymmetry of split clusters from pi0, #it{NLM}=1, %s",sEBin[i].Data()),
19391b8c 4358 200,-1,1,200,-1,1);
25330263 4359 fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4360 fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetXTitle("#it{A}");
19391b8c 4361 outputContainer->Add(fhAsyMCGenRecoNLocMax1EbinPi0[i]) ;
4362
4363 fhAsyMCGenRecoNLocMax2EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax2Ebin%dPi0",i),
25330263 4364 Form("Generated vs reconstructed asymmetry of split clusters from pi0, #it{NLM}=2, %s",sEBin[i].Data()),
19391b8c 4365 200,-1,1,200,-1,1);
25330263 4366 fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4367 fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetXTitle("#it{A}");
19391b8c 4368 outputContainer->Add(fhAsyMCGenRecoNLocMax2EbinPi0[i]) ;
4369
4370 fhAsyMCGenRecoNLocMaxNEbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMaxNEbin%dPi0",i),
be894c1d 4371 Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM>2, %s",sEBin[i].Data()),
19391b8c 4372 200,-1,1,200,-1,1);
25330263 4373 fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4374 fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetXTitle("#it{A}");
19391b8c 4375 outputContainer->Add(fhAsyMCGenRecoNLocMaxNEbinPi0[i]) ;
4376 }
4377
4378 if(fFillSSExtraHisto)
4379 {
4380 fhMassDispEtaNLocMax1Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax1Ebin%d",i),
be894c1d 4381 Form("Invariant mass of 2 highest energy cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4382 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4383 fhMassDispEtaNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4384 fhMassDispEtaNLocMax1Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4385 outputContainer->Add(fhMassDispEtaNLocMax1Ebin[i]) ;
4386
4387 fhMassDispEtaNLocMax2Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax2Ebin%d",i),
be894c1d 4388 Form("Invariant mass of 2 local maxima cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4389 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4390 fhMassDispEtaNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4391 fhMassDispEtaNLocMax2Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4392 outputContainer->Add(fhMassDispEtaNLocMax2Ebin[i]) ;
4393
4394 fhMassDispEtaNLocMaxNEbin[i] = new TH2F(Form("hMassDispEtaNLocMaxNEbin%d",i),
be894c1d 4395 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()),
19391b8c 4396 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4397 fhMassDispEtaNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4398 fhMassDispEtaNLocMaxNEbin[i]->SetXTitle("#sigma_{#eta #eta}^{2}");
4399 outputContainer->Add(fhMassDispEtaNLocMaxNEbin[i]) ;
4400
4401 fhMassDispPhiNLocMax1Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax1Ebin%d",i),
be894c1d 4402 Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4403 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4404 fhMassDispPhiNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4405 fhMassDispPhiNLocMax1Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4406 outputContainer->Add(fhMassDispPhiNLocMax1Ebin[i]) ;
4407
4408 fhMassDispPhiNLocMax2Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax2Ebin%d",i),
be894c1d 4409 Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4410 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4411 fhMassDispPhiNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4412 fhMassDispPhiNLocMax2Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4413 outputContainer->Add(fhMassDispPhiNLocMax2Ebin[i]) ;
4414
4415 fhMassDispPhiNLocMaxNEbin[i] = new TH2F(Form("hMassDispPhiNLocMaxNEbin%d",i),
be894c1d 4416 Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()),
19391b8c 4417 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 4418 fhMassDispPhiNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
19391b8c 4419 fhMassDispPhiNLocMaxNEbin[i]->SetXTitle("#sigma_{#phi #phi}^{2}");
4420 outputContainer->Add(fhMassDispPhiNLocMaxNEbin[i]) ;
4421
4422 fhMassDispAsyNLocMax1Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax1Ebin%d",i),
be894c1d 4423 Form("Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()),
19391b8c 4424 200,-1,1,mbins,mmin,mmax);
25330263 4425 fhMassDispAsyNLocMax1Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4426 fhMassDispAsyNLocMax1Ebin[i]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
19391b8c 4427 outputContainer->Add(fhMassDispAsyNLocMax1Ebin[i]) ;
4428
4429 fhMassDispAsyNLocMax2Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax2Ebin%d",i),
be894c1d 4430 Form("Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()),
19391b8c 4431 200,-1,1,mbins,mmin,mmax);
25330263 4432 fhMassDispAsyNLocMax2Ebin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4433 fhMassDispAsyNLocMax2Ebin[i]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
19391b8c 4434 outputContainer->Add(fhMassDispAsyNLocMax2Ebin[i]) ;
4435
4436 fhMassDispAsyNLocMaxNEbin[i] = new TH2F(Form("hMassDispAsyNLocMaxNEbin%d",i),
be894c1d 4437 Form("Invariant mass of N>2 local maxima cells vs A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()),
19391b8c 4438 200,-1,1,mbins,mmin,mmax);
25330263 4439 fhMassDispAsyNLocMaxNEbin[i]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
4440 fhMassDispAsyNLocMaxNEbin[i]->SetXTitle("#it{A} = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
19391b8c 4441 outputContainer->Add(fhMassDispAsyNLocMaxNEbin[i]) ;
4442 }
8e81c2cf 4443 }
19391b8c 4444 }
1253480f 4445
c7e9a4e9 4446 if(IsDataMC() && fFillMCHisto && (asyOn || m02On))
c8710850 4447 {
4448 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax1MCPi0",
25330263 4449 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 1 MC Pi0, after M02 and Asym cut",
c8710850 4450 nptbins,ptmin,ptmax,200,0,2);
25330263 4451 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
4452 fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4453 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax1MCPi0) ;
4454
4455 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax2MCPi0",
25330263 4456 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max = 2 MC Pi0, after M02 and Asym cut",
c8710850 4457 nptbins,ptmin,ptmax,200,0,2);
25330263 4458 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
4459 fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4460 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax2MCPi0) ;
4461
4462
4463 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMaxNMCPi0",
25330263 4464 "#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split}) vs E for N max > 2 MC Pi0, after M02 and Asym cut",
c8710850 4465 nptbins,ptmin,ptmax,200,0,2);
25330263 4466 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("#it{E}_{gen} / (#it{E}_{1 split}+#it{E}_{2 split})");
4467 fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4468 outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0) ;
4469
4470 fhMCGenFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax1MCPi0",
25330263 4471 "#it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max = 1 MC Pi0, after M02 and Asym cut",
c8710850 4472 nptbins,ptmin,ptmax,200,0,2);
25330263 4473 fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
4474 fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4475 outputContainer->Add(fhMCGenFracAfterCutsNLocMax1MCPi0) ;
4476
4477 fhMCGenFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax2MCPi0",
25330263 4478 " #it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max = 2 MC Pi0, after M02 and Asym cut",
c8710850 4479 nptbins,ptmin,ptmax,200,0,2);
25330263 4480 fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
4481 fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4482 outputContainer->Add(fhMCGenFracAfterCutsNLocMax2MCPi0) ;
4483
4484
4485 fhMCGenFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenFracAfterCutsNLocMaxNMCPi0",
25330263 4486 " #it{E}_{gen} / #it{E}_{reco} vs #it{E}_{reco} for N max > 2 MC Pi0, after M02 and Asym cut",
c8710850 4487 nptbins,ptmin,ptmax,200,0,2);
25330263 4488 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("#it{E}_{gen} / #it{E}_{reco}");
4489 fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("#it{E} (GeV)");
c8710850 4490 outputContainer->Add(fhMCGenFracAfterCutsNLocMaxNMCPi0) ;
4491
4492 }
4493
8edbd100 4494 if(fFillTMResidualHisto && fFillTMHisto)
8e81c2cf 4495 {
4496 for(Int_t i = 0; i < n; i++)
4497 {
4498
c8710850 4499 fhTrackMatchedDEtaNLocMax1[i] = new TH2F
4500 (Form("hTrackMatchedDEtaNLocMax1%s",pname[i].Data()),
8e81c2cf 4501 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4502 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4503 fhTrackMatchedDEtaNLocMax1[i]->SetYTitle("d#eta");
25330263 4504 fhTrackMatchedDEtaNLocMax1[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4505
c8710850 4506 fhTrackMatchedDPhiNLocMax1[i] = new TH2F
4507 (Form("hTrackMatchedDPhiNLocMax1%s",pname[i].Data()),
8e81c2cf 4508 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4509 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4510 fhTrackMatchedDPhiNLocMax1[i]->SetYTitle("d#phi (rad)");
25330263 4511 fhTrackMatchedDPhiNLocMax1[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4512
c8710850 4513 outputContainer->Add(fhTrackMatchedDEtaNLocMax1[i]) ;
4514 outputContainer->Add(fhTrackMatchedDPhiNLocMax1[i]) ;
8e81c2cf 4515
c8710850 4516 fhTrackMatchedDEtaNLocMax2[i] = new TH2F
4517 (Form("hTrackMatchedDEtaNLocMax2%s",pname[i].Data()),
8e81c2cf 4518 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4519 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4520 fhTrackMatchedDEtaNLocMax2[i]->SetYTitle("d#eta");
25330263 4521 fhTrackMatchedDEtaNLocMax2[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4522
c8710850 4523 fhTrackMatchedDPhiNLocMax2[i] = new TH2F
4524 (Form("hTrackMatchedDPhiNLocMax2%s",pname[i].Data()),
8e81c2cf 4525 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4526 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4527 fhTrackMatchedDPhiNLocMax2[i]->SetYTitle("d#phi (rad)");
25330263 4528 fhTrackMatchedDPhiNLocMax2[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4529
c8710850 4530 outputContainer->Add(fhTrackMatchedDEtaNLocMax2[i]) ;
4531 outputContainer->Add(fhTrackMatchedDPhiNLocMax2[i]) ;
8e81c2cf 4532
c8710850 4533 fhTrackMatchedDEtaNLocMaxN[i] = new TH2F
4534 (Form("hTrackMatchedDEtaNLocMaxN%s",pname[i].Data()),
8e81c2cf 4535 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4536 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
c8710850 4537 fhTrackMatchedDEtaNLocMaxN[i]->SetYTitle("d#eta");
25330263 4538 fhTrackMatchedDEtaNLocMaxN[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4539
c8710850 4540 fhTrackMatchedDPhiNLocMaxN[i] = new TH2F
4541 (Form("hTrackMatchedDPhiNLocMaxN%s",pname[i].Data()),
8e81c2cf 4542 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4543 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
c8710850 4544 fhTrackMatchedDPhiNLocMaxN[i]->SetYTitle("d#phi (rad)");
25330263 4545 fhTrackMatchedDPhiNLocMaxN[i]->SetXTitle("#it{E}_{cluster} (GeV)");
8e81c2cf 4546
c8710850 4547 outputContainer->Add(fhTrackMatchedDEtaNLocMaxN[i]) ;
b2e375c7 4548 outputContainer->Add(fhTrackMatchedDPhiNLocMaxN[i]) ;
883411b2 4549
b2e375c7 4550 fhTrackMatchedDEtaNLocMax1Pos[i] = new TH2F
4551 (Form("hTrackMatchedDEtaNLocMax1Pos%s",pname[i].Data()),
4552 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4553 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4554 fhTrackMatchedDEtaNLocMax1Pos[i]->SetYTitle("d#eta");
25330263 4555 fhTrackMatchedDEtaNLocMax1Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4556
4557 fhTrackMatchedDPhiNLocMax1Pos[i] = new TH2F
4558 (Form("hTrackMatchedDPhiNLocMax1Pos%s",pname[i].Data()),
4559 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4560 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4561 fhTrackMatchedDPhiNLocMax1Pos[i]->SetYTitle("d#phi (rad)");
25330263 4562 fhTrackMatchedDPhiNLocMax1Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4563
4564 outputContainer->Add(fhTrackMatchedDEtaNLocMax1Pos[i]) ;
4565 outputContainer->Add(fhTrackMatchedDPhiNLocMax1Pos[i]) ;
4566
4567 fhTrackMatchedDEtaNLocMax2Pos[i] = new TH2F
4568 (Form("hTrackMatchedDEtaNLocMax2Pos%s",pname[i].Data()),
4569 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4570 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4571 fhTrackMatchedDEtaNLocMax2Pos[i]->SetYTitle("d#eta");
25330263 4572 fhTrackMatchedDEtaNLocMax2Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4573
4574 fhTrackMatchedDPhiNLocMax2Pos[i] = new TH2F
4575 (Form("hTrackMatchedDPhiNLocMax2Pos%s",pname[i].Data()),
4576 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4577 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4578 fhTrackMatchedDPhiNLocMax2Pos[i]->SetYTitle("d#phi (rad)");
25330263 4579 fhTrackMatchedDPhiNLocMax2Pos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4580
4581 outputContainer->Add(fhTrackMatchedDEtaNLocMax2Pos[i]) ;
4582 outputContainer->Add(fhTrackMatchedDPhiNLocMax2Pos[i]) ;
4583
4584 fhTrackMatchedDEtaNLocMaxNPos[i] = new TH2F
4585 (Form("hTrackMatchedDEtaNLocMaxNPos%s",pname[i].Data()),
4586 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4587 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4588 fhTrackMatchedDEtaNLocMaxNPos[i]->SetYTitle("d#eta");
25330263 4589 fhTrackMatchedDEtaNLocMaxNPos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4590
4591 fhTrackMatchedDPhiNLocMaxNPos[i] = new TH2F
4592 (Form("hTrackMatchedDPhiNLocMaxNPos%s",pname[i].Data()),
4593 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4594 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4595 fhTrackMatchedDPhiNLocMaxNPos[i]->SetYTitle("d#phi (rad)");
25330263 4596 fhTrackMatchedDPhiNLocMaxNPos[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4597
4598 outputContainer->Add(fhTrackMatchedDEtaNLocMaxNPos[i]) ;
4599 outputContainer->Add(fhTrackMatchedDPhiNLocMaxNPos[i]) ;
4600
4601 fhTrackMatchedDEtaNLocMax1Neg[i] = new TH2F
4602 (Form("hTrackMatchedDEtaNLocMax1Neg%s",pname[i].Data()),
4603 Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4604 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4605 fhTrackMatchedDEtaNLocMax1Neg[i]->SetYTitle("d#eta");
25330263 4606 fhTrackMatchedDEtaNLocMax1Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4607
4608 fhTrackMatchedDPhiNLocMax1Neg[i] = new TH2F
4609 (Form("hTrackMatchedDPhiNLocMax1Neg%s",pname[i].Data()),
4610 Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()),
4611 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4612 fhTrackMatchedDPhiNLocMax1Neg[i]->SetYTitle("d#phi (rad)");
25330263 4613 fhTrackMatchedDPhiNLocMax1Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4614
4615 outputContainer->Add(fhTrackMatchedDEtaNLocMax1Neg[i]) ;
4616 outputContainer->Add(fhTrackMatchedDPhiNLocMax1Neg[i]) ;
4617
4618 fhTrackMatchedDEtaNLocMax2Neg[i] = new TH2F
4619 (Form("hTrackMatchedDEtaNLocMax2Neg%s",pname[i].Data()),
4620 Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4621 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4622 fhTrackMatchedDEtaNLocMax2Neg[i]->SetYTitle("d#eta");
25330263 4623 fhTrackMatchedDEtaNLocMax2Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4624
4625 fhTrackMatchedDPhiNLocMax2Neg[i] = new TH2F
4626 (Form("hTrackMatchedDPhiNLocMax2Neg%s",pname[i].Data()),
4627 Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()),
4628 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4629 fhTrackMatchedDPhiNLocMax2Neg[i]->SetYTitle("d#phi (rad)");
25330263 4630 fhTrackMatchedDPhiNLocMax2Neg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4631
4632 outputContainer->Add(fhTrackMatchedDEtaNLocMax2Neg[i]) ;
4633 outputContainer->Add(fhTrackMatchedDPhiNLocMax2Neg[i]) ;
4634
4635 fhTrackMatchedDEtaNLocMaxNNeg[i] = new TH2F
4636 (Form("hTrackMatchedDEtaNLocMaxNNeg%s",pname[i].Data()),
4637 Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4638 nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax);
4639 fhTrackMatchedDEtaNLocMaxNNeg[i]->SetYTitle("d#eta");
25330263 4640 fhTrackMatchedDEtaNLocMaxNNeg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4641
4642 fhTrackMatchedDPhiNLocMaxNNeg[i] = new TH2F
4643 (Form("hTrackMatchedDPhiNLocMaxNNeg%s",pname[i].Data()),
4644 Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()),
4645 nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax);
4646 fhTrackMatchedDPhiNLocMaxNNeg[i]->SetYTitle("d#phi (rad)");
25330263 4647 fhTrackMatchedDPhiNLocMaxNNeg[i]->SetXTitle("#it{E}_{cluster} (GeV)");
b2e375c7 4648
4649 outputContainer->Add(fhTrackMatchedDEtaNLocMaxNNeg[i]) ;
4650 outputContainer->Add(fhTrackMatchedDPhiNLocMaxNNeg[i]) ;
4651
4652 }
4653 }
4654
4655 if(fFillAngleHisto)
4656 {
0186b6a2 4657 for(Int_t i = 0; i < n; i++)
4658 {
4659 for(Int_t j = 0; j < nMatched; j++)
4660 {
4661
0186b6a2 4662 fhAnglePairNLocMax1[i][j] = new TH2F(Form("hAnglePairNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4663 Form("Opening angle split sub-clusters of cluster #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4664 nptbins,ptmin,ptmax,200,0,0.2);
4665 fhAnglePairNLocMax1[i][j]->SetYTitle("#alpha (rad)");
25330263 4666 fhAnglePairNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
0186b6a2 4667 outputContainer->Add(fhAnglePairNLocMax1[i][j]) ;
4668
4669 fhAnglePairNLocMax2[i][j] = new TH2F(Form("hAnglePairNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4670 Form("Opening angle split sub-clusters of cluster #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4671 nptbins,ptmin,ptmax,200,0,0.2);
4672 fhAnglePairNLocMax2[i][j]->SetYTitle("#alpha (rad)");
25330263 4673 fhAnglePairNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
0186b6a2 4674 outputContainer->Add(fhAnglePairNLocMax2[i][j]) ;
4675
4676 fhAnglePairNLocMaxN[i][j] = new TH2F(Form("hAnglePairNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4677 Form("Opening angle split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4678 nptbins,ptmin,ptmax,200,0,0.2);
4679 fhAnglePairNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
25330263 4680 fhAnglePairNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
0186b6a2 4681 outputContainer->Add(fhAnglePairNLocMaxN[i][j]) ;
4682
c7e9a4e9 4683 if(asyOn || m02On)
29555e96 4684 {
4685 fhAnglePairAfterCutsNLocMax1[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4686 Form("Opening angle split sub-clusters of cluster #it{NLM}=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4687 nptbins,ptmin,ptmax,200,0,0.2);
4688 fhAnglePairAfterCutsNLocMax1[i][j]->SetYTitle("#alpha (rad)");
25330263 4689 fhAnglePairAfterCutsNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4690 outputContainer->Add(fhAnglePairAfterCutsNLocMax1[i][j]) ;
4691
4692 fhAnglePairAfterCutsNLocMax2[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4693 Form("Opening angle split sub-clusters of cluster, after cuts, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4694 nptbins,ptmin,ptmax,200,0,0.2);
4695 fhAnglePairAfterCutsNLocMax2[i][j]->SetYTitle("#alpha (rad)");
25330263 4696 fhAnglePairAfterCutsNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4697 outputContainer->Add(fhAnglePairAfterCutsNLocMax2[i][j]) ;
4698
4699 fhAnglePairAfterCutsNLocMaxN[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4700 Form("Opening angle split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4701 nptbins,ptmin,ptmax,200,0,0.2);
4702 fhAnglePairAfterCutsNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
25330263 4703 fhAnglePairAfterCutsNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4704 outputContainer->Add(fhAnglePairAfterCutsNLocMaxN[i][j]) ;
4705
4706 }
4707
4708 fhAnglePairPi0NLocMax1[i][j] = new TH2F(Form("hAnglePairPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4709 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4710 nptbins,ptmin,ptmax,200,0,0.2);
4711 fhAnglePairPi0NLocMax1[i][j]->SetYTitle("#alpha (rad)");
25330263 4712 fhAnglePairPi0NLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4713 outputContainer->Add(fhAnglePairPi0NLocMax1[i][j]) ;
4714
4715 fhAnglePairPi0NLocMax2[i][j] = new TH2F(Form("hAnglePairPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4716 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4717 nptbins,ptmin,ptmax,200,0,0.2);
4718 fhAnglePairPi0NLocMax2[i][j]->SetYTitle("#alpha (rad)");
25330263 4719 fhAnglePairPi0NLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4720 outputContainer->Add(fhAnglePairPi0NLocMax2[i][j]) ;
4721
4722 fhAnglePairPi0NLocMaxN[i][j] = new TH2F(Form("hAnglePairPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4723 Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4724 nptbins,ptmin,ptmax,200,0,0.2);
4725 fhAnglePairPi0NLocMaxN[i][j]->SetYTitle("#alpha (rad)");
25330263 4726 fhAnglePairPi0NLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4727 outputContainer->Add(fhAnglePairPi0NLocMaxN[i][j]) ;
4728
0186b6a2 4729 fhAnglePairMassNLocMax1[i][j] = new TH2F(Form("hAnglePairMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4730 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4731 mbins,mmin,mmax,200,0,0.2);
25330263 4732 fhAnglePairMassNLocMax1[i][j]->SetXTitle("#it{M} (GeV/#it{c}^{2})");
0186b6a2 4733 fhAnglePairMassNLocMax1[i][j]->SetYTitle("#alpha (rad)");
4734 outputContainer->Add(fhAnglePairMassNLocMax1[i][j]) ;
4735
29555e96 4736
0186b6a2 4737 fhAnglePairMassNLocMax2[i][j] = new TH2F(Form("hAnglePairMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4738 Form("Opening angle split sub-clusters of cluster #it{NLM}=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
0186b6a2 4739 mbins,mmin,mmax,200,0,0.2);
25330263 4740 fhAnglePairMassNLocMax2[i][j]->SetXTitle("#it{M} (GeV/#it{c}^{2})");
0186b6a2 4741 fhAnglePairMassNLocMax2[i][j]->SetYTitle("#alpha (rad)");
4742 outputContainer->Add(fhAnglePairMassNLocMax2[i][j]) ;
4743
4744 fhAnglePairMassNLocMaxN[i][j] = new TH2F(Form("hAnglePairMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4745 Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4746 mbins,mmin,mmax,200,0,0.2);
25330263 4747 fhAnglePairMassNLocMaxN[i][j]->SetXTitle("#it{M} (GeV/#it{c}^{2})");
0186b6a2 4748 fhAnglePairMassNLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4749 outputContainer->Add(fhAnglePairMassNLocMaxN[i][j]) ;
d261ae67 4750
4751
4752 fhAnglePairM02NLocMax1[i][j] = new TH2F(Form("hAnglePairM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4753 Form("Opening angle split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs Mass for E > 15 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
d261ae67 4754 ssbins,ssmin,ssmax,200,0,0.2);
4755 fhAnglePairM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}");
4756 fhAnglePairM02NLocMax1[i][j]->SetYTitle("#alpha (rad)");
4757 outputContainer->Add(fhAnglePairM02NLocMax1[i][j]) ;
4758
0186b6a2 4759
d261ae67 4760 fhAnglePairM02NLocMax2[i][j] = new TH2F(Form("hAnglePairM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4761 Form("Opening angle split sub-clusters of cluster #it{NLM}=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
d261ae67 4762 ssbins,ssmin,ssmax,200,0,0.2);
4763 fhAnglePairM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}");
4764 fhAnglePairM02NLocMax2[i][j]->SetYTitle("#alpha (rad)");
4765 outputContainer->Add(fhAnglePairM02NLocMax2[i][j]) ;
4766
4767 fhAnglePairM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4768 Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4769 ssbins,ssmin,ssmax,200,0,0.2);
4770 fhAnglePairM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}");
4771 fhAnglePairM02NLocMaxN[i][j]->SetYTitle("#alpha (rad)");
4772 outputContainer->Add(fhAnglePairM02NLocMaxN[i][j]) ;
4773
4e5a94c5 4774 fhAnglePairOverM02NLocMax1[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4775 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4776 nptbins,ptmin,ptmax,200,0,0.2);
4777 fhAnglePairOverM02NLocMax1[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4778 fhAnglePairOverM02NLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4779 outputContainer->Add(fhAnglePairOverM02NLocMax1[i][j]) ;
4780
4781 fhAnglePairOverM02NLocMax2[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4782 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4783 nptbins,ptmin,ptmax,200,0,0.2);
4784 fhAnglePairOverM02NLocMax2[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4785 fhAnglePairOverM02NLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4786 outputContainer->Add(fhAnglePairOverM02NLocMax2[i][j]) ;
4787
4788 fhAnglePairOverM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4789 Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4790 nptbins,ptmin,ptmax,200,0,0.2);
4791 fhAnglePairOverM02NLocMaxN[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4792 fhAnglePairOverM02NLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4793 outputContainer->Add(fhAnglePairOverM02NLocMaxN[i][j]) ;
4794
4795
4796 fhAnglePairOverM02NLocMax1Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1Overlap0%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4797 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=1 vs pair Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4798 nptbins,ptmin,ptmax,200,0,0.2);
4799 fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4800 fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4801 outputContainer->Add(fhAnglePairOverM02NLocMax1Overlap0[i][j]) ;
4802
4803 fhAnglePairOverM02NLocMax2Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2Overlap0%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4804 Form("Opening angle split sub-clusters / M02 of cluster #it{NLM}=2 cells vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4e5a94c5 4805 nptbins,ptmin,ptmax,200,0,0.2);
4806 fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4807 fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4808 outputContainer->Add(fhAnglePairOverM02NLocMax2Overlap0[i][j]) ;
4809
4810 fhAnglePairOverM02NLocMaxNOverlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxNOverlap0%s%s",pname[i].Data(),sMatched[j].Data()),
4811 Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4812 nptbins,ptmin,ptmax,200,0,0.2);
4813 fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}");
25330263 4814 fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetXTitle("#it{E} (GeV)");
4e5a94c5 4815 outputContainer->Add(fhAnglePairOverM02NLocMaxNOverlap0[i][j]) ;
4816
4817
0186b6a2 4818 }
4819 }
4820
4821 if(IsDataMC())
4822 {
4823 fhAnglePairPrimPi0RecoNLocMax1 = new TH2F("fhAnglePairPrimPi0RecoNLocMax1",
25330263 4824 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, #it{NLM}=1",
0186b6a2 4825 nptbins,ptmin,ptmax,300,0,3);
4826 fhAnglePairPrimPi0RecoNLocMax1->SetYTitle("#alpha_{reco} / #alpha_{gen}");
25330263 4827 fhAnglePairPrimPi0RecoNLocMax1->SetXTitle("#it{E} (GeV)");
0186b6a2 4828 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax1) ;
4829
4830 fhAnglePairPrimPi0RecoNLocMax2 = new TH2F("fhAnglePairPrimPi0RecoNLocMax2",
25330263 4831 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, #it{NLM}=2",
0186b6a2 4832 nptbins,ptmin,ptmax,300,0,3);
4833 fhAnglePairPrimPi0RecoNLocMax2->SetYTitle("#alpha_{reco} / #alpha_{gen}");
25330263 4834 fhAnglePairPrimPi0RecoNLocMax2->SetXTitle("#it{E} (GeV)");
0186b6a2 4835 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax2) ;
4836
4837 fhAnglePairPrimPi0RecoNLocMaxN = new TH2F("fhAnglePairPrimPi0RecoNLocMaxN",
4838 "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM>2",
4839 nptbins,ptmin,ptmax,300,0,3);
4840 fhAnglePairPrimPi0RecoNLocMaxN->SetYTitle("#alpha_{reco} / #alpha_{gen}");
25330263 4841 fhAnglePairPrimPi0RecoNLocMaxN->SetXTitle("#it{E} (GeV)");
0186b6a2 4842 outputContainer->Add(fhAnglePairPrimPi0RecoNLocMaxN) ;
4843
b2e375c7 4844
0186b6a2 4845 fhAnglePairPrimPi0vsRecoNLocMax1 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax1",
25330263 4846 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 15 GeV, #it{NLM}=1",
0186b6a2 4847 200,0,0.2,200,0,0.2);
29555e96 4848 fhAnglePairPrimPi0vsRecoNLocMax1->SetYTitle("#alpha_{reco} (rad)");
4849 fhAnglePairPrimPi0vsRecoNLocMax1->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4850 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax1) ;
4851
4852 fhAnglePairPrimPi0vsRecoNLocMax2 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax2",
25330263 4853 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, #it{NLM}=2",
0186b6a2 4854 200,0,0.2,200,0,0.2);
29555e96 4855 fhAnglePairPrimPi0vsRecoNLocMax2->SetYTitle("#alpha_{reco} (rad)");
4856 fhAnglePairPrimPi0vsRecoNLocMax2->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4857 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax2) ;
4858
4859 fhAnglePairPrimPi0vsRecoNLocMaxN = new TH2F("fhAnglePairPrimPi0vsRecoNLocMaxN",
25330263 4860 "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, #it{NLM}=2",
0186b6a2 4861 200,0,0.2,200,0,0.2);
29555e96 4862 fhAnglePairPrimPi0vsRecoNLocMaxN->SetYTitle("#alpha_{reco} (rad)");
4863 fhAnglePairPrimPi0vsRecoNLocMaxN->SetXTitle("#alpha_{gen} (rad)");
0186b6a2 4864 outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMaxN) ;
883411b2 4865
4e5a94c5 4866
4867 fhAnglePairPrimPi0OverM02NLocMax1 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax1",
25330263 4868 "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, #it{NLM}=1",
4e5a94c5 4869 nptbins,ptmin,ptmax,200,0,0.2);
4870 fhAnglePairPrimPi0OverM02NLocMax1->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
25330263 4871 fhAnglePairPrimPi0OverM02NLocMax1->SetXTitle("#it{E} (GeV)");
4e5a94c5 4872 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax1) ;
4873
4874 fhAnglePairPrimPi0OverM02NLocMax2 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax2",
25330263 4875 "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, #it{NLM}=2",
4e5a94c5 4876 nptbins,ptmin,ptmax,200,0,0.2);
4877 fhAnglePairPrimPi0OverM02NLocMax2->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
25330263 4878 fhAnglePairPrimPi0OverM02NLocMax2->SetXTitle("#it{E} (GeV)");
4e5a94c5 4879 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax2) ;
4880
4881 fhAnglePairPrimPi0OverM02NLocMaxN = new TH2F("fhAnglePairPrimPi0OverM02NLocMaxN",
4882 "Primary Opening angle split neutral sub-clusters reconstructed / M02 vs cluster Energy, NLM>2",
4883 nptbins,ptmin,ptmax,200,0,0.2);
4884 fhAnglePairPrimPi0OverM02NLocMaxN->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}");
25330263 4885 fhAnglePairPrimPi0OverM02NLocMaxN->SetXTitle("#it{E} (GeV)");
4e5a94c5 4886 outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMaxN) ;
4887
883411b2 4888 }
992b14a7 4889 }
29555e96 4890
4891 // Same as asymmetry ...
4892 if(fFillThetaStarHisto)
4893 {
4894 for(Int_t i = 0; i < n; i++)
4895 {
4896 for(Int_t j = 0; j < nMatched; j++)
4897 {
4898
4899 fhCosThStarNLocMax1[i][j] = new TH2F(Form("hCosThStarNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4900 Form("cos(#theta^{*}) split sub-clusters of cluster #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4901 nptbins,ptmin,ptmax,200,-1,1);
4902 fhCosThStarNLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4903 fhCosThStarNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4904 outputContainer->Add(fhCosThStarNLocMax1[i][j]) ;
4905
4906 fhCosThStarNLocMax2[i][j] = new TH2F(Form("hCosThStarNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4907 Form("cos(#theta^{*}) split sub-clusters of cluster #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4908 nptbins,ptmin,ptmax,200,-1,1);
4909 fhCosThStarNLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4910 fhCosThStarNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4911 outputContainer->Add(fhCosThStarNLocMax2[i][j]) ;
4912
4913 fhCosThStarNLocMaxN[i][j] = new TH2F(Form("hCosThStarNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4914 Form("cos(#theta^{*}) split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4915 nptbins,ptmin,ptmax,200,-1,1);
4916 fhCosThStarNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4917 fhCosThStarNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4918 outputContainer->Add(fhCosThStarNLocMaxN[i][j]) ;
4919
c7e9a4e9 4920 if(asyOn || m02On)
29555e96 4921 {
4922 fhCosThStarAfterCutsNLocMax1[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4923 Form("cos(#theta^{*}) split sub-clusters of cluster #it{NLM}=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4924 nptbins,ptmin,ptmax,200,-1,1);
4925 fhCosThStarAfterCutsNLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4926 fhCosThStarAfterCutsNLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4927 outputContainer->Add(fhCosThStarAfterCutsNLocMax1[i][j]) ;
4928
4929 fhCosThStarAfterCutsNLocMax2[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4930 Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4931 nptbins,ptmin,ptmax,200,-1,1);
4932 fhCosThStarAfterCutsNLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4933 fhCosThStarAfterCutsNLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4934 outputContainer->Add(fhCosThStarAfterCutsNLocMax2[i][j]) ;
4935
4936 fhCosThStarAfterCutsNLocMaxN[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4937 Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4938 nptbins,ptmin,ptmax,200,-1,1);
4939 fhCosThStarAfterCutsNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4940 fhCosThStarAfterCutsNLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4941 outputContainer->Add(fhCosThStarAfterCutsNLocMaxN[i][j]) ;
4942
4943 }
4944
4945 fhCosThStarPi0NLocMax1[i][j] = new TH2F(Form("hCosThStarPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4946 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, #it{NLM}=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4947 nptbins,ptmin,ptmax,200,-1,1);
4948 fhCosThStarPi0NLocMax1[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4949 fhCosThStarPi0NLocMax1[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4950 outputContainer->Add(fhCosThStarPi0NLocMax1[i][j]) ;
4951
4952 fhCosThStarPi0NLocMax2[i][j] = new TH2F(Form("hCosThStarPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
25330263 4953 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, #it{NLM}=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
29555e96 4954 nptbins,ptmin,ptmax,200,-1,1);
4955 fhCosThStarPi0NLocMax2[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4956 fhCosThStarPi0NLocMax2[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4957 outputContainer->Add(fhCosThStarPi0NLocMax2[i][j]) ;
4958
4959 fhCosThStarPi0NLocMaxN[i][j] = new TH2F(Form("hCosThStarPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
4960 Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()),
4961 nptbins,ptmin,ptmax,200,-1,1);
4962 fhCosThStarPi0NLocMaxN[i][j]->SetYTitle("cos(#theta^{*})");
25330263 4963 fhCosThStarPi0NLocMaxN[i][j]->SetXTitle("#it{E} (GeV)");
29555e96 4964 outputContainer->Add(fhCosThStarPi0NLocMaxN[i][j]) ;
4965
4966 }
4967 }
4968 }
4969
992b14a7 4970
8edbd100 4971 for(Int_t j = 0; j < nMatched; j++)
17f5b4b6 4972 {
4973 fhSplitEFractionvsAsyNLocMax1[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax1%s",sMatched[j].Data()),
25330263 4974 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs (#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2}) for N max = 1, E>12, %s",sMatched[j].Data()),
17f5b4b6 4975 100,-1,1,120,0,1.2);
25330263 4976 fhSplitEFractionvsAsyNLocMax1[j] ->SetXTitle("(#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2})");
4977 fhSplitEFractionvsAsyNLocMax1[j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
17f5b4b6 4978 outputContainer->Add(fhSplitEFractionvsAsyNLocMax1[j]) ;
4979
4980 fhSplitEFractionvsAsyNLocMax2[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax2%s",sMatched[j].Data()),
25330263 4981 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs (#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2}) for N max = 2,E>12, %s",sMatched[j].Data()),
17f5b4b6 4982 100,-1,1,120,0,1.2);
25330263 4983 fhSplitEFractionvsAsyNLocMax2[j] ->SetXTitle("(#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2})");
4984 fhSplitEFractionvsAsyNLocMax2[j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
17f5b4b6 4985 outputContainer->Add(fhSplitEFractionvsAsyNLocMax2[j]) ;
4986
4987 fhSplitEFractionvsAsyNLocMaxN[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMaxN%s",sMatched[j].Data()),
25330263 4988 Form("(#it{E}_{1}+#it{E}_{2})/#it{E}_{cluster} vs (#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2}) for N max > 2, E>12, %s",sMatched[j].Data()),
17f5b4b6 4989 100,-1,1,120,0,1.2);
25330263 4990 fhSplitEFractionvsAsyNLocMaxN[j] ->SetXTitle("(#it{E}_{split1}-#it{E}_{split2})/(#it{E}_{split1}+#it{E}_{split2})");
4991 fhSplitEFractionvsAsyNLocMaxN[j] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
17f5b4b6 4992 outputContainer->Add(fhSplitEFractionvsAsyNLocMaxN[j]) ;
e671adc2 4993 }
9554fc65 4994
1253480f 4995
9554fc65 4996 fhClusterEtaPhiNLocMax1 = new TH2F
4997 ("hClusterEtaPhiNLocMax1","Neutral Clusters with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
4998 fhClusterEtaPhiNLocMax1->SetYTitle("#phi (rad)");
4999 fhClusterEtaPhiNLocMax1->SetXTitle("#eta");
5000 outputContainer->Add(fhClusterEtaPhiNLocMax1) ;
1253480f 5001
9554fc65 5002 fhClusterEtaPhiNLocMax2 = new TH2F
5003 ("hClusterEtaPhiNLocMax2","Neutral Clusters with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5004 fhClusterEtaPhiNLocMax2->SetYTitle("#phi (rad)");
5005 fhClusterEtaPhiNLocMax2->SetXTitle("#eta");
5006 outputContainer->Add(fhClusterEtaPhiNLocMax2) ;
5007
5008 fhClusterEtaPhiNLocMaxN = new TH2F
5009 ("hClusterEtaPhiNLocMaxN","Neutral Clusters with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5010 fhClusterEtaPhiNLocMaxN->SetYTitle("#phi (rad)");
5011 fhClusterEtaPhiNLocMaxN->SetXTitle("#eta");
5012 outputContainer->Add(fhClusterEtaPhiNLocMaxN) ;
5013
5014 fhPi0EtaPhiNLocMax1 = new TH2F
5015 ("hPi0EtaPhiNLocMax1","Selected #pi^{0}'s with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5016 fhPi0EtaPhiNLocMax1->SetYTitle("#phi (rad)");
5017 fhPi0EtaPhiNLocMax1->SetXTitle("#eta");
5018 outputContainer->Add(fhPi0EtaPhiNLocMax1) ;
5019
5020 fhPi0EtaPhiNLocMax2 = new TH2F
5021 ("hPi0EtaPhiNLocMax2","Selected #pi^{0}'s with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5022 fhPi0EtaPhiNLocMax2->SetYTitle("#phi (rad)");
5023 fhPi0EtaPhiNLocMax2->SetXTitle("#eta");
5024 outputContainer->Add(fhPi0EtaPhiNLocMax2) ;
5025
5026 fhPi0EtaPhiNLocMaxN = new TH2F
5027 ("hPi0EtaPhiNLocMaxN","Selected #pi^{0}'s with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5028 fhPi0EtaPhiNLocMaxN->SetYTitle("#phi (rad)");
5029 fhPi0EtaPhiNLocMaxN->SetXTitle("#eta");
5030 outputContainer->Add(fhPi0EtaPhiNLocMaxN) ;
1253480f 5031
5032 if(fFillIdEtaHisto)
5033 {
5034 fhEtaEtaPhiNLocMax1 = new TH2F
5035 ("hEtaEtaPhiNLocMax1","Selected #eta's with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5036 fhEtaEtaPhiNLocMax1->SetYTitle("#phi (rad)");
5037 fhEtaEtaPhiNLocMax1->SetXTitle("#eta");
5038 outputContainer->Add(fhEtaEtaPhiNLocMax1) ;
5039
5040 fhEtaEtaPhiNLocMax2 = new TH2F
5041 ("hEtaEtaPhiNLocMax2","Selected #eta's with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5042 fhEtaEtaPhiNLocMax2->SetYTitle("#phi (rad)");
5043 fhEtaEtaPhiNLocMax2->SetXTitle("#eta");
5044 outputContainer->Add(fhEtaEtaPhiNLocMax2) ;
5045
5046 fhEtaEtaPhiNLocMaxN = new TH2F
5047 ("hEtaEtaPhiNLocMaxN","Selected #eta's with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax);
5048 fhEtaEtaPhiNLocMaxN->SetYTitle("#phi (rad)");
5049 fhEtaEtaPhiNLocMaxN->SetXTitle("#eta");
5050 outputContainer->Add(fhEtaEtaPhiNLocMaxN) ;
5051 }
e671adc2 5052
ff6aa4ce 5053
dbe09c26 5054 if(fFillSSWeightHisto)
5055 {
dbe09c26 5056 for(Int_t nlm = 0; nlm < 3; nlm++)
5057 {
5058 fhPi0CellE[nlm] = new TH2F(Form("hPi0CellENLocMax%s",snlm[nlm].Data()),
5059 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E",snlm[nlm].Data()),
5060 nptbins,ptmin,ptmax, nptbins,ptmin,ptmax);
25330263 5061 fhPi0CellE[nlm]->SetYTitle("#it{E}_{cell}");
5062 fhPi0CellE[nlm]->SetXTitle("#it{E}_{cluster}");
dbe09c26 5063 outputContainer->Add(fhPi0CellE[nlm]) ;
5064
5065 fhPi0CellEFrac[nlm] = new TH2F(Form("hPi0CellEFracNLocMax%s",snlm[nlm].Data()),
5066 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E / cluster E",snlm[nlm].Data()),
5067 nptbins,ptmin,ptmax, 100,0,1);
25330263 5068 fhPi0CellEFrac[nlm]->SetYTitle("#it{E}_{cell} / #it{E}_{cluster}");
5069 fhPi0CellEFrac[nlm]->SetXTitle("#it{E}_{cluster}");
dbe09c26 5070 outputContainer->Add(fhPi0CellEFrac[nlm]) ;
5071
5072 fhPi0CellLogEFrac[nlm] = new TH2F(Form("hPi0CellLogEFracNLocMax%s",snlm[nlm].Data()),
1253480f 5073 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs Log(cell E / cluster E)",snlm[nlm].Data()),
5074 nptbins,ptmin,ptmax, 100,-10,0);
25330263 5075 fhPi0CellLogEFrac[nlm]->SetYTitle("Log(#it{E}_{cell} / #it{E}_{cluster})");
5076 fhPi0CellLogEFrac[nlm]->SetXTitle("#it{E}_{cluster}");
dbe09c26 5077 outputContainer->Add(fhPi0CellLogEFrac[nlm]) ;
1253480f 5078
dbe09c26 5079
19391b8c 5080 fhPi0CellEMaxEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMaxEMax2FracNLocMax%s",snlm[nlm].Data()),
1253480f 5081 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / 1st loc. max. E",snlm[nlm].Data()),
5082 nptbins,ptmin,ptmax, 100,0,1);
25330263 5083 fhPi0CellEMaxEMax2Frac[nlm]->SetYTitle("#it{E}_{Loc Max 2} / #it{E}_{Loc Max 1}");
5084 fhPi0CellEMaxEMax2Frac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5085 outputContainer->Add(fhPi0CellEMaxEMax2Frac[nlm]) ;
5086
5087 fhPi0CellEMaxClusterFrac[nlm] = new TH2F(Form("hPi0CellEMaxClusterFracNLocMax%s",snlm[nlm].Data()),
1253480f 5088 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cluster",snlm[nlm].Data()),
5089 nptbins,ptmin,ptmax, 100,0,1);
25330263 5090 fhPi0CellEMaxClusterFrac[nlm]->SetYTitle("#it{E}_{Loc Max 1} / #it{E}_{cluster}");
5091 fhPi0CellEMaxClusterFrac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5092 outputContainer->Add(fhPi0CellEMaxClusterFrac[nlm]) ;
1253480f 5093
19391b8c 5094 fhPi0CellEMax2ClusterFrac[nlm] = new TH2F(Form("hPi0CellEMax2ClusterFracNLocMax%s",snlm[nlm].Data()),
1253480f 5095 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cluster",snlm[nlm].Data()),
5096 nptbins,ptmin,ptmax, 100,0,1);
25330263 5097 fhPi0CellEMax2ClusterFrac[nlm]->SetYTitle("#it{E}_{Loc Max 2} / #it{E}_{cluster}");
5098 fhPi0CellEMax2ClusterFrac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5099 outputContainer->Add(fhPi0CellEMax2ClusterFrac[nlm]) ;
5100
5101 fhPi0CellEMaxFrac[nlm] = new TH2F(Form("hPi0CellEMaxFracNLocMax%s",snlm[nlm].Data()),
1253480f 5102 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cell i",snlm[nlm].Data()),
5103 nptbins,ptmin,ptmax, 100,0,1);
25330263 5104 fhPi0CellEMaxFrac[nlm]->SetYTitle("#it{E}_{Loc Max 1} / #it{E}_{cell i}");
5105 fhPi0CellEMaxFrac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5106 outputContainer->Add(fhPi0CellEMaxFrac[nlm]) ;
5107
5108 fhPi0CellEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMax2FracNLocMax%s",snlm[nlm].Data()),
1253480f 5109 Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cell i",snlm[nlm].Data()),
5110 nptbins,ptmin,ptmax, 200,0,2);
25330263 5111 fhPi0CellEMax2Frac[nlm]->SetYTitle("#it{E}_{Loc Max 2} / #it{E}_{cell i}");
5112 fhPi0CellEMax2Frac[nlm]->SetXTitle("#it{E}_{cluster}");
19391b8c 5113 outputContainer->Add(fhPi0CellEMax2Frac[nlm]) ;
1253480f 5114
19391b8c 5115
dbe09c26 5116 for(Int_t i = 0; i < fSSWeightN; i++)
5117 {
5118 fhM02WeightPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_W%d",snlm[nlm].Data(),i),
1253480f 5119 Form("#lambda_{0}^{2} vs E, with W0 = %2.2f, for NLM = %s", fSSWeight[i], snlm[nlm].Data()),
dbe09c26 5120 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5121 fhM02WeightPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5122 fhM02WeightPi0[nlm][i] ->SetXTitle("#it{E} (GeV)");
dbe09c26 5123 outputContainer->Add(fhM02WeightPi0[nlm][i]) ;
5124 }
19391b8c 5125
5126 for(Int_t i = 0; i < fSSECellCutN; i++)
5127 {
5128 fhM02ECellCutPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_Ecell%d",snlm[nlm].Data(),i),
1253480f 5129 Form("#lambda_{0}^{2} vs E, with Ecell > %2.2f, for NLM = %s", fSSECellCut[i], snlm[nlm].Data()),
5130 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
19391b8c 5131 fhM02ECellCutPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5132 fhM02ECellCutPi0[nlm][i] ->SetXTitle("#it{E} (GeV)");
19391b8c 5133 outputContainer->Add(fhM02ECellCutPi0[nlm][i]) ;
5134 }
1253480f 5135
dbe09c26 5136 }
5137 }
5138
a1fd1b69 5139 Int_t tdbins = GetHistogramRanges()->GetHistoDiffTimeBins() ; Float_t tdmax = GetHistogramRanges()->GetHistoDiffTimeMax(); Float_t tdmin = GetHistogramRanges()->GetHistoDiffTimeMin();
1253480f 5140
25330263 5141 fhPi0EPairDiffTimeNLM1 = new TH2F("hPi0EPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #pi, #it{NLM}=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5142 fhPi0EPairDiffTimeNLM1->SetXTitle("#it{E}_{pair} (GeV)");
5143 fhPi0EPairDiffTimeNLM1->SetYTitle("#Delta #it{t} (ns)");
a1fd1b69 5144 outputContainer->Add(fhPi0EPairDiffTimeNLM1);
1253480f 5145
25330263 5146 fhPi0EPairDiffTimeNLM2 = new TH2F("hPi0EPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #pi, #it{NLM}=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5147 fhPi0EPairDiffTimeNLM2->SetXTitle("#it{E}_{pair} (GeV)");
5148 fhPi0EPairDiffTimeNLM2->SetYTitle("#Delta #it{t} (ns)");
a1fd1b69 5149 outputContainer->Add(fhPi0EPairDiffTimeNLM2);
1253480f 5150
a1fd1b69 5151 fhPi0EPairDiffTimeNLMN = new TH2F("hPi0EPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #pi, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
25330263 5152 fhPi0EPairDiffTimeNLMN->SetXTitle("#it{E}_{pair} (GeV)");
5153 fhPi0EPairDiffTimeNLMN->SetYTitle("#Delta #it{t} (ns)");
a1fd1b69 5154 outputContainer->Add(fhPi0EPairDiffTimeNLMN);
a1fd1b69 5155
1253480f 5156 if(fFillIdEtaHisto)
5157 {
25330263 5158 fhEtaEPairDiffTimeNLM1 = new TH2F("hEtaEPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #eta, #it{NLM}=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5159 fhEtaEPairDiffTimeNLM1->SetXTitle("#it{E}_{pair} (GeV)");
5160 fhEtaEPairDiffTimeNLM1->SetYTitle("#Delta #it{t} (ns)");
1253480f 5161 outputContainer->Add(fhEtaEPairDiffTimeNLM1);
5162
25330263 5163 fhEtaEPairDiffTimeNLM2 = new TH2F("hEtaEPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #eta, #it{NLM}=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
5164 fhEtaEPairDiffTimeNLM2->SetXTitle("#it{E}_{pair} (GeV)");
5165 fhEtaEPairDiffTimeNLM2->SetYTitle("#Delta #it{t} (ns)");
1253480f 5166 outputContainer->Add(fhEtaEPairDiffTimeNLM2);
5167
5168 fhEtaEPairDiffTimeNLMN = new TH2F("hEtaEPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #eta, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax);
25330263 5169 fhEtaEPairDiffTimeNLMN->SetXTitle("#it{E}_{pair} (GeV)");
5170 fhEtaEPairDiffTimeNLMN->SetYTitle("#Delta #it{t} (ns)");
1253480f 5171 outputContainer->Add(fhEtaEPairDiffTimeNLMN);
5172 }
a1fd1b69 5173
4914e781 5174 if(fFillNCellHisto && IsDataMC())
5175 {
1253480f 5176
25330263 5177 fhNCellMassEHighNLocMax1MCPi0 = new TH2F("hNCellMassEHighNLocMax1MCPi0","n cells vs mass for MC pi0, high energy, #it{NLM}=1",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5178 fhNCellMassEHighNLocMax1MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5179 fhNCellMassEHighNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5180 outputContainer->Add(fhNCellMassEHighNLocMax1MCPi0) ;
5181
25330263 5182 fhNCellMassELowNLocMax1MCPi0 = new TH2F("hNCellMassELowNLocMax1MCPi0","n cells vs mass for MC pi0, low energy, #it{NLM}=1",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5183 fhNCellMassELowNLocMax1MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5184 fhNCellMassELowNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5185 outputContainer->Add(fhNCellMassELowNLocMax1MCPi0) ;
1253480f 5186
25330263 5187 fhNCellM02EHighNLocMax1MCPi0 = new TH2F("hNCellM02EHighNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, #it{NLM}=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5188 fhNCellM02EHighNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5189 fhNCellM02EHighNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5190 outputContainer->Add(fhNCellM02EHighNLocMax1MCPi0) ;
5191
25330263 5192 fhNCellM02ELowNLocMax1MCPi0 = new TH2F("hNCellM02ELowNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, #it{NLM}=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5193 fhNCellM02ELowNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5194 fhNCellM02ELowNLocMax1MCPi0->SetXTitle("#it{N} cells");
4914e781 5195 outputContainer->Add(fhNCellM02ELowNLocMax1MCPi0) ;
1253480f 5196
25330263 5197 fhNCellMassEHighNLocMax2MCPi0 = new TH2F("hNCellMassEHighNLocMax2MCPi0","n cells vs mass for MC pi0, high energy, #it{NLM}=2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5198 fhNCellMassEHighNLocMax2MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5199 fhNCellMassEHighNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5200 outputContainer->Add(fhNCellMassEHighNLocMax2MCPi0) ;
5201
25330263 5202 fhNCellMassELowNLocMax2MCPi0 = new TH2F("hNCellMassELowNLocMax2MCPi0","n cells vs mass for MC pi0, low energy, #it{NLM}=2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
5203 fhNCellMassELowNLocMax2MCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5204 fhNCellMassELowNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5205 outputContainer->Add(fhNCellMassELowNLocMax2MCPi0) ;
5206
25330263 5207 fhNCellM02EHighNLocMax2MCPi0 = new TH2F("hNCellM02EHighNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, #it{NLM}=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5208 fhNCellM02EHighNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5209 fhNCellM02EHighNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5210 outputContainer->Add(fhNCellM02EHighNLocMax2MCPi0) ;
5211
25330263 5212 fhNCellM02ELowNLocMax2MCPi0 = new TH2F("hNCellM02ELowNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, #it{NLM}=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
4914e781 5213 fhNCellM02ELowNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5214 fhNCellM02ELowNLocMax2MCPi0->SetXTitle("#it{N} cells");
4914e781 5215 outputContainer->Add(fhNCellM02ELowNLocMax2MCPi0) ;
1253480f 5216
4914e781 5217 fhNCellMassEHighNLocMaxNMCPi0 = new TH2F("hNCellMassEHighNLocMaxNMCPi0","n cells vs mass for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
25330263 5218 fhNCellMassEHighNLocMaxNMCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5219 fhNCellMassEHighNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5220 outputContainer->Add(fhNCellMassEHighNLocMaxNMCPi0) ;
5221
5222 fhNCellMassELowNLocMaxNMCPi0 = new TH2F("hNCellMassELowNLocMaxNMCPi0","n cells vs mass for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax);
25330263 5223 fhNCellMassELowNLocMaxNMCPi0->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5224 fhNCellMassELowNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5225 outputContainer->Add(fhNCellMassELowNLocMaxNMCPi0) ;
5226
5227 fhNCellM02EHighNLocMaxNMCPi0 = new TH2F("hNCellM02EHighNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5228 fhNCellM02EHighNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5229 fhNCellM02EHighNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5230 outputContainer->Add(fhNCellM02EHighNLocMaxNMCPi0) ;
5231
5232 fhNCellM02ELowNLocMaxNMCPi0 = new TH2F("hNCellM02ELowNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax);
5233 fhNCellM02ELowNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}");
25330263 5234 fhNCellM02ELowNLocMaxNMCPi0->SetXTitle("#it{N} cells");
4914e781 5235 outputContainer->Add(fhNCellM02ELowNLocMaxNMCPi0) ;
5236
5237 }
b2e375c7 5238
5239 if(IsDataMC() && fFillMCOverlapHisto)
5240 {
5241 for(Int_t i = 1; i < n; i++)
5242 {
5243 for(Int_t j = 0; j < 3; j++)
5244 {
5245 fhMCENOverlaps[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5246 Form("# overlaps vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5247 nptbins,ptmin,ptmax,10,0,10);
5248 fhMCENOverlaps[j][i] ->SetYTitle("# overlaps");
25330263 5249 fhMCENOverlaps[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5250 outputContainer->Add(fhMCENOverlaps[j][i]) ;
5251
5252 fhMCEM02Overlap0[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5253 Form("Overlap 0, #lambda_{0}^{2} vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5254 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5255 fhMCEM02Overlap0[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5256 fhMCEM02Overlap0[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5257 outputContainer->Add(fhMCEM02Overlap0[j][i]) ;
5258
5259 fhMCEM02Overlap1[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5260 Form("Overlap 1, #lambda_{0}^{2} vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5261 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5262 fhMCEM02Overlap1[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5263 fhMCEM02Overlap1[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5264 outputContainer->Add(fhMCEM02Overlap1[j][i]) ;
5265
5266 fhMCEM02OverlapN[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5267 Form("Overlap N, #lambda_{0}^{2} vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5268 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5269 fhMCEM02OverlapN[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5270 fhMCEM02OverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5271 outputContainer->Add(fhMCEM02OverlapN[j][i]) ;
5272
5273 fhMCEMassOverlap0[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5274 Form("Overlap 0, Mass vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5275 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5276 fhMCEMassOverlap0[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5277 fhMCEMassOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5278 outputContainer->Add(fhMCEMassOverlap0[j][i]) ;
5279
5280 fhMCEMassOverlap1[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5281 Form("Overalap 1, Mass vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5282 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5283 fhMCEMassOverlap1[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5284 fhMCEMassOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5285 outputContainer->Add(fhMCEMassOverlap1[j][i]) ;
5286
5287 fhMCEMassOverlapN[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5288 Form("Overlap N, Mass vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5289 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5290 fhMCEMassOverlapN[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5291 fhMCEMassOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5292 outputContainer->Add(fhMCEMassOverlapN[j][i]) ;
4914e781 5293
5294 fhMCEAsymOverlap0[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5295 Form("Overlap 0, Asymmetry vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5296 nptbins,ptmin,ptmax,100,0,1);
5297 fhMCEAsymOverlap0[j][i] ->SetYTitle("|A|");
25330263 5298 fhMCEAsymOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5299 outputContainer->Add(fhMCEAsymOverlap0[j][i]) ;
5300
5301 fhMCEAsymOverlap1[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5302 Form("Overalap 1, Asymmetry vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5303 nptbins,ptmin,ptmax,100,0,1);
5304 fhMCEAsymOverlap1[j][i] ->SetYTitle("|A|");
25330263 5305 fhMCEAsymOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5306 outputContainer->Add(fhMCEAsymOverlap1[j][i]) ;
5307
5308 fhMCEAsymOverlapN[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5309 Form("Overlap N, Asymmetry vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5310 nptbins,ptmin,ptmax,100,0,1);
5311 fhMCEAsymOverlapN[j][i] ->SetYTitle("|A|");
25330263 5312 fhMCEAsymOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5313 outputContainer->Add(fhMCEAsymOverlapN[j][i]) ;
74e3eb22 5314
5315
cb99fa55 5316 if(fFillNCellHisto)
5317 {
5318 fhMCENCellOverlap0[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5319 Form("Overlap 0, n cells vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cb99fa55 5320 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5321 fhMCENCellOverlap0[j][i] ->SetYTitle("#it{N} cells");
5322 fhMCENCellOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
cb99fa55 5323 outputContainer->Add(fhMCENCellOverlap0[j][i]) ;
5324
5325 fhMCENCellOverlap1[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5326 Form("Overalap 1, n cells vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cb99fa55 5327 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5328 fhMCENCellOverlap1[j][i] ->SetYTitle("#it{N} cells");
5329 fhMCENCellOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
cb99fa55 5330 outputContainer->Add(fhMCENCellOverlap1[j][i]) ;
5331
5332 fhMCENCellOverlapN[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5333 Form("Overlap N, n cells vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
cb99fa55 5334 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5335 fhMCENCellOverlapN[j][i] ->SetYTitle("#it{N} cells");
5336 fhMCENCellOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
cb99fa55 5337 outputContainer->Add(fhMCENCellOverlapN[j][i]) ;
5338 }
4914e781 5339
5340 fhMCEEpriOverlap0[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5341 Form("Overlap 0, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5342 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5343 fhMCEEpriOverlap0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5344 fhMCEEpriOverlap0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5345 outputContainer->Add(fhMCEEpriOverlap0[j][i]) ;
5346
5347 fhMCEEpriOverlap1[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5348 Form("Overalap 1, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5349 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5350 fhMCEEpriOverlap1[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5351 fhMCEEpriOverlap1[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5352 outputContainer->Add(fhMCEEpriOverlap1[j][i]) ;
5353
5354 fhMCEEpriOverlapN[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5355 Form("Overlap N, E reco vs E prim for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
4914e781 5356 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5357 fhMCEEpriOverlapN[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5358 fhMCEEpriOverlapN[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5359 outputContainer->Add(fhMCEEpriOverlapN[j][i]) ;
1253480f 5360
4914e781 5361
cc909e6f 5362 fhMCEEpriOverlap0IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap0IdPi0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5363 Form("Overlap 0, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cc909e6f 5364 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5365 fhMCEEpriOverlap0IdPi0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5366 fhMCEEpriOverlap0IdPi0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
cc909e6f 5367 outputContainer->Add(fhMCEEpriOverlap0IdPi0[j][i]) ;
5368
5369 fhMCEEpriOverlap1IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap1IdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5370 Form("Overlap 1, E reco vs E prim for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
cc909e6f 5371 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5372 fhMCEEpriOverlap1IdPi0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5373 fhMCEEpriOverlap1IdPi0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
cc909e6f 5374 outputContainer->Add(fhMCEEpriOverlap1IdPi0[j][i]) ;
5375
5376 fhMCEEpriOverlapNIdPi0[j][i] = new TH2F(Form("hMCEEpriOverlapNIdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5377 Form("Overlap N, E reco vs E prim for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
cc909e6f 5378 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5379 fhMCEEpriOverlapNIdPi0[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5380 fhMCEEpriOverlapNIdPi0[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
cc909e6f 5381 outputContainer->Add(fhMCEEpriOverlapNIdPi0[j][i]) ;
5382
5383
83351853 5384 fhMCESplitEFracOverlap0[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()),
25330263 5385 Form("Overlap 0, SplitEFrac vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
1253480f 5386 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5387 fhMCESplitEFracOverlap0[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5388 fhMCESplitEFracOverlap0[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5389 outputContainer->Add(fhMCESplitEFracOverlap0[j][i]) ;
5390
5391 fhMCESplitEFracOverlap1[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5392 Form("Overalap 1, SplitEFrac vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
1253480f 5393 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5394 fhMCESplitEFracOverlap1[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5395 fhMCESplitEFracOverlap1[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5396 outputContainer->Add(fhMCESplitEFracOverlap1[j][i]) ;
5397
5398 fhMCESplitEFracOverlapN[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()),
25330263 5399 Form("Overlap N, SplitEFrac vs E for #it{NLM}=%s %s",snlm[j].Data(),ptype[i].Data()),
1253480f 5400 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5401 fhMCESplitEFracOverlapN[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5402 fhMCESplitEFracOverlapN[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5403 outputContainer->Add(fhMCESplitEFracOverlapN[j][i]) ;
b2e375c7 5404
5405 if(i < 5)
5406 {
5407 fhMCPi0MassM02Overlap0[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%d",snlm[j].Data(),i-1),
25330263 5408 Form("Overlap 0, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5409 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5410 fhMCPi0MassM02Overlap0[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5411 fhMCPi0MassM02Overlap0[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5412 outputContainer->Add(fhMCPi0MassM02Overlap0[j][i-1]) ;
5413
5414 fhMCPi0MassM02Overlap1[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%d",snlm[j].Data(),i-1),
25330263 5415 Form("Overlap 1, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5416 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5417 fhMCPi0MassM02Overlap1[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5418 fhMCPi0MassM02Overlap1[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5419 outputContainer->Add(fhMCPi0MassM02Overlap1[j][i-1]) ;
5420
5421 fhMCPi0MassM02OverlapN[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%d",snlm[j].Data(),i-1),
25330263 5422 Form("Overlap N, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5423 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5424 fhMCPi0MassM02OverlapN[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5425 fhMCPi0MassM02OverlapN[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5426 outputContainer->Add(fhMCPi0MassM02OverlapN[j][i-1]) ;
5427 }
5428
5429 if(fFillTMHisto)
5430 {
5431 fhMCENOverlapsMatch[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5432 Form("# overlaps vs E for #it{NLM}=%s, %s",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5433 nptbins,ptmin,ptmax,10,0,10);
5434 fhMCENOverlapsMatch[j][i] ->SetYTitle("# overlaps");
25330263 5435 fhMCENOverlapsMatch[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5436 outputContainer->Add(fhMCENOverlapsMatch[j][i]) ;
5437
5438 fhMCEM02Overlap0Match[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5439 Form("#lambda_{0}^{2} vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5440 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5441 fhMCEM02Overlap0Match[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5442 fhMCEM02Overlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5443 outputContainer->Add(fhMCEM02Overlap0Match[j][i]) ;
5444
5445 fhMCEM02Overlap1Match[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5446 Form("#lambda_{0}^{2} vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5447 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5448 fhMCEM02Overlap1Match[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5449 fhMCEM02Overlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5450 outputContainer->Add(fhMCEM02Overlap1Match[j][i]) ;
5451
5452 fhMCEM02OverlapNMatch[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5453 Form("#lambda_{0}^{2} vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5454 nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
5455 fhMCEM02OverlapNMatch[j][i] ->SetYTitle("#lambda_{0}^{2}");
25330263 5456 fhMCEM02OverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5457 outputContainer->Add(fhMCEM02OverlapNMatch[j][i]) ;
5458
5459 fhMCEMassOverlap0Match[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5460 Form("Mass vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5461 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5462 fhMCEMassOverlap0Match[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5463 fhMCEMassOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5464 outputContainer->Add(fhMCEMassOverlap0Match[j][i]) ;
5465
5466 fhMCEMassOverlap1Match[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5467 Form("Mass vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5468 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5469 fhMCEMassOverlap1Match[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5470 fhMCEMassOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5471 outputContainer->Add(fhMCEMassOverlap1Match[j][i]) ;
5472
5473 fhMCEMassOverlapNMatch[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5474 Form("Mass vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
b2e375c7 5475 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5476 fhMCEMassOverlapNMatch[j][i] ->SetYTitle("#it{M} (GeV/#it{c}^{2}");
5477 fhMCEMassOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
b2e375c7 5478 outputContainer->Add(fhMCEMassOverlapNMatch[j][i]) ;
5479
4914e781 5480
5481 fhMCEAsymOverlap0Match[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5482 Form("Overlap 0, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5483 nptbins,ptmin,ptmax,100,0,1);
25330263 5484 fhMCEAsymOverlap0Match[j][i] ->SetYTitle("|#it{A}|");
5485 fhMCEAsymOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5486 outputContainer->Add(fhMCEAsymOverlap0Match[j][i]) ;
5487
5488 fhMCEAsymOverlap1Match[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5489 Form("Overalap 1, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5490 nptbins,ptmin,ptmax,100,0,1);
25330263 5491 fhMCEAsymOverlap1Match[j][i] ->SetYTitle("|#it{A}|");
5492 fhMCEAsymOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5493 outputContainer->Add(fhMCEAsymOverlap1Match[j][i]) ;
5494
5495 fhMCEAsymOverlapNMatch[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5496 Form("Overlap N, Asymmetry vs E for #it{NLM}=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5497 nptbins,ptmin,ptmax,100,0,1);
25330263 5498 fhMCEAsymOverlapNMatch[j][i] ->SetYTitle("|#it{A}|");
5499 fhMCEAsymOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
4914e781 5500 outputContainer->Add(fhMCEAsymOverlapNMatch[j][i]) ;
74e3eb22 5501
5502
5503 fhMCENCellOverlap0Match[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5504 Form("Overlap 0, n cells vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
74e3eb22 5505 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5506 fhMCENCellOverlap0Match[j][i] ->SetYTitle("#it{N} cells");
5507 fhMCENCellOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
74e3eb22 5508 outputContainer->Add(fhMCENCellOverlap0Match[j][i]) ;
1253480f 5509
74e3eb22 5510 fhMCENCellOverlap1Match[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5511 Form("Overalap 1, n cell vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
74e3eb22 5512 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5513 fhMCENCellOverlap1Match[j][i] ->SetYTitle("#it{N} cells");
5514 fhMCENCellOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
74e3eb22 5515 outputContainer->Add(fhMCENCellOverlap1Match[j][i]) ;
4914e781 5516
74e3eb22 5517 fhMCENCellOverlapNMatch[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5518 Form("Overlap N, n cell vs E for #it{NLM}=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
74e3eb22 5519 nptbins,ptmin,ptmax,ncbins,ncmin,ncmax);
25330263 5520 fhMCENCellOverlapNMatch[j][i] ->SetYTitle("#it{N} cells");
5521 fhMCENCellOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
74e3eb22 5522 outputContainer->Add(fhMCENCellOverlapNMatch[j][i]) ;
5523
4914e781 5524 fhMCEEpriOverlap0Match[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5525 Form("Overlap 0, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
4914e781 5526 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5527 fhMCEEpriOverlap0Match[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5528 fhMCEEpriOverlap0Match[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5529 outputContainer->Add(fhMCEEpriOverlap0Match[j][i]) ;
5530
5531 fhMCEEpriOverlap1Match[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5532 Form("Overalap 1, Asymmetry vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
4914e781 5533 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5534 fhMCEEpriOverlap1Match[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5535 fhMCEEpriOverlap1Match[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5536 outputContainer->Add(fhMCEEpriOverlap1Match[j][i]) ;
5537
cc909e6f 5538 fhMCEEpriOverlapNMatch[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5539 Form("Overlap N, Asymmetry vs E for #it{NLM}=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
4914e781 5540 nptbins,ptmin,ptmax,nptbins,ptmin,ptmax);
25330263 5541 fhMCEEpriOverlapNMatch[j][i] ->SetYTitle("#it{E}_{gen} (GeV)");
5542 fhMCEEpriOverlapNMatch[j][i] ->SetXTitle("#it{E}_{reco} (GeV)");
4914e781 5543 outputContainer->Add(fhMCEEpriOverlapNMatch[j][i]) ;
1253480f 5544
4914e781 5545
83351853 5546 fhMCESplitEFracOverlap0Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()),
25330263 5547 Form("SplitEFrac vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5548 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5549 fhMCESplitEFracOverlap0Match[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5550 fhMCESplitEFracOverlap0Match[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5551 outputContainer->Add(fhMCESplitEFracOverlap0Match[j][i]) ;
5552
5553 fhMCESplitEFracOverlap1Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5554 Form("SplitEFrac vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5555 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5556 fhMCESplitEFracOverlap1Match[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5557 fhMCESplitEFracOverlap1Match[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5558 outputContainer->Add(fhMCESplitEFracOverlap1Match[j][i]) ;
5559
5560 fhMCESplitEFracOverlapNMatch[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()),
25330263 5561 Form("SplitEFrac vs E for #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()),
1253480f 5562 nptbins,ptmin,ptmax,120,0,1.2);
25330263 5563 fhMCESplitEFracOverlapNMatch[j][i] ->SetYTitle("(#it{E}_{split1}+#it{E}_{split2})/#it{E}_{cluster}");
5564 fhMCESplitEFracOverlapNMatch[j][i] ->SetXTitle("#it{E} (GeV)");
83351853 5565 outputContainer->Add(fhMCESplitEFracOverlapNMatch[j][i]) ;
1253480f 5566
83351853 5567
b2e375c7 5568 if(i < 5)
5569 {
5570 fhMCPi0MassM02Overlap0Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
25330263 5571 Form("Overlap 0, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5572 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5573 fhMCPi0MassM02Overlap0Match[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5574 fhMCPi0MassM02Overlap0Match[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5575 outputContainer->Add(fhMCPi0MassM02Overlap0Match[j][i-1]) ;
5576
5577 fhMCPi0MassM02Overlap1Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
25330263 5578 Form("Overlap 1, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5579 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5580 fhMCPi0MassM02Overlap1Match[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5581 fhMCPi0MassM02Overlap1Match[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5582 outputContainer->Add(fhMCPi0MassM02Overlap1Match[j][i-1]) ;
5583
5584 fhMCPi0MassM02OverlapNMatch[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%dMatched",snlm[j].Data(),i-1),
25330263 5585 Form("Overlap N, Mass vs #lambda_{0}^{2}, #it{NLM}=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()),
1253480f 5586 ssbins,ssmin,ssmax,mbins,mmin,mmax);
25330263 5587 fhMCPi0MassM02OverlapNMatch[j][i-1]->SetYTitle("#it{M} (GeV/#it{c}^{2})");
b2e375c7 5588 fhMCPi0MassM02OverlapNMatch[j][i-1]->SetXTitle("#lambda_{0}^{2}");
5589 outputContainer->Add(fhMCPi0MassM02OverlapNMatch[j][i-1]) ;
5590
5591 }
5592
5593 }
5594 }
5595 }
5596
5597 fhMCPi0HighNLMPair = new TH2F("hMCPi0HighNLMPair","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5598 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5599 fhMCPi0HighNLMPair ->SetYTitle("#it{N} maxima");
5600 fhMCPi0HighNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5601 outputContainer->Add(fhMCPi0HighNLMPair) ;
5602
5603 fhMCPi0LowNLMPair = new TH2F("hMCPi0LowNLMPair","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5604 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5605 fhMCPi0LowNLMPair ->SetYTitle("#it{N} maxima");
5606 fhMCPi0LowNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5607 outputContainer->Add(fhMCPi0LowNLMPair) ;
5608
5609 fhMCPi0AnyNLMPair = new TH2F("hMCPi0AnyNLMPair","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5610 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5611 fhMCPi0AnyNLMPair ->SetYTitle("#it{N} maxima");
5612 fhMCPi0AnyNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5613 outputContainer->Add(fhMCPi0AnyNLMPair) ;
5614
5615 fhMCPi0NoneNLMPair = new TH2F("hMCPi0NoneNLMPair","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5616 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5617 fhMCPi0NoneNLMPair ->SetYTitle("#it{N} maxima");
5618 fhMCPi0NoneNLMPair ->SetXTitle("#it{E} (GeV)");
b2e375c7 5619 outputContainer->Add(fhMCPi0NoneNLMPair) ;
1253480f 5620
b2e375c7 5621
5622 fhMCPi0HighNLMPairNoMCMatch = new TH2F("hMCPi0HighNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
1253480f 5623 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5624 fhMCPi0HighNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5625 fhMCPi0HighNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5626 outputContainer->Add(fhMCPi0HighNLMPairNoMCMatch) ;
5627
5628 fhMCPi0LowNLMPairNoMCMatch = new TH2F("hMCPi0LowNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
1253480f 5629 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5630 fhMCPi0LowNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5631 fhMCPi0LowNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5632 outputContainer->Add(fhMCPi0LowNLMPairNoMCMatch) ;
5633
5634 fhMCPi0AnyNLMPairNoMCMatch = new TH2F("hMCPi0AnyNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
1253480f 5635 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5636 fhMCPi0AnyNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5637 fhMCPi0AnyNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5638 outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatch) ;
5639
5640 fhMCPi0NoneNLMPairNoMCMatch = new TH2F("hMCPi0NoneNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, no NLM pair are decays",
1253480f 5641 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5642 fhMCPi0NoneNLMPairNoMCMatch ->SetYTitle("#it{N} maxima");
5643 fhMCPi0NoneNLMPairNoMCMatch ->SetXTitle("#it{E} (GeV)");
b2e375c7 5644 outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatch) ;
1253480f 5645
b2e375c7 5646
36769d30 5647 fhMCPi0HighNLMPairOverlap = new TH2F("hMCPi0HighNLMPairOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5648 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5649 fhMCPi0HighNLMPairOverlap ->SetYTitle("#it{N} maxima");
5650 fhMCPi0HighNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5651 outputContainer->Add(fhMCPi0HighNLMPairOverlap) ;
5652
5653 fhMCPi0LowNLMPairOverlap = new TH2F("hMCPi0LowNLMPairOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5654 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5655 fhMCPi0LowNLMPairOverlap ->SetYTitle("#it{N} maxima");
5656 fhMCPi0LowNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5657 outputContainer->Add(fhMCPi0LowNLMPairOverlap) ;
5658
5659 fhMCPi0AnyNLMPairOverlap = new TH2F("hMCPi0AnyNLMPairOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5660 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5661 fhMCPi0AnyNLMPairOverlap ->SetYTitle("#it{N} maxima");
5662 fhMCPi0AnyNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5663 outputContainer->Add(fhMCPi0AnyNLMPairOverlap) ;
5664
5665 fhMCPi0NoneNLMPairOverlap = new TH2F("hMCPi0NoneNLMPairOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5666 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5667 fhMCPi0NoneNLMPairOverlap ->SetYTitle("#it{N} maxima");
5668 fhMCPi0NoneNLMPairOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5669 outputContainer->Add(fhMCPi0NoneNLMPairOverlap) ;
5670
5671 fhMCPi0HighNLMPairNoMCMatchOverlap = new TH2F("hMCPi0HighNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays",
5672 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5673 fhMCPi0HighNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5674 fhMCPi0HighNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5675 outputContainer->Add(fhMCPi0HighNLMPairNoMCMatchOverlap) ;
5676
5677 fhMCPi0LowNLMPairNoMCMatchOverlap = new TH2F("hMCPi0LowNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays",
5678 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5679 fhMCPi0LowNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5680 fhMCPi0LowNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5681 outputContainer->Add(fhMCPi0LowNLMPairNoMCMatchOverlap) ;
5682
5683 fhMCPi0AnyNLMPairNoMCMatchOverlap = new TH2F("hMCPi0AnyNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays",
5684 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5685 fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5686 fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5687 outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatchOverlap) ;
5688
5689 fhMCPi0NoneNLMPairNoMCMatchOverlap = new TH2F("hMCPi0NoneNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays",
5690 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5691 fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetYTitle("#it{N} maxima");
5692 fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5693 outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatchOverlap) ;
b583134f 5694
1253480f 5695
36769d30 5696 fhMCPi0DecayPhotonHitHighLM = new TH2F("hMCPi0DecayPhotonHitHighLM","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima",
83351853 5697 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5698 fhMCPi0DecayPhotonHitHighLM ->SetYTitle("#it{N} maxima");
5699 fhMCPi0DecayPhotonHitHighLM ->SetXTitle("#it{E} (GeV)");
83351853 5700 outputContainer->Add(fhMCPi0DecayPhotonHitHighLM ) ;
5701
36769d30 5702 fhMCPi0DecayPhotonAdjHighLM = new TH2F("hMCPi0DecayPhotonAdjHighLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima",
1253480f 5703 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5704 fhMCPi0DecayPhotonAdjHighLM ->SetYTitle("#it{N} maxima");
5705 fhMCPi0DecayPhotonAdjHighLM ->SetXTitle("#it{E} (GeV)");
83351853 5706 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLM ) ;
1253480f 5707
36769d30 5708 fhMCPi0DecayPhotonHitOtherLM = new TH2F("hMCPi0DecayPhotonHitOtherLM","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima",
1253480f 5709 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5710 fhMCPi0DecayPhotonHitOtherLM ->SetYTitle("#it{N} maxima");
5711 fhMCPi0DecayPhotonHitOtherLM ->SetXTitle("#it{E} (GeV)");
83351853 5712 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLM ) ;
5713
36769d30 5714 fhMCPi0DecayPhotonAdjOtherLM = new TH2F("hMCPi0DecayPhotonAdjOtherLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima",
1253480f 5715 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5716 fhMCPi0DecayPhotonAdjOtherLM ->SetYTitle("#it{N} maxima");
5717 fhMCPi0DecayPhotonAdjOtherLM ->SetXTitle("#it{E} (GeV)");
83351853 5718 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLM ) ;
1253480f 5719
36769d30 5720 fhMCPi0DecayPhotonAdjacent = new TH2F("hMCPi0DecayPhotonAdjacent","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells",
5721 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5722 fhMCPi0DecayPhotonAdjacent ->SetYTitle("#it{N} maxima");
5723 fhMCPi0DecayPhotonAdjacent ->SetXTitle("#it{E} (GeV)");
36769d30 5724 outputContainer->Add(fhMCPi0DecayPhotonAdjacent ) ;
5725
5726 fhMCPi0DecayPhotonHitNoLM = new TH2F("hMCPi0DecayPhotonHitNoLM","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima",
5727 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5728 fhMCPi0DecayPhotonHitNoLM ->SetYTitle("#it{N} maxima");
5729 fhMCPi0DecayPhotonHitNoLM ->SetXTitle("#it{E} (GeV)");
83351853 5730 outputContainer->Add(fhMCPi0DecayPhotonHitNoLM ) ;
5731
36769d30 5732
5733 fhMCPi0DecayPhotonHitHighLMOverlap = new TH2F("hMCPi0DecayPhotonHitHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima, there was an overlap",
5734 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5735 fhMCPi0DecayPhotonHitHighLMOverlap ->SetYTitle("#it{N} maxima");
5736 fhMCPi0DecayPhotonHitHighLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5737 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlap ) ;
5738
5739 fhMCPi0DecayPhotonAdjHighLMOverlap = new TH2F("hMCPi0DecayPhotonAdjHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima, there was an overlap",
5740 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5741 fhMCPi0DecayPhotonAdjHighLMOverlap ->SetYTitle("#it{N} maxima");
5742 fhMCPi0DecayPhotonAdjHighLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5743 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlap ) ;
5744
5745 fhMCPi0DecayPhotonHitOtherLMOverlap = new TH2F("hMCPi0DecayPhotonHitOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima, there was an overlap",
5746 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5747 fhMCPi0DecayPhotonHitOtherLMOverlap ->SetYTitle("#it{N} maxima");
5748 fhMCPi0DecayPhotonHitOtherLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5749 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlap ) ;
5750
5751 fhMCPi0DecayPhotonAdjOtherLMOverlap = new TH2F("hMCPi0DecayPhotonAdjOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",
5752 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5753 fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetYTitle("#it{N} maxima");
5754 fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5755 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlap ) ;
5756
5757 fhMCPi0DecayPhotonAdjacentOverlap = new TH2F("hMCPi0DecayPhotonAdjacentOverlap","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells, there was an overlap",
5758 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5759 fhMCPi0DecayPhotonAdjacentOverlap ->SetYTitle("#it{N} maxima");
5760 fhMCPi0DecayPhotonAdjacentOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5761 outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlap ) ;
5762
5763 fhMCPi0DecayPhotonHitNoLMOverlap = new TH2F("hMCPi0DecayPhotonHitNoLMOverlap","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima, there was an overlap",
5764 nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins);
25330263 5765 fhMCPi0DecayPhotonHitNoLMOverlap ->SetYTitle("#it{N} maxima");
5766 fhMCPi0DecayPhotonHitNoLMOverlap ->SetXTitle("#it{E} (GeV)");
36769d30 5767 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlap ) ;
5768
1253480f 5769
b583134f 5770 for(Int_t nlm = 0; nlm < 3; nlm++)
5771 {
5772 fhMCPi0DecayPhotonHitHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sMass",snlm[nlm].Data()),
25330263 5773 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 5774 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5775 fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5776 fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5777 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMMass[nlm] ) ;
5778
5779 fhMCPi0DecayPhotonAdjHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sMass",snlm[nlm].Data()),
25330263 5780 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5781 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5782 fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5783 fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5784 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMMass[nlm] ) ;
5785
5786 fhMCPi0DecayPhotonHitOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sMass",snlm[nlm].Data()),
25330263 5787 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5788 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5789 fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5790 fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5791 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMMass[nlm] ) ;
5792
5793 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sMass",snlm[nlm].Data()),
25330263 5794 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5795 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5796 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5797 fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5798 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ) ;
5799
5800 fhMCPi0DecayPhotonAdjacentMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sMass",snlm[nlm].Data()),
25330263 5801 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit adjacent cells",snlm[nlm].Data()),
29555e96 5802 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5803 fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5804 fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5805 outputContainer->Add(fhMCPi0DecayPhotonAdjacentMass[nlm] ) ;
5806
5807 fhMCPi0DecayPhotonHitNoLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sMass",snlm[nlm].Data()),
25330263 5808 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon do not hit Local Maxima",snlm[nlm].Data()),
29555e96 5809 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5810 fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5811 fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5812 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMMass[nlm] ) ;
5813
5814
5815 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapMass",snlm[nlm].Data()),
25330263 5816 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5817 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5818 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5819 fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5820 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm]) ;
5821
5822 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapMass",snlm[nlm].Data()),
25330263 5823 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5824 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5825 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5826 fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5827 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm]) ;
5828
5829 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapMass",snlm[nlm].Data()),
25330263 5830 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5831 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5832 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5833 fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5834 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm]) ;
5835
5836 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapMass",snlm[nlm].Data()),
25330263 5837 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5838 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5839 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5840 fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5841 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm]) ;
5842
5843 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sOverlapMass",snlm[nlm].Data()),
25330263 5844 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit adjacent cells, there was an overlap",snlm[nlm].Data()),
29555e96 5845 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5846 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5847 fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5848 outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlapMass[nlm]) ;
5849
5850 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sOverlapMass",snlm[nlm].Data()),
25330263 5851 Form("Mass vs E for merged pi0 cluster, #it{NLM}=%s, decay photon do not hit Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5852 nptbins,ptmin,ptmax,mbins,mmin,mmax);
25330263 5853 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetYTitle("#it{M} (GeV/#it{c}^{2})");
5854 fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetXTitle("#it{E} (GeV)");
b583134f 5855 outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm]) ;
29555e96 5856
b583134f 5857 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1",snlm[nlm].Data()),
25330263 5858 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs E pi0 for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
cb99fa55 5859 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5860 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5861 fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5862 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ) ;
5863
5864 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1",snlm[nlm].Data()),
25330263 5865 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5866 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5867 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
29555e96 5868 fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetXTitle("E pi0 (GeV)");
b583134f 5869 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ) ;
5870
5871 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1",snlm[nlm].Data()),
25330263 5872 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5873 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5874 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5875 fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
b583134f 5876 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ) ;
5877
5878 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1",snlm[nlm].Data()),
25330263 5879 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5880 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5881 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5882 fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5883 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ) ;
5884
5885 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5886 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5887 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5888 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5889 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5890 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm]) ;
5891
5892 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5893 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5894 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5895 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5896 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5897 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm]) ;
5898
5899 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5900 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5901 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5902 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5903 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5904 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm]) ;
5905
5906 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1",snlm[nlm].Data()),
25330263 5907 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 5908 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5909 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5910 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5911 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm]) ;
5912
5913 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2",snlm[nlm].Data()),
25330263 5914 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
cb99fa55 5915 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5916 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5917 fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5918 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ) ;
5919
5920 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2",snlm[nlm].Data()),
25330263 5921 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
cb99fa55 5922 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5923 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5924 fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5925 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ) ;
5926
5927 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2",snlm[nlm].Data()),
25330263 5928 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
cb99fa55 5929 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5930 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5931 fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5932 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ) ;
5933
5934 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2",snlm[nlm].Data()),
25330263 5935 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
cb99fa55 5936 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5937 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5938 fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5939 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ) ;
5940
5941 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5942 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5943 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5944 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5945 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5946 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm]) ;
5947
5948 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5949 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5950 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5951 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5952 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5953 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm]) ;
5954
5955 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5956 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5957 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5958 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5959 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5960 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm]) ;
5961
5962 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2",snlm[nlm].Data()),
25330263 5963 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{pi0 reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
cb99fa55 5964 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5965 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5966 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetXTitle("#it{E}_{pi0 reco} (GeV)");
b583134f 5967 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm]) ;
29555e96 5968
5969
5970 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5971 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs E for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 5972 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5973 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5974 fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 5975 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ) ;
5976
5977 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5978 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 5979 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5980 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5981 fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E} (GeV)");
29555e96 5982 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ) ;
5983
5984 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5985 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 5986 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5987 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5988 fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 5989 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ) ;
5990
5991 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5992 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 5993 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 5994 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
5995 fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 5996 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ) ;
5997
5998 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 5999 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6000 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6001 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6002 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6003 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm]) ;
6004
6005 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6006 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6007 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6008 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6009 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6010 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm]) ;
6011
6012 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6013 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6014 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6015 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6016 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6017 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm]) ;
6018
6019 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()),
25330263 6020 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6021 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6022 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6023 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6024 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm]) ;
6025
6026 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6027 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima",snlm[nlm].Data()),
29555e96 6028 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6029 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6030 fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6031 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ) ;
6032
6033 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6034 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()),
29555e96 6035 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6036 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6037 fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6038 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ) ;
6039
6040 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6041 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()),
29555e96 6042 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6043 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6044 fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6045 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ) ;
6046
6047 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6048 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()),
29555e96 6049 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6050 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6051 fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6052 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ) ;
6053
6054 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6055 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6056 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6057 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6058 fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6059 outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm]) ;
6060
6061 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6062 Form("#it{E}_{reco}-#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6063 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6064 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6065 fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6066 outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm]) ;
6067
6068 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6069 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6070 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6071 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6072 fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6073 outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm]) ;
6074
6075 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()),
25330263 6076 Form("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen} vs #it{E}_{reco} for merged pi0 cluster, #it{NLM}=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()),
29555e96 6077 nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4);
25330263 6078 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(#it{E}_{reco}-#it{E}_{gen})/#it{E}_{gen}");
6079 fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("#it{E}_{reco} (GeV)");
29555e96 6080 outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm]) ;
6081
b583134f 6082 }
6083
b2e375c7 6084 fhMCEOverlapType = new TH2F("hMCEOverlapType","Kind of overlap particle, neutral clusters",
6085 nptbins,ptmin,ptmax,5,0,5);
6086 //fhMCEOverlapType ->SetYTitle("Overlap Type");
6087 fhMCEOverlapType->GetYaxis()->SetBinLabel(1 ,"#gamma");
6088 fhMCEOverlapType->GetYaxis()->SetBinLabel(2 ,"e^{#pm}");
6089 fhMCEOverlapType->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}");
6090 fhMCEOverlapType->GetYaxis()->SetBinLabel(4 ,"hadron^{0}");
6091 fhMCEOverlapType->GetYaxis()->SetBinLabel(5 ,"??");
25330263 6092 fhMCEOverlapType->SetXTitle("Cluster #it{E} (GeV)");
b2e375c7 6093 outputContainer->Add(fhMCEOverlapType) ;
1253480f 6094
b2e375c7 6095 fhMCEOverlapTypeMatch = new TH2F("hMCEOverlapTypeMatched","Kind of overlap particle, charged clusters",
1253480f 6096 nptbins,ptmin,ptmax,5,0,5);
b2e375c7 6097 //fhMCEOverlapTypeMatch ->SetYTitle("Overlap Type");
6098 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(1 ,"#gamma");
6099 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(2 ,"e^{#pm}");
6100 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}");
6101 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(4 ,"hadron^{0}");
6102 fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(5 ,"??");
25330263 6103 fhMCEOverlapTypeMatch->SetXTitle("Cluster #it{E} (GeV)");
b2e375c7 6104 outputContainer->Add(fhMCEOverlapTypeMatch) ;
1253480f 6105
b2e375c7 6106 }// MC analysis, check overlaps
6107
ce49dd72 6108
b583134f 6109 if(IsDataMC())
6110 {
6111 for(Int_t inlm = 0; inlm < 3; inlm++)
6112 {
6113 fhAsyMCGenRecoDiffMCPi0[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0",snlm[inlm].Data()),
25330263 6114 Form("Reconstructed - Generated asymmetry with #it{NLM}=%d vs E, MC Pi0",inlm),
b583134f 6115 nptbins,ptmin,ptmax,200,-1,1);
25330263 6116 fhAsyMCGenRecoDiffMCPi0[inlm]->SetYTitle("#it{A}_{reco} - #it{A}_{gen}");
6117 fhAsyMCGenRecoDiffMCPi0[inlm]->SetXTitle("#it{E} (GeV)");
b583134f 6118 outputContainer->Add(fhAsyMCGenRecoDiffMCPi0[inlm]) ;
6119
6120 fhAsyMCGenRecoDiffMCPi0Conv[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0Conv",snlm[inlm].Data()),
25330263 6121 Form("Reconstructed - Generated asymmetry with #it{NLM}=%d vs E, MC Pi0Conv",inlm),
b583134f 6122 nptbins,ptmin,ptmax,200,-1,1);
25330263 6123 fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetYTitle("#it{A}_{reco} - #it{A}_{gen}");
6124 fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetXTitle("#it{E} (GeV)");
b583134f 6125 outputContainer->Add(fhAsyMCGenRecoDiffMCPi0Conv[inlm]) ;
6126 }
6127 }
6128
cb99fa55 6129 if(fFillArmenterosHisto)
6130 {
be894c1d 6131 Int_t narmbins = 400;
6132 Float_t armmin = 0;
6133 Float_t armmax = 0.4;
6134
ed10b649 6135 for(Int_t i = 0; i < 7; i++) // MC bin
cb99fa55 6136 {
6137 for(Int_t j = 0; j < 4; j++) // E bin
6138 {
6139 fhArmNLocMax1[i][j] = new TH2F(Form("hArmNLocMax1EBin%d%s",j,pname[i].Data()),
25330263 6140 Form("Armenteros of splitted cluster with #it{NLM}=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6141 200, -1, 1, narmbins,armmin,armmax);
25330263 6142 fhArmNLocMax1[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6143 fhArmNLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6144 outputContainer->Add(fhArmNLocMax1[i][j]) ;
6145
6146 fhArmNLocMax2[i][j] = new TH2F(Form("hArmNLocMax2EBin%d%s",j,pname[i].Data()),
25330263 6147 Form("Armenteros of splitted cluster with #it{NLM}=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6148 200, -1, 1, narmbins,armmin,armmax);
25330263 6149 fhArmNLocMax2[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6150 fhArmNLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6151 outputContainer->Add(fhArmNLocMax2[i][j]) ;
6152
6153 fhArmNLocMaxN[i][j] = new TH2F(Form("hArmNLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6154 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6155 200, -1, 1, narmbins,armmin,armmax);
25330263 6156 fhArmNLocMaxN[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6157 fhArmNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6158 outputContainer->Add(fhArmNLocMaxN[i][j]) ;
6159
c7e9a4e9 6160 if(asyOn || m02On)
cb99fa55 6161 {
6162 fhArmAfterCutsNLocMax1[i][j] = new TH2F(Form("hArmAfterCutsNLocMax1EBin%d%s",j,pname[i].Data()),
25330263 6163 Form("Armenteros of splitted cluster with #it{NLM}=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6164 200, -1, 1, narmbins,armmin,armmax);
25330263 6165 fhArmAfterCutsNLocMax1[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6166 fhArmAfterCutsNLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6167 outputContainer->Add(fhArmAfterCutsNLocMax1[i][j]) ;
6168
6169 fhArmAfterCutsNLocMax2[i][j] = new TH2F(Form("hArmAfterCutsNLocMax2EBin%d%s",j,pname[i].Data()),
25330263 6170 Form("Armenteros of splitted cluster with #it{NLM}=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6171 200, -1, 1, narmbins,armmin,armmax);
25330263 6172 fhArmAfterCutsNLocMax2[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6173 fhArmAfterCutsNLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6174 outputContainer->Add(fhArmAfterCutsNLocMax2[i][j]) ;
6175
6176 fhArmAfterCutsNLocMaxN[i][j] = new TH2F(Form("hArmAfterCutsNLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6177 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6178 200, -1, 1, narmbins,armmin,armmax);
25330263 6179 fhArmAfterCutsNLocMaxN[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6180 fhArmAfterCutsNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6181 outputContainer->Add(fhArmAfterCutsNLocMaxN[i][j]) ;
6182 }
6183
6184 fhArmPi0NLocMax1[i][j] = new TH2F(Form("hArmPi0NLocMax1EBin%d%s",j,pname[i].Data()),
25330263 6185 Form("Armenteros of splitted cluster with #it{NLM}=1, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6186 200, -1, 1, narmbins,armmin,armmax);
25330263 6187 fhArmPi0NLocMax1[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6188 fhArmPi0NLocMax1[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6189 outputContainer->Add(fhArmPi0NLocMax1[i][j]) ;
6190
6191 fhArmPi0NLocMax2[i][j] = new TH2F(Form("hArmPi0NLocMax2EBin%d%s",j,pname[i].Data()),
25330263 6192 Form("Armenteros of splitted cluster with #it{NLM}=2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
be894c1d 6193 200, -1, 1, narmbins,armmin,armmax);
25330263 6194 fhArmPi0NLocMax2[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6195 fhArmPi0NLocMax2[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6196 outputContainer->Add(fhArmPi0NLocMax2[i][j]) ;
6197
6198 fhArmPi0NLocMaxN[i][j] = new TH2F(Form("hArmPi0NLocMaxNEBin%d%s",j,pname[i].Data()),
be894c1d 6199 Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()),
6200 200, -1, 1, narmbins,armmin,armmax);
25330263 6201 fhArmPi0NLocMaxN[i][j]->SetYTitle("#it{p}_{T}^{Arm}");
be894c1d 6202 fhArmPi0NLocMaxN[i][j]->SetXTitle("#alpha^{Arm}");
cb99fa55 6203 outputContainer->Add(fhArmPi0NLocMaxN[i][j]) ;
6204
6205 }
6206 }
6207 }
6208
992b14a7 6209 return outputContainer ;
6210
6211}
6212
b2e375c7 6213//_____________________________________________________________________________
4914e781 6214void AliAnaInsideClusterInvariantMass::GetMCIndex(AliVCluster* cluster,
6215 Int_t & mcindex, Int_t & tag)
b2e375c7 6216{
6217
6218 // Assign mc index depending on MC bit set, to be used in histograms arrays
1253480f 6219
0cea6003 6220 tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader(),GetCalorimeter());
b2e375c7 6221
6222 if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) &&
6223 !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPi0;
6224 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) ) mcindex = kmcPi0Conv;
6225 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta) ) mcindex = kmcEta;
6226 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
6227 !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPhoton;
6228 else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) &&
6229 GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcConversion;
cb99fa55 6230 else if (!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron) ) mcindex = kmcHadron;
6231
6232 //printf("MC index %d\n",mcindex);
b2e375c7 6233
6234}
6235
b94e038e 6236//____________________________________________________________________________________________
6237void AliAnaInsideClusterInvariantMass::GetMCPrimaryKine(AliVCluster* cluster, Int_t mcindex,
6238 Int_t mctag, Bool_t matched,
6239 Float_t & eprim, Float_t & asymGen,
6240 Float_t & angleGen, Int_t & noverlaps )
b2e375c7 6241{
6242 // Check origin of the candidates, get primary kinematics if overlapped meson decay
6243
b2e375c7 6244 Bool_t ok = kFALSE;
6245 Int_t mcLabel = cluster->GetLabel();
6246
1a8c88c1 6247 fPrimaryMom = GetMCAnalysisUtils()->GetMother(mcLabel,GetReader(),ok);
6248 eprim = fPrimaryMom.E();
b2e375c7 6249
36769d30 6250 Int_t mesonLabel = -1;
6251
b2e375c7 6252 if(mcindex == kmcPi0 || mcindex == kmcEta || mcindex == kmcPi0Conv)
6253 {
6254 if(mcindex == kmcPi0 || mcindex == kmcPi0Conv)
6255 {
0186b6a2 6256 GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,111,GetReader(),asymGen,angleGen,ok);
6257 asymGen = TMath::Abs(asymGen);
1a8c88c1 6258 fGrandMotherMom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,111,GetReader(),ok,mesonLabel);
6259 if(fGrandMotherMom.E() > 0 && ok) eprim = fGrandMotherMom.E();
b2e375c7 6260 }
6261 else
6262 {
0186b6a2 6263 GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,221,GetReader(),asymGen,angleGen,ok);
6264 asymGen = TMath::Abs(asymGen);
1a8c88c1 6265 fGrandMotherMom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,221,GetReader(),ok,mesonLabel);
6266 if(fGrandMotherMom.E() > 0 && ok) eprim = fGrandMotherMom.E();
b2e375c7 6267 }
6268 }
6269
6270 if(!fFillMCOverlapHisto) return;
36769d30 6271
4914e781 6272 const UInt_t nlabels = cluster->GetNLabels();
6273 Int_t overpdg[nlabels];
6274 noverlaps = GetMCAnalysisUtils()->GetNOverlaps(cluster->GetLabels(), nlabels,mctag,mesonLabel,GetReader(),overpdg);
6275
6276 for(Int_t iover = 0; iover < noverlaps; iover++)
6277 {
36769d30 6278 Float_t histobin = -1;
4914e781 6279 Int_t mpdg = overpdg[iover];
6280
36769d30 6281 if (mpdg==22) histobin = 0.5;
6282 else if(TMath::Abs(mpdg)==11) histobin = 1.5;
6283 else if(mpdg==-999999) histobin = 4.5;
6284 else
6285 {
6286 Double_t charge = TDatabasePDG::Instance()->GetParticle(mpdg)->Charge();
6287 if(TMath::Abs(charge) > 0 ) histobin = 2.5;
6288 else histobin = 3.5;
6289 //printf("charge %f\n",charge);
6290 }
6291
6292 //printf("\t pdg = %d, histobin %2.1f\n",mpdg,histobin);
6293 if(histobin > 0)
6294 {
6295 if(matched)fhMCEOverlapType ->Fill(cluster->E(),histobin);
6296 else fhMCEOverlapTypeMatch->Fill(cluster->E(),histobin);
6297 }
b2e375c7 6298 }
b2e375c7 6299}
6300
992b14a7 6301//___________________________________________
6302void AliAnaInsideClusterInvariantMass::Init()
b2e375c7 6303{
992b14a7 6304 //Init
6305 //Do some checks
a6d3b0a8 6306
bdb39dbd 6307 if(GetCalorimeter() == kPHOS && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD())
3c1d9afb 6308 {
a6d3b0a8 6309 AliFatal("!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n");
992b14a7 6310 }
bdb39dbd 6311 else if(GetCalorimeter() == kEMCAL && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD())
3c1d9afb 6312 {
a6d3b0a8 6313 AliFatal("!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n");
992b14a7 6314 }
6315
3c1d9afb 6316 if( GetReader()->GetDataType() == AliCaloTrackReader::kMC )
6317 {
a6d3b0a8 6318 AliFatal("!!STOP: You want to use pure MC data!!\n");
992b14a7 6319 }
6320
6321}
6322
6323//_____________________________________________________
6324void AliAnaInsideClusterInvariantMass::InitParameters()
6325{
6326 //Initialize the parameters of the analysis.
6327 AddToHistogramsName("AnaPi0InsideClusterInvariantMass_");
6328
992b14a7 6329 fMinNCells = 4 ;
2cb134fb 6330 fMinBadDist = 2 ;
dbe09c26 6331
b2e375c7 6332 fHistoECut = 8 ;
6333
5cd814a9 6334 fSSWeightN = 10;
6335 fSSWeight [0] = 4.00; fSSWeight [1] = 4.10; fSSWeight [2] = 4.20; fSSWeight [3] = 4.30; fSSWeight [4] = 4.35;
6336 fSSWeight [5] = 4.40; fSSWeight [6] = 4.45; fSSWeight [7] = 4.50; fSSWeight [8] = 4.55; fSSWeight [9] = 4.60;
6337 fSSWeight[10] = 4.70; fSSWeight[11] = 4.80; fSSWeight[12] = 4.90; fSSWeight[13] = 5.00; fSSWeight[14] = 5.10;
6338 fSSWeight[15] = 5.20; fSSWeight[16] = 5.50; fSSWeight[17] = 5.75; fSSWeight[18] = 6.00; fSSWeight[19] = 7.00;
19391b8c 6339
5cd814a9 6340 fSSECellCutN = 10;
6341 fSSECellCut [0] = 0.05; fSSECellCut [1] = 0.06; fSSECellCut [2] = 0.07; fSSECellCut [3] = 0.08; fSSECellCut [4] = 0.09;
6342 fSSECellCut [5] = 0.10; fSSECellCut [6] = 0.11; fSSECellCut [7] = 0.12; fSSECellCut [8] = 0.13; fSSECellCut [9] = 0.14;
6343 fSSECellCut[10] = 0.15; fSSECellCut[11] = 0.16; fSSECellCut[12] = 0.17; fSSECellCut[13] = 0.18; fSSECellCut[14] = 0.19;
6344 fSSECellCut[15] = 0.20; fSSECellCut[16] = 0.21; fSSECellCut[17] = 0.22; fSSECellCut[18] = 0.23; fSSECellCut[19] = 0.24;
19391b8c 6345
ff6aa4ce 6346 fNLMSettingN = 5;
6347 fNLMMinE [0] = 0.10; fNLMMinE [1] = 0.20; fNLMMinE [2] = 0.35; fNLMMinE [3] = 0.50; fNLMMinE [4] = 1.00;
6348 fNLMMinDiff[0] = 0.03; fNLMMinDiff[1] = 0.05; fNLMMinDiff[2] = 0.10; fNLMMinDiff[3] = 0.15; fNLMMinDiff[4] = 0.20;
6349
09a5b22d 6350 fWSimu[0] = 1; // Default, do not correct, change to 1.05-1.1
6351 fWSimu[1] = 0; // Default, do not correct, change to 0.07
6352
992b14a7 6353}
6354
6355
6356//__________________________________________________________________
6357void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
6358{
0cea6003 6359 //Search for pi0 in GetCalorimeter() with shower shape analysis
992b14a7 6360
6361 TObjArray * pl = 0x0;
6362 AliVCaloCells* cells = 0x0;
6363
6364 //Select the Calorimeter of the photon
bdb39dbd 6365 if(GetCalorimeter() == kPHOS)
2cb134fb 6366 {
992b14a7 6367 pl = GetPHOSClusters();
6368 cells = GetPHOSCells();
6369 }
bdb39dbd 6370 else if (GetCalorimeter() == kEMCAL)
2cb134fb 6371 {
992b14a7 6372 pl = GetEMCALClusters();
6373 cells = GetEMCALCells();
6374 }
6375
3c1d9afb 6376 if(!pl || !cells)
6377 {
bdb39dbd 6378 Info("MakeAnalysisFillHistograms","TObjArray with %s clusters is NULL!\n",GetCalorimeterString().Data());
992b14a7 6379 return;
6380 }
6381
bdb39dbd 6382 if(GetCalorimeter() == kPHOS) return; // Not implemented for PHOS yet
992b14a7 6383
2cb134fb 6384 for(Int_t icluster = 0; icluster < pl->GetEntriesFast(); icluster++)
6385 {
992b14a7 6386 AliVCluster * cluster = (AliVCluster*) (pl->At(icluster));
6387
b2e375c7 6388 //-------------------------------------------
6389 // Get cluster parameters, do some rejection
6390 //-------------------------------------------
8edbd100 6391
992b14a7 6392 Float_t en = cluster->E();
6393 Float_t l0 = cluster->GetM02();
6394 Int_t nc = cluster->GetNCells();
2cb134fb 6395 Float_t bd = cluster->GetDistanceToBadChannel() ;
d2655d46 6396
2cb134fb 6397 //If too small or big E or low number of cells, or close to a bad channel skip it
b2e375c7 6398
8edbd100 6399 if( en < GetMinEnergy() || en > GetMaxEnergy() || nc < fMinNCells || bd < fMinBadDist) continue ;
2cb134fb 6400
83351853 6401 //printf("en %2.3f GetMinEnergy() %2.3f, GetMaxEnergy() %2.3f , nc %d fMinNCells %d\n",en, GetMinEnergy(),GetMaxEnergy(),nc ,fMinNCells);
6402
b2e375c7 6403 // Track-cluster matching
6404
6405 Bool_t matched = IsTrackMatched(cluster,GetReader()->GetInputEvent());
6406 if(!fFillTMHisto && matched) continue ;
6407
6408 // Get cluster angles
6409
1a8c88c1 6410 cluster->GetMomentum(fClusterMomentum, GetVertex(0));
6411 Float_t eta = fClusterMomentum.Eta();
6412 Float_t phi = fClusterMomentum.Phi();
9554fc65 6413 if(phi<0) phi=+TMath::TwoPi();
6414
2cb134fb 6415 //printf("en %2.2f, GetMinEnergy() %2.2f, GetMaxEnergy() %2.2f, nc %d, fMinNCells %d, bd %2.2f, fMinBadDist %2.2f\n",
6416 // en,GetMinEnergy(), GetMaxEnergy(), nc, fMinNCells, bd, fMinBadDist);
6417
ff6aa4ce 6418 if(fFillNLMDiffCutHisto)
6419 {
6420 FillNLMDiffCutHistograms(cluster,cells,matched);
58a18c5d 6421 return;
ff6aa4ce 6422 }
6423
b2e375c7 6424 // Get PID, N local maximum, *** split cluster ***
d2655d46 6425
3c1d9afb 6426 Int_t nMax = 0;
bfdcf7fb 6427 Double_t mass = 0., angle = 0.;
4914e781 6428 Int_t absId1 =-1; Int_t absId2 =-1;
6429 Float_t distbad1 =-1; Float_t distbad2 =-1;
6430 Bool_t fidcut1 = 0; Bool_t fidcut2 = 0;
b2e375c7 6431
3c1d9afb 6432 Int_t pidTag = GetCaloPID()->GetIdentifiedParticleTypeFromClusterSplitting(cluster,cells,GetCaloUtils(),
19391b8c 6433 GetVertex(0), nMax, mass, angle,
1a8c88c1 6434 fSubClusterMom1,fSubClusterMom2,
6435 absId1,absId2,
6436 distbad1,distbad2,
6437 fidcut1,fidcut2);
5c46c992 6438 if (nMax <= 0)
6439 {
de454976 6440 if(GetDebug() > 0 )
a6d3b0a8 6441 Info("MakeAnalysisFillHistograms","No local maximum found! It did not pass CaloPID selection criteria \n");
5c46c992 6442
4914e781 6443 continue;
992b14a7 6444 }
6445
ce49dd72 6446 // Set some index for array histograms
6447
6448 Int_t inlm = -1;
6449 if (nMax == 1) inlm = 0;
6450 else if(nMax == 2) inlm = 1;
6451 else if(nMax > 2) inlm = 2;
a6d3b0a8 6452 else Info("MakeAnalysisFillHistograms","Wrong N local maximum -> %d, n cells in cluster %d \n",nMax,nc);
ce49dd72 6453
4914e781 6454 // Skip events where one of the new clusters (lowest energy) is close to an EMCal border or a bad channel
1253480f 6455 if( (fCheckSplitDistToBad) &&
6456 (!fidcut2 || !fidcut1 || distbad1 < fMinBadDist || distbad2 < fMinBadDist))
4914e781 6457 {
6458 if(GetDebug() > 1)
a6d3b0a8 6459 Info("MakeAnalysisFillHistograms","Dist to bad channel cl1 %f, cl2 %f; fid cl1 %d, cl2 %d \n",
4914e781 6460 distbad1,distbad2, fidcut1,fidcut2);
ce49dd72 6461
6462 if(distbad1 < fMinBadDist || distbad2 < fMinBadDist)
6463 {
6464 fhMassBadDistClose[inlm]->Fill(en,mass);
6465 fhM02BadDistClose [inlm]->Fill(en,l0 );
6466 }
6467
6468 if(!fidcut1 || !fidcut2)
6469 {
6470 fhMassOnBorder[inlm]->Fill(en,mass);
6471 fhM02OnBorder [inlm]->Fill(en,l0 );
6472 }
6473
4914e781 6474 continue ;
6475 }
6476
b2e375c7 6477 // Get sub-cluster parameters
6478
1a8c88c1 6479 Float_t e1 = fSubClusterMom1.Energy();
6480 Float_t e2 = fSubClusterMom2.Energy();
cfdf2b91 6481
a1fd1b69 6482 Double_t tof1 = cells->GetCellTime(absId1);
0cea6003 6483 GetCaloUtils()->RecalibrateCellTime(tof1, GetCalorimeter(), absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber());
a1fd1b69 6484 tof1*=1.e9;
6485
6486 Double_t tof2 = cells->GetCellTime(absId2);
0cea6003 6487 GetCaloUtils()->RecalibrateCellTime(tof2, GetCalorimeter(), absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber());
a1fd1b69 6488 tof2*=1.e9;
6489
6490 Double_t t12diff = tof1-tof2;
6491
fc01318e 6492 Float_t splitFrac = (e1+e2)/en;
cfdf2b91 6493
e671adc2 6494 Float_t asym = -10;
6495 if(e1+e2>0) asym = (e1-e2)/(e1+e2);
29ca9cad 6496
b2e375c7 6497 //
6498
6499 Int_t ebin = -1;
6500 if(en > 8 && en <= 12) ebin = 0;
6501 if(en > 12 && en <= 16) ebin = 1;
6502 if(en > 16 && en <= 20) ebin = 2;
6503 if(en > 20) ebin = 3;
6504
1253480f 6505 // MC data histograms and some related calculations
6506 // mc tag, n overlaps, asym of generated mesons
b2e375c7 6507
0186b6a2 6508 Int_t mcindex = -1;
6509 Int_t mctag = -1;
6510 Float_t eprim = -1;
6511 Float_t asymGen = -2;
6512 Float_t angleGen = 2000;
6513 Int_t noverlaps = 0;
b2e375c7 6514
b2e375c7 6515 if(IsDataMC())
1253480f 6516 {
6517 // MC indexes
b2e375c7 6518
1253480f 6519 GetMCIndex(cluster,mcindex,mctag);
6520
6521 // MC primary kine, generation fractions
b2e375c7 6522
0186b6a2 6523 GetMCPrimaryKine(cluster,mcindex,mctag,matched,eprim,asymGen,angleGen,noverlaps);
1253480f 6524
6525 // For cluster with MC pi0 and more than 1 maxima
b2e375c7 6526
cb99fa55 6527 }
5c46c992 6528
b2e375c7 6529 //
2a77f6f4 6530
1253480f 6531 FillHistograms1(en, e1, e2, nMax, mass, l0, eta, phi, matched, mcindex);
4914e781 6532
6533 //
6534
1253480f 6535 if(fFillNCellHisto)
6536 FillNCellHistograms(nc,en, nMax,matched, mcindex,mass,l0);
d2655d46 6537
b2e375c7 6538 //
bb2d339b 6539
1253480f 6540 if(fFillSSExtraHisto)
cb99fa55 6541 FillSSExtraHistograms(cluster, nMax, matched,mcindex,mass,ebin) ;
d2655d46 6542
b2e375c7 6543 //
1253480f 6544
cb99fa55 6545 if(!matched && ebin >= 0 && fFillEbinHisto)
1253480f 6546 FillEBinHistograms(ebin,nMax,mcindex,splitFrac,mass,asym,l0);
fc01318e 6547
b2e375c7 6548 //
6549
1253480f 6550 if(fFillAngleHisto)
a6d3b0a8 6551 FillAngleHistograms(nMax,matched,mcindex,en,e1,e2,angle,mass,angleGen,l0, asym,pidTag,noverlaps);
1253480f 6552
cb99fa55 6553 if(fFillArmenterosHisto && ebin >= 0)
1a8c88c1 6554 FillArmenterosHistograms(nMax, ebin, mcindex, en, l0, pidTag);
29555e96 6555
6556 if(fFillThetaStarHisto)
1a8c88c1 6557 FillThetaStarHistograms(nMax,matched,mcindex, en, l0, pidTag);
29555e96 6558
cb99fa55 6559
26680f06 6560 //---------------------------------------------------------------------
1253480f 6561 // From here start applying some cuts
26680f06 6562 //---------------------------------------------------------------------
cb99fa55 6563
6564 // If set, check just on MC clusters when SS cut is applied
6565 if( IsDataMC() && mcindex > 0 && mcindex < 7 && GetCaloPID()->IsInM02Range(l0) )
6566 {
6567 // For cluster with MC pi0 and more than 1 maxima
6568
6569 if(fFillMCOverlapHisto)
6570 CheckLocalMaximaMCOrigin(cluster, mcindex,noverlaps,e1,e2,mass);
6571 //l0, l1, l2);
6572
6573 //
6574
6575 if(fFillMCHisto)
6576 FillMCHistograms(en,e1,e2,ebin,mcindex,noverlaps,l0,mass,
6577 nMax,matched,splitFrac, asym, eprim,asymGen);
6578
6579 //
6580
6581 if(fFillMCOverlapHisto)
6582 FillMCOverlapHistograms(en,eprim,nc,mass,l0,asym,splitFrac,inlm,ebin,matched,mcindex,noverlaps);
6583
6584 }
6585
6586 // Fill few histograms, some still without cuts
1253480f 6587 FillHistograms2(en, eprim, e1, e2, nMax, mass, l0, matched, mcindex);
26680f06 6588
1253480f 6589 if(pidTag==AliCaloPID::kPi0)
b2e375c7 6590 {
1253480f 6591 FillIdPi0Histograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex);
17f5b4b6 6592
5cd814a9 6593 if(fFillSSWeightHisto && !matched)
1253480f 6594 FillSSWeightHistograms(cluster, inlm, absId1, absId2);
cc909e6f 6595
6596 if(fFillTMHisto && fFillTMResidualHisto)
6597 FillTrackMatchingHistograms(cluster,nMax,mcindex);
6598
cb99fa55 6599 if(fFillMCOverlapHisto && IsDataMC() && mcindex > 0 && mcindex < 7 && !matched)
cc909e6f 6600 {
6601 if (noverlaps == 0) fhMCEEpriOverlap0IdPi0 [inlm][mcindex]->Fill(en, eprim);
6602 else if(noverlaps == 1) fhMCEEpriOverlap1IdPi0 [inlm][mcindex]->Fill(en, eprim);
6603 else if(noverlaps > 1) fhMCEEpriOverlapNIdPi0 [inlm][mcindex]->Fill(en, eprim);
6604 }
167f2534 6605 }
1253480f 6606 else if(fFillIdEtaHisto && pidTag==AliCaloPID::kEta)
5c46c992 6607 {
1253480f 6608 FillIdEtaHistograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex);
243c2909 6609 }
1253480f 6610 else if(fFillIdConvHisto && pidTag==AliCaloPID::kPhoton)
5c46c992 6611 {
1253480f 6612 FillIdConvHistograms(en, nMax, asym, mass, l0, matched, mcindex);
243c2909 6613 }
6614
992b14a7 6615 }//loop
6616
a6d3b0a8 6617 if(GetDebug() > 1) Info("MakeAnalysisFillHistograms","END \n");
e23a0471 6618
992b14a7 6619}
6620
6621//______________________________________________________________________
6622void AliAnaInsideClusterInvariantMass::Print(const Option_t * opt) const
6623{
6624 //Print some relevant parameters set for the analysis
6625 if(! opt)
6626 return;
6627
6628 printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
745913ae 6629 AliAnaCaloTrackCorrBaseClass::Print("");
bdb39dbd 6630 printf("Calorimeter = %s\n", GetCalorimeterString().Data()) ;
19391b8c 6631 if(GetCaloUtils()) printf("Loc. Max. E > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutE());
6632 if(GetCaloUtils()) printf("Loc. Max. E Diff > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutEDiff());
cfc19369 6633 printf("Min. N Cells =%d \n", fMinNCells) ;
6634 printf("Min. Dist. to Bad =%1.1f \n", fMinBadDist) ;
19391b8c 6635 if(fFillSSWeightHisto) printf(" N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN);
6636
992b14a7 6637 printf(" \n") ;
6638
6639}
6640
19391b8c 6641//___________________________________________________________________________________________________________________
6642void AliAnaInsideClusterInvariantMass::RecalculateClusterShowerShapeParametersWithCellCut(const AliEMCALGeometry * geom,
6643 AliVCaloCells* cells,
6644 AliVCluster * cluster,
6645 Float_t & l0, Float_t & l1,
6646 Float_t & disp, Float_t & dEta, Float_t & dPhi,
6647 Float_t & sEta, Float_t & sPhi, Float_t & sEtaPhi,
6648 Float_t eCellMin)
6649{
6650 // Calculates new center of gravity in the local EMCAL-module coordinates
6651 // and tranfers into global ALICE coordinates
6652 // Calculates Dispersion and main axis
6653
6654 if(!cluster)
6655 {
6656 AliInfo("Cluster pointer null!");
6657 return;
6658 }
6659
6660 Double_t eCell = 0.;
6661 Float_t fraction = 1.;
6662 Float_t recalFactor = 1.;
6663
6664 Int_t iSupMod = -1;
6665 Int_t iTower = -1;
6666 Int_t iIphi = -1;
6667 Int_t iIeta = -1;
6668 Int_t iphi = -1;
6669 Int_t ieta = -1;
6670 Double_t etai = -1.;
6671 Double_t phii = -1.;
6672
6673 Int_t nstat = 0 ;
6674 Float_t wtot = 0.;
6675 Double_t w = 0.;
6676 Double_t etaMean = 0.;
6677 Double_t phiMean = 0.;
3ae72bd8 6678
09a5b22d 6679 Bool_t shared = GetCaloUtils()-> IsClusterSharedByTwoSuperModules(geom,cluster);
3ae72bd8 6680
09a5b22d 6681 Float_t energy = GetCaloUtils()->RecalibrateClusterEnergy(cluster, cells);
6682
6683 Float_t simuTotWeight = 0;
6684 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
19391b8c 6685 {
09a5b22d 6686 simuTotWeight = GetCaloUtils()->RecalibrateClusterEnergyWeightCell(cluster, cells,energy);
6687 simuTotWeight/= energy;
6688 }
19391b8c 6689
6690 //Loop on cells, get weighted parameters
6691 for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
6692 {
6693 //Get from the absid the supermodule, tower and eta/phi numbers
6694 geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
6695 geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
6696
6697 //Get the cell energy, if recalibration is on, apply factors
6698 fraction = cluster->GetCellAmplitudeFraction(iDigit);
6699 if(fraction < 1e-4) fraction = 1.; // in case unfolding is off
6700
3ae72bd8 6701 if(GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn())
6702 {
6703 recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
6704 }
19391b8c 6705
6706 eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor;
6707
3ae72bd8 6708 // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2
6709 // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0
6710 if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols;
6711
9ae170de 6712 if(energy > 0 && eCell > eCellMin)
19391b8c 6713 {
09a5b22d 6714 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
6715 eCell*=GetCaloUtils()->GetMCECellClusFracCorrection(eCell,energy)/simuTotWeight;
6716
19391b8c 6717 w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy);
8edbd100 6718
6719 //correct weight, ONLY in simulation
09a5b22d 6720 w *= (fWSimu[0] - fWSimu[1] * w );
aa12888f 6721
19391b8c 6722 etai=(Double_t)ieta;
6723 phii=(Double_t)iphi;
6724
6725 if(w > 0.0)
6726 {
6727 wtot += w ;
6728 nstat++;
6729 //Shower shape
6730 sEta += w * etai * etai ;
6731 etaMean += w * etai ;
6732 sPhi += w * phii * phii ;
6733 phiMean += w * phii ;
6734 sEtaPhi += w * etai * phii ;
6735 }
6736 }
9ae170de 6737 else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy));
19391b8c 6738
6739 }//cell loop
6740
6741 //Normalize to the weight
6742 if (wtot > 0)
6743 {
6744 etaMean /= wtot ;
6745 phiMean /= wtot ;
6746 }
6747 else
6748 AliError(Form("Wrong weight %f\n", wtot));
6749
6750 //Calculate dispersion
6751 for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++)
6752 {
6753 //Get from the absid the supermodule, tower and eta/phi numbers
6754 geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta);
6755 geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta);
6756
6757 //Get the cell energy, if recalibration is on, apply factors
6758 fraction = cluster->GetCellAmplitudeFraction(iDigit);
6759 if(fraction < 1e-4) fraction = 1.; // in case unfolding is off
6760 if (GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn())
6761 {
6762 recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi);
6763 }
3ae72bd8 6764
19391b8c 6765 eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor;
6766
3ae72bd8 6767 // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2
6768 // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0
6769 if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols;
6770
9ae170de 6771 if(energy > 0 && eCell > eCellMin)
19391b8c 6772 {
09a5b22d 6773 if(GetCaloUtils()->IsMCECellClusFracCorrectionOn())
6774 eCell*=GetCaloUtils()->GetMCECellClusFracCorrection(eCell,energy)/simuTotWeight;
6775
19391b8c 6776 w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy);
6777
8edbd100 6778 //correct weight, ONLY in simulation
09a5b22d 6779 w *= (fWSimu[0] - fWSimu[1] * w );
8edbd100 6780
19391b8c 6781 etai=(Double_t)ieta;
6782 phii=(Double_t)iphi;
6783 if(w > 0.0)
6784 {
6785 disp += w *((etai-etaMean)*(etai-etaMean)+(phii-phiMean)*(phii-phiMean));
6786 dEta += w * (etai-etaMean)*(etai-etaMean) ;
6787 dPhi += w * (phii-phiMean)*(phii-phiMean) ;
6788 }
6789 }
9ae170de 6790 else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy));
19391b8c 6791 }// cell loop
6792
6793 //Normalize to the weigth and set shower shape parameters
6794 if (wtot > 0 && nstat > 1)
6795 {
6796 disp /= wtot ;
6797 dEta /= wtot ;
6798 dPhi /= wtot ;
6799 sEta /= wtot ;
6800 sPhi /= wtot ;
6801 sEtaPhi /= wtot ;
6802
6803 sEta -= etaMean * etaMean ;
6804 sPhi -= phiMean * phiMean ;
6805 sEtaPhi -= etaMean * phiMean ;
6806
6807 l0 = (0.5 * (sEta + sPhi) + TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi ));
6808 l1 = (0.5 * (sEta + sPhi) - TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi ));
6809 }
6810 else
6811 {
6812 l0 = 0. ;
6813 l1 = 0. ;
6814 dEta = 0. ; dPhi = 0. ; disp = 0. ;
6815 sEta = 0. ; sPhi = 0. ; sEtaPhi = 0. ;
6816 }
6817
6818}
6819
992b14a7 6820