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) //
22 //------------------------------------------------------------------------//
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., efrac = 0;
1130 Short_t mclabel = -1;
1132 cells.GetCell(icell, absId, amp, time,mclabel,efrac);
1134 fGeometry->GetCellIndex(absId, nSupMod, nModule, nIphi, nIeta);
1135 fGeometry->GetCellPhiEtaIndexInSModule(nSupMod, nModule, nIphi, nIeta, iphi, ieta);
1137 posX = (nSupMod % 2) ? ieta + AliEMCALGeoParams::fgkEMCALCols : ieta;
1138 posY = iphi + AliEMCALGeoParams::fgkEMCALRows * int(nSupMod / 2);
1140 if(int(posX/2) > fgkFALTROCols || int(posY/2) > fgkFALTRORows ) {
1141 if(DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Wrong Position (x,y) = (%d,%d)\n",posX,posY);
1145 emcalCell[int(posY/2)][int(posX/2)] += amp;
1147 if(triggerclasses.Contains("CEMC7EGA-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EGA")) emcalCellL1G[int(posY/2)][int(posX/2)] += amp;
1148 if(triggerclasses.Contains("CEMC7EJE-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EJE")) emcalCellL1J[int(posY/2)][int(posX/2)] += amp;
1153 //-------------------------------------
1154 // Trigger analysis, fill L0, L1 arrays
1155 //-------------------------------------
1157 AliESDCaloTrigger& trg= * (esdEvent->GetCaloTrigger("EMCAL"));
1159 Int_t nL0Patch = 0 ;
1160 Int_t nL1Patch = 0 ;
1161 Double_t totSTU = 0.;
1162 Double_t totTRU = 0.;
1167 trg.GetPosition(posX,posY);
1170 if (posX > -1 && posY > -1)
1174 trg.GetNL0Times(nTimes);
1177 trg.GetAmplitude(ampL0);
1178 if (ampL0 > 0) emcalTrigL0[posY][posX] = ampL0;
1179 if(triggerclasses.Contains("CEMC7EGA-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EGA")) emcalTrigL0L1G[posY][posX] += ampL0;
1180 if(triggerclasses.Contains("CEMC7EJE-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EJE")) emcalTrigL0L1J[posY][posX] += ampL0;
1186 emcalPatchL0[posY][posX] = 1.;
1187 fhL0Patch->Fill(posX,posY);
1192 trg.GetTriggerBits(bit);
1195 trg.GetL1TimeSum(ts);
1196 if (ts > 0) emcalTrigL1[posY][posX] = ts;
1203 emcalPatchL1G[posY][posX] += 1.;
1204 fhL1GPatch->Fill(posX,posY);
1206 if (ts > 0) emcalTrigL1G[posY][posX] = ts;
1208 //printf("Gamma STU patch %d, time sum %d, posX %d , posY %d\n",nL1Patch,ts,posX, posY);
1215 emcalPatchL1J[posY][posX] += 1.;
1216 fhL1JPatch->Fill(posX,posY);
1218 if (ts > 0) emcalTrigL1J[posY][posX] = ts;
1220 //printf("Jet STU patch %d, time sum %d, posX %d , posY %d\n",nL1Patch,ts,posX, posY);
1227 if(totTRU > fMaxTRUSignal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large totTRU %f\n",totTRU);
1228 if(totSTU > fMaxSTUSignal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large totSTU %f\n",totSTU);
1231 AliESDVZERO* eventV0 = esdEvent->GetVZEROData();
1233 Float_t v0C = 0, v0A = 0, v0TT = trg.GetL1V0(0)+trg.GetL1V0(1);
1237 for (Int_t i = 0; i < 32; i++)
1239 v0C += eventV0->GetAdcV0C(i);
1240 v0A += eventV0->GetAdcV0A(i);
1245 fhV0STU->Fill(v0A+v0C,totSTU);
1246 if( v0A+v0C > fMaxV0Signal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large v0A+v0C %f\n",v0A+v0C);
1249 if( bL1G ) fhV0L1G->Fill(v0A+v0C); ;
1250 if( bL1J ) fhV0L1J->Fill(v0A+v0C);
1251 if( bMB ) fhV0MB ->Fill(v0A+v0C);
1253 //if(nL0Patch!=0 || nL1Patch!=0) printf("total TRU %f, total STU %f, V0C+V0A %f; nL0 %d, nL1 %d \n",
1254 // totTRU,totSTU,v0A+v0C,nL0Patch,nL1Patch);
1256 //Maximum amplitude patch analysis
1263 for (Int_t i = 0; i < 47; i++)
1265 for (Int_t j = 0; j < 59; j++)
1271 for (Int_t k = 0; k < 2; k++)
1273 for (Int_t l = 0; l < 2; l++)
1275 patchG += int(emcalTrigL1[j + l][i + k]);
1279 if (patchG > patchMax)
1288 fhGPMaxVV0TT->Fill(v0TT, patchMax);
1289 if( bL1G ) fhL1GPatchMax->Fill(colMax,rowMax);
1295 for (Int_t i = 0; i < 9; i++)
1297 for (Int_t j = 0; j < 12; j++)
1303 for (Int_t k = 0; k < 16; k++)
1305 for (Int_t l = 0; l < 16; l++)
1307 patchJ += int(emcalTrigL1[4*j + l][4*i + k]);
1311 if (patchJ > patchMax)
1320 fhJPMaxVV0TT->Fill(v0TT, patchMax);
1321 if( bL1J ) fhL1JPatchMax->Fill(colMax,rowMax);
1323 //Matrix with signal per channel
1324 for (Int_t i = 0; i < fgkFALTRORows; i++)
1326 for (Int_t j = 0; j < fgkFALTROCols; j++) //check x,y direction for reading FOR ((0,0) = top left);
1328 fhFORAmp ->Fill( j, i, emcalCell [i][j]);
1329 fhFORAmpL1G ->Fill( j, i, emcalCellL1G [i][j]);
1330 fhFORAmpL1J ->Fill( j, i, emcalCellL1J [i][j]);
1331 fhL0Amp ->Fill( j, i, emcalTrigL0 [i][j]);
1332 fhL0AmpL1G ->Fill( j, i, emcalTrigL0L1G[i][j]);
1333 fhL0AmpL1J ->Fill( j, i, emcalTrigL0L1J[i][j]);
1334 fhL1Amp ->Fill( j, i, emcalTrigL1 [i][j]);
1335 fhL1GAmp ->Fill( j, i, emcalTrigL1G [i][j]);
1336 fhL1JAmp ->Fill( j, i, emcalTrigL1J [i][j]);
1337 fhFORMeanAmp->Fill( j, i, emcalCell [i][j]);
1338 fhL0MeanAmp ->Fill( j, i, emcalTrigL0 [i][j]);
1339 fhL1MeanAmp ->Fill( j, i, emcalTrigL1 [i][j]);
1343 //FEE-TRU-STU correlation checks
1344 Double_t ampFOR[30] = {0.}, ampL0[30] = {0.}, ampL1[30] = {0.};
1345 for (Int_t i = 0; i < fgkFALTRORows; i++)
1347 for (Int_t j = 0; j < fgkFALTROCols; j++)
1350 //method to get TRU number
1352 fGeometry->GetAbsFastORIndexFromPositionInEMCAL(j,i,idFOR);
1355 fGeometry->GetTRUFromAbsFastORIndex(idFOR,iTRU,iADC);
1357 //printf("i %d, j %d, iTRU %d, iADC %d, idFOR %d; cell %f, L0 %f, L1 %f\n",
1358 // i,j,iTRU,iADC,idFOR, emcalCell [i][j],emcalTrigL0[i][j],emcalTrigL1[i][j]);
1362 ampFOR[iTRU] += emcalCell [i][j];
1363 ampL0[iTRU] += emcalTrigL0[i][j];
1364 ampL1[iTRU] += emcalTrigL1[i][j];
1369 // FEE vs STU and TRU vs STU ratios
1370 for (Int_t i = 0; i < 30; i++)
1373 if (ampFOR[i] != 0 && ampL1[i] != 0) {
1374 fhFEESTU->Fill(ampL1[i]/ampFOR[i],i);
1375 if(ampL1[i]/ampFOR[i] > fMaxSTUFEERatio && DebugLevel() > 0 ) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large STU/FEE ratio %f\n",ampL1[i]/ampFOR[i]);
1378 if (ampL0[i] != 0 && ampL1[i] != 0) {
1379 fhTRUSTU->Fill(ampL1[i]/ampL0[i] ,i);
1380 if(ampL1[i]/ampL0[i] > fMaxSTUTRURatio && DebugLevel() > 0 ) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large STU/TRU ratio %f\n",ampL1[i]/ampL0[i]);
1386 Double_t v[3] = {0,0,0};
1387 esdEvent->GetVertex()->GetXYZ(v);
1389 //clusters distribution
1390 TRefArray* caloClus = new TRefArray();
1391 esdEvent->GetEMCALClusters(caloClus);
1393 Int_t nCaloClusters = caloClus->GetEntriesFast();
1405 //Energy threshold to fill Eta vs Phi histograms
1406 Float_t etaphiEnMin = 10.;
1410 //Get vertex for momentum calculation
1411 Double_t vertex[] = {0.0,0.0,0.0};
1412 //InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
1414 Float_t centrality = -1;
1415 if(InputEvent()->GetCentrality()) centrality = InputEvent()->GetCentrality()->GetCentralityPercentile("V0M");
1417 for(Int_t icalo = 0; icalo < nCaloClusters; icalo++)
1419 AliESDCaloCluster *clus = (AliESDCaloCluster*) (caloClus->At(icalo));
1421 if(!clus->IsEMCAL()) continue;
1423 if(!fRecoUtils->IsGoodCluster(clus,fGeometry,InputEvent()->GetEMCALCells(),InputEvent()->GetBunchCrossNumber()))
1428 if(clus->GetNCells() < 2) continue ; // Avoid 1 cell clusters, noisy, exotic.
1430 clus->GetMomentum(mom, vertex);
1432 Bool_t shared = kFALSE;
1433 Int_t idAbs = -1, iphi0 = -1, ieta0 = -1;
1434 fRecoUtils->GetMaxEnergyCell(fGeometry, InputEvent()->GetEMCALCells(),clus,
1435 idAbs,nSupMod,ieta0,iphi0,shared);
1436 //Change index to be continuous over SM
1437 ieta = (nSupMod % 2) ? ieta0 + AliEMCALGeoParams::fgkEMCALCols : ieta0;
1438 iphi = iphi0 + AliEMCALGeoParams::fgkEMCALRows * int(nSupMod / 2);
1442 if(ieta > fgkFALTROCols || iphi > fgkFALTRORows ) {
1443 printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Wrong Position (x,y) = (%d,%d)\n",ieta,iphi);
1462 fhClusCenMB ->Fill(e,centrality);
1463 fhClusV0MB ->Fill(e,v0A+v0C);
1464 fhClusEtaMB ->Fill(e,eta);
1465 fhClusPhiMB ->Fill(e,phi);
1468 fhClusEtaPhiHighMB ->Fill( eta, phi);
1469 fhClusEtaPhiHighCellMaxMB ->Fill(ieta,iphi);
1472 fhClusEtaPhiLowMB ->Fill( eta, phi);
1473 fhClusEtaPhiLowCellMaxMB ->Fill(ieta,iphi);
1479 fhClusCenL0 ->Fill(e,centrality);
1480 fhClusV0L0 ->Fill(e,v0A+v0C);
1481 fhClusEtaL0 ->Fill(e,eta);
1482 fhClusPhiL0 ->Fill(e,phi);
1485 fhClusEtaPhiHighL0 ->Fill( eta, phi);
1486 fhClusEtaPhiHighCellMaxL0 ->Fill(ieta,iphi);
1489 fhClusEtaPhiLowL0 ->Fill( eta, phi);
1490 fhClusEtaPhiLowCellMaxL0 ->Fill(ieta,iphi);
1495 fhClusL1G ->Fill(e);
1496 fhClusCenL1G ->Fill(e,centrality);
1497 fhClusV0L1G ->Fill(e,v0A+v0C);
1498 fhClusEtaL1G ->Fill(e,eta);
1499 fhClusPhiL1G ->Fill(e,phi);
1502 fhClusEtaPhiHighL1G ->Fill( eta, phi);
1503 fhClusEtaPhiHighCellMaxL1G ->Fill(ieta,iphi);
1506 fhClusEtaPhiLowL1G ->Fill( eta, phi);
1507 fhClusEtaPhiLowCellMaxL1G ->Fill(ieta,iphi);
1512 fhClusL1J ->Fill(e);
1513 fhClusCenL1J ->Fill(e,centrality);
1514 fhClusV0L1J ->Fill(e,v0A+v0C);
1515 fhClusEtaL1J ->Fill(e,eta);
1516 fhClusPhiL1J ->Fill(e,phi);
1519 fhClusEtaPhiHighL1J ->Fill( eta, phi);
1520 fhClusEtaPhiHighCellMaxL1J ->Fill(ieta,iphi);
1523 fhClusEtaPhiLowL1J ->Fill( eta, phi);
1524 fhClusEtaPhiLowCellMaxL1J ->Fill(ieta,iphi);
1530 fhClusL1GOnly ->Fill(e);
1531 fhClusCenL1GOnly ->Fill(e,centrality);
1532 fhClusV0L1GOnly ->Fill(e,v0A+v0C);
1533 fhClusEtaL1GOnly ->Fill(e,eta);
1534 fhClusPhiL1GOnly ->Fill(e,phi);
1537 fhClusEtaPhiHighL1GOnly ->Fill( eta, phi);
1538 fhClusEtaPhiHighCellMaxL1GOnly ->Fill(ieta,iphi);
1541 fhClusEtaPhiLowL1GOnly ->Fill( eta, phi);
1542 fhClusEtaPhiLowCellMaxL1GOnly ->Fill(ieta,iphi);
1548 fhClusL1JOnly ->Fill(e);
1549 fhClusCenL1JOnly ->Fill(e,centrality);
1550 fhClusV0L1JOnly ->Fill(e,v0A+v0C);
1551 fhClusEtaL1JOnly ->Fill(e,eta);
1552 fhClusPhiL1JOnly ->Fill(e,phi);
1555 fhClusEtaPhiHighL1JOnly ->Fill( eta, phi);
1556 fhClusEtaPhiHighCellMaxL1JOnly ->Fill(ieta,iphi);
1559 fhClusEtaPhiLowL1JOnly ->Fill( eta, phi);
1560 fhClusEtaPhiLowCellMaxL1JOnly ->Fill(ieta,iphi);
1564 if( bMB && !bL1G && !bL1J && !bL0 ) fhClusMBPure ->Fill(e);
1568 // Maximum energy cluster per event histograms
1572 fhClusMaxMB ->Fill(emax);
1573 fhClusCenMaxMB ->Fill(emax,centrality);
1574 fhClusV0MaxMB ->Fill(emax,v0A+v0C);
1575 fhClusEtaMaxMB ->Fill(emax,etamax);
1576 fhClusPhiMaxMB ->Fill(emax,phimax);
1577 if(emax > etaphiEnMin)
1579 fhClusEtaPhiHighCluMaxMB ->Fill( etamax, phimax);
1580 fhClusEtaPhiHighCellMaxCluMaxMB ->Fill(ietamax,iphimax);
1583 fhClusEtaPhiLowCluMaxMB ->Fill( etamax, phimax);
1584 fhClusEtaPhiLowCellMaxCluMaxMB ->Fill(ietamax,iphimax);
1589 fhClusMaxL0 ->Fill(emax);
1590 fhClusCenMaxL0 ->Fill(emax,centrality);
1591 fhClusV0MaxL0 ->Fill(emax,v0A+v0C);
1592 fhClusEtaMaxL0 ->Fill(emax,etamax);
1593 fhClusPhiMaxL0 ->Fill(emax,phimax);
1594 if(emax > etaphiEnMin)
1596 fhClusEtaPhiHighCluMaxL0 ->Fill( etamax, phimax);
1597 fhClusEtaPhiHighCellMaxCluMaxL0 ->Fill(ietamax,iphimax);
1600 fhClusEtaPhiLowCluMaxL0 ->Fill( etamax, phimax);
1601 fhClusEtaPhiLowCellMaxCluMaxL0 ->Fill(ietamax,iphimax);
1606 fhClusMaxL1G ->Fill(emax);
1607 fhClusCenMaxL1G ->Fill(emax,centrality);
1608 fhClusV0MaxL1G ->Fill(emax,v0A+v0C);
1609 fhClusEtaMaxL1G ->Fill(emax,etamax);
1610 fhClusPhiMaxL1G ->Fill(emax,phimax);
1611 if(emax > etaphiEnMin)
1613 fhClusEtaPhiHighCluMaxL1G ->Fill( etamax, phimax);
1614 fhClusEtaPhiHighCellMaxCluMaxL1G ->Fill(ietamax,iphimax);
1617 fhClusEtaPhiLowCluMaxL1G ->Fill( etamax, phimax);
1618 fhClusEtaPhiLowCellMaxCluMaxL1G ->Fill(ietamax,iphimax);
1623 fhClusMaxL1J ->Fill(emax);
1624 fhClusCenMaxL1J ->Fill(emax,centrality);
1625 fhClusV0MaxL1J ->Fill(emax,v0A+v0C);
1626 fhClusEtaMaxL1J ->Fill(emax,etamax);
1627 fhClusPhiMaxL1J ->Fill(emax,phimax);
1628 if(emax > etaphiEnMin)
1630 fhClusEtaPhiHighCluMaxL1J ->Fill( etamax, phimax);
1631 fhClusEtaPhiHighCellMaxCluMaxL1J ->Fill(ietamax,iphimax);
1634 fhClusEtaPhiLowCluMaxL1J ->Fill( etamax, phimax);
1635 fhClusEtaPhiLowCellMaxCluMaxL1J ->Fill(ietamax,iphimax);
1641 fhClusMaxL1GOnly ->Fill(emax);
1642 fhClusCenMaxL1GOnly ->Fill(emax,centrality);
1643 fhClusV0MaxL1GOnly ->Fill(emax,v0A+v0C);
1644 fhClusEtaMaxL1GOnly ->Fill(emax,etamax);
1645 fhClusPhiMaxL1GOnly ->Fill(emax,phimax);
1646 if(emax > etaphiEnMin)
1648 fhClusEtaPhiHighCluMaxL1GOnly ->Fill( etamax, phimax);
1649 fhClusEtaPhiHighCellMaxCluMaxL1GOnly ->Fill(ietamax,iphimax);
1652 fhClusEtaPhiLowCluMaxL1GOnly ->Fill( etamax, phimax);
1653 fhClusEtaPhiLowCellMaxCluMaxL1GOnly ->Fill(ietamax,iphimax);
1659 fhClusMaxL1JOnly ->Fill(emax);
1660 fhClusCenMaxL1JOnly ->Fill(emax,centrality);
1661 fhClusV0MaxL1JOnly ->Fill(emax,v0A+v0C);
1662 fhClusEtaMaxL1JOnly ->Fill(emax,etamax);
1663 fhClusPhiMaxL1JOnly ->Fill(emax,phimax);
1664 if(emax > etaphiEnMin)
1666 fhClusEtaPhiHighCluMaxL1JOnly ->Fill( etamax, phimax);
1667 fhClusEtaPhiHighCellMaxCluMaxL1JOnly ->Fill(ietamax,iphimax);
1670 fhClusEtaPhiLowCluMaxL1JOnly ->Fill( etamax, phimax);
1671 fhClusEtaPhiLowCellMaxCluMaxL1JOnly ->Fill(ietamax,iphimax);
1675 if( bMB && !bL1G && !bL1J && !bL0 ) fhClusMaxMBPure ->Fill(emax);
1677 PostData(1, fOutputList);