]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/PHOSTasks/PHOS_embedding/AliAnalysisTaskPi0DiffEfficiency.cxx
Added PHOS/macros/Trigger/raw and contained code.
[u/mrichter/AliRoot.git] / PWGGA / PHOSTasks / PHOS_embedding / AliAnalysisTaskPi0DiffEfficiency.cxx
CommitLineData
02f0b8e7 1#include "TChain.h"
2#include "TTree.h"
3#include "TObjArray.h"
4#include "TF1.h"
5#include "TFile.h"
6#include "TH1F.h"
7#include "TH2F.h"
8#include "TH2I.h"
9#include "TH3F.h"
10#include "TParticle.h"
11#include "TCanvas.h"
12#include "TStyle.h"
13#include "TRandom.h"
14
15#include "AliAODMCParticle.h"
16#include "AliAnalysisManager.h"
17#include "AliMCEventHandler.h"
18#include "AliMCEvent.h"
19#include "AliStack.h"
20#include "AliAnalysisTaskSE.h"
21#include "AliAnalysisTaskPi0DiffEfficiency.h"
22#include "AliCaloPhoton.h"
23#include "AliPHOSGeometry.h"
6e4947dd 24#include "AliPHOSAodCluster.h"
02f0b8e7 25#include "AliPHOSCalibData.h"
26#include "AliAODEvent.h"
27#include "AliAODCaloCluster.h"
28#include "AliAODVertex.h"
29#include "AliESDtrackCuts.h"
30#include "AliLog.h"
31#include "AliPID.h"
32#include "AliCDBManager.h"
33#include "AliCentrality.h"
34
6e4947dd 35// Analysis task to calculate pi0 registration efficiency
36// as a difference between spectra before and after embedding
37// Authors: Dmitri Peressounko
38// Date : Aug.2011
02f0b8e7 39
40ClassImp(AliAnalysisTaskPi0DiffEfficiency)
41
42//________________________________________________________________________
43AliAnalysisTaskPi0DiffEfficiency::AliAnalysisTaskPi0DiffEfficiency(const char *name)
6e4947dd 44: AliAnalysisTaskPi0Efficiency(name),
02f0b8e7 45 fPHOSEvent1(0),
6e4947dd 46 fPHOSEvent2(0)
02f0b8e7 47{
02f0b8e7 48
02f0b8e7 49
50
51}
52
53//________________________________________________________________________
54void AliAnalysisTaskPi0DiffEfficiency::UserCreateOutputObjects()
55{
56 // Create histograms
57 // Called once
58
59 // ESD histograms
60 if(fOutputContainer != NULL){
61 delete fOutputContainer;
62 }
63 fOutputContainer = new TList();
64 fOutputContainer->SetOwner(kTRUE);
65
66 //Event selection
67 fOutputContainer->Add(new TH1F("hSelEvents","Event celection", 10,0.,10.)) ;
68
69 //vertex distribution
70 fOutputContainer->Add(new TH1F("hZvertex","Z vertex position", 50,-25.,25.)) ;
71
72 //Centrality
73 fOutputContainer->Add(new TH1F("hCentrality","Event centrality", 100,0.,100.)) ;
74
75 //QA histograms
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));
79
80 Int_t nM = 500;
81 Double_t mMin = 0.0;
82 Double_t mMax = 1.0;
83 Int_t nPt = 200;
84 Double_t ptMin = 0;
85 Double_t ptMax = 20;
86
87 char key[55] ;
88 for(Int_t cent=0; cent<6; cent++){
89 //Single photon
cf150629 90
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));
02f0b8e7 94 snprintf(key,55,"hPhotAll_cen%d",cent) ;
95 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
96 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
6e4947dd 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() ;
02f0b8e7 103 snprintf(key,55,"hPhotCPV_cen%d",cent) ;
104 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
6e4947dd 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));
02f0b8e7 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() ;
6e4947dd 113 snprintf(key,55,"hPhotDisp2_cen%d",cent) ;
114 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
115 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
cf150629 116 snprintf(key,55,"hPhotDispcore_cen%d",cent) ;
6e4947dd 117 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
118 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
02f0b8e7 119 snprintf(key,55,"hPhotBoth_cen%d",cent) ;
120 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
121 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
6e4947dd 122 snprintf(key,55,"hPhotBothcore_cen%d",cent) ;
123 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
124 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
02f0b8e7 125
6e4947dd 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() ;
cf150629 148 snprintf(key,55,"hNegPhotDispcore_cen%d",cent) ;
6e4947dd 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() ;
157
02f0b8e7 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() ;
6e4947dd 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() ;
02f0b8e7 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));
6e4947dd 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));
02f0b8e7 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() ;
6e4947dd 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() ;
cf150629 180 snprintf(key,55,"hOldMassPtDispcore_cen%d",cent) ;
6e4947dd 181 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
182 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
02f0b8e7 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() ;
6e4947dd 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() ;
02f0b8e7 189
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() ;
6e4947dd 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() ;
02f0b8e7 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() ;
6e4947dd 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() ;
02f0b8e7 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() ;
6e4947dd 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() ;
cf150629 214 snprintf(key,55,"hNewMassPtDispcore_cen%d",cent) ;
6e4947dd 215 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
216 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
02f0b8e7 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() ;
6e4947dd 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() ;
223
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() ;
cf150629 248 snprintf(key,55,"hNegMassPtDispcore_cen%d",cent) ;
6e4947dd 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() ;
257
02f0b8e7 258
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() ;
6e4947dd 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() ;
02f0b8e7 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() ;
6e4947dd 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() ;
02f0b8e7 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() ;
6e4947dd 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() ;
cf150629 283 snprintf(key,55,"hMassPtDispcore_cen%d",cent) ;
6e4947dd 284 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
285 ((TH2F*)fOutputContainer->Last())->Sumw2() ;
02f0b8e7 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() ;
6e4947dd 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() ;
292
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));
303
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));
314
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));
325
02f0b8e7 326
327 //Mixed
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));
6e4947dd 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));
02f0b8e7 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));
6e4947dd 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));
02f0b8e7 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));
6e4947dd 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));
cf150629 344 snprintf(key,55,"hMiMassPtDispcore_cen%d",cent) ;
6e4947dd 345 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
02f0b8e7 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));
6e4947dd 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));
02f0b8e7 350
6e4947dd 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));
361
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));
372
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));
383
02f0b8e7 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));
6e4947dd 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));
02f0b8e7 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));
6e4947dd 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));
02f0b8e7 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));
6e4947dd 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));
cf150629 400 snprintf(key,55,"hMCMassPtDispcore_cen%d",cent) ;
6e4947dd 401 fOutputContainer->Add(new TH2F(key,"(M,p_{T},d#phi)_{#gamma#gamma}" ,nM,mMin,mMax,nPt,ptMin,ptMax));
02f0b8e7 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));
6e4947dd 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));
406
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));
417
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));
428
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));
02f0b8e7 439
440 //Single photon
441 snprintf(key,55,"hMCPhotAll_cen%d",cent) ;
442 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
443 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
6e4947dd 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() ;
02f0b8e7 450 snprintf(key,55,"hMCPhotCPV_cen%d",cent) ;
451 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
452 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
6e4947dd 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() ;
02f0b8e7 459 snprintf(key,55,"hMCPhotDisp_cen%d",cent) ;
460 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
461 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
6e4947dd 462 snprintf(key,55,"hMCPhotDisp2_cen%d",cent) ;
02f0b8e7 463 fOutputContainer->Add(new TH1F(key,"dN/dpt" ,nPt,ptMin,ptMax));
464 ((TH1F*)fOutputContainer->Last())->Sumw2() ;
cf150629 465 snprintf(key,55,"hMCPhotDispcore_cen%d",cent) ;
6e4947dd 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() ;
02f0b8e7 474
475 }
476
6e4947dd 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));
02f0b8e7 483
484 //MC
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.)) ;
510 }
511
512 PostData(1, fOutputContainer);
513
514}
515
516//________________________________________________________________________
517void AliAnalysisTaskPi0DiffEfficiency::UserExec(Option_t *)
518{
519 // Main loop, called for each event
520 // Analyze ESD/AOD
521
522 FillHistogram("hSelEvents",0.5) ;
523
524 AliAODEvent *event = dynamic_cast<AliAODEvent*>(InputEvent());
525 if (!event) {
526 Printf("ERROR: Could not retrieve event");
527 PostData(1, fOutputContainer);
528 return;
529 }
530
531 FillHistogram("hSelEvents",1.5) ;
532 AliAODHeader *header = event->GetHeader() ;
533
534 // Checks if we have a primary vertex
535 // Get primary vertices form ESD
536 const AliAODVertex *esdVertex5 = event->GetPrimaryVertex();
537
538 // don't rely on ESD vertex, assume (0,0,0)
539 Double_t vtx0[3] ={0.,0.,0.};
02f0b8e7 540
541
542 FillHistogram("hZvertex",esdVertex5->GetZ());
543 if (TMath::Abs(esdVertex5->GetZ()) > 10. ){
544 PostData(1, fOutputContainer);
545 return;
546 }
547 FillHistogram("hSelEvents",2.5) ;
548
549 //Vtx class z-bin
550 // Int_t zvtx = (Int_t)((vtx5[2]+10.)/2.) ;
551 // if(zvtx<0)zvtx=0 ;
552 // if(zvtx>9)zvtx=9 ;
553 Int_t zvtx=0 ;
554
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() ;
558
559 if( fCentrality < 0. || fCentrality>80.){
560 PostData(1, fOutputContainer);
561 return;
562 }
563 FillHistogram("hSelEvents",3.5) ;
564 Float_t bins[7]={0.,5.,10.,20.,40.,60.,80.} ;
565 fCenBin=0 ;
566 while(fCenBin<6 && fCentrality > bins[fCenBin+1])
567 fCenBin++ ;
568
569
570 //reaction plain
571 fRPfull= header->GetZDCN1Energy() ;
572 if(fRPfull==999){ //reaction plain was not defined
573 PostData(1, fOutputContainer);
574 return;
575 }
576
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)
581 //We have 10 bins
6e4947dd 582 Int_t irp=Int_t(10.*fRPfull/TMath::Pi());
02f0b8e7 583 if(irp>9)irp=9 ;
584
585 if(!fPHOSEvents[zvtx][fCenBin][irp])
586 fPHOSEvents[zvtx][fCenBin][irp]=new TList() ;
587 TList * prevPHOS = fPHOSEvents[zvtx][fCenBin][irp] ;
588
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);
595 }
596 fEventCounter++ ;
597 }
598
599 ProcessMC() ;
600
601 if(fPHOSEvent1){
602 fPHOSEvent1->Clear() ;
603 fPHOSEvent2->Clear() ;
604 }
605 else{
606 fPHOSEvent1 = new TClonesArray("AliCaloPhoton",200) ;
607 fPHOSEvent2 = new TClonesArray("AliCaloPhoton",200) ;
608 }
609
610 TClonesArray * clustersEmb = (TClonesArray*)event->FindListObject("EmbeddedCaloClusters") ;
6e4947dd 611 AliAODCaloCells * cellsEmb = (AliAODCaloCells *)event->FindListObject("EmbeddedPHOScells") ;
02f0b8e7 612 TClonesArray * clustersOld = event->GetCaloClusters() ;
6e4947dd 613 AliAODCaloCells * cellsOld = event->GetPHOSCells() ;
02f0b8e7 614 TVector3 vertex(vtx0);
615 char key[55] ;
616 //Before Embedding
617 Int_t multClustOld = clustersOld->GetEntriesFast();
618 Int_t multClustEmb = clustersEmb->GetEntriesFast();
619 Int_t inPHOSold=0 ;
620 Int_t inPHOSemb=0 ;
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;
624
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);
629 }
630
631
632 Float_t position[3];
633 clu->GetPosition(position);
634 TVector3 global(position) ;
635 Int_t relId[4] ;
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) )
641 continue ;
642 if(clu->GetNCells()<3)
643 continue ;
644
1f77ed3b 645 snprintf(key,55,"hCluM%d",mod) ;
02f0b8e7 646 FillHistogram(key,cellX,cellZ,1.);
647
648 TLorentzVector pv1 ;
649 clu->GetMomentum(pv1 ,vtx0);
650
651 if(inPHOSold>=fPHOSEvent1->GetSize()){
652 fPHOSEvent1->Expand(inPHOSold+50) ;
653 }
654 AliCaloPhoton * ph = new((*fPHOSEvent1)[inPHOSold]) AliCaloPhoton(pv1.X(),pv1.Py(),pv1.Z(),pv1.E()) ;
655 ph->SetModule(mod) ;
6e4947dd 656 AliPHOSAodCluster cluPHOS1(*clu);
657 cluPHOS1.Recalibrate(fPHOSCalibData,cellsOld); // modify the cell energies
658 Double_t ecore=CoreEnergy(&cluPHOS1) ;
659 pv1*= ecore/pv1.E() ;
02f0b8e7 660 ph->SetMomV2(&pv1) ;
661 ph->SetNCells(clu->GetNCells());
6e4947dd 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.) ;
02f0b8e7 666 if(!survive) //this cluster found in list after embedding, skipping it
6e4947dd 667 ph->SetTagged(1) ;
668 ph->SetPhoton(clu->GetNExMax()<2); // Remember, if it is unfolded
02f0b8e7 669
cf150629 670 if(!survive){
671 Double_t distBC=clu->GetDistanceToBadChannel();
672 if(distBC>2.)
673 FillHistogram(Form("hPhotAll_DistBad2_cen%d",fCenBin),ph->Pt(),-1.) ;
674 if(distBC>4.)
675 FillHistogram(Form("hPhotAll_DistBad4_cen%d",fCenBin),ph->Pt(),-1.) ;
676 if(distBC>6.)
677 FillHistogram(Form("hPhotAll_DistBad6_cen%d",fCenBin),ph->Pt(),-1.) ;
678 }
02f0b8e7 679 inPHOSold++ ;
680 }
681
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;
685
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);
690 }
691
692 Float_t position[3];
693 clu->GetPosition(position);
694 TVector3 global(position) ;
695 Int_t relId[4] ;
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) )
701 continue ;
702 if(clu->GetNCells()<3)
703 continue ;
704
1f77ed3b 705 snprintf(key,55,"hCluM%d",mod) ;
02f0b8e7 706 FillHistogram(key,cellX,cellZ,1.);
707
708 TLorentzVector pv1 ;
709 clu->GetMomentum(pv1 ,vtx0);
710
711 if(inPHOSemb>=fPHOSEvent2->GetSize()){
712 fPHOSEvent2->Expand(inPHOSemb+50) ;
713 }
714 AliCaloPhoton * ph = new((*fPHOSEvent2)[inPHOSemb]) AliCaloPhoton(pv1.X(),pv1.Py(),pv1.Z(),pv1.E()) ;
715 ph->SetModule(mod) ;
6e4947dd 716 AliPHOSAodCluster cluPHOS1(*clu);
717 cluPHOS1.Recalibrate(fPHOSCalibData,cellsEmb); // modify the cell energies
718 Double_t ecore=CoreEnergy(&cluPHOS1) ;
719 pv1*= ecore/pv1.E() ;
02f0b8e7 720 ph->SetMomV2(&pv1) ;
721 ph->SetNCells(clu->GetNCells());
6e4947dd 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.) ;
02f0b8e7 726 if(!survive) //this cluster found in list after embedding, skipping it
6e4947dd 727 ph->SetTagged(1) ;
728 ph->SetPhoton(clu->GetNExMax()<2); // Remember, if it is unfolded
02f0b8e7 729
cf150629 730 if(!survive){
731 Double_t distBC=clu->GetDistanceToBadChannel();
732 if(distBC>2.)
733 FillHistogram(Form("hPhotAll_DistBad2_cen%d",fCenBin),ph->Pt()) ;
734 if(distBC>4.)
735 FillHistogram(Form("hPhotAll_DistBad4_cen%d",fCenBin),ph->Pt()) ;
736 if(distBC>6.)
737 FillHistogram(Form("hPhotAll_DistBad6_cen%d",fCenBin),ph->Pt()) ;
738 }
739
02f0b8e7 740 inPHOSemb++ ;
741 }
742
743 //Single photon
744 for (Int_t i1=0; i1<inPHOSold; i1++) {
745 AliCaloPhoton * ph1=(AliCaloPhoton*)fPHOSEvent1->At(i1) ;
746 if(!ph1->IsTagged())
747 continue ;
748 snprintf(key,55,"hPhotAll_cen%d",fCenBin) ;
749 FillHistogram(key,ph1->Pt(),-1.) ;
6e4947dd 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.) ;
756 if(ph1->IsPhoton()){
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.) ;
761 }
02f0b8e7 762 if(ph1->IsCPVOK() ){
763 snprintf(key,55,"hPhotCPV_cen%d",fCenBin) ;
764 FillHistogram(key,ph1->Pt(),-1.) ;
6e4947dd 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.) ;
771 }
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.) ;
777 }
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.) ;
02f0b8e7 783 }
784 if(ph1->IsDispOK()){
785 snprintf(key,55,"hPhotDisp_cen%d",fCenBin) ;
786 FillHistogram(key,ph1->Pt(),-1.) ;
6e4947dd 787 snprintf(key,55,"hNegPhotDisp_cen%d",fCenBin) ;
788 FillHistogram(key,ph1->Pt(),-1.) ;
cf150629 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.) ;
02f0b8e7 793 if(ph1->IsCPVOK()){
794 snprintf(key,55,"hPhotBoth_cen%d",fCenBin) ;
795 FillHistogram(key,ph1->Pt(),-1.) ;
6e4947dd 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.) ;
02f0b8e7 802 }
803 } // end of loop i2
804 } // end of loop i1
805
806 for (Int_t i1=0; i1<inPHOSemb; i1++) {
807 AliCaloPhoton * ph1=(AliCaloPhoton*)fPHOSEvent2->At(i1) ;
808 if(!ph1->IsTagged())
809 continue ;
810 snprintf(key,55,"hPhotAll_cen%d",fCenBin) ;
811 FillHistogram(key,ph1->Pt(),1.) ;
6e4947dd 812 snprintf(key,55,"hPhotAllcore_cen%d",fCenBin) ;
813 FillHistogram(key,ph1->GetMomV2()->Pt(),1.) ;
814 if(ph1->IsPhoton()){
815 snprintf(key,55,"hPhotAllwou_cen%d",fCenBin) ;
816 FillHistogram(key,ph1->Pt(),1.) ;
817 }
02f0b8e7 818 if(ph1->IsCPVOK() ){
819 snprintf(key,55,"hPhotCPV_cen%d",fCenBin) ;
820 FillHistogram(key,ph1->Pt(),1.) ;
6e4947dd 821 snprintf(key,55,"hPhotCPVcore_cen%d",fCenBin) ;
822 FillHistogram(key,ph1->GetMomV2()->Pt(),1.) ;
823 }
824 if(ph1->IsCPV2OK() ){
825 snprintf(key,55,"hPhotCPV2_cen%d",fCenBin) ;
826 FillHistogram(key,ph1->Pt(),1.) ;
827 }
828 if(ph1->IsDisp2OK()){
829 snprintf(key,55,"hPhotDisp2_cen%d",fCenBin) ;
830 FillHistogram(key,ph1->Pt(),1.) ;
02f0b8e7 831 }
832 if(ph1->IsDispOK()){
833 snprintf(key,55,"hPhotDisp_cen%d",fCenBin) ;
834 FillHistogram(key,ph1->Pt(),1.) ;
cf150629 835 snprintf(key,55,"hPhotDispcore_cen%d",fCenBin) ;
836 FillHistogram(key,ph1->GetMomV2()->Pt(),1.) ;
02f0b8e7 837 if(ph1->IsCPVOK()){
838 snprintf(key,55,"hPhotBoth_cen%d",fCenBin) ;
839 FillHistogram(key,ph1->Pt(),1.) ;
6e4947dd 840 snprintf(key,55,"hPhotBothcore_cen%d",fCenBin) ;
841 FillHistogram(key,ph1->GetMomV2()->Pt(),1.) ;
02f0b8e7 842 }
843 } // end of loop i2
844 } // end of loop i1
845
846
847
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) ;
855
856 TLorentzVector p12 = *ph1 + *ph2;
857 TLorentzVector pv12 = *(ph1->GetMomV2()) + *(ph2->GetMomV2());
6e4947dd 858 Double_t a=TMath::Abs((ph1->E()-ph2->E())/(ph1->E()+ph2->E())) ;
859
02f0b8e7 860 //Fill Controll histogram: Real before embedding
861 snprintf(key,55,"hOldMassPtAll_cen%d",fCenBin) ;
862 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
6e4947dd 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.) ;
868 }
02f0b8e7 869 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
870 snprintf(key,55,"hOldMassPtCPV_cen%d",fCenBin) ;
871 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
6e4947dd 872 snprintf(key,55,"hOldMassPtCPV_cen%d",fCenBin) ;
873 FillHistogram(key,pv12.M(), pv12.Pt(),-1) ;
874 }
875 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
876 snprintf(key,55,"hOldMassPtCPV2_cen%d",fCenBin) ;
877 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
878 }
879 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
880 snprintf(key,55,"hOldMassPtDisp2_cen%d",fCenBin) ;
881 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
02f0b8e7 882 }
883 if(ph1->IsDispOK() && ph2->IsDispOK()){
884 snprintf(key,55,"hOldMassPtDisp_cen%d",fCenBin) ;
885 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
cf150629 886 snprintf(key,55,"hOldMassPtDispcore_cen%d",fCenBin) ;
887 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
02f0b8e7 888 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
889 snprintf(key,55,"hOldMassPtBoth_cen%d",fCenBin) ;
890 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
6e4947dd 891 snprintf(key,55,"hOldMassPtBothcore_cen%d",fCenBin) ;
892 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
02f0b8e7 893 }
894 }
895
6e4947dd 896 //Now fill main histograms with negative contributions
02f0b8e7 897 if(!(ph1->IsTagged() || ph2->IsTagged()) )
898 continue ;
899 snprintf(key,55,"hMassPtAll_cen%d",fCenBin) ;
900 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
6e4947dd 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.) ;
906 }
907 if(a<0.9){
908 snprintf(key,55,"hMassPtAll_a09_cen%d",fCenBin) ;
909 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
910 if(a<0.8){
911 snprintf(key,55,"hMassPtAll_a08_cen%d",fCenBin) ;
912 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
913 if(a<0.7){
914 snprintf(key,55,"hMassPtAll_a07_cen%d",fCenBin) ;
915 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
916 }
917 }
918 }
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.) ;
926 }
927
02f0b8e7 928 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
929 snprintf(key,55,"hMassPtCPV_cen%d",fCenBin) ;
930 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
6e4947dd 931 snprintf(key,55,"hMassPtCPVcore_cen%d",fCenBin) ;
932 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
933 if(a<0.9){
934 snprintf(key,55,"hMassPtCPV_a09_cen%d",fCenBin) ;
935 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
936 if(a<0.8){
937 snprintf(key,55,"hMassPtCPV_a08_cen%d",fCenBin) ;
938 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
939 if(a<0.7){
940 snprintf(key,55,"hMassPtCPV_a07_cen%d",fCenBin) ;
941 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
942 }
943 }
944 }
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) ;
949 }
950 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
951 snprintf(key,55,"hMassPtCPV2_cen%d",fCenBin) ;
952 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
953 if(a<0.9){
954 snprintf(key,55,"hMassPtCPV2_a09_cen%d",fCenBin) ;
955 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
956 if(a<0.8){
957 snprintf(key,55,"hMassPtCPV2_a08_cen%d",fCenBin) ;
958 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
959 if(a<0.7){
960 snprintf(key,55,"hMassPtCPV2_a07_cen%d",fCenBin) ;
961 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
962 }
963 }
964 }
965 snprintf(key,55,"hNegMassPtCPV2_cen%d",fCenBin) ;
966 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
967 }
968
969 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
970 snprintf(key,55,"hMassPtDisp2_cen%d",fCenBin) ;
971 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
02f0b8e7 972 }
973 if(ph1->IsDispOK() && ph2->IsDispOK()){
974 snprintf(key,55,"hMassPtDisp_cen%d",fCenBin) ;
975 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
cf150629 976 snprintf(key,55,"hMassPtDispcore_cen%d",fCenBin) ;
977 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
6e4947dd 978 if(a<0.9){
979 snprintf(key,55,"hMassPtDisp_a09_cen%d",fCenBin) ;
980 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
981 if(a<0.8){
982 snprintf(key,55,"hMassPtDisp_a08_cen%d",fCenBin) ;
983 FillHistogram(key,p12.M() ,p12.Pt()) ;
984 if(a<0.7){
985 snprintf(key,55,"hMassPtDisp_a07_cen%d",fCenBin) ;
986 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
987 }
988 }
989 }
990 snprintf(key,55,"hNegMassPtDisp_cen%d",fCenBin) ;
991 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
cf150629 992 snprintf(key,55,"hNegMassPtDispcore_cen%d",fCenBin) ;
993 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
02f0b8e7 994 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
995 snprintf(key,55,"hMassPtBoth_cen%d",fCenBin) ;
996 FillHistogram(key,p12.M() ,p12.Pt(),-1) ;
6e4947dd 997 snprintf(key,55,"hMassPtBothcore_cen%d",fCenBin) ;
998 FillHistogram(key,pv12.M() ,pv12.Pt(),-1) ;
999 if(a<0.9){
1000 snprintf(key,55,"hMassPtBoth_a09_cen%d",fCenBin) ;
1001 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
1002 if(a<0.8){
1003 snprintf(key,55,"hMassPtBoth_a08_cen%d",fCenBin) ;
1004 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
1005 if(a<0.7){
1006 snprintf(key,55,"hMassPtBoth_a07_cen%d",fCenBin) ;
1007 FillHistogram(key,p12.M() ,p12.Pt(),-1.) ;
1008 }
1009 }
1010 }
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) ;
02f0b8e7 1015 }
1016 }
1017 } // end of loop i2
1018 } // end of loop i1
1019
1020
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) ;
1028
1029 TLorentzVector p12 = *ph1 + *ph2;
1030 TLorentzVector pv12 = *(ph1->GetMomV2()) + *(ph2->GetMomV2());
6e4947dd 1031 Double_t a=TMath::Abs((ph1->E()-ph2->E())/(ph1->E()+ph2->E())) ;
02f0b8e7 1032
1033 // Controll histogram: Real after embedding
1034 snprintf(key,55,"hNewMassPtAll_cen%d",fCenBin) ;
1035 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
6e4947dd 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.) ;
1041 }
02f0b8e7 1042 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1043 snprintf(key,55,"hNewMassPtCPV_cen%d",fCenBin) ;
1044 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
6e4947dd 1045 snprintf(key,55,"hNewMassPtCPVcore_cen%d",fCenBin) ;
1046 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
1047 }
1048 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
1049 snprintf(key,55,"hNewMassPtCPV2_cen%d",fCenBin) ;
1050 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1051 }
1052 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
1053 snprintf(key,55,"hNewMassPtDisp2_cen%d",fCenBin) ;
1054 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
02f0b8e7 1055 }
1056 if(ph1->IsDispOK() && ph2->IsDispOK()){
1057 snprintf(key,55,"hNewMassPtDisp_cen%d",fCenBin) ;
1058 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
cf150629 1059 snprintf(key,55,"hNewMassPtDispcore_cen%d",fCenBin) ;
1060 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
02f0b8e7 1061 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1062 snprintf(key,55,"hNewMassPtBoth_cen%d",fCenBin) ;
1063 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
6e4947dd 1064 snprintf(key,55,"hNewMassPtBothcore_cen%d",fCenBin) ;
1065 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
02f0b8e7 1066 }
1067 }
1068
1069 //Now fill main histogamm
1070 //new clusters with positive contribution
1071 if(!(ph1->IsTagged() || ph2->IsTagged()) )
1072 continue ;
1073 snprintf(key,55,"hMassPtAll_cen%d",fCenBin) ;
1074 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
6e4947dd 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.) ;
1080 }
1081 if(a<0.9){
1082 snprintf(key,55,"hMassPtAll_a09_cen%d",fCenBin) ;
1083 FillHistogram(key,p12.M() ,p12.Pt()) ;
1084 if(a<0.8){
1085 snprintf(key,55,"hMassPtAll_a08_cen%d",fCenBin) ;
1086 FillHistogram(key,p12.M() ,p12.Pt()) ;
1087 if(a<0.7){
1088 snprintf(key,55,"hMassPtAll_a07_cen%d",fCenBin) ;
1089 FillHistogram(key,p12.M() ,p12.Pt()) ;
1090 }
1091 }
1092 }
02f0b8e7 1093 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1094 snprintf(key,55,"hMassPtCPV_cen%d",fCenBin) ;
1095 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
6e4947dd 1096 snprintf(key,55,"hMassPtCPVcore_cen%d",fCenBin) ;
1097 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
1098 if(a<0.9){
1099 snprintf(key,55,"hMassPtCPV_a09_cen%d",fCenBin) ;
1100 FillHistogram(key,p12.M() ,p12.Pt()) ;
1101 if(a<0.8){
1102 snprintf(key,55,"hMassPtCPV_a08_cen%d",fCenBin) ;
1103 FillHistogram(key,p12.M() ,p12.Pt()) ;
1104 if(a<0.7){
1105 snprintf(key,55,"hMassPtCPV_a07_cen%d",fCenBin) ;
1106 FillHistogram(key,p12.M() ,p12.Pt()) ;
1107 }
1108 }
1109 }
1110 }
1111 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
1112 snprintf(key,55,"hMassPtCPV2_cen%d",fCenBin) ;
1113 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
1114 if(a<0.9){
1115 snprintf(key,55,"hMassPtCPV2_a09_cen%d",fCenBin) ;
1116 FillHistogram(key,p12.M() ,p12.Pt()) ;
1117 if(a<0.8){
1118 snprintf(key,55,"hMassPtCPV2_a08_cen%d",fCenBin) ;
1119 FillHistogram(key,p12.M() ,p12.Pt()) ;
1120 if(a<0.7){
1121 snprintf(key,55,"hMassPtCPV2_a07_cen%d",fCenBin) ;
1122 FillHistogram(key,p12.M() ,p12.Pt()) ;
1123 }
1124 }
1125 }
1126 }
1127 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
1128 snprintf(key,55,"hMassPtDisp2_cen%d",fCenBin) ;
1129 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
02f0b8e7 1130 }
1131 if(ph1->IsDispOK() && ph2->IsDispOK()){
1132 snprintf(key,55,"hMassPtDisp_cen%d",fCenBin) ;
1133 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
cf150629 1134 snprintf(key,55,"hMassPtDispcore_cen%d",fCenBin) ;
1135 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
6e4947dd 1136 if(a<0.9){
1137 snprintf(key,55,"hMassPtDisp_a09_cen%d",fCenBin) ;
1138 FillHistogram(key,p12.M() ,p12.Pt()) ;
1139 if(a<0.8){
1140 snprintf(key,55,"hMassPtDisp_a08_cen%d",fCenBin) ;
1141 FillHistogram(key,p12.M() ,p12.Pt()) ;
1142 if(a<0.7){
1143 snprintf(key,55,"hMassPtDisp_a07_cen%d",fCenBin) ;
1144 FillHistogram(key,p12.M() ,p12.Pt()) ;
1145 }
1146 }
1147 }
02f0b8e7 1148
1149 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1150 snprintf(key,55,"hMassPtBoth_cen%d",fCenBin) ;
1151 FillHistogram(key,p12.M() ,p12.Pt(),1) ;
6e4947dd 1152 snprintf(key,55,"hMassPtBothcore_cen%d",fCenBin) ;
1153 FillHistogram(key,pv12.M() ,pv12.Pt(),1) ;
1154 if(a<0.9){
1155 snprintf(key,55,"hMassPtBoth_a09_cen%d",fCenBin) ;
1156 FillHistogram(key,p12.M() ,p12.Pt()) ;
1157 if(a<0.8){
1158 snprintf(key,55,"hMassPtBoth_a08_cen%d",fCenBin) ;
1159 FillHistogram(key,p12.M() ,p12.Pt()) ;
1160 if(a<0.7){
1161 snprintf(key,55,"hMassPtBoth_a07_cen%d",fCenBin) ;
1162 FillHistogram(key,p12.M() ,p12.Pt()) ;
1163 }
1164 }
1165 }
02f0b8e7 1166 }
1167 }
1168 } // end of loop i2
1169 } // end of loop i1
1170
1171
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());
6e4947dd 1181 Double_t a=TMath::Abs((ph1->E()-ph2->E())/(ph1->E()+ph2->E())) ;
02f0b8e7 1182
1183 snprintf(key,55,"hMiMassPtAll_cen%d",fCenBin) ;
1184 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
6e4947dd 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.) ;
1190 }
1191 if(a<0.9){
1192 snprintf(key,55,"hMiMassPtAll_a09_cen%d",fCenBin) ;
1193 FillHistogram(key,p12.M() ,p12.Pt()) ;
1194 if(a<0.8){
1195 snprintf(key,55,"hMiMassPtAll_a08_cen%d",fCenBin) ;
1196 FillHistogram(key,p12.M() ,p12.Pt()) ;
1197 if(a<0.7){
1198 snprintf(key,55,"hMiMassPtAll_a07_cen%d",fCenBin) ;
1199 FillHistogram(key,p12.M() ,p12.Pt()) ;
1200 }
1201 }
1202 }
02f0b8e7 1203 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1204 snprintf(key,55,"hMiMassPtCPV_cen%d",fCenBin) ;
1205 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
6e4947dd 1206 snprintf(key,55,"hMiMassPtCPVcore_cen%d",fCenBin) ;
1207 FillHistogram(key,pv12.M() ,pv12.Pt(),1.) ;
1208 if(a<0.9){
1209 snprintf(key,55,"hMiMassPtCPV_a09_cen%d",fCenBin) ;
1210 FillHistogram(key,p12.M() ,p12.Pt()) ;
1211 if(a<0.8){
1212 snprintf(key,55,"hMiMassPtCPV_a08_cen%d",fCenBin) ;
1213 FillHistogram(key,p12.M() ,p12.Pt()) ;
1214 if(a<0.7){
1215 snprintf(key,55,"hMiMassPtCPV_a07_cen%d",fCenBin) ;
1216 FillHistogram(key,p12.M() ,p12.Pt()) ;
1217 }
1218 }
1219 }
1220 }
1221 if(ph1->IsCPV2OK() && ph2->IsCPV2OK()){
1222 snprintf(key,55,"hMiMassPtCPV2_cen%d",fCenBin) ;
1223 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
1224 if(a<0.9){
1225 snprintf(key,55,"hMiMassPtCPV2_a09_cen%d",fCenBin) ;
1226 FillHistogram(key,p12.M() ,p12.Pt()) ;
1227 if(a<0.8){
1228 snprintf(key,55,"hMiMassPtCPV2_a08_cen%d",fCenBin) ;
1229 FillHistogram(key,p12.M() ,p12.Pt()) ;
1230 if(a<0.7){
1231 snprintf(key,55,"hMiMassPtCPV2_a07_cen%d",fCenBin) ;
1232 FillHistogram(key,p12.M() ,p12.Pt()) ;
1233 }
1234 }
1235 }
1236 }
1237 if(ph1->IsDisp2OK() && ph2->IsDisp2OK()){
1238 snprintf(key,55,"hMiMassPtDisp2_cen%d",fCenBin) ;
1239 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
02f0b8e7 1240 }
1241 if(ph1->IsDispOK() && ph2->IsDispOK()){
1242 snprintf(key,55,"hMiMassPtDisp_cen%d",fCenBin) ;
1243 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
cf150629 1244 snprintf(key,55,"hMiMassPtDispcore_cen%d",fCenBin) ;
1245 FillHistogram(key,pv12.M() ,pv12.Pt(),1.) ;
6e4947dd 1246 if(a<0.9){
1247 snprintf(key,55,"hMiMassPtDisp_a09_cen%d",fCenBin) ;
1248 FillHistogram(key,p12.M() ,p12.Pt()) ;
1249 if(a<0.8){
1250 snprintf(key,55,"hMiMassPtDisp_a08_cen%d",fCenBin) ;
1251 FillHistogram(key,p12.M() ,p12.Pt()) ;
1252 if(a<0.7){
1253 snprintf(key,55,"hMiMassPtDisp_a07_cen%d",fCenBin) ;
1254 FillHistogram(key,p12.M() ,p12.Pt()) ;
1255 }
1256 }
1257 }
02f0b8e7 1258
1259 if(ph1->IsCPVOK() && ph2->IsCPVOK()){
1260 snprintf(key,55,"hMiMassPtBoth_cen%d",fCenBin) ;
1261 FillHistogram(key,p12.M() ,p12.Pt(),1.) ;
6e4947dd 1262 snprintf(key,55,"hMiMassPtBothcore_cen%d",fCenBin) ;
1263 FillHistogram(key,pv12.M() ,pv12.Pt(),1.) ;
1264 if(a<0.9){
1265 snprintf(key,55,"hMiMassPtBoth_a09_cen%d",fCenBin) ;
1266 FillHistogram(key,p12.M() ,p12.Pt()) ;
1267 if(a<0.8){
1268 snprintf(key,55,"hMiMassPtBoth_a08_cen%d",fCenBin) ;
1269 FillHistogram(key,p12.M() ,p12.Pt()) ;
1270 if(a<0.7){
1271 snprintf(key,55,"hMiMassPtBoth_a07_cen%d",fCenBin) ;
1272 FillHistogram(key,p12.M() ,p12.Pt()) ;
1273 }
1274 }
1275 }
02f0b8e7 1276 }
1277 }
1278 } // end of loop i2
1279 }
1280 } // end of loop i1
1281
1282
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) ;
1287 fPHOSEvent2=0;
1288 delete fPHOSEvent1;
1289 fPHOSEvent1=0;
1290 if(prevPHOS->GetSize()>100){//Remove redundant events
1291 TClonesArray * tmp = static_cast<TClonesArray*>(prevPHOS->Last()) ;
1292 prevPHOS->RemoveLast() ;
1293 delete tmp ;
1294 }
1295 }
1296 // Post output data.
1297 PostData(1, fOutputContainer);
1298 fEventCounter++;
1299}
02f0b8e7 1300//___________________________________________________________________________
1301Bool_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
1306
1307 if(c1->GetNCells() != c2->GetNCells())
1308 return kFALSE ;
1309
6e4947dd 1310 if(TMath::Abs(c1->E()-c2->E())>0.01*c1->E())
02f0b8e7 1311 return kFALSE ;
1312
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])
1317 return kFALSE ;
1318 }
1319 return kTRUE ;
1320
1321}
1322
1323
1324