AliPhysics  5b5fbb3 (5b5fbb3)
AliAnaEMCALTriggerClusters.cxx
Go to the documentation of this file.
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 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 // --- ROOT system ---
17 #include <TH2F.h>
18 #include <TClonesArray.h>
19 #include <TObjString.h>
20 
21 // --- Analysis system ---
23 #include "AliCaloTrackReader.h"
24 #include "AliCaloPID.h"
25 #include "AliFiducialCut.h"
26 #include "AliVCluster.h"
27 #include "AliAODEvent.h"
28 #include "AliESDEvent.h"
29 
30 // --- Detectors ---
31 #include "AliEMCALGeometry.h"
32 
36 
37 //______________________________________________________
39 //______________________________________________________
42 fRejectTrackMatch(0), fNCellsCut(0),
43 fMinM02(0), fMaxM02(0),
44 fMomentum(),
45 // Histograms
46 fhE(0), fhESelected(0),
47 fhEtaPhi(0), fhEtaPhiSelected(0),
48 fhEtaPhiEMCALBC0(0), fhEtaPhiEMCALBC1(0), fhEtaPhiEMCALBCN(0),
49 fhTimeTriggerEMCALBCCluster(0),
50 fhTimeTriggerEMCALBCUMCluster(0),
51 fhEtaPhiTriggerEMCALBCClusterOverTh(0),
52 fhEtaPhiTriggerEMCALBCUMClusterOverTh(0),
53 fhEtaPhiTriggerEMCALBCClusterBelowTh1(0),
54 fhEtaPhiTriggerEMCALBCUMClusterBelowTh1(0),
55 fhEtaPhiTriggerEMCALBCClusterBelowTh2(0),
56 fhEtaPhiTriggerEMCALBCUMClusterBelowTh2(0),
57 fhEtaPhiTriggerEMCALBCExotic(0), fhTimeTriggerEMCALBCExotic(0),
58 fhEtaPhiTriggerEMCALBCUMExotic(0), fhTimeTriggerEMCALBCUMExotic(0),
59 fhEtaPhiTriggerEMCALBCBad(0), fhTimeTriggerEMCALBCBad(0),
60 fhEtaPhiTriggerEMCALBCUMBad(0), fhTimeTriggerEMCALBCUMBad(0),
61 fhEtaPhiTriggerEMCALBCBadExotic(0), fhTimeTriggerEMCALBCBadExotic(0),
62 fhEtaPhiTriggerEMCALBCUMBadExotic(0), fhTimeTriggerEMCALBCUMBadExotic(0),
63 fhEtaPhiTriggerEMCALBCExoticCluster(0), fhTimeTriggerEMCALBCExoticCluster(0),
64 fhEtaPhiTriggerEMCALBCUMExoticCluster(0), fhTimeTriggerEMCALBCUMExoticCluster(0),
65 fhEtaPhiTriggerEMCALBCBadCluster(0), fhTimeTriggerEMCALBCBadCluster(0),
66 fhEtaPhiTriggerEMCALBCUMBadCluster(0), fhTimeTriggerEMCALBCUMBadCluster(0),
67 fhEtaPhiTriggerEMCALBCBadExoticCluster(0), fhTimeTriggerEMCALBCBadExoticCluster(0),
68 fhEtaPhiTriggerEMCALBCUMBadExoticCluster(0), fhTimeTriggerEMCALBCUMBadExoticCluster(0),
69 fhTimeTriggerEMCALBCBadMaxCell(0), fhTimeTriggerEMCALBCUMBadMaxCell(0),
70 fhTimeTriggerEMCALBCBadMaxCellExotic(0), fhTimeTriggerEMCALBCUMBadMaxCellExotic(0),
71 fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster (0), fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster(0),
72 fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster(0),fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster(0),
73 fhEtaPhiTriggerEMCALBCUMReMatchBothCluster(0), fhTimeTriggerEMCALBCUMReMatchBothCluster(0),
74 fhTimeTriggerEMCALBC0UMReMatchOpenTime(0),
75 fhTimeTriggerEMCALBC0UMReMatchCheckNeigh(0),
76 fhTimeTriggerEMCALBC0UMReMatchBoth(0),
77 fhEtaPhiNoTrigger(0), fhTimeNoTrigger(0),
78 fhEtaPhiSelectedEMCALBC0(0), fhEtaPhiSelectedEMCALBC1(0), fhEtaPhiSelectedEMCALBCN(0),
79 fhTimeSelectedTriggerEMCALBC0UMReMatchOpenTime(0),
80 fhTimeSelectedTriggerEMCALBC0UMReMatchCheckNeigh(0),
81 fhTimeSelectedTriggerEMCALBC0UMReMatchBoth(0)
82 {
83  for(Int_t i = 0; i < 11; i++)
84  {
85  fhEtaPhiTriggerEMCALBC [i] = 0 ;
86  fhTimeTriggerEMCALBC [i] = 0 ;
87  fhEtaPhiTriggerEMCALBCUM [i] = 0 ;
88  fhTimeTriggerEMCALBCUM [i] = 0 ;
89 
90  fhEtaPhiSelectedTriggerEMCALBC [i] = 0 ;
91  fhTimeSelectedTriggerEMCALBC [i] = 0 ;
92  fhEtaPhiSelectedTriggerEMCALBCUM [i] = 0 ;
93  fhTimeSelectedTriggerEMCALBCUM [i] = 0 ;
94 
95  fhTimeSelectedTriggerEMCALBCPileUpSPD[i] = 0 ;
96  fhTimeTriggerEMCALBCPileUpSPD [i] = 0 ;
97 
98  fhEtaPhiTriggerEMCALBCCluster [i] = 0 ;
99  fhEtaPhiTriggerEMCALBCUMCluster [i] = 0 ;
100  }
101 
102  InitParameters();
103 }
104 
105 //_____________________________________________________________
107 //_____________________________________________________________
109 {
110  Int_t idTrig = GetReader()->GetTriggerClusterIndex();
111  Bool_t exotic = GetReader()->IsExoticEvent();
113 
114  Bool_t ok = kFALSE;
115  if(( bad || exotic ) && idTrig >= 0 && !GetReader()->AreBadTriggerEventsRemoved()) ok = kTRUE;
116 
117  if(!ok) return;
118 
119  // printf("Index %d, Id %d, bad %d, exo %d\n",
120  // GetReader()->GetTriggerClusterIndex(),
121  // GetReader()->GetTriggerClusterId(),
122  // GetReader()->IsBadCellTriggerEvent(),
123  // GetReader()->IsExoticEvent() );
124 
125  TClonesArray * clusterList = 0;
126  TString clusterListName = GetReader()->GetEMCALClusterListName();
127  if (GetReader()->GetInputEvent()->FindListObject(clusterListName))
128  clusterList = dynamic_cast<TClonesArray*> (GetReader()->GetInputEvent() ->FindListObject(clusterListName));
129  else if(GetReader()->GetOutputEvent())
130  clusterList = dynamic_cast<TClonesArray*> (GetReader()->GetOutputEvent()->FindListObject(clusterListName));
131 
132  AliVCluster * badClusTrig = 0;
133  if(clusterList) badClusTrig = (AliVCluster*) clusterList->At(idTrig);
134  else badClusTrig = GetReader()->GetInputEvent()->GetCaloCluster(idTrig);
135 
136  if(!badClusTrig)
137  {
138  AliWarning(Form("No cluster (bad-exotic trigger) found with requested index %d \n",idTrig));
139  return;
140  }
141 
142  badClusTrig->GetMomentum(fMomentum,GetVertex(0));
143 
144  Float_t etaclusterBad = fMomentum.Eta();
145  Float_t phiclusterBad = fMomentum.Phi();
146  if( phiclusterBad < 0 ) phiclusterBad+=TMath::TwoPi();
147  Float_t tofclusterBad = badClusTrig->GetTOF()*1.e9;
148  Float_t eclusterBad = badClusTrig->E();
149 
150  if( bad && exotic )
151  {
152  if(GetReader()->IsTriggerMatched())
153  {
154  fhEtaPhiTriggerEMCALBCBadExoticCluster->Fill(etaclusterBad, phiclusterBad, GetEventWeight());
155  fhTimeTriggerEMCALBCBadExoticCluster ->Fill(eclusterBad, tofclusterBad, GetEventWeight());
156  }
157  else
158  {
159  fhEtaPhiTriggerEMCALBCUMBadExoticCluster->Fill(etaclusterBad, phiclusterBad, GetEventWeight());
160  fhTimeTriggerEMCALBCUMBadExoticCluster ->Fill(eclusterBad, tofclusterBad, GetEventWeight());
161  }
162  }
163  else if( bad && !exotic )
164  {
165  if(GetReader()->IsTriggerMatched())
166  {
167  fhEtaPhiTriggerEMCALBCBadCluster->Fill(etaclusterBad, phiclusterBad, GetEventWeight());
168  fhTimeTriggerEMCALBCBadCluster ->Fill(eclusterBad, tofclusterBad, GetEventWeight());
169  }
170  else
171  {
172  fhEtaPhiTriggerEMCALBCUMBadCluster->Fill(etaclusterBad, phiclusterBad, GetEventWeight());
173  fhTimeTriggerEMCALBCUMBadCluster ->Fill(eclusterBad, tofclusterBad, GetEventWeight());
174  }
175  }// Bad cluster trigger
176  else if( !bad && exotic )
177  {
178  if(GetReader()->IsTriggerMatched())
179  {
180  fhEtaPhiTriggerEMCALBCExoticCluster->Fill(etaclusterBad, phiclusterBad, GetEventWeight());
181  fhTimeTriggerEMCALBCExoticCluster ->Fill(eclusterBad , tofclusterBad, GetEventWeight());
182  }
183  else
184  {
185  fhEtaPhiTriggerEMCALBCUMExoticCluster->Fill(etaclusterBad, phiclusterBad, GetEventWeight());
186  fhTimeTriggerEMCALBCUMExoticCluster ->Fill(eclusterBad , tofclusterBad, GetEventWeight());
187  }
188  }
189 }
190 
191 //____________________________________________________________________________________________________________________________
193 //____________________________________________________________________________________________________________________________
195  Float_t etacluster, Float_t phicluster)
196 
197 {
198  Float_t tofclusterUS = TMath::Abs(tofcluster);
199 
200  if(ecluster > 2)
201  {
202  if (tofclusterUS < 25) fhEtaPhiEMCALBC0->Fill(etacluster, phicluster, GetEventWeight());
203  else if (tofclusterUS < 75) fhEtaPhiEMCALBC1->Fill(etacluster, phicluster, GetEventWeight());
204  else fhEtaPhiEMCALBCN->Fill(etacluster, phicluster, GetEventWeight());
205  }
206 
210 
211  Int_t histoBC = bc+5;
212  if(GetReader()->AreBadTriggerEventsRemoved()) histoBC=0; // histograms created only for one BC since the others where rejected
213 
214  if(id==-2)
215  {
216  //printf("AliAnaEMCALTriggerClusters::ClusterSelected() - No trigger found bc=%d\n",bc);
217  fhEtaPhiNoTrigger->Fill(etacluster, phicluster, GetEventWeight());
218  fhTimeNoTrigger ->Fill(ecluster , tofcluster, GetEventWeight());
219  }
220  else if(TMath::Abs(bc) < 6)
221  {
222  if(!GetReader()->IsBadCellTriggerEvent() && !GetReader()->IsExoticEvent() )
223  {
224  if(GetReader()->IsTriggerMatched())
225  {
226  if(ecluster > 2)
227  fhEtaPhiTriggerEMCALBC [histoBC]->Fill(etacluster, phicluster, GetEventWeight());
228 
229  fhTimeTriggerEMCALBC [histoBC]->Fill(ecluster , tofcluster, GetEventWeight());
230 
231  if(GetReader()->IsPileUpFromSPD())
232  fhTimeTriggerEMCALBCPileUpSPD[histoBC]->Fill(ecluster , tofcluster, GetEventWeight());
233 
234  if(idcalo == GetReader()->GetTriggerClusterId())
235  {
236  fhEtaPhiTriggerEMCALBCCluster[histoBC]->Fill(etacluster, phicluster, GetEventWeight());
237  fhTimeTriggerEMCALBCCluster ->Fill(ecluster , tofcluster, GetEventWeight());
238 
239  if(bc==0)
240  {
241  Float_t threshold = GetReader()->GetEventTriggerL1Threshold() ;
242  if(GetReader()->IsEventEMCALL0()) threshold = GetReader()->GetEventTriggerL0Threshold() ;
243 
244  if(ecluster > threshold)
245  fhEtaPhiTriggerEMCALBCClusterOverTh ->Fill(etacluster, phicluster, GetEventWeight());
246  else if(ecluster > threshold-1)
247  fhEtaPhiTriggerEMCALBCClusterBelowTh1->Fill(etacluster, phicluster, GetEventWeight());
248  else
249  fhEtaPhiTriggerEMCALBCClusterBelowTh2->Fill(etacluster, phicluster, GetEventWeight());
250  }
251  }
252  }
253  else
254  {
255  if(ecluster > 2)
256  fhEtaPhiTriggerEMCALBCUM[histoBC]->Fill(etacluster, phicluster, GetEventWeight());
257 
258  fhTimeTriggerEMCALBCUM [histoBC]->Fill(ecluster , tofcluster, GetEventWeight());
259 
260  if(bc==0)
261  {
262  if(GetReader()->IsTriggerMatchedOpenCuts(0)) fhTimeTriggerEMCALBC0UMReMatchOpenTime ->Fill(ecluster, tofcluster, GetEventWeight());
263  if(GetReader()->IsTriggerMatchedOpenCuts(1)) fhTimeTriggerEMCALBC0UMReMatchCheckNeigh ->Fill(ecluster, tofcluster, GetEventWeight());
264  if(GetReader()->IsTriggerMatchedOpenCuts(2)) fhTimeTriggerEMCALBC0UMReMatchBoth ->Fill(ecluster, tofcluster, GetEventWeight());
265  }
266 
267  if(idcalo == GetReader()->GetTriggerClusterId())
268  {
269  fhEtaPhiTriggerEMCALBCUMCluster[histoBC]->Fill(etacluster, phicluster, GetEventWeight());
270  fhTimeTriggerEMCALBCUMCluster ->Fill(ecluster , tofcluster, GetEventWeight());
271  if(bc==0)
272  {
273  Float_t threshold = GetReader()->GetEventTriggerL1Threshold() ;
274  if(GetReader()->IsEventEMCALL0()) threshold = GetReader()->GetEventTriggerL0Threshold() ;
275 
276  if(ecluster > threshold)
277  fhEtaPhiTriggerEMCALBCUMClusterOverTh ->Fill(etacluster, phicluster, GetEventWeight());
278  else if(ecluster > threshold-1)
279  fhEtaPhiTriggerEMCALBCUMClusterBelowTh1->Fill(etacluster, phicluster, GetEventWeight());
280  else
281  fhEtaPhiTriggerEMCALBCUMClusterBelowTh2->Fill(etacluster, phicluster, GetEventWeight());
282 
283  if(GetReader()->IsTriggerMatchedOpenCuts(0))
284  {
285  fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster->Fill(etacluster, phicluster, GetEventWeight());
286  fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster ->Fill(ecluster , tofcluster, GetEventWeight());
287  }
288  if(GetReader()->IsTriggerMatchedOpenCuts(1))
289  {
290  fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster->Fill(etacluster, phicluster, GetEventWeight());
291  fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster ->Fill(ecluster , tofcluster, GetEventWeight());
292  }
293  if(GetReader()->IsTriggerMatchedOpenCuts(2))
294  {
295  fhEtaPhiTriggerEMCALBCUMReMatchBothCluster->Fill(etacluster, phicluster, GetEventWeight());
296  fhTimeTriggerEMCALBCUMReMatchBothCluster ->Fill(ecluster , tofcluster, GetEventWeight());
297  }
298 
299  }
300  }
301  }
302  }// neither bad nor exotic
303  else if(GetReader()->IsBadCellTriggerEvent() && GetReader()->IsExoticEvent())
304  {
305  if(GetReader()->IsTriggerMatched())
306  {
307  if(ecluster > 2)
308  fhEtaPhiTriggerEMCALBCBadExotic ->Fill(etacluster, phicluster, GetEventWeight());
309 
310  fhTimeTriggerEMCALBCBadExotic ->Fill(ecluster , tofcluster, GetEventWeight());
311 
312  if(badMax)
313  fhTimeTriggerEMCALBCBadMaxCellExotic->Fill(ecluster , tofcluster, GetEventWeight());
314  }
315  else
316  {
317  if(ecluster > 2)
318  fhEtaPhiTriggerEMCALBCUMBadExotic ->Fill(etacluster, phicluster, GetEventWeight());
319 
320  fhTimeTriggerEMCALBCUMBadExotic ->Fill(ecluster , tofcluster, GetEventWeight());
321 
322  if(badMax)
323  fhTimeTriggerEMCALBCUMBadMaxCellExotic->Fill(ecluster , tofcluster, GetEventWeight());
324 
325  }
326  }// Bad and exotic cluster trigger
327  else if(GetReader()->IsBadCellTriggerEvent() )
328  {
329  if(GetReader()->IsTriggerMatched())
330  {
331  if(ecluster > 2)
332  fhEtaPhiTriggerEMCALBCBad ->Fill(etacluster, phicluster, GetEventWeight());
333 
334  fhTimeTriggerEMCALBCBad ->Fill(ecluster , tofcluster, GetEventWeight());
335 
336  if(badMax)
337  fhTimeTriggerEMCALBCBadMaxCell->Fill(ecluster , tofcluster, GetEventWeight());
338  }
339  else
340  {
341  if(ecluster > 2)
342  fhEtaPhiTriggerEMCALBCUMBad ->Fill(etacluster, phicluster, GetEventWeight());
343 
344  fhTimeTriggerEMCALBCUMBad ->Fill(ecluster , tofcluster, GetEventWeight());
345 
346  if(badMax)
347  fhTimeTriggerEMCALBCUMBadMaxCell->Fill(ecluster , tofcluster, GetEventWeight());
348  }
349  }// Bad cluster trigger
350  else if(GetReader()->IsExoticEvent() )
351  {
352  if(GetReader()->IsTriggerMatched())
353  {
354  if(ecluster > 2)
355  fhEtaPhiTriggerEMCALBCExotic->Fill(etacluster, phicluster, GetEventWeight());
356 
357  fhTimeTriggerEMCALBCExotic ->Fill(ecluster , tofcluster, GetEventWeight());
358  }
359  else
360  {
361  if(ecluster > 2)
362  fhEtaPhiTriggerEMCALBCUMExotic->Fill(etacluster, phicluster, GetEventWeight());
363 
364  fhTimeTriggerEMCALBCUMExotic ->Fill(ecluster , tofcluster, GetEventWeight());
365  }
366  }
367  }
368  else if(TMath::Abs(bc) >= 6) AliWarning(Form("Trigger BC not expected = %d\n",bc));
369 }
370 
371 //_________________________________________________________
373 //_________________________________________________________
375 {
376  TString parList ; //this will be list of parameters used for this analysis.
377  const Int_t buffersize = 255;
378  char onePar[buffersize] ;
379 
380  snprintf(onePar,buffersize,"--- AliAnaEMCALTriggerClusters ---:") ;
381  parList+=onePar ;
382  snprintf(onePar,buffersize,"fRejectTrackMatch: %d;",fRejectTrackMatch) ;
383  parList+=onePar ;
384  snprintf(onePar,buffersize,"fMinM02: %2.2f, fMaxM02: %2.2f;",fMinM02,fMaxM02) ;
385  parList+=onePar ;
386  snprintf(onePar,buffersize,"fNCellsCut: %d;",fNCellsCut) ;
387  parList+=onePar ;
388 
389  //Get parameters set in base class.
390  //parList += GetBaseParametersList() ;
391 
392  return new TObjString(parList) ;
393 }
394 
395 //___________________________________________________________
398 //___________________________________________________________
400 {
401  TList * outputContainer = new TList() ;
402  outputContainer->SetName("EMCALTriggerClusters") ;
403 
408 
409  Int_t nTrigBC = 1;
410  Int_t iBCShift = 0;
411  if(!GetReader()->AreBadTriggerEventsRemoved())
412  {
413  nTrigBC = 11;
414  iBCShift = 5;
415  }
416 
417  fhE = new TH1F("hE","raw cluster #it{E}",nptbins,ptmin,ptmax);
418  fhE->SetYTitle("d#it{N}/d#it{E} ");
419  fhE->SetXTitle("#it{E} (GeV)");
420  outputContainer->Add(fhE) ;
421 
422  fhESelected = new TH1F("hESelected","selected cluster #it{E}",nptbins,ptmin,ptmax);
423  fhESelected->SetYTitle("d#it{N}/d#it{E} ");
424  fhESelected->SetXTitle("#it{E} (GeV)");
425  outputContainer->Add(fhESelected) ;
426 
427  fhEtaPhi = new TH2F
428  ("hEtaPhi","cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
429  fhEtaPhi->SetYTitle("#phi (rad)");
430  fhEtaPhi->SetXTitle("#eta");
431  outputContainer->Add(fhEtaPhi) ;
432 
433  fhEtaPhiSelected = new TH2F
434  ("hEtaPhiSelected","selected cluster,#it{E} > 0.5 GeV, #eta vs #phi",netabins,etamin,etamax,nphibins,phimin,phimax);
435  fhEtaPhiSelected->SetYTitle("#phi (rad)");
436  fhEtaPhiSelected->SetXTitle("#eta");
437  outputContainer->Add(fhEtaPhiSelected) ;
438 
439  fhEtaPhiEMCALBC0 = new TH2F
440  ("hEtaPhiEMCALBC0","cluster,#it{E} > 2 GeV, #eta vs #phi, for clusters with |time| < 25 ns, EMCAL-BC=0",netabins,etamin,etamax,nphibins,phimin,phimax);
441  fhEtaPhiEMCALBC0->SetYTitle("#phi (rad)");
442  fhEtaPhiEMCALBC0->SetXTitle("#eta");
443  outputContainer->Add(fhEtaPhiEMCALBC0) ;
444 
445  fhEtaPhiEMCALBC1 = new TH2F
446  ("hEtaPhiEMCALBC1","cluster,#it{E} > 2 GeV, #eta vs #phi, for clusters with 25 < |time| < 75 ns, EMCAL-BC=1",netabins,etamin,etamax,nphibins,phimin,phimax);
447  fhEtaPhiEMCALBC1->SetYTitle("#phi (rad)");
448  fhEtaPhiEMCALBC1->SetXTitle("#eta");
449  outputContainer->Add(fhEtaPhiEMCALBC1) ;
450 
451  fhEtaPhiEMCALBCN = new TH2F
452  ("hEtaPhiEMCALBCN","cluster,#it{E} > 2 GeV, #eta vs #phi, for clusters with |time| > 75 ns, EMCAL-BC>1",netabins,etamin,etamax,nphibins,phimin,phimax);
453  fhEtaPhiEMCALBCN->SetYTitle("#phi (rad)");
454  fhEtaPhiEMCALBCN->SetXTitle("#eta");
455  outputContainer->Add(fhEtaPhiEMCALBCN) ;
456 
457  for(Int_t i = 0; i < nTrigBC; i++)
458  {
460  (Form("hEtaPhiTriggerEMCALBC%d",i-iBCShift),
461  Form("cluster #it{E} > 2 GeV, #eta vs #phi, Trigger EMCAL-BC=%d",i-iBCShift),
462  netabins,etamin,etamax,nphibins,phimin,phimax);
463  fhEtaPhiTriggerEMCALBC[i]->SetYTitle("#phi (rad)");
464  fhEtaPhiTriggerEMCALBC[i]->SetXTitle("#eta");
465  outputContainer->Add(fhEtaPhiTriggerEMCALBC[i]) ;
466 
467  fhTimeTriggerEMCALBC[i] = new TH2F
468  (Form("hTimeTriggerEMCALBC%d",i-iBCShift),
469  Form("cluster #it{time} vs #it{E} of clusters, Trigger EMCAL-BC=%d",i-iBCShift),
470  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
471  fhTimeTriggerEMCALBC[i]->SetXTitle("#it{E} (GeV)");
472  fhTimeTriggerEMCALBC[i]->SetYTitle("#it{time} (ns)");
473  outputContainer->Add(fhTimeTriggerEMCALBC[i]);
474 
476  (Form("hTimeTriggerEMCALBC%dPileUpSPD",i-iBCShift),
477  Form("cluster #it{time} vs #it{E} of clusters, Trigger EMCAL-BC=%d",i-iBCShift),
478  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
479  fhTimeTriggerEMCALBCPileUpSPD[i]->SetXTitle("#it{E} (GeV)");
480  fhTimeTriggerEMCALBCPileUpSPD[i]->SetYTitle("#it{time} (ns)");
481  outputContainer->Add(fhTimeTriggerEMCALBCPileUpSPD[i]);
482 
484  (Form("hEtaPhiTriggerEMCALBC%d_UnMatch",i-iBCShift),
485  Form("cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger EMCAL-BC=%d",i-iBCShift),
486  netabins,etamin,etamax,nphibins,phimin,phimax);
487  fhEtaPhiTriggerEMCALBCUM[i]->SetYTitle("#phi (rad)");
488  fhEtaPhiTriggerEMCALBCUM[i]->SetXTitle("#eta");
489  outputContainer->Add(fhEtaPhiTriggerEMCALBCUM[i]) ;
490 
492  (Form("hTimeTriggerEMCALBC%d_UnMatch",i-iBCShift),
493  Form("cluster #it{time} vs #it{E} of clusters, unmatched trigger EMCAL-BC=%d",i-iBCShift),
494  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
495  fhTimeTriggerEMCALBCUM[i]->SetXTitle("#it{E} (GeV)");
496  fhTimeTriggerEMCALBCUM[i]->SetYTitle("#it{time} (ns)");
497  outputContainer->Add(fhTimeTriggerEMCALBCUM[i]);
498 
500  (Form("hEtaPhiTriggerEMCALBC%d_OnlyTrigger",i-iBCShift),
501  Form("trigger cluster, #eta vs #phi, Trigger EMCAL-BC=%d",i-iBCShift),
502  netabins,etamin,etamax,nphibins,phimin,phimax);
503  fhEtaPhiTriggerEMCALBCCluster[i]->SetYTitle("#phi (rad)");
504  fhEtaPhiTriggerEMCALBCCluster[i]->SetXTitle("#eta");
505  outputContainer->Add(fhEtaPhiTriggerEMCALBCCluster[i]) ;
506 
508  (Form("hEtaPhiTriggerEMCALBC%d_OnlyTrigger_UnMatch",i-iBCShift),
509  Form("trigger cluster, #eta vs #phi, unmatched trigger EMCAL-BC=%d",i-iBCShift),
510  netabins,etamin,etamax,nphibins,phimin,phimax);
511  fhEtaPhiTriggerEMCALBCUMCluster[i]->SetYTitle("#phi (rad)");
512  fhEtaPhiTriggerEMCALBCUMCluster[i]->SetXTitle("#eta");
513  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMCluster[i]) ;
514  }
515 
516  fhTimeTriggerEMCALBCCluster = new TH2F("hTimeTriggerEMCALBC_OnlyTrigger",
517  "trigger cluster #it{time} vs #it{E} of clusters",
518  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
519  fhTimeTriggerEMCALBCCluster->SetXTitle("#it{E} (GeV)");
520  fhTimeTriggerEMCALBCCluster->SetYTitle("#it{time} (ns)");
521  outputContainer->Add(fhTimeTriggerEMCALBCCluster);
522 
523  fhTimeTriggerEMCALBCUMCluster = new TH2F("hTimeTriggerEMCALBC_OnlyTrigger_UnMatch",
524  "trigger cluster #it{time} vs #it{E} of clusters, unmatched trigger",
525  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
526  fhTimeTriggerEMCALBCUMCluster->SetXTitle("#it{E} (GeV)");
527  fhTimeTriggerEMCALBCUMCluster->SetYTitle("#it{time} (ns)");
528  outputContainer->Add(fhTimeTriggerEMCALBCUMCluster);
529 
531  ("hEtaPhiTriggerEMCALBC0_OnlyTrigger_OverThreshold",
532  "trigger cluster #it{E} > trigger threshold, #eta vs #phi, Trigger EMCAL-BC=0",
533  netabins,etamin,etamax,nphibins,phimin,phimax);
534  fhEtaPhiTriggerEMCALBCClusterOverTh->SetYTitle("#phi (rad)");
535  fhEtaPhiTriggerEMCALBCClusterOverTh->SetXTitle("#eta");
536  outputContainer->Add(fhEtaPhiTriggerEMCALBCClusterOverTh) ;
537 
539  ("hEtaPhiTriggerEMCALBC0_OnlyTrigger_OverThreshold_UnMatch",
540  "trigger cluster #it{E} > trigger threshold, #eta vs #phi, unmatched trigger EMCAL-BC=0",
541  netabins,etamin,etamax,nphibins,phimin,phimax);
542  fhEtaPhiTriggerEMCALBCUMClusterOverTh->SetYTitle("#phi (rad)");
543  fhEtaPhiTriggerEMCALBCUMClusterOverTh->SetXTitle("#eta");
544  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMClusterOverTh) ;
545 
547  ("hEtaPhiTriggerEMCALBC0_OnlyTrigger_BelowThreshold1",
548  "trigger cluster thresh-1 < #it{E} < thres, #eta vs #phi, Trigger EMCAL-BC=0",
549  netabins,etamin,etamax,nphibins,phimin,phimax);
550  fhEtaPhiTriggerEMCALBCClusterBelowTh1->SetYTitle("#phi (rad)");
551  fhEtaPhiTriggerEMCALBCClusterBelowTh1->SetXTitle("#eta");
552  outputContainer->Add(fhEtaPhiTriggerEMCALBCClusterBelowTh1) ;
553 
555  ("hEtaPhiTriggerEMCALBC0_OnlyTrigger_BelowThreshold1_UnMatch",
556  "trigger cluster thresh-1 < #it{E} < thres, #eta vs #phi, unmatched trigger EMCAL-BC=0",
557  netabins,etamin,etamax,nphibins,phimin,phimax);
558  fhEtaPhiTriggerEMCALBCUMClusterBelowTh1->SetYTitle("#phi (rad)");
559  fhEtaPhiTriggerEMCALBCUMClusterBelowTh1->SetXTitle("#eta");
560  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMClusterBelowTh1) ;
561 
563  ("hEtaPhiTriggerEMCALBC0_OnlyTrigger_BelowThreshold2",
564  "trigger cluster thresh-2 < #it{E} < thres, #eta vs #phi, Trigger EMCAL-BC=0",
565  netabins,etamin,etamax,nphibins,phimin,phimax);
566  fhEtaPhiTriggerEMCALBCClusterBelowTh2->SetYTitle("#phi (rad)");
567  fhEtaPhiTriggerEMCALBCClusterBelowTh2->SetXTitle("#eta");
568  outputContainer->Add(fhEtaPhiTriggerEMCALBCClusterBelowTh2) ;
569 
571  ("hEtaPhiTriggerEMCALBC0_OnlyTrigger_BelowThreshold2_UnMatch",
572  "trigger cluster thresh-2 < #it{E} < thres, #eta vs #phi, unmatched trigger EMCAL-BC=0",
573  netabins,etamin,etamax,nphibins,phimin,phimax);
574  fhEtaPhiTriggerEMCALBCUMClusterBelowTh2->SetYTitle("#phi (rad)");
575  fhEtaPhiTriggerEMCALBCUMClusterBelowTh2->SetXTitle("#eta");
576  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMClusterBelowTh2) ;
577 
578  if(!GetReader()->AreBadTriggerEventsRemoved())
579  {
581  ("hEtaPhiTriggerExotic",
582  "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Exotic",
583  netabins,etamin,etamax,nphibins,phimin,phimax);
584  fhEtaPhiTriggerEMCALBCExotic->SetYTitle("#phi (rad)");
585  fhEtaPhiTriggerEMCALBCExotic->SetXTitle("#eta");
586  outputContainer->Add(fhEtaPhiTriggerEMCALBCExotic) ;
587 
589  ("hTimeTriggerExotic",
590  "cluster #it{time} vs #it{E} of clusters, Trigger Exotic ",
591  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
592  fhTimeTriggerEMCALBCExotic->SetXTitle("#it{E} (GeV)");
593  fhTimeTriggerEMCALBCExotic->SetYTitle("#it{time} (ns)");
594  outputContainer->Add(fhTimeTriggerEMCALBCExotic);
595 
597  ("hEtaPhiTriggerExotic_UnMatch",
598  "cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Exotic",
599  netabins,etamin,etamax,nphibins,phimin,phimax);
600  fhEtaPhiTriggerEMCALBCUMExotic->SetYTitle("#phi (rad)");
601  fhEtaPhiTriggerEMCALBCUMExotic->SetXTitle("#eta");
602  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMExotic) ;
603 
605  ("hTimeTriggerExotic_UnMatch",
606  "cluster #it{time} vs #it{E} of clusters, unmatched trigger Exotic",
607  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
608  fhTimeTriggerEMCALBCUMExotic->SetXTitle("#it{E} (GeV)");
609  fhTimeTriggerEMCALBCUMExotic->SetYTitle("#it{time} (ns)");
610  outputContainer->Add(fhTimeTriggerEMCALBCUMExotic);
611 
613  ("hEtaPhiTriggerExotic_OnlyTrigger",
614  "trigger cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Exotic",
615  netabins,etamin,etamax,nphibins,phimin,phimax);
616  fhEtaPhiTriggerEMCALBCExoticCluster->SetYTitle("#phi (rad)");
617  fhEtaPhiTriggerEMCALBCExoticCluster->SetXTitle("#eta");
618  outputContainer->Add(fhEtaPhiTriggerEMCALBCExoticCluster) ;
619 
621  ("hTimeTriggerExotic_OnlyTrigger",
622  "trigger cluster #it{time} vs #it{E} of clusters, Trigger Exotic",
623  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
624  fhTimeTriggerEMCALBCExoticCluster->SetXTitle("#it{E} (GeV)");
625  fhTimeTriggerEMCALBCExoticCluster->SetYTitle("#it{time} (ns)");
626  outputContainer->Add(fhTimeTriggerEMCALBCExoticCluster);
627 
629  ("hEtaPhiTriggerExotic_OnlyTrigger_UnMatch",
630  "trigger cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Exotic",
631  netabins,etamin,etamax,nphibins,phimin,phimax);
632  fhEtaPhiTriggerEMCALBCUMExoticCluster->SetYTitle("#phi (rad)");
633  fhEtaPhiTriggerEMCALBCUMExoticCluster->SetXTitle("#eta");
634  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMExoticCluster) ;
635 
637  ("hTimeTriggerExotic_OnlyTrigger_UnMatch",
638  "trigger cluster #it{time} vs #it{E} of clusters, unmatched trigger Exotic",
639  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
640  fhTimeTriggerEMCALBCUMExoticCluster->SetXTitle("#it{E} (GeV)");
641  fhTimeTriggerEMCALBCUMExoticCluster->SetYTitle("#it{time} (ns)");
642  outputContainer->Add(fhTimeTriggerEMCALBCUMExoticCluster);
643 
645  ("hEtaPhiTriggerBad",
646  "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Bad",
647  netabins,etamin,etamax,nphibins,phimin,phimax);
648  fhEtaPhiTriggerEMCALBCBad->SetYTitle("#phi (rad)");
649  fhEtaPhiTriggerEMCALBCBad->SetXTitle("#eta");
650  outputContainer->Add(fhEtaPhiTriggerEMCALBCBad) ;
651 
653  ("hTimeTriggerBad",
654  "cluster #it{time} vs #it{E} of clusters, Trigger Bad ",
655  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
656  fhTimeTriggerEMCALBCBad->SetXTitle("#it{E} (GeV)");
657  fhTimeTriggerEMCALBCBad->SetYTitle("#it{time} (ns)");
658  outputContainer->Add(fhTimeTriggerEMCALBCBad);
659 
661  ("hEtaPhiTriggerBad_UnMatch",
662  "cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Bad",
663  netabins,etamin,etamax,nphibins,phimin,phimax);
664  fhEtaPhiTriggerEMCALBCUMBad->SetYTitle("#phi (rad)");
665  fhEtaPhiTriggerEMCALBCUMBad->SetXTitle("#eta");
666  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMBad) ;
667 
669  ("hTimeTriggerBad_UnMatch",
670  "cluster #it{time} vs #it{E} of clusters, unmatched trigger Bad",
671  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
672  fhTimeTriggerEMCALBCUMBad->SetXTitle("#it{E} (GeV)");
673  fhTimeTriggerEMCALBCUMBad->SetYTitle("#it{time} (ns)");
674  outputContainer->Add(fhTimeTriggerEMCALBCUMBad);
675 
677  ("hEtaPhiTriggerBad_OnlyTrigger",
678  "trigger cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Bad",
679  netabins,etamin,etamax,nphibins,phimin,phimax);
680  fhEtaPhiTriggerEMCALBCBadCluster->SetYTitle("#phi (rad)");
681  fhEtaPhiTriggerEMCALBCBadCluster->SetXTitle("#eta");
682  outputContainer->Add(fhEtaPhiTriggerEMCALBCBadCluster) ;
683 
685  ("hTimeTriggerBad_OnlyTrigger",
686  "trigger cluster #it{time} vs #it{E} of clusters, Trigger Bad",
687  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
688  fhTimeTriggerEMCALBCBadCluster->SetXTitle("#it{E} (GeV)");
689  fhTimeTriggerEMCALBCBadCluster->SetYTitle("#it{time} (ns)");
690  outputContainer->Add(fhTimeTriggerEMCALBCBadCluster);
691 
693  ("hEtaPhiTriggerBad_OnlyTrigger_UnMatch",
694  "trigger cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Bad",
695  netabins,etamin,etamax,nphibins,phimin,phimax);
696  fhEtaPhiTriggerEMCALBCUMBadCluster->SetYTitle("#phi (rad)");
697  fhEtaPhiTriggerEMCALBCUMBadCluster->SetXTitle("#eta");
698  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMBadCluster) ;
699 
701  ("hTimeTriggerBad_OnlyTrigger_UnMatch",
702  "trigger cluster time vs #it{E} of clusters, unmatched trigger Bad",
703  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
704  fhTimeTriggerEMCALBCUMBadCluster->SetXTitle("#it{E} (GeV)");
705  fhTimeTriggerEMCALBCUMBadCluster->SetYTitle("#it{time} (ns)");
706  outputContainer->Add(fhTimeTriggerEMCALBCUMBadCluster);
707 
709  ("hEtaPhiTriggerBadExotic",
710  "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Bad&Exotic",
711  netabins,etamin,etamax,nphibins,phimin,phimax);
712  fhEtaPhiTriggerEMCALBCBadExotic->SetYTitle("#phi (rad)");
713  fhEtaPhiTriggerEMCALBCBadExotic->SetXTitle("#eta");
714  outputContainer->Add(fhEtaPhiTriggerEMCALBCBadExotic) ;
715 
717  ("hTimeTriggerBadExotic",
718  "cluster #it{time} vs #it{E} of clusters, Trigger Bad&Exotic ",
719  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
720  fhTimeTriggerEMCALBCBadExotic->SetXTitle("#it{E} (GeV)");
721  fhTimeTriggerEMCALBCBadExotic->SetYTitle("#it{time} (ns)");
722  outputContainer->Add(fhTimeTriggerEMCALBCBadExotic);
723 
725  ("hEtaPhiTriggerBadExotic_UnMatch",
726  "cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Bad&Exotic",
727  netabins,etamin,etamax,nphibins,phimin,phimax);
728  fhEtaPhiTriggerEMCALBCUMBadExotic->SetYTitle("#phi (rad)");
729  fhEtaPhiTriggerEMCALBCUMBadExotic->SetXTitle("#eta");
730  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMBadExotic) ;
731 
733  ("hTimeTriggerBadExotic_UnMatch",
734  "cluster #it{time} vs #it{E} of clusters, unmatched trigger Bad&Exotic",
735  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
736  fhTimeTriggerEMCALBCUMBadExotic->SetXTitle("#it{E} (GeV)");
737  fhTimeTriggerEMCALBCUMBadExotic->SetYTitle("#it{time} (ns)");
738  outputContainer->Add(fhTimeTriggerEMCALBCUMBadExotic);
739 
741  ("hEtaPhiTriggerBadExotic_OnlyTrigger",
742  "trigger cluster #it{E} > 2 GeV, #eta vs #phi, Trigger Bad&Exotic",
743  netabins,etamin,etamax,nphibins,phimin,phimax);
744  fhEtaPhiTriggerEMCALBCBadExoticCluster->SetYTitle("#phi (rad)");
745  fhEtaPhiTriggerEMCALBCBadExoticCluster->SetXTitle("#eta");
746  outputContainer->Add(fhEtaPhiTriggerEMCALBCBadExoticCluster) ;
747 
749  ("hTimeTriggerBadExotic_OnlyTrigger",
750  "trigger cluster #it{time} vs #it{E} of clusters, Trigger Bad&Exotic",
751  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
752  fhTimeTriggerEMCALBCBadExoticCluster->SetXTitle("#it{E} (GeV)");
753  fhTimeTriggerEMCALBCBadExoticCluster->SetYTitle("#it{time} (ns)");
754  outputContainer->Add(fhTimeTriggerEMCALBCBadExoticCluster);
755 
757  ("hEtaPhiTriggerBadExotic_OnlyTrigger_UnMatch",
758  "trigger cluster #it{E} > 2 GeV, #eta vs #phi, unmatched trigger Bad&Exotic",
759  netabins,etamin,etamax,nphibins,phimin,phimax);
760  fhEtaPhiTriggerEMCALBCUMBadExoticCluster->SetYTitle("#phi (rad)");
761  fhEtaPhiTriggerEMCALBCUMBadExoticCluster->SetXTitle("#eta");
762  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMBadExoticCluster) ;
763 
765  ("hTimeTriggerBadExotic_OnlyTrigger_UnMatch",
766  "trigger cluster #it{time} vs #it{E} of clusters, unmatched trigger Bad&Exotic",
767  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
768  fhTimeTriggerEMCALBCUMBadExoticCluster->SetXTitle("#it{E} (GeV)");
769  fhTimeTriggerEMCALBCUMBadExoticCluster->SetYTitle("#it{time} (ns)");
770  outputContainer->Add(fhTimeTriggerEMCALBCUMBadExoticCluster);
771 
773  ("hTimeTriggerBadMaxCell",
774  "cluster #it{time} vs #it{E} of clusters, Trigger BadMaxCell",
775  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
776  fhTimeTriggerEMCALBCBadMaxCell->SetXTitle("#it{E} (GeV)");
777  fhTimeTriggerEMCALBCBadMaxCell->SetYTitle("#it{time} (ns)");
778  outputContainer->Add(fhTimeTriggerEMCALBCBadMaxCell);
779 
781  ("hTimeTriggerBadMaxCell_UnMatch",
782  "cluster #it{time} vs #it{E} of clusters, unmatched trigger BadMaxCell",
783  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
784  fhTimeTriggerEMCALBCUMBadMaxCell->SetXTitle("#it{E} (GeV)");
785  fhTimeTriggerEMCALBCUMBadMaxCell->SetYTitle("#it{time} (ns)");
786  outputContainer->Add(fhTimeTriggerEMCALBCUMBadMaxCell);
787 
788 
790  ("hTimeTriggerBadMaxCellExotic",
791  "cluster #it{time} vs #it{E} of clusters, Trigger BadMaxCell&Exotic",
792  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
793  fhTimeTriggerEMCALBCBadMaxCellExotic->SetXTitle("#it{E} (GeV)");
794  fhTimeTriggerEMCALBCBadMaxCellExotic->SetYTitle("#it{time} (ns)");
795  outputContainer->Add(fhTimeTriggerEMCALBCBadMaxCellExotic);
796 
798  ("hTimeTriggerBadMaxCellExotic_UnMatch",
799  "cluster #it{time} vs #it{E} of clusters, unmatched trigger BadMaxCell&Exotic",
800  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
801  fhTimeTriggerEMCALBCUMBadMaxCellExotic->SetXTitle("#it{E} (GeV)");
802  fhTimeTriggerEMCALBCUMBadMaxCellExotic->SetYTitle("#it{time} (ns)");
803  outputContainer->Add(fhTimeTriggerEMCALBCUMBadMaxCellExotic);
804 
805  fhTimeNoTrigger = new TH2F
806  ("hTimeNoTrigger",
807  "events with no foundable trigger, time vs e of clusters",
808  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
809  fhTimeNoTrigger->SetXTitle("#it{E} (GeV)");
810  fhTimeNoTrigger->SetYTitle("#it{time} (ns)");
811  outputContainer->Add(fhTimeNoTrigger);
812 
813  fhEtaPhiNoTrigger = new TH2F
814  ("hEtaPhiNoTrigger",
815  "events with no foundable trigger, eta vs phi of clusters",
816  netabins,etamin,etamax,nphibins,phimin,phimax);
817  fhEtaPhiNoTrigger->SetYTitle("#phi (rad)");
818  fhEtaPhiNoTrigger->SetXTitle("#eta");
819  outputContainer->Add(fhEtaPhiNoTrigger) ;
820  }
821 
822  fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster = new TH2F("hEtaPhiTriggerEMCALBC0_OnlyTrigger_UnMatch_ReMatch_OpenTime",
823  "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger EMCAL-BC=0, un match, rematch open time",
824  netabins,etamin,etamax,nphibins,phimin,phimax);
825  fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster->SetYTitle("#phi (rad)");
827  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster) ;
828 
829  fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster = new TH2F("hTimeTrigger_OnlyTrigger_UnMatch_ReMatch_OpenTime",
830  "cluster #it{time} vs #it{E} of clusters, no match, rematch open time",
831  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
832  fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster->SetXTitle("#it{E} (GeV)");
833  fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster->SetYTitle("#it{time} (ns)");
834  outputContainer->Add(fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster);
835 
836 
837  fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster = new TH2F("hEtaPhiTriggerEMCALBC0_OnlyTrigger_UnMatch_ReMatch_CheckNeighbours",
838  "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger EMCAL-BC=0, un match, rematch with neighbour patches",
839  netabins,etamin,etamax,nphibins,phimin,phimax);
840  fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster->SetYTitle("#phi (rad)");
843 
844  fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster = new TH2F("hTimeTrigger_OnlyTrigger_UnMatch_ReMatch_CheckNeighbours",
845  "cluster #it{time} vs #it{E} of clusters, no match, rematch with neigbour parches",
846  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
847  fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster->SetXTitle("#it{E} (GeV)");
848  fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster->SetYTitle("#it{time} (ns)");
850 
851  fhEtaPhiTriggerEMCALBCUMReMatchBothCluster = new TH2F("hEtaPhiTriggerEMCALBC0_OnlyTrigger_UnMatch_ReMatch_Both",
852  "cluster #it{E} > 2 GeV, #eta vs #phi, Trigger EMCAL-BC=0, un match, rematch open time and neighbour",
853  netabins,etamin,etamax,nphibins,phimin,phimax);
854  fhEtaPhiTriggerEMCALBCUMReMatchBothCluster->SetYTitle("#phi (rad)");
856  outputContainer->Add(fhEtaPhiTriggerEMCALBCUMReMatchBothCluster) ;
857 
858  fhTimeTriggerEMCALBCUMReMatchBothCluster = new TH2F("hTimeTrigger_OnlyTrigger_UnMatch_ReMatch_Both",
859  "cluster #it{time} vs #it{E} of clusters, no match, rematch open time and neigbour",
860  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
861  fhTimeTriggerEMCALBCUMReMatchBothCluster->SetXTitle("#it{E} (GeV)");
862  fhTimeTriggerEMCALBCUMReMatchBothCluster->SetYTitle("#it{time} (ns)");
863  outputContainer->Add(fhTimeTriggerEMCALBCUMReMatchBothCluster);
864 
865  fhTimeTriggerEMCALBC0UMReMatchOpenTime = new TH2F("hTimeTriggerBC0_UnMatch_ReMatch_OpenTime",
866  "cluster #it{time} vs #it{E} of clusters, no match, rematch open time",
867  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
868  fhTimeTriggerEMCALBC0UMReMatchOpenTime->SetXTitle("#it{E} (GeV)");
869  fhTimeTriggerEMCALBC0UMReMatchOpenTime->SetYTitle("#it{time} (ns)");
870  outputContainer->Add(fhTimeTriggerEMCALBC0UMReMatchOpenTime);
871 
872 
873  fhTimeTriggerEMCALBC0UMReMatchCheckNeigh = new TH2F("hTimeTriggerBC0_UnMatch_ReMatch_CheckNeighbours",
874  "cluster #it{time} vs #it{E} of clusters, no match, rematch with neigbour parches",
875  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
876  fhTimeTriggerEMCALBC0UMReMatchCheckNeigh->SetXTitle("#it{E} (GeV)");
877  fhTimeTriggerEMCALBC0UMReMatchCheckNeigh->SetYTitle("#it{time} (ns)");
878  outputContainer->Add(fhTimeTriggerEMCALBC0UMReMatchCheckNeigh);
879 
880  fhTimeTriggerEMCALBC0UMReMatchBoth = new TH2F("hTimeTriggerBC0_UnMatch_ReMatch_Both",
881  "cluster #it{time} vs #it{E} of clusters, no match, rematch open time and neigbour",
882  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
883  fhTimeTriggerEMCALBC0UMReMatchBoth->SetXTitle("#it{E} (GeV)");
884  fhTimeTriggerEMCALBC0UMReMatchBoth->SetYTitle("#it{time} (ns)");
885  outputContainer->Add(fhTimeTriggerEMCALBC0UMReMatchBoth);
886 
888  ("hEtaPhiSelectedEMCALBC0","Selected, #it{E} > 2 GeV, #eta vs #phi, for clusters with |time| < 25 ns, EMCAL-BC=0",netabins,etamin,etamax,nphibins,phimin,phimax);
889  fhEtaPhiSelectedEMCALBC0->SetYTitle("#phi (rad)");
890  fhEtaPhiSelectedEMCALBC0->SetXTitle("#eta");
891  outputContainer->Add(fhEtaPhiSelectedEMCALBC0) ;
892 
894  ("hEtaPhiSelectedEMCALBC1","Selected, #it{E} > 2 GeV, #eta vs #phi, for clusters with 25 < |time| < 75 ns, EMCAL-BC=1",netabins,etamin,etamax,nphibins,phimin,phimax);
895  fhEtaPhiSelectedEMCALBC1->SetYTitle("#phi (rad)");
896  fhEtaPhiSelectedEMCALBC1->SetXTitle("#eta");
897  outputContainer->Add(fhEtaPhiSelectedEMCALBC1) ;
898 
900  ("hEtaPhiSelectedEMCALBCN","Selected, #it{E} > 2 GeV, #eta vs #phi, for clusters with |time| > 75 ns, EMCAL-BC>1",netabins,etamin,etamax,nphibins,phimin,phimax);
901  fhEtaPhiSelectedEMCALBCN->SetYTitle("#phi (rad)");
902  fhEtaPhiSelectedEMCALBCN->SetXTitle("#eta");
903  outputContainer->Add(fhEtaPhiSelectedEMCALBCN) ;
904 
905  for(Int_t i = 0; i < nTrigBC; i++)
906  {
908  (Form("hEtaPhiSelectedTriggerEMCALBC%d",i-iBCShift),
909  Form("photon #it{E} > 2 GeV, #eta vs #phi, SelectedTrigger EMCAL-BC=%d",i-iBCShift),
910  netabins,etamin,etamax,nphibins,phimin,phimax);
911  fhEtaPhiSelectedTriggerEMCALBC[i]->SetYTitle("#phi (rad)");
912  fhEtaPhiSelectedTriggerEMCALBC[i]->SetXTitle("#eta");
913  outputContainer->Add(fhEtaPhiSelectedTriggerEMCALBC[i]) ;
914 
916  (Form("hTimeSelectedTriggerEMCALBC%d",i-iBCShift),
917  Form("photon #it{time} vs #it{E} of clusters, SelectedTrigger EMCAL-BC=%d",i-iBCShift),
918  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
919  fhTimeSelectedTriggerEMCALBC[i]->SetXTitle("#it{E} (GeV)");
920  fhTimeSelectedTriggerEMCALBC[i]->SetYTitle("#it{time} (ns)");
921  outputContainer->Add(fhTimeSelectedTriggerEMCALBC[i]);
922 
924  (Form("hTimeSelectedTriggerEMCALBC%dPileUpSPD",i-iBCShift),
925  Form("photon #it{time} vs #it{E}, SelectedTrigger EMCAL-BC=%d",i-iBCShift),
926  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
927  fhTimeSelectedTriggerEMCALBCPileUpSPD[i]->SetXTitle("#it{E} (GeV)");
928  fhTimeSelectedTriggerEMCALBCPileUpSPD[i]->SetYTitle("#it{time} (ns)");
929  outputContainer->Add(fhTimeSelectedTriggerEMCALBCPileUpSPD[i]);
930 
932  (Form("hEtaPhiSelectedTriggerEMCALBC%d_UnMatch",i-iBCShift),
933  Form("photon #it{E} > 2 GeV, #eta vs #phi, unmatched trigger EMCAL-BC=%d",i-iBCShift),
934  netabins,etamin,etamax,nphibins,phimin,phimax);
935  fhEtaPhiSelectedTriggerEMCALBCUM[i]->SetYTitle("#phi (rad)");
936  fhEtaPhiSelectedTriggerEMCALBCUM[i]->SetXTitle("#eta");
937  outputContainer->Add(fhEtaPhiSelectedTriggerEMCALBCUM[i]) ;
938 
940  (Form("hTimeSelectedTriggerEMCALBC%d_UnMatch",i-iBCShift),
941  Form("photon #it{time} vs #it{E}, unmatched trigger EMCAL-BC=%d",i-iBCShift),
942  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
943  fhTimeSelectedTriggerEMCALBCUM[i]->SetXTitle("#it{E} (GeV)");
944  fhTimeSelectedTriggerEMCALBCUM[i]->SetYTitle("#it{time} (ns)");
945  outputContainer->Add(fhTimeSelectedTriggerEMCALBCUM[i]);
946  }
947 
948  fhTimeSelectedTriggerEMCALBC0UMReMatchOpenTime = new TH2F("hTimeSelectedTriggerBC0_UnMatch_ReMatch_OpenTime",
949  "cluster #it{time} vs #it{E} of photons, no match, rematch open time",
950  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
951  fhTimeSelectedTriggerEMCALBC0UMReMatchOpenTime->SetXTitle("#it{E} (GeV)");
952  fhTimeSelectedTriggerEMCALBC0UMReMatchOpenTime->SetYTitle("#it{time} (ns)");
954 
955 
956  fhTimeSelectedTriggerEMCALBC0UMReMatchCheckNeigh = new TH2F("hTimeSelectedTriggerBC0_UnMatch_ReMatch_CheckNeighbours",
957  "cluster #it{time} vs #it{E} of photons, no match, rematch with neigbour parches",
958  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
959  fhTimeSelectedTriggerEMCALBC0UMReMatchCheckNeigh->SetXTitle("#it{E} (GeV)");
960  fhTimeSelectedTriggerEMCALBC0UMReMatchCheckNeigh->SetYTitle("#it{time} (ns)");
962 
963  fhTimeSelectedTriggerEMCALBC0UMReMatchBoth = new TH2F("hTimeSelectedTriggerBC0_UnMatch_ReMatch_Both",
964  "cluster #it{time} vs #it{E} of photons, no match, rematch open time and neigbour",
965  nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
966  fhTimeSelectedTriggerEMCALBC0UMReMatchBoth->SetXTitle("#it{E} (GeV)");
967  fhTimeSelectedTriggerEMCALBC0UMReMatchBoth->SetYTitle("#it{time} (ns)");
968  outputContainer->Add(fhTimeSelectedTriggerEMCALBC0UMReMatchBoth);
969 
970  return outputContainer ;
971 }
972 
973 //_____________________________________
976 //_____________________________________
978 {
979  if(!GetReader()->IsEMCALSwitchedOn() || GetReader()->GetDataType() == AliCaloTrackReader::kMC)
980  {
981  AliFatal("You want to use EMCAL real data in analysis but it is not read!! \n!!Check the configuration file!!\n");
982  }
983 }
984 
985 //_______________________________________________
987 //_______________________________________________
989 {
990  AddToHistogramsName("AnaEMCALTriggerCluster_");
991 
992  fRejectTrackMatch = kTRUE;
993  fMinM02 = 0.1;
994  fMaxM02 = 0.3;
995  fNCellsCut = 2;
996 }
997 
998 //____________________________________________________________
1001 //____________________________________________________________
1003 {
1004  TObjArray * pl = GetEMCALClusters();
1005 
1006  if(!pl)
1007  {
1008  AliWarning("TObjArray with clusters is NULL!");
1009  return;
1010  }
1011 
1013 
1014  // Loop on raw clusters before filtering in the reader and fill control histogram
1015 
1016  Int_t nCaloClusters = pl->GetEntriesFast();
1017  Int_t idTrig = GetReader()->GetTriggerClusterIndex();
1018 
1019  AliDebug(1,Form("Input cluster entries %d", nCaloClusters));
1020 
1021  // Loop on clusters
1022  for(Int_t icalo = 0; icalo < nCaloClusters; icalo++)
1023  {
1024  AliVCluster * calo = (AliVCluster*) (pl->At(icalo));
1025  //printf("calo %d, %f\n",icalo,calo->E());
1026 
1027  calo->GetMomentum(fMomentum,GetVertex(0)) ;
1028 
1029  Float_t tofcluster = calo->GetTOF()*1.e9;
1030  Float_t ecluster = fMomentum.E();
1031  Float_t etacluster = fMomentum.Eta();
1032  Float_t phicluster = fMomentum.Phi();
1033  if(phicluster < 0) phicluster+=TMath::TwoPi();
1034 
1035  FillRawClusterTriggerBCHistograms(calo->GetID(),ecluster,tofcluster,etacluster,phicluster);
1036 
1037  // Select clusters
1038 
1039  if(idTrig < 0) continue;
1040 
1041  fhE->Fill(ecluster, GetEventWeight());
1042  if(ecluster > 0.5) fhEtaPhi->Fill(etacluster, phicluster, GetEventWeight());
1043 
1044  //.......................................
1045  //If too small or big energy, skip it
1046  if(ecluster < GetMinEnergy() || ecluster > GetMaxEnergy() ) continue ;
1047 
1048  //.......................................
1049  if(calo->GetNCells() <= fNCellsCut) continue;
1050 
1051  //.......................................
1052  //Check acceptance selection
1053  if(IsFiducialCutOn())
1054  {
1056  if(! in ) continue ;
1057  }
1058 
1059  //.......................................
1060  //Skip matched clusters with tracks
1061  if(fRejectTrackMatch && IsTrackMatched(calo,GetReader()->GetInputEvent())) continue;
1062 
1063  //.......................................
1064  //Skip matched clusters with Large shower shape
1065  if(calo->GetM02() < fMinM02 || calo->GetM02() > fMaxM02) continue;
1066 
1067  fhESelected ->Fill(ecluster, GetEventWeight());
1068  if(ecluster > 0.5) fhEtaPhiSelected->Fill(etacluster, phicluster, GetEventWeight());
1069 
1070  Float_t tofUS = TMath::Abs(tofcluster);
1071 
1072  if(calo->E() > 2)
1073  {
1074  if (tofUS < 25) fhEtaPhiSelectedEMCALBC0->Fill(etacluster, phicluster, GetEventWeight());
1075  else if (tofUS < 75) fhEtaPhiSelectedEMCALBC1->Fill(etacluster, phicluster, GetEventWeight());
1076  else fhEtaPhiSelectedEMCALBCN->Fill(etacluster, phicluster, GetEventWeight());
1077  }
1078 
1080  Int_t histoBC = bc-5;
1081  if(GetReader()->AreBadTriggerEventsRemoved()) histoBC = 0 ; // histograms created only for one BC since the others where rejected
1082 
1083  if(TMath::Abs(bc) < 6 && !GetReader()->IsBadCellTriggerEvent() && !GetReader()->IsExoticEvent())
1084  {
1085  if(GetReader()->IsTriggerMatched())
1086  {
1087  if(calo->E() > 2) fhEtaPhiSelectedTriggerEMCALBC[histoBC]->Fill(etacluster, phicluster, GetEventWeight());
1088  fhTimeSelectedTriggerEMCALBC[histoBC]->Fill(ecluster, tofcluster, GetEventWeight());
1089  if(GetReader()->IsPileUpFromSPD()) fhTimeSelectedTriggerEMCALBCPileUpSPD[histoBC]->Fill(ecluster, tofcluster, GetEventWeight());
1090  }
1091  else
1092  {
1093  if(calo->E() > 2) fhEtaPhiSelectedTriggerEMCALBCUM[histoBC]->Fill(etacluster, phicluster, GetEventWeight());
1094  fhTimeSelectedTriggerEMCALBCUM[histoBC]->Fill(calo->E(), tofcluster, GetEventWeight());
1095 
1096  if(bc==0)
1097  {
1101  }
1102  }
1103  }
1104  else if(TMath::Abs(bc) >= 6)
1105  AliWarning(Form("Trigger BC not expected = %d",bc));
1106 
1107  }// cluster loop
1108 
1109  AliDebug(1,"End fill histograms");
1110 }
1111 
1112 //________________________________________________________________
1114 //________________________________________________________________
1116 {
1117  if(! opt)
1118  return;
1119 
1120  printf("**** Print %s %s ****\n", GetName(), GetTitle() ) ;
1121  //AliAnaCaloTrackCorrBaseClass::Print(" ");
1122  printf("Reject clusters with a track matched = %d\n", fRejectTrackMatch);
1123  printf("M02 Cut: %2.2f < m02 < %2.2f\n" , fMinM02,fMaxM02);
1124  printf("Number of cells in cluster is > %d \n" , fNCellsCut);
1125 }
Float_t GetHistoPtMax() const
Bool_t IsBadMaxCellTriggerEvent() const
TH2F * fhEtaPhiTriggerEMCALBCExoticCluster
! Pseudorapidity vs Phi of trigger exotic clusters
Float_t GetHistoPtMin() const
TH2F * fhTimeTriggerEMCALBC[11]
! Time distribution of clusters, when trigger is in a given BC
virtual void AddToHistogramsName(TString add)
TH2F * fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster
! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger, rematched with neigbour patchs
Definition: External.C:236
TH2F * fhTimeTriggerEMCALBCUM[11]
! Time distribution of clusters, when trigger is in a given BC, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster
! Time distribution of highest energy bad max cell cluster in event, when trigger is not found...
TH2F * fhTimeTriggerEMCALBCBadExotic
! Time distribution of clusters, when trigger exotic and bad cluster
TH2F * fhTimeTriggerEMCALBCUMBadCluster
! Time distribution of highest energy bad cluster in event, when trigger is in a given BC...
virtual void GetVertex(Double_t vertex[3]) const
TH2F * fhEtaPhiTriggerEMCALBCUM[11]
! Pseudorapidity vs Phi of clusters for E > 2, not matched to trigger
TH2F * fhTimeTriggerEMCALBCUMBadMaxCell
! Time distribution of highest energy bad max cell cluster in event, when trigger is not found ...
virtual AliVEvent * GetInputEvent() const
TH2F * fhTimeTriggerEMCALBCUMBad
! Time distribution of highest energy exotic cluster in event, not matched to trigger ...
TH2F * fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster
! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger, rematched open time trigger
TH2F * fhEtaPhiTriggerEMCALBCUMBadExotic
! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBCUMBadMaxCellExotic
! Time distribution of highest energy exotic with bad max cell cluster in event, when trigger is not ...
TH2F * fhEtaPhiTriggerEMCALBCUMExotic
! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger ...
TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchBoth
! Time distribution of photons in event, when trigger is not found, rematched open both ...
virtual Bool_t IsTrackMatched(AliVCluster *cluster, AliVEvent *event)
TH2F * fhEtaPhiTriggerEMCALBCClusterOverTh
! Pseudorapidity vs Phi of trigger clusters, over nominal threshold
Int_t GetHistoPhiBins() const
TH2F * fhTimeTriggerEMCALBCBadMaxCell
! Time distribution of trigger clusters, when trigger bad max cell
TH2F * fhEtaPhiSelectedEMCALBCN
! Pseudorapidity vs Phi of identified photon for E > 0.5
Int_t fNCellsCut
Accept for the analysis clusters with more than fNCellsCut cells.
TH2F * fhEtaPhiTriggerEMCALBCUMBad
! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBCBadExoticCluster
! Time distribution of clusters, when trigger exotic and bad cluster
TH2F * fhTimeTriggerEMCALBC0UMReMatchCheckNeigh
! Time distribution of clusters, not matched to trigger, rematched with neighbour patchs ...
TH2F * fhEtaPhiSelectedTriggerEMCALBCUM[11]
! Pseudorapidity vs Phi of photons for E > 2, not matched to trigger
Bool_t IsTriggerMatchedOpenCuts(Int_t i) const
TH2F * fhEtaPhiEMCALBC1
! Pseudorapidity vs Phi of clusters for E > 0.5
TH2F * fhTimeTriggerEMCALBCExoticCluster
! Time distribution of clusters, when trigger exotic cluster
Float_t GetHistoPhiMin() const
TH2F * fhTimeTriggerEMCALBCUMExotic
! Time distribution of highest energy exotic cluster in event, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBC0UMReMatchOpenTime
! Time distribution of clusters, not matched to trigger, rematched open time trigger ...
Float_t fMaxM02
Remove clusters with small M02.
TH2F * fhTimeTriggerEMCALBCBadMaxCellExotic
! Time distribution of trigger clusters, when trigger exotic cluster with bad max cell ...
TH2F * fhTimeTriggerEMCALBCUMReMatchBothCluster
! Time distribution of highest energy bad max cell cluster in event, when trigger is not found...
const Double_t etamin
TH2F * fhEtaPhiTriggerEMCALBCBadCluster
! Pseudorapidity vs Phi of trigger bad clusters
Base class for CaloTrackCorr analysis algorithms.
TH2F * fhEtaPhiSelectedEMCALBC0
! Pseudorapidity vs Phi of identified photon for E > 0.5
virtual AliFiducialCut * GetFiducialCut()
int Int_t
Definition: External.C:63
Float_t GetEventTriggerL0Threshold() const
virtual AliHistogramRanges * GetHistogramRanges()
float Float_t
Definition: External.C:68
void FillBadTriggerEventHistogram()
Fill Bad events histo, study bad/exotic trigger BC.
TObjString * GetAnalysisCuts()
Save parameters used for analysis.
TH2F * fhTimeSelectedTriggerEMCALBCPileUpSPD[11]
! Time distribution of photons, when trigger is in a given BC, tagged as pile-up SPD ...
const Double_t ptmax
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
TH1F * fhESelected
! Selected custers E
Bool_t IsInFiducialCut(Float_t eta, Float_t phi, Int_t det) const
TH2F * fhEtaPhiTriggerEMCALBCBadExoticCluster
! Pseudorapidity vs Phi of trigger exotic and bad clusters
virtual AliAODEvent * GetOutputEvent() const
TH2F * fhEtaPhiEMCALBCN
! Pseudorapidity vs Phi of clusters for E > 0.5
Int_t GetTriggerClusterBC() const
TH2F * fhEtaPhiTriggerEMCALBCBadExotic
! Pseudorapidity vs Phi of trigger exotic and bad clusters
const Double_t ptmin
TH2F * fhTimeTriggerEMCALBCBad
! Time distribution of clusters, when trigger exotic
TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh2
! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
virtual Double_t GetEventWeight() const
TH2F * fhTimeTriggerEMCALBCPileUpSPD[11]
! Time distribution of clusters, when trigger is in a given BC, tagged as pile-up SPD ...
TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh1
! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
Class for study of EMCAL trigger behaviour.
TH2F * fhTimeTriggerEMCALBCCluster
! Time distribution of clusters, when trigger cluster is in a given BC
TH2F * fhEtaPhiNoTrigger
! Pseudorapidity vs Phi of highest E exotic cluster in event, no trigger at all
TH2F * fhTimeSelectedTriggerEMCALBCUM[11]
! Time distribution of photons, when trigger is in a given BC, not matched to trigger ...
Float_t GetHistoEtaMin() const
Int_t GetTriggerClusterIndex() const
TH2F * fhEtaPhiSelectedEMCALBC1
! Pseudorapidity vs Phi of identified photon for E > 0.5
TH2F * fhTimeTriggerEMCALBCUMCluster
! Time distribution of highest energy cluster in event, when trigger is in a given BC...
TH2F * fhEtaPhiTriggerEMCALBCUMBadCluster
! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger ...
TH2F * fhTimeTriggerEMCALBCBadCluster
! Time distribution of clusters, when trigger bad cluster is in a given BC
TH2F * fhEtaPhiTriggerEMCALBC[11]
! Pseudorapidity vs Phi of clusters for E > 2
Float_t GetHistoEtaMax() const
TH2F * fhEtaPhi
! Raw Pseudorapidity vs Phi of clusters for E > 0.5
TH2F * fhTimeTriggerEMCALBC0UMReMatchBoth
! Time distribution of clusters, not matched to trigger, rematched open both
Int_t GetHistoPtBins() const
TH2F * fhEtaPhiTriggerEMCALBCUMBadExoticCluster
! Pseudorapidity vs Phi of highest E exotic and bad cluster in event, not matched to trigger ...
Float_t GetEventTriggerL1Threshold() const
TH2F * fhEtaPhiTriggerEMCALBCUMExoticCluster
! Pseudorapidity vs Phi of highest E exotic cluster in event, not matched to trigger ...
TH2F * fhEtaPhiTriggerEMCALBCUMReMatchBothCluster
! Pseudorapidity vs Phi of highest E bad cluster in event, not matched to trigger, rematched open both
Bool_t fRejectTrackMatch
Reject clusters which have an associated TPC track.
TH2F * fhEtaPhiTriggerEMCALBCBad
! Pseudorapidity vs Phi of trigger exotic clusters
Bool_t IsExoticEvent() const
TLorentzVector fMomentum
! Cluster momentum
void FillRawClusterTriggerBCHistograms(Int_t idcalo, Float_t ecluster, Float_t tofcluster, Float_t etacluster, Float_t phicluster)
Fill trigger related histograms.
const Double_t etamax
Int_t GetHistoTimeBins() const
TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchOpenTime
! Time distribution of photons in event, when trigger is not found, rematched open time trigger ...
const char Option_t
Definition: External.C:48
Float_t GetHistoTimeMax() const
TString GetEMCALClusterListName() const
Float_t GetHistoTimeMin() const
TH2F * fhEtaPhiTriggerEMCALBCCluster[11]
! Pseudorapidity vs Phi of trigger clusters
TH2F * fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster
! Time distribution of highest energy bad max cell cluster in event, when trigger is not found...
Float_t fMinM02
Remove clusters with large M02.
Float_t GetHistoPhiMax() const
bool Bool_t
Definition: External.C:53
virtual AliCaloTrackReader * GetReader() const
TH2F * fhTimeTriggerEMCALBCExotic
! Time distribution of clusters, when trigger exotic cluster
Int_t GetHistoEtaBins() const
TH2F * fhEtaPhiTriggerEMCALBCUMCluster[11]
! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger
TH2F * fhEtaPhiSelected
! Pseudorapidity vs Phi of clusters for E > 0.5
virtual TObjArray * GetEMCALClusters() const
TH2F * fhTimeTriggerEMCALBCUMBadExotic
! Time distribution of highest energy exotic cluster in event, not matched to trigger ...
TH2F * fhEtaPhiEMCALBC0
! Pseudorapidity vs Phi of clusters for E > 0.5
Bool_t IsBadCellTriggerEvent() const
TH2F * fhTimeSelectedTriggerEMCALBC[11]
! Time distribution of photons, when trigger is in a given BC
void InitParameters()
Initialize the parameters of the analysis with default values.
Int_t nptbins
TH2F * fhTimeTriggerEMCALBCUMBadExoticCluster
! Time distribution of highest energy exotic and bad cluster in event, not matched to trigger ...
TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh1
! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger, 2 GeV below nominal th...
TH2F * fhEtaPhiTriggerEMCALBCUMClusterOverTh
! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger, over nominal threshold...
TH2F * fhEtaPhiTriggerEMCALBCExotic
! Pseudorapidity vs Phi of trigger exotic clusters
TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh2
! Pseudorapidity vs Phi of highest E cluster in event, not matched to trigger, 2 GeV below nominal th...
TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchCheckNeigh
! Time distribution of photons in event, when trigger is not found, rematched with neigbour patchs ...
const Double_t phimin
TH2F * fhEtaPhiSelectedTriggerEMCALBC[11]
! Pseudorapidity vs Phi of photons for E > 0.5
TH2F * fhTimeNoTrigger
! Time distribution of highest energy exotic cluster in event, no trigger at all
Int_t GetTriggerClusterId() const
TH2F * fhTimeTriggerEMCALBCUMExoticCluster
! Time distribution of highest energy exotic cluster in event, not matched to trigger ...