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