]>
Commit | Line | Data |
---|---|---|
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 | 51 | ClassImp(AliAnaInsideClusterInvariantMass) |
52 | ||
53 | //__________________________________________________________________ | |
54 | AliAnaInsideClusterInvariantMass::AliAnaInsideClusterInvariantMass() : | |
0186b6a2 | 55 | AliAnaCaloTrackCorrBaseClass(), fCalorimeter(""), |
56 | fMinNCells(0), fMinBadDist(0), | |
57 | fHistoECut(0), fCheckSplitDistToBad(0), fFillAngleHisto(kFALSE), | |
58 | fFillTMHisto(kFALSE), fFillTMResidualHisto(kFALSE), fFillSSExtraHisto(kFALSE), | |
59 | fFillMCHisto(kFALSE), fFillSSWeightHisto(kFALSE), fFillEbinHisto(0), | |
60 | fFillMCOverlapHisto(0), fFillNCellHisto(0), fFillIdConvHisto(0), | |
29555e96 | 61 | fFillIdEtaHisto(0), fFillHighMultHisto(0), |
62 | fFillArmenterosHisto(0), fFillThetaStarHisto(0), | |
0186b6a2 | 63 | fSSWeightN(0), fSSECellCutN(0), fWSimu(0), |
64 | fhMassAsyCutNLocMax1(0), fhMassAsyCutNLocMax2(0), fhMassAsyCutNLocMaxN(0), | |
65 | fhM02AsyCutNLocMax1(0), fhM02AsyCutNLocMax2(0), fhM02AsyCutNLocMaxN(0), | |
66 | fhMassM02CutNLocMax1(0), fhMassM02CutNLocMax2(0), fhMassM02CutNLocMaxN(0), | |
67 | fhAsymM02CutNLocMax1(0), fhAsymM02CutNLocMax2(0), fhAsymM02CutNLocMaxN(0), | |
68 | fhMassSplitECutNLocMax1(0), fhMassSplitECutNLocMax2(0), fhMassSplitECutNLocMaxN(0), | |
69 | fhMCGenFracAfterCutsNLocMax1MCPi0(0), fhMCGenFracAfterCutsNLocMax2MCPi0(0), fhMCGenFracAfterCutsNLocMaxNMCPi0(0), | |
70 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMax2MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0(0), | |
71 | fhNCellMassEHighNLocMax1MCPi0(0), fhNCellM02EHighNLocMax1MCPi0(0), | |
72 | fhNCellMassELowNLocMax1MCPi0(0), fhNCellM02ELowNLocMax1MCPi0(0), | |
73 | fhNCellMassEHighNLocMax2MCPi0(0), fhNCellM02EHighNLocMax2MCPi0(0), | |
74 | fhNCellMassELowNLocMax2MCPi0(0), fhNCellM02ELowNLocMax2MCPi0(0), | |
75 | fhNCellMassEHighNLocMaxNMCPi0(0), fhNCellM02EHighNLocMaxNMCPi0(0), | |
76 | fhNCellMassELowNLocMaxNMCPi0(0), fhNCellM02ELowNLocMaxNMCPi0(0), | |
77 | fhAnglePairPrimPi0RecoNLocMax1(0), fhAnglePairPrimPi0RecoNLocMax2(0), fhAnglePairPrimPi0RecoNLocMaxN(0), | |
78 | fhAnglePairPrimPi0vsRecoNLocMax1(0), fhAnglePairPrimPi0vsRecoNLocMax2(0), fhAnglePairPrimPi0vsRecoNLocMaxN(0), | |
79 | fhCentralityPi0NLocMax1(0), fhCentralityEtaNLocMax1(0), | |
80 | fhCentralityPi0NLocMax2(0), fhCentralityEtaNLocMax2(0), | |
81 | fhCentralityPi0NLocMaxN(0), fhCentralityEtaNLocMaxN(0), | |
82 | fhEventPlanePi0NLocMax1(0), fhEventPlaneEtaNLocMax1(0), | |
83 | fhEventPlanePi0NLocMax2(0), fhEventPlaneEtaNLocMax2(0), | |
84 | fhEventPlanePi0NLocMaxN(0), fhEventPlaneEtaNLocMaxN(0), | |
85 | fhClusterEtaPhiNLocMax1(0), fhClusterEtaPhiNLocMax2(0), fhClusterEtaPhiNLocMaxN(0), | |
86 | fhPi0EtaPhiNLocMax1(0), fhPi0EtaPhiNLocMax2(0), fhPi0EtaPhiNLocMaxN(0), | |
87 | fhEtaEtaPhiNLocMax1(0), fhEtaEtaPhiNLocMax2(0), fhEtaEtaPhiNLocMaxN(0), | |
88 | fhPi0EPairDiffTimeNLM1(0), fhPi0EPairDiffTimeNLM2(0), fhPi0EPairDiffTimeNLMN(0), | |
89 | fhEtaEPairDiffTimeNLM1(0), fhEtaEPairDiffTimeNLM2(0), fhEtaEPairDiffTimeNLMN(0), | |
90 | fhMCPi0HighNLMPair(0), fhMCPi0LowNLMPair(0), | |
91 | fhMCPi0AnyNLMPair(0), fhMCPi0NoneNLMPair(0), | |
92 | fhMCPi0HighNLMPairNoMCMatch(0), fhMCPi0LowNLMPairNoMCMatch(0), | |
93 | fhMCPi0AnyNLMPairNoMCMatch(0), fhMCPi0NoneNLMPairNoMCMatch(0), | |
94 | fhMCPi0HighNLMPairOverlap(0), fhMCPi0LowNLMPairOverlap(0), | |
95 | fhMCPi0AnyNLMPairOverlap(0), fhMCPi0NoneNLMPairOverlap(0), | |
96 | fhMCPi0HighNLMPairNoMCMatchOverlap(0), fhMCPi0LowNLMPairNoMCMatchOverlap(0), | |
97 | fhMCPi0AnyNLMPairNoMCMatchOverlap(0), fhMCPi0NoneNLMPairNoMCMatchOverlap(0), | |
98 | fhMCPi0DecayPhotonHitHighLM(0), fhMCPi0DecayPhotonAdjHighLM(0), | |
99 | fhMCPi0DecayPhotonHitOtherLM(0), fhMCPi0DecayPhotonAdjOtherLM(0), | |
100 | fhMCPi0DecayPhotonAdjacent(0), fhMCPi0DecayPhotonHitNoLM(0), | |
101 | fhMCPi0DecayPhotonHitHighLMOverlap(0), fhMCPi0DecayPhotonAdjHighLMOverlap(0), | |
102 | fhMCPi0DecayPhotonHitOtherLMOverlap(0), fhMCPi0DecayPhotonAdjOtherLMOverlap(0), | |
103 | fhMCPi0DecayPhotonAdjacentOverlap(0), fhMCPi0DecayPhotonHitNoLMOverlap(0), | |
104 | fhMCEOverlapType(0), fhMCEOverlapTypeMatch(0) | |
992b14a7 | 105 | { |
106 | //default ctor | |
107 | ||
108 | // Init array of histograms | |
cb99fa55 | 109 | for(Int_t i = 0; i < 7; i++) |
5c46c992 | 110 | { |
111 | for(Int_t j = 0; j < 2; j++) | |
112 | { | |
5c46c992 | 113 | fhMassNLocMax1[i][j] = 0; |
114 | fhMassNLocMax2[i][j] = 0; | |
115 | fhMassNLocMaxN[i][j] = 0; | |
116 | fhNLocMax[i][j] = 0; | |
5c46c992 | 117 | fhNLocMaxM02Cut[i][j] = 0; |
cc909e6f | 118 | fhSplitClusterENLocMax [i][j] = 0; |
119 | fhSplitClusterEPi0NLocMax[i][j] = 0; | |
5c46c992 | 120 | fhM02NLocMax1[i][j] = 0; |
121 | fhM02NLocMax2[i][j] = 0; | |
122 | fhM02NLocMaxN[i][j] = 0; | |
123 | fhNCellNLocMax1[i][j] = 0; | |
124 | fhNCellNLocMax2[i][j] = 0; | |
125 | fhNCellNLocMaxN[i][j] = 0; | |
c8710850 | 126 | fhM02Pi0NLocMax1[i][j] = 0; |
127 | fhM02EtaNLocMax1[i][j] = 0; | |
128 | fhM02ConNLocMax1[i][j] = 0; | |
129 | fhM02Pi0NLocMax2[i][j] = 0; | |
130 | fhM02EtaNLocMax2[i][j] = 0; | |
131 | fhM02ConNLocMax2[i][j] = 0; | |
132 | fhM02Pi0NLocMaxN[i][j] = 0; | |
133 | fhM02EtaNLocMaxN[i][j] = 0; | |
134 | fhM02ConNLocMaxN[i][j] = 0; | |
135 | ||
136 | fhMassPi0NLocMax1[i][j] = 0; | |
137 | fhMassEtaNLocMax1[i][j] = 0; | |
138 | fhMassConNLocMax1[i][j] = 0; | |
139 | fhMassPi0NLocMax2[i][j] = 0; | |
140 | fhMassEtaNLocMax2[i][j] = 0; | |
141 | fhMassConNLocMax2[i][j] = 0; | |
142 | fhMassPi0NLocMaxN[i][j] = 0; | |
143 | fhMassEtaNLocMaxN[i][j] = 0; | |
144 | fhMassConNLocMaxN[i][j] = 0; | |
cb99fa55 | 145 | |
1253480f | 146 | fhNCellPi0NLocMax1[i][j] = 0; |
147 | fhNCellEtaNLocMax1[i][j] = 0; | |
148 | fhNCellPi0NLocMax2[i][j] = 0; | |
149 | fhNCellEtaNLocMax2[i][j] = 0; | |
150 | fhNCellPi0NLocMaxN[i][j] = 0; | |
151 | fhNCellEtaNLocMaxN[i][j] = 0; | |
c8710850 | 152 | |
153 | fhAsyPi0NLocMax1[i][j] = 0; | |
154 | fhAsyEtaNLocMax1[i][j] = 0; | |
155 | fhAsyConNLocMax1[i][j] = 0; | |
156 | fhAsyPi0NLocMax2[i][j] = 0; | |
157 | fhAsyEtaNLocMax2[i][j] = 0; | |
158 | fhAsyConNLocMax2[i][j] = 0; | |
159 | fhAsyPi0NLocMaxN[i][j] = 0; | |
160 | fhAsyEtaNLocMaxN[i][j] = 0; | |
161 | fhAsyConNLocMaxN[i][j] = 0; | |
e671adc2 | 162 | |
0137016b | 163 | fhMassM02NLocMax1[i][j]= 0; |
164 | fhMassM02NLocMax2[i][j]= 0; | |
d2655d46 | 165 | fhMassM02NLocMaxN[i][j]= 0; |
166 | fhMassDispEtaNLocMax1[i][j]= 0; | |
167 | fhMassDispEtaNLocMax2[i][j]= 0; | |
168 | fhMassDispEtaNLocMaxN[i][j]= 0; | |
169 | fhMassDispPhiNLocMax1[i][j]= 0; | |
170 | fhMassDispPhiNLocMax2[i][j]= 0; | |
171 | fhMassDispPhiNLocMaxN[i][j]= 0; | |
172 | fhMassDispAsyNLocMax1[i][j]= 0; | |
173 | fhMassDispAsyNLocMax2[i][j]= 0; | |
174 | fhMassDispAsyNLocMaxN[i][j]= 0; | |
8e81c2cf | 175 | |
fc01318e | 176 | fhSplitEFractionNLocMax1[i][j]=0; |
177 | fhSplitEFractionNLocMax2[i][j]=0; | |
178 | fhSplitEFractionNLocMaxN[i][j]=0; | |
179 | ||
29555e96 | 180 | fhAnglePairNLocMax1 [i][j] = 0; |
181 | fhAnglePairNLocMax2 [i][j] = 0; | |
182 | fhAnglePairNLocMaxN [i][j] = 0; | |
183 | ||
184 | fhAnglePairAfterCutsNLocMax1[i][j] = 0; | |
185 | fhAnglePairAfterCutsNLocMax2[i][j] = 0; | |
186 | fhAnglePairAfterCutsNLocMaxN[i][j] = 0; | |
187 | ||
188 | fhAnglePairPi0NLocMax1 [i][j] = 0; | |
189 | fhAnglePairPi0NLocMax2 [i][j] = 0; | |
190 | fhAnglePairPi0NLocMaxN [i][j] = 0; | |
191 | ||
192 | fhAnglePairMassNLocMax1 [i][j] = 0; | |
193 | fhAnglePairMassNLocMax2 [i][j] = 0; | |
194 | fhAnglePairMassNLocMaxN [i][j] = 0; | |
195 | ||
196 | fhCosThStarNLocMax1 [i][j] = 0; | |
197 | fhCosThStarNLocMax2 [i][j] = 0; | |
198 | fhCosThStarNLocMaxN [i][j] = 0; | |
199 | ||
200 | fhCosThStarAfterCutsNLocMax1[i][j] = 0; | |
201 | fhCosThStarAfterCutsNLocMax2[i][j] = 0; | |
202 | fhCosThStarAfterCutsNLocMaxN[i][j] = 0; | |
203 | ||
204 | fhCosThStarPi0NLocMax1 [i][j] = 0; | |
205 | fhCosThStarPi0NLocMax2 [i][j] = 0; | |
206 | fhCosThStarPi0NLocMaxN [i][j] = 0; | |
0186b6a2 | 207 | |
8e81c2cf | 208 | fhMCGenFracNLocMax1[i][j]= 0; |
209 | fhMCGenFracNLocMax2[i][j]= 0; | |
210 | fhMCGenFracNLocMaxN[i][j]= 0; | |
4914e781 | 211 | |
212 | fhMCGenFracNLocMax1NoOverlap[i][j]= 0; | |
213 | fhMCGenFracNLocMax2NoOverlap[i][j]= 0; | |
214 | fhMCGenFracNLocMaxNNoOverlap[i][j]= 0; | |
5094c724 | 215 | |
216 | fhMCGenSplitEFracNLocMax1[i][j]= 0; | |
217 | fhMCGenSplitEFracNLocMax2[i][j]= 0; | |
bb2d339b | 218 | fhMCGenSplitEFracNLocMaxN[i][j]= 0; |
4914e781 | 219 | |
220 | fhMCGenSplitEFracNLocMax1NoOverlap[i][j]= 0; | |
221 | fhMCGenSplitEFracNLocMax2NoOverlap[i][j]= 0; | |
222 | fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]= 0; | |
bb2d339b | 223 | |
224 | fhMCGenEFracvsSplitEFracNLocMax1[i][j]= 0; | |
225 | fhMCGenEFracvsSplitEFracNLocMax2[i][j]= 0; | |
226 | fhMCGenEFracvsSplitEFracNLocMaxN[i][j]= 0; | |
227 | ||
228 | fhMCGenEvsSplitENLocMax1[i][j]= 0; | |
229 | fhMCGenEvsSplitENLocMax2[i][j]= 0; | |
e671adc2 | 230 | fhMCGenEvsSplitENLocMaxN[i][j]= 0; |
231 | ||
232 | fhAsymNLocMax1 [i][j] = 0; | |
233 | fhAsymNLocMax2 [i][j] = 0; | |
234 | fhAsymNLocMaxN [i][j] = 0; | |
74858845 | 235 | |
236 | fhMassAfterCutsNLocMax1[i][j] = 0; | |
237 | fhMassAfterCutsNLocMax2[i][j] = 0; | |
238 | fhMassAfterCutsNLocMaxN[i][j] = 0; | |
cb99fa55 | 239 | |
74858845 | 240 | |
241 | fhSplitEFractionAfterCutsNLocMax1[i][j] = 0 ; | |
242 | fhSplitEFractionAfterCutsNLocMax2[i][j] = 0 ; | |
243 | fhSplitEFractionAfterCutsNLocMaxN[i][j] = 0 ; | |
8e81c2cf | 244 | } |
19391b8c | 245 | |
8e81c2cf | 246 | for(Int_t jj = 0; jj < 4; jj++) |
247 | { | |
53f2c382 | 248 | fhM02MCGenFracNLocMax1Ebin[i][jj] = 0; |
249 | fhM02MCGenFracNLocMax2Ebin[i][jj] = 0; | |
250 | fhM02MCGenFracNLocMaxNEbin[i][jj] = 0; | |
8e81c2cf | 251 | |
252 | fhMassMCGenFracNLocMax1Ebin[i][jj]= 0; | |
253 | fhMassMCGenFracNLocMax2Ebin[i][jj]= 0; | |
254 | fhMassMCGenFracNLocMaxNEbin[i][jj]= 0; | |
53f2c382 | 255 | |
fc01318e | 256 | fhMCGenFracNLocMaxEbin[i][jj] = 0; |
53f2c382 | 257 | fhMCGenFracNLocMaxEbinMatched[i][jj]= 0; |
fc01318e | 258 | |
259 | fhMassSplitEFractionNLocMax1Ebin[i][jj] = 0; | |
260 | fhMassSplitEFractionNLocMax2Ebin[i][jj] = 0; | |
261 | fhMassSplitEFractionNLocMaxNEbin[i][jj] = 0; | |
5c46c992 | 262 | } |
263 | ||
b2e375c7 | 264 | fhTrackMatchedDEtaNLocMax1[i] = 0; |
c8710850 | 265 | fhTrackMatchedDPhiNLocMax1[i] = 0; |
266 | fhTrackMatchedDEtaNLocMax2[i] = 0; | |
267 | fhTrackMatchedDPhiNLocMax2[i] = 0; | |
268 | fhTrackMatchedDEtaNLocMaxN[i] = 0; | |
269 | fhTrackMatchedDPhiNLocMaxN[i] = 0; | |
b2e375c7 | 270 | |
271 | fhTrackMatchedDEtaNLocMax1Pos[i] = 0; | |
272 | fhTrackMatchedDPhiNLocMax1Pos[i] = 0; | |
273 | fhTrackMatchedDEtaNLocMax2Pos[i] = 0; | |
274 | fhTrackMatchedDPhiNLocMax2Pos[i] = 0; | |
275 | fhTrackMatchedDEtaNLocMaxNPos[i] = 0; | |
276 | fhTrackMatchedDPhiNLocMaxNPos[i] = 0; | |
277 | ||
278 | fhTrackMatchedDEtaNLocMax1Neg[i] = 0; | |
279 | fhTrackMatchedDPhiNLocMax1Neg[i] = 0; | |
280 | fhTrackMatchedDEtaNLocMax2Neg[i] = 0; | |
281 | fhTrackMatchedDPhiNLocMax2Neg[i] = 0; | |
282 | fhTrackMatchedDEtaNLocMaxNNeg[i] = 0; | |
283 | fhTrackMatchedDPhiNLocMaxNNeg[i] = 0; | |
243c2909 | 284 | |
b2e375c7 | 285 | for(Int_t nlm = 0; nlm < 3; nlm++) |
286 | { | |
287 | fhMCEM02Overlap0 [nlm][i] = 0; | |
288 | fhMCEM02Overlap1 [nlm][i] = 0; | |
289 | fhMCEM02OverlapN [nlm][i] = 0; | |
290 | fhMCEM02Overlap0Match[nlm][i] = 0; | |
291 | fhMCEM02Overlap1Match[nlm][i] = 0; | |
292 | fhMCEM02OverlapNMatch[nlm][i] = 0; | |
293 | ||
294 | fhMCEMassOverlap0 [nlm][i] = 0; | |
295 | fhMCEMassOverlap1 [nlm][i] = 0; | |
296 | fhMCEMassOverlapN [nlm][i] = 0; | |
297 | fhMCEMassOverlap0Match[nlm][i] = 0; | |
298 | fhMCEMassOverlap1Match[nlm][i] = 0; | |
299 | fhMCEMassOverlapNMatch[nlm][i] = 0; | |
83351853 | 300 | |
4914e781 | 301 | fhMCEAsymOverlap0 [nlm][i] = 0; |
302 | fhMCEAsymOverlap1 [nlm][i] = 0; | |
303 | fhMCEAsymOverlapN [nlm][i] = 0; | |
304 | fhMCEAsymOverlap0Match[nlm][i] = 0; | |
305 | fhMCEAsymOverlap1Match[nlm][i] = 0; | |
306 | fhMCEAsymOverlapNMatch[nlm][i] = 0; | |
307 | ||
74e3eb22 | 308 | fhMCENCellOverlap0 [nlm][i] = 0; |
309 | fhMCENCellOverlap1 [nlm][i] = 0; | |
310 | fhMCENCellOverlapN [nlm][i] = 0; | |
311 | fhMCENCellOverlap0Match[nlm][i] = 0; | |
312 | fhMCENCellOverlap1Match[nlm][i] = 0; | |
313 | fhMCENCellOverlapNMatch[nlm][i] = 0; | |
314 | ||
4914e781 | 315 | fhMCEEpriOverlap0 [nlm][i] = 0; |
316 | fhMCEEpriOverlap1 [nlm][i] = 0; | |
317 | fhMCEEpriOverlapN [nlm][i] = 0; | |
318 | fhMCEEpriOverlap0Match[nlm][i] = 0; | |
319 | fhMCEEpriOverlap1Match[nlm][i] = 0; | |
320 | fhMCEEpriOverlapNMatch[nlm][i] = 0; | |
cc909e6f | 321 | |
322 | fhMCEEpriOverlap0IdPi0[nlm][i] = 0; | |
323 | fhMCEEpriOverlap1IdPi0[nlm][i] = 0; | |
324 | fhMCEEpriOverlapNIdPi0[nlm][i] = 0; | |
4914e781 | 325 | |
83351853 | 326 | fhMCESplitEFracOverlap0 [nlm][i] = 0; |
327 | fhMCESplitEFracOverlap1 [nlm][i] = 0; | |
328 | fhMCESplitEFracOverlapN [nlm][i] = 0; | |
329 | fhMCESplitEFracOverlap0Match[nlm][i] = 0; | |
330 | fhMCESplitEFracOverlap1Match[nlm][i] = 0; | |
331 | fhMCESplitEFracOverlapNMatch[nlm][i] = 0; | |
b2e375c7 | 332 | |
333 | fhMCENOverlaps [nlm][i] = 0; | |
334 | fhMCENOverlapsMatch [nlm][i] = 0; | |
b583134f | 335 | |
b2e375c7 | 336 | if(i > 3) continue ; |
337 | ||
338 | fhMCPi0MassM02Overlap0 [nlm][i] = 0; | |
339 | fhMCPi0MassM02Overlap1 [nlm][i] = 0; | |
340 | fhMCPi0MassM02OverlapN [nlm][i] = 0; | |
341 | fhMCPi0MassM02Overlap0Match[nlm][i] = 0; | |
342 | fhMCPi0MassM02Overlap1Match[nlm][i] = 0; | |
343 | fhMCPi0MassM02OverlapNMatch[nlm][i] = 0; | |
344 | } | |
992b14a7 | 345 | } |
346 | ||
5c46c992 | 347 | for(Int_t i = 0; i < 2; i++) |
348 | { | |
e671adc2 | 349 | fhSplitEFractionvsAsyNLocMax1[i] = 0; |
350 | fhSplitEFractionvsAsyNLocMax2[i] = 0; | |
351 | fhSplitEFractionvsAsyNLocMaxN[i] = 0; | |
5c46c992 | 352 | } |
353 | ||
7b686344 | 354 | for(Int_t i = 0; i < 4; i++) |
355 | { | |
356 | fhMassM02NLocMax1Ebin[i] = 0 ; | |
357 | fhMassM02NLocMax2Ebin[i] = 0 ; | |
358 | fhMassM02NLocMaxNEbin[i] = 0 ; | |
b8eb40fc | 359 | |
360 | fhMassAsyNLocMax1Ebin[i] = 0 ; | |
361 | fhMassAsyNLocMax2Ebin[i] = 0 ; | |
362 | fhMassAsyNLocMaxNEbin[i] = 0 ; | |
363 | ||
364 | fhAsyMCGenRecoNLocMax1EbinPi0[i] = 0 ; | |
365 | fhAsyMCGenRecoNLocMax2EbinPi0[i] = 0 ; | |
366 | fhAsyMCGenRecoNLocMaxNEbinPi0[i] = 0 ; | |
d2655d46 | 367 | |
368 | fhMassDispEtaNLocMax1Ebin[i] = 0 ; | |
369 | fhMassDispEtaNLocMax2Ebin[i] = 0 ; | |
370 | fhMassDispEtaNLocMaxNEbin[i] = 0 ; | |
371 | ||
372 | fhMassDispPhiNLocMax1Ebin[i] = 0 ; | |
373 | fhMassDispPhiNLocMax2Ebin[i] = 0 ; | |
374 | fhMassDispPhiNLocMaxNEbin[i] = 0 ; | |
375 | ||
376 | fhMassDispAsyNLocMax1Ebin[i] = 0 ; | |
377 | fhMassDispAsyNLocMax2Ebin[i] = 0 ; | |
378 | fhMassDispAsyNLocMaxNEbin[i] = 0 ; | |
8e81c2cf | 379 | |
380 | fhMCAsymM02NLocMax1MCPi0Ebin[i] = 0 ; | |
381 | fhMCAsymM02NLocMax2MCPi0Ebin[i] = 0 ; | |
382 | fhMCAsymM02NLocMaxNMCPi0Ebin[i] = 0 ; | |
7b686344 | 383 | } |
384 | ||
dbe09c26 | 385 | for(Int_t nlm = 0; nlm < 3; nlm++) |
386 | { | |
b583134f | 387 | |
388 | fhMCPi0DecayPhotonHitHighLMDiffELM1 [nlm] = 0 ; | |
389 | fhMCPi0DecayPhotonAdjHighLMDiffELM1 [nlm] = 0 ; | |
390 | fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = 0 ; | |
391 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = 0 ; | |
392 | ||
393 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1 [nlm] = 0 ; | |
394 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1 [nlm] = 0 ; | |
395 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = 0 ; | |
396 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = 0 ; | |
397 | ||
398 | fhMCPi0DecayPhotonHitHighLMDiffELM2 [nlm] = 0 ; | |
399 | fhMCPi0DecayPhotonAdjHighLMDiffELM2 [nlm] = 0 ; | |
400 | fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = 0 ; | |
401 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = 0 ; | |
402 | ||
403 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2 [nlm] = 0 ; | |
404 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2 [nlm] = 0 ; | |
405 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = 0 ; | |
29555e96 | 406 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = 0 ; |
407 | ||
408 | fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1 [nlm] = 0 ; | |
409 | fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1 [nlm] = 0 ; | |
410 | fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = 0 ; | |
411 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = 0 ; | |
b583134f | 412 | |
29555e96 | 413 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ; |
414 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ; | |
415 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ; | |
416 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ; | |
417 | ||
418 | fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2 [nlm] = 0 ; | |
419 | fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2 [nlm] = 0 ; | |
420 | fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = 0 ; | |
421 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = 0 ; | |
422 | ||
423 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ; | |
424 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ; | |
425 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ; | |
426 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ; | |
427 | ||
428 | fhMCPi0DecayPhotonHitHighLMMass [nlm] = 0 ; | |
b583134f | 429 | fhMCPi0DecayPhotonAdjHighLMMass [nlm] = 0 ; |
430 | fhMCPi0DecayPhotonHitOtherLMMass[nlm] = 0 ; | |
431 | fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = 0 ; | |
432 | fhMCPi0DecayPhotonAdjacentMass [nlm] = 0 ; | |
433 | fhMCPi0DecayPhotonHitNoLMMass [nlm] = 0 ; | |
434 | ||
435 | fhMCPi0DecayPhotonHitHighLMOverlapMass [nlm] = 0 ; | |
436 | fhMCPi0DecayPhotonAdjHighLMOverlapMass [nlm] = 0 ; | |
437 | fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = 0 ; | |
438 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = 0 ; | |
439 | fhMCPi0DecayPhotonAdjacentOverlapMass [nlm] = 0 ; | |
440 | fhMCPi0DecayPhotonHitNoLMOverlapMass [nlm] = 0 ; | |
441 | ||
dbe09c26 | 442 | fhPi0CellE [nlm] = 0 ; |
443 | fhPi0CellEFrac [nlm] = 0 ; | |
444 | fhPi0CellLogEFrac[nlm] = 0 ; | |
445 | ||
19391b8c | 446 | fhPi0CellEMaxEMax2Frac [nlm] = 0 ; |
447 | fhPi0CellEMaxClusterFrac [nlm] = 0 ; | |
448 | fhPi0CellEMax2ClusterFrac[nlm] = 0 ; | |
449 | ||
450 | fhPi0CellEMaxFrac [nlm] = 0 ; | |
451 | fhPi0CellEMax2Frac[nlm] = 0 ; | |
452 | ||
dbe09c26 | 453 | for(Int_t i = 0; i < 10; i++) |
19391b8c | 454 | { |
455 | fhM02WeightPi0 [nlm][i] = 0; | |
456 | fhM02ECellCutPi0[nlm][i] = 0; | |
457 | } | |
ce49dd72 | 458 | |
459 | fhMassBadDistClose[nlm] = 0; | |
460 | fhM02BadDistClose [nlm] = 0; | |
461 | fhMassOnBorder [nlm] = 0; | |
462 | fhM02OnBorder [nlm] = 0; | |
b583134f | 463 | |
464 | fhAsyMCGenRecoDiffMCPi0 [nlm] = 0; | |
465 | fhAsyMCGenRecoDiffMCPi0Conv[nlm] = 0; | |
466 | ||
dbe09c26 | 467 | } |
468 | ||
ed10b649 | 469 | for(Int_t i = 0; i < 7; i++) |
470 | { | |
471 | for(Int_t j = 0; j < 4; j++) | |
472 | { | |
473 | ||
474 | fhArmNLocMax1[i][j] = 0; | |
475 | fhArmNLocMax2[i][j] = 0; | |
476 | fhArmNLocMaxN[i][j] = 0; | |
477 | ||
478 | fhArmPi0NLocMax1[i][j] = 0; | |
479 | fhArmPi0NLocMax2[i][j] = 0; | |
480 | fhArmPi0NLocMaxN[i][j] = 0; | |
481 | ||
482 | fhArmAfterCutsNLocMax1[i][j] = 0; | |
483 | fhArmAfterCutsNLocMax2[i][j] = 0; | |
484 | fhArmAfterCutsNLocMaxN[i][j] = 0; | |
485 | ||
486 | } | |
487 | } | |
488 | ||
992b14a7 | 489 | InitParameters(); |
19391b8c | 490 | |
992b14a7 | 491 | } |
492 | ||
b2e375c7 | 493 | //_______________________________________________________________________________________________________ |
b583134f | 494 | void AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(AliVCluster* cluster,const Int_t mcindex, const Int_t noverlaps, |
495 | const Float_t e1, const Float_t e2, const Float_t mass) | |
496 | //Float_t m02, | |
4914e781 | 497 | //TLorentzVector l1, TLorentzVector l2) |
b2e375c7 | 498 | { |
499 | // Check origin NLM tower of the cluster, when MC gives merged pi0 | |
500 | ||
b2e375c7 | 501 | if(mcindex != kmcPi0 && mcindex != kmcPi0Conv) return; |
36769d30 | 502 | |
b2e375c7 | 503 | const UInt_t nc = cluster->GetNCells(); |
504 | Int_t list[nc]; | |
505 | Float_t elist[nc]; | |
506 | Int_t nMax = GetCaloUtils()->GetNumberOfLocalMaxima(cluster, GetEMCALCells(),list, elist); | |
36769d30 | 507 | |
4914e781 | 508 | |
509 | //// PRINTS ///// | |
510 | ||
511 | //if(mcindex==kmcPi0) printf("** Normal Pi0 **\n"); | |
512 | //if(mcindex==kmcPi0Conv) printf("** Converted Pi0 **\n"); | |
513 | ||
514 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) | |
b2e375c7 | 515 | // { |
4914e781 | 516 | // 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", |
517 | // nMax, noverlaps,mass,m02, | |
518 | // l1.E(),l1.Eta(),l1.Phi()*TMath::RadToDeg(), | |
519 | // l2.E(),l2.Eta(),l2.Phi()*TMath::RadToDeg(), (l1+l2).M()); | |
36769d30 | 520 | // |
4914e781 | 521 | // // Study the mothers of cluster |
522 | // printf("Cluster MC labels %d \n", cluster->GetNLabels()); | |
523 | // for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ ) | |
36769d30 | 524 | // { |
4914e781 | 525 | // Int_t mclabel = cluster->GetLabels()[ilab]; |
526 | // | |
527 | // Bool_t mOK = 0; | |
528 | // Int_t mpdg = -999999; | |
529 | // Int_t mstatus = -1; | |
530 | // Int_t grandLabel = -1; | |
531 | // TLorentzVector mother = GetMCAnalysisUtils()->GetMother(mclabel,GetReader(),mpdg,mstatus,mOK,grandLabel); | |
532 | // | |
533 | // printf("******** mother %d : Label %d, pdg %d; status %d, E %2.2f, Eta %2.2f, Phi %2.2f, ok %d, mother label %d\n", | |
534 | // ilab, mclabel, mpdg, mstatus,mother.E(), mother.Eta(),mother.Phi()*TMath::RadToDeg(),mOK,grandLabel); | |
535 | // | |
536 | // if( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 ) | |
36769d30 | 537 | // { |
4914e781 | 538 | // while( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 ) |
539 | // { | |
540 | // Int_t newLabel = -1; | |
541 | // TLorentzVector grandmother = GetMCAnalysisUtils()->GetMother(grandLabel,GetReader(),mpdg,mstatus,mOK,newLabel); | |
542 | // 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", | |
543 | // ilab, grandLabel, mpdg, mstatus,grandmother.E(), grandmother.Eta(), grandmother.Phi()*TMath::RadToDeg(),mOK,newLabel); | |
544 | // grandLabel = newLabel; | |
545 | // | |
546 | // } | |
36769d30 | 547 | // } |
548 | // } | |
b2e375c7 | 549 | // |
4914e781 | 550 | // printf("Cells in cluster %d\n",cluster->GetNCells() ); |
551 | // for(Int_t icell = 0; icell < cluster->GetNCells(); icell++) | |
552 | // { | |
553 | // Int_t absIdCell = cluster->GetCellAbsId(icell); | |
554 | // Int_t mcLabel = GetEMCALCells()->GetCellMCLabel(absIdCell); | |
555 | // GetReader()->RemapMCLabelForAODs(mcLabel); | |
556 | // Int_t ietac=-1; Int_t iphic = 0; Int_t rcuc = 0; | |
557 | // Int_t smc = GetModuleNumberCellIndexes(absIdCell,fCalorimeter, ietac, iphic, rcuc); | |
558 | // | |
559 | // 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); | |
560 | // } | |
bfa0a1a7 | 561 | // } |
4914e781 | 562 | //// PRINTS ///// |
563 | ||
bfa0a1a7 | 564 | |
565 | //If only one maxima, consider all the towers in the cluster | |
566 | if(nMax==1) | |
567 | { | |
36769d30 | 568 | for (UInt_t icell = 0; icell < nc; icell++ ) |
569 | { | |
570 | list [icell] = cluster->GetCellAbsId(icell); | |
571 | elist[icell] = GetEMCALCells()->GetCellAmplitude(list[icell]); | |
572 | } | |
b2e375c7 | 573 | } |
574 | ||
83351853 | 575 | Int_t nmaxima = nMax; |
576 | if(nMax==1) nmaxima = nc ; | |
577 | ||
b2e375c7 | 578 | //Find highest energy Local Maxima Towers |
579 | Int_t imax = -1; | |
580 | Int_t imax2 = -1; | |
581 | Float_t emax = -1; | |
582 | Float_t emax2 = -1; | |
83351853 | 583 | for(Int_t i = 0; i < nmaxima; i++) |
b2e375c7 | 584 | { |
585 | //printf("i %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]); | |
586 | if(elist[i] > emax) | |
587 | { | |
588 | imax = i; | |
589 | emax = elist[i]; | |
590 | } | |
591 | } | |
592 | //Find second highest | |
83351853 | 593 | for(Int_t i = 0; i < nmaxima; i++) |
b2e375c7 | 594 | { |
595 | if(i==imax) continue; | |
bfa0a1a7 | 596 | |
83351853 | 597 | //printf("j %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]); |
36769d30 | 598 | |
83351853 | 599 | |
b2e375c7 | 600 | if(elist[i] > emax2) |
601 | { | |
602 | imax2 = i; | |
603 | emax2 = elist[i]; | |
604 | } | |
605 | } | |
606 | ||
4914e781 | 607 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
608 | // printf("Local maxima: a) index %d, absId %d; b) index %d, absId %d\n",imax, list[imax], imax2, list[imax2]); | |
b2e375c7 | 609 | |
36769d30 | 610 | //--------------------------------------------------------- |
83351853 | 611 | //--------------------------------------------------------- |
612 | // Compare ancestors of all local maxima at cell MC level | |
613 | //--------------------------------------------------------- | |
36769d30 | 614 | //--------------------------------------------------------- |
83351853 | 615 | |
b2e375c7 | 616 | // Check that the highest mc label and the max cluster label are the same |
87c4fd53 | 617 | Int_t mcLabelMax = -1 ; |
618 | if(imax >=0 ) | |
619 | { | |
620 | mcLabelMax = GetEMCALCells()->GetCellMCLabel(list[imax]); | |
621 | GetReader()->RemapMCLabelForAODs(mcLabelMax); | |
622 | } | |
623 | ||
624 | Int_t mcLabelMax2 = -1 ; | |
625 | if(imax >=0 ) | |
626 | { | |
627 | mcLabelMax2 = GetEMCALCells()->GetCellMCLabel(list[imax2]); | |
628 | GetReader()->RemapMCLabelForAODs(mcLabelMax2); | |
629 | } | |
b2e375c7 | 630 | |
631 | Int_t mcLabelclusterMax = cluster->GetLabels()[0]; | |
632 | Bool_t matchHighLMAndHighMC = kFALSE; | |
633 | ||
36769d30 | 634 | //printf("MC label: LM1 %d, LM2 %d, cluster %d\n",mcLabelMax,mcLabelMax2,mcLabelclusterMax); |
635 | ||
87c4fd53 | 636 | if(mcLabelclusterMax == mcLabelMax && mcLabelclusterMax >= 0) |
b2e375c7 | 637 | { |
638 | matchHighLMAndHighMC = kTRUE; | |
36769d30 | 639 | //printf("\t *** MATCH cluster and LM maximum ***\n"); |
b2e375c7 | 640 | } |
641 | else | |
642 | { | |
36769d30 | 643 | //printf("\t *** NO MATCH cluster and LM maximum, check second ***\n"); |
87c4fd53 | 644 | if(mcLabelclusterMax == mcLabelMax2 && mcLabelclusterMax >= 0) |
b2e375c7 | 645 | { |
36769d30 | 646 | //printf("\t \t *** MATCH cluster and 2nd LM maximum ***\n"); |
b2e375c7 | 647 | matchHighLMAndHighMC = kTRUE; |
648 | } | |
649 | else | |
650 | { | |
36769d30 | 651 | //printf("\t \t *** NO MATCH***\n"); |
b2e375c7 | 652 | matchHighLMAndHighMC = kFALSE; |
653 | } | |
654 | } | |
655 | ||
656 | // Compare the common ancestors of the 2 highest energy local maxima | |
657 | Int_t ancPDG = 0, ancStatus = -1; | |
658 | TLorentzVector momentum; TVector3 prodVertex; | |
659 | Int_t ancLabel = 0; | |
660 | Bool_t high = kFALSE; | |
661 | Bool_t low = kFALSE; | |
662 | ||
663 | // // print maxima origin | |
664 | // for(Int_t i = 0; i < nMax; i++) | |
665 | // { | |
666 | // Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]); | |
667 | // GetReader()->RemapMCLabelForAODs(mcLabel1); | |
668 | // | |
669 | // Bool_t ok =kFALSE,gok = kFALSE; | |
670 | // Int_t pdg = -22222, status = -1; | |
671 | // Int_t gpdg = -22222, gstatus = -1; | |
672 | // Int_t ggpdg = -22222, ggstatus = -1; | |
673 | // Int_t gLabel = -1, ggLabel = -1; | |
674 | // TLorentzVector primary =GetMCAnalysisUtils()->GetMother (mcLabel1,GetReader(), pdg, status, ok); | |
675 | // TLorentzVector gprimary =GetMCAnalysisUtils()->GetGrandMother(mcLabel1,GetReader(), gpdg, gstatus,gok, gLabel,ggLabel); | |
676 | // TLorentzVector ggprimary =GetMCAnalysisUtils()->GetMother(ggLabel ,GetReader(),ggpdg,ggstatus,gok); | |
677 | // 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", | |
678 | // i,mcLabel1,pdg,primary.E(), gLabel,gpdg,gprimary.E(), ggLabel,ggpdg,ggprimary.E()); | |
679 | // } | |
83351853 | 680 | |
bfa0a1a7 | 681 | for(Int_t i = 0; i < nmaxima-1; i++) |
b2e375c7 | 682 | { |
683 | Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]); | |
684 | GetReader()->RemapMCLabelForAODs(mcLabel1); | |
685 | ||
bfa0a1a7 | 686 | for(Int_t j = i+1; j < nmaxima; j++) |
b2e375c7 | 687 | { |
688 | Int_t mcLabel2 = GetEMCALCells()->GetCellMCLabel(list[j]); | |
689 | GetReader()->RemapMCLabelForAODs(mcLabel2); | |
690 | ||
691 | if(mcLabel1 < 0 || mcLabel2 < 0 ) | |
692 | { | |
693 | //printf("\t i %d label %d - j %d label %d; skip!\n",i,mcLabel1,j,mcLabel2); | |
694 | continue; | |
695 | } | |
83351853 | 696 | |
b2e375c7 | 697 | ancLabel = GetMCAnalysisUtils()->CheckCommonAncestor(mcLabel1,mcLabel2, |
698 | GetReader(),ancPDG,ancStatus,momentum,prodVertex); | |
699 | if(ancPDG==111) | |
700 | { | |
701 | if((i==imax && j==imax2) || (j==imax && i==imax2)) | |
702 | high = kTRUE; | |
703 | else | |
704 | low = kTRUE; | |
705 | } | |
706 | else if(ancPDG==22 || TMath::Abs(ancPDG)==11) | |
707 | { | |
708 | // If both bits are set, it could be that one of the maxima had a conversion | |
709 | // reset the bit in this case | |
710 | if(high && low) | |
711 | { | |
712 | //printf("\t Reset low bit\n"); | |
713 | low = kFALSE; | |
714 | } | |
715 | } | |
716 | ||
717 | Bool_t ok =kFALSE; | |
718 | Int_t pdg = -22222, status = -1; | |
719 | TLorentzVector primary =GetMCAnalysisUtils()->GetMother(ancLabel,GetReader(), pdg, status, ok); | |
b2e375c7 | 720 | //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); |
721 | ||
722 | } | |
723 | } | |
724 | ||
725 | Float_t en = cluster->E(); | |
726 | ||
4914e781 | 727 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
728 | // printf("Cell MC match: nMax %d; Match MC? %d; high %d; low %d\n",nMax,matchHighLMAndHighMC,high,low); | |
b2e375c7 | 729 | |
36769d30 | 730 | if(!noverlaps) |
b2e375c7 | 731 | { |
36769d30 | 732 | if(matchHighLMAndHighMC) |
733 | { | |
734 | if (high && !low) fhMCPi0HighNLMPair->Fill(en,nMax); | |
735 | else if(low && !high) fhMCPi0LowNLMPair ->Fill(en,nMax); | |
736 | else if(low && high) fhMCPi0AnyNLMPair ->Fill(en,nMax); | |
737 | else fhMCPi0NoneNLMPair->Fill(en,nMax); | |
738 | } | |
739 | else | |
740 | { | |
741 | if (high && !low) fhMCPi0HighNLMPairNoMCMatch->Fill(en,nMax); | |
742 | else if(low && !high) fhMCPi0LowNLMPairNoMCMatch ->Fill(en,nMax); | |
743 | else if(low && high) fhMCPi0AnyNLMPairNoMCMatch ->Fill(en,nMax); | |
744 | else fhMCPi0NoneNLMPairNoMCMatch->Fill(en,nMax); | |
745 | } | |
b2e375c7 | 746 | } |
747 | else | |
748 | { | |
36769d30 | 749 | if(matchHighLMAndHighMC) |
750 | { | |
751 | if (high && !low) fhMCPi0HighNLMPairOverlap->Fill(en,nMax); | |
752 | else if(low && !high) fhMCPi0LowNLMPairOverlap->Fill(en,nMax); | |
753 | else if(low && high) fhMCPi0AnyNLMPairOverlap->Fill(en,nMax); | |
754 | else fhMCPi0NoneNLMPairOverlap->Fill(en,nMax); | |
755 | } | |
756 | else | |
757 | { | |
758 | if (high && !low) fhMCPi0HighNLMPairNoMCMatchOverlap->Fill(en,nMax); | |
759 | else if(low && !high) fhMCPi0LowNLMPairNoMCMatchOverlap->Fill(en,nMax); | |
760 | else if(low && high) fhMCPi0AnyNLMPairNoMCMatchOverlap->Fill(en,nMax); | |
761 | else fhMCPi0NoneNLMPairNoMCMatchOverlap->Fill(en,nMax); | |
762 | } | |
b2e375c7 | 763 | } |
1253480f | 764 | |
36769d30 | 765 | //---------------------------------------------------------------------- |
83351853 | 766 | //---------------------------------------------------------------------- |
767 | // Compare MC decay photon projection to cell location and Local Maxima | |
768 | //---------------------------------------------------------------------- | |
36769d30 | 769 | //---------------------------------------------------------------------- |
83351853 | 770 | |
771 | // Get the mother pi0 | |
772 | ||
773 | Bool_t ok = kFALSE; | |
774 | Int_t pdg = -22222, status = -1; | |
775 | Int_t gLabel = -1; | |
776 | ||
777 | Int_t label = cluster->GetLabel(); | |
778 | TLorentzVector pi0Kine; | |
779 | ||
780 | while( pdg!=111 && label>=0 ) | |
781 | { | |
782 | pi0Kine = GetMCAnalysisUtils()->GetGrandMother(label,GetReader(),pdg,status,ok, label,gLabel); | |
783 | } | |
784 | ||
785 | if(pdg!=111 || label < 0) | |
786 | { | |
787 | printf("AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(() - Mother Pi0 not found!\n"); | |
788 | return; | |
789 | } | |
790 | ||
791 | Int_t nDaugthers = GetMCAnalysisUtils()->GetNDaughters(label,GetReader(),ok); | |
792 | ||
793 | if(nDaugthers != 2) | |
794 | { | |
795 | printf("AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(() - N daughters %d !=2!\n",nDaugthers); | |
796 | return; | |
797 | } | |
798 | ||
799 | // Get daughter photon kinematics | |
800 | Int_t pdg0 = -22222, status0 = -1; Int_t label0 = -1; | |
801 | TLorentzVector photon0Kine = GetMCAnalysisUtils()->GetDaughter(0,label,GetReader(),pdg0,status0,ok,label0); | |
802 | Int_t pdg1 = -22222, status1 = -1; Int_t label1 = -1; | |
803 | TLorentzVector photon1Kine = GetMCAnalysisUtils()->GetDaughter(1,label,GetReader(),pdg1,status1,ok,label1); | |
804 | ||
805 | if(pdg1!=22 || pdg0 != 22) | |
806 | { | |
807 | printf("AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(() - Wrong daughters PDG: photon0 %d - photon1 %d\n",pdg0,pdg1); | |
808 | return; | |
809 | } | |
810 | ||
811 | // In what cells did the photons hit | |
812 | Float_t eta0 = photon0Kine.Eta(); | |
813 | Float_t eta1 = photon1Kine.Eta(); | |
814 | ||
815 | Float_t phi0 = photon0Kine.Phi(); | |
816 | Float_t phi1 = photon1Kine.Phi(); | |
817 | ||
4914e781 | 818 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
819 | // { | |
820 | // 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", | |
821 | // label , pi0Kine.E() , pi0Kine.Eta(),pi0Kine.Phi()*TMath::RadToDeg(), (photon0Kine+photon1Kine).M(), | |
822 | // label0, photon0Kine.E(), eta0, phi0*TMath::RadToDeg(), | |
823 | // label1, photon1Kine.E(), eta1, phi1*TMath::RadToDeg()); | |
824 | // | |
825 | // TLorentzVector momclus; | |
826 | // cluster->GetMomentum(momclus,GetVertex(0)); | |
827 | // 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()); | |
828 | // } | |
36769d30 | 829 | |
83351853 | 830 | if(phi0 < 0 ) phi0+=TMath::TwoPi(); |
831 | if(phi1 < 0 ) phi1+=TMath::TwoPi(); | |
832 | ||
833 | Int_t absId0=-1, absId1=-1; | |
834 | GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta0, phi0, absId0); | |
835 | GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta1, phi1, absId1); | |
836 | ||
837 | if(absId1 < 0 || absId1 < 0) | |
838 | { | |
4914e781 | 839 | //printf("AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(() - Photon hit AbsId: photon0 %d - photon1 %d\n",absId0,absId1); |
83351853 | 840 | return; |
841 | } | |
842 | ||
36769d30 | 843 | //----------------------------------------------- |
83351853 | 844 | // Check that the 2 photons hit the Local Maxima |
36769d30 | 845 | //----------------------------------------------- |
83351853 | 846 | |
4914e781 | 847 | |
848 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) | |
849 | // { | |
850 | // printf("Photons AbsId (%d,%d); Local Maxima AbsId(%d,%d)\n",absId0,absId1,list[imax],list[imax2]); | |
851 | // printf("Photon1 (eta,phi)=(%f,%f); Photon2 (eta,phi)=(%f,%f);\n",eta0,phi0*TMath::RadToDeg(),eta1,phi1*TMath::RadToDeg()); | |
852 | // | |
853 | // Int_t ieta0=-1; Int_t iphi0 = 0; Int_t rcu0 = 0; | |
854 | // Int_t sm0 = GetModuleNumberCellIndexes(absId0,fCalorimeter, ieta0, iphi0, rcu0); | |
855 | // Int_t ieta1=-1; Int_t iphi1 = 0; Int_t rcu1 = 0; | |
856 | // Int_t sm1 = GetModuleNumberCellIndexes(absId1,fCalorimeter, ieta1, iphi1, rcu1); | |
857 | // | |
858 | // printf("Photon1 (id,sm,eta,phi)=(%d,%d,%d,%d), Photon2 (id,sm,eta,phi)=(%d,%d,%d,%d)\n", | |
859 | // absId0,sm0,ieta0,iphi0,absId1,sm1,ieta1,iphi1); | |
860 | // | |
861 | // Int_t ietam0=-1; Int_t iphim0 = 0; Int_t rcum0 = 0; Int_t smm0 = -1 ; | |
862 | // if(imax >= 0) smm0 = GetModuleNumberCellIndexes(list[imax] ,fCalorimeter, ietam0, iphim0, rcum0); | |
863 | // Int_t ietam1=-1; Int_t iphim1 = 0; Int_t rcum1 = 0; Int_t smm1 = -1 ; | |
864 | // if(imax2 >= 0) smm1 = GetModuleNumberCellIndexes(list[imax2],fCalorimeter, ietam1, iphim1, rcum1); | |
865 | // | |
866 | // printf("Max (id, sm,eta,phi)=(%d,%d,%d,%d), Max2 (id, sm,eta,phi)=(%d,%d,%d,%d)\n", | |
867 | // list[imax],smm0,ietam0,iphim0,list[imax2],smm1,ietam1,iphim1); | |
868 | // } | |
869 | ||
b583134f | 870 | Int_t inlm = nMax-1; |
871 | if(inlm > 2) inlm = 2; | |
83351853 | 872 | |
36769d30 | 873 | Bool_t match0 = kFALSE; |
874 | Bool_t match1 = kFALSE; | |
875 | Int_t imatch0 = -1; | |
876 | Int_t imatch1 = -1; | |
877 | if(imax >= 0 && imax2 >=0 && absId0 > 0 && absId1 > 0 ) | |
87c4fd53 | 878 | { |
36769d30 | 879 | if (absId0 == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; } |
880 | else if(absId0 == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; } | |
881 | ||
882 | if (absId1 == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; } | |
883 | else if(absId1 == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; } | |
87c4fd53 | 884 | } |
83351853 | 885 | |
36769d30 | 886 | //printf("primary imatch0 %d, imatch1 %d\n",imatch0,imatch1); |
887 | ||
888 | // If one or the 2 not matched, check with the other MC labels | |
889 | // only in case there was a conversion | |
83351853 | 890 | |
36769d30 | 891 | Int_t absId0second = -1; |
892 | Int_t absId1second = -1; | |
893 | Int_t secLabel0 = -1; | |
894 | Int_t secLabel1 = -1; | |
895 | Int_t mcLabel0 = -1; | |
896 | Int_t mcLabel1 = -1; | |
897 | Bool_t secOK = 0; | |
898 | Int_t secpdg = -999999; | |
899 | Int_t secstatus = -1; | |
900 | Int_t secgrandLabel = -1; | |
901 | ||
902 | if(match0) { secLabel0 = label0 ; mcLabel0 = label0 ; } | |
903 | if(match1) { secLabel1 = label1 ; mcLabel1 = label1 ; } | |
904 | ||
905 | if((!match0 || !match1) && mcindex == kmcPi0Conv) | |
83351853 | 906 | { |
36769d30 | 907 | for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ ) |
908 | { | |
909 | Int_t mclabel = cluster->GetLabels()[ilab]; | |
910 | ||
911 | //printf("Check label %d - %d\n",ilab,mclabel); | |
912 | ||
913 | if(mclabel == label0 || mclabel == label1) | |
914 | { | |
915 | //printf("continue: secLabel %d, label0 %d, label1 %d\n",mclabel,label0,label1); | |
916 | if(mclabel == label0 && secLabel0 < 0) { secLabel0 = label0 ; mcLabel0 = label0 ; } | |
917 | if(mclabel == label1 && secLabel1 < 0) { secLabel1 = label1 ; mcLabel1 = label1 ; } | |
918 | continue ; | |
919 | } | |
920 | ||
921 | //printf("Before while: secLabel0 %d, secLabel1 %d\n",secLabel0,secLabel1); | |
922 | ||
923 | // match mc label and parent photon | |
924 | Int_t tmplabel = mclabel; | |
925 | while((secLabel0 < 0 || secLabel1 < 0) && tmplabel > 0 ) | |
926 | { | |
927 | TLorentzVector mother = GetMCAnalysisUtils()->GetMother(tmplabel,GetReader(),secpdg,secstatus,secOK,secgrandLabel); | |
928 | ||
929 | //printf("\t \t while secLabel %d, mom %d, granmom %d\n",mclabel,tmplabel,secgrandLabel); | |
930 | ||
931 | if((secgrandLabel == label0) || (secgrandLabel == label1 )) | |
932 | { | |
933 | //printf("mcMatch! grand label %d, secLabel %d\n",secgrandLabel, mclabel); | |
934 | if(!match0 && mcLabel1 != secgrandLabel) { secLabel0 = mclabel; mcLabel0 = secgrandLabel; } | |
935 | if(!match1 && mcLabel0 != secgrandLabel) { secLabel1 = mclabel; mcLabel1 = secgrandLabel; } | |
936 | } | |
937 | ||
938 | //printf("\t GrandMother %d, secLabel0 %d, secLabel1 %d \n",secgrandLabel, secLabel0,secLabel1); | |
83351853 | 939 | |
36769d30 | 940 | tmplabel = secgrandLabel; |
941 | } | |
942 | } | |
83351853 | 943 | |
36769d30 | 944 | // Get the position of the found secondaries mother |
945 | if(!match0 && secLabel0 > 0) | |
87c4fd53 | 946 | { |
36769d30 | 947 | TLorentzVector mother = GetMCAnalysisUtils()->GetMother(secLabel0,GetReader(),secpdg,secstatus,secOK,secgrandLabel); |
948 | ||
4914e781 | 949 | //Float_t eta = mother.Eta(); |
950 | //Float_t phi = mother.Phi(); | |
951 | //if(phi < 0 ) phi+=TMath::TwoPi(); | |
952 | //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId0second); | |
36769d30 | 953 | |
954 | //printf("Secondary MC0 label %d, absId %d E %2.2F eta %2.2f, phi %f\n", secLabel0,absId0second, mother.E(),mother.Eta(),mother.Phi()*TMath::RadToDeg()); | |
955 | ||
956 | if(absId0second == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; } | |
957 | if(absId0second == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; } | |
87c4fd53 | 958 | } |
36769d30 | 959 | |
960 | if(!match1 && secLabel1 > 0) | |
87c4fd53 | 961 | { |
36769d30 | 962 | TLorentzVector mother = GetMCAnalysisUtils()->GetMother(secLabel1,GetReader(),secpdg,secstatus,secOK,secgrandLabel); |
963 | ||
4914e781 | 964 | //Float_t eta = mother.Eta(); |
965 | //Float_t phi = mother.Phi(); | |
966 | //if(phi < 0 ) phi+=TMath::TwoPi(); | |
967 | //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId1second); | |
36769d30 | 968 | |
969 | //printf("Secondary MC1 label %d absId %d E %2.2F eta %2.2f, phi %f\n",secLabel1, absId1second, mother.E(),mother.Eta(),mother.Phi()*TMath::RadToDeg()); | |
970 | ||
971 | if(absId1second == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; } | |
972 | if(absId1second == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; } | |
87c4fd53 | 973 | } |
36769d30 | 974 | |
975 | //printf("secondary label mc0 %d, mc1 %d, imatch0 %d, imatch1 %d\n",secLabel0,secLabel1,imatch0,imatch1); | |
976 | ||
977 | } | |
978 | ||
979 | //printf("imatch0 %d, imatch1 %d\n",imatch0,imatch1); | |
980 | if( match0 && match1 ) | |
981 | { | |
4914e781 | 982 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
983 | // printf("a) Both Photons hit local maxima \n"); | |
36769d30 | 984 | |
b583134f | 985 | if(!noverlaps) |
986 | { | |
987 | fhMCPi0DecayPhotonHitHighLM ->Fill(en,nMax); | |
988 | fhMCPi0DecayPhotonHitHighLMMass[inlm]->Fill(en,mass); | |
989 | if(match0 && imatch0 == imax) | |
990 | { | |
cb99fa55 | 991 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
992 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
29555e96 | 993 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E()); |
994 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 995 | } |
996 | else | |
997 | { | |
cb99fa55 | 998 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
999 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
29555e96 | 1000 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E()); |
1001 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1002 | } |
1003 | } | |
1004 | else | |
1005 | { | |
1006 | fhMCPi0DecayPhotonHitHighLMOverlap ->Fill(en,nMax); | |
1007 | fhMCPi0DecayPhotonHitHighLMOverlapMass[inlm]->Fill(en,mass); | |
1008 | if(match0 && imatch0 == imax ) | |
1009 | { | |
cb99fa55 | 1010 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1011 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
29555e96 | 1012 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E()); |
1013 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1014 | } |
1015 | else | |
1016 | { | |
cb99fa55 | 1017 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1018 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
29555e96 | 1019 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E()); |
1020 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1021 | } |
1022 | ||
1023 | } | |
36769d30 | 1024 | |
1025 | return ; | |
1026 | } | |
1027 | ||
1028 | //printf("Any match? photon0 %d, photon1 %d\n",match0,match1); | |
1029 | //if(!match0 && !match1) printf("WARNING, LM not matched to any photon decay!\n"); | |
1030 | ||
1031 | //--------------------------------------------- | |
1032 | // Check the adjacent cells to the local maxima | |
1033 | //--------------------------------------------- | |
1034 | ||
36769d30 | 1035 | if(!match0) |
1036 | { | |
b583134f | 1037 | if(imatch1!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax])) { match0 = kTRUE; imatch0 = imax ; } |
36769d30 | 1038 | //printf("imax - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam0,ieta0-ietam0, iphi0,iphim0,iphi0-iphim0); |
b583134f | 1039 | if(imatch1!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax2]) ) { match0 = kTRUE; imatch0 = imax2 ; } |
36769d30 | 1040 | //printf("imax2 - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam1,ieta0-ietam1, iphi0,iphim1,iphi0-iphim1); |
1041 | } | |
1042 | ||
1043 | if(!match1) | |
1044 | { | |
b583134f | 1045 | if(imatch0!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax]) ) { match1 = kTRUE; imatch1 = imax ; } |
36769d30 | 1046 | //printf("imax - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam0,ieta1-ietam0, iphi1,iphim0,iphi1-iphim0); |
1047 | ||
b583134f | 1048 | if(imatch0!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax2])) { match1 = kTRUE; imatch1 = imax2 ; } |
36769d30 | 1049 | //printf("imax2 - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam1,ieta1-ietam1, iphi1,iphim1,iphi1-iphim1); |
1050 | } | |
1051 | ||
1052 | //printf("Local Maxima: adjacent0 %d,adjacent1 %d \n",match0,match1); | |
1053 | ||
1054 | if(match0 && match1) | |
1055 | { | |
4914e781 | 1056 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
1057 | // printf("b) Both Photons hit local maxima or cell adjacent or 2 cells adjacent \n"); | |
83351853 | 1058 | |
b583134f | 1059 | if(!noverlaps) |
1060 | { | |
1061 | fhMCPi0DecayPhotonAdjHighLM ->Fill(en,nMax); | |
1062 | fhMCPi0DecayPhotonAdjHighLMMass[inlm]->Fill(en,mass); | |
1063 | ||
1064 | if(match0 && imatch0 == imax) | |
1065 | { | |
cb99fa55 | 1066 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1067 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
29555e96 | 1068 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E()); |
1069 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1070 | } |
1071 | else | |
1072 | { | |
cb99fa55 | 1073 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1074 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
29555e96 | 1075 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E()); |
1076 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1077 | } |
1078 | } | |
1079 | else | |
1080 | { | |
1081 | fhMCPi0DecayPhotonAdjHighLMOverlap ->Fill(en,nMax); | |
1082 | fhMCPi0DecayPhotonAdjHighLMOverlapMass[inlm]->Fill(en,mass); | |
1083 | if(match0 && imatch0 == imax) | |
1084 | { | |
cb99fa55 | 1085 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1086 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
29555e96 | 1087 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E()); |
1088 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1089 | } |
1090 | else | |
1091 | { | |
cb99fa55 | 1092 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1093 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
29555e96 | 1094 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E()); |
1095 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1096 | } |
1097 | } | |
36769d30 | 1098 | |
1099 | return; | |
1100 | } | |
36769d30 | 1101 | |
1102 | // Decay photon cells are adjacent? | |
1103 | ||
1104 | if( (match0 || match1) && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,absId1) ) | |
1105 | { | |
4914e781 | 1106 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
1107 | // printf("c) Both Photons hit a local maxima and in adjacent cells \n"); | |
b583134f | 1108 | if(!noverlaps) |
1109 | { | |
1110 | fhMCPi0DecayPhotonAdjacent ->Fill(en,nMax); | |
1111 | fhMCPi0DecayPhotonAdjacentMass[inlm]->Fill(en,mass); | |
1112 | } | |
1113 | else | |
1114 | { | |
1115 | fhMCPi0DecayPhotonAdjacentOverlap ->Fill(en,nMax); | |
1116 | fhMCPi0DecayPhotonAdjacentOverlapMass[inlm]->Fill(en,mass); | |
1117 | } | |
83351853 | 1118 | |
36769d30 | 1119 | return; |
83351853 | 1120 | } |
1121 | ||
36769d30 | 1122 | //-------------------- |
1123 | // Other Local maxima | |
1124 | //-------------------- | |
1125 | ||
83351853 | 1126 | Bool_t matchMCHitOtherLM = kFALSE; |
36769d30 | 1127 | if(!match1) |
1128 | { | |
1129 | for(Int_t i = 0; i < nmaxima; i++) | |
1130 | { | |
1131 | if(imax!=i && imax2!=i && absId1 == list[i]) { match1 = kTRUE; matchMCHitOtherLM = kTRUE; } | |
1132 | } | |
1133 | } | |
1134 | ||
1135 | if(!match0) | |
1136 | { | |
1137 | for(Int_t i = 0; i < nmaxima; i++) | |
1138 | { | |
1139 | if(imax!=i && imax2!=i && absId0 == list[i]) { match0 = kTRUE; matchMCHitOtherLM = kTRUE; } | |
1140 | } | |
1141 | } | |
1142 | ||
1143 | if(matchMCHitOtherLM) | |
1144 | { | |
4914e781 | 1145 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
1146 | // printf("d) One Photon hits a local maxima, the other another not high \n"); | |
36769d30 | 1147 | |
b583134f | 1148 | if(!noverlaps) |
1149 | { | |
1150 | fhMCPi0DecayPhotonHitOtherLM ->Fill(en,nMax); | |
1151 | fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass); | |
1152 | if(match0 && imatch0 == imax) | |
1153 | { | |
cb99fa55 | 1154 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1155 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1156 | } |
1157 | else | |
1158 | { | |
cb99fa55 | 1159 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1160 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1161 | } |
1162 | } | |
1163 | else | |
1164 | { | |
1165 | fhMCPi0DecayPhotonHitOtherLMOverlap ->Fill(en,nMax); | |
1166 | fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass); | |
1167 | if(match0 && imatch0 == imax) | |
1168 | { | |
cb99fa55 | 1169 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1170 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1171 | } |
1172 | else | |
1173 | { | |
cb99fa55 | 1174 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1175 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1176 | } |
1177 | } | |
36769d30 | 1178 | |
1179 | return ; | |
1180 | } | |
1181 | ||
1182 | // Adjacent to other maxima | |
1183 | ||
1184 | Bool_t adjacentOther1 = kFALSE; | |
1185 | if(match0) | |
83351853 | 1186 | { |
36769d30 | 1187 | for(Int_t i = 0; i < nmaxima; i++) |
83351853 | 1188 | { |
36769d30 | 1189 | Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0; |
1190 | GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu); | |
83351853 | 1191 | |
36769d30 | 1192 | //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi); |
1193 | ||
1194 | if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[i]) ) adjacentOther1 = kTRUE; | |
1195 | ||
1196 | //printf("Other Maxima: adjacentOther1 %d\n",adjacentOther1); | |
83351853 | 1197 | } |
1198 | } | |
1199 | ||
36769d30 | 1200 | Bool_t adjacentOther0 = kFALSE; |
1201 | if(match1) | |
83351853 | 1202 | { |
36769d30 | 1203 | for(Int_t i = 0; i < nmaxima; i++) |
83351853 | 1204 | { |
36769d30 | 1205 | Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0; |
1206 | GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu); | |
83351853 | 1207 | |
36769d30 | 1208 | //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi); |
1209 | ||
1210 | if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[i]) ) adjacentOther0 = kTRUE; | |
1211 | ||
1212 | //printf("Other Maxima: adjacentOther0 %d\n",adjacentOther0); | |
83351853 | 1213 | } |
1214 | } | |
1215 | ||
36769d30 | 1216 | if((match0 && adjacentOther1) || (match1 && adjacentOther0)) |
1217 | { | |
4914e781 | 1218 | |
1219 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) | |
1220 | // printf("e) One Photon hits a local maxima, the other another not high, adjacent \n"); | |
36769d30 | 1221 | |
b583134f | 1222 | if(!noverlaps) |
1223 | { | |
1224 | fhMCPi0DecayPhotonAdjOtherLM ->Fill(en,nMax); | |
1225 | fhMCPi0DecayPhotonAdjOtherLMMass[inlm]->Fill(en,mass); | |
1226 | if(match0 && imatch0 == imax) | |
1227 | { | |
cb99fa55 | 1228 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1229 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1230 | } |
1231 | else | |
1232 | { | |
cb99fa55 | 1233 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1234 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1235 | } |
1236 | } | |
1237 | else | |
1238 | { | |
1239 | fhMCPi0DecayPhotonAdjOtherLMOverlap ->Fill(en,nMax); | |
1240 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[inlm]->Fill(en,mass); | |
1241 | if(match0 && imatch0 == imax) | |
1242 | { | |
cb99fa55 | 1243 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1244 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1245 | } |
1246 | else | |
1247 | { | |
cb99fa55 | 1248 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1249 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1250 | } |
1251 | } | |
36769d30 | 1252 | |
1253 | return; | |
1254 | } | |
1255 | ||
4914e781 | 1256 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
1257 | // printf("f) No hit found \n"); | |
b583134f | 1258 | if(!noverlaps) |
1259 | { | |
1260 | fhMCPi0DecayPhotonHitNoLM ->Fill(en,nMax); | |
1261 | fhMCPi0DecayPhotonHitNoLMMass[inlm]->Fill(en,mass); | |
1262 | } | |
1263 | else | |
1264 | { | |
1265 | fhMCPi0DecayPhotonHitNoLMOverlap ->Fill(en,nMax); | |
1266 | fhMCPi0DecayPhotonHitNoLMOverlapMass[inlm]->Fill(en,mass); | |
1267 | } | |
83351853 | 1268 | |
b2e375c7 | 1269 | } |
1270 | ||
0186b6a2 | 1271 | //_____________________________________________________________________________________________________________________ |
1272 | void AliAnaInsideClusterInvariantMass::FillAngleHistograms(const Int_t nMax, const Bool_t matched, const Int_t mcIndex, | |
1273 | const Float_t en, const Float_t angle, const Float_t mass, | |
29555e96 | 1274 | const Float_t anglePrim, const Float_t m02, |
1275 | const Float_t asym, const Int_t pid) | |
b2e375c7 | 1276 | { |
1277 | // Fill histograms related to opening angle | |
29555e96 | 1278 | |
1279 | Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax); | |
1280 | Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax); | |
1281 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); | |
1282 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
1283 | ||
b2e375c7 | 1284 | if (nMax==1) |
1285 | { | |
0186b6a2 | 1286 | fhAnglePairNLocMax1[0][matched]->Fill(en,angle); |
29555e96 | 1287 | |
1288 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1289 | fhAnglePairAfterCutsNLocMax1[0][matched]->Fill(en,angle); | |
1290 | if(pid==AliCaloPID::kPi0) | |
1291 | fhAnglePairPi0NLocMax1[0][matched]->Fill(en,angle); | |
1292 | ||
0186b6a2 | 1293 | if( en > 15 ) fhAnglePairMassNLocMax1[0][matched]->Fill(mass,angle); |
b2e375c7 | 1294 | } |
1295 | else if(nMax==2) | |
1296 | { | |
0186b6a2 | 1297 | fhAnglePairNLocMax2[0][matched]->Fill(en,angle); |
29555e96 | 1298 | |
1299 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1300 | fhAnglePairAfterCutsNLocMax2[0][matched]->Fill(en,angle); | |
1301 | if(pid==AliCaloPID::kPi0) | |
1302 | fhAnglePairPi0NLocMax2[0][matched]->Fill(en,angle); | |
1303 | ||
0186b6a2 | 1304 | if( en > fHistoECut ) fhAnglePairMassNLocMax2[0][matched]->Fill(mass,angle); |
b2e375c7 | 1305 | } |
1306 | else if(nMax >2) | |
1307 | { | |
0186b6a2 | 1308 | fhAnglePairNLocMaxN[0][matched]->Fill(en,angle); |
29555e96 | 1309 | |
1310 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1311 | fhAnglePairAfterCutsNLocMaxN[0][matched]->Fill(en,angle); | |
1312 | if(pid==AliCaloPID::kPi0) | |
1313 | fhAnglePairPi0NLocMaxN[0][matched]->Fill(en,angle); | |
1314 | ||
0186b6a2 | 1315 | if( en > fHistoECut ) fhAnglePairMassNLocMaxN[0][matched]->Fill(mass,angle); |
1316 | } | |
1317 | ||
1318 | if(IsDataMC() && mcIndex > 0 && mcIndex < 7) | |
1319 | { | |
1320 | if (nMax==1) | |
1321 | { | |
1322 | fhAnglePairNLocMax1[mcIndex][matched]->Fill(en,angle); | |
1323 | if( en > fHistoECut ) fhAnglePairMassNLocMax1[mcIndex][matched]->Fill(mass,angle); | |
29555e96 | 1324 | |
1325 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1326 | fhAnglePairAfterCutsNLocMax1[mcIndex][matched]->Fill(en,angle); | |
1327 | if(pid==AliCaloPID::kPi0) | |
1328 | fhAnglePairPi0NLocMax1[mcIndex][matched]->Fill(en,angle); | |
1329 | ||
0186b6a2 | 1330 | if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0) |
1331 | { | |
1332 | fhAnglePairPrimPi0RecoNLocMax1->Fill(en,angle/anglePrim); | |
1333 | if(en > 15) fhAnglePairPrimPi0vsRecoNLocMax1->Fill(anglePrim,angle); | |
1334 | ||
1335 | } | |
1336 | } | |
1337 | else if(nMax==2) | |
1338 | { | |
1339 | fhAnglePairNLocMax2[mcIndex][matched]->Fill(en,angle); | |
1340 | if( en > fHistoECut ) fhAnglePairMassNLocMax2[mcIndex][matched]->Fill(mass,angle); | |
29555e96 | 1341 | |
1342 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1343 | fhAnglePairAfterCutsNLocMax2[mcIndex][matched]->Fill(en,angle); | |
1344 | if(pid==AliCaloPID::kPi0) | |
1345 | fhAnglePairPi0NLocMax2[mcIndex][matched]->Fill(en,angle); | |
1346 | ||
0186b6a2 | 1347 | if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0) |
1348 | { | |
1349 | fhAnglePairPrimPi0RecoNLocMax2->Fill(en,angle/anglePrim); | |
1350 | if(en > 10) fhAnglePairPrimPi0vsRecoNLocMax2->Fill(anglePrim,angle); | |
1351 | } | |
1352 | } | |
1353 | else if(nMax >2) | |
1354 | { | |
1355 | fhAnglePairNLocMaxN[mcIndex][matched]->Fill(en,angle); | |
1356 | if( en > fHistoECut ) fhAnglePairMassNLocMaxN[mcIndex][matched]->Fill(mass,angle); | |
29555e96 | 1357 | |
1358 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1359 | fhAnglePairAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,angle); | |
1360 | if(pid==AliCaloPID::kPi0) | |
1361 | fhAnglePairPi0NLocMaxN[mcIndex][matched]->Fill(en,angle); | |
1362 | ||
0186b6a2 | 1363 | if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0) |
1364 | { | |
1365 | fhAnglePairPrimPi0RecoNLocMaxN->Fill(en,angle/anglePrim); | |
1366 | if(en > 10) fhAnglePairPrimPi0vsRecoNLocMaxN->Fill(anglePrim,angle); | |
1367 | } | |
1368 | } | |
1369 | ||
b2e375c7 | 1370 | } |
1371 | ||
1372 | } | |
1373 | ||
cb99fa55 | 1374 | //______________________________________________________________________________________________________________________ |
1375 | void AliAnaInsideClusterInvariantMass::FillArmenterosHistograms(const Int_t nMax, const Int_t ebin, const Int_t mcIndex, | |
29555e96 | 1376 | const Float_t en, TLorentzVector g1, TLorentzVector g2, |
cb99fa55 | 1377 | const Float_t m02, const Int_t pid) |
1378 | { | |
1379 | // Fill Armeteros type histograms | |
be894c1d | 1380 | |
1381 | // Get pTArm and AlphaArm | |
29555e96 | 1382 | TLorentzVector pi0 = g1+g2; |
be894c1d | 1383 | Float_t momentumSquaredMother = pi0.P()*pi0.P(); |
1384 | Float_t momentumDaughter1AlongMother = 0.; | |
1385 | Float_t momentumDaughter2AlongMother = 0.; | |
1386 | ||
1387 | if (momentumSquaredMother > 0.) | |
1388 | { | |
1389 | momentumDaughter1AlongMother = (g1.Px()*pi0.Px() + g1.Py()*pi0.Py()+ g1.Pz()*pi0.Pz()) / sqrt(momentumSquaredMother); | |
1390 | momentumDaughter2AlongMother = (g2.Px()*pi0.Px() + g2.Py()*pi0.Py()+ g2.Pz()*pi0.Pz()) / sqrt(momentumSquaredMother); | |
1391 | } | |
1392 | ||
1393 | Float_t momentumSquaredDaughter1 = g1.P()*g1.P(); | |
1394 | Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother; | |
1395 | ||
1396 | Float_t pTArm = 0.; | |
1397 | if (ptArmSquared > 0.) | |
1398 | pTArm = sqrt(ptArmSquared); | |
1399 | ||
1400 | Float_t alphaArm = 0.; | |
1401 | if(momentumDaughter1AlongMother +momentumDaughter2AlongMother > 0) | |
1402 | alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother); | |
1403 | ||
cb99fa55 | 1404 | Float_t asym = TMath::Abs( g1.Energy()-g2.Energy() )/( g1.Energy()+g2.Energy() ) ; |
be894c1d | 1405 | |
1406 | if(GetDebug() > 2 ) printf("AliAnaInsideClusterInvariantMass::FillArmenterosHistograms() - E %f, alphaArm %f, pTArm %f\n",en,alphaArm,pTArm); | |
1407 | ||
cb99fa55 | 1408 | Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax); |
1409 | Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax); | |
1410 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); | |
1411 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
cb99fa55 | 1412 | |
1413 | if (nMax==1) | |
1414 | { | |
be894c1d | 1415 | fhArmNLocMax1[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1416 | if((m02OK && asyOK) && (asyOn || m02On)) |
be894c1d | 1417 | fhArmAfterCutsNLocMax1[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1418 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1419 | fhArmPi0NLocMax1[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1420 | } |
1421 | else if(nMax==2) | |
1422 | { | |
be894c1d | 1423 | fhArmNLocMax2[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1424 | if((m02OK && asyOK) && (asyOn || m02On)) |
be894c1d | 1425 | fhArmAfterCutsNLocMax2[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1426 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1427 | fhArmPi0NLocMax2[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1428 | } |
1429 | else if(nMax >2) | |
1430 | { | |
be894c1d | 1431 | fhArmNLocMaxN[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1432 | if((m02OK && asyOK) && (asyOn || m02On)) |
be894c1d | 1433 | fhArmAfterCutsNLocMaxN[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1434 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1435 | fhArmPi0NLocMaxN[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1436 | } |
1437 | ||
ed10b649 | 1438 | if(IsDataMC() && mcIndex > 0 && mcIndex < 7) |
cb99fa55 | 1439 | { |
1440 | if (nMax==1) | |
1441 | { | |
be894c1d | 1442 | fhArmNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1443 | if((m02OK && asyOK) && (asyOn || m02On)) |
be894c1d | 1444 | fhArmAfterCutsNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1445 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1446 | fhArmPi0NLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1447 | } |
1448 | else if(nMax==2) | |
1449 | { | |
be894c1d | 1450 | fhArmNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1451 | if((m02OK && asyOK) && (asyOn || m02On)) |
be894c1d | 1452 | fhArmAfterCutsNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1453 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1454 | fhArmPi0NLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1455 | } |
1456 | else if(nMax >2) | |
1457 | { | |
be894c1d | 1458 | fhArmNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1459 | if((m02OK && asyOK) && (asyOn || m02On)) |
be894c1d | 1460 | fhArmAfterCutsNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1461 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1462 | fhArmPi0NLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1463 | } |
1464 | ||
1465 | } | |
1466 | ||
1467 | } | |
1468 | ||
29555e96 | 1469 | //______________________________________________________________________________________________________________________ |
1470 | void AliAnaInsideClusterInvariantMass::FillThetaStarHistograms(const Int_t nMax, const Bool_t matched, const Int_t mcIndex, | |
1471 | const Float_t en, TLorentzVector g1, TLorentzVector g2, | |
1472 | const Float_t m02, const Int_t pid) | |
1473 | { | |
1474 | // Fill cos Theta^star histograms | |
1475 | ||
1476 | ||
1477 | // Get cos Theta^star | |
1478 | TLorentzVector pi0 = g1+g2; | |
1479 | TLorentzVector g1Boost = g1; | |
1480 | g1Boost.Boost(-pi0.BoostVector()); | |
1481 | Float_t cosThStar=TMath::Cos(g1Boost.Vect().Angle(pi0.Vect())); | |
1482 | ||
1483 | Float_t asym = TMath::Abs( g1.Energy()-g2.Energy() )/( g1.Energy()+g2.Energy() ) ; | |
1484 | ||
1485 | Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax); | |
1486 | Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax); | |
1487 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); | |
1488 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
1489 | ||
1490 | //printf("Reco cos %f, asy %f\n",cosThStar,asym); | |
1491 | ||
1492 | if (nMax==1) | |
1493 | { | |
1494 | fhCosThStarNLocMax1[0][matched]->Fill(en,cosThStar); | |
1495 | ||
1496 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1497 | fhCosThStarAfterCutsNLocMax1[0][matched]->Fill(en,cosThStar); | |
1498 | if(pid==AliCaloPID::kPi0) | |
1499 | fhCosThStarPi0NLocMax1[0][matched]->Fill(en,cosThStar); | |
1500 | } | |
1501 | else if(nMax==2) | |
1502 | { | |
1503 | fhCosThStarNLocMax2[0][matched]->Fill(en,cosThStar); | |
1504 | ||
1505 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1506 | fhCosThStarAfterCutsNLocMax2[0][matched]->Fill(en,cosThStar); | |
1507 | if(pid==AliCaloPID::kPi0) | |
1508 | fhCosThStarPi0NLocMax2[0][matched]->Fill(en,cosThStar); | |
1509 | } | |
1510 | else if(nMax >2) | |
1511 | { | |
1512 | fhCosThStarNLocMaxN[0][matched]->Fill(en,cosThStar); | |
1513 | ||
1514 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1515 | fhCosThStarAfterCutsNLocMaxN[0][matched]->Fill(en,cosThStar); | |
1516 | if(pid==AliCaloPID::kPi0) | |
1517 | fhCosThStarPi0NLocMaxN[0][matched]->Fill(en,cosThStar); | |
1518 | } | |
1519 | ||
1520 | if(IsDataMC() && mcIndex > 0 && mcIndex < 7) | |
1521 | { | |
1522 | if (nMax==1) | |
1523 | { | |
1524 | fhCosThStarNLocMax1[mcIndex][matched]->Fill(en,cosThStar); | |
1525 | ||
1526 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1527 | fhCosThStarAfterCutsNLocMax1[mcIndex][matched]->Fill(en,cosThStar); | |
1528 | if(pid==AliCaloPID::kPi0) | |
1529 | fhCosThStarPi0NLocMax1[mcIndex][matched]->Fill(en,cosThStar); | |
1530 | } | |
1531 | else if(nMax==2) | |
1532 | { | |
1533 | fhCosThStarNLocMax2[mcIndex][matched]->Fill(en,cosThStar); | |
1534 | ||
1535 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1536 | fhCosThStarAfterCutsNLocMax2[mcIndex][matched]->Fill(en,cosThStar); | |
1537 | if(pid==AliCaloPID::kPi0) | |
1538 | fhCosThStarPi0NLocMax2[mcIndex][matched]->Fill(en,cosThStar); | |
1539 | } | |
1540 | else if(nMax >2) | |
1541 | { | |
1542 | fhCosThStarNLocMaxN[mcIndex][matched]->Fill(en,cosThStar); | |
1543 | ||
1544 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1545 | fhCosThStarAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,cosThStar); | |
1546 | if(pid==AliCaloPID::kPi0) | |
1547 | fhCosThStarPi0NLocMaxN[mcIndex][matched]->Fill(en,cosThStar); | |
1548 | } | |
1549 | ||
1550 | } | |
1551 | ||
1552 | } | |
1553 | ||
b2e375c7 | 1554 | //__________________________________________________________________________________________________________________________________________ |
1555 | void AliAnaInsideClusterInvariantMass::FillEBinHistograms(const Int_t ebin , const Int_t nMax, const Int_t mcindex, | |
1556 | const Float_t splitFrac, const Float_t mass, const Float_t asym, const Float_t l0) | |
1557 | { | |
1558 | // Fill some histograms integrating in few energy bins | |
1253480f | 1559 | |
b2e375c7 | 1560 | if (nMax==1) |
1561 | { | |
1562 | fhMassSplitEFractionNLocMax1Ebin[0][ebin]->Fill(splitFrac, mass); | |
cb99fa55 | 1563 | if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax1Ebin[mcindex][ebin]->Fill(splitFrac, mass); |
b2e375c7 | 1564 | |
1565 | fhMassM02NLocMax1Ebin [ebin]->Fill(l0 , mass ); | |
1566 | fhMassAsyNLocMax1Ebin [ebin]->Fill(asym, mass ); | |
1567 | } | |
1568 | else if(nMax==2) | |
1569 | { | |
1570 | fhMassSplitEFractionNLocMax2Ebin[0][ebin]->Fill(splitFrac, mass); | |
cb99fa55 | 1571 | if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax2Ebin[mcindex][ebin]->Fill(splitFrac, mass); |
b2e375c7 | 1572 | |
1573 | fhMassM02NLocMax2Ebin [ebin]->Fill(l0 , mass ); | |
1574 | fhMassAsyNLocMax2Ebin [ebin]->Fill(asym, mass ); | |
1575 | } | |
1576 | else if(nMax > 2 ) | |
1577 | { | |
1578 | fhMassSplitEFractionNLocMaxNEbin[0][ebin]->Fill(splitFrac, mass); | |
cb99fa55 | 1579 | if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMaxNEbin[mcindex][ebin]->Fill(splitFrac, mass); |
b2e375c7 | 1580 | |
1581 | fhMassM02NLocMaxNEbin [ebin]->Fill(l0 , mass ); | |
1582 | fhMassAsyNLocMaxNEbin [ebin]->Fill(asym, mass ); | |
1583 | } | |
1584 | ||
1585 | } | |
1586 | ||
1253480f | 1587 | //________________________________________________________________________________________________________________________ |
1588 | void AliAnaInsideClusterInvariantMass::FillHistograms1(const Float_t en, const Float_t e1, const Float_t e2, | |
1589 | const Int_t nMax, const Float_t mass, const Float_t l0, | |
1590 | const Float_t eta, const Float_t phi, | |
1591 | const Bool_t matched, const Int_t mcindex) | |
1592 | { | |
1593 | // Fill histograms for clusters before any selection after spliting | |
1594 | ||
1595 | Float_t splitFrac = (e1+e2)/en; | |
1596 | ||
1597 | Float_t asym = -10; | |
1598 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
1599 | ||
29555e96 | 1600 | fhNLocMax [0][matched]->Fill(en,nMax); |
1601 | fhLM1NLocMax[0][matched]->Fill(e1,nMax); | |
1602 | fhLM2NLocMax[0][matched]->Fill(e2,nMax); | |
cc909e6f | 1603 | fhSplitClusterENLocMax[0][matched]->Fill(e1,nMax); |
1604 | fhSplitClusterENLocMax[0][matched]->Fill(e2,nMax); | |
1605 | ||
cb99fa55 | 1606 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
cc909e6f | 1607 | { |
29555e96 | 1608 | fhNLocMax [mcindex][matched]->Fill(en,nMax); |
1609 | fhLM1NLocMax[mcindex][matched]->Fill(e1,nMax); | |
1610 | fhLM2NLocMax[mcindex][matched]->Fill(e2,nMax); | |
b583134f | 1611 | fhSplitClusterENLocMax[mcindex][matched]->Fill(e1,nMax); |
1612 | fhSplitClusterENLocMax[mcindex][matched]->Fill(e2,nMax); | |
cc909e6f | 1613 | } |
1253480f | 1614 | |
1615 | if ( nMax == 1 ) | |
1616 | { | |
1617 | fhM02NLocMax1[0][matched]->Fill(en,l0) ; | |
1618 | fhSplitEFractionNLocMax1[0][matched]->Fill(en,splitFrac) ; | |
1619 | ||
cb99fa55 | 1620 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 1621 | { |
1622 | fhM02NLocMax1[mcindex][matched]->Fill(en,l0) ; | |
1623 | fhSplitEFractionNLocMax1[mcindex][matched]->Fill(en,splitFrac) ; | |
1624 | } | |
1625 | ||
1626 | if(en > fHistoECut) | |
1627 | { | |
1628 | fhMassM02NLocMax1[0][matched]->Fill(l0, mass); | |
cb99fa55 | 1629 | if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax1[mcindex][matched]->Fill(l0, mass); |
1253480f | 1630 | |
1631 | fhSplitEFractionvsAsyNLocMax1[matched]->Fill(asym,splitFrac) ; | |
1632 | if(!matched)fhClusterEtaPhiNLocMax1->Fill(eta,phi); | |
1633 | } | |
1634 | } | |
1635 | else if( nMax == 2 ) | |
1636 | { | |
1637 | fhM02NLocMax2[0][matched]->Fill(en,l0) ; | |
1638 | fhSplitEFractionNLocMax2[0][matched]->Fill(en,splitFrac) ; | |
1639 | ||
cb99fa55 | 1640 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 1641 | { |
1642 | fhM02NLocMax2[mcindex][matched]->Fill(en,l0) ; | |
1643 | fhSplitEFractionNLocMax2[mcindex][matched]->Fill(en,splitFrac) ; | |
1644 | } | |
1645 | ||
1646 | if(en > fHistoECut) | |
1647 | { | |
1648 | fhMassM02NLocMax2[0][matched]->Fill(l0, mass ); | |
cb99fa55 | 1649 | if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax2[mcindex][matched]->Fill(l0,mass); |
1253480f | 1650 | |
1651 | fhSplitEFractionvsAsyNLocMax2[matched]->Fill(asym,splitFrac) ; | |
1652 | if(!matched)fhClusterEtaPhiNLocMax2->Fill(eta,phi); | |
1653 | } | |
1654 | } | |
1655 | else if( nMax >= 3 ) | |
1656 | { | |
1657 | fhM02NLocMaxN[0][matched]->Fill(en,l0) ; | |
1658 | fhSplitEFractionNLocMaxN[0][matched]->Fill(en,splitFrac) ; | |
1659 | ||
cb99fa55 | 1660 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 1661 | { |
1662 | fhM02NLocMaxN[mcindex][matched]->Fill(en,l0) ; | |
1663 | fhSplitEFractionNLocMaxN[mcindex][matched]->Fill(en,splitFrac) ; | |
1664 | } | |
1665 | ||
1666 | if(en > fHistoECut) | |
1667 | { | |
1668 | ||
1669 | fhMassM02NLocMaxN[0][matched]->Fill(l0,mass); | |
cb99fa55 | 1670 | if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMaxN[mcindex][matched]->Fill(l0,mass); |
1253480f | 1671 | |
1672 | fhSplitEFractionvsAsyNLocMaxN[matched]->Fill(asym,splitFrac) ; | |
1673 | if(!matched)fhClusterEtaPhiNLocMaxN->Fill(eta,phi); | |
1674 | } | |
1675 | } | |
1676 | ||
1677 | ||
1678 | } | |
1679 | ||
1680 | //________________________________________________________________________________________________________________________ | |
1681 | void AliAnaInsideClusterInvariantMass::FillHistograms2(const Float_t en, const Float_t eprim, | |
1682 | const Float_t e1, const Float_t e2, | |
1683 | const Int_t nMax, const Float_t mass, const Float_t l0, | |
1684 | const Bool_t matched, const Int_t mcindex) | |
1685 | { | |
1686 | // Fill histograms for clusters passing the first M02 selection | |
1687 | ||
1688 | Float_t efrac = eprim/en; | |
1689 | Float_t efracSplit = 0; | |
1690 | if(e1+e2 > 0) efracSplit = eprim/(e1+e2); | |
1691 | ||
1692 | Float_t splitFrac = (e1+e2)/en; | |
1693 | ||
1694 | Float_t asym = -10; | |
1695 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
1696 | ||
1697 | Int_t inlm = nMax-1; | |
1698 | if(inlm > 2) inlm = 2; | |
1699 | Float_t splitFracMin = GetCaloPID()->GetSplitEnergyFractionMinimum(inlm) ; | |
1700 | ||
1701 | Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,l0,nMax); | |
1702 | Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax); | |
1703 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); | |
1704 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
1705 | ||
1706 | //printf("splitFracMin %f, val %f, m02ok %d, asyok %d\n",splitFracMin,splitFrac,m02OK,asyOK); | |
1707 | ||
1708 | if(m02On && m02OK) | |
1709 | { | |
29555e96 | 1710 | fhNLocMaxM02Cut [0][matched]->Fill(en,nMax); |
1711 | fhLM1NLocMaxM02Cut[0][matched]->Fill(e1,nMax); | |
1712 | fhLM2NLocMaxM02Cut[0][matched]->Fill(e2,nMax); | |
1713 | if(IsDataMC() && mcindex > 0 && mcindex < 7) | |
1714 | { | |
1715 | fhNLocMaxM02Cut [mcindex][matched]->Fill(en,nMax); | |
1716 | fhLM1NLocMaxM02Cut[mcindex][matched]->Fill(e1,nMax); | |
1717 | fhLM2NLocMaxM02Cut[mcindex][matched]->Fill(e2,nMax); | |
1718 | } | |
1253480f | 1719 | } |
1720 | ||
1721 | if (nMax==1) | |
1722 | { | |
1723 | fhMassNLocMax1[0][matched]->Fill(en,mass ); | |
1724 | fhAsymNLocMax1[0][matched]->Fill(en,asym ); | |
1725 | ||
1726 | // Effect of cuts in mass histograms | |
cb99fa55 | 1727 | |
1728 | if(!matched && asyOK && asyOn ) | |
1729 | { | |
1730 | fhMassAsyCutNLocMax1->Fill(en,mass); | |
1731 | fhM02AsyCutNLocMax1 ->Fill(en,l0 ); | |
1732 | } | |
1253480f | 1733 | |
1734 | if(!matched && m02OK && m02On ) | |
1735 | { | |
1736 | fhMassM02CutNLocMax1->Fill(en,mass); | |
1737 | fhAsymM02CutNLocMax1->Fill(en,asym ); | |
1738 | if(splitFrac > splitFracMin && fhMassSplitECutNLocMax1) fhMassSplitECutNLocMax1->Fill(en,mass ); | |
1739 | } | |
1740 | ||
1741 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1742 | { | |
1743 | fhSplitEFractionAfterCutsNLocMax1[0][matched]->Fill(en,splitFrac); | |
1744 | if(splitFrac > splitFracMin) fhMassAfterCutsNLocMax1[0][matched]->Fill(en,mass); | |
1745 | ||
1746 | if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0) | |
1747 | { | |
1748 | fhMCGenFracAfterCutsNLocMax1MCPi0 ->Fill(en , efrac ); | |
1749 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0->Fill(en , efracSplit); | |
1750 | } | |
1751 | } | |
1752 | } | |
1753 | else if(nMax==2) | |
1754 | { | |
1755 | fhMassNLocMax2[0][matched]->Fill(en,mass ); | |
1756 | fhAsymNLocMax2[0][matched]->Fill(en,asym ); | |
1757 | ||
1758 | // Effect of cuts in mass histograms | |
1759 | ||
cb99fa55 | 1760 | if(!matched && asyOK && asyOn ) |
1761 | { | |
1762 | fhMassAsyCutNLocMax2->Fill(en,mass); | |
1763 | fhM02AsyCutNLocMax2 ->Fill(en,l0 ); | |
1764 | } | |
1765 | ||
1253480f | 1766 | if(!matched && m02OK && m02On ) |
1767 | { | |
1768 | fhMassM02CutNLocMax2->Fill(en,mass); | |
1769 | fhAsymM02CutNLocMax2->Fill(en,asym ); | |
1770 | if(splitFrac > splitFracMin && fhMassSplitECutNLocMax2) fhMassSplitECutNLocMax2->Fill(en,mass ); | |
1771 | } | |
1772 | ||
1773 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1774 | { | |
1775 | fhSplitEFractionAfterCutsNLocMax2[0][matched]->Fill(en,splitFrac); | |
1776 | if(splitFrac >splitFracMin) fhMassAfterCutsNLocMax2[0][matched]->Fill(en,mass); | |
1777 | ||
1778 | if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0) | |
1779 | { | |
1780 | fhMCGenFracAfterCutsNLocMax2MCPi0 ->Fill(en , efrac ); | |
1781 | fhMCGenSplitEFracAfterCutsNLocMax2MCPi0->Fill(en , efracSplit); | |
1782 | } | |
1783 | } | |
1784 | } | |
1785 | else if(nMax >2) | |
1786 | { | |
1787 | fhMassNLocMaxN[0][matched]->Fill(en,mass); | |
1788 | fhAsymNLocMaxN[0][matched]->Fill(en,asym); | |
1789 | ||
1790 | // Effect of cuts in mass histograms | |
cb99fa55 | 1791 | |
1792 | if(!matched && asyOK && asyOn ) | |
1793 | { | |
1794 | fhMassAsyCutNLocMaxN->Fill(en,mass); | |
1795 | fhM02AsyCutNLocMaxN ->Fill(en,l0 ); | |
1796 | } | |
1797 | ||
1253480f | 1798 | if(!matched && m02OK && m02On ) |
1799 | { | |
1800 | fhMassM02CutNLocMaxN->Fill(en,mass); | |
1801 | fhAsymM02CutNLocMaxN->Fill(en,asym ); | |
1802 | if(splitFrac > splitFracMin && fhMassSplitECutNLocMaxN) fhMassSplitECutNLocMaxN->Fill(en,mass ); | |
1803 | } | |
1804 | ||
1805 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1806 | { | |
1807 | fhSplitEFractionAfterCutsNLocMaxN[0][matched]->Fill(en,splitFrac); | |
1808 | if(splitFrac > splitFracMin) fhMassAfterCutsNLocMaxN[0][matched]->Fill(en,mass); | |
1809 | ||
1810 | if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0) | |
1811 | { | |
1812 | fhMCGenFracAfterCutsNLocMaxNMCPi0 ->Fill(en , efrac ); | |
1813 | fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0->Fill(en , efracSplit); | |
1814 | } | |
1815 | } | |
1816 | } | |
1817 | ||
cb99fa55 | 1818 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 1819 | { |
1820 | if (nMax==1) | |
1821 | { | |
1822 | fhMassNLocMax1[mcindex][matched]->Fill(en,mass); | |
1823 | fhAsymNLocMax1[mcindex][matched]->Fill(en,asym); | |
1824 | ||
1825 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1826 | { | |
1827 | fhSplitEFractionAfterCutsNLocMax1[mcindex][matched]->Fill(en,splitFrac); | |
1828 | if(splitFrac > splitFracMin) | |
1829 | fhMassAfterCutsNLocMax1[mcindex][matched]->Fill(en,mass); | |
1830 | } | |
1831 | } | |
1832 | else if(nMax==2) | |
1833 | { | |
1834 | fhMassNLocMax2[mcindex][matched]->Fill(en,mass); | |
1835 | fhAsymNLocMax2[mcindex][matched]->Fill(en,asym); | |
1836 | ||
1837 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1838 | { | |
1839 | fhSplitEFractionAfterCutsNLocMax2[mcindex][matched]->Fill(en,splitFrac); | |
1840 | if(splitFrac >splitFracMin) | |
1841 | fhMassAfterCutsNLocMax2[mcindex][matched]->Fill(en,mass); | |
1842 | } | |
1843 | } | |
1844 | else if(nMax >2) | |
1845 | { | |
1846 | fhMassNLocMaxN[mcindex][matched]->Fill(en,mass); | |
1847 | fhAsymNLocMaxN[mcindex][matched]->Fill(en,asym); | |
1848 | ||
1849 | if((m02OK && asyOK) && (asyOn || m02On)) | |
1850 | { | |
1851 | fhSplitEFractionAfterCutsNLocMaxN[mcindex][matched]->Fill(en,splitFrac); | |
1852 | if(splitFrac > splitFracMin ) | |
1853 | fhMassAfterCutsNLocMaxN[mcindex][matched]->Fill(en,mass); | |
1854 | } | |
1855 | } | |
1856 | }//Work with MC truth | |
1857 | } | |
1858 | ||
1859 | ||
1860 | //________________________________________________________________________________________________________________________ | |
cc909e6f | 1861 | void AliAnaInsideClusterInvariantMass::FillIdPi0Histograms(const Float_t en, const Float_t e1, const Float_t e2, |
1862 | const Int_t nc, const Int_t nMax, const Float_t t12diff, | |
1253480f | 1863 | const Float_t mass, const Float_t l0, |
1864 | const Float_t eta, const Float_t phi, | |
1865 | const Bool_t matched, const Int_t mcindex) | |
1866 | { | |
1867 | // Fill histograms for clusters passing the pi0 selection | |
1868 | ||
1869 | Float_t asym = -10; | |
1870 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
1871 | ||
29555e96 | 1872 | fhNLocMaxIdPi0 [0][matched]->Fill(en,nMax); |
1873 | fhLM1NLocMaxIdPi0[0][matched]->Fill(e1,nMax); | |
1874 | fhLM2NLocMaxIdPi0[0][matched]->Fill(e2,nMax); | |
1875 | ||
cc909e6f | 1876 | fhSplitClusterEPi0NLocMax[0][matched]->Fill(e1,nMax); |
1877 | fhSplitClusterEPi0NLocMax[0][matched]->Fill(e2,nMax); | |
1878 | ||
cb99fa55 | 1879 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
cc909e6f | 1880 | { |
1881 | fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e1,nMax); | |
1882 | fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e2,nMax); | |
1883 | } | |
1884 | ||
1253480f | 1885 | if (nMax==1) |
1886 | { | |
1887 | fhM02Pi0NLocMax1 [0][matched]->Fill(en,l0); | |
1888 | fhMassPi0NLocMax1[0][matched]->Fill(en,mass); | |
1889 | fhAsyPi0NLocMax1 [0][matched]->Fill(en,asym); | |
1890 | if(fFillNCellHisto) fhNCellPi0NLocMax1[0][matched]->Fill(en,nc); | |
1891 | ||
1892 | if(!matched) | |
1893 | { | |
1894 | if(fFillHighMultHisto) | |
1895 | { | |
1896 | fhCentralityPi0NLocMax1->Fill(en,GetEventCentrality()) ; | |
1897 | fhEventPlanePi0NLocMax1->Fill(en,GetEventPlaneAngle()) ; | |
1898 | } | |
1899 | if(en > fHistoECut)fhPi0EtaPhiNLocMax1->Fill(eta,phi); | |
1900 | fhPi0EPairDiffTimeNLM1->Fill(e1+e2,t12diff); | |
1901 | } | |
1902 | } | |
1903 | else if(nMax==2) | |
1904 | { | |
1905 | fhM02Pi0NLocMax2 [0][matched]->Fill(en,l0); | |
1906 | fhMassPi0NLocMax2[0][matched]->Fill(en,mass); | |
1907 | fhAsyPi0NLocMax2 [0][matched]->Fill(en,asym); | |
1908 | if(fFillNCellHisto) fhNCellPi0NLocMax2[0][matched]->Fill(en,nc); | |
1909 | ||
1910 | if(!matched) | |
1911 | { | |
1912 | if(fFillHighMultHisto) | |
1913 | { | |
1914 | fhCentralityPi0NLocMax2->Fill(en,GetEventCentrality()) ; | |
1915 | fhEventPlanePi0NLocMax2->Fill(en,GetEventPlaneAngle()) ; | |
1916 | } | |
1917 | if(en > fHistoECut)fhPi0EtaPhiNLocMax2->Fill(eta,phi); | |
1918 | fhPi0EPairDiffTimeNLM2->Fill(e1+e2,t12diff); | |
1919 | } | |
1920 | } | |
1921 | else if(nMax >2) | |
1922 | { | |
1923 | fhM02Pi0NLocMaxN [0][matched]->Fill(en,l0); | |
1924 | fhMassPi0NLocMaxN[0][matched]->Fill(en,mass); | |
1925 | fhAsyPi0NLocMaxN [0][matched]->Fill(en,asym); | |
1926 | if(fFillNCellHisto) fhNCellPi0NLocMaxN[0][matched]->Fill(en,nc); | |
1927 | ||
1928 | if(!matched) | |
1929 | { | |
1930 | if(fFillHighMultHisto) | |
1931 | { | |
1932 | fhCentralityPi0NLocMaxN->Fill(en,GetEventCentrality()) ; | |
1933 | fhEventPlanePi0NLocMaxN->Fill(en,GetEventPlaneAngle()) ; | |
1934 | } | |
1935 | if(en > fHistoECut)fhPi0EtaPhiNLocMaxN->Fill(eta,phi); | |
1936 | fhPi0EPairDiffTimeNLMN->Fill(e1+e2,t12diff); | |
1937 | } | |
1938 | } | |
1939 | ||
cb99fa55 | 1940 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 1941 | { |
29555e96 | 1942 | fhNLocMax [mcindex][matched]->Fill(en,nMax); |
1943 | fhLM1NLocMax[mcindex][matched]->Fill(e1,nMax); | |
1944 | fhLM2NLocMax[mcindex][matched]->Fill(e2,nMax); | |
1945 | ||
1253480f | 1946 | if (nMax==1) |
1947 | { | |
1948 | fhM02Pi0NLocMax1 [mcindex][matched]->Fill(en,l0); | |
1949 | fhMassPi0NLocMax1[mcindex][matched]->Fill(en,mass); | |
1950 | fhAsyPi0NLocMax1 [mcindex][matched]->Fill(en,asym); | |
1951 | if(fFillNCellHisto) fhNCellPi0NLocMax1[mcindex][matched]->Fill(en,nc); | |
1952 | ||
1953 | } | |
1954 | else if(nMax==2) | |
1955 | { | |
1956 | fhM02Pi0NLocMax2 [mcindex][matched]->Fill(en,l0); | |
1957 | fhMassPi0NLocMax2[mcindex][matched]->Fill(en,mass); | |
1958 | fhAsyPi0NLocMax2 [mcindex][matched]->Fill(en,asym); | |
1959 | if(fFillNCellHisto) fhNCellPi0NLocMax2[mcindex][matched]->Fill(en,nc); | |
1960 | } | |
1961 | else if(nMax >2) | |
1962 | { | |
cc909e6f | 1963 | fhM02Pi0NLocMaxN [mcindex][matched]->Fill(en,l0); |
1253480f | 1964 | fhMassPi0NLocMaxN[mcindex][matched]->Fill(en,mass); |
cc909e6f | 1965 | fhAsyPi0NLocMaxN [mcindex][matched]->Fill(en,asym); |
1253480f | 1966 | if(fFillNCellHisto) fhNCellPi0NLocMaxN[mcindex][matched]->Fill(en,nc); |
1967 | } | |
1968 | }//Work with MC truth | |
1969 | } | |
1970 | ||
1971 | //________________________________________________________________________________________________________________________ | |
1972 | void AliAnaInsideClusterInvariantMass::FillIdEtaHistograms(const Float_t en, const Float_t e1, const Float_t e2, | |
1973 | const Int_t nc, const Int_t nMax, const Float_t t12diff, | |
1974 | const Float_t mass, const Float_t l0, | |
1975 | const Float_t eta, const Float_t phi, | |
1976 | const Bool_t matched, const Int_t mcindex) | |
1977 | { | |
1978 | // Fill histograms for clusters passing the eta selection | |
1979 | ||
1980 | Float_t asym = -10; | |
1981 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
1982 | ||
1983 | if (nMax==1) | |
1984 | { | |
1985 | fhM02EtaNLocMax1 [0][matched]->Fill(en,l0); | |
1986 | fhMassEtaNLocMax1[0][matched]->Fill(en,mass); | |
1987 | fhAsyEtaNLocMax1 [0][matched]->Fill(en,asym); | |
1988 | if(fFillNCellHisto) fhNCellEtaNLocMax1[0][matched]->Fill(en,nc); | |
1989 | ||
1990 | if(!matched) | |
1991 | { | |
1992 | if(fFillHighMultHisto) | |
1993 | { | |
1994 | fhCentralityEtaNLocMax1->Fill(en,GetEventCentrality()) ; | |
1995 | fhEventPlaneEtaNLocMax1->Fill(en,GetEventPlaneAngle()) ; | |
1996 | } | |
1997 | if(en > fHistoECut)fhEtaEtaPhiNLocMax1->Fill(eta,phi); | |
1998 | fhEtaEPairDiffTimeNLM1->Fill(e1+e2,t12diff); | |
1999 | } | |
2000 | } | |
2001 | else if(nMax==2) | |
2002 | { | |
2003 | fhM02EtaNLocMax2 [0][matched]->Fill(en,l0); | |
2004 | fhMassEtaNLocMax2[0][matched]->Fill(en,mass); | |
2005 | fhAsyEtaNLocMax2 [0][matched]->Fill(en,asym); | |
2006 | if(fFillNCellHisto) fhNCellEtaNLocMax2[0][matched]->Fill(en,nc); | |
2007 | ||
2008 | if(!matched) | |
2009 | { | |
2010 | if(fFillHighMultHisto) | |
2011 | { | |
2012 | fhCentralityEtaNLocMax2->Fill(en,GetEventCentrality()) ; | |
2013 | fhEventPlaneEtaNLocMax2->Fill(en,GetEventPlaneAngle()) ; | |
2014 | } | |
2015 | if(en > fHistoECut)fhEtaEtaPhiNLocMax2->Fill(eta,phi); | |
2016 | fhEtaEPairDiffTimeNLM2->Fill(e1+e2,t12diff); | |
2017 | } | |
2018 | } | |
2019 | else if(nMax >2) | |
2020 | { | |
2021 | fhM02EtaNLocMaxN [0][matched]->Fill(en,l0); | |
2022 | fhMassEtaNLocMaxN[0][matched]->Fill(en,mass); | |
2023 | fhAsyEtaNLocMaxN [0][matched]->Fill(en,asym); | |
2024 | if(fFillNCellHisto) fhNCellEtaNLocMaxN[0][matched]->Fill(en,nc); | |
2025 | ||
2026 | if(!matched) | |
2027 | { | |
2028 | if(fFillHighMultHisto) | |
2029 | { | |
2030 | fhCentralityEtaNLocMaxN->Fill(en,GetEventCentrality()) ; | |
2031 | fhEventPlaneEtaNLocMaxN->Fill(en,GetEventPlaneAngle()) ; | |
2032 | } | |
2033 | if(en > fHistoECut)fhEtaEtaPhiNLocMaxN->Fill(eta,phi); | |
2034 | fhEtaEPairDiffTimeNLMN->Fill(e1+e2,t12diff); | |
2035 | } | |
2036 | } | |
2037 | ||
cb99fa55 | 2038 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 2039 | { |
2040 | if (nMax==1) | |
2041 | { | |
2042 | fhM02EtaNLocMax1[mcindex][matched]->Fill(en,l0); | |
2043 | fhMassEtaNLocMax1[mcindex][matched]->Fill(en,mass); | |
2044 | fhAsyEtaNLocMax1[mcindex][matched]->Fill(en,asym); | |
2045 | if(fFillNCellHisto) fhNCellEtaNLocMax1[mcindex][matched]->Fill(en,nc); | |
2046 | } | |
2047 | else if(nMax==2) | |
2048 | { | |
2049 | fhM02EtaNLocMax2 [mcindex][matched]->Fill(en,l0); | |
2050 | fhMassEtaNLocMax2[mcindex][matched]->Fill(en,mass); | |
2051 | fhAsyEtaNLocMax2 [mcindex][matched]->Fill(en,asym); | |
2052 | if(fFillNCellHisto) fhNCellEtaNLocMax2[mcindex][matched]->Fill(en,nc); | |
2053 | ||
2054 | } | |
2055 | else if(nMax >2) | |
2056 | { | |
2057 | fhM02Pi0NLocMaxN[mcindex][matched]->Fill(en,l0); | |
2058 | fhMassPi0NLocMaxN[mcindex][matched]->Fill(en,mass); | |
2059 | fhAsyPi0NLocMaxN[mcindex][matched]->Fill(en,asym); | |
2060 | if(fFillNCellHisto) fhNCellPi0NLocMaxN[mcindex][matched]->Fill(en,nc); | |
2061 | } | |
2062 | }//Work with MC truth | |
2063 | } | |
2064 | ||
2065 | ||
2066 | //_____________________________________________________________________________________________________________________ | |
2067 | void AliAnaInsideClusterInvariantMass::FillIdConvHistograms(const Float_t en, const Int_t nMax, const Float_t asym, | |
2068 | const Float_t mass, const Float_t l0, | |
2069 | const Bool_t matched, const Int_t mcindex) | |
2070 | { | |
2071 | // Fill histograms for clusters passing the photon selection | |
2072 | ||
2073 | if (nMax==1) | |
2074 | { | |
2075 | fhM02ConNLocMax1 [0][matched]->Fill(en,l0); | |
2076 | fhMassConNLocMax1[0][matched]->Fill(en,mass); | |
2077 | fhAsyConNLocMax1 [0][matched]->Fill(en,asym); | |
2078 | } | |
2079 | else if(nMax==2) | |
2080 | { | |
2081 | fhM02ConNLocMax2 [0][matched]->Fill(en,l0); | |
2082 | fhMassConNLocMax2[0][matched]->Fill(en,mass); | |
2083 | fhAsyConNLocMax2 [0][matched]->Fill(en,asym); | |
2084 | } | |
2085 | else if(nMax >2) | |
2086 | { | |
2087 | fhM02ConNLocMaxN [0][matched]->Fill(en,l0); | |
2088 | fhMassConNLocMaxN[0][matched]->Fill(en,mass); | |
2089 | fhAsyConNLocMaxN [0][matched]->Fill(en,asym); | |
2090 | } | |
2091 | ||
cb99fa55 | 2092 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 2093 | { |
2094 | if (nMax==1) | |
2095 | { | |
2096 | fhM02ConNLocMax1 [mcindex][matched]->Fill(en,l0); | |
2097 | fhMassConNLocMax1[mcindex][matched]->Fill(en,mass); | |
2098 | fhAsyConNLocMax1 [mcindex][matched]->Fill(en,asym); | |
2099 | } | |
2100 | else if(nMax==2) | |
2101 | { | |
2102 | fhM02ConNLocMax2 [mcindex][matched]->Fill(en,l0); | |
2103 | fhMassConNLocMax2[mcindex][matched]->Fill(en,mass); | |
2104 | fhAsyConNLocMax2 [mcindex][matched]->Fill(en,asym); | |
2105 | } | |
2106 | else if(nMax >2) | |
2107 | { | |
2108 | fhM02ConNLocMaxN [mcindex][matched]->Fill(en,l0); | |
2109 | fhMassConNLocMaxN[mcindex][matched]->Fill(en,mass); | |
2110 | fhAsyConNLocMaxN [mcindex][matched]->Fill(en,asym); | |
2111 | } | |
2112 | ||
2113 | }//Work with MC truth | |
2114 | } | |
2115 | ||
b2e375c7 | 2116 | //_____________________________________________________________________________________________________________________ |
2117 | void AliAnaInsideClusterInvariantMass::FillMCHistograms(const Float_t en, const Float_t e1 , const Float_t e2, | |
4914e781 | 2118 | const Int_t ebin, const Int_t mcindex,const Int_t noverlaps, |
b2e375c7 | 2119 | const Float_t l0, const Float_t mass, |
2120 | const Int_t nMax, const Bool_t matched, | |
2121 | const Float_t splitFrac, const Float_t asym, | |
2122 | const Float_t eprim, const Float_t asymGen) | |
2123 | { | |
2124 | // Fill histograms needing some MC input | |
1253480f | 2125 | |
b2e375c7 | 2126 | Float_t efrac = eprim/en; |
2127 | Float_t efracSplit = 0; | |
2128 | if(e1+e2 > 0) efracSplit = eprim/(e1+e2); | |
b583134f | 2129 | Float_t asymDiff = TMath::Abs(asym) - TMath::Abs(asymGen); |
2130 | ||
b2e375c7 | 2131 | //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", |
2132 | // e1,e2,eprim,en,splitFrac,efrac,efracSplit); | |
2133 | ||
2134 | if(ebin >= 0 && fFillEbinHisto) | |
2135 | { | |
2136 | if( !matched ) fhMCGenFracNLocMaxEbin [mcindex][ebin]->Fill(efrac,nMax); | |
2137 | else fhMCGenFracNLocMaxEbinMatched[mcindex][ebin]->Fill(efrac,nMax); | |
2138 | } | |
2139 | ||
2140 | if (nMax==1) | |
2141 | { | |
2142 | fhMCGenFracNLocMax1 [mcindex][matched]->Fill(en , efrac ); | |
2143 | fhMCGenSplitEFracNLocMax1[mcindex][matched]->Fill(en , efracSplit ); | |
2144 | fhMCGenEvsSplitENLocMax1 [mcindex][matched]->Fill(eprim , e1+e2); | |
b583134f | 2145 | if(asym > 0 && !matched) |
2146 | { | |
2147 | if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[0] ->Fill(en, asymDiff ); | |
2148 | else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[0]->Fill(en, asymDiff ); | |
2149 | } | |
2150 | ||
4914e781 | 2151 | if(noverlaps==0) |
2152 | { | |
2153 | fhMCGenFracNLocMax1NoOverlap [mcindex][matched]->Fill(en , efrac ); | |
2154 | fhMCGenSplitEFracNLocMax1NoOverlap[mcindex][matched]->Fill(en , efracSplit ); | |
2155 | } | |
2156 | ||
b2e375c7 | 2157 | if( en > fHistoECut ) |
2158 | { | |
2159 | fhMCGenEFracvsSplitEFracNLocMax1[mcindex][matched]->Fill(efrac,splitFrac ); | |
2160 | ||
2161 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2162 | { | |
2163 | fhM02MCGenFracNLocMax1Ebin [mcindex][ebin]->Fill(efrac , l0 ); | |
2164 | fhMassMCGenFracNLocMax1Ebin[mcindex][ebin]->Fill(efrac , mass ); | |
2165 | ||
b583134f | 2166 | if(mcindex==kmcPi0 || mcindex==kmcPi0Conv) |
2167 | { | |
2168 | fhMCAsymM02NLocMax1MCPi0Ebin [ebin]->Fill(l0 , asymGen ); | |
2169 | fhAsyMCGenRecoNLocMax1EbinPi0[ebin]->Fill(asym, asymGen ); | |
2170 | } | |
b2e375c7 | 2171 | } |
2172 | } | |
2173 | } | |
2174 | else if(nMax==2) | |
2175 | { | |
2176 | fhMCGenFracNLocMax2 [mcindex][matched]->Fill(en , efrac ); | |
2177 | fhMCGenSplitEFracNLocMax2[mcindex][matched]->Fill(en , efracSplit ); | |
2178 | fhMCGenEvsSplitENLocMax2 [mcindex][matched]->Fill(eprim , e1+e2); | |
b583134f | 2179 | |
2180 | if(asym > 0 && !matched) | |
2181 | { | |
2182 | if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[1] ->Fill(en, asymDiff ); | |
2183 | else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[1]->Fill(en, asymDiff ); | |
2184 | } | |
b2e375c7 | 2185 | |
4914e781 | 2186 | if(noverlaps==0) |
2187 | { | |
2188 | fhMCGenFracNLocMax2NoOverlap [mcindex][matched]->Fill(en , efrac ); | |
2189 | fhMCGenSplitEFracNLocMax2NoOverlap[mcindex][matched]->Fill(en , efracSplit ); | |
2190 | } | |
2191 | ||
b2e375c7 | 2192 | if( en > fHistoECut ) |
2193 | { | |
2194 | fhMCGenEFracvsSplitEFracNLocMax2[mcindex][matched]->Fill(efrac,splitFrac ); | |
2195 | ||
2196 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2197 | { | |
2198 | fhM02MCGenFracNLocMax2Ebin [mcindex][ebin]->Fill(efrac , l0 ); | |
2199 | fhMassMCGenFracNLocMax2Ebin[mcindex][ebin]->Fill(efrac , mass ); | |
b583134f | 2200 | if(mcindex==kmcPi0 || mcindex==kmcPi0Conv) |
2201 | { | |
2202 | fhMCAsymM02NLocMax2MCPi0Ebin [ebin]->Fill(l0 , asymGen ); | |
2203 | fhAsyMCGenRecoNLocMax2EbinPi0[ebin]->Fill(asym, asymGen ); | |
2204 | } | |
b2e375c7 | 2205 | } |
2206 | } | |
2207 | ||
2208 | } | |
2209 | else if(nMax > 2 ) | |
2210 | { | |
2211 | fhMCGenFracNLocMaxN [mcindex][matched]->Fill(en , efrac ); | |
2212 | fhMCGenSplitEFracNLocMaxN[mcindex][matched]->Fill(en , efracSplit ); | |
2213 | fhMCGenEvsSplitENLocMaxN [mcindex][matched]->Fill(eprim , e1+e2); | |
b583134f | 2214 | if(asym > 0 && !matched) |
2215 | { | |
2216 | if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[2] ->Fill(en, asymDiff ); | |
2217 | else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[2]->Fill(en, asymDiff ); | |
2218 | } | |
2219 | ||
4914e781 | 2220 | if(noverlaps==0) |
2221 | { | |
2222 | fhMCGenFracNLocMaxNNoOverlap [mcindex][matched]->Fill(en , efrac ); | |
2223 | fhMCGenSplitEFracNLocMaxNNoOverlap[mcindex][matched]->Fill(en , efracSplit ); | |
2224 | } | |
2225 | ||
b2e375c7 | 2226 | if( en > fHistoECut ) |
2227 | { | |
2228 | fhMCGenEFracvsSplitEFracNLocMaxN[mcindex][matched]->Fill(efrac,splitFrac ); | |
2229 | ||
2230 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2231 | { | |
2232 | fhM02MCGenFracNLocMaxNEbin [mcindex][ebin]->Fill(efrac , l0 ); | |
2233 | fhMassMCGenFracNLocMaxNEbin[mcindex][ebin]->Fill(efrac , mass ); | |
2234 | ||
b583134f | 2235 | if(mcindex==kmcPi0 || mcindex==kmcPi0Conv) |
2236 | { | |
2237 | fhMCAsymM02NLocMaxNMCPi0Ebin [ebin]->Fill(l0 , asymGen ); | |
2238 | fhAsyMCGenRecoNLocMaxNEbinPi0[ebin]->Fill(asym, asymGen ); | |
2239 | } | |
b2e375c7 | 2240 | } |
2241 | } | |
2242 | } | |
2243 | } | |
2244 | ||
83351853 | 2245 | //__________________________________________________________________________________________________________________________________________________ |
4914e781 | 2246 | void AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms(const Float_t en, const Float_t enprim, |
74e3eb22 | 2247 | const Int_t nc, const Float_t mass, const Float_t l0, |
4914e781 | 2248 | const Float_t asym, const Float_t splitFrac, |
b2e375c7 | 2249 | const Int_t inlm, const Int_t ebin, const Bool_t matched, |
2250 | const Int_t mcindex, const Int_t noverlaps) | |
2251 | { | |
b2e375c7 | 2252 | // Fill histograms for MC Overlaps |
2253 | ||
2254 | //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 | 2255 | |
b2e375c7 | 2256 | //printf("AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms - NLM bin=%d, mcIndex %d, n Overlaps %d\n",inlm,mcindex,noverlaps); |
2257 | ||
2258 | if(!matched) | |
2259 | { | |
2260 | fhMCENOverlaps[inlm][mcindex]->Fill(en,noverlaps); | |
2261 | ||
2262 | if (noverlaps == 0) | |
2263 | { | |
74e3eb22 | 2264 | fhMCEM02Overlap0 [inlm][mcindex]->Fill(en, l0); |
2265 | fhMCEMassOverlap0 [inlm][mcindex]->Fill(en, mass); | |
2266 | fhMCEEpriOverlap0 [inlm][mcindex]->Fill(en, enprim); | |
2267 | fhMCEAsymOverlap0 [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2268 | if(fFillNCellHisto) fhMCENCellOverlap0[inlm][mcindex]->Fill(en, nc); |
83351853 | 2269 | fhMCESplitEFracOverlap0[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2270 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0[inlm][ebin]->Fill(l0,mass); |
2271 | } | |
2272 | else if(noverlaps == 1) | |
2273 | { | |
74e3eb22 | 2274 | fhMCEM02Overlap1 [inlm][mcindex]->Fill(en, l0); |
2275 | fhMCEMassOverlap1 [inlm][mcindex]->Fill(en, mass); | |
2276 | fhMCEEpriOverlap1 [inlm][mcindex]->Fill(en, enprim); | |
2277 | fhMCEAsymOverlap1 [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2278 | if(fFillNCellHisto) fhMCENCellOverlap1[inlm][mcindex]->Fill(en, nc); |
83351853 | 2279 | fhMCESplitEFracOverlap1[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2280 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1[inlm][ebin]->Fill(l0,mass); |
2281 | } | |
2282 | else if(noverlaps > 1) | |
2283 | { | |
74e3eb22 | 2284 | fhMCEM02OverlapN [inlm][mcindex]->Fill(en, l0); |
2285 | fhMCEMassOverlapN [inlm][mcindex]->Fill(en, mass); | |
2286 | fhMCEEpriOverlapN [inlm][mcindex]->Fill(en, enprim); | |
2287 | fhMCEAsymOverlapN [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2288 | if(fFillNCellHisto) fhMCENCellOverlapN[inlm][mcindex]->Fill(en, nc); |
83351853 | 2289 | fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2290 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapN[inlm][ebin]->Fill(l0,mass); |
2291 | } | |
2292 | else | |
2293 | printf("AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms() - n overlaps = %d!!", noverlaps); | |
2294 | } | |
2295 | else if(fFillTMHisto) | |
2296 | { | |
2297 | fhMCENOverlapsMatch[inlm][mcindex]->Fill(en,noverlaps); | |
2298 | ||
2299 | if (noverlaps == 0) | |
2300 | { | |
74e3eb22 | 2301 | fhMCEM02Overlap0Match [inlm][mcindex]->Fill(en, l0); |
2302 | fhMCEMassOverlap0Match [inlm][mcindex]->Fill(en, mass); | |
2303 | fhMCEEpriOverlap0Match [inlm][mcindex]->Fill(en, enprim); | |
2304 | fhMCEAsymOverlap0Match [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2305 | if(fFillNCellHisto) fhMCENCellOverlap0Match[inlm][mcindex]->Fill(en, nc); |
83351853 | 2306 | fhMCESplitEFracOverlap0Match[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2307 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0Match[inlm][ebin]->Fill(l0,mass); |
2308 | } | |
2309 | else if(noverlaps == 1) | |
2310 | { | |
74e3eb22 | 2311 | fhMCEM02Overlap1Match [inlm][mcindex]->Fill(en, l0); |
2312 | fhMCEMassOverlap1Match [inlm][mcindex]->Fill(en, mass); | |
2313 | fhMCEEpriOverlap1Match [inlm][mcindex]->Fill(en, enprim); | |
2314 | fhMCEAsymOverlap1Match [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2315 | if(fFillNCellHisto) fhMCENCellOverlap1Match[inlm][mcindex]->Fill(en, nc); |
83351853 | 2316 | fhMCESplitEFracOverlap1Match[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2317 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1Match[inlm][ebin]->Fill(l0,mass); |
2318 | } | |
2319 | else if(noverlaps > 1) | |
2320 | { | |
74e3eb22 | 2321 | fhMCEM02OverlapNMatch [inlm][mcindex]->Fill(en, l0); |
2322 | fhMCEMassOverlapNMatch [inlm][mcindex]->Fill(en, mass); | |
2323 | fhMCEEpriOverlapNMatch [inlm][mcindex]->Fill(en, enprim); | |
2324 | fhMCEAsymOverlapNMatch [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2325 | if(fFillNCellHisto) fhMCENCellOverlapNMatch[inlm][mcindex]->Fill(en, nc); |
83351853 | 2326 | fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2327 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapNMatch[inlm][ebin]->Fill(l0,mass); |
2328 | } | |
2329 | else | |
2330 | printf("AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms() - n overlaps in matched = %d!!", noverlaps); | |
2331 | } | |
2332 | } | |
2333 | ||
4914e781 | 2334 | |
2335 | //__________________________________________________________________________________________________ | |
2336 | void AliAnaInsideClusterInvariantMass::FillNCellHistograms(const Int_t ncells, const Float_t energy, const Int_t nMax, | |
2337 | const Bool_t matched, const Int_t mcindex, | |
2338 | const Float_t mass , const Float_t l0) | |
2339 | ||
2340 | { | |
2341 | // Fill optional histograms with more SS parameters | |
1253480f | 2342 | |
4914e781 | 2343 | if (nMax==1) |
2344 | { | |
2345 | fhNCellNLocMax1[0][matched]->Fill(energy,ncells) ; | |
2346 | if(mcindex > 0 ) fhNCellNLocMax1[mcindex][matched]->Fill(energy,ncells) ; | |
2347 | ||
2348 | if (mcindex==kmcPi0 && !matched) | |
2349 | { | |
2350 | if( energy > fHistoECut) | |
2351 | { | |
2352 | fhNCellMassEHighNLocMax1MCPi0->Fill(ncells,mass); | |
2353 | fhNCellM02EHighNLocMax1MCPi0 ->Fill(ncells,l0); | |
2354 | } | |
2355 | else | |
2356 | { | |
2357 | fhNCellMassELowNLocMax1MCPi0->Fill(ncells,mass); | |
2358 | fhNCellM02ELowNLocMax1MCPi0 ->Fill(ncells,l0); | |
2359 | } | |
2360 | } | |
2361 | } | |
2362 | else if( nMax == 2 ) | |
2363 | { | |
2364 | fhNCellNLocMax2[0][matched]->Fill(energy,ncells) ; | |
2365 | if(mcindex > 0 ) fhNCellNLocMax2[mcindex][matched]->Fill(energy,ncells) ; | |
2366 | ||
2367 | ||
2368 | if (mcindex==kmcPi0 && !matched) | |
2369 | { | |
2370 | if( energy > fHistoECut) | |
2371 | { | |
2372 | fhNCellMassEHighNLocMax2MCPi0->Fill(ncells,mass); | |
2373 | fhNCellM02EHighNLocMax2MCPi0 ->Fill(ncells,l0); | |
2374 | } | |
2375 | else | |
2376 | { | |
2377 | fhNCellMassELowNLocMax2MCPi0->Fill(ncells,mass); | |
2378 | fhNCellM02ELowNLocMax2MCPi0 ->Fill(ncells,l0); | |
2379 | } | |
2380 | } | |
2381 | } | |
2382 | else if( nMax >= 3 ) | |
2383 | { | |
2384 | fhNCellNLocMaxN[0][matched]->Fill(energy,ncells) ; | |
2385 | if(mcindex > 0 ) fhNCellNLocMaxN[mcindex][matched]->Fill(energy,ncells) ; | |
2386 | ||
2387 | if (mcindex==kmcPi0 && !matched) | |
2388 | { | |
2389 | if( energy > fHistoECut) | |
2390 | { | |
2391 | fhNCellMassEHighNLocMaxNMCPi0->Fill(ncells,mass); | |
2392 | fhNCellM02EHighNLocMaxNMCPi0 ->Fill(ncells,l0); | |
2393 | } | |
2394 | else | |
2395 | { | |
2396 | fhNCellMassELowNLocMaxNMCPi0->Fill(ncells,mass); | |
2397 | fhNCellM02ELowNLocMaxNMCPi0 ->Fill(ncells,l0); | |
2398 | } | |
2399 | } | |
2400 | } | |
2401 | } | |
2402 | ||
b2e375c7 | 2403 | //______________________________________________________________________________________________________ |
2404 | void AliAnaInsideClusterInvariantMass::FillSSExtraHistograms(AliVCluster *cluster, const Int_t nMax, | |
2405 | const Bool_t matched, const Int_t mcindex, | |
2406 | const Float_t mass , const Int_t ebin) | |
2407 | { | |
2408 | // Fill optional histograms with more SS parameters | |
1253480f | 2409 | |
b2e375c7 | 2410 | Float_t en = cluster->E(); |
b2e375c7 | 2411 | |
2412 | // Get more Shower Shape parameters | |
2413 | Float_t ll0 = 0., ll1 = 0.; | |
2414 | Float_t disp= 0., dispEta = 0., dispPhi = 0.; | |
2415 | Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; | |
2416 | ||
2417 | GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster, | |
2418 | ll0, ll1, disp, dispEta, dispPhi, sEta, sPhi, sEtaPhi); | |
2419 | ||
2420 | Float_t dispAsy = -1; | |
2421 | if(dispEta+dispPhi >0 ) dispAsy = (dispPhi-dispEta) / (dispPhi+dispEta); | |
b2e375c7 | 2422 | |
2423 | if (nMax==1) | |
2424 | { | |
b2e375c7 | 2425 | if( en > fHistoECut ) |
2426 | { | |
2427 | fhMassDispEtaNLocMax1[0][matched]->Fill(dispEta, mass ); | |
2428 | fhMassDispPhiNLocMax1[0][matched]->Fill(dispPhi, mass ); | |
2429 | fhMassDispAsyNLocMax1[0][matched]->Fill(dispAsy, mass ); | |
2430 | ||
cb99fa55 | 2431 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2432 | { |
2433 | fhMassDispEtaNLocMax1[mcindex][matched]->Fill(dispEta, mass ); | |
2434 | fhMassDispPhiNLocMax1[mcindex][matched]->Fill(dispPhi, mass ); | |
2435 | fhMassDispAsyNLocMax1[mcindex][matched]->Fill(dispAsy, mass ); | |
2436 | } | |
2437 | } | |
2438 | ||
2439 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2440 | { | |
2441 | fhMassDispEtaNLocMax1Ebin[ebin]->Fill(dispEta, mass ); | |
2442 | fhMassDispPhiNLocMax1Ebin[ebin]->Fill(dispPhi, mass ); | |
2443 | fhMassDispAsyNLocMax1Ebin[ebin]->Fill(dispAsy, mass ); | |
2444 | } | |
2445 | } | |
2446 | else if( nMax == 2 ) | |
2447 | { | |
b2e375c7 | 2448 | if( en > fHistoECut ) |
2449 | { | |
2450 | fhMassDispEtaNLocMax2[0][matched]->Fill(dispEta, mass ); | |
2451 | fhMassDispPhiNLocMax2[0][matched]->Fill(dispPhi, mass ); | |
2452 | fhMassDispAsyNLocMax2[0][matched]->Fill(dispAsy, mass ); | |
2453 | ||
cb99fa55 | 2454 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2455 | { |
2456 | fhMassDispEtaNLocMax2[mcindex][matched]->Fill(dispEta, mass ); | |
2457 | fhMassDispPhiNLocMax2[mcindex][matched]->Fill(dispPhi, mass ); | |
2458 | fhMassDispAsyNLocMax2[mcindex][matched]->Fill(dispAsy, mass ); | |
2459 | } | |
2460 | } | |
2461 | ||
2462 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2463 | { | |
2464 | fhMassDispEtaNLocMax2Ebin[ebin]->Fill(dispEta, mass ); | |
2465 | fhMassDispPhiNLocMax2Ebin[ebin]->Fill(dispPhi, mass ); | |
2466 | fhMassDispAsyNLocMax2Ebin[ebin]->Fill(dispAsy, mass ); | |
2467 | } | |
2468 | ||
2469 | } | |
2470 | else if( nMax >= 3 ) | |
2471 | { | |
b2e375c7 | 2472 | if( en > fHistoECut ) |
2473 | { | |
2474 | fhMassDispEtaNLocMaxN[0][matched]->Fill(dispEta, mass ); | |
2475 | fhMassDispPhiNLocMaxN[0][matched]->Fill(dispPhi, mass ); | |
2476 | fhMassDispAsyNLocMaxN[0][matched]->Fill(dispAsy, mass ); | |
2477 | ||
cb99fa55 | 2478 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2479 | { |
2480 | fhMassDispEtaNLocMaxN[mcindex][matched]->Fill(dispEta, mass ); | |
2481 | fhMassDispPhiNLocMaxN[mcindex][matched]->Fill(dispPhi, mass ); | |
2482 | fhMassDispAsyNLocMaxN[mcindex][matched]->Fill(dispAsy, mass ); | |
2483 | } | |
2484 | } | |
2485 | ||
2486 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2487 | { | |
2488 | fhMassDispEtaNLocMaxNEbin[ebin]->Fill(dispEta, mass ); | |
2489 | fhMassDispPhiNLocMaxNEbin[ebin]->Fill(dispPhi, mass ); | |
2490 | fhMassDispAsyNLocMaxNEbin[ebin]->Fill(dispAsy, mass ); | |
2491 | } | |
2492 | ||
2493 | } | |
2494 | ||
2495 | } | |
2496 | ||
19391b8c | 2497 | //__________________________________________________________________________________________________ |
2498 | void AliAnaInsideClusterInvariantMass::FillSSWeightHistograms(AliVCluster *clus, const Int_t nlm, | |
2499 | const Int_t absId1, const Int_t absId2) | |
dbe09c26 | 2500 | { |
2501 | // Calculate weights and fill histograms | |
1253480f | 2502 | |
dbe09c26 | 2503 | AliVCaloCells* cells = 0; |
2504 | if(fCalorimeter == "EMCAL") cells = GetEMCALCells(); | |
2505 | else cells = GetPHOSCells(); | |
2506 | ||
2507 | // First recalculate energy in case non linearity was applied | |
2508 | Float_t energy = 0; | |
2509 | for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++) | |
2510 | { | |
2511 | ||
2512 | Int_t id = clus->GetCellsAbsId()[ipos]; | |
2513 | ||
2514 | //Recalibrate cell energy if needed | |
2515 | Float_t amp = cells->GetCellAmplitude(id); | |
2516 | GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id); | |
2517 | ||
2518 | energy += amp; | |
2519 | ||
2520 | } // energy loop | |
2521 | ||
2522 | if(energy <=0 ) | |
2523 | { | |
2524 | printf("AliAnaInsideClusterInvatiantMass::WeightHistograms()- Wrong calculated energy %f\n",energy); | |
2525 | return; | |
2526 | } | |
2527 | ||
19391b8c | 2528 | //Get amplitude of main local maxima, recalibrate if needed |
2529 | Float_t amp1 = cells->GetCellAmplitude(absId1); | |
2530 | GetCaloUtils()->RecalibrateCellAmplitude(amp1,fCalorimeter, absId1); | |
2531 | Float_t amp2 = cells->GetCellAmplitude(absId2); | |
2532 | GetCaloUtils()->RecalibrateCellAmplitude(amp2,fCalorimeter, absId2); | |
2533 | ||
2534 | if(amp1 < amp2) printf("Bad local maxima E ordering : id1 E %f, id2 E %f\n ",amp1,amp2); | |
2535 | if(amp1==0 || amp2==0) printf("Null E local maxima : id1 E %f, id2 E %f\n " ,amp1,amp2); | |
2536 | ||
2537 | if(amp1>0)fhPi0CellEMaxEMax2Frac [nlm]->Fill(energy,amp2/amp1); | |
2538 | fhPi0CellEMaxClusterFrac [nlm]->Fill(energy,amp1/energy); | |
2539 | fhPi0CellEMax2ClusterFrac[nlm]->Fill(energy,amp2/energy); | |
2540 | ||
dbe09c26 | 2541 | //Get the ratio and log ratio to all cells in cluster |
2542 | for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++) | |
2543 | { | |
2544 | Int_t id = clus->GetCellsAbsId()[ipos]; | |
2545 | ||
2546 | //Recalibrate cell energy if needed | |
2547 | Float_t amp = cells->GetCellAmplitude(id); | |
2548 | GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id); | |
2549 | ||
19391b8c | 2550 | if(amp > 0)fhPi0CellE [nlm]->Fill(energy,amp); |
dbe09c26 | 2551 | fhPi0CellEFrac [nlm]->Fill(energy,amp/energy); |
2552 | fhPi0CellLogEFrac[nlm]->Fill(energy,TMath::Log(amp/energy)); | |
19391b8c | 2553 | |
2554 | if (id!=absId1 && id!=absId2) | |
2555 | { | |
2556 | if(amp1>0)fhPi0CellEMaxFrac [nlm]->Fill(energy,amp/amp1); | |
2557 | if(amp2>0)fhPi0CellEMax2Frac[nlm]->Fill(energy,amp/amp2); | |
2558 | } | |
2559 | ||
dbe09c26 | 2560 | } |
2561 | ||
2562 | //Recalculate shower shape for different W0 | |
2563 | if(fCalorimeter=="EMCAL") | |
2564 | { | |
2565 | Float_t l0org = clus->GetM02(); | |
2566 | Float_t l1org = clus->GetM20(); | |
2567 | Float_t dorg = clus->GetDispersion(); | |
19391b8c | 2568 | Float_t w0org = GetCaloUtils()->GetEMCALRecoUtils()->GetW0(); |
dbe09c26 | 2569 | |
2570 | for(Int_t iw = 0; iw < fSSWeightN; iw++) | |
2571 | { | |
2572 | GetCaloUtils()->GetEMCALRecoUtils()->SetW0(fSSWeight[iw]); | |
8edbd100 | 2573 | //GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), cells, clus); |
2574 | ||
2575 | Float_t l0 = 0., l1 = 0.; | |
2576 | Float_t disp = 0., dEta = 0., dPhi = 0.; | |
2577 | Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; | |
2578 | ||
2579 | RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp, | |
2580 | dEta, dPhi, sEta, sPhi, sEtaPhi,0); | |
2581 | ||
dbe09c26 | 2582 | |
2583 | fhM02WeightPi0[nlm][iw]->Fill(energy,clus->GetM02()); | |
2584 | ||
2585 | } // w0 loop | |
2586 | ||
2587 | // Set the original values back | |
2588 | clus->SetM02(l0org); | |
2589 | clus->SetM20(l1org); | |
2590 | clus->SetDispersion(dorg); | |
19391b8c | 2591 | GetCaloUtils()->GetEMCALRecoUtils()->SetW0(w0org); |
2592 | ||
2593 | for(Int_t iec = 0; iec < fSSECellCutN; iec++) | |
2594 | { | |
2595 | Float_t l0 = 0., l1 = 0.; | |
2596 | Float_t disp = 0., dEta = 0., dPhi = 0.; | |
2597 | Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; | |
19391b8c | 2598 | |
3ae72bd8 | 2599 | RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp, |
2600 | dEta, dPhi, sEta, sPhi, sEtaPhi,fSSECellCut[iec]); | |
2601 | ||
c0779373 | 2602 | //printf("E %f, l0 org %f, l0 new %f, slope %f\n",clus->E(),l0org,l0,fSSECellCut[iec]); |
19391b8c | 2603 | fhM02ECellCutPi0[nlm][iec]->Fill(energy,l0); |
2604 | ||
2605 | } // w0 loop | |
3ae72bd8 | 2606 | |
dbe09c26 | 2607 | }// EMCAL |
2608 | } | |
2609 | ||
b2e375c7 | 2610 | //________________________________________________________________________________________ |
cc909e6f | 2611 | void AliAnaInsideClusterInvariantMass::FillTrackMatchingHistograms(AliVCluster * cluster, const Int_t nMax, |
b2e375c7 | 2612 | const Int_t mcindex) |
2613 | { | |
2614 | // Fill histograms related to track matching | |
1253480f | 2615 | |
b2e375c7 | 2616 | Float_t dZ = cluster->GetTrackDz(); |
2617 | Float_t dR = cluster->GetTrackDx(); | |
2618 | Float_t en = cluster->E(); | |
2619 | ||
2620 | if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn()) | |
2621 | { | |
2622 | dR = 2000., dZ = 2000.; | |
2623 | GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR); | |
2624 | } | |
2625 | ||
2626 | //printf("Pi0EbE: dPhi %f, dEta %f\n",dR,dZ); | |
2627 | ||
2628 | if(TMath::Abs(dR) < 999) | |
2629 | { | |
2630 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[0]->Fill(en,dR); } | |
2631 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[0]->Fill(en,dR); } | |
2632 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[0]->Fill(en,dR); } | |
2633 | ||
cb99fa55 | 2634 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2635 | { |
2636 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[mcindex]->Fill(en,dR); } | |
2637 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[mcindex]->Fill(en,dR); } | |
2638 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[mcindex]->Fill(en,dR); } | |
2639 | } | |
2640 | ||
2641 | AliVTrack *track = GetCaloUtils()->GetMatchedTrack(cluster, GetReader()->GetInputEvent()); | |
2642 | ||
2643 | Bool_t positive = kFALSE; | |
2644 | if(track) positive = (track->Charge()>0); | |
2645 | ||
2646 | if(track) | |
2647 | { | |
2648 | if(positive) | |
2649 | { | |
2650 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[0]->Fill(en,dR); } | |
2651 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[0]->Fill(en,dR); } | |
2652 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[0]->Fill(en,dR); } | |
2653 | ||
cb99fa55 | 2654 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2655 | { |
2656 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[mcindex]->Fill(en,dR); } | |
2657 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[mcindex]->Fill(en,dR); } | |
2658 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[mcindex]->Fill(en,dR); } | |
2659 | } | |
2660 | } | |
2661 | else | |
2662 | { | |
2663 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[0]->Fill(en,dR); } | |
2664 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[0]->Fill(en,dR); } | |
2665 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[0]->Fill(en,dR); } | |
2666 | ||
cb99fa55 | 2667 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2668 | { |
2669 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[mcindex]->Fill(en,dR); } | |
2670 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[mcindex]->Fill(en,dR); } | |
2671 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[mcindex]->Fill(en,dR); } | |
2672 | } | |
2673 | } | |
2674 | ||
2675 | }// track exists | |
2676 | ||
2677 | } | |
2678 | } | |
dbe09c26 | 2679 | |
992b14a7 | 2680 | //_______________________________________________________________ |
2681 | TObjString * AliAnaInsideClusterInvariantMass::GetAnalysisCuts() | |
2682 | { | |
2683 | //Save parameters used for analysis | |
2684 | TString parList ; //this will be list of parameters used for this analysis. | |
2685 | const Int_t buffersize = 255; | |
2686 | char onePar[buffersize] ; | |
2687 | ||
2688 | snprintf(onePar,buffersize,"--- AliAnaInsideClusterInvariantMass ---\n") ; | |
2689 | parList+=onePar ; | |
2690 | ||
243c2909 | 2691 | snprintf(onePar,buffersize,"Calorimeter: %s\n", fCalorimeter.Data()) ; |
992b14a7 | 2692 | parList+=onePar ; |
c8710850 | 2693 | snprintf(onePar,buffersize,"fNLocMaxCutE =%2.2f \n", GetCaloUtils()->GetLocalMaximaCutE()) ; |
29ca9cad | 2694 | parList+=onePar ; |
c8710850 | 2695 | snprintf(onePar,buffersize,"fNLocMaxCutEDiff =%2.2f \n",GetCaloUtils()->GetLocalMaximaCutEDiff()) ; |
29ca9cad | 2696 | parList+=onePar ; |
e23a0471 | 2697 | snprintf(onePar,buffersize,"fMinNCells =%d \n", fMinNCells) ; |
2cb134fb | 2698 | parList+=onePar ; |
3c1d9afb | 2699 | snprintf(onePar,buffersize,"fMinBadDist =%1.1f \n", fMinBadDist) ; |
992b14a7 | 2700 | parList+=onePar ; |
19391b8c | 2701 | if(fFillSSWeightHisto) |
2702 | { | |
2703 | snprintf(onePar,buffersize," N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN); | |
2704 | parList+=onePar ; | |
2705 | } | |
2706 | ||
992b14a7 | 2707 | return new TObjString(parList) ; |
2708 | ||
2709 | } | |
2710 | ||
992b14a7 | 2711 | //________________________________________________________________ |
2712 | TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects() | |
1253480f | 2713 | { |
992b14a7 | 2714 | // Create histograms to be saved in output file and |
2715 | // store them in outputContainer | |
2716 | TList * outputContainer = new TList() ; | |
667432ef | 2717 | outputContainer->SetName("InsideClusterHistos") ; |
992b14a7 | 2718 | |
745913ae | 2719 | Int_t nptbins = GetHistogramRanges()->GetHistoPtBins(); Float_t ptmax = GetHistogramRanges()->GetHistoPtMax(); Float_t ptmin = GetHistogramRanges()->GetHistoPtMin(); |
2720 | Int_t ssbins = GetHistogramRanges()->GetHistoShowerShapeBins(); Float_t ssmax = GetHistogramRanges()->GetHistoShowerShapeMax(); Float_t ssmin = GetHistogramRanges()->GetHistoShowerShapeMin(); | |
2721 | Int_t mbins = GetHistogramRanges()->GetHistoMassBins(); Float_t mmax = GetHistogramRanges()->GetHistoMassMax(); Float_t mmin = GetHistogramRanges()->GetHistoMassMin(); | |
2722 | Int_t ncbins = GetHistogramRanges()->GetHistoNClusterCellBins(); Int_t ncmax = GetHistogramRanges()->GetHistoNClusterCellMax(); Int_t ncmin = GetHistogramRanges()->GetHistoNClusterCellMin(); | |
9554fc65 | 2723 | Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins(); Float_t phimax = GetHistogramRanges()->GetHistoPhiMax(); Float_t phimin = GetHistogramRanges()->GetHistoPhiMin(); |
2724 | Int_t netabins = GetHistogramRanges()->GetHistoEtaBins(); Float_t etamax = GetHistogramRanges()->GetHistoEtaMax(); Float_t etamin = GetHistogramRanges()->GetHistoEtaMin(); | |
1253480f | 2725 | |
5c46c992 | 2726 | Int_t nresetabins = GetHistogramRanges()->GetHistoTrackResidualEtaBins(); |
2727 | Float_t resetamax = GetHistogramRanges()->GetHistoTrackResidualEtaMax(); | |
2728 | Float_t resetamin = GetHistogramRanges()->GetHistoTrackResidualEtaMin(); | |
2729 | Int_t nresphibins = GetHistogramRanges()->GetHistoTrackResidualPhiBins(); | |
2730 | Float_t resphimax = GetHistogramRanges()->GetHistoTrackResidualPhiMax(); | |
2731 | Float_t resphimin = GetHistogramRanges()->GetHistoTrackResidualPhiMin(); | |
2732 | ||
1253480f | 2733 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); |
2734 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
2735 | Bool_t splitOn = kFALSE; | |
2736 | if(GetCaloPID()->GetSplitEnergyFractionMinimum(0) > 0 || | |
2737 | GetCaloPID()->GetSplitEnergyFractionMinimum(1) > 0 || | |
2738 | GetCaloPID()->GetSplitEnergyFractionMinimum(2) > 0) splitOn = kTRUE; | |
2739 | ||
cb99fa55 | 2740 | TString ptype[] ={"","#gamma","#gamma->e^{#pm}","#pi^{0}","#pi^{0} (#gamma->e^{#pm})","#eta", "hadron"}; |
2741 | TString pname[] ={"","Photon","Conversion", "Pi0", "Pi0Conv", "Eta","Hadron"}; | |
ce49dd72 | 2742 | TString snlm [] = {"1","2","N"}; |
2743 | ||
be894c1d | 2744 | TString sEBin[] = {"8 < E < 12 GeV","12 < E < 16 GeV", "16 < E < 20 GeV", "E > 20 GeV" }; |
2745 | ||
992b14a7 | 2746 | Int_t n = 1; |
2747 | ||
cb99fa55 | 2748 | if(IsDataMC()) n = 7; |
992b14a7 | 2749 | |
243c2909 | 2750 | Int_t nMaxBins = 10; |
2751 | ||
5c46c992 | 2752 | TString sMatched[] = {"","Matched"}; |
2753 | ||
8edbd100 | 2754 | Int_t nMatched = 2; |
2755 | if(!fFillTMHisto) nMatched = 1; | |
aa12888f | 2756 | |
ce49dd72 | 2757 | if(fCheckSplitDistToBad) |
2758 | { | |
2759 | for(Int_t inlm = 0; inlm < 3; inlm++) | |
2760 | { | |
2761 | fhMassBadDistClose[inlm] = new TH2F(Form("hMassBadDistCloseNLocMax%s",snlm[inlm].Data()), | |
2762 | Form("Invariant mass of splitted cluster with NLM=%d vs E, 2nd LM close to bad channel",inlm), | |
2763 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
2764 | fhMassBadDistClose[inlm]->SetYTitle("M (GeV/c^{2})"); | |
2765 | fhMassBadDistClose[inlm]->SetXTitle("E (GeV)"); | |
2766 | outputContainer->Add(fhMassBadDistClose[inlm]) ; | |
2767 | ||
2768 | fhM02BadDistClose[inlm] = new TH2F(Form("hM02BadDistCloseNLocMax%s",snlm[inlm].Data()), | |
2769 | Form("#lambda_{0}^{2} for cluster with NLM=%d vs E, 2nd LM close to bad channel",inlm), | |
2770 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
2771 | fhM02BadDistClose[inlm]->SetYTitle("#lambda_{0}^{2}"); | |
2772 | fhM02BadDistClose[inlm]->SetXTitle("E (GeV)"); | |
2773 | outputContainer->Add(fhM02BadDistClose[inlm]) ; | |
2774 | ||
2775 | fhMassOnBorder[inlm] = new TH2F(Form("hMassOnBorderNLocMax%s",snlm[inlm].Data()), | |
2776 | Form("Invariant mass of splitted cluster with NLM=%d vs E, 2nd LM close to border",inlm), | |
2777 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
2778 | fhMassOnBorder[inlm]->SetYTitle("M (GeV/c^{2})"); | |
2779 | fhMassOnBorder[inlm]->SetXTitle("E (GeV)"); | |
2780 | outputContainer->Add(fhMassOnBorder[inlm]) ; | |
2781 | ||
2782 | fhM02OnBorder[inlm] = new TH2F(Form("hM02OnBorderNLocMax%s",snlm[inlm].Data()), | |
2783 | Form("#lambda_{0}^{2} for cluster with NLM=%d vs E, 2nd LM close to border",inlm), | |
2784 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
2785 | fhM02OnBorder[inlm]->SetYTitle("#lambda_{0}^{2}"); | |
2786 | fhM02OnBorder[inlm]->SetXTitle("E (GeV)"); | |
2787 | outputContainer->Add(fhM02OnBorder[inlm]) ; | |
2788 | ||
2789 | } | |
2790 | } | |
2791 | ||
5c46c992 | 2792 | for(Int_t i = 0; i < n; i++) |
667432ef | 2793 | { |
8edbd100 | 2794 | for(Int_t j = 0; j < nMatched; j++) |
667432ef | 2795 | { |
5c46c992 | 2796 | |
ce49dd72 | 2797 | fhNLocMax[i][j] = new TH2F(Form("hNLocMax%s%s",pname[i].Data(),sMatched[j].Data()), |
2798 | Form("Number of local maxima in cluster %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2799 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2800 | fhNLocMax[i][j] ->SetYTitle("N maxima"); | |
2801 | fhNLocMax[i][j] ->SetXTitle("E (GeV)"); | |
2802 | outputContainer->Add(fhNLocMax[i][j]) ; | |
29555e96 | 2803 | |
2804 | fhLM1NLocMax[i][j] = new TH2F(Form("hLM1NLocMax%s%s",pname[i].Data(),sMatched[j].Data()), | |
2805 | Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2806 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2807 | fhLM1NLocMax[i][j] ->SetYTitle("N maxima"); | |
2808 | fhLM1NLocMax[i][j] ->SetXTitle("E1 (GeV)"); | |
2809 | outputContainer->Add(fhLM1NLocMax[i][j]) ; | |
2810 | ||
2811 | fhLM2NLocMax[i][j] = new TH2F(Form("hLM2NLocMax%s%s",pname[i].Data(),sMatched[j].Data()), | |
2812 | Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2813 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2814 | fhLM2NLocMax[i][j] ->SetYTitle("N maxima"); | |
2815 | fhLM2NLocMax[i][j] ->SetXTitle("E1 (GeV)"); | |
2816 | outputContainer->Add(fhLM2NLocMax[i][j]) ; | |
2817 | ||
2818 | if(m02On) | |
2819 | { | |
2820 | fhNLocMaxM02Cut[i][j] = new TH2F(Form("hNLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()), | |
2821 | Form("Number of local maxima in cluster %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()), | |
2822 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2823 | fhNLocMaxM02Cut[i][j]->SetYTitle("N maxima"); | |
2824 | fhNLocMaxM02Cut[i][j]->SetXTitle("E (GeV)"); | |
2825 | outputContainer->Add(fhNLocMaxM02Cut[i][j]) ; | |
2826 | ||
2827 | fhLM1NLocMaxM02Cut[i][j] = new TH2F(Form("hLM1NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()), | |
2828 | Form("Number of local maxima in cluster for split cluster 1 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()), | |
2829 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2830 | fhLM1NLocMaxM02Cut[i][j] ->SetYTitle("N maxima"); | |
2831 | fhLM1NLocMaxM02Cut[i][j] ->SetXTitle("E1 (GeV)"); | |
2832 | outputContainer->Add(fhLM1NLocMaxM02Cut[i][j]) ; | |
2833 | ||
2834 | fhLM2NLocMaxM02Cut[i][j] = new TH2F(Form("hLM2NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()), | |
2835 | Form("Number of local maxima in cluster for split cluster 2 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()), | |
2836 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2837 | fhLM2NLocMaxM02Cut[i][j] ->SetYTitle("N maxima"); | |
2838 | fhLM2NLocMaxM02Cut[i][j] ->SetXTitle("E1 (GeV)"); | |
2839 | outputContainer->Add(fhLM2NLocMaxM02Cut[i][j]) ; | |
2840 | ||
2841 | } | |
2842 | ||
2843 | ||
2844 | fhNLocMaxIdPi0[i][j] = new TH2F(Form("hNLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()), | |
2845 | Form("Number of local maxima in pi0 ID cluster %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2846 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2847 | fhNLocMaxIdPi0[i][j] ->SetYTitle("N maxima"); | |
2848 | fhNLocMaxIdPi0[i][j] ->SetXTitle("E (GeV)"); | |
2849 | outputContainer->Add(fhNLocMaxIdPi0[i][j]) ; | |
2850 | ||
2851 | ||
2852 | fhLM1NLocMaxIdPi0[i][j] = new TH2F(Form("hLM1NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()), | |
2853 | Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2854 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2855 | fhLM1NLocMaxIdPi0[i][j] ->SetYTitle("N maxima"); | |
2856 | fhLM1NLocMaxIdPi0[i][j] ->SetXTitle("E1 (GeV)"); | |
2857 | outputContainer->Add(fhLM1NLocMaxIdPi0[i][j]) ; | |
2858 | ||
2859 | fhLM2NLocMaxIdPi0[i][j] = new TH2F(Form("hLM2NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()), | |
2860 | Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2861 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2862 | fhLM2NLocMaxIdPi0[i][j] ->SetYTitle("N maxima"); | |
2863 | fhLM2NLocMaxIdPi0[i][j] ->SetXTitle("E1 (GeV)"); | |
2864 | outputContainer->Add(fhLM2NLocMaxIdPi0[i][j]) ; | |
2865 | ||
2866 | ||
2867 | ||
ce49dd72 | 2868 | |
2869 | fhSplitClusterENLocMax[i][j] = new TH2F(Form("hSplitEClusterNLocMax%s%s",pname[i].Data(),sMatched[j].Data()), | |
2870 | Form("Number of local maxima vs E of split clusters %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2871 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2872 | fhSplitClusterENLocMax[i][j] ->SetYTitle("N maxima"); | |
2873 | fhSplitClusterENLocMax[i][j] ->SetXTitle("E (GeV)"); | |
2874 | outputContainer->Add(fhSplitClusterENLocMax[i][j]) ; | |
2875 | ||
2876 | ||
2877 | fhSplitClusterEPi0NLocMax[i][j] = new TH2F(Form("hSplitEClusterPi0NLocMax%s%s",pname[i].Data(),sMatched[j].Data()), | |
2878 | Form("Number of local maxima vs E of split clusters, id as pi0, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2879 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2880 | fhSplitClusterEPi0NLocMax[i][j] ->SetYTitle("N maxima"); | |
2881 | fhSplitClusterEPi0NLocMax[i][j] ->SetXTitle("E (GeV)"); | |
2882 | outputContainer->Add(fhSplitClusterEPi0NLocMax[i][j]) ; | |
2883 | ||
2884 | if(fFillNCellHisto) | |
2885 | { | |
2886 | fhNCellNLocMax1[i][j] = new TH2F(Form("hNCellNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
2887 | Form("n cells vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2888 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
2889 | fhNCellNLocMax1[i][j] ->SetYTitle("N cells"); | |
2890 | fhNCellNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
2891 | outputContainer->Add(fhNCellNLocMax1[i][j]) ; | |
2892 | ||
2893 | fhNCellNLocMax2[i][j] = new TH2F(Form("hNCellNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
2894 | Form("n cells vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2895 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
2896 | fhNCellNLocMax2[i][j] ->SetYTitle("N cells"); | |
2897 | fhNCellNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
2898 | outputContainer->Add(fhNCellNLocMax2[i][j]) ; | |
2899 | ||
2900 | ||
2901 | fhNCellNLocMaxN[i][j] = new TH2F(Form("hNCellNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2902 | Form("n cells vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2903 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
2904 | fhNCellNLocMaxN[i][j] ->SetYTitle("N cells"); | |
2905 | fhNCellNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
2906 | outputContainer->Add(fhNCellNLocMaxN[i][j]) ; | |
2907 | } | |
2908 | ||
5c46c992 | 2909 | fhMassNLocMax1[i][j] = new TH2F(Form("hMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
2a77f6f4 | 2910 | Form("Invariant mass of splitted cluster with NLM=1 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()), |
5c46c992 | 2911 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
2912 | fhMassNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
2913 | fhMassNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
2914 | outputContainer->Add(fhMassNLocMax1[i][j]) ; | |
2915 | ||
2916 | fhMassNLocMax2[i][j] = new TH2F(Form("hMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
2a77f6f4 | 2917 | Form("Invariant mass of splitted cluster with NLM=2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()), |
5c46c992 | 2918 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
2919 | fhMassNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
2920 | fhMassNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
2921 | outputContainer->Add(fhMassNLocMax2[i][j]) ; | |
2922 | ||
2923 | fhMassNLocMaxN[i][j] = new TH2F(Form("hMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2a77f6f4 | 2924 | Form("Invariant mass of splitted cluster with NLM>2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()), |
5c46c992 | 2925 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
2926 | fhMassNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
2927 | fhMassNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
667432ef | 2928 | outputContainer->Add(fhMassNLocMaxN[i][j]) ; |
1253480f | 2929 | |
2930 | fhM02NLocMax1[i][j] = new TH2F(Form("hM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
2931 | Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2932 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
2933 | fhM02NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
2934 | fhM02NLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
2935 | outputContainer->Add(fhM02NLocMax1[i][j]) ; | |
2936 | ||
2937 | fhM02NLocMax2[i][j] = new TH2F(Form("hM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
2938 | Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2939 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
2940 | fhM02NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
2941 | fhM02NLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
2942 | outputContainer->Add(fhM02NLocMax2[i][j]) ; | |
2943 | ||
2944 | fhM02NLocMaxN[i][j] = new TH2F(Form("hM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2945 | Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2946 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
2947 | fhM02NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
2948 | fhM02NLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
2949 | outputContainer->Add(fhM02NLocMaxN[i][j]) ; | |
2950 | ||
2951 | fhAsymNLocMax1[i][j] = new TH2F(Form("hAsymNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
2952 | Form("Asymmetry of NLM=1 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2953 | nptbins,ptmin,ptmax,200,-1,1); | |
2954 | fhAsymNLocMax1[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
2955 | fhAsymNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
2956 | outputContainer->Add(fhAsymNLocMax1[i][j]) ; | |
2957 | ||
2958 | fhAsymNLocMax2[i][j] = new TH2F(Form("hAsymNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
2959 | Form("Asymmetry of NLM=2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2960 | nptbins,ptmin,ptmax,200,-1,1); | |
2961 | fhAsymNLocMax2[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
2962 | fhAsymNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
2963 | outputContainer->Add(fhAsymNLocMax2[i][j]) ; | |
2964 | ||
2965 | fhAsymNLocMaxN[i][j] = new TH2F(Form("hAsymNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2966 | Form("Asymmetry of NLM>2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2967 | nptbins,ptmin,ptmax,200,-1,1); | |
2968 | fhAsymNLocMaxN[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
2969 | fhAsymNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
2970 | outputContainer->Add(fhAsymNLocMaxN[i][j]) ; | |
2971 | ||
2972 | fhSplitEFractionNLocMax1[i][j] = new TH2F(Form("hSplitEFractionNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
2973 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2974 | nptbins,ptmin,ptmax,120,0,1.2); | |
2975 | fhSplitEFractionNLocMax1[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
2976 | fhSplitEFractionNLocMax1[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
2977 | outputContainer->Add(fhSplitEFractionNLocMax1[i][j]) ; | |
2978 | ||
2979 | fhSplitEFractionNLocMax2[i][j] = new TH2F(Form("hSplitEFractionNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
2980 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2981 | nptbins,ptmin,ptmax,120,0,1.2); | |
2982 | fhSplitEFractionNLocMax2[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
2983 | fhSplitEFractionNLocMax2[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
2984 | outputContainer->Add(fhSplitEFractionNLocMax2[i][j]) ; | |
2985 | ||
2986 | fhSplitEFractionNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2987 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2988 | nptbins,ptmin,ptmax,120,0,1.2); | |
2989 | fhSplitEFractionNLocMaxN[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
2990 | fhSplitEFractionNLocMaxN[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
2991 | outputContainer->Add(fhSplitEFractionNLocMaxN[i][j]) ; | |
1253480f | 2992 | |
cb99fa55 | 2993 | if(i==0 && j==0 ) |
1253480f | 2994 | { |
cb99fa55 | 2995 | if(m02On) |
1253480f | 2996 | { |
cb99fa55 | 2997 | fhMassM02CutNLocMax1 = new TH2F("hMassM02CutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, M02 cut, no TM", |
2998 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
2999 | fhMassM02CutNLocMax1->SetYTitle("M (GeV/c^{2})"); | |
3000 | fhMassM02CutNLocMax1->SetXTitle("E (GeV)"); | |
3001 | outputContainer->Add(fhMassM02CutNLocMax1) ; | |
1253480f | 3002 | |
cb99fa55 | 3003 | fhMassM02CutNLocMax2 = new TH2F("hMassM02CutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, M02 cut, no TM", |
3004 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3005 | fhMassM02CutNLocMax2->SetYTitle("M (GeV/c^{2})"); | |
3006 | fhMassM02CutNLocMax2->SetXTitle("E (GeV)"); | |
3007 | outputContainer->Add(fhMassM02CutNLocMax2) ; | |
1253480f | 3008 | |
cb99fa55 | 3009 | fhMassM02CutNLocMaxN = new TH2F("hMassM02CutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, M02 cut, no TM", |
3010 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3011 | fhMassM02CutNLocMaxN->SetYTitle("M (GeV/c^{2})"); | |
3012 | fhMassM02CutNLocMaxN->SetXTitle("E (GeV)"); | |
3013 | outputContainer->Add(fhMassM02CutNLocMaxN) ; | |
3014 | ||
3015 | fhAsymM02CutNLocMax1 = new TH2F("hAsymM02CutNLocMax1","Asymmetry of NLM=1 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1); | |
3016 | fhAsymM02CutNLocMax1->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3017 | fhAsymM02CutNLocMax1->SetXTitle("E (GeV)"); | |
3018 | outputContainer->Add(fhAsymM02CutNLocMax1) ; | |
3019 | ||
3020 | fhAsymM02CutNLocMax2 = new TH2F("hAsymM02CutNLocMax2","Asymmetry of NLM=2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1); | |
3021 | fhAsymM02CutNLocMax2->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3022 | fhAsymM02CutNLocMax2->SetXTitle("E (GeV)"); | |
3023 | outputContainer->Add(fhAsymM02CutNLocMax2) ; | |
3024 | ||
3025 | fhAsymM02CutNLocMaxN = new TH2F("hAsymM02CutNLocMaxN","Asymmetry of NLM>2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1); | |
3026 | fhAsymM02CutNLocMaxN->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3027 | fhAsymM02CutNLocMaxN->SetXTitle("E (GeV)"); | |
3028 | outputContainer->Add(fhAsymM02CutNLocMaxN) ; | |
3029 | if(splitOn) | |
3030 | { | |
3031 | fhMassSplitECutNLocMax1 = new TH2F("hMassSplitECutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, (E1+E2)/E cut, M02 cut, no TM", | |
3032 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3033 | fhMassSplitECutNLocMax1->SetYTitle("M (GeV/c^{2})"); | |
3034 | fhMassSplitECutNLocMax1->SetXTitle("E (GeV)"); | |
3035 | outputContainer->Add(fhMassSplitECutNLocMax1) ; | |
3036 | ||
3037 | fhMassSplitECutNLocMax2 = new TH2F("hMassSplitECutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, (E1+E2)/E cut, M02 cut, no TM", | |
3038 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3039 | fhMassSplitECutNLocMax2->SetYTitle("M (GeV/c^{2})"); | |
3040 | fhMassSplitECutNLocMax2->SetXTitle("E (GeV)"); | |
3041 | outputContainer->Add(fhMassSplitECutNLocMax2) ; | |
3042 | ||
3043 | fhMassSplitECutNLocMaxN = new TH2F("hMassSplitECutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, (E1+E2)/E cut, M02 cut, no TM", | |
3044 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3045 | fhMassSplitECutNLocMaxN->SetYTitle("M (GeV/c^{2})"); | |
3046 | fhMassSplitECutNLocMaxN->SetXTitle("E (GeV)"); | |
3047 | outputContainer->Add(fhMassSplitECutNLocMaxN) ; | |
3048 | } | |
3049 | }//m02on | |
1253480f | 3050 | |
cb99fa55 | 3051 | if(asyOn) |
3052 | { | |
3053 | fhMassAsyCutNLocMax1 = new TH2F("hMassAsyCutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, M02 cut, no TM", | |
3054 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3055 | fhMassAsyCutNLocMax1->SetYTitle("M (GeV/c^{2})"); | |
3056 | fhMassAsyCutNLocMax1->SetXTitle("E (GeV)"); | |
3057 | outputContainer->Add(fhMassAsyCutNLocMax1) ; | |
3058 | ||
3059 | fhMassAsyCutNLocMax2 = new TH2F("hMassAsyCutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, M02 cut, no TM", | |
3060 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3061 | fhMassAsyCutNLocMax2->SetYTitle("M (GeV/c^{2})"); | |
3062 | fhMassAsyCutNLocMax2->SetXTitle("E (GeV)"); | |
3063 | outputContainer->Add(fhMassAsyCutNLocMax2) ; | |
3064 | ||
3065 | fhMassAsyCutNLocMaxN = new TH2F("hMassAsyCutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, M02 cut, no TM", | |
3066 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3067 | fhMassAsyCutNLocMaxN->SetYTitle("M (GeV/c^{2})"); | |
3068 | fhMassAsyCutNLocMaxN->SetXTitle("E (GeV)"); | |
3069 | outputContainer->Add(fhMassAsyCutNLocMaxN) ; | |
3070 | ||
3071 | fhM02AsyCutNLocMax1 = new TH2F("hM02AsyCutNLocMax1","#lambda_{0}^{2} of NLM=1 vs cluster Energy, AsyCut, no TM", | |
3072 | nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); | |
3073 | fhM02AsyCutNLocMax1->SetYTitle("#lambda_{0}^{2}"); | |
3074 | fhM02AsyCutNLocMax1->SetXTitle("E (GeV)"); | |
3075 | outputContainer->Add(fhM02AsyCutNLocMax1) ; | |
3076 | ||
3077 | fhM02AsyCutNLocMax2 = new TH2F("hM02AsyCutNLocMax2","#lambda_{0}^{2} of NLM=2 vs cluster Energy, AsyCut, no TM", | |
3078 | nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); | |
3079 | fhM02AsyCutNLocMax2->SetYTitle("#lambda_{0}^{2}"); | |
3080 | fhM02AsyCutNLocMax2->SetXTitle("E (GeV)"); | |
3081 | outputContainer->Add(fhM02AsyCutNLocMax2) ; | |
3082 | ||
3083 | fhM02AsyCutNLocMaxN = new TH2F("hM02AsyCutNLocMaxN","#lambda_{0}^{2} of NLM>2 vs cluster Energy, AsyCut, no TM", | |
3084 | nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); | |
3085 | fhM02AsyCutNLocMaxN->SetYTitle("#lambda_{0}^{2}"); | |
3086 | fhM02AsyCutNLocMaxN->SetXTitle("E (GeV)"); | |
3087 | outputContainer->Add(fhM02AsyCutNLocMaxN) ; | |
3088 | } | |
aa12888f | 3089 | } |
3090 | ||
1253480f | 3091 | if(asyOn || m02On) |
3092 | { | |
3093 | fhMassAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3094 | Form("Mass vs E, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()), | |
3095 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3096 | fhMassAfterCutsNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3097 | fhMassAfterCutsNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3098 | outputContainer->Add(fhMassAfterCutsNLocMax1[i][j]) ; | |
3099 | ||
3100 | fhMassAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3101 | Form("Mass vs E, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()), | |
3102 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3103 | fhMassAfterCutsNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3104 | fhMassAfterCutsNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3105 | outputContainer->Add(fhMassAfterCutsNLocMax2[i][j]) ; | |
3106 | ||
3107 | ||
3108 | fhMassAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3109 | Form("Mass vs E, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()), | |
3110 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3111 | fhMassAfterCutsNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3112 | fhMassAfterCutsNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3113 | outputContainer->Add(fhMassAfterCutsNLocMaxN[i][j]) ; | |
3114 | ||
3115 | fhSplitEFractionAfterCutsNLocMax1[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3116 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 1, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3117 | nptbins,ptmin,ptmax,120,0,1.2); | |
3118 | fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
3119 | fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3120 | outputContainer->Add(fhSplitEFractionAfterCutsNLocMax1[i][j]) ; | |
3121 | ||
3122 | fhSplitEFractionAfterCutsNLocMax2[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3123 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3124 | nptbins,ptmin,ptmax,120,0,1.2); | |
3125 | fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
3126 | fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3127 | outputContainer->Add(fhSplitEFractionAfterCutsNLocMax2[i][j]) ; | |
3128 | ||
3129 | fhSplitEFractionAfterCutsNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3130 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max > 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3131 | nptbins,ptmin,ptmax,120,0,1.2); | |
3132 | fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
3133 | fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3134 | outputContainer->Add(fhSplitEFractionAfterCutsNLocMaxN[i][j]) ; | |
3135 | } | |
5c46c992 | 3136 | |
0137016b | 3137 | fhMassM02NLocMax1[i][j] = new TH2F(Form("hMassM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
c8710850 | 3138 | Form("Invariant mass of splitted cluster with NLM=1, #lambda_{0}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()), |
0137016b | 3139 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3140 | fhMassM02NLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3141 | fhMassM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}"); | |
3142 | outputContainer->Add(fhMassM02NLocMax1[i][j]) ; | |
3143 | ||
3144 | fhMassM02NLocMax2[i][j] = new TH2F(Form("hMassM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3145 | Form("Invariant mass of splitted cluster with NLM=2, #lambda_{0}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()), |
0137016b | 3146 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3147 | fhMassM02NLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3148 | fhMassM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}"); | |
3149 | outputContainer->Add(fhMassM02NLocMax2[i][j]) ; | |
3150 | ||
3151 | fhMassM02NLocMaxN[i][j] = new TH2F(Form("hMassM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2a77f6f4 | 3152 | Form("Invariant mass of splitted cluster with NLM>2, vs #lambda_{0}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()), |
0137016b | 3153 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3154 | fhMassM02NLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3155 | fhMassM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}"); | |
3156 | outputContainer->Add(fhMassM02NLocMaxN[i][j]) ; | |
3157 | ||
8e81c2cf | 3158 | if(fFillSSExtraHisto) |
3159 | { | |
3160 | fhMassDispEtaNLocMax1[i][j] = new TH2F(Form("hMassDispEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3161 | Form("Invariant mass of splitted cluster with NLM=1, #sigma_{#eta #eta}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3162 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3163 | fhMassDispEtaNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3164 | fhMassDispEtaNLocMax1[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
3165 | outputContainer->Add(fhMassDispEtaNLocMax1[i][j]) ; | |
3166 | ||
3167 | fhMassDispEtaNLocMax2[i][j] = new TH2F(Form("hMassDispEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3168 | Form("Invariant mass of splitted cluster with NLM=2 #sigma_{#eta #eta}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3169 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3170 | fhMassDispEtaNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3171 | fhMassDispEtaNLocMax2[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
3172 | outputContainer->Add(fhMassDispEtaNLocMax2[i][j]) ; | |
3173 | ||
3174 | fhMassDispEtaNLocMaxN[i][j] = new TH2F(Form("hMassDispEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2a77f6f4 | 3175 | Form("Invariant mass of splitted cluster with NLM>2, #sigma_{#eta #eta}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3176 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3177 | fhMassDispEtaNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3178 | fhMassDispEtaNLocMaxN[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
3179 | outputContainer->Add(fhMassDispEtaNLocMaxN[i][j]) ; | |
3180 | ||
3181 | fhMassDispPhiNLocMax1[i][j] = new TH2F(Form("hMassDispPhiNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3182 | Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3183 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3184 | fhMassDispPhiNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3185 | fhMassDispPhiNLocMax1[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
3186 | outputContainer->Add(fhMassDispPhiNLocMax1[i][j]) ; | |
3187 | ||
3188 | fhMassDispPhiNLocMax2[i][j] = new TH2F(Form("hMassDispPhiNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3189 | Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3190 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3191 | fhMassDispPhiNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3192 | fhMassDispPhiNLocMax2[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
3193 | outputContainer->Add(fhMassDispPhiNLocMax2[i][j]) ; | |
3194 | ||
3195 | fhMassDispPhiNLocMaxN[i][j] = new TH2F(Form("hMassDispPhiNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3196 | Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3197 | ssbins,ssmin,ssmax,mbins,mmin,mmax); | |
3198 | fhMassDispPhiNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3199 | fhMassDispPhiNLocMaxN[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
3200 | outputContainer->Add(fhMassDispPhiNLocMaxN[i][j]) ; | |
3201 | ||
3202 | fhMassDispAsyNLocMax1[i][j] = new TH2F(Form("hMassDispAsyNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3203 | 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 | 3204 | 200,-1,1,mbins,mmin,mmax); |
3205 | fhMassDispAsyNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3206 | fhMassDispAsyNLocMax1[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
3207 | outputContainer->Add(fhMassDispAsyNLocMax1[i][j]) ; | |
3208 | ||
3209 | fhMassDispAsyNLocMax2[i][j] = new TH2F(Form("hMassDispAsyNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3210 | 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 | 3211 | 200,-1,1,mbins,mmin,mmax); |
3212 | fhMassDispAsyNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3213 | fhMassDispAsyNLocMax2[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
3214 | outputContainer->Add(fhMassDispAsyNLocMax2[i][j]) ; | |
3215 | ||
3216 | fhMassDispAsyNLocMaxN[i][j] = new TH2F(Form("hMassDispAsyNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3217 | 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()), | |
3218 | 200,-1,1,mbins,mmin,mmax); | |
3219 | fhMassDispAsyNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3220 | fhMassDispAsyNLocMaxN[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
3221 | outputContainer->Add(fhMassDispAsyNLocMaxN[i][j]) ; | |
3222 | } | |
d2655d46 | 3223 | |
fc01318e | 3224 | |
b2e375c7 | 3225 | if(i > 0 && fFillMCHisto) // skip first entry in array, general case not filled |
883411b2 | 3226 | { |
3227 | fhMCGenFracNLocMax1[i][j] = new TH2F(Form("hMCGenFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3228 | Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3229 | nptbins,ptmin,ptmax,200,0,2); | |
fb51265c | 3230 | fhMCGenFracNLocMax1[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
883411b2 | 3231 | fhMCGenFracNLocMax1[i][j] ->SetXTitle("E (GeV)"); |
3232 | outputContainer->Add(fhMCGenFracNLocMax1[i][j]) ; | |
3233 | ||
3234 | fhMCGenFracNLocMax2[i][j] = new TH2F(Form("hMCGenFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3235 | Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3236 | nptbins,ptmin,ptmax,200,0,2); | |
fb51265c | 3237 | fhMCGenFracNLocMax2[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
883411b2 | 3238 | fhMCGenFracNLocMax2[i][j] ->SetXTitle("E (GeV)"); |
3239 | outputContainer->Add(fhMCGenFracNLocMax2[i][j]) ; | |
3240 | ||
883411b2 | 3241 | fhMCGenFracNLocMaxN[i][j] = new TH2F(Form("hMCGenFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
3242 | Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3243 | nptbins,ptmin,ptmax,200,0,2); | |
fb51265c | 3244 | fhMCGenFracNLocMaxN[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
883411b2 | 3245 | fhMCGenFracNLocMaxN[i][j] ->SetXTitle("E (GeV)"); |
3246 | outputContainer->Add(fhMCGenFracNLocMaxN[i][j]) ; | |
4914e781 | 3247 | |
3248 | fhMCGenFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3249 | Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3250 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3251 | fhMCGenFracNLocMax1NoOverlap[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
3252 | fhMCGenFracNLocMax1NoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3253 | outputContainer->Add(fhMCGenFracNLocMax1NoOverlap[i][j]) ; | |
3254 | ||
3255 | fhMCGenFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3256 | Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3257 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3258 | fhMCGenFracNLocMax2NoOverlap[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
3259 | fhMCGenFracNLocMax2NoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3260 | outputContainer->Add(fhMCGenFracNLocMax2NoOverlap[i][j]) ; | |
3261 | ||
3262 | fhMCGenFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3263 | Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3264 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3265 | fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
3266 | fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3267 | outputContainer->Add(fhMCGenFracNLocMaxNNoOverlap[i][j]) ; | |
1253480f | 3268 | |
4914e781 | 3269 | |
5094c724 | 3270 | fhMCGenSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3271 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3272 | nptbins,ptmin,ptmax,200,0,2); | |
5094c724 | 3273 | fhMCGenSplitEFracNLocMax1[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3274 | fhMCGenSplitEFracNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3275 | outputContainer->Add(fhMCGenSplitEFracNLocMax1[i][j]) ; | |
3276 | ||
3277 | fhMCGenSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3278 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3279 | nptbins,ptmin,ptmax,200,0,2); | |
5094c724 | 3280 | fhMCGenSplitEFracNLocMax2[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3281 | fhMCGenSplitEFracNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3282 | outputContainer->Add(fhMCGenSplitEFracNLocMax2[i][j]) ; | |
3283 | ||
5094c724 | 3284 | fhMCGenSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3285 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3286 | nptbins,ptmin,ptmax,200,0,2); | |
5094c724 | 3287 | fhMCGenSplitEFracNLocMaxN[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3288 | fhMCGenSplitEFracNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3289 | outputContainer->Add(fhMCGenSplitEFracNLocMaxN[i][j]) ; | |
1253480f | 3290 | |
4914e781 | 3291 | fhMCGenSplitEFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3292 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3293 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3294 | fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3295 | fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3296 | outputContainer->Add(fhMCGenSplitEFracNLocMax1NoOverlap[i][j]) ; | |
3297 | ||
3298 | fhMCGenSplitEFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3299 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3300 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3301 | fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3302 | fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3303 | outputContainer->Add(fhMCGenSplitEFracNLocMax2NoOverlap[i][j]) ; | |
3304 | ||
3305 | fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3306 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3307 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3308 | fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3309 | fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3310 | outputContainer->Add(fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]) ; | |
3311 | ||
bb2d339b | 3312 | fhMCGenEFracvsSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3313 | Form("(E_{1 split}+E_{2 split})/E_{reco} vs E_{gen} / E_{reco} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3314 | 200,0,2,200,0,2); | |
bb2d339b | 3315 | fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetYTitle("(E_{1 split}+E_{2 split})/E_{reco}"); |
3316 | fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetXTitle("E_{gen} / E_{reco}"); | |
3317 | outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax1[i][j]) ; | |
3318 | ||
3319 | fhMCGenEFracvsSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3320 | Form("(E_{1 split}+E_{2 split})/E_{reco} vs E_{gen} / E_{reco} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3321 | 200,0,2,200,0,2); | |
bb2d339b | 3322 | fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetYTitle("(E_{1 split}+E_{2 split})/E_{reco}"); |
3323 | fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetXTitle("E_{gen} / E_{reco}"); | |
3324 | outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax2[i][j]) ; | |
3325 | ||
3326 | ||
3327 | fhMCGenEFracvsSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3328 | Form("(E_{1 split}+E_{2 split})/E_{reco} vs E_{gen} / E_{reco} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3329 | 200,0,2,200,0,2); | |
bb2d339b | 3330 | fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetYTitle("(E_{1 split}+E_{2 split})/E_{reco}"); |
3331 | fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetXTitle("E_{gen} / E_{reco}"); | |
3332 | outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMaxN[i][j]) ; | |
3333 | ||
3334 | ||
3335 | fhMCGenEvsSplitENLocMax1[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3336 | Form("E_{1 split}+E_{2 split} vs E_{gen} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3337 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
bb2d339b | 3338 | fhMCGenEvsSplitENLocMax1[i][j] ->SetYTitle("E_{1 split}+E_{2 split} (GeV)"); |
3339 | fhMCGenEvsSplitENLocMax1[i][j] ->SetXTitle("E_{gen} (GeV)"); | |
3340 | outputContainer->Add(fhMCGenEvsSplitENLocMax1[i][j]) ; | |
3341 | ||
3342 | fhMCGenEvsSplitENLocMax2[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3343 | Form("E_{1 split}+E_{2 split} vs E_{gen} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3344 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
bb2d339b | 3345 | fhMCGenEvsSplitENLocMax2[i][j] ->SetYTitle("E_{1 split}+E_{2 split} (GeV)"); |
3346 | fhMCGenEvsSplitENLocMax2[i][j] ->SetXTitle("E_{gen} (GeV)"); | |
3347 | outputContainer->Add(fhMCGenEvsSplitENLocMax2[i][j]) ; | |
3348 | ||
3349 | ||
3350 | fhMCGenEvsSplitENLocMaxN[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3351 | Form("E_{1 split}+E_{2 split} vs E_{gen} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3352 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
bb2d339b | 3353 | fhMCGenEvsSplitENLocMaxN[i][j] ->SetYTitle("E_{1 split}+E_{2 split} (GeV)"); |
3354 | fhMCGenEvsSplitENLocMaxN[i][j] ->SetXTitle("E_{gen} (GeV)"); | |
3355 | outputContainer->Add(fhMCGenEvsSplitENLocMaxN[i][j]) ; | |
883411b2 | 3356 | } |
ce49dd72 | 3357 | |
1253480f | 3358 | // Histograms after cluster identification |
17f5b4b6 | 3359 | |
17f5b4b6 | 3360 | |
1253480f | 3361 | // Pi0 // |
17f5b4b6 | 3362 | |
c8710850 | 3363 | fhM02Pi0NLocMax1[i][j] = new TH2F(Form("hM02Pi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3364 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()), |
3365 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
c8710850 | 3366 | fhM02Pi0NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
3367 | fhM02Pi0NLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
17f5b4b6 | 3368 | outputContainer->Add(fhM02Pi0NLocMax1[i][j]) ; |
5c46c992 | 3369 | |
c8710850 | 3370 | fhM02Pi0NLocMax2[i][j] = new TH2F(Form("hM02Pi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3371 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()), |
3372 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
c8710850 | 3373 | fhM02Pi0NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
3374 | fhM02Pi0NLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3375 | outputContainer->Add(fhM02Pi0NLocMax2[i][j]) ; | |
5c46c992 | 3376 | |
c8710850 | 3377 | fhM02Pi0NLocMaxN[i][j] = new TH2F(Form("hM02Pi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3378 | Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()), |
3379 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
c8710850 | 3380 | fhM02Pi0NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
3381 | fhM02Pi0NLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3382 | outputContainer->Add(fhM02Pi0NLocMaxN[i][j]) ; | |
5c46c992 | 3383 | |
c8710850 | 3384 | fhMassPi0NLocMax1[i][j] = new TH2F(Form("hMassPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3385 | Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()), |
3386 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
74858845 | 3387 | fhMassPi0NLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); |
c8710850 | 3388 | fhMassPi0NLocMax1[i][j] ->SetXTitle("E (GeV)"); |
3389 | outputContainer->Add(fhMassPi0NLocMax1[i][j]) ; | |
bb2d339b | 3390 | |
c8710850 | 3391 | fhMassPi0NLocMax2[i][j] = new TH2F(Form("hMassPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3392 | Form("Mass vs E , %s, for NLM = 2",ptype[i].Data()), |
3393 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
74858845 | 3394 | fhMassPi0NLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); |
c8710850 | 3395 | fhMassPi0NLocMax2[i][j] ->SetXTitle("E (GeV)"); |
3396 | outputContainer->Add(fhMassPi0NLocMax2[i][j]) ; | |
bb2d339b | 3397 | |
c8710850 | 3398 | fhMassPi0NLocMaxN[i][j] = new TH2F(Form("hMassPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3399 | Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()), |
3400 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
74858845 | 3401 | fhMassPi0NLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); |
c8710850 | 3402 | fhMassPi0NLocMaxN[i][j] ->SetXTitle("E (GeV)"); |
3403 | outputContainer->Add(fhMassPi0NLocMaxN[i][j]) ; | |
bb2d339b | 3404 | |
c8710850 | 3405 | fhAsyPi0NLocMax1[i][j] = new TH2F(Form("hAsyPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3406 | Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()), |
e671adc2 | 3407 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
c8710850 | 3408 | fhAsyPi0NLocMax1[i][j] ->SetYTitle("Asymmetry"); |
3409 | fhAsyPi0NLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3410 | outputContainer->Add(fhAsyPi0NLocMax1[i][j]) ; | |
e671adc2 | 3411 | |
c8710850 | 3412 | fhAsyPi0NLocMax2[i][j] = new TH2F(Form("hAsyPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3413 | Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()), |
e671adc2 | 3414 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
c8710850 | 3415 | fhAsyPi0NLocMax2[i][j] ->SetYTitle("Asymmetry"); |
3416 | fhAsyPi0NLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3417 | outputContainer->Add(fhAsyPi0NLocMax2[i][j]) ; | |
e671adc2 | 3418 | |
c8710850 | 3419 | fhAsyPi0NLocMaxN[i][j] = new TH2F(Form("hAsyPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3420 | Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()), |
e671adc2 | 3421 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
c8710850 | 3422 | fhAsyPi0NLocMaxN[i][j] ->SetYTitle("Asymmetry"); |
3423 | fhAsyPi0NLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3424 | outputContainer->Add(fhAsyPi0NLocMaxN[i][j]) ; | |
e671adc2 | 3425 | |
1253480f | 3426 | if(fFillNCellHisto) |
3427 | { | |
3428 | fhNCellPi0NLocMax1[i][j] = new TH2F(Form("hNCellPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3429 | Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()), | |
3430 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3431 | fhNCellPi0NLocMax1[i][j] ->SetYTitle("n cells"); | |
3432 | fhNCellPi0NLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3433 | outputContainer->Add(fhNCellPi0NLocMax1[i][j]) ; | |
3434 | ||
3435 | fhNCellPi0NLocMax2[i][j] = new TH2F(Form("hNCellPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3436 | Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()), | |
3437 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3438 | fhNCellPi0NLocMax2[i][j] ->SetYTitle("n cells"); | |
3439 | fhNCellPi0NLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3440 | outputContainer->Add(fhNCellPi0NLocMax2[i][j]) ; | |
3441 | ||
3442 | fhNCellPi0NLocMaxN[i][j] = new TH2F(Form("hNCellPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3443 | Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()), | |
3444 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3445 | fhNCellPi0NLocMaxN[i][j] ->SetYTitle("n cells"); | |
3446 | fhNCellPi0NLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3447 | outputContainer->Add(fhNCellPi0NLocMaxN[i][j]) ; | |
3448 | } | |
3449 | ||
3450 | // Eta | |
3451 | ||
3452 | if(fFillIdEtaHisto) | |
3453 | { | |
3454 | fhM02EtaNLocMax1[i][j] = new TH2F(Form("hM02EtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3455 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()), | |
3456 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3457 | fhM02EtaNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3458 | fhM02EtaNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3459 | outputContainer->Add(fhM02EtaNLocMax1[i][j]) ; | |
3460 | ||
3461 | ||
3462 | fhM02EtaNLocMax2[i][j] = new TH2F(Form("hM02EtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3463 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()), | |
3464 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3465 | fhM02EtaNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3466 | fhM02EtaNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3467 | outputContainer->Add(fhM02EtaNLocMax2[i][j]) ; | |
3468 | ||
3469 | fhM02EtaNLocMaxN[i][j] = new TH2F(Form("hM02EtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3470 | Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()), | |
3471 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3472 | fhM02EtaNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3473 | fhM02EtaNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3474 | outputContainer->Add(fhM02EtaNLocMaxN[i][j]) ; | |
3475 | ||
3476 | fhMassEtaNLocMax1[i][j] = new TH2F(Form("hMassEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3477 | Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()), | |
3478 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3479 | fhMassEtaNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3480 | fhMassEtaNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3481 | outputContainer->Add(fhMassEtaNLocMax1[i][j]) ; | |
3482 | ||
3483 | fhMassEtaNLocMax2[i][j] = new TH2F(Form("hMassEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3484 | Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()), | |
3485 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3486 | fhMassEtaNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3487 | fhMassEtaNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3488 | outputContainer->Add(fhMassEtaNLocMax2[i][j]) ; | |
3489 | ||
3490 | fhMassEtaNLocMaxN[i][j] = new TH2F(Form("hMassEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3491 | Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()), | |
3492 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3493 | fhMassEtaNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3494 | fhMassEtaNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3495 | outputContainer->Add(fhMassEtaNLocMaxN[i][j]) ; | |
3496 | ||
3497 | fhAsyEtaNLocMax1[i][j] = new TH2F(Form("hAsyEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3498 | Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()), | |
3499 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3500 | fhAsyEtaNLocMax1[i][j] ->SetYTitle("Asymmetry"); | |
3501 | fhAsyEtaNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3502 | outputContainer->Add(fhAsyEtaNLocMax1[i][j]) ; | |
3503 | ||
3504 | fhAsyEtaNLocMax2[i][j] = new TH2F(Form("hAsyEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3505 | Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()), | |
3506 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3507 | fhAsyEtaNLocMax2[i][j] ->SetYTitle("Asymmetry"); | |
3508 | fhAsyEtaNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3509 | outputContainer->Add(fhAsyEtaNLocMax2[i][j]) ; | |
3510 | ||
3511 | fhAsyEtaNLocMaxN[i][j] = new TH2F(Form("hAsyEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3512 | Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()), | |
3513 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3514 | fhAsyEtaNLocMaxN[i][j] ->SetYTitle("Asymmetry"); | |
3515 | fhAsyEtaNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3516 | outputContainer->Add(fhAsyEtaNLocMaxN[i][j]) ; | |
3517 | ||
3518 | if(fFillNCellHisto) | |
3519 | { | |
3520 | fhNCellEtaNLocMax1[i][j] = new TH2F(Form("hNCellEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3521 | Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()), | |
3522 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3523 | fhNCellEtaNLocMax1[i][j] ->SetYTitle("n cells"); | |
3524 | fhNCellEtaNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3525 | outputContainer->Add(fhNCellEtaNLocMax1[i][j]) ; | |
3526 | ||
3527 | fhNCellEtaNLocMax2[i][j] = new TH2F(Form("hNCellEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3528 | Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()), | |
3529 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3530 | fhNCellEtaNLocMax2[i][j] ->SetYTitle("n cells"); | |
3531 | fhNCellEtaNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3532 | outputContainer->Add(fhNCellEtaNLocMax2[i][j]) ; | |
3533 | ||
3534 | fhNCellEtaNLocMaxN[i][j] = new TH2F(Form("hNCellEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3535 | Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()), | |
3536 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3537 | fhNCellEtaNLocMaxN[i][j] ->SetYTitle("n cells"); | |
3538 | fhNCellEtaNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3539 | outputContainer->Add(fhNCellEtaNLocMaxN[i][j]) ; | |
3540 | ||
3541 | } | |
3542 | } | |
3543 | ||
3544 | if(fFillIdConvHisto) | |
3545 | { | |
3546 | fhM02ConNLocMax1[i][j] = new TH2F(Form("hM02ConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3547 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()), | |
3548 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3549 | fhM02ConNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3550 | fhM02ConNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3551 | outputContainer->Add(fhM02ConNLocMax1[i][j]) ; | |
3552 | ||
3553 | fhM02ConNLocMax2[i][j] = new TH2F(Form("hM02ConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3554 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()), | |
3555 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3556 | fhM02ConNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3557 | fhM02ConNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3558 | outputContainer->Add(fhM02ConNLocMax2[i][j]) ; | |
3559 | ||
3560 | fhM02ConNLocMaxN[i][j] = new TH2F(Form("hM02ConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3561 | Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()), | |
3562 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3563 | fhM02ConNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3564 | fhM02ConNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3565 | outputContainer->Add(fhM02ConNLocMaxN[i][j]) ; | |
3566 | ||
3567 | ||
3568 | fhMassConNLocMax1[i][j] = new TH2F(Form("hMassConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3569 | Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()), | |
3570 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3571 | fhMassConNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3572 | fhMassConNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3573 | outputContainer->Add(fhMassConNLocMax1[i][j]) ; | |
3574 | ||
3575 | fhMassConNLocMax2[i][j] = new TH2F(Form("hMassConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3576 | Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()), | |
3577 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3578 | fhMassConNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3579 | fhMassConNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3580 | outputContainer->Add(fhMassConNLocMax2[i][j]) ; | |
3581 | ||
3582 | fhMassConNLocMaxN[i][j] = new TH2F(Form("hMassConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3583 | Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()), | |
3584 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3585 | fhMassConNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3586 | fhMassConNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3587 | outputContainer->Add(fhMassConNLocMaxN[i][j]) ; | |
3588 | ||
3589 | fhAsyConNLocMax1[i][j] = new TH2F(Form("hAsyConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3590 | Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()), | |
3591 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3592 | fhAsyConNLocMax1[i][j] ->SetYTitle("Asymmetry"); | |
3593 | fhAsyConNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3594 | outputContainer->Add(fhAsyConNLocMax1[i][j]) ; | |
3595 | ||
3596 | fhAsyConNLocMax2[i][j] = new TH2F(Form("hAsyConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3597 | Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()), | |
3598 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3599 | fhAsyConNLocMax2[i][j] ->SetYTitle("Asymmetry"); | |
3600 | fhAsyConNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3601 | outputContainer->Add(fhAsyConNLocMax2[i][j]) ; | |
3602 | ||
3603 | fhAsyConNLocMaxN[i][j] = new TH2F(Form("hAsyConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3604 | Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()), | |
3605 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3606 | fhAsyConNLocMaxN[i][j] ->SetYTitle("Asymmetry"); | |
3607 | fhAsyConNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3608 | outputContainer->Add(fhAsyConNLocMaxN[i][j]) ; | |
3609 | ||
3610 | } | |
e671adc2 | 3611 | |
5c46c992 | 3612 | } // matched, not matched |
3613 | ||
19391b8c | 3614 | if(fFillEbinHisto) |
3615 | { | |
883411b2 | 3616 | for(Int_t j = 0; j < 4; j++) |
19391b8c | 3617 | { |
53f2c382 | 3618 | |
fc01318e | 3619 | fhMassSplitEFractionNLocMax1Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax1%sEbin%d",pname[i].Data(),j), |
be894c1d | 3620 | Form("Invariant mass of 2 highest energy cells vs (E1+E2)/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3621 | 120,0,1.2,mbins,mmin,mmax); |
fc01318e | 3622 | fhMassSplitEFractionNLocMax1Ebin[i][j]->SetYTitle("M (GeV/c^{2})"); |
3623 | fhMassSplitEFractionNLocMax1Ebin[i][j]->SetXTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
19391b8c | 3624 | outputContainer->Add(fhMassSplitEFractionNLocMax1Ebin[i][j]) ; |
883411b2 | 3625 | |
fc01318e | 3626 | fhMassSplitEFractionNLocMax2Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax2%sEbin%d",pname[i].Data(),j), |
be894c1d | 3627 | Form("Invariant mass of 2 local maxima cells vs (E1+E2)/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3628 | 120,0,1.2,mbins,mmin,mmax); |
fc01318e | 3629 | fhMassSplitEFractionNLocMax2Ebin[i][j]->SetYTitle("M (GeV/c^{2})"); |
3630 | fhMassSplitEFractionNLocMax2Ebin[i][j]->SetXTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
19391b8c | 3631 | outputContainer->Add(fhMassSplitEFractionNLocMax2Ebin[i][j]) ; |
883411b2 | 3632 | |
fc01318e | 3633 | fhMassSplitEFractionNLocMaxNEbin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMaxN%sEbin%d",pname[i].Data(),j), |
be894c1d | 3634 | Form("Invariant mass of N>2 local maxima cells vs (E1+E2)/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3635 | 120,0,1.2,mbins,mmin,mmax); |
fc01318e | 3636 | fhMassSplitEFractionNLocMaxNEbin[i][j]->SetYTitle("M (GeV/c^{2})"); |
3637 | fhMassSplitEFractionNLocMaxNEbin[i][j]->SetXTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
19391b8c | 3638 | outputContainer->Add(fhMassSplitEFractionNLocMaxNEbin[i][j]) ; |
883411b2 | 3639 | |
b2e375c7 | 3640 | if(i>0 && fFillMCHisto) // skip first entry in array, general case not filled |
fc01318e | 3641 | { |
3642 | fhMCGenFracNLocMaxEbin[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3643 | Form("NLM vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3644 | 200,0,2,nMaxBins,0,nMaxBins); |
fc01318e | 3645 | fhMCGenFracNLocMaxEbin[i][j]->SetYTitle("NLM"); |
fb51265c | 3646 | fhMCGenFracNLocMaxEbin[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3647 | outputContainer->Add(fhMCGenFracNLocMaxEbin[i][j]) ; |
fc01318e | 3648 | |
3649 | fhMCGenFracNLocMaxEbinMatched[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%dMatched",pname[i].Data(),j), | |
be894c1d | 3650 | Form("NLM vs E, %s, %s, matched to a track",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3651 | 200,0,2,nMaxBins,0,nMaxBins); |
fc01318e | 3652 | fhMCGenFracNLocMaxEbinMatched[i][j]->SetYTitle("NLM"); |
fb51265c | 3653 | fhMCGenFracNLocMaxEbinMatched[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3654 | outputContainer->Add(fhMCGenFracNLocMaxEbinMatched[i][j]) ; |
fc01318e | 3655 | |
3656 | fhMassMCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax1%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3657 | Form("Invariant mass of 2 highest energy cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3658 | 200,0,2,mbins,mmin,mmax); |
fc01318e | 3659 | fhMassMCGenFracNLocMax1Ebin[i][j]->SetYTitle("M (GeV/c^{2})"); |
fb51265c | 3660 | fhMassMCGenFracNLocMax1Ebin[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3661 | outputContainer->Add(fhMassMCGenFracNLocMax1Ebin[i][j]) ; |
fc01318e | 3662 | |
3663 | fhMassMCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax2%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3664 | Form("Invariant mass of 2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3665 | 200,0,2,mbins,mmin,mmax); |
fc01318e | 3666 | fhMassMCGenFracNLocMax2Ebin[i][j]->SetYTitle("M (GeV/c^{2})"); |
fb51265c | 3667 | fhMassMCGenFracNLocMax2Ebin[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3668 | outputContainer->Add(fhMassMCGenFracNLocMax2Ebin[i][j]) ; |
fc01318e | 3669 | |
3670 | fhMassMCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hMassMCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3671 | Form("Invariant mass of N>2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3672 | 200,0,2,mbins,mmin,mmax); |
fc01318e | 3673 | fhMassMCGenFracNLocMaxNEbin[i][j]->SetYTitle("M (GeV/c^{2})"); |
fb51265c | 3674 | fhMassMCGenFracNLocMaxNEbin[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3675 | outputContainer->Add(fhMassMCGenFracNLocMaxNEbin[i][j]) ; |
fc01318e | 3676 | |
3677 | fhM02MCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax1%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3678 | Form("#lambda_{0}^{2} vs E for N max = 1 %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3679 | 200,0,2,ssbins,ssmin,ssmax); |
fc01318e | 3680 | fhM02MCGenFracNLocMax1Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
fb51265c | 3681 | fhM02MCGenFracNLocMax1Ebin[i][j] ->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3682 | outputContainer->Add(fhM02MCGenFracNLocMax1Ebin[i][j]) ; |
fc01318e | 3683 | |
3684 | fhM02MCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax2%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3685 | Form("#lambda_{0}^{2} vs E for N max = 2 %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3686 | 200,0,2,ssbins,ssmin,ssmax); |
fc01318e | 3687 | fhM02MCGenFracNLocMax2Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
fb51265c | 3688 | fhM02MCGenFracNLocMax2Ebin[i][j] ->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3689 | outputContainer->Add(fhM02MCGenFracNLocMax2Ebin[i][j]) ; |
fc01318e | 3690 | |
3691 | fhM02MCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hM02MCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3692 | Form("#lambda_{0}^{2} vs E for N max > 2 %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3693 | 200,0,2,ssbins,ssmin,ssmax); |
fc01318e | 3694 | fhM02MCGenFracNLocMaxNEbin[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
fb51265c | 3695 | fhM02MCGenFracNLocMaxNEbin[i][j] ->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3696 | outputContainer->Add(fhM02MCGenFracNLocMaxNEbin[i][j]) ; |
fc01318e | 3697 | } |
883411b2 | 3698 | } |
19391b8c | 3699 | } |
5c46c992 | 3700 | } // MC particle list |
1253480f | 3701 | |
3702 | if(fFillHighMultHisto) | |
3703 | { | |
3704 | // E vs centrality | |
3705 | ||
3706 | fhCentralityPi0NLocMax1 = new TH2F("hCentralityPi0NLocMax1", | |
3707 | "E vs Centrality, selected pi0 cluster with NLM=1", | |
3708 | nptbins,ptmin,ptmax,100,0,100); | |
3709 | fhCentralityPi0NLocMax1->SetYTitle("Centrality"); | |
3710 | fhCentralityPi0NLocMax1->SetXTitle("E (GeV)"); | |
3711 | outputContainer->Add(fhCentralityPi0NLocMax1) ; | |
3712 | ||
3713 | fhCentralityPi0NLocMax2 = new TH2F("hCentralityPi0NLocMax2", | |
3714 | "E vs Centrality, selected pi0 cluster with NLM=2", | |
3715 | nptbins,ptmin,ptmax,100,0,100); | |
3716 | fhCentralityPi0NLocMax2->SetYTitle("Centrality"); | |
3717 | fhCentralityPi0NLocMax2->SetXTitle("E (GeV)"); | |
3718 | outputContainer->Add(fhCentralityPi0NLocMax2) ; | |
3719 | ||
3720 | fhCentralityPi0NLocMaxN = new TH2F("hCentralityPi0NLocMaxN", | |
3721 | "E vs Centrality, selected pi0 cluster with NLM>1", | |
3722 | nptbins,ptmin,ptmax,100,0,100); | |
3723 | fhCentralityPi0NLocMaxN->SetYTitle("Centrality"); | |
3724 | fhCentralityPi0NLocMaxN->SetXTitle("E (GeV)"); | |
3725 | outputContainer->Add(fhCentralityPi0NLocMaxN) ; | |
3726 | ||
3727 | if(fFillIdEtaHisto) | |
3728 | { | |
3729 | fhCentralityEtaNLocMax1 = new TH2F("hCentralityEtaNLocMax1", | |
3730 | "E vs Centrality, selected pi0 cluster with NLM=1", | |
3731 | nptbins,ptmin,ptmax,100,0,100); | |
3732 | fhCentralityEtaNLocMax1->SetYTitle("Centrality"); | |
3733 | fhCentralityEtaNLocMax1->SetXTitle("E (GeV)"); | |
3734 | outputContainer->Add(fhCentralityEtaNLocMax1) ; | |
3735 | ||
3736 | fhCentralityEtaNLocMax2 = new TH2F("hCentralityEtaNLocMax2", | |
3737 | "E vs Centrality, selected pi0 cluster with NLM=2", | |
3738 | nptbins,ptmin,ptmax,100,0,100); | |
3739 | fhCentralityEtaNLocMax2->SetYTitle("Centrality"); | |
3740 | fhCentralityEtaNLocMax2->SetXTitle("E (GeV)"); | |
3741 | outputContainer->Add(fhCentralityEtaNLocMax2) ; | |
3742 | ||
3743 | fhCentralityEtaNLocMaxN = new TH2F("hCentralityEtaNLocMaxN", | |
3744 | "E vs Centrality, selected pi0 cluster with NLM>1", | |
3745 | nptbins,ptmin,ptmax,100,0,100); | |
3746 | fhCentralityEtaNLocMaxN->SetYTitle("Centrality"); | |
3747 | fhCentralityEtaNLocMaxN->SetXTitle("E (GeV)"); | |
3748 | outputContainer->Add(fhCentralityEtaNLocMaxN) ; | |
3749 | } | |
3750 | ||
3751 | // E vs Event plane angle | |
3752 | ||
3753 | fhEventPlanePi0NLocMax1 = new TH2F("hEventPlanePi0NLocMax1","E vs Event Plane Angle, selected pi0 cluster with NLM=1", | |
3754 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
3755 | fhEventPlanePi0NLocMax1->SetYTitle("Event Plane Angle (rad)"); | |
3756 | fhEventPlanePi0NLocMax1->SetXTitle("E (GeV)"); | |
3757 | outputContainer->Add(fhEventPlanePi0NLocMax1) ; | |
3758 | ||
3759 | fhEventPlanePi0NLocMax2 = new TH2F("hEventPlanePi0NLocMax2","E vs Event Plane Angle, selected pi0 cluster with NLM=2", | |
3760 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
3761 | fhEventPlanePi0NLocMax2->SetYTitle("Event Plane Angle (rad)"); | |
3762 | fhEventPlanePi0NLocMax2->SetXTitle("E (GeV)"); | |
3763 | outputContainer->Add(fhEventPlanePi0NLocMax2) ; | |
3764 | ||
3765 | fhEventPlanePi0NLocMaxN = new TH2F("hEventPlanePi0NLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1", | |
3766 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
3767 | fhEventPlanePi0NLocMaxN->SetYTitle("Event Plane Angle (rad)"); | |
3768 | fhEventPlanePi0NLocMaxN->SetXTitle("E (GeV)"); | |
3769 | outputContainer->Add(fhEventPlanePi0NLocMaxN) ; | |
3770 | ||
3771 | if(fFillIdEtaHisto) | |
3772 | { | |
3773 | fhEventPlaneEtaNLocMax1 = new TH2F("hEventPlaneEtaNLocMax1","E vs Event Plane Angle, selected pi0 cluster with NLM=1", | |
3774 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
3775 | fhEventPlaneEtaNLocMax1->SetYTitle("Event Plane Angle (rad)"); | |
3776 | fhEventPlaneEtaNLocMax1->SetXTitle("E (GeV)"); | |
3777 | outputContainer->Add(fhEventPlaneEtaNLocMax1) ; | |
3778 | ||
3779 | fhEventPlaneEtaNLocMax2 = new TH2F("hEventPlaneEtaNLocMax2","E vs Event Plane Angle, selected pi0 cluster with NLM=2", | |
3780 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
3781 | fhEventPlaneEtaNLocMax2->SetYTitle("Event Plane Angle (rad)"); | |
3782 | fhEventPlaneEtaNLocMax2->SetXTitle("E (GeV)"); | |
3783 | outputContainer->Add(fhEventPlaneEtaNLocMax2) ; | |
3784 | ||
3785 | fhEventPlaneEtaNLocMaxN = new TH2F("hEventPlaneEtaNLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1", | |
3786 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
3787 | fhEventPlaneEtaNLocMaxN->SetYTitle("Event Plane Angle (rad)"); | |
3788 | fhEventPlaneEtaNLocMaxN->SetXTitle("E (GeV)"); | |
3789 | outputContainer->Add(fhEventPlaneEtaNLocMaxN) ; | |
3790 | } | |
3791 | } | |
17f5b4b6 | 3792 | |
19391b8c | 3793 | if(fFillEbinHisto) |
3794 | { | |
3795 | for(Int_t i = 0; i < 4; i++) | |
8e81c2cf | 3796 | { |
19391b8c | 3797 | fhMassM02NLocMax1Ebin[i] = new TH2F(Form("hMassM02NLocMax1Ebin%d",i), |
be894c1d | 3798 | Form("Invariant mass of split clusters vs #lambda_{0}^{2}, NLM=1, %s",sEBin[i].Data()), |
19391b8c | 3799 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3800 | fhMassM02NLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3801 | fhMassM02NLocMax1Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
3802 | outputContainer->Add(fhMassM02NLocMax1Ebin[i]) ; | |
3803 | ||
3804 | fhMassM02NLocMax2Ebin[i] = new TH2F(Form("hMassM02NLocMax2Ebin%d",i), | |
be894c1d | 3805 | Form("Invariant mass of split clusters vs #lambda_{0}^{2}, NLM=2, %s",sEBin[i].Data()), |
19391b8c | 3806 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3807 | fhMassM02NLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3808 | fhMassM02NLocMax2Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
3809 | outputContainer->Add(fhMassM02NLocMax2Ebin[i]) ; | |
3810 | ||
3811 | fhMassM02NLocMaxNEbin[i] = new TH2F(Form("hMassM02NLocMaxNEbin%d",i), | |
be894c1d | 3812 | Form("Invariant mass of split clusters vs vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()), |
19391b8c | 3813 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3814 | fhMassM02NLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
3815 | fhMassM02NLocMaxNEbin[i]->SetXTitle("#lambda_{0}^{2}"); | |
3816 | outputContainer->Add(fhMassM02NLocMaxNEbin[i]) ; | |
3817 | ||
3818 | ||
3819 | fhMassAsyNLocMax1Ebin[i] = new TH2F(Form("hMassAsyNLocMax1Ebin%d",i), | |
be894c1d | 3820 | Form("Invariant mass of split clusters vs split asymmetry, NLM=1, %s",sEBin[i].Data()), |
19391b8c | 3821 | 200,-1,1,mbins,mmin,mmax); |
3822 | fhMassAsyNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3823 | fhMassAsyNLocMax1Ebin[i]->SetXTitle("asymmetry"); | |
3824 | outputContainer->Add(fhMassAsyNLocMax1Ebin[i]) ; | |
3825 | ||
3826 | fhMassAsyNLocMax2Ebin[i] = new TH2F(Form("hMassAsyNLocMax2Ebin%d",i), | |
be894c1d | 3827 | Form("Invariant mass of split clusters vs split asymmetry, NLM=2, %s",sEBin[i].Data()), |
19391b8c | 3828 | 200,-1,1,mbins,mmin,mmax); |
3829 | fhMassAsyNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3830 | fhMassAsyNLocMax2Ebin[i]->SetXTitle("asymmetry"); | |
3831 | outputContainer->Add(fhMassAsyNLocMax2Ebin[i]) ; | |
3832 | ||
3833 | fhMassAsyNLocMaxNEbin[i] = new TH2F(Form("hMassAsyNLocMaxNEbin%d",i), | |
be894c1d | 3834 | Form("Invariant mass of split clusters vs split asymmetry, NLM>2, %s",sEBin[i].Data()), |
19391b8c | 3835 | 200,-1,1,mbins,mmin,mmax); |
3836 | fhMassAsyNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
3837 | fhMassAsyNLocMaxNEbin[i]->SetXTitle("asymmetry"); | |
3838 | outputContainer->Add(fhMassAsyNLocMaxNEbin[i]) ; | |
3839 | ||
3840 | ||
b2e375c7 | 3841 | if(IsDataMC() && fFillMCHisto) |
19391b8c | 3842 | { |
3843 | fhMCAsymM02NLocMax1MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax1MCPi0Ebin%d",i), | |
be894c1d | 3844 | Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM=1, %s",sEBin[i].Data()), |
19391b8c | 3845 | ssbins,ssmin,ssmax,100,0,1); |
3846 | fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetYTitle("Decay asymmetry"); | |
3847 | fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
3848 | outputContainer->Add(fhMCAsymM02NLocMax1MCPi0Ebin[i]) ; | |
3849 | ||
3850 | fhMCAsymM02NLocMax2MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax2MCPi0Ebin%d",i), | |
be894c1d | 3851 | Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM=2, %s",sEBin[i].Data()), |
19391b8c | 3852 | ssbins,ssmin,ssmax,100,0,1); |
3853 | fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetYTitle("Decay asymmetry"); | |
3854 | fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
3855 | outputContainer->Add(fhMCAsymM02NLocMax2MCPi0Ebin[i]) ; | |
3856 | ||
3857 | fhMCAsymM02NLocMaxNMCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMaxNMCPi0Ebin%d",i), | |
be894c1d | 3858 | Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()), |
19391b8c | 3859 | ssbins,ssmin,ssmax,100,0,1); |
3860 | fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetYTitle("Decay asymmetry"); | |
3861 | fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
3862 | outputContainer->Add(fhMCAsymM02NLocMaxNMCPi0Ebin[i]) ; | |
3863 | ||
3864 | ||
3865 | fhAsyMCGenRecoNLocMax1EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax1Ebin%dPi0",i), | |
be894c1d | 3866 | Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM=1, %s",sEBin[i].Data()), |
19391b8c | 3867 | 200,-1,1,200,-1,1); |
3868 | fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetYTitle("M (GeV/c^{2})"); | |
3869 | fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetXTitle("asymmetry"); | |
3870 | outputContainer->Add(fhAsyMCGenRecoNLocMax1EbinPi0[i]) ; | |
3871 | ||
3872 | fhAsyMCGenRecoNLocMax2EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax2Ebin%dPi0",i), | |
be894c1d | 3873 | Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM=2, %s",sEBin[i].Data()), |
19391b8c | 3874 | 200,-1,1,200,-1,1); |
3875 | fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetYTitle("M (GeV/c^{2})"); | |
3876 | fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetXTitle("asymmetry"); | |
3877 | outputContainer->Add(fhAsyMCGenRecoNLocMax2EbinPi0[i]) ; | |
3878 | ||
3879 | fhAsyMCGenRecoNLocMaxNEbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMaxNEbin%dPi0",i), | |
be894c1d | 3880 | Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM>2, %s",sEBin[i].Data()), |
19391b8c | 3881 | 200,-1,1,200,-1,1); |
3882 | fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetYTitle("M (GeV/c^{2})"); | |
3883 | fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetXTitle("asymmetry"); | |
3884 | outputContainer->Add(fhAsyMCGenRecoNLocMaxNEbinPi0[i]) ; | |
3885 | } | |
3886 | ||
3887 | if(fFillSSExtraHisto) | |
3888 | { | |
3889 | fhMassDispEtaNLocMax1Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax1Ebin%d",i), | |
be894c1d | 3890 | Form("Invariant mass of 2 highest energy cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()), |
19391b8c | 3891 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3892 | fhMassDispEtaNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3893 | fhMassDispEtaNLocMax1Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
3894 | outputContainer->Add(fhMassDispEtaNLocMax1Ebin[i]) ; | |
3895 | ||
3896 | fhMassDispEtaNLocMax2Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax2Ebin%d",i), | |
be894c1d | 3897 | Form("Invariant mass of 2 local maxima cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()), |
19391b8c | 3898 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3899 | fhMassDispEtaNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3900 | fhMassDispEtaNLocMax2Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
3901 | outputContainer->Add(fhMassDispEtaNLocMax2Ebin[i]) ; | |
3902 | ||
3903 | fhMassDispEtaNLocMaxNEbin[i] = new TH2F(Form("hMassDispEtaNLocMaxNEbin%d",i), | |
be894c1d | 3904 | Form("Invariant mass of N>2 local maxima cells vs #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()), |
19391b8c | 3905 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3906 | fhMassDispEtaNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
3907 | fhMassDispEtaNLocMaxNEbin[i]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
3908 | outputContainer->Add(fhMassDispEtaNLocMaxNEbin[i]) ; | |
3909 | ||
3910 | fhMassDispPhiNLocMax1Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax1Ebin%d",i), | |
be894c1d | 3911 | Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()), |
19391b8c | 3912 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3913 | fhMassDispPhiNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3914 | fhMassDispPhiNLocMax1Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
3915 | outputContainer->Add(fhMassDispPhiNLocMax1Ebin[i]) ; | |
3916 | ||
3917 | fhMassDispPhiNLocMax2Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax2Ebin%d",i), | |
be894c1d | 3918 | Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()), |
19391b8c | 3919 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3920 | fhMassDispPhiNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3921 | fhMassDispPhiNLocMax2Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
3922 | outputContainer->Add(fhMassDispPhiNLocMax2Ebin[i]) ; | |
3923 | ||
3924 | fhMassDispPhiNLocMaxNEbin[i] = new TH2F(Form("hMassDispPhiNLocMaxNEbin%d",i), | |
be894c1d | 3925 | Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()), |
19391b8c | 3926 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3927 | fhMassDispPhiNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
3928 | fhMassDispPhiNLocMaxNEbin[i]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
3929 | outputContainer->Add(fhMassDispPhiNLocMaxNEbin[i]) ; | |
3930 | ||
3931 | fhMassDispAsyNLocMax1Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax1Ebin%d",i), | |
be894c1d | 3932 | 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 | 3933 | 200,-1,1,mbins,mmin,mmax); |
3934 | fhMassDispAsyNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3935 | fhMassDispAsyNLocMax1Ebin[i]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
3936 | outputContainer->Add(fhMassDispAsyNLocMax1Ebin[i]) ; | |
3937 | ||
3938 | fhMassDispAsyNLocMax2Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax2Ebin%d",i), | |
be894c1d | 3939 | 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 | 3940 | 200,-1,1,mbins,mmin,mmax); |
3941 | fhMassDispAsyNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
3942 | fhMassDispAsyNLocMax2Ebin[i]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
3943 | outputContainer->Add(fhMassDispAsyNLocMax2Ebin[i]) ; | |
3944 | ||
3945 | fhMassDispAsyNLocMaxNEbin[i] = new TH2F(Form("hMassDispAsyNLocMaxNEbin%d",i), | |
be894c1d | 3946 | 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 | 3947 | 200,-1,1,mbins,mmin,mmax); |
3948 | fhMassDispAsyNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
3949 | fhMassDispAsyNLocMaxNEbin[i]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
3950 | outputContainer->Add(fhMassDispAsyNLocMaxNEbin[i]) ; | |
3951 | } | |
8e81c2cf | 3952 | } |
19391b8c | 3953 | } |
1253480f | 3954 | |
3955 | if(IsDataMC() && fFillMCHisto && (asyOn || m02On)) | |
c8710850 | 3956 | { |
3957 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax1MCPi0", | |
3958 | "E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 1 MC Pi0, after M02 and Asym cut", | |
3959 | nptbins,ptmin,ptmax,200,0,2); | |
3960 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); | |
3961 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetXTitle("E (GeV)"); | |
3962 | outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax1MCPi0) ; | |
3963 | ||
3964 | fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax2MCPi0", | |
3965 | "E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 2 MC Pi0, after M02 and Asym cut", | |
3966 | nptbins,ptmin,ptmax,200,0,2); | |
3967 | fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); | |
3968 | fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetXTitle("E (GeV)"); | |
3969 | outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax2MCPi0) ; | |
3970 | ||
3971 | ||
3972 | fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMaxNMCPi0", | |
3973 | "E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max > 2 MC Pi0, after M02 and Asym cut", | |
3974 | nptbins,ptmin,ptmax,200,0,2); | |
3975 | fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); | |
3976 | fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("E (GeV)"); | |
3977 | outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0) ; | |
3978 | ||
3979 | fhMCGenFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax1MCPi0", | |
3980 | "E_{gen} / E_{reco} vs E_{reco} for N max = 1 MC Pi0, after M02 and Asym cut", | |
3981 | nptbins,ptmin,ptmax,200,0,2); | |
3982 | fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetYTitle("E_{gen} / E_{reco}"); | |
3983 | fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetXTitle("E (GeV)"); | |
3984 | outputContainer->Add(fhMCGenFracAfterCutsNLocMax1MCPi0) ; | |
3985 | ||
3986 | fhMCGenFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax2MCPi0", | |
3987 | " E_{gen} / E_{reco} vs E_{reco} for N max = 2 MC Pi0, after M02 and Asym cut", | |
3988 | nptbins,ptmin,ptmax,200,0,2); | |
3989 | fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetYTitle("E_{gen} / E_{reco}"); | |
3990 | fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetXTitle("E (GeV)"); | |
3991 | outputContainer->Add(fhMCGenFracAfterCutsNLocMax2MCPi0) ; | |
3992 | ||
3993 | ||
3994 | fhMCGenFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenFracAfterCutsNLocMaxNMCPi0", | |
3995 | " E_{gen} / E_{reco} vs E_{reco} for N max > 2 MC Pi0, after M02 and Asym cut", | |
3996 | nptbins,ptmin,ptmax,200,0,2); | |
3997 | fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("E_{gen} / E_{reco}"); | |
3998 | fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("E (GeV)"); | |
3999 | outputContainer->Add(fhMCGenFracAfterCutsNLocMaxNMCPi0) ; | |
4000 | ||
4001 | } | |
4002 | ||
8edbd100 | 4003 | if(fFillTMResidualHisto && fFillTMHisto) |
8e81c2cf | 4004 | { |
4005 | for(Int_t i = 0; i < n; i++) | |
4006 | { | |
4007 | ||
c8710850 | 4008 | fhTrackMatchedDEtaNLocMax1[i] = new TH2F |
4009 | (Form("hTrackMatchedDEtaNLocMax1%s",pname[i].Data()), | |
8e81c2cf | 4010 | Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), |
4011 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
c8710850 | 4012 | fhTrackMatchedDEtaNLocMax1[i]->SetYTitle("d#eta"); |
4013 | fhTrackMatchedDEtaNLocMax1[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4014 | |
c8710850 | 4015 | fhTrackMatchedDPhiNLocMax1[i] = new TH2F |
4016 | (Form("hTrackMatchedDPhiNLocMax1%s",pname[i].Data()), | |
8e81c2cf | 4017 | Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), |
4018 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
c8710850 | 4019 | fhTrackMatchedDPhiNLocMax1[i]->SetYTitle("d#phi (rad)"); |
4020 | fhTrackMatchedDPhiNLocMax1[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4021 | |
c8710850 | 4022 | outputContainer->Add(fhTrackMatchedDEtaNLocMax1[i]) ; |
4023 | outputContainer->Add(fhTrackMatchedDPhiNLocMax1[i]) ; | |
8e81c2cf | 4024 | |
c8710850 | 4025 | fhTrackMatchedDEtaNLocMax2[i] = new TH2F |
4026 | (Form("hTrackMatchedDEtaNLocMax2%s",pname[i].Data()), | |
8e81c2cf | 4027 | Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), |
4028 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
c8710850 | 4029 | fhTrackMatchedDEtaNLocMax2[i]->SetYTitle("d#eta"); |
4030 | fhTrackMatchedDEtaNLocMax2[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4031 | |
c8710850 | 4032 | fhTrackMatchedDPhiNLocMax2[i] = new TH2F |
4033 | (Form("hTrackMatchedDPhiNLocMax2%s",pname[i].Data()), | |
8e81c2cf | 4034 | Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), |
4035 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
c8710850 | 4036 | fhTrackMatchedDPhiNLocMax2[i]->SetYTitle("d#phi (rad)"); |
4037 | fhTrackMatchedDPhiNLocMax2[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4038 | |
c8710850 | 4039 | outputContainer->Add(fhTrackMatchedDEtaNLocMax2[i]) ; |
4040 | outputContainer->Add(fhTrackMatchedDPhiNLocMax2[i]) ; | |
8e81c2cf | 4041 | |
c8710850 | 4042 | fhTrackMatchedDEtaNLocMaxN[i] = new TH2F |
4043 | (Form("hTrackMatchedDEtaNLocMaxN%s",pname[i].Data()), | |
8e81c2cf | 4044 | Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), |
4045 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
c8710850 | 4046 | fhTrackMatchedDEtaNLocMaxN[i]->SetYTitle("d#eta"); |
4047 | fhTrackMatchedDEtaNLocMaxN[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4048 | |
c8710850 | 4049 | fhTrackMatchedDPhiNLocMaxN[i] = new TH2F |
4050 | (Form("hTrackMatchedDPhiNLocMaxN%s",pname[i].Data()), | |
8e81c2cf | 4051 | Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), |
4052 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
c8710850 | 4053 | fhTrackMatchedDPhiNLocMaxN[i]->SetYTitle("d#phi (rad)"); |
4054 | fhTrackMatchedDPhiNLocMaxN[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4055 | |
c8710850 | 4056 | outputContainer->Add(fhTrackMatchedDEtaNLocMaxN[i]) ; |
b2e375c7 | 4057 | outputContainer->Add(fhTrackMatchedDPhiNLocMaxN[i]) ; |
883411b2 | 4058 | |
b2e375c7 | 4059 | fhTrackMatchedDEtaNLocMax1Pos[i] = new TH2F |
4060 | (Form("hTrackMatchedDEtaNLocMax1Pos%s",pname[i].Data()), | |
4061 | Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), | |
4062 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4063 | fhTrackMatchedDEtaNLocMax1Pos[i]->SetYTitle("d#eta"); | |
4064 | fhTrackMatchedDEtaNLocMax1Pos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4065 | ||
4066 | fhTrackMatchedDPhiNLocMax1Pos[i] = new TH2F | |
4067 | (Form("hTrackMatchedDPhiNLocMax1Pos%s",pname[i].Data()), | |
4068 | Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), | |
4069 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4070 | fhTrackMatchedDPhiNLocMax1Pos[i]->SetYTitle("d#phi (rad)"); | |
4071 | fhTrackMatchedDPhiNLocMax1Pos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4072 | ||
4073 | outputContainer->Add(fhTrackMatchedDEtaNLocMax1Pos[i]) ; | |
4074 | outputContainer->Add(fhTrackMatchedDPhiNLocMax1Pos[i]) ; | |
4075 | ||
4076 | fhTrackMatchedDEtaNLocMax2Pos[i] = new TH2F | |
4077 | (Form("hTrackMatchedDEtaNLocMax2Pos%s",pname[i].Data()), | |
4078 | Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), | |
4079 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4080 | fhTrackMatchedDEtaNLocMax2Pos[i]->SetYTitle("d#eta"); | |
4081 | fhTrackMatchedDEtaNLocMax2Pos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4082 | ||
4083 | fhTrackMatchedDPhiNLocMax2Pos[i] = new TH2F | |
4084 | (Form("hTrackMatchedDPhiNLocMax2Pos%s",pname[i].Data()), | |
4085 | Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), | |
4086 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4087 | fhTrackMatchedDPhiNLocMax2Pos[i]->SetYTitle("d#phi (rad)"); | |
4088 | fhTrackMatchedDPhiNLocMax2Pos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4089 | ||
4090 | outputContainer->Add(fhTrackMatchedDEtaNLocMax2Pos[i]) ; | |
4091 | outputContainer->Add(fhTrackMatchedDPhiNLocMax2Pos[i]) ; | |
4092 | ||
4093 | fhTrackMatchedDEtaNLocMaxNPos[i] = new TH2F | |
4094 | (Form("hTrackMatchedDEtaNLocMaxNPos%s",pname[i].Data()), | |
4095 | Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), | |
4096 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4097 | fhTrackMatchedDEtaNLocMaxNPos[i]->SetYTitle("d#eta"); | |
4098 | fhTrackMatchedDEtaNLocMaxNPos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4099 | ||
4100 | fhTrackMatchedDPhiNLocMaxNPos[i] = new TH2F | |
4101 | (Form("hTrackMatchedDPhiNLocMaxNPos%s",pname[i].Data()), | |
4102 | Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), | |
4103 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4104 | fhTrackMatchedDPhiNLocMaxNPos[i]->SetYTitle("d#phi (rad)"); | |
4105 | fhTrackMatchedDPhiNLocMaxNPos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4106 | ||
4107 | outputContainer->Add(fhTrackMatchedDEtaNLocMaxNPos[i]) ; | |
4108 | outputContainer->Add(fhTrackMatchedDPhiNLocMaxNPos[i]) ; | |
4109 | ||
4110 | fhTrackMatchedDEtaNLocMax1Neg[i] = new TH2F | |
4111 | (Form("hTrackMatchedDEtaNLocMax1Neg%s",pname[i].Data()), | |
4112 | Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), | |
4113 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4114 | fhTrackMatchedDEtaNLocMax1Neg[i]->SetYTitle("d#eta"); | |
4115 | fhTrackMatchedDEtaNLocMax1Neg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4116 | ||
4117 | fhTrackMatchedDPhiNLocMax1Neg[i] = new TH2F | |
4118 | (Form("hTrackMatchedDPhiNLocMax1Neg%s",pname[i].Data()), | |
4119 | Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), | |
4120 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4121 | fhTrackMatchedDPhiNLocMax1Neg[i]->SetYTitle("d#phi (rad)"); | |
4122 | fhTrackMatchedDPhiNLocMax1Neg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4123 | ||
4124 | outputContainer->Add(fhTrackMatchedDEtaNLocMax1Neg[i]) ; | |
4125 | outputContainer->Add(fhTrackMatchedDPhiNLocMax1Neg[i]) ; | |
4126 | ||
4127 | fhTrackMatchedDEtaNLocMax2Neg[i] = new TH2F | |
4128 | (Form("hTrackMatchedDEtaNLocMax2Neg%s",pname[i].Data()), | |
4129 | Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), | |
4130 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4131 | fhTrackMatchedDEtaNLocMax2Neg[i]->SetYTitle("d#eta"); | |
4132 | fhTrackMatchedDEtaNLocMax2Neg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4133 | ||
4134 | fhTrackMatchedDPhiNLocMax2Neg[i] = new TH2F | |
4135 | (Form("hTrackMatchedDPhiNLocMax2Neg%s",pname[i].Data()), | |
4136 | Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), | |
4137 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4138 | fhTrackMatchedDPhiNLocMax2Neg[i]->SetYTitle("d#phi (rad)"); | |
4139 | fhTrackMatchedDPhiNLocMax2Neg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4140 | ||
4141 | outputContainer->Add(fhTrackMatchedDEtaNLocMax2Neg[i]) ; | |
4142 | outputContainer->Add(fhTrackMatchedDPhiNLocMax2Neg[i]) ; | |
4143 | ||
4144 | fhTrackMatchedDEtaNLocMaxNNeg[i] = new TH2F | |
4145 | (Form("hTrackMatchedDEtaNLocMaxNNeg%s",pname[i].Data()), | |
4146 | Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), | |
4147 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4148 | fhTrackMatchedDEtaNLocMaxNNeg[i]->SetYTitle("d#eta"); | |
4149 | fhTrackMatchedDEtaNLocMaxNNeg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4150 | ||
4151 | fhTrackMatchedDPhiNLocMaxNNeg[i] = new TH2F | |
4152 | (Form("hTrackMatchedDPhiNLocMaxNNeg%s",pname[i].Data()), | |
4153 | Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), | |
4154 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4155 | fhTrackMatchedDPhiNLocMaxNNeg[i]->SetYTitle("d#phi (rad)"); | |
4156 | fhTrackMatchedDPhiNLocMaxNNeg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4157 | ||
4158 | outputContainer->Add(fhTrackMatchedDEtaNLocMaxNNeg[i]) ; | |
4159 | outputContainer->Add(fhTrackMatchedDPhiNLocMaxNNeg[i]) ; | |
4160 | ||
4161 | } | |
4162 | } | |
4163 | ||
4164 | if(fFillAngleHisto) | |
4165 | { | |
0186b6a2 | 4166 | for(Int_t i = 0; i < n; i++) |
4167 | { | |
4168 | for(Int_t j = 0; j < nMatched; j++) | |
4169 | { | |
4170 | ||
0186b6a2 | 4171 | fhAnglePairNLocMax1[i][j] = new TH2F(Form("hAnglePairNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
4172 | Form("Opening angle split sub-clusters of cluster NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4173 | nptbins,ptmin,ptmax,200,0,0.2); | |
4174 | fhAnglePairNLocMax1[i][j]->SetYTitle("#alpha (rad)"); | |
4175 | fhAnglePairNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4176 | outputContainer->Add(fhAnglePairNLocMax1[i][j]) ; | |
4177 | ||
4178 | fhAnglePairNLocMax2[i][j] = new TH2F(Form("hAnglePairNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4179 | Form("Opening angle split sub-clusters of cluster NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4180 | nptbins,ptmin,ptmax,200,0,0.2); | |
4181 | fhAnglePairNLocMax2[i][j]->SetYTitle("#alpha (rad)"); | |
4182 | fhAnglePairNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4183 | outputContainer->Add(fhAnglePairNLocMax2[i][j]) ; | |
4184 | ||
4185 | fhAnglePairNLocMaxN[i][j] = new TH2F(Form("hAnglePairNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4186 | Form("Opening angle split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4187 | nptbins,ptmin,ptmax,200,0,0.2); | |
4188 | fhAnglePairNLocMaxN[i][j]->SetYTitle("#alpha (rad)"); | |
4189 | fhAnglePairNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4190 | outputContainer->Add(fhAnglePairNLocMaxN[i][j]) ; | |
4191 | ||
29555e96 | 4192 | if(asyOn || m02On) |
4193 | { | |
4194 | fhAnglePairAfterCutsNLocMax1[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4195 | Form("Opening angle split sub-clusters of cluster NLM=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4196 | nptbins,ptmin,ptmax,200,0,0.2); | |
4197 | fhAnglePairAfterCutsNLocMax1[i][j]->SetYTitle("#alpha (rad)"); | |
4198 | fhAnglePairAfterCutsNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4199 | outputContainer->Add(fhAnglePairAfterCutsNLocMax1[i][j]) ; | |
4200 | ||
4201 | fhAnglePairAfterCutsNLocMax2[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4202 | Form("Opening angle split sub-clusters of cluster, after cuts, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4203 | nptbins,ptmin,ptmax,200,0,0.2); | |
4204 | fhAnglePairAfterCutsNLocMax2[i][j]->SetYTitle("#alpha (rad)"); | |
4205 | fhAnglePairAfterCutsNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4206 | outputContainer->Add(fhAnglePairAfterCutsNLocMax2[i][j]) ; | |
4207 | ||
4208 | fhAnglePairAfterCutsNLocMaxN[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4209 | Form("Opening angle split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4210 | nptbins,ptmin,ptmax,200,0,0.2); | |
4211 | fhAnglePairAfterCutsNLocMaxN[i][j]->SetYTitle("#alpha (rad)"); | |
4212 | fhAnglePairAfterCutsNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4213 | outputContainer->Add(fhAnglePairAfterCutsNLocMaxN[i][j]) ; | |
4214 | ||
4215 | } | |
4216 | ||
4217 | fhAnglePairPi0NLocMax1[i][j] = new TH2F(Form("hAnglePairPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4218 | Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4219 | nptbins,ptmin,ptmax,200,0,0.2); | |
4220 | fhAnglePairPi0NLocMax1[i][j]->SetYTitle("#alpha (rad)"); | |
4221 | fhAnglePairPi0NLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4222 | outputContainer->Add(fhAnglePairPi0NLocMax1[i][j]) ; | |
4223 | ||
4224 | fhAnglePairPi0NLocMax2[i][j] = new TH2F(Form("hAnglePairPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4225 | Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4226 | nptbins,ptmin,ptmax,200,0,0.2); | |
4227 | fhAnglePairPi0NLocMax2[i][j]->SetYTitle("#alpha (rad)"); | |
4228 | fhAnglePairPi0NLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4229 | outputContainer->Add(fhAnglePairPi0NLocMax2[i][j]) ; | |
4230 | ||
4231 | fhAnglePairPi0NLocMaxN[i][j] = new TH2F(Form("hAnglePairPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4232 | Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4233 | nptbins,ptmin,ptmax,200,0,0.2); | |
4234 | fhAnglePairPi0NLocMaxN[i][j]->SetYTitle("#alpha (rad)"); | |
4235 | fhAnglePairPi0NLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4236 | outputContainer->Add(fhAnglePairPi0NLocMaxN[i][j]) ; | |
4237 | ||
0186b6a2 | 4238 | fhAnglePairMassNLocMax1[i][j] = new TH2F(Form("hAnglePairMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
29555e96 | 4239 | Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=1 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()), |
0186b6a2 | 4240 | mbins,mmin,mmax,200,0,0.2); |
4241 | fhAnglePairMassNLocMax1[i][j]->SetXTitle("M (GeV/c^{2})"); | |
4242 | fhAnglePairMassNLocMax1[i][j]->SetYTitle("#alpha (rad)"); | |
4243 | outputContainer->Add(fhAnglePairMassNLocMax1[i][j]) ; | |
4244 | ||
29555e96 | 4245 | |
0186b6a2 | 4246 | fhAnglePairMassNLocMax2[i][j] = new TH2F(Form("hAnglePairMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), |
4247 | Form("Opening angle split sub-clusters of cluster NLM=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4248 | mbins,mmin,mmax,200,0,0.2); | |
4249 | fhAnglePairMassNLocMax2[i][j]->SetXTitle("M (GeV/c^{2})"); | |
4250 | fhAnglePairMassNLocMax2[i][j]->SetYTitle("#alpha (rad)"); | |
4251 | outputContainer->Add(fhAnglePairMassNLocMax2[i][j]) ; | |
4252 | ||
4253 | fhAnglePairMassNLocMaxN[i][j] = new TH2F(Form("hAnglePairMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4254 | Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4255 | mbins,mmin,mmax,200,0,0.2); | |
4256 | fhAnglePairMassNLocMaxN[i][j]->SetXTitle("M (GeV/c^{2})"); | |
4257 | fhAnglePairMassNLocMaxN[i][j]->SetYTitle("#alpha (rad)"); | |
4258 | outputContainer->Add(fhAnglePairMassNLocMaxN[i][j]) ; | |
4259 | ||
4260 | } | |
4261 | } | |
4262 | ||
4263 | if(IsDataMC()) | |
4264 | { | |
4265 | fhAnglePairPrimPi0RecoNLocMax1 = new TH2F("fhAnglePairPrimPi0RecoNLocMax1", | |
4266 | "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM=1", | |
4267 | nptbins,ptmin,ptmax,300,0,3); | |
4268 | fhAnglePairPrimPi0RecoNLocMax1->SetYTitle("#alpha_{reco} / #alpha_{gen}"); | |
4269 | fhAnglePairPrimPi0RecoNLocMax1->SetXTitle("E (GeV)"); | |
4270 | outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax1) ; | |
4271 | ||
4272 | fhAnglePairPrimPi0RecoNLocMax2 = new TH2F("fhAnglePairPrimPi0RecoNLocMax2", | |
4273 | "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM=2", | |
4274 | nptbins,ptmin,ptmax,300,0,3); | |
4275 | fhAnglePairPrimPi0RecoNLocMax2->SetYTitle("#alpha_{reco} / #alpha_{gen}"); | |
4276 | fhAnglePairPrimPi0RecoNLocMax2->SetXTitle("E (GeV)"); | |
4277 | outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax2) ; | |
4278 | ||
4279 | fhAnglePairPrimPi0RecoNLocMaxN = new TH2F("fhAnglePairPrimPi0RecoNLocMaxN", | |
4280 | "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM>2", | |
4281 | nptbins,ptmin,ptmax,300,0,3); | |
4282 | fhAnglePairPrimPi0RecoNLocMaxN->SetYTitle("#alpha_{reco} / #alpha_{gen}"); | |
4283 | fhAnglePairPrimPi0RecoNLocMaxN->SetXTitle("E (GeV)"); | |
4284 | outputContainer->Add(fhAnglePairPrimPi0RecoNLocMaxN) ; | |
4285 | ||
b2e375c7 | 4286 | |
0186b6a2 | 4287 | fhAnglePairPrimPi0vsRecoNLocMax1 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax1", |
4288 | "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 15 GeV, NLM=1", | |
4289 | 200,0,0.2,200,0,0.2); | |
29555e96 | 4290 | fhAnglePairPrimPi0vsRecoNLocMax1->SetYTitle("#alpha_{reco} (rad)"); |
4291 | fhAnglePairPrimPi0vsRecoNLocMax1->SetXTitle("#alpha_{gen} (rad)"); | |
0186b6a2 | 4292 | outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax1) ; |
4293 | ||
4294 | fhAnglePairPrimPi0vsRecoNLocMax2 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax2", | |
4295 | "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, NLM=2", | |
4296 | 200,0,0.2,200,0,0.2); | |
29555e96 | 4297 | fhAnglePairPrimPi0vsRecoNLocMax2->SetYTitle("#alpha_{reco} (rad)"); |
4298 | fhAnglePairPrimPi0vsRecoNLocMax2->SetXTitle("#alpha_{gen} (rad)"); | |
0186b6a2 | 4299 | outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax2) ; |
4300 | ||
4301 | fhAnglePairPrimPi0vsRecoNLocMaxN = new TH2F("fhAnglePairPrimPi0vsRecoNLocMaxN", | |
4302 | "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, NLM=2", | |
4303 | 200,0,0.2,200,0,0.2); | |
29555e96 | 4304 | fhAnglePairPrimPi0vsRecoNLocMaxN->SetYTitle("#alpha_{reco} (rad)"); |
4305 | fhAnglePairPrimPi0vsRecoNLocMaxN->SetXTitle("#alpha_{gen} (rad)"); | |
0186b6a2 | 4306 | outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMaxN) ; |
883411b2 | 4307 | |
4308 | } | |
992b14a7 | 4309 | } |
29555e96 | 4310 | |
4311 | // Same as asymmetry ... | |
4312 | if(fFillThetaStarHisto) | |
4313 | { | |
4314 | for(Int_t i = 0; i < n; i++) | |
4315 | { | |
4316 | for(Int_t j = 0; j < nMatched; j++) | |
4317 | { | |
4318 | ||
4319 | fhCosThStarNLocMax1[i][j] = new TH2F(Form("hCosThStarNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4320 | Form("cos(#theta^{*}) split sub-clusters of cluster NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4321 | nptbins,ptmin,ptmax,200,-1,1); | |
4322 | fhCosThStarNLocMax1[i][j]->SetYTitle("cos(#theta^{*})"); | |
4323 | fhCosThStarNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4324 | outputContainer->Add(fhCosThStarNLocMax1[i][j]) ; | |
4325 | ||
4326 | fhCosThStarNLocMax2[i][j] = new TH2F(Form("hCosThStarNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4327 | Form("cos(#theta^{*}) split sub-clusters of cluster NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4328 | nptbins,ptmin,ptmax,200,-1,1); | |
4329 | fhCosThStarNLocMax2[i][j]->SetYTitle("cos(#theta^{*})"); | |
4330 | fhCosThStarNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4331 | outputContainer->Add(fhCosThStarNLocMax2[i][j]) ; | |
4332 | ||
4333 | fhCosThStarNLocMaxN[i][j] = new TH2F(Form("hCosThStarNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4334 | Form("cos(#theta^{*}) split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4335 | nptbins,ptmin,ptmax,200,-1,1); | |
4336 | fhCosThStarNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})"); | |
4337 | fhCosThStarNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4338 | outputContainer->Add(fhCosThStarNLocMaxN[i][j]) ; | |
4339 | ||
4340 | if(asyOn || m02On) | |
4341 | { | |
4342 | fhCosThStarAfterCutsNLocMax1[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4343 | Form("cos(#theta^{*}) split sub-clusters of cluster NLM=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4344 | nptbins,ptmin,ptmax,200,-1,1); | |
4345 | fhCosThStarAfterCutsNLocMax1[i][j]->SetYTitle("cos(#theta^{*})"); | |
4346 | fhCosThStarAfterCutsNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4347 | outputContainer->Add(fhCosThStarAfterCutsNLocMax1[i][j]) ; | |
4348 | ||
4349 | fhCosThStarAfterCutsNLocMax2[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4350 | Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4351 | nptbins,ptmin,ptmax,200,-1,1); | |
4352 | fhCosThStarAfterCutsNLocMax2[i][j]->SetYTitle("cos(#theta^{*})"); | |
4353 | fhCosThStarAfterCutsNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4354 | outputContainer->Add(fhCosThStarAfterCutsNLocMax2[i][j]) ; | |
4355 | ||
4356 | fhCosThStarAfterCutsNLocMaxN[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4357 | Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4358 | nptbins,ptmin,ptmax,200,-1,1); | |
4359 | fhCosThStarAfterCutsNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})"); | |
4360 | fhCosThStarAfterCutsNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4361 | outputContainer->Add(fhCosThStarAfterCutsNLocMaxN[i][j]) ; | |
4362 | ||
4363 | } | |
4364 | ||
4365 | fhCosThStarPi0NLocMax1[i][j] = new TH2F(Form("hCosThStarPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4366 | Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4367 | nptbins,ptmin,ptmax,200,-1,1); | |
4368 | fhCosThStarPi0NLocMax1[i][j]->SetYTitle("cos(#theta^{*})"); | |
4369 | fhCosThStarPi0NLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4370 | outputContainer->Add(fhCosThStarPi0NLocMax1[i][j]) ; | |
4371 | ||
4372 | fhCosThStarPi0NLocMax2[i][j] = new TH2F(Form("hCosThStarPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4373 | Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4374 | nptbins,ptmin,ptmax,200,-1,1); | |
4375 | fhCosThStarPi0NLocMax2[i][j]->SetYTitle("cos(#theta^{*})"); | |
4376 | fhCosThStarPi0NLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4377 | outputContainer->Add(fhCosThStarPi0NLocMax2[i][j]) ; | |
4378 | ||
4379 | fhCosThStarPi0NLocMaxN[i][j] = new TH2F(Form("hCosThStarPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4380 | Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4381 | nptbins,ptmin,ptmax,200,-1,1); | |
4382 | fhCosThStarPi0NLocMaxN[i][j]->SetYTitle("cos(#theta^{*})"); | |
4383 | fhCosThStarPi0NLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4384 | outputContainer->Add(fhCosThStarPi0NLocMaxN[i][j]) ; | |
4385 | ||
4386 | } | |
4387 | } | |
4388 | } | |
4389 | ||
992b14a7 | 4390 | |
8edbd100 | 4391 | for(Int_t j = 0; j < nMatched; j++) |
17f5b4b6 | 4392 | { |
4393 | fhSplitEFractionvsAsyNLocMax1[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax1%s",sMatched[j].Data()), | |
4394 | Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max = 1, E>12, %s",sMatched[j].Data()), | |
4395 | 100,-1,1,120,0,1.2); | |
4396 | fhSplitEFractionvsAsyNLocMax1[j] ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})"); | |
4397 | fhSplitEFractionvsAsyNLocMax1[j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
4398 | outputContainer->Add(fhSplitEFractionvsAsyNLocMax1[j]) ; | |
4399 | ||
4400 | fhSplitEFractionvsAsyNLocMax2[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax2%s",sMatched[j].Data()), | |
4401 | Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max = 2,E>12, %s",sMatched[j].Data()), | |
4402 | 100,-1,1,120,0,1.2); | |
4403 | fhSplitEFractionvsAsyNLocMax2[j] ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})"); | |
4404 | fhSplitEFractionvsAsyNLocMax2[j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
4405 | outputContainer->Add(fhSplitEFractionvsAsyNLocMax2[j]) ; | |
4406 | ||
4407 | fhSplitEFractionvsAsyNLocMaxN[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMaxN%s",sMatched[j].Data()), | |
4408 | Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max > 2, E>12, %s",sMatched[j].Data()), | |
4409 | 100,-1,1,120,0,1.2); | |
4410 | fhSplitEFractionvsAsyNLocMaxN[j] ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})"); | |
4411 | fhSplitEFractionvsAsyNLocMaxN[j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
4412 | outputContainer->Add(fhSplitEFractionvsAsyNLocMaxN[j]) ; | |
e671adc2 | 4413 | } |
9554fc65 | 4414 | |
1253480f | 4415 | |
9554fc65 | 4416 | fhClusterEtaPhiNLocMax1 = new TH2F |
4417 | ("hClusterEtaPhiNLocMax1","Neutral Clusters with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4418 | fhClusterEtaPhiNLocMax1->SetYTitle("#phi (rad)"); | |
4419 | fhClusterEtaPhiNLocMax1->SetXTitle("#eta"); | |
4420 | outputContainer->Add(fhClusterEtaPhiNLocMax1) ; | |
1253480f | 4421 | |
9554fc65 | 4422 | fhClusterEtaPhiNLocMax2 = new TH2F |
4423 | ("hClusterEtaPhiNLocMax2","Neutral Clusters with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4424 | fhClusterEtaPhiNLocMax2->SetYTitle("#phi (rad)"); | |
4425 | fhClusterEtaPhiNLocMax2->SetXTitle("#eta"); | |
4426 | outputContainer->Add(fhClusterEtaPhiNLocMax2) ; | |
4427 | ||
4428 | fhClusterEtaPhiNLocMaxN = new TH2F | |
4429 | ("hClusterEtaPhiNLocMaxN","Neutral Clusters with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4430 | fhClusterEtaPhiNLocMaxN->SetYTitle("#phi (rad)"); | |
4431 | fhClusterEtaPhiNLocMaxN->SetXTitle("#eta"); | |
4432 | outputContainer->Add(fhClusterEtaPhiNLocMaxN) ; | |
4433 | ||
4434 | fhPi0EtaPhiNLocMax1 = new TH2F | |
4435 | ("hPi0EtaPhiNLocMax1","Selected #pi^{0}'s with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4436 | fhPi0EtaPhiNLocMax1->SetYTitle("#phi (rad)"); | |
4437 | fhPi0EtaPhiNLocMax1->SetXTitle("#eta"); | |
4438 | outputContainer->Add(fhPi0EtaPhiNLocMax1) ; | |
4439 | ||
4440 | fhPi0EtaPhiNLocMax2 = new TH2F | |
4441 | ("hPi0EtaPhiNLocMax2","Selected #pi^{0}'s with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4442 | fhPi0EtaPhiNLocMax2->SetYTitle("#phi (rad)"); | |
4443 | fhPi0EtaPhiNLocMax2->SetXTitle("#eta"); | |
4444 | outputContainer->Add(fhPi0EtaPhiNLocMax2) ; | |
4445 | ||
4446 | fhPi0EtaPhiNLocMaxN = new TH2F | |
4447 | ("hPi0EtaPhiNLocMaxN","Selected #pi^{0}'s with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4448 | fhPi0EtaPhiNLocMaxN->SetYTitle("#phi (rad)"); | |
4449 | fhPi0EtaPhiNLocMaxN->SetXTitle("#eta"); | |
4450 | outputContainer->Add(fhPi0EtaPhiNLocMaxN) ; | |
1253480f | 4451 | |
4452 | if(fFillIdEtaHisto) | |
4453 | { | |
4454 | fhEtaEtaPhiNLocMax1 = new TH2F | |
4455 | ("hEtaEtaPhiNLocMax1","Selected #eta's with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4456 | fhEtaEtaPhiNLocMax1->SetYTitle("#phi (rad)"); | |
4457 | fhEtaEtaPhiNLocMax1->SetXTitle("#eta"); | |
4458 | outputContainer->Add(fhEtaEtaPhiNLocMax1) ; | |
4459 | ||
4460 | fhEtaEtaPhiNLocMax2 = new TH2F | |
4461 | ("hEtaEtaPhiNLocMax2","Selected #eta's with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4462 | fhEtaEtaPhiNLocMax2->SetYTitle("#phi (rad)"); | |
4463 | fhEtaEtaPhiNLocMax2->SetXTitle("#eta"); | |
4464 | outputContainer->Add(fhEtaEtaPhiNLocMax2) ; | |
4465 | ||
4466 | fhEtaEtaPhiNLocMaxN = new TH2F | |
4467 | ("hEtaEtaPhiNLocMaxN","Selected #eta's with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4468 | fhEtaEtaPhiNLocMaxN->SetYTitle("#phi (rad)"); | |
4469 | fhEtaEtaPhiNLocMaxN->SetXTitle("#eta"); | |
4470 | outputContainer->Add(fhEtaEtaPhiNLocMaxN) ; | |
4471 | } | |
e671adc2 | 4472 | |
dbe09c26 | 4473 | if(fFillSSWeightHisto) |
4474 | { | |
dbe09c26 | 4475 | for(Int_t nlm = 0; nlm < 3; nlm++) |
4476 | { | |
4477 | fhPi0CellE[nlm] = new TH2F(Form("hPi0CellENLocMax%s",snlm[nlm].Data()), | |
4478 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E",snlm[nlm].Data()), | |
4479 | nptbins,ptmin,ptmax, nptbins,ptmin,ptmax); | |
4480 | fhPi0CellE[nlm]->SetYTitle("E_{cell}"); | |
4481 | fhPi0CellE[nlm]->SetXTitle("E_{cluster}"); | |
4482 | outputContainer->Add(fhPi0CellE[nlm]) ; | |
4483 | ||
4484 | fhPi0CellEFrac[nlm] = new TH2F(Form("hPi0CellEFracNLocMax%s",snlm[nlm].Data()), | |
4485 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E / cluster E",snlm[nlm].Data()), | |
4486 | nptbins,ptmin,ptmax, 100,0,1); | |
4487 | fhPi0CellEFrac[nlm]->SetYTitle("E_{cell} / E_{cluster}"); | |
4488 | fhPi0CellEFrac[nlm]->SetXTitle("E_{cluster}"); | |
4489 | outputContainer->Add(fhPi0CellEFrac[nlm]) ; | |
4490 | ||
4491 | fhPi0CellLogEFrac[nlm] = new TH2F(Form("hPi0CellLogEFracNLocMax%s",snlm[nlm].Data()), | |
1253480f | 4492 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs Log(cell E / cluster E)",snlm[nlm].Data()), |
4493 | nptbins,ptmin,ptmax, 100,-10,0); | |
dbe09c26 | 4494 | fhPi0CellLogEFrac[nlm]->SetYTitle("Log(E_{cell} / E_{cluster})"); |
4495 | fhPi0CellLogEFrac[nlm]->SetXTitle("E_{cluster}"); | |
4496 | outputContainer->Add(fhPi0CellLogEFrac[nlm]) ; | |
1253480f | 4497 | |
dbe09c26 | 4498 | |
19391b8c | 4499 | fhPi0CellEMaxEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMaxEMax2FracNLocMax%s",snlm[nlm].Data()), |
1253480f | 4500 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / 1st loc. max. E",snlm[nlm].Data()), |
4501 | nptbins,ptmin,ptmax, 100,0,1); | |
19391b8c | 4502 | fhPi0CellEMaxEMax2Frac[nlm]->SetYTitle("E_{Loc Max 2} / E_{Loc Max 1}"); |
4503 | fhPi0CellEMaxEMax2Frac[nlm]->SetXTitle("E_{cluster}"); | |
4504 | outputContainer->Add(fhPi0CellEMaxEMax2Frac[nlm]) ; | |
4505 | ||
4506 | fhPi0CellEMaxClusterFrac[nlm] = new TH2F(Form("hPi0CellEMaxClusterFracNLocMax%s",snlm[nlm].Data()), | |
1253480f | 4507 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cluster",snlm[nlm].Data()), |
4508 | nptbins,ptmin,ptmax, 100,0,1); | |
19391b8c | 4509 | fhPi0CellEMaxClusterFrac[nlm]->SetYTitle("E_{Loc Max 1} / E_{cluster}"); |
4510 | fhPi0CellEMaxClusterFrac[nlm]->SetXTitle("E_{cluster}"); | |
4511 | outputContainer->Add(fhPi0CellEMaxClusterFrac[nlm]) ; | |
1253480f | 4512 | |
19391b8c | 4513 | fhPi0CellEMax2ClusterFrac[nlm] = new TH2F(Form("hPi0CellEMax2ClusterFracNLocMax%s",snlm[nlm].Data()), |
1253480f | 4514 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cluster",snlm[nlm].Data()), |
4515 | nptbins,ptmin,ptmax, 100,0,1); | |
19391b8c | 4516 | fhPi0CellEMax2ClusterFrac[nlm]->SetYTitle("E_{Loc Max 2} / E_{cluster}"); |
4517 | fhPi0CellEMax2ClusterFrac[nlm]->SetXTitle("E_{cluster}"); | |
4518 | outputContainer->Add(fhPi0CellEMax2ClusterFrac[nlm]) ; | |
4519 | ||
4520 | fhPi0CellEMaxFrac[nlm] = new TH2F(Form("hPi0CellEMaxFracNLocMax%s",snlm[nlm].Data()), | |
1253480f | 4521 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cell i",snlm[nlm].Data()), |
4522 | nptbins,ptmin,ptmax, 100,0,1); | |
8edbd100 | 4523 | fhPi0CellEMaxFrac[nlm]->SetYTitle("E_{Loc Max 1} / E_{cell i}"); |
19391b8c | 4524 | fhPi0CellEMaxFrac[nlm]->SetXTitle("E_{cluster}"); |
4525 | outputContainer->Add(fhPi0CellEMaxFrac[nlm]) ; | |
4526 | ||
4527 | fhPi0CellEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMax2FracNLocMax%s",snlm[nlm].Data()), | |
1253480f | 4528 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cell i",snlm[nlm].Data()), |
4529 | nptbins,ptmin,ptmax, 200,0,2); | |
19391b8c | 4530 | fhPi0CellEMax2Frac[nlm]->SetYTitle("E_{Loc Max 2} / E_{cell i}"); |
4531 | fhPi0CellEMax2Frac[nlm]->SetXTitle("E_{cluster}"); | |
4532 | outputContainer->Add(fhPi0CellEMax2Frac[nlm]) ; | |
1253480f | 4533 | |
19391b8c | 4534 | |
dbe09c26 | 4535 | for(Int_t i = 0; i < fSSWeightN; i++) |
4536 | { | |
4537 | fhM02WeightPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_W%d",snlm[nlm].Data(),i), | |
1253480f | 4538 | Form("#lambda_{0}^{2} vs E, with W0 = %2.2f, for NLM = %s", fSSWeight[i], snlm[nlm].Data()), |
dbe09c26 | 4539 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); |
4540 | fhM02WeightPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}"); | |
4541 | fhM02WeightPi0[nlm][i] ->SetXTitle("E (GeV)"); | |
4542 | outputContainer->Add(fhM02WeightPi0[nlm][i]) ; | |
4543 | } | |
19391b8c | 4544 | |
4545 | for(Int_t i = 0; i < fSSECellCutN; i++) | |
4546 | { | |
4547 | fhM02ECellCutPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_Ecell%d",snlm[nlm].Data(),i), | |
1253480f | 4548 | Form("#lambda_{0}^{2} vs E, with Ecell > %2.2f, for NLM = %s", fSSECellCut[i], snlm[nlm].Data()), |
4549 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
19391b8c | 4550 | fhM02ECellCutPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}"); |
4551 | fhM02ECellCutPi0[nlm][i] ->SetXTitle("E (GeV)"); | |
4552 | outputContainer->Add(fhM02ECellCutPi0[nlm][i]) ; | |
4553 | } | |
1253480f | 4554 | |
dbe09c26 | 4555 | } |
4556 | } | |
4557 | ||
a1fd1b69 | 4558 | Int_t tdbins = GetHistogramRanges()->GetHistoDiffTimeBins() ; Float_t tdmax = GetHistogramRanges()->GetHistoDiffTimeMax(); Float_t tdmin = GetHistogramRanges()->GetHistoDiffTimeMin(); |
1253480f | 4559 | |
a1fd1b69 | 4560 | fhPi0EPairDiffTimeNLM1 = new TH2F("hPi0EPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #pi, NLM=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); |
4561 | fhPi0EPairDiffTimeNLM1->SetXTitle("E_{pair} (GeV)"); | |
4562 | fhPi0EPairDiffTimeNLM1->SetYTitle("#Delta t (ns)"); | |
4563 | outputContainer->Add(fhPi0EPairDiffTimeNLM1); | |
1253480f | 4564 | |
a1fd1b69 | 4565 | fhPi0EPairDiffTimeNLM2 = new TH2F("hPi0EPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #pi, NLM=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); |
4566 | fhPi0EPairDiffTimeNLM2->SetXTitle("E_{pair} (GeV)"); | |
4567 | fhPi0EPairDiffTimeNLM2->SetYTitle("#Delta t (ns)"); | |
4568 | outputContainer->Add(fhPi0EPairDiffTimeNLM2); | |
1253480f | 4569 | |
a1fd1b69 | 4570 | fhPi0EPairDiffTimeNLMN = new TH2F("hPi0EPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #pi, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); |
4571 | fhPi0EPairDiffTimeNLMN->SetXTitle("E_{pair} (GeV)"); | |
4572 | fhPi0EPairDiffTimeNLMN->SetYTitle("#Delta t (ns)"); | |
4573 | outputContainer->Add(fhPi0EPairDiffTimeNLMN); | |
a1fd1b69 | 4574 | |
1253480f | 4575 | if(fFillIdEtaHisto) |
4576 | { | |
4577 | fhEtaEPairDiffTimeNLM1 = new TH2F("hEtaEPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #eta, NLM=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); | |
4578 | fhEtaEPairDiffTimeNLM1->SetXTitle("E_{pair} (GeV)"); | |
4579 | fhEtaEPairDiffTimeNLM1->SetYTitle("#Delta t (ns)"); | |
4580 | outputContainer->Add(fhEtaEPairDiffTimeNLM1); | |
4581 | ||
4582 | fhEtaEPairDiffTimeNLM2 = new TH2F("hEtaEPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #eta, NLM=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); | |
4583 | fhEtaEPairDiffTimeNLM2->SetXTitle("E_{pair} (GeV)"); | |
4584 | fhEtaEPairDiffTimeNLM2->SetYTitle("#Delta t (ns)"); | |
4585 | outputContainer->Add(fhEtaEPairDiffTimeNLM2); | |
4586 | ||
4587 | fhEtaEPairDiffTimeNLMN = new TH2F("hEtaEPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #eta, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); | |
4588 | fhEtaEPairDiffTimeNLMN->SetXTitle("E_{pair} (GeV)"); | |
4589 | fhEtaEPairDiffTimeNLMN->SetYTitle("#Delta t (ns)"); | |
4590 | outputContainer->Add(fhEtaEPairDiffTimeNLMN); | |
4591 | } | |
a1fd1b69 | 4592 | |
4914e781 | 4593 | if(fFillNCellHisto && IsDataMC()) |
4594 | { | |
1253480f | 4595 | |
4914e781 | 4596 | fhNCellMassEHighNLocMax1MCPi0 = new TH2F("hNCellMassEHighNLocMax1MCPi0","n cells vs mass for MC pi0, high energy, NLM=1",ncbins,ncmin,ncmax,mbins,mmin,mmax); |
4597 | fhNCellMassEHighNLocMax1MCPi0->SetYTitle("M (GeV/c^{2})"); | |
4598 | fhNCellMassEHighNLocMax1MCPi0->SetXTitle("n cells"); | |
4599 | outputContainer->Add(fhNCellMassEHighNLocMax1MCPi0) ; | |
4600 | ||
4601 | fhNCellMassELowNLocMax1MCPi0 = new TH2F("hNCellMassELowNLocMax1MCPi0","n cells vs mass for MC pi0, low energy, NLM=1",ncbins,ncmin,ncmax,mbins,mmin,mmax); | |
4602 | fhNCellMassELowNLocMax1MCPi0->SetYTitle("M (GeV/c^{2})"); | |
4603 | fhNCellMassELowNLocMax1MCPi0->SetXTitle("n cells"); | |
4604 | outputContainer->Add(fhNCellMassELowNLocMax1MCPi0) ; | |
1253480f | 4605 | |
4914e781 | 4606 | fhNCellM02EHighNLocMax1MCPi0 = new TH2F("hNCellM02EHighNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); |
4607 | fhNCellM02EHighNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}"); | |
4608 | fhNCellM02EHighNLocMax1MCPi0->SetXTitle("n cells"); | |
4609 | outputContainer->Add(fhNCellM02EHighNLocMax1MCPi0) ; | |
4610 | ||
4611 | fhNCellM02ELowNLocMax1MCPi0 = new TH2F("hNCellM02ELowNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
4612 | fhNCellM02ELowNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}"); | |
4613 | fhNCellM02ELowNLocMax1MCPi0->SetXTitle("n cells"); | |
4614 | outputContainer->Add(fhNCellM02ELowNLocMax1MCPi0) ; | |
1253480f | 4615 | |
4914e781 | 4616 | fhNCellMassEHighNLocMax2MCPi0 = new TH2F("hNCellMassEHighNLocMax2MCPi0","n cells vs mass for MC pi0, high energy, NLM=2",ncbins,ncmin,ncmax,mbins,mmin,mmax); |
4617 | fhNCellMassEHighNLocMax2MCPi0->SetYTitle("M (GeV/c^{2})"); | |
4618 | fhNCellMassEHighNLocMax2MCPi0->SetXTitle("n cells"); | |
4619 | outputContainer->Add(fhNCellMassEHighNLocMax2MCPi0) ; | |
4620 | ||
4621 | fhNCellMassELowNLocMax2MCPi0 = new TH2F("hNCellMassELowNLocMax2MCPi0","n cells vs mass for MC pi0, low energy, NLM=2",ncbins,ncmin,ncmax,mbins,mmin,mmax); | |
4622 | fhNCellMassELowNLocMax2MCPi0->SetYTitle("M (GeV/c^{2})"); | |
4623 | fhNCellMassELowNLocMax2MCPi0->SetXTitle("n cells"); | |
4624 | outputContainer->Add(fhNCellMassELowNLocMax2MCPi0) ; | |
4625 | ||
4626 | fhNCellM02EHighNLocMax2MCPi0 = new TH2F("hNCellM02EHighNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
4627 | fhNCellM02EHighNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}"); | |
4628 | fhNCellM02EHighNLocMax2MCPi0->SetXTitle("n cells"); | |
4629 | outputContainer->Add(fhNCellM02EHighNLocMax2MCPi0) ; | |
4630 | ||
4631 | fhNCellM02ELowNLocMax2MCPi0 = new TH2F("hNCellM02ELowNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
4632 | fhNCellM02ELowNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}"); | |
4633 | fhNCellM02ELowNLocMax2MCPi0->SetXTitle("n cells"); | |
4634 | outputContainer->Add(fhNCellM02ELowNLocMax2MCPi0) ; | |
1253480f | 4635 | |
4914e781 | 4636 | fhNCellMassEHighNLocMaxNMCPi0 = new TH2F("hNCellMassEHighNLocMaxNMCPi0","n cells vs mass for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax); |
4637 | fhNCellMassEHighNLocMaxNMCPi0->SetYTitle("M (GeV/c^{2})"); | |
4638 | fhNCellMassEHighNLocMaxNMCPi0->SetXTitle("n cells"); | |
4639 | outputContainer->Add(fhNCellMassEHighNLocMaxNMCPi0) ; | |
4640 | ||
4641 | fhNCellMassELowNLocMaxNMCPi0 = new TH2F("hNCellMassELowNLocMaxNMCPi0","n cells vs mass for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax); | |
4642 | fhNCellMassELowNLocMaxNMCPi0->SetYTitle("M (GeV/c^{2})"); | |
4643 | fhNCellMassELowNLocMaxNMCPi0->SetXTitle("n cells"); | |
4644 | outputContainer->Add(fhNCellMassELowNLocMaxNMCPi0) ; | |
4645 | ||
4646 | fhNCellM02EHighNLocMaxNMCPi0 = new TH2F("hNCellM02EHighNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
4647 | fhNCellM02EHighNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}"); | |
4648 | fhNCellM02EHighNLocMaxNMCPi0->SetXTitle("n cells"); | |
4649 | outputContainer->Add(fhNCellM02EHighNLocMaxNMCPi0) ; | |
4650 | ||
4651 | fhNCellM02ELowNLocMaxNMCPi0 = new TH2F("hNCellM02ELowNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
4652 | fhNCellM02ELowNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}"); | |
4653 | fhNCellM02ELowNLocMaxNMCPi0->SetXTitle("n cells"); | |
4654 | outputContainer->Add(fhNCellM02ELowNLocMaxNMCPi0) ; | |
4655 | ||
4656 | } | |
b2e375c7 | 4657 | |
4658 | if(IsDataMC() && fFillMCOverlapHisto) | |
4659 | { | |
4660 | for(Int_t i = 1; i < n; i++) | |
4661 | { | |
4662 | for(Int_t j = 0; j < 3; j++) | |
4663 | { | |
4664 | fhMCENOverlaps[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
4665 | Form("# overlaps vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4666 | nptbins,ptmin,ptmax,10,0,10); | |
4667 | fhMCENOverlaps[j][i] ->SetYTitle("# overlaps"); | |
4668 | fhMCENOverlaps[j][i] ->SetXTitle("E (GeV)"); | |
4669 | outputContainer->Add(fhMCENOverlaps[j][i]) ; | |
4670 | ||
4671 | fhMCEM02Overlap0[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
4672 | Form("Overlap 0, #lambda_{0}^{2} vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4673 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
4674 | fhMCEM02Overlap0[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
4675 | fhMCEM02Overlap0[j][i] ->SetXTitle("E (GeV)"); | |
4676 | outputContainer->Add(fhMCEM02Overlap0[j][i]) ; | |
4677 | ||
4678 | fhMCEM02Overlap1[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4679 | Form("Overlap 1, #lambda_{0}^{2} vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4680 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
4681 | fhMCEM02Overlap1[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
4682 | fhMCEM02Overlap1[j][i] ->SetXTitle("E (GeV)"); | |
4683 | outputContainer->Add(fhMCEM02Overlap1[j][i]) ; | |
4684 | ||
4685 | fhMCEM02OverlapN[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4686 | Form("Overlap N, #lambda_{0}^{2} vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
4687 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
4688 | fhMCEM02OverlapN[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
4689 | fhMCEM02OverlapN[j][i] ->SetXTitle("E (GeV)"); | |
4690 | outputContainer->Add(fhMCEM02OverlapN[j][i]) ; | |
4691 | ||
4692 | fhMCEMassOverlap0[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
4693 | Form("Overlap 0, Mass vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4694 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
4695 | fhMCEMassOverlap0[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
4696 | fhMCEMassOverlap0[j][i] ->SetXTitle("E (GeV)"); | |
4697 | outputContainer->Add(fhMCEMassOverlap0[j][i]) ; | |
4698 | ||
4699 | fhMCEMassOverlap1[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4700 | Form("Overalap 1, Mass vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4701 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
4702 | fhMCEMassOverlap1[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
4703 | fhMCEMassOverlap1[j][i] ->SetXTitle("E (GeV)"); | |
4704 | outputContainer->Add(fhMCEMassOverlap1[j][i]) ; | |
4705 | ||
4706 | fhMCEMassOverlapN[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4707 | Form("Overlap N, Mass vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
4708 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
4709 | fhMCEMassOverlapN[j][i] ->SetYTitle("Mass (GeV/c^{2})"); | |
4710 | fhMCEMassOverlapN[j][i] ->SetXTitle("E (GeV)"); | |
4711 | outputContainer->Add(fhMCEMassOverlapN[j][i]) ; | |
4914e781 | 4712 | |
4713 | fhMCEAsymOverlap0[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
4714 | Form("Overlap 0, Asymmetry vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4715 | nptbins,ptmin,ptmax,100,0,1); | |
4716 | fhMCEAsymOverlap0[j][i] ->SetYTitle("|A|"); | |
4717 | fhMCEAsymOverlap0[j][i] ->SetXTitle("E (GeV)"); | |
4718 | outputContainer->Add(fhMCEAsymOverlap0[j][i]) ; | |
4719 | ||
4720 | fhMCEAsymOverlap1[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4721 | Form("Overalap 1, Asymmetry vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4722 | nptbins,ptmin,ptmax,100,0,1); | |
4723 | fhMCEAsymOverlap1[j][i] ->SetYTitle("|A|"); | |
4724 | fhMCEAsymOverlap1[j][i] ->SetXTitle("E (GeV)"); | |
4725 | outputContainer->Add(fhMCEAsymOverlap1[j][i]) ; | |
4726 | ||
4727 | fhMCEAsymOverlapN[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4728 | Form("Overlap N, Asymmetry vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
4729 | nptbins,ptmin,ptmax,100,0,1); | |
4730 | fhMCEAsymOverlapN[j][i] ->SetYTitle("|A|"); | |
4731 | fhMCEAsymOverlapN[j][i] ->SetXTitle("E (GeV)"); | |
4732 | outputContainer->Add(fhMCEAsymOverlapN[j][i]) ; | |
74e3eb22 | 4733 | |
4734 | ||
cb99fa55 | 4735 | if(fFillNCellHisto) |
4736 | { | |
4737 | fhMCENCellOverlap0[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
4738 | Form("Overlap 0, n cells vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4739 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
4740 | fhMCENCellOverlap0[j][i] ->SetYTitle("n cells"); | |
4741 | fhMCENCellOverlap0[j][i] ->SetXTitle("E (GeV)"); | |
4742 | outputContainer->Add(fhMCENCellOverlap0[j][i]) ; | |
4743 | ||
4744 | fhMCENCellOverlap1[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4745 | Form("Overalap 1, n cells vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4746 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
4747 | fhMCENCellOverlap1[j][i] ->SetYTitle("n cells"); | |
4748 | fhMCENCellOverlap1[j][i] ->SetXTitle("E (GeV)"); | |
4749 | outputContainer->Add(fhMCENCellOverlap1[j][i]) ; | |
4750 | ||
4751 | fhMCENCellOverlapN[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4752 | Form("Overlap N, n cells vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
4753 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
4754 | fhMCENCellOverlapN[j][i] ->SetYTitle("n cells"); | |
4755 | fhMCENCellOverlapN[j][i] ->SetXTitle("E (GeV)"); | |
4756 | outputContainer->Add(fhMCENCellOverlapN[j][i]) ; | |
4757 | } | |
4914e781 | 4758 | |
4759 | fhMCEEpriOverlap0[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
4760 | Form("Overlap 0, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4761 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
4762 | fhMCEEpriOverlap0[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
4763 | fhMCEEpriOverlap0[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
4764 | outputContainer->Add(fhMCEEpriOverlap0[j][i]) ; | |
4765 | ||
4766 | fhMCEEpriOverlap1[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4767 | Form("Overalap 1, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4768 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
4769 | fhMCEEpriOverlap1[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
4770 | fhMCEEpriOverlap1[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
4771 | outputContainer->Add(fhMCEEpriOverlap1[j][i]) ; | |
4772 | ||
4773 | fhMCEEpriOverlapN[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4774 | Form("Overlap N, E reco vs E prim for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
4775 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
4776 | fhMCEEpriOverlapN[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
4777 | fhMCEEpriOverlapN[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
4778 | outputContainer->Add(fhMCEEpriOverlapN[j][i]) ; | |
1253480f | 4779 | |
4914e781 | 4780 | |
cc909e6f | 4781 | fhMCEEpriOverlap0IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap0IdPi0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), |
4782 | Form("Overlap 0, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4783 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
4784 | fhMCEEpriOverlap0IdPi0[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
4785 | fhMCEEpriOverlap0IdPi0[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
4786 | outputContainer->Add(fhMCEEpriOverlap0IdPi0[j][i]) ; | |
4787 | ||
4788 | fhMCEEpriOverlap1IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap1IdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4789 | Form("Overalap 1, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4790 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
4791 | fhMCEEpriOverlap1IdPi0[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
4792 | fhMCEEpriOverlap1IdPi0[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
4793 | outputContainer->Add(fhMCEEpriOverlap1IdPi0[j][i]) ; | |
4794 | ||
4795 | fhMCEEpriOverlapNIdPi0[j][i] = new TH2F(Form("hMCEEpriOverlapNIdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
4796 | Form("Overlap N, E reco vs E prim for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
4797 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
4798 | fhMCEEpriOverlapNIdPi0[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
4799 | fhMCEEpriOverlapNIdPi0[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
4800 | outputContainer->Add(fhMCEEpriOverlapNIdPi0[j][i]) ; | |
4801 | ||
4802 | ||
83351853 | 4803 | fhMCESplitEFracOverlap0[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), |
1253480f | 4804 | Form("Overlap 0, SplitEFrac vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), |
4805 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 4806 | fhMCESplitEFracOverlap0[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
4807 | fhMCESplitEFracOverlap0[j][i] ->SetXTitle("E (GeV)"); | |
4808 | outputContainer->Add(fhMCESplitEFracOverlap0[j][i]) ; | |
4809 | ||
4810 | fhMCESplitEFracOverlap1[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
1253480f | 4811 | Form("Overalap 1, SplitEFrac vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), |
4812 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 4813 | fhMCESplitEFracOverlap1[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
4814 | fhMCESplitEFracOverlap1[j][i] ->SetXTitle("E (GeV)"); | |
4815 | outputContainer->Add(fhMCESplitEFracOverlap1[j][i]) ; | |
4816 | ||
4817 | fhMCESplitEFracOverlapN[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
1253480f | 4818 | Form("Overlap N, SplitEFrac vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), |
4819 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 4820 | fhMCESplitEFracOverlapN[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
4821 | fhMCESplitEFracOverlapN[j][i] ->SetXTitle("E (GeV)"); | |
4822 | outputContainer->Add(fhMCESplitEFracOverlapN[j][i]) ; | |
b2e375c7 | 4823 | |
4824 | if(i < 5) | |
4825 | { | |
4826 | fhMCPi0MassM02Overlap0[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%d",snlm[j].Data(),i-1), | |
be894c1d | 4827 | Form("Overlap 0, Mass vs #lambda_{0}^{2}, NLM=%s, %s",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 4828 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 4829 | fhMCPi0MassM02Overlap0[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
4830 | fhMCPi0MassM02Overlap0[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
4831 | outputContainer->Add(fhMCPi0MassM02Overlap0[j][i-1]) ; | |
4832 | ||
4833 | fhMCPi0MassM02Overlap1[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%d",snlm[j].Data(),i-1), | |
be894c1d | 4834 | Form("Overlap 1, Mass vs #lambda_{0}^{2}, NLM=%s, %s",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 4835 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 4836 | fhMCPi0MassM02Overlap1[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
4837 | fhMCPi0MassM02Overlap1[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
4838 | outputContainer->Add(fhMCPi0MassM02Overlap1[j][i-1]) ; | |
4839 | ||
4840 | fhMCPi0MassM02OverlapN[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%d",snlm[j].Data(),i-1), | |
be894c1d | 4841 | Form("Overlap N, Mass vs #lambda_{0}^{2}, NLM=%s, %s",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 4842 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 4843 | fhMCPi0MassM02OverlapN[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
4844 | fhMCPi0MassM02OverlapN[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
4845 | outputContainer->Add(fhMCPi0MassM02OverlapN[j][i-1]) ; | |
4846 | } | |
4847 | ||
4848 | if(fFillTMHisto) | |
4849 | { | |
4850 | fhMCENOverlapsMatch[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
4851 | Form("# overlaps vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
4852 | nptbins,ptmin,ptmax,10,0,10); | |
4853 | fhMCENOverlapsMatch[j][i] ->SetYTitle("# overlaps"); | |
4854 | fhMCENOverlapsMatch[j][i] ->SetXTitle("E (GeV)"); | |
4855 | outputContainer->Add(fhMCENOverlapsMatch[j][i]) ; | |
4856 | ||
4857 | fhMCEM02Overlap0Match[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
4858 | Form("#lambda_{0}^{2} vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4859 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
4860 | fhMCEM02Overlap0Match[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
4861 | fhMCEM02Overlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
4862 | outputContainer->Add(fhMCEM02Overlap0Match[j][i]) ; | |
4863 | ||
4864 | fhMCEM02Overlap1Match[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
4865 | Form("#lambda_{0}^{2} vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4866 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
4867 | fhMCEM02Overlap1Match[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
4868 | fhMCEM02Overlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
4869 | outputContainer->Add(fhMCEM02Overlap1Match[j][i]) ; | |
4870 | ||
4871 | fhMCEM02OverlapNMatch[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
4872 | Form("#lambda_{0}^{2} vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4873 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
4874 | fhMCEM02OverlapNMatch[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
4875 | fhMCEM02OverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
4876 | outputContainer->Add(fhMCEM02OverlapNMatch[j][i]) ; | |
4877 | ||
4878 | fhMCEMassOverlap0Match[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
4879 | Form("Mass vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4880 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
4881 | fhMCEMassOverlap0Match[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
4882 | fhMCEMassOverlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
4883 | outputContainer->Add(fhMCEMassOverlap0Match[j][i]) ; | |
4884 | ||
4885 | fhMCEMassOverlap1Match[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
4886 | Form("Mass vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4887 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
4888 | fhMCEMassOverlap1Match[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
4889 | fhMCEMassOverlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
4890 | outputContainer->Add(fhMCEMassOverlap1Match[j][i]) ; | |
4891 | ||
4892 | fhMCEMassOverlapNMatch[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
4893 | Form("Mass vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4894 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
4895 | fhMCEMassOverlapNMatch[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
4896 | fhMCEMassOverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
4897 | outputContainer->Add(fhMCEMassOverlapNMatch[j][i]) ; | |
4898 | ||
4914e781 | 4899 | |
4900 | fhMCEAsymOverlap0Match[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
1253480f | 4901 | Form("Overlap 0, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
4902 | nptbins,ptmin,ptmax,100,0,1); | |
4914e781 | 4903 | fhMCEAsymOverlap0Match[j][i] ->SetYTitle("|A|"); |
4904 | fhMCEAsymOverlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
4905 | outputContainer->Add(fhMCEAsymOverlap0Match[j][i]) ; | |
4906 | ||
4907 | fhMCEAsymOverlap1Match[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
1253480f | 4908 | Form("Overalap 1, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
4909 | nptbins,ptmin,ptmax,100,0,1); | |
4914e781 | 4910 | fhMCEAsymOverlap1Match[j][i] ->SetYTitle("|A|"); |
4911 | fhMCEAsymOverlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
4912 | outputContainer->Add(fhMCEAsymOverlap1Match[j][i]) ; | |
4913 | ||
4914 | fhMCEAsymOverlapNMatch[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
1253480f | 4915 | Form("Overlap N, Asymmetry vs E for NLM=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
4916 | nptbins,ptmin,ptmax,100,0,1); | |
4914e781 | 4917 | fhMCEAsymOverlapNMatch[j][i] ->SetYTitle("|A|"); |
4918 | fhMCEAsymOverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
4919 | outputContainer->Add(fhMCEAsymOverlapNMatch[j][i]) ; | |
74e3eb22 | 4920 | |
4921 | ||
4922 | fhMCENCellOverlap0Match[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
4923 | Form("Overlap 0, n cells vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4924 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
4925 | fhMCENCellOverlap0Match[j][i] ->SetYTitle("n cells"); | |
4926 | fhMCENCellOverlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
4927 | outputContainer->Add(fhMCENCellOverlap0Match[j][i]) ; | |
1253480f | 4928 | |
74e3eb22 | 4929 | fhMCENCellOverlap1Match[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), |
4930 | Form("Overalap 1, n cell vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4931 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
4932 | fhMCENCellOverlap1Match[j][i] ->SetYTitle("n cells"); | |
4933 | fhMCENCellOverlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
4934 | outputContainer->Add(fhMCENCellOverlap1Match[j][i]) ; | |
4914e781 | 4935 | |
74e3eb22 | 4936 | fhMCENCellOverlapNMatch[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), |
4937 | Form("Overlap N, n cell vs E for NLM=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4938 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
4939 | fhMCENCellOverlapNMatch[j][i] ->SetYTitle("n cells"); | |
4940 | fhMCENCellOverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
4941 | outputContainer->Add(fhMCENCellOverlapNMatch[j][i]) ; | |
4942 | ||
4914e781 | 4943 | fhMCEEpriOverlap0Match[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), |
4944 | Form("Overlap 0, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4945 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
4946 | fhMCEEpriOverlap0Match[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
4947 | fhMCEEpriOverlap0Match[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
4948 | outputContainer->Add(fhMCEEpriOverlap0Match[j][i]) ; | |
4949 | ||
4950 | fhMCEEpriOverlap1Match[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
4951 | Form("Overalap 1, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
4952 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
4953 | fhMCEEpriOverlap1Match[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
4954 | fhMCEEpriOverlap1Match[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
4955 | outputContainer->Add(fhMCEEpriOverlap1Match[j][i]) ; | |
4956 | ||
cc909e6f | 4957 | fhMCEEpriOverlapNMatch[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), |
4914e781 | 4958 | Form("Overlap N, Asymmetry vs E for NLM=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
4959 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
4960 | fhMCEEpriOverlapNMatch[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
4961 | fhMCEEpriOverlapNMatch[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
4962 | outputContainer->Add(fhMCEEpriOverlapNMatch[j][i]) ; | |
1253480f | 4963 | |
4914e781 | 4964 | |
83351853 | 4965 | fhMCESplitEFracOverlap0Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), |
1253480f | 4966 | Form("SplitEFrac vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
4967 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 4968 | fhMCESplitEFracOverlap0Match[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
4969 | fhMCESplitEFracOverlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
4970 | outputContainer->Add(fhMCESplitEFracOverlap0Match[j][i]) ; | |
4971 | ||
4972 | fhMCESplitEFracOverlap1Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
1253480f | 4973 | Form("SplitEFrac vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
4974 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 4975 | fhMCESplitEFracOverlap1Match[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
4976 | fhMCESplitEFracOverlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
4977 | outputContainer->Add(fhMCESplitEFracOverlap1Match[j][i]) ; | |
4978 | ||
4979 | fhMCESplitEFracOverlapNMatch[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
1253480f | 4980 | Form("SplitEFrac vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
4981 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 4982 | fhMCESplitEFracOverlapNMatch[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
4983 | fhMCESplitEFracOverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
4984 | outputContainer->Add(fhMCESplitEFracOverlapNMatch[j][i]) ; | |
1253480f | 4985 | |
83351853 | 4986 | |
b2e375c7 | 4987 | if(i < 5) |
4988 | { | |
4989 | fhMCPi0MassM02Overlap0Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%dMatched",snlm[j].Data(),i-1), | |
be894c1d | 4990 | Form("Overlap 0, Mass vs #lambda_{0}^{2}, NLM=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 4991 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 4992 | fhMCPi0MassM02Overlap0Match[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
4993 | fhMCPi0MassM02Overlap0Match[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
4994 | outputContainer->Add(fhMCPi0MassM02Overlap0Match[j][i-1]) ; | |
4995 | ||
4996 | fhMCPi0MassM02Overlap1Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%dMatched",snlm[j].Data(),i-1), | |
be894c1d | 4997 | Form("Overlap 1, Mass vs #lambda_{0}^{2}, NLM=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 4998 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 4999 | fhMCPi0MassM02Overlap1Match[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
5000 | fhMCPi0MassM02Overlap1Match[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
5001 | outputContainer->Add(fhMCPi0MassM02Overlap1Match[j][i-1]) ; | |
5002 | ||
5003 | fhMCPi0MassM02OverlapNMatch[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%dMatched",snlm[j].Data(),i-1), | |
be894c1d | 5004 | Form("Overlap N, Mass vs #lambda_{0}^{2}, NLM=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 5005 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 5006 | fhMCPi0MassM02OverlapNMatch[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
5007 | fhMCPi0MassM02OverlapNMatch[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
5008 | outputContainer->Add(fhMCPi0MassM02OverlapNMatch[j][i-1]) ; | |
5009 | ||
5010 | } | |
5011 | ||
5012 | } | |
5013 | } | |
5014 | } | |
5015 | ||
5016 | fhMCPi0HighNLMPair = new TH2F("hMCPi0HighNLMPair","NLM vs E for merged pi0 cluster, high energy NLM pair are decays", | |
5017 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5018 | fhMCPi0HighNLMPair ->SetYTitle("N maxima"); | |
5019 | fhMCPi0HighNLMPair ->SetXTitle("E (GeV)"); | |
5020 | outputContainer->Add(fhMCPi0HighNLMPair) ; | |
5021 | ||
5022 | fhMCPi0LowNLMPair = new TH2F("hMCPi0LowNLMPair","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays", | |
5023 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5024 | fhMCPi0LowNLMPair ->SetYTitle("N maxima"); | |
5025 | fhMCPi0LowNLMPair ->SetXTitle("E (GeV)"); | |
5026 | outputContainer->Add(fhMCPi0LowNLMPair) ; | |
5027 | ||
5028 | fhMCPi0AnyNLMPair = new TH2F("hMCPi0AnyNLMPair","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays", | |
5029 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5030 | fhMCPi0AnyNLMPair ->SetYTitle("N maxima"); | |
5031 | fhMCPi0AnyNLMPair ->SetXTitle("E (GeV)"); | |
5032 | outputContainer->Add(fhMCPi0AnyNLMPair) ; | |
5033 | ||
5034 | fhMCPi0NoneNLMPair = new TH2F("hMCPi0NoneNLMPair","NLM vs E for merged pi0 cluster, no NLM pair are decays", | |
5035 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5036 | fhMCPi0NoneNLMPair ->SetYTitle("N maxima"); | |
5037 | fhMCPi0NoneNLMPair ->SetXTitle("E (GeV)"); | |
5038 | outputContainer->Add(fhMCPi0NoneNLMPair) ; | |
1253480f | 5039 | |
b2e375c7 | 5040 | |
5041 | fhMCPi0HighNLMPairNoMCMatch = new TH2F("hMCPi0HighNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, high energy NLM pair are decays", | |
1253480f | 5042 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
b2e375c7 | 5043 | fhMCPi0HighNLMPairNoMCMatch ->SetYTitle("N maxima"); |
5044 | fhMCPi0HighNLMPairNoMCMatch ->SetXTitle("E (GeV)"); | |
5045 | outputContainer->Add(fhMCPi0HighNLMPairNoMCMatch) ; | |
5046 | ||
5047 | fhMCPi0LowNLMPairNoMCMatch = new TH2F("hMCPi0LowNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays", | |
1253480f | 5048 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
b2e375c7 | 5049 | fhMCPi0LowNLMPairNoMCMatch ->SetYTitle("N maxima"); |
5050 | fhMCPi0LowNLMPairNoMCMatch ->SetXTitle("E (GeV)"); | |
5051 | outputContainer->Add(fhMCPi0LowNLMPairNoMCMatch) ; | |
5052 | ||
5053 | fhMCPi0AnyNLMPairNoMCMatch = new TH2F("hMCPi0AnyNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays", | |
1253480f | 5054 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
b2e375c7 | 5055 | fhMCPi0AnyNLMPairNoMCMatch ->SetYTitle("N maxima"); |
5056 | fhMCPi0AnyNLMPairNoMCMatch ->SetXTitle("E (GeV)"); | |
5057 | outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatch) ; | |
5058 | ||
5059 | fhMCPi0NoneNLMPairNoMCMatch = new TH2F("hMCPi0NoneNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, no NLM pair are decays", | |
1253480f | 5060 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
b2e375c7 | 5061 | fhMCPi0NoneNLMPairNoMCMatch ->SetYTitle("N maxima"); |
5062 | fhMCPi0NoneNLMPairNoMCMatch ->SetXTitle("E (GeV)"); | |
5063 | outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatch) ; | |
1253480f | 5064 | |
b2e375c7 | 5065 | |
36769d30 | 5066 | fhMCPi0HighNLMPairOverlap = new TH2F("hMCPi0HighNLMPairOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays", |
5067 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5068 | fhMCPi0HighNLMPairOverlap ->SetYTitle("N maxima"); | |
5069 | fhMCPi0HighNLMPairOverlap ->SetXTitle("E (GeV)"); | |
5070 | outputContainer->Add(fhMCPi0HighNLMPairOverlap) ; | |
5071 | ||
5072 | fhMCPi0LowNLMPairOverlap = new TH2F("hMCPi0LowNLMPairOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays", | |
5073 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5074 | fhMCPi0LowNLMPairOverlap ->SetYTitle("N maxima"); | |
5075 | fhMCPi0LowNLMPairOverlap ->SetXTitle("E (GeV)"); | |
5076 | outputContainer->Add(fhMCPi0LowNLMPairOverlap) ; | |
5077 | ||
5078 | fhMCPi0AnyNLMPairOverlap = new TH2F("hMCPi0AnyNLMPairOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays", | |
5079 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5080 | fhMCPi0AnyNLMPairOverlap ->SetYTitle("N maxima"); | |
5081 | fhMCPi0AnyNLMPairOverlap ->SetXTitle("E (GeV)"); | |
5082 | outputContainer->Add(fhMCPi0AnyNLMPairOverlap) ; | |
5083 | ||
5084 | fhMCPi0NoneNLMPairOverlap = new TH2F("hMCPi0NoneNLMPairOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays", | |
5085 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5086 | fhMCPi0NoneNLMPairOverlap ->SetYTitle("N maxima"); | |
5087 | fhMCPi0NoneNLMPairOverlap ->SetXTitle("E (GeV)"); | |
5088 | outputContainer->Add(fhMCPi0NoneNLMPairOverlap) ; | |
5089 | ||
5090 | fhMCPi0HighNLMPairNoMCMatchOverlap = new TH2F("hMCPi0HighNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays", | |
5091 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5092 | fhMCPi0HighNLMPairNoMCMatchOverlap ->SetYTitle("N maxima"); | |
5093 | fhMCPi0HighNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)"); | |
5094 | outputContainer->Add(fhMCPi0HighNLMPairNoMCMatchOverlap) ; | |
5095 | ||
5096 | fhMCPi0LowNLMPairNoMCMatchOverlap = new TH2F("hMCPi0LowNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays", | |
5097 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5098 | fhMCPi0LowNLMPairNoMCMatchOverlap ->SetYTitle("N maxima"); | |
5099 | fhMCPi0LowNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)"); | |
5100 | outputContainer->Add(fhMCPi0LowNLMPairNoMCMatchOverlap) ; | |
5101 | ||
5102 | fhMCPi0AnyNLMPairNoMCMatchOverlap = new TH2F("hMCPi0AnyNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays", | |
5103 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5104 | fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetYTitle("N maxima"); | |
5105 | fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)"); | |
5106 | outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatchOverlap) ; | |
5107 | ||
5108 | fhMCPi0NoneNLMPairNoMCMatchOverlap = new TH2F("hMCPi0NoneNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays", | |
5109 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5110 | fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetYTitle("N maxima"); | |
5111 | fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)"); | |
5112 | outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatchOverlap) ; | |
b583134f | 5113 | |
1253480f | 5114 | |
36769d30 | 5115 | fhMCPi0DecayPhotonHitHighLM = new TH2F("hMCPi0DecayPhotonHitHighLM","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima", |
83351853 | 5116 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
5117 | fhMCPi0DecayPhotonHitHighLM ->SetYTitle("N maxima"); | |
5118 | fhMCPi0DecayPhotonHitHighLM ->SetXTitle("E (GeV)"); | |
5119 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLM ) ; | |
5120 | ||
36769d30 | 5121 | fhMCPi0DecayPhotonAdjHighLM = new TH2F("hMCPi0DecayPhotonAdjHighLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima", |
1253480f | 5122 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
83351853 | 5123 | fhMCPi0DecayPhotonAdjHighLM ->SetYTitle("N maxima"); |
5124 | fhMCPi0DecayPhotonAdjHighLM ->SetXTitle("E (GeV)"); | |
5125 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLM ) ; | |
1253480f | 5126 | |
36769d30 | 5127 | fhMCPi0DecayPhotonHitOtherLM = new TH2F("hMCPi0DecayPhotonHitOtherLM","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima", |
1253480f | 5128 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
83351853 | 5129 | fhMCPi0DecayPhotonHitOtherLM ->SetYTitle("N maxima"); |
5130 | fhMCPi0DecayPhotonHitOtherLM ->SetXTitle("E (GeV)"); | |
5131 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLM ) ; | |
5132 | ||
36769d30 | 5133 | fhMCPi0DecayPhotonAdjOtherLM = new TH2F("hMCPi0DecayPhotonAdjOtherLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima", |
1253480f | 5134 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
83351853 | 5135 | fhMCPi0DecayPhotonAdjOtherLM ->SetYTitle("N maxima"); |
5136 | fhMCPi0DecayPhotonAdjOtherLM ->SetXTitle("E (GeV)"); | |
5137 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLM ) ; | |
1253480f | 5138 | |
36769d30 | 5139 | fhMCPi0DecayPhotonAdjacent = new TH2F("hMCPi0DecayPhotonAdjacent","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells", |
5140 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5141 | fhMCPi0DecayPhotonAdjacent ->SetYTitle("N maxima"); | |
5142 | fhMCPi0DecayPhotonAdjacent ->SetXTitle("E (GeV)"); | |
5143 | outputContainer->Add(fhMCPi0DecayPhotonAdjacent ) ; | |
5144 | ||
5145 | fhMCPi0DecayPhotonHitNoLM = new TH2F("hMCPi0DecayPhotonHitNoLM","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima", | |
5146 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
83351853 | 5147 | fhMCPi0DecayPhotonHitNoLM ->SetYTitle("N maxima"); |
5148 | fhMCPi0DecayPhotonHitNoLM ->SetXTitle("E (GeV)"); | |
5149 | outputContainer->Add(fhMCPi0DecayPhotonHitNoLM ) ; | |
5150 | ||
36769d30 | 5151 | |
5152 | fhMCPi0DecayPhotonHitHighLMOverlap = new TH2F("hMCPi0DecayPhotonHitHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima, there was an overlap", | |
5153 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5154 | fhMCPi0DecayPhotonHitHighLMOverlap ->SetYTitle("N maxima"); | |
5155 | fhMCPi0DecayPhotonHitHighLMOverlap ->SetXTitle("E (GeV)"); | |
5156 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlap ) ; | |
5157 | ||
5158 | fhMCPi0DecayPhotonAdjHighLMOverlap = new TH2F("hMCPi0DecayPhotonAdjHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima, there was an overlap", | |
5159 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5160 | fhMCPi0DecayPhotonAdjHighLMOverlap ->SetYTitle("N maxima"); | |
5161 | fhMCPi0DecayPhotonAdjHighLMOverlap ->SetXTitle("E (GeV)"); | |
5162 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlap ) ; | |
5163 | ||
5164 | fhMCPi0DecayPhotonHitOtherLMOverlap = new TH2F("hMCPi0DecayPhotonHitOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima, there was an overlap", | |
5165 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5166 | fhMCPi0DecayPhotonHitOtherLMOverlap ->SetYTitle("N maxima"); | |
5167 | fhMCPi0DecayPhotonHitOtherLMOverlap ->SetXTitle("E (GeV)"); | |
5168 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlap ) ; | |
5169 | ||
5170 | fhMCPi0DecayPhotonAdjOtherLMOverlap = new TH2F("hMCPi0DecayPhotonAdjOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima, there was an overlap", | |
5171 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5172 | fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetYTitle("N maxima"); | |
5173 | fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetXTitle("E (GeV)"); | |
5174 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlap ) ; | |
5175 | ||
5176 | fhMCPi0DecayPhotonAdjacentOverlap = new TH2F("hMCPi0DecayPhotonAdjacentOverlap","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells, there was an overlap", | |
5177 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5178 | fhMCPi0DecayPhotonAdjacentOverlap ->SetYTitle("N maxima"); | |
5179 | fhMCPi0DecayPhotonAdjacentOverlap ->SetXTitle("E (GeV)"); | |
5180 | outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlap ) ; | |
5181 | ||
5182 | fhMCPi0DecayPhotonHitNoLMOverlap = new TH2F("hMCPi0DecayPhotonHitNoLMOverlap","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima, there was an overlap", | |
5183 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5184 | fhMCPi0DecayPhotonHitNoLMOverlap ->SetYTitle("N maxima"); | |
5185 | fhMCPi0DecayPhotonHitNoLMOverlap ->SetXTitle("E (GeV)"); | |
5186 | outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlap ) ; | |
5187 | ||
1253480f | 5188 | |
b583134f | 5189 | for(Int_t nlm = 0; nlm < 3; nlm++) |
5190 | { | |
5191 | fhMCPi0DecayPhotonHitHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sMass",snlm[nlm].Data()), | |
5192 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5193 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5194 | fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5195 | fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5196 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMMass[nlm] ) ; | |
5197 | ||
5198 | fhMCPi0DecayPhotonAdjHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sMass",snlm[nlm].Data()), | |
5199 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5200 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5201 | fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5202 | fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5203 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMMass[nlm] ) ; | |
5204 | ||
5205 | fhMCPi0DecayPhotonHitOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sMass",snlm[nlm].Data()), | |
5206 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5207 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5208 | fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5209 | fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5210 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMMass[nlm] ) ; | |
5211 | ||
5212 | fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sMass",snlm[nlm].Data()), | |
5213 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5214 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5215 | fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5216 | fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5217 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ) ; | |
5218 | ||
5219 | fhMCPi0DecayPhotonAdjacentMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sMass",snlm[nlm].Data()), | |
5220 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit adjacent cells",snlm[nlm].Data()), | |
29555e96 | 5221 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5222 | fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5223 | fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetXTitle("E (GeV)"); | |
5224 | outputContainer->Add(fhMCPi0DecayPhotonAdjacentMass[nlm] ) ; | |
5225 | ||
5226 | fhMCPi0DecayPhotonHitNoLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sMass",snlm[nlm].Data()), | |
5227 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon do not hit Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5228 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5229 | fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5230 | fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5231 | outputContainer->Add(fhMCPi0DecayPhotonHitNoLMMass[nlm] ) ; | |
5232 | ||
5233 | ||
5234 | fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapMass",snlm[nlm].Data()), | |
5235 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5236 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5237 | fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5238 | fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5239 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm]) ; | |
5240 | ||
5241 | fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapMass",snlm[nlm].Data()), | |
5242 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5243 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5244 | fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5245 | fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5246 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm]) ; | |
5247 | ||
5248 | fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapMass",snlm[nlm].Data()), | |
5249 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5250 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5251 | fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5252 | fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5253 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm]) ; | |
5254 | ||
5255 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapMass",snlm[nlm].Data()), | |
5256 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5257 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5258 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5259 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5260 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm]) ; | |
5261 | ||
5262 | fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sOverlapMass",snlm[nlm].Data()), | |
5263 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit adjacent cells, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5264 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5265 | fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5266 | fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5267 | outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlapMass[nlm]) ; | |
5268 | ||
5269 | fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sOverlapMass",snlm[nlm].Data()), | |
5270 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon do not hit Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5271 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5272 | fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5273 | fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5274 | outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm]) ; | |
29555e96 | 5275 | |
b583134f | 5276 | fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1",snlm[nlm].Data()), |
29555e96 | 5277 | Form("(E_{reco}-E_{gen})/E_{gen} vs E pi0 for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5278 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5279 | fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5280 | fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5281 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ) ; |
5282 | ||
5283 | fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5284 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), |
5285 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5286 | fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5287 | fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetXTitle("E pi0 (GeV)"); |
b583134f | 5288 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ) ; |
5289 | ||
5290 | fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5291 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), |
5292 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5293 | fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
5294 | fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
b583134f | 5295 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ) ; |
5296 | ||
5297 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5298 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), |
5299 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5300 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5301 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5302 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ) ; |
5303 | ||
5304 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5305 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), |
5306 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5307 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5308 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5309 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm]) ; |
5310 | ||
5311 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5312 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), |
5313 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5314 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5315 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5316 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm]) ; |
5317 | ||
5318 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5319 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), |
5320 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5321 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5322 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5323 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm]) ; |
5324 | ||
5325 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5326 | Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), |
5327 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5328 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5329 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5330 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm]) ; |
5331 | ||
5332 | fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5333 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5334 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5335 | fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5336 | fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5337 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ) ; |
5338 | ||
5339 | fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5340 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5341 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5342 | fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5343 | fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5344 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ) ; |
5345 | ||
5346 | fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5347 | Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5348 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5349 | fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5350 | fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5351 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ) ; |
5352 | ||
5353 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5354 | Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5355 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5356 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5357 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5358 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ) ; |
5359 | ||
5360 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5361 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), |
cb99fa55 | 5362 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5363 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5364 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5365 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm]) ; |
5366 | ||
5367 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5368 | Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), |
cb99fa55 | 5369 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5370 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5371 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5372 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm]) ; |
5373 | ||
5374 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5375 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), |
cb99fa55 | 5376 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5377 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5378 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5379 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm]) ; |
5380 | ||
5381 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5382 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), |
cb99fa55 | 5383 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5384 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5385 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5386 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm]) ; |
29555e96 | 5387 | |
5388 | ||
5389 | fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1vsELM1",snlm[nlm].Data()), | |
5390 | Form("(E_{reco}-E_{gen})/E_{gen} vs E for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), | |
5391 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5392 | fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5393 | fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5394 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ) ; | |
5395 | ||
5396 | fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1vsELM1",snlm[nlm].Data()), | |
5397 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), | |
5398 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5399 | fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5400 | fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetXTitle("E (GeV)"); | |
5401 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ) ; | |
5402 | ||
5403 | fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()), | |
5404 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), | |
5405 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5406 | fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5407 | fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5408 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ) ; | |
5409 | ||
5410 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()), | |
5411 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), | |
5412 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5413 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5414 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5415 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ) ; | |
5416 | ||
5417 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()), | |
5418 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5419 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5420 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5421 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5422 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm]) ; | |
5423 | ||
5424 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()), | |
5425 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5426 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5427 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5428 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5429 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm]) ; | |
5430 | ||
5431 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()), | |
5432 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5433 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5434 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5435 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5436 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm]) ; | |
5437 | ||
5438 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()), | |
5439 | Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5440 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5441 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5442 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5443 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm]) ; | |
5444 | ||
5445 | fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2vsELM2",snlm[nlm].Data()), | |
5446 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), | |
5447 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5448 | fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5449 | fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5450 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ) ; | |
5451 | ||
5452 | fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2vsELM2",snlm[nlm].Data()), | |
5453 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), | |
5454 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5455 | fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5456 | fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5457 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ) ; | |
5458 | ||
5459 | fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()), | |
5460 | Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), | |
5461 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5462 | fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5463 | fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5464 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ) ; | |
5465 | ||
5466 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()), | |
5467 | Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), | |
5468 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5469 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5470 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5471 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ) ; | |
5472 | ||
5473 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()), | |
5474 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5475 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5476 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5477 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5478 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm]) ; | |
5479 | ||
5480 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()), | |
5481 | Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5482 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5483 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5484 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5485 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm]) ; | |
5486 | ||
5487 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()), | |
5488 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5489 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5490 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5491 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5492 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm]) ; | |
5493 | ||
5494 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()), | |
5495 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5496 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5497 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5498 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5499 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm]) ; | |
5500 | ||
b583134f | 5501 | } |
5502 | ||
b2e375c7 | 5503 | fhMCEOverlapType = new TH2F("hMCEOverlapType","Kind of overlap particle, neutral clusters", |
5504 | nptbins,ptmin,ptmax,5,0,5); | |
5505 | //fhMCEOverlapType ->SetYTitle("Overlap Type"); | |
5506 | fhMCEOverlapType->GetYaxis()->SetBinLabel(1 ,"#gamma"); | |
5507 | fhMCEOverlapType->GetYaxis()->SetBinLabel(2 ,"e^{#pm}"); | |
5508 | fhMCEOverlapType->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}"); | |
5509 | fhMCEOverlapType->GetYaxis()->SetBinLabel(4 ,"hadron^{0}"); | |
5510 | fhMCEOverlapType->GetYaxis()->SetBinLabel(5 ,"??"); | |
36769d30 | 5511 | fhMCEOverlapType->SetXTitle("Cluster E (GeV)"); |
b2e375c7 | 5512 | outputContainer->Add(fhMCEOverlapType) ; |
1253480f | 5513 | |
b2e375c7 | 5514 | fhMCEOverlapTypeMatch = new TH2F("hMCEOverlapTypeMatched","Kind of overlap particle, charged clusters", |
1253480f | 5515 | nptbins,ptmin,ptmax,5,0,5); |
b2e375c7 | 5516 | //fhMCEOverlapTypeMatch ->SetYTitle("Overlap Type"); |
5517 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(1 ,"#gamma"); | |
5518 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(2 ,"e^{#pm}"); | |
5519 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}"); | |
5520 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(4 ,"hadron^{0}"); | |
5521 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(5 ,"??"); | |
5522 | fhMCEOverlapTypeMatch->SetXTitle("Cluster E (GeV)"); | |
5523 | outputContainer->Add(fhMCEOverlapTypeMatch) ; | |
1253480f | 5524 | |
b2e375c7 | 5525 | }// MC analysis, check overlaps |
5526 | ||
ce49dd72 | 5527 | |
b583134f | 5528 | if(IsDataMC()) |
5529 | { | |
5530 | for(Int_t inlm = 0; inlm < 3; inlm++) | |
5531 | { | |
5532 | fhAsyMCGenRecoDiffMCPi0[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0",snlm[inlm].Data()), | |
5533 | Form("Reconstructed - Generated asymmetry with NLM=%d vs E, MC Pi0",inlm), | |
5534 | nptbins,ptmin,ptmax,200,-1,1); | |
5535 | fhAsyMCGenRecoDiffMCPi0[inlm]->SetYTitle("A_{reco} - A_{gen}"); | |
5536 | fhAsyMCGenRecoDiffMCPi0[inlm]->SetXTitle("E (GeV)"); | |
5537 | outputContainer->Add(fhAsyMCGenRecoDiffMCPi0[inlm]) ; | |
5538 | ||
5539 | fhAsyMCGenRecoDiffMCPi0Conv[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0Conv",snlm[inlm].Data()), | |
5540 | Form("Reconstructed - Generated asymmetry with NLM=%d vs E, MC Pi0Conv",inlm), | |
5541 | nptbins,ptmin,ptmax,200,-1,1); | |
5542 | fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetYTitle("A_{reco} - A_{gen}"); | |
5543 | fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetXTitle("E (GeV)"); | |
5544 | outputContainer->Add(fhAsyMCGenRecoDiffMCPi0Conv[inlm]) ; | |
5545 | } | |
5546 | } | |
5547 | ||
cb99fa55 | 5548 | if(fFillArmenterosHisto) |
5549 | { | |
be894c1d | 5550 | Int_t narmbins = 400; |
5551 | Float_t armmin = 0; | |
5552 | Float_t armmax = 0.4; | |
5553 | ||
ed10b649 | 5554 | for(Int_t i = 0; i < 7; i++) // MC bin |
cb99fa55 | 5555 | { |
5556 | for(Int_t j = 0; j < 4; j++) // E bin | |
5557 | { | |
5558 | fhArmNLocMax1[i][j] = new TH2F(Form("hArmNLocMax1EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5559 | Form("Armenteros of splitted cluster with NLM=1, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5560 | 200, -1, 1, narmbins,armmin,armmax); | |
5561 | fhArmNLocMax1[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5562 | fhArmNLocMax1[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5563 | outputContainer->Add(fhArmNLocMax1[i][j]) ; |
5564 | ||
5565 | fhArmNLocMax2[i][j] = new TH2F(Form("hArmNLocMax2EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5566 | Form("Armenteros of splitted cluster with NLM=2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5567 | 200, -1, 1, narmbins,armmin,armmax); | |
5568 | fhArmNLocMax2[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5569 | fhArmNLocMax2[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5570 | outputContainer->Add(fhArmNLocMax2[i][j]) ; |
5571 | ||
5572 | fhArmNLocMaxN[i][j] = new TH2F(Form("hArmNLocMaxNEBin%d%s",j,pname[i].Data()), | |
be894c1d | 5573 | Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5574 | 200, -1, 1, narmbins,armmin,armmax); | |
5575 | fhArmNLocMaxN[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5576 | fhArmNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5577 | outputContainer->Add(fhArmNLocMaxN[i][j]) ; |
5578 | ||
5579 | if(asyOn || m02On) | |
5580 | { | |
5581 | fhArmAfterCutsNLocMax1[i][j] = new TH2F(Form("hArmAfterCutsNLocMax1EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5582 | Form("Armenteros of splitted cluster with NLM=1, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5583 | 200, -1, 1, narmbins,armmin,armmax); | |
5584 | fhArmAfterCutsNLocMax1[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5585 | fhArmAfterCutsNLocMax1[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5586 | outputContainer->Add(fhArmAfterCutsNLocMax1[i][j]) ; |
5587 | ||
5588 | fhArmAfterCutsNLocMax2[i][j] = new TH2F(Form("hArmAfterCutsNLocMax2EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5589 | Form("Armenteros of splitted cluster with NLM=2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5590 | 200, -1, 1, narmbins,armmin,armmax); | |
5591 | fhArmAfterCutsNLocMax2[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5592 | fhArmAfterCutsNLocMax2[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5593 | outputContainer->Add(fhArmAfterCutsNLocMax2[i][j]) ; |
5594 | ||
5595 | fhArmAfterCutsNLocMaxN[i][j] = new TH2F(Form("hArmAfterCutsNLocMaxNEBin%d%s",j,pname[i].Data()), | |
be894c1d | 5596 | Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5597 | 200, -1, 1, narmbins,armmin,armmax); | |
5598 | fhArmAfterCutsNLocMaxN[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5599 | fhArmAfterCutsNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5600 | outputContainer->Add(fhArmAfterCutsNLocMaxN[i][j]) ; |
5601 | } | |
5602 | ||
5603 | fhArmPi0NLocMax1[i][j] = new TH2F(Form("hArmPi0NLocMax1EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5604 | Form("Armenteros of splitted cluster with NLM=1, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5605 | 200, -1, 1, narmbins,armmin,armmax); | |
5606 | fhArmPi0NLocMax1[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5607 | fhArmPi0NLocMax1[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5608 | outputContainer->Add(fhArmPi0NLocMax1[i][j]) ; |
5609 | ||
5610 | fhArmPi0NLocMax2[i][j] = new TH2F(Form("hArmPi0NLocMax2EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5611 | Form("Armenteros of splitted cluster with NLM=2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5612 | 200, -1, 1, narmbins,armmin,armmax); | |
5613 | fhArmPi0NLocMax2[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5614 | fhArmPi0NLocMax2[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5615 | outputContainer->Add(fhArmPi0NLocMax2[i][j]) ; |
5616 | ||
5617 | fhArmPi0NLocMaxN[i][j] = new TH2F(Form("hArmPi0NLocMaxNEBin%d%s",j,pname[i].Data()), | |
be894c1d | 5618 | Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5619 | 200, -1, 1, narmbins,armmin,armmax); | |
5620 | fhArmPi0NLocMaxN[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5621 | fhArmPi0NLocMaxN[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5622 | outputContainer->Add(fhArmPi0NLocMaxN[i][j]) ; |
5623 | ||
5624 | } | |
5625 | } | |
5626 | } | |
5627 | ||
992b14a7 | 5628 | return outputContainer ; |
5629 | ||
5630 | } | |
5631 | ||
b2e375c7 | 5632 | //_____________________________________________________________________________ |
4914e781 | 5633 | void AliAnaInsideClusterInvariantMass::GetMCIndex(AliVCluster* cluster, |
5634 | Int_t & mcindex, Int_t & tag) | |
b2e375c7 | 5635 | { |
5636 | ||
5637 | // Assign mc index depending on MC bit set, to be used in histograms arrays | |
1253480f | 5638 | |
4914e781 | 5639 | tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader()); |
b2e375c7 | 5640 | |
5641 | if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) && | |
5642 | !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPi0; | |
5643 | else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) ) mcindex = kmcPi0Conv; | |
5644 | else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta) ) mcindex = kmcEta; | |
5645 | else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) && | |
5646 | !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPhoton; | |
5647 | else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) && | |
5648 | GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcConversion; | |
cb99fa55 | 5649 | else if (!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron) ) mcindex = kmcHadron; |
5650 | ||
5651 | //printf("MC index %d\n",mcindex); | |
b2e375c7 | 5652 | |
5653 | } | |
5654 | ||
1253480f | 5655 | //______________________________________________________________________________________________________________ |
4914e781 | 5656 | void AliAnaInsideClusterInvariantMass::GetMCPrimaryKine(AliVCluster* cluster, const Int_t mcindex, |
5657 | const Int_t mctag, const Bool_t matched, | |
0186b6a2 | 5658 | Float_t & eprim, Float_t & asymGen, Float_t & angleGen, Int_t & noverlaps ) |
b2e375c7 | 5659 | { |
5660 | // Check origin of the candidates, get primary kinematics if overlapped meson decay | |
5661 | ||
b2e375c7 | 5662 | Bool_t ok = kFALSE; |
5663 | Int_t mcLabel = cluster->GetLabel(); | |
5664 | ||
5665 | TLorentzVector primary = GetMCAnalysisUtils()->GetMother(mcLabel,GetReader(),ok); | |
5666 | eprim = primary.E(); | |
5667 | ||
36769d30 | 5668 | Int_t mesonLabel = -1; |
5669 | ||
b2e375c7 | 5670 | if(mcindex == kmcPi0 || mcindex == kmcEta || mcindex == kmcPi0Conv) |
5671 | { | |
5672 | if(mcindex == kmcPi0 || mcindex == kmcPi0Conv) | |
5673 | { | |
0186b6a2 | 5674 | GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,111,GetReader(),asymGen,angleGen,ok); |
5675 | asymGen = TMath::Abs(asymGen); | |
36769d30 | 5676 | TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,111,GetReader(),ok,mesonLabel); |
b2e375c7 | 5677 | if(grandmom.E() > 0 && ok) eprim = grandmom.E(); |
5678 | } | |
5679 | else | |
5680 | { | |
0186b6a2 | 5681 | GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,221,GetReader(),asymGen,angleGen,ok); |
5682 | asymGen = TMath::Abs(asymGen); | |
36769d30 | 5683 | TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,221,GetReader(),ok,mesonLabel); |
b2e375c7 | 5684 | if(grandmom.E() > 0 && ok) eprim = grandmom.E(); |
5685 | } | |
5686 | } | |
5687 | ||
5688 | if(!fFillMCOverlapHisto) return; | |
36769d30 | 5689 | |
4914e781 | 5690 | const UInt_t nlabels = cluster->GetNLabels(); |
5691 | Int_t overpdg[nlabels]; | |
5692 | noverlaps = GetMCAnalysisUtils()->GetNOverlaps(cluster->GetLabels(), nlabels,mctag,mesonLabel,GetReader(),overpdg); | |
5693 | ||
5694 | for(Int_t iover = 0; iover < noverlaps; iover++) | |
5695 | { | |
36769d30 | 5696 | Float_t histobin = -1; |
4914e781 | 5697 | Int_t mpdg = overpdg[iover]; |
5698 | ||
36769d30 | 5699 | if (mpdg==22) histobin = 0.5; |
5700 | else if(TMath::Abs(mpdg)==11) histobin = 1.5; | |
5701 | else if(mpdg==-999999) histobin = 4.5; | |
5702 | else | |
5703 | { | |
5704 | Double_t charge = TDatabasePDG::Instance()->GetParticle(mpdg)->Charge(); | |
5705 | if(TMath::Abs(charge) > 0 ) histobin = 2.5; | |
5706 | else histobin = 3.5; | |
5707 | //printf("charge %f\n",charge); | |
5708 | } | |
5709 | ||
5710 | //printf("\t pdg = %d, histobin %2.1f\n",mpdg,histobin); | |
5711 | if(histobin > 0) | |
5712 | { | |
5713 | if(matched)fhMCEOverlapType ->Fill(cluster->E(),histobin); | |
5714 | else fhMCEOverlapTypeMatch->Fill(cluster->E(),histobin); | |
5715 | } | |
b2e375c7 | 5716 | } |
b2e375c7 | 5717 | } |
5718 | ||
992b14a7 | 5719 | //___________________________________________ |
5720 | void AliAnaInsideClusterInvariantMass::Init() | |
b2e375c7 | 5721 | { |
992b14a7 | 5722 | //Init |
5723 | //Do some checks | |
3c1d9afb | 5724 | if(fCalorimeter == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD()) |
5725 | { | |
992b14a7 | 5726 | printf("AliAnaInsideClusterInvariantMass::Init() - !!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n"); |
5727 | abort(); | |
5728 | } | |
3c1d9afb | 5729 | else if(fCalorimeter == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD()) |
5730 | { | |
992b14a7 | 5731 | printf("AliAnaInsideClusterInvariantMass::Init() - !!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n"); |
5732 | abort(); | |
5733 | } | |
5734 | ||
3c1d9afb | 5735 | if( GetReader()->GetDataType() == AliCaloTrackReader::kMC ) |
5736 | { | |
992b14a7 | 5737 | printf("AliAnaInsideClusterInvariantMass::Init() - !!STOP: You want to use pure MC data!!\n"); |
5738 | abort(); | |
5739 | ||
5740 | } | |
5741 | ||
5742 | } | |
5743 | ||
5744 | //_____________________________________________________ | |
5745 | void AliAnaInsideClusterInvariantMass::InitParameters() | |
5746 | { | |
5747 | //Initialize the parameters of the analysis. | |
5748 | AddToHistogramsName("AnaPi0InsideClusterInvariantMass_"); | |
5749 | ||
5750 | fCalorimeter = "EMCAL" ; | |
29ca9cad | 5751 | |
992b14a7 | 5752 | fMinNCells = 4 ; |
2cb134fb | 5753 | fMinBadDist = 2 ; |
dbe09c26 | 5754 | |
b2e375c7 | 5755 | fHistoECut = 8 ; |
5756 | ||
dbe09c26 | 5757 | fSSWeightN = 5; |
5758 | fSSWeight[0] = 4.6; fSSWeight[1] = 4.7; fSSWeight[2] = 4.8; fSSWeight[3] = 4.9; fSSWeight[4] = 5.0; | |
5759 | fSSWeight[5] = 5.1; fSSWeight[6] = 5.2; fSSWeight[7] = 5.3; fSSWeight[8] = 5.4; fSSWeight[9] = 5.5; | |
19391b8c | 5760 | |
5761 | fSSECellCutN = 10; | |
5762 | fSSECellCut[0] = 0.16; fSSECellCut[1] = 0.18; fSSECellCut[2] = 0.2; fSSECellCut[3] = 0.22; fSSECellCut[4] = 0.24; | |
5763 | fSSECellCut[5] = 0.26; fSSECellCut[6] = 0.28; fSSECellCut[7] = 0.3; fSSECellCut[8] = 0.32; fSSECellCut[9] = 0.34; | |
5764 | ||
992b14a7 | 5765 | } |
5766 | ||
5767 | ||
5768 | //__________________________________________________________________ | |
5769 | void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms() | |
5770 | { | |
5771 | //Search for pi0 in fCalorimeter with shower shape analysis | |
5772 | ||
5773 | TObjArray * pl = 0x0; | |
5774 | AliVCaloCells* cells = 0x0; | |
5775 | ||
5776 | //Select the Calorimeter of the photon | |
2cb134fb | 5777 | if(fCalorimeter == "PHOS") |
5778 | { | |
992b14a7 | 5779 | pl = GetPHOSClusters(); |
5780 | cells = GetPHOSCells(); | |
5781 | } | |
2cb134fb | 5782 | else if (fCalorimeter == "EMCAL") |
5783 | { | |
992b14a7 | 5784 | pl = GetEMCALClusters(); |
5785 | cells = GetEMCALCells(); | |
5786 | } | |
5787 | ||
3c1d9afb | 5788 | if(!pl || !cells) |
5789 | { | |
992b14a7 | 5790 | Info("MakeAnalysisFillHistograms","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data()); |
5791 | return; | |
5792 | } | |
5793 | ||
5794 | if(fCalorimeter == "PHOS") return; // Not implemented for PHOS yet | |
5795 | ||
2cb134fb | 5796 | for(Int_t icluster = 0; icluster < pl->GetEntriesFast(); icluster++) |
5797 | { | |
992b14a7 | 5798 | AliVCluster * cluster = (AliVCluster*) (pl->At(icluster)); |
5799 | ||
b2e375c7 | 5800 | //------------------------------------------- |
5801 | // Get cluster parameters, do some rejection | |
5802 | //------------------------------------------- | |
8edbd100 | 5803 | |
992b14a7 | 5804 | Float_t en = cluster->E(); |
5805 | Float_t l0 = cluster->GetM02(); | |
5806 | Int_t nc = cluster->GetNCells(); | |
2cb134fb | 5807 | Float_t bd = cluster->GetDistanceToBadChannel() ; |
d2655d46 | 5808 | |
2cb134fb | 5809 | //If too small or big E or low number of cells, or close to a bad channel skip it |
b2e375c7 | 5810 | |
8edbd100 | 5811 | if( en < GetMinEnergy() || en > GetMaxEnergy() || nc < fMinNCells || bd < fMinBadDist) continue ; |
2cb134fb | 5812 | |
83351853 | 5813 | //printf("en %2.3f GetMinEnergy() %2.3f, GetMaxEnergy() %2.3f , nc %d fMinNCells %d\n",en, GetMinEnergy(),GetMaxEnergy(),nc ,fMinNCells); |
5814 | ||
b2e375c7 | 5815 | // Track-cluster matching |
5816 | ||
5817 | Bool_t matched = IsTrackMatched(cluster,GetReader()->GetInputEvent()); | |
5818 | if(!fFillTMHisto && matched) continue ; | |
5819 | ||
5820 | // Get cluster angles | |
5821 | ||
9554fc65 | 5822 | TLorentzVector lv; |
5823 | cluster->GetMomentum(lv, GetVertex(0)); | |
5824 | Float_t eta = lv.Eta(); | |
5825 | Float_t phi = lv.Phi(); | |
5826 | if(phi<0) phi=+TMath::TwoPi(); | |
5827 | ||
2cb134fb | 5828 | //printf("en %2.2f, GetMinEnergy() %2.2f, GetMaxEnergy() %2.2f, nc %d, fMinNCells %d, bd %2.2f, fMinBadDist %2.2f\n", |
5829 | // en,GetMinEnergy(), GetMaxEnergy(), nc, fMinNCells, bd, fMinBadDist); | |
5830 | ||
b2e375c7 | 5831 | // Get PID, N local maximum, *** split cluster *** |
d2655d46 | 5832 | |
3c1d9afb | 5833 | Int_t nMax = 0; |
bfdcf7fb | 5834 | Double_t mass = 0., angle = 0.; |
cb99fa55 | 5835 | TLorentzVector lv1, lv2; |
4914e781 | 5836 | Int_t absId1 =-1; Int_t absId2 =-1; |
5837 | Float_t distbad1 =-1; Float_t distbad2 =-1; | |
5838 | Bool_t fidcut1 = 0; Bool_t fidcut2 = 0; | |
b2e375c7 | 5839 | |
3c1d9afb | 5840 | Int_t pidTag = GetCaloPID()->GetIdentifiedParticleTypeFromClusterSplitting(cluster,cells,GetCaloUtils(), |
19391b8c | 5841 | GetVertex(0), nMax, mass, angle, |
cb99fa55 | 5842 | lv1,lv2,absId1,absId2, |
4914e781 | 5843 | distbad1,distbad2,fidcut1,fidcut2); |
5c46c992 | 5844 | if (nMax <= 0) |
5845 | { | |
de454976 | 5846 | if(GetDebug() > 0 ) |
5847 | printf("AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms() - No local maximum found! It did not pass CaloPID selection criteria \n"); | |
5c46c992 | 5848 | |
4914e781 | 5849 | continue; |
992b14a7 | 5850 | } |
5851 | ||
ce49dd72 | 5852 | // Set some index for array histograms |
5853 | ||
5854 | Int_t inlm = -1; | |
5855 | if (nMax == 1) inlm = 0; | |
5856 | else if(nMax == 2) inlm = 1; | |
5857 | else if(nMax > 2) inlm = 2; | |
5858 | else printf("Wrong N local maximum -> %d, n cells in cluster %d \n",nMax,nc); | |
5859 | ||
4914e781 | 5860 | // Skip events where one of the new clusters (lowest energy) is close to an EMCal border or a bad channel |
1253480f | 5861 | if( (fCheckSplitDistToBad) && |
5862 | (!fidcut2 || !fidcut1 || distbad1 < fMinBadDist || distbad2 < fMinBadDist)) | |
4914e781 | 5863 | { |
5864 | if(GetDebug() > 1) | |
5865 | printf("AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms() - Dist to bad channel cl1 %f, cl2 %f; fid cl1 %d, cl2 %d \n", | |
5866 | distbad1,distbad2, fidcut1,fidcut2); | |
ce49dd72 | 5867 | |
5868 | if(distbad1 < fMinBadDist || distbad2 < fMinBadDist) | |
5869 | { | |
5870 | fhMassBadDistClose[inlm]->Fill(en,mass); | |
5871 | fhM02BadDistClose [inlm]->Fill(en,l0 ); | |
5872 | } | |
5873 | ||
5874 | if(!fidcut1 || !fidcut2) | |
5875 | { | |
5876 | fhMassOnBorder[inlm]->Fill(en,mass); | |
5877 | fhM02OnBorder [inlm]->Fill(en,l0 ); | |
5878 | } | |
5879 | ||
4914e781 | 5880 | continue ; |
5881 | } | |
5882 | ||
b2e375c7 | 5883 | // Get sub-cluster parameters |
5884 | ||
cb99fa55 | 5885 | Float_t e1 = lv1.Energy(); |
5886 | Float_t e2 = lv2.Energy(); | |
cfdf2b91 | 5887 | |
a1fd1b69 | 5888 | Double_t tof1 = cells->GetCellTime(absId1); |
5889 | GetCaloUtils()->RecalibrateCellTime(tof1, fCalorimeter, absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber()); | |
5890 | tof1*=1.e9; | |
5891 | ||
5892 | Double_t tof2 = cells->GetCellTime(absId2); | |
5893 | GetCaloUtils()->RecalibrateCellTime(tof2, fCalorimeter, absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber()); | |
5894 | tof2*=1.e9; | |
5895 | ||
5896 | Double_t t12diff = tof1-tof2; | |
5897 | ||
fc01318e | 5898 | Float_t splitFrac = (e1+e2)/en; |
cfdf2b91 | 5899 | |
e671adc2 | 5900 | Float_t asym = -10; |
5901 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
29ca9cad | 5902 | |
b2e375c7 | 5903 | // |
5904 | ||
5905 | Int_t ebin = -1; | |
5906 | if(en > 8 && en <= 12) ebin = 0; | |
5907 | if(en > 12 && en <= 16) ebin = 1; | |
5908 | if(en > 16 && en <= 20) ebin = 2; | |
5909 | if(en > 20) ebin = 3; | |
5910 | ||
1253480f | 5911 | // MC data histograms and some related calculations |
5912 | // mc tag, n overlaps, asym of generated mesons | |
b2e375c7 | 5913 | |
0186b6a2 | 5914 | Int_t mcindex = -1; |
5915 | Int_t mctag = -1; | |
5916 | Float_t eprim = -1; | |
5917 | Float_t asymGen = -2; | |
5918 | Float_t angleGen = 2000; | |
5919 | Int_t noverlaps = 0; | |
b2e375c7 | 5920 | |
b2e375c7 | 5921 | if(IsDataMC()) |
1253480f | 5922 | { |
5923 | // MC indexes | |
b2e375c7 | 5924 | |
1253480f | 5925 | GetMCIndex(cluster,mcindex,mctag); |
5926 | ||
5927 | // MC primary kine, generation fractions | |
b2e375c7 | 5928 | |
0186b6a2 | 5929 | GetMCPrimaryKine(cluster,mcindex,mctag,matched,eprim,asymGen,angleGen,noverlaps); |
1253480f | 5930 | |
5931 | // For cluster with MC pi0 and more than 1 maxima | |
b2e375c7 | 5932 | |
cb99fa55 | 5933 | } |
5c46c992 | 5934 | |
b2e375c7 | 5935 | // |
2a77f6f4 | 5936 | |
1253480f | 5937 | FillHistograms1(en, e1, e2, nMax, mass, l0, eta, phi, matched, mcindex); |
4914e781 | 5938 | |
5939 | // | |
5940 | ||
1253480f | 5941 | if(fFillNCellHisto) |
5942 | FillNCellHistograms(nc,en, nMax,matched, mcindex,mass,l0); | |
d2655d46 | 5943 | |
b2e375c7 | 5944 | // |
bb2d339b | 5945 | |
1253480f | 5946 | if(fFillSSExtraHisto) |
cb99fa55 | 5947 | FillSSExtraHistograms(cluster, nMax, matched,mcindex,mass,ebin) ; |
d2655d46 | 5948 | |
b2e375c7 | 5949 | // |
1253480f | 5950 | |
cb99fa55 | 5951 | if(!matched && ebin >= 0 && fFillEbinHisto) |
1253480f | 5952 | FillEBinHistograms(ebin,nMax,mcindex,splitFrac,mass,asym,l0); |
fc01318e | 5953 | |
b2e375c7 | 5954 | // |
5955 | ||
1253480f | 5956 | if(fFillAngleHisto) |
29555e96 | 5957 | FillAngleHistograms(nMax,matched,mcindex,en,angle,mass,angleGen,l0, asym,pidTag); |
1253480f | 5958 | |
cb99fa55 | 5959 | if(fFillArmenterosHisto && ebin >= 0) |
29555e96 | 5960 | FillArmenterosHistograms(nMax, ebin, mcindex, en, lv1, lv2, l0, pidTag); |
5961 | ||
5962 | if(fFillThetaStarHisto) | |
5963 | FillThetaStarHistograms(nMax,matched,mcindex, en, lv1, lv2, l0, pidTag); | |
5964 | ||
cb99fa55 | 5965 | |
26680f06 | 5966 | //--------------------------------------------------------------------- |
1253480f | 5967 | // From here start applying some cuts |
26680f06 | 5968 | //--------------------------------------------------------------------- |
cb99fa55 | 5969 | |
5970 | // If set, check just on MC clusters when SS cut is applied | |
5971 | if( IsDataMC() && mcindex > 0 && mcindex < 7 && GetCaloPID()->IsInM02Range(l0) ) | |
5972 | { | |
5973 | // For cluster with MC pi0 and more than 1 maxima | |
5974 | ||
5975 | if(fFillMCOverlapHisto) | |
5976 | CheckLocalMaximaMCOrigin(cluster, mcindex,noverlaps,e1,e2,mass); | |
5977 | //l0, l1, l2); | |
5978 | ||
5979 | // | |
5980 | ||
5981 | if(fFillMCHisto) | |
5982 | FillMCHistograms(en,e1,e2,ebin,mcindex,noverlaps,l0,mass, | |
5983 | nMax,matched,splitFrac, asym, eprim,asymGen); | |
5984 | ||
5985 | // | |
5986 | ||
5987 | if(fFillMCOverlapHisto) | |
5988 | FillMCOverlapHistograms(en,eprim,nc,mass,l0,asym,splitFrac,inlm,ebin,matched,mcindex,noverlaps); | |
5989 | ||
5990 | } | |
5991 | ||
5992 | // Fill few histograms, some still without cuts | |
1253480f | 5993 | FillHistograms2(en, eprim, e1, e2, nMax, mass, l0, matched, mcindex); |
26680f06 | 5994 | |
1253480f | 5995 | if(pidTag==AliCaloPID::kPi0) |
b2e375c7 | 5996 | { |
1253480f | 5997 | FillIdPi0Histograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex); |
17f5b4b6 | 5998 | |
1253480f | 5999 | if(fFillSSWeightHisto) |
6000 | FillSSWeightHistograms(cluster, inlm, absId1, absId2); | |
cc909e6f | 6001 | |
6002 | if(fFillTMHisto && fFillTMResidualHisto) | |
6003 | FillTrackMatchingHistograms(cluster,nMax,mcindex); | |
6004 | ||
cb99fa55 | 6005 | if(fFillMCOverlapHisto && IsDataMC() && mcindex > 0 && mcindex < 7 && !matched) |
cc909e6f | 6006 | { |
6007 | if (noverlaps == 0) fhMCEEpriOverlap0IdPi0 [inlm][mcindex]->Fill(en, eprim); | |
6008 | else if(noverlaps == 1) fhMCEEpriOverlap1IdPi0 [inlm][mcindex]->Fill(en, eprim); | |
6009 | else if(noverlaps > 1) fhMCEEpriOverlapNIdPi0 [inlm][mcindex]->Fill(en, eprim); | |
6010 | } | |
167f2534 | 6011 | } |
1253480f | 6012 | else if(fFillIdEtaHisto && pidTag==AliCaloPID::kEta) |
5c46c992 | 6013 | { |
1253480f | 6014 | FillIdEtaHistograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex); |
243c2909 | 6015 | } |
1253480f | 6016 | else if(fFillIdConvHisto && pidTag==AliCaloPID::kPhoton) |
5c46c992 | 6017 | { |
1253480f | 6018 | FillIdConvHistograms(en, nMax, asym, mass, l0, matched, mcindex); |
243c2909 | 6019 | } |
6020 | ||
992b14a7 | 6021 | }//loop |
6022 | ||
6023 | if(GetDebug() > 1) printf("AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms() - END \n"); | |
e23a0471 | 6024 | |
992b14a7 | 6025 | } |
6026 | ||
6027 | //______________________________________________________________________ | |
6028 | void AliAnaInsideClusterInvariantMass::Print(const Option_t * opt) const | |
6029 | { | |
6030 | //Print some relevant parameters set for the analysis | |
6031 | if(! opt) | |
6032 | return; | |
6033 | ||
6034 | printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ; | |
745913ae | 6035 | AliAnaCaloTrackCorrBaseClass::Print(""); |
243c2909 | 6036 | printf("Calorimeter = %s\n", fCalorimeter.Data()) ; |
19391b8c | 6037 | if(GetCaloUtils()) printf("Loc. Max. E > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutE()); |
6038 | if(GetCaloUtils()) printf("Loc. Max. E Diff > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutEDiff()); | |
cfc19369 | 6039 | printf("Min. N Cells =%d \n", fMinNCells) ; |
6040 | printf("Min. Dist. to Bad =%1.1f \n", fMinBadDist) ; | |
19391b8c | 6041 | if(fFillSSWeightHisto) printf(" N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN); |
6042 | ||
992b14a7 | 6043 | printf(" \n") ; |
6044 | ||
6045 | } | |
6046 | ||
19391b8c | 6047 | //___________________________________________________________________________________________________________________ |
6048 | void AliAnaInsideClusterInvariantMass::RecalculateClusterShowerShapeParametersWithCellCut(const AliEMCALGeometry * geom, | |
6049 | AliVCaloCells* cells, | |
6050 | AliVCluster * cluster, | |
6051 | Float_t & l0, Float_t & l1, | |
6052 | Float_t & disp, Float_t & dEta, Float_t & dPhi, | |
6053 | Float_t & sEta, Float_t & sPhi, Float_t & sEtaPhi, | |
6054 | Float_t eCellMin) | |
6055 | { | |
6056 | // Calculates new center of gravity in the local EMCAL-module coordinates | |
6057 | // and tranfers into global ALICE coordinates | |
6058 | // Calculates Dispersion and main axis | |
6059 | ||
6060 | if(!cluster) | |
6061 | { | |
6062 | AliInfo("Cluster pointer null!"); | |
6063 | return; | |
6064 | } | |
6065 | ||
6066 | Double_t eCell = 0.; | |
6067 | Float_t fraction = 1.; | |
6068 | Float_t recalFactor = 1.; | |
6069 | ||
6070 | Int_t iSupMod = -1; | |
6071 | Int_t iTower = -1; | |
6072 | Int_t iIphi = -1; | |
6073 | Int_t iIeta = -1; | |
6074 | Int_t iphi = -1; | |
6075 | Int_t ieta = -1; | |
6076 | Double_t etai = -1.; | |
6077 | Double_t phii = -1.; | |
6078 | ||
6079 | Int_t nstat = 0 ; | |
6080 | Float_t wtot = 0.; | |
6081 | Double_t w = 0.; | |
6082 | Double_t etaMean = 0.; | |
6083 | Double_t phiMean = 0.; | |
3ae72bd8 | 6084 | |
19391b8c | 6085 | //Loop on cells, calculate the cluster energy, in case a cut on cell energy is added |
3ae72bd8 | 6086 | // and to check if the cluster is between 2 SM in eta |
6087 | Int_t iSM0 = -1; | |
6088 | Bool_t shared = kFALSE; | |
6089 | Float_t energy = 0; | |
6090 | ||
6091 | for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++) | |
19391b8c | 6092 | { |
3ae72bd8 | 6093 | //Get from the absid the supermodule, tower and eta/phi numbers |
6094 | geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta); | |
6095 | geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta); | |
6096 | ||
6097 | //Check if there are cells of different SM | |
6098 | if (iDigit == 0 ) iSM0 = iSupMod; | |
6099 | else if(iSupMod!= iSM0) shared = kTRUE; | |
6100 | ||
6101 | //Get the cell energy, if recalibration is on, apply factors | |
6102 | fraction = cluster->GetCellAmplitudeFraction(iDigit); | |
6103 | if(fraction < 1e-4) fraction = 1.; // in case unfolding is off | |
6104 | ||
6105 | if(GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn()) | |
19391b8c | 6106 | { |
3ae72bd8 | 6107 | recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi); |
6108 | } | |
6109 | ||
6110 | eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor; | |
6111 | ||
9ae170de | 6112 | if(eCell > eCellMin) energy += eCell; |
3ae72bd8 | 6113 | |
6114 | }//cell loop | |
19391b8c | 6115 | |
6116 | //Loop on cells, get weighted parameters | |
6117 | for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++) | |
6118 | { | |
6119 | //Get from the absid the supermodule, tower and eta/phi numbers | |
6120 | geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta); | |
6121 | geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta); | |
6122 | ||
6123 | //Get the cell energy, if recalibration is on, apply factors | |
6124 | fraction = cluster->GetCellAmplitudeFraction(iDigit); | |
6125 | if(fraction < 1e-4) fraction = 1.; // in case unfolding is off | |
6126 | ||
3ae72bd8 | 6127 | if(GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn()) |
6128 | { | |
6129 | recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi); | |
6130 | } | |
19391b8c | 6131 | |
6132 | eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor; | |
6133 | ||
3ae72bd8 | 6134 | // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2 |
6135 | // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0 | |
6136 | if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols; | |
6137 | ||
9ae170de | 6138 | if(energy > 0 && eCell > eCellMin) |
19391b8c | 6139 | { |
6140 | w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy); | |
8edbd100 | 6141 | |
6142 | //correct weight, ONLY in simulation | |
9ae170de | 6143 | w *= (1 - fWSimu * w ); |
aa12888f | 6144 | |
19391b8c | 6145 | etai=(Double_t)ieta; |
6146 | phii=(Double_t)iphi; | |
6147 | ||
6148 | if(w > 0.0) | |
6149 | { | |
6150 | wtot += w ; | |
6151 | nstat++; | |
6152 | //Shower shape | |
6153 | sEta += w * etai * etai ; | |
6154 | etaMean += w * etai ; | |
6155 | sPhi += w * phii * phii ; | |
6156 | phiMean += w * phii ; | |
6157 | sEtaPhi += w * etai * phii ; | |
6158 | } | |
6159 | } | |
9ae170de | 6160 | else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy)); |
19391b8c | 6161 | |
6162 | }//cell loop | |
6163 | ||
6164 | //Normalize to the weight | |
6165 | if (wtot > 0) | |
6166 | { | |
6167 | etaMean /= wtot ; | |
6168 | phiMean /= wtot ; | |
6169 | } | |
6170 | else | |
6171 | AliError(Form("Wrong weight %f\n", wtot)); | |
6172 | ||
6173 | //Calculate dispersion | |
6174 | for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++) | |
6175 | { | |
6176 | //Get from the absid the supermodule, tower and eta/phi numbers | |
6177 | geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta); | |
6178 | geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta); | |
6179 | ||
6180 | //Get the cell energy, if recalibration is on, apply factors | |
6181 | fraction = cluster->GetCellAmplitudeFraction(iDigit); | |
6182 | if(fraction < 1e-4) fraction = 1.; // in case unfolding is off | |
6183 | if (GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn()) | |
6184 | { | |
6185 | recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi); | |
6186 | } | |
3ae72bd8 | 6187 | |
19391b8c | 6188 | eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor; |
6189 | ||
3ae72bd8 | 6190 | // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2 |
6191 | // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0 | |
6192 | if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols; | |
6193 | ||
9ae170de | 6194 | if(energy > 0 && eCell > eCellMin) |
19391b8c | 6195 | { |
6196 | w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy); | |
6197 | ||
8edbd100 | 6198 | //correct weight, ONLY in simulation |
9ae170de | 6199 | w *= (1 - fWSimu * w ); |
8edbd100 | 6200 | |
19391b8c | 6201 | etai=(Double_t)ieta; |
6202 | phii=(Double_t)iphi; | |
6203 | if(w > 0.0) | |
6204 | { | |
6205 | disp += w *((etai-etaMean)*(etai-etaMean)+(phii-phiMean)*(phii-phiMean)); | |
6206 | dEta += w * (etai-etaMean)*(etai-etaMean) ; | |
6207 | dPhi += w * (phii-phiMean)*(phii-phiMean) ; | |
6208 | } | |
6209 | } | |
9ae170de | 6210 | else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy)); |
19391b8c | 6211 | }// cell loop |
6212 | ||
6213 | //Normalize to the weigth and set shower shape parameters | |
6214 | if (wtot > 0 && nstat > 1) | |
6215 | { | |
6216 | disp /= wtot ; | |
6217 | dEta /= wtot ; | |
6218 | dPhi /= wtot ; | |
6219 | sEta /= wtot ; | |
6220 | sPhi /= wtot ; | |
6221 | sEtaPhi /= wtot ; | |
6222 | ||
6223 | sEta -= etaMean * etaMean ; | |
6224 | sPhi -= phiMean * phiMean ; | |
6225 | sEtaPhi -= etaMean * phiMean ; | |
6226 | ||
6227 | l0 = (0.5 * (sEta + sPhi) + TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi )); | |
6228 | l1 = (0.5 * (sEta + sPhi) - TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi )); | |
6229 | } | |
6230 | else | |
6231 | { | |
6232 | l0 = 0. ; | |
6233 | l1 = 0. ; | |
6234 | dEta = 0. ; dPhi = 0. ; disp = 0. ; | |
6235 | sEta = 0. ; sPhi = 0. ; sEtaPhi = 0. ; | |
6236 | } | |
6237 | ||
6238 | } | |
6239 | ||
992b14a7 | 6240 |