]>
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), | |
2c36e041 | 68 | fhMassEnCutNLocMax1(0), fhMassEnCutNLocMax2(0), fhMassEnCutNLocMaxN(0), |
69 | fhM02EnCutNLocMax1(0), fhM02EnCutNLocMax2(0), fhM02EnCutNLocMaxN(0), | |
70 | fhAsymEnCutNLocMax1(0), fhAsymEnCutNLocMax2(0), fhAsymEnCutNLocMaxN(0), | |
a6d3b0a8 | 71 | fhSplitEFracEnCutNLocMax1(0), fhSplitEFracEnCutNLocMax2(0), fhSplitEFracEnCutNLocMaxN(0), |
0186b6a2 | 72 | fhMassSplitECutNLocMax1(0), fhMassSplitECutNLocMax2(0), fhMassSplitECutNLocMaxN(0), |
73 | fhMCGenFracAfterCutsNLocMax1MCPi0(0), fhMCGenFracAfterCutsNLocMax2MCPi0(0), fhMCGenFracAfterCutsNLocMaxNMCPi0(0), | |
74 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMax2MCPi0(0),fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0(0), | |
75 | fhNCellMassEHighNLocMax1MCPi0(0), fhNCellM02EHighNLocMax1MCPi0(0), | |
76 | fhNCellMassELowNLocMax1MCPi0(0), fhNCellM02ELowNLocMax1MCPi0(0), | |
77 | fhNCellMassEHighNLocMax2MCPi0(0), fhNCellM02EHighNLocMax2MCPi0(0), | |
78 | fhNCellMassELowNLocMax2MCPi0(0), fhNCellM02ELowNLocMax2MCPi0(0), | |
79 | fhNCellMassEHighNLocMaxNMCPi0(0), fhNCellM02EHighNLocMaxNMCPi0(0), | |
80 | fhNCellMassELowNLocMaxNMCPi0(0), fhNCellM02ELowNLocMaxNMCPi0(0), | |
81 | fhAnglePairPrimPi0RecoNLocMax1(0), fhAnglePairPrimPi0RecoNLocMax2(0), fhAnglePairPrimPi0RecoNLocMaxN(0), | |
82 | fhAnglePairPrimPi0vsRecoNLocMax1(0), fhAnglePairPrimPi0vsRecoNLocMax2(0), fhAnglePairPrimPi0vsRecoNLocMaxN(0), | |
4e5a94c5 | 83 | fhAnglePairPrimPi0OverM02NLocMax1(0), fhAnglePairPrimPi0OverM02NLocMax2(0), fhAnglePairPrimPi0OverM02NLocMaxN(0), |
0186b6a2 | 84 | fhCentralityPi0NLocMax1(0), fhCentralityEtaNLocMax1(0), |
85 | fhCentralityPi0NLocMax2(0), fhCentralityEtaNLocMax2(0), | |
86 | fhCentralityPi0NLocMaxN(0), fhCentralityEtaNLocMaxN(0), | |
87 | fhEventPlanePi0NLocMax1(0), fhEventPlaneEtaNLocMax1(0), | |
88 | fhEventPlanePi0NLocMax2(0), fhEventPlaneEtaNLocMax2(0), | |
89 | fhEventPlanePi0NLocMaxN(0), fhEventPlaneEtaNLocMaxN(0), | |
90 | fhClusterEtaPhiNLocMax1(0), fhClusterEtaPhiNLocMax2(0), fhClusterEtaPhiNLocMaxN(0), | |
91 | fhPi0EtaPhiNLocMax1(0), fhPi0EtaPhiNLocMax2(0), fhPi0EtaPhiNLocMaxN(0), | |
92 | fhEtaEtaPhiNLocMax1(0), fhEtaEtaPhiNLocMax2(0), fhEtaEtaPhiNLocMaxN(0), | |
93 | fhPi0EPairDiffTimeNLM1(0), fhPi0EPairDiffTimeNLM2(0), fhPi0EPairDiffTimeNLMN(0), | |
94 | fhEtaEPairDiffTimeNLM1(0), fhEtaEPairDiffTimeNLM2(0), fhEtaEPairDiffTimeNLMN(0), | |
95 | fhMCPi0HighNLMPair(0), fhMCPi0LowNLMPair(0), | |
96 | fhMCPi0AnyNLMPair(0), fhMCPi0NoneNLMPair(0), | |
97 | fhMCPi0HighNLMPairNoMCMatch(0), fhMCPi0LowNLMPairNoMCMatch(0), | |
98 | fhMCPi0AnyNLMPairNoMCMatch(0), fhMCPi0NoneNLMPairNoMCMatch(0), | |
99 | fhMCPi0HighNLMPairOverlap(0), fhMCPi0LowNLMPairOverlap(0), | |
100 | fhMCPi0AnyNLMPairOverlap(0), fhMCPi0NoneNLMPairOverlap(0), | |
101 | fhMCPi0HighNLMPairNoMCMatchOverlap(0), fhMCPi0LowNLMPairNoMCMatchOverlap(0), | |
102 | fhMCPi0AnyNLMPairNoMCMatchOverlap(0), fhMCPi0NoneNLMPairNoMCMatchOverlap(0), | |
103 | fhMCPi0DecayPhotonHitHighLM(0), fhMCPi0DecayPhotonAdjHighLM(0), | |
104 | fhMCPi0DecayPhotonHitOtherLM(0), fhMCPi0DecayPhotonAdjOtherLM(0), | |
105 | fhMCPi0DecayPhotonAdjacent(0), fhMCPi0DecayPhotonHitNoLM(0), | |
106 | fhMCPi0DecayPhotonHitHighLMOverlap(0), fhMCPi0DecayPhotonAdjHighLMOverlap(0), | |
107 | fhMCPi0DecayPhotonHitOtherLMOverlap(0), fhMCPi0DecayPhotonAdjOtherLMOverlap(0), | |
108 | fhMCPi0DecayPhotonAdjacentOverlap(0), fhMCPi0DecayPhotonHitNoLMOverlap(0), | |
109 | fhMCEOverlapType(0), fhMCEOverlapTypeMatch(0) | |
992b14a7 | 110 | { |
111 | //default ctor | |
112 | ||
113 | // Init array of histograms | |
cb99fa55 | 114 | for(Int_t i = 0; i < 7; i++) |
5c46c992 | 115 | { |
116 | for(Int_t j = 0; j < 2; j++) | |
117 | { | |
5c46c992 | 118 | fhMassNLocMax1[i][j] = 0; |
119 | fhMassNLocMax2[i][j] = 0; | |
120 | fhMassNLocMaxN[i][j] = 0; | |
c7e9a4e9 | 121 | fhMassSplitENLocMax1[i][j] = 0; |
122 | fhMassSplitENLocMax2[i][j] = 0; | |
123 | fhMassSplitENLocMaxN[i][j] = 0; | |
5c46c992 | 124 | fhNLocMax[i][j] = 0; |
5c46c992 | 125 | fhNLocMaxM02Cut[i][j] = 0; |
cc909e6f | 126 | fhSplitClusterENLocMax [i][j] = 0; |
127 | fhSplitClusterEPi0NLocMax[i][j] = 0; | |
5c46c992 | 128 | fhM02NLocMax1[i][j] = 0; |
129 | fhM02NLocMax2[i][j] = 0; | |
130 | fhM02NLocMaxN[i][j] = 0; | |
131 | fhNCellNLocMax1[i][j] = 0; | |
132 | fhNCellNLocMax2[i][j] = 0; | |
133 | fhNCellNLocMaxN[i][j] = 0; | |
c8710850 | 134 | fhM02Pi0NLocMax1[i][j] = 0; |
135 | fhM02EtaNLocMax1[i][j] = 0; | |
136 | fhM02ConNLocMax1[i][j] = 0; | |
137 | fhM02Pi0NLocMax2[i][j] = 0; | |
138 | fhM02EtaNLocMax2[i][j] = 0; | |
139 | fhM02ConNLocMax2[i][j] = 0; | |
140 | fhM02Pi0NLocMaxN[i][j] = 0; | |
141 | fhM02EtaNLocMaxN[i][j] = 0; | |
142 | fhM02ConNLocMaxN[i][j] = 0; | |
143 | ||
144 | fhMassPi0NLocMax1[i][j] = 0; | |
145 | fhMassEtaNLocMax1[i][j] = 0; | |
146 | fhMassConNLocMax1[i][j] = 0; | |
147 | fhMassPi0NLocMax2[i][j] = 0; | |
148 | fhMassEtaNLocMax2[i][j] = 0; | |
149 | fhMassConNLocMax2[i][j] = 0; | |
150 | fhMassPi0NLocMaxN[i][j] = 0; | |
151 | fhMassEtaNLocMaxN[i][j] = 0; | |
152 | fhMassConNLocMaxN[i][j] = 0; | |
cb99fa55 | 153 | |
1253480f | 154 | fhNCellPi0NLocMax1[i][j] = 0; |
155 | fhNCellEtaNLocMax1[i][j] = 0; | |
156 | fhNCellPi0NLocMax2[i][j] = 0; | |
157 | fhNCellEtaNLocMax2[i][j] = 0; | |
158 | fhNCellPi0NLocMaxN[i][j] = 0; | |
159 | fhNCellEtaNLocMaxN[i][j] = 0; | |
c8710850 | 160 | |
161 | fhAsyPi0NLocMax1[i][j] = 0; | |
162 | fhAsyEtaNLocMax1[i][j] = 0; | |
163 | fhAsyConNLocMax1[i][j] = 0; | |
164 | fhAsyPi0NLocMax2[i][j] = 0; | |
165 | fhAsyEtaNLocMax2[i][j] = 0; | |
166 | fhAsyConNLocMax2[i][j] = 0; | |
167 | fhAsyPi0NLocMaxN[i][j] = 0; | |
168 | fhAsyEtaNLocMaxN[i][j] = 0; | |
169 | fhAsyConNLocMaxN[i][j] = 0; | |
e671adc2 | 170 | |
0137016b | 171 | fhMassM02NLocMax1[i][j]= 0; |
172 | fhMassM02NLocMax2[i][j]= 0; | |
c7e9a4e9 | 173 | fhMassM02NLocMaxN[i][j]= 0; |
174 | ||
175 | fhMassSplitEPi0NLocMax1[i][j] = 0; | |
176 | fhMassSplitEPi0NLocMax2[i][j] = 0; | |
177 | fhMassSplitEPi0NLocMaxN[i][j] = 0; | |
178 | ||
179 | fhMassSplitEAfterCutsNLocMax1[i][j] = 0; | |
180 | fhMassSplitEAfterCutsNLocMax2[i][j] = 0; | |
181 | fhMassSplitEAfterCutsNLocMaxN[i][j] = 0; | |
182 | ||
183 | ||
d2655d46 | 184 | fhMassDispEtaNLocMax1[i][j]= 0; |
185 | fhMassDispEtaNLocMax2[i][j]= 0; | |
186 | fhMassDispEtaNLocMaxN[i][j]= 0; | |
187 | fhMassDispPhiNLocMax1[i][j]= 0; | |
188 | fhMassDispPhiNLocMax2[i][j]= 0; | |
189 | fhMassDispPhiNLocMaxN[i][j]= 0; | |
190 | fhMassDispAsyNLocMax1[i][j]= 0; | |
191 | fhMassDispAsyNLocMax2[i][j]= 0; | |
192 | fhMassDispAsyNLocMaxN[i][j]= 0; | |
8e81c2cf | 193 | |
fc01318e | 194 | fhSplitEFractionNLocMax1[i][j]=0; |
195 | fhSplitEFractionNLocMax2[i][j]=0; | |
196 | fhSplitEFractionNLocMaxN[i][j]=0; | |
197 | ||
29555e96 | 198 | fhAnglePairNLocMax1 [i][j] = 0; |
199 | fhAnglePairNLocMax2 [i][j] = 0; | |
200 | fhAnglePairNLocMaxN [i][j] = 0; | |
201 | ||
202 | fhAnglePairAfterCutsNLocMax1[i][j] = 0; | |
203 | fhAnglePairAfterCutsNLocMax2[i][j] = 0; | |
204 | fhAnglePairAfterCutsNLocMaxN[i][j] = 0; | |
205 | ||
206 | fhAnglePairPi0NLocMax1 [i][j] = 0; | |
207 | fhAnglePairPi0NLocMax2 [i][j] = 0; | |
208 | fhAnglePairPi0NLocMaxN [i][j] = 0; | |
209 | ||
210 | fhAnglePairMassNLocMax1 [i][j] = 0; | |
211 | fhAnglePairMassNLocMax2 [i][j] = 0; | |
212 | fhAnglePairMassNLocMaxN [i][j] = 0; | |
d261ae67 | 213 | |
214 | fhAnglePairM02NLocMax1 [i][j] = 0; | |
215 | fhAnglePairM02NLocMax2 [i][j] = 0; | |
216 | fhAnglePairM02NLocMaxN [i][j] = 0; | |
29555e96 | 217 | |
4e5a94c5 | 218 | fhAnglePairOverM02NLocMax1 [i][j] = 0; |
219 | fhAnglePairOverM02NLocMax2 [i][j] = 0; | |
220 | fhAnglePairOverM02NLocMaxN [i][j] = 0; | |
221 | ||
222 | fhAnglePairOverM02NLocMax1Overlap0[i][j] = 0; | |
223 | fhAnglePairOverM02NLocMax2Overlap0[i][j] = 0; | |
224 | fhAnglePairOverM02NLocMaxNOverlap0[i][j] = 0; | |
225 | ||
29555e96 | 226 | fhCosThStarNLocMax1 [i][j] = 0; |
227 | fhCosThStarNLocMax2 [i][j] = 0; | |
228 | fhCosThStarNLocMaxN [i][j] = 0; | |
229 | ||
230 | fhCosThStarAfterCutsNLocMax1[i][j] = 0; | |
231 | fhCosThStarAfterCutsNLocMax2[i][j] = 0; | |
232 | fhCosThStarAfterCutsNLocMaxN[i][j] = 0; | |
233 | ||
234 | fhCosThStarPi0NLocMax1 [i][j] = 0; | |
235 | fhCosThStarPi0NLocMax2 [i][j] = 0; | |
236 | fhCosThStarPi0NLocMaxN [i][j] = 0; | |
0186b6a2 | 237 | |
8e81c2cf | 238 | fhMCGenFracNLocMax1[i][j]= 0; |
239 | fhMCGenFracNLocMax2[i][j]= 0; | |
240 | fhMCGenFracNLocMaxN[i][j]= 0; | |
4914e781 | 241 | |
242 | fhMCGenFracNLocMax1NoOverlap[i][j]= 0; | |
243 | fhMCGenFracNLocMax2NoOverlap[i][j]= 0; | |
244 | fhMCGenFracNLocMaxNNoOverlap[i][j]= 0; | |
5094c724 | 245 | |
246 | fhMCGenSplitEFracNLocMax1[i][j]= 0; | |
247 | fhMCGenSplitEFracNLocMax2[i][j]= 0; | |
bb2d339b | 248 | fhMCGenSplitEFracNLocMaxN[i][j]= 0; |
4914e781 | 249 | |
250 | fhMCGenSplitEFracNLocMax1NoOverlap[i][j]= 0; | |
251 | fhMCGenSplitEFracNLocMax2NoOverlap[i][j]= 0; | |
252 | fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]= 0; | |
bb2d339b | 253 | |
254 | fhMCGenEFracvsSplitEFracNLocMax1[i][j]= 0; | |
255 | fhMCGenEFracvsSplitEFracNLocMax2[i][j]= 0; | |
256 | fhMCGenEFracvsSplitEFracNLocMaxN[i][j]= 0; | |
257 | ||
258 | fhMCGenEvsSplitENLocMax1[i][j]= 0; | |
259 | fhMCGenEvsSplitENLocMax2[i][j]= 0; | |
e671adc2 | 260 | fhMCGenEvsSplitENLocMaxN[i][j]= 0; |
261 | ||
262 | fhAsymNLocMax1 [i][j] = 0; | |
263 | fhAsymNLocMax2 [i][j] = 0; | |
264 | fhAsymNLocMaxN [i][j] = 0; | |
74858845 | 265 | |
266 | fhMassAfterCutsNLocMax1[i][j] = 0; | |
267 | fhMassAfterCutsNLocMax2[i][j] = 0; | |
268 | fhMassAfterCutsNLocMaxN[i][j] = 0; | |
cb99fa55 | 269 | |
74858845 | 270 | |
271 | fhSplitEFractionAfterCutsNLocMax1[i][j] = 0 ; | |
272 | fhSplitEFractionAfterCutsNLocMax2[i][j] = 0 ; | |
273 | fhSplitEFractionAfterCutsNLocMaxN[i][j] = 0 ; | |
8e81c2cf | 274 | } |
19391b8c | 275 | |
8e81c2cf | 276 | for(Int_t jj = 0; jj < 4; jj++) |
277 | { | |
53f2c382 | 278 | fhM02MCGenFracNLocMax1Ebin[i][jj] = 0; |
279 | fhM02MCGenFracNLocMax2Ebin[i][jj] = 0; | |
280 | fhM02MCGenFracNLocMaxNEbin[i][jj] = 0; | |
8e81c2cf | 281 | |
282 | fhMassMCGenFracNLocMax1Ebin[i][jj]= 0; | |
283 | fhMassMCGenFracNLocMax2Ebin[i][jj]= 0; | |
284 | fhMassMCGenFracNLocMaxNEbin[i][jj]= 0; | |
53f2c382 | 285 | |
fc01318e | 286 | fhMCGenFracNLocMaxEbin[i][jj] = 0; |
53f2c382 | 287 | fhMCGenFracNLocMaxEbinMatched[i][jj]= 0; |
fc01318e | 288 | |
289 | fhMassSplitEFractionNLocMax1Ebin[i][jj] = 0; | |
290 | fhMassSplitEFractionNLocMax2Ebin[i][jj] = 0; | |
291 | fhMassSplitEFractionNLocMaxNEbin[i][jj] = 0; | |
5c46c992 | 292 | } |
293 | ||
b2e375c7 | 294 | fhTrackMatchedDEtaNLocMax1[i] = 0; |
c8710850 | 295 | fhTrackMatchedDPhiNLocMax1[i] = 0; |
296 | fhTrackMatchedDEtaNLocMax2[i] = 0; | |
297 | fhTrackMatchedDPhiNLocMax2[i] = 0; | |
298 | fhTrackMatchedDEtaNLocMaxN[i] = 0; | |
299 | fhTrackMatchedDPhiNLocMaxN[i] = 0; | |
b2e375c7 | 300 | |
301 | fhTrackMatchedDEtaNLocMax1Pos[i] = 0; | |
302 | fhTrackMatchedDPhiNLocMax1Pos[i] = 0; | |
303 | fhTrackMatchedDEtaNLocMax2Pos[i] = 0; | |
304 | fhTrackMatchedDPhiNLocMax2Pos[i] = 0; | |
305 | fhTrackMatchedDEtaNLocMaxNPos[i] = 0; | |
306 | fhTrackMatchedDPhiNLocMaxNPos[i] = 0; | |
307 | ||
308 | fhTrackMatchedDEtaNLocMax1Neg[i] = 0; | |
309 | fhTrackMatchedDPhiNLocMax1Neg[i] = 0; | |
310 | fhTrackMatchedDEtaNLocMax2Neg[i] = 0; | |
311 | fhTrackMatchedDPhiNLocMax2Neg[i] = 0; | |
312 | fhTrackMatchedDEtaNLocMaxNNeg[i] = 0; | |
313 | fhTrackMatchedDPhiNLocMaxNNeg[i] = 0; | |
243c2909 | 314 | |
b2e375c7 | 315 | for(Int_t nlm = 0; nlm < 3; nlm++) |
316 | { | |
317 | fhMCEM02Overlap0 [nlm][i] = 0; | |
318 | fhMCEM02Overlap1 [nlm][i] = 0; | |
319 | fhMCEM02OverlapN [nlm][i] = 0; | |
320 | fhMCEM02Overlap0Match[nlm][i] = 0; | |
321 | fhMCEM02Overlap1Match[nlm][i] = 0; | |
322 | fhMCEM02OverlapNMatch[nlm][i] = 0; | |
323 | ||
324 | fhMCEMassOverlap0 [nlm][i] = 0; | |
325 | fhMCEMassOverlap1 [nlm][i] = 0; | |
326 | fhMCEMassOverlapN [nlm][i] = 0; | |
327 | fhMCEMassOverlap0Match[nlm][i] = 0; | |
328 | fhMCEMassOverlap1Match[nlm][i] = 0; | |
329 | fhMCEMassOverlapNMatch[nlm][i] = 0; | |
83351853 | 330 | |
4914e781 | 331 | fhMCEAsymOverlap0 [nlm][i] = 0; |
332 | fhMCEAsymOverlap1 [nlm][i] = 0; | |
333 | fhMCEAsymOverlapN [nlm][i] = 0; | |
334 | fhMCEAsymOverlap0Match[nlm][i] = 0; | |
335 | fhMCEAsymOverlap1Match[nlm][i] = 0; | |
336 | fhMCEAsymOverlapNMatch[nlm][i] = 0; | |
337 | ||
74e3eb22 | 338 | fhMCENCellOverlap0 [nlm][i] = 0; |
339 | fhMCENCellOverlap1 [nlm][i] = 0; | |
340 | fhMCENCellOverlapN [nlm][i] = 0; | |
341 | fhMCENCellOverlap0Match[nlm][i] = 0; | |
342 | fhMCENCellOverlap1Match[nlm][i] = 0; | |
343 | fhMCENCellOverlapNMatch[nlm][i] = 0; | |
344 | ||
4914e781 | 345 | fhMCEEpriOverlap0 [nlm][i] = 0; |
346 | fhMCEEpriOverlap1 [nlm][i] = 0; | |
347 | fhMCEEpriOverlapN [nlm][i] = 0; | |
348 | fhMCEEpriOverlap0Match[nlm][i] = 0; | |
349 | fhMCEEpriOverlap1Match[nlm][i] = 0; | |
350 | fhMCEEpriOverlapNMatch[nlm][i] = 0; | |
cc909e6f | 351 | |
352 | fhMCEEpriOverlap0IdPi0[nlm][i] = 0; | |
353 | fhMCEEpriOverlap1IdPi0[nlm][i] = 0; | |
354 | fhMCEEpriOverlapNIdPi0[nlm][i] = 0; | |
4914e781 | 355 | |
83351853 | 356 | fhMCESplitEFracOverlap0 [nlm][i] = 0; |
357 | fhMCESplitEFracOverlap1 [nlm][i] = 0; | |
358 | fhMCESplitEFracOverlapN [nlm][i] = 0; | |
359 | fhMCESplitEFracOverlap0Match[nlm][i] = 0; | |
360 | fhMCESplitEFracOverlap1Match[nlm][i] = 0; | |
361 | fhMCESplitEFracOverlapNMatch[nlm][i] = 0; | |
b2e375c7 | 362 | |
363 | fhMCENOverlaps [nlm][i] = 0; | |
364 | fhMCENOverlapsMatch [nlm][i] = 0; | |
b583134f | 365 | |
b2e375c7 | 366 | if(i > 3) continue ; |
367 | ||
368 | fhMCPi0MassM02Overlap0 [nlm][i] = 0; | |
369 | fhMCPi0MassM02Overlap1 [nlm][i] = 0; | |
370 | fhMCPi0MassM02OverlapN [nlm][i] = 0; | |
371 | fhMCPi0MassM02Overlap0Match[nlm][i] = 0; | |
372 | fhMCPi0MassM02Overlap1Match[nlm][i] = 0; | |
373 | fhMCPi0MassM02OverlapNMatch[nlm][i] = 0; | |
374 | } | |
992b14a7 | 375 | } |
376 | ||
5c46c992 | 377 | for(Int_t i = 0; i < 2; i++) |
378 | { | |
e671adc2 | 379 | fhSplitEFractionvsAsyNLocMax1[i] = 0; |
380 | fhSplitEFractionvsAsyNLocMax2[i] = 0; | |
381 | fhSplitEFractionvsAsyNLocMaxN[i] = 0; | |
5c46c992 | 382 | } |
383 | ||
7b686344 | 384 | for(Int_t i = 0; i < 4; i++) |
385 | { | |
386 | fhMassM02NLocMax1Ebin[i] = 0 ; | |
387 | fhMassM02NLocMax2Ebin[i] = 0 ; | |
388 | fhMassM02NLocMaxNEbin[i] = 0 ; | |
b8eb40fc | 389 | |
390 | fhMassAsyNLocMax1Ebin[i] = 0 ; | |
391 | fhMassAsyNLocMax2Ebin[i] = 0 ; | |
392 | fhMassAsyNLocMaxNEbin[i] = 0 ; | |
393 | ||
394 | fhAsyMCGenRecoNLocMax1EbinPi0[i] = 0 ; | |
395 | fhAsyMCGenRecoNLocMax2EbinPi0[i] = 0 ; | |
396 | fhAsyMCGenRecoNLocMaxNEbinPi0[i] = 0 ; | |
d2655d46 | 397 | |
398 | fhMassDispEtaNLocMax1Ebin[i] = 0 ; | |
399 | fhMassDispEtaNLocMax2Ebin[i] = 0 ; | |
400 | fhMassDispEtaNLocMaxNEbin[i] = 0 ; | |
401 | ||
402 | fhMassDispPhiNLocMax1Ebin[i] = 0 ; | |
403 | fhMassDispPhiNLocMax2Ebin[i] = 0 ; | |
404 | fhMassDispPhiNLocMaxNEbin[i] = 0 ; | |
405 | ||
406 | fhMassDispAsyNLocMax1Ebin[i] = 0 ; | |
407 | fhMassDispAsyNLocMax2Ebin[i] = 0 ; | |
408 | fhMassDispAsyNLocMaxNEbin[i] = 0 ; | |
8e81c2cf | 409 | |
410 | fhMCAsymM02NLocMax1MCPi0Ebin[i] = 0 ; | |
411 | fhMCAsymM02NLocMax2MCPi0Ebin[i] = 0 ; | |
412 | fhMCAsymM02NLocMaxNMCPi0Ebin[i] = 0 ; | |
7b686344 | 413 | } |
414 | ||
dbe09c26 | 415 | for(Int_t nlm = 0; nlm < 3; nlm++) |
416 | { | |
b583134f | 417 | |
418 | fhMCPi0DecayPhotonHitHighLMDiffELM1 [nlm] = 0 ; | |
419 | fhMCPi0DecayPhotonAdjHighLMDiffELM1 [nlm] = 0 ; | |
420 | fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = 0 ; | |
421 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = 0 ; | |
422 | ||
423 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1 [nlm] = 0 ; | |
424 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1 [nlm] = 0 ; | |
425 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = 0 ; | |
426 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = 0 ; | |
427 | ||
428 | fhMCPi0DecayPhotonHitHighLMDiffELM2 [nlm] = 0 ; | |
429 | fhMCPi0DecayPhotonAdjHighLMDiffELM2 [nlm] = 0 ; | |
430 | fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = 0 ; | |
431 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = 0 ; | |
432 | ||
433 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2 [nlm] = 0 ; | |
434 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2 [nlm] = 0 ; | |
435 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = 0 ; | |
29555e96 | 436 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = 0 ; |
437 | ||
438 | fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1 [nlm] = 0 ; | |
439 | fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1 [nlm] = 0 ; | |
440 | fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = 0 ; | |
441 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = 0 ; | |
b583134f | 442 | |
29555e96 | 443 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ; |
444 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1 [nlm] = 0 ; | |
445 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ; | |
446 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = 0 ; | |
447 | ||
448 | fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2 [nlm] = 0 ; | |
449 | fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2 [nlm] = 0 ; | |
450 | fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = 0 ; | |
451 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = 0 ; | |
452 | ||
453 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ; | |
454 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2 [nlm] = 0 ; | |
455 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ; | |
456 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = 0 ; | |
457 | ||
458 | fhMCPi0DecayPhotonHitHighLMMass [nlm] = 0 ; | |
b583134f | 459 | fhMCPi0DecayPhotonAdjHighLMMass [nlm] = 0 ; |
460 | fhMCPi0DecayPhotonHitOtherLMMass[nlm] = 0 ; | |
461 | fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = 0 ; | |
462 | fhMCPi0DecayPhotonAdjacentMass [nlm] = 0 ; | |
463 | fhMCPi0DecayPhotonHitNoLMMass [nlm] = 0 ; | |
464 | ||
465 | fhMCPi0DecayPhotonHitHighLMOverlapMass [nlm] = 0 ; | |
466 | fhMCPi0DecayPhotonAdjHighLMOverlapMass [nlm] = 0 ; | |
467 | fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = 0 ; | |
468 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = 0 ; | |
469 | fhMCPi0DecayPhotonAdjacentOverlapMass [nlm] = 0 ; | |
470 | fhMCPi0DecayPhotonHitNoLMOverlapMass [nlm] = 0 ; | |
471 | ||
dbe09c26 | 472 | fhPi0CellE [nlm] = 0 ; |
473 | fhPi0CellEFrac [nlm] = 0 ; | |
474 | fhPi0CellLogEFrac[nlm] = 0 ; | |
475 | ||
19391b8c | 476 | fhPi0CellEMaxEMax2Frac [nlm] = 0 ; |
477 | fhPi0CellEMaxClusterFrac [nlm] = 0 ; | |
478 | fhPi0CellEMax2ClusterFrac[nlm] = 0 ; | |
479 | ||
480 | fhPi0CellEMaxFrac [nlm] = 0 ; | |
481 | fhPi0CellEMax2Frac[nlm] = 0 ; | |
482 | ||
dbe09c26 | 483 | for(Int_t i = 0; i < 10; i++) |
19391b8c | 484 | { |
485 | fhM02WeightPi0 [nlm][i] = 0; | |
486 | fhM02ECellCutPi0[nlm][i] = 0; | |
487 | } | |
ce49dd72 | 488 | |
489 | fhMassBadDistClose[nlm] = 0; | |
490 | fhM02BadDistClose [nlm] = 0; | |
491 | fhMassOnBorder [nlm] = 0; | |
492 | fhM02OnBorder [nlm] = 0; | |
b583134f | 493 | |
494 | fhAsyMCGenRecoDiffMCPi0 [nlm] = 0; | |
495 | fhAsyMCGenRecoDiffMCPi0Conv[nlm] = 0; | |
496 | ||
dbe09c26 | 497 | } |
498 | ||
ed10b649 | 499 | for(Int_t i = 0; i < 7; i++) |
500 | { | |
501 | for(Int_t j = 0; j < 4; j++) | |
502 | { | |
503 | ||
504 | fhArmNLocMax1[i][j] = 0; | |
505 | fhArmNLocMax2[i][j] = 0; | |
506 | fhArmNLocMaxN[i][j] = 0; | |
507 | ||
508 | fhArmPi0NLocMax1[i][j] = 0; | |
509 | fhArmPi0NLocMax2[i][j] = 0; | |
510 | fhArmPi0NLocMaxN[i][j] = 0; | |
511 | ||
512 | fhArmAfterCutsNLocMax1[i][j] = 0; | |
513 | fhArmAfterCutsNLocMax2[i][j] = 0; | |
514 | fhArmAfterCutsNLocMaxN[i][j] = 0; | |
515 | ||
516 | } | |
517 | } | |
518 | ||
992b14a7 | 519 | InitParameters(); |
19391b8c | 520 | |
992b14a7 | 521 | } |
522 | ||
b94e038e | 523 | //___________________________________________________________________________________________________________________ |
524 | void AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(AliVCluster* cluster, Int_t mcindex, Int_t noverlaps, | |
525 | Float_t e1, Float_t e2, Float_t mass) | |
b583134f | 526 | //Float_t m02, |
4914e781 | 527 | //TLorentzVector l1, TLorentzVector l2) |
b2e375c7 | 528 | { |
529 | // Check origin NLM tower of the cluster, when MC gives merged pi0 | |
530 | ||
b2e375c7 | 531 | if(mcindex != kmcPi0 && mcindex != kmcPi0Conv) return; |
36769d30 | 532 | |
b2e375c7 | 533 | const UInt_t nc = cluster->GetNCells(); |
534 | Int_t list[nc]; | |
535 | Float_t elist[nc]; | |
536 | Int_t nMax = GetCaloUtils()->GetNumberOfLocalMaxima(cluster, GetEMCALCells(),list, elist); | |
36769d30 | 537 | |
4914e781 | 538 | |
539 | //// PRINTS ///// | |
540 | ||
541 | //if(mcindex==kmcPi0) printf("** Normal Pi0 **\n"); | |
542 | //if(mcindex==kmcPi0Conv) printf("** Converted Pi0 **\n"); | |
543 | ||
544 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) | |
b2e375c7 | 545 | // { |
4914e781 | 546 | // printf("** N max %d - Overlaps = %d **, mass %2.2f, m02 %2.2f, Cl1(E,eta,phi)=(%2.2f,%2.2f,%2.2f),Cl2(E,eta,phi)=(%2.2f,%2.2f,%2.2f), mass(1,2) %2.2f \n", |
547 | // nMax, noverlaps,mass,m02, | |
548 | // l1.E(),l1.Eta(),l1.Phi()*TMath::RadToDeg(), | |
549 | // l2.E(),l2.Eta(),l2.Phi()*TMath::RadToDeg(), (l1+l2).M()); | |
36769d30 | 550 | // |
4914e781 | 551 | // // Study the mothers of cluster |
552 | // printf("Cluster MC labels %d \n", cluster->GetNLabels()); | |
553 | // for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ ) | |
36769d30 | 554 | // { |
4914e781 | 555 | // Int_t mclabel = cluster->GetLabels()[ilab]; |
556 | // | |
557 | // Bool_t mOK = 0; | |
558 | // Int_t mpdg = -999999; | |
559 | // Int_t mstatus = -1; | |
560 | // Int_t grandLabel = -1; | |
561 | // TLorentzVector mother = GetMCAnalysisUtils()->GetMother(mclabel,GetReader(),mpdg,mstatus,mOK,grandLabel); | |
562 | // | |
563 | // printf("******** mother %d : Label %d, pdg %d; status %d, E %2.2f, Eta %2.2f, Phi %2.2f, ok %d, mother label %d\n", | |
564 | // ilab, mclabel, mpdg, mstatus,mother.E(), mother.Eta(),mother.Phi()*TMath::RadToDeg(),mOK,grandLabel); | |
565 | // | |
566 | // if( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 ) | |
36769d30 | 567 | // { |
4914e781 | 568 | // while( ( mpdg == 22 || TMath::Abs(mpdg)==11 ) && grandLabel >=0 ) |
569 | // { | |
570 | // Int_t newLabel = -1; | |
571 | // TLorentzVector grandmother = GetMCAnalysisUtils()->GetMother(grandLabel,GetReader(),mpdg,mstatus,mOK,newLabel); | |
572 | // printf("\t grandmother %d : Label %d, pdg %d; status %d, E %2.2f, Eta %2.2f, Phi %2.2f, ok %d, mother label %d\n", | |
573 | // ilab, grandLabel, mpdg, mstatus,grandmother.E(), grandmother.Eta(), grandmother.Phi()*TMath::RadToDeg(),mOK,newLabel); | |
574 | // grandLabel = newLabel; | |
575 | // | |
576 | // } | |
36769d30 | 577 | // } |
578 | // } | |
b2e375c7 | 579 | // |
4914e781 | 580 | // printf("Cells in cluster %d\n",cluster->GetNCells() ); |
581 | // for(Int_t icell = 0; icell < cluster->GetNCells(); icell++) | |
582 | // { | |
583 | // Int_t absIdCell = cluster->GetCellAbsId(icell); | |
584 | // Int_t mcLabel = GetEMCALCells()->GetCellMCLabel(absIdCell); | |
585 | // GetReader()->RemapMCLabelForAODs(mcLabel); | |
586 | // Int_t ietac=-1; Int_t iphic = 0; Int_t rcuc = 0; | |
587 | // Int_t smc = GetModuleNumberCellIndexes(absIdCell,fCalorimeter, ietac, iphic, rcuc); | |
588 | // | |
589 | // printf(" \t cell i %d, abs %d, amp %2.3f, mclabel %d, (sm,ieta,iphi)=(%d,%d,%d)\n",icell,absIdCell,GetEMCALCells()->GetCellAmplitude(absIdCell),mcLabel,smc,ietac,iphic); | |
590 | // } | |
bfa0a1a7 | 591 | // } |
4914e781 | 592 | //// PRINTS ///// |
593 | ||
bfa0a1a7 | 594 | |
595 | //If only one maxima, consider all the towers in the cluster | |
596 | if(nMax==1) | |
597 | { | |
36769d30 | 598 | for (UInt_t icell = 0; icell < nc; icell++ ) |
599 | { | |
600 | list [icell] = cluster->GetCellAbsId(icell); | |
601 | elist[icell] = GetEMCALCells()->GetCellAmplitude(list[icell]); | |
602 | } | |
b2e375c7 | 603 | } |
604 | ||
83351853 | 605 | Int_t nmaxima = nMax; |
606 | if(nMax==1) nmaxima = nc ; | |
607 | ||
b2e375c7 | 608 | //Find highest energy Local Maxima Towers |
86b521c9 | 609 | Int_t imax = 999; |
610 | Int_t imax2 = 999; | |
b2e375c7 | 611 | Float_t emax = -1; |
612 | Float_t emax2 = -1; | |
83351853 | 613 | for(Int_t i = 0; i < nmaxima; i++) |
b2e375c7 | 614 | { |
615 | //printf("i %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]); | |
616 | if(elist[i] > emax) | |
617 | { | |
618 | imax = i; | |
619 | emax = elist[i]; | |
620 | } | |
621 | } | |
86b521c9 | 622 | |
b2e375c7 | 623 | //Find second highest |
83351853 | 624 | for(Int_t i = 0; i < nmaxima; i++) |
b2e375c7 | 625 | { |
626 | if(i==imax) continue; | |
bfa0a1a7 | 627 | |
83351853 | 628 | //printf("j %d: AbsId %d; E %2.3f\n",i,list[i],elist[i]); |
36769d30 | 629 | |
b2e375c7 | 630 | if(elist[i] > emax2) |
631 | { | |
632 | imax2 = i; | |
633 | emax2 = elist[i]; | |
634 | } | |
635 | } | |
636 | ||
4914e781 | 637 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
638 | // printf("Local maxima: a) index %d, absId %d; b) index %d, absId %d\n",imax, list[imax], imax2, list[imax2]); | |
b2e375c7 | 639 | |
36769d30 | 640 | //--------------------------------------------------------- |
83351853 | 641 | //--------------------------------------------------------- |
642 | // Compare ancestors of all local maxima at cell MC level | |
643 | //--------------------------------------------------------- | |
36769d30 | 644 | //--------------------------------------------------------- |
83351853 | 645 | |
b2e375c7 | 646 | // Check that the highest mc label and the max cluster label are the same |
87c4fd53 | 647 | Int_t mcLabelMax = -1 ; |
86b521c9 | 648 | if(imax >=0 && imax < 999) |
87c4fd53 | 649 | { |
650 | mcLabelMax = GetEMCALCells()->GetCellMCLabel(list[imax]); | |
651 | GetReader()->RemapMCLabelForAODs(mcLabelMax); | |
652 | } | |
653 | ||
654 | Int_t mcLabelMax2 = -1 ; | |
86b521c9 | 655 | if(imax2 >=0 && imax2 < 999) |
87c4fd53 | 656 | { |
657 | mcLabelMax2 = GetEMCALCells()->GetCellMCLabel(list[imax2]); | |
658 | GetReader()->RemapMCLabelForAODs(mcLabelMax2); | |
659 | } | |
b2e375c7 | 660 | |
661 | Int_t mcLabelclusterMax = cluster->GetLabels()[0]; | |
662 | Bool_t matchHighLMAndHighMC = kFALSE; | |
663 | ||
36769d30 | 664 | //printf("MC label: LM1 %d, LM2 %d, cluster %d\n",mcLabelMax,mcLabelMax2,mcLabelclusterMax); |
665 | ||
87c4fd53 | 666 | if(mcLabelclusterMax == mcLabelMax && mcLabelclusterMax >= 0) |
b2e375c7 | 667 | { |
668 | matchHighLMAndHighMC = kTRUE; | |
36769d30 | 669 | //printf("\t *** MATCH cluster and LM maximum ***\n"); |
b2e375c7 | 670 | } |
671 | else | |
672 | { | |
36769d30 | 673 | //printf("\t *** NO MATCH cluster and LM maximum, check second ***\n"); |
87c4fd53 | 674 | if(mcLabelclusterMax == mcLabelMax2 && mcLabelclusterMax >= 0) |
b2e375c7 | 675 | { |
36769d30 | 676 | //printf("\t \t *** MATCH cluster and 2nd LM maximum ***\n"); |
b2e375c7 | 677 | matchHighLMAndHighMC = kTRUE; |
678 | } | |
679 | else | |
680 | { | |
36769d30 | 681 | //printf("\t \t *** NO MATCH***\n"); |
b2e375c7 | 682 | matchHighLMAndHighMC = kFALSE; |
683 | } | |
684 | } | |
685 | ||
686 | // Compare the common ancestors of the 2 highest energy local maxima | |
687 | Int_t ancPDG = 0, ancStatus = -1; | |
688 | TLorentzVector momentum; TVector3 prodVertex; | |
689 | Int_t ancLabel = 0; | |
690 | Bool_t high = kFALSE; | |
691 | Bool_t low = kFALSE; | |
692 | ||
693 | // // print maxima origin | |
694 | // for(Int_t i = 0; i < nMax; i++) | |
695 | // { | |
696 | // Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]); | |
697 | // GetReader()->RemapMCLabelForAODs(mcLabel1); | |
698 | // | |
699 | // Bool_t ok =kFALSE,gok = kFALSE; | |
700 | // Int_t pdg = -22222, status = -1; | |
701 | // Int_t gpdg = -22222, gstatus = -1; | |
702 | // Int_t ggpdg = -22222, ggstatus = -1; | |
703 | // Int_t gLabel = -1, ggLabel = -1; | |
704 | // TLorentzVector primary =GetMCAnalysisUtils()->GetMother (mcLabel1,GetReader(), pdg, status, ok); | |
705 | // TLorentzVector gprimary =GetMCAnalysisUtils()->GetGrandMother(mcLabel1,GetReader(), gpdg, gstatus,gok, gLabel,ggLabel); | |
706 | // TLorentzVector ggprimary =GetMCAnalysisUtils()->GetMother(ggLabel ,GetReader(),ggpdg,ggstatus,gok); | |
707 | // printf("Max index %d; mother: Label %d; PDG %d; E %2.2f - grand mother label %d; PDG %d; E %2.2f- great grand mother label %d; PDG %d; E %2.2f\n", | |
708 | // i,mcLabel1,pdg,primary.E(), gLabel,gpdg,gprimary.E(), ggLabel,ggpdg,ggprimary.E()); | |
709 | // } | |
83351853 | 710 | |
bfa0a1a7 | 711 | for(Int_t i = 0; i < nmaxima-1; i++) |
b2e375c7 | 712 | { |
713 | Int_t mcLabel1 = GetEMCALCells()->GetCellMCLabel(list[i]); | |
714 | GetReader()->RemapMCLabelForAODs(mcLabel1); | |
715 | ||
bfa0a1a7 | 716 | for(Int_t j = i+1; j < nmaxima; j++) |
b2e375c7 | 717 | { |
718 | Int_t mcLabel2 = GetEMCALCells()->GetCellMCLabel(list[j]); | |
719 | GetReader()->RemapMCLabelForAODs(mcLabel2); | |
720 | ||
721 | if(mcLabel1 < 0 || mcLabel2 < 0 ) | |
722 | { | |
723 | //printf("\t i %d label %d - j %d label %d; skip!\n",i,mcLabel1,j,mcLabel2); | |
724 | continue; | |
725 | } | |
83351853 | 726 | |
b2e375c7 | 727 | ancLabel = GetMCAnalysisUtils()->CheckCommonAncestor(mcLabel1,mcLabel2, |
728 | GetReader(),ancPDG,ancStatus,momentum,prodVertex); | |
729 | if(ancPDG==111) | |
730 | { | |
731 | if((i==imax && j==imax2) || (j==imax && i==imax2)) | |
732 | high = kTRUE; | |
733 | else | |
734 | low = kTRUE; | |
735 | } | |
736 | else if(ancPDG==22 || TMath::Abs(ancPDG)==11) | |
737 | { | |
738 | // If both bits are set, it could be that one of the maxima had a conversion | |
739 | // reset the bit in this case | |
740 | if(high && low) | |
741 | { | |
742 | //printf("\t Reset low bit\n"); | |
743 | low = kFALSE; | |
744 | } | |
745 | } | |
746 | ||
747 | Bool_t ok =kFALSE; | |
748 | Int_t pdg = -22222, status = -1; | |
749 | TLorentzVector primary =GetMCAnalysisUtils()->GetMother(ancLabel,GetReader(), pdg, status, ok); | |
b2e375c7 | 750 | //printf("\t i %d label %d - j %d label %d; ancestor label %d, PDG %d-%d; E %2.2f; high %d, any %d \n",i,mcLabel1,j,mcLabel2, ancLabel, ancPDG,pdg, primary.E(), high, low); |
751 | ||
752 | } | |
753 | } | |
754 | ||
755 | Float_t en = cluster->E(); | |
756 | ||
4914e781 | 757 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
758 | // printf("Cell MC match: nMax %d; Match MC? %d; high %d; low %d\n",nMax,matchHighLMAndHighMC,high,low); | |
b2e375c7 | 759 | |
36769d30 | 760 | if(!noverlaps) |
b2e375c7 | 761 | { |
36769d30 | 762 | if(matchHighLMAndHighMC) |
763 | { | |
764 | if (high && !low) fhMCPi0HighNLMPair->Fill(en,nMax); | |
765 | else if(low && !high) fhMCPi0LowNLMPair ->Fill(en,nMax); | |
766 | else if(low && high) fhMCPi0AnyNLMPair ->Fill(en,nMax); | |
767 | else fhMCPi0NoneNLMPair->Fill(en,nMax); | |
768 | } | |
769 | else | |
770 | { | |
771 | if (high && !low) fhMCPi0HighNLMPairNoMCMatch->Fill(en,nMax); | |
772 | else if(low && !high) fhMCPi0LowNLMPairNoMCMatch ->Fill(en,nMax); | |
773 | else if(low && high) fhMCPi0AnyNLMPairNoMCMatch ->Fill(en,nMax); | |
774 | else fhMCPi0NoneNLMPairNoMCMatch->Fill(en,nMax); | |
775 | } | |
b2e375c7 | 776 | } |
777 | else | |
778 | { | |
36769d30 | 779 | if(matchHighLMAndHighMC) |
780 | { | |
781 | if (high && !low) fhMCPi0HighNLMPairOverlap->Fill(en,nMax); | |
782 | else if(low && !high) fhMCPi0LowNLMPairOverlap->Fill(en,nMax); | |
783 | else if(low && high) fhMCPi0AnyNLMPairOverlap->Fill(en,nMax); | |
784 | else fhMCPi0NoneNLMPairOverlap->Fill(en,nMax); | |
785 | } | |
786 | else | |
787 | { | |
788 | if (high && !low) fhMCPi0HighNLMPairNoMCMatchOverlap->Fill(en,nMax); | |
789 | else if(low && !high) fhMCPi0LowNLMPairNoMCMatchOverlap->Fill(en,nMax); | |
790 | else if(low && high) fhMCPi0AnyNLMPairNoMCMatchOverlap->Fill(en,nMax); | |
791 | else fhMCPi0NoneNLMPairNoMCMatchOverlap->Fill(en,nMax); | |
792 | } | |
b2e375c7 | 793 | } |
1253480f | 794 | |
36769d30 | 795 | //---------------------------------------------------------------------- |
83351853 | 796 | //---------------------------------------------------------------------- |
797 | // Compare MC decay photon projection to cell location and Local Maxima | |
798 | //---------------------------------------------------------------------- | |
36769d30 | 799 | //---------------------------------------------------------------------- |
83351853 | 800 | |
801 | // Get the mother pi0 | |
802 | ||
803 | Bool_t ok = kFALSE; | |
804 | Int_t pdg = -22222, status = -1; | |
805 | Int_t gLabel = -1; | |
806 | ||
807 | Int_t label = cluster->GetLabel(); | |
808 | TLorentzVector pi0Kine; | |
809 | ||
810 | while( pdg!=111 && label>=0 ) | |
811 | { | |
812 | pi0Kine = GetMCAnalysisUtils()->GetGrandMother(label,GetReader(),pdg,status,ok, label,gLabel); | |
813 | } | |
814 | ||
815 | if(pdg!=111 || label < 0) | |
816 | { | |
a6d3b0a8 | 817 | Info("CheckLocalMaximaMCOrigin","Mother Pi0 not found!\n"); |
83351853 | 818 | return; |
819 | } | |
820 | ||
821 | Int_t nDaugthers = GetMCAnalysisUtils()->GetNDaughters(label,GetReader(),ok); | |
822 | ||
823 | if(nDaugthers != 2) | |
824 | { | |
a6d3b0a8 | 825 | Info("CheckLocalMaximaMCOrigin","N daughters %d !=2!\n",nDaugthers); |
83351853 | 826 | return; |
827 | } | |
828 | ||
829 | // Get daughter photon kinematics | |
830 | Int_t pdg0 = -22222, status0 = -1; Int_t label0 = -1; | |
831 | TLorentzVector photon0Kine = GetMCAnalysisUtils()->GetDaughter(0,label,GetReader(),pdg0,status0,ok,label0); | |
832 | Int_t pdg1 = -22222, status1 = -1; Int_t label1 = -1; | |
833 | TLorentzVector photon1Kine = GetMCAnalysisUtils()->GetDaughter(1,label,GetReader(),pdg1,status1,ok,label1); | |
834 | ||
835 | if(pdg1!=22 || pdg0 != 22) | |
836 | { | |
a6d3b0a8 | 837 | Info("CheckLocalMaximaMCOrigin","Wrong daughters PDG: photon0 %d - photon1 %d\n",pdg0,pdg1); |
83351853 | 838 | return; |
839 | } | |
840 | ||
841 | // In what cells did the photons hit | |
842 | Float_t eta0 = photon0Kine.Eta(); | |
843 | Float_t eta1 = photon1Kine.Eta(); | |
844 | ||
845 | Float_t phi0 = photon0Kine.Phi(); | |
846 | Float_t phi1 = photon1Kine.Phi(); | |
847 | ||
4914e781 | 848 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
849 | // { | |
850 | // printf("MC pi0 label %d E %2.2f, eta %2.2f, phi %2.2f, mass (ph1, ph2) %2.2f: \n \t photon0 label %d E %2.2f, eta %2.2f, phi %2.2f \n \t photon1 label %d E %2.2f eta %2.2f, phi %2.2f\n", | |
851 | // label , pi0Kine.E() , pi0Kine.Eta(),pi0Kine.Phi()*TMath::RadToDeg(), (photon0Kine+photon1Kine).M(), | |
852 | // label0, photon0Kine.E(), eta0, phi0*TMath::RadToDeg(), | |
853 | // label1, photon1Kine.E(), eta1, phi1*TMath::RadToDeg()); | |
854 | // | |
855 | // TLorentzVector momclus; | |
856 | // cluster->GetMomentum(momclus,GetVertex(0)); | |
857 | // printf("Cluster E %2.2F eta %2.2f, phi %2.2f, dist to bad %2.2f\n",momclus.E(),momclus.Eta(),momclus.Phi()*TMath::RadToDeg(), cluster->GetDistanceToBadChannel()); | |
858 | // } | |
36769d30 | 859 | |
83351853 | 860 | if(phi0 < 0 ) phi0+=TMath::TwoPi(); |
861 | if(phi1 < 0 ) phi1+=TMath::TwoPi(); | |
862 | ||
863 | Int_t absId0=-1, absId1=-1; | |
864 | GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta0, phi0, absId0); | |
865 | GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta1, phi1, absId1); | |
866 | ||
867 | if(absId1 < 0 || absId1 < 0) | |
868 | { | |
4914e781 | 869 | //printf("AliAnaInsideClusterInvariantMass::CheckLocalMaximaMCOrigin(() - Photon hit AbsId: photon0 %d - photon1 %d\n",absId0,absId1); |
83351853 | 870 | return; |
871 | } | |
872 | ||
36769d30 | 873 | //----------------------------------------------- |
83351853 | 874 | // Check that the 2 photons hit the Local Maxima |
36769d30 | 875 | //----------------------------------------------- |
83351853 | 876 | |
4914e781 | 877 | |
878 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) | |
879 | // { | |
880 | // printf("Photons AbsId (%d,%d); Local Maxima AbsId(%d,%d)\n",absId0,absId1,list[imax],list[imax2]); | |
881 | // printf("Photon1 (eta,phi)=(%f,%f); Photon2 (eta,phi)=(%f,%f);\n",eta0,phi0*TMath::RadToDeg(),eta1,phi1*TMath::RadToDeg()); | |
882 | // | |
883 | // Int_t ieta0=-1; Int_t iphi0 = 0; Int_t rcu0 = 0; | |
884 | // Int_t sm0 = GetModuleNumberCellIndexes(absId0,fCalorimeter, ieta0, iphi0, rcu0); | |
885 | // Int_t ieta1=-1; Int_t iphi1 = 0; Int_t rcu1 = 0; | |
886 | // Int_t sm1 = GetModuleNumberCellIndexes(absId1,fCalorimeter, ieta1, iphi1, rcu1); | |
887 | // | |
888 | // printf("Photon1 (id,sm,eta,phi)=(%d,%d,%d,%d), Photon2 (id,sm,eta,phi)=(%d,%d,%d,%d)\n", | |
889 | // absId0,sm0,ieta0,iphi0,absId1,sm1,ieta1,iphi1); | |
890 | // | |
891 | // Int_t ietam0=-1; Int_t iphim0 = 0; Int_t rcum0 = 0; Int_t smm0 = -1 ; | |
892 | // if(imax >= 0) smm0 = GetModuleNumberCellIndexes(list[imax] ,fCalorimeter, ietam0, iphim0, rcum0); | |
893 | // Int_t ietam1=-1; Int_t iphim1 = 0; Int_t rcum1 = 0; Int_t smm1 = -1 ; | |
894 | // if(imax2 >= 0) smm1 = GetModuleNumberCellIndexes(list[imax2],fCalorimeter, ietam1, iphim1, rcum1); | |
895 | // | |
896 | // printf("Max (id, sm,eta,phi)=(%d,%d,%d,%d), Max2 (id, sm,eta,phi)=(%d,%d,%d,%d)\n", | |
897 | // list[imax],smm0,ietam0,iphim0,list[imax2],smm1,ietam1,iphim1); | |
898 | // } | |
899 | ||
b583134f | 900 | Int_t inlm = nMax-1; |
901 | if(inlm > 2) inlm = 2; | |
83351853 | 902 | |
36769d30 | 903 | Bool_t match0 = kFALSE; |
904 | Bool_t match1 = kFALSE; | |
905 | Int_t imatch0 = -1; | |
906 | Int_t imatch1 = -1; | |
907 | if(imax >= 0 && imax2 >=0 && absId0 > 0 && absId1 > 0 ) | |
87c4fd53 | 908 | { |
36769d30 | 909 | if (absId0 == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; } |
910 | else if(absId0 == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; } | |
911 | ||
912 | if (absId1 == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; } | |
913 | else if(absId1 == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; } | |
87c4fd53 | 914 | } |
83351853 | 915 | |
36769d30 | 916 | //printf("primary imatch0 %d, imatch1 %d\n",imatch0,imatch1); |
917 | ||
918 | // If one or the 2 not matched, check with the other MC labels | |
919 | // only in case there was a conversion | |
83351853 | 920 | |
36769d30 | 921 | Int_t absId0second = -1; |
922 | Int_t absId1second = -1; | |
923 | Int_t secLabel0 = -1; | |
924 | Int_t secLabel1 = -1; | |
925 | Int_t mcLabel0 = -1; | |
926 | Int_t mcLabel1 = -1; | |
927 | Bool_t secOK = 0; | |
928 | Int_t secpdg = -999999; | |
929 | Int_t secstatus = -1; | |
930 | Int_t secgrandLabel = -1; | |
931 | ||
932 | if(match0) { secLabel0 = label0 ; mcLabel0 = label0 ; } | |
933 | if(match1) { secLabel1 = label1 ; mcLabel1 = label1 ; } | |
934 | ||
935 | if((!match0 || !match1) && mcindex == kmcPi0Conv) | |
83351853 | 936 | { |
36769d30 | 937 | for (UInt_t ilab = 0; ilab < cluster->GetNLabels(); ilab++ ) |
938 | { | |
939 | Int_t mclabel = cluster->GetLabels()[ilab]; | |
940 | ||
941 | //printf("Check label %d - %d\n",ilab,mclabel); | |
942 | ||
943 | if(mclabel == label0 || mclabel == label1) | |
944 | { | |
945 | //printf("continue: secLabel %d, label0 %d, label1 %d\n",mclabel,label0,label1); | |
946 | if(mclabel == label0 && secLabel0 < 0) { secLabel0 = label0 ; mcLabel0 = label0 ; } | |
947 | if(mclabel == label1 && secLabel1 < 0) { secLabel1 = label1 ; mcLabel1 = label1 ; } | |
948 | continue ; | |
949 | } | |
950 | ||
951 | //printf("Before while: secLabel0 %d, secLabel1 %d\n",secLabel0,secLabel1); | |
952 | ||
953 | // match mc label and parent photon | |
954 | Int_t tmplabel = mclabel; | |
955 | while((secLabel0 < 0 || secLabel1 < 0) && tmplabel > 0 ) | |
956 | { | |
957 | TLorentzVector mother = GetMCAnalysisUtils()->GetMother(tmplabel,GetReader(),secpdg,secstatus,secOK,secgrandLabel); | |
958 | ||
959 | //printf("\t \t while secLabel %d, mom %d, granmom %d\n",mclabel,tmplabel,secgrandLabel); | |
960 | ||
961 | if((secgrandLabel == label0) || (secgrandLabel == label1 )) | |
962 | { | |
963 | //printf("mcMatch! grand label %d, secLabel %d\n",secgrandLabel, mclabel); | |
964 | if(!match0 && mcLabel1 != secgrandLabel) { secLabel0 = mclabel; mcLabel0 = secgrandLabel; } | |
965 | if(!match1 && mcLabel0 != secgrandLabel) { secLabel1 = mclabel; mcLabel1 = secgrandLabel; } | |
966 | } | |
967 | ||
968 | //printf("\t GrandMother %d, secLabel0 %d, secLabel1 %d \n",secgrandLabel, secLabel0,secLabel1); | |
83351853 | 969 | |
36769d30 | 970 | tmplabel = secgrandLabel; |
971 | } | |
972 | } | |
83351853 | 973 | |
36769d30 | 974 | // Get the position of the found secondaries mother |
975 | if(!match0 && secLabel0 > 0) | |
87c4fd53 | 976 | { |
36769d30 | 977 | TLorentzVector mother = GetMCAnalysisUtils()->GetMother(secLabel0,GetReader(),secpdg,secstatus,secOK,secgrandLabel); |
978 | ||
4914e781 | 979 | //Float_t eta = mother.Eta(); |
980 | //Float_t phi = mother.Phi(); | |
981 | //if(phi < 0 ) phi+=TMath::TwoPi(); | |
982 | //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId0second); | |
36769d30 | 983 | |
984 | //printf("Secondary MC0 label %d, absId %d E %2.2F eta %2.2f, phi %f\n", secLabel0,absId0second, mother.E(),mother.Eta(),mother.Phi()*TMath::RadToDeg()); | |
985 | ||
986 | if(absId0second == list[imax] ) { match0 = kTRUE ; imatch0 = imax ; } | |
987 | if(absId0second == list[imax2]) { match0 = kTRUE ; imatch0 = imax2 ; } | |
87c4fd53 | 988 | } |
36769d30 | 989 | |
990 | if(!match1 && secLabel1 > 0) | |
87c4fd53 | 991 | { |
36769d30 | 992 | TLorentzVector mother = GetMCAnalysisUtils()->GetMother(secLabel1,GetReader(),secpdg,secstatus,secOK,secgrandLabel); |
993 | ||
4914e781 | 994 | //Float_t eta = mother.Eta(); |
995 | //Float_t phi = mother.Phi(); | |
996 | //if(phi < 0 ) phi+=TMath::TwoPi(); | |
997 | //GetEMCALGeometry()->GetAbsCellIdFromEtaPhi(eta, phi, absId1second); | |
36769d30 | 998 | |
999 | //printf("Secondary MC1 label %d absId %d E %2.2F eta %2.2f, phi %f\n",secLabel1, absId1second, mother.E(),mother.Eta(),mother.Phi()*TMath::RadToDeg()); | |
1000 | ||
1001 | if(absId1second == list[imax] ) { match1 = kTRUE ; imatch1 = imax ; } | |
1002 | if(absId1second == list[imax2]) { match1 = kTRUE ; imatch1 = imax2 ; } | |
87c4fd53 | 1003 | } |
36769d30 | 1004 | |
1005 | //printf("secondary label mc0 %d, mc1 %d, imatch0 %d, imatch1 %d\n",secLabel0,secLabel1,imatch0,imatch1); | |
1006 | ||
1007 | } | |
1008 | ||
1009 | //printf("imatch0 %d, imatch1 %d\n",imatch0,imatch1); | |
1010 | if( match0 && match1 ) | |
1011 | { | |
4914e781 | 1012 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
1013 | // printf("a) Both Photons hit local maxima \n"); | |
36769d30 | 1014 | |
b583134f | 1015 | if(!noverlaps) |
1016 | { | |
1017 | fhMCPi0DecayPhotonHitHighLM ->Fill(en,nMax); | |
1018 | fhMCPi0DecayPhotonHitHighLMMass[inlm]->Fill(en,mass); | |
1019 | if(match0 && imatch0 == imax) | |
1020 | { | |
cb99fa55 | 1021 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1022 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
29555e96 | 1023 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E()); |
1024 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1025 | } |
1026 | else | |
1027 | { | |
cb99fa55 | 1028 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1029 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
29555e96 | 1030 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E()); |
1031 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1032 | } |
1033 | } | |
1034 | else | |
1035 | { | |
1036 | fhMCPi0DecayPhotonHitHighLMOverlap ->Fill(en,nMax); | |
1037 | fhMCPi0DecayPhotonHitHighLMOverlapMass[inlm]->Fill(en,mass); | |
1038 | if(match0 && imatch0 == imax ) | |
1039 | { | |
cb99fa55 | 1040 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1041 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
29555e96 | 1042 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E()); |
1043 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1044 | } |
1045 | else | |
1046 | { | |
cb99fa55 | 1047 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1048 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
29555e96 | 1049 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E()); |
1050 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1051 | } |
1052 | ||
1053 | } | |
36769d30 | 1054 | |
1055 | return ; | |
1056 | } | |
1057 | ||
1058 | //printf("Any match? photon0 %d, photon1 %d\n",match0,match1); | |
1059 | //if(!match0 && !match1) printf("WARNING, LM not matched to any photon decay!\n"); | |
1060 | ||
1061 | //--------------------------------------------- | |
1062 | // Check the adjacent cells to the local maxima | |
1063 | //--------------------------------------------- | |
1064 | ||
36769d30 | 1065 | if(!match0) |
1066 | { | |
b583134f | 1067 | if(imatch1!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax])) { match0 = kTRUE; imatch0 = imax ; } |
36769d30 | 1068 | //printf("imax - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam0,ieta0-ietam0, iphi0,iphim0,iphi0-iphim0); |
b583134f | 1069 | if(imatch1!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[imax2]) ) { match0 = kTRUE; imatch0 = imax2 ; } |
36769d30 | 1070 | //printf("imax2 - match0? (%d-%d)=%d, (%d-%d)=%d\n",ieta0,ietam1,ieta0-ietam1, iphi0,iphim1,iphi0-iphim1); |
1071 | } | |
1072 | ||
1073 | if(!match1) | |
1074 | { | |
b583134f | 1075 | if(imatch0!=imax && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax]) ) { match1 = kTRUE; imatch1 = imax ; } |
36769d30 | 1076 | //printf("imax - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam0,ieta1-ietam0, iphi1,iphim0,iphi1-iphim0); |
1077 | ||
b583134f | 1078 | if(imatch0!=imax2 && GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[imax2])) { match1 = kTRUE; imatch1 = imax2 ; } |
36769d30 | 1079 | //printf("imax2 - match1? (%d-%d)=%d, (%d-%d)=%d\n",ieta1,ietam1,ieta1-ietam1, iphi1,iphim1,iphi1-iphim1); |
1080 | } | |
1081 | ||
1082 | //printf("Local Maxima: adjacent0 %d,adjacent1 %d \n",match0,match1); | |
1083 | ||
1084 | if(match0 && match1) | |
1085 | { | |
4914e781 | 1086 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
1087 | // printf("b) Both Photons hit local maxima or cell adjacent or 2 cells adjacent \n"); | |
83351853 | 1088 | |
b583134f | 1089 | if(!noverlaps) |
1090 | { | |
1091 | fhMCPi0DecayPhotonAdjHighLM ->Fill(en,nMax); | |
1092 | fhMCPi0DecayPhotonAdjHighLMMass[inlm]->Fill(en,mass); | |
1093 | ||
1094 | if(match0 && imatch0 == imax) | |
1095 | { | |
cb99fa55 | 1096 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1097 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
29555e96 | 1098 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E()); |
1099 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1100 | } |
1101 | else | |
1102 | { | |
cb99fa55 | 1103 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1104 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
29555e96 | 1105 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E()); |
1106 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1107 | } |
1108 | } | |
1109 | else | |
1110 | { | |
1111 | fhMCPi0DecayPhotonAdjHighLMOverlap ->Fill(en,nMax); | |
1112 | fhMCPi0DecayPhotonAdjHighLMOverlapMass[inlm]->Fill(en,mass); | |
1113 | if(match0 && imatch0 == imax) | |
1114 | { | |
cb99fa55 | 1115 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1116 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
29555e96 | 1117 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon0Kine.E())/photon0Kine.E()); |
1118 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1119 | } |
1120 | else | |
1121 | { | |
cb99fa55 | 1122 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1123 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
29555e96 | 1124 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[inlm]->Fill(e1,(e1-photon1Kine.E())/photon1Kine.E()); |
1125 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[inlm]->Fill(e2,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1126 | } |
1127 | } | |
36769d30 | 1128 | |
1129 | return; | |
1130 | } | |
36769d30 | 1131 | |
1132 | // Decay photon cells are adjacent? | |
1133 | ||
1134 | if( (match0 || match1) && GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,absId1) ) | |
1135 | { | |
4914e781 | 1136 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
1137 | // printf("c) Both Photons hit a local maxima and in adjacent cells \n"); | |
b583134f | 1138 | if(!noverlaps) |
1139 | { | |
1140 | fhMCPi0DecayPhotonAdjacent ->Fill(en,nMax); | |
1141 | fhMCPi0DecayPhotonAdjacentMass[inlm]->Fill(en,mass); | |
1142 | } | |
1143 | else | |
1144 | { | |
1145 | fhMCPi0DecayPhotonAdjacentOverlap ->Fill(en,nMax); | |
1146 | fhMCPi0DecayPhotonAdjacentOverlapMass[inlm]->Fill(en,mass); | |
1147 | } | |
83351853 | 1148 | |
36769d30 | 1149 | return; |
83351853 | 1150 | } |
1151 | ||
36769d30 | 1152 | //-------------------- |
1153 | // Other Local maxima | |
1154 | //-------------------- | |
1155 | ||
83351853 | 1156 | Bool_t matchMCHitOtherLM = kFALSE; |
36769d30 | 1157 | if(!match1) |
1158 | { | |
1159 | for(Int_t i = 0; i < nmaxima; i++) | |
1160 | { | |
1161 | if(imax!=i && imax2!=i && absId1 == list[i]) { match1 = kTRUE; matchMCHitOtherLM = kTRUE; } | |
1162 | } | |
1163 | } | |
1164 | ||
1165 | if(!match0) | |
1166 | { | |
1167 | for(Int_t i = 0; i < nmaxima; i++) | |
1168 | { | |
1169 | if(imax!=i && imax2!=i && absId0 == list[i]) { match0 = kTRUE; matchMCHitOtherLM = kTRUE; } | |
1170 | } | |
1171 | } | |
1172 | ||
1173 | if(matchMCHitOtherLM) | |
1174 | { | |
4914e781 | 1175 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
1176 | // printf("d) One Photon hits a local maxima, the other another not high \n"); | |
36769d30 | 1177 | |
b583134f | 1178 | if(!noverlaps) |
1179 | { | |
1180 | fhMCPi0DecayPhotonHitOtherLM ->Fill(en,nMax); | |
1181 | fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass); | |
1182 | if(match0 && imatch0 == imax) | |
1183 | { | |
cb99fa55 | 1184 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1185 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1186 | } |
1187 | else | |
1188 | { | |
cb99fa55 | 1189 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1190 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1191 | } |
1192 | } | |
1193 | else | |
1194 | { | |
1195 | fhMCPi0DecayPhotonHitOtherLMOverlap ->Fill(en,nMax); | |
1196 | fhMCPi0DecayPhotonHitOtherLMMass[inlm]->Fill(en,mass); | |
1197 | if(match0 && imatch0 == imax) | |
1198 | { | |
cb99fa55 | 1199 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1200 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1201 | } |
1202 | else | |
1203 | { | |
cb99fa55 | 1204 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1205 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1206 | } |
1207 | } | |
36769d30 | 1208 | |
1209 | return ; | |
1210 | } | |
1211 | ||
1212 | // Adjacent to other maxima | |
1213 | ||
1214 | Bool_t adjacentOther1 = kFALSE; | |
1215 | if(match0) | |
83351853 | 1216 | { |
36769d30 | 1217 | for(Int_t i = 0; i < nmaxima; i++) |
83351853 | 1218 | { |
36769d30 | 1219 | Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0; |
1220 | GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu); | |
83351853 | 1221 | |
36769d30 | 1222 | //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi); |
1223 | ||
1224 | if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId1,list[i]) ) adjacentOther1 = kTRUE; | |
1225 | ||
1226 | //printf("Other Maxima: adjacentOther1 %d\n",adjacentOther1); | |
83351853 | 1227 | } |
1228 | } | |
1229 | ||
36769d30 | 1230 | Bool_t adjacentOther0 = kFALSE; |
1231 | if(match1) | |
83351853 | 1232 | { |
36769d30 | 1233 | for(Int_t i = 0; i < nmaxima; i++) |
83351853 | 1234 | { |
36769d30 | 1235 | Int_t ieta=-1; Int_t iphi = 0; Int_t rcu = 0; |
1236 | GetModuleNumberCellIndexes(list[i] ,fCalorimeter, ieta, iphi, rcu); | |
83351853 | 1237 | |
36769d30 | 1238 | //printf(" Other Max (eta,phi)=(%d,%d)\n",ieta,iphi); |
1239 | ||
1240 | if(GetCaloUtils()->AreNeighbours(fCalorimeter,absId0,list[i]) ) adjacentOther0 = kTRUE; | |
1241 | ||
1242 | //printf("Other Maxima: adjacentOther0 %d\n",adjacentOther0); | |
83351853 | 1243 | } |
1244 | } | |
1245 | ||
36769d30 | 1246 | if((match0 && adjacentOther1) || (match1 && adjacentOther0)) |
1247 | { | |
4914e781 | 1248 | |
1249 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) | |
1250 | // printf("e) One Photon hits a local maxima, the other another not high, adjacent \n"); | |
36769d30 | 1251 | |
b583134f | 1252 | if(!noverlaps) |
1253 | { | |
1254 | fhMCPi0DecayPhotonAdjOtherLM ->Fill(en,nMax); | |
1255 | fhMCPi0DecayPhotonAdjOtherLMMass[inlm]->Fill(en,mass); | |
1256 | if(match0 && imatch0 == imax) | |
1257 | { | |
cb99fa55 | 1258 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1259 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1260 | } |
1261 | else | |
1262 | { | |
cb99fa55 | 1263 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1264 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1265 | } |
1266 | } | |
1267 | else | |
1268 | { | |
1269 | fhMCPi0DecayPhotonAdjOtherLMOverlap ->Fill(en,nMax); | |
1270 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[inlm]->Fill(en,mass); | |
1271 | if(match0 && imatch0 == imax) | |
1272 | { | |
cb99fa55 | 1273 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon0Kine.E())/photon0Kine.E()); |
1274 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon1Kine.E())/photon1Kine.E()); | |
b583134f | 1275 | } |
1276 | else | |
1277 | { | |
cb99fa55 | 1278 | if(photon1Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[inlm]->Fill(en,(e1-photon1Kine.E())/photon1Kine.E()); |
1279 | if(photon0Kine.E()>0)fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[inlm]->Fill(en,(e2-photon0Kine.E())/photon0Kine.E()); | |
b583134f | 1280 | } |
1281 | } | |
36769d30 | 1282 | |
1283 | return; | |
1284 | } | |
1285 | ||
4914e781 | 1286 | // if((mass < 0.06 || mass > 1.8) && mcindex==kmcPi0 && noverlaps == 0) |
1287 | // printf("f) No hit found \n"); | |
b583134f | 1288 | if(!noverlaps) |
1289 | { | |
1290 | fhMCPi0DecayPhotonHitNoLM ->Fill(en,nMax); | |
1291 | fhMCPi0DecayPhotonHitNoLMMass[inlm]->Fill(en,mass); | |
1292 | } | |
1293 | else | |
1294 | { | |
1295 | fhMCPi0DecayPhotonHitNoLMOverlap ->Fill(en,nMax); | |
1296 | fhMCPi0DecayPhotonHitNoLMOverlapMass[inlm]->Fill(en,mass); | |
1297 | } | |
83351853 | 1298 | |
b2e375c7 | 1299 | } |
1300 | ||
b94e038e | 1301 | //___________________________________________________________________________________________________________ |
1302 | void AliAnaInsideClusterInvariantMass::FillAngleHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex, | |
1303 | Float_t en, Float_t e1, Float_t e2, | |
1304 | Float_t angle, Float_t mass, | |
1305 | Float_t anglePrim, Float_t m02, | |
1306 | Float_t asym, Int_t pid, Int_t noverlaps) | |
b2e375c7 | 1307 | { |
1308 | // Fill histograms related to opening angle | |
29555e96 | 1309 | |
1310 | Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax); | |
1311 | Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax); | |
1312 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); | |
1313 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
a6d3b0a8 | 1314 | |
1315 | Bool_t eCutOK= kFALSE; | |
1316 | Int_t inlm = nMax-1; | |
1317 | if(inlm > 2 ) inlm = 2; | |
1318 | Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm); | |
1319 | if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE; | |
1320 | else if(ensubcut < 0.1) eCutOK = kTRUE; | |
1321 | ||
b2e375c7 | 1322 | if (nMax==1) |
1323 | { | |
0186b6a2 | 1324 | fhAnglePairNLocMax1[0][matched]->Fill(en,angle); |
29555e96 | 1325 | |
a6d3b0a8 | 1326 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1327 | fhAnglePairAfterCutsNLocMax1[0][matched]->Fill(en,angle); |
1328 | if(pid==AliCaloPID::kPi0) | |
1329 | fhAnglePairPi0NLocMax1[0][matched]->Fill(en,angle); | |
1330 | ||
4e5a94c5 | 1331 | if(m02 > 0) |
1332 | { | |
1333 | fhAnglePairOverM02NLocMax1[0][matched]->Fill(en,angle/m02); | |
1334 | if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[0][matched]->Fill(en,angle/m02); | |
1335 | } | |
1336 | ||
d261ae67 | 1337 | if( en > 15 ) |
1338 | { | |
1339 | fhAnglePairMassNLocMax1[0][matched]->Fill(mass,angle); | |
1340 | fhAnglePairM02NLocMax1 [0][matched]->Fill(m02 ,angle); | |
1341 | } | |
b2e375c7 | 1342 | } |
1343 | else if(nMax==2) | |
1344 | { | |
0186b6a2 | 1345 | fhAnglePairNLocMax2[0][matched]->Fill(en,angle); |
29555e96 | 1346 | |
a6d3b0a8 | 1347 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1348 | fhAnglePairAfterCutsNLocMax2[0][matched]->Fill(en,angle); |
1349 | if(pid==AliCaloPID::kPi0) | |
1350 | fhAnglePairPi0NLocMax2[0][matched]->Fill(en,angle); | |
1351 | ||
4e5a94c5 | 1352 | if(m02 > 0) |
1353 | { | |
1354 | fhAnglePairOverM02NLocMax2[0][matched]->Fill(en,angle/m02); | |
1355 | if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[0][matched]->Fill(angle/m02,en); | |
1356 | } | |
1357 | ||
d261ae67 | 1358 | if( en > fHistoECut ) |
1359 | { | |
1360 | fhAnglePairMassNLocMax2[0][matched]->Fill(mass,angle); | |
1361 | fhAnglePairM02NLocMax2 [0][matched]->Fill(m02,angle); | |
1362 | } | |
b2e375c7 | 1363 | } |
1364 | else if(nMax >2) | |
1365 | { | |
0186b6a2 | 1366 | fhAnglePairNLocMaxN[0][matched]->Fill(en,angle); |
29555e96 | 1367 | |
a6d3b0a8 | 1368 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1369 | fhAnglePairAfterCutsNLocMaxN[0][matched]->Fill(en,angle); |
1370 | if(pid==AliCaloPID::kPi0) | |
1371 | fhAnglePairPi0NLocMaxN[0][matched]->Fill(en,angle); | |
1372 | ||
4e5a94c5 | 1373 | if(m02 > 0) |
1374 | { | |
1375 | fhAnglePairOverM02NLocMaxN[0][matched]->Fill(en,angle/m02); | |
1376 | if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[0][matched]->Fill(angle/m02,en); | |
1377 | } | |
1378 | ||
d261ae67 | 1379 | if( en > fHistoECut ) |
1380 | { | |
1381 | fhAnglePairMassNLocMaxN[0][matched]->Fill(mass,angle); | |
1382 | fhAnglePairM02NLocMaxN [0][matched]->Fill(m02,angle); | |
1383 | } | |
0186b6a2 | 1384 | } |
1385 | ||
1386 | if(IsDataMC() && mcIndex > 0 && mcIndex < 7) | |
1387 | { | |
1388 | if (nMax==1) | |
1389 | { | |
1390 | fhAnglePairNLocMax1[mcIndex][matched]->Fill(en,angle); | |
d261ae67 | 1391 | if( en > 15 ) |
1392 | { | |
1393 | fhAnglePairMassNLocMax1[mcIndex][matched]->Fill(mass,angle); | |
1394 | fhAnglePairM02NLocMax1 [mcIndex][matched]->Fill(m02,angle); | |
1395 | } | |
a6d3b0a8 | 1396 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1397 | fhAnglePairAfterCutsNLocMax1[mcIndex][matched]->Fill(en,angle); |
1398 | if(pid==AliCaloPID::kPi0) | |
1399 | fhAnglePairPi0NLocMax1[mcIndex][matched]->Fill(en,angle); | |
1400 | ||
4e5a94c5 | 1401 | if(m02 > 0) |
1402 | { | |
1403 | fhAnglePairOverM02NLocMax1[mcIndex][matched]->Fill(en,angle/m02); | |
1404 | if(noverlaps == 0) fhAnglePairOverM02NLocMax1Overlap0[mcIndex][matched]->Fill(angle/m02,en); | |
1405 | } | |
1406 | ||
0186b6a2 | 1407 | if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0) |
1408 | { | |
1409 | fhAnglePairPrimPi0RecoNLocMax1->Fill(en,angle/anglePrim); | |
4e5a94c5 | 1410 | if(m02>0)fhAnglePairPrimPi0OverM02NLocMax1->Fill(en,anglePrim/m02); |
0186b6a2 | 1411 | if(en > 15) fhAnglePairPrimPi0vsRecoNLocMax1->Fill(anglePrim,angle); |
1412 | ||
1413 | } | |
1414 | } | |
1415 | else if(nMax==2) | |
1416 | { | |
1417 | fhAnglePairNLocMax2[mcIndex][matched]->Fill(en,angle); | |
d261ae67 | 1418 | if( en > fHistoECut ) |
1419 | { | |
1420 | fhAnglePairMassNLocMax2[mcIndex][matched]->Fill(mass,angle); | |
1421 | fhAnglePairM02NLocMax2 [mcIndex][matched]->Fill(m02 ,angle); | |
1422 | } | |
29555e96 | 1423 | |
a6d3b0a8 | 1424 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1425 | fhAnglePairAfterCutsNLocMax2[mcIndex][matched]->Fill(en,angle); |
1426 | if(pid==AliCaloPID::kPi0) | |
1427 | fhAnglePairPi0NLocMax2[mcIndex][matched]->Fill(en,angle); | |
1428 | ||
4e5a94c5 | 1429 | if(m02 > 0) |
1430 | { | |
1431 | fhAnglePairOverM02NLocMax2[mcIndex][matched]->Fill(en,angle/m02); | |
1432 | if(noverlaps == 0) fhAnglePairOverM02NLocMax2Overlap0[mcIndex][matched]->Fill(angle/m02,en); | |
1433 | } | |
1434 | ||
0186b6a2 | 1435 | if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0) |
1436 | { | |
1437 | fhAnglePairPrimPi0RecoNLocMax2->Fill(en,angle/anglePrim); | |
4e5a94c5 | 1438 | if(m02>0)fhAnglePairPrimPi0OverM02NLocMax2->Fill(en,anglePrim/m02); |
0186b6a2 | 1439 | if(en > 10) fhAnglePairPrimPi0vsRecoNLocMax2->Fill(anglePrim,angle); |
1440 | } | |
1441 | } | |
1442 | else if(nMax >2) | |
1443 | { | |
1444 | fhAnglePairNLocMaxN[mcIndex][matched]->Fill(en,angle); | |
d261ae67 | 1445 | if( en > fHistoECut ) |
1446 | { | |
1447 | fhAnglePairMassNLocMaxN[mcIndex][matched]->Fill(mass,angle); | |
1448 | fhAnglePairM02NLocMaxN [mcIndex][matched]->Fill(m02 ,angle); | |
1449 | } | |
a6d3b0a8 | 1450 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1451 | fhAnglePairAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,angle); |
1452 | if(pid==AliCaloPID::kPi0) | |
1453 | fhAnglePairPi0NLocMaxN[mcIndex][matched]->Fill(en,angle); | |
1454 | ||
4e5a94c5 | 1455 | if(m02 > 0) |
1456 | { | |
1457 | fhAnglePairOverM02NLocMaxN[mcIndex][matched]->Fill(en,angle/m02); | |
1458 | if(noverlaps == 0) fhAnglePairOverM02NLocMaxNOverlap0[mcIndex][matched]->Fill(angle/m02,en); | |
1459 | } | |
1460 | ||
0186b6a2 | 1461 | if((mcIndex == kmcPi0 || mcIndex == kmcPi0Conv) && !matched && anglePrim > 0) |
1462 | { | |
1463 | fhAnglePairPrimPi0RecoNLocMaxN->Fill(en,angle/anglePrim); | |
4e5a94c5 | 1464 | if(m02>0)fhAnglePairPrimPi0OverM02NLocMaxN->Fill(en,anglePrim/m02); |
0186b6a2 | 1465 | if(en > 10) fhAnglePairPrimPi0vsRecoNLocMaxN->Fill(anglePrim,angle); |
1466 | } | |
1467 | } | |
1468 | ||
b2e375c7 | 1469 | } |
1470 | ||
1471 | } | |
1472 | ||
cb99fa55 | 1473 | //______________________________________________________________________________________________________________________ |
b94e038e | 1474 | void AliAnaInsideClusterInvariantMass::FillArmenterosHistograms(Int_t nMax, Int_t ebin, Int_t mcIndex, |
1475 | Float_t en, TLorentzVector g1, TLorentzVector g2, | |
1476 | Float_t m02, Int_t pid) | |
cb99fa55 | 1477 | { |
1478 | // Fill Armeteros type histograms | |
be894c1d | 1479 | |
1480 | // Get pTArm and AlphaArm | |
29555e96 | 1481 | TLorentzVector pi0 = g1+g2; |
be894c1d | 1482 | Float_t momentumSquaredMother = pi0.P()*pi0.P(); |
1483 | Float_t momentumDaughter1AlongMother = 0.; | |
1484 | Float_t momentumDaughter2AlongMother = 0.; | |
1485 | ||
1486 | if (momentumSquaredMother > 0.) | |
1487 | { | |
1488 | momentumDaughter1AlongMother = (g1.Px()*pi0.Px() + g1.Py()*pi0.Py()+ g1.Pz()*pi0.Pz()) / sqrt(momentumSquaredMother); | |
1489 | momentumDaughter2AlongMother = (g2.Px()*pi0.Px() + g2.Py()*pi0.Py()+ g2.Pz()*pi0.Pz()) / sqrt(momentumSquaredMother); | |
1490 | } | |
1491 | ||
1492 | Float_t momentumSquaredDaughter1 = g1.P()*g1.P(); | |
1493 | Float_t ptArmSquared = momentumSquaredDaughter1 - momentumDaughter1AlongMother*momentumDaughter1AlongMother; | |
1494 | ||
1495 | Float_t pTArm = 0.; | |
1496 | if (ptArmSquared > 0.) | |
1497 | pTArm = sqrt(ptArmSquared); | |
1498 | ||
1499 | Float_t alphaArm = 0.; | |
1500 | if(momentumDaughter1AlongMother +momentumDaughter2AlongMother > 0) | |
1501 | alphaArm = (momentumDaughter1AlongMother -momentumDaughter2AlongMother) / (momentumDaughter1AlongMother + momentumDaughter2AlongMother); | |
1502 | ||
cb99fa55 | 1503 | Float_t asym = TMath::Abs( g1.Energy()-g2.Energy() )/( g1.Energy()+g2.Energy() ) ; |
be894c1d | 1504 | |
a6d3b0a8 | 1505 | if(GetDebug() > 2 ) Info("FillArmenterosHistograms()","E %f, alphaArm %f, pTArm %f\n",en,alphaArm,pTArm); |
be894c1d | 1506 | |
cb99fa55 | 1507 | Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax); |
1508 | Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax); | |
1509 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); | |
1510 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
cb99fa55 | 1511 | |
a6d3b0a8 | 1512 | Bool_t eCutOK= kFALSE; |
1513 | Int_t inlm = nMax-1; | |
1514 | if(inlm > 2 ) inlm = 2; | |
1515 | Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm); | |
1516 | if (ensubcut > 0.1 && ensubcut < g1.E() && ensubcut < g2.E() ) eCutOK = kTRUE; | |
1517 | else if(ensubcut < 0.1) eCutOK = kTRUE; | |
1518 | ||
1519 | ||
cb99fa55 | 1520 | if (nMax==1) |
1521 | { | |
be894c1d | 1522 | fhArmNLocMax1[0][ebin]->Fill(alphaArm,pTArm); |
a6d3b0a8 | 1523 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
be894c1d | 1524 | fhArmAfterCutsNLocMax1[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1525 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1526 | fhArmPi0NLocMax1[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1527 | } |
1528 | else if(nMax==2) | |
1529 | { | |
be894c1d | 1530 | fhArmNLocMax2[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1531 | if((m02OK && asyOK) && (asyOn || m02On)) |
be894c1d | 1532 | fhArmAfterCutsNLocMax2[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1533 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1534 | fhArmPi0NLocMax2[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1535 | } |
1536 | else if(nMax >2) | |
1537 | { | |
be894c1d | 1538 | fhArmNLocMaxN[0][ebin]->Fill(alphaArm,pTArm); |
a6d3b0a8 | 1539 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
be894c1d | 1540 | fhArmAfterCutsNLocMaxN[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1541 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1542 | fhArmPi0NLocMaxN[0][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1543 | } |
1544 | ||
ed10b649 | 1545 | if(IsDataMC() && mcIndex > 0 && mcIndex < 7) |
cb99fa55 | 1546 | { |
1547 | if (nMax==1) | |
1548 | { | |
be894c1d | 1549 | fhArmNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm); |
a6d3b0a8 | 1550 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
be894c1d | 1551 | fhArmAfterCutsNLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1552 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1553 | fhArmPi0NLocMax1[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1554 | } |
1555 | else if(nMax==2) | |
1556 | { | |
be894c1d | 1557 | fhArmNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm); |
a6d3b0a8 | 1558 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
be894c1d | 1559 | fhArmAfterCutsNLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1560 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1561 | fhArmPi0NLocMax2[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1562 | } |
1563 | else if(nMax >2) | |
1564 | { | |
be894c1d | 1565 | fhArmNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm); |
a6d3b0a8 | 1566 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
be894c1d | 1567 | fhArmAfterCutsNLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1568 | if(pid==AliCaloPID::kPi0) |
be894c1d | 1569 | fhArmPi0NLocMaxN[mcIndex][ebin]->Fill(alphaArm,pTArm); |
cb99fa55 | 1570 | } |
1571 | ||
1572 | } | |
1573 | ||
1574 | } | |
1575 | ||
b94e038e | 1576 | //______________________________________________________________________________________________________________ |
1577 | void AliAnaInsideClusterInvariantMass::FillThetaStarHistograms(Int_t nMax, Bool_t matched, Int_t mcIndex, | |
1578 | Float_t en, TLorentzVector g1, TLorentzVector g2, | |
1579 | Float_t m02, Int_t pid) | |
29555e96 | 1580 | { |
1581 | // Fill cos Theta^star histograms | |
1582 | ||
1583 | ||
1584 | // Get cos Theta^star | |
1585 | TLorentzVector pi0 = g1+g2; | |
1586 | TLorentzVector g1Boost = g1; | |
1587 | g1Boost.Boost(-pi0.BoostVector()); | |
1588 | Float_t cosThStar=TMath::Cos(g1Boost.Vect().Angle(pi0.Vect())); | |
1589 | ||
1590 | Float_t asym = TMath::Abs( g1.Energy()-g2.Energy() )/( g1.Energy()+g2.Energy() ) ; | |
1591 | ||
1592 | Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,m02,nMax); | |
1593 | Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax); | |
1594 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); | |
1595 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
1596 | ||
a6d3b0a8 | 1597 | Bool_t eCutOK= kFALSE; |
1598 | Int_t inlm = nMax-1; | |
1599 | if(inlm > 2 ) inlm = 2; | |
1600 | Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm); | |
1601 | if (ensubcut > 0.1 && ensubcut < g1.E() && ensubcut < g2.E() ) eCutOK = kTRUE; | |
1602 | else if(ensubcut < 0.1) eCutOK = kTRUE; | |
1603 | ||
29555e96 | 1604 | //printf("Reco cos %f, asy %f\n",cosThStar,asym); |
1605 | ||
1606 | if (nMax==1) | |
1607 | { | |
1608 | fhCosThStarNLocMax1[0][matched]->Fill(en,cosThStar); | |
1609 | ||
a6d3b0a8 | 1610 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1611 | fhCosThStarAfterCutsNLocMax1[0][matched]->Fill(en,cosThStar); |
1612 | if(pid==AliCaloPID::kPi0) | |
1613 | fhCosThStarPi0NLocMax1[0][matched]->Fill(en,cosThStar); | |
1614 | } | |
1615 | else if(nMax==2) | |
1616 | { | |
1617 | fhCosThStarNLocMax2[0][matched]->Fill(en,cosThStar); | |
1618 | ||
a6d3b0a8 | 1619 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1620 | fhCosThStarAfterCutsNLocMax2[0][matched]->Fill(en,cosThStar); |
1621 | if(pid==AliCaloPID::kPi0) | |
1622 | fhCosThStarPi0NLocMax2[0][matched]->Fill(en,cosThStar); | |
1623 | } | |
1624 | else if(nMax >2) | |
1625 | { | |
1626 | fhCosThStarNLocMaxN[0][matched]->Fill(en,cosThStar); | |
1627 | ||
a6d3b0a8 | 1628 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1629 | fhCosThStarAfterCutsNLocMaxN[0][matched]->Fill(en,cosThStar); |
1630 | if(pid==AliCaloPID::kPi0) | |
1631 | fhCosThStarPi0NLocMaxN[0][matched]->Fill(en,cosThStar); | |
1632 | } | |
1633 | ||
1634 | if(IsDataMC() && mcIndex > 0 && mcIndex < 7) | |
1635 | { | |
1636 | if (nMax==1) | |
1637 | { | |
1638 | fhCosThStarNLocMax1[mcIndex][matched]->Fill(en,cosThStar); | |
1639 | ||
a6d3b0a8 | 1640 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1641 | fhCosThStarAfterCutsNLocMax1[mcIndex][matched]->Fill(en,cosThStar); |
1642 | if(pid==AliCaloPID::kPi0) | |
1643 | fhCosThStarPi0NLocMax1[mcIndex][matched]->Fill(en,cosThStar); | |
1644 | } | |
1645 | else if(nMax==2) | |
1646 | { | |
1647 | fhCosThStarNLocMax2[mcIndex][matched]->Fill(en,cosThStar); | |
1648 | ||
a6d3b0a8 | 1649 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1650 | fhCosThStarAfterCutsNLocMax2[mcIndex][matched]->Fill(en,cosThStar); |
1651 | if(pid==AliCaloPID::kPi0) | |
1652 | fhCosThStarPi0NLocMax2[mcIndex][matched]->Fill(en,cosThStar); | |
1653 | } | |
1654 | else if(nMax >2) | |
1655 | { | |
1656 | fhCosThStarNLocMaxN[mcIndex][matched]->Fill(en,cosThStar); | |
1657 | ||
a6d3b0a8 | 1658 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
29555e96 | 1659 | fhCosThStarAfterCutsNLocMaxN[mcIndex][matched]->Fill(en,cosThStar); |
1660 | if(pid==AliCaloPID::kPi0) | |
1661 | fhCosThStarPi0NLocMaxN[mcIndex][matched]->Fill(en,cosThStar); | |
1662 | } | |
1663 | ||
1664 | } | |
1665 | ||
1666 | } | |
1667 | ||
b94e038e | 1668 | //__________________________________________________________________________________________________________________ |
1669 | void AliAnaInsideClusterInvariantMass::FillEBinHistograms(Int_t ebin , Int_t nMax, Int_t mcindex, | |
1670 | Float_t splitFrac, Float_t mass, Float_t asym, Float_t l0) | |
b2e375c7 | 1671 | { |
1672 | // Fill some histograms integrating in few energy bins | |
1253480f | 1673 | |
b2e375c7 | 1674 | if (nMax==1) |
1675 | { | |
1676 | fhMassSplitEFractionNLocMax1Ebin[0][ebin]->Fill(splitFrac, mass); | |
cb99fa55 | 1677 | if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax1Ebin[mcindex][ebin]->Fill(splitFrac, mass); |
b2e375c7 | 1678 | |
1679 | fhMassM02NLocMax1Ebin [ebin]->Fill(l0 , mass ); | |
1680 | fhMassAsyNLocMax1Ebin [ebin]->Fill(asym, mass ); | |
1681 | } | |
1682 | else if(nMax==2) | |
1683 | { | |
1684 | fhMassSplitEFractionNLocMax2Ebin[0][ebin]->Fill(splitFrac, mass); | |
cb99fa55 | 1685 | if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMax2Ebin[mcindex][ebin]->Fill(splitFrac, mass); |
b2e375c7 | 1686 | |
1687 | fhMassM02NLocMax2Ebin [ebin]->Fill(l0 , mass ); | |
1688 | fhMassAsyNLocMax2Ebin [ebin]->Fill(asym, mass ); | |
1689 | } | |
1690 | else if(nMax > 2 ) | |
1691 | { | |
1692 | fhMassSplitEFractionNLocMaxNEbin[0][ebin]->Fill(splitFrac, mass); | |
cb99fa55 | 1693 | if(IsDataMC() && mcindex > 0 && mcindex < 7)fhMassSplitEFractionNLocMaxNEbin[mcindex][ebin]->Fill(splitFrac, mass); |
b2e375c7 | 1694 | |
1695 | fhMassM02NLocMaxNEbin [ebin]->Fill(l0 , mass ); | |
1696 | fhMassAsyNLocMaxNEbin [ebin]->Fill(asym, mass ); | |
1697 | } | |
1698 | ||
1699 | } | |
1700 | ||
b94e038e | 1701 | //________________________________________________________________________________________________ |
1702 | void AliAnaInsideClusterInvariantMass::FillHistograms1(Float_t en, Float_t e1, Float_t e2, | |
1703 | Int_t nMax, Float_t mass, Float_t l0, | |
1704 | Float_t eta, Float_t phi, | |
1705 | Bool_t matched, Int_t mcindex) | |
1253480f | 1706 | { |
1707 | // Fill histograms for clusters before any selection after spliting | |
1708 | ||
1709 | Float_t splitFrac = (e1+e2)/en; | |
1710 | ||
1711 | Float_t asym = -10; | |
1712 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
1713 | ||
29555e96 | 1714 | fhNLocMax [0][matched]->Fill(en,nMax); |
1715 | fhLM1NLocMax[0][matched]->Fill(e1,nMax); | |
1716 | fhLM2NLocMax[0][matched]->Fill(e2,nMax); | |
cc909e6f | 1717 | fhSplitClusterENLocMax[0][matched]->Fill(e1,nMax); |
1718 | fhSplitClusterENLocMax[0][matched]->Fill(e2,nMax); | |
1719 | ||
cb99fa55 | 1720 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
cc909e6f | 1721 | { |
29555e96 | 1722 | fhNLocMax [mcindex][matched]->Fill(en,nMax); |
1723 | fhLM1NLocMax[mcindex][matched]->Fill(e1,nMax); | |
1724 | fhLM2NLocMax[mcindex][matched]->Fill(e2,nMax); | |
b583134f | 1725 | fhSplitClusterENLocMax[mcindex][matched]->Fill(e1,nMax); |
1726 | fhSplitClusterENLocMax[mcindex][matched]->Fill(e2,nMax); | |
cc909e6f | 1727 | } |
1253480f | 1728 | |
1729 | if ( nMax == 1 ) | |
1730 | { | |
1731 | fhM02NLocMax1[0][matched]->Fill(en,l0) ; | |
1732 | fhSplitEFractionNLocMax1[0][matched]->Fill(en,splitFrac) ; | |
1733 | ||
cb99fa55 | 1734 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 1735 | { |
1736 | fhM02NLocMax1[mcindex][matched]->Fill(en,l0) ; | |
1737 | fhSplitEFractionNLocMax1[mcindex][matched]->Fill(en,splitFrac) ; | |
1738 | } | |
1739 | ||
1740 | if(en > fHistoECut) | |
1741 | { | |
1742 | fhMassM02NLocMax1[0][matched]->Fill(l0, mass); | |
cb99fa55 | 1743 | if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax1[mcindex][matched]->Fill(l0, mass); |
1253480f | 1744 | |
1745 | fhSplitEFractionvsAsyNLocMax1[matched]->Fill(asym,splitFrac) ; | |
1746 | if(!matched)fhClusterEtaPhiNLocMax1->Fill(eta,phi); | |
1747 | } | |
1748 | } | |
1749 | else if( nMax == 2 ) | |
1750 | { | |
1751 | fhM02NLocMax2[0][matched]->Fill(en,l0) ; | |
1752 | fhSplitEFractionNLocMax2[0][matched]->Fill(en,splitFrac) ; | |
1753 | ||
cb99fa55 | 1754 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 1755 | { |
1756 | fhM02NLocMax2[mcindex][matched]->Fill(en,l0) ; | |
1757 | fhSplitEFractionNLocMax2[mcindex][matched]->Fill(en,splitFrac) ; | |
1758 | } | |
1759 | ||
1760 | if(en > fHistoECut) | |
1761 | { | |
1762 | fhMassM02NLocMax2[0][matched]->Fill(l0, mass ); | |
cb99fa55 | 1763 | if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMax2[mcindex][matched]->Fill(l0,mass); |
1253480f | 1764 | |
1765 | fhSplitEFractionvsAsyNLocMax2[matched]->Fill(asym,splitFrac) ; | |
1766 | if(!matched)fhClusterEtaPhiNLocMax2->Fill(eta,phi); | |
1767 | } | |
1768 | } | |
1769 | else if( nMax >= 3 ) | |
1770 | { | |
1771 | fhM02NLocMaxN[0][matched]->Fill(en,l0) ; | |
1772 | fhSplitEFractionNLocMaxN[0][matched]->Fill(en,splitFrac) ; | |
1773 | ||
cb99fa55 | 1774 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 1775 | { |
1776 | fhM02NLocMaxN[mcindex][matched]->Fill(en,l0) ; | |
1777 | fhSplitEFractionNLocMaxN[mcindex][matched]->Fill(en,splitFrac) ; | |
1778 | } | |
1779 | ||
1780 | if(en > fHistoECut) | |
1781 | { | |
1782 | ||
1783 | fhMassM02NLocMaxN[0][matched]->Fill(l0,mass); | |
cb99fa55 | 1784 | if( IsDataMC() && mcindex > 0 && mcindex < 7 ) fhMassM02NLocMaxN[mcindex][matched]->Fill(l0,mass); |
1253480f | 1785 | |
1786 | fhSplitEFractionvsAsyNLocMaxN[matched]->Fill(asym,splitFrac) ; | |
1787 | if(!matched)fhClusterEtaPhiNLocMaxN->Fill(eta,phi); | |
1788 | } | |
1789 | } | |
1790 | ||
1791 | ||
1792 | } | |
1793 | ||
b94e038e | 1794 | //________________________________________________________________________________________________ |
1795 | void AliAnaInsideClusterInvariantMass::FillHistograms2(Float_t en, Float_t eprim, | |
1796 | Float_t e1, Float_t e2, | |
1797 | Int_t nMax, Float_t mass, Float_t l0, | |
1798 | Bool_t matched, Int_t mcindex) | |
1253480f | 1799 | { |
1800 | // Fill histograms for clusters passing the first M02 selection | |
1801 | ||
1802 | Float_t efrac = eprim/en; | |
1803 | Float_t efracSplit = 0; | |
1804 | if(e1+e2 > 0) efracSplit = eprim/(e1+e2); | |
1805 | ||
1806 | Float_t splitFrac = (e1+e2)/en; | |
1807 | ||
1808 | Float_t asym = -10; | |
1809 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
1810 | ||
1811 | Int_t inlm = nMax-1; | |
1812 | if(inlm > 2) inlm = 2; | |
1813 | Float_t splitFracMin = GetCaloPID()->GetSplitEnergyFractionMinimum(inlm) ; | |
1814 | ||
1815 | Bool_t m02OK = GetCaloPID()->IsInPi0M02Range(en,l0,nMax); | |
1816 | Bool_t asyOK = GetCaloPID()->IsInPi0SplitAsymmetryRange(en,asym,nMax); | |
1817 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); | |
1818 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
1819 | ||
a6d3b0a8 | 1820 | Bool_t eCutOK = kFALSE; |
1821 | Float_t ensubcut = GetCaloPID()->GetSubClusterEnergyMinimum(inlm); | |
1822 | if (ensubcut > 0.1 && ensubcut < e1 && ensubcut < e2 ) eCutOK = kTRUE; | |
1823 | else if(ensubcut < 0.1) eCutOK = kTRUE; | |
1824 | ||
1825 | //printf("splitFracMin %f, val %f, m02ok %d, asyok %d, m02On %d, asyOn %d, ecutOK %d\n",splitFracMin,splitFrac,m02OK,asyOK,m02On,asyOn,eCutOK); | |
1253480f | 1826 | |
1827 | if(m02On && m02OK) | |
1828 | { | |
29555e96 | 1829 | fhNLocMaxM02Cut [0][matched]->Fill(en,nMax); |
1830 | fhLM1NLocMaxM02Cut[0][matched]->Fill(e1,nMax); | |
1831 | fhLM2NLocMaxM02Cut[0][matched]->Fill(e2,nMax); | |
1832 | if(IsDataMC() && mcindex > 0 && mcindex < 7) | |
1833 | { | |
1834 | fhNLocMaxM02Cut [mcindex][matched]->Fill(en,nMax); | |
1835 | fhLM1NLocMaxM02Cut[mcindex][matched]->Fill(e1,nMax); | |
1836 | fhLM2NLocMaxM02Cut[mcindex][matched]->Fill(e2,nMax); | |
1837 | } | |
1253480f | 1838 | } |
1839 | ||
1840 | if (nMax==1) | |
1841 | { | |
1842 | fhMassNLocMax1[0][matched]->Fill(en,mass ); | |
1843 | fhAsymNLocMax1[0][matched]->Fill(en,asym ); | |
c7e9a4e9 | 1844 | fhMassSplitENLocMax1[0][matched]->Fill(e1+e2,mass); |
1253480f | 1845 | |
1846 | // Effect of cuts in mass histograms | |
cb99fa55 | 1847 | |
1848 | if(!matched && asyOK && asyOn ) | |
1849 | { | |
1850 | fhMassAsyCutNLocMax1->Fill(en,mass); | |
1851 | fhM02AsyCutNLocMax1 ->Fill(en,l0 ); | |
1852 | } | |
1253480f | 1853 | |
1854 | if(!matched && m02OK && m02On ) | |
1855 | { | |
1856 | fhMassM02CutNLocMax1->Fill(en,mass); | |
1857 | fhAsymM02CutNLocMax1->Fill(en,asym ); | |
1858 | if(splitFrac > splitFracMin && fhMassSplitECutNLocMax1) fhMassSplitECutNLocMax1->Fill(en,mass ); | |
1859 | } | |
1860 | ||
a6d3b0a8 | 1861 | if(!matched && eCutOK && ensubcut > 0.1) |
2c36e041 | 1862 | { |
1863 | fhMassEnCutNLocMax1->Fill(en,mass ); | |
1864 | fhM02EnCutNLocMax1 ->Fill(en,l0 ); | |
1865 | fhAsymEnCutNLocMax1->Fill(en,asym ); | |
a6d3b0a8 | 1866 | fhSplitEFracEnCutNLocMax1->Fill(en,splitFrac ); |
2c36e041 | 1867 | } |
1868 | ||
a6d3b0a8 | 1869 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
1253480f | 1870 | { |
1871 | fhSplitEFractionAfterCutsNLocMax1[0][matched]->Fill(en,splitFrac); | |
c7e9a4e9 | 1872 | if(splitFrac > splitFracMin) |
1873 | { | |
1874 | fhMassAfterCutsNLocMax1[0][matched]->Fill(en,mass); | |
1875 | fhMassSplitEAfterCutsNLocMax1[0][matched]->Fill(e1+e2,mass); | |
1876 | } | |
1253480f | 1877 | if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0) |
1878 | { | |
1879 | fhMCGenFracAfterCutsNLocMax1MCPi0 ->Fill(en , efrac ); | |
1880 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0->Fill(en , efracSplit); | |
1881 | } | |
1882 | } | |
1883 | } | |
2c36e041 | 1884 | else if( nMax == 2 ) |
1253480f | 1885 | { |
1886 | fhMassNLocMax2[0][matched]->Fill(en,mass ); | |
1887 | fhAsymNLocMax2[0][matched]->Fill(en,asym ); | |
c7e9a4e9 | 1888 | fhMassSplitENLocMax2[0][matched]->Fill(e1+e2,mass); |
1889 | ||
1253480f | 1890 | // Effect of cuts in mass histograms |
1891 | ||
cb99fa55 | 1892 | if(!matched && asyOK && asyOn ) |
1893 | { | |
1894 | fhMassAsyCutNLocMax2->Fill(en,mass); | |
1895 | fhM02AsyCutNLocMax2 ->Fill(en,l0 ); | |
1896 | } | |
1897 | ||
1253480f | 1898 | if(!matched && m02OK && m02On ) |
1899 | { | |
1900 | fhMassM02CutNLocMax2->Fill(en,mass); | |
1901 | fhAsymM02CutNLocMax2->Fill(en,asym ); | |
1902 | if(splitFrac > splitFracMin && fhMassSplitECutNLocMax2) fhMassSplitECutNLocMax2->Fill(en,mass ); | |
1903 | } | |
1904 | ||
a6d3b0a8 | 1905 | if(!matched && eCutOK && ensubcut > 0.1) |
2c36e041 | 1906 | { |
1907 | fhMassEnCutNLocMax2->Fill(en,mass ); | |
1908 | fhM02EnCutNLocMax2 ->Fill(en,l0 ); | |
1909 | fhAsymEnCutNLocMax2->Fill(en,asym ); | |
a6d3b0a8 | 1910 | fhSplitEFracEnCutNLocMax2->Fill(en,splitFrac ); |
2c36e041 | 1911 | } |
1912 | ||
a6d3b0a8 | 1913 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
1253480f | 1914 | { |
1915 | fhSplitEFractionAfterCutsNLocMax2[0][matched]->Fill(en,splitFrac); | |
c7e9a4e9 | 1916 | if(splitFrac > splitFracMin) |
1917 | { | |
1918 | fhMassAfterCutsNLocMax2[0][matched]->Fill(en,mass); | |
1919 | fhMassSplitEAfterCutsNLocMax2[0][matched]->Fill(e1+e2,mass); | |
1920 | } | |
1253480f | 1921 | |
1922 | if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0) | |
1923 | { | |
1924 | fhMCGenFracAfterCutsNLocMax2MCPi0 ->Fill(en , efrac ); | |
1925 | fhMCGenSplitEFracAfterCutsNLocMax2MCPi0->Fill(en , efracSplit); | |
1926 | } | |
1927 | } | |
1928 | } | |
2c36e041 | 1929 | else if( nMax > 2 ) |
1253480f | 1930 | { |
1931 | fhMassNLocMaxN[0][matched]->Fill(en,mass); | |
1932 | fhAsymNLocMaxN[0][matched]->Fill(en,asym); | |
c7e9a4e9 | 1933 | fhMassSplitENLocMaxN[0][matched]->Fill(e1+e2,mass); |
1934 | ||
1253480f | 1935 | // Effect of cuts in mass histograms |
cb99fa55 | 1936 | |
1937 | if(!matched && asyOK && asyOn ) | |
1938 | { | |
1939 | fhMassAsyCutNLocMaxN->Fill(en,mass); | |
1940 | fhM02AsyCutNLocMaxN ->Fill(en,l0 ); | |
1941 | } | |
1942 | ||
1253480f | 1943 | if(!matched && m02OK && m02On ) |
1944 | { | |
1945 | fhMassM02CutNLocMaxN->Fill(en,mass); | |
1946 | fhAsymM02CutNLocMaxN->Fill(en,asym ); | |
1947 | if(splitFrac > splitFracMin && fhMassSplitECutNLocMaxN) fhMassSplitECutNLocMaxN->Fill(en,mass ); | |
1948 | } | |
1949 | ||
a6d3b0a8 | 1950 | if(!matched && eCutOK && ensubcut > 0.1 ) |
2c36e041 | 1951 | { |
1952 | fhMassEnCutNLocMaxN->Fill(en,mass ); | |
1953 | fhM02EnCutNLocMaxN ->Fill(en,l0 ); | |
1954 | fhAsymEnCutNLocMaxN->Fill(en,asym ); | |
a6d3b0a8 | 1955 | fhSplitEFracEnCutNLocMaxN->Fill(en,splitFrac ); |
2c36e041 | 1956 | } |
1957 | ||
a6d3b0a8 | 1958 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
1253480f | 1959 | { |
1960 | fhSplitEFractionAfterCutsNLocMaxN[0][matched]->Fill(en,splitFrac); | |
c7e9a4e9 | 1961 | if(splitFrac > splitFracMin) |
1962 | { | |
1963 | fhMassAfterCutsNLocMaxN[0][matched]->Fill(en,mass); | |
1964 | fhMassSplitEAfterCutsNLocMaxN[0][matched]->Fill(e1+e2,mass); | |
1965 | } | |
1253480f | 1966 | |
1967 | if(!matched && IsDataMC() && fFillMCHisto && mcindex==kmcPi0) | |
1968 | { | |
1969 | fhMCGenFracAfterCutsNLocMaxNMCPi0 ->Fill(en , efrac ); | |
1970 | fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0->Fill(en , efracSplit); | |
1971 | } | |
1972 | } | |
1973 | } | |
1974 | ||
cb99fa55 | 1975 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 1976 | { |
1977 | if (nMax==1) | |
1978 | { | |
1979 | fhMassNLocMax1[mcindex][matched]->Fill(en,mass); | |
1980 | fhAsymNLocMax1[mcindex][matched]->Fill(en,asym); | |
c7e9a4e9 | 1981 | fhMassSplitENLocMax1[mcindex][matched]->Fill(e1+e2,mass); |
1982 | ||
a6d3b0a8 | 1983 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
1253480f | 1984 | { |
1985 | fhSplitEFractionAfterCutsNLocMax1[mcindex][matched]->Fill(en,splitFrac); | |
1986 | if(splitFrac > splitFracMin) | |
c7e9a4e9 | 1987 | { |
1253480f | 1988 | fhMassAfterCutsNLocMax1[mcindex][matched]->Fill(en,mass); |
c7e9a4e9 | 1989 | fhMassSplitEAfterCutsNLocMax1[mcindex][matched]->Fill(e1+e2,mass); |
1990 | } | |
1253480f | 1991 | } |
1992 | } | |
1993 | else if(nMax==2) | |
1994 | { | |
1995 | fhMassNLocMax2[mcindex][matched]->Fill(en,mass); | |
1996 | fhAsymNLocMax2[mcindex][matched]->Fill(en,asym); | |
c7e9a4e9 | 1997 | fhMassSplitENLocMax2[mcindex][matched]->Fill(e1+e2,mass); |
1998 | ||
a6d3b0a8 | 1999 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
1253480f | 2000 | { |
2001 | fhSplitEFractionAfterCutsNLocMax2[mcindex][matched]->Fill(en,splitFrac); | |
c7e9a4e9 | 2002 | if(splitFrac > splitFracMin) |
2003 | { | |
1253480f | 2004 | fhMassAfterCutsNLocMax2[mcindex][matched]->Fill(en,mass); |
c7e9a4e9 | 2005 | fhMassSplitEAfterCutsNLocMax2[mcindex][matched]->Fill(e1+e2,mass); |
2006 | } | |
2007 | ||
1253480f | 2008 | } |
2009 | } | |
2010 | else if(nMax >2) | |
2011 | { | |
2012 | fhMassNLocMaxN[mcindex][matched]->Fill(en,mass); | |
2013 | fhAsymNLocMaxN[mcindex][matched]->Fill(en,asym); | |
c7e9a4e9 | 2014 | fhMassSplitENLocMaxN[mcindex][matched]->Fill(e1+e2,mass); |
2015 | ||
a6d3b0a8 | 2016 | if((m02OK && asyOK) && (asyOn || m02On) && eCutOK) |
1253480f | 2017 | { |
2018 | fhSplitEFractionAfterCutsNLocMaxN[mcindex][matched]->Fill(en,splitFrac); | |
c7e9a4e9 | 2019 | if(splitFrac > splitFracMin) |
2020 | { | |
1253480f | 2021 | fhMassAfterCutsNLocMaxN[mcindex][matched]->Fill(en,mass); |
c7e9a4e9 | 2022 | fhMassSplitEAfterCutsNLocMaxN[mcindex][matched]->Fill(e1+e2,mass); |
2023 | } | |
1253480f | 2024 | } |
2025 | } | |
2026 | }//Work with MC truth | |
2027 | } | |
2028 | ||
2029 | ||
b94e038e | 2030 | //_________________________________________________________________________________________________________ |
2031 | void AliAnaInsideClusterInvariantMass::FillIdPi0Histograms(Float_t en, Float_t e1, Float_t e2, | |
2032 | Int_t nc, Int_t nMax, Float_t t12diff, | |
2033 | Float_t mass, Float_t l0, | |
2034 | Float_t eta, Float_t phi, | |
2035 | Bool_t matched, Int_t mcindex) | |
1253480f | 2036 | { |
2037 | // Fill histograms for clusters passing the pi0 selection | |
2038 | ||
2039 | Float_t asym = -10; | |
2040 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
2041 | ||
29555e96 | 2042 | fhNLocMaxIdPi0 [0][matched]->Fill(en,nMax); |
2043 | fhLM1NLocMaxIdPi0[0][matched]->Fill(e1,nMax); | |
2044 | fhLM2NLocMaxIdPi0[0][matched]->Fill(e2,nMax); | |
2045 | ||
cc909e6f | 2046 | fhSplitClusterEPi0NLocMax[0][matched]->Fill(e1,nMax); |
2047 | fhSplitClusterEPi0NLocMax[0][matched]->Fill(e2,nMax); | |
2048 | ||
cb99fa55 | 2049 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
cc909e6f | 2050 | { |
2051 | fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e1,nMax); | |
2052 | fhSplitClusterEPi0NLocMax[mcindex][matched]->Fill(e2,nMax); | |
2053 | } | |
2054 | ||
1253480f | 2055 | if (nMax==1) |
2056 | { | |
2057 | fhM02Pi0NLocMax1 [0][matched]->Fill(en,l0); | |
2058 | fhMassPi0NLocMax1[0][matched]->Fill(en,mass); | |
2059 | fhAsyPi0NLocMax1 [0][matched]->Fill(en,asym); | |
c7e9a4e9 | 2060 | fhMassSplitEPi0NLocMax1[0][matched]->Fill(e1+e2,mass); |
1253480f | 2061 | if(fFillNCellHisto) fhNCellPi0NLocMax1[0][matched]->Fill(en,nc); |
2062 | ||
2063 | if(!matched) | |
2064 | { | |
2065 | if(fFillHighMultHisto) | |
2066 | { | |
2067 | fhCentralityPi0NLocMax1->Fill(en,GetEventCentrality()) ; | |
2068 | fhEventPlanePi0NLocMax1->Fill(en,GetEventPlaneAngle()) ; | |
2069 | } | |
2070 | if(en > fHistoECut)fhPi0EtaPhiNLocMax1->Fill(eta,phi); | |
2071 | fhPi0EPairDiffTimeNLM1->Fill(e1+e2,t12diff); | |
2072 | } | |
2073 | } | |
2074 | else if(nMax==2) | |
2075 | { | |
2076 | fhM02Pi0NLocMax2 [0][matched]->Fill(en,l0); | |
2077 | fhMassPi0NLocMax2[0][matched]->Fill(en,mass); | |
2078 | fhAsyPi0NLocMax2 [0][matched]->Fill(en,asym); | |
c7e9a4e9 | 2079 | fhMassSplitEPi0NLocMax2[0][matched]->Fill(e1+e2,mass); |
1253480f | 2080 | if(fFillNCellHisto) fhNCellPi0NLocMax2[0][matched]->Fill(en,nc); |
2081 | ||
2082 | if(!matched) | |
2083 | { | |
2084 | if(fFillHighMultHisto) | |
2085 | { | |
2086 | fhCentralityPi0NLocMax2->Fill(en,GetEventCentrality()) ; | |
2087 | fhEventPlanePi0NLocMax2->Fill(en,GetEventPlaneAngle()) ; | |
2088 | } | |
2089 | if(en > fHistoECut)fhPi0EtaPhiNLocMax2->Fill(eta,phi); | |
2090 | fhPi0EPairDiffTimeNLM2->Fill(e1+e2,t12diff); | |
2091 | } | |
2092 | } | |
2093 | else if(nMax >2) | |
2094 | { | |
2095 | fhM02Pi0NLocMaxN [0][matched]->Fill(en,l0); | |
2096 | fhMassPi0NLocMaxN[0][matched]->Fill(en,mass); | |
2097 | fhAsyPi0NLocMaxN [0][matched]->Fill(en,asym); | |
c7e9a4e9 | 2098 | fhMassSplitEPi0NLocMaxN[0][matched]->Fill(e1+e2,mass); |
1253480f | 2099 | if(fFillNCellHisto) fhNCellPi0NLocMaxN[0][matched]->Fill(en,nc); |
2100 | ||
2101 | if(!matched) | |
2102 | { | |
2103 | if(fFillHighMultHisto) | |
2104 | { | |
2105 | fhCentralityPi0NLocMaxN->Fill(en,GetEventCentrality()) ; | |
2106 | fhEventPlanePi0NLocMaxN->Fill(en,GetEventPlaneAngle()) ; | |
2107 | } | |
2108 | if(en > fHistoECut)fhPi0EtaPhiNLocMaxN->Fill(eta,phi); | |
2109 | fhPi0EPairDiffTimeNLMN->Fill(e1+e2,t12diff); | |
2110 | } | |
2111 | } | |
2112 | ||
cb99fa55 | 2113 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 2114 | { |
db790ee8 | 2115 | fhNLocMaxIdPi0 [mcindex][matched]->Fill(en,nMax); |
2116 | fhLM1NLocMaxIdPi0[mcindex][matched]->Fill(e1,nMax); | |
2117 | fhLM2NLocMaxIdPi0[mcindex][matched]->Fill(e2,nMax); | |
29555e96 | 2118 | |
1253480f | 2119 | if (nMax==1) |
2120 | { | |
2121 | fhM02Pi0NLocMax1 [mcindex][matched]->Fill(en,l0); | |
2122 | fhMassPi0NLocMax1[mcindex][matched]->Fill(en,mass); | |
2123 | fhAsyPi0NLocMax1 [mcindex][matched]->Fill(en,asym); | |
c7e9a4e9 | 2124 | fhMassSplitEPi0NLocMax1[mcindex][matched]->Fill(e1+e2,mass); |
1253480f | 2125 | if(fFillNCellHisto) fhNCellPi0NLocMax1[mcindex][matched]->Fill(en,nc); |
2126 | ||
2127 | } | |
2128 | else if(nMax==2) | |
2129 | { | |
2130 | fhM02Pi0NLocMax2 [mcindex][matched]->Fill(en,l0); | |
2131 | fhMassPi0NLocMax2[mcindex][matched]->Fill(en,mass); | |
2132 | fhAsyPi0NLocMax2 [mcindex][matched]->Fill(en,asym); | |
c7e9a4e9 | 2133 | fhMassSplitEPi0NLocMax2[mcindex][matched]->Fill(e1+e2,mass); |
2134 | if(fFillNCellHisto) fhNCellPi0NLocMax2[mcindex][matched]->Fill(en,nc); | |
1253480f | 2135 | } |
2136 | else if(nMax >2) | |
2137 | { | |
cc909e6f | 2138 | fhM02Pi0NLocMaxN [mcindex][matched]->Fill(en,l0); |
1253480f | 2139 | fhMassPi0NLocMaxN[mcindex][matched]->Fill(en,mass); |
cc909e6f | 2140 | fhAsyPi0NLocMaxN [mcindex][matched]->Fill(en,asym); |
c7e9a4e9 | 2141 | fhMassSplitEPi0NLocMaxN[mcindex][matched]->Fill(e1+e2,mass); |
1253480f | 2142 | if(fFillNCellHisto) fhNCellPi0NLocMaxN[mcindex][matched]->Fill(en,nc); |
2143 | } | |
2144 | }//Work with MC truth | |
2145 | } | |
2146 | ||
b94e038e | 2147 | //______________________________________________________________________________________________________ |
2148 | void AliAnaInsideClusterInvariantMass::FillIdEtaHistograms(Float_t en, Float_t e1, Float_t e2, | |
2149 | Int_t nc, Int_t nMax, Float_t t12diff, | |
2150 | Float_t mass, Float_t l0, | |
2151 | Float_t eta, Float_t phi, | |
2152 | Bool_t matched, Int_t mcindex) | |
1253480f | 2153 | { |
2154 | // Fill histograms for clusters passing the eta selection | |
2155 | ||
2156 | Float_t asym = -10; | |
2157 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
2158 | ||
2159 | if (nMax==1) | |
2160 | { | |
2161 | fhM02EtaNLocMax1 [0][matched]->Fill(en,l0); | |
2162 | fhMassEtaNLocMax1[0][matched]->Fill(en,mass); | |
2163 | fhAsyEtaNLocMax1 [0][matched]->Fill(en,asym); | |
2164 | if(fFillNCellHisto) fhNCellEtaNLocMax1[0][matched]->Fill(en,nc); | |
2165 | ||
2166 | if(!matched) | |
2167 | { | |
2168 | if(fFillHighMultHisto) | |
2169 | { | |
2170 | fhCentralityEtaNLocMax1->Fill(en,GetEventCentrality()) ; | |
2171 | fhEventPlaneEtaNLocMax1->Fill(en,GetEventPlaneAngle()) ; | |
2172 | } | |
2173 | if(en > fHistoECut)fhEtaEtaPhiNLocMax1->Fill(eta,phi); | |
2174 | fhEtaEPairDiffTimeNLM1->Fill(e1+e2,t12diff); | |
2175 | } | |
2176 | } | |
2177 | else if(nMax==2) | |
2178 | { | |
2179 | fhM02EtaNLocMax2 [0][matched]->Fill(en,l0); | |
2180 | fhMassEtaNLocMax2[0][matched]->Fill(en,mass); | |
2181 | fhAsyEtaNLocMax2 [0][matched]->Fill(en,asym); | |
2182 | if(fFillNCellHisto) fhNCellEtaNLocMax2[0][matched]->Fill(en,nc); | |
2183 | ||
2184 | if(!matched) | |
2185 | { | |
2186 | if(fFillHighMultHisto) | |
2187 | { | |
2188 | fhCentralityEtaNLocMax2->Fill(en,GetEventCentrality()) ; | |
2189 | fhEventPlaneEtaNLocMax2->Fill(en,GetEventPlaneAngle()) ; | |
2190 | } | |
2191 | if(en > fHistoECut)fhEtaEtaPhiNLocMax2->Fill(eta,phi); | |
2192 | fhEtaEPairDiffTimeNLM2->Fill(e1+e2,t12diff); | |
2193 | } | |
2194 | } | |
2195 | else if(nMax >2) | |
2196 | { | |
2197 | fhM02EtaNLocMaxN [0][matched]->Fill(en,l0); | |
2198 | fhMassEtaNLocMaxN[0][matched]->Fill(en,mass); | |
2199 | fhAsyEtaNLocMaxN [0][matched]->Fill(en,asym); | |
2200 | if(fFillNCellHisto) fhNCellEtaNLocMaxN[0][matched]->Fill(en,nc); | |
2201 | ||
2202 | if(!matched) | |
2203 | { | |
2204 | if(fFillHighMultHisto) | |
2205 | { | |
2206 | fhCentralityEtaNLocMaxN->Fill(en,GetEventCentrality()) ; | |
2207 | fhEventPlaneEtaNLocMaxN->Fill(en,GetEventPlaneAngle()) ; | |
2208 | } | |
2209 | if(en > fHistoECut)fhEtaEtaPhiNLocMaxN->Fill(eta,phi); | |
2210 | fhEtaEPairDiffTimeNLMN->Fill(e1+e2,t12diff); | |
2211 | } | |
2212 | } | |
2213 | ||
cb99fa55 | 2214 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 2215 | { |
2216 | if (nMax==1) | |
2217 | { | |
2218 | fhM02EtaNLocMax1[mcindex][matched]->Fill(en,l0); | |
2219 | fhMassEtaNLocMax1[mcindex][matched]->Fill(en,mass); | |
2220 | fhAsyEtaNLocMax1[mcindex][matched]->Fill(en,asym); | |
2221 | if(fFillNCellHisto) fhNCellEtaNLocMax1[mcindex][matched]->Fill(en,nc); | |
2222 | } | |
2223 | else if(nMax==2) | |
2224 | { | |
2225 | fhM02EtaNLocMax2 [mcindex][matched]->Fill(en,l0); | |
2226 | fhMassEtaNLocMax2[mcindex][matched]->Fill(en,mass); | |
2227 | fhAsyEtaNLocMax2 [mcindex][matched]->Fill(en,asym); | |
2228 | if(fFillNCellHisto) fhNCellEtaNLocMax2[mcindex][matched]->Fill(en,nc); | |
2229 | ||
2230 | } | |
2231 | else if(nMax >2) | |
2232 | { | |
c7e9a4e9 | 2233 | fhM02EtaNLocMaxN[mcindex][matched]->Fill(en,l0); |
2234 | fhMassEtaNLocMaxN[mcindex][matched]->Fill(en,mass); | |
2235 | fhAsyEtaNLocMaxN[mcindex][matched]->Fill(en,asym); | |
2236 | if(fFillNCellHisto) fhNCellEtaNLocMaxN[mcindex][matched]->Fill(en,nc); | |
1253480f | 2237 | } |
2238 | }//Work with MC truth | |
2239 | } | |
2240 | ||
2241 | ||
b94e038e | 2242 | //__________________________________________________________________________________________________ |
2243 | void AliAnaInsideClusterInvariantMass::FillIdConvHistograms(Float_t en, Int_t nMax, Float_t asym, | |
2244 | Float_t mass, Float_t l0, | |
2245 | Bool_t matched, Int_t mcindex) | |
1253480f | 2246 | { |
2247 | // Fill histograms for clusters passing the photon selection | |
2248 | ||
2249 | if (nMax==1) | |
2250 | { | |
2251 | fhM02ConNLocMax1 [0][matched]->Fill(en,l0); | |
2252 | fhMassConNLocMax1[0][matched]->Fill(en,mass); | |
2253 | fhAsyConNLocMax1 [0][matched]->Fill(en,asym); | |
2254 | } | |
2255 | else if(nMax==2) | |
2256 | { | |
2257 | fhM02ConNLocMax2 [0][matched]->Fill(en,l0); | |
2258 | fhMassConNLocMax2[0][matched]->Fill(en,mass); | |
2259 | fhAsyConNLocMax2 [0][matched]->Fill(en,asym); | |
2260 | } | |
2261 | else if(nMax >2) | |
2262 | { | |
2263 | fhM02ConNLocMaxN [0][matched]->Fill(en,l0); | |
2264 | fhMassConNLocMaxN[0][matched]->Fill(en,mass); | |
2265 | fhAsyConNLocMaxN [0][matched]->Fill(en,asym); | |
2266 | } | |
2267 | ||
cb99fa55 | 2268 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
1253480f | 2269 | { |
2270 | if (nMax==1) | |
2271 | { | |
2272 | fhM02ConNLocMax1 [mcindex][matched]->Fill(en,l0); | |
2273 | fhMassConNLocMax1[mcindex][matched]->Fill(en,mass); | |
2274 | fhAsyConNLocMax1 [mcindex][matched]->Fill(en,asym); | |
2275 | } | |
2276 | else if(nMax==2) | |
2277 | { | |
2278 | fhM02ConNLocMax2 [mcindex][matched]->Fill(en,l0); | |
2279 | fhMassConNLocMax2[mcindex][matched]->Fill(en,mass); | |
2280 | fhAsyConNLocMax2 [mcindex][matched]->Fill(en,asym); | |
2281 | } | |
2282 | else if(nMax >2) | |
2283 | { | |
2284 | fhM02ConNLocMaxN [mcindex][matched]->Fill(en,l0); | |
2285 | fhMassConNLocMaxN[mcindex][matched]->Fill(en,mass); | |
2286 | fhAsyConNLocMaxN [mcindex][matched]->Fill(en,asym); | |
2287 | } | |
2288 | ||
2289 | }//Work with MC truth | |
2290 | } | |
2291 | ||
b94e038e | 2292 | //_______________________________________________________________________________________________________ |
2293 | void AliAnaInsideClusterInvariantMass::FillMCHistograms(Float_t en, Float_t e1 , Float_t e2, | |
2294 | Int_t ebin, Int_t mcindex,Int_t noverlaps, | |
2295 | Float_t l0, Float_t mass, | |
2296 | Int_t nMax, Bool_t matched, | |
2297 | Float_t splitFrac, Float_t asym, | |
2298 | Float_t eprim, Float_t asymGen) | |
b2e375c7 | 2299 | { |
2300 | // Fill histograms needing some MC input | |
1253480f | 2301 | |
b2e375c7 | 2302 | Float_t efrac = eprim/en; |
2303 | Float_t efracSplit = 0; | |
2304 | if(e1+e2 > 0) efracSplit = eprim/(e1+e2); | |
b583134f | 2305 | Float_t asymDiff = TMath::Abs(asym) - TMath::Abs(asymGen); |
2306 | ||
b2e375c7 | 2307 | //printf("e1 %2.2f, e2 %2.2f, eprim %2.2f, ereco %2.2f, esplit/ereco %2.2f, egen/ereco %2.2f, egen/esplit %2.2f\n", |
2308 | // e1,e2,eprim,en,splitFrac,efrac,efracSplit); | |
2309 | ||
2310 | if(ebin >= 0 && fFillEbinHisto) | |
2311 | { | |
2312 | if( !matched ) fhMCGenFracNLocMaxEbin [mcindex][ebin]->Fill(efrac,nMax); | |
2313 | else fhMCGenFracNLocMaxEbinMatched[mcindex][ebin]->Fill(efrac,nMax); | |
2314 | } | |
2315 | ||
2316 | if (nMax==1) | |
2317 | { | |
2318 | fhMCGenFracNLocMax1 [mcindex][matched]->Fill(en , efrac ); | |
2319 | fhMCGenSplitEFracNLocMax1[mcindex][matched]->Fill(en , efracSplit ); | |
2320 | fhMCGenEvsSplitENLocMax1 [mcindex][matched]->Fill(eprim , e1+e2); | |
b583134f | 2321 | if(asym > 0 && !matched) |
2322 | { | |
2323 | if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[0] ->Fill(en, asymDiff ); | |
2324 | else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[0]->Fill(en, asymDiff ); | |
2325 | } | |
2326 | ||
4914e781 | 2327 | if(noverlaps==0) |
2328 | { | |
2329 | fhMCGenFracNLocMax1NoOverlap [mcindex][matched]->Fill(en , efrac ); | |
2330 | fhMCGenSplitEFracNLocMax1NoOverlap[mcindex][matched]->Fill(en , efracSplit ); | |
2331 | } | |
2332 | ||
b2e375c7 | 2333 | if( en > fHistoECut ) |
2334 | { | |
2335 | fhMCGenEFracvsSplitEFracNLocMax1[mcindex][matched]->Fill(efrac,splitFrac ); | |
2336 | ||
2337 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2338 | { | |
2339 | fhM02MCGenFracNLocMax1Ebin [mcindex][ebin]->Fill(efrac , l0 ); | |
2340 | fhMassMCGenFracNLocMax1Ebin[mcindex][ebin]->Fill(efrac , mass ); | |
2341 | ||
b583134f | 2342 | if(mcindex==kmcPi0 || mcindex==kmcPi0Conv) |
2343 | { | |
2344 | fhMCAsymM02NLocMax1MCPi0Ebin [ebin]->Fill(l0 , asymGen ); | |
2345 | fhAsyMCGenRecoNLocMax1EbinPi0[ebin]->Fill(asym, asymGen ); | |
2346 | } | |
b2e375c7 | 2347 | } |
2348 | } | |
2349 | } | |
2350 | else if(nMax==2) | |
2351 | { | |
2352 | fhMCGenFracNLocMax2 [mcindex][matched]->Fill(en , efrac ); | |
2353 | fhMCGenSplitEFracNLocMax2[mcindex][matched]->Fill(en , efracSplit ); | |
2354 | fhMCGenEvsSplitENLocMax2 [mcindex][matched]->Fill(eprim , e1+e2); | |
b583134f | 2355 | |
2356 | if(asym > 0 && !matched) | |
2357 | { | |
2358 | if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[1] ->Fill(en, asymDiff ); | |
2359 | else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[1]->Fill(en, asymDiff ); | |
2360 | } | |
b2e375c7 | 2361 | |
4914e781 | 2362 | if(noverlaps==0) |
2363 | { | |
2364 | fhMCGenFracNLocMax2NoOverlap [mcindex][matched]->Fill(en , efrac ); | |
2365 | fhMCGenSplitEFracNLocMax2NoOverlap[mcindex][matched]->Fill(en , efracSplit ); | |
2366 | } | |
2367 | ||
b2e375c7 | 2368 | if( en > fHistoECut ) |
2369 | { | |
2370 | fhMCGenEFracvsSplitEFracNLocMax2[mcindex][matched]->Fill(efrac,splitFrac ); | |
2371 | ||
2372 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2373 | { | |
2374 | fhM02MCGenFracNLocMax2Ebin [mcindex][ebin]->Fill(efrac , l0 ); | |
2375 | fhMassMCGenFracNLocMax2Ebin[mcindex][ebin]->Fill(efrac , mass ); | |
b583134f | 2376 | if(mcindex==kmcPi0 || mcindex==kmcPi0Conv) |
2377 | { | |
2378 | fhMCAsymM02NLocMax2MCPi0Ebin [ebin]->Fill(l0 , asymGen ); | |
2379 | fhAsyMCGenRecoNLocMax2EbinPi0[ebin]->Fill(asym, asymGen ); | |
2380 | } | |
b2e375c7 | 2381 | } |
2382 | } | |
2383 | ||
2384 | } | |
2385 | else if(nMax > 2 ) | |
2386 | { | |
2387 | fhMCGenFracNLocMaxN [mcindex][matched]->Fill(en , efrac ); | |
2388 | fhMCGenSplitEFracNLocMaxN[mcindex][matched]->Fill(en , efracSplit ); | |
2389 | fhMCGenEvsSplitENLocMaxN [mcindex][matched]->Fill(eprim , e1+e2); | |
b583134f | 2390 | if(asym > 0 && !matched) |
2391 | { | |
2392 | if (mcindex==kmcPi0) fhAsyMCGenRecoDiffMCPi0[2] ->Fill(en, asymDiff ); | |
2393 | else if(mcindex==kmcPi0Conv)fhAsyMCGenRecoDiffMCPi0Conv[2]->Fill(en, asymDiff ); | |
2394 | } | |
2395 | ||
4914e781 | 2396 | if(noverlaps==0) |
2397 | { | |
2398 | fhMCGenFracNLocMaxNNoOverlap [mcindex][matched]->Fill(en , efrac ); | |
2399 | fhMCGenSplitEFracNLocMaxNNoOverlap[mcindex][matched]->Fill(en , efracSplit ); | |
2400 | } | |
2401 | ||
b2e375c7 | 2402 | if( en > fHistoECut ) |
2403 | { | |
2404 | fhMCGenEFracvsSplitEFracNLocMaxN[mcindex][matched]->Fill(efrac,splitFrac ); | |
2405 | ||
2406 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2407 | { | |
2408 | fhM02MCGenFracNLocMaxNEbin [mcindex][ebin]->Fill(efrac , l0 ); | |
2409 | fhMassMCGenFracNLocMaxNEbin[mcindex][ebin]->Fill(efrac , mass ); | |
2410 | ||
b583134f | 2411 | if(mcindex==kmcPi0 || mcindex==kmcPi0Conv) |
2412 | { | |
2413 | fhMCAsymM02NLocMaxNMCPi0Ebin [ebin]->Fill(l0 , asymGen ); | |
2414 | fhAsyMCGenRecoNLocMaxNEbinPi0[ebin]->Fill(asym, asymGen ); | |
2415 | } | |
b2e375c7 | 2416 | } |
2417 | } | |
2418 | } | |
2419 | } | |
2420 | ||
b94e038e | 2421 | //__________________________________________________________________________________________________________ |
2422 | void AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms(Float_t en, Float_t enprim, | |
2423 | Int_t nc, Float_t mass, Float_t l0, | |
2424 | Float_t asym, Float_t splitFrac, | |
2425 | Int_t inlm, Int_t ebin, Bool_t matched, | |
2426 | Int_t mcindex, Int_t noverlaps) | |
b2e375c7 | 2427 | { |
b2e375c7 | 2428 | // Fill histograms for MC Overlaps |
2429 | ||
2430 | //printf("en %f,mass %f,l0 %f,inlm %d,ebin %d,matched %d,mcindex %d,noverlaps %d \n",en,mass,l0,inlm,ebin,matched,mcindex,noverlaps); | |
1253480f | 2431 | |
b2e375c7 | 2432 | //printf("AliAnaInsideClusterInvariantMass::FillMCOverlapHistograms - NLM bin=%d, mcIndex %d, n Overlaps %d\n",inlm,mcindex,noverlaps); |
2433 | ||
2434 | if(!matched) | |
2435 | { | |
2436 | fhMCENOverlaps[inlm][mcindex]->Fill(en,noverlaps); | |
2437 | ||
2438 | if (noverlaps == 0) | |
2439 | { | |
74e3eb22 | 2440 | fhMCEM02Overlap0 [inlm][mcindex]->Fill(en, l0); |
2441 | fhMCEMassOverlap0 [inlm][mcindex]->Fill(en, mass); | |
2442 | fhMCEEpriOverlap0 [inlm][mcindex]->Fill(en, enprim); | |
2443 | fhMCEAsymOverlap0 [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2444 | if(fFillNCellHisto) fhMCENCellOverlap0[inlm][mcindex]->Fill(en, nc); |
83351853 | 2445 | fhMCESplitEFracOverlap0[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2446 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0[inlm][ebin]->Fill(l0,mass); |
2447 | } | |
2448 | else if(noverlaps == 1) | |
2449 | { | |
74e3eb22 | 2450 | fhMCEM02Overlap1 [inlm][mcindex]->Fill(en, l0); |
2451 | fhMCEMassOverlap1 [inlm][mcindex]->Fill(en, mass); | |
2452 | fhMCEEpriOverlap1 [inlm][mcindex]->Fill(en, enprim); | |
2453 | fhMCEAsymOverlap1 [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2454 | if(fFillNCellHisto) fhMCENCellOverlap1[inlm][mcindex]->Fill(en, nc); |
83351853 | 2455 | fhMCESplitEFracOverlap1[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2456 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1[inlm][ebin]->Fill(l0,mass); |
2457 | } | |
2458 | else if(noverlaps > 1) | |
2459 | { | |
74e3eb22 | 2460 | fhMCEM02OverlapN [inlm][mcindex]->Fill(en, l0); |
2461 | fhMCEMassOverlapN [inlm][mcindex]->Fill(en, mass); | |
2462 | fhMCEEpriOverlapN [inlm][mcindex]->Fill(en, enprim); | |
2463 | fhMCEAsymOverlapN [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2464 | if(fFillNCellHisto) fhMCENCellOverlapN[inlm][mcindex]->Fill(en, nc); |
83351853 | 2465 | fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2466 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapN[inlm][ebin]->Fill(l0,mass); |
2467 | } | |
2468 | else | |
a6d3b0a8 | 2469 | Info("FillMCOverlapHistograms","n overlaps = %d!!", noverlaps); |
b2e375c7 | 2470 | } |
2471 | else if(fFillTMHisto) | |
2472 | { | |
2473 | fhMCENOverlapsMatch[inlm][mcindex]->Fill(en,noverlaps); | |
2474 | ||
2475 | if (noverlaps == 0) | |
2476 | { | |
74e3eb22 | 2477 | fhMCEM02Overlap0Match [inlm][mcindex]->Fill(en, l0); |
2478 | fhMCEMassOverlap0Match [inlm][mcindex]->Fill(en, mass); | |
2479 | fhMCEEpriOverlap0Match [inlm][mcindex]->Fill(en, enprim); | |
2480 | fhMCEAsymOverlap0Match [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2481 | if(fFillNCellHisto) fhMCENCellOverlap0Match[inlm][mcindex]->Fill(en, nc); |
83351853 | 2482 | fhMCESplitEFracOverlap0Match[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2483 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap0Match[inlm][ebin]->Fill(l0,mass); |
2484 | } | |
2485 | else if(noverlaps == 1) | |
2486 | { | |
74e3eb22 | 2487 | fhMCEM02Overlap1Match [inlm][mcindex]->Fill(en, l0); |
2488 | fhMCEMassOverlap1Match [inlm][mcindex]->Fill(en, mass); | |
2489 | fhMCEEpriOverlap1Match [inlm][mcindex]->Fill(en, enprim); | |
2490 | fhMCEAsymOverlap1Match [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2491 | if(fFillNCellHisto) fhMCENCellOverlap1Match[inlm][mcindex]->Fill(en, nc); |
83351853 | 2492 | fhMCESplitEFracOverlap1Match[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2493 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02Overlap1Match[inlm][ebin]->Fill(l0,mass); |
2494 | } | |
2495 | else if(noverlaps > 1) | |
2496 | { | |
74e3eb22 | 2497 | fhMCEM02OverlapNMatch [inlm][mcindex]->Fill(en, l0); |
2498 | fhMCEMassOverlapNMatch [inlm][mcindex]->Fill(en, mass); | |
2499 | fhMCEEpriOverlapNMatch [inlm][mcindex]->Fill(en, enprim); | |
2500 | fhMCEAsymOverlapNMatch [inlm][mcindex]->Fill(en, TMath::Abs(asym)); | |
cb99fa55 | 2501 | if(fFillNCellHisto) fhMCENCellOverlapNMatch[inlm][mcindex]->Fill(en, nc); |
83351853 | 2502 | fhMCESplitEFracOverlapN[inlm][mcindex]->Fill(en, splitFrac); |
b2e375c7 | 2503 | if((mcindex==kmcPi0 || mcindex == kmcPi0Conv) && ebin >=0) fhMCPi0MassM02OverlapNMatch[inlm][ebin]->Fill(l0,mass); |
2504 | } | |
2505 | else | |
a6d3b0a8 | 2506 | Info("FillMCOverlapHistograms()","n overlaps in matched = %d!!", noverlaps); |
b2e375c7 | 2507 | } |
2508 | } | |
2509 | ||
4914e781 | 2510 | |
b94e038e | 2511 | //_____________________________________________________________________________________________________ |
2512 | void AliAnaInsideClusterInvariantMass::FillNCellHistograms(Int_t ncells, Float_t energy, Int_t nMax, | |
2513 | Bool_t matched, Int_t mcindex, | |
2514 | Float_t mass , Float_t l0) | |
4914e781 | 2515 | |
2516 | { | |
2517 | // Fill optional histograms with more SS parameters | |
1253480f | 2518 | |
4914e781 | 2519 | if (nMax==1) |
2520 | { | |
2521 | fhNCellNLocMax1[0][matched]->Fill(energy,ncells) ; | |
2522 | if(mcindex > 0 ) fhNCellNLocMax1[mcindex][matched]->Fill(energy,ncells) ; | |
2523 | ||
2524 | if (mcindex==kmcPi0 && !matched) | |
2525 | { | |
2526 | if( energy > fHistoECut) | |
2527 | { | |
2528 | fhNCellMassEHighNLocMax1MCPi0->Fill(ncells,mass); | |
2529 | fhNCellM02EHighNLocMax1MCPi0 ->Fill(ncells,l0); | |
2530 | } | |
2531 | else | |
2532 | { | |
2533 | fhNCellMassELowNLocMax1MCPi0->Fill(ncells,mass); | |
2534 | fhNCellM02ELowNLocMax1MCPi0 ->Fill(ncells,l0); | |
2535 | } | |
2536 | } | |
2537 | } | |
2538 | else if( nMax == 2 ) | |
2539 | { | |
2540 | fhNCellNLocMax2[0][matched]->Fill(energy,ncells) ; | |
2541 | if(mcindex > 0 ) fhNCellNLocMax2[mcindex][matched]->Fill(energy,ncells) ; | |
2542 | ||
2543 | ||
2544 | if (mcindex==kmcPi0 && !matched) | |
2545 | { | |
2546 | if( energy > fHistoECut) | |
2547 | { | |
2548 | fhNCellMassEHighNLocMax2MCPi0->Fill(ncells,mass); | |
2549 | fhNCellM02EHighNLocMax2MCPi0 ->Fill(ncells,l0); | |
2550 | } | |
2551 | else | |
2552 | { | |
2553 | fhNCellMassELowNLocMax2MCPi0->Fill(ncells,mass); | |
2554 | fhNCellM02ELowNLocMax2MCPi0 ->Fill(ncells,l0); | |
2555 | } | |
2556 | } | |
2557 | } | |
2558 | else if( nMax >= 3 ) | |
2559 | { | |
2560 | fhNCellNLocMaxN[0][matched]->Fill(energy,ncells) ; | |
2561 | if(mcindex > 0 ) fhNCellNLocMaxN[mcindex][matched]->Fill(energy,ncells) ; | |
2562 | ||
2563 | if (mcindex==kmcPi0 && !matched) | |
2564 | { | |
2565 | if( energy > fHistoECut) | |
2566 | { | |
2567 | fhNCellMassEHighNLocMaxNMCPi0->Fill(ncells,mass); | |
2568 | fhNCellM02EHighNLocMaxNMCPi0 ->Fill(ncells,l0); | |
2569 | } | |
2570 | else | |
2571 | { | |
2572 | fhNCellMassELowNLocMaxNMCPi0->Fill(ncells,mass); | |
2573 | fhNCellM02ELowNLocMaxNMCPi0 ->Fill(ncells,l0); | |
2574 | } | |
2575 | } | |
2576 | } | |
2577 | } | |
2578 | ||
b94e038e | 2579 | //_____________________________________________________________________________________________ |
2580 | void AliAnaInsideClusterInvariantMass::FillSSExtraHistograms(AliVCluster *cluster, Int_t nMax, | |
2581 | Bool_t matched, Int_t mcindex, | |
2582 | Float_t mass , Int_t ebin) | |
b2e375c7 | 2583 | { |
2584 | // Fill optional histograms with more SS parameters | |
1253480f | 2585 | |
b2e375c7 | 2586 | Float_t en = cluster->E(); |
b2e375c7 | 2587 | |
2588 | // Get more Shower Shape parameters | |
2589 | Float_t ll0 = 0., ll1 = 0.; | |
2590 | Float_t disp= 0., dispEta = 0., dispPhi = 0.; | |
2591 | Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; | |
2592 | ||
2593 | GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster, | |
2594 | ll0, ll1, disp, dispEta, dispPhi, sEta, sPhi, sEtaPhi); | |
2595 | ||
2596 | Float_t dispAsy = -1; | |
2597 | if(dispEta+dispPhi >0 ) dispAsy = (dispPhi-dispEta) / (dispPhi+dispEta); | |
b2e375c7 | 2598 | |
2599 | if (nMax==1) | |
2600 | { | |
b2e375c7 | 2601 | if( en > fHistoECut ) |
2602 | { | |
2603 | fhMassDispEtaNLocMax1[0][matched]->Fill(dispEta, mass ); | |
2604 | fhMassDispPhiNLocMax1[0][matched]->Fill(dispPhi, mass ); | |
2605 | fhMassDispAsyNLocMax1[0][matched]->Fill(dispAsy, mass ); | |
2606 | ||
cb99fa55 | 2607 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2608 | { |
2609 | fhMassDispEtaNLocMax1[mcindex][matched]->Fill(dispEta, mass ); | |
2610 | fhMassDispPhiNLocMax1[mcindex][matched]->Fill(dispPhi, mass ); | |
2611 | fhMassDispAsyNLocMax1[mcindex][matched]->Fill(dispAsy, mass ); | |
2612 | } | |
2613 | } | |
2614 | ||
2615 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2616 | { | |
2617 | fhMassDispEtaNLocMax1Ebin[ebin]->Fill(dispEta, mass ); | |
2618 | fhMassDispPhiNLocMax1Ebin[ebin]->Fill(dispPhi, mass ); | |
2619 | fhMassDispAsyNLocMax1Ebin[ebin]->Fill(dispAsy, mass ); | |
2620 | } | |
2621 | } | |
2622 | else if( nMax == 2 ) | |
2623 | { | |
b2e375c7 | 2624 | if( en > fHistoECut ) |
2625 | { | |
2626 | fhMassDispEtaNLocMax2[0][matched]->Fill(dispEta, mass ); | |
2627 | fhMassDispPhiNLocMax2[0][matched]->Fill(dispPhi, mass ); | |
2628 | fhMassDispAsyNLocMax2[0][matched]->Fill(dispAsy, mass ); | |
2629 | ||
cb99fa55 | 2630 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2631 | { |
2632 | fhMassDispEtaNLocMax2[mcindex][matched]->Fill(dispEta, mass ); | |
2633 | fhMassDispPhiNLocMax2[mcindex][matched]->Fill(dispPhi, mass ); | |
2634 | fhMassDispAsyNLocMax2[mcindex][matched]->Fill(dispAsy, mass ); | |
2635 | } | |
2636 | } | |
2637 | ||
2638 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2639 | { | |
2640 | fhMassDispEtaNLocMax2Ebin[ebin]->Fill(dispEta, mass ); | |
2641 | fhMassDispPhiNLocMax2Ebin[ebin]->Fill(dispPhi, mass ); | |
2642 | fhMassDispAsyNLocMax2Ebin[ebin]->Fill(dispAsy, mass ); | |
2643 | } | |
2644 | ||
2645 | } | |
2646 | else if( nMax >= 3 ) | |
2647 | { | |
b2e375c7 | 2648 | if( en > fHistoECut ) |
2649 | { | |
2650 | fhMassDispEtaNLocMaxN[0][matched]->Fill(dispEta, mass ); | |
2651 | fhMassDispPhiNLocMaxN[0][matched]->Fill(dispPhi, mass ); | |
2652 | fhMassDispAsyNLocMaxN[0][matched]->Fill(dispAsy, mass ); | |
2653 | ||
cb99fa55 | 2654 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2655 | { |
2656 | fhMassDispEtaNLocMaxN[mcindex][matched]->Fill(dispEta, mass ); | |
2657 | fhMassDispPhiNLocMaxN[mcindex][matched]->Fill(dispPhi, mass ); | |
2658 | fhMassDispAsyNLocMaxN[mcindex][matched]->Fill(dispAsy, mass ); | |
2659 | } | |
2660 | } | |
2661 | ||
2662 | if(!matched && ebin >= 0 && fFillEbinHisto) | |
2663 | { | |
2664 | fhMassDispEtaNLocMaxNEbin[ebin]->Fill(dispEta, mass ); | |
2665 | fhMassDispPhiNLocMaxNEbin[ebin]->Fill(dispPhi, mass ); | |
2666 | fhMassDispAsyNLocMaxNEbin[ebin]->Fill(dispAsy, mass ); | |
2667 | } | |
2668 | ||
2669 | } | |
2670 | ||
2671 | } | |
2672 | ||
b94e038e | 2673 | //__________________________________________________________________________________________ |
2674 | void AliAnaInsideClusterInvariantMass::FillSSWeightHistograms(AliVCluster *clus, Int_t nlm, | |
2675 | Int_t absId1, Int_t absId2) | |
dbe09c26 | 2676 | { |
2677 | // Calculate weights and fill histograms | |
1253480f | 2678 | |
dbe09c26 | 2679 | AliVCaloCells* cells = 0; |
2680 | if(fCalorimeter == "EMCAL") cells = GetEMCALCells(); | |
2681 | else cells = GetPHOSCells(); | |
2682 | ||
2683 | // First recalculate energy in case non linearity was applied | |
2684 | Float_t energy = 0; | |
2685 | for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++) | |
2686 | { | |
2687 | ||
2688 | Int_t id = clus->GetCellsAbsId()[ipos]; | |
2689 | ||
2690 | //Recalibrate cell energy if needed | |
2691 | Float_t amp = cells->GetCellAmplitude(id); | |
2692 | GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id); | |
2693 | ||
2694 | energy += amp; | |
2695 | ||
2696 | } // energy loop | |
2697 | ||
2698 | if(energy <=0 ) | |
2699 | { | |
a6d3b0a8 | 2700 | Info("WeightHistograms()","Wrong calculated energy %f\n",energy); |
dbe09c26 | 2701 | return; |
2702 | } | |
2703 | ||
19391b8c | 2704 | //Get amplitude of main local maxima, recalibrate if needed |
2705 | Float_t amp1 = cells->GetCellAmplitude(absId1); | |
2706 | GetCaloUtils()->RecalibrateCellAmplitude(amp1,fCalorimeter, absId1); | |
2707 | Float_t amp2 = cells->GetCellAmplitude(absId2); | |
2708 | GetCaloUtils()->RecalibrateCellAmplitude(amp2,fCalorimeter, absId2); | |
2709 | ||
a6d3b0a8 | 2710 | if(amp1 < amp2) Info("FillSSWeightHistograms","Bad local maxima E ordering : id1 E %f, id2 E %f\n ",amp1,amp2); |
2711 | if(amp1==0 || amp2==0) Info("FillSSWeightHistograms","Null E local maxima : id1 E %f, id2 E %f\n " ,amp1,amp2); | |
19391b8c | 2712 | |
2713 | if(amp1>0)fhPi0CellEMaxEMax2Frac [nlm]->Fill(energy,amp2/amp1); | |
2714 | fhPi0CellEMaxClusterFrac [nlm]->Fill(energy,amp1/energy); | |
2715 | fhPi0CellEMax2ClusterFrac[nlm]->Fill(energy,amp2/energy); | |
2716 | ||
dbe09c26 | 2717 | //Get the ratio and log ratio to all cells in cluster |
2718 | for (Int_t ipos = 0; ipos < clus->GetNCells(); ipos++) | |
2719 | { | |
2720 | Int_t id = clus->GetCellsAbsId()[ipos]; | |
2721 | ||
2722 | //Recalibrate cell energy if needed | |
2723 | Float_t amp = cells->GetCellAmplitude(id); | |
2724 | GetCaloUtils()->RecalibrateCellAmplitude(amp,fCalorimeter, id); | |
2725 | ||
19391b8c | 2726 | if(amp > 0)fhPi0CellE [nlm]->Fill(energy,amp); |
dbe09c26 | 2727 | fhPi0CellEFrac [nlm]->Fill(energy,amp/energy); |
2728 | fhPi0CellLogEFrac[nlm]->Fill(energy,TMath::Log(amp/energy)); | |
19391b8c | 2729 | |
2730 | if (id!=absId1 && id!=absId2) | |
2731 | { | |
2732 | if(amp1>0)fhPi0CellEMaxFrac [nlm]->Fill(energy,amp/amp1); | |
2733 | if(amp2>0)fhPi0CellEMax2Frac[nlm]->Fill(energy,amp/amp2); | |
2734 | } | |
2735 | ||
dbe09c26 | 2736 | } |
2737 | ||
2738 | //Recalculate shower shape for different W0 | |
2739 | if(fCalorimeter=="EMCAL") | |
2740 | { | |
2741 | Float_t l0org = clus->GetM02(); | |
2742 | Float_t l1org = clus->GetM20(); | |
2743 | Float_t dorg = clus->GetDispersion(); | |
19391b8c | 2744 | Float_t w0org = GetCaloUtils()->GetEMCALRecoUtils()->GetW0(); |
dbe09c26 | 2745 | |
2746 | for(Int_t iw = 0; iw < fSSWeightN; iw++) | |
2747 | { | |
2748 | GetCaloUtils()->GetEMCALRecoUtils()->SetW0(fSSWeight[iw]); | |
8edbd100 | 2749 | //GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), cells, clus); |
2750 | ||
2751 | Float_t l0 = 0., l1 = 0.; | |
2752 | Float_t disp = 0., dEta = 0., dPhi = 0.; | |
2753 | Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; | |
2754 | ||
2755 | RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp, | |
2756 | dEta, dPhi, sEta, sPhi, sEtaPhi,0); | |
2757 | ||
dbe09c26 | 2758 | |
2759 | fhM02WeightPi0[nlm][iw]->Fill(energy,clus->GetM02()); | |
2760 | ||
2761 | } // w0 loop | |
2762 | ||
2763 | // Set the original values back | |
2764 | clus->SetM02(l0org); | |
2765 | clus->SetM20(l1org); | |
2766 | clus->SetDispersion(dorg); | |
19391b8c | 2767 | GetCaloUtils()->GetEMCALRecoUtils()->SetW0(w0org); |
2768 | ||
2769 | for(Int_t iec = 0; iec < fSSECellCutN; iec++) | |
2770 | { | |
2771 | Float_t l0 = 0., l1 = 0.; | |
2772 | Float_t disp = 0., dEta = 0., dPhi = 0.; | |
2773 | Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.; | |
19391b8c | 2774 | |
3ae72bd8 | 2775 | RecalculateClusterShowerShapeParametersWithCellCut(GetEMCALGeometry(), cells, clus,l0,l1,disp, |
2776 | dEta, dPhi, sEta, sPhi, sEtaPhi,fSSECellCut[iec]); | |
2777 | ||
c0779373 | 2778 | //printf("E %f, l0 org %f, l0 new %f, slope %f\n",clus->E(),l0org,l0,fSSECellCut[iec]); |
19391b8c | 2779 | fhM02ECellCutPi0[nlm][iec]->Fill(energy,l0); |
2780 | ||
2781 | } // w0 loop | |
3ae72bd8 | 2782 | |
dbe09c26 | 2783 | }// EMCAL |
2784 | } | |
2785 | ||
b94e038e | 2786 | //____________________________________________________________________________________________ |
2787 | void AliAnaInsideClusterInvariantMass::FillTrackMatchingHistograms(AliVCluster * cluster, | |
2788 | Int_t nMax, Int_t mcindex) | |
b2e375c7 | 2789 | { |
2790 | // Fill histograms related to track matching | |
1253480f | 2791 | |
b2e375c7 | 2792 | Float_t dZ = cluster->GetTrackDz(); |
2793 | Float_t dR = cluster->GetTrackDx(); | |
2794 | Float_t en = cluster->E(); | |
2795 | ||
2796 | if(cluster->IsEMCAL() && GetCaloUtils()->IsRecalculationOfClusterTrackMatchingOn()) | |
2797 | { | |
2798 | dR = 2000., dZ = 2000.; | |
2799 | GetCaloUtils()->GetEMCALRecoUtils()->GetMatchedResiduals(cluster->GetID(),dZ,dR); | |
2800 | } | |
2801 | ||
2802 | //printf("Pi0EbE: dPhi %f, dEta %f\n",dR,dZ); | |
2803 | ||
2804 | if(TMath::Abs(dR) < 999) | |
2805 | { | |
2806 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[0]->Fill(en,dR); } | |
2807 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[0]->Fill(en,dR); } | |
2808 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[0]->Fill(en,dR); } | |
2809 | ||
cb99fa55 | 2810 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2811 | { |
2812 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1[mcindex]->Fill(en,dR); } | |
2813 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2[mcindex]->Fill(en,dR); } | |
2814 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxN[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxN[mcindex]->Fill(en,dR); } | |
2815 | } | |
2816 | ||
2817 | AliVTrack *track = GetCaloUtils()->GetMatchedTrack(cluster, GetReader()->GetInputEvent()); | |
2818 | ||
2819 | Bool_t positive = kFALSE; | |
2820 | if(track) positive = (track->Charge()>0); | |
2821 | ||
2822 | if(track) | |
2823 | { | |
2824 | if(positive) | |
2825 | { | |
2826 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[0]->Fill(en,dR); } | |
2827 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[0]->Fill(en,dR); } | |
2828 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[0]->Fill(en,dR); } | |
2829 | ||
cb99fa55 | 2830 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2831 | { |
2832 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Pos[mcindex]->Fill(en,dR); } | |
2833 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Pos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Pos[mcindex]->Fill(en,dR); } | |
2834 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNPos[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNPos[mcindex]->Fill(en,dR); } | |
2835 | } | |
2836 | } | |
2837 | else | |
2838 | { | |
2839 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[0]->Fill(en,dR); } | |
2840 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[0]->Fill(en,dR); } | |
2841 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[0]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[0]->Fill(en,dR); } | |
2842 | ||
cb99fa55 | 2843 | if(IsDataMC() && mcindex > 0 && mcindex < 7) |
b2e375c7 | 2844 | { |
2845 | if ( nMax == 1 ) { fhTrackMatchedDEtaNLocMax1Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax1Neg[mcindex]->Fill(en,dR); } | |
2846 | else if( nMax == 2 ) { fhTrackMatchedDEtaNLocMax2Neg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMax2Neg[mcindex]->Fill(en,dR); } | |
2847 | else if( nMax >= 3 ) { fhTrackMatchedDEtaNLocMaxNNeg[mcindex]->Fill(en,dZ); fhTrackMatchedDPhiNLocMaxNNeg[mcindex]->Fill(en,dR); } | |
2848 | } | |
2849 | } | |
2850 | ||
2851 | }// track exists | |
2852 | ||
2853 | } | |
2854 | } | |
dbe09c26 | 2855 | |
992b14a7 | 2856 | //_______________________________________________________________ |
2857 | TObjString * AliAnaInsideClusterInvariantMass::GetAnalysisCuts() | |
2858 | { | |
2859 | //Save parameters used for analysis | |
2860 | TString parList ; //this will be list of parameters used for this analysis. | |
b94e038e | 2861 | Int_t buffersize = 255; |
992b14a7 | 2862 | char onePar[buffersize] ; |
2863 | ||
2864 | snprintf(onePar,buffersize,"--- AliAnaInsideClusterInvariantMass ---\n") ; | |
2865 | parList+=onePar ; | |
2866 | ||
243c2909 | 2867 | snprintf(onePar,buffersize,"Calorimeter: %s\n", fCalorimeter.Data()) ; |
992b14a7 | 2868 | parList+=onePar ; |
c8710850 | 2869 | snprintf(onePar,buffersize,"fNLocMaxCutE =%2.2f \n", GetCaloUtils()->GetLocalMaximaCutE()) ; |
29ca9cad | 2870 | parList+=onePar ; |
c8710850 | 2871 | snprintf(onePar,buffersize,"fNLocMaxCutEDiff =%2.2f \n",GetCaloUtils()->GetLocalMaximaCutEDiff()) ; |
29ca9cad | 2872 | parList+=onePar ; |
e23a0471 | 2873 | snprintf(onePar,buffersize,"fMinNCells =%d \n", fMinNCells) ; |
2cb134fb | 2874 | parList+=onePar ; |
3c1d9afb | 2875 | snprintf(onePar,buffersize,"fMinBadDist =%1.1f \n", fMinBadDist) ; |
992b14a7 | 2876 | parList+=onePar ; |
19391b8c | 2877 | if(fFillSSWeightHisto) |
2878 | { | |
2879 | snprintf(onePar,buffersize," N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN); | |
2880 | parList+=onePar ; | |
2881 | } | |
2882 | ||
992b14a7 | 2883 | return new TObjString(parList) ; |
2884 | ||
2885 | } | |
2886 | ||
992b14a7 | 2887 | //________________________________________________________________ |
2888 | TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects() | |
1253480f | 2889 | { |
992b14a7 | 2890 | // Create histograms to be saved in output file and |
2891 | // store them in outputContainer | |
2892 | TList * outputContainer = new TList() ; | |
667432ef | 2893 | outputContainer->SetName("InsideClusterHistos") ; |
992b14a7 | 2894 | |
745913ae | 2895 | Int_t nptbins = GetHistogramRanges()->GetHistoPtBins(); Float_t ptmax = GetHistogramRanges()->GetHistoPtMax(); Float_t ptmin = GetHistogramRanges()->GetHistoPtMin(); |
2896 | Int_t ssbins = GetHistogramRanges()->GetHistoShowerShapeBins(); Float_t ssmax = GetHistogramRanges()->GetHistoShowerShapeMax(); Float_t ssmin = GetHistogramRanges()->GetHistoShowerShapeMin(); | |
2897 | Int_t mbins = GetHistogramRanges()->GetHistoMassBins(); Float_t mmax = GetHistogramRanges()->GetHistoMassMax(); Float_t mmin = GetHistogramRanges()->GetHistoMassMin(); | |
2898 | Int_t ncbins = GetHistogramRanges()->GetHistoNClusterCellBins(); Int_t ncmax = GetHistogramRanges()->GetHistoNClusterCellMax(); Int_t ncmin = GetHistogramRanges()->GetHistoNClusterCellMin(); | |
9554fc65 | 2899 | Int_t nphibins = GetHistogramRanges()->GetHistoPhiBins(); Float_t phimax = GetHistogramRanges()->GetHistoPhiMax(); Float_t phimin = GetHistogramRanges()->GetHistoPhiMin(); |
2900 | Int_t netabins = GetHistogramRanges()->GetHistoEtaBins(); Float_t etamax = GetHistogramRanges()->GetHistoEtaMax(); Float_t etamin = GetHistogramRanges()->GetHistoEtaMin(); | |
1253480f | 2901 | |
5c46c992 | 2902 | Int_t nresetabins = GetHistogramRanges()->GetHistoTrackResidualEtaBins(); |
2903 | Float_t resetamax = GetHistogramRanges()->GetHistoTrackResidualEtaMax(); | |
2904 | Float_t resetamin = GetHistogramRanges()->GetHistoTrackResidualEtaMin(); | |
2905 | Int_t nresphibins = GetHistogramRanges()->GetHistoTrackResidualPhiBins(); | |
2906 | Float_t resphimax = GetHistogramRanges()->GetHistoTrackResidualPhiMax(); | |
2907 | Float_t resphimin = GetHistogramRanges()->GetHistoTrackResidualPhiMin(); | |
2908 | ||
1253480f | 2909 | Bool_t m02On = GetCaloPID()->IsSplitShowerShapeCutOn(); |
2910 | Bool_t asyOn = GetCaloPID()->IsSplitAsymmetryCutOn(); | |
2911 | Bool_t splitOn = kFALSE; | |
2912 | if(GetCaloPID()->GetSplitEnergyFractionMinimum(0) > 0 || | |
2913 | GetCaloPID()->GetSplitEnergyFractionMinimum(1) > 0 || | |
2914 | GetCaloPID()->GetSplitEnergyFractionMinimum(2) > 0) splitOn = kTRUE; | |
2915 | ||
cb99fa55 | 2916 | TString ptype[] ={"","#gamma","#gamma->e^{#pm}","#pi^{0}","#pi^{0} (#gamma->e^{#pm})","#eta", "hadron"}; |
2917 | TString pname[] ={"","Photon","Conversion", "Pi0", "Pi0Conv", "Eta","Hadron"}; | |
ce49dd72 | 2918 | TString snlm [] = {"1","2","N"}; |
2919 | ||
be894c1d | 2920 | TString sEBin[] = {"8 < E < 12 GeV","12 < E < 16 GeV", "16 < E < 20 GeV", "E > 20 GeV" }; |
2921 | ||
992b14a7 | 2922 | Int_t n = 1; |
2923 | ||
cb99fa55 | 2924 | if(IsDataMC()) n = 7; |
992b14a7 | 2925 | |
243c2909 | 2926 | Int_t nMaxBins = 10; |
2927 | ||
5c46c992 | 2928 | TString sMatched[] = {"","Matched"}; |
2929 | ||
8edbd100 | 2930 | Int_t nMatched = 2; |
2931 | if(!fFillTMHisto) nMatched = 1; | |
aa12888f | 2932 | |
ce49dd72 | 2933 | if(fCheckSplitDistToBad) |
2934 | { | |
2935 | for(Int_t inlm = 0; inlm < 3; inlm++) | |
2936 | { | |
2937 | fhMassBadDistClose[inlm] = new TH2F(Form("hMassBadDistCloseNLocMax%s",snlm[inlm].Data()), | |
2938 | Form("Invariant mass of splitted cluster with NLM=%d vs E, 2nd LM close to bad channel",inlm), | |
2939 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
2940 | fhMassBadDistClose[inlm]->SetYTitle("M (GeV/c^{2})"); | |
2941 | fhMassBadDistClose[inlm]->SetXTitle("E (GeV)"); | |
2942 | outputContainer->Add(fhMassBadDistClose[inlm]) ; | |
2943 | ||
2944 | fhM02BadDistClose[inlm] = new TH2F(Form("hM02BadDistCloseNLocMax%s",snlm[inlm].Data()), | |
2945 | Form("#lambda_{0}^{2} for cluster with NLM=%d vs E, 2nd LM close to bad channel",inlm), | |
2946 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
2947 | fhM02BadDistClose[inlm]->SetYTitle("#lambda_{0}^{2}"); | |
2948 | fhM02BadDistClose[inlm]->SetXTitle("E (GeV)"); | |
2949 | outputContainer->Add(fhM02BadDistClose[inlm]) ; | |
2950 | ||
2951 | fhMassOnBorder[inlm] = new TH2F(Form("hMassOnBorderNLocMax%s",snlm[inlm].Data()), | |
2952 | Form("Invariant mass of splitted cluster with NLM=%d vs E, 2nd LM close to border",inlm), | |
2953 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
2954 | fhMassOnBorder[inlm]->SetYTitle("M (GeV/c^{2})"); | |
2955 | fhMassOnBorder[inlm]->SetXTitle("E (GeV)"); | |
2956 | outputContainer->Add(fhMassOnBorder[inlm]) ; | |
2957 | ||
2958 | fhM02OnBorder[inlm] = new TH2F(Form("hM02OnBorderNLocMax%s",snlm[inlm].Data()), | |
2959 | Form("#lambda_{0}^{2} for cluster with NLM=%d vs E, 2nd LM close to border",inlm), | |
2960 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
2961 | fhM02OnBorder[inlm]->SetYTitle("#lambda_{0}^{2}"); | |
2962 | fhM02OnBorder[inlm]->SetXTitle("E (GeV)"); | |
2963 | outputContainer->Add(fhM02OnBorder[inlm]) ; | |
2964 | ||
2965 | } | |
2966 | } | |
2967 | ||
5c46c992 | 2968 | for(Int_t i = 0; i < n; i++) |
667432ef | 2969 | { |
8edbd100 | 2970 | for(Int_t j = 0; j < nMatched; j++) |
667432ef | 2971 | { |
5c46c992 | 2972 | |
ce49dd72 | 2973 | fhNLocMax[i][j] = new TH2F(Form("hNLocMax%s%s",pname[i].Data(),sMatched[j].Data()), |
2974 | Form("Number of local maxima in cluster %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2975 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2976 | fhNLocMax[i][j] ->SetYTitle("N maxima"); | |
2977 | fhNLocMax[i][j] ->SetXTitle("E (GeV)"); | |
2978 | outputContainer->Add(fhNLocMax[i][j]) ; | |
29555e96 | 2979 | |
2980 | fhLM1NLocMax[i][j] = new TH2F(Form("hLM1NLocMax%s%s",pname[i].Data(),sMatched[j].Data()), | |
2981 | Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2982 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2983 | fhLM1NLocMax[i][j] ->SetYTitle("N maxima"); | |
db790ee8 | 2984 | fhLM1NLocMax[i][j] ->SetXTitle("E (GeV)"); |
29555e96 | 2985 | outputContainer->Add(fhLM1NLocMax[i][j]) ; |
2986 | ||
2987 | fhLM2NLocMax[i][j] = new TH2F(Form("hLM2NLocMax%s%s",pname[i].Data(),sMatched[j].Data()), | |
2988 | Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
2989 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2990 | fhLM2NLocMax[i][j] ->SetYTitle("N maxima"); | |
db790ee8 | 2991 | fhLM2NLocMax[i][j] ->SetXTitle("E (GeV)"); |
29555e96 | 2992 | outputContainer->Add(fhLM2NLocMax[i][j]) ; |
2993 | ||
2994 | if(m02On) | |
2995 | { | |
2996 | fhNLocMaxM02Cut[i][j] = new TH2F(Form("hNLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()), | |
2997 | Form("Number of local maxima in cluster %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()), | |
2998 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
2999 | fhNLocMaxM02Cut[i][j]->SetYTitle("N maxima"); | |
3000 | fhNLocMaxM02Cut[i][j]->SetXTitle("E (GeV)"); | |
3001 | outputContainer->Add(fhNLocMaxM02Cut[i][j]) ; | |
3002 | ||
3003 | fhLM1NLocMaxM02Cut[i][j] = new TH2F(Form("hLM1NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()), | |
3004 | Form("Number of local maxima in cluster for split cluster 1 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()), | |
3005 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
3006 | fhLM1NLocMaxM02Cut[i][j] ->SetYTitle("N maxima"); | |
db790ee8 | 3007 | fhLM1NLocMaxM02Cut[i][j] ->SetXTitle("E (GeV)"); |
29555e96 | 3008 | outputContainer->Add(fhLM1NLocMaxM02Cut[i][j]) ; |
3009 | ||
3010 | fhLM2NLocMaxM02Cut[i][j] = new TH2F(Form("hLM2NLocMaxM02Cut%s%s",pname[i].Data(),sMatched[j].Data()), | |
3011 | Form("Number of local maxima in cluster for split cluster 2 %s %s, M02 cut",ptype[i].Data(),sMatched[j].Data()), | |
3012 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
3013 | fhLM2NLocMaxM02Cut[i][j] ->SetYTitle("N maxima"); | |
db790ee8 | 3014 | fhLM2NLocMaxM02Cut[i][j] ->SetXTitle("E (GeV)"); |
29555e96 | 3015 | outputContainer->Add(fhLM2NLocMaxM02Cut[i][j]) ; |
3016 | ||
3017 | } | |
3018 | ||
3019 | ||
3020 | fhNLocMaxIdPi0[i][j] = new TH2F(Form("hNLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()), | |
3021 | Form("Number of local maxima in pi0 ID cluster %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3022 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
3023 | fhNLocMaxIdPi0[i][j] ->SetYTitle("N maxima"); | |
3024 | fhNLocMaxIdPi0[i][j] ->SetXTitle("E (GeV)"); | |
3025 | outputContainer->Add(fhNLocMaxIdPi0[i][j]) ; | |
3026 | ||
3027 | ||
3028 | fhLM1NLocMaxIdPi0[i][j] = new TH2F(Form("hLM1NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()), | |
3029 | Form("Number of local maxima in cluster for split cluster 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3030 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
3031 | fhLM1NLocMaxIdPi0[i][j] ->SetYTitle("N maxima"); | |
db790ee8 | 3032 | fhLM1NLocMaxIdPi0[i][j] ->SetXTitle("E (GeV)"); |
29555e96 | 3033 | outputContainer->Add(fhLM1NLocMaxIdPi0[i][j]) ; |
3034 | ||
3035 | fhLM2NLocMaxIdPi0[i][j] = new TH2F(Form("hLM2NLocMaxIdPi0%s%s",pname[i].Data(),sMatched[j].Data()), | |
3036 | Form("Number of local maxima in cluster for split cluster 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3037 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
3038 | fhLM2NLocMaxIdPi0[i][j] ->SetYTitle("N maxima"); | |
db790ee8 | 3039 | fhLM2NLocMaxIdPi0[i][j] ->SetXTitle("E (GeV)"); |
29555e96 | 3040 | outputContainer->Add(fhLM2NLocMaxIdPi0[i][j]) ; |
3041 | ||
3042 | ||
3043 | ||
ce49dd72 | 3044 | |
3045 | fhSplitClusterENLocMax[i][j] = new TH2F(Form("hSplitEClusterNLocMax%s%s",pname[i].Data(),sMatched[j].Data()), | |
3046 | Form("Number of local maxima vs E of split clusters %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3047 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
3048 | fhSplitClusterENLocMax[i][j] ->SetYTitle("N maxima"); | |
3049 | fhSplitClusterENLocMax[i][j] ->SetXTitle("E (GeV)"); | |
3050 | outputContainer->Add(fhSplitClusterENLocMax[i][j]) ; | |
3051 | ||
3052 | ||
3053 | fhSplitClusterEPi0NLocMax[i][j] = new TH2F(Form("hSplitEClusterPi0NLocMax%s%s",pname[i].Data(),sMatched[j].Data()), | |
3054 | Form("Number of local maxima vs E of split clusters, id as pi0, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3055 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
3056 | fhSplitClusterEPi0NLocMax[i][j] ->SetYTitle("N maxima"); | |
3057 | fhSplitClusterEPi0NLocMax[i][j] ->SetXTitle("E (GeV)"); | |
3058 | outputContainer->Add(fhSplitClusterEPi0NLocMax[i][j]) ; | |
3059 | ||
3060 | if(fFillNCellHisto) | |
3061 | { | |
3062 | fhNCellNLocMax1[i][j] = new TH2F(Form("hNCellNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3063 | Form("n cells vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3064 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3065 | fhNCellNLocMax1[i][j] ->SetYTitle("N cells"); | |
3066 | fhNCellNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3067 | outputContainer->Add(fhNCellNLocMax1[i][j]) ; | |
3068 | ||
3069 | fhNCellNLocMax2[i][j] = new TH2F(Form("hNCellNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3070 | Form("n cells vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3071 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3072 | fhNCellNLocMax2[i][j] ->SetYTitle("N cells"); | |
3073 | fhNCellNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3074 | outputContainer->Add(fhNCellNLocMax2[i][j]) ; | |
3075 | ||
3076 | ||
3077 | fhNCellNLocMaxN[i][j] = new TH2F(Form("hNCellNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3078 | Form("n cells vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3079 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3080 | fhNCellNLocMaxN[i][j] ->SetYTitle("N cells"); | |
3081 | fhNCellNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3082 | outputContainer->Add(fhNCellNLocMaxN[i][j]) ; | |
3083 | } | |
3084 | ||
5c46c992 | 3085 | fhMassNLocMax1[i][j] = new TH2F(Form("hMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
2a77f6f4 | 3086 | Form("Invariant mass of splitted cluster with NLM=1 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()), |
5c46c992 | 3087 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
3088 | fhMassNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3089 | fhMassNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
3090 | outputContainer->Add(fhMassNLocMax1[i][j]) ; | |
3091 | ||
3092 | fhMassNLocMax2[i][j] = new TH2F(Form("hMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
2a77f6f4 | 3093 | Form("Invariant mass of splitted cluster with NLM=2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()), |
5c46c992 | 3094 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
3095 | fhMassNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3096 | fhMassNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
3097 | outputContainer->Add(fhMassNLocMax2[i][j]) ; | |
3098 | ||
3099 | fhMassNLocMaxN[i][j] = new TH2F(Form("hMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2a77f6f4 | 3100 | Form("Invariant mass of splitted cluster with NLM>2 vs E, %s %s",ptype[i].Data(),sMatched[j].Data()), |
5c46c992 | 3101 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
3102 | fhMassNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3103 | fhMassNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
667432ef | 3104 | outputContainer->Add(fhMassNLocMaxN[i][j]) ; |
c7e9a4e9 | 3105 | |
3106 | fhMassSplitENLocMax1[i][j] = new TH2F(Form("hMassSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3107 | Form("Invariant mass of splitted cluster with NLM=1 vs E1+E2, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3108 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3109 | fhMassSplitENLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3110 | fhMassSplitENLocMax1[i][j]->SetXTitle("E1+E2 (GeV)"); | |
3111 | outputContainer->Add(fhMassSplitENLocMax1[i][j]) ; | |
3112 | ||
3113 | fhMassSplitENLocMax2[i][j] = new TH2F(Form("hMassSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3114 | Form("Invariant mass of splitted cluster with NLM=2 vs E1+E2, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3115 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3116 | fhMassSplitENLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3117 | fhMassSplitENLocMax2[i][j]->SetXTitle("E1+E2 (GeV)"); | |
3118 | outputContainer->Add(fhMassSplitENLocMax2[i][j]) ; | |
3119 | ||
3120 | fhMassSplitENLocMaxN[i][j] = new TH2F(Form("hMassSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3121 | Form("Invariant mass of splitted cluster with NLM>2 vs E1+E2, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3122 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3123 | fhMassSplitENLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3124 | fhMassSplitENLocMaxN[i][j]->SetXTitle("E1+E2 (GeV)"); | |
3125 | outputContainer->Add(fhMassSplitENLocMaxN[i][j]) ; | |
1253480f | 3126 | |
3127 | fhM02NLocMax1[i][j] = new TH2F(Form("hM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3128 | Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3129 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3130 | fhM02NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3131 | fhM02NLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3132 | outputContainer->Add(fhM02NLocMax1[i][j]) ; | |
3133 | ||
3134 | fhM02NLocMax2[i][j] = new TH2F(Form("hM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3135 | Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3136 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3137 | fhM02NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3138 | fhM02NLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3139 | outputContainer->Add(fhM02NLocMax2[i][j]) ; | |
3140 | ||
3141 | fhM02NLocMaxN[i][j] = new TH2F(Form("hM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3142 | Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3143 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3144 | fhM02NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3145 | fhM02NLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3146 | outputContainer->Add(fhM02NLocMaxN[i][j]) ; | |
3147 | ||
3148 | fhAsymNLocMax1[i][j] = new TH2F(Form("hAsymNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3149 | Form("Asymmetry of NLM=1 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3150 | nptbins,ptmin,ptmax,200,-1,1); | |
3151 | fhAsymNLocMax1[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3152 | fhAsymNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
3153 | outputContainer->Add(fhAsymNLocMax1[i][j]) ; | |
3154 | ||
3155 | fhAsymNLocMax2[i][j] = new TH2F(Form("hAsymNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3156 | Form("Asymmetry of NLM=2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3157 | nptbins,ptmin,ptmax,200,-1,1); | |
3158 | fhAsymNLocMax2[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3159 | fhAsymNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
3160 | outputContainer->Add(fhAsymNLocMax2[i][j]) ; | |
3161 | ||
3162 | fhAsymNLocMaxN[i][j] = new TH2F(Form("hAsymNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3163 | Form("Asymmetry of NLM>2 vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3164 | nptbins,ptmin,ptmax,200,-1,1); | |
3165 | fhAsymNLocMaxN[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3166 | fhAsymNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
3167 | outputContainer->Add(fhAsymNLocMaxN[i][j]) ; | |
3168 | ||
3169 | fhSplitEFractionNLocMax1[i][j] = new TH2F(Form("hSplitEFractionNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3170 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3171 | nptbins,ptmin,ptmax,120,0,1.2); | |
3172 | fhSplitEFractionNLocMax1[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
3173 | fhSplitEFractionNLocMax1[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3174 | outputContainer->Add(fhSplitEFractionNLocMax1[i][j]) ; | |
3175 | ||
3176 | fhSplitEFractionNLocMax2[i][j] = new TH2F(Form("hSplitEFractionNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3177 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3178 | nptbins,ptmin,ptmax,120,0,1.2); | |
3179 | fhSplitEFractionNLocMax2[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
3180 | fhSplitEFractionNLocMax2[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3181 | outputContainer->Add(fhSplitEFractionNLocMax2[i][j]) ; | |
3182 | ||
3183 | fhSplitEFractionNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3184 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3185 | nptbins,ptmin,ptmax,120,0,1.2); | |
3186 | fhSplitEFractionNLocMaxN[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
3187 | fhSplitEFractionNLocMaxN[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3188 | outputContainer->Add(fhSplitEFractionNLocMaxN[i][j]) ; | |
1253480f | 3189 | |
cb99fa55 | 3190 | if(i==0 && j==0 ) |
1253480f | 3191 | { |
cb99fa55 | 3192 | if(m02On) |
1253480f | 3193 | { |
cb99fa55 | 3194 | fhMassM02CutNLocMax1 = new TH2F("hMassM02CutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, M02 cut, no TM", |
3195 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3196 | fhMassM02CutNLocMax1->SetYTitle("M (GeV/c^{2})"); | |
3197 | fhMassM02CutNLocMax1->SetXTitle("E (GeV)"); | |
3198 | outputContainer->Add(fhMassM02CutNLocMax1) ; | |
1253480f | 3199 | |
cb99fa55 | 3200 | fhMassM02CutNLocMax2 = new TH2F("hMassM02CutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, M02 cut, no TM", |
3201 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3202 | fhMassM02CutNLocMax2->SetYTitle("M (GeV/c^{2})"); | |
3203 | fhMassM02CutNLocMax2->SetXTitle("E (GeV)"); | |
3204 | outputContainer->Add(fhMassM02CutNLocMax2) ; | |
1253480f | 3205 | |
cb99fa55 | 3206 | fhMassM02CutNLocMaxN = new TH2F("hMassM02CutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, M02 cut, no TM", |
3207 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3208 | fhMassM02CutNLocMaxN->SetYTitle("M (GeV/c^{2})"); | |
3209 | fhMassM02CutNLocMaxN->SetXTitle("E (GeV)"); | |
3210 | outputContainer->Add(fhMassM02CutNLocMaxN) ; | |
3211 | ||
3212 | fhAsymM02CutNLocMax1 = new TH2F("hAsymM02CutNLocMax1","Asymmetry of NLM=1 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1); | |
3213 | fhAsymM02CutNLocMax1->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3214 | fhAsymM02CutNLocMax1->SetXTitle("E (GeV)"); | |
3215 | outputContainer->Add(fhAsymM02CutNLocMax1) ; | |
3216 | ||
3217 | fhAsymM02CutNLocMax2 = new TH2F("hAsymM02CutNLocMax2","Asymmetry of NLM=2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1); | |
3218 | fhAsymM02CutNLocMax2->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3219 | fhAsymM02CutNLocMax2->SetXTitle("E (GeV)"); | |
3220 | outputContainer->Add(fhAsymM02CutNLocMax2) ; | |
3221 | ||
3222 | fhAsymM02CutNLocMaxN = new TH2F("hAsymM02CutNLocMaxN","Asymmetry of NLM>2 vs cluster Energy, M02Cut, no TM", nptbins,ptmin,ptmax,200,-1,1); | |
3223 | fhAsymM02CutNLocMaxN->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3224 | fhAsymM02CutNLocMaxN->SetXTitle("E (GeV)"); | |
3225 | outputContainer->Add(fhAsymM02CutNLocMaxN) ; | |
7350f5d6 | 3226 | |
cb99fa55 | 3227 | if(splitOn) |
3228 | { | |
3229 | fhMassSplitECutNLocMax1 = new TH2F("hMassSplitECutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, (E1+E2)/E cut, M02 cut, no TM", | |
3230 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3231 | fhMassSplitECutNLocMax1->SetYTitle("M (GeV/c^{2})"); | |
3232 | fhMassSplitECutNLocMax1->SetXTitle("E (GeV)"); | |
3233 | outputContainer->Add(fhMassSplitECutNLocMax1) ; | |
3234 | ||
3235 | fhMassSplitECutNLocMax2 = new TH2F("hMassSplitECutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, (E1+E2)/E cut, M02 cut, no TM", | |
3236 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3237 | fhMassSplitECutNLocMax2->SetYTitle("M (GeV/c^{2})"); | |
3238 | fhMassSplitECutNLocMax2->SetXTitle("E (GeV)"); | |
3239 | outputContainer->Add(fhMassSplitECutNLocMax2) ; | |
3240 | ||
3241 | fhMassSplitECutNLocMaxN = new TH2F("hMassSplitECutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, (E1+E2)/E cut, M02 cut, no TM", | |
3242 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3243 | fhMassSplitECutNLocMaxN->SetYTitle("M (GeV/c^{2})"); | |
3244 | fhMassSplitECutNLocMaxN->SetXTitle("E (GeV)"); | |
3245 | outputContainer->Add(fhMassSplitECutNLocMaxN) ; | |
3246 | } | |
3247 | }//m02on | |
1253480f | 3248 | |
cb99fa55 | 3249 | if(asyOn) |
3250 | { | |
2c36e041 | 3251 | fhMassAsyCutNLocMax1 = new TH2F("hMassAsyCutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, Asy cut, no TM", |
cb99fa55 | 3252 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
3253 | fhMassAsyCutNLocMax1->SetYTitle("M (GeV/c^{2})"); | |
3254 | fhMassAsyCutNLocMax1->SetXTitle("E (GeV)"); | |
3255 | outputContainer->Add(fhMassAsyCutNLocMax1) ; | |
3256 | ||
2c36e041 | 3257 | fhMassAsyCutNLocMax2 = new TH2F("hMassAsyCutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, Asy cut, no TM", |
cb99fa55 | 3258 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
3259 | fhMassAsyCutNLocMax2->SetYTitle("M (GeV/c^{2})"); | |
3260 | fhMassAsyCutNLocMax2->SetXTitle("E (GeV)"); | |
3261 | outputContainer->Add(fhMassAsyCutNLocMax2) ; | |
3262 | ||
2c36e041 | 3263 | fhMassAsyCutNLocMaxN = new TH2F("hMassAsyCutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, Asy cut, no TM", |
cb99fa55 | 3264 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
3265 | fhMassAsyCutNLocMaxN->SetYTitle("M (GeV/c^{2})"); | |
3266 | fhMassAsyCutNLocMaxN->SetXTitle("E (GeV)"); | |
3267 | outputContainer->Add(fhMassAsyCutNLocMaxN) ; | |
3268 | ||
3269 | fhM02AsyCutNLocMax1 = new TH2F("hM02AsyCutNLocMax1","#lambda_{0}^{2} of NLM=1 vs cluster Energy, AsyCut, no TM", | |
3270 | nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); | |
3271 | fhM02AsyCutNLocMax1->SetYTitle("#lambda_{0}^{2}"); | |
3272 | fhM02AsyCutNLocMax1->SetXTitle("E (GeV)"); | |
3273 | outputContainer->Add(fhM02AsyCutNLocMax1) ; | |
3274 | ||
3275 | fhM02AsyCutNLocMax2 = new TH2F("hM02AsyCutNLocMax2","#lambda_{0}^{2} of NLM=2 vs cluster Energy, AsyCut, no TM", | |
3276 | nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); | |
3277 | fhM02AsyCutNLocMax2->SetYTitle("#lambda_{0}^{2}"); | |
3278 | fhM02AsyCutNLocMax2->SetXTitle("E (GeV)"); | |
3279 | outputContainer->Add(fhM02AsyCutNLocMax2) ; | |
3280 | ||
3281 | fhM02AsyCutNLocMaxN = new TH2F("hM02AsyCutNLocMaxN","#lambda_{0}^{2} of NLM>2 vs cluster Energy, AsyCut, no TM", | |
3282 | nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); | |
3283 | fhM02AsyCutNLocMaxN->SetYTitle("#lambda_{0}^{2}"); | |
3284 | fhM02AsyCutNLocMaxN->SetXTitle("E (GeV)"); | |
3285 | outputContainer->Add(fhM02AsyCutNLocMaxN) ; | |
2c36e041 | 3286 | } |
3287 | ||
7350f5d6 | 3288 | if(GetCaloPID()->GetSubClusterEnergyMinimum(0) > 0.1) |
2c36e041 | 3289 | { |
7350f5d6 | 3290 | fhMassEnCutNLocMax1 = new TH2F("hMassEnCutNLocMax1",Form("Invariant mass of splitted cluster with NLM=1 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)), |
3291 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3292 | fhMassEnCutNLocMax1->SetYTitle("M (GeV/c^{2})"); | |
3293 | fhMassEnCutNLocMax1->SetXTitle("E (GeV)"); | |
3294 | outputContainer->Add(fhMassEnCutNLocMax1) ; | |
3295 | ||
3296 | fhMassEnCutNLocMax2 = new TH2F("hMassEnCutNLocMax2",Form("Invariant mass of splitted cluster with NLM=2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)), | |
3297 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3298 | fhMassEnCutNLocMax2->SetYTitle("M (GeV/c^{2})"); | |
3299 | fhMassEnCutNLocMax2->SetXTitle("E (GeV)"); | |
3300 | outputContainer->Add(fhMassEnCutNLocMax2) ; | |
3301 | ||
3302 | fhMassEnCutNLocMaxN = new TH2F("hMassEnCutNLocMaxN",Form("Invariant mass of splitted cluster with NLM>2 vs E, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)), | |
3303 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3304 | fhMassEnCutNLocMaxN->SetYTitle("M (GeV/c^{2})"); | |
3305 | fhMassEnCutNLocMaxN->SetXTitle("E (GeV)"); | |
3306 | outputContainer->Add(fhMassEnCutNLocMaxN) ; | |
3307 | ||
3308 | fhM02EnCutNLocMax1 = new TH2F("hM02EnCutNLocMax1",Form("#lambda_{0}^{2} of NLM=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)), | |
3309 | nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); | |
3310 | fhM02EnCutNLocMax1->SetYTitle("#lambda_{0}^{2}"); | |
3311 | fhM02EnCutNLocMax1->SetXTitle("E (GeV)"); | |
3312 | outputContainer->Add(fhM02EnCutNLocMax1) ; | |
3313 | ||
3314 | fhM02EnCutNLocMax2 = new TH2F("hM02EnCutNLocMax2",Form("#lambda_{0}^{2} of NLM=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)), | |
3315 | nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); | |
3316 | fhM02EnCutNLocMax2->SetYTitle("#lambda_{0}^{2}"); | |
3317 | fhM02EnCutNLocMax2->SetXTitle("E (GeV)"); | |
3318 | outputContainer->Add(fhM02EnCutNLocMax2) ; | |
3319 | ||
3320 | fhM02EnCutNLocMaxN = new TH2F("hM02EnCutNLocMaxN",Form("#lambda_{0}^{2} of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)), | |
3321 | nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); | |
3322 | fhM02EnCutNLocMaxN->SetYTitle("#lambda_{0}^{2}"); | |
3323 | fhM02EnCutNLocMaxN->SetXTitle("E (GeV)"); | |
3324 | outputContainer->Add(fhM02EnCutNLocMaxN) ; | |
3325 | ||
3326 | fhAsymEnCutNLocMax1 = new TH2F("hAsymEnCutNLocMax1",Form("Asymmetry of NLM=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)) | |
3327 | , nptbins,ptmin,ptmax,200,-1,1); | |
3328 | fhAsymEnCutNLocMax1->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3329 | fhAsymEnCutNLocMax1->SetXTitle("E (GeV)"); | |
3330 | outputContainer->Add(fhAsymEnCutNLocMax1) ; | |
3331 | ||
3332 | fhAsymEnCutNLocMax2 = new TH2F("hAsymEnCutNLocMax2",Form("Asymmetry of NLM=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)) | |
3333 | , nptbins,ptmin,ptmax,200,-1,1); | |
3334 | fhAsymEnCutNLocMax2->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3335 | fhAsymEnCutNLocMax2->SetXTitle("E (GeV)"); | |
3336 | outputContainer->Add(fhAsymEnCutNLocMax2) ; | |
3337 | ||
3338 | fhAsymEnCutNLocMaxN = new TH2F("hAsymEnCutNLocMaxN",Form("Asymmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)) | |
3339 | , nptbins,ptmin,ptmax,200,-1,1); | |
3340 | fhAsymEnCutNLocMaxN->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})"); | |
3341 | fhAsymEnCutNLocMaxN->SetXTitle("E (GeV)"); | |
3342 | outputContainer->Add(fhAsymEnCutNLocMaxN) ; | |
a6d3b0a8 | 3343 | |
3344 | fhSplitEFracEnCutNLocMax1 = new TH2F("hSplitEFracEnCutNLocMax1",Form("SplitEFracmetry of NLM=1 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(0)) | |
3345 | , nptbins,ptmin,ptmax,120,0,1.2); | |
3346 | fhSplitEFracEnCutNLocMax1->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3347 | fhSplitEFracEnCutNLocMax1->SetXTitle("E (GeV)"); | |
3348 | outputContainer->Add(fhSplitEFracEnCutNLocMax1) ; | |
2c36e041 | 3349 | |
a6d3b0a8 | 3350 | fhSplitEFracEnCutNLocMax2 = new TH2F("hSplitEFracEnCutNLocMax2",Form("SplitEFracmetry of NLM=2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(1)) |
3351 | , nptbins,ptmin,ptmax,120,0,1.2); | |
3352 | fhSplitEFracEnCutNLocMax2->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3353 | fhSplitEFracEnCutNLocMax2->SetXTitle("E (GeV)"); | |
3354 | outputContainer->Add(fhSplitEFracEnCutNLocMax2) ; | |
3355 | ||
3356 | fhSplitEFracEnCutNLocMaxN = new TH2F("hSplitEFracEnCutNLocMaxN",Form("SplitEFracmetry of NLM>2 vs cluster Energy, E > %1.1f GeV, no TM",GetCaloPID()->GetSubClusterEnergyMinimum(2)) | |
3357 | , nptbins,ptmin,ptmax,120,0,1.2); | |
3358 | fhSplitEFracEnCutNLocMaxN->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3359 | fhSplitEFracEnCutNLocMaxN->SetXTitle("E (GeV)"); | |
3360 | outputContainer->Add(fhSplitEFracEnCutNLocMaxN) ; | |
2c36e041 | 3361 | } |
7350f5d6 | 3362 | |
3363 | } // no MC | |
aa12888f | 3364 | |
c7e9a4e9 | 3365 | if(asyOn || m02On ) |
1253480f | 3366 | { |
3367 | fhMassAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3368 | Form("Mass vs E, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()), | |
3369 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3370 | fhMassAfterCutsNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3371 | fhMassAfterCutsNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3372 | outputContainer->Add(fhMassAfterCutsNLocMax1[i][j]) ; | |
3373 | ||
3374 | fhMassAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3375 | Form("Mass vs E, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()), | |
3376 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3377 | fhMassAfterCutsNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3378 | fhMassAfterCutsNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3379 | outputContainer->Add(fhMassAfterCutsNLocMax2[i][j]) ; | |
3380 | ||
1253480f | 3381 | fhMassAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
3382 | Form("Mass vs E, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()), | |
3383 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3384 | fhMassAfterCutsNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3385 | fhMassAfterCutsNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3386 | outputContainer->Add(fhMassAfterCutsNLocMaxN[i][j]) ; | |
c7e9a4e9 | 3387 | |
3388 | fhMassSplitEAfterCutsNLocMax1[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3389 | Form("Mass vs E1+E2, %s %s, for NLM = 1, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()), | |
3390 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3391 | fhMassSplitEAfterCutsNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3392 | fhMassSplitEAfterCutsNLocMax1[i][j] ->SetXTitle("E1+E2 (GeV)"); | |
3393 | outputContainer->Add(fhMassSplitEAfterCutsNLocMax1[i][j]) ; | |
3394 | ||
3395 | fhMassSplitEAfterCutsNLocMax2[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3396 | Form("Mass vs E1+E2, %s %s, for NLM = 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()), | |
3397 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3398 | fhMassSplitEAfterCutsNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3399 | fhMassSplitEAfterCutsNLocMax2[i][j] ->SetXTitle("E1+E2 (GeV)"); | |
3400 | outputContainer->Add(fhMassSplitEAfterCutsNLocMax2[i][j]) ; | |
3401 | ||
3402 | fhMassSplitEAfterCutsNLocMaxN[i][j] = new TH2F(Form("hMassSplitEAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3403 | Form("Mass vs E1+E2, %s %s, for NLM > 2, M02 and asy cut",ptype[i].Data(),sMatched[j].Data()), | |
3404 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3405 | fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3406 | fhMassSplitEAfterCutsNLocMaxN[i][j] ->SetXTitle("E1+E2 (GeV)"); | |
3407 | outputContainer->Add(fhMassSplitEAfterCutsNLocMaxN[i][j]) ; | |
3408 | ||
1253480f | 3409 | |
3410 | fhSplitEFractionAfterCutsNLocMax1[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3411 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 1, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3412 | nptbins,ptmin,ptmax,120,0,1.2); | |
3413 | fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
3414 | fhSplitEFractionAfterCutsNLocMax1[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3415 | outputContainer->Add(fhSplitEFractionAfterCutsNLocMax1[i][j]) ; | |
3416 | ||
3417 | fhSplitEFractionAfterCutsNLocMax2[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3418 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max = 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3419 | nptbins,ptmin,ptmax,120,0,1.2); | |
3420 | fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
3421 | fhSplitEFractionAfterCutsNLocMax2[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3422 | outputContainer->Add(fhSplitEFractionAfterCutsNLocMax2[i][j]) ; | |
3423 | ||
3424 | fhSplitEFractionAfterCutsNLocMaxN[i][j] = new TH2F(Form("hSplitEFractionAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3425 | Form("(E1+E2)/E_{cluster} vs E_{cluster} for N max > 2, M02 and Asy cut on, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3426 | nptbins,ptmin,ptmax,120,0,1.2); | |
3427 | fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetXTitle("E_{cluster} (GeV)"); | |
3428 | fhSplitEFractionAfterCutsNLocMaxN[i][j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
3429 | outputContainer->Add(fhSplitEFractionAfterCutsNLocMaxN[i][j]) ; | |
3430 | } | |
5c46c992 | 3431 | |
0137016b | 3432 | fhMassM02NLocMax1[i][j] = new TH2F(Form("hMassM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
c8710850 | 3433 | Form("Invariant mass of splitted cluster with NLM=1, #lambda_{0}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()), |
0137016b | 3434 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3435 | fhMassM02NLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3436 | fhMassM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}"); | |
3437 | outputContainer->Add(fhMassM02NLocMax1[i][j]) ; | |
3438 | ||
3439 | fhMassM02NLocMax2[i][j] = new TH2F(Form("hMassM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3440 | Form("Invariant mass of splitted cluster with NLM=2, #lambda_{0}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()), |
0137016b | 3441 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3442 | fhMassM02NLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3443 | fhMassM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}"); | |
3444 | outputContainer->Add(fhMassM02NLocMax2[i][j]) ; | |
3445 | ||
3446 | fhMassM02NLocMaxN[i][j] = new TH2F(Form("hMassM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2a77f6f4 | 3447 | Form("Invariant mass of splitted cluster with NLM>2, vs #lambda_{0}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()), |
0137016b | 3448 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3449 | fhMassM02NLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3450 | fhMassM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}"); | |
3451 | outputContainer->Add(fhMassM02NLocMaxN[i][j]) ; | |
3452 | ||
8e81c2cf | 3453 | if(fFillSSExtraHisto) |
3454 | { | |
3455 | fhMassDispEtaNLocMax1[i][j] = new TH2F(Form("hMassDispEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3456 | Form("Invariant mass of splitted cluster with NLM=1, #sigma_{#eta #eta}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3457 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3458 | fhMassDispEtaNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3459 | fhMassDispEtaNLocMax1[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
3460 | outputContainer->Add(fhMassDispEtaNLocMax1[i][j]) ; | |
3461 | ||
3462 | fhMassDispEtaNLocMax2[i][j] = new TH2F(Form("hMassDispEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3463 | Form("Invariant mass of splitted cluster with NLM=2 #sigma_{#eta #eta}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3464 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3465 | fhMassDispEtaNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3466 | fhMassDispEtaNLocMax2[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
3467 | outputContainer->Add(fhMassDispEtaNLocMax2[i][j]) ; | |
3468 | ||
3469 | fhMassDispEtaNLocMaxN[i][j] = new TH2F(Form("hMassDispEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
2a77f6f4 | 3470 | Form("Invariant mass of splitted cluster with NLM>2, #sigma_{#eta #eta}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3471 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3472 | fhMassDispEtaNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3473 | fhMassDispEtaNLocMaxN[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
3474 | outputContainer->Add(fhMassDispEtaNLocMaxN[i][j]) ; | |
3475 | ||
3476 | fhMassDispPhiNLocMax1[i][j] = new TH2F(Form("hMassDispPhiNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3477 | Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3478 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3479 | fhMassDispPhiNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3480 | fhMassDispPhiNLocMax1[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
3481 | outputContainer->Add(fhMassDispPhiNLocMax1[i][j]) ; | |
3482 | ||
3483 | fhMassDispPhiNLocMax2[i][j] = new TH2F(Form("hMassDispPhiNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3484 | Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3485 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
3486 | fhMassDispPhiNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3487 | fhMassDispPhiNLocMax2[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
3488 | outputContainer->Add(fhMassDispPhiNLocMax2[i][j]) ; | |
3489 | ||
3490 | fhMassDispPhiNLocMaxN[i][j] = new TH2F(Form("hMassDispPhiNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3491 | Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3492 | ssbins,ssmin,ssmax,mbins,mmin,mmax); | |
3493 | fhMassDispPhiNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3494 | fhMassDispPhiNLocMaxN[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
3495 | outputContainer->Add(fhMassDispPhiNLocMaxN[i][j]) ; | |
3496 | ||
3497 | fhMassDispAsyNLocMax1[i][j] = new TH2F(Form("hMassDispAsyNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3498 | Form("Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 12 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3499 | 200,-1,1,mbins,mmin,mmax); |
3500 | fhMassDispAsyNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3501 | fhMassDispAsyNLocMax1[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
3502 | outputContainer->Add(fhMassDispAsyNLocMax1[i][j]) ; | |
3503 | ||
3504 | fhMassDispAsyNLocMax2[i][j] = new TH2F(Form("hMassDispAsyNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
c8710850 | 3505 | Form("Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 12 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()), |
8e81c2cf | 3506 | 200,-1,1,mbins,mmin,mmax); |
3507 | fhMassDispAsyNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3508 | fhMassDispAsyNLocMax2[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
3509 | outputContainer->Add(fhMassDispAsyNLocMax2[i][j]) ; | |
3510 | ||
3511 | fhMassDispAsyNLocMaxN[i][j] = new TH2F(Form("hMassDispAsyNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3512 | Form("Invariant mass of N>2 local maxima cells vsA = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3513 | 200,-1,1,mbins,mmin,mmax); | |
3514 | fhMassDispAsyNLocMaxN[i][j]->SetYTitle("M (GeV/c^{2})"); | |
3515 | fhMassDispAsyNLocMaxN[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
3516 | outputContainer->Add(fhMassDispAsyNLocMaxN[i][j]) ; | |
3517 | } | |
d2655d46 | 3518 | |
fc01318e | 3519 | |
b2e375c7 | 3520 | if(i > 0 && fFillMCHisto) // skip first entry in array, general case not filled |
883411b2 | 3521 | { |
3522 | fhMCGenFracNLocMax1[i][j] = new TH2F(Form("hMCGenFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3523 | Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3524 | nptbins,ptmin,ptmax,200,0,2); | |
fb51265c | 3525 | fhMCGenFracNLocMax1[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
883411b2 | 3526 | fhMCGenFracNLocMax1[i][j] ->SetXTitle("E (GeV)"); |
3527 | outputContainer->Add(fhMCGenFracNLocMax1[i][j]) ; | |
3528 | ||
3529 | fhMCGenFracNLocMax2[i][j] = new TH2F(Form("hMCGenFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3530 | Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3531 | nptbins,ptmin,ptmax,200,0,2); | |
fb51265c | 3532 | fhMCGenFracNLocMax2[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
883411b2 | 3533 | fhMCGenFracNLocMax2[i][j] ->SetXTitle("E (GeV)"); |
3534 | outputContainer->Add(fhMCGenFracNLocMax2[i][j]) ; | |
3535 | ||
883411b2 | 3536 | fhMCGenFracNLocMaxN[i][j] = new TH2F(Form("hMCGenFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
3537 | Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), | |
3538 | nptbins,ptmin,ptmax,200,0,2); | |
fb51265c | 3539 | fhMCGenFracNLocMaxN[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
883411b2 | 3540 | fhMCGenFracNLocMaxN[i][j] ->SetXTitle("E (GeV)"); |
3541 | outputContainer->Add(fhMCGenFracNLocMaxN[i][j]) ; | |
4914e781 | 3542 | |
3543 | fhMCGenFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3544 | Form("#lambda_{0}^{2} vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3545 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3546 | fhMCGenFracNLocMax1NoOverlap[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
3547 | fhMCGenFracNLocMax1NoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3548 | outputContainer->Add(fhMCGenFracNLocMax1NoOverlap[i][j]) ; | |
3549 | ||
3550 | fhMCGenFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3551 | Form("#lambda_{0}^{2} vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3552 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3553 | fhMCGenFracNLocMax2NoOverlap[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
3554 | fhMCGenFracNLocMax2NoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3555 | outputContainer->Add(fhMCGenFracNLocMax2NoOverlap[i][j]) ; | |
3556 | ||
3557 | fhMCGenFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3558 | Form("#lambda_{0}^{2} vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3559 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3560 | fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetYTitle("E_{gen} / E_{reco}"); |
3561 | fhMCGenFracNLocMaxNNoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3562 | outputContainer->Add(fhMCGenFracNLocMaxNNoOverlap[i][j]) ; | |
1253480f | 3563 | |
4914e781 | 3564 | |
5094c724 | 3565 | fhMCGenSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3566 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3567 | nptbins,ptmin,ptmax,200,0,2); | |
5094c724 | 3568 | fhMCGenSplitEFracNLocMax1[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3569 | fhMCGenSplitEFracNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3570 | outputContainer->Add(fhMCGenSplitEFracNLocMax1[i][j]) ; | |
3571 | ||
3572 | fhMCGenSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3573 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3574 | nptbins,ptmin,ptmax,200,0,2); | |
5094c724 | 3575 | fhMCGenSplitEFracNLocMax2[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3576 | fhMCGenSplitEFracNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3577 | outputContainer->Add(fhMCGenSplitEFracNLocMax2[i][j]) ; | |
3578 | ||
5094c724 | 3579 | fhMCGenSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3580 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3581 | nptbins,ptmin,ptmax,200,0,2); | |
5094c724 | 3582 | fhMCGenSplitEFracNLocMaxN[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3583 | fhMCGenSplitEFracNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3584 | outputContainer->Add(fhMCGenSplitEFracNLocMaxN[i][j]) ; | |
1253480f | 3585 | |
4914e781 | 3586 | fhMCGenSplitEFracNLocMax1NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3587 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3588 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3589 | fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3590 | fhMCGenSplitEFracNLocMax1NoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3591 | outputContainer->Add(fhMCGenSplitEFracNLocMax1NoOverlap[i][j]) ; | |
3592 | ||
3593 | fhMCGenSplitEFracNLocMax2NoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3594 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3595 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3596 | fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3597 | fhMCGenSplitEFracNLocMax2NoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3598 | outputContainer->Add(fhMCGenSplitEFracNLocMax2NoOverlap[i][j]) ; | |
3599 | ||
3600 | fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] = new TH2F(Form("hMCGenSplitEFracNoOverlapNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3601 | Form("E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3602 | nptbins,ptmin,ptmax,200,0,2); | |
4914e781 | 3603 | fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); |
3604 | fhMCGenSplitEFracNLocMaxNNoOverlap[i][j] ->SetXTitle("E (GeV)"); | |
3605 | outputContainer->Add(fhMCGenSplitEFracNLocMaxNNoOverlap[i][j]) ; | |
3606 | ||
bb2d339b | 3607 | fhMCGenEFracvsSplitEFracNLocMax1[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3608 | Form("(E_{1 split}+E_{2 split})/E_{reco} vs E_{gen} / E_{reco} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3609 | 200,0,2,200,0,2); | |
bb2d339b | 3610 | fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetYTitle("(E_{1 split}+E_{2 split})/E_{reco}"); |
3611 | fhMCGenEFracvsSplitEFracNLocMax1[i][j] ->SetXTitle("E_{gen} / E_{reco}"); | |
3612 | outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax1[i][j]) ; | |
3613 | ||
3614 | fhMCGenEFracvsSplitEFracNLocMax2[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3615 | Form("(E_{1 split}+E_{2 split})/E_{reco} vs E_{gen} / E_{reco} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3616 | 200,0,2,200,0,2); | |
bb2d339b | 3617 | fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetYTitle("(E_{1 split}+E_{2 split})/E_{reco}"); |
3618 | fhMCGenEFracvsSplitEFracNLocMax2[i][j] ->SetXTitle("E_{gen} / E_{reco}"); | |
3619 | outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMax2[i][j]) ; | |
3620 | ||
3621 | ||
3622 | fhMCGenEFracvsSplitEFracNLocMaxN[i][j] = new TH2F(Form("hMCGenEFracvsSplitEFracNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3623 | Form("(E_{1 split}+E_{2 split})/E_{reco} vs E_{gen} / E_{reco} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3624 | 200,0,2,200,0,2); | |
bb2d339b | 3625 | fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetYTitle("(E_{1 split}+E_{2 split})/E_{reco}"); |
3626 | fhMCGenEFracvsSplitEFracNLocMaxN[i][j] ->SetXTitle("E_{gen} / E_{reco}"); | |
3627 | outputContainer->Add(fhMCGenEFracvsSplitEFracNLocMaxN[i][j]) ; | |
3628 | ||
3629 | ||
3630 | fhMCGenEvsSplitENLocMax1[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3631 | Form("E_{1 split}+E_{2 split} vs E_{gen} for N max = 1 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3632 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
bb2d339b | 3633 | fhMCGenEvsSplitENLocMax1[i][j] ->SetYTitle("E_{1 split}+E_{2 split} (GeV)"); |
3634 | fhMCGenEvsSplitENLocMax1[i][j] ->SetXTitle("E_{gen} (GeV)"); | |
3635 | outputContainer->Add(fhMCGenEvsSplitENLocMax1[i][j]) ; | |
3636 | ||
3637 | fhMCGenEvsSplitENLocMax2[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3638 | Form("E_{1 split}+E_{2 split} vs E_{gen} for N max = 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3639 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
bb2d339b | 3640 | fhMCGenEvsSplitENLocMax2[i][j] ->SetYTitle("E_{1 split}+E_{2 split} (GeV)"); |
3641 | fhMCGenEvsSplitENLocMax2[i][j] ->SetXTitle("E_{gen} (GeV)"); | |
3642 | outputContainer->Add(fhMCGenEvsSplitENLocMax2[i][j]) ; | |
3643 | ||
3644 | ||
3645 | fhMCGenEvsSplitENLocMaxN[i][j] = new TH2F(Form("hMCGenEvsSplitENLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
1253480f | 3646 | Form("E_{1 split}+E_{2 split} vs E_{gen} for N max > 2 %s %s",ptype[i].Data(),sMatched[j].Data()), |
3647 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
bb2d339b | 3648 | fhMCGenEvsSplitENLocMaxN[i][j] ->SetYTitle("E_{1 split}+E_{2 split} (GeV)"); |
3649 | fhMCGenEvsSplitENLocMaxN[i][j] ->SetXTitle("E_{gen} (GeV)"); | |
3650 | outputContainer->Add(fhMCGenEvsSplitENLocMaxN[i][j]) ; | |
883411b2 | 3651 | } |
ce49dd72 | 3652 | |
1253480f | 3653 | // Histograms after cluster identification |
17f5b4b6 | 3654 | |
17f5b4b6 | 3655 | |
1253480f | 3656 | // Pi0 // |
17f5b4b6 | 3657 | |
c8710850 | 3658 | fhM02Pi0NLocMax1[i][j] = new TH2F(Form("hM02Pi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3659 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()), |
3660 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
c8710850 | 3661 | fhM02Pi0NLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
3662 | fhM02Pi0NLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
17f5b4b6 | 3663 | outputContainer->Add(fhM02Pi0NLocMax1[i][j]) ; |
5c46c992 | 3664 | |
c8710850 | 3665 | fhM02Pi0NLocMax2[i][j] = new TH2F(Form("hM02Pi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3666 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()), |
3667 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
c8710850 | 3668 | fhM02Pi0NLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
3669 | fhM02Pi0NLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3670 | outputContainer->Add(fhM02Pi0NLocMax2[i][j]) ; | |
5c46c992 | 3671 | |
c8710850 | 3672 | fhM02Pi0NLocMaxN[i][j] = new TH2F(Form("hM02Pi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3673 | Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()), |
3674 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
c8710850 | 3675 | fhM02Pi0NLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
3676 | fhM02Pi0NLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3677 | outputContainer->Add(fhM02Pi0NLocMaxN[i][j]) ; | |
5c46c992 | 3678 | |
c8710850 | 3679 | fhMassPi0NLocMax1[i][j] = new TH2F(Form("hMassPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3680 | Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()), |
3681 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
74858845 | 3682 | fhMassPi0NLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); |
c8710850 | 3683 | fhMassPi0NLocMax1[i][j] ->SetXTitle("E (GeV)"); |
3684 | outputContainer->Add(fhMassPi0NLocMax1[i][j]) ; | |
bb2d339b | 3685 | |
c8710850 | 3686 | fhMassPi0NLocMax2[i][j] = new TH2F(Form("hMassPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3687 | Form("Mass vs E , %s, for NLM = 2",ptype[i].Data()), |
3688 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
74858845 | 3689 | fhMassPi0NLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); |
c8710850 | 3690 | fhMassPi0NLocMax2[i][j] ->SetXTitle("E (GeV)"); |
3691 | outputContainer->Add(fhMassPi0NLocMax2[i][j]) ; | |
bb2d339b | 3692 | |
c8710850 | 3693 | fhMassPi0NLocMaxN[i][j] = new TH2F(Form("hMassPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3694 | Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()), |
3695 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
74858845 | 3696 | fhMassPi0NLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); |
c8710850 | 3697 | fhMassPi0NLocMaxN[i][j] ->SetXTitle("E (GeV)"); |
3698 | outputContainer->Add(fhMassPi0NLocMaxN[i][j]) ; | |
c7e9a4e9 | 3699 | |
3700 | fhMassSplitEPi0NLocMax1[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3701 | Form("Mass vs E1+E2, %s, for NLM = 1",ptype[i].Data()), | |
3702 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3703 | fhMassSplitEPi0NLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3704 | fhMassSplitEPi0NLocMax1[i][j] ->SetXTitle("E1+E2 (GeV)"); | |
3705 | outputContainer->Add(fhMassSplitEPi0NLocMax1[i][j]) ; | |
3706 | ||
3707 | fhMassSplitEPi0NLocMax2[i][j] = new TH2F(Form("hMassSplitEPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3708 | Form("Mass vs E1+E2 , %s, for NLM = 2",ptype[i].Data()), | |
3709 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3710 | fhMassSplitEPi0NLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3711 | fhMassSplitEPi0NLocMax2[i][j] ->SetXTitle("E1+E2 (GeV)"); | |
3712 | outputContainer->Add(fhMassSplitEPi0NLocMax2[i][j]) ; | |
3713 | ||
3714 | fhMassSplitEPi0NLocMaxN[i][j] = new TH2F(Form("hMassSplitEPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3715 | Form("Mass vs E1+E2, %s, for NLM > 2",ptype[i].Data()), | |
3716 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3717 | fhMassSplitEPi0NLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3718 | fhMassSplitEPi0NLocMaxN[i][j] ->SetXTitle("E1+E2 (GeV)"); | |
3719 | outputContainer->Add(fhMassSplitEPi0NLocMaxN[i][j]) ; | |
bb2d339b | 3720 | |
c8710850 | 3721 | fhAsyPi0NLocMax1[i][j] = new TH2F(Form("hAsyPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3722 | Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()), |
e671adc2 | 3723 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
c8710850 | 3724 | fhAsyPi0NLocMax1[i][j] ->SetYTitle("Asymmetry"); |
3725 | fhAsyPi0NLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3726 | outputContainer->Add(fhAsyPi0NLocMax1[i][j]) ; | |
e671adc2 | 3727 | |
c8710850 | 3728 | fhAsyPi0NLocMax2[i][j] = new TH2F(Form("hAsyPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3729 | Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()), |
e671adc2 | 3730 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
c8710850 | 3731 | fhAsyPi0NLocMax2[i][j] ->SetYTitle("Asymmetry"); |
3732 | fhAsyPi0NLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3733 | outputContainer->Add(fhAsyPi0NLocMax2[i][j]) ; | |
e671adc2 | 3734 | |
c8710850 | 3735 | fhAsyPi0NLocMaxN[i][j] = new TH2F(Form("hAsyPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), |
1253480f | 3736 | Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()), |
e671adc2 | 3737 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
c8710850 | 3738 | fhAsyPi0NLocMaxN[i][j] ->SetYTitle("Asymmetry"); |
3739 | fhAsyPi0NLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3740 | outputContainer->Add(fhAsyPi0NLocMaxN[i][j]) ; | |
e671adc2 | 3741 | |
1253480f | 3742 | if(fFillNCellHisto) |
3743 | { | |
3744 | fhNCellPi0NLocMax1[i][j] = new TH2F(Form("hNCellPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3745 | Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()), | |
3746 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3747 | fhNCellPi0NLocMax1[i][j] ->SetYTitle("n cells"); | |
3748 | fhNCellPi0NLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3749 | outputContainer->Add(fhNCellPi0NLocMax1[i][j]) ; | |
3750 | ||
3751 | fhNCellPi0NLocMax2[i][j] = new TH2F(Form("hNCellPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3752 | Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()), | |
3753 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3754 | fhNCellPi0NLocMax2[i][j] ->SetYTitle("n cells"); | |
3755 | fhNCellPi0NLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3756 | outputContainer->Add(fhNCellPi0NLocMax2[i][j]) ; | |
3757 | ||
3758 | fhNCellPi0NLocMaxN[i][j] = new TH2F(Form("hNCellPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3759 | Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()), | |
3760 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3761 | fhNCellPi0NLocMaxN[i][j] ->SetYTitle("n cells"); | |
3762 | fhNCellPi0NLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3763 | outputContainer->Add(fhNCellPi0NLocMaxN[i][j]) ; | |
3764 | } | |
3765 | ||
3766 | // Eta | |
3767 | ||
3768 | if(fFillIdEtaHisto) | |
3769 | { | |
3770 | fhM02EtaNLocMax1[i][j] = new TH2F(Form("hM02EtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3771 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()), | |
3772 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3773 | fhM02EtaNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3774 | fhM02EtaNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3775 | outputContainer->Add(fhM02EtaNLocMax1[i][j]) ; | |
3776 | ||
3777 | ||
3778 | fhM02EtaNLocMax2[i][j] = new TH2F(Form("hM02EtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3779 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()), | |
3780 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3781 | fhM02EtaNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3782 | fhM02EtaNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3783 | outputContainer->Add(fhM02EtaNLocMax2[i][j]) ; | |
3784 | ||
3785 | fhM02EtaNLocMaxN[i][j] = new TH2F(Form("hM02EtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3786 | Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()), | |
3787 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3788 | fhM02EtaNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3789 | fhM02EtaNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3790 | outputContainer->Add(fhM02EtaNLocMaxN[i][j]) ; | |
3791 | ||
3792 | fhMassEtaNLocMax1[i][j] = new TH2F(Form("hMassEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3793 | Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()), | |
3794 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3795 | fhMassEtaNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3796 | fhMassEtaNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3797 | outputContainer->Add(fhMassEtaNLocMax1[i][j]) ; | |
3798 | ||
3799 | fhMassEtaNLocMax2[i][j] = new TH2F(Form("hMassEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3800 | Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()), | |
3801 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3802 | fhMassEtaNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3803 | fhMassEtaNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3804 | outputContainer->Add(fhMassEtaNLocMax2[i][j]) ; | |
3805 | ||
3806 | fhMassEtaNLocMaxN[i][j] = new TH2F(Form("hMassEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3807 | Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()), | |
3808 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3809 | fhMassEtaNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3810 | fhMassEtaNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3811 | outputContainer->Add(fhMassEtaNLocMaxN[i][j]) ; | |
3812 | ||
3813 | fhAsyEtaNLocMax1[i][j] = new TH2F(Form("hAsyEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3814 | Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()), | |
3815 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3816 | fhAsyEtaNLocMax1[i][j] ->SetYTitle("Asymmetry"); | |
3817 | fhAsyEtaNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3818 | outputContainer->Add(fhAsyEtaNLocMax1[i][j]) ; | |
3819 | ||
3820 | fhAsyEtaNLocMax2[i][j] = new TH2F(Form("hAsyEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3821 | Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()), | |
3822 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3823 | fhAsyEtaNLocMax2[i][j] ->SetYTitle("Asymmetry"); | |
3824 | fhAsyEtaNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3825 | outputContainer->Add(fhAsyEtaNLocMax2[i][j]) ; | |
3826 | ||
3827 | fhAsyEtaNLocMaxN[i][j] = new TH2F(Form("hAsyEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3828 | Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()), | |
3829 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3830 | fhAsyEtaNLocMaxN[i][j] ->SetYTitle("Asymmetry"); | |
3831 | fhAsyEtaNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3832 | outputContainer->Add(fhAsyEtaNLocMaxN[i][j]) ; | |
3833 | ||
3834 | if(fFillNCellHisto) | |
3835 | { | |
3836 | fhNCellEtaNLocMax1[i][j] = new TH2F(Form("hNCellEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3837 | Form("n cells vs E, %s, for NLM = 1",ptype[i].Data()), | |
3838 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3839 | fhNCellEtaNLocMax1[i][j] ->SetYTitle("n cells"); | |
3840 | fhNCellEtaNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3841 | outputContainer->Add(fhNCellEtaNLocMax1[i][j]) ; | |
3842 | ||
3843 | fhNCellEtaNLocMax2[i][j] = new TH2F(Form("hNCellEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3844 | Form("n cells vs E, %s, for NLM = 2",ptype[i].Data()), | |
3845 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3846 | fhNCellEtaNLocMax2[i][j] ->SetYTitle("n cells"); | |
3847 | fhNCellEtaNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3848 | outputContainer->Add(fhNCellEtaNLocMax2[i][j]) ; | |
3849 | ||
3850 | fhNCellEtaNLocMaxN[i][j] = new TH2F(Form("hNCellEtaNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3851 | Form("n cells vs E, %s, for NLM > 2",ptype[i].Data()), | |
3852 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
3853 | fhNCellEtaNLocMaxN[i][j] ->SetYTitle("n cells"); | |
3854 | fhNCellEtaNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3855 | outputContainer->Add(fhNCellEtaNLocMaxN[i][j]) ; | |
3856 | ||
3857 | } | |
3858 | } | |
3859 | ||
3860 | if(fFillIdConvHisto) | |
3861 | { | |
3862 | fhM02ConNLocMax1[i][j] = new TH2F(Form("hM02ConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3863 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 1",ptype[i].Data()), | |
3864 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3865 | fhM02ConNLocMax1[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3866 | fhM02ConNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3867 | outputContainer->Add(fhM02ConNLocMax1[i][j]) ; | |
3868 | ||
3869 | fhM02ConNLocMax2[i][j] = new TH2F(Form("hM02ConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3870 | Form("#lambda_{0}^{2} vs E, %s, for NLM = 2",ptype[i].Data()), | |
3871 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3872 | fhM02ConNLocMax2[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3873 | fhM02ConNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3874 | outputContainer->Add(fhM02ConNLocMax2[i][j]) ; | |
3875 | ||
3876 | fhM02ConNLocMaxN[i][j] = new TH2F(Form("hM02ConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3877 | Form("#lambda_{0}^{2} vs E, %s, for NLM > 2",ptype[i].Data()), | |
3878 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
3879 | fhM02ConNLocMaxN[i][j] ->SetYTitle("#lambda_{0}^{2}"); | |
3880 | fhM02ConNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3881 | outputContainer->Add(fhM02ConNLocMaxN[i][j]) ; | |
3882 | ||
3883 | ||
3884 | fhMassConNLocMax1[i][j] = new TH2F(Form("hMassConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3885 | Form("Mass vs E, %s, for NLM = 1",ptype[i].Data()), | |
3886 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3887 | fhMassConNLocMax1[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3888 | fhMassConNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3889 | outputContainer->Add(fhMassConNLocMax1[i][j]) ; | |
3890 | ||
3891 | fhMassConNLocMax2[i][j] = new TH2F(Form("hMassConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3892 | Form("Mass vs E, %s, for NLM = 2",ptype[i].Data()), | |
3893 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3894 | fhMassConNLocMax2[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3895 | fhMassConNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3896 | outputContainer->Add(fhMassConNLocMax2[i][j]) ; | |
3897 | ||
3898 | fhMassConNLocMaxN[i][j] = new TH2F(Form("hMassConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3899 | Form("Mass vs E, %s, for NLM > 2",ptype[i].Data()), | |
3900 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3901 | fhMassConNLocMaxN[i][j] ->SetYTitle("Mass (GeV/c^{2})"); | |
3902 | fhMassConNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3903 | outputContainer->Add(fhMassConNLocMaxN[i][j]) ; | |
3904 | ||
3905 | fhAsyConNLocMax1[i][j] = new TH2F(Form("hAsyConNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
3906 | Form("Asymmetry vs E, %s, for NLM = 1",ptype[i].Data()), | |
3907 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3908 | fhAsyConNLocMax1[i][j] ->SetYTitle("Asymmetry"); | |
3909 | fhAsyConNLocMax1[i][j] ->SetXTitle("E (GeV)"); | |
3910 | outputContainer->Add(fhAsyConNLocMax1[i][j]) ; | |
3911 | ||
3912 | fhAsyConNLocMax2[i][j] = new TH2F(Form("hAsyConNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
3913 | Form("Asymmetry vs E, %s, for NLM = 2",ptype[i].Data()), | |
3914 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3915 | fhAsyConNLocMax2[i][j] ->SetYTitle("Asymmetry"); | |
3916 | fhAsyConNLocMax2[i][j] ->SetXTitle("E (GeV)"); | |
3917 | outputContainer->Add(fhAsyConNLocMax2[i][j]) ; | |
3918 | ||
3919 | fhAsyConNLocMaxN[i][j] = new TH2F(Form("hAsyConNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
3920 | Form("Asymmetry vs E, %s, for NLM > 2",ptype[i].Data()), | |
3921 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
3922 | fhAsyConNLocMaxN[i][j] ->SetYTitle("Asymmetry"); | |
3923 | fhAsyConNLocMaxN[i][j] ->SetXTitle("E (GeV)"); | |
3924 | outputContainer->Add(fhAsyConNLocMaxN[i][j]) ; | |
3925 | ||
3926 | } | |
e671adc2 | 3927 | |
5c46c992 | 3928 | } // matched, not matched |
3929 | ||
19391b8c | 3930 | if(fFillEbinHisto) |
3931 | { | |
883411b2 | 3932 | for(Int_t j = 0; j < 4; j++) |
19391b8c | 3933 | { |
53f2c382 | 3934 | |
fc01318e | 3935 | fhMassSplitEFractionNLocMax1Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax1%sEbin%d",pname[i].Data(),j), |
be894c1d | 3936 | Form("Invariant mass of 2 highest energy cells vs (E1+E2)/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3937 | 120,0,1.2,mbins,mmin,mmax); |
fc01318e | 3938 | fhMassSplitEFractionNLocMax1Ebin[i][j]->SetYTitle("M (GeV/c^{2})"); |
3939 | fhMassSplitEFractionNLocMax1Ebin[i][j]->SetXTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
19391b8c | 3940 | outputContainer->Add(fhMassSplitEFractionNLocMax1Ebin[i][j]) ; |
883411b2 | 3941 | |
fc01318e | 3942 | fhMassSplitEFractionNLocMax2Ebin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMax2%sEbin%d",pname[i].Data(),j), |
be894c1d | 3943 | Form("Invariant mass of 2 local maxima cells vs (E1+E2)/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3944 | 120,0,1.2,mbins,mmin,mmax); |
fc01318e | 3945 | fhMassSplitEFractionNLocMax2Ebin[i][j]->SetYTitle("M (GeV/c^{2})"); |
3946 | fhMassSplitEFractionNLocMax2Ebin[i][j]->SetXTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
19391b8c | 3947 | outputContainer->Add(fhMassSplitEFractionNLocMax2Ebin[i][j]) ; |
883411b2 | 3948 | |
fc01318e | 3949 | fhMassSplitEFractionNLocMaxNEbin[i][j] = new TH2F(Form("hMassSplitEFractionNLocMaxN%sEbin%d",pname[i].Data(),j), |
be894c1d | 3950 | Form("Invariant mass of N>2 local maxima cells vs (E1+E2)/Ecluster, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3951 | 120,0,1.2,mbins,mmin,mmax); |
fc01318e | 3952 | fhMassSplitEFractionNLocMaxNEbin[i][j]->SetYTitle("M (GeV/c^{2})"); |
3953 | fhMassSplitEFractionNLocMaxNEbin[i][j]->SetXTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
19391b8c | 3954 | outputContainer->Add(fhMassSplitEFractionNLocMaxNEbin[i][j]) ; |
883411b2 | 3955 | |
b2e375c7 | 3956 | if(i>0 && fFillMCHisto) // skip first entry in array, general case not filled |
fc01318e | 3957 | { |
3958 | fhMCGenFracNLocMaxEbin[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3959 | Form("NLM vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3960 | 200,0,2,nMaxBins,0,nMaxBins); |
fc01318e | 3961 | fhMCGenFracNLocMaxEbin[i][j]->SetYTitle("NLM"); |
fb51265c | 3962 | fhMCGenFracNLocMaxEbin[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3963 | outputContainer->Add(fhMCGenFracNLocMaxEbin[i][j]) ; |
fc01318e | 3964 | |
3965 | fhMCGenFracNLocMaxEbinMatched[i][j] = new TH2F(Form("hMCGenFracNLocMax%sEbin%dMatched",pname[i].Data(),j), | |
be894c1d | 3966 | Form("NLM vs E, %s, %s, matched to a track",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3967 | 200,0,2,nMaxBins,0,nMaxBins); |
fc01318e | 3968 | fhMCGenFracNLocMaxEbinMatched[i][j]->SetYTitle("NLM"); |
fb51265c | 3969 | fhMCGenFracNLocMaxEbinMatched[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3970 | outputContainer->Add(fhMCGenFracNLocMaxEbinMatched[i][j]) ; |
fc01318e | 3971 | |
3972 | fhMassMCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax1%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3973 | Form("Invariant mass of 2 highest energy cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3974 | 200,0,2,mbins,mmin,mmax); |
fc01318e | 3975 | fhMassMCGenFracNLocMax1Ebin[i][j]->SetYTitle("M (GeV/c^{2})"); |
fb51265c | 3976 | fhMassMCGenFracNLocMax1Ebin[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3977 | outputContainer->Add(fhMassMCGenFracNLocMax1Ebin[i][j]) ; |
fc01318e | 3978 | |
3979 | fhMassMCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hMassMCGenFracNLocMax2%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3980 | Form("Invariant mass of 2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3981 | 200,0,2,mbins,mmin,mmax); |
fc01318e | 3982 | fhMassMCGenFracNLocMax2Ebin[i][j]->SetYTitle("M (GeV/c^{2})"); |
fb51265c | 3983 | fhMassMCGenFracNLocMax2Ebin[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3984 | outputContainer->Add(fhMassMCGenFracNLocMax2Ebin[i][j]) ; |
fc01318e | 3985 | |
3986 | fhMassMCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hMassMCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3987 | Form("Invariant mass of N>2 local maxima cells vs E, %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3988 | 200,0,2,mbins,mmin,mmax); |
fc01318e | 3989 | fhMassMCGenFracNLocMaxNEbin[i][j]->SetYTitle("M (GeV/c^{2})"); |
fb51265c | 3990 | fhMassMCGenFracNLocMaxNEbin[i][j]->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3991 | outputContainer->Add(fhMassMCGenFracNLocMaxNEbin[i][j]) ; |
fc01318e | 3992 | |
3993 | fhM02MCGenFracNLocMax1Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax1%sEbin%d",pname[i].Data(),j), | |
be894c1d | 3994 | Form("#lambda_{0}^{2} vs E for N max = 1 %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 3995 | 200,0,2,ssbins,ssmin,ssmax); |
fc01318e | 3996 | fhM02MCGenFracNLocMax1Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
fb51265c | 3997 | fhM02MCGenFracNLocMax1Ebin[i][j] ->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 3998 | outputContainer->Add(fhM02MCGenFracNLocMax1Ebin[i][j]) ; |
fc01318e | 3999 | |
4000 | fhM02MCGenFracNLocMax2Ebin[i][j] = new TH2F(Form("hM02MCGenFracNLocMax2%sEbin%d",pname[i].Data(),j), | |
be894c1d | 4001 | Form("#lambda_{0}^{2} vs E for N max = 2 %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 4002 | 200,0,2,ssbins,ssmin,ssmax); |
fc01318e | 4003 | fhM02MCGenFracNLocMax2Ebin[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
fb51265c | 4004 | fhM02MCGenFracNLocMax2Ebin[i][j] ->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 4005 | outputContainer->Add(fhM02MCGenFracNLocMax2Ebin[i][j]) ; |
fc01318e | 4006 | |
4007 | fhM02MCGenFracNLocMaxNEbin[i][j] = new TH2F(Form("hM02MCGenFracNLocMaxN%sEbin%d",pname[i].Data(),j), | |
be894c1d | 4008 | Form("#lambda_{0}^{2} vs E for N max > 2 %s, %s",ptype[i].Data(),sEBin[j].Data()), |
19391b8c | 4009 | 200,0,2,ssbins,ssmin,ssmax); |
fc01318e | 4010 | fhM02MCGenFracNLocMaxNEbin[i][j] ->SetYTitle("#lambda_{0}^{2}"); |
fb51265c | 4011 | fhM02MCGenFracNLocMaxNEbin[i][j] ->SetXTitle("E_{gen} / E_{reco}"); |
19391b8c | 4012 | outputContainer->Add(fhM02MCGenFracNLocMaxNEbin[i][j]) ; |
fc01318e | 4013 | } |
883411b2 | 4014 | } |
19391b8c | 4015 | } |
5c46c992 | 4016 | } // MC particle list |
1253480f | 4017 | |
4018 | if(fFillHighMultHisto) | |
4019 | { | |
4020 | // E vs centrality | |
4021 | ||
4022 | fhCentralityPi0NLocMax1 = new TH2F("hCentralityPi0NLocMax1", | |
4023 | "E vs Centrality, selected pi0 cluster with NLM=1", | |
4024 | nptbins,ptmin,ptmax,100,0,100); | |
4025 | fhCentralityPi0NLocMax1->SetYTitle("Centrality"); | |
4026 | fhCentralityPi0NLocMax1->SetXTitle("E (GeV)"); | |
4027 | outputContainer->Add(fhCentralityPi0NLocMax1) ; | |
4028 | ||
4029 | fhCentralityPi0NLocMax2 = new TH2F("hCentralityPi0NLocMax2", | |
4030 | "E vs Centrality, selected pi0 cluster with NLM=2", | |
4031 | nptbins,ptmin,ptmax,100,0,100); | |
4032 | fhCentralityPi0NLocMax2->SetYTitle("Centrality"); | |
4033 | fhCentralityPi0NLocMax2->SetXTitle("E (GeV)"); | |
4034 | outputContainer->Add(fhCentralityPi0NLocMax2) ; | |
4035 | ||
4036 | fhCentralityPi0NLocMaxN = new TH2F("hCentralityPi0NLocMaxN", | |
4037 | "E vs Centrality, selected pi0 cluster with NLM>1", | |
4038 | nptbins,ptmin,ptmax,100,0,100); | |
4039 | fhCentralityPi0NLocMaxN->SetYTitle("Centrality"); | |
4040 | fhCentralityPi0NLocMaxN->SetXTitle("E (GeV)"); | |
4041 | outputContainer->Add(fhCentralityPi0NLocMaxN) ; | |
4042 | ||
4043 | if(fFillIdEtaHisto) | |
4044 | { | |
4045 | fhCentralityEtaNLocMax1 = new TH2F("hCentralityEtaNLocMax1", | |
4046 | "E vs Centrality, selected pi0 cluster with NLM=1", | |
4047 | nptbins,ptmin,ptmax,100,0,100); | |
4048 | fhCentralityEtaNLocMax1->SetYTitle("Centrality"); | |
4049 | fhCentralityEtaNLocMax1->SetXTitle("E (GeV)"); | |
4050 | outputContainer->Add(fhCentralityEtaNLocMax1) ; | |
4051 | ||
4052 | fhCentralityEtaNLocMax2 = new TH2F("hCentralityEtaNLocMax2", | |
4053 | "E vs Centrality, selected pi0 cluster with NLM=2", | |
4054 | nptbins,ptmin,ptmax,100,0,100); | |
4055 | fhCentralityEtaNLocMax2->SetYTitle("Centrality"); | |
4056 | fhCentralityEtaNLocMax2->SetXTitle("E (GeV)"); | |
4057 | outputContainer->Add(fhCentralityEtaNLocMax2) ; | |
4058 | ||
4059 | fhCentralityEtaNLocMaxN = new TH2F("hCentralityEtaNLocMaxN", | |
4060 | "E vs Centrality, selected pi0 cluster with NLM>1", | |
4061 | nptbins,ptmin,ptmax,100,0,100); | |
4062 | fhCentralityEtaNLocMaxN->SetYTitle("Centrality"); | |
4063 | fhCentralityEtaNLocMaxN->SetXTitle("E (GeV)"); | |
4064 | outputContainer->Add(fhCentralityEtaNLocMaxN) ; | |
4065 | } | |
4066 | ||
4067 | // E vs Event plane angle | |
4068 | ||
4069 | fhEventPlanePi0NLocMax1 = new TH2F("hEventPlanePi0NLocMax1","E vs Event Plane Angle, selected pi0 cluster with NLM=1", | |
4070 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
4071 | fhEventPlanePi0NLocMax1->SetYTitle("Event Plane Angle (rad)"); | |
4072 | fhEventPlanePi0NLocMax1->SetXTitle("E (GeV)"); | |
4073 | outputContainer->Add(fhEventPlanePi0NLocMax1) ; | |
4074 | ||
4075 | fhEventPlanePi0NLocMax2 = new TH2F("hEventPlanePi0NLocMax2","E vs Event Plane Angle, selected pi0 cluster with NLM=2", | |
4076 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
4077 | fhEventPlanePi0NLocMax2->SetYTitle("Event Plane Angle (rad)"); | |
4078 | fhEventPlanePi0NLocMax2->SetXTitle("E (GeV)"); | |
4079 | outputContainer->Add(fhEventPlanePi0NLocMax2) ; | |
4080 | ||
4081 | fhEventPlanePi0NLocMaxN = new TH2F("hEventPlanePi0NLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1", | |
4082 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
4083 | fhEventPlanePi0NLocMaxN->SetYTitle("Event Plane Angle (rad)"); | |
4084 | fhEventPlanePi0NLocMaxN->SetXTitle("E (GeV)"); | |
4085 | outputContainer->Add(fhEventPlanePi0NLocMaxN) ; | |
4086 | ||
4087 | if(fFillIdEtaHisto) | |
4088 | { | |
4089 | fhEventPlaneEtaNLocMax1 = new TH2F("hEventPlaneEtaNLocMax1","E vs Event Plane Angle, selected pi0 cluster with NLM=1", | |
4090 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
4091 | fhEventPlaneEtaNLocMax1->SetYTitle("Event Plane Angle (rad)"); | |
4092 | fhEventPlaneEtaNLocMax1->SetXTitle("E (GeV)"); | |
4093 | outputContainer->Add(fhEventPlaneEtaNLocMax1) ; | |
4094 | ||
4095 | fhEventPlaneEtaNLocMax2 = new TH2F("hEventPlaneEtaNLocMax2","E vs Event Plane Angle, selected pi0 cluster with NLM=2", | |
4096 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
4097 | fhEventPlaneEtaNLocMax2->SetYTitle("Event Plane Angle (rad)"); | |
4098 | fhEventPlaneEtaNLocMax2->SetXTitle("E (GeV)"); | |
4099 | outputContainer->Add(fhEventPlaneEtaNLocMax2) ; | |
4100 | ||
4101 | fhEventPlaneEtaNLocMaxN = new TH2F("hEventPlaneEtaNLocMaxN","E vs Event Plane Angle, selected pi0 cluster with NLM>1", | |
4102 | nptbins,ptmin,ptmax,100,0,TMath::Pi()); | |
4103 | fhEventPlaneEtaNLocMaxN->SetYTitle("Event Plane Angle (rad)"); | |
4104 | fhEventPlaneEtaNLocMaxN->SetXTitle("E (GeV)"); | |
4105 | outputContainer->Add(fhEventPlaneEtaNLocMaxN) ; | |
4106 | } | |
4107 | } | |
17f5b4b6 | 4108 | |
19391b8c | 4109 | if(fFillEbinHisto) |
4110 | { | |
4111 | for(Int_t i = 0; i < 4; i++) | |
8e81c2cf | 4112 | { |
19391b8c | 4113 | fhMassM02NLocMax1Ebin[i] = new TH2F(Form("hMassM02NLocMax1Ebin%d",i), |
be894c1d | 4114 | Form("Invariant mass of split clusters vs #lambda_{0}^{2}, NLM=1, %s",sEBin[i].Data()), |
19391b8c | 4115 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
4116 | fhMassM02NLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4117 | fhMassM02NLocMax1Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
4118 | outputContainer->Add(fhMassM02NLocMax1Ebin[i]) ; | |
4119 | ||
4120 | fhMassM02NLocMax2Ebin[i] = new TH2F(Form("hMassM02NLocMax2Ebin%d",i), | |
be894c1d | 4121 | Form("Invariant mass of split clusters vs #lambda_{0}^{2}, NLM=2, %s",sEBin[i].Data()), |
19391b8c | 4122 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
4123 | fhMassM02NLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4124 | fhMassM02NLocMax2Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
4125 | outputContainer->Add(fhMassM02NLocMax2Ebin[i]) ; | |
4126 | ||
4127 | fhMassM02NLocMaxNEbin[i] = new TH2F(Form("hMassM02NLocMaxNEbin%d",i), | |
be894c1d | 4128 | Form("Invariant mass of split clusters vs vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()), |
19391b8c | 4129 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
4130 | fhMassM02NLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
4131 | fhMassM02NLocMaxNEbin[i]->SetXTitle("#lambda_{0}^{2}"); | |
4132 | outputContainer->Add(fhMassM02NLocMaxNEbin[i]) ; | |
4133 | ||
4134 | ||
4135 | fhMassAsyNLocMax1Ebin[i] = new TH2F(Form("hMassAsyNLocMax1Ebin%d",i), | |
be894c1d | 4136 | Form("Invariant mass of split clusters vs split asymmetry, NLM=1, %s",sEBin[i].Data()), |
19391b8c | 4137 | 200,-1,1,mbins,mmin,mmax); |
4138 | fhMassAsyNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4139 | fhMassAsyNLocMax1Ebin[i]->SetXTitle("asymmetry"); | |
4140 | outputContainer->Add(fhMassAsyNLocMax1Ebin[i]) ; | |
4141 | ||
4142 | fhMassAsyNLocMax2Ebin[i] = new TH2F(Form("hMassAsyNLocMax2Ebin%d",i), | |
be894c1d | 4143 | Form("Invariant mass of split clusters vs split asymmetry, NLM=2, %s",sEBin[i].Data()), |
19391b8c | 4144 | 200,-1,1,mbins,mmin,mmax); |
4145 | fhMassAsyNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4146 | fhMassAsyNLocMax2Ebin[i]->SetXTitle("asymmetry"); | |
4147 | outputContainer->Add(fhMassAsyNLocMax2Ebin[i]) ; | |
4148 | ||
4149 | fhMassAsyNLocMaxNEbin[i] = new TH2F(Form("hMassAsyNLocMaxNEbin%d",i), | |
be894c1d | 4150 | Form("Invariant mass of split clusters vs split asymmetry, NLM>2, %s",sEBin[i].Data()), |
19391b8c | 4151 | 200,-1,1,mbins,mmin,mmax); |
4152 | fhMassAsyNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
4153 | fhMassAsyNLocMaxNEbin[i]->SetXTitle("asymmetry"); | |
4154 | outputContainer->Add(fhMassAsyNLocMaxNEbin[i]) ; | |
4155 | ||
4156 | ||
b2e375c7 | 4157 | if(IsDataMC() && fFillMCHisto) |
19391b8c | 4158 | { |
4159 | fhMCAsymM02NLocMax1MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax1MCPi0Ebin%d",i), | |
be894c1d | 4160 | Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM=1, %s",sEBin[i].Data()), |
19391b8c | 4161 | ssbins,ssmin,ssmax,100,0,1); |
4162 | fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetYTitle("Decay asymmetry"); | |
4163 | fhMCAsymM02NLocMax1MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
4164 | outputContainer->Add(fhMCAsymM02NLocMax1MCPi0Ebin[i]) ; | |
4165 | ||
4166 | fhMCAsymM02NLocMax2MCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMax2MCPi0Ebin%d",i), | |
be894c1d | 4167 | Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM=2, %s",sEBin[i].Data()), |
19391b8c | 4168 | ssbins,ssmin,ssmax,100,0,1); |
4169 | fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetYTitle("Decay asymmetry"); | |
4170 | fhMCAsymM02NLocMax2MCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
4171 | outputContainer->Add(fhMCAsymM02NLocMax2MCPi0Ebin[i]) ; | |
4172 | ||
4173 | fhMCAsymM02NLocMaxNMCPi0Ebin[i] = new TH2F(Form("hMCAsymM02NLocMaxNMCPi0Ebin%d",i), | |
be894c1d | 4174 | Form("Asymmetry of MC #pi^{0} vs #lambda_{0}^{2}, NLM>2, %s",sEBin[i].Data()), |
19391b8c | 4175 | ssbins,ssmin,ssmax,100,0,1); |
4176 | fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetYTitle("Decay asymmetry"); | |
4177 | fhMCAsymM02NLocMaxNMCPi0Ebin[i]->SetXTitle("#lambda_{0}^{2}"); | |
4178 | outputContainer->Add(fhMCAsymM02NLocMaxNMCPi0Ebin[i]) ; | |
4179 | ||
4180 | ||
4181 | fhAsyMCGenRecoNLocMax1EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax1Ebin%dPi0",i), | |
be894c1d | 4182 | Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM=1, %s",sEBin[i].Data()), |
19391b8c | 4183 | 200,-1,1,200,-1,1); |
4184 | fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetYTitle("M (GeV/c^{2})"); | |
4185 | fhAsyMCGenRecoNLocMax1EbinPi0[i]->SetXTitle("asymmetry"); | |
4186 | outputContainer->Add(fhAsyMCGenRecoNLocMax1EbinPi0[i]) ; | |
4187 | ||
4188 | fhAsyMCGenRecoNLocMax2EbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMax2Ebin%dPi0",i), | |
be894c1d | 4189 | Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM=2, %s",sEBin[i].Data()), |
19391b8c | 4190 | 200,-1,1,200,-1,1); |
4191 | fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetYTitle("M (GeV/c^{2})"); | |
4192 | fhAsyMCGenRecoNLocMax2EbinPi0[i]->SetXTitle("asymmetry"); | |
4193 | outputContainer->Add(fhAsyMCGenRecoNLocMax2EbinPi0[i]) ; | |
4194 | ||
4195 | fhAsyMCGenRecoNLocMaxNEbinPi0[i] = new TH2F(Form("hAsyMCGenRecoNLocMaxNEbin%dPi0",i), | |
be894c1d | 4196 | Form("Generated vs reconstructed asymmetry of split clusters from pi0, NLM>2, %s",sEBin[i].Data()), |
19391b8c | 4197 | 200,-1,1,200,-1,1); |
4198 | fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetYTitle("M (GeV/c^{2})"); | |
4199 | fhAsyMCGenRecoNLocMaxNEbinPi0[i]->SetXTitle("asymmetry"); | |
4200 | outputContainer->Add(fhAsyMCGenRecoNLocMaxNEbinPi0[i]) ; | |
4201 | } | |
4202 | ||
4203 | if(fFillSSExtraHisto) | |
4204 | { | |
4205 | fhMassDispEtaNLocMax1Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax1Ebin%d",i), | |
be894c1d | 4206 | Form("Invariant mass of 2 highest energy cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()), |
19391b8c | 4207 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
4208 | fhMassDispEtaNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4209 | fhMassDispEtaNLocMax1Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
4210 | outputContainer->Add(fhMassDispEtaNLocMax1Ebin[i]) ; | |
4211 | ||
4212 | fhMassDispEtaNLocMax2Ebin[i] = new TH2F(Form("hMassDispEtaNLocMax2Ebin%d",i), | |
be894c1d | 4213 | Form("Invariant mass of 2 local maxima cells #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()), |
19391b8c | 4214 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
4215 | fhMassDispEtaNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4216 | fhMassDispEtaNLocMax2Ebin[i]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
4217 | outputContainer->Add(fhMassDispEtaNLocMax2Ebin[i]) ; | |
4218 | ||
4219 | fhMassDispEtaNLocMaxNEbin[i] = new TH2F(Form("hMassDispEtaNLocMaxNEbin%d",i), | |
be894c1d | 4220 | Form("Invariant mass of N>2 local maxima cells vs #sigma_{#eta #eta}^{2}, %s",sEBin[i].Data()), |
19391b8c | 4221 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
4222 | fhMassDispEtaNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
4223 | fhMassDispEtaNLocMaxNEbin[i]->SetXTitle("#sigma_{#eta #eta}^{2}"); | |
4224 | outputContainer->Add(fhMassDispEtaNLocMaxNEbin[i]) ; | |
4225 | ||
4226 | fhMassDispPhiNLocMax1Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax1Ebin%d",i), | |
be894c1d | 4227 | Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()), |
19391b8c | 4228 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
4229 | fhMassDispPhiNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4230 | fhMassDispPhiNLocMax1Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
4231 | outputContainer->Add(fhMassDispPhiNLocMax1Ebin[i]) ; | |
4232 | ||
4233 | fhMassDispPhiNLocMax2Ebin[i] = new TH2F(Form("hMassDispPhiNLocMax2Ebin%d",i), | |
be894c1d | 4234 | Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()), |
19391b8c | 4235 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
4236 | fhMassDispPhiNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4237 | fhMassDispPhiNLocMax2Ebin[i]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
4238 | outputContainer->Add(fhMassDispPhiNLocMax2Ebin[i]) ; | |
4239 | ||
4240 | fhMassDispPhiNLocMaxNEbin[i] = new TH2F(Form("hMassDispPhiNLocMaxNEbin%d",i), | |
be894c1d | 4241 | Form("Invariant mass of N>2 local maxima cells vs #sigma_{#phi #phi}^{2}, %s",sEBin[i].Data()), |
19391b8c | 4242 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
4243 | fhMassDispPhiNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
4244 | fhMassDispPhiNLocMaxNEbin[i]->SetXTitle("#sigma_{#phi #phi}^{2}"); | |
4245 | outputContainer->Add(fhMassDispPhiNLocMaxNEbin[i]) ; | |
4246 | ||
4247 | fhMassDispAsyNLocMax1Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax1Ebin%d",i), | |
be894c1d | 4248 | Form("Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()), |
19391b8c | 4249 | 200,-1,1,mbins,mmin,mmax); |
4250 | fhMassDispAsyNLocMax1Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4251 | fhMassDispAsyNLocMax1Ebin[i]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
4252 | outputContainer->Add(fhMassDispAsyNLocMax1Ebin[i]) ; | |
4253 | ||
4254 | fhMassDispAsyNLocMax2Ebin[i] = new TH2F(Form("hMassDispAsyNLocMax2Ebin%d",i), | |
be894c1d | 4255 | Form("Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()), |
19391b8c | 4256 | 200,-1,1,mbins,mmin,mmax); |
4257 | fhMassDispAsyNLocMax2Ebin[i]->SetYTitle("M (GeV/c^{2})"); | |
4258 | fhMassDispAsyNLocMax2Ebin[i]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
4259 | outputContainer->Add(fhMassDispAsyNLocMax2Ebin[i]) ; | |
4260 | ||
4261 | fhMassDispAsyNLocMaxNEbin[i] = new TH2F(Form("hMassDispAsyNLocMaxNEbin%d",i), | |
be894c1d | 4262 | Form("Invariant mass of N>2 local maxima cells vs A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), %s",sEBin[i].Data()), |
19391b8c | 4263 | 200,-1,1,mbins,mmin,mmax); |
4264 | fhMassDispAsyNLocMaxNEbin[i]->SetYTitle("M (GeV/c^{2})"); | |
4265 | fhMassDispAsyNLocMaxNEbin[i]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})"); | |
4266 | outputContainer->Add(fhMassDispAsyNLocMaxNEbin[i]) ; | |
4267 | } | |
8e81c2cf | 4268 | } |
19391b8c | 4269 | } |
1253480f | 4270 | |
c7e9a4e9 | 4271 | if(IsDataMC() && fFillMCHisto && (asyOn || m02On)) |
c8710850 | 4272 | { |
4273 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax1MCPi0", | |
4274 | "E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 1 MC Pi0, after M02 and Asym cut", | |
4275 | nptbins,ptmin,ptmax,200,0,2); | |
4276 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); | |
4277 | fhMCGenSplitEFracAfterCutsNLocMax1MCPi0 ->SetXTitle("E (GeV)"); | |
4278 | outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax1MCPi0) ; | |
4279 | ||
4280 | fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMax2MCPi0", | |
4281 | "E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max = 2 MC Pi0, after M02 and Asym cut", | |
4282 | nptbins,ptmin,ptmax,200,0,2); | |
4283 | fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); | |
4284 | fhMCGenSplitEFracAfterCutsNLocMax2MCPi0 ->SetXTitle("E (GeV)"); | |
4285 | outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMax2MCPi0) ; | |
4286 | ||
4287 | ||
4288 | fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenSplitEFracAfterCutsNLocMaxNMCPi0", | |
4289 | "E_{gen} / (E_{1 split}+E_{2 split}) vs E for N max > 2 MC Pi0, after M02 and Asym cut", | |
4290 | nptbins,ptmin,ptmax,200,0,2); | |
4291 | fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("E_{gen} / (E_{1 split}+E_{2 split})"); | |
4292 | fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("E (GeV)"); | |
4293 | outputContainer->Add(fhMCGenSplitEFracAfterCutsNLocMaxNMCPi0) ; | |
4294 | ||
4295 | fhMCGenFracAfterCutsNLocMax1MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax1MCPi0", | |
4296 | "E_{gen} / E_{reco} vs E_{reco} for N max = 1 MC Pi0, after M02 and Asym cut", | |
4297 | nptbins,ptmin,ptmax,200,0,2); | |
4298 | fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetYTitle("E_{gen} / E_{reco}"); | |
4299 | fhMCGenFracAfterCutsNLocMax1MCPi0 ->SetXTitle("E (GeV)"); | |
4300 | outputContainer->Add(fhMCGenFracAfterCutsNLocMax1MCPi0) ; | |
4301 | ||
4302 | fhMCGenFracAfterCutsNLocMax2MCPi0 = new TH2F("hMCGenFracAfterCutsNLocMax2MCPi0", | |
4303 | " E_{gen} / E_{reco} vs E_{reco} for N max = 2 MC Pi0, after M02 and Asym cut", | |
4304 | nptbins,ptmin,ptmax,200,0,2); | |
4305 | fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetYTitle("E_{gen} / E_{reco}"); | |
4306 | fhMCGenFracAfterCutsNLocMax2MCPi0 ->SetXTitle("E (GeV)"); | |
4307 | outputContainer->Add(fhMCGenFracAfterCutsNLocMax2MCPi0) ; | |
4308 | ||
4309 | ||
4310 | fhMCGenFracAfterCutsNLocMaxNMCPi0 = new TH2F("hMCGenFracAfterCutsNLocMaxNMCPi0", | |
4311 | " E_{gen} / E_{reco} vs E_{reco} for N max > 2 MC Pi0, after M02 and Asym cut", | |
4312 | nptbins,ptmin,ptmax,200,0,2); | |
4313 | fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetYTitle("E_{gen} / E_{reco}"); | |
4314 | fhMCGenFracAfterCutsNLocMaxNMCPi0 ->SetXTitle("E (GeV)"); | |
4315 | outputContainer->Add(fhMCGenFracAfterCutsNLocMaxNMCPi0) ; | |
4316 | ||
4317 | } | |
4318 | ||
8edbd100 | 4319 | if(fFillTMResidualHisto && fFillTMHisto) |
8e81c2cf | 4320 | { |
4321 | for(Int_t i = 0; i < n; i++) | |
4322 | { | |
4323 | ||
c8710850 | 4324 | fhTrackMatchedDEtaNLocMax1[i] = new TH2F |
4325 | (Form("hTrackMatchedDEtaNLocMax1%s",pname[i].Data()), | |
8e81c2cf | 4326 | Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), |
4327 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
c8710850 | 4328 | fhTrackMatchedDEtaNLocMax1[i]->SetYTitle("d#eta"); |
4329 | fhTrackMatchedDEtaNLocMax1[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4330 | |
c8710850 | 4331 | fhTrackMatchedDPhiNLocMax1[i] = new TH2F |
4332 | (Form("hTrackMatchedDPhiNLocMax1%s",pname[i].Data()), | |
8e81c2cf | 4333 | Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), |
4334 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
c8710850 | 4335 | fhTrackMatchedDPhiNLocMax1[i]->SetYTitle("d#phi (rad)"); |
4336 | fhTrackMatchedDPhiNLocMax1[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4337 | |
c8710850 | 4338 | outputContainer->Add(fhTrackMatchedDEtaNLocMax1[i]) ; |
4339 | outputContainer->Add(fhTrackMatchedDPhiNLocMax1[i]) ; | |
8e81c2cf | 4340 | |
c8710850 | 4341 | fhTrackMatchedDEtaNLocMax2[i] = new TH2F |
4342 | (Form("hTrackMatchedDEtaNLocMax2%s",pname[i].Data()), | |
8e81c2cf | 4343 | Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), |
4344 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
c8710850 | 4345 | fhTrackMatchedDEtaNLocMax2[i]->SetYTitle("d#eta"); |
4346 | fhTrackMatchedDEtaNLocMax2[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4347 | |
c8710850 | 4348 | fhTrackMatchedDPhiNLocMax2[i] = new TH2F |
4349 | (Form("hTrackMatchedDPhiNLocMax2%s",pname[i].Data()), | |
8e81c2cf | 4350 | Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), |
4351 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
c8710850 | 4352 | fhTrackMatchedDPhiNLocMax2[i]->SetYTitle("d#phi (rad)"); |
4353 | fhTrackMatchedDPhiNLocMax2[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4354 | |
c8710850 | 4355 | outputContainer->Add(fhTrackMatchedDEtaNLocMax2[i]) ; |
4356 | outputContainer->Add(fhTrackMatchedDPhiNLocMax2[i]) ; | |
8e81c2cf | 4357 | |
c8710850 | 4358 | fhTrackMatchedDEtaNLocMaxN[i] = new TH2F |
4359 | (Form("hTrackMatchedDEtaNLocMaxN%s",pname[i].Data()), | |
8e81c2cf | 4360 | Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), |
4361 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
c8710850 | 4362 | fhTrackMatchedDEtaNLocMaxN[i]->SetYTitle("d#eta"); |
4363 | fhTrackMatchedDEtaNLocMaxN[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4364 | |
c8710850 | 4365 | fhTrackMatchedDPhiNLocMaxN[i] = new TH2F |
4366 | (Form("hTrackMatchedDPhiNLocMaxN%s",pname[i].Data()), | |
8e81c2cf | 4367 | Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), |
4368 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
c8710850 | 4369 | fhTrackMatchedDPhiNLocMaxN[i]->SetYTitle("d#phi (rad)"); |
4370 | fhTrackMatchedDPhiNLocMaxN[i]->SetXTitle("E_{cluster} (GeV)"); | |
8e81c2cf | 4371 | |
c8710850 | 4372 | outputContainer->Add(fhTrackMatchedDEtaNLocMaxN[i]) ; |
b2e375c7 | 4373 | outputContainer->Add(fhTrackMatchedDPhiNLocMaxN[i]) ; |
883411b2 | 4374 | |
b2e375c7 | 4375 | fhTrackMatchedDEtaNLocMax1Pos[i] = new TH2F |
4376 | (Form("hTrackMatchedDEtaNLocMax1Pos%s",pname[i].Data()), | |
4377 | Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), | |
4378 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4379 | fhTrackMatchedDEtaNLocMax1Pos[i]->SetYTitle("d#eta"); | |
4380 | fhTrackMatchedDEtaNLocMax1Pos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4381 | ||
4382 | fhTrackMatchedDPhiNLocMax1Pos[i] = new TH2F | |
4383 | (Form("hTrackMatchedDPhiNLocMax1Pos%s",pname[i].Data()), | |
4384 | Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), | |
4385 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4386 | fhTrackMatchedDPhiNLocMax1Pos[i]->SetYTitle("d#phi (rad)"); | |
4387 | fhTrackMatchedDPhiNLocMax1Pos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4388 | ||
4389 | outputContainer->Add(fhTrackMatchedDEtaNLocMax1Pos[i]) ; | |
4390 | outputContainer->Add(fhTrackMatchedDPhiNLocMax1Pos[i]) ; | |
4391 | ||
4392 | fhTrackMatchedDEtaNLocMax2Pos[i] = new TH2F | |
4393 | (Form("hTrackMatchedDEtaNLocMax2Pos%s",pname[i].Data()), | |
4394 | Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), | |
4395 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4396 | fhTrackMatchedDEtaNLocMax2Pos[i]->SetYTitle("d#eta"); | |
4397 | fhTrackMatchedDEtaNLocMax2Pos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4398 | ||
4399 | fhTrackMatchedDPhiNLocMax2Pos[i] = new TH2F | |
4400 | (Form("hTrackMatchedDPhiNLocMax2Pos%s",pname[i].Data()), | |
4401 | Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), | |
4402 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4403 | fhTrackMatchedDPhiNLocMax2Pos[i]->SetYTitle("d#phi (rad)"); | |
4404 | fhTrackMatchedDPhiNLocMax2Pos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4405 | ||
4406 | outputContainer->Add(fhTrackMatchedDEtaNLocMax2Pos[i]) ; | |
4407 | outputContainer->Add(fhTrackMatchedDPhiNLocMax2Pos[i]) ; | |
4408 | ||
4409 | fhTrackMatchedDEtaNLocMaxNPos[i] = new TH2F | |
4410 | (Form("hTrackMatchedDEtaNLocMaxNPos%s",pname[i].Data()), | |
4411 | Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), | |
4412 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4413 | fhTrackMatchedDEtaNLocMaxNPos[i]->SetYTitle("d#eta"); | |
4414 | fhTrackMatchedDEtaNLocMaxNPos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4415 | ||
4416 | fhTrackMatchedDPhiNLocMaxNPos[i] = new TH2F | |
4417 | (Form("hTrackMatchedDPhiNLocMaxNPos%s",pname[i].Data()), | |
4418 | Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), | |
4419 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4420 | fhTrackMatchedDPhiNLocMaxNPos[i]->SetYTitle("d#phi (rad)"); | |
4421 | fhTrackMatchedDPhiNLocMaxNPos[i]->SetXTitle("E_{cluster} (GeV)"); | |
4422 | ||
4423 | outputContainer->Add(fhTrackMatchedDEtaNLocMaxNPos[i]) ; | |
4424 | outputContainer->Add(fhTrackMatchedDPhiNLocMaxNPos[i]) ; | |
4425 | ||
4426 | fhTrackMatchedDEtaNLocMax1Neg[i] = new TH2F | |
4427 | (Form("hTrackMatchedDEtaNLocMax1Neg%s",pname[i].Data()), | |
4428 | Form("d#eta of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), | |
4429 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4430 | fhTrackMatchedDEtaNLocMax1Neg[i]->SetYTitle("d#eta"); | |
4431 | fhTrackMatchedDEtaNLocMax1Neg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4432 | ||
4433 | fhTrackMatchedDPhiNLocMax1Neg[i] = new TH2F | |
4434 | (Form("hTrackMatchedDPhiNLocMax1Neg%s",pname[i].Data()), | |
4435 | Form("d#phi of cluster-track vs cluster energy, 1 Local Maxima, %s",ptype[i].Data()), | |
4436 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4437 | fhTrackMatchedDPhiNLocMax1Neg[i]->SetYTitle("d#phi (rad)"); | |
4438 | fhTrackMatchedDPhiNLocMax1Neg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4439 | ||
4440 | outputContainer->Add(fhTrackMatchedDEtaNLocMax1Neg[i]) ; | |
4441 | outputContainer->Add(fhTrackMatchedDPhiNLocMax1Neg[i]) ; | |
4442 | ||
4443 | fhTrackMatchedDEtaNLocMax2Neg[i] = new TH2F | |
4444 | (Form("hTrackMatchedDEtaNLocMax2Neg%s",pname[i].Data()), | |
4445 | Form("d#eta of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), | |
4446 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4447 | fhTrackMatchedDEtaNLocMax2Neg[i]->SetYTitle("d#eta"); | |
4448 | fhTrackMatchedDEtaNLocMax2Neg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4449 | ||
4450 | fhTrackMatchedDPhiNLocMax2Neg[i] = new TH2F | |
4451 | (Form("hTrackMatchedDPhiNLocMax2Neg%s",pname[i].Data()), | |
4452 | Form("d#phi of cluster-track vs cluster energy, 2 Local Maxima, %s",ptype[i].Data()), | |
4453 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4454 | fhTrackMatchedDPhiNLocMax2Neg[i]->SetYTitle("d#phi (rad)"); | |
4455 | fhTrackMatchedDPhiNLocMax2Neg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4456 | ||
4457 | outputContainer->Add(fhTrackMatchedDEtaNLocMax2Neg[i]) ; | |
4458 | outputContainer->Add(fhTrackMatchedDPhiNLocMax2Neg[i]) ; | |
4459 | ||
4460 | fhTrackMatchedDEtaNLocMaxNNeg[i] = new TH2F | |
4461 | (Form("hTrackMatchedDEtaNLocMaxNNeg%s",pname[i].Data()), | |
4462 | Form("d#eta of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), | |
4463 | nptbins,ptmin,ptmax,nresetabins,resetamin,resetamax); | |
4464 | fhTrackMatchedDEtaNLocMaxNNeg[i]->SetYTitle("d#eta"); | |
4465 | fhTrackMatchedDEtaNLocMaxNNeg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4466 | ||
4467 | fhTrackMatchedDPhiNLocMaxNNeg[i] = new TH2F | |
4468 | (Form("hTrackMatchedDPhiNLocMaxNNeg%s",pname[i].Data()), | |
4469 | Form("d#phi of cluster-track vs cluster energy, N>2 Local Maxima, %s",ptype[i].Data()), | |
4470 | nptbins,ptmin,ptmax,nresphibins,resphimin,resphimax); | |
4471 | fhTrackMatchedDPhiNLocMaxNNeg[i]->SetYTitle("d#phi (rad)"); | |
4472 | fhTrackMatchedDPhiNLocMaxNNeg[i]->SetXTitle("E_{cluster} (GeV)"); | |
4473 | ||
4474 | outputContainer->Add(fhTrackMatchedDEtaNLocMaxNNeg[i]) ; | |
4475 | outputContainer->Add(fhTrackMatchedDPhiNLocMaxNNeg[i]) ; | |
4476 | ||
4477 | } | |
4478 | } | |
4479 | ||
4480 | if(fFillAngleHisto) | |
4481 | { | |
0186b6a2 | 4482 | for(Int_t i = 0; i < n; i++) |
4483 | { | |
4484 | for(Int_t j = 0; j < nMatched; j++) | |
4485 | { | |
4486 | ||
0186b6a2 | 4487 | fhAnglePairNLocMax1[i][j] = new TH2F(Form("hAnglePairNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
4488 | Form("Opening angle split sub-clusters of cluster NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4489 | nptbins,ptmin,ptmax,200,0,0.2); | |
4490 | fhAnglePairNLocMax1[i][j]->SetYTitle("#alpha (rad)"); | |
4491 | fhAnglePairNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4492 | outputContainer->Add(fhAnglePairNLocMax1[i][j]) ; | |
4493 | ||
4494 | fhAnglePairNLocMax2[i][j] = new TH2F(Form("hAnglePairNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4495 | Form("Opening angle split sub-clusters of cluster NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4496 | nptbins,ptmin,ptmax,200,0,0.2); | |
4497 | fhAnglePairNLocMax2[i][j]->SetYTitle("#alpha (rad)"); | |
4498 | fhAnglePairNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4499 | outputContainer->Add(fhAnglePairNLocMax2[i][j]) ; | |
4500 | ||
4501 | fhAnglePairNLocMaxN[i][j] = new TH2F(Form("hAnglePairNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4502 | Form("Opening angle split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4503 | nptbins,ptmin,ptmax,200,0,0.2); | |
4504 | fhAnglePairNLocMaxN[i][j]->SetYTitle("#alpha (rad)"); | |
4505 | fhAnglePairNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4506 | outputContainer->Add(fhAnglePairNLocMaxN[i][j]) ; | |
4507 | ||
c7e9a4e9 | 4508 | if(asyOn || m02On) |
29555e96 | 4509 | { |
4510 | fhAnglePairAfterCutsNLocMax1[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4511 | Form("Opening angle split sub-clusters of cluster NLM=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4512 | nptbins,ptmin,ptmax,200,0,0.2); | |
4513 | fhAnglePairAfterCutsNLocMax1[i][j]->SetYTitle("#alpha (rad)"); | |
4514 | fhAnglePairAfterCutsNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4515 | outputContainer->Add(fhAnglePairAfterCutsNLocMax1[i][j]) ; | |
4516 | ||
4517 | fhAnglePairAfterCutsNLocMax2[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4518 | Form("Opening angle split sub-clusters of cluster, after cuts, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4519 | nptbins,ptmin,ptmax,200,0,0.2); | |
4520 | fhAnglePairAfterCutsNLocMax2[i][j]->SetYTitle("#alpha (rad)"); | |
4521 | fhAnglePairAfterCutsNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4522 | outputContainer->Add(fhAnglePairAfterCutsNLocMax2[i][j]) ; | |
4523 | ||
4524 | fhAnglePairAfterCutsNLocMaxN[i][j] = new TH2F(Form("hAnglePairAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4525 | Form("Opening angle split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4526 | nptbins,ptmin,ptmax,200,0,0.2); | |
4527 | fhAnglePairAfterCutsNLocMaxN[i][j]->SetYTitle("#alpha (rad)"); | |
4528 | fhAnglePairAfterCutsNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4529 | outputContainer->Add(fhAnglePairAfterCutsNLocMaxN[i][j]) ; | |
4530 | ||
4531 | } | |
4532 | ||
4533 | fhAnglePairPi0NLocMax1[i][j] = new TH2F(Form("hAnglePairPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4534 | Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4535 | nptbins,ptmin,ptmax,200,0,0.2); | |
4536 | fhAnglePairPi0NLocMax1[i][j]->SetYTitle("#alpha (rad)"); | |
4537 | fhAnglePairPi0NLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4538 | outputContainer->Add(fhAnglePairPi0NLocMax1[i][j]) ; | |
4539 | ||
4540 | fhAnglePairPi0NLocMax2[i][j] = new TH2F(Form("hAnglePairPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4541 | Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4542 | nptbins,ptmin,ptmax,200,0,0.2); | |
4543 | fhAnglePairPi0NLocMax2[i][j]->SetYTitle("#alpha (rad)"); | |
4544 | fhAnglePairPi0NLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4545 | outputContainer->Add(fhAnglePairPi0NLocMax2[i][j]) ; | |
4546 | ||
4547 | fhAnglePairPi0NLocMaxN[i][j] = new TH2F(Form("hAnglePairPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4548 | Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4549 | nptbins,ptmin,ptmax,200,0,0.2); | |
4550 | fhAnglePairPi0NLocMaxN[i][j]->SetYTitle("#alpha (rad)"); | |
4551 | fhAnglePairPi0NLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4552 | outputContainer->Add(fhAnglePairPi0NLocMaxN[i][j]) ; | |
4553 | ||
0186b6a2 | 4554 | fhAnglePairMassNLocMax1[i][j] = new TH2F(Form("hAnglePairMassNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
29555e96 | 4555 | Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=1 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()), |
0186b6a2 | 4556 | mbins,mmin,mmax,200,0,0.2); |
4557 | fhAnglePairMassNLocMax1[i][j]->SetXTitle("M (GeV/c^{2})"); | |
4558 | fhAnglePairMassNLocMax1[i][j]->SetYTitle("#alpha (rad)"); | |
4559 | outputContainer->Add(fhAnglePairMassNLocMax1[i][j]) ; | |
4560 | ||
29555e96 | 4561 | |
0186b6a2 | 4562 | fhAnglePairMassNLocMax2[i][j] = new TH2F(Form("hAnglePairMassNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), |
4563 | Form("Opening angle split sub-clusters of cluster NLM=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4564 | mbins,mmin,mmax,200,0,0.2); | |
4565 | fhAnglePairMassNLocMax2[i][j]->SetXTitle("M (GeV/c^{2})"); | |
4566 | fhAnglePairMassNLocMax2[i][j]->SetYTitle("#alpha (rad)"); | |
4567 | outputContainer->Add(fhAnglePairMassNLocMax2[i][j]) ; | |
4568 | ||
4569 | fhAnglePairMassNLocMaxN[i][j] = new TH2F(Form("hAnglePairMassNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4570 | Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4571 | mbins,mmin,mmax,200,0,0.2); | |
4572 | fhAnglePairMassNLocMaxN[i][j]->SetXTitle("M (GeV/c^{2})"); | |
4573 | fhAnglePairMassNLocMaxN[i][j]->SetYTitle("#alpha (rad)"); | |
4574 | outputContainer->Add(fhAnglePairMassNLocMaxN[i][j]) ; | |
d261ae67 | 4575 | |
4576 | ||
4577 | fhAnglePairM02NLocMax1[i][j] = new TH2F(Form("hAnglePairM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4578 | Form("Opening angle split sub-clusters of cluster, Pi0 ID, NLM=1 vs Mass for E > 15 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4579 | ssbins,ssmin,ssmax,200,0,0.2); | |
4580 | fhAnglePairM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}"); | |
4581 | fhAnglePairM02NLocMax1[i][j]->SetYTitle("#alpha (rad)"); | |
4582 | outputContainer->Add(fhAnglePairM02NLocMax1[i][j]) ; | |
4583 | ||
0186b6a2 | 4584 | |
d261ae67 | 4585 | fhAnglePairM02NLocMax2[i][j] = new TH2F(Form("hAnglePairM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), |
4586 | Form("Opening angle split sub-clusters of cluster NLM=2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4587 | ssbins,ssmin,ssmax,200,0,0.2); | |
4588 | fhAnglePairM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}"); | |
4589 | fhAnglePairM02NLocMax2[i][j]->SetYTitle("#alpha (rad)"); | |
4590 | outputContainer->Add(fhAnglePairM02NLocMax2[i][j]) ; | |
4591 | ||
4592 | fhAnglePairM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4593 | Form("Opening angle split sub-clusters of cluster NLM>2 vs Mass for E > 12 GeV, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4594 | ssbins,ssmin,ssmax,200,0,0.2); | |
4595 | fhAnglePairM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}"); | |
4596 | fhAnglePairM02NLocMaxN[i][j]->SetYTitle("#alpha (rad)"); | |
4597 | outputContainer->Add(fhAnglePairM02NLocMaxN[i][j]) ; | |
4598 | ||
4e5a94c5 | 4599 | fhAnglePairOverM02NLocMax1[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), |
4600 | Form("Opening angle split sub-clusters / M02 of cluster NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4601 | nptbins,ptmin,ptmax,200,0,0.2); | |
4602 | fhAnglePairOverM02NLocMax1[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}"); | |
4603 | fhAnglePairOverM02NLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4604 | outputContainer->Add(fhAnglePairOverM02NLocMax1[i][j]) ; | |
4605 | ||
4606 | fhAnglePairOverM02NLocMax2[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4607 | Form("Opening angle split sub-clusters / M02 of cluster NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4608 | nptbins,ptmin,ptmax,200,0,0.2); | |
4609 | fhAnglePairOverM02NLocMax2[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}"); | |
4610 | fhAnglePairOverM02NLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4611 | outputContainer->Add(fhAnglePairOverM02NLocMax2[i][j]) ; | |
4612 | ||
4613 | fhAnglePairOverM02NLocMaxN[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4614 | Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4615 | nptbins,ptmin,ptmax,200,0,0.2); | |
4616 | fhAnglePairOverM02NLocMaxN[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}"); | |
4617 | fhAnglePairOverM02NLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4618 | outputContainer->Add(fhAnglePairOverM02NLocMaxN[i][j]) ; | |
4619 | ||
4620 | ||
4621 | fhAnglePairOverM02NLocMax1Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax1Overlap0%s%s",pname[i].Data(),sMatched[j].Data()), | |
4622 | Form("Opening angle split sub-clusters / M02 of cluster NLM=1 vs pair Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4623 | nptbins,ptmin,ptmax,200,0,0.2); | |
4624 | fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}"); | |
4625 | fhAnglePairOverM02NLocMax1Overlap0[i][j]->SetXTitle("E (GeV)"); | |
4626 | outputContainer->Add(fhAnglePairOverM02NLocMax1Overlap0[i][j]) ; | |
4627 | ||
4628 | fhAnglePairOverM02NLocMax2Overlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMax2Overlap0%s%s",pname[i].Data(),sMatched[j].Data()), | |
4629 | Form("Opening angle split sub-clusters / M02 of cluster NLM=2 cells vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4630 | nptbins,ptmin,ptmax,200,0,0.2); | |
4631 | fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}"); | |
4632 | fhAnglePairOverM02NLocMax2Overlap0[i][j]->SetXTitle("E (GeV)"); | |
4633 | outputContainer->Add(fhAnglePairOverM02NLocMax2Overlap0[i][j]) ; | |
4634 | ||
4635 | fhAnglePairOverM02NLocMaxNOverlap0[i][j] = new TH2F(Form("hAnglePairOverM02NLocMaxNOverlap0%s%s",pname[i].Data(),sMatched[j].Data()), | |
4636 | Form("Opening angle split sub-clusters / M02 of cluster NLM>2 vs Energy, no overlap, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4637 | nptbins,ptmin,ptmax,200,0,0.2); | |
4638 | fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetYTitle("#alpha / #lambda_{0}^{2}"); | |
4639 | fhAnglePairOverM02NLocMaxNOverlap0[i][j]->SetXTitle("E (GeV)"); | |
4640 | outputContainer->Add(fhAnglePairOverM02NLocMaxNOverlap0[i][j]) ; | |
4641 | ||
4642 | ||
0186b6a2 | 4643 | } |
4644 | } | |
4645 | ||
4646 | if(IsDataMC()) | |
4647 | { | |
4648 | fhAnglePairPrimPi0RecoNLocMax1 = new TH2F("fhAnglePairPrimPi0RecoNLocMax1", | |
4649 | "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM=1", | |
4650 | nptbins,ptmin,ptmax,300,0,3); | |
4651 | fhAnglePairPrimPi0RecoNLocMax1->SetYTitle("#alpha_{reco} / #alpha_{gen}"); | |
4652 | fhAnglePairPrimPi0RecoNLocMax1->SetXTitle("E (GeV)"); | |
4653 | outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax1) ; | |
4654 | ||
4655 | fhAnglePairPrimPi0RecoNLocMax2 = new TH2F("fhAnglePairPrimPi0RecoNLocMax2", | |
4656 | "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM=2", | |
4657 | nptbins,ptmin,ptmax,300,0,3); | |
4658 | fhAnglePairPrimPi0RecoNLocMax2->SetYTitle("#alpha_{reco} / #alpha_{gen}"); | |
4659 | fhAnglePairPrimPi0RecoNLocMax2->SetXTitle("E (GeV)"); | |
4660 | outputContainer->Add(fhAnglePairPrimPi0RecoNLocMax2) ; | |
4661 | ||
4662 | fhAnglePairPrimPi0RecoNLocMaxN = new TH2F("fhAnglePairPrimPi0RecoNLocMaxN", | |
4663 | "Opening angle split neutral sub-clusters reconstructed / generated #pi^{0} vs pair Energy, NLM>2", | |
4664 | nptbins,ptmin,ptmax,300,0,3); | |
4665 | fhAnglePairPrimPi0RecoNLocMaxN->SetYTitle("#alpha_{reco} / #alpha_{gen}"); | |
4666 | fhAnglePairPrimPi0RecoNLocMaxN->SetXTitle("E (GeV)"); | |
4667 | outputContainer->Add(fhAnglePairPrimPi0RecoNLocMaxN) ; | |
4668 | ||
b2e375c7 | 4669 | |
0186b6a2 | 4670 | fhAnglePairPrimPi0vsRecoNLocMax1 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax1", |
4671 | "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 15 GeV, NLM=1", | |
4672 | 200,0,0.2,200,0,0.2); | |
29555e96 | 4673 | fhAnglePairPrimPi0vsRecoNLocMax1->SetYTitle("#alpha_{reco} (rad)"); |
4674 | fhAnglePairPrimPi0vsRecoNLocMax1->SetXTitle("#alpha_{gen} (rad)"); | |
0186b6a2 | 4675 | outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax1) ; |
4676 | ||
4677 | fhAnglePairPrimPi0vsRecoNLocMax2 = new TH2F("fhAnglePairPrimPi0vsRecoNLocMax2", | |
4678 | "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, NLM=2", | |
4679 | 200,0,0.2,200,0,0.2); | |
29555e96 | 4680 | fhAnglePairPrimPi0vsRecoNLocMax2->SetYTitle("#alpha_{reco} (rad)"); |
4681 | fhAnglePairPrimPi0vsRecoNLocMax2->SetXTitle("#alpha_{gen} (rad)"); | |
0186b6a2 | 4682 | outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMax2) ; |
4683 | ||
4684 | fhAnglePairPrimPi0vsRecoNLocMaxN = new TH2F("fhAnglePairPrimPi0vsRecoNLocMaxN", | |
4685 | "Opening angle split neutral sub-clusters reconstructed vs generated #pi^{0} for E > 10 GeV, NLM=2", | |
4686 | 200,0,0.2,200,0,0.2); | |
29555e96 | 4687 | fhAnglePairPrimPi0vsRecoNLocMaxN->SetYTitle("#alpha_{reco} (rad)"); |
4688 | fhAnglePairPrimPi0vsRecoNLocMaxN->SetXTitle("#alpha_{gen} (rad)"); | |
0186b6a2 | 4689 | outputContainer->Add(fhAnglePairPrimPi0vsRecoNLocMaxN) ; |
883411b2 | 4690 | |
4e5a94c5 | 4691 | |
4692 | fhAnglePairPrimPi0OverM02NLocMax1 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax1", | |
4693 | "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, NLM=1", | |
4694 | nptbins,ptmin,ptmax,200,0,0.2); | |
4695 | fhAnglePairPrimPi0OverM02NLocMax1->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}"); | |
4696 | fhAnglePairPrimPi0OverM02NLocMax1->SetXTitle("E (GeV)"); | |
4697 | outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax1) ; | |
4698 | ||
4699 | fhAnglePairPrimPi0OverM02NLocMax2 = new TH2F("fhAnglePairPrimPi0OverM02NLocMax2", | |
4700 | "Primary Opening angle split neutral sub-clusters reconstructed / Over vs cluster Energy, NLM=2", | |
4701 | nptbins,ptmin,ptmax,200,0,0.2); | |
4702 | fhAnglePairPrimPi0OverM02NLocMax2->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}"); | |
4703 | fhAnglePairPrimPi0OverM02NLocMax2->SetXTitle("E (GeV)"); | |
4704 | outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMax2) ; | |
4705 | ||
4706 | fhAnglePairPrimPi0OverM02NLocMaxN = new TH2F("fhAnglePairPrimPi0OverM02NLocMaxN", | |
4707 | "Primary Opening angle split neutral sub-clusters reconstructed / M02 vs cluster Energy, NLM>2", | |
4708 | nptbins,ptmin,ptmax,200,0,0.2); | |
4709 | fhAnglePairPrimPi0OverM02NLocMaxN->SetYTitle("#alpha_{gen} / #lambda_{0}^{2}"); | |
4710 | fhAnglePairPrimPi0OverM02NLocMaxN->SetXTitle("E (GeV)"); | |
4711 | outputContainer->Add(fhAnglePairPrimPi0OverM02NLocMaxN) ; | |
4712 | ||
883411b2 | 4713 | } |
992b14a7 | 4714 | } |
29555e96 | 4715 | |
4716 | // Same as asymmetry ... | |
4717 | if(fFillThetaStarHisto) | |
4718 | { | |
4719 | for(Int_t i = 0; i < n; i++) | |
4720 | { | |
4721 | for(Int_t j = 0; j < nMatched; j++) | |
4722 | { | |
4723 | ||
4724 | fhCosThStarNLocMax1[i][j] = new TH2F(Form("hCosThStarNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4725 | Form("cos(#theta^{*}) split sub-clusters of cluster NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4726 | nptbins,ptmin,ptmax,200,-1,1); | |
4727 | fhCosThStarNLocMax1[i][j]->SetYTitle("cos(#theta^{*})"); | |
4728 | fhCosThStarNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4729 | outputContainer->Add(fhCosThStarNLocMax1[i][j]) ; | |
4730 | ||
4731 | fhCosThStarNLocMax2[i][j] = new TH2F(Form("hCosThStarNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4732 | Form("cos(#theta^{*}) split sub-clusters of cluster NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4733 | nptbins,ptmin,ptmax,200,-1,1); | |
4734 | fhCosThStarNLocMax2[i][j]->SetYTitle("cos(#theta^{*})"); | |
4735 | fhCosThStarNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4736 | outputContainer->Add(fhCosThStarNLocMax2[i][j]) ; | |
4737 | ||
4738 | fhCosThStarNLocMaxN[i][j] = new TH2F(Form("hCosThStarNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4739 | Form("cos(#theta^{*}) split sub-clusters of cluster NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4740 | nptbins,ptmin,ptmax,200,-1,1); | |
4741 | fhCosThStarNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})"); | |
4742 | fhCosThStarNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4743 | outputContainer->Add(fhCosThStarNLocMaxN[i][j]) ; | |
4744 | ||
c7e9a4e9 | 4745 | if(asyOn || m02On) |
29555e96 | 4746 | { |
4747 | fhCosThStarAfterCutsNLocMax1[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4748 | Form("cos(#theta^{*}) split sub-clusters of cluster NLM=1, after cuts, vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4749 | nptbins,ptmin,ptmax,200,-1,1); | |
4750 | fhCosThStarAfterCutsNLocMax1[i][j]->SetYTitle("cos(#theta^{*})"); | |
4751 | fhCosThStarAfterCutsNLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4752 | outputContainer->Add(fhCosThStarAfterCutsNLocMax1[i][j]) ; | |
4753 | ||
4754 | fhCosThStarAfterCutsNLocMax2[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4755 | Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4756 | nptbins,ptmin,ptmax,200,-1,1); | |
4757 | fhCosThStarAfterCutsNLocMax2[i][j]->SetYTitle("cos(#theta^{*})"); | |
4758 | fhCosThStarAfterCutsNLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4759 | outputContainer->Add(fhCosThStarAfterCutsNLocMax2[i][j]) ; | |
4760 | ||
4761 | fhCosThStarAfterCutsNLocMaxN[i][j] = new TH2F(Form("hCosThStarAfterCutsNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4762 | Form("cos(#theta^{*}) split sub-clusters of cluster, after cuts, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4763 | nptbins,ptmin,ptmax,200,-1,1); | |
4764 | fhCosThStarAfterCutsNLocMaxN[i][j]->SetYTitle("cos(#theta^{*})"); | |
4765 | fhCosThStarAfterCutsNLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4766 | outputContainer->Add(fhCosThStarAfterCutsNLocMaxN[i][j]) ; | |
4767 | ||
4768 | } | |
4769 | ||
4770 | fhCosThStarPi0NLocMax1[i][j] = new TH2F(Form("hCosThStarPi0NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()), | |
4771 | Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM=1 vs pair Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4772 | nptbins,ptmin,ptmax,200,-1,1); | |
4773 | fhCosThStarPi0NLocMax1[i][j]->SetYTitle("cos(#theta^{*})"); | |
4774 | fhCosThStarPi0NLocMax1[i][j]->SetXTitle("E (GeV)"); | |
4775 | outputContainer->Add(fhCosThStarPi0NLocMax1[i][j]) ; | |
4776 | ||
4777 | fhCosThStarPi0NLocMax2[i][j] = new TH2F(Form("hCosThStarPi0NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()), | |
4778 | Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM=2 cells vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4779 | nptbins,ptmin,ptmax,200,-1,1); | |
4780 | fhCosThStarPi0NLocMax2[i][j]->SetYTitle("cos(#theta^{*})"); | |
4781 | fhCosThStarPi0NLocMax2[i][j]->SetXTitle("E (GeV)"); | |
4782 | outputContainer->Add(fhCosThStarPi0NLocMax2[i][j]) ; | |
4783 | ||
4784 | fhCosThStarPi0NLocMaxN[i][j] = new TH2F(Form("hCosThStarPi0NLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()), | |
4785 | Form("cos(#theta^{*}) split sub-clusters of cluster, Pi0 ID, NLM>2 vs Energy, %s, %s",ptype[i].Data(),sMatched[j].Data()), | |
4786 | nptbins,ptmin,ptmax,200,-1,1); | |
4787 | fhCosThStarPi0NLocMaxN[i][j]->SetYTitle("cos(#theta^{*})"); | |
4788 | fhCosThStarPi0NLocMaxN[i][j]->SetXTitle("E (GeV)"); | |
4789 | outputContainer->Add(fhCosThStarPi0NLocMaxN[i][j]) ; | |
4790 | ||
4791 | } | |
4792 | } | |
4793 | } | |
4794 | ||
992b14a7 | 4795 | |
8edbd100 | 4796 | for(Int_t j = 0; j < nMatched; j++) |
17f5b4b6 | 4797 | { |
4798 | fhSplitEFractionvsAsyNLocMax1[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax1%s",sMatched[j].Data()), | |
4799 | Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max = 1, E>12, %s",sMatched[j].Data()), | |
4800 | 100,-1,1,120,0,1.2); | |
4801 | fhSplitEFractionvsAsyNLocMax1[j] ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})"); | |
4802 | fhSplitEFractionvsAsyNLocMax1[j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
4803 | outputContainer->Add(fhSplitEFractionvsAsyNLocMax1[j]) ; | |
4804 | ||
4805 | fhSplitEFractionvsAsyNLocMax2[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMax2%s",sMatched[j].Data()), | |
4806 | Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max = 2,E>12, %s",sMatched[j].Data()), | |
4807 | 100,-1,1,120,0,1.2); | |
4808 | fhSplitEFractionvsAsyNLocMax2[j] ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})"); | |
4809 | fhSplitEFractionvsAsyNLocMax2[j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
4810 | outputContainer->Add(fhSplitEFractionvsAsyNLocMax2[j]) ; | |
4811 | ||
4812 | fhSplitEFractionvsAsyNLocMaxN[j] = new TH2F(Form("hSplitEFractionvsAsyNLocMaxN%s",sMatched[j].Data()), | |
4813 | Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max > 2, E>12, %s",sMatched[j].Data()), | |
4814 | 100,-1,1,120,0,1.2); | |
4815 | fhSplitEFractionvsAsyNLocMaxN[j] ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})"); | |
4816 | fhSplitEFractionvsAsyNLocMaxN[j] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); | |
4817 | outputContainer->Add(fhSplitEFractionvsAsyNLocMaxN[j]) ; | |
e671adc2 | 4818 | } |
9554fc65 | 4819 | |
1253480f | 4820 | |
9554fc65 | 4821 | fhClusterEtaPhiNLocMax1 = new TH2F |
4822 | ("hClusterEtaPhiNLocMax1","Neutral Clusters with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4823 | fhClusterEtaPhiNLocMax1->SetYTitle("#phi (rad)"); | |
4824 | fhClusterEtaPhiNLocMax1->SetXTitle("#eta"); | |
4825 | outputContainer->Add(fhClusterEtaPhiNLocMax1) ; | |
1253480f | 4826 | |
9554fc65 | 4827 | fhClusterEtaPhiNLocMax2 = new TH2F |
4828 | ("hClusterEtaPhiNLocMax2","Neutral Clusters with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4829 | fhClusterEtaPhiNLocMax2->SetYTitle("#phi (rad)"); | |
4830 | fhClusterEtaPhiNLocMax2->SetXTitle("#eta"); | |
4831 | outputContainer->Add(fhClusterEtaPhiNLocMax2) ; | |
4832 | ||
4833 | fhClusterEtaPhiNLocMaxN = new TH2F | |
4834 | ("hClusterEtaPhiNLocMaxN","Neutral Clusters with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4835 | fhClusterEtaPhiNLocMaxN->SetYTitle("#phi (rad)"); | |
4836 | fhClusterEtaPhiNLocMaxN->SetXTitle("#eta"); | |
4837 | outputContainer->Add(fhClusterEtaPhiNLocMaxN) ; | |
4838 | ||
4839 | fhPi0EtaPhiNLocMax1 = new TH2F | |
4840 | ("hPi0EtaPhiNLocMax1","Selected #pi^{0}'s with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4841 | fhPi0EtaPhiNLocMax1->SetYTitle("#phi (rad)"); | |
4842 | fhPi0EtaPhiNLocMax1->SetXTitle("#eta"); | |
4843 | outputContainer->Add(fhPi0EtaPhiNLocMax1) ; | |
4844 | ||
4845 | fhPi0EtaPhiNLocMax2 = new TH2F | |
4846 | ("hPi0EtaPhiNLocMax2","Selected #pi^{0}'s with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4847 | fhPi0EtaPhiNLocMax2->SetYTitle("#phi (rad)"); | |
4848 | fhPi0EtaPhiNLocMax2->SetXTitle("#eta"); | |
4849 | outputContainer->Add(fhPi0EtaPhiNLocMax2) ; | |
4850 | ||
4851 | fhPi0EtaPhiNLocMaxN = new TH2F | |
4852 | ("hPi0EtaPhiNLocMaxN","Selected #pi^{0}'s with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4853 | fhPi0EtaPhiNLocMaxN->SetYTitle("#phi (rad)"); | |
4854 | fhPi0EtaPhiNLocMaxN->SetXTitle("#eta"); | |
4855 | outputContainer->Add(fhPi0EtaPhiNLocMaxN) ; | |
1253480f | 4856 | |
4857 | if(fFillIdEtaHisto) | |
4858 | { | |
4859 | fhEtaEtaPhiNLocMax1 = new TH2F | |
4860 | ("hEtaEtaPhiNLocMax1","Selected #eta's with E > 8 GeV, NLM = 1: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4861 | fhEtaEtaPhiNLocMax1->SetYTitle("#phi (rad)"); | |
4862 | fhEtaEtaPhiNLocMax1->SetXTitle("#eta"); | |
4863 | outputContainer->Add(fhEtaEtaPhiNLocMax1) ; | |
4864 | ||
4865 | fhEtaEtaPhiNLocMax2 = new TH2F | |
4866 | ("hEtaEtaPhiNLocMax2","Selected #eta's with E > 8 GeV, NLM = 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4867 | fhEtaEtaPhiNLocMax2->SetYTitle("#phi (rad)"); | |
4868 | fhEtaEtaPhiNLocMax2->SetXTitle("#eta"); | |
4869 | outputContainer->Add(fhEtaEtaPhiNLocMax2) ; | |
4870 | ||
4871 | fhEtaEtaPhiNLocMaxN = new TH2F | |
4872 | ("hEtaEtaPhiNLocMaxN","Selected #eta's with E > 8 GeV, NLM > 2: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); | |
4873 | fhEtaEtaPhiNLocMaxN->SetYTitle("#phi (rad)"); | |
4874 | fhEtaEtaPhiNLocMaxN->SetXTitle("#eta"); | |
4875 | outputContainer->Add(fhEtaEtaPhiNLocMaxN) ; | |
4876 | } | |
e671adc2 | 4877 | |
dbe09c26 | 4878 | if(fFillSSWeightHisto) |
4879 | { | |
dbe09c26 | 4880 | for(Int_t nlm = 0; nlm < 3; nlm++) |
4881 | { | |
4882 | fhPi0CellE[nlm] = new TH2F(Form("hPi0CellENLocMax%s",snlm[nlm].Data()), | |
4883 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E",snlm[nlm].Data()), | |
4884 | nptbins,ptmin,ptmax, nptbins,ptmin,ptmax); | |
4885 | fhPi0CellE[nlm]->SetYTitle("E_{cell}"); | |
4886 | fhPi0CellE[nlm]->SetXTitle("E_{cluster}"); | |
4887 | outputContainer->Add(fhPi0CellE[nlm]) ; | |
4888 | ||
4889 | fhPi0CellEFrac[nlm] = new TH2F(Form("hPi0CellEFracNLocMax%s",snlm[nlm].Data()), | |
4890 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs cell E / cluster E",snlm[nlm].Data()), | |
4891 | nptbins,ptmin,ptmax, 100,0,1); | |
4892 | fhPi0CellEFrac[nlm]->SetYTitle("E_{cell} / E_{cluster}"); | |
4893 | fhPi0CellEFrac[nlm]->SetXTitle("E_{cluster}"); | |
4894 | outputContainer->Add(fhPi0CellEFrac[nlm]) ; | |
4895 | ||
4896 | fhPi0CellLogEFrac[nlm] = new TH2F(Form("hPi0CellLogEFracNLocMax%s",snlm[nlm].Data()), | |
1253480f | 4897 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs Log(cell E / cluster E)",snlm[nlm].Data()), |
4898 | nptbins,ptmin,ptmax, 100,-10,0); | |
dbe09c26 | 4899 | fhPi0CellLogEFrac[nlm]->SetYTitle("Log(E_{cell} / E_{cluster})"); |
4900 | fhPi0CellLogEFrac[nlm]->SetXTitle("E_{cluster}"); | |
4901 | outputContainer->Add(fhPi0CellLogEFrac[nlm]) ; | |
1253480f | 4902 | |
dbe09c26 | 4903 | |
19391b8c | 4904 | fhPi0CellEMaxEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMaxEMax2FracNLocMax%s",snlm[nlm].Data()), |
1253480f | 4905 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / 1st loc. max. E",snlm[nlm].Data()), |
4906 | nptbins,ptmin,ptmax, 100,0,1); | |
19391b8c | 4907 | fhPi0CellEMaxEMax2Frac[nlm]->SetYTitle("E_{Loc Max 2} / E_{Loc Max 1}"); |
4908 | fhPi0CellEMaxEMax2Frac[nlm]->SetXTitle("E_{cluster}"); | |
4909 | outputContainer->Add(fhPi0CellEMaxEMax2Frac[nlm]) ; | |
4910 | ||
4911 | fhPi0CellEMaxClusterFrac[nlm] = new TH2F(Form("hPi0CellEMaxClusterFracNLocMax%s",snlm[nlm].Data()), | |
1253480f | 4912 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cluster",snlm[nlm].Data()), |
4913 | nptbins,ptmin,ptmax, 100,0,1); | |
19391b8c | 4914 | fhPi0CellEMaxClusterFrac[nlm]->SetYTitle("E_{Loc Max 1} / E_{cluster}"); |
4915 | fhPi0CellEMaxClusterFrac[nlm]->SetXTitle("E_{cluster}"); | |
4916 | outputContainer->Add(fhPi0CellEMaxClusterFrac[nlm]) ; | |
1253480f | 4917 | |
19391b8c | 4918 | fhPi0CellEMax2ClusterFrac[nlm] = new TH2F(Form("hPi0CellEMax2ClusterFracNLocMax%s",snlm[nlm].Data()), |
1253480f | 4919 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cluster",snlm[nlm].Data()), |
4920 | nptbins,ptmin,ptmax, 100,0,1); | |
19391b8c | 4921 | fhPi0CellEMax2ClusterFrac[nlm]->SetYTitle("E_{Loc Max 2} / E_{cluster}"); |
4922 | fhPi0CellEMax2ClusterFrac[nlm]->SetXTitle("E_{cluster}"); | |
4923 | outputContainer->Add(fhPi0CellEMax2ClusterFrac[nlm]) ; | |
4924 | ||
4925 | fhPi0CellEMaxFrac[nlm] = new TH2F(Form("hPi0CellEMaxFracNLocMax%s",snlm[nlm].Data()), | |
1253480f | 4926 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 1st loc. max. E / E cell i",snlm[nlm].Data()), |
4927 | nptbins,ptmin,ptmax, 100,0,1); | |
8edbd100 | 4928 | fhPi0CellEMaxFrac[nlm]->SetYTitle("E_{Loc Max 1} / E_{cell i}"); |
19391b8c | 4929 | fhPi0CellEMaxFrac[nlm]->SetXTitle("E_{cluster}"); |
4930 | outputContainer->Add(fhPi0CellEMaxFrac[nlm]) ; | |
4931 | ||
4932 | fhPi0CellEMax2Frac[nlm] = new TH2F(Form("hPi0CellEMax2FracNLocMax%s",snlm[nlm].Data()), | |
1253480f | 4933 | Form("Selected #pi^{0}'s, NLM = %s: cluster E vs 2nd loc. max. E / E cell i",snlm[nlm].Data()), |
4934 | nptbins,ptmin,ptmax, 200,0,2); | |
19391b8c | 4935 | fhPi0CellEMax2Frac[nlm]->SetYTitle("E_{Loc Max 2} / E_{cell i}"); |
4936 | fhPi0CellEMax2Frac[nlm]->SetXTitle("E_{cluster}"); | |
4937 | outputContainer->Add(fhPi0CellEMax2Frac[nlm]) ; | |
1253480f | 4938 | |
19391b8c | 4939 | |
dbe09c26 | 4940 | for(Int_t i = 0; i < fSSWeightN; i++) |
4941 | { | |
4942 | fhM02WeightPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_W%d",snlm[nlm].Data(),i), | |
1253480f | 4943 | Form("#lambda_{0}^{2} vs E, with W0 = %2.2f, for NLM = %s", fSSWeight[i], snlm[nlm].Data()), |
dbe09c26 | 4944 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); |
4945 | fhM02WeightPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}"); | |
4946 | fhM02WeightPi0[nlm][i] ->SetXTitle("E (GeV)"); | |
4947 | outputContainer->Add(fhM02WeightPi0[nlm][i]) ; | |
4948 | } | |
19391b8c | 4949 | |
4950 | for(Int_t i = 0; i < fSSECellCutN; i++) | |
4951 | { | |
4952 | fhM02ECellCutPi0[nlm][i] = new TH2F(Form("hM02Pi0NLocMax%s_Ecell%d",snlm[nlm].Data(),i), | |
1253480f | 4953 | Form("#lambda_{0}^{2} vs E, with Ecell > %2.2f, for NLM = %s", fSSECellCut[i], snlm[nlm].Data()), |
4954 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
19391b8c | 4955 | fhM02ECellCutPi0[nlm][i] ->SetYTitle("#lambda_{0}^{2}"); |
4956 | fhM02ECellCutPi0[nlm][i] ->SetXTitle("E (GeV)"); | |
4957 | outputContainer->Add(fhM02ECellCutPi0[nlm][i]) ; | |
4958 | } | |
1253480f | 4959 | |
dbe09c26 | 4960 | } |
4961 | } | |
4962 | ||
a1fd1b69 | 4963 | Int_t tdbins = GetHistogramRanges()->GetHistoDiffTimeBins() ; Float_t tdmax = GetHistogramRanges()->GetHistoDiffTimeMax(); Float_t tdmin = GetHistogramRanges()->GetHistoDiffTimeMin(); |
1253480f | 4964 | |
a1fd1b69 | 4965 | fhPi0EPairDiffTimeNLM1 = new TH2F("hPi0EPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #pi, NLM=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); |
4966 | fhPi0EPairDiffTimeNLM1->SetXTitle("E_{pair} (GeV)"); | |
4967 | fhPi0EPairDiffTimeNLM1->SetYTitle("#Delta t (ns)"); | |
4968 | outputContainer->Add(fhPi0EPairDiffTimeNLM1); | |
1253480f | 4969 | |
a1fd1b69 | 4970 | fhPi0EPairDiffTimeNLM2 = new TH2F("hPi0EPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #pi, NLM=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); |
4971 | fhPi0EPairDiffTimeNLM2->SetXTitle("E_{pair} (GeV)"); | |
4972 | fhPi0EPairDiffTimeNLM2->SetYTitle("#Delta t (ns)"); | |
4973 | outputContainer->Add(fhPi0EPairDiffTimeNLM2); | |
1253480f | 4974 | |
a1fd1b69 | 4975 | fhPi0EPairDiffTimeNLMN = new TH2F("hPi0EPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #pi, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); |
4976 | fhPi0EPairDiffTimeNLMN->SetXTitle("E_{pair} (GeV)"); | |
4977 | fhPi0EPairDiffTimeNLMN->SetYTitle("#Delta t (ns)"); | |
4978 | outputContainer->Add(fhPi0EPairDiffTimeNLMN); | |
a1fd1b69 | 4979 | |
1253480f | 4980 | if(fFillIdEtaHisto) |
4981 | { | |
4982 | fhEtaEPairDiffTimeNLM1 = new TH2F("hEtaEPairDiffTimeNLocMax1","cluster pair time difference vs E, selected #eta, NLM=1",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); | |
4983 | fhEtaEPairDiffTimeNLM1->SetXTitle("E_{pair} (GeV)"); | |
4984 | fhEtaEPairDiffTimeNLM1->SetYTitle("#Delta t (ns)"); | |
4985 | outputContainer->Add(fhEtaEPairDiffTimeNLM1); | |
4986 | ||
4987 | fhEtaEPairDiffTimeNLM2 = new TH2F("hEtaEPairDiffTimeNLocMax2","cluster pair time difference vs E, selected #eta, NLM=2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); | |
4988 | fhEtaEPairDiffTimeNLM2->SetXTitle("E_{pair} (GeV)"); | |
4989 | fhEtaEPairDiffTimeNLM2->SetYTitle("#Delta t (ns)"); | |
4990 | outputContainer->Add(fhEtaEPairDiffTimeNLM2); | |
4991 | ||
4992 | fhEtaEPairDiffTimeNLMN = new TH2F("hEtaEPairDiffTimeNLocMaxN","cluster pair time difference vs E, selected #eta, NLM>2",nptbins,ptmin,ptmax, tdbins,tdmin,tdmax); | |
4993 | fhEtaEPairDiffTimeNLMN->SetXTitle("E_{pair} (GeV)"); | |
4994 | fhEtaEPairDiffTimeNLMN->SetYTitle("#Delta t (ns)"); | |
4995 | outputContainer->Add(fhEtaEPairDiffTimeNLMN); | |
4996 | } | |
a1fd1b69 | 4997 | |
4914e781 | 4998 | if(fFillNCellHisto && IsDataMC()) |
4999 | { | |
1253480f | 5000 | |
4914e781 | 5001 | fhNCellMassEHighNLocMax1MCPi0 = new TH2F("hNCellMassEHighNLocMax1MCPi0","n cells vs mass for MC pi0, high energy, NLM=1",ncbins,ncmin,ncmax,mbins,mmin,mmax); |
5002 | fhNCellMassEHighNLocMax1MCPi0->SetYTitle("M (GeV/c^{2})"); | |
5003 | fhNCellMassEHighNLocMax1MCPi0->SetXTitle("n cells"); | |
5004 | outputContainer->Add(fhNCellMassEHighNLocMax1MCPi0) ; | |
5005 | ||
5006 | fhNCellMassELowNLocMax1MCPi0 = new TH2F("hNCellMassELowNLocMax1MCPi0","n cells vs mass for MC pi0, low energy, NLM=1",ncbins,ncmin,ncmax,mbins,mmin,mmax); | |
5007 | fhNCellMassELowNLocMax1MCPi0->SetYTitle("M (GeV/c^{2})"); | |
5008 | fhNCellMassELowNLocMax1MCPi0->SetXTitle("n cells"); | |
5009 | outputContainer->Add(fhNCellMassELowNLocMax1MCPi0) ; | |
1253480f | 5010 | |
4914e781 | 5011 | fhNCellM02EHighNLocMax1MCPi0 = new TH2F("hNCellM02EHighNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); |
5012 | fhNCellM02EHighNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}"); | |
5013 | fhNCellM02EHighNLocMax1MCPi0->SetXTitle("n cells"); | |
5014 | outputContainer->Add(fhNCellM02EHighNLocMax1MCPi0) ; | |
5015 | ||
5016 | fhNCellM02ELowNLocMax1MCPi0 = new TH2F("hNCellM02ELowNLocMax1MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM=1",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
5017 | fhNCellM02ELowNLocMax1MCPi0->SetYTitle("#lambda_{0}^{2}"); | |
5018 | fhNCellM02ELowNLocMax1MCPi0->SetXTitle("n cells"); | |
5019 | outputContainer->Add(fhNCellM02ELowNLocMax1MCPi0) ; | |
1253480f | 5020 | |
4914e781 | 5021 | fhNCellMassEHighNLocMax2MCPi0 = new TH2F("hNCellMassEHighNLocMax2MCPi0","n cells vs mass for MC pi0, high energy, NLM=2",ncbins,ncmin,ncmax,mbins,mmin,mmax); |
5022 | fhNCellMassEHighNLocMax2MCPi0->SetYTitle("M (GeV/c^{2})"); | |
5023 | fhNCellMassEHighNLocMax2MCPi0->SetXTitle("n cells"); | |
5024 | outputContainer->Add(fhNCellMassEHighNLocMax2MCPi0) ; | |
5025 | ||
5026 | fhNCellMassELowNLocMax2MCPi0 = new TH2F("hNCellMassELowNLocMax2MCPi0","n cells vs mass for MC pi0, low energy, NLM=2",ncbins,ncmin,ncmax,mbins,mmin,mmax); | |
5027 | fhNCellMassELowNLocMax2MCPi0->SetYTitle("M (GeV/c^{2})"); | |
5028 | fhNCellMassELowNLocMax2MCPi0->SetXTitle("n cells"); | |
5029 | outputContainer->Add(fhNCellMassELowNLocMax2MCPi0) ; | |
5030 | ||
5031 | fhNCellM02EHighNLocMax2MCPi0 = new TH2F("hNCellM02EHighNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
5032 | fhNCellM02EHighNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}"); | |
5033 | fhNCellM02EHighNLocMax2MCPi0->SetXTitle("n cells"); | |
5034 | outputContainer->Add(fhNCellM02EHighNLocMax2MCPi0) ; | |
5035 | ||
5036 | fhNCellM02ELowNLocMax2MCPi0 = new TH2F("hNCellM02ELowNLocMax2MCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM=2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
5037 | fhNCellM02ELowNLocMax2MCPi0->SetYTitle("#lambda_{0}^{2}"); | |
5038 | fhNCellM02ELowNLocMax2MCPi0->SetXTitle("n cells"); | |
5039 | outputContainer->Add(fhNCellM02ELowNLocMax2MCPi0) ; | |
1253480f | 5040 | |
4914e781 | 5041 | fhNCellMassEHighNLocMaxNMCPi0 = new TH2F("hNCellMassEHighNLocMaxNMCPi0","n cells vs mass for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax); |
5042 | fhNCellMassEHighNLocMaxNMCPi0->SetYTitle("M (GeV/c^{2})"); | |
5043 | fhNCellMassEHighNLocMaxNMCPi0->SetXTitle("n cells"); | |
5044 | outputContainer->Add(fhNCellMassEHighNLocMaxNMCPi0) ; | |
5045 | ||
5046 | fhNCellMassELowNLocMaxNMCPi0 = new TH2F("hNCellMassELowNLocMaxNMCPi0","n cells vs mass for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,mbins,mmin,mmax); | |
5047 | fhNCellMassELowNLocMaxNMCPi0->SetYTitle("M (GeV/c^{2})"); | |
5048 | fhNCellMassELowNLocMaxNMCPi0->SetXTitle("n cells"); | |
5049 | outputContainer->Add(fhNCellMassELowNLocMaxNMCPi0) ; | |
5050 | ||
5051 | fhNCellM02EHighNLocMaxNMCPi0 = new TH2F("hNCellM02EHighNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, high energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
5052 | fhNCellM02EHighNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}"); | |
5053 | fhNCellM02EHighNLocMaxNMCPi0->SetXTitle("n cells"); | |
5054 | outputContainer->Add(fhNCellM02EHighNLocMaxNMCPi0) ; | |
5055 | ||
5056 | fhNCellM02ELowNLocMaxNMCPi0 = new TH2F("hNCellM02ELowNLocMaxNMCPi0","n cells vs #lambda_{0}^{2} for MC pi0, low energy, NLM>2",ncbins,ncmin,ncmax,ssbins,ssmin,ssmax); | |
5057 | fhNCellM02ELowNLocMaxNMCPi0->SetYTitle("#lambda_{0}^{2}"); | |
5058 | fhNCellM02ELowNLocMaxNMCPi0->SetXTitle("n cells"); | |
5059 | outputContainer->Add(fhNCellM02ELowNLocMaxNMCPi0) ; | |
5060 | ||
5061 | } | |
b2e375c7 | 5062 | |
5063 | if(IsDataMC() && fFillMCOverlapHisto) | |
5064 | { | |
5065 | for(Int_t i = 1; i < n; i++) | |
5066 | { | |
5067 | for(Int_t j = 0; j < 3; j++) | |
5068 | { | |
5069 | fhMCENOverlaps[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
5070 | Form("# overlaps vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5071 | nptbins,ptmin,ptmax,10,0,10); | |
5072 | fhMCENOverlaps[j][i] ->SetYTitle("# overlaps"); | |
5073 | fhMCENOverlaps[j][i] ->SetXTitle("E (GeV)"); | |
5074 | outputContainer->Add(fhMCENOverlaps[j][i]) ; | |
5075 | ||
5076 | fhMCEM02Overlap0[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
5077 | Form("Overlap 0, #lambda_{0}^{2} vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5078 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
5079 | fhMCEM02Overlap0[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
5080 | fhMCEM02Overlap0[j][i] ->SetXTitle("E (GeV)"); | |
5081 | outputContainer->Add(fhMCEM02Overlap0[j][i]) ; | |
5082 | ||
5083 | fhMCEM02Overlap1[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5084 | Form("Overlap 1, #lambda_{0}^{2} vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5085 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
5086 | fhMCEM02Overlap1[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
5087 | fhMCEM02Overlap1[j][i] ->SetXTitle("E (GeV)"); | |
5088 | outputContainer->Add(fhMCEM02Overlap1[j][i]) ; | |
5089 | ||
5090 | fhMCEM02OverlapN[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5091 | Form("Overlap N, #lambda_{0}^{2} vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
5092 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
5093 | fhMCEM02OverlapN[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
5094 | fhMCEM02OverlapN[j][i] ->SetXTitle("E (GeV)"); | |
5095 | outputContainer->Add(fhMCEM02OverlapN[j][i]) ; | |
5096 | ||
5097 | fhMCEMassOverlap0[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
5098 | Form("Overlap 0, Mass vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5099 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
5100 | fhMCEMassOverlap0[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
5101 | fhMCEMassOverlap0[j][i] ->SetXTitle("E (GeV)"); | |
5102 | outputContainer->Add(fhMCEMassOverlap0[j][i]) ; | |
5103 | ||
5104 | fhMCEMassOverlap1[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5105 | Form("Overalap 1, Mass vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5106 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
5107 | fhMCEMassOverlap1[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
5108 | fhMCEMassOverlap1[j][i] ->SetXTitle("E (GeV)"); | |
5109 | outputContainer->Add(fhMCEMassOverlap1[j][i]) ; | |
5110 | ||
5111 | fhMCEMassOverlapN[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5112 | Form("Overlap N, Mass vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
5113 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
5114 | fhMCEMassOverlapN[j][i] ->SetYTitle("Mass (GeV/c^{2})"); | |
5115 | fhMCEMassOverlapN[j][i] ->SetXTitle("E (GeV)"); | |
5116 | outputContainer->Add(fhMCEMassOverlapN[j][i]) ; | |
4914e781 | 5117 | |
5118 | fhMCEAsymOverlap0[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
5119 | Form("Overlap 0, Asymmetry vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5120 | nptbins,ptmin,ptmax,100,0,1); | |
5121 | fhMCEAsymOverlap0[j][i] ->SetYTitle("|A|"); | |
5122 | fhMCEAsymOverlap0[j][i] ->SetXTitle("E (GeV)"); | |
5123 | outputContainer->Add(fhMCEAsymOverlap0[j][i]) ; | |
5124 | ||
5125 | fhMCEAsymOverlap1[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5126 | Form("Overalap 1, Asymmetry vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5127 | nptbins,ptmin,ptmax,100,0,1); | |
5128 | fhMCEAsymOverlap1[j][i] ->SetYTitle("|A|"); | |
5129 | fhMCEAsymOverlap1[j][i] ->SetXTitle("E (GeV)"); | |
5130 | outputContainer->Add(fhMCEAsymOverlap1[j][i]) ; | |
5131 | ||
5132 | fhMCEAsymOverlapN[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5133 | Form("Overlap N, Asymmetry vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
5134 | nptbins,ptmin,ptmax,100,0,1); | |
5135 | fhMCEAsymOverlapN[j][i] ->SetYTitle("|A|"); | |
5136 | fhMCEAsymOverlapN[j][i] ->SetXTitle("E (GeV)"); | |
5137 | outputContainer->Add(fhMCEAsymOverlapN[j][i]) ; | |
74e3eb22 | 5138 | |
5139 | ||
cb99fa55 | 5140 | if(fFillNCellHisto) |
5141 | { | |
5142 | fhMCENCellOverlap0[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
5143 | Form("Overlap 0, n cells vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5144 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
5145 | fhMCENCellOverlap0[j][i] ->SetYTitle("n cells"); | |
5146 | fhMCENCellOverlap0[j][i] ->SetXTitle("E (GeV)"); | |
5147 | outputContainer->Add(fhMCENCellOverlap0[j][i]) ; | |
5148 | ||
5149 | fhMCENCellOverlap1[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5150 | Form("Overalap 1, n cells vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5151 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
5152 | fhMCENCellOverlap1[j][i] ->SetYTitle("n cells"); | |
5153 | fhMCENCellOverlap1[j][i] ->SetXTitle("E (GeV)"); | |
5154 | outputContainer->Add(fhMCENCellOverlap1[j][i]) ; | |
5155 | ||
5156 | fhMCENCellOverlapN[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5157 | Form("Overlap N, n cells vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
5158 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
5159 | fhMCENCellOverlapN[j][i] ->SetYTitle("n cells"); | |
5160 | fhMCENCellOverlapN[j][i] ->SetXTitle("E (GeV)"); | |
5161 | outputContainer->Add(fhMCENCellOverlapN[j][i]) ; | |
5162 | } | |
4914e781 | 5163 | |
5164 | fhMCEEpriOverlap0[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), | |
5165 | Form("Overlap 0, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5166 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
5167 | fhMCEEpriOverlap0[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
5168 | fhMCEEpriOverlap0[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
5169 | outputContainer->Add(fhMCEEpriOverlap0[j][i]) ; | |
5170 | ||
5171 | fhMCEEpriOverlap1[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5172 | Form("Overalap 1, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5173 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
5174 | fhMCEEpriOverlap1[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
5175 | fhMCEEpriOverlap1[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
5176 | outputContainer->Add(fhMCEEpriOverlap1[j][i]) ; | |
5177 | ||
5178 | fhMCEEpriOverlapN[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5179 | Form("Overlap N, E reco vs E prim for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
5180 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
5181 | fhMCEEpriOverlapN[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
5182 | fhMCEEpriOverlapN[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
5183 | outputContainer->Add(fhMCEEpriOverlapN[j][i]) ; | |
1253480f | 5184 | |
4914e781 | 5185 | |
cc909e6f | 5186 | fhMCEEpriOverlap0IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap0IdPi0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), |
5187 | Form("Overlap 0, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5188 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
5189 | fhMCEEpriOverlap0IdPi0[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
5190 | fhMCEEpriOverlap0IdPi0[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
5191 | outputContainer->Add(fhMCEEpriOverlap0IdPi0[j][i]) ; | |
5192 | ||
5193 | fhMCEEpriOverlap1IdPi0[j][i] = new TH2F(Form("hMCEEpriOverlap1IdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5194 | Form("Overalap 1, E reco vs E prim for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5195 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
5196 | fhMCEEpriOverlap1IdPi0[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
5197 | fhMCEEpriOverlap1IdPi0[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
5198 | outputContainer->Add(fhMCEEpriOverlap1IdPi0[j][i]) ; | |
5199 | ||
5200 | fhMCEEpriOverlapNIdPi0[j][i] = new TH2F(Form("hMCEEpriOverlapNIdPi0NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
5201 | Form("Overlap N, E reco vs E prim for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), | |
5202 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
5203 | fhMCEEpriOverlapNIdPi0[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
5204 | fhMCEEpriOverlapNIdPi0[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
5205 | outputContainer->Add(fhMCEEpriOverlapNIdPi0[j][i]) ; | |
5206 | ||
5207 | ||
83351853 | 5208 | fhMCESplitEFracOverlap0[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%s",snlm[j].Data(),pname[i].Data()), |
1253480f | 5209 | Form("Overlap 0, SplitEFrac vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), |
5210 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 5211 | fhMCESplitEFracOverlap0[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
5212 | fhMCESplitEFracOverlap0[j][i] ->SetXTitle("E (GeV)"); | |
5213 | outputContainer->Add(fhMCESplitEFracOverlap0[j][i]) ; | |
5214 | ||
5215 | fhMCESplitEFracOverlap1[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
1253480f | 5216 | Form("Overalap 1, SplitEFrac vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), |
5217 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 5218 | fhMCESplitEFracOverlap1[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
5219 | fhMCESplitEFracOverlap1[j][i] ->SetXTitle("E (GeV)"); | |
5220 | outputContainer->Add(fhMCESplitEFracOverlap1[j][i]) ; | |
5221 | ||
5222 | fhMCESplitEFracOverlapN[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%s",snlm[j].Data(), pname[i].Data()), | |
1253480f | 5223 | Form("Overlap N, SplitEFrac vs E for NLM=%s %s",snlm[j].Data(),ptype[i].Data()), |
5224 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 5225 | fhMCESplitEFracOverlapN[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
5226 | fhMCESplitEFracOverlapN[j][i] ->SetXTitle("E (GeV)"); | |
5227 | outputContainer->Add(fhMCESplitEFracOverlapN[j][i]) ; | |
b2e375c7 | 5228 | |
5229 | if(i < 5) | |
5230 | { | |
5231 | fhMCPi0MassM02Overlap0[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%d",snlm[j].Data(),i-1), | |
be894c1d | 5232 | Form("Overlap 0, Mass vs #lambda_{0}^{2}, NLM=%s, %s",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 5233 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 5234 | fhMCPi0MassM02Overlap0[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
5235 | fhMCPi0MassM02Overlap0[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
5236 | outputContainer->Add(fhMCPi0MassM02Overlap0[j][i-1]) ; | |
5237 | ||
5238 | fhMCPi0MassM02Overlap1[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%d",snlm[j].Data(),i-1), | |
be894c1d | 5239 | Form("Overlap 1, Mass vs #lambda_{0}^{2}, NLM=%s, %s",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 5240 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 5241 | fhMCPi0MassM02Overlap1[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
5242 | fhMCPi0MassM02Overlap1[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
5243 | outputContainer->Add(fhMCPi0MassM02Overlap1[j][i-1]) ; | |
5244 | ||
5245 | fhMCPi0MassM02OverlapN[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%d",snlm[j].Data(),i-1), | |
be894c1d | 5246 | Form("Overlap N, Mass vs #lambda_{0}^{2}, NLM=%s, %s",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 5247 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 5248 | fhMCPi0MassM02OverlapN[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
5249 | fhMCPi0MassM02OverlapN[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
5250 | outputContainer->Add(fhMCPi0MassM02OverlapN[j][i-1]) ; | |
5251 | } | |
5252 | ||
5253 | if(fFillTMHisto) | |
5254 | { | |
5255 | fhMCENOverlapsMatch[j][i] = new TH2F(Form("hMCENOverlapsNLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
5256 | Form("# overlaps vs E for NLM=%s, %s",snlm[j].Data(),ptype[i].Data()), | |
5257 | nptbins,ptmin,ptmax,10,0,10); | |
5258 | fhMCENOverlapsMatch[j][i] ->SetYTitle("# overlaps"); | |
5259 | fhMCENOverlapsMatch[j][i] ->SetXTitle("E (GeV)"); | |
5260 | outputContainer->Add(fhMCENOverlapsMatch[j][i]) ; | |
5261 | ||
5262 | fhMCEM02Overlap0Match[j][i] = new TH2F(Form("hMCEM02Overlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
5263 | Form("#lambda_{0}^{2} vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5264 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
5265 | fhMCEM02Overlap0Match[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
5266 | fhMCEM02Overlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
5267 | outputContainer->Add(fhMCEM02Overlap0Match[j][i]) ; | |
5268 | ||
5269 | fhMCEM02Overlap1Match[j][i] = new TH2F(Form("hMCEM02Overlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
5270 | Form("#lambda_{0}^{2} vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5271 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
5272 | fhMCEM02Overlap1Match[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
5273 | fhMCEM02Overlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
5274 | outputContainer->Add(fhMCEM02Overlap1Match[j][i]) ; | |
5275 | ||
5276 | fhMCEM02OverlapNMatch[j][i] = new TH2F(Form("hMCEM02OverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
5277 | Form("#lambda_{0}^{2} vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5278 | nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); | |
5279 | fhMCEM02OverlapNMatch[j][i] ->SetYTitle("#lambda_{0}^{2}"); | |
5280 | fhMCEM02OverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
5281 | outputContainer->Add(fhMCEM02OverlapNMatch[j][i]) ; | |
5282 | ||
5283 | fhMCEMassOverlap0Match[j][i] = new TH2F(Form("hMCEMassOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
5284 | Form("Mass vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5285 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
5286 | fhMCEMassOverlap0Match[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
5287 | fhMCEMassOverlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
5288 | outputContainer->Add(fhMCEMassOverlap0Match[j][i]) ; | |
5289 | ||
5290 | fhMCEMassOverlap1Match[j][i] = new TH2F(Form("hMCEMassOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
5291 | Form("Mass vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5292 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
5293 | fhMCEMassOverlap1Match[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
5294 | fhMCEMassOverlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
5295 | outputContainer->Add(fhMCEMassOverlap1Match[j][i]) ; | |
5296 | ||
5297 | fhMCEMassOverlapNMatch[j][i] = new TH2F(Form("hMCEMassOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
5298 | Form("Mass vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5299 | nptbins,ptmin,ptmax,mbins,mmin,mmax); | |
5300 | fhMCEMassOverlapNMatch[j][i] ->SetYTitle("Mass (GeV/c^{2}"); | |
5301 | fhMCEMassOverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
5302 | outputContainer->Add(fhMCEMassOverlapNMatch[j][i]) ; | |
5303 | ||
4914e781 | 5304 | |
5305 | fhMCEAsymOverlap0Match[j][i] = new TH2F(Form("hMCEAsymOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
1253480f | 5306 | Form("Overlap 0, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
5307 | nptbins,ptmin,ptmax,100,0,1); | |
4914e781 | 5308 | fhMCEAsymOverlap0Match[j][i] ->SetYTitle("|A|"); |
5309 | fhMCEAsymOverlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
5310 | outputContainer->Add(fhMCEAsymOverlap0Match[j][i]) ; | |
5311 | ||
5312 | fhMCEAsymOverlap1Match[j][i] = new TH2F(Form("hMCEAsymOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
1253480f | 5313 | Form("Overalap 1, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
5314 | nptbins,ptmin,ptmax,100,0,1); | |
4914e781 | 5315 | fhMCEAsymOverlap1Match[j][i] ->SetYTitle("|A|"); |
5316 | fhMCEAsymOverlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
5317 | outputContainer->Add(fhMCEAsymOverlap1Match[j][i]) ; | |
5318 | ||
5319 | fhMCEAsymOverlapNMatch[j][i] = new TH2F(Form("hMCEAsymOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
1253480f | 5320 | Form("Overlap N, Asymmetry vs E for NLM=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
5321 | nptbins,ptmin,ptmax,100,0,1); | |
4914e781 | 5322 | fhMCEAsymOverlapNMatch[j][i] ->SetYTitle("|A|"); |
5323 | fhMCEAsymOverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
5324 | outputContainer->Add(fhMCEAsymOverlapNMatch[j][i]) ; | |
74e3eb22 | 5325 | |
5326 | ||
5327 | fhMCENCellOverlap0Match[j][i] = new TH2F(Form("hMCENCellOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), | |
5328 | Form("Overlap 0, n cells vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5329 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
5330 | fhMCENCellOverlap0Match[j][i] ->SetYTitle("n cells"); | |
5331 | fhMCENCellOverlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
5332 | outputContainer->Add(fhMCENCellOverlap0Match[j][i]) ; | |
1253480f | 5333 | |
74e3eb22 | 5334 | fhMCENCellOverlap1Match[j][i] = new TH2F(Form("hMCENCellOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), |
5335 | Form("Overalap 1, n cell vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5336 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
5337 | fhMCENCellOverlap1Match[j][i] ->SetYTitle("n cells"); | |
5338 | fhMCENCellOverlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
5339 | outputContainer->Add(fhMCENCellOverlap1Match[j][i]) ; | |
4914e781 | 5340 | |
74e3eb22 | 5341 | fhMCENCellOverlapNMatch[j][i] = new TH2F(Form("hMCENCellOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), |
5342 | Form("Overlap N, n cell vs E for NLM=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5343 | nptbins,ptmin,ptmax,ncbins,ncmin,ncmax); | |
5344 | fhMCENCellOverlapNMatch[j][i] ->SetYTitle("n cells"); | |
5345 | fhMCENCellOverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
5346 | outputContainer->Add(fhMCENCellOverlapNMatch[j][i]) ; | |
5347 | ||
4914e781 | 5348 | fhMCEEpriOverlap0Match[j][i] = new TH2F(Form("hMCEEpriOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), |
5349 | Form("Overlap 0, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5350 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
5351 | fhMCEEpriOverlap0Match[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
5352 | fhMCEEpriOverlap0Match[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
5353 | outputContainer->Add(fhMCEEpriOverlap0Match[j][i]) ; | |
5354 | ||
5355 | fhMCEEpriOverlap1Match[j][i] = new TH2F(Form("hMCEEpriOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
5356 | Form("Overalap 1, Asymmetry vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), | |
5357 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
5358 | fhMCEEpriOverlap1Match[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
5359 | fhMCEEpriOverlap1Match[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
5360 | outputContainer->Add(fhMCEEpriOverlap1Match[j][i]) ; | |
5361 | ||
cc909e6f | 5362 | fhMCEEpriOverlapNMatch[j][i] = new TH2F(Form("hMCEEpriOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), |
4914e781 | 5363 | Form("Overlap N, Asymmetry vs E for NLM=%s %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
5364 | nptbins,ptmin,ptmax,nptbins,ptmin,ptmax); | |
5365 | fhMCEEpriOverlapNMatch[j][i] ->SetYTitle("E_{gen} (GeV)"); | |
5366 | fhMCEEpriOverlapNMatch[j][i] ->SetXTitle("E_{reco} (GeV)"); | |
5367 | outputContainer->Add(fhMCEEpriOverlapNMatch[j][i]) ; | |
1253480f | 5368 | |
4914e781 | 5369 | |
83351853 | 5370 | fhMCESplitEFracOverlap0Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap0NLocMax%s%sMatched",snlm[j].Data(),pname[i].Data()), |
1253480f | 5371 | Form("SplitEFrac vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
5372 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 5373 | fhMCESplitEFracOverlap0Match[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
5374 | fhMCESplitEFracOverlap0Match[j][i] ->SetXTitle("E (GeV)"); | |
5375 | outputContainer->Add(fhMCESplitEFracOverlap0Match[j][i]) ; | |
5376 | ||
5377 | fhMCESplitEFracOverlap1Match[j][i] = new TH2F(Form("hMCESplitEFracOverlap1NLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
1253480f | 5378 | Form("SplitEFrac vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
5379 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 5380 | fhMCESplitEFracOverlap1Match[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
5381 | fhMCESplitEFracOverlap1Match[j][i] ->SetXTitle("E (GeV)"); | |
5382 | outputContainer->Add(fhMCESplitEFracOverlap1Match[j][i]) ; | |
5383 | ||
5384 | fhMCESplitEFracOverlapNMatch[j][i] = new TH2F(Form("hMCESplitEFracOverlapNNLocMax%s%sMatched",snlm[j].Data(), pname[i].Data()), | |
1253480f | 5385 | Form("SplitEFrac vs E for NLM=%s, %s, Track Matched",snlm[j].Data(),ptype[i].Data()), |
5386 | nptbins,ptmin,ptmax,120,0,1.2); | |
83351853 | 5387 | fhMCESplitEFracOverlapNMatch[j][i] ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}"); |
5388 | fhMCESplitEFracOverlapNMatch[j][i] ->SetXTitle("E (GeV)"); | |
5389 | outputContainer->Add(fhMCESplitEFracOverlapNMatch[j][i]) ; | |
1253480f | 5390 | |
83351853 | 5391 | |
b2e375c7 | 5392 | if(i < 5) |
5393 | { | |
5394 | fhMCPi0MassM02Overlap0Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap0NLocMax%sEbin%dMatched",snlm[j].Data(),i-1), | |
be894c1d | 5395 | Form("Overlap 0, Mass vs #lambda_{0}^{2}, NLM=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 5396 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 5397 | fhMCPi0MassM02Overlap0Match[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
5398 | fhMCPi0MassM02Overlap0Match[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
5399 | outputContainer->Add(fhMCPi0MassM02Overlap0Match[j][i-1]) ; | |
5400 | ||
5401 | fhMCPi0MassM02Overlap1Match[j][i-1] = new TH2F(Form("hMCPi0MassM02Overlap1NLocMax%sEbin%dMatched",snlm[j].Data(),i-1), | |
be894c1d | 5402 | Form("Overlap 1, Mass vs #lambda_{0}^{2}, NLM=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 5403 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 5404 | fhMCPi0MassM02Overlap1Match[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
5405 | fhMCPi0MassM02Overlap1Match[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
5406 | outputContainer->Add(fhMCPi0MassM02Overlap1Match[j][i-1]) ; | |
5407 | ||
5408 | fhMCPi0MassM02OverlapNMatch[j][i-1] = new TH2F(Form("hMCPi0MassM02OverlapNNLocMax%sEbin%dMatched",snlm[j].Data(),i-1), | |
be894c1d | 5409 | Form("Overlap N, Mass vs #lambda_{0}^{2}, NLM=%s, %s, Track Matched",snlm[j].Data(),sEBin[i-1].Data()), |
1253480f | 5410 | ssbins,ssmin,ssmax,mbins,mmin,mmax); |
b2e375c7 | 5411 | fhMCPi0MassM02OverlapNMatch[j][i-1]->SetYTitle("M (GeV/c^{2})"); |
5412 | fhMCPi0MassM02OverlapNMatch[j][i-1]->SetXTitle("#lambda_{0}^{2}"); | |
5413 | outputContainer->Add(fhMCPi0MassM02OverlapNMatch[j][i-1]) ; | |
5414 | ||
5415 | } | |
5416 | ||
5417 | } | |
5418 | } | |
5419 | } | |
5420 | ||
5421 | fhMCPi0HighNLMPair = new TH2F("hMCPi0HighNLMPair","NLM vs E for merged pi0 cluster, high energy NLM pair are decays", | |
5422 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5423 | fhMCPi0HighNLMPair ->SetYTitle("N maxima"); | |
5424 | fhMCPi0HighNLMPair ->SetXTitle("E (GeV)"); | |
5425 | outputContainer->Add(fhMCPi0HighNLMPair) ; | |
5426 | ||
5427 | fhMCPi0LowNLMPair = new TH2F("hMCPi0LowNLMPair","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays", | |
5428 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5429 | fhMCPi0LowNLMPair ->SetYTitle("N maxima"); | |
5430 | fhMCPi0LowNLMPair ->SetXTitle("E (GeV)"); | |
5431 | outputContainer->Add(fhMCPi0LowNLMPair) ; | |
5432 | ||
5433 | fhMCPi0AnyNLMPair = new TH2F("hMCPi0AnyNLMPair","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays", | |
5434 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5435 | fhMCPi0AnyNLMPair ->SetYTitle("N maxima"); | |
5436 | fhMCPi0AnyNLMPair ->SetXTitle("E (GeV)"); | |
5437 | outputContainer->Add(fhMCPi0AnyNLMPair) ; | |
5438 | ||
5439 | fhMCPi0NoneNLMPair = new TH2F("hMCPi0NoneNLMPair","NLM vs E for merged pi0 cluster, no NLM pair are decays", | |
5440 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5441 | fhMCPi0NoneNLMPair ->SetYTitle("N maxima"); | |
5442 | fhMCPi0NoneNLMPair ->SetXTitle("E (GeV)"); | |
5443 | outputContainer->Add(fhMCPi0NoneNLMPair) ; | |
1253480f | 5444 | |
b2e375c7 | 5445 | |
5446 | fhMCPi0HighNLMPairNoMCMatch = new TH2F("hMCPi0HighNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, high energy NLM pair are decays", | |
1253480f | 5447 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
b2e375c7 | 5448 | fhMCPi0HighNLMPairNoMCMatch ->SetYTitle("N maxima"); |
5449 | fhMCPi0HighNLMPairNoMCMatch ->SetXTitle("E (GeV)"); | |
5450 | outputContainer->Add(fhMCPi0HighNLMPairNoMCMatch) ; | |
5451 | ||
5452 | fhMCPi0LowNLMPairNoMCMatch = new TH2F("hMCPi0LowNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays", | |
1253480f | 5453 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
b2e375c7 | 5454 | fhMCPi0LowNLMPairNoMCMatch ->SetYTitle("N maxima"); |
5455 | fhMCPi0LowNLMPairNoMCMatch ->SetXTitle("E (GeV)"); | |
5456 | outputContainer->Add(fhMCPi0LowNLMPairNoMCMatch) ; | |
5457 | ||
5458 | fhMCPi0AnyNLMPairNoMCMatch = new TH2F("hMCPi0AnyNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays", | |
1253480f | 5459 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
b2e375c7 | 5460 | fhMCPi0AnyNLMPairNoMCMatch ->SetYTitle("N maxima"); |
5461 | fhMCPi0AnyNLMPairNoMCMatch ->SetXTitle("E (GeV)"); | |
5462 | outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatch) ; | |
5463 | ||
5464 | fhMCPi0NoneNLMPairNoMCMatch = new TH2F("hMCPi0NoneNLMPairNoMCMatch","NLM vs E for merged pi0 cluster, no NLM pair are decays", | |
1253480f | 5465 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
b2e375c7 | 5466 | fhMCPi0NoneNLMPairNoMCMatch ->SetYTitle("N maxima"); |
5467 | fhMCPi0NoneNLMPairNoMCMatch ->SetXTitle("E (GeV)"); | |
5468 | outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatch) ; | |
1253480f | 5469 | |
b2e375c7 | 5470 | |
36769d30 | 5471 | fhMCPi0HighNLMPairOverlap = new TH2F("hMCPi0HighNLMPairOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays", |
5472 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5473 | fhMCPi0HighNLMPairOverlap ->SetYTitle("N maxima"); | |
5474 | fhMCPi0HighNLMPairOverlap ->SetXTitle("E (GeV)"); | |
5475 | outputContainer->Add(fhMCPi0HighNLMPairOverlap) ; | |
5476 | ||
5477 | fhMCPi0LowNLMPairOverlap = new TH2F("hMCPi0LowNLMPairOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays", | |
5478 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5479 | fhMCPi0LowNLMPairOverlap ->SetYTitle("N maxima"); | |
5480 | fhMCPi0LowNLMPairOverlap ->SetXTitle("E (GeV)"); | |
5481 | outputContainer->Add(fhMCPi0LowNLMPairOverlap) ; | |
5482 | ||
5483 | fhMCPi0AnyNLMPairOverlap = new TH2F("hMCPi0AnyNLMPairOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays", | |
5484 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5485 | fhMCPi0AnyNLMPairOverlap ->SetYTitle("N maxima"); | |
5486 | fhMCPi0AnyNLMPairOverlap ->SetXTitle("E (GeV)"); | |
5487 | outputContainer->Add(fhMCPi0AnyNLMPairOverlap) ; | |
5488 | ||
5489 | fhMCPi0NoneNLMPairOverlap = new TH2F("hMCPi0NoneNLMPairOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays", | |
5490 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5491 | fhMCPi0NoneNLMPairOverlap ->SetYTitle("N maxima"); | |
5492 | fhMCPi0NoneNLMPairOverlap ->SetXTitle("E (GeV)"); | |
5493 | outputContainer->Add(fhMCPi0NoneNLMPairOverlap) ; | |
5494 | ||
5495 | fhMCPi0HighNLMPairNoMCMatchOverlap = new TH2F("hMCPi0HighNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, high energy NLM pair are decays", | |
5496 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5497 | fhMCPi0HighNLMPairNoMCMatchOverlap ->SetYTitle("N maxima"); | |
5498 | fhMCPi0HighNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)"); | |
5499 | outputContainer->Add(fhMCPi0HighNLMPairNoMCMatchOverlap) ; | |
5500 | ||
5501 | fhMCPi0LowNLMPairNoMCMatchOverlap = new TH2F("hMCPi0LowNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, lower energy NLM pair are decays", | |
5502 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5503 | fhMCPi0LowNLMPairNoMCMatchOverlap ->SetYTitle("N maxima"); | |
5504 | fhMCPi0LowNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)"); | |
5505 | outputContainer->Add(fhMCPi0LowNLMPairNoMCMatchOverlap) ; | |
5506 | ||
5507 | fhMCPi0AnyNLMPairNoMCMatchOverlap = new TH2F("hMCPi0AnyNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, both high and other energy NLM pair are decays", | |
5508 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5509 | fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetYTitle("N maxima"); | |
5510 | fhMCPi0AnyNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)"); | |
5511 | outputContainer->Add(fhMCPi0AnyNLMPairNoMCMatchOverlap) ; | |
5512 | ||
5513 | fhMCPi0NoneNLMPairNoMCMatchOverlap = new TH2F("hMCPi0NoneNLMPairNoMCMatchOverlap","NLM vs E for merged pi0 cluster, no NLM pair are decays", | |
5514 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5515 | fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetYTitle("N maxima"); | |
5516 | fhMCPi0NoneNLMPairNoMCMatchOverlap ->SetXTitle("E (GeV)"); | |
5517 | outputContainer->Add(fhMCPi0NoneNLMPairNoMCMatchOverlap) ; | |
b583134f | 5518 | |
1253480f | 5519 | |
36769d30 | 5520 | fhMCPi0DecayPhotonHitHighLM = new TH2F("hMCPi0DecayPhotonHitHighLM","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima", |
83351853 | 5521 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
5522 | fhMCPi0DecayPhotonHitHighLM ->SetYTitle("N maxima"); | |
5523 | fhMCPi0DecayPhotonHitHighLM ->SetXTitle("E (GeV)"); | |
5524 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLM ) ; | |
5525 | ||
36769d30 | 5526 | fhMCPi0DecayPhotonAdjHighLM = new TH2F("hMCPi0DecayPhotonAdjHighLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima", |
1253480f | 5527 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
83351853 | 5528 | fhMCPi0DecayPhotonAdjHighLM ->SetYTitle("N maxima"); |
5529 | fhMCPi0DecayPhotonAdjHighLM ->SetXTitle("E (GeV)"); | |
5530 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLM ) ; | |
1253480f | 5531 | |
36769d30 | 5532 | fhMCPi0DecayPhotonHitOtherLM = new TH2F("hMCPi0DecayPhotonHitOtherLM","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima", |
1253480f | 5533 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
83351853 | 5534 | fhMCPi0DecayPhotonHitOtherLM ->SetYTitle("N maxima"); |
5535 | fhMCPi0DecayPhotonHitOtherLM ->SetXTitle("E (GeV)"); | |
5536 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLM ) ; | |
5537 | ||
36769d30 | 5538 | fhMCPi0DecayPhotonAdjOtherLM = new TH2F("hMCPi0DecayPhotonAdjOtherLM","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima", |
1253480f | 5539 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); |
83351853 | 5540 | fhMCPi0DecayPhotonAdjOtherLM ->SetYTitle("N maxima"); |
5541 | fhMCPi0DecayPhotonAdjOtherLM ->SetXTitle("E (GeV)"); | |
5542 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLM ) ; | |
1253480f | 5543 | |
36769d30 | 5544 | fhMCPi0DecayPhotonAdjacent = new TH2F("hMCPi0DecayPhotonAdjacent","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells", |
5545 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5546 | fhMCPi0DecayPhotonAdjacent ->SetYTitle("N maxima"); | |
5547 | fhMCPi0DecayPhotonAdjacent ->SetXTitle("E (GeV)"); | |
5548 | outputContainer->Add(fhMCPi0DecayPhotonAdjacent ) ; | |
5549 | ||
5550 | fhMCPi0DecayPhotonHitNoLM = new TH2F("hMCPi0DecayPhotonHitNoLM","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima", | |
5551 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
83351853 | 5552 | fhMCPi0DecayPhotonHitNoLM ->SetYTitle("N maxima"); |
5553 | fhMCPi0DecayPhotonHitNoLM ->SetXTitle("E (GeV)"); | |
5554 | outputContainer->Add(fhMCPi0DecayPhotonHitNoLM ) ; | |
5555 | ||
36769d30 | 5556 | |
5557 | fhMCPi0DecayPhotonHitHighLMOverlap = new TH2F("hMCPi0DecayPhotonHitHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit High Local Maxima, there was an overlap", | |
5558 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5559 | fhMCPi0DecayPhotonHitHighLMOverlap ->SetYTitle("N maxima"); | |
5560 | fhMCPi0DecayPhotonHitHighLMOverlap ->SetXTitle("E (GeV)"); | |
5561 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlap ) ; | |
5562 | ||
5563 | fhMCPi0DecayPhotonAdjHighLMOverlap = new TH2F("hMCPi0DecayPhotonAdjHighLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to High Local Maxima, there was an overlap", | |
5564 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5565 | fhMCPi0DecayPhotonAdjHighLMOverlap ->SetYTitle("N maxima"); | |
5566 | fhMCPi0DecayPhotonAdjHighLMOverlap ->SetXTitle("E (GeV)"); | |
5567 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlap ) ; | |
5568 | ||
5569 | fhMCPi0DecayPhotonHitOtherLMOverlap = new TH2F("hMCPi0DecayPhotonHitOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit Other Local Maxima, there was an overlap", | |
5570 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5571 | fhMCPi0DecayPhotonHitOtherLMOverlap ->SetYTitle("N maxima"); | |
5572 | fhMCPi0DecayPhotonHitOtherLMOverlap ->SetXTitle("E (GeV)"); | |
5573 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlap ) ; | |
5574 | ||
5575 | fhMCPi0DecayPhotonAdjOtherLMOverlap = new TH2F("hMCPi0DecayPhotonAdjOtherLMOverlap","NLM vs E for merged pi0 cluster, decay photon hit cells adjacent to Other Local Maxima, there was an overlap", | |
5576 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5577 | fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetYTitle("N maxima"); | |
5578 | fhMCPi0DecayPhotonAdjOtherLMOverlap ->SetXTitle("E (GeV)"); | |
5579 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlap ) ; | |
5580 | ||
5581 | fhMCPi0DecayPhotonAdjacentOverlap = new TH2F("hMCPi0DecayPhotonAdjacentOverlap","NLM vs E for merged pi0 cluster, decay photon hit adjacent cells, there was an overlap", | |
5582 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5583 | fhMCPi0DecayPhotonAdjacentOverlap ->SetYTitle("N maxima"); | |
5584 | fhMCPi0DecayPhotonAdjacentOverlap ->SetXTitle("E (GeV)"); | |
5585 | outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlap ) ; | |
5586 | ||
5587 | fhMCPi0DecayPhotonHitNoLMOverlap = new TH2F("hMCPi0DecayPhotonHitNoLMOverlap","NLM vs E for merged pi0 cluster, decay photon do not hit Local Maxima, there was an overlap", | |
5588 | nptbins,ptmin,ptmax,nMaxBins,0,nMaxBins); | |
5589 | fhMCPi0DecayPhotonHitNoLMOverlap ->SetYTitle("N maxima"); | |
5590 | fhMCPi0DecayPhotonHitNoLMOverlap ->SetXTitle("E (GeV)"); | |
5591 | outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlap ) ; | |
5592 | ||
1253480f | 5593 | |
b583134f | 5594 | for(Int_t nlm = 0; nlm < 3; nlm++) |
5595 | { | |
5596 | fhMCPi0DecayPhotonHitHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sMass",snlm[nlm].Data()), | |
5597 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5598 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5599 | fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5600 | fhMCPi0DecayPhotonHitHighLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5601 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMMass[nlm] ) ; | |
5602 | ||
5603 | fhMCPi0DecayPhotonAdjHighLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sMass",snlm[nlm].Data()), | |
5604 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5605 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5606 | fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5607 | fhMCPi0DecayPhotonAdjHighLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5608 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMMass[nlm] ) ; | |
5609 | ||
5610 | fhMCPi0DecayPhotonHitOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sMass",snlm[nlm].Data()), | |
5611 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5612 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5613 | fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5614 | fhMCPi0DecayPhotonHitOtherLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5615 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMMass[nlm] ) ; | |
5616 | ||
5617 | fhMCPi0DecayPhotonAdjOtherLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sMass",snlm[nlm].Data()), | |
5618 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5619 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5620 | fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5621 | fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5622 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMMass[nlm] ) ; | |
5623 | ||
5624 | fhMCPi0DecayPhotonAdjacentMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sMass",snlm[nlm].Data()), | |
5625 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit adjacent cells",snlm[nlm].Data()), | |
29555e96 | 5626 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5627 | fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5628 | fhMCPi0DecayPhotonAdjacentMass[nlm] ->SetXTitle("E (GeV)"); | |
5629 | outputContainer->Add(fhMCPi0DecayPhotonAdjacentMass[nlm] ) ; | |
5630 | ||
5631 | fhMCPi0DecayPhotonHitNoLMMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sMass",snlm[nlm].Data()), | |
5632 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon do not hit Local Maxima",snlm[nlm].Data()), | |
29555e96 | 5633 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5634 | fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5635 | fhMCPi0DecayPhotonHitNoLMMass[nlm] ->SetXTitle("E (GeV)"); | |
5636 | outputContainer->Add(fhMCPi0DecayPhotonHitNoLMMass[nlm] ) ; | |
5637 | ||
5638 | ||
5639 | fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapMass",snlm[nlm].Data()), | |
5640 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5641 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5642 | fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5643 | fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5644 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapMass[nlm]) ; | |
5645 | ||
5646 | fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapMass",snlm[nlm].Data()), | |
5647 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5648 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5649 | fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5650 | fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5651 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapMass[nlm]) ; | |
5652 | ||
5653 | fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapMass",snlm[nlm].Data()), | |
5654 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5655 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5656 | fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5657 | fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5658 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapMass[nlm]) ; | |
5659 | ||
5660 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapMass",snlm[nlm].Data()), | |
5661 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5662 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5663 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5664 | fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5665 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapMass[nlm]) ; | |
5666 | ||
5667 | fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjacentLM%sOverlapMass",snlm[nlm].Data()), | |
5668 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon hit adjacent cells, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5669 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5670 | fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5671 | fhMCPi0DecayPhotonAdjacentOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5672 | outputContainer->Add(fhMCPi0DecayPhotonAdjacentOverlapMass[nlm]) ; | |
5673 | ||
5674 | fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitNoLM%sOverlapMass",snlm[nlm].Data()), | |
5675 | Form("Mass vs E for merged pi0 cluster, NLM=%s, decay photon do not hit Local Maxima, there was an overlap",snlm[nlm].Data()), | |
29555e96 | 5676 | nptbins,ptmin,ptmax,mbins,mmin,mmax); |
b583134f | 5677 | fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetYTitle("Mass (MeV/c^{2})"); |
5678 | fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm] ->SetXTitle("E (GeV)"); | |
5679 | outputContainer->Add(fhMCPi0DecayPhotonHitNoLMOverlapMass[nlm]) ; | |
29555e96 | 5680 | |
b583134f | 5681 | fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1",snlm[nlm].Data()), |
29555e96 | 5682 | Form("(E_{reco}-E_{gen})/E_{gen} vs E pi0 for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5683 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5684 | fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5685 | fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5686 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1[nlm] ) ; |
5687 | ||
5688 | fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5689 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), |
5690 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5691 | fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5692 | fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ->SetXTitle("E pi0 (GeV)"); |
b583134f | 5693 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1[nlm] ) ; |
5694 | ||
5695 | fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5696 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), |
5697 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5698 | fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
5699 | fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
b583134f | 5700 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1[nlm] ) ; |
5701 | ||
5702 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5703 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), |
5704 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5705 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5706 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5707 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1[nlm] ) ; |
5708 | ||
5709 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5710 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), |
5711 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5712 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5713 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5714 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1[nlm]) ; |
5715 | ||
5716 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5717 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), |
5718 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5719 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5720 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5721 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1[nlm]) ; |
5722 | ||
5723 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5724 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), |
5725 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5726 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5727 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5728 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1[nlm]) ; |
5729 | ||
5730 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1",snlm[nlm].Data()), | |
29555e96 | 5731 | Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), |
5732 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
cb99fa55 | 5733 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); |
29555e96 | 5734 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5735 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1[nlm]) ; |
5736 | ||
5737 | fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5738 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5739 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5740 | fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5741 | fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5742 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2[nlm] ) ; |
5743 | ||
5744 | fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5745 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5746 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5747 | fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5748 | fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5749 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2[nlm] ) ; |
5750 | ||
5751 | fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5752 | Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5753 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5754 | fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5755 | fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5756 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2[nlm] ) ; |
5757 | ||
5758 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5759 | Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), |
cb99fa55 | 5760 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5761 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5762 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5763 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2[nlm] ) ; |
5764 | ||
5765 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5766 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), |
cb99fa55 | 5767 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5768 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5769 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5770 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2[nlm]) ; |
5771 | ||
5772 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5773 | Form("E_{reco}-E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), |
cb99fa55 | 5774 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5775 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5776 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5777 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2[nlm]) ; |
5778 | ||
5779 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5780 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), |
cb99fa55 | 5781 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5782 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5783 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5784 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2[nlm]) ; |
5785 | ||
5786 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2",snlm[nlm].Data()), | |
29555e96 | 5787 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{pi0 reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), |
cb99fa55 | 5788 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); |
5789 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
29555e96 | 5790 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm] ->SetXTitle("E_{pi0 reco} (GeV)"); |
b583134f | 5791 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2[nlm]) ; |
29555e96 | 5792 | |
5793 | ||
5794 | fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM1vsELM1",snlm[nlm].Data()), | |
5795 | Form("(E_{reco}-E_{gen})/E_{gen} vs E for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), | |
5796 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5797 | fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5798 | fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5799 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM1vsELM1[nlm] ) ; | |
5800 | ||
5801 | fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM1vsELM1",snlm[nlm].Data()), | |
5802 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), | |
5803 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5804 | fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5805 | fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ->SetXTitle("E (GeV)"); | |
5806 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM1vsELM1[nlm] ) ; | |
5807 | ||
5808 | fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()), | |
5809 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), | |
5810 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5811 | fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5812 | fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5813 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM1vsELM1[nlm] ) ; | |
5814 | ||
5815 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM1vsELM1",snlm[nlm].Data()), | |
5816 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), | |
5817 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5818 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5819 | fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5820 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM1vsELM1[nlm] ) ; | |
5821 | ||
5822 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()), | |
5823 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5824 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5825 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5826 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5827 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM1vsELM1[nlm]) ; | |
5828 | ||
5829 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()), | |
5830 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5831 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5832 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5833 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5834 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM1vsELM1[nlm]) ; | |
5835 | ||
5836 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()), | |
5837 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5838 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5839 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5840 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5841 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM1vsELM1[nlm]) ; | |
5842 | ||
5843 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM1vsELM1",snlm[nlm].Data()), | |
5844 | Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5845 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5846 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5847 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5848 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM1vsELM1[nlm]) ; | |
5849 | ||
5850 | fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sDiffELM2vsELM2",snlm[nlm].Data()), | |
5851 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima",snlm[nlm].Data()), | |
5852 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5853 | fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5854 | fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5855 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMDiffELM2vsELM2[nlm] ) ; | |
5856 | ||
5857 | fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sDiffELM2vsELM2",snlm[nlm].Data()), | |
5858 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima",snlm[nlm].Data()), | |
5859 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5860 | fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5861 | fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5862 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMDiffELM2vsELM2[nlm] ) ; | |
5863 | ||
5864 | fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()), | |
5865 | Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima",snlm[nlm].Data()), | |
5866 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5867 | fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5868 | fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5869 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMDiffELM2vsELM2[nlm] ) ; | |
5870 | ||
5871 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sDiffELM2vsELM2",snlm[nlm].Data()), | |
5872 | Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima",snlm[nlm].Data()), | |
5873 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5874 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5875 | fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5876 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMDiffELM2vsELM2[nlm] ) ; | |
5877 | ||
5878 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()), | |
5879 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5880 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5881 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5882 | fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5883 | outputContainer->Add(fhMCPi0DecayPhotonHitHighLMOverlapDiffELM2vsELM2[nlm]) ; | |
5884 | ||
5885 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjHighLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()), | |
5886 | Form("E_{reco}-E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to High Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5887 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5888 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5889 | fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5890 | outputContainer->Add(fhMCPi0DecayPhotonAdjHighLMOverlapDiffELM2vsELM2[nlm]) ; | |
5891 | ||
5892 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonHitOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()), | |
5893 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5894 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5895 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5896 | fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5897 | outputContainer->Add(fhMCPi0DecayPhotonHitOtherLMOverlapDiffELM2vsELM2[nlm]) ; | |
5898 | ||
5899 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] = new TH2F(Form("hMCPi0DecayPhotonAdjOtherLM%sOverlapDiffELM2vsELM2",snlm[nlm].Data()), | |
5900 | Form("(E_{reco}-E_{gen})/E_{gen} vs E_{reco} for merged pi0 cluster, NLM=%s, decay photon hit cells adjacent to Other Local Maxima, there was an overlap",snlm[nlm].Data()), | |
5901 | nptbins,ptmin,ptmax,200,-2,2);//nptbins,-ptmax/4,ptmax/4); | |
5902 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetYTitle("(E_{reco}-E_{gen})/E_{gen}"); | |
5903 | fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm] ->SetXTitle("E_{reco} (GeV)"); | |
5904 | outputContainer->Add(fhMCPi0DecayPhotonAdjOtherLMOverlapDiffELM2vsELM2[nlm]) ; | |
5905 | ||
b583134f | 5906 | } |
5907 | ||
b2e375c7 | 5908 | fhMCEOverlapType = new TH2F("hMCEOverlapType","Kind of overlap particle, neutral clusters", |
5909 | nptbins,ptmin,ptmax,5,0,5); | |
5910 | //fhMCEOverlapType ->SetYTitle("Overlap Type"); | |
5911 | fhMCEOverlapType->GetYaxis()->SetBinLabel(1 ,"#gamma"); | |
5912 | fhMCEOverlapType->GetYaxis()->SetBinLabel(2 ,"e^{#pm}"); | |
5913 | fhMCEOverlapType->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}"); | |
5914 | fhMCEOverlapType->GetYaxis()->SetBinLabel(4 ,"hadron^{0}"); | |
5915 | fhMCEOverlapType->GetYaxis()->SetBinLabel(5 ,"??"); | |
36769d30 | 5916 | fhMCEOverlapType->SetXTitle("Cluster E (GeV)"); |
b2e375c7 | 5917 | outputContainer->Add(fhMCEOverlapType) ; |
1253480f | 5918 | |
b2e375c7 | 5919 | fhMCEOverlapTypeMatch = new TH2F("hMCEOverlapTypeMatched","Kind of overlap particle, charged clusters", |
1253480f | 5920 | nptbins,ptmin,ptmax,5,0,5); |
b2e375c7 | 5921 | //fhMCEOverlapTypeMatch ->SetYTitle("Overlap Type"); |
5922 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(1 ,"#gamma"); | |
5923 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(2 ,"e^{#pm}"); | |
5924 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(3 ,"hadron^{#pm}"); | |
5925 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(4 ,"hadron^{0}"); | |
5926 | fhMCEOverlapTypeMatch->GetYaxis()->SetBinLabel(5 ,"??"); | |
5927 | fhMCEOverlapTypeMatch->SetXTitle("Cluster E (GeV)"); | |
5928 | outputContainer->Add(fhMCEOverlapTypeMatch) ; | |
1253480f | 5929 | |
b2e375c7 | 5930 | }// MC analysis, check overlaps |
5931 | ||
ce49dd72 | 5932 | |
b583134f | 5933 | if(IsDataMC()) |
5934 | { | |
5935 | for(Int_t inlm = 0; inlm < 3; inlm++) | |
5936 | { | |
5937 | fhAsyMCGenRecoDiffMCPi0[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0",snlm[inlm].Data()), | |
5938 | Form("Reconstructed - Generated asymmetry with NLM=%d vs E, MC Pi0",inlm), | |
5939 | nptbins,ptmin,ptmax,200,-1,1); | |
5940 | fhAsyMCGenRecoDiffMCPi0[inlm]->SetYTitle("A_{reco} - A_{gen}"); | |
5941 | fhAsyMCGenRecoDiffMCPi0[inlm]->SetXTitle("E (GeV)"); | |
5942 | outputContainer->Add(fhAsyMCGenRecoDiffMCPi0[inlm]) ; | |
5943 | ||
5944 | fhAsyMCGenRecoDiffMCPi0Conv[inlm] = new TH2F(Form("hAsyMCGenRecoFracNLocMax%sMCPi0Conv",snlm[inlm].Data()), | |
5945 | Form("Reconstructed - Generated asymmetry with NLM=%d vs E, MC Pi0Conv",inlm), | |
5946 | nptbins,ptmin,ptmax,200,-1,1); | |
5947 | fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetYTitle("A_{reco} - A_{gen}"); | |
5948 | fhAsyMCGenRecoDiffMCPi0Conv[inlm]->SetXTitle("E (GeV)"); | |
5949 | outputContainer->Add(fhAsyMCGenRecoDiffMCPi0Conv[inlm]) ; | |
5950 | } | |
5951 | } | |
5952 | ||
cb99fa55 | 5953 | if(fFillArmenterosHisto) |
5954 | { | |
be894c1d | 5955 | Int_t narmbins = 400; |
5956 | Float_t armmin = 0; | |
5957 | Float_t armmax = 0.4; | |
5958 | ||
ed10b649 | 5959 | for(Int_t i = 0; i < 7; i++) // MC bin |
cb99fa55 | 5960 | { |
5961 | for(Int_t j = 0; j < 4; j++) // E bin | |
5962 | { | |
5963 | fhArmNLocMax1[i][j] = new TH2F(Form("hArmNLocMax1EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5964 | Form("Armenteros of splitted cluster with NLM=1, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5965 | 200, -1, 1, narmbins,armmin,armmax); | |
5966 | fhArmNLocMax1[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5967 | fhArmNLocMax1[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5968 | outputContainer->Add(fhArmNLocMax1[i][j]) ; |
5969 | ||
5970 | fhArmNLocMax2[i][j] = new TH2F(Form("hArmNLocMax2EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5971 | Form("Armenteros of splitted cluster with NLM=2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5972 | 200, -1, 1, narmbins,armmin,armmax); | |
5973 | fhArmNLocMax2[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5974 | fhArmNLocMax2[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5975 | outputContainer->Add(fhArmNLocMax2[i][j]) ; |
5976 | ||
5977 | fhArmNLocMaxN[i][j] = new TH2F(Form("hArmNLocMaxNEBin%d%s",j,pname[i].Data()), | |
be894c1d | 5978 | Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5979 | 200, -1, 1, narmbins,armmin,armmax); | |
5980 | fhArmNLocMaxN[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5981 | fhArmNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5982 | outputContainer->Add(fhArmNLocMaxN[i][j]) ; |
5983 | ||
c7e9a4e9 | 5984 | if(asyOn || m02On) |
cb99fa55 | 5985 | { |
5986 | fhArmAfterCutsNLocMax1[i][j] = new TH2F(Form("hArmAfterCutsNLocMax1EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5987 | Form("Armenteros of splitted cluster with NLM=1, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5988 | 200, -1, 1, narmbins,armmin,armmax); | |
5989 | fhArmAfterCutsNLocMax1[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5990 | fhArmAfterCutsNLocMax1[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5991 | outputContainer->Add(fhArmAfterCutsNLocMax1[i][j]) ; |
5992 | ||
5993 | fhArmAfterCutsNLocMax2[i][j] = new TH2F(Form("hArmAfterCutsNLocMax2EBin%d%s",j,pname[i].Data()), | |
be894c1d | 5994 | Form("Armenteros of splitted cluster with NLM=2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
5995 | 200, -1, 1, narmbins,armmin,armmax); | |
5996 | fhArmAfterCutsNLocMax2[i][j]->SetYTitle("p_{T}^{Arm}"); | |
5997 | fhArmAfterCutsNLocMax2[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 5998 | outputContainer->Add(fhArmAfterCutsNLocMax2[i][j]) ; |
5999 | ||
6000 | fhArmAfterCutsNLocMaxN[i][j] = new TH2F(Form("hArmAfterCutsNLocMaxNEBin%d%s",j,pname[i].Data()), | |
be894c1d | 6001 | Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
6002 | 200, -1, 1, narmbins,armmin,armmax); | |
6003 | fhArmAfterCutsNLocMaxN[i][j]->SetYTitle("p_{T}^{Arm}"); | |
6004 | fhArmAfterCutsNLocMaxN[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 6005 | outputContainer->Add(fhArmAfterCutsNLocMaxN[i][j]) ; |
6006 | } | |
6007 | ||
6008 | fhArmPi0NLocMax1[i][j] = new TH2F(Form("hArmPi0NLocMax1EBin%d%s",j,pname[i].Data()), | |
be894c1d | 6009 | Form("Armenteros of splitted cluster with NLM=1, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
6010 | 200, -1, 1, narmbins,armmin,armmax); | |
6011 | fhArmPi0NLocMax1[i][j]->SetYTitle("p_{T}^{Arm}"); | |
6012 | fhArmPi0NLocMax1[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 6013 | outputContainer->Add(fhArmPi0NLocMax1[i][j]) ; |
6014 | ||
6015 | fhArmPi0NLocMax2[i][j] = new TH2F(Form("hArmPi0NLocMax2EBin%d%s",j,pname[i].Data()), | |
be894c1d | 6016 | Form("Armenteros of splitted cluster with NLM=2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
6017 | 200, -1, 1, narmbins,armmin,armmax); | |
6018 | fhArmPi0NLocMax2[i][j]->SetYTitle("p_{T}^{Arm}"); | |
6019 | fhArmPi0NLocMax2[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 6020 | outputContainer->Add(fhArmPi0NLocMax2[i][j]) ; |
6021 | ||
6022 | fhArmPi0NLocMaxN[i][j] = new TH2F(Form("hArmPi0NLocMaxNEBin%d%s",j,pname[i].Data()), | |
be894c1d | 6023 | Form("Armenteros of splitted cluster with NLM>2, %s, %s",sEBin[j].Data(),ptype[i].Data()), |
6024 | 200, -1, 1, narmbins,armmin,armmax); | |
6025 | fhArmPi0NLocMaxN[i][j]->SetYTitle("p_{T}^{Arm}"); | |
6026 | fhArmPi0NLocMaxN[i][j]->SetXTitle("#alpha^{Arm}"); | |
cb99fa55 | 6027 | outputContainer->Add(fhArmPi0NLocMaxN[i][j]) ; |
6028 | ||
6029 | } | |
6030 | } | |
6031 | } | |
6032 | ||
992b14a7 | 6033 | return outputContainer ; |
6034 | ||
6035 | } | |
6036 | ||
b2e375c7 | 6037 | //_____________________________________________________________________________ |
4914e781 | 6038 | void AliAnaInsideClusterInvariantMass::GetMCIndex(AliVCluster* cluster, |
6039 | Int_t & mcindex, Int_t & tag) | |
b2e375c7 | 6040 | { |
6041 | ||
6042 | // Assign mc index depending on MC bit set, to be used in histograms arrays | |
1253480f | 6043 | |
4914e781 | 6044 | tag = GetMCAnalysisUtils()->CheckOrigin(cluster->GetLabels(),cluster->GetNLabels(), GetReader()); |
b2e375c7 | 6045 | |
6046 | if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) && | |
6047 | !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPi0; | |
6048 | else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0) ) mcindex = kmcPi0Conv; | |
6049 | else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta) ) mcindex = kmcEta; | |
6050 | else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) && | |
6051 | !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcPhoton; | |
6052 | else if ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton) && | |
6053 | GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion)) mcindex = kmcConversion; | |
cb99fa55 | 6054 | else if (!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron) ) mcindex = kmcHadron; |
6055 | ||
6056 | //printf("MC index %d\n",mcindex); | |
b2e375c7 | 6057 | |
6058 | } | |
6059 | ||
b94e038e | 6060 | //____________________________________________________________________________________________ |
6061 | void AliAnaInsideClusterInvariantMass::GetMCPrimaryKine(AliVCluster* cluster, Int_t mcindex, | |
6062 | Int_t mctag, Bool_t matched, | |
6063 | Float_t & eprim, Float_t & asymGen, | |
6064 | Float_t & angleGen, Int_t & noverlaps ) | |
b2e375c7 | 6065 | { |
6066 | // Check origin of the candidates, get primary kinematics if overlapped meson decay | |
6067 | ||
b2e375c7 | 6068 | Bool_t ok = kFALSE; |
6069 | Int_t mcLabel = cluster->GetLabel(); | |
6070 | ||
6071 | TLorentzVector primary = GetMCAnalysisUtils()->GetMother(mcLabel,GetReader(),ok); | |
6072 | eprim = primary.E(); | |
6073 | ||
36769d30 | 6074 | Int_t mesonLabel = -1; |
6075 | ||
b2e375c7 | 6076 | if(mcindex == kmcPi0 || mcindex == kmcEta || mcindex == kmcPi0Conv) |
6077 | { | |
6078 | if(mcindex == kmcPi0 || mcindex == kmcPi0Conv) | |
6079 | { | |
0186b6a2 | 6080 | GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,111,GetReader(),asymGen,angleGen,ok); |
6081 | asymGen = TMath::Abs(asymGen); | |
36769d30 | 6082 | TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,111,GetReader(),ok,mesonLabel); |
b2e375c7 | 6083 | if(grandmom.E() > 0 && ok) eprim = grandmom.E(); |
6084 | } | |
6085 | else | |
6086 | { | |
0186b6a2 | 6087 | GetMCAnalysisUtils()->GetMCDecayAsymmetryAngleForPDG(mcLabel,221,GetReader(),asymGen,angleGen,ok); |
6088 | asymGen = TMath::Abs(asymGen); | |
36769d30 | 6089 | TLorentzVector grandmom = GetMCAnalysisUtils()->GetMotherWithPDG(mcLabel,221,GetReader(),ok,mesonLabel); |
b2e375c7 | 6090 | if(grandmom.E() > 0 && ok) eprim = grandmom.E(); |
6091 | } | |
6092 | } | |
6093 | ||
6094 | if(!fFillMCOverlapHisto) return; | |
36769d30 | 6095 | |
4914e781 | 6096 | const UInt_t nlabels = cluster->GetNLabels(); |
6097 | Int_t overpdg[nlabels]; | |
6098 | noverlaps = GetMCAnalysisUtils()->GetNOverlaps(cluster->GetLabels(), nlabels,mctag,mesonLabel,GetReader(),overpdg); | |
6099 | ||
6100 | for(Int_t iover = 0; iover < noverlaps; iover++) | |
6101 | { | |
36769d30 | 6102 | Float_t histobin = -1; |
4914e781 | 6103 | Int_t mpdg = overpdg[iover]; |
6104 | ||
36769d30 | 6105 | if (mpdg==22) histobin = 0.5; |
6106 | else if(TMath::Abs(mpdg)==11) histobin = 1.5; | |
6107 | else if(mpdg==-999999) histobin = 4.5; | |
6108 | else | |
6109 | { | |
6110 | Double_t charge = TDatabasePDG::Instance()->GetParticle(mpdg)->Charge(); | |
6111 | if(TMath::Abs(charge) > 0 ) histobin = 2.5; | |
6112 | else histobin = 3.5; | |
6113 | //printf("charge %f\n",charge); | |
6114 | } | |
6115 | ||
6116 | //printf("\t pdg = %d, histobin %2.1f\n",mpdg,histobin); | |
6117 | if(histobin > 0) | |
6118 | { | |
6119 | if(matched)fhMCEOverlapType ->Fill(cluster->E(),histobin); | |
6120 | else fhMCEOverlapTypeMatch->Fill(cluster->E(),histobin); | |
6121 | } | |
b2e375c7 | 6122 | } |
b2e375c7 | 6123 | } |
6124 | ||
992b14a7 | 6125 | //___________________________________________ |
6126 | void AliAnaInsideClusterInvariantMass::Init() | |
b2e375c7 | 6127 | { |
992b14a7 | 6128 | //Init |
6129 | //Do some checks | |
a6d3b0a8 | 6130 | |
3c1d9afb | 6131 | if(fCalorimeter == "PHOS" && !GetReader()->IsPHOSSwitchedOn() && NewOutputAOD()) |
6132 | { | |
a6d3b0a8 | 6133 | AliFatal("!!STOP: You want to use PHOS in analysis but it is not read!! \n!!Check the configuration file!!\n"); |
992b14a7 | 6134 | } |
3c1d9afb | 6135 | else if(fCalorimeter == "EMCAL" && !GetReader()->IsEMCALSwitchedOn() && NewOutputAOD()) |
6136 | { | |
a6d3b0a8 | 6137 | AliFatal("!!STOP: You want to use EMCAL in analysis but it is not read!! \n!!Check the configuration file!!\n"); |
992b14a7 | 6138 | } |
6139 | ||
3c1d9afb | 6140 | if( GetReader()->GetDataType() == AliCaloTrackReader::kMC ) |
6141 | { | |
a6d3b0a8 | 6142 | AliFatal("!!STOP: You want to use pure MC data!!\n"); |
992b14a7 | 6143 | } |
6144 | ||
6145 | } | |
6146 | ||
6147 | //_____________________________________________________ | |
6148 | void AliAnaInsideClusterInvariantMass::InitParameters() | |
6149 | { | |
6150 | //Initialize the parameters of the analysis. | |
6151 | AddToHistogramsName("AnaPi0InsideClusterInvariantMass_"); | |
6152 | ||
6153 | fCalorimeter = "EMCAL" ; | |
29ca9cad | 6154 | |
992b14a7 | 6155 | fMinNCells = 4 ; |
2cb134fb | 6156 | fMinBadDist = 2 ; |
dbe09c26 | 6157 | |
b2e375c7 | 6158 | fHistoECut = 8 ; |
6159 | ||
dbe09c26 | 6160 | fSSWeightN = 5; |
6161 | fSSWeight[0] = 4.6; fSSWeight[1] = 4.7; fSSWeight[2] = 4.8; fSSWeight[3] = 4.9; fSSWeight[4] = 5.0; | |
6162 | fSSWeight[5] = 5.1; fSSWeight[6] = 5.2; fSSWeight[7] = 5.3; fSSWeight[8] = 5.4; fSSWeight[9] = 5.5; | |
19391b8c | 6163 | |
6164 | fSSECellCutN = 10; | |
6165 | fSSECellCut[0] = 0.16; fSSECellCut[1] = 0.18; fSSECellCut[2] = 0.2; fSSECellCut[3] = 0.22; fSSECellCut[4] = 0.24; | |
6166 | fSSECellCut[5] = 0.26; fSSECellCut[6] = 0.28; fSSECellCut[7] = 0.3; fSSECellCut[8] = 0.32; fSSECellCut[9] = 0.34; | |
6167 | ||
992b14a7 | 6168 | } |
6169 | ||
6170 | ||
6171 | //__________________________________________________________________ | |
6172 | void AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms() | |
6173 | { | |
6174 | //Search for pi0 in fCalorimeter with shower shape analysis | |
6175 | ||
6176 | TObjArray * pl = 0x0; | |
6177 | AliVCaloCells* cells = 0x0; | |
6178 | ||
6179 | //Select the Calorimeter of the photon | |
2cb134fb | 6180 | if(fCalorimeter == "PHOS") |
6181 | { | |
992b14a7 | 6182 | pl = GetPHOSClusters(); |
6183 | cells = GetPHOSCells(); | |
6184 | } | |
2cb134fb | 6185 | else if (fCalorimeter == "EMCAL") |
6186 | { | |
992b14a7 | 6187 | pl = GetEMCALClusters(); |
6188 | cells = GetEMCALCells(); | |
6189 | } | |
6190 | ||
3c1d9afb | 6191 | if(!pl || !cells) |
6192 | { | |
992b14a7 | 6193 | Info("MakeAnalysisFillHistograms","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data()); |
6194 | return; | |
6195 | } | |
6196 | ||
6197 | if(fCalorimeter == "PHOS") return; // Not implemented for PHOS yet | |
6198 | ||
2cb134fb | 6199 | for(Int_t icluster = 0; icluster < pl->GetEntriesFast(); icluster++) |
6200 | { | |
992b14a7 | 6201 | AliVCluster * cluster = (AliVCluster*) (pl->At(icluster)); |
6202 | ||
b2e375c7 | 6203 | //------------------------------------------- |
6204 | // Get cluster parameters, do some rejection | |
6205 | //------------------------------------------- | |
8edbd100 | 6206 | |
992b14a7 | 6207 | Float_t en = cluster->E(); |
6208 | Float_t l0 = cluster->GetM02(); | |
6209 | Int_t nc = cluster->GetNCells(); | |
2cb134fb | 6210 | Float_t bd = cluster->GetDistanceToBadChannel() ; |
d2655d46 | 6211 | |
2cb134fb | 6212 | //If too small or big E or low number of cells, or close to a bad channel skip it |
b2e375c7 | 6213 | |
8edbd100 | 6214 | if( en < GetMinEnergy() || en > GetMaxEnergy() || nc < fMinNCells || bd < fMinBadDist) continue ; |
2cb134fb | 6215 | |
83351853 | 6216 | //printf("en %2.3f GetMinEnergy() %2.3f, GetMaxEnergy() %2.3f , nc %d fMinNCells %d\n",en, GetMinEnergy(),GetMaxEnergy(),nc ,fMinNCells); |
6217 | ||
b2e375c7 | 6218 | // Track-cluster matching |
6219 | ||
6220 | Bool_t matched = IsTrackMatched(cluster,GetReader()->GetInputEvent()); | |
6221 | if(!fFillTMHisto && matched) continue ; | |
6222 | ||
6223 | // Get cluster angles | |
6224 | ||
9554fc65 | 6225 | TLorentzVector lv; |
6226 | cluster->GetMomentum(lv, GetVertex(0)); | |
6227 | Float_t eta = lv.Eta(); | |
6228 | Float_t phi = lv.Phi(); | |
6229 | if(phi<0) phi=+TMath::TwoPi(); | |
6230 | ||
2cb134fb | 6231 | //printf("en %2.2f, GetMinEnergy() %2.2f, GetMaxEnergy() %2.2f, nc %d, fMinNCells %d, bd %2.2f, fMinBadDist %2.2f\n", |
6232 | // en,GetMinEnergy(), GetMaxEnergy(), nc, fMinNCells, bd, fMinBadDist); | |
6233 | ||
b2e375c7 | 6234 | // Get PID, N local maximum, *** split cluster *** |
d2655d46 | 6235 | |
3c1d9afb | 6236 | Int_t nMax = 0; |
bfdcf7fb | 6237 | Double_t mass = 0., angle = 0.; |
cb99fa55 | 6238 | TLorentzVector lv1, lv2; |
4914e781 | 6239 | Int_t absId1 =-1; Int_t absId2 =-1; |
6240 | Float_t distbad1 =-1; Float_t distbad2 =-1; | |
6241 | Bool_t fidcut1 = 0; Bool_t fidcut2 = 0; | |
b2e375c7 | 6242 | |
3c1d9afb | 6243 | Int_t pidTag = GetCaloPID()->GetIdentifiedParticleTypeFromClusterSplitting(cluster,cells,GetCaloUtils(), |
19391b8c | 6244 | GetVertex(0), nMax, mass, angle, |
cb99fa55 | 6245 | lv1,lv2,absId1,absId2, |
4914e781 | 6246 | distbad1,distbad2,fidcut1,fidcut2); |
5c46c992 | 6247 | if (nMax <= 0) |
6248 | { | |
de454976 | 6249 | if(GetDebug() > 0 ) |
a6d3b0a8 | 6250 | Info("MakeAnalysisFillHistograms","No local maximum found! It did not pass CaloPID selection criteria \n"); |
5c46c992 | 6251 | |
4914e781 | 6252 | continue; |
992b14a7 | 6253 | } |
6254 | ||
ce49dd72 | 6255 | // Set some index for array histograms |
6256 | ||
6257 | Int_t inlm = -1; | |
6258 | if (nMax == 1) inlm = 0; | |
6259 | else if(nMax == 2) inlm = 1; | |
6260 | else if(nMax > 2) inlm = 2; | |
a6d3b0a8 | 6261 | else Info("MakeAnalysisFillHistograms","Wrong N local maximum -> %d, n cells in cluster %d \n",nMax,nc); |
ce49dd72 | 6262 | |
4914e781 | 6263 | // Skip events where one of the new clusters (lowest energy) is close to an EMCal border or a bad channel |
1253480f | 6264 | if( (fCheckSplitDistToBad) && |
6265 | (!fidcut2 || !fidcut1 || distbad1 < fMinBadDist || distbad2 < fMinBadDist)) | |
4914e781 | 6266 | { |
6267 | if(GetDebug() > 1) | |
a6d3b0a8 | 6268 | Info("MakeAnalysisFillHistograms","Dist to bad channel cl1 %f, cl2 %f; fid cl1 %d, cl2 %d \n", |
4914e781 | 6269 | distbad1,distbad2, fidcut1,fidcut2); |
ce49dd72 | 6270 | |
6271 | if(distbad1 < fMinBadDist || distbad2 < fMinBadDist) | |
6272 | { | |
6273 | fhMassBadDistClose[inlm]->Fill(en,mass); | |
6274 | fhM02BadDistClose [inlm]->Fill(en,l0 ); | |
6275 | } | |
6276 | ||
6277 | if(!fidcut1 || !fidcut2) | |
6278 | { | |
6279 | fhMassOnBorder[inlm]->Fill(en,mass); | |
6280 | fhM02OnBorder [inlm]->Fill(en,l0 ); | |
6281 | } | |
6282 | ||
4914e781 | 6283 | continue ; |
6284 | } | |
6285 | ||
b2e375c7 | 6286 | // Get sub-cluster parameters |
6287 | ||
cb99fa55 | 6288 | Float_t e1 = lv1.Energy(); |
6289 | Float_t e2 = lv2.Energy(); | |
cfdf2b91 | 6290 | |
a1fd1b69 | 6291 | Double_t tof1 = cells->GetCellTime(absId1); |
6292 | GetCaloUtils()->RecalibrateCellTime(tof1, fCalorimeter, absId1,GetReader()->GetInputEvent()->GetBunchCrossNumber()); | |
6293 | tof1*=1.e9; | |
6294 | ||
6295 | Double_t tof2 = cells->GetCellTime(absId2); | |
6296 | GetCaloUtils()->RecalibrateCellTime(tof2, fCalorimeter, absId2,GetReader()->GetInputEvent()->GetBunchCrossNumber()); | |
6297 | tof2*=1.e9; | |
6298 | ||
6299 | Double_t t12diff = tof1-tof2; | |
6300 | ||
fc01318e | 6301 | Float_t splitFrac = (e1+e2)/en; |
cfdf2b91 | 6302 | |
e671adc2 | 6303 | Float_t asym = -10; |
6304 | if(e1+e2>0) asym = (e1-e2)/(e1+e2); | |
29ca9cad | 6305 | |
b2e375c7 | 6306 | // |
6307 | ||
6308 | Int_t ebin = -1; | |
6309 | if(en > 8 && en <= 12) ebin = 0; | |
6310 | if(en > 12 && en <= 16) ebin = 1; | |
6311 | if(en > 16 && en <= 20) ebin = 2; | |
6312 | if(en > 20) ebin = 3; | |
6313 | ||
1253480f | 6314 | // MC data histograms and some related calculations |
6315 | // mc tag, n overlaps, asym of generated mesons | |
b2e375c7 | 6316 | |
0186b6a2 | 6317 | Int_t mcindex = -1; |
6318 | Int_t mctag = -1; | |
6319 | Float_t eprim = -1; | |
6320 | Float_t asymGen = -2; | |
6321 | Float_t angleGen = 2000; | |
6322 | Int_t noverlaps = 0; | |
b2e375c7 | 6323 | |
b2e375c7 | 6324 | if(IsDataMC()) |
1253480f | 6325 | { |
6326 | // MC indexes | |
b2e375c7 | 6327 | |
1253480f | 6328 | GetMCIndex(cluster,mcindex,mctag); |
6329 | ||
6330 | // MC primary kine, generation fractions | |
b2e375c7 | 6331 | |
0186b6a2 | 6332 | GetMCPrimaryKine(cluster,mcindex,mctag,matched,eprim,asymGen,angleGen,noverlaps); |
1253480f | 6333 | |
6334 | // For cluster with MC pi0 and more than 1 maxima | |
b2e375c7 | 6335 | |
cb99fa55 | 6336 | } |
5c46c992 | 6337 | |
b2e375c7 | 6338 | // |
2a77f6f4 | 6339 | |
1253480f | 6340 | FillHistograms1(en, e1, e2, nMax, mass, l0, eta, phi, matched, mcindex); |
4914e781 | 6341 | |
6342 | // | |
6343 | ||
1253480f | 6344 | if(fFillNCellHisto) |
6345 | FillNCellHistograms(nc,en, nMax,matched, mcindex,mass,l0); | |
d2655d46 | 6346 | |
b2e375c7 | 6347 | // |
bb2d339b | 6348 | |
1253480f | 6349 | if(fFillSSExtraHisto) |
cb99fa55 | 6350 | FillSSExtraHistograms(cluster, nMax, matched,mcindex,mass,ebin) ; |
d2655d46 | 6351 | |
b2e375c7 | 6352 | // |
1253480f | 6353 | |
cb99fa55 | 6354 | if(!matched && ebin >= 0 && fFillEbinHisto) |
1253480f | 6355 | FillEBinHistograms(ebin,nMax,mcindex,splitFrac,mass,asym,l0); |
fc01318e | 6356 | |
b2e375c7 | 6357 | // |
6358 | ||
1253480f | 6359 | if(fFillAngleHisto) |
a6d3b0a8 | 6360 | FillAngleHistograms(nMax,matched,mcindex,en,e1,e2,angle,mass,angleGen,l0, asym,pidTag,noverlaps); |
1253480f | 6361 | |
cb99fa55 | 6362 | if(fFillArmenterosHisto && ebin >= 0) |
29555e96 | 6363 | FillArmenterosHistograms(nMax, ebin, mcindex, en, lv1, lv2, l0, pidTag); |
6364 | ||
6365 | if(fFillThetaStarHisto) | |
6366 | FillThetaStarHistograms(nMax,matched,mcindex, en, lv1, lv2, l0, pidTag); | |
6367 | ||
cb99fa55 | 6368 | |
26680f06 | 6369 | //--------------------------------------------------------------------- |
1253480f | 6370 | // From here start applying some cuts |
26680f06 | 6371 | //--------------------------------------------------------------------- |
cb99fa55 | 6372 | |
6373 | // If set, check just on MC clusters when SS cut is applied | |
6374 | if( IsDataMC() && mcindex > 0 && mcindex < 7 && GetCaloPID()->IsInM02Range(l0) ) | |
6375 | { | |
6376 | // For cluster with MC pi0 and more than 1 maxima | |
6377 | ||
6378 | if(fFillMCOverlapHisto) | |
6379 | CheckLocalMaximaMCOrigin(cluster, mcindex,noverlaps,e1,e2,mass); | |
6380 | //l0, l1, l2); | |
6381 | ||
6382 | // | |
6383 | ||
6384 | if(fFillMCHisto) | |
6385 | FillMCHistograms(en,e1,e2,ebin,mcindex,noverlaps,l0,mass, | |
6386 | nMax,matched,splitFrac, asym, eprim,asymGen); | |
6387 | ||
6388 | // | |
6389 | ||
6390 | if(fFillMCOverlapHisto) | |
6391 | FillMCOverlapHistograms(en,eprim,nc,mass,l0,asym,splitFrac,inlm,ebin,matched,mcindex,noverlaps); | |
6392 | ||
6393 | } | |
6394 | ||
6395 | // Fill few histograms, some still without cuts | |
1253480f | 6396 | FillHistograms2(en, eprim, e1, e2, nMax, mass, l0, matched, mcindex); |
26680f06 | 6397 | |
1253480f | 6398 | if(pidTag==AliCaloPID::kPi0) |
b2e375c7 | 6399 | { |
1253480f | 6400 | FillIdPi0Histograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex); |
17f5b4b6 | 6401 | |
1253480f | 6402 | if(fFillSSWeightHisto) |
6403 | FillSSWeightHistograms(cluster, inlm, absId1, absId2); | |
cc909e6f | 6404 | |
6405 | if(fFillTMHisto && fFillTMResidualHisto) | |
6406 | FillTrackMatchingHistograms(cluster,nMax,mcindex); | |
6407 | ||
cb99fa55 | 6408 | if(fFillMCOverlapHisto && IsDataMC() && mcindex > 0 && mcindex < 7 && !matched) |
cc909e6f | 6409 | { |
6410 | if (noverlaps == 0) fhMCEEpriOverlap0IdPi0 [inlm][mcindex]->Fill(en, eprim); | |
6411 | else if(noverlaps == 1) fhMCEEpriOverlap1IdPi0 [inlm][mcindex]->Fill(en, eprim); | |
6412 | else if(noverlaps > 1) fhMCEEpriOverlapNIdPi0 [inlm][mcindex]->Fill(en, eprim); | |
6413 | } | |
167f2534 | 6414 | } |
1253480f | 6415 | else if(fFillIdEtaHisto && pidTag==AliCaloPID::kEta) |
5c46c992 | 6416 | { |
1253480f | 6417 | FillIdEtaHistograms(en, e1, e2, nc, nMax, t12diff, mass, l0, eta, phi, matched, mcindex); |
243c2909 | 6418 | } |
1253480f | 6419 | else if(fFillIdConvHisto && pidTag==AliCaloPID::kPhoton) |
5c46c992 | 6420 | { |
1253480f | 6421 | FillIdConvHistograms(en, nMax, asym, mass, l0, matched, mcindex); |
243c2909 | 6422 | } |
6423 | ||
992b14a7 | 6424 | }//loop |
6425 | ||
a6d3b0a8 | 6426 | if(GetDebug() > 1) Info("MakeAnalysisFillHistograms","END \n"); |
e23a0471 | 6427 | |
992b14a7 | 6428 | } |
6429 | ||
6430 | //______________________________________________________________________ | |
6431 | void AliAnaInsideClusterInvariantMass::Print(const Option_t * opt) const | |
6432 | { | |
6433 | //Print some relevant parameters set for the analysis | |
6434 | if(! opt) | |
6435 | return; | |
6436 | ||
6437 | printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ; | |
745913ae | 6438 | AliAnaCaloTrackCorrBaseClass::Print(""); |
243c2909 | 6439 | printf("Calorimeter = %s\n", fCalorimeter.Data()) ; |
19391b8c | 6440 | if(GetCaloUtils()) printf("Loc. Max. E > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutE()); |
6441 | if(GetCaloUtils()) printf("Loc. Max. E Diff > %2.2f\n", GetCaloUtils()->GetLocalMaximaCutEDiff()); | |
cfc19369 | 6442 | printf("Min. N Cells =%d \n", fMinNCells) ; |
6443 | printf("Min. Dist. to Bad =%1.1f \n", fMinBadDist) ; | |
19391b8c | 6444 | if(fFillSSWeightHisto) printf(" N w %d - N e cut %d \n",fSSWeightN,fSSECellCutN); |
6445 | ||
992b14a7 | 6446 | printf(" \n") ; |
6447 | ||
6448 | } | |
6449 | ||
19391b8c | 6450 | //___________________________________________________________________________________________________________________ |
6451 | void AliAnaInsideClusterInvariantMass::RecalculateClusterShowerShapeParametersWithCellCut(const AliEMCALGeometry * geom, | |
6452 | AliVCaloCells* cells, | |
6453 | AliVCluster * cluster, | |
6454 | Float_t & l0, Float_t & l1, | |
6455 | Float_t & disp, Float_t & dEta, Float_t & dPhi, | |
6456 | Float_t & sEta, Float_t & sPhi, Float_t & sEtaPhi, | |
6457 | Float_t eCellMin) | |
6458 | { | |
6459 | // Calculates new center of gravity in the local EMCAL-module coordinates | |
6460 | // and tranfers into global ALICE coordinates | |
6461 | // Calculates Dispersion and main axis | |
6462 | ||
6463 | if(!cluster) | |
6464 | { | |
6465 | AliInfo("Cluster pointer null!"); | |
6466 | return; | |
6467 | } | |
6468 | ||
6469 | Double_t eCell = 0.; | |
6470 | Float_t fraction = 1.; | |
6471 | Float_t recalFactor = 1.; | |
6472 | ||
6473 | Int_t iSupMod = -1; | |
6474 | Int_t iTower = -1; | |
6475 | Int_t iIphi = -1; | |
6476 | Int_t iIeta = -1; | |
6477 | Int_t iphi = -1; | |
6478 | Int_t ieta = -1; | |
6479 | Double_t etai = -1.; | |
6480 | Double_t phii = -1.; | |
6481 | ||
6482 | Int_t nstat = 0 ; | |
6483 | Float_t wtot = 0.; | |
6484 | Double_t w = 0.; | |
6485 | Double_t etaMean = 0.; | |
6486 | Double_t phiMean = 0.; | |
3ae72bd8 | 6487 | |
19391b8c | 6488 | //Loop on cells, calculate the cluster energy, in case a cut on cell energy is added |
3ae72bd8 | 6489 | // and to check if the cluster is between 2 SM in eta |
6490 | Int_t iSM0 = -1; | |
6491 | Bool_t shared = kFALSE; | |
6492 | Float_t energy = 0; | |
6493 | ||
6494 | for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++) | |
19391b8c | 6495 | { |
3ae72bd8 | 6496 | //Get from the absid the supermodule, tower and eta/phi numbers |
6497 | geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta); | |
6498 | geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta); | |
6499 | ||
6500 | //Check if there are cells of different SM | |
6501 | if (iDigit == 0 ) iSM0 = iSupMod; | |
6502 | else if(iSupMod!= iSM0) shared = kTRUE; | |
6503 | ||
6504 | //Get the cell energy, if recalibration is on, apply factors | |
6505 | fraction = cluster->GetCellAmplitudeFraction(iDigit); | |
6506 | if(fraction < 1e-4) fraction = 1.; // in case unfolding is off | |
6507 | ||
6508 | if(GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn()) | |
19391b8c | 6509 | { |
3ae72bd8 | 6510 | recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi); |
6511 | } | |
6512 | ||
6513 | eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor; | |
6514 | ||
9ae170de | 6515 | if(eCell > eCellMin) energy += eCell; |
3ae72bd8 | 6516 | |
6517 | }//cell loop | |
19391b8c | 6518 | |
6519 | //Loop on cells, get weighted parameters | |
6520 | for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++) | |
6521 | { | |
6522 | //Get from the absid the supermodule, tower and eta/phi numbers | |
6523 | geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta); | |
6524 | geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta); | |
6525 | ||
6526 | //Get the cell energy, if recalibration is on, apply factors | |
6527 | fraction = cluster->GetCellAmplitudeFraction(iDigit); | |
6528 | if(fraction < 1e-4) fraction = 1.; // in case unfolding is off | |
6529 | ||
3ae72bd8 | 6530 | if(GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn()) |
6531 | { | |
6532 | recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi); | |
6533 | } | |
19391b8c | 6534 | |
6535 | eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor; | |
6536 | ||
3ae72bd8 | 6537 | // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2 |
6538 | // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0 | |
6539 | if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols; | |
6540 | ||
9ae170de | 6541 | if(energy > 0 && eCell > eCellMin) |
19391b8c | 6542 | { |
6543 | w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy); | |
8edbd100 | 6544 | |
6545 | //correct weight, ONLY in simulation | |
9ae170de | 6546 | w *= (1 - fWSimu * w ); |
aa12888f | 6547 | |
19391b8c | 6548 | etai=(Double_t)ieta; |
6549 | phii=(Double_t)iphi; | |
6550 | ||
6551 | if(w > 0.0) | |
6552 | { | |
6553 | wtot += w ; | |
6554 | nstat++; | |
6555 | //Shower shape | |
6556 | sEta += w * etai * etai ; | |
6557 | etaMean += w * etai ; | |
6558 | sPhi += w * phii * phii ; | |
6559 | phiMean += w * phii ; | |
6560 | sEtaPhi += w * etai * phii ; | |
6561 | } | |
6562 | } | |
9ae170de | 6563 | else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy)); |
19391b8c | 6564 | |
6565 | }//cell loop | |
6566 | ||
6567 | //Normalize to the weight | |
6568 | if (wtot > 0) | |
6569 | { | |
6570 | etaMean /= wtot ; | |
6571 | phiMean /= wtot ; | |
6572 | } | |
6573 | else | |
6574 | AliError(Form("Wrong weight %f\n", wtot)); | |
6575 | ||
6576 | //Calculate dispersion | |
6577 | for(Int_t iDigit=0; iDigit < cluster->GetNCells(); iDigit++) | |
6578 | { | |
6579 | //Get from the absid the supermodule, tower and eta/phi numbers | |
6580 | geom->GetCellIndex(cluster->GetCellAbsId(iDigit),iSupMod,iTower,iIphi,iIeta); | |
6581 | geom->GetCellPhiEtaIndexInSModule(iSupMod,iTower,iIphi,iIeta, iphi,ieta); | |
6582 | ||
6583 | //Get the cell energy, if recalibration is on, apply factors | |
6584 | fraction = cluster->GetCellAmplitudeFraction(iDigit); | |
6585 | if(fraction < 1e-4) fraction = 1.; // in case unfolding is off | |
6586 | if (GetCaloUtils()->GetEMCALRecoUtils()->IsRecalibrationOn()) | |
6587 | { | |
6588 | recalFactor = GetCaloUtils()->GetEMCALRecoUtils()->GetEMCALChannelRecalibrationFactor(iSupMod,ieta,iphi); | |
6589 | } | |
3ae72bd8 | 6590 | |
19391b8c | 6591 | eCell = cells->GetCellAmplitude(cluster->GetCellAbsId(iDigit))*fraction*recalFactor; |
6592 | ||
3ae72bd8 | 6593 | // In case of a shared cluster, index of SM in C side, columns start at 48 and ends at 48*2 |
6594 | // C Side impair SM, nSupMod%2=1; A side pair SM, nSupMod%2=0 | |
6595 | if(shared && iSupMod%2) ieta+=AliEMCALGeoParams::fgkEMCALCols; | |
6596 | ||
9ae170de | 6597 | if(energy > 0 && eCell > eCellMin) |
19391b8c | 6598 | { |
6599 | w = GetCaloUtils()->GetEMCALRecoUtils()->GetCellWeight(eCell,energy); | |
6600 | ||
8edbd100 | 6601 | //correct weight, ONLY in simulation |
9ae170de | 6602 | w *= (1 - fWSimu * w ); |
8edbd100 | 6603 | |
19391b8c | 6604 | etai=(Double_t)ieta; |
6605 | phii=(Double_t)iphi; | |
6606 | if(w > 0.0) | |
6607 | { | |
6608 | disp += w *((etai-etaMean)*(etai-etaMean)+(phii-phiMean)*(phii-phiMean)); | |
6609 | dEta += w * (etai-etaMean)*(etai-etaMean) ; | |
6610 | dPhi += w * (phii-phiMean)*(phii-phiMean) ; | |
6611 | } | |
6612 | } | |
9ae170de | 6613 | else if(energy == 0 || (eCellMin <0.01 && eCell == 0)) AliError(Form("Wrong energy %f and/or amplitude %f\n", eCell, energy)); |
19391b8c | 6614 | }// cell loop |
6615 | ||
6616 | //Normalize to the weigth and set shower shape parameters | |
6617 | if (wtot > 0 && nstat > 1) | |
6618 | { | |
6619 | disp /= wtot ; | |
6620 | dEta /= wtot ; | |
6621 | dPhi /= wtot ; | |
6622 | sEta /= wtot ; | |
6623 | sPhi /= wtot ; | |
6624 | sEtaPhi /= wtot ; | |
6625 | ||
6626 | sEta -= etaMean * etaMean ; | |
6627 | sPhi -= phiMean * phiMean ; | |
6628 | sEtaPhi -= etaMean * phiMean ; | |
6629 | ||
6630 | l0 = (0.5 * (sEta + sPhi) + TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi )); | |
6631 | l1 = (0.5 * (sEta + sPhi) - TMath::Sqrt( 0.25 * (sEta - sPhi) * (sEta - sPhi) + sEtaPhi * sEtaPhi )); | |
6632 | } | |
6633 | else | |
6634 | { | |
6635 | l0 = 0. ; | |
6636 | l1 = 0. ; | |
6637 | dEta = 0. ; dPhi = 0. ; disp = 0. ; | |
6638 | sEta = 0. ; sPhi = 0. ; sEtaPhi = 0. ; | |
6639 | } | |
6640 | ||
6641 | } | |
6642 | ||
992b14a7 | 6643 |