]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALTasks/AliAnalysisTaskEMCALTriggerQA.cxx
ids plus comments, authors
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALTriggerQA.cxx
CommitLineData
bce9493b 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16//------------------------------------------------------------------------//
17// Fill histograms with basic QA information for EMCAL offline trigger //
e395081d 18// Author: Nicolas Arbor (LPSC-Grenoble), Rachid Guernane (LPSC-Grenoble)//
bce9493b 19// Gustavo Conesa Balbastre (LPSC-Grenoble) //
20// //
cd231d42 21// $Id$ //
bce9493b 22//------------------------------------------------------------------------//
23
bce9493b 24#include <TList.h>
bce9493b 25#include <TH2F.h>
26#include <TF1.h>
0d896539 27#include <TProfile2D.h>
bce9493b 28
29#include "AliLog.h"
30#include "AliVCluster.h"
31#include "AliVCaloCells.h"
32#include "AliVEvent.h"
ec77a234 33#include "AliCentrality.h"
34
bce9493b 35#include "AliESDEvent.h"
36#include "AliESDVZERO.h"
37#include "AliESDCaloTrigger.h"
38#include "AliEMCALGeometry.h"
6bfd1538 39#include "AliEMCALRecoUtils.h"
bce9493b 40
41#include "AliAnalysisTaskEMCALTriggerQA.h"
42
43ClassImp(AliAnalysisTaskEMCALTriggerQA)
44
85196c29 45//______________________________________________________________
bce9493b 46AliAnalysisTaskEMCALTriggerQA::AliAnalysisTaskEMCALTriggerQA() :
47AliAnalysisTaskSE(),
ec77a234 48fOutputList(0), fRecoUtils(0x0),
49fGeometry(0), fGeoName(""),
50fhNEvents(0), fhFORAmp(0),
51fhFORAmpL1G(0), fhFORAmpL1J(0),
52fhL0Amp(0), fhL0AmpL1G(0), fhL0AmpL1J(0),
53fhL1Amp(0), fhL1GAmp(0), fhL1JAmp(0),
54fhL0Patch(0), fhL1GPatch(0), fhL1JPatch(0),
55fhFEESTU(0), fhTRUSTU(0), fhV0STU(0),
56fhGPMaxVV0TT(0), fhJPMaxVV0TT(0),
57fhFORMeanAmp(0), fhL0MeanAmp(0), fhL1MeanAmp(0),
58fhV0MB(0), fhV0L1G(0), fhV0L1J(0),
59fhL1GPatchMax(0), fhL1JPatchMax(0),
60
61fhClusMB(0), fhClusMBPure(0), fhClusL0(0),
62fhClusL1G(0), fhClusL1J(0),
63fhClusL1GOnly(0), fhClusL1JOnly(0),
64fhClusMaxMB(0), fhClusMaxMBPure(0), fhClusMaxL0(0),
65fhClusMaxL1G(0), fhClusMaxL1J(0),
66fhClusMaxL1GOnly(0), fhClusMaxL1JOnly(0),
67
68fhClusCenMB(0), fhClusCenL0(0),
69fhClusCenL1G(0), fhClusCenL1J(0),
70fhClusCenL1GOnly(0), fhClusCenL1JOnly(0),
71fhClusCenMaxMB(0), fhClusCenMaxL0(0),
72fhClusCenMaxL1G(0), fhClusCenMaxL1J(0),
73fhClusCenMaxL1GOnly(0), fhClusCenMaxL1JOnly(0),
74
75fhClusV0MB(0), fhClusV0L0(0),
76fhClusV0L1G(0), fhClusV0L1J(0),
77fhClusV0L1GOnly(0), fhClusV0L1JOnly(0),
78fhClusV0MaxMB(0), fhClusV0MaxL0(0),
79fhClusV0MaxL1G(0), fhClusV0MaxL1J(0),
80fhClusV0MaxL1GOnly(0), fhClusV0MaxL1JOnly(0),
81
82fhClusEtaMB(0), fhClusEtaL0(0),
83fhClusEtaL1G(0), fhClusEtaL1J(0),
84fhClusEtaL1GOnly(0), fhClusEtaL1JOnly(0),
85fhClusEtaMaxMB(0), fhClusEtaMaxL0(0),
86fhClusEtaMaxL1G(0), fhClusEtaMaxL1J(0),
87fhClusEtaMaxL1GOnly(0), fhClusEtaMaxL1JOnly(0),
88
89fhClusPhiMB(0), fhClusPhiL0(0),
90fhClusPhiL1G(0), fhClusPhiL1J(0),
91fhClusPhiL1GOnly(0), fhClusPhiL1JOnly(0),
92fhClusPhiMaxMB(0), fhClusPhiMaxL0(0),
93fhClusPhiMaxL1G(0), fhClusPhiMaxL1J(0),
94fhClusPhiMaxL1GOnly(0), fhClusPhiMaxL1JOnly(0),
95
96fhClusEtaPhiHighMB(0), fhClusEtaPhiHighL0(0),
97fhClusEtaPhiHighL1G(0), fhClusEtaPhiHighL1J(0),
98fhClusEtaPhiHighL1GOnly(0), fhClusEtaPhiHighL1JOnly(0),
99fhClusEtaPhiHighCluMaxMB(0), fhClusEtaPhiHighCluMaxL0(0),
100fhClusEtaPhiHighCluMaxL1G(0), fhClusEtaPhiHighCluMaxL1J(0),
101fhClusEtaPhiHighCluMaxL1GOnly(0), fhClusEtaPhiHighCluMaxL1JOnly(0),
102
103fhClusEtaPhiHighCellMaxMB(0), fhClusEtaPhiHighCellMaxL0(0),
104fhClusEtaPhiHighCellMaxL1G(0), fhClusEtaPhiHighCellMaxL1J(0),
105fhClusEtaPhiHighCellMaxL1GOnly(0), fhClusEtaPhiHighCellMaxL1JOnly(0),
106fhClusEtaPhiHighCellMaxCluMaxMB(0), fhClusEtaPhiHighCellMaxCluMaxL0(0),
107fhClusEtaPhiHighCellMaxCluMaxL1G(0), fhClusEtaPhiHighCellMaxCluMaxL1J(0),
108fhClusEtaPhiHighCellMaxCluMaxL1GOnly(0), fhClusEtaPhiHighCellMaxCluMaxL1JOnly(0),
109
110fhClusEtaPhiLowMB(0), fhClusEtaPhiLowL0(0),
111fhClusEtaPhiLowL1G(0), fhClusEtaPhiLowL1J(0),
112fhClusEtaPhiLowL1GOnly(0), fhClusEtaPhiLowL1JOnly(0),
113fhClusEtaPhiLowCluMaxMB(0), fhClusEtaPhiLowCluMaxL0(0),
114fhClusEtaPhiLowCluMaxL1G(0), fhClusEtaPhiLowCluMaxL1J(0),
115fhClusEtaPhiLowCluMaxL1GOnly(0), fhClusEtaPhiLowCluMaxL1JOnly(0),
116
117fhClusEtaPhiLowCellMaxMB(0), fhClusEtaPhiLowCellMaxL0(0),
118fhClusEtaPhiLowCellMaxL1G(0), fhClusEtaPhiLowCellMaxL1J(0),
119fhClusEtaPhiLowCellMaxL1GOnly(0), fhClusEtaPhiLowCellMaxL1JOnly(0),
120fhClusEtaPhiLowCellMaxCluMaxMB(0), fhClusEtaPhiLowCellMaxCluMaxL0(0),
121fhClusEtaPhiLowCellMaxCluMaxL1G(0), fhClusEtaPhiLowCellMaxCluMaxL1J(0),
122fhClusEtaPhiLowCellMaxCluMaxL1GOnly(0), fhClusEtaPhiLowCellMaxCluMaxL1JOnly(0),
123
124//Histogram settings
125fNBinsSTUSignal (2000), fMaxSTUSignal (200000),
126fNBinsTRUSignal (2000), fMaxTRUSignal (200000),
127fNBinsV0Signal (5000), fMaxV0Signal (100000),
128fNBinsSTUFEERatio(1000), fMaxSTUFEERatio(100),
129fNBinsSTUTRURatio(1000), fMaxSTUTRURatio(100),
130fNBinsClusterE (500), fMaxClusterE (200)
bce9493b 131
132{
133 // Constructor
bce9493b 134
ec77a234 135 fGeoName = "EMCAL_COMPLETEV1";
136 fRecoUtils = new AliEMCALRecoUtils;
137
138 DefineOutput(1, TList::Class());
139
bce9493b 140}
141
85196c29 142//______________________________________________________________________________
bce9493b 143AliAnalysisTaskEMCALTriggerQA::AliAnalysisTaskEMCALTriggerQA(const char *name) :
144AliAnalysisTaskSE(name),
ec77a234 145fOutputList(0), fRecoUtils(0x0),
146fGeometry(0), fGeoName(""),
147fhNEvents(0), fhFORAmp(0),
148fhFORAmpL1G(0), fhFORAmpL1J(0),
149fhL0Amp(0), fhL0AmpL1G(0), fhL0AmpL1J(0),
150fhL1Amp(0), fhL1GAmp(0), fhL1JAmp(0),
151fhL0Patch(0), fhL1GPatch(0), fhL1JPatch(0),
152fhFEESTU(0), fhTRUSTU(0), fhV0STU(0),
153fhGPMaxVV0TT(0), fhJPMaxVV0TT(0),
154fhFORMeanAmp(0), fhL0MeanAmp(0), fhL1MeanAmp(0),
155fhV0MB(0), fhV0L1G(0), fhV0L1J(0),
156fhL1GPatchMax(0), fhL1JPatchMax(0),
157
158fhClusMB(0), fhClusMBPure(0), fhClusL0(0),
159fhClusL1G(0), fhClusL1J(0),
160fhClusL1GOnly(0), fhClusL1JOnly(0),
161fhClusMaxMB(0), fhClusMaxMBPure(0), fhClusMaxL0(0),
162fhClusMaxL1G(0), fhClusMaxL1J(0),
163fhClusMaxL1GOnly(0), fhClusMaxL1JOnly(0),
164
165fhClusCenMB(0), fhClusCenL0(0),
166fhClusCenL1G(0), fhClusCenL1J(0),
167fhClusCenL1GOnly(0), fhClusCenL1JOnly(0),
168fhClusCenMaxMB(0), fhClusCenMaxL0(0),
169fhClusCenMaxL1G(0), fhClusCenMaxL1J(0),
170fhClusCenMaxL1GOnly(0), fhClusCenMaxL1JOnly(0),
171
172fhClusV0MB(0), fhClusV0L0(0),
173fhClusV0L1G(0), fhClusV0L1J(0),
174fhClusV0L1GOnly(0), fhClusV0L1JOnly(0),
175fhClusV0MaxMB(0), fhClusV0MaxL0(0),
176fhClusV0MaxL1G(0), fhClusV0MaxL1J(0),
177fhClusV0MaxL1GOnly(0), fhClusV0MaxL1JOnly(0),
178
179fhClusEtaMB(0), fhClusEtaL0(0),
180fhClusEtaL1G(0), fhClusEtaL1J(0),
181fhClusEtaL1GOnly(0), fhClusEtaL1JOnly(0),
182fhClusEtaMaxMB(0), fhClusEtaMaxL0(0),
183fhClusEtaMaxL1G(0), fhClusEtaMaxL1J(0),
184fhClusEtaMaxL1GOnly(0), fhClusEtaMaxL1JOnly(0),
185
186fhClusPhiMB(0), fhClusPhiL0(0),
187fhClusPhiL1G(0), fhClusPhiL1J(0),
188fhClusPhiL1GOnly(0), fhClusPhiL1JOnly(0),
189fhClusPhiMaxMB(0), fhClusPhiMaxL0(0),
190fhClusPhiMaxL1G(0), fhClusPhiMaxL1J(0),
191fhClusPhiMaxL1GOnly(0), fhClusPhiMaxL1JOnly(0),
192
193fhClusEtaPhiHighMB(0), fhClusEtaPhiHighL0(0),
194fhClusEtaPhiHighL1G(0), fhClusEtaPhiHighL1J(0),
195fhClusEtaPhiHighL1GOnly(0), fhClusEtaPhiHighL1JOnly(0),
196fhClusEtaPhiHighCluMaxMB(0), fhClusEtaPhiHighCluMaxL0(0),
197fhClusEtaPhiHighCluMaxL1G(0), fhClusEtaPhiHighCluMaxL1J(0),
198fhClusEtaPhiHighCluMaxL1GOnly(0), fhClusEtaPhiHighCluMaxL1JOnly(0),
199
200fhClusEtaPhiHighCellMaxMB(0), fhClusEtaPhiHighCellMaxL0(0),
201fhClusEtaPhiHighCellMaxL1G(0), fhClusEtaPhiHighCellMaxL1J(0),
202fhClusEtaPhiHighCellMaxL1GOnly(0), fhClusEtaPhiHighCellMaxL1JOnly(0),
203fhClusEtaPhiHighCellMaxCluMaxMB(0), fhClusEtaPhiHighCellMaxCluMaxL0(0),
204fhClusEtaPhiHighCellMaxCluMaxL1G(0), fhClusEtaPhiHighCellMaxCluMaxL1J(0),
205fhClusEtaPhiHighCellMaxCluMaxL1GOnly(0), fhClusEtaPhiHighCellMaxCluMaxL1JOnly(0),
206
207fhClusEtaPhiLowMB(0), fhClusEtaPhiLowL0(0),
208fhClusEtaPhiLowL1G(0), fhClusEtaPhiLowL1J(0),
209fhClusEtaPhiLowL1GOnly(0), fhClusEtaPhiLowL1JOnly(0),
210fhClusEtaPhiLowCluMaxMB(0), fhClusEtaPhiLowCluMaxL0(0),
211fhClusEtaPhiLowCluMaxL1G(0), fhClusEtaPhiLowCluMaxL1J(0),
212fhClusEtaPhiLowCluMaxL1GOnly(0), fhClusEtaPhiLowCluMaxL1JOnly(0),
213
214fhClusEtaPhiLowCellMaxMB(0), fhClusEtaPhiLowCellMaxL0(0),
215fhClusEtaPhiLowCellMaxL1G(0), fhClusEtaPhiLowCellMaxL1J(0),
216fhClusEtaPhiLowCellMaxL1GOnly(0), fhClusEtaPhiLowCellMaxL1JOnly(0),
217fhClusEtaPhiLowCellMaxCluMaxMB(0), fhClusEtaPhiLowCellMaxCluMaxL0(0),
218fhClusEtaPhiLowCellMaxCluMaxL1G(0), fhClusEtaPhiLowCellMaxCluMaxL1J(0),
219fhClusEtaPhiLowCellMaxCluMaxL1GOnly(0), fhClusEtaPhiLowCellMaxCluMaxL1JOnly(0),
220
221//Histogram settings
222fNBinsSTUSignal (2000), fMaxSTUSignal (200000),
223fNBinsTRUSignal (2000), fMaxTRUSignal (200000),
224fNBinsV0Signal (5000), fMaxV0Signal (100000),
225fNBinsSTUFEERatio(1000), fMaxSTUFEERatio(100),
226fNBinsSTUTRURatio(1000), fMaxSTUTRURatio(100),
227fNBinsClusterE (500), fMaxClusterE (200)
228
bce9493b 229{
230 // Constructor
bce9493b 231
ec77a234 232 fGeoName = "EMCAL_COMPLETEV1";
233 fRecoUtils = new AliEMCALRecoUtils;
234
bce9493b 235 DefineOutput(1, TList::Class());
236
237}
238
239
85196c29 240//___________________________________________________________
bce9493b 241void AliAnalysisTaskEMCALTriggerQA::UserCreateOutputObjects()
242{
243 // Init histograms and geometry
244
245 fGeometry = AliEMCALGeometry::GetInstance(fGeoName);
246
85196c29 247 fOutputList = new TList;
248 fOutputList ->SetOwner(kTRUE);
bce9493b 249
0d896539 250 fhNEvents = new TH1F("hNEvents","Number of selected events",12,0,12);
85196c29 251 fhNEvents ->SetYTitle("N events");
77626b4a 252 fhNEvents ->GetXaxis()->SetBinLabel(1 ,"All");
0d896539 253 fhNEvents ->GetXaxis()->SetBinLabel(2 ,"MB");
77626b4a 254 fhNEvents ->GetXaxis()->SetBinLabel(3 ,"L0");
255 fhNEvents ->GetXaxis()->SetBinLabel(4 ,"L1-G");
256 fhNEvents ->GetXaxis()->SetBinLabel(5 ,"L1-J");
0d896539 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");
264
bce9493b 265
75e10d6a 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)");
e022364d 269 fhFORAmp ->SetYTitle("Index #phi (rows)");
270 fhFORAmp ->SetZTitle("Amplitude");
e395081d 271
75e10d6a 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)");
a40222c8 275 fhFORAmpL1G ->SetYTitle("Index #phi (rows)");
276 fhFORAmpL1G ->SetZTitle("Amplitude");
e395081d 277
75e10d6a 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)");
a40222c8 281 fhFORAmpL1J ->SetYTitle("Index #phi (rows)");
282 fhFORAmpL1J ->SetZTitle("Amplitude");
aff917ac 283
75e10d6a 284 fhL0Amp = new TH2F("hL0Amp","FALTRO signal per Row and Column",
285 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
286 fhL0Amp ->SetXTitle("Index #eta (columnns)");
e022364d 287 fhL0Amp ->SetYTitle("Index #phi (rows)");
288 fhL0Amp ->SetZTitle("Amplitude");
e395081d 289
75e10d6a 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)");
a40222c8 293 fhL0AmpL1G ->SetYTitle("Index #phi (rows)");
294 fhL0AmpL1G ->SetZTitle("Amplitude");
e395081d 295
75e10d6a 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)");
a40222c8 299 fhL0AmpL1J ->SetYTitle("Index #phi (rows)");
300 fhL0AmpL1J ->SetZTitle("Amplitude");
aff917ac 301
75e10d6a 302 fhL1Amp = new TH2F("hL1Amp","STU signal per Row and Column",
303 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
304 fhL1Amp ->SetXTitle("Index #eta (columnns)");
aff917ac 305 fhL1Amp ->SetYTitle("Index #phi (rows)");
306 fhL1Amp ->SetZTitle("Amplitude");
307
75e10d6a 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)");
e022364d 311 fhL1GAmp ->SetYTitle("Index #phi (rows)");
312 fhL1GAmp ->SetZTitle("Amplitude");
aff917ac 313
75e10d6a 314 fhL1JAmp = new TH2F("hL1JAmp","STU signal per Row and Column for L1 Jet",
77626b4a 315 fgkFALTROCols/4,0,fgkFALTROCols,fgkFALTRORows/4,0,fgkFALTRORows);
75e10d6a 316 fhL1JAmp ->SetXTitle("Index #eta (columnns)");
e022364d 317 fhL1JAmp ->SetYTitle("Index #phi (rows)");
318 fhL1JAmp ->SetZTitle("Amplitude");
aff917ac 319
75e10d6a 320 fhL0Patch = new TH2F("hL0Patch","FOR with associated L0 Patch",
321 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
322 fhL0Patch ->SetXTitle("Index #eta (columnns)");
85196c29 323 fhL0Patch ->SetYTitle("Index #phi (rows)");
e022364d 324 fhL0Patch ->SetZTitle("counts");
aff917ac 325
75e10d6a 326 fhL1GPatch = new TH2F("hL1GPatch","FOR with associated L1 Gamma Patch",
327 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
328 fhL1GPatch ->SetXTitle("Index #eta (columnns)");
85196c29 329 fhL1GPatch ->SetYTitle("Index #phi (rows)");
e022364d 330 fhL1GPatch ->SetZTitle("counts");
aff917ac 331
75e10d6a 332 fhL1JPatch = new TH2F("hL1JPatch","FOR with associated L1 Jet Patch",
77626b4a 333 fgkFALTROCols/4,0,fgkFALTROCols,fgkFALTRORows/4,0,fgkFALTRORows);
75e10d6a 334 fhL1JPatch ->SetXTitle("Index #eta (columnns)");
85196c29 335 fhL1JPatch ->SetYTitle("Index #phi (rows)");
e022364d 336 fhL1JPatch ->SetZTitle("counts");
aff917ac 337
75e10d6a 338 fhV0STU = new TH2I("hV0STU","Total signal STU vs V0C+V0S",
339 fNBinsV0Signal,0,fMaxV0Signal,fNBinsSTUSignal,0,fMaxSTUSignal);
85196c29 340 fhV0STU ->SetXTitle("Signal V0C+V0A");
341 fhV0STU ->SetYTitle("Total signal STU");
e022364d 342 fhV0STU ->SetZTitle("counts");
aff917ac 343
480b9db0 344
85196c29 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");
e022364d 348 fhFEESTU ->SetZTitle("counts");
aff917ac 349
85196c29 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");
e022364d 353 fhTRUSTU ->SetZTitle("counts");
aff917ac 354
0d896539 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");
faa45c63 357 fhGPMaxVV0TT ->SetYTitle("Patch Max");
4ee53435 358
0d896539 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");
faa45c63 361 fhJPMaxVV0TT ->SetYTitle("Patch Max");
ec77a234 362
0d896539 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");
366
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");
4ee53435 370
0d896539 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");
ec77a234 374
0d896539 375 fhV0MB = new TH1F("hV0MB","V0 distribution for MB triggered event",fNBinsV0Signal,0,fMaxV0Signal);
376 fhV0MB->SetXTitle("V0");
ec77a234 377
0d896539 378 fhV0L1G = new TH1F("hV0L1G","V0 distribution for L1G triggered event",fNBinsV0Signal,0,fMaxV0Signal);
379 fhV0L1G->SetXTitle("V0");
ec77a234 380
0d896539 381 fhV0L1J = new TH1F("hV0L1J","V0 distribution for L1J triggered event",fNBinsV0Signal,0,fMaxV0Signal);
382 fhV0L1J->SetXTitle("V0");
ec77a234 383
0d896539 384 fhL1GPatchMax = new TH2F("hL1GPatchMax","FOR of max amplitude patch with associated L1 Gamma Patch",
ec77a234 385 fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows);
0d896539 386 fhL1GPatchMax ->SetXTitle("Index #eta (columnns)");
387 fhL1GPatchMax ->SetYTitle("Index #phi (rows)");
388 fhL1GPatchMax ->SetZTitle("counts");
389
390 fhL1JPatchMax = new TH2F("hL1JPatchMax","FOR of max amplitude patch with associated L1 Jet Patch",
ec77a234 391 fgkFALTROCols/4,0,fgkFALTROCols,fgkFALTRORows/4,0,fgkFALTRORows);
0d896539 392 fhL1JPatchMax ->SetXTitle("Index #eta (columnns)");
393 fhL1JPatchMax ->SetYTitle("Index #phi (rows)");
394 fhL1JPatchMax ->SetZTitle("counts");
395
bce9493b 396 fOutputList->Add(fhNEvents);
397 fOutputList->Add(fhV0STU);
e022364d 398 fOutputList->Add(fhFORAmp);
a40222c8 399 fOutputList->Add(fhFORAmpL1G);
400 fOutputList->Add(fhFORAmpL1J);
e022364d 401 fOutputList->Add(fhL0Amp);
a40222c8 402 fOutputList->Add(fhL0AmpL1G);
403 fOutputList->Add(fhL0AmpL1J);
aff917ac 404 fOutputList->Add(fhL1Amp);
e022364d 405 fOutputList->Add(fhL1GAmp);
406 fOutputList->Add(fhL1JAmp);
bce9493b 407 fOutputList->Add(fhL0Patch);
408 fOutputList->Add(fhL1GPatch);
409 fOutputList->Add(fhL1JPatch);
ec77a234 410 fOutputList->Add(fhFEESTU);
411 fOutputList->Add(fhTRUSTU);
412
413 fOutputList->Add(fhGPMaxVV0TT);
414 fOutputList->Add(fhJPMaxVV0TT);
415
416 fOutputList->Add(fhFORMeanAmp);
417 fOutputList->Add(fhL0MeanAmp);
418 fOutputList->Add(fhL1MeanAmp);
419
420 fOutputList->Add(fhV0MB );
421 fOutputList->Add(fhV0L1G);
422 fOutputList->Add(fhV0L1J);
423
424 fOutputList->Add(fhL1GPatchMax);
425 fOutputList->Add(fhL1JPatchMax);
426
427 // Cluster histograms, E
428
429 fhClusMB = new TH1F("hClusMB","clusters E distribution for MB trigger",fNBinsClusterE,0,fMaxClusterE);
430 fhClusMB ->SetXTitle("Energy (GeV)");
431
432 fhClusMBPure = new TH1F("hClusMBPure","clusters E distribution for MB trigger, no other EMCAL trigger on",fNBinsClusterE,0,fMaxClusterE);
433 fhClusMBPure ->SetXTitle("Energy (GeV)");
434
435 fhClusL0 = new TH1F("hClusL0","clusters E distribution for L0 trigger",fNBinsClusterE,0,fMaxClusterE);
436 fhClusL0 ->SetXTitle("Energy (GeV)");
437
438 fhClusL1G = new TH1F("hClusL1G","clusters E distribution for L1G trigger",fNBinsClusterE,0,fMaxClusterE);
439 fhClusL1G ->SetXTitle("Energy (GeV)");
440
441 fhClusL1J = new TH1F("hClusL1J","clusters E distribution for L1J trigger",fNBinsClusterE,0,fMaxClusterE);
442 fhClusL1J ->SetXTitle("Energy (GeV)");
443
444 fhClusL1GOnly = new TH1F("hClusL1GOnly","clusters E distribution for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE);
445 fhClusL1GOnly->SetXTitle("Energy (GeV)");
446
447 fhClusL1JOnly = new TH1F("hClusL1JOnly","clusters E distribution for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE);
448 fhClusL1JOnly->SetXTitle("Energy (GeV)");
449
450 fhClusMaxMB = new TH1F("hClusMaxMB","maximum energy cluster per event for MB trigger",fNBinsClusterE,0,fMaxClusterE);
451 fhClusMaxMB ->SetXTitle("Energy (GeV)");
452
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)");
455
456 fhClusMaxL0 = new TH1F("hClusMaxL0","maximum energy cluster per event for L0 trigger",fNBinsClusterE,0,fMaxClusterE);
457 fhClusMaxL0 ->SetXTitle("Energy (GeV)");
458
459 fhClusMaxL1G = new TH1F("hClusMaxL1G","maximum energy cluster per event for L1G trigger",fNBinsClusterE,0,fMaxClusterE);
460 fhClusMaxL1G->SetXTitle("Energy (GeV)");
461
462 fhClusMaxL1J = new TH1F("hClusMaxL1J","maximum energy cluster per event for L1J trigger",fNBinsClusterE,0,fMaxClusterE);
463 fhClusMaxL1J->SetXTitle("Energy (GeV)");
464
465 fhClusMaxL1GOnly = new TH1F("hClusMaxL1GOnly","maximum energy cluster per event for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE);
466 fhClusMaxL1GOnly->SetXTitle("Energy (GeV)");
467
468 fhClusMaxL1JOnly = new TH1F("hClusMaxL1JOnly","maximum energy cluster per event for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE);
469 fhClusMaxL1JOnly->SetXTitle("Energy (GeV)");
470
480b9db0 471
75e10d6a 472 fOutputList->Add(fhClusMB);
0d896539 473 fOutputList->Add(fhClusMBPure);
75e10d6a 474 fOutputList->Add(fhClusL0);
475 fOutputList->Add(fhClusL1G);
476 fOutputList->Add(fhClusL1J);
480b9db0 477 fOutputList->Add(fhClusL1GOnly);
478 fOutputList->Add(fhClusL1JOnly);
479
480 fOutputList->Add(fhClusMaxMB);
0d896539 481 fOutputList->Add(fhClusMaxMBPure);
480b9db0 482 fOutputList->Add(fhClusMaxL0);
483 fOutputList->Add(fhClusMaxL1G);
484 fOutputList->Add(fhClusMaxL1J);
485 fOutputList->Add(fhClusMaxL1GOnly);
486 fOutputList->Add(fhClusMaxL1JOnly);
487
ec77a234 488 // Cluster histograms, E vs Cen
489
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");
e395081d 493
ec77a234 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");
0d896539 497
ec77a234 498 fhClusCenL1G = new TH2F("hClusCenL1G","clusters E distribution vs centrality for L1G trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100);
499 fhClusCenL1G ->SetXTitle("Energy (GeV)");
500
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");
0d896539 504
ec77a234 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");
0d896539 508
ec77a234 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");
512
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");
516
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");
520
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");
524
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");
528
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");
532
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");
536
537
538 fOutputList->Add(fhClusCenMB);
539 fOutputList->Add(fhClusCenL0);
540 fOutputList->Add(fhClusCenL1G);
541 fOutputList->Add(fhClusCenL1J);
542 fOutputList->Add(fhClusCenL1GOnly);
543 fOutputList->Add(fhClusCenL1JOnly);
544
545 fOutputList->Add(fhClusCenMaxMB);
546 fOutputList->Add(fhClusCenMaxL0);
547 fOutputList->Add(fhClusCenMaxL1G);
548 fOutputList->Add(fhClusCenMaxL1J);
549 fOutputList->Add(fhClusCenMaxL1GOnly);
550 fOutputList->Add(fhClusCenMaxL1JOnly);
551
552
553 // Cluster histograms, E vs V0
554
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");
558
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");
562
563 fhClusV0L1G = new TH2F("hClusV0L1G","clusters E distribution vs V0 for L1G trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal);
564 fhClusV0L1G ->SetXTitle("Energy (GeV)");
565
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");
569
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");
573
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");
577
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");
581
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");
585
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");
589
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");
593
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");
597
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");
601
602
603 fOutputList->Add(fhClusV0MB);
604 fOutputList->Add(fhClusV0L0);
605 fOutputList->Add(fhClusV0L1G);
606 fOutputList->Add(fhClusV0L1J);
607 fOutputList->Add(fhClusV0L1GOnly);
608 fOutputList->Add(fhClusV0L1JOnly);
609
610 fOutputList->Add(fhClusV0MaxMB);
611 fOutputList->Add(fhClusV0MaxL0);
612 fOutputList->Add(fhClusV0MaxL1G);
613 fOutputList->Add(fhClusV0MaxL1J);
614 fOutputList->Add(fhClusV0MaxL1GOnly);
615 fOutputList->Add(fhClusV0MaxL1JOnly);
616
617 // Cluster histograms, E vs Pseudorapidity
618 Float_t etamin =-0.8;
619 Float_t etamax = 0.8;
620 Int_t neta = 160;
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");
624
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");
628
629 fhClusEtaL1G = new TH2F("hClusEtaL1G","clusters distribution vs #eta for L1G trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax);
630 fhClusEtaL1G ->SetXTitle("Energy (GeV)");
631
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");
635
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");
639
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");
643
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");
647
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");
651
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");
655
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");
659
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");
663
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");
667
668
669 fOutputList->Add(fhClusEtaMB);
670 fOutputList->Add(fhClusEtaL0);
671 fOutputList->Add(fhClusEtaL1G);
672 fOutputList->Add(fhClusEtaL1J);
673 fOutputList->Add(fhClusEtaL1GOnly);
674 fOutputList->Add(fhClusEtaL1JOnly);
675
676 fOutputList->Add(fhClusEtaMaxMB);
677 fOutputList->Add(fhClusEtaMaxL0);
678 fOutputList->Add(fhClusEtaMaxL1G);
679 fOutputList->Add(fhClusEtaMaxL1J);
680 fOutputList->Add(fhClusEtaMaxL1GOnly);
681 fOutputList->Add(fhClusEtaMaxL1JOnly);
682
683
684 // Cluster histograms, E vs Azimuthal angle
685 Float_t phimin = 80. *TMath::DegToRad();
686 Float_t phimax = 190.*TMath::DegToRad();
687 Int_t nphi = 110;
688
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)");
692
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)");
696
697 fhClusPhiL1G = new TH2F("hClusPhiL1G","clusters distribution vs #phi for L1G trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax);
698 fhClusPhiL1G ->SetXTitle("Energy (GeV)");
699
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)");
703
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)");
707
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)");
711
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)");
715
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)");
719
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)");
723
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)");
727
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)");
731
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)");
735
736
737 fOutputList->Add(fhClusPhiMB);
738 fOutputList->Add(fhClusPhiL0);
739 fOutputList->Add(fhClusPhiL1G);
740 fOutputList->Add(fhClusPhiL1J);
741 fOutputList->Add(fhClusPhiL1GOnly);
742 fOutputList->Add(fhClusPhiL1JOnly);
743
744 fOutputList->Add(fhClusPhiMaxMB);
745 fOutputList->Add(fhClusPhiMaxL0);
746 fOutputList->Add(fhClusPhiMaxL1G);
747 fOutputList->Add(fhClusPhiMaxL1J);
748 fOutputList->Add(fhClusPhiMaxL1GOnly);
749 fOutputList->Add(fhClusPhiMaxL1JOnly);
750
751 // Cluster histograms, Pseudorapidity vs Azimuthal angle
752
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)");
756
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)");
760
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");
763
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)");
767
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)");
771
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)");
775
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)");
779
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)");
783
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)");
787
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)");
791
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)");
795
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)");
799
800
801 fOutputList->Add(fhClusEtaPhiHighMB);
802 fOutputList->Add(fhClusEtaPhiHighL0);
803 fOutputList->Add(fhClusEtaPhiHighL1G);
804 fOutputList->Add(fhClusEtaPhiHighL1J);
805 fOutputList->Add(fhClusEtaPhiHighL1GOnly);
806 fOutputList->Add(fhClusEtaPhiHighL1JOnly);
807
808 fOutputList->Add(fhClusEtaPhiHighCluMaxMB);
809 fOutputList->Add(fhClusEtaPhiHighCluMaxL0);
810 fOutputList->Add(fhClusEtaPhiHighCluMaxL1G);
811 fOutputList->Add(fhClusEtaPhiHighCluMaxL1J);
812 fOutputList->Add(fhClusEtaPhiHighCluMaxL1GOnly);
813 fOutputList->Add(fhClusEtaPhiHighCluMaxL1JOnly);
814
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)");
818
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)");
822
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");
825
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)");
829
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)");
833
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)");
837
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)");
841
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)");
845
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)");
849
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)");
853
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)");
857
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)");
861
862
863 fOutputList->Add(fhClusEtaPhiLowMB);
864 fOutputList->Add(fhClusEtaPhiLowL0);
865 fOutputList->Add(fhClusEtaPhiLowL1G);
866 fOutputList->Add(fhClusEtaPhiLowL1J);
867 fOutputList->Add(fhClusEtaPhiLowL1GOnly);
868 fOutputList->Add(fhClusEtaPhiLowL1JOnly);
869
870 fOutputList->Add(fhClusEtaPhiLowCluMaxMB);
871 fOutputList->Add(fhClusEtaPhiLowCluMaxL0);
872 fOutputList->Add(fhClusEtaPhiLowCluMaxL1G);
873 fOutputList->Add(fhClusEtaPhiLowCluMaxL1J);
874 fOutputList->Add(fhClusEtaPhiLowCluMaxL1GOnly);
875 fOutputList->Add(fhClusEtaPhiLowCluMaxL1JOnly);
876
877
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)");
881
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)");
885
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)");
888
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)");
892
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)");
896
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)");
900
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)");
904
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)");
908
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)");
912
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)");
916
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)");
920
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)");
924
925
926 fOutputList->Add(fhClusEtaPhiHighCellMaxMB);
927 fOutputList->Add(fhClusEtaPhiHighCellMaxL0);
928 fOutputList->Add(fhClusEtaPhiHighCellMaxL1G);
929 fOutputList->Add(fhClusEtaPhiHighCellMaxL1J);
930 fOutputList->Add(fhClusEtaPhiHighCellMaxL1GOnly);
931 fOutputList->Add(fhClusEtaPhiHighCellMaxL1JOnly);
932
933 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxMB);
934 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL0);
935 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1G);
936 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1J);
937 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1GOnly);
938 fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1JOnly);
939
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)");
943
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)");
947
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)");
950
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)");
954
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)");
958
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)");
962
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)");
966
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)");
970
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)");
974
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)");
978
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)");
982
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)");
0d896539 986
bce9493b 987
ec77a234 988 fOutputList->Add(fhClusEtaPhiLowCellMaxMB);
989 fOutputList->Add(fhClusEtaPhiLowCellMaxL0);
990 fOutputList->Add(fhClusEtaPhiLowCellMaxL1G);
991 fOutputList->Add(fhClusEtaPhiLowCellMaxL1J);
992 fOutputList->Add(fhClusEtaPhiLowCellMaxL1GOnly);
993 fOutputList->Add(fhClusEtaPhiLowCellMaxL1JOnly);
994
995 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxMB);
996 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL0);
997 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1G);
998 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1J);
999 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1GOnly);
1000 fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1JOnly);
1001
bce9493b 1002 PostData(1, fOutputList);
1003
1004}
85196c29 1005//______________________________________________________
bce9493b 1006void AliAnalysisTaskEMCALTriggerQA::UserExec(Option_t *)
1007{
1008 // Main loop
bce9493b 1009
1010 AliVEvent* event = InputEvent();
1011
1012 //Remove next lines when AODs ready
1013 AliESDEvent *esdEvent = dynamic_cast<AliESDEvent*>(event);
1014
1015 if (!esdEvent)
1016 {
1017 AliError("Work only with ESDs, not available, exit");
1018 return;
1019 }
1020
a40222c8 1021 //trigger configuration
1022 TString triggerclasses = esdEvent->GetFiredTriggerClasses();
77626b4a 1023
6b4638cc 1024 Int_t eventType = ((AliVHeader*)InputEvent()->GetHeader())->GetEventType();
1025 // physics events eventType=7, select only those
77626b4a 1026
6b4638cc 1027 if(triggerclasses=="" || eventType != 7) return;
0d896539 1028
1029 // Check trigger
1030 Bool_t bMB = kFALSE;
1031 Bool_t bL0 = kFALSE;
1032 Bool_t bL1G = kFALSE;
1033 Bool_t bL1J = kFALSE;
1034
6bfd1538 1035 if(triggerclasses.Contains("CINT7-B-NOPF-ALLNOTRD") ||
1036 triggerclasses.Contains("CINT7-I-NOPF-ALLNOTRD") ||
1037 triggerclasses.Contains("CINT1-I-NOPF-ALLNOTRD") ||
8a50a36c 1038 triggerclasses.Contains("CINT1-B-NOPF-ALLNOTRD") ||
0d896539 1039 triggerclasses.Contains("CPBI2_B1-B-NOPF-ALLNOTRD") ) bMB = kTRUE;
1040
77626b4a 1041 if(triggerclasses.Contains("CEMC7-B-NOPF-ALLNOTRD") ||
0d896539 1042 triggerclasses.Contains("CEMC1-B-NOPF-ALLNOTRD") ) bL0 = kTRUE;
1043
8a50a36c 1044 if(triggerclasses.Contains("CEMC7EGA-B-NOPF-CENTNOTRD") ||
0d896539 1045 triggerclasses.Contains("CPBI2EGA") ) bL1G = kTRUE;
1046
8a50a36c 1047 if(triggerclasses.Contains("CEMC7EJE-B-NOPF-CENTNOTRD") ||
0d896539 1048 triggerclasses.Contains("CPBI2EJE") ) bL1J = kTRUE;
1049
1050 // Fill event histo
1051 fhNEvents->Fill(0.5); // All physics events
77626b4a 1052
0d896539 1053 if( bMB )
1054 {
1055 fhNEvents->Fill(1.5);
1056 if( !bL1G && !bL1J && !bL0 ) fhNEvents->Fill(8.5);
1057 }
1058 else
1059 {
1060 if( bL0 ) fhNEvents->Fill( 9.5);
1061 if( bL1G ) fhNEvents->Fill(10.5);
1062 if( bL1J ) fhNEvents->Fill(11.5);
1063 }
1064
1065 if( bL0 ) fhNEvents->Fill(2.5);
1066
1067 if( bL1G )
1068 {
1069 fhNEvents->Fill(3.5);
1070 if(!bL1J) fhNEvents->Fill(5.5);
1071 }
1072
1073 if( bL1J )
1074 {
1075 fhNEvents->Fill(4.5);
1076 if(!bL1G) fhNEvents->Fill(6.5);
1077 }
1078
1079 if(bL1J && bL1G) fhNEvents->Fill(7.5);
1080
1081
e395081d 1082 //std::cout << "trigger = " << triggerclasses << std::endl;
bce9493b 1083
bce9493b 1084 //map for cells and patches
1085
75e10d6a 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];
bce9493b 1091
1092 for (Int_t i = 0; i < fgkFALTRORows; i++)
1093 {
1094 for (Int_t j = 0; j < fgkFALTROCols; j++)
1095 {
85196c29 1096 emcalTrigL0[i][j] = 0.;
a40222c8 1097 emcalTrigL0L1G[i][j]= 0.;
1098 emcalTrigL0L1J[i][j]= 0.;
e022364d 1099 emcalTrigL1G[i][j] = 0.;
1100 emcalTrigL1J[i][j] = 0.;
85196c29 1101 emcalTrigL1[i][j] = 0.;
1102 emcalCell[i][j] = 0.;
a40222c8 1103 emcalCellL1G[i][j] = 0.;
1104 emcalCellL1J[i][j] = 0.;
85196c29 1105 emcalPatchL0[i][j] = 0.;
bce9493b 1106 emcalPatchL1G[i][j] = 0.;
1107 emcalPatchL1J[i][j] = 0.;
1108 }
1109 }
1110
1111 // ---------------------------------
1112 // Cells analysis
1113 // Fill FEE energy per channel array
1114 // ---------------------------------
1115
1116 Int_t posX = -1, posY = -1;
1117 Int_t nSupMod = -1, ieta = -1, iphi = -1, nModule = -1, nIphi = -1, nIeta = -1;
1118 Short_t absId = -1;
1119 Int_t nCells = 0;
1120
1121 AliVCaloCells& cells= *(event->GetEMCALCells());
1122
1123 if (cells.IsEMCAL())
1124 {
1125 for (Int_t icell = 0; icell < cells.GetNumberOfCells(); icell++)
1126 {
1127 nCells ++;
1128
77e93dc2 1129 Double_t amp =0., time = 0., efrac = 0;
1130 Short_t mclabel = -1;
bce9493b 1131
77e93dc2 1132 cells.GetCell(icell, absId, amp, time,mclabel,efrac);
bce9493b 1133
1134 fGeometry->GetCellIndex(absId, nSupMod, nModule, nIphi, nIeta);
1135 fGeometry->GetCellPhiEtaIndexInSModule(nSupMod, nModule, nIphi, nIeta, iphi, ieta);
1136
1137 posX = (nSupMod % 2) ? ieta + AliEMCALGeoParams::fgkEMCALCols : ieta;
1138 posY = iphi + AliEMCALGeoParams::fgkEMCALRows * int(nSupMod / 2);
bce9493b 1139
85196c29 1140 if(int(posX/2) > fgkFALTROCols || int(posY/2) > fgkFALTRORows ) {
e395081d 1141 if(DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Wrong Position (x,y) = (%d,%d)\n",posX,posY);
85196c29 1142 continue;
1143 }
1144
1145 emcalCell[int(posY/2)][int(posX/2)] += amp;
e395081d 1146
0e91f259 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;
85196c29 1149
bce9493b 1150 }
1151 }
1152
85196c29 1153 //-------------------------------------
1154 // Trigger analysis, fill L0, L1 arrays
1155 //-------------------------------------
bce9493b 1156
1157 AliESDCaloTrigger& trg= * (esdEvent->GetCaloTrigger("EMCAL"));
1158
1159 Int_t nL0Patch = 0 ;
1160 Int_t nL1Patch = 0 ;
1161 Double_t totSTU = 0.;
1162 Double_t totTRU = 0.;
1163
1164 trg.Reset();
1165 while (trg.Next())
1166 {
1167 trg.GetPosition(posX,posY);
1168
1169
1170 if (posX > -1 && posY > -1)
1171 {
1172 //L0 analysis
1173 Int_t nTimes = 0;
1174 trg.GetNL0Times(nTimes);
85196c29 1175
aff917ac 1176 Float_t ampL0 = 0.;
1177 trg.GetAmplitude(ampL0);
0d896539 1178 if (ampL0 > 0) emcalTrigL0[posY][posX] = ampL0;
0e91f259 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;
aff917ac 1181 totTRU += ampL0;
1182
bce9493b 1183 if (nTimes)
1184 {
1185 nL0Patch += nTimes;
bce9493b 1186 emcalPatchL0[posY][posX] = 1.;
e395081d 1187 fhL0Patch->Fill(posX,posY);
bce9493b 1188 }
1189
1190 //L1 analysis
1191 Int_t bit = 0;
1192 trg.GetTriggerBits(bit);
1193
aff917ac 1194 Int_t ts = 0;
1195 trg.GetL1TimeSum(ts);
0d896539 1196 if (ts > 0) emcalTrigL1[posY][posX] = ts;
aff917ac 1197 totSTU += ts;
1198
bce9493b 1199 //L1-Gamma
63c22917 1200 if (bit >> 6 & 0x1)
bce9493b 1201 {
1202 nL1Patch ++;
0d896539 1203 emcalPatchL1G[posY][posX] += 1.;
e395081d 1204 fhL1GPatch->Fill(posX,posY);
aff917ac 1205
0d896539 1206 if (ts > 0) emcalTrigL1G[posY][posX] = ts;
bce9493b 1207
85196c29 1208 //printf("Gamma STU patch %d, time sum %d, posX %d , posY %d\n",nL1Patch,ts,posX, posY);
bce9493b 1209 }
1210
1211 //L1-Jet
63c22917 1212 if (bit >> 8 & 0x1)
bce9493b 1213 {
1214 nL1Patch ++;
0d896539 1215 emcalPatchL1J[posY][posX] += 1.;
e395081d 1216 fhL1JPatch->Fill(posX,posY);
aff917ac 1217
0d896539 1218 if (ts > 0) emcalTrigL1J[posY][posX] = ts;
bce9493b 1219
85196c29 1220 //printf("Jet STU patch %d, time sum %d, posX %d , posY %d\n",nL1Patch,ts,posX, posY);
aff917ac 1221
bce9493b 1222 }
1223
1224 }
1225 }
1226
e395081d 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);
0d896539 1229
bce9493b 1230 //V0 analysis
1231 AliESDVZERO* eventV0 = esdEvent->GetVZEROData();
1232
e98e49c3 1233 Float_t v0C = 0, v0A = 0, v0TT = trg.GetL1V0(0)+trg.GetL1V0(1);
bce9493b 1234
1235 if (eventV0)
1236 {
1237 for (Int_t i = 0; i < 32; i++)
1238 {
1239 v0C += eventV0->GetAdcV0C(i);
1240 v0A += eventV0->GetAdcV0A(i);
1241 }
1242 }
e395081d 1243
bce9493b 1244 if (totSTU != 0) {
1245 fhV0STU->Fill(v0A+v0C,totSTU);
e395081d 1246 if( v0A+v0C > fMaxV0Signal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large v0A+v0C %f\n",v0A+v0C);
bce9493b 1247 }
1248
0d896539 1249 if( bL1G ) fhV0L1G->Fill(v0A+v0C); ;
1250 if( bL1J ) fhV0L1J->Fill(v0A+v0C);
1251 if( bMB ) fhV0MB ->Fill(v0A+v0C);
1252
85196c29 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);
1255
0d896539 1256 //Maximum amplitude patch analysis
e98e49c3 1257 Int_t patchMax = 0;
0d896539 1258 Int_t colMax = -1;
1259 Int_t rowMax = -1;
1260 Int_t col = 0;
1261 Int_t row = 0;
e395081d 1262
e98e49c3 1263 for (Int_t i = 0; i < 47; i++)
e395081d 1264 {
1265 for (Int_t j = 0; j < 59; j++)
1266 {
1267 Int_t patchG = 0;
0d896539 1268 col = i;
1269 row = j;
e395081d 1270
1271 for (Int_t k = 0; k < 2; k++)
e98e49c3 1272 {
1273 for (Int_t l = 0; l < 2; l++)
e395081d 1274 {
0d896539 1275 patchG += int(emcalTrigL1[j + l][i + k]);
e395081d 1276 }
e98e49c3 1277 }
e395081d 1278
0d896539 1279 if (patchG > patchMax)
1280 {
1281 patchMax = patchG;
1282 colMax = col;
1283 rowMax = row;
1284 }
e98e49c3 1285 }
e395081d 1286 }
e98e49c3 1287
1288 fhGPMaxVV0TT->Fill(v0TT, patchMax);
0d896539 1289 if( bL1G ) fhL1GPatchMax->Fill(colMax,rowMax);
e98e49c3 1290
1291 patchMax = 0;
0d896539 1292 colMax = -1;
1293 rowMax = -1;
e98e49c3 1294
1295 for (Int_t i = 0; i < 9; i++)
e395081d 1296 {
1297 for (Int_t j = 0; j < 12; j++)
e98e49c3 1298 {
e395081d 1299 Int_t patchJ = 0;
0d896539 1300 col = i;
1301 row = j;
e395081d 1302
1303 for (Int_t k = 0; k < 16; k++)
e98e49c3 1304 {
1305 for (Int_t l = 0; l < 16; l++)
e395081d 1306 {
0d896539 1307 patchJ += int(emcalTrigL1[4*j + l][4*i + k]);
e395081d 1308 }
e98e49c3 1309 }
e395081d 1310
0d896539 1311 if (patchJ > patchMax)
1312 {
1313 patchMax = patchJ;
1314 colMax = 4*col;
1315 rowMax = 4*row;
1316 }
e98e49c3 1317 }
e395081d 1318 }
e98e49c3 1319
1320 fhJPMaxVV0TT->Fill(v0TT, patchMax);
0d896539 1321 if( bL1J ) fhL1JPatchMax->Fill(colMax,rowMax);
e395081d 1322
bce9493b 1323 //Matrix with signal per channel
e022364d 1324 for (Int_t i = 0; i < fgkFALTRORows; i++)
bce9493b 1325 {
e022364d 1326 for (Int_t j = 0; j < fgkFALTROCols; j++) //check x,y direction for reading FOR ((0,0) = top left);
bce9493b 1327 {
0d896539 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]);
bce9493b 1340 }
1341 }
1342
aff917ac 1343 //FEE-TRU-STU correlation checks
bce9493b 1344 Double_t ampFOR[30] = {0.}, ampL0[30] = {0.}, ampL1[30] = {0.};
e022364d 1345 for (Int_t i = 0; i < fgkFALTRORows; i++)
bce9493b 1346 {
e022364d 1347 for (Int_t j = 0; j < fgkFALTROCols; j++)
bce9493b 1348 {
1349
1350 //method to get TRU number
85196c29 1351 Int_t idFOR = -1;
1352 fGeometry->GetAbsFastORIndexFromPositionInEMCAL(j,i,idFOR);
1353 Int_t iTRU = -1;
1354 Int_t iADC = -1;
1355 fGeometry->GetTRUFromAbsFastORIndex(idFOR,iTRU,iADC);
e395081d 1356
85196c29 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]);
e395081d 1359
bce9493b 1360 if (iTRU >= 0)
1361 {
1362 ampFOR[iTRU] += emcalCell [i][j];
1363 ampL0[iTRU] += emcalTrigL0[i][j];
1364 ampL1[iTRU] += emcalTrigL1[i][j];
1365 }
1366 }
1367 }
1368
85196c29 1369 // FEE vs STU and TRU vs STU ratios
bce9493b 1370 for (Int_t i = 0; i < 30; i++)
1371 {
85196c29 1372
1373 if (ampFOR[i] != 0 && ampL1[i] != 0) {
1374 fhFEESTU->Fill(ampL1[i]/ampFOR[i],i);
e395081d 1375 if(ampL1[i]/ampFOR[i] > fMaxSTUFEERatio && DebugLevel() > 0 ) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large STU/FEE ratio %f\n",ampL1[i]/ampFOR[i]);
85196c29 1376 }
1377
1378 if (ampL0[i] != 0 && ampL1[i] != 0) {
1379 fhTRUSTU->Fill(ampL1[i]/ampL0[i] ,i);
e395081d 1380 if(ampL1[i]/ampL0[i] > fMaxSTUTRURatio && DebugLevel() > 0 ) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large STU/TRU ratio %f\n",ampL1[i]/ampL0[i]);
85196c29 1381 }
1382
bce9493b 1383 }
1384
e395081d 1385 //Get Vertex
75e10d6a 1386 Double_t v[3] = {0,0,0};
1387 esdEvent->GetVertex()->GetXYZ(v);
1388
1389 //clusters distribution
1390 TRefArray* caloClus = new TRefArray();
1391 esdEvent->GetEMCALClusters(caloClus);
1392
1393 Int_t nCaloClusters = caloClus->GetEntriesFast();
ec77a234 1394
1395 Float_t emax = 0;
1396 Float_t etamax = 0;
1397 Float_t phimax = 0;
1398 Float_t ietamax=-1;
1399 Float_t iphimax=-1;
1400
1401 Float_t e = 0;
1402 Float_t eta = 0;
1403 Float_t phi = 0;
1404
1405 //Energy threshold to fill Eta vs Phi histograms
1406 Float_t etaphiEnMin = 10.;
1407
1408 TLorentzVector mom;
1409
1410 //Get vertex for momentum calculation
1411 Double_t vertex[] = {0.0,0.0,0.0};
1412 //InputEvent()->GetPrimaryVertex()->GetXYZ(vertex);
1413
1414 Float_t centrality = -1;
1415 if(InputEvent()->GetCentrality()) centrality = InputEvent()->GetCentrality()->GetCentralityPercentile("V0M");
1416
75e10d6a 1417 for(Int_t icalo = 0; icalo < nCaloClusters; icalo++)
e395081d 1418 {
1419 AliESDCaloCluster *clus = (AliESDCaloCluster*) (caloClus->At(icalo));
75e10d6a 1420
e395081d 1421 if(!clus->IsEMCAL()) continue;
1422
ec77a234 1423 if(!fRecoUtils->IsGoodCluster(clus,fGeometry,InputEvent()->GetEMCALCells(),InputEvent()->GetBunchCrossNumber()))
1424 {
e395081d 1425 continue;
75e10d6a 1426 }
e395081d 1427
0d896539 1428 if(clus->GetNCells() < 2) continue ; // Avoid 1 cell clusters, noisy, exotic.
e395081d 1429
ec77a234 1430 clus->GetMomentum(mom, vertex);
1431
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);
1439 ieta/=2;
1440 iphi/=2;
1441
1442 if(ieta > fgkFALTROCols || iphi > fgkFALTRORows ) {
1443 printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Wrong Position (x,y) = (%d,%d)\n",ieta,iphi);
1444 }
1445
1446 e = clus->E();
1447 eta = mom.Eta();
1448 phi = mom.Phi();
1449
1450 if(e > emax)
1451 {
1452 emax = e;
1453 etamax = eta;
1454 phimax = phi;
1455 ietamax = ieta;
1456 iphimax = iphi;
1457 }
1458
1459 if( bMB )
1460 {
1461 fhClusMB ->Fill(e);
1462 fhClusCenMB ->Fill(e,centrality);
1463 fhClusV0MB ->Fill(e,v0A+v0C);
1464 fhClusEtaMB ->Fill(e,eta);
1465 fhClusPhiMB ->Fill(e,phi);
1466 if(e > etaphiEnMin)
1467 {
1468 fhClusEtaPhiHighMB ->Fill( eta, phi);
1469 fhClusEtaPhiHighCellMaxMB ->Fill(ieta,iphi);
1470 }
1471 else {
1472 fhClusEtaPhiLowMB ->Fill( eta, phi);
1473 fhClusEtaPhiLowCellMaxMB ->Fill(ieta,iphi);
1474 }
1475 }
1476
1477 if( bL0 ) {
1478 fhClusL0 ->Fill(e);
1479 fhClusCenL0 ->Fill(e,centrality);
1480 fhClusV0L0 ->Fill(e,v0A+v0C);
1481 fhClusEtaL0 ->Fill(e,eta);
1482 fhClusPhiL0 ->Fill(e,phi);
1483 if(e > etaphiEnMin)
1484 {
1485 fhClusEtaPhiHighL0 ->Fill( eta, phi);
1486 fhClusEtaPhiHighCellMaxL0 ->Fill(ieta,iphi);
1487 }
1488 else {
1489 fhClusEtaPhiLowL0 ->Fill( eta, phi);
1490 fhClusEtaPhiLowCellMaxL0 ->Fill(ieta,iphi);
1491 }
1492 }
e395081d 1493
ec77a234 1494 if( bL1G ) {
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);
1500 if(e > etaphiEnMin)
1501 {
1502 fhClusEtaPhiHighL1G ->Fill( eta, phi);
1503 fhClusEtaPhiHighCellMaxL1G ->Fill(ieta,iphi);
1504 }
1505 else {
1506 fhClusEtaPhiLowL1G ->Fill( eta, phi);
1507 fhClusEtaPhiLowCellMaxL1G ->Fill(ieta,iphi);
1508 }
1509 }
0d896539 1510
ec77a234 1511 if( bL1J ) {
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);
1517 if(e > etaphiEnMin)
1518 {
1519 fhClusEtaPhiHighL1J ->Fill( eta, phi);
1520 fhClusEtaPhiHighCellMaxL1J ->Fill(ieta,iphi);
1521 }
1522 else {
1523 fhClusEtaPhiLowL1J ->Fill( eta, phi);
1524 fhClusEtaPhiLowCellMaxL1J ->Fill(ieta,iphi);
1525 }
1526 }
e395081d 1527
ec77a234 1528 if( bL1G && !bL1J )
1529 {
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);
1535 if(e > etaphiEnMin)
1536 {
1537 fhClusEtaPhiHighL1GOnly ->Fill( eta, phi);
1538 fhClusEtaPhiHighCellMaxL1GOnly ->Fill(ieta,iphi);
1539 }
1540 else {
1541 fhClusEtaPhiLowL1GOnly ->Fill( eta, phi);
1542 fhClusEtaPhiLowCellMaxL1GOnly ->Fill(ieta,iphi);
1543 }
1544 }
1545
1546 if( bL1J && !bL1G )
1547 {
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);
1553 if(e > etaphiEnMin)
1554 {
1555 fhClusEtaPhiHighL1JOnly ->Fill( eta, phi);
1556 fhClusEtaPhiHighCellMaxL1JOnly ->Fill(ieta,iphi);
1557 }
1558 else {
1559 fhClusEtaPhiLowL1JOnly ->Fill( eta, phi);
1560 fhClusEtaPhiLowCellMaxL1JOnly ->Fill(ieta,iphi);
1561 }
1562 }
1563
1564 if( bMB && !bL1G && !bL1J && !bL0 ) fhClusMBPure ->Fill(e);
0d896539 1565
e395081d 1566 }
480b9db0 1567
0d896539 1568 // Maximum energy cluster per event histograms
bce9493b 1569
ec77a234 1570 if( bMB )
1571 {
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)
1578 {
1579 fhClusEtaPhiHighCluMaxMB ->Fill( etamax, phimax);
1580 fhClusEtaPhiHighCellMaxCluMaxMB ->Fill(ietamax,iphimax);
1581 }
1582 else {
1583 fhClusEtaPhiLowCluMaxMB ->Fill( etamax, phimax);
1584 fhClusEtaPhiLowCellMaxCluMaxMB ->Fill(ietamax,iphimax);
1585 }
1586 }
85196c29 1587
ec77a234 1588 if( bL0 ) {
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)
1595 {
1596 fhClusEtaPhiHighCluMaxL0 ->Fill( etamax, phimax);
1597 fhClusEtaPhiHighCellMaxCluMaxL0 ->Fill(ietamax,iphimax);
1598 }
1599 else {
1600 fhClusEtaPhiLowCluMaxL0 ->Fill( etamax, phimax);
1601 fhClusEtaPhiLowCellMaxCluMaxL0 ->Fill(ietamax,iphimax);
1602 }
1603 }
85196c29 1604
ec77a234 1605 if( bL1G ) {
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)
1612 {
1613 fhClusEtaPhiHighCluMaxL1G ->Fill( etamax, phimax);
1614 fhClusEtaPhiHighCellMaxCluMaxL1G ->Fill(ietamax,iphimax);
1615 }
1616 else {
1617 fhClusEtaPhiLowCluMaxL1G ->Fill( etamax, phimax);
1618 fhClusEtaPhiLowCellMaxCluMaxL1G ->Fill(ietamax,iphimax);
1619 }
1620 }
1621
1622 if( bL1J ) {
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)
1629 {
1630 fhClusEtaPhiHighCluMaxL1J ->Fill( etamax, phimax);
1631 fhClusEtaPhiHighCellMaxCluMaxL1J ->Fill(ietamax,iphimax);
1632 }
1633 else {
1634 fhClusEtaPhiLowCluMaxL1J ->Fill( etamax, phimax);
1635 fhClusEtaPhiLowCellMaxCluMaxL1J ->Fill(ietamax,iphimax);
1636 }
1637 }
1638
1639 if( bL1G && !bL1J )
1640 {
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)
1647 {
1648 fhClusEtaPhiHighCluMaxL1GOnly ->Fill( etamax, phimax);
1649 fhClusEtaPhiHighCellMaxCluMaxL1GOnly ->Fill(ietamax,iphimax);
1650 }
1651 else {
1652 fhClusEtaPhiLowCluMaxL1GOnly ->Fill( etamax, phimax);
1653 fhClusEtaPhiLowCellMaxCluMaxL1GOnly ->Fill(ietamax,iphimax);
1654 }
1655 }
1656
1657 if( bL1J && !bL1G )
1658 {
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)
1665 {
1666 fhClusEtaPhiHighCluMaxL1JOnly ->Fill( etamax, phimax);
1667 fhClusEtaPhiHighCellMaxCluMaxL1JOnly ->Fill(ietamax,iphimax);
1668 }
1669 else {
1670 fhClusEtaPhiLowCluMaxL1JOnly ->Fill( etamax, phimax);
1671 fhClusEtaPhiLowCellMaxCluMaxL1JOnly ->Fill(ietamax,iphimax);
1672 }
1673 }
1674
1675 if( bMB && !bL1G && !bL1J && !bL0 ) fhClusMaxMBPure ->Fill(emax);
0d896539 1676
1677 PostData(1, fOutputList);
85196c29 1678
1679}