]>
Commit | Line | Data |
---|---|---|
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" |
2b4e1cc5 | 40 | #include "AliOADBContainer.h" |
bce9493b | 41 | |
42 | #include "AliAnalysisTaskEMCALTriggerQA.h" | |
43 | ||
44 | ClassImp(AliAnalysisTaskEMCALTriggerQA) | |
45 | ||
85196c29 | 46 | //______________________________________________________________ |
bce9493b | 47 | AliAnalysisTaskEMCALTriggerQA::AliAnalysisTaskEMCALTriggerQA() : |
48 | AliAnalysisTaskSE(), | |
ec77a234 | 49 | fOutputList(0), fRecoUtils(0x0), |
2b4e1cc5 | 50 | fGeoSet(0), fGeometry(0), fGeoName(""), |
51 | fOADBSet(kFALSE), fAccessOADB(kTRUE), fOADBFilePath(""), | |
ec77a234 | 52 | fhNEvents(0), fhFORAmp(0), |
53 | fhFORAmpL1G(0), fhFORAmpL1J(0), | |
54 | fhL0Amp(0), fhL0AmpL1G(0), fhL0AmpL1J(0), | |
55 | fhL1Amp(0), fhL1GAmp(0), fhL1JAmp(0), | |
56 | fhL0Patch(0), fhL1GPatch(0), fhL1JPatch(0), | |
57 | fhFEESTU(0), fhTRUSTU(0), fhV0STU(0), | |
58 | fhGPMaxVV0TT(0), fhJPMaxVV0TT(0), | |
59 | fhFORMeanAmp(0), fhL0MeanAmp(0), fhL1MeanAmp(0), | |
60 | fhV0MB(0), fhV0L1G(0), fhV0L1J(0), | |
61 | fhL1GPatchMax(0), fhL1JPatchMax(0), | |
62 | ||
63 | fhClusMB(0), fhClusMBPure(0), fhClusL0(0), | |
64 | fhClusL1G(0), fhClusL1J(0), | |
65 | fhClusL1GOnly(0), fhClusL1JOnly(0), | |
66 | fhClusMaxMB(0), fhClusMaxMBPure(0), fhClusMaxL0(0), | |
67 | fhClusMaxL1G(0), fhClusMaxL1J(0), | |
68 | fhClusMaxL1GOnly(0), fhClusMaxL1JOnly(0), | |
69 | ||
70 | fhClusCenMB(0), fhClusCenL0(0), | |
71 | fhClusCenL1G(0), fhClusCenL1J(0), | |
72 | fhClusCenL1GOnly(0), fhClusCenL1JOnly(0), | |
73 | fhClusCenMaxMB(0), fhClusCenMaxL0(0), | |
74 | fhClusCenMaxL1G(0), fhClusCenMaxL1J(0), | |
75 | fhClusCenMaxL1GOnly(0), fhClusCenMaxL1JOnly(0), | |
76 | ||
77 | fhClusV0MB(0), fhClusV0L0(0), | |
78 | fhClusV0L1G(0), fhClusV0L1J(0), | |
79 | fhClusV0L1GOnly(0), fhClusV0L1JOnly(0), | |
80 | fhClusV0MaxMB(0), fhClusV0MaxL0(0), | |
81 | fhClusV0MaxL1G(0), fhClusV0MaxL1J(0), | |
82 | fhClusV0MaxL1GOnly(0), fhClusV0MaxL1JOnly(0), | |
83 | ||
84 | fhClusEtaMB(0), fhClusEtaL0(0), | |
85 | fhClusEtaL1G(0), fhClusEtaL1J(0), | |
86 | fhClusEtaL1GOnly(0), fhClusEtaL1JOnly(0), | |
87 | fhClusEtaMaxMB(0), fhClusEtaMaxL0(0), | |
88 | fhClusEtaMaxL1G(0), fhClusEtaMaxL1J(0), | |
89 | fhClusEtaMaxL1GOnly(0), fhClusEtaMaxL1JOnly(0), | |
90 | ||
91 | fhClusPhiMB(0), fhClusPhiL0(0), | |
92 | fhClusPhiL1G(0), fhClusPhiL1J(0), | |
93 | fhClusPhiL1GOnly(0), fhClusPhiL1JOnly(0), | |
94 | fhClusPhiMaxMB(0), fhClusPhiMaxL0(0), | |
95 | fhClusPhiMaxL1G(0), fhClusPhiMaxL1J(0), | |
96 | fhClusPhiMaxL1GOnly(0), fhClusPhiMaxL1JOnly(0), | |
97 | ||
98 | fhClusEtaPhiHighMB(0), fhClusEtaPhiHighL0(0), | |
99 | fhClusEtaPhiHighL1G(0), fhClusEtaPhiHighL1J(0), | |
100 | fhClusEtaPhiHighL1GOnly(0), fhClusEtaPhiHighL1JOnly(0), | |
101 | fhClusEtaPhiHighCluMaxMB(0), fhClusEtaPhiHighCluMaxL0(0), | |
102 | fhClusEtaPhiHighCluMaxL1G(0), fhClusEtaPhiHighCluMaxL1J(0), | |
103 | fhClusEtaPhiHighCluMaxL1GOnly(0), fhClusEtaPhiHighCluMaxL1JOnly(0), | |
104 | ||
105 | fhClusEtaPhiHighCellMaxMB(0), fhClusEtaPhiHighCellMaxL0(0), | |
106 | fhClusEtaPhiHighCellMaxL1G(0), fhClusEtaPhiHighCellMaxL1J(0), | |
107 | fhClusEtaPhiHighCellMaxL1GOnly(0), fhClusEtaPhiHighCellMaxL1JOnly(0), | |
108 | fhClusEtaPhiHighCellMaxCluMaxMB(0), fhClusEtaPhiHighCellMaxCluMaxL0(0), | |
109 | fhClusEtaPhiHighCellMaxCluMaxL1G(0), fhClusEtaPhiHighCellMaxCluMaxL1J(0), | |
110 | fhClusEtaPhiHighCellMaxCluMaxL1GOnly(0), fhClusEtaPhiHighCellMaxCluMaxL1JOnly(0), | |
111 | ||
112 | fhClusEtaPhiLowMB(0), fhClusEtaPhiLowL0(0), | |
113 | fhClusEtaPhiLowL1G(0), fhClusEtaPhiLowL1J(0), | |
114 | fhClusEtaPhiLowL1GOnly(0), fhClusEtaPhiLowL1JOnly(0), | |
115 | fhClusEtaPhiLowCluMaxMB(0), fhClusEtaPhiLowCluMaxL0(0), | |
116 | fhClusEtaPhiLowCluMaxL1G(0), fhClusEtaPhiLowCluMaxL1J(0), | |
117 | fhClusEtaPhiLowCluMaxL1GOnly(0), fhClusEtaPhiLowCluMaxL1JOnly(0), | |
118 | ||
119 | fhClusEtaPhiLowCellMaxMB(0), fhClusEtaPhiLowCellMaxL0(0), | |
120 | fhClusEtaPhiLowCellMaxL1G(0), fhClusEtaPhiLowCellMaxL1J(0), | |
121 | fhClusEtaPhiLowCellMaxL1GOnly(0), fhClusEtaPhiLowCellMaxL1JOnly(0), | |
122 | fhClusEtaPhiLowCellMaxCluMaxMB(0), fhClusEtaPhiLowCellMaxCluMaxL0(0), | |
123 | fhClusEtaPhiLowCellMaxCluMaxL1G(0), fhClusEtaPhiLowCellMaxCluMaxL1J(0), | |
124 | fhClusEtaPhiLowCellMaxCluMaxL1GOnly(0), fhClusEtaPhiLowCellMaxCluMaxL1JOnly(0), | |
125 | ||
126 | //Histogram settings | |
127 | fNBinsSTUSignal (2000), fMaxSTUSignal (200000), | |
128 | fNBinsTRUSignal (2000), fMaxTRUSignal (200000), | |
129 | fNBinsV0Signal (5000), fMaxV0Signal (100000), | |
130 | fNBinsSTUFEERatio(1000), fMaxSTUFEERatio(100), | |
131 | fNBinsSTUTRURatio(1000), fMaxSTUTRURatio(100), | |
132 | fNBinsClusterE (500), fMaxClusterE (200) | |
bce9493b | 133 | |
134 | { | |
135 | // Constructor | |
2b4e1cc5 | 136 | |
ec77a234 | 137 | DefineOutput(1, TList::Class()); |
138 | ||
bce9493b | 139 | } |
140 | ||
85196c29 | 141 | //______________________________________________________________________________ |
bce9493b | 142 | AliAnalysisTaskEMCALTriggerQA::AliAnalysisTaskEMCALTriggerQA(const char *name) : |
143 | AliAnalysisTaskSE(name), | |
ec77a234 | 144 | fOutputList(0), fRecoUtils(0x0), |
2b4e1cc5 | 145 | fGeoSet(0), fGeometry(0), fGeoName(""), |
146 | fOADBSet(kFALSE), fAccessOADB(kTRUE), fOADBFilePath(""), | |
ec77a234 | 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), | |
157 | ||
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), | |
164 | ||
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), | |
171 | ||
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), | |
178 | ||
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), | |
185 | ||
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), | |
192 | ||
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), | |
199 | ||
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), | |
206 | ||
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), | |
213 | ||
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), | |
220 | ||
221 | //Histogram settings | |
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) | |
228 | ||
bce9493b | 229 | { |
230 | // Constructor | |
2b4e1cc5 | 231 | |
232 | DefineOutput(1, TList::Class()); | |
bce9493b | 233 | |
2b4e1cc5 | 234 | } |
235 | ||
236 | ||
237 | //______________________________________________ | |
238 | void AliAnalysisTaskEMCALTriggerQA::AccessOADB() | |
239 | { | |
240 | // Set the AODB bad channels at least once | |
ec77a234 | 241 | |
2b4e1cc5 | 242 | //Set it only once |
243 | if(fOADBSet) return ; | |
66bdaa44 | 244 | |
2b4e1cc5 | 245 | if(fOADBFilePath == "") fOADBFilePath = "$ALICE_ROOT/OADB/EMCAL" ; |
246 | ||
247 | Int_t runnumber = InputEvent()->GetRunNumber() ; | |
248 | ||
249 | if(DebugLevel() > 0) | |
250 | printf("AliAnalysisTaskEMCALClusterize::SetOADBParameters() - Get AODB parameters from EMCAL in %s for run %d\n",fOADBFilePath.Data(),runnumber); | |
251 | ||
252 | Int_t nSM = fGeometry->GetNumberOfSuperModules(); | |
253 | ||
254 | // Bad map | |
255 | if(fRecoUtils->IsBadChannelsRemovalSwitchedOn()) | |
256 | { | |
257 | AliOADBContainer *contBC=new AliOADBContainer(""); | |
258 | contBC->InitFromFile(Form("%s/EMCALBadChannels.root",fOADBFilePath.Data()),"AliEMCALBadChannels"); | |
259 | ||
260 | TObjArray *arrayBC=(TObjArray*)contBC->GetObject(runnumber); | |
261 | ||
262 | if(arrayBC) | |
263 | { | |
264 | if(DebugLevel() > 0) | |
265 | printf("AliAnalysisTaskEMCALClusterize::SetOADBParameters() - Remove EMCAL bad cells \n"); | |
266 | ||
267 | for (Int_t i=0; i<nSM; ++i) | |
268 | { | |
269 | TH2I *hbm = fRecoUtils->GetEMCALChannelStatusMap(i); | |
270 | ||
271 | if (hbm) | |
272 | delete hbm; | |
273 | ||
274 | hbm=(TH2I*)arrayBC->FindObject(Form("EMCALBadChannelMap_Mod%d",i)); | |
275 | ||
276 | if (!hbm) | |
277 | { | |
278 | AliError(Form("Can not get EMCALBadChannelMap_Mod%d",i)); | |
279 | continue; | |
280 | } | |
281 | ||
282 | hbm->SetDirectory(0); | |
283 | fRecoUtils->SetEMCALChannelStatusMap(i,hbm); | |
284 | ||
285 | } // loop | |
286 | } else if(DebugLevel() > 0) | |
287 | printf("AliAnalysisTaskEMCALClusterize::SetOADBParameters() - Do NOT remove EMCAL bad channels\n"); // run array | |
288 | } // Remove bad | |
66bdaa44 | 289 | |
290 | fOADBSet = kTRUE; | |
291 | ||
2b4e1cc5 | 292 | } |
293 | ||
294 | //_________________________________________ | |
295 | void AliAnalysisTaskEMCALTriggerQA::Init() | |
296 | { | |
297 | //Init analysis parameters not set before | |
298 | ||
299 | ||
300 | if(!fRecoUtils) | |
301 | { | |
302 | fRecoUtils = new AliEMCALRecoUtils ; | |
303 | fRecoUtils->SwitchOnBadChannelsRemoval(); | |
304 | } | |
305 | ||
306 | } | |
307 | ||
308 | //_________________________________________________ | |
309 | void AliAnalysisTaskEMCALTriggerQA::InitGeometry() | |
310 | { | |
311 | // Init geometry and set the geometry matrix, for the first event, skip the rest | |
312 | // Also set once the run dependent calibrations | |
313 | ||
314 | if(fGeoSet) return; | |
315 | ||
316 | Int_t runnumber = InputEvent()->GetRunNumber() ; | |
317 | ||
318 | if (!fGeometry) | |
319 | { | |
320 | if(fGeoName=="") | |
321 | { | |
322 | if (runnumber < 140000) fGeoName = "EMCAL_FIRSTYEARV1"; | |
323 | else if(runnumber < 171000) fGeoName = "EMCAL_COMPLETEV1"; | |
324 | else fGeoName = "EMCAL_COMPLETE12SMV1"; | |
325 | if(DebugLevel() > 0) | |
326 | printf("AliAnalysisTaskEMCALTriggerQA::InitGeometry() - Set EMCAL geometry name to <%s> for run %d\n",fGeoName.Data(),runnumber); | |
327 | } | |
328 | ||
329 | fGeometry = AliEMCALGeometry::GetInstance(fGeoName); | |
330 | } | |
bce9493b | 331 | |
66bdaa44 | 332 | fGeoSet = kTRUE; |
333 | ||
bce9493b | 334 | } |
335 | ||
336 | ||
85196c29 | 337 | //___________________________________________________________ |
bce9493b | 338 | void AliAnalysisTaskEMCALTriggerQA::UserCreateOutputObjects() |
339 | { | |
340 | // Init histograms and geometry | |
2b4e1cc5 | 341 | |
85196c29 | 342 | fOutputList = new TList; |
343 | fOutputList ->SetOwner(kTRUE); | |
bce9493b | 344 | |
0d896539 | 345 | fhNEvents = new TH1F("hNEvents","Number of selected events",12,0,12); |
85196c29 | 346 | fhNEvents ->SetYTitle("N events"); |
77626b4a | 347 | fhNEvents ->GetXaxis()->SetBinLabel(1 ,"All"); |
0d896539 | 348 | fhNEvents ->GetXaxis()->SetBinLabel(2 ,"MB"); |
77626b4a | 349 | fhNEvents ->GetXaxis()->SetBinLabel(3 ,"L0"); |
350 | fhNEvents ->GetXaxis()->SetBinLabel(4 ,"L1-G"); | |
351 | fhNEvents ->GetXaxis()->SetBinLabel(5 ,"L1-J"); | |
0d896539 | 352 | fhNEvents ->GetXaxis()->SetBinLabel(6 ,"L1-G & !L1-J"); |
353 | fhNEvents ->GetXaxis()->SetBinLabel(7 ,"L1-J & !L1-G"); | |
354 | fhNEvents ->GetXaxis()->SetBinLabel(8 ,"L1-J & L1-G"); | |
355 | fhNEvents ->GetXaxis()->SetBinLabel(9 ,"MB & !L1 & !L0"); | |
356 | fhNEvents ->GetXaxis()->SetBinLabel(10,"L0 & !MB"); | |
357 | fhNEvents ->GetXaxis()->SetBinLabel(11,"L1-G & !MB"); | |
358 | fhNEvents ->GetXaxis()->SetBinLabel(12,"L1-J & !MB"); | |
359 | ||
bce9493b | 360 | |
75e10d6a | 361 | fhFORAmp = new TH2F("hFORAmp", "FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column", |
362 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
363 | fhFORAmp ->SetXTitle("Index #eta (columnns)"); | |
e022364d | 364 | fhFORAmp ->SetYTitle("Index #phi (rows)"); |
365 | fhFORAmp ->SetZTitle("Amplitude"); | |
e395081d | 366 | |
75e10d6a | 367 | fhFORAmpL1G = new TH2F("hFORAmpL1G", "FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1G trigger condition", |
368 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
369 | fhFORAmpL1G ->SetXTitle("Index #eta (columnns)"); | |
a40222c8 | 370 | fhFORAmpL1G ->SetYTitle("Index #phi (rows)"); |
371 | fhFORAmpL1G ->SetZTitle("Amplitude"); | |
e395081d | 372 | |
75e10d6a | 373 | fhFORAmpL1J = new TH2F("hFORAmpL1J", "FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1J trigger condition", |
374 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
375 | fhFORAmpL1J ->SetXTitle("Index #eta (columnns)"); | |
a40222c8 | 376 | fhFORAmpL1J ->SetYTitle("Index #phi (rows)"); |
377 | fhFORAmpL1J ->SetZTitle("Amplitude"); | |
aff917ac | 378 | |
75e10d6a | 379 | fhL0Amp = new TH2F("hL0Amp","FALTRO signal per Row and Column", |
380 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
381 | fhL0Amp ->SetXTitle("Index #eta (columnns)"); | |
e022364d | 382 | fhL0Amp ->SetYTitle("Index #phi (rows)"); |
383 | fhL0Amp ->SetZTitle("Amplitude"); | |
e395081d | 384 | |
75e10d6a | 385 | fhL0AmpL1G = new TH2F("hL0AmpL1G","FALTRO signal per Row and Column, with L1G trigger condition", |
386 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
387 | fhL0AmpL1G ->SetXTitle("Index #eta (columnns)"); | |
a40222c8 | 388 | fhL0AmpL1G ->SetYTitle("Index #phi (rows)"); |
389 | fhL0AmpL1G ->SetZTitle("Amplitude"); | |
e395081d | 390 | |
75e10d6a | 391 | fhL0AmpL1J = new TH2F("hL0AmpL1J","FALTRO signal per Row and Column, with L1j trigger condition", |
392 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
393 | fhL0AmpL1J ->SetXTitle("Index #eta (columnns)"); | |
a40222c8 | 394 | fhL0AmpL1J ->SetYTitle("Index #phi (rows)"); |
395 | fhL0AmpL1J ->SetZTitle("Amplitude"); | |
aff917ac | 396 | |
75e10d6a | 397 | fhL1Amp = new TH2F("hL1Amp","STU signal per Row and Column", |
398 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
399 | fhL1Amp ->SetXTitle("Index #eta (columnns)"); | |
aff917ac | 400 | fhL1Amp ->SetYTitle("Index #phi (rows)"); |
401 | fhL1Amp ->SetZTitle("Amplitude"); | |
402 | ||
75e10d6a | 403 | fhL1GAmp = new TH2F("hL1GAmp","STU signal per Row and Column for L1 Gamma", |
404 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
405 | fhL1GAmp ->SetXTitle("Index #eta (columnns)"); | |
e022364d | 406 | fhL1GAmp ->SetYTitle("Index #phi (rows)"); |
407 | fhL1GAmp ->SetZTitle("Amplitude"); | |
aff917ac | 408 | |
75e10d6a | 409 | fhL1JAmp = new TH2F("hL1JAmp","STU signal per Row and Column for L1 Jet", |
77626b4a | 410 | fgkFALTROCols/4,0,fgkFALTROCols,fgkFALTRORows/4,0,fgkFALTRORows); |
75e10d6a | 411 | fhL1JAmp ->SetXTitle("Index #eta (columnns)"); |
e022364d | 412 | fhL1JAmp ->SetYTitle("Index #phi (rows)"); |
413 | fhL1JAmp ->SetZTitle("Amplitude"); | |
aff917ac | 414 | |
75e10d6a | 415 | fhL0Patch = new TH2F("hL0Patch","FOR with associated L0 Patch", |
416 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
417 | fhL0Patch ->SetXTitle("Index #eta (columnns)"); | |
85196c29 | 418 | fhL0Patch ->SetYTitle("Index #phi (rows)"); |
e022364d | 419 | fhL0Patch ->SetZTitle("counts"); |
aff917ac | 420 | |
75e10d6a | 421 | fhL1GPatch = new TH2F("hL1GPatch","FOR with associated L1 Gamma Patch", |
422 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
423 | fhL1GPatch ->SetXTitle("Index #eta (columnns)"); | |
85196c29 | 424 | fhL1GPatch ->SetYTitle("Index #phi (rows)"); |
e022364d | 425 | fhL1GPatch ->SetZTitle("counts"); |
aff917ac | 426 | |
75e10d6a | 427 | fhL1JPatch = new TH2F("hL1JPatch","FOR with associated L1 Jet Patch", |
77626b4a | 428 | fgkFALTROCols/4,0,fgkFALTROCols,fgkFALTRORows/4,0,fgkFALTRORows); |
75e10d6a | 429 | fhL1JPatch ->SetXTitle("Index #eta (columnns)"); |
85196c29 | 430 | fhL1JPatch ->SetYTitle("Index #phi (rows)"); |
e022364d | 431 | fhL1JPatch ->SetZTitle("counts"); |
aff917ac | 432 | |
75e10d6a | 433 | fhV0STU = new TH2I("hV0STU","Total signal STU vs V0C+V0S", |
434 | fNBinsV0Signal,0,fMaxV0Signal,fNBinsSTUSignal,0,fMaxSTUSignal); | |
85196c29 | 435 | fhV0STU ->SetXTitle("Signal V0C+V0A"); |
436 | fhV0STU ->SetYTitle("Total signal STU"); | |
e022364d | 437 | fhV0STU ->SetZTitle("counts"); |
aff917ac | 438 | |
480b9db0 | 439 | |
85196c29 | 440 | fhFEESTU = new TH2F("hFEESTU","STU / FEE vs channel", fNBinsSTUFEERatio,0,fMaxSTUFEERatio,30,0,30); |
441 | fhFEESTU ->SetXTitle("STU/FEE signal"); | |
442 | fhFEESTU ->SetYTitle("channel"); | |
e022364d | 443 | fhFEESTU ->SetZTitle("counts"); |
aff917ac | 444 | |
85196c29 | 445 | fhTRUSTU = new TH2F("hTRUSTU","STU / TRU vs channel", fNBinsSTUTRURatio,0,fMaxSTUTRURatio,30,0,30); |
446 | fhTRUSTU ->SetXTitle("STU/TRU signal"); | |
447 | fhTRUSTU ->SetYTitle("channel"); | |
e022364d | 448 | fhTRUSTU ->SetZTitle("counts"); |
aff917ac | 449 | |
0d896539 | 450 | fhGPMaxVV0TT = new TH2F("hGPMaxVV0TT","Maximum patch of L1-Gamma vs V0 signal in STU",fNBinsV0Signal,0,fMaxV0Signal,1000,0,1000); |
451 | fhGPMaxVV0TT ->SetXTitle("V0 from STU"); | |
faa45c63 | 452 | fhGPMaxVV0TT ->SetYTitle("Patch Max"); |
4ee53435 | 453 | |
0d896539 | 454 | fhJPMaxVV0TT = new TH2F("hJPMaxVV0TT","Maximum patch of L1-Jet vs V0 signal in STU",fNBinsV0Signal,0,fMaxV0Signal,1000,0,1000); |
455 | fhJPMaxVV0TT ->SetXTitle("V0 from STU"); | |
faa45c63 | 456 | fhJPMaxVV0TT ->SetYTitle("Patch Max"); |
ec77a234 | 457 | |
0d896539 | 458 | fhFORMeanAmp = new TProfile2D("hFORMeanAmp", "Mean FastOR(FEE) signal per Row and Column", fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); |
459 | fhFORMeanAmp->SetXTitle("Index #eta"); | |
460 | fhFORMeanAmp->SetYTitle("Index #phi"); | |
461 | ||
462 | fhL0MeanAmp = new TProfile2D("hL0MeanAmp", "Mean FastOR(TRU) signal per Row and Column", fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); | |
463 | fhL0MeanAmp->SetXTitle("Index #eta"); | |
464 | fhL0MeanAmp->SetYTitle("Index #phi"); | |
4ee53435 | 465 | |
0d896539 | 466 | fhL1MeanAmp = new TProfile2D("hL1MeanAmp", "Mean FastOR(STU) signal per Row and Column", fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); |
467 | fhL1MeanAmp->SetXTitle("Index #eta"); | |
468 | fhL1MeanAmp->SetYTitle("Index #phi"); | |
ec77a234 | 469 | |
0d896539 | 470 | fhV0MB = new TH1F("hV0MB","V0 distribution for MB triggered event",fNBinsV0Signal,0,fMaxV0Signal); |
471 | fhV0MB->SetXTitle("V0"); | |
ec77a234 | 472 | |
0d896539 | 473 | fhV0L1G = new TH1F("hV0L1G","V0 distribution for L1G triggered event",fNBinsV0Signal,0,fMaxV0Signal); |
474 | fhV0L1G->SetXTitle("V0"); | |
ec77a234 | 475 | |
0d896539 | 476 | fhV0L1J = new TH1F("hV0L1J","V0 distribution for L1J triggered event",fNBinsV0Signal,0,fMaxV0Signal); |
477 | fhV0L1J->SetXTitle("V0"); | |
ec77a234 | 478 | |
0d896539 | 479 | fhL1GPatchMax = new TH2F("hL1GPatchMax","FOR of max amplitude patch with associated L1 Gamma Patch", |
ec77a234 | 480 | fgkFALTROCols,0,fgkFALTROCols,fgkFALTRORows,0,fgkFALTRORows); |
0d896539 | 481 | fhL1GPatchMax ->SetXTitle("Index #eta (columnns)"); |
482 | fhL1GPatchMax ->SetYTitle("Index #phi (rows)"); | |
483 | fhL1GPatchMax ->SetZTitle("counts"); | |
484 | ||
485 | fhL1JPatchMax = new TH2F("hL1JPatchMax","FOR of max amplitude patch with associated L1 Jet Patch", | |
ec77a234 | 486 | fgkFALTROCols/4,0,fgkFALTROCols,fgkFALTRORows/4,0,fgkFALTRORows); |
0d896539 | 487 | fhL1JPatchMax ->SetXTitle("Index #eta (columnns)"); |
488 | fhL1JPatchMax ->SetYTitle("Index #phi (rows)"); | |
489 | fhL1JPatchMax ->SetZTitle("counts"); | |
490 | ||
bce9493b | 491 | fOutputList->Add(fhNEvents); |
492 | fOutputList->Add(fhV0STU); | |
e022364d | 493 | fOutputList->Add(fhFORAmp); |
a40222c8 | 494 | fOutputList->Add(fhFORAmpL1G); |
495 | fOutputList->Add(fhFORAmpL1J); | |
e022364d | 496 | fOutputList->Add(fhL0Amp); |
a40222c8 | 497 | fOutputList->Add(fhL0AmpL1G); |
498 | fOutputList->Add(fhL0AmpL1J); | |
aff917ac | 499 | fOutputList->Add(fhL1Amp); |
e022364d | 500 | fOutputList->Add(fhL1GAmp); |
501 | fOutputList->Add(fhL1JAmp); | |
bce9493b | 502 | fOutputList->Add(fhL0Patch); |
503 | fOutputList->Add(fhL1GPatch); | |
504 | fOutputList->Add(fhL1JPatch); | |
ec77a234 | 505 | fOutputList->Add(fhFEESTU); |
506 | fOutputList->Add(fhTRUSTU); | |
507 | ||
508 | fOutputList->Add(fhGPMaxVV0TT); | |
509 | fOutputList->Add(fhJPMaxVV0TT); | |
510 | ||
511 | fOutputList->Add(fhFORMeanAmp); | |
512 | fOutputList->Add(fhL0MeanAmp); | |
513 | fOutputList->Add(fhL1MeanAmp); | |
514 | ||
515 | fOutputList->Add(fhV0MB ); | |
516 | fOutputList->Add(fhV0L1G); | |
517 | fOutputList->Add(fhV0L1J); | |
518 | ||
519 | fOutputList->Add(fhL1GPatchMax); | |
520 | fOutputList->Add(fhL1JPatchMax); | |
521 | ||
522 | // Cluster histograms, E | |
523 | ||
524 | fhClusMB = new TH1F("hClusMB","clusters E distribution for MB trigger",fNBinsClusterE,0,fMaxClusterE); | |
525 | fhClusMB ->SetXTitle("Energy (GeV)"); | |
526 | ||
527 | fhClusMBPure = new TH1F("hClusMBPure","clusters E distribution for MB trigger, no other EMCAL trigger on",fNBinsClusterE,0,fMaxClusterE); | |
528 | fhClusMBPure ->SetXTitle("Energy (GeV)"); | |
529 | ||
530 | fhClusL0 = new TH1F("hClusL0","clusters E distribution for L0 trigger",fNBinsClusterE,0,fMaxClusterE); | |
531 | fhClusL0 ->SetXTitle("Energy (GeV)"); | |
532 | ||
533 | fhClusL1G = new TH1F("hClusL1G","clusters E distribution for L1G trigger",fNBinsClusterE,0,fMaxClusterE); | |
534 | fhClusL1G ->SetXTitle("Energy (GeV)"); | |
535 | ||
536 | fhClusL1J = new TH1F("hClusL1J","clusters E distribution for L1J trigger",fNBinsClusterE,0,fMaxClusterE); | |
537 | fhClusL1J ->SetXTitle("Energy (GeV)"); | |
538 | ||
539 | fhClusL1GOnly = new TH1F("hClusL1GOnly","clusters E distribution for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE); | |
540 | fhClusL1GOnly->SetXTitle("Energy (GeV)"); | |
541 | ||
542 | fhClusL1JOnly = new TH1F("hClusL1JOnly","clusters E distribution for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE); | |
543 | fhClusL1JOnly->SetXTitle("Energy (GeV)"); | |
544 | ||
545 | fhClusMaxMB = new TH1F("hClusMaxMB","maximum energy cluster per event for MB trigger",fNBinsClusterE,0,fMaxClusterE); | |
546 | fhClusMaxMB ->SetXTitle("Energy (GeV)"); | |
547 | ||
548 | fhClusMaxMBPure = new TH1F("hClusMaxMBPure","maximum energy cluster per event for MB trigger, no other EMCAL trigger on",fNBinsClusterE,0,fMaxClusterE); | |
549 | fhClusMaxMBPure ->SetXTitle("Energy (GeV)"); | |
550 | ||
551 | fhClusMaxL0 = new TH1F("hClusMaxL0","maximum energy cluster per event for L0 trigger",fNBinsClusterE,0,fMaxClusterE); | |
552 | fhClusMaxL0 ->SetXTitle("Energy (GeV)"); | |
553 | ||
554 | fhClusMaxL1G = new TH1F("hClusMaxL1G","maximum energy cluster per event for L1G trigger",fNBinsClusterE,0,fMaxClusterE); | |
555 | fhClusMaxL1G->SetXTitle("Energy (GeV)"); | |
556 | ||
557 | fhClusMaxL1J = new TH1F("hClusMaxL1J","maximum energy cluster per event for L1J trigger",fNBinsClusterE,0,fMaxClusterE); | |
558 | fhClusMaxL1J->SetXTitle("Energy (GeV)"); | |
559 | ||
560 | fhClusMaxL1GOnly = new TH1F("hClusMaxL1GOnly","maximum energy cluster per event for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE); | |
561 | fhClusMaxL1GOnly->SetXTitle("Energy (GeV)"); | |
562 | ||
563 | fhClusMaxL1JOnly = new TH1F("hClusMaxL1JOnly","maximum energy cluster per event for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE); | |
564 | fhClusMaxL1JOnly->SetXTitle("Energy (GeV)"); | |
565 | ||
480b9db0 | 566 | |
75e10d6a | 567 | fOutputList->Add(fhClusMB); |
0d896539 | 568 | fOutputList->Add(fhClusMBPure); |
75e10d6a | 569 | fOutputList->Add(fhClusL0); |
570 | fOutputList->Add(fhClusL1G); | |
571 | fOutputList->Add(fhClusL1J); | |
480b9db0 | 572 | fOutputList->Add(fhClusL1GOnly); |
573 | fOutputList->Add(fhClusL1JOnly); | |
574 | ||
575 | fOutputList->Add(fhClusMaxMB); | |
0d896539 | 576 | fOutputList->Add(fhClusMaxMBPure); |
480b9db0 | 577 | fOutputList->Add(fhClusMaxL0); |
578 | fOutputList->Add(fhClusMaxL1G); | |
579 | fOutputList->Add(fhClusMaxL1J); | |
580 | fOutputList->Add(fhClusMaxL1GOnly); | |
581 | fOutputList->Add(fhClusMaxL1JOnly); | |
582 | ||
ec77a234 | 583 | // Cluster histograms, E vs Cen |
584 | ||
585 | fhClusCenMB = new TH2F("hClusCenMB","clusters E distribution vs centrality for MB trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); | |
586 | fhClusCenMB ->SetXTitle("Energy (GeV)"); | |
587 | fhClusCenMB ->SetYTitle("Centrality"); | |
e395081d | 588 | |
ec77a234 | 589 | fhClusCenL0 = new TH2F("hClusCenL0","clusters E distribution vs centrality for L0 trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); |
590 | fhClusCenL0 ->SetXTitle("Energy (GeV)"); | |
591 | fhClusCenL0 ->SetYTitle("Centrality"); | |
0d896539 | 592 | |
ec77a234 | 593 | fhClusCenL1G = new TH2F("hClusCenL1G","clusters E distribution vs centrality for L1G trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); |
594 | fhClusCenL1G ->SetXTitle("Energy (GeV)"); | |
595 | ||
596 | fhClusCenL1J = new TH2F("hClusCenL1J","clusters E distribution vs centrality for L1J trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); | |
597 | fhClusCenL1J ->SetXTitle("Energy (GeV)"); | |
598 | fhClusCenL1J ->SetYTitle("Centrality"); | |
0d896539 | 599 | |
ec77a234 | 600 | fhClusCenL1GOnly = new TH2F("hClusCenL1GOnly","clusters E distribution vs centrality for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); |
601 | fhClusCenL1GOnly->SetXTitle("Energy (GeV)"); | |
602 | fhClusCenL1GOnly->SetYTitle("Centrality"); | |
0d896539 | 603 | |
ec77a234 | 604 | fhClusCenL1JOnly = new TH2F("hClusCenL1JOnly","clusters E distribution vs centrality for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); |
605 | fhClusCenL1JOnly->SetXTitle("Energy (GeV)"); | |
606 | fhClusCenL1JOnly->SetYTitle("Centrality"); | |
607 | ||
608 | fhClusCenMaxMB = new TH2F("hClusCenMaxMB","maximum energy cluster per event vs centrality for MB trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); | |
609 | fhClusCenMaxMB ->SetXTitle("Energy (GeV)"); | |
610 | fhClusCenMaxMB ->SetYTitle("Centrality"); | |
611 | ||
612 | fhClusCenMaxL0 = new TH2F("hClusCenMaxL0","maximum energy cluster per event vs centrality for L0 trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); | |
613 | fhClusCenMaxL0 ->SetXTitle("Energy (GeV)"); | |
614 | fhClusCenMaxL0 ->SetYTitle("Centrality"); | |
615 | ||
616 | fhClusCenMaxL1G = new TH2F("hClusCenMaxL1G","maximum energy cluster per event vs centrality for L1G trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); | |
617 | fhClusCenMaxL1G->SetXTitle("Energy (GeV)"); | |
618 | fhClusCenMaxL1G->SetYTitle("Centrality"); | |
619 | ||
620 | fhClusCenMaxL1J = new TH2F("hClusCenMaxL1J","maximum energy cluster per event vs centrality for L1J trigger",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); | |
621 | fhClusCenMaxL1J->SetXTitle("Energy (GeV)"); | |
622 | fhClusCenMaxL1J->SetYTitle("Centrality"); | |
623 | ||
624 | fhClusCenMaxL1GOnly = new TH2F("hClusCenMaxL1GOnly","maximum energy cluster per event vs centrality for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); | |
625 | fhClusCenMaxL1GOnly->SetXTitle("Energy (GeV)"); | |
626 | fhClusCenMaxL1GOnly->SetYTitle("Centrality"); | |
627 | ||
628 | fhClusCenMaxL1JOnly = new TH2F("hClusCenMaxL1JOnly","maximum energy cluster per event vs centrality for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,100, 0, 100); | |
629 | fhClusCenMaxL1JOnly->SetXTitle("Energy (GeV)"); | |
630 | fhClusCenMaxL1JOnly->SetYTitle("Centrality"); | |
631 | ||
632 | ||
633 | fOutputList->Add(fhClusCenMB); | |
634 | fOutputList->Add(fhClusCenL0); | |
635 | fOutputList->Add(fhClusCenL1G); | |
636 | fOutputList->Add(fhClusCenL1J); | |
637 | fOutputList->Add(fhClusCenL1GOnly); | |
638 | fOutputList->Add(fhClusCenL1JOnly); | |
639 | ||
640 | fOutputList->Add(fhClusCenMaxMB); | |
641 | fOutputList->Add(fhClusCenMaxL0); | |
642 | fOutputList->Add(fhClusCenMaxL1G); | |
643 | fOutputList->Add(fhClusCenMaxL1J); | |
644 | fOutputList->Add(fhClusCenMaxL1GOnly); | |
645 | fOutputList->Add(fhClusCenMaxL1JOnly); | |
646 | ||
647 | ||
648 | // Cluster histograms, E vs V0 | |
649 | ||
650 | fhClusV0MB = new TH2F("hClusV0MB","clusters E distribution vs V0 for MB trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
651 | fhClusV0MB ->SetXTitle("Energy (GeV)"); | |
652 | fhClusV0MB ->SetYTitle("V0"); | |
653 | ||
654 | fhClusV0L0 = new TH2F("hClusV0L0","clusters E distribution vs V0 for L0 trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
655 | fhClusV0L0 ->SetXTitle("Energy (GeV)"); | |
656 | fhClusV0L0 ->SetYTitle("V0"); | |
657 | ||
658 | fhClusV0L1G = new TH2F("hClusV0L1G","clusters E distribution vs V0 for L1G trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
659 | fhClusV0L1G ->SetXTitle("Energy (GeV)"); | |
660 | ||
661 | fhClusV0L1J = new TH2F("hClusV0L1J","clusters E distribution vs V0 for L1J trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
662 | fhClusV0L1J ->SetXTitle("Energy (GeV)"); | |
663 | fhClusV0L1J ->SetYTitle("V0"); | |
664 | ||
665 | fhClusV0L1GOnly = new TH2F("hClusV0L1GOnly","clusters E distribution vs V0 for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
666 | fhClusV0L1GOnly->SetXTitle("Energy (GeV)"); | |
667 | fhClusV0L1GOnly->SetYTitle("V0"); | |
668 | ||
669 | fhClusV0L1JOnly = new TH2F("hClusV0L1JOnly","clusters E distribution vs V0 for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
670 | fhClusV0L1JOnly->SetXTitle("Energy (GeV)"); | |
671 | fhClusV0L1JOnly->SetYTitle("V0"); | |
672 | ||
673 | fhClusV0MaxMB = new TH2F("hClusV0MaxMB","maximum energy cluster per event vs V0 for MB trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
674 | fhClusV0MaxMB ->SetXTitle("Energy (GeV)"); | |
675 | fhClusV0MaxMB ->SetYTitle("V0"); | |
676 | ||
677 | fhClusV0MaxL0 = new TH2F("hClusV0MaxL0","maximum energy cluster per event vs V0 for L0 trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
678 | fhClusV0MaxL0 ->SetXTitle("Energy (GeV)"); | |
679 | fhClusV0MaxL0 ->SetYTitle("V0"); | |
680 | ||
681 | fhClusV0MaxL1G = new TH2F("hClusV0MaxL1G","maximum energy cluster per event vs V0 for L1G trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
682 | fhClusV0MaxL1G->SetXTitle("Energy (GeV)"); | |
683 | fhClusV0MaxL1G->SetYTitle("V0"); | |
684 | ||
685 | fhClusV0MaxL1J = new TH2F("hClusV0MaxL1J","maximum energy cluster per event vs V0 for L1J trigger",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
686 | fhClusV0MaxL1J->SetXTitle("Energy (GeV)"); | |
687 | fhClusV0MaxL1J->SetYTitle("V0"); | |
688 | ||
689 | fhClusV0MaxL1GOnly = new TH2F("hClusV0MaxL1GOnly","maximum energy cluster per event vs V0 for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
690 | fhClusV0MaxL1GOnly->SetXTitle("Energy (GeV)"); | |
691 | fhClusV0MaxL1GOnly->SetYTitle("V0"); | |
692 | ||
693 | fhClusV0MaxL1JOnly = new TH2F("hClusV0MaxL1JOnly","maximum energy cluster per event vs V0 for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,fNBinsV0Signal,0,fMaxV0Signal); | |
694 | fhClusV0MaxL1JOnly->SetXTitle("Energy (GeV)"); | |
695 | fhClusV0MaxL1JOnly->SetYTitle("V0"); | |
696 | ||
697 | ||
698 | fOutputList->Add(fhClusV0MB); | |
699 | fOutputList->Add(fhClusV0L0); | |
700 | fOutputList->Add(fhClusV0L1G); | |
701 | fOutputList->Add(fhClusV0L1J); | |
702 | fOutputList->Add(fhClusV0L1GOnly); | |
703 | fOutputList->Add(fhClusV0L1JOnly); | |
704 | ||
705 | fOutputList->Add(fhClusV0MaxMB); | |
706 | fOutputList->Add(fhClusV0MaxL0); | |
707 | fOutputList->Add(fhClusV0MaxL1G); | |
708 | fOutputList->Add(fhClusV0MaxL1J); | |
709 | fOutputList->Add(fhClusV0MaxL1GOnly); | |
710 | fOutputList->Add(fhClusV0MaxL1JOnly); | |
711 | ||
712 | // Cluster histograms, E vs Pseudorapidity | |
713 | Float_t etamin =-0.8; | |
714 | Float_t etamax = 0.8; | |
715 | Int_t neta = 160; | |
716 | fhClusEtaMB = new TH2F("hClusEtaMB","clusters distribution vs #eta for MB trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
717 | fhClusEtaMB ->SetXTitle("Energy (GeV)"); | |
718 | fhClusEtaMB ->SetYTitle("#eta"); | |
719 | ||
720 | fhClusEtaL0 = new TH2F("hClusEtaL0","clusters distribution vs #eta for L0 trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
721 | fhClusEtaL0 ->SetXTitle("Energy (GeV)"); | |
722 | fhClusEtaL0 ->SetYTitle("#eta"); | |
723 | ||
724 | fhClusEtaL1G = new TH2F("hClusEtaL1G","clusters distribution vs #eta for L1G trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
725 | fhClusEtaL1G ->SetXTitle("Energy (GeV)"); | |
726 | ||
727 | fhClusEtaL1J = new TH2F("hClusEtaL1J","clusters distribution vs #eta for L1J trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
728 | fhClusEtaL1J ->SetXTitle("Energy (GeV)"); | |
729 | fhClusEtaL1J ->SetYTitle("#eta"); | |
730 | ||
731 | fhClusEtaL1GOnly = new TH2F("hClusEtaL1GOnly","clusters distribution vs #eta for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
732 | fhClusEtaL1GOnly->SetXTitle("Energy (GeV)"); | |
733 | fhClusEtaL1GOnly->SetYTitle("#eta"); | |
734 | ||
735 | fhClusEtaL1JOnly = new TH2F("hClusEtaL1JOnly","clusters distribution vs #eta for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
736 | fhClusEtaL1JOnly->SetXTitle("Energy (GeV)"); | |
737 | fhClusEtaL1JOnly->SetYTitle("#eta"); | |
738 | ||
739 | fhClusEtaMaxMB = new TH2F("hClusEtaMaxMB","maximum energy cluster per event vs #eta for MB trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
740 | fhClusEtaMaxMB ->SetXTitle("Energy (GeV)"); | |
741 | fhClusEtaMaxMB ->SetYTitle("#eta"); | |
742 | ||
743 | fhClusEtaMaxL0 = new TH2F("hClusEtaMaxL0","maximum energy cluster per event vs #eta for L0 trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
744 | fhClusEtaMaxL0 ->SetXTitle("Energy (GeV)"); | |
745 | fhClusEtaMaxL0 ->SetYTitle("#eta"); | |
746 | ||
747 | fhClusEtaMaxL1G = new TH2F("hClusEtaMaxL1G","maximum energy cluster per event vs #eta for L1G trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
748 | fhClusEtaMaxL1G->SetXTitle("Energy (GeV)"); | |
749 | fhClusEtaMaxL1G->SetYTitle("#eta"); | |
750 | ||
751 | fhClusEtaMaxL1J = new TH2F("hClusEtaMaxL1J","maximum energy cluster per event vs #eta for L1J trigger",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
752 | fhClusEtaMaxL1J->SetXTitle("Energy (GeV)"); | |
753 | fhClusEtaMaxL1J->SetYTitle("#eta"); | |
754 | ||
755 | fhClusEtaMaxL1GOnly = new TH2F("hClusEtaMaxL1GOnly","maximum energy cluster per event vs #eta for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
756 | fhClusEtaMaxL1GOnly->SetXTitle("Energy (GeV)"); | |
757 | fhClusEtaMaxL1GOnly->SetYTitle("#eta"); | |
758 | ||
759 | fhClusEtaMaxL1JOnly = new TH2F("hClusEtaMaxL1JOnly","maximum energy cluster per event vs #eta for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,neta, etamin, etamax); | |
760 | fhClusEtaMaxL1JOnly->SetXTitle("Energy (GeV)"); | |
761 | fhClusEtaMaxL1JOnly->SetYTitle("#eta"); | |
762 | ||
763 | ||
764 | fOutputList->Add(fhClusEtaMB); | |
765 | fOutputList->Add(fhClusEtaL0); | |
766 | fOutputList->Add(fhClusEtaL1G); | |
767 | fOutputList->Add(fhClusEtaL1J); | |
768 | fOutputList->Add(fhClusEtaL1GOnly); | |
769 | fOutputList->Add(fhClusEtaL1JOnly); | |
770 | ||
771 | fOutputList->Add(fhClusEtaMaxMB); | |
772 | fOutputList->Add(fhClusEtaMaxL0); | |
773 | fOutputList->Add(fhClusEtaMaxL1G); | |
774 | fOutputList->Add(fhClusEtaMaxL1J); | |
775 | fOutputList->Add(fhClusEtaMaxL1GOnly); | |
776 | fOutputList->Add(fhClusEtaMaxL1JOnly); | |
777 | ||
778 | ||
779 | // Cluster histograms, E vs Azimuthal angle | |
780 | Float_t phimin = 80. *TMath::DegToRad(); | |
781 | Float_t phimax = 190.*TMath::DegToRad(); | |
782 | Int_t nphi = 110; | |
783 | ||
784 | fhClusPhiMB = new TH2F("hClusPhiMB","clusters distribution vs #phi for MB trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
785 | fhClusPhiMB ->SetXTitle("Energy (GeV)"); | |
786 | fhClusPhiMB ->SetYTitle("#phi (rad)"); | |
787 | ||
788 | fhClusPhiL0 = new TH2F("hClusPhiL0","clusters distribution vs #phi for L0 trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
789 | fhClusPhiL0 ->SetXTitle("Energy (GeV)"); | |
790 | fhClusPhiL0 ->SetYTitle("#phi (rad)"); | |
791 | ||
792 | fhClusPhiL1G = new TH2F("hClusPhiL1G","clusters distribution vs #phi for L1G trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
793 | fhClusPhiL1G ->SetXTitle("Energy (GeV)"); | |
794 | ||
795 | fhClusPhiL1J = new TH2F("hClusPhiL1J","clusters distribution vs #phi for L1J trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
796 | fhClusPhiL1J ->SetXTitle("Energy (GeV)"); | |
797 | fhClusPhiL1J ->SetYTitle("#phi (rad)"); | |
798 | ||
799 | fhClusPhiL1GOnly = new TH2F("hClusPhiL1GOnly","clusters distribution vs #phi for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
800 | fhClusPhiL1GOnly->SetXTitle("Energy (GeV)"); | |
801 | fhClusPhiL1GOnly->SetYTitle("#phi (rad)"); | |
802 | ||
803 | fhClusPhiL1JOnly = new TH2F("hClusPhiL1JOnly","clusters distribution vs #phi for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
804 | fhClusPhiL1JOnly->SetXTitle("Energy (GeV)"); | |
805 | fhClusPhiL1JOnly->SetYTitle("#phi (rad)"); | |
806 | ||
807 | fhClusPhiMaxMB = new TH2F("hClusPhiMaxMB","maximum energy cluster per event vs #phi for MB trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
808 | fhClusPhiMaxMB ->SetXTitle("Energy (GeV)"); | |
809 | fhClusPhiMaxMB ->SetYTitle("#phi (rad)"); | |
810 | ||
811 | fhClusPhiMaxL0 = new TH2F("hClusPhiMaxL0","maximum energy cluster per event vs #phi for L0 trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
812 | fhClusPhiMaxL0 ->SetXTitle("Energy (GeV)"); | |
813 | fhClusPhiMaxL0 ->SetYTitle("#phi (rad)"); | |
814 | ||
815 | fhClusPhiMaxL1G = new TH2F("hClusPhiMaxL1G","maximum energy cluster per event vs #phi for L1G trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
816 | fhClusPhiMaxL1G->SetXTitle("Energy (GeV)"); | |
817 | fhClusPhiMaxL1G->SetYTitle("#phi (rad)"); | |
818 | ||
819 | fhClusPhiMaxL1J = new TH2F("hClusPhiMaxL1J","maximum energy cluster per event vs #phi for L1J trigger",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
820 | fhClusPhiMaxL1J->SetXTitle("Energy (GeV)"); | |
821 | fhClusPhiMaxL1J->SetYTitle("#phi (rad)"); | |
822 | ||
823 | fhClusPhiMaxL1GOnly = new TH2F("hClusPhiMaxL1GOnly","maximum energy cluster per event vs #phi for L1G trigger and not L1J",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
824 | fhClusPhiMaxL1GOnly->SetXTitle("Energy (GeV)"); | |
825 | fhClusPhiMaxL1GOnly->SetYTitle("#phi (rad)"); | |
826 | ||
827 | fhClusPhiMaxL1JOnly = new TH2F("hClusPhiMaxL1JOnly","maximum energy cluster per event vs #phi for L1J trigger and not L1G",fNBinsClusterE,0,fMaxClusterE,nphi, phimin, phimax); | |
828 | fhClusPhiMaxL1JOnly->SetXTitle("Energy (GeV)"); | |
829 | fhClusPhiMaxL1JOnly->SetYTitle("#phi (rad)"); | |
830 | ||
831 | ||
832 | fOutputList->Add(fhClusPhiMB); | |
833 | fOutputList->Add(fhClusPhiL0); | |
834 | fOutputList->Add(fhClusPhiL1G); | |
835 | fOutputList->Add(fhClusPhiL1J); | |
836 | fOutputList->Add(fhClusPhiL1GOnly); | |
837 | fOutputList->Add(fhClusPhiL1JOnly); | |
838 | ||
839 | fOutputList->Add(fhClusPhiMaxMB); | |
840 | fOutputList->Add(fhClusPhiMaxL0); | |
841 | fOutputList->Add(fhClusPhiMaxL1G); | |
842 | fOutputList->Add(fhClusPhiMaxL1J); | |
843 | fOutputList->Add(fhClusPhiMaxL1GOnly); | |
844 | fOutputList->Add(fhClusPhiMaxL1JOnly); | |
845 | ||
846 | // Cluster histograms, Pseudorapidity vs Azimuthal angle | |
847 | ||
848 | fhClusEtaPhiHighMB = new TH2F("hClusEtaPhiHighMB","clusters distribution #eta vs #phi for MB trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
849 | fhClusEtaPhiHighMB ->SetXTitle("#eta"); | |
850 | fhClusEtaPhiHighMB ->SetYTitle("#phi (rad)"); | |
851 | ||
852 | fhClusEtaPhiHighL0 = new TH2F("hClusEtaPhiHighL0","clusters distribution #eta vs #phi for L0 trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
853 | fhClusEtaPhiHighL0 ->SetXTitle("#eta"); | |
854 | fhClusEtaPhiHighL0 ->SetYTitle("#phi (rad)"); | |
855 | ||
856 | fhClusEtaPhiHighL1G = new TH2F("hClusEtaPhiHighL1G","clusters distribution #eta vs #phi for L1G trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
857 | fhClusEtaPhiHighL1G ->SetXTitle("#eta"); | |
858 | ||
859 | fhClusEtaPhiHighL1J = new TH2F("hClusEtaPhiHighL1J","clusters distribution #eta vs #phi for L1J trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
860 | fhClusEtaPhiHighL1J ->SetXTitle("#eta"); | |
861 | fhClusEtaPhiHighL1J ->SetYTitle("#phi (rad)"); | |
862 | ||
863 | fhClusEtaPhiHighL1GOnly = new TH2F("hClusEtaPhiHighL1GOnly","clusters distribution #eta vs #phi for L1G trigger and not L1J, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
864 | fhClusEtaPhiHighL1GOnly->SetXTitle("#eta"); | |
865 | fhClusEtaPhiHighL1GOnly->SetYTitle("#phi (rad)"); | |
866 | ||
867 | fhClusEtaPhiHighL1JOnly = new TH2F("hClusEtaPhiHighL1JOnly","clusters distribution #eta vs #phi for L1J trigger and not L1G, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
868 | fhClusEtaPhiHighL1JOnly->SetXTitle("#eta"); | |
869 | fhClusEtaPhiHighL1JOnly->SetYTitle("#phi (rad)"); | |
870 | ||
871 | fhClusEtaPhiHighCluMaxMB = new TH2F("hClusEtaPhiHighCluMaxMB","maximum energy cluster per event #eta vs #phi for MB trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
872 | fhClusEtaPhiHighCluMaxMB ->SetXTitle("#eta"); | |
873 | fhClusEtaPhiHighCluMaxMB ->SetYTitle("#phi (rad)"); | |
874 | ||
875 | fhClusEtaPhiHighCluMaxL0 = new TH2F("hClusEtaPhiHighCluMaxL0","maximum energy cluster per event #eta vs #phi for L0 trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
876 | fhClusEtaPhiHighCluMaxL0 ->SetXTitle("#eta"); | |
877 | fhClusEtaPhiHighCluMaxL0 ->SetYTitle("#phi (rad)"); | |
878 | ||
879 | fhClusEtaPhiHighCluMaxL1G = new TH2F("hClusEtaPhiHighCluMaxL1G","maximum energy cluster per event #eta vs #phi for L1G trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
880 | fhClusEtaPhiHighCluMaxL1G->SetXTitle("#eta"); | |
881 | fhClusEtaPhiHighCluMaxL1G->SetYTitle("#phi (rad)"); | |
882 | ||
883 | fhClusEtaPhiHighCluMaxL1J = new TH2F("hClusEtaPhiHighCluMaxL1J","maximum energy cluster per event #eta vs #phi for L1J trigger, E > 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
884 | fhClusEtaPhiHighCluMaxL1J->SetXTitle("#eta"); | |
885 | fhClusEtaPhiHighCluMaxL1J->SetYTitle("#phi (rad)"); | |
886 | ||
887 | 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); | |
888 | fhClusEtaPhiHighCluMaxL1GOnly->SetXTitle("#eta"); | |
889 | fhClusEtaPhiHighCluMaxL1GOnly->SetYTitle("#phi (rad)"); | |
890 | ||
891 | 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); | |
892 | fhClusEtaPhiHighCluMaxL1JOnly->SetXTitle("#eta"); | |
893 | fhClusEtaPhiHighCluMaxL1JOnly->SetYTitle("#phi (rad)"); | |
894 | ||
895 | ||
896 | fOutputList->Add(fhClusEtaPhiHighMB); | |
897 | fOutputList->Add(fhClusEtaPhiHighL0); | |
898 | fOutputList->Add(fhClusEtaPhiHighL1G); | |
899 | fOutputList->Add(fhClusEtaPhiHighL1J); | |
900 | fOutputList->Add(fhClusEtaPhiHighL1GOnly); | |
901 | fOutputList->Add(fhClusEtaPhiHighL1JOnly); | |
902 | ||
903 | fOutputList->Add(fhClusEtaPhiHighCluMaxMB); | |
904 | fOutputList->Add(fhClusEtaPhiHighCluMaxL0); | |
905 | fOutputList->Add(fhClusEtaPhiHighCluMaxL1G); | |
906 | fOutputList->Add(fhClusEtaPhiHighCluMaxL1J); | |
907 | fOutputList->Add(fhClusEtaPhiHighCluMaxL1GOnly); | |
908 | fOutputList->Add(fhClusEtaPhiHighCluMaxL1JOnly); | |
909 | ||
910 | fhClusEtaPhiLowMB = new TH2F("hClusEtaPhiLowMB","clusters distribution #eta vs #phi for MB trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
911 | fhClusEtaPhiLowMB ->SetXTitle("#eta"); | |
912 | fhClusEtaPhiLowMB ->SetYTitle("#phi (rad)"); | |
913 | ||
914 | fhClusEtaPhiLowL0 = new TH2F("hClusEtaPhiLowL0","clusters distribution #eta vs #phi for L0 trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
915 | fhClusEtaPhiLowL0 ->SetXTitle("#eta"); | |
916 | fhClusEtaPhiLowL0 ->SetYTitle("#phi (rad)"); | |
917 | ||
918 | fhClusEtaPhiLowL1G = new TH2F("hClusEtaPhiLowL1G","clusters distribution #eta vs #phi for L1G trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
919 | fhClusEtaPhiLowL1G ->SetXTitle("#eta"); | |
920 | ||
921 | fhClusEtaPhiLowL1J = new TH2F("hClusEtaPhiLowL1J","clusters distribution #eta vs #phi for L1J trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
922 | fhClusEtaPhiLowL1J ->SetXTitle("#eta"); | |
923 | fhClusEtaPhiLowL1J ->SetYTitle("#phi (rad)"); | |
924 | ||
925 | fhClusEtaPhiLowL1GOnly = new TH2F("hClusEtaPhiLowL1GOnly","clusters distribution #eta vs #phi for L1G trigger and not L1J, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
926 | fhClusEtaPhiLowL1GOnly->SetXTitle("#eta"); | |
927 | fhClusEtaPhiLowL1GOnly->SetYTitle("#phi (rad)"); | |
928 | ||
929 | fhClusEtaPhiLowL1JOnly = new TH2F("hClusEtaPhiLowL1JOnly","clusters distribution #eta vs #phi for L1J trigger and not L1G, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
930 | fhClusEtaPhiLowL1JOnly->SetXTitle("#eta"); | |
931 | fhClusEtaPhiLowL1JOnly->SetYTitle("#phi (rad)"); | |
932 | ||
933 | fhClusEtaPhiLowCluMaxMB = new TH2F("hClusEtaPhiLowCluMaxMB","maximum energy cluster per event #eta vs #phi for MB trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
934 | fhClusEtaPhiLowCluMaxMB ->SetXTitle("#eta"); | |
935 | fhClusEtaPhiLowCluMaxMB ->SetYTitle("#phi (rad)"); | |
936 | ||
937 | fhClusEtaPhiLowCluMaxL0 = new TH2F("hClusEtaPhiLowCluMaxL0","maximum energy cluster per event #eta vs #phi for L0 trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
938 | fhClusEtaPhiLowCluMaxL0 ->SetXTitle("#eta"); | |
939 | fhClusEtaPhiLowCluMaxL0 ->SetYTitle("#phi (rad)"); | |
940 | ||
941 | fhClusEtaPhiLowCluMaxL1G = new TH2F("hClusEtaPhiLowCluMaxL1G","maximum energy cluster per event #eta vs #phi for L1G trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
942 | fhClusEtaPhiLowCluMaxL1G->SetXTitle("#eta"); | |
943 | fhClusEtaPhiLowCluMaxL1G->SetYTitle("#phi (rad)"); | |
944 | ||
945 | fhClusEtaPhiLowCluMaxL1J = new TH2F("hClusEtaPhiLowCluMaxL1J","maximum energy cluster per event #eta vs #phi for L1J trigger, E < 10 GeV",neta, etamin, etamax,nphi, phimin, phimax); | |
946 | fhClusEtaPhiLowCluMaxL1J->SetXTitle("#eta"); | |
947 | fhClusEtaPhiLowCluMaxL1J->SetYTitle("#phi (rad)"); | |
948 | ||
949 | 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); | |
950 | fhClusEtaPhiLowCluMaxL1GOnly->SetXTitle("#eta"); | |
951 | fhClusEtaPhiLowCluMaxL1GOnly->SetYTitle("#phi (rad)"); | |
952 | ||
953 | 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); | |
954 | fhClusEtaPhiLowCluMaxL1JOnly->SetXTitle("#eta"); | |
955 | fhClusEtaPhiLowCluMaxL1JOnly->SetYTitle("#phi (rad)"); | |
956 | ||
957 | ||
958 | fOutputList->Add(fhClusEtaPhiLowMB); | |
959 | fOutputList->Add(fhClusEtaPhiLowL0); | |
960 | fOutputList->Add(fhClusEtaPhiLowL1G); | |
961 | fOutputList->Add(fhClusEtaPhiLowL1J); | |
962 | fOutputList->Add(fhClusEtaPhiLowL1GOnly); | |
963 | fOutputList->Add(fhClusEtaPhiLowL1JOnly); | |
964 | ||
965 | fOutputList->Add(fhClusEtaPhiLowCluMaxMB); | |
966 | fOutputList->Add(fhClusEtaPhiLowCluMaxL0); | |
967 | fOutputList->Add(fhClusEtaPhiLowCluMaxL1G); | |
968 | fOutputList->Add(fhClusEtaPhiLowCluMaxL1J); | |
969 | fOutputList->Add(fhClusEtaPhiLowCluMaxL1GOnly); | |
970 | fOutputList->Add(fhClusEtaPhiLowCluMaxL1JOnly); | |
971 | ||
972 | ||
973 | 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); | |
974 | fhClusEtaPhiHighCellMaxMB ->SetXTitle("Index #eta (columnns)"); | |
975 | fhClusEtaPhiHighCellMaxMB ->SetYTitle("Index #phi (rows)"); | |
976 | ||
977 | 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); | |
978 | fhClusEtaPhiHighCellMaxL0 ->SetXTitle("Index #eta (columnns)"); | |
979 | fhClusEtaPhiHighCellMaxL0 ->SetYTitle("Index #phi (rows)"); | |
980 | ||
981 | 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); | |
982 | fhClusEtaPhiHighCellMaxL1G ->SetXTitle("Index #eta (columnns)"); | |
983 | ||
984 | 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); | |
985 | fhClusEtaPhiHighCellMaxL1J ->SetXTitle("Index #eta (columnns)"); | |
986 | fhClusEtaPhiHighCellMaxL1J ->SetYTitle("Index #phi (rows)"); | |
987 | ||
988 | 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); | |
989 | fhClusEtaPhiHighCellMaxL1GOnly->SetXTitle("Index #eta (columnns)"); | |
990 | fhClusEtaPhiHighCellMaxL1GOnly->SetYTitle("Index #phi (rows)"); | |
991 | ||
992 | 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); | |
993 | fhClusEtaPhiHighCellMaxL1JOnly->SetXTitle("Index #eta (columnns)"); | |
994 | fhClusEtaPhiHighCellMaxL1JOnly->SetYTitle("Index #phi (rows)"); | |
995 | ||
996 | 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); | |
997 | fhClusEtaPhiHighCellMaxCluMaxMB ->SetXTitle("Index #eta (columnns)"); | |
998 | fhClusEtaPhiHighCellMaxCluMaxMB ->SetYTitle("Index #phi (rows)"); | |
999 | ||
1000 | 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); | |
1001 | fhClusEtaPhiHighCellMaxCluMaxL0 ->SetXTitle("Index #eta (columnns)"); | |
1002 | fhClusEtaPhiHighCellMaxCluMaxL0 ->SetYTitle("Index #phi (rows)"); | |
1003 | ||
1004 | 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); | |
1005 | fhClusEtaPhiHighCellMaxCluMaxL1G->SetXTitle("Index #eta (columnns)"); | |
1006 | fhClusEtaPhiHighCellMaxCluMaxL1G->SetYTitle("Index #phi (rows)"); | |
1007 | ||
1008 | 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); | |
1009 | fhClusEtaPhiHighCellMaxCluMaxL1J->SetXTitle("Index #eta (columnns)"); | |
1010 | fhClusEtaPhiHighCellMaxCluMaxL1J->SetYTitle("Index #phi (rows)"); | |
1011 | ||
1012 | 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); | |
1013 | fhClusEtaPhiHighCellMaxCluMaxL1GOnly->SetXTitle("Index #eta (columnns)"); | |
1014 | fhClusEtaPhiHighCellMaxCluMaxL1GOnly->SetYTitle("Index #phi (rows)"); | |
1015 | ||
1016 | 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); | |
1017 | fhClusEtaPhiHighCellMaxCluMaxL1JOnly->SetXTitle("Index #eta (columnns)"); | |
1018 | fhClusEtaPhiHighCellMaxCluMaxL1JOnly->SetYTitle("Index #phi (rows)"); | |
1019 | ||
1020 | ||
1021 | fOutputList->Add(fhClusEtaPhiHighCellMaxMB); | |
1022 | fOutputList->Add(fhClusEtaPhiHighCellMaxL0); | |
1023 | fOutputList->Add(fhClusEtaPhiHighCellMaxL1G); | |
1024 | fOutputList->Add(fhClusEtaPhiHighCellMaxL1J); | |
1025 | fOutputList->Add(fhClusEtaPhiHighCellMaxL1GOnly); | |
1026 | fOutputList->Add(fhClusEtaPhiHighCellMaxL1JOnly); | |
1027 | ||
1028 | fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxMB); | |
1029 | fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL0); | |
1030 | fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1G); | |
1031 | fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1J); | |
1032 | fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1GOnly); | |
1033 | fOutputList->Add(fhClusEtaPhiHighCellMaxCluMaxL1JOnly); | |
1034 | ||
1035 | 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); | |
1036 | fhClusEtaPhiLowCellMaxMB ->SetXTitle("Index #eta (columnns)"); | |
1037 | fhClusEtaPhiLowCellMaxMB ->SetYTitle("#phi (rad)"); | |
1038 | ||
1039 | 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); | |
1040 | fhClusEtaPhiLowCellMaxL0 ->SetXTitle("Index #eta (columnns)"); | |
1041 | fhClusEtaPhiLowCellMaxL0 ->SetYTitle("#phi (rad)"); | |
1042 | ||
1043 | 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); | |
1044 | fhClusEtaPhiLowCellMaxL1G ->SetXTitle("Index #eta (columnns)"); | |
1045 | ||
1046 | 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); | |
1047 | fhClusEtaPhiLowCellMaxL1J ->SetXTitle("Index #eta (columnns)"); | |
1048 | fhClusEtaPhiLowCellMaxL1J ->SetYTitle("#phi (rad)"); | |
1049 | ||
1050 | 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); | |
1051 | fhClusEtaPhiLowCellMaxL1GOnly->SetXTitle("Index #eta (columnns)"); | |
1052 | fhClusEtaPhiLowCellMaxL1GOnly->SetYTitle("#phi (rad)"); | |
1053 | ||
1054 | 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); | |
1055 | fhClusEtaPhiLowCellMaxL1JOnly->SetXTitle("Index #eta (columnns)"); | |
1056 | fhClusEtaPhiLowCellMaxL1JOnly->SetYTitle("#phi (rad)"); | |
1057 | ||
1058 | 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); | |
1059 | fhClusEtaPhiLowCellMaxCluMaxMB ->SetXTitle("Index #eta (columnns)"); | |
1060 | fhClusEtaPhiLowCellMaxCluMaxMB ->SetYTitle("#phi (rad)"); | |
1061 | ||
1062 | 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); | |
1063 | fhClusEtaPhiLowCellMaxCluMaxL0 ->SetXTitle("Index #eta (columnns)"); | |
1064 | fhClusEtaPhiLowCellMaxCluMaxL0 ->SetYTitle("#phi (rad)"); | |
1065 | ||
1066 | 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); | |
1067 | fhClusEtaPhiLowCellMaxCluMaxL1G->SetXTitle("Index #eta (columnns)"); | |
1068 | fhClusEtaPhiLowCellMaxCluMaxL1G->SetYTitle("#phi (rad)"); | |
1069 | ||
1070 | 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); | |
1071 | fhClusEtaPhiLowCellMaxCluMaxL1J->SetXTitle("Index #eta (columnns)"); | |
1072 | fhClusEtaPhiLowCellMaxCluMaxL1J->SetYTitle("#phi (rad)"); | |
1073 | ||
1074 | 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); | |
1075 | fhClusEtaPhiLowCellMaxCluMaxL1GOnly->SetXTitle("Index #eta (columnns)"); | |
1076 | fhClusEtaPhiLowCellMaxCluMaxL1GOnly->SetYTitle("#phi (rad)"); | |
1077 | ||
1078 | 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); | |
1079 | fhClusEtaPhiLowCellMaxCluMaxL1JOnly->SetXTitle("Index #eta (columnns)"); | |
1080 | fhClusEtaPhiLowCellMaxCluMaxL1JOnly->SetYTitle("#phi (rad)"); | |
0d896539 | 1081 | |
bce9493b | 1082 | |
ec77a234 | 1083 | fOutputList->Add(fhClusEtaPhiLowCellMaxMB); |
1084 | fOutputList->Add(fhClusEtaPhiLowCellMaxL0); | |
1085 | fOutputList->Add(fhClusEtaPhiLowCellMaxL1G); | |
1086 | fOutputList->Add(fhClusEtaPhiLowCellMaxL1J); | |
1087 | fOutputList->Add(fhClusEtaPhiLowCellMaxL1GOnly); | |
1088 | fOutputList->Add(fhClusEtaPhiLowCellMaxL1JOnly); | |
1089 | ||
1090 | fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxMB); | |
1091 | fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL0); | |
1092 | fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1G); | |
1093 | fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1J); | |
1094 | fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1GOnly); | |
1095 | fOutputList->Add(fhClusEtaPhiLowCellMaxCluMaxL1JOnly); | |
1096 | ||
bce9493b | 1097 | PostData(1, fOutputList); |
1098 | ||
1099 | } | |
85196c29 | 1100 | //______________________________________________________ |
bce9493b | 1101 | void AliAnalysisTaskEMCALTriggerQA::UserExec(Option_t *) |
1102 | { | |
1103 | // Main loop | |
bce9493b | 1104 | |
1105 | AliVEvent* event = InputEvent(); | |
1106 | ||
1107 | //Remove next lines when AODs ready | |
1108 | AliESDEvent *esdEvent = dynamic_cast<AliESDEvent*>(event); | |
1109 | ||
1110 | if (!esdEvent) | |
1111 | { | |
1112 | AliError("Work only with ESDs, not available, exit"); | |
1113 | return; | |
1114 | } | |
1115 | ||
2b4e1cc5 | 1116 | InitGeometry(); // only once, must be done before OADB, geo OADB accessed here |
1117 | ||
1118 | if(fAccessOADB) AccessOADB(); // only once | |
1119 | ||
a40222c8 | 1120 | //trigger configuration |
1121 | TString triggerclasses = esdEvent->GetFiredTriggerClasses(); | |
77626b4a | 1122 | |
6b4638cc | 1123 | Int_t eventType = ((AliVHeader*)InputEvent()->GetHeader())->GetEventType(); |
1124 | // physics events eventType=7, select only those | |
77626b4a | 1125 | |
6b4638cc | 1126 | if(triggerclasses=="" || eventType != 7) return; |
0d896539 | 1127 | |
1128 | // Check trigger | |
1129 | Bool_t bMB = kFALSE; | |
1130 | Bool_t bL0 = kFALSE; | |
1131 | Bool_t bL1G = kFALSE; | |
1132 | Bool_t bL1J = kFALSE; | |
1133 | ||
6bfd1538 | 1134 | if(triggerclasses.Contains("CINT7-B-NOPF-ALLNOTRD") || |
1135 | triggerclasses.Contains("CINT7-I-NOPF-ALLNOTRD") || | |
1136 | triggerclasses.Contains("CINT1-I-NOPF-ALLNOTRD") || | |
8a50a36c | 1137 | triggerclasses.Contains("CINT1-B-NOPF-ALLNOTRD") || |
0d896539 | 1138 | triggerclasses.Contains("CPBI2_B1-B-NOPF-ALLNOTRD") ) bMB = kTRUE; |
1139 | ||
de782324 | 1140 | if(triggerclasses.Contains("CEMC7-B") || |
1141 | triggerclasses.Contains("CEMC1-B") ) bL0 = kTRUE; | |
0d896539 | 1142 | |
de782324 | 1143 | if(triggerclasses.Contains("CEMC7EGA-B") || |
1144 | triggerclasses.Contains("CPBI2EGA-B") ) bL1G = kTRUE; | |
0d896539 | 1145 | |
de782324 | 1146 | if(triggerclasses.Contains("CEMC7EJE-B") || |
1147 | triggerclasses.Contains("CPBI2EJE-B") ) bL1J = kTRUE; | |
0d896539 | 1148 | |
1149 | // Fill event histo | |
1150 | fhNEvents->Fill(0.5); // All physics events | |
77626b4a | 1151 | |
0d896539 | 1152 | if( bMB ) |
1153 | { | |
1154 | fhNEvents->Fill(1.5); | |
1155 | if( !bL1G && !bL1J && !bL0 ) fhNEvents->Fill(8.5); | |
1156 | } | |
1157 | else | |
1158 | { | |
1159 | if( bL0 ) fhNEvents->Fill( 9.5); | |
1160 | if( bL1G ) fhNEvents->Fill(10.5); | |
1161 | if( bL1J ) fhNEvents->Fill(11.5); | |
1162 | } | |
1163 | ||
1164 | if( bL0 ) fhNEvents->Fill(2.5); | |
1165 | ||
1166 | if( bL1G ) | |
1167 | { | |
1168 | fhNEvents->Fill(3.5); | |
1169 | if(!bL1J) fhNEvents->Fill(5.5); | |
1170 | } | |
1171 | ||
1172 | if( bL1J ) | |
1173 | { | |
1174 | fhNEvents->Fill(4.5); | |
1175 | if(!bL1G) fhNEvents->Fill(6.5); | |
1176 | } | |
1177 | ||
1178 | if(bL1J && bL1G) fhNEvents->Fill(7.5); | |
1179 | ||
1180 | ||
e395081d | 1181 | //std::cout << "trigger = " << triggerclasses << std::endl; |
bce9493b | 1182 | |
bce9493b | 1183 | //map for cells and patches |
1184 | ||
75e10d6a | 1185 | Double_t emcalCell [fgkFALTRORows][fgkFALTROCols], emcalCellL1G [fgkFALTRORows][fgkFALTROCols]; |
1186 | Double_t emcalCellL1J [fgkFALTRORows][fgkFALTROCols], emcalTrigL0 [fgkFALTRORows][fgkFALTROCols]; | |
1187 | Double_t emcalTrigL0L1G[fgkFALTRORows][fgkFALTROCols], emcalTrigL0L1J[fgkFALTRORows][fgkFALTROCols]; | |
1188 | Double_t emcalTrigL1G [fgkFALTRORows][fgkFALTROCols], emcalTrigL1J [fgkFALTRORows][fgkFALTROCols], emcalTrigL1 [fgkFALTRORows][fgkFALTROCols]; | |
1189 | Double_t emcalPatchL0 [fgkFALTRORows][fgkFALTROCols], emcalPatchL1G [fgkFALTRORows][fgkFALTROCols], emcalPatchL1J[fgkFALTRORows][fgkFALTROCols]; | |
bce9493b | 1190 | |
1191 | for (Int_t i = 0; i < fgkFALTRORows; i++) | |
1192 | { | |
1193 | for (Int_t j = 0; j < fgkFALTROCols; j++) | |
1194 | { | |
85196c29 | 1195 | emcalTrigL0[i][j] = 0.; |
a40222c8 | 1196 | emcalTrigL0L1G[i][j]= 0.; |
1197 | emcalTrigL0L1J[i][j]= 0.; | |
e022364d | 1198 | emcalTrigL1G[i][j] = 0.; |
1199 | emcalTrigL1J[i][j] = 0.; | |
85196c29 | 1200 | emcalTrigL1[i][j] = 0.; |
1201 | emcalCell[i][j] = 0.; | |
a40222c8 | 1202 | emcalCellL1G[i][j] = 0.; |
1203 | emcalCellL1J[i][j] = 0.; | |
85196c29 | 1204 | emcalPatchL0[i][j] = 0.; |
bce9493b | 1205 | emcalPatchL1G[i][j] = 0.; |
1206 | emcalPatchL1J[i][j] = 0.; | |
1207 | } | |
1208 | } | |
1209 | ||
1210 | // --------------------------------- | |
1211 | // Cells analysis | |
1212 | // Fill FEE energy per channel array | |
1213 | // --------------------------------- | |
1214 | ||
1215 | Int_t posX = -1, posY = -1; | |
1216 | Int_t nSupMod = -1, ieta = -1, iphi = -1, nModule = -1, nIphi = -1, nIeta = -1; | |
1217 | Short_t absId = -1; | |
1218 | Int_t nCells = 0; | |
1219 | ||
1220 | AliVCaloCells& cells= *(event->GetEMCALCells()); | |
1221 | ||
1222 | if (cells.IsEMCAL()) | |
1223 | { | |
1224 | for (Int_t icell = 0; icell < cells.GetNumberOfCells(); icell++) | |
1225 | { | |
1226 | nCells ++; | |
1227 | ||
77e93dc2 | 1228 | Double_t amp =0., time = 0., efrac = 0; |
1229 | Short_t mclabel = -1; | |
bce9493b | 1230 | |
77e93dc2 | 1231 | cells.GetCell(icell, absId, amp, time,mclabel,efrac); |
bce9493b | 1232 | |
1233 | fGeometry->GetCellIndex(absId, nSupMod, nModule, nIphi, nIeta); | |
1234 | fGeometry->GetCellPhiEtaIndexInSModule(nSupMod, nModule, nIphi, nIeta, iphi, ieta); | |
1235 | ||
1236 | posX = (nSupMod % 2) ? ieta + AliEMCALGeoParams::fgkEMCALCols : ieta; | |
1237 | posY = iphi + AliEMCALGeoParams::fgkEMCALRows * int(nSupMod / 2); | |
bce9493b | 1238 | |
85196c29 | 1239 | if(int(posX/2) > fgkFALTROCols || int(posY/2) > fgkFALTRORows ) { |
e395081d | 1240 | if(DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Wrong Position (x,y) = (%d,%d)\n",posX,posY); |
85196c29 | 1241 | continue; |
1242 | } | |
1243 | ||
1244 | emcalCell[int(posY/2)][int(posX/2)] += amp; | |
e395081d | 1245 | |
0e91f259 | 1246 | if(triggerclasses.Contains("CEMC7EGA-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EGA")) emcalCellL1G[int(posY/2)][int(posX/2)] += amp; |
1247 | if(triggerclasses.Contains("CEMC7EJE-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EJE")) emcalCellL1J[int(posY/2)][int(posX/2)] += amp; | |
85196c29 | 1248 | |
bce9493b | 1249 | } |
1250 | } | |
1251 | ||
85196c29 | 1252 | //------------------------------------- |
1253 | // Trigger analysis, fill L0, L1 arrays | |
1254 | //------------------------------------- | |
bce9493b | 1255 | |
1256 | AliESDCaloTrigger& trg= * (esdEvent->GetCaloTrigger("EMCAL")); | |
1257 | ||
1614ab69 | 1258 | int kBitEGA = 4, kBitEJE = 5; |
1259 | ||
1260 | if (trg.IsA()->GetClassVersion() >= 5) { | |
1261 | kBitEGA = 6; | |
1262 | kBitEJE = 8; | |
1263 | } | |
1264 | ||
bce9493b | 1265 | Int_t nL0Patch = 0 ; |
1266 | Int_t nL1Patch = 0 ; | |
1267 | Double_t totSTU = 0.; | |
1268 | Double_t totTRU = 0.; | |
1269 | ||
1270 | trg.Reset(); | |
1271 | while (trg.Next()) | |
1272 | { | |
1273 | trg.GetPosition(posX,posY); | |
1274 | ||
1275 | ||
1276 | if (posX > -1 && posY > -1) | |
1277 | { | |
1278 | //L0 analysis | |
1279 | Int_t nTimes = 0; | |
1280 | trg.GetNL0Times(nTimes); | |
de782324 | 1281 | Int_t l0Times[10]; |
1282 | trg.GetL0Times(l0Times); | |
1283 | ||
aff917ac | 1284 | Float_t ampL0 = 0.; |
1285 | trg.GetAmplitude(ampL0); | |
0d896539 | 1286 | if (ampL0 > 0) emcalTrigL0[posY][posX] = ampL0; |
0e91f259 | 1287 | if(triggerclasses.Contains("CEMC7EGA-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EGA")) emcalTrigL0L1G[posY][posX] += ampL0; |
1288 | if(triggerclasses.Contains("CEMC7EJE-B-NOPF-CENTNOTRD") || triggerclasses.Contains("CPBI2EJE")) emcalTrigL0L1J[posY][posX] += ampL0; | |
aff917ac | 1289 | totTRU += ampL0; |
1290 | ||
de782324 | 1291 | int l0fired = 0; |
1292 | for (int itime = 0; itime < nTimes; itime++) { | |
1293 | if (l0Times[itime] > 7 && l0Times[itime] < 10) l0fired = 1; | |
1294 | } | |
1295 | ||
1296 | if (l0fired) | |
bce9493b | 1297 | { |
1298 | nL0Patch += nTimes; | |
bce9493b | 1299 | emcalPatchL0[posY][posX] = 1.; |
e395081d | 1300 | fhL0Patch->Fill(posX,posY); |
bce9493b | 1301 | } |
de782324 | 1302 | |
bce9493b | 1303 | //L1 analysis |
1304 | Int_t bit = 0; | |
1305 | trg.GetTriggerBits(bit); | |
1306 | ||
aff917ac | 1307 | Int_t ts = 0; |
1308 | trg.GetL1TimeSum(ts); | |
0d896539 | 1309 | if (ts > 0) emcalTrigL1[posY][posX] = ts; |
aff917ac | 1310 | totSTU += ts; |
1311 | ||
bce9493b | 1312 | //L1-Gamma |
1614ab69 | 1313 | if (bit >> kBitEGA & 0x1) |
bce9493b | 1314 | { |
1315 | nL1Patch ++; | |
0d896539 | 1316 | emcalPatchL1G[posY][posX] += 1.; |
e395081d | 1317 | fhL1GPatch->Fill(posX,posY); |
aff917ac | 1318 | |
0d896539 | 1319 | if (ts > 0) emcalTrigL1G[posY][posX] = ts; |
bce9493b | 1320 | |
85196c29 | 1321 | //printf("Gamma STU patch %d, time sum %d, posX %d , posY %d\n",nL1Patch,ts,posX, posY); |
bce9493b | 1322 | } |
1323 | ||
1324 | //L1-Jet | |
1614ab69 | 1325 | if (bit >> kBitEJE & 0x1) |
bce9493b | 1326 | { |
1327 | nL1Patch ++; | |
0d896539 | 1328 | emcalPatchL1J[posY][posX] += 1.; |
e395081d | 1329 | fhL1JPatch->Fill(posX,posY); |
aff917ac | 1330 | |
0d896539 | 1331 | if (ts > 0) emcalTrigL1J[posY][posX] = ts; |
bce9493b | 1332 | |
85196c29 | 1333 | //printf("Jet STU patch %d, time sum %d, posX %d , posY %d\n",nL1Patch,ts,posX, posY); |
aff917ac | 1334 | |
bce9493b | 1335 | } |
1336 | ||
1337 | } | |
1338 | } | |
de782324 | 1339 | |
1340 | if (!nL0Patch) { | |
1341 | bL0 = kFALSE; | |
1342 | if (!triggerclasses.Contains("CPBI2")) bL1G = bL1J = kFALSE; // pp running | |
1343 | } | |
1344 | ||
e395081d | 1345 | if(totTRU > fMaxTRUSignal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large totTRU %f\n",totTRU); |
1346 | if(totSTU > fMaxSTUSignal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large totSTU %f\n",totSTU); | |
0d896539 | 1347 | |
bce9493b | 1348 | //V0 analysis |
1349 | AliESDVZERO* eventV0 = esdEvent->GetVZEROData(); | |
1350 | ||
e98e49c3 | 1351 | Float_t v0C = 0, v0A = 0, v0TT = trg.GetL1V0(0)+trg.GetL1V0(1); |
bce9493b | 1352 | |
1353 | if (eventV0) | |
1354 | { | |
1355 | for (Int_t i = 0; i < 32; i++) | |
1356 | { | |
1357 | v0C += eventV0->GetAdcV0C(i); | |
1358 | v0A += eventV0->GetAdcV0A(i); | |
1359 | } | |
1360 | } | |
e395081d | 1361 | |
bce9493b | 1362 | if (totSTU != 0) { |
1363 | fhV0STU->Fill(v0A+v0C,totSTU); | |
e395081d | 1364 | if( v0A+v0C > fMaxV0Signal && DebugLevel() > 0) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large v0A+v0C %f\n",v0A+v0C); |
bce9493b | 1365 | } |
1366 | ||
0d896539 | 1367 | if( bL1G ) fhV0L1G->Fill(v0A+v0C); ; |
1368 | if( bL1J ) fhV0L1J->Fill(v0A+v0C); | |
1369 | if( bMB ) fhV0MB ->Fill(v0A+v0C); | |
1370 | ||
85196c29 | 1371 | //if(nL0Patch!=0 || nL1Patch!=0) printf("total TRU %f, total STU %f, V0C+V0A %f; nL0 %d, nL1 %d \n", |
1372 | // totTRU,totSTU,v0A+v0C,nL0Patch,nL1Patch); | |
1373 | ||
0d896539 | 1374 | //Maximum amplitude patch analysis |
e98e49c3 | 1375 | Int_t patchMax = 0; |
0d896539 | 1376 | Int_t colMax = -1; |
1377 | Int_t rowMax = -1; | |
1378 | Int_t col = 0; | |
1379 | Int_t row = 0; | |
e395081d | 1380 | |
e98e49c3 | 1381 | for (Int_t i = 0; i < 47; i++) |
e395081d | 1382 | { |
1383 | for (Int_t j = 0; j < 59; j++) | |
1384 | { | |
1385 | Int_t patchG = 0; | |
0d896539 | 1386 | col = i; |
1387 | row = j; | |
e395081d | 1388 | |
1389 | for (Int_t k = 0; k < 2; k++) | |
e98e49c3 | 1390 | { |
1391 | for (Int_t l = 0; l < 2; l++) | |
e395081d | 1392 | { |
0d896539 | 1393 | patchG += int(emcalTrigL1[j + l][i + k]); |
e395081d | 1394 | } |
e98e49c3 | 1395 | } |
e395081d | 1396 | |
0d896539 | 1397 | if (patchG > patchMax) |
1398 | { | |
1399 | patchMax = patchG; | |
1400 | colMax = col; | |
1401 | rowMax = row; | |
1402 | } | |
e98e49c3 | 1403 | } |
e395081d | 1404 | } |
e98e49c3 | 1405 | |
1406 | fhGPMaxVV0TT->Fill(v0TT, patchMax); | |
0d896539 | 1407 | if( bL1G ) fhL1GPatchMax->Fill(colMax,rowMax); |
e98e49c3 | 1408 | |
1409 | patchMax = 0; | |
0d896539 | 1410 | colMax = -1; |
1411 | rowMax = -1; | |
e98e49c3 | 1412 | |
1413 | for (Int_t i = 0; i < 9; i++) | |
e395081d | 1414 | { |
1415 | for (Int_t j = 0; j < 12; j++) | |
e98e49c3 | 1416 | { |
e395081d | 1417 | Int_t patchJ = 0; |
0d896539 | 1418 | col = i; |
1419 | row = j; | |
e395081d | 1420 | |
1421 | for (Int_t k = 0; k < 16; k++) | |
e98e49c3 | 1422 | { |
1423 | for (Int_t l = 0; l < 16; l++) | |
e395081d | 1424 | { |
0d896539 | 1425 | patchJ += int(emcalTrigL1[4*j + l][4*i + k]); |
e395081d | 1426 | } |
e98e49c3 | 1427 | } |
e395081d | 1428 | |
0d896539 | 1429 | if (patchJ > patchMax) |
1430 | { | |
1431 | patchMax = patchJ; | |
1432 | colMax = 4*col; | |
1433 | rowMax = 4*row; | |
1434 | } | |
e98e49c3 | 1435 | } |
e395081d | 1436 | } |
e98e49c3 | 1437 | |
1438 | fhJPMaxVV0TT->Fill(v0TT, patchMax); | |
0d896539 | 1439 | if( bL1J ) fhL1JPatchMax->Fill(colMax,rowMax); |
e395081d | 1440 | |
bce9493b | 1441 | //Matrix with signal per channel |
e022364d | 1442 | for (Int_t i = 0; i < fgkFALTRORows; i++) |
bce9493b | 1443 | { |
e022364d | 1444 | for (Int_t j = 0; j < fgkFALTROCols; j++) //check x,y direction for reading FOR ((0,0) = top left); |
bce9493b | 1445 | { |
0d896539 | 1446 | fhFORAmp ->Fill( j, i, emcalCell [i][j]); |
1447 | fhFORAmpL1G ->Fill( j, i, emcalCellL1G [i][j]); | |
1448 | fhFORAmpL1J ->Fill( j, i, emcalCellL1J [i][j]); | |
1449 | fhL0Amp ->Fill( j, i, emcalTrigL0 [i][j]); | |
1450 | fhL0AmpL1G ->Fill( j, i, emcalTrigL0L1G[i][j]); | |
1451 | fhL0AmpL1J ->Fill( j, i, emcalTrigL0L1J[i][j]); | |
1452 | fhL1Amp ->Fill( j, i, emcalTrigL1 [i][j]); | |
1453 | fhL1GAmp ->Fill( j, i, emcalTrigL1G [i][j]); | |
1454 | fhL1JAmp ->Fill( j, i, emcalTrigL1J [i][j]); | |
1455 | fhFORMeanAmp->Fill( j, i, emcalCell [i][j]); | |
1456 | fhL0MeanAmp ->Fill( j, i, emcalTrigL0 [i][j]); | |
1457 | fhL1MeanAmp ->Fill( j, i, emcalTrigL1 [i][j]); | |
bce9493b | 1458 | } |
1459 | } | |
1460 | ||
aff917ac | 1461 | //FEE-TRU-STU correlation checks |
bce9493b | 1462 | Double_t ampFOR[30] = {0.}, ampL0[30] = {0.}, ampL1[30] = {0.}; |
e022364d | 1463 | for (Int_t i = 0; i < fgkFALTRORows; i++) |
bce9493b | 1464 | { |
e022364d | 1465 | for (Int_t j = 0; j < fgkFALTROCols; j++) |
bce9493b | 1466 | { |
1467 | ||
1468 | //method to get TRU number | |
85196c29 | 1469 | Int_t idFOR = -1; |
1470 | fGeometry->GetAbsFastORIndexFromPositionInEMCAL(j,i,idFOR); | |
1471 | Int_t iTRU = -1; | |
1472 | Int_t iADC = -1; | |
1473 | fGeometry->GetTRUFromAbsFastORIndex(idFOR,iTRU,iADC); | |
e395081d | 1474 | |
85196c29 | 1475 | //printf("i %d, j %d, iTRU %d, iADC %d, idFOR %d; cell %f, L0 %f, L1 %f\n", |
1476 | // i,j,iTRU,iADC,idFOR, emcalCell [i][j],emcalTrigL0[i][j],emcalTrigL1[i][j]); | |
e395081d | 1477 | |
bce9493b | 1478 | if (iTRU >= 0) |
1479 | { | |
1480 | ampFOR[iTRU] += emcalCell [i][j]; | |
1481 | ampL0[iTRU] += emcalTrigL0[i][j]; | |
1482 | ampL1[iTRU] += emcalTrigL1[i][j]; | |
1483 | } | |
1484 | } | |
1485 | } | |
1486 | ||
85196c29 | 1487 | // FEE vs STU and TRU vs STU ratios |
bce9493b | 1488 | for (Int_t i = 0; i < 30; i++) |
1489 | { | |
85196c29 | 1490 | |
1491 | if (ampFOR[i] != 0 && ampL1[i] != 0) { | |
1492 | fhFEESTU->Fill(ampL1[i]/ampFOR[i],i); | |
e395081d | 1493 | if(ampL1[i]/ampFOR[i] > fMaxSTUFEERatio && DebugLevel() > 0 ) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large STU/FEE ratio %f\n",ampL1[i]/ampFOR[i]); |
85196c29 | 1494 | } |
1495 | ||
1496 | if (ampL0[i] != 0 && ampL1[i] != 0) { | |
1497 | fhTRUSTU->Fill(ampL1[i]/ampL0[i] ,i); | |
e395081d | 1498 | if(ampL1[i]/ampL0[i] > fMaxSTUTRURatio && DebugLevel() > 0 ) printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Large STU/TRU ratio %f\n",ampL1[i]/ampL0[i]); |
85196c29 | 1499 | } |
1500 | ||
bce9493b | 1501 | } |
1502 | ||
e395081d | 1503 | //Get Vertex |
75e10d6a | 1504 | Double_t v[3] = {0,0,0}; |
1505 | esdEvent->GetVertex()->GetXYZ(v); | |
1506 | ||
1507 | //clusters distribution | |
1508 | TRefArray* caloClus = new TRefArray(); | |
1509 | esdEvent->GetEMCALClusters(caloClus); | |
1510 | ||
1511 | Int_t nCaloClusters = caloClus->GetEntriesFast(); | |
ec77a234 | 1512 | |
1513 | Float_t emax = 0; | |
1514 | Float_t etamax = 0; | |
1515 | Float_t phimax = 0; | |
1516 | Float_t ietamax=-1; | |
1517 | Float_t iphimax=-1; | |
1518 | ||
1519 | Float_t e = 0; | |
1520 | Float_t eta = 0; | |
1521 | Float_t phi = 0; | |
1522 | ||
1523 | //Energy threshold to fill Eta vs Phi histograms | |
1524 | Float_t etaphiEnMin = 10.; | |
1525 | ||
1526 | TLorentzVector mom; | |
1527 | ||
1528 | //Get vertex for momentum calculation | |
1529 | Double_t vertex[] = {0.0,0.0,0.0}; | |
1530 | //InputEvent()->GetPrimaryVertex()->GetXYZ(vertex); | |
1531 | ||
1532 | Float_t centrality = -1; | |
1533 | if(InputEvent()->GetCentrality()) centrality = InputEvent()->GetCentrality()->GetCentralityPercentile("V0M"); | |
1534 | ||
75e10d6a | 1535 | for(Int_t icalo = 0; icalo < nCaloClusters; icalo++) |
e395081d | 1536 | { |
1537 | AliESDCaloCluster *clus = (AliESDCaloCluster*) (caloClus->At(icalo)); | |
75e10d6a | 1538 | |
e395081d | 1539 | if(!clus->IsEMCAL()) continue; |
1540 | ||
ec77a234 | 1541 | if(!fRecoUtils->IsGoodCluster(clus,fGeometry,InputEvent()->GetEMCALCells(),InputEvent()->GetBunchCrossNumber())) |
1542 | { | |
e395081d | 1543 | continue; |
75e10d6a | 1544 | } |
e395081d | 1545 | |
0d896539 | 1546 | if(clus->GetNCells() < 2) continue ; // Avoid 1 cell clusters, noisy, exotic. |
e395081d | 1547 | |
ec77a234 | 1548 | clus->GetMomentum(mom, vertex); |
1549 | ||
1550 | Bool_t shared = kFALSE; | |
1551 | Int_t idAbs = -1, iphi0 = -1, ieta0 = -1; | |
1552 | fRecoUtils->GetMaxEnergyCell(fGeometry, InputEvent()->GetEMCALCells(),clus, | |
1553 | idAbs,nSupMod,ieta0,iphi0,shared); | |
1554 | //Change index to be continuous over SM | |
1555 | ieta = (nSupMod % 2) ? ieta0 + AliEMCALGeoParams::fgkEMCALCols : ieta0; | |
1556 | iphi = iphi0 + AliEMCALGeoParams::fgkEMCALRows * int(nSupMod / 2); | |
1557 | ieta/=2; | |
1558 | iphi/=2; | |
1559 | ||
1560 | if(ieta > fgkFALTROCols || iphi > fgkFALTRORows ) { | |
1561 | printf("AliAnalysisTaskEMCALTriggerQA::UserExec() - Wrong Position (x,y) = (%d,%d)\n",ieta,iphi); | |
1562 | } | |
1563 | ||
1564 | e = clus->E(); | |
1565 | eta = mom.Eta(); | |
1566 | phi = mom.Phi(); | |
1567 | ||
1568 | if(e > emax) | |
1569 | { | |
1570 | emax = e; | |
1571 | etamax = eta; | |
1572 | phimax = phi; | |
1573 | ietamax = ieta; | |
1574 | iphimax = iphi; | |
1575 | } | |
1576 | ||
1577 | if( bMB ) | |
1578 | { | |
1579 | fhClusMB ->Fill(e); | |
1580 | fhClusCenMB ->Fill(e,centrality); | |
1581 | fhClusV0MB ->Fill(e,v0A+v0C); | |
1582 | fhClusEtaMB ->Fill(e,eta); | |
1583 | fhClusPhiMB ->Fill(e,phi); | |
1584 | if(e > etaphiEnMin) | |
1585 | { | |
1586 | fhClusEtaPhiHighMB ->Fill( eta, phi); | |
1587 | fhClusEtaPhiHighCellMaxMB ->Fill(ieta,iphi); | |
1588 | } | |
1589 | else { | |
1590 | fhClusEtaPhiLowMB ->Fill( eta, phi); | |
1591 | fhClusEtaPhiLowCellMaxMB ->Fill(ieta,iphi); | |
1592 | } | |
1593 | } | |
1594 | ||
1595 | if( bL0 ) { | |
1596 | fhClusL0 ->Fill(e); | |
1597 | fhClusCenL0 ->Fill(e,centrality); | |
1598 | fhClusV0L0 ->Fill(e,v0A+v0C); | |
1599 | fhClusEtaL0 ->Fill(e,eta); | |
1600 | fhClusPhiL0 ->Fill(e,phi); | |
1601 | if(e > etaphiEnMin) | |
1602 | { | |
1603 | fhClusEtaPhiHighL0 ->Fill( eta, phi); | |
1604 | fhClusEtaPhiHighCellMaxL0 ->Fill(ieta,iphi); | |
1605 | } | |
1606 | else { | |
1607 | fhClusEtaPhiLowL0 ->Fill( eta, phi); | |
1608 | fhClusEtaPhiLowCellMaxL0 ->Fill(ieta,iphi); | |
1609 | } | |
1610 | } | |
e395081d | 1611 | |
ec77a234 | 1612 | if( bL1G ) { |
1613 | fhClusL1G ->Fill(e); | |
1614 | fhClusCenL1G ->Fill(e,centrality); | |
1615 | fhClusV0L1G ->Fill(e,v0A+v0C); | |
1616 | fhClusEtaL1G ->Fill(e,eta); | |
1617 | fhClusPhiL1G ->Fill(e,phi); | |
1618 | if(e > etaphiEnMin) | |
1619 | { | |
1620 | fhClusEtaPhiHighL1G ->Fill( eta, phi); | |
1621 | fhClusEtaPhiHighCellMaxL1G ->Fill(ieta,iphi); | |
1622 | } | |
1623 | else { | |
1624 | fhClusEtaPhiLowL1G ->Fill( eta, phi); | |
1625 | fhClusEtaPhiLowCellMaxL1G ->Fill(ieta,iphi); | |
1626 | } | |
1627 | } | |
0d896539 | 1628 | |
ec77a234 | 1629 | if( bL1J ) { |
1630 | fhClusL1J ->Fill(e); | |
1631 | fhClusCenL1J ->Fill(e,centrality); | |
1632 | fhClusV0L1J ->Fill(e,v0A+v0C); | |
1633 | fhClusEtaL1J ->Fill(e,eta); | |
1634 | fhClusPhiL1J ->Fill(e,phi); | |
1635 | if(e > etaphiEnMin) | |
1636 | { | |
1637 | fhClusEtaPhiHighL1J ->Fill( eta, phi); | |
1638 | fhClusEtaPhiHighCellMaxL1J ->Fill(ieta,iphi); | |
1639 | } | |
1640 | else { | |
1641 | fhClusEtaPhiLowL1J ->Fill( eta, phi); | |
1642 | fhClusEtaPhiLowCellMaxL1J ->Fill(ieta,iphi); | |
1643 | } | |
1644 | } | |
e395081d | 1645 | |
ec77a234 | 1646 | if( bL1G && !bL1J ) |
1647 | { | |
1648 | fhClusL1GOnly ->Fill(e); | |
1649 | fhClusCenL1GOnly ->Fill(e,centrality); | |
1650 | fhClusV0L1GOnly ->Fill(e,v0A+v0C); | |
1651 | fhClusEtaL1GOnly ->Fill(e,eta); | |
1652 | fhClusPhiL1GOnly ->Fill(e,phi); | |
1653 | if(e > etaphiEnMin) | |
1654 | { | |
1655 | fhClusEtaPhiHighL1GOnly ->Fill( eta, phi); | |
1656 | fhClusEtaPhiHighCellMaxL1GOnly ->Fill(ieta,iphi); | |
1657 | } | |
1658 | else { | |
1659 | fhClusEtaPhiLowL1GOnly ->Fill( eta, phi); | |
1660 | fhClusEtaPhiLowCellMaxL1GOnly ->Fill(ieta,iphi); | |
1661 | } | |
1662 | } | |
1663 | ||
1664 | if( bL1J && !bL1G ) | |
1665 | { | |
1666 | fhClusL1JOnly ->Fill(e); | |
1667 | fhClusCenL1JOnly ->Fill(e,centrality); | |
1668 | fhClusV0L1JOnly ->Fill(e,v0A+v0C); | |
1669 | fhClusEtaL1JOnly ->Fill(e,eta); | |
1670 | fhClusPhiL1JOnly ->Fill(e,phi); | |
1671 | if(e > etaphiEnMin) | |
1672 | { | |
1673 | fhClusEtaPhiHighL1JOnly ->Fill( eta, phi); | |
1674 | fhClusEtaPhiHighCellMaxL1JOnly ->Fill(ieta,iphi); | |
1675 | } | |
1676 | else { | |
1677 | fhClusEtaPhiLowL1JOnly ->Fill( eta, phi); | |
1678 | fhClusEtaPhiLowCellMaxL1JOnly ->Fill(ieta,iphi); | |
1679 | } | |
1680 | } | |
1681 | ||
1682 | if( bMB && !bL1G && !bL1J && !bL0 ) fhClusMBPure ->Fill(e); | |
0d896539 | 1683 | |
e395081d | 1684 | } |
480b9db0 | 1685 | |
0d896539 | 1686 | // Maximum energy cluster per event histograms |
bce9493b | 1687 | |
ec77a234 | 1688 | if( bMB ) |
1689 | { | |
1690 | fhClusMaxMB ->Fill(emax); | |
1691 | fhClusCenMaxMB ->Fill(emax,centrality); | |
1692 | fhClusV0MaxMB ->Fill(emax,v0A+v0C); | |
1693 | fhClusEtaMaxMB ->Fill(emax,etamax); | |
1694 | fhClusPhiMaxMB ->Fill(emax,phimax); | |
1695 | if(emax > etaphiEnMin) | |
1696 | { | |
1697 | fhClusEtaPhiHighCluMaxMB ->Fill( etamax, phimax); | |
1698 | fhClusEtaPhiHighCellMaxCluMaxMB ->Fill(ietamax,iphimax); | |
1699 | } | |
1700 | else { | |
1701 | fhClusEtaPhiLowCluMaxMB ->Fill( etamax, phimax); | |
1702 | fhClusEtaPhiLowCellMaxCluMaxMB ->Fill(ietamax,iphimax); | |
1703 | } | |
1704 | } | |
85196c29 | 1705 | |
ec77a234 | 1706 | if( bL0 ) { |
1707 | fhClusMaxL0 ->Fill(emax); | |
1708 | fhClusCenMaxL0 ->Fill(emax,centrality); | |
1709 | fhClusV0MaxL0 ->Fill(emax,v0A+v0C); | |
1710 | fhClusEtaMaxL0 ->Fill(emax,etamax); | |
1711 | fhClusPhiMaxL0 ->Fill(emax,phimax); | |
1712 | if(emax > etaphiEnMin) | |
1713 | { | |
1714 | fhClusEtaPhiHighCluMaxL0 ->Fill( etamax, phimax); | |
1715 | fhClusEtaPhiHighCellMaxCluMaxL0 ->Fill(ietamax,iphimax); | |
1716 | } | |
1717 | else { | |
1718 | fhClusEtaPhiLowCluMaxL0 ->Fill( etamax, phimax); | |
1719 | fhClusEtaPhiLowCellMaxCluMaxL0 ->Fill(ietamax,iphimax); | |
1720 | } | |
1721 | } | |
85196c29 | 1722 | |
ec77a234 | 1723 | if( bL1G ) { |
1724 | fhClusMaxL1G ->Fill(emax); | |
1725 | fhClusCenMaxL1G ->Fill(emax,centrality); | |
1726 | fhClusV0MaxL1G ->Fill(emax,v0A+v0C); | |
1727 | fhClusEtaMaxL1G ->Fill(emax,etamax); | |
1728 | fhClusPhiMaxL1G ->Fill(emax,phimax); | |
1729 | if(emax > etaphiEnMin) | |
1730 | { | |
1731 | fhClusEtaPhiHighCluMaxL1G ->Fill( etamax, phimax); | |
1732 | fhClusEtaPhiHighCellMaxCluMaxL1G ->Fill(ietamax,iphimax); | |
1733 | } | |
1734 | else { | |
1735 | fhClusEtaPhiLowCluMaxL1G ->Fill( etamax, phimax); | |
1736 | fhClusEtaPhiLowCellMaxCluMaxL1G ->Fill(ietamax,iphimax); | |
1737 | } | |
1738 | } | |
1739 | ||
1740 | if( bL1J ) { | |
1741 | fhClusMaxL1J ->Fill(emax); | |
1742 | fhClusCenMaxL1J ->Fill(emax,centrality); | |
1743 | fhClusV0MaxL1J ->Fill(emax,v0A+v0C); | |
1744 | fhClusEtaMaxL1J ->Fill(emax,etamax); | |
1745 | fhClusPhiMaxL1J ->Fill(emax,phimax); | |
1746 | if(emax > etaphiEnMin) | |
1747 | { | |
1748 | fhClusEtaPhiHighCluMaxL1J ->Fill( etamax, phimax); | |
1749 | fhClusEtaPhiHighCellMaxCluMaxL1J ->Fill(ietamax,iphimax); | |
1750 | } | |
1751 | else { | |
1752 | fhClusEtaPhiLowCluMaxL1J ->Fill( etamax, phimax); | |
1753 | fhClusEtaPhiLowCellMaxCluMaxL1J ->Fill(ietamax,iphimax); | |
1754 | } | |
1755 | } | |
1756 | ||
1757 | if( bL1G && !bL1J ) | |
1758 | { | |
1759 | fhClusMaxL1GOnly ->Fill(emax); | |
1760 | fhClusCenMaxL1GOnly ->Fill(emax,centrality); | |
1761 | fhClusV0MaxL1GOnly ->Fill(emax,v0A+v0C); | |
1762 | fhClusEtaMaxL1GOnly ->Fill(emax,etamax); | |
1763 | fhClusPhiMaxL1GOnly ->Fill(emax,phimax); | |
1764 | if(emax > etaphiEnMin) | |
1765 | { | |
1766 | fhClusEtaPhiHighCluMaxL1GOnly ->Fill( etamax, phimax); | |
1767 | fhClusEtaPhiHighCellMaxCluMaxL1GOnly ->Fill(ietamax,iphimax); | |
1768 | } | |
1769 | else { | |
1770 | fhClusEtaPhiLowCluMaxL1GOnly ->Fill( etamax, phimax); | |
1771 | fhClusEtaPhiLowCellMaxCluMaxL1GOnly ->Fill(ietamax,iphimax); | |
1772 | } | |
1773 | } | |
1774 | ||
1775 | if( bL1J && !bL1G ) | |
1776 | { | |
1777 | fhClusMaxL1JOnly ->Fill(emax); | |
1778 | fhClusCenMaxL1JOnly ->Fill(emax,centrality); | |
1779 | fhClusV0MaxL1JOnly ->Fill(emax,v0A+v0C); | |
1780 | fhClusEtaMaxL1JOnly ->Fill(emax,etamax); | |
1781 | fhClusPhiMaxL1JOnly ->Fill(emax,phimax); | |
1782 | if(emax > etaphiEnMin) | |
1783 | { | |
1784 | fhClusEtaPhiHighCluMaxL1JOnly ->Fill( etamax, phimax); | |
1785 | fhClusEtaPhiHighCellMaxCluMaxL1JOnly ->Fill(ietamax,iphimax); | |
1786 | } | |
1787 | else { | |
1788 | fhClusEtaPhiLowCluMaxL1JOnly ->Fill( etamax, phimax); | |
1789 | fhClusEtaPhiLowCellMaxCluMaxL1JOnly ->Fill(ietamax,iphimax); | |
1790 | } | |
1791 | } | |
1792 | ||
1793 | if( bMB && !bL1G && !bL1J && !bL0 ) fhClusMaxMBPure ->Fill(emax); | |
0d896539 | 1794 | |
1795 | PostData(1, fOutputList); | |
85196c29 | 1796 | |
1797 | } | |
de782324 | 1798 |