1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 //------------------------------------------------------------------------//
17 // Fill histograms with basic QA information for EMCAL offline trigger //
18 // Author: Nicolas Arbor (LPSC-Grenoble), Rachid Guernane (LPSC-Grenoble)//
19 // Gustavo Conesa Balbastre (LPSC-Grenoble) //
21 //------------------------------------------------------------------------//
27 #include <TProfile2D.h>
30 #include "AliVCluster.h"
31 #include "AliVCaloCells.h"
32 #include "AliVEvent.h"
33 #include "AliCentrality.h"
35 #include "AliESDEvent.h"
36 #include "AliESDVZERO.h"
37 #include "AliESDCaloTrigger.h"
38 #include "AliEMCALGeometry.h"
39 #include "AliEMCALRecoUtils.h"
41 #include "AliAnalysisTaskEMCALTriggerQA.h"
43 ClassImp(AliAnalysisTaskEMCALTriggerQA)
45 //______________________________________________________________
46 AliAnalysisTaskEMCALTriggerQA::AliAnalysisTaskEMCALTriggerQA() :
48 fOutputList(0), fRecoUtils(0x0),
49 fGeometry(0), fGeoName(""),
50 fhNEvents(0), fhFORAmp(0),
51 fhFORAmpL1G(0), fhFORAmpL1J(0),
52 fhL0Amp(0), fhL0AmpL1G(0), fhL0AmpL1J(0),
53 fhL1Amp(0), fhL1GAmp(0), fhL1JAmp(0),
54 fhL0Patch(0), fhL1GPatch(0), fhL1JPatch(0),
55 fhFEESTU(0), fhTRUSTU(0), fhV0STU(0),
56 fhGPMaxVV0TT(0), fhJPMaxVV0TT(0),
57 fhFORMeanAmp(0), fhL0MeanAmp(0), fhL1MeanAmp(0),
58 fhV0MB(0), fhV0L1G(0), fhV0L1J(0),
59 fhL1GPatchMax(0), fhL1JPatchMax(0),
61 fhClusMB(0), fhClusMBPure(0), fhClusL0(0),
62 fhClusL1G(0), fhClusL1J(0),
63 fhClusL1GOnly(0), fhClusL1JOnly(0),
64 fhClusMaxMB(0), fhClusMaxMBPure(0), fhClusMaxL0(0),
65 fhClusMaxL1G(0), fhClusMaxL1J(0),
66 fhClusMaxL1GOnly(0), fhClusMaxL1JOnly(0),
68 fhClusCenMB(0), fhClusCenL0(0),
69 fhClusCenL1G(0), fhClusCenL1J(0),
70 fhClusCenL1GOnly(0), fhClusCenL1JOnly(0),
71 fhClusCenMaxMB(0), fhClusCenMaxL0(0),
72 fhClusCenMaxL1G(0), fhClusCenMaxL1J(0),
73 fhClusCenMaxL1GOnly(0), fhClusCenMaxL1JOnly(0),
75 fhClusV0MB(0), fhClusV0L0(0),
76 fhClusV0L1G(0), fhClusV0L1J(0),
77 fhClusV0L1GOnly(0), fhClusV0L1JOnly(0),
78 fhClusV0MaxMB(0), fhClusV0MaxL0(0),
79 fhClusV0MaxL1G(0), fhClusV0MaxL1J(0),
80 fhClusV0MaxL1GOnly(0), fhClusV0MaxL1JOnly(0),
82 fhClusEtaMB(0), fhClusEtaL0(0),
83 fhClusEtaL1G(0), fhClusEtaL1J(0),
84 fhClusEtaL1GOnly(0), fhClusEtaL1JOnly(0),
85 fhClusEtaMaxMB(0), fhClusEtaMaxL0(0),
86 fhClusEtaMaxL1G(0), fhClusEtaMaxL1J(0),
87 fhClusEtaMaxL1GOnly(0), fhClusEtaMaxL1JOnly(0),
89 fhClusPhiMB(0), fhClusPhiL0(0),
90 fhClusPhiL1G(0), fhClusPhiL1J(0),
91 fhClusPhiL1GOnly(0), fhClusPhiL1JOnly(0),
92 fhClusPhiMaxMB(0), fhClusPhiMaxL0(0),
93 fhClusPhiMaxL1G(0), fhClusPhiMaxL1J(0),
94 fhClusPhiMaxL1GOnly(0), fhClusPhiMaxL1JOnly(0),
96 fhClusEtaPhiHighMB(0), fhClusEtaPhiHighL0(0),
97 fhClusEtaPhiHighL1G(0), fhClusEtaPhiHighL1J(0),
98 fhClusEtaPhiHighL1GOnly(0), fhClusEtaPhiHighL1JOnly(0),
99 fhClusEtaPhiHighCluMaxMB(0), fhClusEtaPhiHighCluMaxL0(0),
100 fhClusEtaPhiHighCluMaxL1G(0), fhClusEtaPhiHighCluMaxL1J(0),
101 fhClusEtaPhiHighCluMaxL1GOnly(0), fhClusEtaPhiHighCluMaxL1JOnly(0),
103 fhClusEtaPhiHighCellMaxMB(0), fhClusEtaPhiHighCellMaxL0(0),
104 fhClusEtaPhiHighCellMaxL1G(0), fhClusEtaPhiHighCellMaxL1J(0),
105 fhClusEtaPhiHighCellMaxL1GOnly(0), fhClusEtaPhiHighCellMaxL1JOnly(0),
106 fhClusEtaPhiHighCellMaxCluMaxMB(0), fhClusEtaPhiHighCellMaxCluMaxL0(0),
107 fhClusEtaPhiHighCellMaxCluMaxL1G(0), fhClusEtaPhiHighCellMaxCluMaxL1J(0),
108 fhClusEtaPhiHighCellMaxCluMaxL1GOnly(0), fhClusEtaPhiHighCellMaxCluMaxL1JOnly(0),
110 fhClusEtaPhiLowMB(0), fhClusEtaPhiLowL0(0),
111 fhClusEtaPhiLowL1G(0), fhClusEtaPhiLowL1J(0),
112 fhClusEtaPhiLowL1GOnly(0), fhClusEtaPhiLowL1JOnly(0),
113 fhClusEtaPhiLowCluMaxMB(0), fhClusEtaPhiLowCluMaxL0(0),
114 fhClusEtaPhiLowCluMaxL1G(0), fhClusEtaPhiLowCluMaxL1J(0),
115 fhClusEtaPhiLowCluMaxL1GOnly(0), fhClusEtaPhiLowCluMaxL1JOnly(0),
117 fhClusEtaPhiLowCellMaxMB(0), fhClusEtaPhiLowCellMaxL0(0),
118 fhClusEtaPhiLowCellMaxL1G(0), fhClusEtaPhiLowCellMaxL1J(0),
119 fhClusEtaPhiLowCellMaxL1GOnly(0), fhClusEtaPhiLowCellMaxL1JOnly(0),
120 fhClusEtaPhiLowCellMaxCluMaxMB(0), fhClusEtaPhiLowCellMaxCluMaxL0(0),
121 fhClusEtaPhiLowCellMaxCluMaxL1G(0), fhClusEtaPhiLowCellMaxCluMaxL1J(0),
122 fhClusEtaPhiLowCellMaxCluMaxL1GOnly(0), fhClusEtaPhiLowCellMaxCluMaxL1JOnly(0),
125 fNBinsSTUSignal (2000), fMaxSTUSignal (200000),
126 fNBinsTRUSignal (2000), fMaxTRUSignal (200000),
127 fNBinsV0Signal (5000), fMaxV0Signal (100000),
128 fNBinsSTUFEERatio(1000), fMaxSTUFEERatio(100),
129 fNBinsSTUTRURatio(1000), fMaxSTUTRURatio(100),
130 fNBinsClusterE (500), fMaxClusterE (200)
135 fGeoName = "EMCAL_COMPLETEV1";
136 fRecoUtils = new AliEMCALRecoUtils;
138 DefineOutput(1, TList::Class());
142 //______________________________________________________________________________
143 AliAnalysisTaskEMCALTriggerQA::AliAnalysisTaskEMCALTriggerQA(const char *name) :
144 AliAnalysisTaskSE(name),
145 fOutputList(0), fRecoUtils(0x0),
146 fGeometry(0), fGeoName(""),
147 fhNEvents(0), fhFORAmp(0),
148 fhFORAmpL1G(0), fhFORAmpL1J(0),
149 fhL0Amp(0), fhL0AmpL1G(0), fhL0AmpL1J(0),
150 fhL1Amp(0), fhL1GAmp(0), fhL1JAmp(0),
151 fhL0Patch(0), fhL1GPatch(0), fhL1JPatch(0),
152 fhFEESTU(0), fhTRUSTU(0), fhV0STU(0),
153 fhGPMaxVV0TT(0), fhJPMaxVV0TT(0),
154 fhFORMeanAmp(0), fhL0MeanAmp(0), fhL1MeanAmp(0),
155 fhV0MB(0), fhV0L1G(0), fhV0L1J(0),
156 fhL1GPatchMax(0), fhL1JPatchMax(0),
158 fhClusMB(0), fhClusMBPure(0), fhClusL0(0),
159 fhClusL1G(0), fhClusL1J(0),
160 fhClusL1GOnly(0), fhClusL1JOnly(0),
161 fhClusMaxMB(0), fhClusMaxMBPure(0), fhClusMaxL0(0),
162 fhClusMaxL1G(0), fhClusMaxL1J(0),
163 fhClusMaxL1GOnly(0), fhClusMaxL1JOnly(0),
165 fhClusCenMB(0), fhClusCenL0(0),
166 fhClusCenL1G(0), fhClusCenL1J(0),
167 fhClusCenL1GOnly(0), fhClusCenL1JOnly(0),
168 fhClusCenMaxMB(0), fhClusCenMaxL0(0),
169 fhClusCenMaxL1G(0), fhClusCenMaxL1J(0),
170 fhClusCenMaxL1GOnly(0), fhClusCenMaxL1JOnly(0),
172 fhClusV0MB(0), fhClusV0L0(0),
173 fhClusV0L1G(0), fhClusV0L1J(0),
174 fhClusV0L1GOnly(0), fhClusV0L1JOnly(0),
175 fhClusV0MaxMB(0), fhClusV0MaxL0(0),
176 fhClusV0MaxL1G(0), fhClusV0MaxL1J(0),
177 fhClusV0MaxL1GOnly(0), fhClusV0MaxL1JOnly(0),
179 fhClusEtaMB(0), fhClusEtaL0(0),
180 fhClusEtaL1G(0), fhClusEtaL1J(0),
181 fhClusEtaL1GOnly(0), fhClusEtaL1JOnly(0),
182 fhClusEtaMaxMB(0), fhClusEtaMaxL0(0),
183 fhClusEtaMaxL1G(0), fhClusEtaMaxL1J(0),
184 fhClusEtaMaxL1GOnly(0), fhClusEtaMaxL1JOnly(0),
186 fhClusPhiMB(0), fhClusPhiL0(0),
187 fhClusPhiL1G(0), fhClusPhiL1J(0),
188 fhClusPhiL1GOnly(0), fhClusPhiL1JOnly(0),
189 fhClusPhiMaxMB(0), fhClusPhiMaxL0(0),
190 fhClusPhiMaxL1G(0), fhClusPhiMaxL1J(0),
191 fhClusPhiMaxL1GOnly(0), fhClusPhiMaxL1JOnly(0),
193 fhClusEtaPhiHighMB(0), fhClusEtaPhiHighL0(0),
194 fhClusEtaPhiHighL1G(0), fhClusEtaPhiHighL1J(0),
195 fhClusEtaPhiHighL1GOnly(0), fhClusEtaPhiHighL1JOnly(0),
196 fhClusEtaPhiHighCluMaxMB(0), fhClusEtaPhiHighCluMaxL0(0),
197 fhClusEtaPhiHighCluMaxL1G(0), fhClusEtaPhiHighCluMaxL1J(0),
198 fhClusEtaPhiHighCluMaxL1GOnly(0), fhClusEtaPhiHighCluMaxL1JOnly(0),
200 fhClusEtaPhiHighCellMaxMB(0), fhClusEtaPhiHighCellMaxL0(0),
201 fhClusEtaPhiHighCellMaxL1G(0), fhClusEtaPhiHighCellMaxL1J(0),
202 fhClusEtaPhiHighCellMaxL1GOnly(0), fhClusEtaPhiHighCellMaxL1JOnly(0),
203 fhClusEtaPhiHighCellMaxCluMaxMB(0), fhClusEtaPhiHighCellMaxCluMaxL0(0),
204 fhClusEtaPhiHighCellMaxCluMaxL1G(0), fhClusEtaPhiHighCellMaxCluMaxL1J(0),
205 fhClusEtaPhiHighCellMaxCluMaxL1GOnly(0), fhClusEtaPhiHighCellMaxCluMaxL1JOnly(0),
207 fhClusEtaPhiLowMB(0), fhClusEtaPhiLowL0(0),
208 fhClusEtaPhiLowL1G(0), fhClusEtaPhiLowL1J(0),
209 fhClusEtaPhiLowL1GOnly(0), fhClusEtaPhiLowL1JOnly(0),
210 fhClusEtaPhiLowCluMaxMB(0), fhClusEtaPhiLowCluMaxL0(0),
211 fhClusEtaPhiLowCluMaxL1G(0), fhClusEtaPhiLowCluMaxL1J(0),
212 fhClusEtaPhiLowCluMaxL1GOnly(0), fhClusEtaPhiLowCluMaxL1JOnly(0),
214 fhClusEtaPhiLowCellMaxMB(0), fhClusEtaPhiLowCellMaxL0(0),
215 fhClusEtaPhiLowCellMaxL1G(0), fhClusEtaPhiLowCellMaxL1J(0),
216 fhClusEtaPhiLowCellMaxL1GOnly(0), fhClusEtaPhiLowCellMaxL1JOnly(0),
217 fhClusEtaPhiLowCellMaxCluMaxMB(0), fhClusEtaPhiLowCellMaxCluMaxL0(0),
218 fhClusEtaPhiLowCellMaxCluMaxL1G(0), fhClusEtaPhiLowCellMaxCluMaxL1J(0),
219 fhClusEtaPhiLowCellMaxCluMaxL1GOnly(0), fhClusEtaPhiLowCellMaxCluMaxL1JOnly(0),
222 fNBinsSTUSignal (2000), fMaxSTUSignal (200000),
223 fNBinsTRUSignal (2000), fMaxTRUSignal (200000),
224 fNBinsV0Signal (5000), fMaxV0Signal (100000),
225 fNBinsSTUFEERatio(1000), fMaxSTUFEERatio(100),
226 fNBinsSTUTRURatio(1000), fMaxSTUTRURatio(100),
227 fNBinsClusterE (500), fMaxClusterE (200)
232 fGeoName = "EMCAL_COMPLETEV1";
233 fRecoUtils = new AliEMCALRecoUtils;
235 DefineOutput(1, TList::Class());
240 //___________________________________________________________
241 void AliAnalysisTaskEMCALTriggerQA::UserCreateOutputObjects()
243 // Init histograms and geometry
245 fGeometry = AliEMCALGeometry::GetInstance(fGeoName);
247 fOutputList = new TList;
248 fOutputList ->SetOwner(kTRUE);
250 fhNEvents = new TH1F("hNEvents","Number of selected events",12,0,12);
251 fhNEvents ->SetYTitle("N events");
252 fhNEvents ->GetXaxis()->SetBinLabel(1 ,"All");
253 fhNEvents ->GetXaxis()->SetBinLabel(2 ,"MB");
254 fhNEvents ->GetXaxis()->SetBinLabel(3 ,"L0");
255 fhNEvents ->GetXaxis()->SetBinLabel(4 ,"L1-G");
256 fhNEvents ->GetXaxis()->SetBinLabel(5 ,"L1-J");
257 fhNEvents ->GetXaxis()->SetBinLabel(6 ,"L1-G & !L1-J");
258 fhNEvents ->GetXaxis()->SetBinLabel(7 ,"L1-J & !L1-G");
259 fhNEvents ->GetXaxis()->SetBinLabel(8 ,"L1-J & L1-G");
260 fhNEvents ->GetXaxis()->SetBinLabel(9 ,"MB & !L1 & !L0");
261 fhNEvents ->GetXaxis()->SetBinLabel(10,"L0 & !MB");
262 fhNEvents ->GetXaxis()->SetBinLabel(11,"L1-G & !MB");
263 fhNEvents ->GetXaxis()->SetBinLabel(12,"L1-J & !MB");
266 fhFORAmp = new TH2F("hFORAmp", "FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column",
267 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
268 fhFORAmp ->SetXTitle("Index #eta (columnns)");
269 fhFORAmp ->SetYTitle("Index #phi (rows)");
270 fhFORAmp ->SetZTitle("Amplitude");
272 fhFORAmpL1G = new TH2F("hFORAmpL1G", "FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1G trigger condition",
273 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
274 fhFORAmpL1G ->SetXTitle("Index #eta (columnns)");
275 fhFORAmpL1G ->SetYTitle("Index #phi (rows)");
276 fhFORAmpL1G ->SetZTitle("Amplitude");
278 fhFORAmpL1J = new TH2F("hFORAmpL1J", "FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1J trigger condition",
279 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
280 fhFORAmpL1J ->SetXTitle("Index #eta (columnns)");
281 fhFORAmpL1J ->SetYTitle("Index #phi (rows)");
282 fhFORAmpL1J ->SetZTitle("Amplitude");
284 fhL0Amp = new TH2F("hL0Amp","FALTRO signal per Row and Column",
285 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
286 fhL0Amp ->SetXTitle("Index #eta (columnns)");
287 fhL0Amp ->SetYTitle("Index #phi (rows)");
288 fhL0Amp ->SetZTitle("Amplitude");
290 fhL0AmpL1G = new TH2F("hL0AmpL1G","FALTRO signal per Row and Column, with L1G trigger condition",
291 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
292 fhL0AmpL1G ->SetXTitle("Index #eta (columnns)");
293 fhL0AmpL1G ->SetYTitle("Index #phi (rows)");
294 fhL0AmpL1G ->SetZTitle("Amplitude");
296 fhL0AmpL1J = new TH2F("hL0AmpL1J","FALTRO signal per Row and Column, with L1j trigger condition",
297 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
298 fhL0AmpL1J ->SetXTitle("Index #eta (columnns)");
299 fhL0AmpL1J ->SetYTitle("Index #phi (rows)");
300 fhL0AmpL1J ->SetZTitle("Amplitude");
302 fhL1Amp = new TH2F("hL1Amp","STU signal per Row and Column",
303 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
304 fhL1Amp ->SetXTitle("Index #eta (columnns)");
305 fhL1Amp ->SetYTitle("Index #phi (rows)");
306 fhL1Amp ->SetZTitle("Amplitude");
308 fhL1GAmp = new TH2F("hL1GAmp","STU signal per Row and Column for L1 Gamma",
309 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
310 fhL1GAmp ->SetXTitle("Index #eta (columnns)");
311 fhL1GAmp ->SetYTitle("Index #phi (rows)");
312 fhL1GAmp ->SetZTitle("Amplitude");
314 fhL1JAmp = new TH2F("hL1JAmp","STU signal per Row and Column for L1 Jet",
315 fgkFALTROCols/4,0,fgkFALTROCols,fgkFALTRORows/4,0,fgkFALTRORows);
316 fhL1JAmp ->SetXTitle("Index #eta (columnns)");
317 fhL1JAmp ->SetYTitle("Index #phi (rows)");
318 fhL1JAmp ->SetZTitle("Amplitude");
320 fhL0Patch = new TH2F("hL0Patch","FOR with associated L0 Patch",
321 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
322 fhL0Patch ->SetXTitle("Index #eta (columnns)");
323 fhL0Patch ->SetYTitle("Index #phi (rows)");
324 fhL0Patch ->SetZTitle("counts");
326 fhL1GPatch = new TH2F("hL1GPatch","FOR with associated L1 Gamma Patch",
327 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
328 fhL1GPatch ->SetXTitle("Index #eta (columnns)");
329 fhL1GPatch ->SetYTitle("Index #phi (rows)");
330 fhL1GPatch ->SetZTitle("counts");
332 fhL1JPatch = new TH2F("hL1JPatch","FOR with associated L1 Jet Patch",
333 fgkFALTROCols/4,0,fgkFALTROCols,fgkFALTRORows/4,0,fgkFALTRORows);
334 fhL1JPatch ->SetXTitle("Index #eta (columnns)");
335 fhL1JPatch ->SetYTitle("Index #phi (rows)");
336 fhL1JPatch ->SetZTitle("counts");
338 fhV0STU = new TH2I("hV0STU","Total signal STU vs V0C+V0S",
339 fNBinsV0Signal,0,fMaxV0Signal,fNBinsSTUSignal,0,fMaxSTUSignal);
340 fhV0STU ->SetXTitle("Signal V0C+V0A");
341 fhV0STU ->SetYTitle("Total signal STU");
342 fhV0STU ->SetZTitle("counts");
345 fhFEESTU = new TH2F("hFEESTU","STU / FEE vs channel", fNBinsSTUFEERatio,0,fMaxSTUFEERatio,30,0,30);
346 fhFEESTU ->SetXTitle("STU/FEE signal");
347 fhFEESTU ->SetYTitle("channel");
348 fhFEESTU ->SetZTitle("counts");
350 fhTRUSTU = new TH2F("hTRUSTU","STU / TRU vs channel", fNBinsSTUTRURatio,0,fMaxSTUTRURatio,30,0,30);
351 fhTRUSTU ->SetXTitle("STU/TRU signal");
352 fhTRUSTU ->SetYTitle("channel");
353 fhTRUSTU ->SetZTitle("counts");
355 fhGPMaxVV0TT = new TH2F("hGPMaxVV0TT","Maximum patch of L1-Gamma vs V0 signal in STU",fNBinsV0Signal,0,fMaxV0Signal,1000,0,1000);
356 fhGPMaxVV0TT ->SetXTitle("V0 from STU");
357 fhGPMaxVV0TT ->SetYTitle("Patch Max");
359 fhJPMaxVV0TT = new TH2F("hJPMaxVV0TT","Maximum patch of L1-Jet vs V0 signal in STU",fNBinsV0Signal,0,fMaxV0Signal,1000,0,1000);
360 fhJPMaxVV0TT ->SetXTitle("V0 from STU");
361 fhJPMaxVV0TT ->SetYTitle("Patch Max");
363 fhFORMeanAmp = new TProfile2D("hFORMeanAmp", "Mean FastOR(FEE) signal per Row and Column", fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
364 fhFORMeanAmp->SetXTitle("Index #eta");
365 fhFORMeanAmp->SetYTitle("Index #phi");
367 fhL0MeanAmp = new TProfile2D("hL0MeanAmp", "Mean FastOR(TRU) signal per Row and Column", fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
368 fhL0MeanAmp->SetXTitle("Index #eta");
369 fhL0MeanAmp->SetYTitle("Index #phi");
371 fhL1MeanAmp = new TProfile2D("hL1MeanAmp", "Mean FastOR(STU) signal per Row and Column", fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
372 fhL1MeanAmp->SetXTitle("Index #eta");
373 fhL1MeanAmp->SetYTitle("Index #phi");
375 fhV0MB = new TH1F("hV0MB","V0 distribution for MB triggered event",fNBinsV0Signal,0,fMaxV0Signal);
376 fhV0MB->SetXTitle("V0");
378 fhV0L1G = new TH1F("hV0L1G","V0 distribution for L1G triggered event",fNBinsV0Signal,0,fMaxV0Signal);
379 fhV0L1G->SetXTitle("V0");
381 fhV0L1J = new TH1F("hV0L1J","V0 distribution for L1J triggered event",fNBinsV0Signal,0,fMaxV0Signal);
382 fhV0L1J->SetXTitle("V0");
384 fhL1GPatchMax = new TH2F("hL1GPatchMax","FOR of max amplitude patch with associated L1 Gamma Patch",
385 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
386 fhL1GPatchMax ->SetXTitle("Index #eta (columnns)");
387 fhL1GPatchMax ->SetYTitle("Index #phi (rows)");
388 fhL1GPatchMax ->SetZTitle("counts");
390 fhL1JPatchMax = new TH2F("hL1JPatchMax","FOR of max amplitude patch with associated L1 Jet Patch",
391 fgkFALTROCols/4,0,fgkFALTROCols,fgkFALTRORows/4,0,fgkFALTRORows);
392 fhL1JPatchMax ->SetXTitle("Index #eta (columnns)");
393 fhL1JPatchMax ->SetYTitle("Index #phi (rows)");
394 fhL1JPatchMax ->SetZTitle("counts");
396 fOutputList->Add(fhNEvents);
397 fOutputList->Add(fhV0STU);
398 fOutputList->Add(fhFORAmp);
399 fOutputList->Add(fhFORAmpL1G);
400 fOutputList->Add(fhFORAmpL1J);
401 fOutputList->Add(fhL0Amp);
402 fOutputList->Add(fhL0AmpL1G);
403 fOutputList->Add(fhL0AmpL1J);
404 fOutputList->Add(fhL1Amp);
405 fOutputList->Add(fhL1GAmp);
406 fOutputList->Add(fhL1JAmp);
407 fOutputList->Add(fhL0Patch);
408 fOutputList->Add(fhL1GPatch);
409 fOutputList->Add(fhL1JPatch);
410 fOutputList->Add(fhFEESTU);
411 fOutputList->Add(fhTRUSTU);
413 fOutputList->Add(fhGPMaxVV0TT);
414 fOutputList->Add(fhJPMaxVV0TT);
416 fOutputList->Add(fhFORMeanAmp);
417 fOutputList->Add(fhL0MeanAmp);
418 fOutputList->Add(fhL1MeanAmp);
420 fOutputList->Add(fhV0MB );
421 fOutputList->Add(fhV0L1G);
422 fOutputList->Add(fhV0L1J);
424 fOutputList->Add(fhL1GPatchMax);
425 fOutputList->Add(fhL1JPatchMax);
427 // Cluster histograms, E
429 fhClusMB = new TH1F("hClusMB","clusters E distribution for MB trigger",fNBinsClusterE,0,fMaxClusterE);
430 fhClusMB ->SetXTitle("Energy (GeV)");
432 fhClusMBPure = new TH1F("hClusMBPure","clusters E distribution for MB trigger, no other EMCAL trigger on",fNBinsClusterE,0,fMaxClusterE);
433 fhClusMBPure ->SetXTitle("Energy (GeV)");
435 fhClusL0 = new TH1F("hClusL0","clusters E distribution for L0 trigger",fNBinsClusterE,0,fMaxClusterE);
436 fhClusL0 ->SetXTitle("Energy (GeV)");
438 fhClusL1G = new TH1F("hClusL1G","clusters E distribution for L1G trigger",fNBinsClusterE,0,fMaxClusterE);
439 fhClusL1G ->SetXTitle("Energy (GeV)");
441 fhClusL1J = new TH1F("hClusL1J","clusters E distribution for L1J trigger",fNBinsClusterE,0,fMaxClusterE);
442 fhClusL1J ->SetXTitle("Energy (GeV)");
444 fhClusL1GOnly = new TH1F("hClusL1GOnly","clusters E distribution for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE);
445 fhClusL1GOnly->SetXTitle("Energy (GeV)");
447 fhClusL1JOnly = new TH1F("hClusL1JOnly","clusters E distribution for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE);
448 fhClusL1JOnly->SetXTitle("Energy (GeV)");
450 fhClusMaxMB = new TH1F("hClusMaxMB","maximum energy cluster per event for MB trigger",fNBinsClusterE,0,fMaxClusterE);
451 fhClusMaxMB ->SetXTitle("Energy (GeV)");
453 fhClusMaxMBPure = new TH1F("hClusMaxMBPure","maximum energy cluster per event for MB trigger, no other EMCAL trigger on",fNBinsClusterE,0,fMaxClusterE);
454 fhClusMaxMBPure ->SetXTitle("Energy (GeV)");
456 fhClusMaxL0 = new TH1F("hClusMaxL0","maximum energy cluster per event for L0 trigger",fNBinsClusterE,0,fMaxClusterE);
457 fhClusMaxL0 ->SetXTitle("Energy (GeV)");
459 fhClusMaxL1G = new TH1F("hClusMaxL1G","maximum energy cluster per event for L1G trigger",fNBinsClusterE,0,fMaxClusterE);
460 fhClusMaxL1G->SetXTitle("Energy (GeV)");
462 fhClusMaxL1J = new TH1F("hClusMaxL1J","maximum energy cluster per event for L1J trigger",fNBinsClusterE,0,fMaxClusterE);
463 fhClusMaxL1J->SetXTitle("Energy (GeV)");
465 fhClusMaxL1GOnly = new TH1F("hClusMaxL1GOnly","maximum energy cluster per event for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE);
466 fhClusMaxL1GOnly->SetXTitle("Energy (GeV)");
468 fhClusMaxL1JOnly = new TH1F("hClusMaxL1JOnly","maximum energy cluster per event for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE);
469 fhClusMaxL1JOnly->SetXTitle("Energy (GeV)");
472 fOutputList->Add(fhClusMB);
473 fOutputList->Add(fhClusMBPure);
474 fOutputList->Add(fhClusL0);
475 fOutputList->Add(fhClusL1G);
476 fOutputList->Add(fhClusL1J);
477 fOutputList->Add(fhClusL1GOnly);
478 fOutputList->Add(fhClusL1JOnly);
480 fOutputList->Add(fhClusMaxMB);
481 fOutputList->Add(fhClusMaxMBPure);
482 fOutputList->Add(fhClusMaxL0);
483 fOutputList->Add(fhClusMaxL1G);
484 fOutputList->Add(fhClusMaxL1J);
485 fOutputList->Add(fhClusMaxL1GOnly);
486 fOutputList->Add(fhClusMaxL1JOnly);
488 // Cluster histograms, E vs Cen
490 fhClusCenMB = new TH2F("hClusCenMB","clusters E distribution vs centrality for MB trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
491 fhClusCenMB ->SetXTitle("Energy (GeV)");
492 fhClusCenMB ->SetYTitle("Centrality");
494 fhClusCenL0 = new TH2F("hClusCenL0","clusters E distribution vs centrality for L0 trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
495 fhClusCenL0 ->SetXTitle("Energy (GeV)");
496 fhClusCenL0 ->SetYTitle("Centrality");
498 fhClusCenL1G = new TH2F("hClusCenL1G","clusters E distribution vs centrality for L1G trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
499 fhClusCenL1G ->SetXTitle("Energy (GeV)");
501 fhClusCenL1J = new TH2F("hClusCenL1J","clusters E distribution vs centrality for L1J trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
502 fhClusCenL1J ->SetXTitle("Energy (GeV)");
503 fhClusCenL1J ->SetYTitle("Centrality");
505 fhClusCenL1GOnly = new TH2F("hClusCenL1GOnly","clusters E distribution vs centrality for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
506 fhClusCenL1GOnly->SetXTitle("Energy (GeV)");
507 fhClusCenL1GOnly->SetYTitle("Centrality");
509 fhClusCenL1JOnly = new TH2F("hClusCenL1JOnly","clusters E distribution vs centrality for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
510 fhClusCenL1JOnly->SetXTitle("Energy (GeV)");
511 fhClusCenL1JOnly->SetYTitle("Centrality");
513 fhClusCenMaxMB = new TH2F("hClusCenMaxMB","maximum energy cluster per event vs centrality for MB trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
514 fhClusCenMaxMB ->SetXTitle("Energy (GeV)");
515 fhClusCenMaxMB ->SetYTitle("Centrality");
517 fhClusCenMaxL0 = new TH2F("hClusCenMaxL0","maximum energy cluster per event vs centrality for L0 trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
518 fhClusCenMaxL0 ->SetXTitle("Energy (GeV)");
519 fhClusCenMaxL0 ->SetYTitle("Centrality");
521 fhClusCenMaxL1G = new TH2F("hClusCenMaxL1G","maximum energy cluster per event vs centrality for L1G trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
522 fhClusCenMaxL1G->SetXTitle("Energy (GeV)");
523 fhClusCenMaxL1G->SetYTitle("Centrality");
525 fhClusCenMaxL1J = new TH2F("hClusCenMaxL1J","maximum energy cluster per event vs centrality for L1J trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
526 fhClusCenMaxL1J->SetXTitle("Energy (GeV)");
527 fhClusCenMaxL1J->SetYTitle("Centrality");
529 fhClusCenMaxL1GOnly = new TH2F("hClusCenMaxL1GOnly","maximum energy cluster per event vs centrality for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
530 fhClusCenMaxL1GOnly->SetXTitle("Energy (GeV)");
531 fhClusCenMaxL1GOnly->SetYTitle("Centrality");
533 fhClusCenMaxL1JOnly = new TH2F("hClusCenMaxL1JOnly","maximum energy cluster per event vs centrality for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
534 fhClusCenMaxL1JOnly->SetXTitle("Energy (GeV)");
535 fhClusCenMaxL1JOnly->SetYTitle("Centrality");
538 fOutputList->Add(fhClusCenMB);
539 fOutputList->Add(fhClusCenL0);
540 fOutputList->Add(fhClusCenL1G);
541 fOutputList->Add(fhClusCenL1J);
542 fOutputList->Add(fhClusCenL1GOnly);
543 fOutputList->Add(fhClusCenL1JOnly);
545 fOutputList->Add(fhClusCenMaxMB);
546 fOutputList->Add(fhClusCenMaxL0);
547 fOutputList->Add(fhClusCenMaxL1G);
548 fOutputList->Add(fhClusCenMaxL1J);
549 fOutputList->Add(fhClusCenMaxL1GOnly);
550 fOutputList->Add(fhClusCenMaxL1JOnly);
553 // Cluster histograms, E vs V0
555 fhClusV0MB = new TH2F("hClusV0MB","clusters E distribution vs V0 for MB trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
556 fhClusV0MB ->SetXTitle("Energy (GeV)");
557 fhClusV0MB ->SetYTitle("V0");
559 fhClusV0L0 = new TH2F("hClusV0L0","clusters E distribution vs V0 for L0 trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
560 fhClusV0L0 ->SetXTitle("Energy (GeV)");
561 fhClusV0L0 ->SetYTitle("V0");
563 fhClusV0L1G = new TH2F("hClusV0L1G","clusters E distribution vs V0 for L1G trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
564 fhClusV0L1G ->SetXTitle("Energy (GeV)");
566 fhClusV0L1J = new TH2F("hClusV0L1J","clusters E distribution vs V0 for L1J trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
567 fhClusV0L1J ->SetXTitle("Energy (GeV)");
568 fhClusV0L1J ->SetYTitle("V0");
570 fhClusV0L1GOnly = new TH2F("hClusV0L1GOnly","clusters E distribution vs V0 for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
571 fhClusV0L1GOnly->SetXTitle("Energy (GeV)");
572 fhClusV0L1GOnly->SetYTitle("V0");
574 fhClusV0L1JOnly = new TH2F("hClusV0L1JOnly","clusters E distribution vs V0 for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
575 fhClusV0L1JOnly->SetXTitle("Energy (GeV)");
576 fhClusV0L1JOnly->SetYTitle("V0");
578 fhClusV0MaxMB = new TH2F("hClusV0MaxMB","maximum energy cluster per event vs V0 for MB trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
579 fhClusV0MaxMB ->SetXTitle("Energy (GeV)");
580 fhClusV0MaxMB ->SetYTitle("V0");
582 fhClusV0MaxL0 = new TH2F("hClusV0MaxL0","maximum energy cluster per event vs V0 for L0 trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
583 fhClusV0MaxL0 ->SetXTitle("Energy (GeV)");
584 fhClusV0MaxL0 ->SetYTitle("V0");
586 fhClusV0MaxL1G = new TH2F("hClusV0MaxL1G","maximum energy cluster per event vs V0 for L1G trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
587 fhClusV0MaxL1G->SetXTitle("Energy (GeV)");
588 fhClusV0MaxL1G->SetYTitle("V0");
590 fhClusV0MaxL1J = new TH2F("hClusV0MaxL1J","maximum energy cluster per event vs V0 for L1J trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
591 fhClusV0MaxL1J->SetXTitle("Energy (GeV)");
592 fhClusV0MaxL1J->SetYTitle("V0");
594 fhClusV0MaxL1GOnly = new TH2F("hClusV0MaxL1GOnly","maximum energy cluster per event vs V0 for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
595 fhClusV0MaxL1GOnly->SetXTitle("Energy (GeV)");
596 fhClusV0MaxL1GOnly->SetYTitle("V0");
598 fhClusV0MaxL1JOnly = new TH2F("hClusV0MaxL1JOnly","maximum energy cluster per event vs V0 for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
599 fhClusV0MaxL1JOnly->SetXTitle("Energy (GeV)");
600 fhClusV0MaxL1JOnly->SetYTitle("V0");
603 fOutputList->Add(fhClusV0MB);
604 fOutputList->Add(fhClusV0L0);
605 fOutputList->Add(fhClusV0L1G);
606 fOutputList->Add(fhClusV0L1J);
607 fOutputList->Add(fhClusV0L1GOnly);
608 fOutputList->Add(fhClusV0L1JOnly);
610 fOutputList->Add(fhClusV0MaxMB);
611 fOutputList->Add(fhClusV0MaxL0);
612 fOutputList->Add(fhClusV0MaxL1G);
613 fOutputList->Add(fhClusV0MaxL1J);
614 fOutputList->Add(fhClusV0MaxL1GOnly);
615 fOutputList->Add(fhClusV0MaxL1JOnly);
617 // Cluster histograms, E vs Pseudorapidity
618 Float_t etamin =-0.8;
619 Float_t etamax = 0.8;
621 fhClusEtaMB = new TH2F("hClusEtaMB","clusters distribution vs #eta for MB trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
622 fhClusEtaMB ->SetXTitle("Energy (GeV)");
623 fhClusEtaMB ->SetYTitle("#eta");
625 fhClusEtaL0 = new TH2F("hClusEtaL0","clusters distribution vs #eta for L0 trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
626 fhClusEtaL0 ->SetXTitle("Energy (GeV)");
627 fhClusEtaL0 ->SetYTitle("#eta");
629 fhClusEtaL1G = new TH2F("hClusEtaL1G","clusters distribution vs #eta for L1G trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
630 fhClusEtaL1G ->SetXTitle("Energy (GeV)");
632 fhClusEtaL1J = new TH2F("hClusEtaL1J","clusters distribution vs #eta for L1J trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
633 fhClusEtaL1J ->SetXTitle("Energy (GeV)");
634 fhClusEtaL1J ->SetYTitle("#eta");
636 fhClusEtaL1GOnly = new TH2F("hClusEtaL1GOnly","clusters distribution vs #eta for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
637 fhClusEtaL1GOnly->SetXTitle("Energy (GeV)");
638 fhClusEtaL1GOnly->SetYTitle("#eta");
640 fhClusEtaL1JOnly = new TH2F("hClusEtaL1JOnly","clusters distribution vs #eta for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
641 fhClusEtaL1JOnly->SetXTitle("Energy (GeV)");
642 fhClusEtaL1JOnly->SetYTitle("#eta");
644 fhClusEtaMaxMB = new TH2F("hClusEtaMaxMB","maximum energy cluster per event vs #eta for MB trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
645 fhClusEtaMaxMB ->SetXTitle("Energy (GeV)");
646 fhClusEtaMaxMB ->SetYTitle("#eta");
648 fhClusEtaMaxL0 = new TH2F("hClusEtaMaxL0","maximum energy cluster per event vs #eta for L0 trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
649 fhClusEtaMaxL0 ->SetXTitle("Energy (GeV)");
650 fhClusEtaMaxL0 ->SetYTitle("#eta");
652 fhClusEtaMaxL1G = new TH2F("hClusEtaMaxL1G","maximum energy cluster per event vs #eta for L1G trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
653 fhClusEtaMaxL1G->SetXTitle("Energy (GeV)");
654 fhClusEtaMaxL1G->SetYTitle("#eta");
656 fhClusEtaMaxL1J = new TH2F("hClusEtaMaxL1J","maximum energy cluster per event vs #eta for L1J trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
657 fhClusEtaMaxL1J->SetXTitle("Energy (GeV)");
658 fhClusEtaMaxL1J->SetYTitle("#eta");
660 fhClusEtaMaxL1GOnly = new TH2F("hClusEtaMaxL1GOnly","maximum energy cluster per event vs #eta for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
661 fhClusEtaMaxL1GOnly->SetXTitle("Energy (GeV)");
662 fhClusEtaMaxL1GOnly->SetYTitle("#eta");
664 fhClusEtaMaxL1JOnly = new TH2F("hClusEtaMaxL1JOnly","maximum energy cluster per event vs #eta for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
665 fhClusEtaMaxL1JOnly->SetXTitle("Energy (GeV)");
666 fhClusEtaMaxL1JOnly->SetYTitle("#eta");
669 fOutputList->Add(fhClusEtaMB);
670 fOutputList->Add(fhClusEtaL0);
671 fOutputList->Add(fhClusEtaL1G);
672 fOutputList->Add(fhClusEtaL1J);
673 fOutputList->Add(fhClusEtaL1GOnly);
674 fOutputList->Add(fhClusEtaL1JOnly);
676 fOutputList->Add(fhClusEtaMaxMB);
677 fOutputList->Add(fhClusEtaMaxL0);
678 fOutputList->Add(fhClusEtaMaxL1G);
679 fOutputList->Add(fhClusEtaMaxL1J);
680 fOutputList->Add(fhClusEtaMaxL1GOnly);
681 fOutputList->Add(fhClusEtaMaxL1JOnly);
684 // Cluster histograms, E vs Azimuthal angle
685 Float_t phimin = 80. *TMath::DegToRad();
686 Float_t phimax = 190.*TMath::DegToRad();
689 fhClusPhiMB = new TH2F("hClusPhiMB","clusters distribution vs #phi for MB trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
690 fhClusPhiMB ->SetXTitle("Energy (GeV)");
691 fhClusPhiMB ->SetYTitle("#phi (rad)");
693 fhClusPhiL0 = new TH2F("hClusPhiL0","clusters distribution vs #phi for L0 trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
694 fhClusPhiL0 ->SetXTitle("Energy (GeV)");
695 fhClusPhiL0 ->SetYTitle("#phi (rad)");
697 fhClusPhiL1G = new TH2F("hClusPhiL1G","clusters distribution vs #phi for L1G trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
698 fhClusPhiL1G ->SetXTitle("Energy (GeV)");
700 fhClusPhiL1J = new TH2F("hClusPhiL1J","clusters distribution vs #phi for L1J trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
701 fhClusPhiL1J ->SetXTitle("Energy (GeV)");
702 fhClusPhiL1J ->SetYTitle("#phi (rad)");
704 fhClusPhiL1GOnly = new TH2F("hClusPhiL1GOnly","clusters distribution vs #phi for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
705 fhClusPhiL1GOnly->SetXTitle("Energy (GeV)");
706 fhClusPhiL1GOnly->SetYTitle("#phi (rad)");
708 fhClusPhiL1JOnly = new TH2F("hClusPhiL1JOnly","clusters distribution vs #phi for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
709 fhClusPhiL1JOnly->SetXTitle("Energy (GeV)");
710 fhClusPhiL1JOnly->SetYTitle("#phi (rad)");
712 fhClusPhiMaxMB = new TH2F("hClusPhiMaxMB","maximum energy cluster per event vs #phi for MB trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
713 fhClusPhiMaxMB ->SetXTitle("Energy (GeV)");
714 fhClusPhiMaxMB ->SetYTitle("#phi (rad)");
716 fhClusPhiMaxL0 = new TH2F("hClusPhiMaxL0","maximum energy cluster per event vs #phi for L0 trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
717 fhClusPhiMaxL0 ->SetXTitle("Energy (GeV)");
718 fhClusPhiMaxL0 ->SetYTitle("#phi (rad)");
720 fhClusPhiMaxL1G = new TH2F("hClusPhiMaxL1G","maximum energy cluster per event vs #phi for L1G trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
721 fhClusPhiMaxL1G->SetXTitle("Energy (GeV)");
722 fhClusPhiMaxL1G->SetYTitle("#phi (rad)");
724 fhClusPhiMaxL1J = new TH2F("hClusPhiMaxL1J","maximum energy cluster per event vs #phi for L1J trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
725 fhClusPhiMaxL1J->SetXTitle("Energy (GeV)");
726 fhClusPhiMaxL1J->SetYTitle("#phi (rad)");
728 fhClusPhiMaxL1GOnly = new TH2F("hClusPhiMaxL1GOnly","maximum energy cluster per event vs #phi for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
729 fhClusPhiMaxL1GOnly->SetXTitle("Energy (GeV)");
730 fhClusPhiMaxL1GOnly->SetYTitle("#phi (rad)");
732 fhClusPhiMaxL1JOnly = new TH2F("hClusPhiMaxL1JOnly","maximum energy cluster per event vs #phi for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
733 fhClusPhiMaxL1JOnly->SetXTitle("Energy (GeV)");
734 fhClusPhiMaxL1JOnly->SetYTitle("#phi (rad)");
737 fOutputList->Add(fhClusPhiMB);
738 fOutputList->Add(fhClusPhiL0);
739 fOutputList->Add(fhClusPhiL1G);
740 fOutputList->Add(fhClusPhiL1J);
741 fOutputList->Add(fhClusPhiL1GOnly);
742 fOutputList->Add(fhClusPhiL1JOnly);
744 fOutputList->Add(fhClusPhiMaxMB);
745 fOutputList->Add(fhClusPhiMaxL0);
746 fOutputList->Add(fhClusPhiMaxL1G);
747 fOutputList->Add(fhClusPhiMaxL1J);
748 fOutputList->Add(fhClusPhiMaxL1GOnly);
749 fOutputList->Add(fhClusPhiMaxL1JOnly);
751 // Cluster histograms, Pseudorapidity vs Azimuthal angle
753 fhClusEtaPhiHighMB = new TH2F("hClusEtaPhiHighMB","clusters distribution #eta vs #phi for MB trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
754 fhClusEtaPhiHighMB ->SetXTitle("#eta");
755 fhClusEtaPhiHighMB ->SetYTitle("#phi (rad)");
757 fhClusEtaPhiHighL0 = new TH2F("hClusEtaPhiHighL0","clusters distribution #eta vs #phi for L0 trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
758 fhClusEtaPhiHighL0 ->SetXTitle("#eta");
759 fhClusEtaPhiHighL0 ->SetYTitle("#phi (rad)");
761 fhClusEtaPhiHighL1G = new TH2F("hClusEtaPhiHighL1G","clusters distribution #eta vs #phi for L1G trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
762 fhClusEtaPhiHighL1G ->SetXTitle("#eta");
764 fhClusEtaPhiHighL1J = new TH2F("hClusEtaPhiHighL1J","clusters distribution #eta vs #phi for L1J trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
765 fhClusEtaPhiHighL1J ->SetXTitle("#eta");
766 fhClusEtaPhiHighL1J ->SetYTitle("#phi (rad)");
768 fhClusEtaPhiHighL1GOnly = new TH2F("hClusEtaPhiHighL1GOnly","clusters distribution #eta vs #phi for L1G trigger and not L1J, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
769 fhClusEtaPhiHighL1GOnly->SetXTitle("#eta");
770 fhClusEtaPhiHighL1GOnly->SetYTitle("#phi (rad)");
772 fhClusEtaPhiHighL1JOnly = new TH2F("hClusEtaPhiHighL1JOnly","clusters distribution #eta vs #phi for L1J trigger and not L1G, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
773 fhClusEtaPhiHighL1JOnly->SetXTitle("#eta");
774 fhClusEtaPhiHighL1JOnly->SetYTitle("#phi (rad)");
776 fhClusEtaPhiHighCluMaxMB = new TH2F("hClusEtaPhiHighCluMaxMB","maximum energy cluster per event #eta vs #phi for MB trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
777 fhClusEtaPhiHighCluMaxMB ->SetXTitle("#eta");
778 fhClusEtaPhiHighCluMaxMB ->SetYTitle("#phi (rad)");
780 fhClusEtaPhiHighCluMaxL0 = new TH2F("hClusEtaPhiHighCluMaxL0","maximum energy cluster per event #eta vs #phi for L0 trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
781 fhClusEtaPhiHighCluMaxL0 ->SetXTitle("#eta");
782 fhClusEtaPhiHighCluMaxL0 ->SetYTitle("#phi (rad)");
784 fhClusEtaPhiHighCluMaxL1G = new TH2F("hClusEtaPhiHighCluMaxL1G","maximum energy cluster per event #eta vs #phi for L1G trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
785 fhClusEtaPhiHighCluMaxL1G->SetXTitle("#eta");
786 fhClusEtaPhiHighCluMaxL1G->SetYTitle("#phi (rad)");
788 fhClusEtaPhiHighCluMaxL1J = new TH2F("hClusEtaPhiHighCluMaxL1J","maximum energy cluster per event #eta vs #phi for L1J trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
789 fhClusEtaPhiHighCluMaxL1J->SetXTitle("#eta");
790 fhClusEtaPhiHighCluMaxL1J->SetYTitle("#phi (rad)");
792 fhClusEtaPhiHighCluMaxL1GOnly = new TH2F("hClusEtaPhiHighCluMaxL1GOnly","maximum energy cluster per event #eta vs #phi for L1G trigger and not L1J, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
793 fhClusEtaPhiHighCluMaxL1GOnly->SetXTitle("#eta");
794 fhClusEtaPhiHighCluMaxL1GOnly->SetYTitle("#phi (rad)");
796 fhClusEtaPhiHighCluMaxL1JOnly = new TH2F("hClusEtaPhiHighCluMaxL1JOnly","maximum energy cluster per event #eta vs #phi for L1J trigger and not L1G, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
797 fhClusEtaPhiHighCluMaxL1JOnly->SetXTitle("#eta");
798 fhClusEtaPhiHighCluMaxL1JOnly->SetYTitle("#phi (rad)");
801 fOutputList->Add(fhClusEtaPhiHighMB);
802 fOutputList->Add(fhClusEtaPhiHighL0);
803 fOutputList->Add(fhClusEtaPhiHighL1G);
804 fOutputList->Add(fhClusEtaPhiHighL1J);
805 fOutputList->Add(fhClusEtaPhiHighL1GOnly);
806 fOutputList->Add(fhClusEtaPhiHighL1JOnly);
808 fOutputList->Add(fhClusEtaPhiHighCluMaxMB);
809 fOutputList->Add(fhClusEtaPhiHighCluMaxL0);
810 fOutputList->Add(fhClusEtaPhiHighCluMaxL1G);
811 fOutputList->Add(fhClusEtaPhiHighCluMaxL1J);
812 fOutputList->Add(fhClusEtaPhiHighCluMaxL1GOnly);
813 fOutputList->Add(fhClusEtaPhiHighCluMaxL1JOnly);
815 fhClusEtaPhiLowMB = new TH2F("hClusEtaPhiLowMB","clusters distribution #eta vs #phi for MB trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
816 fhClusEtaPhiLowMB ->SetXTitle("#eta");
817 fhClusEtaPhiLowMB ->SetYTitle("#phi (rad)");
819 fhClusEtaPhiLowL0 = new TH2F("hClusEtaPhiLowL0","clusters distribution #eta vs #phi for L0 trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
820 fhClusEtaPhiLowL0 ->SetXTitle("#eta");
821 fhClusEtaPhiLowL0 ->SetYTitle("#phi (rad)");
823 fhClusEtaPhiLowL1G = new TH2F("hClusEtaPhiLowL1G","clusters distribution #eta vs #phi for L1G trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
824 fhClusEtaPhiLowL1G ->SetXTitle("#eta");
826 fhClusEtaPhiLowL1J = new TH2F("hClusEtaPhiLowL1J","clusters distribution #eta vs #phi for L1J trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
827 fhClusEtaPhiLowL1J ->SetXTitle("#eta");
828 fhClusEtaPhiLowL1J ->SetYTitle("#phi (rad)");
830 fhClusEtaPhiLowL1GOnly = new TH2F("hClusEtaPhiLowL1GOnly","clusters distribution #eta vs #phi for L1G trigger and not L1J, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
831 fhClusEtaPhiLowL1GOnly->SetXTitle("#eta");
832 fhClusEtaPhiLowL1GOnly->SetYTitle("#phi (rad)");
834 fhClusEtaPhiLowL1JOnly = new TH2F("hClusEtaPhiLowL1JOnly","clusters distribution #eta vs #phi for L1J trigger and not L1G, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
835 fhClusEtaPhiLowL1JOnly->SetXTitle("#eta");
836 fhClusEtaPhiLowL1JOnly->SetYTitle("#phi (rad)");
838 fhClusEtaPhiLowCluMaxMB = new TH2F("hClusEtaPhiLowCluMaxMB","maximum energy cluster per event #eta vs #phi for MB trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
839 fhClusEtaPhiLowCluMaxMB ->SetXTitle("#eta");
840 fhClusEtaPhiLowCluMaxMB ->SetYTitle("#phi (rad)");
842 fhClusEtaPhiLowCluMaxL0 = new TH2F("hClusEtaPhiLowCluMaxL0","maximum energy cluster per event #eta vs #phi for L0 trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
843 fhClusEtaPhiLowCluMaxL0 ->SetXTitle("#eta");
844 fhClusEtaPhiLowCluMaxL0 ->SetYTitle("#phi (rad)");
846 fhClusEtaPhiLowCluMaxL1G = new TH2F("hClusEtaPhiLowCluMaxL1G","maximum energy cluster per event #eta vs #phi for L1G trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
847 fhClusEtaPhiLowCluMaxL1G->SetXTitle("#eta");
848 fhClusEtaPhiLowCluMaxL1G->SetYTitle("#phi (rad)");
850 fhClusEtaPhiLowCluMaxL1J = new TH2F("hClusEtaPhiLowCluMaxL1J","maximum energy cluster per event #eta vs #phi for L1J trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
851 fhClusEtaPhiLowCluMaxL1J->SetXTitle("#eta");
852 fhClusEtaPhiLowCluMaxL1J->SetYTitle("#phi (rad)");
854 fhClusEtaPhiLowCluMaxL1GOnly = new TH2F("hClusEtaPhiLowCluMaxL1GOnly","maximum energy cluster per event #eta vs #phi for L1G trigger and not L1J, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
855 fhClusEtaPhiLowCluMaxL1GOnly->SetXTitle("#eta");
856 fhClusEtaPhiLowCluMaxL1GOnly->SetYTitle("#phi (rad)");
858 fhClusEtaPhiLowCluMaxL1JOnly = new TH2F("hClusEtaPhiLowCluMaxL1JOnly","maximum energy cluster per event #eta vs #phi for L1J trigger and not L1G, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax);
859 fhClusEtaPhiLowCluMaxL1JOnly->SetXTitle("#eta");
860 fhClusEtaPhiLowCluMaxL1JOnly->SetYTitle("#phi (rad)");
863 fOutputList->Add(fhClusEtaPhiLowMB);
864 fOutputList->Add(fhClusEtaPhiLowL0);
865 fOutputList->Add(fhClusEtaPhiLowL1G);
866 fOutputList->Add(fhClusEtaPhiLowL1J);
867 fOutputList->Add(fhClusEtaPhiLowL1GOnly);
868 fOutputList->Add(fhClusEtaPhiLowL1JOnly);
870 fOutputList->Add(fhClusEtaPhiLowCluMaxMB);
871 fOutputList->Add(fhClusEtaPhiLowCluMaxL0);
872 fOutputList->Add(fhClusEtaPhiLowCluMaxL1G);
873 fOutputList->Add(fhClusEtaPhiLowCluMaxL1J);
874 fOutputList->Add(fhClusEtaPhiLowCluMaxL1GOnly);
875 fOutputList->Add(fhClusEtaPhiLowCluMaxL1JOnly);
878 fhClusEtaPhiHighCellMaxMB = new TH2F("hClusEtaPhiHighCellMaxMB","Cluster hit map in calorimeter (max cell), column vs row for MB trigger, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
879 fhClusEtaPhiHighCellMaxMB ->SetXTitle("Index #eta (columnns)");
880 fhClusEtaPhiHighCellMaxMB ->SetYTitle("Index #phi (rows)");
882 fhClusEtaPhiHighCellMaxL0 = new TH2F("hClusEtaPhiHighCellMaxL0","Cluster hit map in calorimeter (max cell), column vs row for L0 trigger, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
883 fhClusEtaPhiHighCellMaxL0 ->SetXTitle("Index #eta (columnns)");
884 fhClusEtaPhiHighCellMaxL0 ->SetYTitle("Index #phi (rows)");
886 fhClusEtaPhiHighCellMaxL1G = new TH2F("hClusEtaPhiHighCellMaxL1G","Cluster hit map in calorimeter (max cell), column vs row for L1G trigger, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
887 fhClusEtaPhiHighCellMaxL1G ->SetXTitle("Index #eta (columnns)");
889 fhClusEtaPhiHighCellMaxL1J = new TH2F("hClusEtaPhiHighCellMaxL1J","Cluster hit map in calorimeter (max cell), column vs row for L1J trigger, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
890 fhClusEtaPhiHighCellMaxL1J ->SetXTitle("Index #eta (columnns)");
891 fhClusEtaPhiHighCellMaxL1J ->SetYTitle("Index #phi (rows)");
893 fhClusEtaPhiHighCellMaxL1GOnly = new TH2F("hClusEtaPhiHighCellMaxL1GOnly","Cluster hit map in calorimeter (max cell), column vs row for L1G trigger and not L1J, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
894 fhClusEtaPhiHighCellMaxL1GOnly->SetXTitle("Index #eta (columnns)");
895 fhClusEtaPhiHighCellMaxL1GOnly->SetYTitle("Index #phi (rows)");
897 fhClusEtaPhiHighCellMaxL1JOnly = new TH2F("hClusEtaPhiHighCellMaxL1JOnly","Cluster hit map in calorimeter (max cell), column vs row for L1J trigger and not L1G, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
898 fhClusEtaPhiHighCellMaxL1JOnly->SetXTitle("Index #eta (columnns)");
899 fhClusEtaPhiHighCellMaxL1JOnly->SetYTitle("Index #phi (rows)");
901 fhClusEtaPhiHighCellMaxCluMaxMB = new TH2F("hClusEtaPhiHighCellMaxCluMaxMB","Max E cluster hit map in calorimeter (max cell), column vs row for MB trigger, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
902 fhClusEtaPhiHighCellMaxCluMaxMB ->SetXTitle("Index #eta (columnns)");
903 fhClusEtaPhiHighCellMaxCluMaxMB ->SetYTitle("Index #phi (rows)");
905 fhClusEtaPhiHighCellMaxCluMaxL0 = new TH2F("hClusEtaPhiHighCellMaxCluMaxL0","Max E cluster hit map in calorimeter (max cell), column vs row for L0 trigger, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
906 fhClusEtaPhiHighCellMaxCluMaxL0 ->SetXTitle("Index #eta (columnns)");
907 fhClusEtaPhiHighCellMaxCluMaxL0 ->SetYTitle("Index #phi (rows)");
909 fhClusEtaPhiHighCellMaxCluMaxL1G = new TH2F("hClusEtaPhiHighCellMaxCluMaxL1G","Max E cluster hit map in calorimeter (max cell), column vs row for L1G trigger, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
910 fhClusEtaPhiHighCellMaxCluMaxL1G->SetXTitle("Index #eta (columnns)");
911 fhClusEtaPhiHighCellMaxCluMaxL1G->SetYTitle("Index #phi (rows)");
913 fhClusEtaPhiHighCellMaxCluMaxL1J = new TH2F("hClusEtaPhiHighCellMaxCluMaxL1J","Max E cluster hit map in calorimeter (max cell), column vs row for L1J trigger, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
914 fhClusEtaPhiHighCellMaxCluMaxL1J->SetXTitle("Index #eta (columnns)");
915 fhClusEtaPhiHighCellMaxCluMaxL1J->SetYTitle("Index #phi (rows)");
917 fhClusEtaPhiHighCellMaxCluMaxL1GOnly = new TH2F("hClusEtaPhiHighCellMaxCluMaxL1GOnly","Max E cluster hit map in calorimeter (max cell), column vs row for L1G trigger and not L1J, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
918 fhClusEtaPhiHighCellMaxCluMaxL1GOnly->SetXTitle("Index #eta (columnns)");
919 fhClusEtaPhiHighCellMaxCluMaxL1GOnly->SetYTitle("Index #phi (rows)");
921 fhClusEtaPhiHighCellMaxCluMaxL1JOnly = new TH2F("hClusEtaPhiHighCellMaxCluMaxL1JOnly","Max E cluster hit map in calorimeter (max cell), column vs row for L1J trigger and not L1G, E > 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
922 fhClusEtaPhiHighCellMaxCluMaxL1JOnly->SetXTitle("Index #eta (columnns)");
923 fhClusEtaPhiHighCellMaxCluMaxL1JOnly->SetYTitle("Index #phi (rows)");
926 fOutputList->Add(fhClusEtaPhiHighCellMaxMB);
927 fOutputList->Add(fhClusEtaPhiHighCellMaxL0);
928 fOutputList->Add(fhClusEtaPhiHighCellMaxL1G);
929 fOutputList->Add(fhClusEtaPhiHighCellMaxL1J);
930 fOutputList->Add(fhClusEtaPhiHighCellMaxL1GOnly);
931 fOutputList->Add(fhClusEtaPhiHighCellMaxL1JOnly);
933 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxMB);
934 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL0);
935 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1G);
936 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1J);
937 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1GOnly);
938 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1JOnly);
940 fhClusEtaPhiLowCellMaxMB = new TH2F("hClusEtaPhiLowCellMaxMB","Cluster hit map in calorimeter (max cell), column vs row for MB trigger, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
941 fhClusEtaPhiLowCellMaxMB ->SetXTitle("Index #eta (columnns)");
942 fhClusEtaPhiLowCellMaxMB ->SetYTitle("#phi (rad)");
944 fhClusEtaPhiLowCellMaxL0 = new TH2F("hClusEtaPhiLowCellMaxL0","Cluster hit map in calorimeter (max cell), column vs row for L0 trigger, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
945 fhClusEtaPhiLowCellMaxL0 ->SetXTitle("Index #eta (columnns)");
946 fhClusEtaPhiLowCellMaxL0 ->SetYTitle("#phi (rad)");
948 fhClusEtaPhiLowCellMaxL1G = new TH2F("hClusEtaPhiLowCellMaxL1G","Cluster hit map in calorimeter (max cell), column vs row for L1G trigger, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
949 fhClusEtaPhiLowCellMaxL1G ->SetXTitle("Index #eta (columnns)");
951 fhClusEtaPhiLowCellMaxL1J = new TH2F("hClusEtaPhiLowCellMaxL1J","Cluster hit map in calorimeter (max cell), column vs row for L1J trigger, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
952 fhClusEtaPhiLowCellMaxL1J ->SetXTitle("Index #eta (columnns)");
953 fhClusEtaPhiLowCellMaxL1J ->SetYTitle("#phi (rad)");
955 fhClusEtaPhiLowCellMaxL1GOnly = new TH2F("hClusEtaPhiLowCellMaxL1GOnly","Cluster hit map in calorimeter (max cell), column vs row for L1G trigger and not L1J, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
956 fhClusEtaPhiLowCellMaxL1GOnly->SetXTitle("Index #eta (columnns)");
957 fhClusEtaPhiLowCellMaxL1GOnly->SetYTitle("#phi (rad)");
959 fhClusEtaPhiLowCellMaxL1JOnly = new TH2F("hClusEtaPhiLowCellMaxL1JOnly","Cluster hit map in calorimeter (max cell), column vs row for L1J trigger and not L1G, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
960 fhClusEtaPhiLowCellMaxL1JOnly->SetXTitle("Index #eta (columnns)");
961 fhClusEtaPhiLowCellMaxL1JOnly->SetYTitle("#phi (rad)");
963 fhClusEtaPhiLowCellMaxCluMaxMB = new TH2F("hClusEtaPhiLowCellMaxCluMaxMB","Max E cluster hit map in calorimeter (max cell), column vs row for MB trigger, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
964 fhClusEtaPhiLowCellMaxCluMaxMB ->SetXTitle("Index #eta (columnns)");
965 fhClusEtaPhiLowCellMaxCluMaxMB ->SetYTitle("#phi (rad)");
967 fhClusEtaPhiLowCellMaxCluMaxL0 = new TH2F("hClusEtaPhiLowCellMaxCluMaxL0","Max E cluster hit map in calorimeter (max cell), column vs row for L0 trigger, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
968 fhClusEtaPhiLowCellMaxCluMaxL0 ->SetXTitle("Index #eta (columnns)");
969 fhClusEtaPhiLowCellMaxCluMaxL0 ->SetYTitle("#phi (rad)");
971 fhClusEtaPhiLowCellMaxCluMaxL1G = new TH2F("hClusEtaPhiLowCellMaxCluMaxL1G","Max E cluster hit map in calorimeter (max cell), column vs row for L1G trigger, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
972 fhClusEtaPhiLowCellMaxCluMaxL1G->SetXTitle("Index #eta (columnns)");
973 fhClusEtaPhiLowCellMaxCluMaxL1G->SetYTitle("#phi (rad)");
975 fhClusEtaPhiLowCellMaxCluMaxL1J = new TH2F("hClusEtaPhiLowCellMaxCluMaxL1J","Max E cluster hit map in calorimeter (max cell), column vs row for L1J trigger, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
976 fhClusEtaPhiLowCellMaxCluMaxL1J->SetXTitle("Index #eta (columnns)");
977 fhClusEtaPhiLowCellMaxCluMaxL1J->SetYTitle("#phi (rad)");
979 fhClusEtaPhiLowCellMaxCluMaxL1GOnly = new TH2F("hClusEtaPhiLowCellMaxCluMaxL1GOnly","Max E cluster hit map in calorimeter (max cell), column vs row for L1G trigger and not L1J, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
980 fhClusEtaPhiLowCellMaxCluMaxL1GOnly->SetXTitle("Index #eta (columnns)");
981 fhClusEtaPhiLowCellMaxCluMaxL1GOnly->SetYTitle("#phi (rad)");
983 fhClusEtaPhiLowCellMaxCluMaxL1JOnly = new TH2F("hClusEtaPhiLowCellMaxCluMaxL1JOnly","Max E cluster hit map in calorimeter (max cell), column vs row for L1J trigger and not L1G, E < 10 GeV",fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
984 fhClusEtaPhiLowCellMaxCluMaxL1JOnly->SetXTitle("Index #eta (columnns)");
985 fhClusEtaPhiLowCellMaxCluMaxL1JOnly->SetYTitle("#phi (rad)");
988 fOutputList->Add(fhClusEtaPhiLowCellMaxMB);
989 fOutputList->Add(fhClusEtaPhiLowCellMaxL0);
990 fOutputList->Add(fhClusEtaPhiLowCellMaxL1G);
991 fOutputList->Add(fhClusEtaPhiLowCellMaxL1J);
992 fOutputList->Add(fhClusEtaPhiLowCellMaxL1GOnly);
993 fOutputList->Add(fhClusEtaPhiLowCellMaxL1JOnly);
995 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxMB);
996 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL0);
997 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1G);
998 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1J);
999 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1GOnly);
1000 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1JOnly);
1002 PostData(1, fOutputList);
1005 //______________________________________________________
1006 void AliAnalysisTaskEMCALTriggerQA::UserExec(Option_t *)
1010 AliVEvent* event = InputEvent();
1012 //Remove next lines when AODs ready
1013 AliESDEvent *esdEvent = dynamic_cast<AliESDEvent*>(event);
1017 AliError("Work only with ESDs, not available, exit");
1021 //trigger configuration
1022 TString triggerclasses = esdEvent->GetFiredTriggerClasses();
1024 Int_t eventType = ((AliVHeader*)InputEvent()->GetHeader())->GetEventType();
1025 // physics events eventType=7, select only those
1027 if(triggerclasses=="" || eventType != 7) return;
1030 Bool_t bMB = kFALSE;
1031 Bool_t bL0 = kFALSE;
1032 Bool_t bL1G = kFALSE;
1033 Bool_t bL1J = kFALSE;
1035 if(triggerclasses.Contains("CINT7-B-NOPF-ALLNOTRD") ||
1036 triggerclasses.Contains("CINT7-I-NOPF-ALLNOTRD") ||
1037 triggerclasses.Contains("CINT1-I-NOPF-ALLNOTRD") ||
1038 triggerclasses.Contains("CINT1-B-NOPF-ALLNOTRD") ||
1039 triggerclasses.Contains("CPBI2_B1-B-NOPF-ALLNOTRD") ) bMB = kTRUE;
1041 if(triggerclasses.Contains("CEMC7-B-NOPF-ALLNOTRD") ||
1042 triggerclasses.Contains("CEMC1-B-NOPF-ALLNOTRD") ) bL0 = kTRUE;
1044 if(triggerclasses.Contains("CEMC7EGA-B-NOPF-CENTNOTRD") ||
1045 triggerclasses.Contains("CPBI2EGA") ) bL1G = kTRUE;
1047 if(triggerclasses.Contains("CEMC7EJE-B-NOPF-CENTNOTRD") ||
1048 triggerclasses.Contains("CPBI2EJE") ) bL1J = kTRUE;
1051 fhNEvents->Fill(0.5); // All physics events
1055 fhNEvents->Fill(1.5);
1056 if( !bL1G && !bL1J && !bL0 ) fhNEvents->Fill(8.5);
1060 if( bL0 ) fhNEvents->Fill( 9.5);
1061 if( bL1G ) fhNEvents->Fill(10.5);
1062 if( bL1J ) fhNEvents->Fill(11.5);
1065 if( bL0 ) fhNEvents->Fill(2.5);
1069 fhNEvents->Fill(3.5);
1070 if(!bL1J) fhNEvents->Fill(5.5);
1075 fhNEvents->Fill(4.5);
1076 if(!bL1G) fhNEvents->Fill(6.5);
1079 if(bL1J && bL1G) fhNEvents->Fill(7.5);
1082 //std::cout << "trigger = " << triggerclasses << std::endl;
1084 //map for cells and patches
1086 Double_t emcalCell [fgkFALTRORows][fgkFALTROCols], emcalCellL1G [fgkFALTRORows][fgkFALTROCols];
1087 Double_t emcalCellL1J [fgkFALTRORows][fgkFALTROCols], emcalTrigL0 [fgkFALTRORows][fgkFALTROCols];
1088 Double_t emcalTrigL0L1G[fgkFALTRORows][fgkFALTROCols], emcalTrigL0L1J[fgkFALTRORows][fgkFALTROCols];
1089 Double_t emcalTrigL1G [fgkFALTRORows][fgkFALTROCols], emcalTrigL1J [fgkFALTRORows][fgkFALTROCols], emcalTrigL1 [fgkFALTRORows][fgkFALTROCols];
1090 Double_t emcalPatchL0 [fgkFALTRORows][fgkFALTROCols], emcalPatchL1G [fgkFALTRORows][fgkFALTROCols], emcalPatchL1J[fgkFALTRORows][fgkFALTROCols];
1092 for (Int_t i = 0; i < fgkFALTRORows; i++)
1094 for (Int_t j = 0; j < fgkFALTROCols; j++)
1096 emcalTrigL0[i][j] = 0.;
1097 emcalTrigL0L1G[i][j]= 0.;
1098 emcalTrigL0L1J[i][j]= 0.;
1099 emcalTrigL1G[i][j] = 0.;
1100 emcalTrigL1J[i][j] = 0.;
1101 emcalTrigL1[i][j] = 0.;
1102 emcalCell[i][j] = 0.;
1103 emcalCellL1G[i][j] = 0.;
1104 emcalCellL1J[i][j] = 0.;
1105 emcalPatchL0[i][j] = 0.;
1106 emcalPatchL1G[i][j] = 0.;
1107 emcalPatchL1J[i][j] = 0.;
1111 // ---------------------------------
1113 // Fill FEE energy per channel array
1114 // ---------------------------------
1116 Int_t posX = -1, posY = -1;
1117 Int_t nSupMod = -1, ieta = -1, iphi = -1, nModule = -1, nIphi = -1, nIeta = -1;
1121 AliVCaloCells& cells= *(event->GetEMCALCells());
1123 if (cells.IsEMCAL())
1125 for (Int_t icell = 0; icell < cells.GetNumberOfCells(); icell++)
1129 Double_t amp =0., time = 0.;
1131 cells.GetCell(icell, absId, amp, time);
1133 fGeometry->GetCellIndex(absId, nSupMod, nModule, nIphi, nIeta);
1134 fGeometry->GetCellPhiEtaIndexInSModule(nSupMod, nModule, nIphi, nIeta, iphi, ieta);
1136 posX = (nSupMod % 2) ? ieta + AliEMCALGeoParams::fgkEMCALCols : ieta;
1137 posY = iphi + AliEMCALGeoParams::fgkEMCALRows * int(nSupMod / 2);
1139 if(int(posX/2) > fgkFALTROCols || int(posY/2) > fgkFALTRORows ) {
1140 if(DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Wrong Position (x,y) = (%d,%d)\n",posX,posY);
1144 emcalCell[int(posY/2)][int(posX/2)] += amp;
1146 if(triggerclasses.Contains("CEMC7EGA-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EGA")) emcalCellL1G[int(posY/2)][int(posX/2)] += amp;
1147 if(triggerclasses.Contains("CEMC7EJE-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EJE")) emcalCellL1J[int(posY/2)][int(posX/2)] += amp;
1152 //-------------------------------------
1153 // Trigger analysis, fill L0, L1 arrays
1154 //-------------------------------------
1156 AliESDCaloTrigger& trg= * (esdEvent->GetCaloTrigger("EMCAL"));
1158 Int_t nL0Patch = 0 ;
1159 Int_t nL1Patch = 0 ;
1160 Double_t totSTU = 0.;
1161 Double_t totTRU = 0.;
1166 trg.GetPosition(posX,posY);
1169 if (posX > -1 && posY > -1)
1173 trg.GetNL0Times(nTimes);
1176 trg.GetAmplitude(ampL0);
1177 if (ampL0 > 0) emcalTrigL0[posY][posX] = ampL0;
1178 if(triggerclasses.Contains("CEMC7EGA-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EGA")) emcalTrigL0L1G[posY][posX] += ampL0;
1179 if(triggerclasses.Contains("CEMC7EJE-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EJE")) emcalTrigL0L1J[posY][posX] += ampL0;
1185 emcalPatchL0[posY][posX] = 1.;
1186 fhL0Patch->Fill(posX,posY);
1191 trg.GetTriggerBits(bit);
1194 trg.GetL1TimeSum(ts);
1195 if (ts > 0) emcalTrigL1[posY][posX] = ts;
1202 emcalPatchL1G[posY][posX] += 1.;
1203 fhL1GPatch->Fill(posX,posY);
1205 if (ts > 0) emcalTrigL1G[posY][posX] = ts;
1207 //printf("Gamma STU patch %d, time sum %d, posX %d , posY %d\n",nL1Patch,ts,posX, posY);
1214 emcalPatchL1J[posY][posX] += 1.;
1215 fhL1JPatch->Fill(posX,posY);
1217 if (ts > 0) emcalTrigL1J[posY][posX] = ts;
1219 //printf("Jet STU patch %d, time sum %d, posX %d , posY %d\n",nL1Patch,ts,posX, posY);
1226 if(totTRU > fMaxTRUSignal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large totTRU %f\n",totTRU);
1227 if(totSTU > fMaxSTUSignal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large totSTU %f\n",totSTU);
1230 AliESDVZERO* eventV0 = esdEvent->GetVZEROData();
1232 Float_t v0C = 0, v0A = 0, v0TT = trg.GetL1V0(0)+trg.GetL1V0(1);
1236 for (Int_t i = 0; i < 32; i++)
1238 v0C += eventV0->GetAdcV0C(i);
1239 v0A += eventV0->GetAdcV0A(i);
1244 fhV0STU->Fill(v0A+v0C,totSTU);
1245 if( v0A+v0C > fMaxV0Signal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large v0A+v0C %f\n",v0A+v0C);
1248 if( bL1G ) fhV0L1G->Fill(v0A+v0C); ;
1249 if( bL1J ) fhV0L1J->Fill(v0A+v0C);
1250 if( bMB ) fhV0MB ->Fill(v0A+v0C);
1252 //if(nL0Patch!=0 || nL1Patch!=0) printf("total TRU %f, total STU %f, V0C+V0A %f; nL0 %d, nL1 %d \n",
1253 // totTRU,totSTU,v0A+v0C,nL0Patch,nL1Patch);
1255 //Maximum amplitude patch analysis
1262 for (Int_t i = 0; i < 47; i++)
1264 for (Int_t j = 0; j < 59; j++)
1270 for (Int_t k = 0; k < 2; k++)
1272 for (Int_t l = 0; l < 2; l++)
1274 patchG += int(emcalTrigL1[j + l][i + k]);
1278 if (patchG > patchMax)
1287 fhGPMaxVV0TT->Fill(v0TT, patchMax);
1288 if( bL1G ) fhL1GPatchMax->Fill(colMax,rowMax);
1294 for (Int_t i = 0; i < 9; i++)
1296 for (Int_t j = 0; j < 12; j++)
1302 for (Int_t k = 0; k < 16; k++)
1304 for (Int_t l = 0; l < 16; l++)
1306 patchJ += int(emcalTrigL1[4*j + l][4*i + k]);
1310 if (patchJ > patchMax)
1319 fhJPMaxVV0TT->Fill(v0TT, patchMax);
1320 if( bL1J ) fhL1JPatchMax->Fill(colMax,rowMax);
1322 //Matrix with signal per channel
1323 for (Int_t i = 0; i < fgkFALTRORows; i++)
1325 for (Int_t j = 0; j < fgkFALTROCols; j++) //check x,y direction for reading FOR ((0,0) = top left);
1327 fhFORAmp ->Fill( j, i, emcalCell [i][j]);
1328 fhFORAmpL1G ->Fill( j, i, emcalCellL1G [i][j]);
1329 fhFORAmpL1J ->Fill( j, i, emcalCellL1J [i][j]);
1330 fhL0Amp ->Fill( j, i, emcalTrigL0 [i][j]);
1331 fhL0AmpL1G ->Fill( j, i, emcalTrigL0L1G[i][j]);
1332 fhL0AmpL1J ->Fill( j, i, emcalTrigL0L1J[i][j]);
1333 fhL1Amp ->Fill( j, i, emcalTrigL1 [i][j]);
1334 fhL1GAmp ->Fill( j, i, emcalTrigL1G [i][j]);
1335 fhL1JAmp ->Fill( j, i, emcalTrigL1J [i][j]);
1336 fhFORMeanAmp->Fill( j, i, emcalCell [i][j]);
1337 fhL0MeanAmp ->Fill( j, i, emcalTrigL0 [i][j]);
1338 fhL1MeanAmp ->Fill( j, i, emcalTrigL1 [i][j]);
1342 //FEE-TRU-STU correlation checks
1343 Double_t ampFOR[30] = {0.}, ampL0[30] = {0.}, ampL1[30] = {0.};
1344 for (Int_t i = 0; i < fgkFALTRORows; i++)
1346 for (Int_t j = 0; j < fgkFALTROCols; j++)
1349 //method to get TRU number
1351 fGeometry->GetAbsFastORIndexFromPositionInEMCAL(j,i,idFOR);
1354 fGeometry->GetTRUFromAbsFastORIndex(idFOR,iTRU,iADC);
1356 //printf("i %d, j %d, iTRU %d, iADC %d, idFOR %d; cell %f, L0 %f, L1 %f\n",
1357 // i,j,iTRU,iADC,idFOR, emcalCell [i][j],emcalTrigL0[i][j],emcalTrigL1[i][j]);
1361 ampFOR[iTRU] += emcalCell [i][j];
1362 ampL0[iTRU] += emcalTrigL0[i][j];
1363 ampL1[iTRU] += emcalTrigL1[i][j];
1368 // FEE vs STU and TRU vs STU ratios
1369 for (Int_t i = 0; i < 30; i++)
1372 if (ampFOR[i] != 0 && ampL1[i] != 0) {
1373 fhFEESTU->Fill(ampL1[i]/ampFOR[i],i);
1374 if(ampL1[i]/ampFOR[i] > fMaxSTUFEERatio && DebugLevel() > 0 ) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large STU/FEE ratio %f\n",ampL1[i]/ampFOR[i]);
1377 if (ampL0[i] != 0 && ampL1[i] != 0) {
1378 fhTRUSTU->Fill(ampL1[i]/ampL0[i] ,i);
1379 if(ampL1[i]/ampL0[i] > fMaxSTUTRURatio && DebugLevel() > 0 ) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large STU/TRU ratio %f\n",ampL1[i]/ampL0[i]);
1385 Double_t v[3] = {0,0,0};
1386 esdEvent->GetVertex()->GetXYZ(v);
1388 //clusters distribution
1389 TRefArray* caloClus = new TRefArray();
1390 esdEvent->GetEMCALClusters(caloClus);
1392 Int_t nCaloClusters = caloClus->GetEntriesFast();
1404 //Energy threshold to fill Eta vs Phi histograms
1405 Float_t etaphiEnMin = 10.;
1409 //Get vertex for momentum calculation
1410 Double_t vertex[] = {0.0,0.0,0.0};
1411 //InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
1413 Float_t centrality = -1;
1414 if(InputEvent()->GetCentrality()) centrality = InputEvent()->GetCentrality()->GetCentralityPercentile("V0M");
1416 for(Int_t icalo = 0; icalo < nCaloClusters; icalo++)
1418 AliESDCaloCluster *clus = (AliESDCaloCluster*) (caloClus->At(icalo));
1420 if(!clus->IsEMCAL()) continue;
1422 if(!fRecoUtils->IsGoodCluster(clus,fGeometry,InputEvent()->GetEMCALCells(),InputEvent()->GetBunchCrossNumber()))
1427 if(clus->GetNCells() < 2) continue ; // Avoid 1 cell clusters, noisy, exotic.
1429 clus->GetMomentum(mom, vertex);
1431 Bool_t shared = kFALSE;
1432 Int_t idAbs = -1, iphi0 = -1, ieta0 = -1;
1433 fRecoUtils->GetMaxEnergyCell(fGeometry, InputEvent()->GetEMCALCells(),clus,
1434 idAbs,nSupMod,ieta0,iphi0,shared);
1435 //Change index to be continuous over SM
1436 ieta = (nSupMod % 2) ? ieta0 + AliEMCALGeoParams::fgkEMCALCols : ieta0;
1437 iphi = iphi0 + AliEMCALGeoParams::fgkEMCALRows * int(nSupMod / 2);
1441 if(ieta > fgkFALTROCols || iphi > fgkFALTRORows ) {
1442 printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Wrong Position (x,y) = (%d,%d)\n",ieta,iphi);
1461 fhClusCenMB ->Fill(e,centrality);
1462 fhClusV0MB ->Fill(e,v0A+v0C);
1463 fhClusEtaMB ->Fill(e,eta);
1464 fhClusPhiMB ->Fill(e,phi);
1467 fhClusEtaPhiHighMB ->Fill( eta, phi);
1468 fhClusEtaPhiHighCellMaxMB ->Fill(ieta,iphi);
1471 fhClusEtaPhiLowMB ->Fill( eta, phi);
1472 fhClusEtaPhiLowCellMaxMB ->Fill(ieta,iphi);
1478 fhClusCenL0 ->Fill(e,centrality);
1479 fhClusV0L0 ->Fill(e,v0A+v0C);
1480 fhClusEtaL0 ->Fill(e,eta);
1481 fhClusPhiL0 ->Fill(e,phi);
1484 fhClusEtaPhiHighL0 ->Fill( eta, phi);
1485 fhClusEtaPhiHighCellMaxL0 ->Fill(ieta,iphi);
1488 fhClusEtaPhiLowL0 ->Fill( eta, phi);
1489 fhClusEtaPhiLowCellMaxL0 ->Fill(ieta,iphi);
1494 fhClusL1G ->Fill(e);
1495 fhClusCenL1G ->Fill(e,centrality);
1496 fhClusV0L1G ->Fill(e,v0A+v0C);
1497 fhClusEtaL1G ->Fill(e,eta);
1498 fhClusPhiL1G ->Fill(e,phi);
1501 fhClusEtaPhiHighL1G ->Fill( eta, phi);
1502 fhClusEtaPhiHighCellMaxL1G ->Fill(ieta,iphi);
1505 fhClusEtaPhiLowL1G ->Fill( eta, phi);
1506 fhClusEtaPhiLowCellMaxL1G ->Fill(ieta,iphi);
1511 fhClusL1J ->Fill(e);
1512 fhClusCenL1J ->Fill(e,centrality);
1513 fhClusV0L1J ->Fill(e,v0A+v0C);
1514 fhClusEtaL1J ->Fill(e,eta);
1515 fhClusPhiL1J ->Fill(e,phi);
1518 fhClusEtaPhiHighL1J ->Fill( eta, phi);
1519 fhClusEtaPhiHighCellMaxL1J ->Fill(ieta,iphi);
1522 fhClusEtaPhiLowL1J ->Fill( eta, phi);
1523 fhClusEtaPhiLowCellMaxL1J ->Fill(ieta,iphi);
1529 fhClusL1GOnly ->Fill(e);
1530 fhClusCenL1GOnly ->Fill(e,centrality);
1531 fhClusV0L1GOnly ->Fill(e,v0A+v0C);
1532 fhClusEtaL1GOnly ->Fill(e,eta);
1533 fhClusPhiL1GOnly ->Fill(e,phi);
1536 fhClusEtaPhiHighL1GOnly ->Fill( eta, phi);
1537 fhClusEtaPhiHighCellMaxL1GOnly ->Fill(ieta,iphi);
1540 fhClusEtaPhiLowL1GOnly ->Fill( eta, phi);
1541 fhClusEtaPhiLowCellMaxL1GOnly ->Fill(ieta,iphi);
1547 fhClusL1JOnly ->Fill(e);
1548 fhClusCenL1JOnly ->Fill(e,centrality);
1549 fhClusV0L1JOnly ->Fill(e,v0A+v0C);
1550 fhClusEtaL1JOnly ->Fill(e,eta);
1551 fhClusPhiL1JOnly ->Fill(e,phi);
1554 fhClusEtaPhiHighL1JOnly ->Fill( eta, phi);
1555 fhClusEtaPhiHighCellMaxL1JOnly ->Fill(ieta,iphi);
1558 fhClusEtaPhiLowL1JOnly ->Fill( eta, phi);
1559 fhClusEtaPhiLowCellMaxL1JOnly ->Fill(ieta,iphi);
1563 if( bMB && !bL1G && !bL1J && !bL0 ) fhClusMBPure ->Fill(e);
1567 // Maximum energy cluster per event histograms
1571 fhClusMaxMB ->Fill(emax);
1572 fhClusCenMaxMB ->Fill(emax,centrality);
1573 fhClusV0MaxMB ->Fill(emax,v0A+v0C);
1574 fhClusEtaMaxMB ->Fill(emax,etamax);
1575 fhClusPhiMaxMB ->Fill(emax,phimax);
1576 if(emax > etaphiEnMin)
1578 fhClusEtaPhiHighCluMaxMB ->Fill( etamax, phimax);
1579 fhClusEtaPhiHighCellMaxCluMaxMB ->Fill(ietamax,iphimax);
1582 fhClusEtaPhiLowCluMaxMB ->Fill( etamax, phimax);
1583 fhClusEtaPhiLowCellMaxCluMaxMB ->Fill(ietamax,iphimax);
1588 fhClusMaxL0 ->Fill(emax);
1589 fhClusCenMaxL0 ->Fill(emax,centrality);
1590 fhClusV0MaxL0 ->Fill(emax,v0A+v0C);
1591 fhClusEtaMaxL0 ->Fill(emax,etamax);
1592 fhClusPhiMaxL0 ->Fill(emax,phimax);
1593 if(emax > etaphiEnMin)
1595 fhClusEtaPhiHighCluMaxL0 ->Fill( etamax, phimax);
1596 fhClusEtaPhiHighCellMaxCluMaxL0 ->Fill(ietamax,iphimax);
1599 fhClusEtaPhiLowCluMaxL0 ->Fill( etamax, phimax);
1600 fhClusEtaPhiLowCellMaxCluMaxL0 ->Fill(ietamax,iphimax);
1605 fhClusMaxL1G ->Fill(emax);
1606 fhClusCenMaxL1G ->Fill(emax,centrality);
1607 fhClusV0MaxL1G ->Fill(emax,v0A+v0C);
1608 fhClusEtaMaxL1G ->Fill(emax,etamax);
1609 fhClusPhiMaxL1G ->Fill(emax,phimax);
1610 if(emax > etaphiEnMin)
1612 fhClusEtaPhiHighCluMaxL1G ->Fill( etamax, phimax);
1613 fhClusEtaPhiHighCellMaxCluMaxL1G ->Fill(ietamax,iphimax);
1616 fhClusEtaPhiLowCluMaxL1G ->Fill( etamax, phimax);
1617 fhClusEtaPhiLowCellMaxCluMaxL1G ->Fill(ietamax,iphimax);
1622 fhClusMaxL1J ->Fill(emax);
1623 fhClusCenMaxL1J ->Fill(emax,centrality);
1624 fhClusV0MaxL1J ->Fill(emax,v0A+v0C);
1625 fhClusEtaMaxL1J ->Fill(emax,etamax);
1626 fhClusPhiMaxL1J ->Fill(emax,phimax);
1627 if(emax > etaphiEnMin)
1629 fhClusEtaPhiHighCluMaxL1J ->Fill( etamax, phimax);
1630 fhClusEtaPhiHighCellMaxCluMaxL1J ->Fill(ietamax,iphimax);
1633 fhClusEtaPhiLowCluMaxL1J ->Fill( etamax, phimax);
1634 fhClusEtaPhiLowCellMaxCluMaxL1J ->Fill(ietamax,iphimax);
1640 fhClusMaxL1GOnly ->Fill(emax);
1641 fhClusCenMaxL1GOnly ->Fill(emax,centrality);
1642 fhClusV0MaxL1GOnly ->Fill(emax,v0A+v0C);
1643 fhClusEtaMaxL1GOnly ->Fill(emax,etamax);
1644 fhClusPhiMaxL1GOnly ->Fill(emax,phimax);
1645 if(emax > etaphiEnMin)
1647 fhClusEtaPhiHighCluMaxL1GOnly ->Fill( etamax, phimax);
1648 fhClusEtaPhiHighCellMaxCluMaxL1GOnly ->Fill(ietamax,iphimax);
1651 fhClusEtaPhiLowCluMaxL1GOnly ->Fill( etamax, phimax);
1652 fhClusEtaPhiLowCellMaxCluMaxL1GOnly ->Fill(ietamax,iphimax);
1658 fhClusMaxL1JOnly ->Fill(emax);
1659 fhClusCenMaxL1JOnly ->Fill(emax,centrality);
1660 fhClusV0MaxL1JOnly ->Fill(emax,v0A+v0C);
1661 fhClusEtaMaxL1JOnly ->Fill(emax,etamax);
1662 fhClusPhiMaxL1JOnly ->Fill(emax,phimax);
1663 if(emax > etaphiEnMin)
1665 fhClusEtaPhiHighCluMaxL1JOnly ->Fill( etamax, phimax);
1666 fhClusEtaPhiHighCellMaxCluMaxL1JOnly ->Fill(ietamax,iphimax);
1669 fhClusEtaPhiLowCluMaxL1JOnly ->Fill( etamax, phimax);
1670 fhClusEtaPhiLowCellMaxCluMaxL1JOnly ->Fill(ietamax,iphimax);
1674 if( bMB && !bL1G && !bL1J && !bL0 ) fhClusMaxMBPure ->Fill(emax);
1676 PostData(1, fOutputList);