42f2645781c63511aed56d1d1320007535ca2967
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaCalorimeterQA.h
1 #ifndef ALIANACALORIMETERQA_H
2 #define ALIANACALORIMETERQA_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id: $ */
6
7 //_________________________________________________________________________
8 // Class to check results from simulations or reconstructed real data. 
9 // Fill few histograms and do some checking plots
10 //
11 //-- Author: Gustavo Conesa (INFN-LNF)a
12
13 // --- Root system ---
14 class TH3F;
15 class TH2F;
16 class TH1F;
17
18 // --- Analysis system --- 
19 class AliESDCaloCluster;
20 class AliAODCaloCluster;
21
22 #include "AliAnaPartCorrBaseClass.h"
23  
24 class AliAnaCalorimeterQA : public AliAnaPartCorrBaseClass {
25   
26  public: 
27   
28   AliAnaCalorimeterQA() ; // default ctor
29   AliAnaCalorimeterQA(const AliAnaCalorimeterQA & g) ; // cpy ctor
30         
31 private:
32   AliAnaCalorimeterQA & operator = (const AliAnaCalorimeterQA & g) ;//cpy assignment
33         
34 public:
35   virtual ~AliAnaCalorimeterQA() {;} //virtual dtor
36   
37   void ClusterHistograms(const TLorentzVector mom, Float_t *pos, Float_t * showerShape, 
38                                                  const Int_t nCaloCellsPerCluster, const Int_t nModule,
39                                                  const Int_t nTracksMatched, const TObject* track, 
40                                                  const Int_t * labels, const Int_t nLabels);
41         
42   TList * GetCreateOutputObjects();
43
44   void Init();
45   void InitParameters();
46   
47   void Print(const Option_t * opt) const;
48     
49   void MakeAnalysisFillHistograms() ; 
50   
51   void MCHistograms(const TLorentzVector mom, const Int_t pdg);
52
53   TString GetCalorimeter() const {return fCalorimeter ;}
54   void SetCalorimeter( TString calo ) {fCalorimeter = calo; }
55   TString GetStyleMacro() const {return fStyleMacro ;}
56   void SetStyleMacro( TString macro ) {fStyleMacro = macro; }
57   
58   void SwitchOnPlotsMaking()  {fMakePlots = kTRUE;}
59   void SwitchOffPlotsMaking() {fMakePlots = kFALSE;}
60         
61   void SwitchOnCalorimetersCorrelation()  {fCorrelateCalos = kTRUE;}
62   void SwitchOffCalorimetersCorrelation() {fCorrelateCalos = kFALSE;}
63   void CorrelateCalorimeters(TRefArray* caloClusters);
64         
65   void Terminate(TList * outputList);
66   void ReadHistograms(TList * outputList); //Fill histograms with histograms in ouput list, needed in Terminate.
67
68   Int_t GetModuleNumber(AliESDCaloCluster * cluster);
69   Int_t GetModuleNumber(AliAODCaloCluster * cluster);
70   Int_t GetModuleNumberCellIndexes(const Int_t absId, Int_t & icol, Int_t & irow, Int_t &iRCU);
71         
72   void SetNumberOfModules(Int_t nmod) {fNModules = nmod;}
73
74   //Histogram binning setters
75
76   Int_t GetNewRebinForRePlotting(TH1D*histo, const Float_t newXmin, const Float_t newXmax,
77                                  const Int_t newNbins) const;
78
79   virtual void SetHistoPOverERangeAndNBins(Float_t min, Float_t max, Int_t n) {
80         fHistoPOverEBins  = n ;
81         fHistoPOverEMax   = max ;
82         fHistoPOverEMin   = min ;
83   }
84         
85   Int_t   GetHistoPOverEBins()  const { return fHistoPOverEBins ; }
86   Float_t GetHistoPOverEMin()   const { return fHistoPOverEMin ; }
87   Float_t GetHistoPOverEMax()   const { return fHistoPOverEMax ; }      
88         
89         virtual void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n) {
90                 fHistodEdxBins  = n ;
91                 fHistodEdxMax   = max ;
92                 fHistodEdxMin   = min ;
93         }
94         
95         Int_t   GetHistodEdxBins()  const { return fHistodEdxBins ; }
96         Float_t GetHistodEdxMin()   const { return fHistodEdxMin ; }
97         Float_t GetHistodEdxMax()   const { return fHistodEdxMax ; }    
98
99         virtual void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n) {
100                 fHistodRBins  = n ;
101                 fHistodRMax   = max ;
102                 fHistodRMin   = min ;
103         }
104         
105         Int_t   GetHistodRBins()  const { return fHistodRBins ; }
106         Float_t GetHistodRMin()   const { return fHistodRMin ; }
107         Float_t GetHistodRMax()   const { return fHistodRMax ; }        
108
109         virtual void SetHistoTimeRangeAndNBins(Float_t min, Float_t max, Int_t n) {
110                 fHistoTimeBins  = n ;
111                 fHistoTimeMax   = max ;
112                 fHistoTimeMin   = min ;
113         }       
114         
115         Int_t   GetHistoTimeBins()  const { return fHistoTimeBins ; }
116         Float_t GetHistoTimeMin()   const { return fHistoTimeMin ; }
117         Float_t GetHistoTimeMax()   const { return fHistoTimeMax ; }    
118
119         virtual void SetHistoNClusterCellRangeAndNBins(Int_t min, Int_t max, Int_t n) {
120                 fHistoNBins  = n ;
121                 fHistoNMax   = max ;
122                 fHistoNMin   = min ;
123         }
124         
125         Int_t GetHistoNClusterCellBins()  const { return fHistoNBins ; }
126         Int_t GetHistoNClusterCellMin()   const { return fHistoNMin ; }
127         Int_t GetHistoNClusterCellMax()   const { return fHistoNMax ; } 
128
129         virtual void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n) {
130                 fHistoRatioBins  = n ;
131                 fHistoRatioMax   = max ;
132                 fHistoRatioMin   = min ;
133         }
134         
135         Int_t   GetHistoRatioBins()  const { return fHistoRatioBins ; }
136         Float_t GetHistoRatioMin()   const { return fHistoRatioMin ; }
137         Float_t GetHistoRatioMax()   const { return fHistoRatioMax ; }  
138
139         virtual void SetHistoVertexDistRangeAndNBins(Float_t min, Float_t max, Int_t n) {
140                 fHistoVertexDistBins = n ;
141                 fHistoVertexDistMax   = max ;
142                 fHistoVertexDistMin   = min ;
143         }
144         
145         Int_t   GetHistoVertexDistBins()  const { return fHistoVertexDistBins ; }
146         Float_t GetHistoVertexDistMin()   const { return fHistoVertexDistMin ; }
147         Float_t GetHistoVertexDistMax()   const { return fHistoVertexDistMax ; }        
148         
149         
150         virtual void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n) {
151                 fHistoXBins  = n ;
152                 fHistoXMax   = max ;
153                 fHistoXMin   = min ;
154         }
155         
156         Int_t   GetHistoXBins()  const { return fHistoXBins ; }
157         Float_t GetHistoXMin()   const { return fHistoXMin ; }
158         Float_t GetHistoXMax()   const { return fHistoXMax ; }  
159
160         
161         virtual void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n) {
162                 fHistoYBins  = n ;
163                 fHistoYMax   = max ;
164                 fHistoYMin   = min ;
165         }
166         
167         Int_t   GetHistoYBins()  const { return fHistoYBins ; }
168         Float_t GetHistoYMin()   const { return fHistoYMin ; }
169         Float_t GetHistoYMax()   const { return fHistoYMax ; }  
170
171         
172         virtual void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n) {
173                 fHistoZBins  = n ;
174                 fHistoZMax   = max ;
175                 fHistoZMin   = min ;
176         }
177         
178         Int_t   GetHistoZBins()  const { return fHistoZBins ; }
179         Float_t GetHistoZMin()   const { return fHistoZMin ; }
180         Float_t GetHistoZMax()   const { return fHistoZMax ; }  
181         
182         virtual void SetHistoRRangeAndNBins(Float_t min, Float_t max, Int_t n) {
183                 fHistoRBins  = n ;
184                 fHistoRMax   = max ;
185                 fHistoRMin   = min ;
186         }
187         
188         Int_t   GetHistoRBins()  const { return fHistoRBins ; }
189         Float_t GetHistoRMin()   const { return fHistoRMin ; }
190         Float_t GetHistoRMax()   const { return fHistoRMax ; }  
191         
192         virtual void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n) {
193                 fHistoSSBins  = n ;
194                 fHistoSSMax   = max ;
195                 fHistoSSMin   = min ;
196         }
197         
198         Int_t   GetHistoShowerShapeBins()  const { return fHistoSSBins ; }
199         Float_t GetHistoShowerShapeMin()   const { return fHistoSSMin ; }
200         Float_t GetHistoShowerShapeMax()   const { return fHistoSSMax ; }       
201         
202         
203  private:
204   
205   TString fCalorimeter ;    // Calorimeter selection
206   TString fStyleMacro  ;    // Location of macro for plots style
207   Bool_t  fMakePlots   ;    // Print plots
208   Bool_t  fCorrelateCalos ; // Correlate PHOS/EMCAL clusters
209   Int_t   fNModules    ;    // Number of EMCAL/PHOS modules, set as many histogras as modules 
210   Int_t   fNRCU        ;    // Number of EMCAL/PHOS RCU, set as many histogras as RCU 
211
212   //Histograms
213   //Histogram Bins
214   Int_t   fHistoPOverEBins;        // p/E histogram number of bins
215   Float_t fHistoPOverEMax;         // p/E maximum value
216   Float_t fHistoPOverEMin;         // p/E minimum value
217   Int_t   fHistodEdxBins;          // dEdx histogram number of bins
218   Float_t fHistodEdxMax;           // dEdx maximum value
219   Float_t fHistodEdxMin;           // dEdx minimum value
220   Int_t   fHistodRBins;            // dR histogram number of bins
221   Float_t fHistodRMax;             // dR maximum value
222   Float_t fHistodRMin;             // dR minimum value
223   Int_t   fHistoTimeBins;          // cell time histogram number of bins
224   Float_t fHistoTimeMax;           // cell time maximum value
225   Float_t fHistoTimeMin;           // cell time minimum value
226   Int_t   fHistoNBins;             // number of clusters/cells histogram number of bins
227   Int_t   fHistoNMax;              // number maximum value
228   Int_t   fHistoNMin;              // number minimum value
229   Int_t   fHistoRatioBins;         // ratio histogram number of bins
230   Float_t fHistoRatioMax;          // ratio maximum value
231   Float_t fHistoRatioMin;          // ratio minimum value
232   Int_t   fHistoVertexDistBins;    // vertex distance histogram number of bins
233   Float_t fHistoVertexDistMax;     // vertex distance maximum value
234   Float_t fHistoVertexDistMin;     // vertex distance minimum value     
235   Int_t   fHistoRBins;             // r =sqrt(x^2+y^2+z^2) (cm) position histogram number of bins
236   Float_t fHistoRMax;              // r =sqrt(x^2+y^2+z^2) (cm)  maximum value
237   Float_t fHistoRMin;              // r =sqrt(x^2+y^2+z^2) (cm)  minimum value  
238   Int_t   fHistoXBins;             // x (cm) position histogram number of bins
239   Float_t fHistoXMax;              // x (cm) position maximum value
240   Float_t fHistoXMin;              // x (cm) position minimum value
241   Int_t   fHistoYBins;             // y (cm) position histogram number of bins
242   Float_t fHistoYMax;              // y (cm) position maximum value
243   Float_t fHistoYMin;              // y (cm) position minimum value
244   Int_t   fHistoZBins;             // z (cm) position histogram number of bins
245   Float_t fHistoZMax;              // z (cm) position maximum value
246   Float_t fHistoZMin;              // z (cm) position minimum value
247   Int_t   fHistoSSBins;            // Shower Shape parameter histogram number of bins
248   Float_t fHistoSSMax;             // Shower Shape parameter position maximum value
249   Float_t fHistoSSMin;             // Shower Shape parameter position minimum value
250         
251   //CaloClusters 
252   TH1F * fhE  ; //! E distribution, Reco
253   TH1F * fhPt ; //! pT distribution, Reco
254   TH1F * fhPhi; //! phi distribution, Reco 
255   TH1F * fhEta; //! eta distribution, Reco 
256   TH3F * fhEtaPhiE  ; //! eta vs phi vs E, Reco
257   TH1F * fhECharged  ; //! E distribution, Reco, matched with track
258   TH1F * fhPtCharged ; //! pT distribution, Reco, matched with track
259   TH1F * fhPhiCharged; //! phi distribution, Reco, matched with track 
260   TH1F * fhEtaCharged; //! eta distribution, Reco, matched with track 
261   TH3F * fhEtaPhiECharged  ; //! eta vs phi vs E, Reco, matched with track 
262   TH1F * fhEChargedNoOut  ; //! E distribution, Reco, matched with track, no outer param
263   TH1F * fhPtChargedNoOut ; //! pT distribution, Reco, matched with track, no outer param
264   TH1F * fhPhiChargedNoOut; //! phi distribution, Reco, matched with track, no outer param
265   TH1F * fhEtaChargedNoOut; //! eta distribution, Reco, matched with track, no outer param
266   TH2F * fhEtaPhiChargedNoOut  ; //! eta vs phi, Reco, matched with track, no outer param
267   TH1F * fhDeltaE  ; //! MC-Reco E distribution 
268   TH1F * fhDeltaPt ; //! MC-Reco pT distribution
269   TH1F * fhDeltaPhi; //! MC-Reco phi distribution
270   TH1F * fhDeltaEta; //! MC-Reco eta distribution
271   TH1F * fhRatioE  ; //! Reco/MC E distribution 
272   TH1F * fhRatioPt ; //! Reco/MC pT distribution
273   TH1F * fhRatioPhi; //! Reco/MC phi distribution
274   TH1F * fhRatioEta; //! Reco/MC eta distribution
275   TH2F * fh2E  ; //! E distribution, Reco vs MC
276   TH2F * fh2Pt ; //! pT distribution, Reco vs MC
277   TH2F * fh2Phi; //! phi distribution, Reco vs MC
278   TH2F * fh2Eta; //! eta distribution, Reco vs MC
279   
280   TH3F * fhLambda  ;     //! Shower ellipse axis Lambda 0 vs vs Lambda 1 vs E
281   TH2F * fhDispersion  ; //! Shower dispersion vs E
282         
283   TH2F * fhIM; //! cluster pairs invariant mass
284   TH2F * fhIMCellCut; //! cluster pairs invariant mass, n cells > 1 per cluster
285   TH2F * fhAsym; //! cluster pairs invariant mass       
286   
287   TH3F * fhNCellsPerCluster;           //! N cells per cluster vs cluster energy vs eta of cluster      
288   TH3F * fhNCellsPerClusterMIP;        //! N cells per cluster vs cluster energy vs eta of cluster, finer fixed pT bin for MIP search.
289   TH3F * fhNCellsPerClusterMIPCharged; //! N cells per cluster vs cluster energy vs eta of cluster, finer fixed pT bin for MIP search, cluster matched with track.      
290         
291   TH1F * fhNClusters; //! Number of clusters
292         
293   TH1F * fhCellTimeSpreadRespectToCellMax; //! Difference of the time of cell with maximum dep energy and the rest of cells
294   TH1F * fhCellIdCellLargeTimeSpread;      //! Cells with large time respect to max (diff > 100 ns)
295         
296   TH2F * fhRNCells ; //! R=sqrt(x^2+y^2+z^2) (cm) cluster distribution vs N cells in cluster
297   TH2F * fhXNCells ; //! X (cm) cluster distribution vs N cells in cluster
298   TH2F * fhYNCells ; //! Y (cm) cluster distribution vs N cells in cluster
299   TH2F * fhZNCells ; //! Z (cm) cluster distribution vs N cells in cluster
300         
301   TH2F * fhRE ; //! R=sqrt(x^2+y^2+z^2) (cm) cluster distribution vs cluster energy
302   TH2F * fhXE ; //! X (cm) cluster distribution vs cluster energy
303   TH2F * fhYE ; //! Y (cm) cluster distribution vs cluster energy
304   TH2F * fhZE ; //! Z (cm) cluster distribution vs cluster energy
305   TH3F * fhXYZ; //! cluster X vs Y vs Z (cm)
306         
307   TH2F * fhRCellE ; //! R=sqrt(x^2+y^2+z^2) (cm) cell distribution vs cell energy
308   TH2F * fhXCellE ; //! X (cm) cell distribution vs cell energy
309   TH2F * fhYCellE ; //! Y (cm) cell distribution vs cell energy
310   TH2F * fhZCellE ; //! Z (cm) cell distribution vs cell energy
311   TH3F * fhXYZCell; //! cell X vs Y vs Z (cm)
312                 
313   TH2F * fhDeltaCellClusterRNCells ; //! R cluster - R cell distribution (cm) vs N cells in cluster
314   TH2F * fhDeltaCellClusterXNCells ; //! X cluster - X cell distribution (cm) vs N cells in cluster
315   TH2F * fhDeltaCellClusterYNCells ; //! Y cluster - Y cell distribution (cm) vs N cells in cluster
316   TH2F * fhDeltaCellClusterZNCells ; //! Z cluster - Z cell distribution (cm) vs N cells in cluster
317         
318   TH2F * fhDeltaCellClusterRE ; //! R cluster - R cell distribution (cm) vs cluster energy
319   TH2F * fhDeltaCellClusterXE ; //! X cluster - X cell distribution (cm) vs cluster energy
320   TH2F * fhDeltaCellClusterYE ; //! Y cluster - Y cell distribution (cm) vs cluster energy
321   TH2F * fhDeltaCellClusterZE ; //! Z cluster - Z cell distribution (cm) vs cluster energy
322         
323         
324   //Calo Cells
325   TH1F * fhNCells;    //! Number of towers/crystals with signal
326   TH1F * fhAmplitude; //! Amplitude measured in towers/crystals
327   TH2F * fhAmpId;     //! Amplitude measured in towers/crystals vs id of tower. 
328   TH3F * fhEtaPhiAmp; //! eta vs phi vs amplitude, cells
329
330   TH1F * fhTime;      //! Time measured in towers/crystals
331   TH2F * fhTimeId;    //! Time vs Absolute cell Id
332   TH2F * fhTimeAmp;   //! Time vs Amplitude 
333 //  TH1F * fhT0Time;    //! T0 - EMCAL Time measured in towers/crystals
334 //  TH2F * fhT0TimeId;  //! T0 - EMCAL Time vs Absolute cell Id
335 //  TH2F * fhT0TimeAmp; //! T0 - EMCAL Time vs Amplitude 
336
337
338   //Calorimeters Correlation
339   TH2F * fhCaloCorrNClusters; // EMCAL vs PHOS, number of clusters      
340   TH2F * fhCaloCorrEClusters; // EMCAL vs PHOS, total measured cluster energy
341   TH2F * fhCaloCorrNCells; // EMCAL vs PHOS, number of cells
342   TH2F * fhCaloCorrECells; // EMCAL vs PHOS,  total measured cell energy
343         
344   //Module histograms
345   TH1F ** fhEMod  ;               //! E distribution for different module, Reco
346   TH1F ** fhNClustersMod ;        //! Number of clusters for different module, Reco
347   TH2F ** fhNCellsPerClusterMod ; //! N cells per clusters different module, Reco
348   TH1F ** fhNCellsMod ;           //! Number of towers/crystals with signal different module, Reco
349   TH2F ** fhGridCellsMod ;        //! Cells ordered in column/row for different module, Reco
350   TH2F ** fhGridCellsEMod ;       //! Cells ordered in column/row for different module, weighted with energy, Reco
351   TH2F ** fhGridCellsTimeMod ;    //! Cells ordered in column/row for different module, weighted with time, Reco
352   TH1F ** fhAmplitudeMod ;        //! Amplitude measured in towers/crystals different module, Reco
353   TH1F ** fhAmplitudeModFraction; //! Amplitude measured in towers/crystals different fractions of module, Reco
354   TH2F ** fhTimeAmpPerRCU;        //! Time vs Amplitude measured in towers/crystals different RCU
355   //TH2F ** fhT0TimeAmpPerRCU;      //! T0 - EMCAL Time vs Amplitude measured in towers/crystals different RCU
356   //TH2F ** fhTimeCorrRCU;          //! Correlate time entries in the different RCU, E > 0.3
357   TH2F ** fhIMMod;                //! cluster pairs invariant mass, different module,
358   TH2F ** fhIMCellCutMod;         //! cluster pairs invariant mass, n cells > 1 per cluster, different module
359         
360   //MC  
361   TH1F *fhGenGamPt  ; // pt of primary gamma
362   TH1F *fhGenGamEta ; // eta of primart gamma
363   TH1F *fhGenGamPhi ; // phi of primary gamma   
364   TH1F *fhGenPi0Pt  ; // pt of primary pi0
365   TH1F *fhGenPi0Eta ; // eta of primart pi0
366   TH1F *fhGenPi0Phi ; // phi of primary pi0     
367   TH1F *fhGenEtaPt  ; // pt of primary eta
368   TH1F *fhGenEtaEta ; // eta of primart eta
369   TH1F *fhGenEtaPhi ; // phi of primary eta
370   TH1F *fhGenOmegaPt  ; // pt of primary omega
371   TH1F *fhGenOmegaEta ; // eta of primart omega
372   TH1F *fhGenOmegaPhi ; // phi of primary omega
373   TH1F *fhGenElePt  ; // pt of primary electron
374   TH1F *fhGenEleEta ; // eta of primart electron
375   TH1F *fhGenElePhi ; // phi of primary electron
376         
377   //TH3F * fhEMVxyz    ; // Electromagnetic particle production vertex
378   TH2F * fhEMVxyz    ; // Electromagnetic particle production vertex
379   TH2F * fhEMR       ; // Electromagnetic distance to vertex vs rec energy  
380   //TH3F * fhHaVxyz    ; // Hadron production vertex
381   TH2F * fhHaVxyz    ; // Hadron production vertex
382   TH2F * fhHaR       ; // Hadron distance to vertex vs rec energy  
383
384   TH2F * fhGamE  ; //! E distribution of generated photons, Reco
385   TH2F * fhGamPt ; //! pT distribution of generated photons, Reco
386   TH2F * fhGamPhi; //! phi distribution of generated photon, Reco 
387   TH2F * fhGamEta; //! eta distribution of generated photons, Reco 
388   TH1F * fhGamDeltaE  ; //! MC-Reco E distribution of generated photons 
389   TH1F * fhGamDeltaPt ; //! MC-Reco pT distribution of generated photons
390   TH1F * fhGamDeltaPhi; //! MC-Reco phi distribution of generated photons
391   TH1F * fhGamDeltaEta; //! MC-Reco eta distribution of generated photons
392   TH1F * fhGamRatioE  ; //! Reco/MC E distribution of generated photons 
393   TH1F * fhGamRatioPt ; //! Reco/MC pT distribution of generated photons
394   TH1F * fhGamRatioPhi; //! Reco/MC phi distribution of generated photons
395   TH1F * fhGamRatioEta; //! Reco/MC eta distribution of generated photons
396   TH2F * fhEleE  ; //! E distribution of generated electrons, Reco
397   TH2F * fhElePt ; //! pT distribution of generated electrons, Reco
398   TH2F * fhElePhi; //! phi distribution of generated electron, Reco 
399   TH2F * fhEleEta; //! eta distribution of generated electrons, Reco            
400   TH2F * fhPi0E  ; //! E distribution of generated pi0, Reco, gamma decay overlapped
401   TH2F * fhPi0Pt ; //! pT distribution of generated pi0, Reco, gamma decay overlapped
402   TH2F * fhPi0Phi; //! phi distribution of generated pi0, Reco, gamma decay overlapped
403   TH2F * fhPi0Eta; //! eta distribution of generated pi0, Reco, gamma decay overlapped
404   TH2F * fhNeHadE  ; //! E distribution of generated neutral hadron, Reco
405   TH2F * fhNeHadPt ; //! pT distribution of generated neutral hadron, Reco
406   TH2F * fhNeHadPhi; //! phi distribution of generated neutral hadron, Reco 
407   TH2F * fhNeHadEta; //! eta distribution of generated neutral hadron, Reco     
408   TH2F * fhChHadE  ; //! E distribution of generated charged hadron, Reco
409   TH2F * fhChHadPt ; //! pT distribution of generated charged hadron, Reco
410   TH2F * fhChHadPhi; //! phi distribution of generated charged hadron, Reco 
411   TH2F * fhChHadEta; //! eta distribution of generated charged hadron, Reco 
412
413   TH2F * fhGamECharged  ; //! E distribution of generated photons, Reco, track matched cluster
414   TH2F * fhGamPtCharged ; //! pT distribution of generated photons, Reco, track matched cluster
415   TH2F * fhGamPhiCharged; //! phi distribution of generated photon, Reco, track matched cluster 
416   TH2F * fhGamEtaCharged; //! eta distribution of generated photons, Reco, track matched cluster 
417   TH2F * fhEleECharged  ; //! E distribution of generated electrons, Reco, track matched cluster
418   TH2F * fhElePtCharged ; //! pT distribution of generated electrons, Reco, track matched cluster
419   TH2F * fhElePhiCharged; //! phi distribution of generated electron, Reco, track matched cluster 
420   TH2F * fhEleEtaCharged; //! eta distribution of generated electrons, Reco, track matched cluster              
421   TH2F * fhPi0ECharged  ; //! E distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
422   TH2F * fhPi0PtCharged ; //! pT distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
423   TH2F * fhPi0PhiCharged; //! phi distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
424   TH2F * fhPi0EtaCharged; //! eta distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
425   TH2F * fhNeHadECharged  ; //! E distribution of generated neutral hadron, Reco, track matched cluster
426   TH2F * fhNeHadPtCharged ; //! pT distribution of generated neutral hadron, Reco, track matched cluster
427   TH2F * fhNeHadPhiCharged; //! phi distribution of generated neutral hadron, Reco , track matched cluster
428   TH2F * fhNeHadEtaCharged; //! eta distribution of generated neutral hadron, Reco, track matched cluster       
429   TH2F * fhChHadECharged  ; //! E distribution of generated charged hadron, Reco, track matched cluster
430   TH2F * fhChHadPtCharged ; //! pT distribution of generated charged hadron, Reco, track matched cluster
431   TH2F * fhChHadPhiCharged; //! phi distribution of generated charged hadron, Reco, track matched cluster 
432   TH2F * fhChHadEtaCharged; //! eta distribution of generated charged hadron, Reco, track matched cluster       
433         
434   TH1F *fhGenGamAccE   ; // E of primary gamma
435   TH1F *fhGenGamAccPt  ; // pt of primary gamma
436   TH1F *fhGenGamAccEta ; // eta of primart gamma
437   TH1F *fhGenGamAccPhi ; // phi of primary gamma        
438   TH1F *fhGenPi0AccE   ; // E of primary pi0
439   TH1F *fhGenPi0AccPt  ; // pt of primary pi0
440   TH1F *fhGenPi0AccEta ; // eta of primart pi0
441   TH1F *fhGenPi0AccPhi ; // phi of primary pi0          
442         
443   //Histograms for track-matching
444   TH2F *fh1pOverE;     //! p/E for track-cluster matches
445   TH1F *fh1dR;         //! distance between projected track and cluster
446   TH2F *fh2EledEdx;    //! dE/dx vs. momentum for electron candidates
447   TH2F *fh2MatchdEdx;  //! dE/dx vs. momentum for all matches
448         
449   TH2F *fhMCEle1pOverE;     //! p/E for track-cluster matches, MC electrons
450   TH1F *fhMCEle1dR;         //! distance between projected track and cluster, MC electrons
451   TH2F *fhMCEle2MatchdEdx;  //! dE/dx vs. momentum for all matches, MC electrons        
452         
453   TH2F *fhMCChHad1pOverE;     //! p/E for track-cluster matches, MC charged hadrons
454   TH1F *fhMCChHad1dR;         //! distance between projected track and cluster, MC charged hadrons
455   TH2F *fhMCChHad2MatchdEdx;  //! dE/dx vs. momentum for all matches, MC charged
456         
457   TH2F *fhMCNeutral1pOverE;     //! p/E for track-cluster matches, MC neutral
458   TH1F *fhMCNeutral1dR;         //! distance between projected track and cluster, MC neutral
459   TH2F *fhMCNeutral2MatchdEdx;  //! dE/dx vs. momentum for all matches, MC neutral      
460         
461   TH2F *fh1pOverER02;           //! p/E for track-cluster matches, dR > 0.2     
462   TH2F *fhMCEle1pOverER02;      //! p/E for track-cluster matches, dR > 0.2, MC electrons
463   TH2F *fhMCChHad1pOverER02;    //! p/E for track-cluster matches, dR > 0.2, MC charged hadrons
464   TH2F *fhMCNeutral1pOverER02;  //! p/E for track-cluster matches, dR > 0.2, MC neutral
465         
466         ClassDef(AliAnaCalorimeterQA,8)
467 } ;
468
469
470 #endif //ALIANACALORIMETERQA_H
471
472
473