]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALTasks/AliAnalysisTaskEMCALTriggerQA.h
fix
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALTriggerQA.h
CommitLineData
bce9493b 1#ifndef ALIANALYSISTASKEMCALTRIGGERQA_H
2#define ALIANALYSISTASKEMCALTRIGGERQA_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//-------------------------------------------------------------------------//
8// Fill histograms with basic QA information for EMCAL offline trigger //
e395081d 9// Author: Nicolas Arbor (LPSC-Grenoble), Rachid Guernane (LPSC-Grenoble) //
bce9493b 10// Gustavo Conesa Balbastre (LPSC-Grenoble) //
11// //
12//-------------------------------------------------------------------------//
13
14//--- Root ---
15class TList;
ec77a234 16class TH1F;
17class TH2I;
bce9493b 18class TH2F;
19class AliEMCALGeometry;
0d896539 20class TProfile2D;
bce9493b 21
22//--- AliRoot ---
6bfd1538 23class AliEMCALRecoUtils;
bce9493b 24#include "AliEMCALGeoParams.h"
25#include "AliAnalysisTaskSE.h"
26
27class AliAnalysisTaskEMCALTriggerQA : public AliAnalysisTaskSE
28{
29public:
30 AliAnalysisTaskEMCALTriggerQA(); // default constructor
31
32 AliAnalysisTaskEMCALTriggerQA(const char *name); // named constructor
33
a40222c8 34 virtual ~AliAnalysisTaskEMCALTriggerQA() { ; } // destructor
bce9493b 35
36
37 void UserCreateOutputObjects(); // you should create your output objects in that function if possible
38
39 void UserExec(Option_t *option); // function called for each event
40
41 void SetGeometryName(TString name) { fGeoName = name ; }
0d896539 42
6bfd1538 43 AliEMCALRecoUtils* GetRecoUtils() { return fRecoUtils ; }
44
85196c29 45 //Histogram setters
46
47 void SetTRUTotalSignalHistogramsRange(Int_t nbins, Float_t max) { fNBinsTRUSignal = nbins; fMaxTRUSignal = max ; }
48 void SetSTUTotalSignalHistogramsRange(Int_t nbins, Float_t max) { fNBinsSTUSignal = nbins; fMaxSTUSignal = max ; }
49 void SetV0TotalSignalHistogramsRange (Int_t nbins, Float_t max) { fNBinsV0Signal = nbins; fMaxV0Signal = max ; }
50 void SetSTUFEERatioHistogramsRange (Int_t nbins, Float_t max) { fNBinsSTUFEERatio = nbins; fMaxSTUFEERatio = max ; }
51 void SetSTUTRURatioHistogramsRange (Int_t nbins, Float_t max) { fNBinsSTUTRURatio = nbins; fMaxSTUFEERatio = max ; }
8a50a36c 52 void SetClusterEHistogramsRange (Int_t nbins, Float_t max) { fNBinsClusterE = nbins; fMaxClusterE = max ; }
bce9493b 53
54private:
0d896539 55 TList *fOutputList; //! Output list
56
ec77a234 57 AliEMCALRecoUtils *fRecoUtils; // RecoUtils
58
0d896539 59 AliEMCALGeometry *fGeometry; // Access to EMCAL geometry utils
60 TString fGeoName; // Name of geometry used
61
0d896539 62 TH1F *fhNEvents; //! Number of selected events
63 TH2F *fhFORAmp; //! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column
64 TH2F *fhFORAmpL1G; //! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Gamma trigger event
65 TH2F *fhFORAmpL1J; //! FEE cells deposited energy, grouped like FastOR 2x2 per Row and Column, with L1 Jet trigger event
66 TH2F *fhL0Amp; //! FALTRO signal per Row and Column for FOR involves L0 patch
67 TH2F *fhL0AmpL1G; //! FALTRO signal per Row and Column for FOR involves L0 patch, with L1G trigger event
68 TH2F *fhL0AmpL1J; //! FALTRO signal per Row and Column for FOR involves L0 patch, with L1J trigger event
69 TH2F *fhL1Amp; //! STU signal per Row and Column for FOR involves L0 patch
70 TH2F *fhL1GAmp; //! STU signal per Row and Column for FOR position of L1 Gamma patch (top-left)
71 TH2F *fhL1JAmp; //! STU signal per Row and Column for FOR position of L1 Jet patch (top-left)
72 TH2F *fhL0Patch; //! FOR with L0 patch associated
73 TH2F *fhL1GPatch; //! FOR with L1 Gamma patch associated
74 TH2F *fhL1JPatch; //! FOR with L1 Jet patch associated
75 TH2F *fhFEESTU; //! Correlation FEE vs STU
76 TH2F *fhTRUSTU; //! Correlation TRU vs STU
77 TH2I *fhV0STU; //! Total signal STU vs V0C+V0S
ec77a234 78
79 TH2F *fhGPMaxVV0TT; //! V0 signal vs maximum gamma L1 patch
80 TH2F *fhJPMaxVV0TT; //! V0 signal vs maximum jet L1 patch
81 TProfile2D *fhFORMeanAmp; //! Mean FastOR(FEE) signal per Row and Column
82 TProfile2D *fhL0MeanAmp; //! Mean FastOR(TRU) signal per Row and Column
83 TProfile2D *fhL1MeanAmp; //! Mean FastOR(STU) signal per Row and Column
84 TH1F *fhV0MB; //! V0 distribution for MB triggered event
85 TH1F *fhV0L1G; //! V0 distribution for L1G triggered event
86 TH1F *fhV0L1J; //! V0 distribution for L1J triggered event
87 TH2F *fhL1GPatchMax; //! FOR of max. amplitude patch with L1 Gamma patch associated
88 TH2F *fhL1JPatchMax; //! FOR of max. amplitude patch with L1 Jet patch associated
89
90 // Cluster vs trigger histograms
91
0d896539 92 TH1F *fhClusMB; //! Clusters distribution for MB trigger
93 TH1F *fhClusMBPure; //! Clusters distribution for MB trigger
94 TH1F *fhClusL0; //! Clusters distribution for L0 trigger
95 TH1F *fhClusL1G; //! Clusters distribution for L1G trigger
96 TH1F *fhClusL1J; //! Clusters distribution for L1J trigger
97 TH1F *fhClusL1GOnly; //! Clusters distribution for L1G trigger and not L1J
98 TH1F *fhClusL1JOnly; //! Clusters distribution for L1J trigger and not L1G
e395081d 99 TH1F *fhClusMaxMB; //! Maximum E Cluster per event distribution for MB trigger
0d896539 100 TH1F *fhClusMaxMBPure; //! Maximum E Cluster per event distribution for MB trigger
e395081d 101 TH1F *fhClusMaxL0; //! Maximum E Cluster per event distribution for L0 trigger
102 TH1F *fhClusMaxL1G; //! Maximum E Cluster per event distribution for L1G trigger
103 TH1F *fhClusMaxL1J; //! Maximum E Cluster per event distribution for L1J trigger
104 TH1F *fhClusMaxL1GOnly; //! Maximum E Cluster per event distribution for L1G trigger and not L1J
105 TH1F *fhClusMaxL1JOnly; //! Maximum E Cluster per event distribution for L1J trigger and not L1G
ec77a234 106
107 TH2F *fhClusCenMB; //! Clusters Centrality vs E distribution for MB trigger
108 TH2F *fhClusCenL0; //! Clusters Centrality vs E distribution for L0 trigger
109 TH2F *fhClusCenL1G; //! Clusters Centrality vs E distribution for L1G trigger
110 TH2F *fhClusCenL1J; //! Clusters Centrality vs E distribution for L1J trigger
111 TH2F *fhClusCenL1GOnly; //! Clusters Centrality vs E distribution for L1G trigger and not L1J
112 TH2F *fhClusCenL1JOnly; //! Clusters Centrality vs E distribution for L1J trigger and not L1G
113 TH2F *fhClusCenMaxMB; //! Maximum E Cluster vs Centrality per event distribution for MB trigger
114 TH2F *fhClusCenMaxL0; //! Maximum E Cluster vs Centrality per event distribution for L0 trigger
115 TH2F *fhClusCenMaxL1G; //! Maximum E Cluster vs Centrality per event distribution for L1G trigger
116 TH2F *fhClusCenMaxL1J; //! Maximum E Cluster vs Centrality per event distribution for L1J trigger
117 TH2F *fhClusCenMaxL1GOnly; //! Maximum E Cluster vs Centrality per event distribution for L1G trigger and not L1J
118 TH2F *fhClusCenMaxL1JOnly; //! Maximum E Cluster vs Centrality per event distribution for L1J trigger and not L1G
119
120 TH2F *fhClusV0MB; //! Clusters Centrality vs E distribution for MB trigger
121 TH2F *fhClusV0L0; //! Clusters Centrality vs E distribution for L0 trigger
122 TH2F *fhClusV0L1G; //! Clusters Centrality vs E distribution for L1G trigger
123 TH2F *fhClusV0L1J; //! Clusters Centrality vs E distribution for L1J trigger
124 TH2F *fhClusV0L1GOnly; //! Clusters Centrality vs E distribution for L1G trigger and not L1J
125 TH2F *fhClusV0L1JOnly; //! Clusters Centrality vs E distribution for L1J trigger and not L1G
126 TH2F *fhClusV0MaxMB; //! Maximum E Cluster vs Centrality per event distribution for MB trigger
127 TH2F *fhClusV0MaxL0; //! Maximum E Cluster vs Centrality per event distribution for L0 trigger
128 TH2F *fhClusV0MaxL1G; //! Maximum E Cluster vs Centrality per event distribution for L1G trigger
129 TH2F *fhClusV0MaxL1J; //! Maximum E Cluster vs Centrality per event distribution for L1J trigger
130 TH2F *fhClusV0MaxL1GOnly; //! Maximum E Cluster vs Centrality per event distribution for L1G trigger and not L1J
131 TH2F *fhClusV0MaxL1JOnly; //! Maximum E Cluster vs Centrality per event distribution for L1J trigger and not L1G
132
133 TH2F *fhClusEtaMB; //! Clusters eta vs E distribution for MB trigger
134 TH2F *fhClusEtaL0; //! Clusters eta vs E distribution for L0 trigger
135 TH2F *fhClusEtaL1G; //! Clusters eta vs E distribution for L1G trigger
136 TH2F *fhClusEtaL1J; //! Clusters eta vs E distribution for L1J trigger
137 TH2F *fhClusEtaL1GOnly; //! Clusters eta vs E distribution for L1G trigger and not L1J
138 TH2F *fhClusEtaL1JOnly; //! Clusters eta vs E distribution for L1J trigger and not L1G
139 TH2F *fhClusEtaMaxMB; //! Maximum E Cluster vs Eta per event distribution for MB trigger
140 TH2F *fhClusEtaMaxL0; //! Maximum E Cluster vs Eta per event distribution for L0 trigger
141 TH2F *fhClusEtaMaxL1G; //! Maximum E Cluster vs Eta per event distribution for L1G trigger
142 TH2F *fhClusEtaMaxL1J; //! Maximum E Cluster vs Eta per event distribution for L1J trigger
143 TH2F *fhClusEtaMaxL1GOnly; //! Maximum E Cluster vs Eta per event distribution for L1G trigger and not L1J
144 TH2F *fhClusEtaMaxL1JOnly; //! Maximum E Cluster vs Eta per event distribution for L1J trigger and not L1G
145
146 TH2F *fhClusPhiMB; //! Clusters Phi vs E distribution for MB trigger
147 TH2F *fhClusPhiL0; //! Clusters Phi vs E distribution for L0 trigger
148 TH2F *fhClusPhiL1G; //! Clusters Phi vs E distribution for L1G trigger
149 TH2F *fhClusPhiL1J; //! Clusters Phi vs E distribution for L1J trigger
150 TH2F *fhClusPhiL1GOnly; //! Clusters Phi vs E distribution for L1G trigger and not L1J
151 TH2F *fhClusPhiL1JOnly; //! Clusters Phi vs E distribution for L1J trigger and not L1G
152 TH2F *fhClusPhiMaxMB; //! Maximum E Cluster vs Phi per event distribution for MB trigger
153 TH2F *fhClusPhiMaxL0; //! Maximum E Cluster vs Phi per event distribution for L0 trigger
154 TH2F *fhClusPhiMaxL1G; //! Maximum E Cluster vs Phi per event distribution for L1G trigger
155 TH2F *fhClusPhiMaxL1J; //! Maximum E Cluster vs Phi per event distribution for L1J trigger
156 TH2F *fhClusPhiMaxL1GOnly; //! Maximum E Cluster vs Phi per event distribution for L1G trigger and not L1J
157 TH2F *fhClusPhiMaxL1JOnly; //! Maximum E Cluster vs Phi per event distribution for L1J trigger and not L1G
158
159 TH2F *fhClusEtaPhiHighMB; //! Clusters eta vs phi distribution for MB trigger, energy above 10 GeV
160 TH2F *fhClusEtaPhiHighL0; //! Clusters eta vs phi distribution for L0 trigger, energy above 10 GeV
161 TH2F *fhClusEtaPhiHighL1G; //! Clusters eta vs phi distribution for L1G trigger, energy above 10 GeV
162 TH2F *fhClusEtaPhiHighL1J; //! Clusters eta vs phi distribution for L1J trigger, energy above 10 GeV
163 TH2F *fhClusEtaPhiHighL1GOnly; //! Clusters eta vs phi distribution for L1G trigger and not L1J, energy above 10 GeV
164 TH2F *fhClusEtaPhiHighL1JOnly; //! Clusters eta vs phi distribution for L1J trigger and not L1G, energy above 10 GeV
165 TH2F *fhClusEtaPhiHighCluMaxMB; //! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy above 10 GeV
166 TH2F *fhClusEtaPhiHighCluMaxL0; //! Maximum E Cluster, Phi vs Eta per event distribution for L0 trigger, energy above 10 GeV
167 TH2F *fhClusEtaPhiHighCluMaxL1G; //! Maximum E Cluster, Phi vs Eta per event distribution for L1G trigger, energy above 10 GeV
168 TH2F *fhClusEtaPhiHighCluMaxL1J; //! Maximum E Cluster, Phi vs Eta per event distribution for L1J trigger, energy above 10 GeV
169 TH2F *fhClusEtaPhiHighCluMaxL1GOnly; //! Maximum E Cluster, Phi vs Eta per event distribution for L1G trigger and not L1J, energy above 10 GeV
170 TH2F *fhClusEtaPhiHighCluMaxL1JOnly; //! Maximum E Cluster, Phi vs Eta per event distribution for L1J trigger and not L1G, energy above 10 GeV
171
172 TH2F *fhClusEtaPhiHighCellMaxMB; //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy above 10 GeV
173 TH2F *fhClusEtaPhiHighCellMaxL0; //! Clusters maximum energy cell index eta vs phi distribution for L0 trigger, energy above 10 GeV
174 TH2F *fhClusEtaPhiHighCellMaxL1G; //! Clusters maximum energy cell index eta vs phi distribution for L1G trigger, energy above 10 GeV
175 TH2F *fhClusEtaPhiHighCellMaxL1J; //! Clusters maximum energy cell index eta vs phi distribution for L1J trigger, energy above 10 GeV
176 TH2F *fhClusEtaPhiHighCellMaxL1GOnly; //! Clusters maximum energy cell index eta vs phi distribution for L1G trigger and not L1J, energy above 10 GeV
177 TH2F *fhClusEtaPhiHighCellMaxL1JOnly; //! Clusters maximum energy cell index eta vs phi distribution for L1J trigger and not L1G, energy above 10 GeV
178 TH2F *fhClusEtaPhiHighCellMaxCluMaxMB; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy above 10 GeV
179 TH2F *fhClusEtaPhiHighCellMaxCluMaxL0; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L0 trigger, energy above 10 GeV
180 TH2F *fhClusEtaPhiHighCellMaxCluMaxL1G; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1G trigger, energy above 10 GeV
181 TH2F *fhClusEtaPhiHighCellMaxCluMaxL1J; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1J trigger, energy above 10 GeV
182 TH2F *fhClusEtaPhiHighCellMaxCluMaxL1GOnly; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1G trigger and not L1J, energy above 10 GeV
183 TH2F *fhClusEtaPhiHighCellMaxCluMaxL1JOnly; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1J trigger and not L1G, energy above 10 GeV
184
185 TH2F *fhClusEtaPhiLowMB; //! Clusters eta vs phi distribution for MB trigger, energy below 10 GeV
186 TH2F *fhClusEtaPhiLowL0; //! Clusters eta vs phi distribution for L0 trigger, energy below 10 GeV
187 TH2F *fhClusEtaPhiLowL1G; //! Clusters eta vs phi distribution for L1G trigger, energy below 10 GeV
188 TH2F *fhClusEtaPhiLowL1J; //! Clusters eta vs phi distribution for L1J trigger, energy below 10 GeV
189 TH2F *fhClusEtaPhiLowL1GOnly; //! Clusters eta vs phi distribution for L1G trigger and not L1J, energy below 10 GeV
190 TH2F *fhClusEtaPhiLowL1JOnly; //! Clusters eta vs phi distribution for L1J trigger and not L1G, energy below 10 GeV
191 TH2F *fhClusEtaPhiLowCluMaxMB; //! Maximum E Cluster, Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
192 TH2F *fhClusEtaPhiLowCluMaxL0; //! Maximum E Cluster, Phi vs Eta per event distribution for L0 trigger, energy below 10 GeV
193 TH2F *fhClusEtaPhiLowCluMaxL1G; //! Maximum E Cluster, Phi vs Eta per event distribution for L1G trigger, energy below 10 GeV
194 TH2F *fhClusEtaPhiLowCluMaxL1J; //! Maximum E Cluster, Phi vs Eta per event distribution for L1J trigger, energy below 10 GeV
195 TH2F *fhClusEtaPhiLowCluMaxL1GOnly; //! Maximum E Cluster, Phi vs Eta per event distribution for L1G trigger and not L1J, energy below 10 GeV
196 TH2F *fhClusEtaPhiLowCluMaxL1JOnly; //! Maximum E Cluster, Phi vs Eta per event distribution for L1J trigger and not L1G, energy below 10 GeV
197
198 TH2F *fhClusEtaPhiLowCellMaxMB; //! Clusters maximum energy cell index eta vs phi distribution for MB trigger, energy below 10 GeV
199 TH2F *fhClusEtaPhiLowCellMaxL0; //! Clusters maximum energy cell index eta vs phi distribution for L0 trigger, energy below 10 GeV
200 TH2F *fhClusEtaPhiLowCellMaxL1G; //! Clusters maximum energy cell index eta vs phi distribution for L1G trigger, energy below 10 GeV
201 TH2F *fhClusEtaPhiLowCellMaxL1J; //! Clusters maximum energy cell index eta vs phi distribution for L1J trigger, energy below 10 GeV
202 TH2F *fhClusEtaPhiLowCellMaxL1GOnly; //! Clusters maximum energy cell index eta vs phi distribution for L1G trigger and not L1J, energy below 10 GeV
203 TH2F *fhClusEtaPhiLowCellMaxL1JOnly; //! Clusters maximum energy cell index eta vs phi distribution for L1J trigger and not L1G, energy below 10 GeV
204 TH2F *fhClusEtaPhiLowCellMaxCluMaxMB; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for MB trigger, energy below 10 GeV
205 TH2F *fhClusEtaPhiLowCellMaxCluMaxL0; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L0 trigger, energy below 10 GeV
206 TH2F *fhClusEtaPhiLowCellMaxCluMaxL1G; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1G trigger, energy below 10 GeV
207 TH2F *fhClusEtaPhiLowCellMaxCluMaxL1J; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1J trigger, energy below 10 GeV
208 TH2F *fhClusEtaPhiLowCellMaxCluMaxL1GOnly; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1G trigger and not L1J, energy below 10 GeV
209 TH2F *fhClusEtaPhiLowCellMaxCluMaxL1JOnly; //! Maximum E Cluster, maximum energy cell index Phi vs Eta per event distribution for L1J trigger and not L1G, energy below 10 GeV
bce9493b 210
bce9493b 211
ec77a234 212
213 // Histograms bins
214
215 Int_t fNBinsSTUSignal ; // Number of bins for STU total signal histograms
216 Float_t fMaxSTUSignal ; // Maximum value for TRU total signal histograms
217 Int_t fNBinsTRUSignal ; // Number of bins for TRU total signal histograms
218 Float_t fMaxTRUSignal ; // Maximum value for TRU total signal histograms
219 Int_t fNBinsV0Signal ; // Number of bins for V0 total signal histograms
220 Float_t fMaxV0Signal ; // Maximum value for V0 total signal histograms
221 Int_t fNBinsSTUFEERatio ; // Number of bins for STU/FEE ratios histograms
222 Float_t fMaxSTUFEERatio ; // Maximum value for STU/FEE ratios histograms
223 Int_t fNBinsSTUTRURatio ; // Number of bins for STU/TRU ratios histograms
224 Float_t fMaxSTUTRURatio ; // Maximum value for STU/TRU ratios histograms
225 Int_t fNBinsClusterE ; // Number of bins for E cluster histograms
226 Float_t fMaxClusterE ; // Maximum value for E cluster histograms
227
bce9493b 228 //Constants needed by the class: EMCAL
00ff0079 229 static const int fgkFALTRORows = AliEMCALGeoParams::fgkEMCALRows*(AliEMCALGeoParams::fgkEMCALModules-7)/2; // total number
230 // of fake altro rows in EMCAL
85196c29 231 // (ALTRO channels in one SM times 5 SM divided by 2 per FALTRO)
bce9493b 232
00ff0079 233 static const int fgkFALTROCols = AliEMCALGeoParams::fgkEMCALCols; // total number of fake altro columns in EMCAL
85196c29 234 // (ALTRO channels in one SM times 2 SM divided by 2 per FALTRO)
bce9493b 235
236
237 AliAnalysisTaskEMCALTriggerQA(const AliAnalysisTaskEMCALTriggerQA&); //not implemented
238
239 AliAnalysisTaskEMCALTriggerQA& operator=(const AliAnalysisTaskEMCALTriggerQA&); //not implemented
240
ec77a234 241 ClassDef(AliAnalysisTaskEMCALTriggerQA, 9);
bce9493b 242};
243
244#endif