10 #include "TParticle.h"
15 #include "AliAODMCParticle.h"
16 #include "AliAnalysisManager.h"
17 #include "AliMCEventHandler.h"
18 #include "AliMCEvent.h"
20 #include "AliAnalysisTaskSE.h"
21 #include "AliAnalysisTaskPi0DiffEfficiency.h"
22 #include "AliCaloPhoton.h"
23 #include "AliPHOSGeometry.h"
24 #include "AliPHOSAodCluster.h"
25 #include "AliPHOSCalibData.h"
26 #include "AliAODEvent.h"
27 #include "AliAODCaloCluster.h"
28 #include "AliAODVertex.h"
29 #include "AliESDtrackCuts.h"
32 #include "AliCDBManager.h"
33 #include "AliCentrality.h"
35 // Analysis task to calculate pi0 registration efficiency
36 // as a difference between spectra before and after embedding
37 // Authors: Dmitri Peressounko
40 ClassImp(AliAnalysisTaskPi0DiffEfficiency)
42 //________________________________________________________________________
43 AliAnalysisTaskPi0DiffEfficiency::AliAnalysisTaskPi0DiffEfficiency(const char *name)
44 : AliAnalysisTaskPi0Efficiency(name),
53 //________________________________________________________________________
54 void AliAnalysisTaskPi0DiffEfficiency::UserCreateOutputObjects()
60 if(fOutputContainer != NULL){
61 delete fOutputContainer;
63 fOutputContainer = new TList();
64 fOutputContainer->SetOwner(kTRUE);
67 fOutputContainer->Add(new TH1F("hSelEvents","Event celection", 10,0.,10.)) ;
70 fOutputContainer->Add(new TH1F("hZvertex","Z vertex position", 50,-25.,25.)) ;
73 fOutputContainer->Add(new TH1F("hCentrality","Event centrality", 100,0.,100.)) ;
76 fOutputContainer->Add(new TH2F("hCluM1","Cell (X,Z), M1" ,64,0.5,64.5, 56,0.5,56.5));
77 fOutputContainer->Add(new TH2F("hCluM2","Cell (X,Z), M2" ,64,0.5,64.5, 56,0.5,56.5));
78 fOutputContainer->Add(new TH2F("hCluM3","Cell (X,Z), M3" ,64,0.5,64.5, 56,0.5,56.5));
88 for(Int_t cent=0; cent<6; cent++){
91 fOutputContainer->Add(new TH1F(Form("hPhotAll_DistBad2_cen%d",cent),"All clusters",nPt,ptMin,ptMax));
92 fOutputContainer->Add(new TH1F(Form("hPhotAll_DistBad4_cen%d",cent),"All clusters",nPt,ptMin,ptMax));
93 fOutputContainer->Add(new TH1F(Form("hPhotAll_DistBad6_cen%d",cent),"All clusters",nPt,ptMin,ptMax));
94 snprintf(key,55,"hPhotAll_cen%d",cent) ;
95 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
96 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
97 snprintf(key,55,"hPhotAllcore_cen%d",cent) ;
98 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
99 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
100 snprintf(key,55,"hPhotAllwou_cen%d",cent) ;
101 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
102 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
103 snprintf(key,55,"hPhotCPV_cen%d",cent) ;
104 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
105 snprintf(key,55,"hPhotCPVcore_cen%d",cent) ;
106 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
107 snprintf(key,55,"hPhotCPV2_cen%d",cent) ;
108 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
109 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
110 snprintf(key,55,"hPhotDisp_cen%d",cent) ;
111 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
112 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
113 snprintf(key,55,"hPhotDisp2_cen%d",cent) ;
114 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
115 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
116 snprintf(key,55,"hPhotDispcore_cen%d",cent) ;
117 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
118 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
119 snprintf(key,55,"hPhotBoth_cen%d",cent) ;
120 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
121 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
122 snprintf(key,55,"hPhotBothcore_cen%d",cent) ;
123 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
124 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
126 snprintf(key,55,"hNegPhotAll_cen%d",cent) ;
127 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
128 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
129 snprintf(key,55,"hNegPhotAllcore_cen%d",cent) ;
130 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
131 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
132 snprintf(key,55,"hNegPhotAllwou_cen%d",cent) ;
133 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
134 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
135 snprintf(key,55,"hNegPhotCPV_cen%d",cent) ;
136 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
137 snprintf(key,55,"hNegPhotCPVcore_cen%d",cent) ;
138 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
139 snprintf(key,55,"hNegPhotCPV2_cen%d",cent) ;
140 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
141 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
142 snprintf(key,55,"hNegPhotDisp_cen%d",cent) ;
143 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
144 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
145 snprintf(key,55,"hNegPhotDisp2_cen%d",cent) ;
146 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
147 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
148 snprintf(key,55,"hNegPhotDispcore_cen%d",cent) ;
149 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
150 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
151 snprintf(key,55,"hNegPhotBoth_cen%d",cent) ;
152 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
153 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
154 snprintf(key,55,"hNegPhotBothcore_cen%d",cent) ;
155 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
156 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
158 snprintf(key,55,"hOldMassPtAll_cen%d",cent) ;
159 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
160 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
161 snprintf(key,55,"hOldMassPtAllcore_cen%d",cent) ;
162 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
163 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
164 snprintf(key,55,"hOldMassPtAllwou_cen%d",cent) ;
165 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
166 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
167 snprintf(key,55,"hOldMassPtCPV_cen%d",cent) ;
168 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
169 snprintf(key,55,"hOldMassPtCPVcore_cen%d",cent) ;
170 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
171 snprintf(key,55,"hOldMassPtCPV2_cen%d",cent) ;
172 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
173 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
174 snprintf(key,55,"hOldMassPtDisp_cen%d",cent) ;
175 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
176 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
177 snprintf(key,55,"hOldMassPtDisp2_cen%d",cent) ;
178 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
179 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
180 snprintf(key,55,"hOldMassPtDispcore_cen%d",cent) ;
181 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
182 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
183 snprintf(key,55,"hOldMassPtBoth_cen%d",cent) ;
184 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
185 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
186 snprintf(key,55,"hOldMassPtBothcore_cen%d",cent) ;
187 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
188 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
190 snprintf(key,55,"hNewMassPtAll_cen%d",cent) ;
191 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
192 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
193 snprintf(key,55,"hNewMassPtAllcore_cen%d",cent) ;
194 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
195 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
196 snprintf(key,55,"hNewMassPtAllwou_cen%d",cent) ;
197 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
198 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
199 snprintf(key,55,"hNewMassPtCPV_cen%d",cent) ;
200 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
201 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
202 snprintf(key,55,"hNewMassPtCPVcore_cen%d",cent) ;
203 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
204 snprintf(key,55,"hNewMassPtCPV2_cen%d",cent) ;
205 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
206 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
207 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
208 snprintf(key,55,"hNewMassPtDisp_cen%d",cent) ;
209 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
210 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
211 snprintf(key,55,"hNewMassPtDisp2_cen%d",cent) ;
212 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
213 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
214 snprintf(key,55,"hNewMassPtDispcore_cen%d",cent) ;
215 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
216 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
217 snprintf(key,55,"hNewMassPtBoth_cen%d",cent) ;
218 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
219 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
220 snprintf(key,55,"hNewMassPtBothcore_cen%d",cent) ;
221 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
222 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
224 snprintf(key,55,"hNegMassPtAll_cen%d",cent) ;
225 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
226 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
227 snprintf(key,55,"hNegMassPtAllcore_cen%d",cent) ;
228 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
229 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
230 snprintf(key,55,"hNegMassPtAllwou_cen%d",cent) ;
231 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
232 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
233 snprintf(key,55,"hNegMassPtCPV_cen%d",cent) ;
234 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
235 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
236 snprintf(key,55,"hNegMassPtCPVcore_cen%d",cent) ;
237 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
238 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
239 snprintf(key,55,"hNegMassPtCPV2_cen%d",cent) ;
240 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
241 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
242 snprintf(key,55,"hNegMassPtDisp_cen%d",cent) ;
243 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
244 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
245 snprintf(key,55,"hNegMassPtDisp2_cen%d",cent) ;
246 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
247 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
248 snprintf(key,55,"hNegMassPtDispcore_cen%d",cent) ;
249 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
250 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
251 snprintf(key,55,"hNegMassPtBoth_cen%d",cent) ;
252 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
253 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
254 snprintf(key,55,"hNegMassPtBothcore_cen%d",cent) ;
255 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
256 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
259 snprintf(key,55,"hMassPtAll_cen%d",cent) ;
260 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
261 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
262 snprintf(key,55,"hMassPtAllcore_cen%d",cent) ;
263 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
264 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
265 snprintf(key,55,"hMassPtAllwou_cen%d",cent) ;
266 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
267 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
268 snprintf(key,55,"hMassPtCPV_cen%d",cent) ;
269 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
270 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
271 snprintf(key,55,"hMassPtCPVcore_cen%d",cent) ;
272 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
273 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
274 snprintf(key,55,"hMassPtCPV2_cen%d",cent) ;
275 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
276 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
277 snprintf(key,55,"hMassPtDisp_cen%d",cent) ;
278 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
279 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
280 snprintf(key,55,"hMassPtDisp2_cen%d",cent) ;
281 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
282 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
283 snprintf(key,55,"hMassPtDispcore_cen%d",cent) ;
284 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
285 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
286 snprintf(key,55,"hMassPtBoth_cen%d",cent) ;
287 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
288 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
289 snprintf(key,55,"hMassPtBothcore_cen%d",cent) ;
290 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
291 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
293 snprintf(key,55,"hMassPtAll_a07_cen%d",cent) ;
294 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
295 snprintf(key,55,"hMassPtCPV_a07_cen%d",cent) ;
296 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
297 snprintf(key,55,"hMassPtCPV2_a07_cen%d",cent) ;
298 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
299 snprintf(key,55,"hMassPtDisp_a07_cen%d",cent) ;
300 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
301 snprintf(key,55,"hMassPtBoth_a07_cen%d",cent) ;
302 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
304 snprintf(key,55,"hMassPtAll_a08_cen%d",cent) ;
305 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
306 snprintf(key,55,"hMassPtCPV_a08_cen%d",cent) ;
307 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
308 snprintf(key,55,"hMassPtCPV2_a08_cen%d",cent) ;
309 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
310 snprintf(key,55,"hMassPtDisp_a08_cen%d",cent) ;
311 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
312 snprintf(key,55,"hMassPtBoth_a08_cen%d",cent) ;
313 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
315 snprintf(key,55,"hMassPtAll_a09_cen%d",cent) ;
316 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
317 snprintf(key,55,"hMassPtCPV_a09_cen%d",cent) ;
318 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
319 snprintf(key,55,"hMassPtCPV2_a09_cen%d",cent) ;
320 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
321 snprintf(key,55,"hMassPtDisp_a09_cen%d",cent) ;
322 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
323 snprintf(key,55,"hMassPtBoth_a09_cen%d",cent) ;
324 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
328 snprintf(key,55,"hMiMassPtAll_cen%d",cent) ;
329 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
330 snprintf(key,55,"hMiMassPtAllcore_cen%d",cent) ;
331 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
332 snprintf(key,55,"hMiMassPtAllwou_cen%d",cent) ;
333 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
334 snprintf(key,55,"hMiMassPtCPV_cen%d",cent) ;
335 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
336 snprintf(key,55,"hMiMassPtCPVcore_cen%d",cent) ;
337 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
338 snprintf(key,55,"hMiMassPtCPV2_cen%d",cent) ;
339 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
340 snprintf(key,55,"hMiMassPtDisp_cen%d",cent) ;
341 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
342 snprintf(key,55,"hMiMassPtDisp2_cen%d",cent) ;
343 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
344 snprintf(key,55,"hMiMassPtDispcore_cen%d",cent) ;
345 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
346 snprintf(key,55,"hMiMassPtBoth_cen%d",cent) ;
347 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
348 snprintf(key,55,"hMiMassPtBothcore_cen%d",cent) ;
349 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
351 snprintf(key,55,"hMiMassPtAll_a07_cen%d",cent) ;
352 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
353 snprintf(key,55,"hMiMassPtCPV_a07_cen%d",cent) ;
354 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
355 snprintf(key,55,"hMiMassPtCPV2_a07_cen%d",cent) ;
356 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
357 snprintf(key,55,"hMiMassPtDisp_a07_cen%d",cent) ;
358 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
359 snprintf(key,55,"hMiMassPtBoth_a07_cen%d",cent) ;
360 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
362 snprintf(key,55,"hMiMassPtAll_a08_cen%d",cent) ;
363 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
364 snprintf(key,55,"hMiMassPtCPV_a08_cen%d",cent) ;
365 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
366 snprintf(key,55,"hMiMassPtCPV2_a08_cen%d",cent) ;
367 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
368 snprintf(key,55,"hMiMassPtDisp_a08_cen%d",cent) ;
369 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
370 snprintf(key,55,"hMiMassPtBoth_a08_cen%d",cent) ;
371 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
373 snprintf(key,55,"hMiMassPtAll_a09_cen%d",cent) ;
374 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
375 snprintf(key,55,"hMiMassPtCPV_a09_cen%d",cent) ;
376 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
377 snprintf(key,55,"hMiMassPtCPV2_a09_cen%d",cent) ;
378 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
379 snprintf(key,55,"hMiMassPtDisp_a09_cen%d",cent) ;
380 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
381 snprintf(key,55,"hMiMassPtBoth_a09_cen%d",cent) ;
382 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
384 snprintf(key,55,"hMCMassPtAll_cen%d",cent) ;
385 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
386 snprintf(key,55,"hMCMassPtAllcore_cen%d",cent) ;
387 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
388 snprintf(key,55,"hMCMassPtAllwou_cen%d",cent) ;
389 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
390 snprintf(key,55,"hMCMassPtCPV_cen%d",cent) ;
391 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
392 snprintf(key,55,"hMCMassPtCPVcore_cen%d",cent) ;
393 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
394 snprintf(key,55,"hMCMassPtCPV2_cen%d",cent) ;
395 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
396 snprintf(key,55,"hMCMassPtDisp_cen%d",cent) ;
397 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
398 snprintf(key,55,"hMCMassPtDisp2_cen%d",cent) ;
399 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
400 snprintf(key,55,"hMCMassPtDispcore_cen%d",cent) ;
401 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
402 snprintf(key,55,"hMCMassPtBoth_cen%d",cent) ;
403 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
404 snprintf(key,55,"hMCMassPtBothcore_cen%d",cent) ;
405 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
407 snprintf(key,55,"hMCMassPtAll_a07_cen%d",cent) ;
408 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
409 snprintf(key,55,"hMCMassPtCPV_a07_cen%d",cent) ;
410 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
411 snprintf(key,55,"hMCMassPtCPV2_a07_cen%d",cent) ;
412 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
413 snprintf(key,55,"hMCMassPtDisp_a07_cen%d",cent) ;
414 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
415 snprintf(key,55,"hMCMassPtBoth_a07_cen%d",cent) ;
416 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
418 snprintf(key,55,"hMCMassPtAll_a08_cen%d",cent) ;
419 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
420 snprintf(key,55,"hMCMassPtCPV_a08_cen%d",cent) ;
421 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
422 snprintf(key,55,"hMCMassPtCPV2_a08_cen%d",cent) ;
423 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
424 snprintf(key,55,"hMCMassPtDisp_a08_cen%d",cent) ;
425 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
426 snprintf(key,55,"hMCMassPtBoth_a08_cen%d",cent) ;
427 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
429 snprintf(key,55,"hMCMassPtAll_a09_cen%d",cent) ;
430 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
431 snprintf(key,55,"hMCMassPtCPV_a09_cen%d",cent) ;
432 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
433 snprintf(key,55,"hMCMassPtCPV2_a09_cen%d",cent) ;
434 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
435 snprintf(key,55,"hMCMassPtDisp_a09_cen%d",cent) ;
436 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
437 snprintf(key,55,"hMCMassPtBoth_a09_cen%d",cent) ;
438 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
441 snprintf(key,55,"hMCPhotAll_cen%d",cent) ;
442 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
443 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
444 snprintf(key,55,"hMCPhotAllcore_cen%d",cent) ;
445 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
446 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
447 snprintf(key,55,"hMCPhotAllwou_cen%d",cent) ;
448 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
449 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
450 snprintf(key,55,"hMCPhotCPV_cen%d",cent) ;
451 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
452 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
453 snprintf(key,55,"hMCPhotCPVcore_cen%d",cent) ;
454 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
455 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
456 snprintf(key,55,"hMCPhotCPV2_cen%d",cent) ;
457 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
458 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
459 snprintf(key,55,"hMCPhotDisp_cen%d",cent) ;
460 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
461 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
462 snprintf(key,55,"hMCPhotDisp2_cen%d",cent) ;
463 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
464 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
465 snprintf(key,55,"hMCPhotDispcore_cen%d",cent) ;
466 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
467 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
468 snprintf(key,55,"hMCPhotBoth_cen%d",cent) ;
469 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
470 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
471 snprintf(key,55,"hMCPhotBothcore_cen%d",cent) ;
472 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
473 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
477 fOutputContainer->Add(new TH2F("hMCPi0M11","(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
478 fOutputContainer->Add(new TH2F("hMCPi0M22","(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
479 fOutputContainer->Add(new TH2F("hMCPi0M33","(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
480 fOutputContainer->Add(new TH2F("hMCPi0M12","(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
481 fOutputContainer->Add(new TH2F("hMCPi0M13","(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
482 fOutputContainer->Add(new TH2F("hMCPi0M23","(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
485 for(Int_t cent=0; cent<6; cent++){
486 snprintf(key,55,"hMC_rap_gamma_cen%d",cent) ;
487 fOutputContainer->Add(new TH1F(key,"Rapidity pi0",200,-1.,1.)) ;
488 snprintf(key,55,"hMC_rap_pi0_cen%d",cent) ;
489 fOutputContainer->Add(new TH1F(key,"Rapidity pi0",200,-1.,1.)) ;
490 snprintf(key,55,"hMC_rap_eta_cen%d",cent) ;
491 fOutputContainer->Add(new TH1F("hMC_rap_eta","Rapidity eta",200,-1.,1.)) ;
492 snprintf(key,55,"hMC_phi_gamma_cen%d",cent) ;
493 fOutputContainer->Add(new TH1F(key,"Phi pi0",200,0.,TMath::TwoPi())) ;
494 snprintf(key,55,"hMC_phi_pi0_cen%d",cent) ;
495 fOutputContainer->Add(new TH1F(key,"Phi pi0",200,0.,TMath::TwoPi())) ;
496 snprintf(key,55,"hMC_phi_eta_cen%d",cent) ;
497 fOutputContainer->Add(new TH1F(key,"Phi eta",200,0.,TMath::TwoPi())) ;
498 snprintf(key,55,"hMC_all_gamma_cen%d",cent) ;
499 fOutputContainer->Add(new TH1F(key,"Rapidity photon",250,0.,25.)) ;
500 snprintf(key,55,"hMC_all_pi0_cen%d",cent) ;
501 fOutputContainer->Add(new TH1F(key,"Rapidity pi0",250,0.,25.)) ;
502 snprintf(key,55,"hMC_all_eta_cen%d",cent) ;
503 fOutputContainer->Add(new TH1F(key,"Rapidity eta",250,0.,25.)) ;
504 snprintf(key,55,"hMC_unitEta_gamma_cen%d",cent) ;
505 fOutputContainer->Add(new TH1F(key,"Pt photon",250,0.,25.)) ;
506 snprintf(key,55,"hMC_unitEta_pi0_cen%d",cent) ;
507 fOutputContainer->Add(new TH1F(key,"Rapidity eta",250,0.,25.)) ;
508 snprintf(key,55,"hMC_unitEta_eta_cen%d",cent) ;
509 fOutputContainer->Add(new TH1F(key,"Rapidity eta",250,0.,25.)) ;
512 PostData(1, fOutputContainer);
516 //________________________________________________________________________
517 void AliAnalysisTaskPi0DiffEfficiency::UserExec(Option_t *)
519 // Main loop, called for each event
522 FillHistogram("hSelEvents",0.5) ;
524 AliAODEvent *event = dynamic_cast<AliAODEvent*>(InputEvent());
526 Printf("ERROR: Could not retrieve event");
527 PostData(1, fOutputContainer);
531 FillHistogram("hSelEvents",1.5) ;
532 AliAODHeader *header = event->GetHeader() ;
534 // Checks if we have a primary vertex
535 // Get primary vertices form ESD
536 const AliAODVertex *esdVertex5 = event->GetPrimaryVertex();
538 // don't rely on ESD vertex, assume (0,0,0)
539 Double_t vtx0[3] ={0.,0.,0.};
542 FillHistogram("hZvertex",esdVertex5->GetZ());
543 if (TMath::Abs(esdVertex5->GetZ()) > 10. ){
544 PostData(1, fOutputContainer);
547 FillHistogram("hSelEvents",2.5) ;
550 // Int_t zvtx = (Int_t)((vtx5[2]+10.)/2.) ;
551 // if(zvtx<0)zvtx=0 ;
552 // if(zvtx>9)zvtx=9 ;
555 // fCentrality=header->GetCentralityP()->GetCentralityPercentile("V0M"); // returns the centrality percentile,
556 // //a float from 0 to 100 (or to the trigger efficiency)
557 fCentrality=header->GetZDCN2Energy() ;
559 if( fCentrality < 0. || fCentrality>80.){
560 PostData(1, fOutputContainer);
563 FillHistogram("hSelEvents",3.5) ;
564 Float_t bins[7]={0.,5.,10.,20.,40.,60.,80.} ;
566 while(fCenBin<6 && fCentrality > bins[fCenBin+1])
571 fRPfull= header->GetZDCN1Energy() ;
572 if(fRPfull==999){ //reaction plain was not defined
573 PostData(1, fOutputContainer);
577 FillHistogram("hSelEvents",4.5) ;
578 //All event selections done
579 FillHistogram("hCentrality",fCentrality) ;
580 //Reaction plain is defined in the range (-pi/2;pi/2)
582 Int_t irp=Int_t(10.*fRPfull/TMath::Pi());
585 if(!fPHOSEvents[zvtx][fCenBin][irp])
586 fPHOSEvents[zvtx][fCenBin][irp]=new TList() ;
587 TList * prevPHOS = fPHOSEvents[zvtx][fCenBin][irp] ;
589 // Get PHOS rotation matrices from ESD and set them to the PHOS geometry
590 if(fEventCounter == 0) {
591 for(Int_t mod=0; mod<5; mod++) {
592 const TGeoHMatrix* m =header->GetPHOSMatrix(mod) ;
593 fPHOSGeo->SetMisalMatrix(m,mod) ;
594 Printf("PHOS geo matrix for module # %d is set: %p\n", mod,m);
602 fPHOSEvent1->Clear() ;
603 fPHOSEvent2->Clear() ;
606 fPHOSEvent1 = new TClonesArray("AliCaloPhoton",200) ;
607 fPHOSEvent2 = new TClonesArray("AliCaloPhoton",200) ;
610 TClonesArray * clustersEmb = (TClonesArray*)event->FindListObject("EmbeddedCaloClusters") ;
611 AliAODCaloCells * cellsEmb = (AliAODCaloCells *)event->FindListObject("EmbeddedPHOScells") ;
612 TClonesArray * clustersOld = event->GetCaloClusters() ;
613 AliAODCaloCells * cellsOld = event->GetPHOSCells() ;
614 TVector3 vertex(vtx0);
617 Int_t multClustOld = clustersOld->GetEntriesFast();
618 Int_t multClustEmb = clustersEmb->GetEntriesFast();
621 for (Int_t i=0; i<multClustOld; i++) {
622 AliAODCaloCluster *clu = (AliAODCaloCluster*)clustersOld->At(i);
623 if ( !clu->IsPHOS() || clu->E()<0.3) continue;
625 Bool_t survive=kFALSE ;
626 for(Int_t ii=0;(ii<multClustEmb)&&(!survive);ii++){
627 AliAODCaloCluster *clu2 = (AliAODCaloCluster*)clustersEmb->At(ii);
628 survive=IsSameCluster(clu,clu2);
633 clu->GetPosition(position);
634 TVector3 global(position) ;
636 fPHOSGeo->GlobalPos2RelId(global,relId) ;
637 Int_t mod = relId[0] ;
638 Int_t cellX = relId[2];
639 Int_t cellZ = relId[3] ;
640 if ( !IsGoodChannel("PHOS",mod,cellX,cellZ) )
642 if(clu->GetNCells()<3)
645 snprintf(key,55,"hCluM%d",mod) ;
646 FillHistogram(key,cellX,cellZ,1.);
649 clu->GetMomentum(pv1 ,vtx0);
651 if(inPHOSold>=fPHOSEvent1->GetSize()){
652 fPHOSEvent1->Expand(inPHOSold+50) ;
654 AliCaloPhoton * ph = new((*fPHOSEvent1)[inPHOSold]) AliCaloPhoton(pv1.X(),pv1.Py(),pv1.Z(),pv1.E()) ;
656 AliPHOSAodCluster cluPHOS1(*clu);
657 cluPHOS1.Recalibrate(fPHOSCalibData,cellsOld); // modify the cell energies
658 Double_t ecore=CoreEnergy(&cluPHOS1) ;
659 pv1*= ecore/pv1.E() ;
661 ph->SetNCells(clu->GetNCells());
662 ph->SetDispBit(TestLambda(clu->E(),clu->GetM20(),clu->GetM02())) ;
663 ph->SetDisp2Bit(TestLambda2(clu->E(),clu->GetM20(),clu->GetM02())) ;
664 ph->SetCPVBit(clu->GetEmcCpvDistance()>2.) ;
665 ph->SetCPV2Bit(clu->GetEmcCpvDistance()>4.) ;
666 if(!survive) //this cluster found in list after embedding, skipping it
668 ph->SetPhoton(clu->GetNExMax()<2); // Remember, if it is unfolded
671 Double_t distBC=clu->GetDistanceToBadChannel();
673 FillHistogram(Form("hPhotAll_DistBad2_cen%d",fCenBin),ph->Pt(),-1.) ;
675 FillHistogram(Form("hPhotAll_DistBad4_cen%d",fCenBin),ph->Pt(),-1.) ;
677 FillHistogram(Form("hPhotAll_DistBad6_cen%d",fCenBin),ph->Pt(),-1.) ;
682 for (Int_t i=0; i<multClustEmb; i++) {
683 AliAODCaloCluster *clu = (AliAODCaloCluster*)clustersEmb->At(i);
684 if ( !clu->IsPHOS() || clu->E()<0.3) continue;
686 Bool_t survive=kFALSE ;
687 for(Int_t ii=0;(ii<multClustOld)&&(!survive);ii++){
688 AliAODCaloCluster *clu2 = (AliAODCaloCluster*)clustersOld->At(ii);
689 survive=IsSameCluster(clu,clu2);
693 clu->GetPosition(position);
694 TVector3 global(position) ;
696 fPHOSGeo->GlobalPos2RelId(global,relId) ;
697 Int_t mod = relId[0] ;
698 Int_t cellX = relId[2];
699 Int_t cellZ = relId[3] ;
700 if ( !IsGoodChannel("PHOS",mod,cellX,cellZ) )
702 if(clu->GetNCells()<3)
705 snprintf(key,55,"hCluM%d",mod) ;
706 FillHistogram(key,cellX,cellZ,1.);
709 clu->GetMomentum(pv1 ,vtx0);
711 if(inPHOSemb>=fPHOSEvent2->GetSize()){
712 fPHOSEvent2->Expand(inPHOSemb+50) ;
714 AliCaloPhoton * ph = new((*fPHOSEvent2)[inPHOSemb]) AliCaloPhoton(pv1.X(),pv1.Py(),pv1.Z(),pv1.E()) ;
716 AliPHOSAodCluster cluPHOS1(*clu);
717 cluPHOS1.Recalibrate(fPHOSCalibData,cellsEmb); // modify the cell energies
718 Double_t ecore=CoreEnergy(&cluPHOS1) ;
719 pv1*= ecore/pv1.E() ;
721 ph->SetNCells(clu->GetNCells());
722 ph->SetDispBit(TestLambda(clu->E(),clu->GetM20(),clu->GetM02())) ;
723 ph->SetDisp2Bit(TestLambda2(clu->E(),clu->GetM20(),clu->GetM02())) ;
724 ph->SetCPVBit(clu->GetEmcCpvDistance()>2.) ;
725 ph->SetCPV2Bit(clu->GetEmcCpvDistance()>4.) ;
726 if(!survive) //this cluster found in list after embedding, skipping it
728 ph->SetPhoton(clu->GetNExMax()<2); // Remember, if it is unfolded
731 Double_t distBC=clu->GetDistanceToBadChannel();
733 FillHistogram(Form("hPhotAll_DistBad2_cen%d",fCenBin),ph->Pt()) ;
735 FillHistogram(Form("hPhotAll_DistBad4_cen%d",fCenBin),ph->Pt()) ;
737 FillHistogram(Form("hPhotAll_DistBad6_cen%d",fCenBin),ph->Pt()) ;
744 for (Int_t i1=0; i1<inPHOSold; i1++) {
745 AliCaloPhoton * ph1=(AliCaloPhoton*)fPHOSEvent1->At(i1) ;
748 snprintf(key,55,"hPhotAll_cen%d",fCenBin) ;
749 FillHistogram(key,ph1->Pt(),-1.) ;
750 snprintf(key,55,"hNegPhotAll_cen%d",fCenBin) ;
751 FillHistogram(key,ph1->Pt(),-1.) ;
752 snprintf(key,55,"hPhotAllcore_cen%d",fCenBin) ;
753 FillHistogram(key,ph1->GetMomV2()->Pt(),-1.) ;
754 snprintf(key,55,"hNegPhotAllcore_cen%d",fCenBin) ;
755 FillHistogram(key,ph1->GetMomV2()->Pt(),-1.) ;
757 snprintf(key,55,"hPhotAllwou_cen%d",fCenBin) ;
758 FillHistogram(key,ph1->Pt(),-1.) ;
759 snprintf(key,55,"hNegPhotAllwou_cen%d",fCenBin) ;
760 FillHistogram(key,ph1->Pt(),-1.) ;
763 snprintf(key,55,"hPhotCPV_cen%d",fCenBin) ;
764 FillHistogram(key,ph1->Pt(),-1.) ;
765 snprintf(key,55,"hNegPhotCPV_cen%d",fCenBin) ;
766 FillHistogram(key,ph1->Pt(),-1.) ;
767 snprintf(key,55,"hPhotCPVcore_cen%d",fCenBin) ;
768 FillHistogram(key,ph1->GetMomV2()->Pt(),-1.) ;
769 snprintf(key,55,"hNegPhotCPVcore_cen%d",fCenBin) ;
770 FillHistogram(key,ph1->GetMomV2()->Pt(),-1.) ;
772 if(ph1->IsCPV2OK() ){
773 snprintf(key,55,"hPhotCPV2_cen%d",fCenBin) ;
774 FillHistogram(key,ph1->Pt(),-1.) ;
775 snprintf(key,55,"hNegPhotCPV2_cen%d",fCenBin) ;
776 FillHistogram(key,ph1->Pt(),-1.) ;
778 if(ph1->IsDisp2OK()){
779 snprintf(key,55,"hPhotDisp2_cen%d",fCenBin) ;
780 FillHistogram(key,ph1->Pt(),-1.) ;
781 snprintf(key,55,"hNegPhotDisp2_cen%d",fCenBin) ;
782 FillHistogram(key,ph1->Pt(),-1.) ;
785 snprintf(key,55,"hPhotDisp_cen%d",fCenBin) ;
786 FillHistogram(key,ph1->Pt(),-1.) ;
787 snprintf(key,55,"hNegPhotDisp_cen%d",fCenBin) ;
788 FillHistogram(key,ph1->Pt(),-1.) ;
789 snprintf(key,55,"hPhotDispcore_cen%d",fCenBin) ;
790 FillHistogram(key,ph1->GetMomV2()->Pt(),-1.) ;
791 snprintf(key,55,"hNegPhotDispcore_cen%d",fCenBin) ;
792 FillHistogram(key,ph1->GetMomV2()->Pt(),-1.) ;
794 snprintf(key,55,"hPhotBoth_cen%d",fCenBin) ;
795 FillHistogram(key,ph1->Pt(),-1.) ;
796 snprintf(key,55,"hNegPhotBoth_cen%d",fCenBin) ;
797 FillHistogram(key,ph1->Pt(),-1.) ;
798 snprintf(key,55,"hPhotBothcore_cen%d",fCenBin) ;
799 FillHistogram(key,ph1->GetMomV2()->Pt(),-1.) ;
800 snprintf(key,55,"hNegPhotBothcore_cen%d",fCenBin) ;
801 FillHistogram(key,ph1->GetMomV2()->Pt(),-1.) ;
806 for (Int_t i1=0; i1<inPHOSemb; i1++) {
807 AliCaloPhoton * ph1=(AliCaloPhoton*)fPHOSEvent2->At(i1) ;
810 snprintf(key,55,"hPhotAll_cen%d",fCenBin) ;
811 FillHistogram(key,ph1->Pt(),1.) ;
812 snprintf(key,55,"hPhotAllcore_cen%d",fCenBin) ;
813 FillHistogram(key,ph1->GetMomV2()->Pt(),1.) ;
815 snprintf(key,55,"hPhotAllwou_cen%d",fCenBin) ;
816 FillHistogram(key,ph1->Pt(),1.) ;
819 snprintf(key,55,"hPhotCPV_cen%d",fCenBin) ;
820 FillHistogram(key,ph1->Pt(),1.) ;
821 snprintf(key,55,"hPhotCPVcore_cen%d",fCenBin) ;
822 FillHistogram(key,ph1->GetMomV2()->Pt(),1.) ;
824 if(ph1->IsCPV2OK() ){
825 snprintf(key,55,"hPhotCPV2_cen%d",fCenBin) ;
826 FillHistogram(key,ph1->Pt(),1.) ;
828 if(ph1->IsDisp2OK()){
829 snprintf(key,55,"hPhotDisp2_cen%d",fCenBin) ;
830 FillHistogram(key,ph1->Pt(),1.) ;
833 snprintf(key,55,"hPhotDisp_cen%d",fCenBin) ;
834 FillHistogram(key,ph1->Pt(),1.) ;
835 snprintf(key,55,"hPhotDispcore_cen%d",fCenBin) ;
836 FillHistogram(key,ph1->GetMomV2()->Pt(),1.) ;
838 snprintf(key,55,"hPhotBoth_cen%d",fCenBin) ;
839 FillHistogram(key,ph1->Pt(),1.) ;
840 snprintf(key,55,"hPhotBothcore_cen%d",fCenBin) ;
841 FillHistogram(key,ph1->GetMomV2()->Pt(),1.) ;
848 // Fill Real disribution:
849 // Disappeared clusters enter with negative contribution
850 // In addition fill control histogam with Real before embedding
851 for (Int_t i1=0; i1<inPHOSold-1; i1++) {
852 AliCaloPhoton * ph1=(AliCaloPhoton*)fPHOSEvent1->At(i1) ;
853 for (Int_t i2=i1+1; i2<inPHOSold; i2++) {
854 AliCaloPhoton * ph2=(AliCaloPhoton*)fPHOSEvent1->At(i2) ;
856 TLorentzVector p12 = *ph1 + *ph2;
857 TLorentzVector pv12 = *(ph1->GetMomV2()) + *(ph2->GetMomV2());
858 Double_t a=TMath::Abs((ph1->E()-ph2->E())/(ph1->E()+ph2->E())) ;
860 //Fill Controll histogram: Real before embedding
861 snprintf(key,55,"hOldMassPtAll_cen%d",fCenBin) ;
862 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
863 snprintf(key,55,"hOldMassPtAllcore_cen%d",fCenBin) ;
864 FillHistogram(key,pv12.M() ,pv12.Pt(),-1.) ;
865 if(ph1->IsPhoton() && ph2->IsPhoton()){
866 snprintf(key,55,"hOldMassPtAllwou_cen%d",fCenBin) ;
867 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
869 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
870 snprintf(key,55,"hOldMassPtCPV_cen%d",fCenBin) ;
871 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
872 snprintf(key,55,"hOldMassPtCPV_cen%d",fCenBin) ;
873 FillHistogram(key,pv12.M(), pv12.Pt(),-1) ;
875 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
876 snprintf(key,55,"hOldMassPtCPV2_cen%d",fCenBin) ;
877 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
879 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
880 snprintf(key,55,"hOldMassPtDisp2_cen%d",fCenBin) ;
881 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
883 if(ph1->IsDispOK() && ph2->IsDispOK()){
884 snprintf(key,55,"hOldMassPtDisp_cen%d",fCenBin) ;
885 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
886 snprintf(key,55,"hOldMassPtDispcore_cen%d",fCenBin) ;
887 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
888 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
889 snprintf(key,55,"hOldMassPtBoth_cen%d",fCenBin) ;
890 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
891 snprintf(key,55,"hOldMassPtBothcore_cen%d",fCenBin) ;
892 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
896 //Now fill main histograms with negative contributions
897 if(!(ph1->IsTagged() || ph2->IsTagged()) )
899 snprintf(key,55,"hMassPtAll_cen%d",fCenBin) ;
900 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
901 snprintf(key,55,"hMassPtAllcore_cen%d",fCenBin) ;
902 FillHistogram(key,pv12.M() ,pv12.Pt(),-1.) ;
903 if(ph1->IsPhoton() && ph2->IsPhoton()){
904 snprintf(key,55,"hMassPtAllwou_cen%d",fCenBin) ;
905 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
908 snprintf(key,55,"hMassPtAll_a09_cen%d",fCenBin) ;
909 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
911 snprintf(key,55,"hMassPtAll_a08_cen%d",fCenBin) ;
912 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
914 snprintf(key,55,"hMassPtAll_a07_cen%d",fCenBin) ;
915 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
919 snprintf(key,55,"hNegMassPtAll_cen%d",fCenBin) ;
920 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
921 snprintf(key,55,"hNegMassPtAllcore_cen%d",fCenBin) ;
922 FillHistogram(key,pv12.M() ,pv12.Pt(),-1.) ;
923 if(ph1->IsPhoton() && ph2->IsPhoton()){
924 snprintf(key,55,"hNegMassPtAllwou_cen%d",fCenBin) ;
925 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
928 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
929 snprintf(key,55,"hMassPtCPV_cen%d",fCenBin) ;
930 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
931 snprintf(key,55,"hMassPtCPVcore_cen%d",fCenBin) ;
932 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
934 snprintf(key,55,"hMassPtCPV_a09_cen%d",fCenBin) ;
935 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
937 snprintf(key,55,"hMassPtCPV_a08_cen%d",fCenBin) ;
938 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
940 snprintf(key,55,"hMassPtCPV_a07_cen%d",fCenBin) ;
941 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
945 snprintf(key,55,"hNegMassPtCPV_cen%d",fCenBin) ;
946 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
947 snprintf(key,55,"hNegMassPtCPVcore_cen%d",fCenBin) ;
948 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
950 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
951 snprintf(key,55,"hMassPtCPV2_cen%d",fCenBin) ;
952 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
954 snprintf(key,55,"hMassPtCPV2_a09_cen%d",fCenBin) ;
955 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
957 snprintf(key,55,"hMassPtCPV2_a08_cen%d",fCenBin) ;
958 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
960 snprintf(key,55,"hMassPtCPV2_a07_cen%d",fCenBin) ;
961 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
965 snprintf(key,55,"hNegMassPtCPV2_cen%d",fCenBin) ;
966 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
969 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
970 snprintf(key,55,"hMassPtDisp2_cen%d",fCenBin) ;
971 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
973 if(ph1->IsDispOK() && ph2->IsDispOK()){
974 snprintf(key,55,"hMassPtDisp_cen%d",fCenBin) ;
975 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
976 snprintf(key,55,"hMassPtDispcore_cen%d",fCenBin) ;
977 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
979 snprintf(key,55,"hMassPtDisp_a09_cen%d",fCenBin) ;
980 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
982 snprintf(key,55,"hMassPtDisp_a08_cen%d",fCenBin) ;
983 FillHistogram(key,p12.M() ,p12.Pt()) ;
985 snprintf(key,55,"hMassPtDisp_a07_cen%d",fCenBin) ;
986 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
990 snprintf(key,55,"hNegMassPtDisp_cen%d",fCenBin) ;
991 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
992 snprintf(key,55,"hNegMassPtDispcore_cen%d",fCenBin) ;
993 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
994 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
995 snprintf(key,55,"hMassPtBoth_cen%d",fCenBin) ;
996 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
997 snprintf(key,55,"hMassPtBothcore_cen%d",fCenBin) ;
998 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
1000 snprintf(key,55,"hMassPtBoth_a09_cen%d",fCenBin) ;
1001 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
1003 snprintf(key,55,"hMassPtBoth_a08_cen%d",fCenBin) ;
1004 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
1006 snprintf(key,55,"hMassPtBoth_a07_cen%d",fCenBin) ;
1007 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
1011 snprintf(key,55,"hNegMassPtBoth_cen%d",fCenBin) ;
1012 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
1013 snprintf(key,55,"hNegMassPtBothcore_cen%d",fCenBin) ;
1014 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
1021 // Further fill Real disribution
1022 // now with positive contribution from new clusters
1023 // ass well fill controll histogram
1024 for (Int_t i1=0; i1<inPHOSemb-1; i1++) {
1025 AliCaloPhoton * ph1=(AliCaloPhoton*)fPHOSEvent2->At(i1) ;
1026 for (Int_t i2=i1+1; i2<inPHOSemb; i2++) {
1027 AliCaloPhoton * ph2=(AliCaloPhoton*)fPHOSEvent2->At(i2) ;
1029 TLorentzVector p12 = *ph1 + *ph2;
1030 TLorentzVector pv12 = *(ph1->GetMomV2()) + *(ph2->GetMomV2());
1031 Double_t a=TMath::Abs((ph1->E()-ph2->E())/(ph1->E()+ph2->E())) ;
1033 // Controll histogram: Real after embedding
1034 snprintf(key,55,"hNewMassPtAll_cen%d",fCenBin) ;
1035 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1036 snprintf(key,55,"hNewMassPtAllcore_cen%d",fCenBin) ;
1037 FillHistogram(key,pv12.M() ,pv12.Pt(),1.) ;
1038 if(ph1->IsPhoton() && ph2->IsPhoton()){
1039 snprintf(key,55,"hNewMassPtAllwou_cen%d",fCenBin) ;
1040 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1042 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1043 snprintf(key,55,"hNewMassPtCPV_cen%d",fCenBin) ;
1044 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1045 snprintf(key,55,"hNewMassPtCPVcore_cen%d",fCenBin) ;
1046 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
1048 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
1049 snprintf(key,55,"hNewMassPtCPV2_cen%d",fCenBin) ;
1050 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1052 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
1053 snprintf(key,55,"hNewMassPtDisp2_cen%d",fCenBin) ;
1054 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1056 if(ph1->IsDispOK() && ph2->IsDispOK()){
1057 snprintf(key,55,"hNewMassPtDisp_cen%d",fCenBin) ;
1058 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1059 snprintf(key,55,"hNewMassPtDispcore_cen%d",fCenBin) ;
1060 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
1061 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1062 snprintf(key,55,"hNewMassPtBoth_cen%d",fCenBin) ;
1063 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1064 snprintf(key,55,"hNewMassPtBothcore_cen%d",fCenBin) ;
1065 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
1069 //Now fill main histogamm
1070 //new clusters with positive contribution
1071 if(!(ph1->IsTagged() || ph2->IsTagged()) )
1073 snprintf(key,55,"hMassPtAll_cen%d",fCenBin) ;
1074 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1075 snprintf(key,55,"hMassPtAllcore_cen%d",fCenBin) ;
1076 FillHistogram(key,pv12.M() ,pv12.Pt(),1.) ;
1077 if(ph1->IsPhoton() && ph2->IsPhoton()){
1078 snprintf(key,55,"hMassPtAllwou_cen%d",fCenBin) ;
1079 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1082 snprintf(key,55,"hMassPtAll_a09_cen%d",fCenBin) ;
1083 FillHistogram(key,p12.M() ,p12.Pt()) ;
1085 snprintf(key,55,"hMassPtAll_a08_cen%d",fCenBin) ;
1086 FillHistogram(key,p12.M() ,p12.Pt()) ;
1088 snprintf(key,55,"hMassPtAll_a07_cen%d",fCenBin) ;
1089 FillHistogram(key,p12.M() ,p12.Pt()) ;
1093 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1094 snprintf(key,55,"hMassPtCPV_cen%d",fCenBin) ;
1095 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1096 snprintf(key,55,"hMassPtCPVcore_cen%d",fCenBin) ;
1097 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
1099 snprintf(key,55,"hMassPtCPV_a09_cen%d",fCenBin) ;
1100 FillHistogram(key,p12.M() ,p12.Pt()) ;
1102 snprintf(key,55,"hMassPtCPV_a08_cen%d",fCenBin) ;
1103 FillHistogram(key,p12.M() ,p12.Pt()) ;
1105 snprintf(key,55,"hMassPtCPV_a07_cen%d",fCenBin) ;
1106 FillHistogram(key,p12.M() ,p12.Pt()) ;
1111 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
1112 snprintf(key,55,"hMassPtCPV2_cen%d",fCenBin) ;
1113 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1115 snprintf(key,55,"hMassPtCPV2_a09_cen%d",fCenBin) ;
1116 FillHistogram(key,p12.M() ,p12.Pt()) ;
1118 snprintf(key,55,"hMassPtCPV2_a08_cen%d",fCenBin) ;
1119 FillHistogram(key,p12.M() ,p12.Pt()) ;
1121 snprintf(key,55,"hMassPtCPV2_a07_cen%d",fCenBin) ;
1122 FillHistogram(key,p12.M() ,p12.Pt()) ;
1127 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
1128 snprintf(key,55,"hMassPtDisp2_cen%d",fCenBin) ;
1129 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1131 if(ph1->IsDispOK() && ph2->IsDispOK()){
1132 snprintf(key,55,"hMassPtDisp_cen%d",fCenBin) ;
1133 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1134 snprintf(key,55,"hMassPtDispcore_cen%d",fCenBin) ;
1135 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
1137 snprintf(key,55,"hMassPtDisp_a09_cen%d",fCenBin) ;
1138 FillHistogram(key,p12.M() ,p12.Pt()) ;
1140 snprintf(key,55,"hMassPtDisp_a08_cen%d",fCenBin) ;
1141 FillHistogram(key,p12.M() ,p12.Pt()) ;
1143 snprintf(key,55,"hMassPtDisp_a07_cen%d",fCenBin) ;
1144 FillHistogram(key,p12.M() ,p12.Pt()) ;
1149 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1150 snprintf(key,55,"hMassPtBoth_cen%d",fCenBin) ;
1151 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1152 snprintf(key,55,"hMassPtBothcore_cen%d",fCenBin) ;
1153 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
1155 snprintf(key,55,"hMassPtBoth_a09_cen%d",fCenBin) ;
1156 FillHistogram(key,p12.M() ,p12.Pt()) ;
1158 snprintf(key,55,"hMassPtBoth_a08_cen%d",fCenBin) ;
1159 FillHistogram(key,p12.M() ,p12.Pt()) ;
1161 snprintf(key,55,"hMassPtBoth_a07_cen%d",fCenBin) ;
1162 FillHistogram(key,p12.M() ,p12.Pt()) ;
1172 //now mixed, does not really matter old or new list of clusters
1173 for (Int_t i1=0; i1<inPHOSemb; i1++) {
1174 AliCaloPhoton * ph1=(AliCaloPhoton*)fPHOSEvent2->At(i1) ;
1175 for(Int_t ev=0; ev<prevPHOS->GetSize();ev++){
1176 TClonesArray * mixPHOS = static_cast<TClonesArray*>(prevPHOS->At(ev)) ;
1177 for(Int_t i2=0; i2<mixPHOS->GetEntriesFast();i2++){
1178 AliCaloPhoton * ph2=(AliCaloPhoton*)mixPHOS->At(i2) ;
1179 TLorentzVector p12 = *ph1 + *ph2;
1180 TLorentzVector pv12 = *(ph1->GetMomV2()) + *(ph2->GetMomV2());
1181 Double_t a=TMath::Abs((ph1->E()-ph2->E())/(ph1->E()+ph2->E())) ;
1183 snprintf(key,55,"hMiMassPtAll_cen%d",fCenBin) ;
1184 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1185 snprintf(key,55,"hMiMassPtAllcore_cen%d",fCenBin) ;
1186 FillHistogram(key,pv12.M() ,pv12.Pt(),1.) ;
1187 if(ph1->IsPhoton() && ph2->IsPhoton()){
1188 snprintf(key,55,"hMiMassPtAllwou_cen%d",fCenBin) ;
1189 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1192 snprintf(key,55,"hMiMassPtAll_a09_cen%d",fCenBin) ;
1193 FillHistogram(key,p12.M() ,p12.Pt()) ;
1195 snprintf(key,55,"hMiMassPtAll_a08_cen%d",fCenBin) ;
1196 FillHistogram(key,p12.M() ,p12.Pt()) ;
1198 snprintf(key,55,"hMiMassPtAll_a07_cen%d",fCenBin) ;
1199 FillHistogram(key,p12.M() ,p12.Pt()) ;
1203 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1204 snprintf(key,55,"hMiMassPtCPV_cen%d",fCenBin) ;
1205 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1206 snprintf(key,55,"hMiMassPtCPVcore_cen%d",fCenBin) ;
1207 FillHistogram(key,pv12.M() ,pv12.Pt(),1.) ;
1209 snprintf(key,55,"hMiMassPtCPV_a09_cen%d",fCenBin) ;
1210 FillHistogram(key,p12.M() ,p12.Pt()) ;
1212 snprintf(key,55,"hMiMassPtCPV_a08_cen%d",fCenBin) ;
1213 FillHistogram(key,p12.M() ,p12.Pt()) ;
1215 snprintf(key,55,"hMiMassPtCPV_a07_cen%d",fCenBin) ;
1216 FillHistogram(key,p12.M() ,p12.Pt()) ;
1221 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
1222 snprintf(key,55,"hMiMassPtCPV2_cen%d",fCenBin) ;
1223 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1225 snprintf(key,55,"hMiMassPtCPV2_a09_cen%d",fCenBin) ;
1226 FillHistogram(key,p12.M() ,p12.Pt()) ;
1228 snprintf(key,55,"hMiMassPtCPV2_a08_cen%d",fCenBin) ;
1229 FillHistogram(key,p12.M() ,p12.Pt()) ;
1231 snprintf(key,55,"hMiMassPtCPV2_a07_cen%d",fCenBin) ;
1232 FillHistogram(key,p12.M() ,p12.Pt()) ;
1237 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
1238 snprintf(key,55,"hMiMassPtDisp2_cen%d",fCenBin) ;
1239 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1241 if(ph1->IsDispOK() && ph2->IsDispOK()){
1242 snprintf(key,55,"hMiMassPtDisp_cen%d",fCenBin) ;
1243 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1244 snprintf(key,55,"hMiMassPtDispcore_cen%d",fCenBin) ;
1245 FillHistogram(key,pv12.M() ,pv12.Pt(),1.) ;
1247 snprintf(key,55,"hMiMassPtDisp_a09_cen%d",fCenBin) ;
1248 FillHistogram(key,p12.M() ,p12.Pt()) ;
1250 snprintf(key,55,"hMiMassPtDisp_a08_cen%d",fCenBin) ;
1251 FillHistogram(key,p12.M() ,p12.Pt()) ;
1253 snprintf(key,55,"hMiMassPtDisp_a07_cen%d",fCenBin) ;
1254 FillHistogram(key,p12.M() ,p12.Pt()) ;
1259 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1260 snprintf(key,55,"hMiMassPtBoth_cen%d",fCenBin) ;
1261 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1262 snprintf(key,55,"hMiMassPtBothcore_cen%d",fCenBin) ;
1263 FillHistogram(key,pv12.M() ,pv12.Pt(),1.) ;
1265 snprintf(key,55,"hMiMassPtBoth_a09_cen%d",fCenBin) ;
1266 FillHistogram(key,p12.M() ,p12.Pt()) ;
1268 snprintf(key,55,"hMiMassPtBoth_a08_cen%d",fCenBin) ;
1269 FillHistogram(key,p12.M() ,p12.Pt()) ;
1271 snprintf(key,55,"hMiMassPtBoth_a07_cen%d",fCenBin) ;
1272 FillHistogram(key,p12.M() ,p12.Pt()) ;
1283 //Now we either add current events to stack or remove
1284 //If no photons in current event - no need to add it to mixed
1285 if(fPHOSEvent2->GetEntriesFast()>0){
1286 prevPHOS->AddFirst(fPHOSEvent2) ;
1290 if(prevPHOS->GetSize()>100){//Remove redundant events
1291 TClonesArray * tmp = static_cast<TClonesArray*>(prevPHOS->Last()) ;
1292 prevPHOS->RemoveLast() ;
1296 // Post output data.
1297 PostData(1, fOutputContainer);
1300 //___________________________________________________________________________
1301 Bool_t AliAnalysisTaskPi0DiffEfficiency::IsSameCluster(AliAODCaloCluster * c1, AliAODCaloCluster * c2)const{
1302 //Compare clusters before and after embedding
1303 //clusters are the same if
1304 // - Energy changed less than 0.1% (numerical accuracy in reconstruction)
1305 // - lists of digits are the same
1307 if(c1->GetNCells() != c2->GetNCells())
1310 if(TMath::Abs(c1->E()-c2->E())>0.01*c1->E())
1313 UShort_t *list1 = c1->GetCellsAbsId() ;
1314 UShort_t *list2 = c2->GetCellsAbsId() ;
1315 for(Int_t i=0; i<c1->GetNCells(); i++){
1316 if(list1[i] != list2[i])