]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrDep/AliAnaCalorimeterQA.h
remove unnecessary return
[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)
12
13 // --- Root system ---
14 class TH3F;
15 class TH2F;
16 class TH1F;
17 class TObjString;
18
19 // --- Analysis system --- 
20 class AliVCaloCluster;
21 class AliVTrack;
22
23 #include "AliAnaPartCorrBaseClass.h"
24  
25 class AliAnaCalorimeterQA : public AliAnaPartCorrBaseClass {
26   
27 public: 
28   AliAnaCalorimeterQA() ; // default ctor       
29   virtual ~AliAnaCalorimeterQA() {;} //virtual dtor
30 private:
31   AliAnaCalorimeterQA & operator = (const AliAnaCalorimeterQA & g) ;//cpy assignment
32   AliAnaCalorimeterQA(const AliAnaCalorimeterQA & g) ; // cpy ctor
33   
34 public:
35   
36   void ClusterHistograms(const TLorentzVector mom, const Double_t tof, Float_t *pos, Float_t * showerShape, 
37                          const Int_t nCaloCellsPerCluster, const Int_t nModule,
38                          const Int_t nTracksMatched, const AliVTrack* track, 
39                          const Int_t * labels, const Int_t nLabels);
40         
41   TObjString * GetAnalysisCuts();
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         
59   void SwitchOnFillAllPositionHistogram()   {fFillAllPosHisto = kTRUE  ;}
60   void SwitchOffFillAllPositionHistogram()  {fFillAllPosHisto = kFALSE ;}
61   
62   void SwitchOnFillAllTH12Histogram()   {fFillAllTH12 = kTRUE  ;}
63   void SwitchOffFillAllTH12Histogram()  {fFillAllTH12 = kFALSE ;}
64   
65   void SwitchOnCorrelation()  {fCorrelate = kTRUE  ;}
66   void SwitchOffCorrelation() {fCorrelate = kFALSE ;}
67   void Correlate();
68   
69   void Terminate(TList * outputList);
70   void ReadHistograms(TList * outputList); //Fill histograms with histograms in ouput list, needed in Terminate.
71         
72   void SetNumberOfModules(Int_t nmod) {fNModules = nmod;}
73   
74   void SetTimeCut(Double_t min, Double_t max) {fTimeCutMin = min; fTimeCutMax = max;}
75   Double_t GetTimeCutMin() const {return fTimeCutMin;}
76   Double_t GetTimeCutMax() const {return fTimeCutMax;}
77   
78   //Minimum cell amplitude setters and getters 
79   Float_t  GetEMCALCellAmpMin() const { return fEMCALCellAmpMin  ; }
80   Float_t  GetPHOSCellAmpMin()  const { return fPHOSCellAmpMin   ; }
81   void SetEMCALCellAmpMin(Float_t  amp) { fEMCALCellAmpMin = amp ; }
82   void SetPHOSCellAmpMin(Float_t  amp)  { fPHOSCellAmpMin  = amp ; }
83   
84   //Histogram binning setters
85   
86   Int_t GetNewRebinForRePlotting(TH1D*histo, const Float_t newXmin, const Float_t newXmax,
87                                  const Int_t newNbins) const;
88   
89   virtual void SetHistoPOverERangeAndNBins(Float_t min, Float_t max, Int_t n) {
90     fHistoPOverEBins  = n ;
91     fHistoPOverEMax   = max ;
92     fHistoPOverEMin   = min ;
93   }
94         
95   Int_t   GetHistoPOverEBins()  const { return fHistoPOverEBins ; }
96   Float_t GetHistoPOverEMin()   const { return fHistoPOverEMin ; }
97   Float_t GetHistoPOverEMax()   const { return fHistoPOverEMax ; }      
98         
99   virtual void SetHistoFinePtRangeAndNBins(Float_t min, Float_t max, Int_t n) {
100     fHistoFinePtBins  = n ;
101     fHistoFinePtMax   = max ;
102     fHistoFinePtMin   = min ;
103   }
104         
105   Int_t   GetHistoFinePtBins()  const { return fHistoFinePtBins ; }
106   Float_t GetHistoFinePtMin()   const { return fHistoFinePtMin ; }
107   Float_t GetHistoFinePtMax()   const { return fHistoFinePtMax ; }      
108         
109
110   virtual void SetHistodEdxRangeAndNBins(Float_t min, Float_t max, Int_t n) {
111     fHistodEdxBins  = n ;
112     fHistodEdxMax   = max ;
113     fHistodEdxMin   = min ;
114   }
115   
116   Int_t   GetHistodEdxBins()  const { return fHistodEdxBins ; }
117   Float_t GetHistodEdxMin()   const { return fHistodEdxMin ; }
118   Float_t GetHistodEdxMax()   const { return fHistodEdxMax ; }  
119   
120   virtual void SetHistodRRangeAndNBins(Float_t min, Float_t max, Int_t n) {
121     fHistodRBins  = n ;
122     fHistodRMax   = max ;
123     fHistodRMin   = min ;
124   }
125   
126   Int_t   GetHistodRBins()  const { return fHistodRBins ; }
127   Float_t GetHistodRMin()   const { return fHistodRMin ; }
128   Float_t GetHistodRMax()   const { return fHistodRMax ; }      
129   
130   virtual void SetHistoTimeRangeAndNBins(Float_t min, Float_t max, Int_t n) {
131     fHistoTimeBins  = n ;
132     fHistoTimeMax   = max ;
133     fHistoTimeMin   = min ;
134   }     
135   
136   Int_t   GetHistoTimeBins()  const { return fHistoTimeBins ; }
137   Float_t GetHistoTimeMin()   const { return fHistoTimeMin ; }
138   Float_t GetHistoTimeMax()   const { return fHistoTimeMax ; }  
139   
140   virtual void SetHistoNClusterCellRangeAndNBins(Int_t min, Int_t max, Int_t n) {
141     fHistoNBins  = n ;
142     fHistoNMax   = max ;
143     fHistoNMin   = min ;
144   }
145   
146   Int_t GetHistoNClusterCellBins()  const { return fHistoNBins ; }
147   Int_t GetHistoNClusterCellMin()   const { return fHistoNMin ; }
148   Int_t GetHistoNClusterCellMax()   const { return fHistoNMax ; }       
149   
150   virtual void SetHistoRatioRangeAndNBins(Float_t min, Float_t max, Int_t n) {
151     fHistoRatioBins  = n ;
152     fHistoRatioMax   = max ;
153     fHistoRatioMin   = min ;
154   }
155   
156   Int_t   GetHistoRatioBins()  const { return fHistoRatioBins ; }
157   Float_t GetHistoRatioMin()   const { return fHistoRatioMin ; }
158   Float_t GetHistoRatioMax()   const { return fHistoRatioMax ; }        
159   
160   virtual void SetHistoVertexDistRangeAndNBins(Float_t min, Float_t max, Int_t n) {
161     fHistoVertexDistBins = n ;
162     fHistoVertexDistMax   = max ;
163     fHistoVertexDistMin   = min ;
164   }
165   
166   Int_t   GetHistoVertexDistBins()  const { return fHistoVertexDistBins ; }
167   Float_t GetHistoVertexDistMin()   const { return fHistoVertexDistMin ; }
168   Float_t GetHistoVertexDistMax()   const { return fHistoVertexDistMax ; }      
169   
170   
171   virtual void SetHistoXRangeAndNBins(Float_t min, Float_t max, Int_t n) {
172     fHistoXBins  = n ;
173     fHistoXMax   = max ;
174     fHistoXMin   = min ;
175   }
176   
177   Int_t   GetHistoXBins()  const { return fHistoXBins ; }
178   Float_t GetHistoXMin()   const { return fHistoXMin ; }
179   Float_t GetHistoXMax()   const { return fHistoXMax ; }        
180   
181   
182   virtual void SetHistoYRangeAndNBins(Float_t min, Float_t max, Int_t n) {
183     fHistoYBins  = n ;
184     fHistoYMax   = max ;
185     fHistoYMin   = min ;
186   }
187   
188   Int_t   GetHistoYBins()  const { return fHistoYBins ; }
189   Float_t GetHistoYMin()   const { return fHistoYMin ; }
190   Float_t GetHistoYMax()   const { return fHistoYMax ; }        
191   
192   
193   virtual void SetHistoZRangeAndNBins(Float_t min, Float_t max, Int_t n) {
194     fHistoZBins  = n ;
195     fHistoZMax   = max ;
196     fHistoZMin   = min ;
197   }
198   
199   Int_t   GetHistoZBins()  const { return fHistoZBins ; }
200   Float_t GetHistoZMin()   const { return fHistoZMin ; }
201   Float_t GetHistoZMax()   const { return fHistoZMax ; }        
202   
203   virtual void SetHistoRRangeAndNBins(Float_t min, Float_t max, Int_t n) {
204     fHistoRBins  = n ;
205     fHistoRMax   = max ;
206     fHistoRMin   = min ;
207   }
208   
209   Int_t   GetHistoRBins()  const { return fHistoRBins ; }
210   Float_t GetHistoRMin()   const { return fHistoRMin ; }
211   Float_t GetHistoRMax()   const { return fHistoRMax ; }        
212   
213   virtual void SetHistoShowerShapeRangeAndNBins(Float_t min, Float_t max, Int_t n) {
214     fHistoSSBins  = n ;
215     fHistoSSMax   = max ;
216     fHistoSSMin   = min ;
217   }
218   
219   Int_t   GetHistoShowerShapeBins()  const { return fHistoSSBins ; }
220   Float_t GetHistoShowerShapeMin()   const { return fHistoSSMin ; }
221   Float_t GetHistoShowerShapeMax()   const { return fHistoSSMax ; }     
222   
223  private:
224   
225   TString  fCalorimeter ;    // Calorimeter selection
226   TString  fStyleMacro  ;    // Location of macro for plots style
227   Bool_t   fFillAllPosHisto; // Fill all the position related histograms 
228   Bool_t   fFillAllTH12 ;    // Fill simple histograms which information is already in TH3 histograms
229   Bool_t   fCorrelate   ;    // Correlate PHOS/EMCAL cells/clusters, also with V0 and track multiplicity
230   Int_t    fNModules    ;    // Number of EMCAL/PHOS modules, set as many histogras as modules 
231   Int_t    fNRCU        ;    // Number of EMCAL/PHOS RCU, set as many histogras as RCU 
232   Double_t fTimeCutMin  ;    // Remove clusters/cells with time smaller than this value, in ns
233   Double_t fTimeCutMax  ;    // Remove clusters/cells with time larger than this value, in ns
234   Float_t  fEMCALCellAmpMin; // amplitude Threshold on emcal cells
235   Float_t  fPHOSCellAmpMin ; // amplitude Threshold on phos cells
236   
237   //Histograms
238   //Histogram Bins
239   Int_t   fHistoFinePtBins;        // fine binning for fhAmpId histogram
240   Float_t fHistoFinePtMax;         // maximum pt value for fhAmpId histogram
241   Float_t fHistoFinePtMin;         // minimum pt value for fhAmpId histogram
242   Int_t   fHistoPOverEBins;        // p/E histogram number of bins
243   Float_t fHistoPOverEMax;         // p/E maximum value
244   Float_t fHistoPOverEMin;         // p/E minimum value
245   Int_t   fHistodEdxBins;          // dEdx histogram number of bins
246   Float_t fHistodEdxMax;           // dEdx maximum value
247   Float_t fHistodEdxMin;           // dEdx minimum value
248   Int_t   fHistodRBins;            // dR histogram number of bins
249   Float_t fHistodRMax;             // dR maximum value
250   Float_t fHistodRMin;             // dR minimum value
251   Int_t   fHistoTimeBins;          // cell time histogram number of bins
252   Float_t fHistoTimeMax;           // cell time maximum value
253   Float_t fHistoTimeMin;           // cell time minimum value
254   Int_t   fHistoNBins;             // number of clusters/cells histogram number of bins
255   Int_t   fHistoNMax;              // number maximum value
256   Int_t   fHistoNMin;              // number minimum value
257   Int_t   fHistoRatioBins;         // ratio histogram number of bins
258   Float_t fHistoRatioMax;          // ratio maximum value
259   Float_t fHistoRatioMin;          // ratio minimum value
260   Int_t   fHistoVertexDistBins;    // vertex distance histogram number of bins
261   Float_t fHistoVertexDistMax;     // vertex distance maximum value
262   Float_t fHistoVertexDistMin;     // vertex distance minimum value     
263   Int_t   fHistoRBins;             // r =sqrt(x^2+y^2+z^2) (cm) position histogram number of bins
264   Float_t fHistoRMax;              // r =sqrt(x^2+y^2+z^2) (cm)  maximum value
265   Float_t fHistoRMin;              // r =sqrt(x^2+y^2+z^2) (cm)  minimum value  
266   Int_t   fHistoXBins;             // x (cm) position histogram number of bins
267   Float_t fHistoXMax;              // x (cm) position maximum value
268   Float_t fHistoXMin;              // x (cm) position minimum value
269   Int_t   fHistoYBins;             // y (cm) position histogram number of bins
270   Float_t fHistoYMax;              // y (cm) position maximum value
271   Float_t fHistoYMin;              // y (cm) position minimum value
272   Int_t   fHistoZBins;             // z (cm) position histogram number of bins
273   Float_t fHistoZMax;              // z (cm) position maximum value
274   Float_t fHistoZMin;              // z (cm) position minimum value
275   Int_t   fHistoSSBins;            // Shower Shape parameter histogram number of bins
276   Float_t fHistoSSMax;             // Shower Shape parameter position maximum value
277   Float_t fHistoSSMin;             // Shower Shape parameter position minimum value
278         
279   //CaloClusters 
280   TH1F * fhE  ; //! E distribution, Reco
281   TH1F * fhPt ; //! pT distribution, Reco
282   TH1F * fhPhi; //! phi distribution, Reco 
283   TH1F * fhEta; //! eta distribution, Reco 
284   TH3F * fhEtaPhiE  ; //! eta vs phi vs E, Reco
285   TH1F * fhECharged  ; //! E distribution, Reco, matched with track
286   TH1F * fhPtCharged ; //! pT distribution, Reco, matched with track
287   TH1F * fhPhiCharged; //! phi distribution, Reco, matched with track 
288   TH1F * fhEtaCharged; //! eta distribution, Reco, matched with track 
289   TH3F * fhEtaPhiECharged  ; //! eta vs phi vs E, Reco, matched with track 
290   TH1F * fhDeltaE  ; //! MC-Reco E distribution 
291   TH1F * fhDeltaPt ; //! MC-Reco pT distribution
292   TH1F * fhDeltaPhi; //! MC-Reco phi distribution
293   TH1F * fhDeltaEta; //! MC-Reco eta distribution
294   TH1F * fhRatioE  ; //! Reco/MC E distribution 
295   TH1F * fhRatioPt ; //! Reco/MC pT distribution
296   TH1F * fhRatioPhi; //! Reco/MC phi distribution
297   TH1F * fhRatioEta; //! Reco/MC eta distribution
298   TH2F * fh2E  ; //! E distribution, Reco vs MC
299   TH2F * fh2Pt ; //! pT distribution, Reco vs MC
300   TH2F * fh2Phi; //! phi distribution, Reco vs MC
301   TH2F * fh2Eta; //! eta distribution, Reco vs MC
302   
303   TH3F * fhLambda  ;     //! Shower ellipse axis Lambda 0 vs vs Lambda 1 vs E
304   TH2F * fhDispersion  ; //! Shower dispersion vs E
305         
306   TH2F * fhIM; //! cluster pairs invariant mass
307   TH2F * fhIMCellCut; //! cluster pairs invariant mass, n cells > 1 per cluster
308   TH2F * fhAsym; //! cluster pairs invariant mass       
309   
310   TH3F * fhNCellsPerCluster;           //! N cells per cluster vs cluster energy vs eta of cluster      
311   TH3F * fhNCellsPerClusterMIP;        //! N cells per cluster vs cluster energy vs eta of cluster, finer fixed pT bin for MIP search.
312   TH3F * fhNCellsPerClusterMIPCharged; //! N cells per cluster vs cluster energy vs eta of cluster, finer fixed pT bin for MIP search, cluster matched with track.      
313   
314   TH1F * fhNClusters; //! Number of clusters
315         
316   TH2F * fhClusterTimeEnergy;               //! Cluster Time vs Energy 
317   TH1F * fhCellTimeSpreadRespectToCellMax;  //! Difference of the time of cell with maximum dep energy and the rest of cells
318   TH1F * fhCellIdCellLargeTimeSpread;       //! Cells with large time respect to max (diff > 100 ns)
319         
320   TH2F * fhBadClusterMaxCellTimeEnergy;     //! Time Max cell of bad cluster
321   TH2F * fhBadClusterMaxCellCloseCellRatio; //! Ratio between max cell energy and cell energy of the same cluster for bad clusters 
322   TH2F * fhClusterMaxCellTimeEnergy;        //! Time of Max cell
323   TH2F * fhClusterMaxCellCloseCellRatio;    //! Ratio between max cell energy and cell energy of the same cluster 
324   
325   TH2F * fhRNCells ; //! R=sqrt(x^2+y^2) (cm) cluster distribution vs N cells in cluster
326   TH2F * fhXNCells ; //! X (cm) cluster distribution vs N cells in cluster
327   TH2F * fhYNCells ; //! Y (cm) cluster distribution vs N cells in cluster
328   TH2F * fhZNCells ; //! Z (cm) cluster distribution vs N cells in cluster
329         
330   TH2F * fhRE ; //! R=sqrt(x^2+y^2) (cm) cluster distribution vs cluster energy
331   TH2F * fhXE ; //! X (cm) cluster distribution vs cluster energy
332   TH2F * fhYE ; //! Y (cm) cluster distribution vs cluster energy
333   TH2F * fhZE ; //! Z (cm) cluster distribution vs cluster energy
334   TH3F * fhXYZ; //! cluster X vs Y vs Z (cm)
335         
336   TH2F * fhRCellE ; //! R=sqrt(x^2+y^2) (cm) cell distribution vs cell energy
337   TH2F * fhXCellE ; //! X (cm) cell distribution vs cell energy
338   TH2F * fhYCellE ; //! Y (cm) cell distribution vs cell energy
339   TH2F * fhZCellE ; //! Z (cm) cell distribution vs cell energy
340   TH3F * fhXYZCell; //! cell X vs Y vs Z (cm)
341   
342   TH2F * fhDeltaCellClusterRNCells ; //! R cluster - R cell distribution (cm) vs N cells in cluster
343   TH2F * fhDeltaCellClusterXNCells ; //! X cluster - X cell distribution (cm) vs N cells in cluster
344   TH2F * fhDeltaCellClusterYNCells ; //! Y cluster - Y cell distribution (cm) vs N cells in cluster
345   TH2F * fhDeltaCellClusterZNCells ; //! Z cluster - Z cell distribution (cm) vs N cells in cluster
346         
347   TH2F * fhDeltaCellClusterRE ; //! R cluster - R cell distribution (cm) vs cluster energy
348   TH2F * fhDeltaCellClusterXE ; //! X cluster - X cell distribution (cm) vs cluster energy
349   TH2F * fhDeltaCellClusterYE ; //! Y cluster - Y cell distribution (cm) vs cluster energy
350   TH2F * fhDeltaCellClusterZE ; //! Z cluster - Z cell distribution (cm) vs cluster energy
351         
352         
353   //Calo Cells
354   TH1F * fhNCells;    //! Number of towers/crystals with signal
355   TH1F * fhAmplitude; //! Amplitude measured in towers/crystals
356   TH2F * fhAmpId;     //! Amplitude measured in towers/crystals vs id of tower. 
357   TH3F * fhEtaPhiAmp; //! eta vs phi vs amplitude, cells
358   
359   TH1F * fhTime;      //! Time measured in towers/crystals
360   TH2F * fhTimeId;    //! Time vs Absolute cell Id
361   TH2F * fhTimeAmp;   //! Time vs Amplitude 
362   //  TH1F * fhT0Time;    //! T0 - EMCAL Time measured in towers/crystals
363   //  TH2F * fhT0TimeId;  //! T0 - EMCAL Time vs Absolute cell Id
364   //  TH2F * fhT0TimeAmp; //! T0 - EMCAL Time vs Amplitude 
365   
366   
367   //Calorimeters Correlation
368   TH2F * fhCaloCorrNClusters; // EMCAL vs PHOS, number of clusters      
369   TH2F * fhCaloCorrEClusters; // EMCAL vs PHOS, total measured cluster energy
370   TH2F * fhCaloCorrNCells; // EMCAL vs PHOS, number of cells
371   TH2F * fhCaloCorrECells; // EMCAL vs PHOS,  total measured cell energy
372         
373   //V0 Correlation
374   TH2F * fhCaloV0SCorrNClusters; // Calo vs V0 signal , number of clusters      
375   TH2F * fhCaloV0SCorrEClusters; // Calo vs V0 signal, total measured cluster energy
376   TH2F * fhCaloV0SCorrNCells; // Calo vs V0 signal, number of cells
377   TH2F * fhCaloV0SCorrECells; // Calo vs V0 signal,  total measured cell energy
378   TH2F * fhCaloV0MCorrNClusters; // Calo vs V0 multiplicity , number of clusters        
379   TH2F * fhCaloV0MCorrEClusters; // Calo vs V0 multiplicity, total measured cluster energy
380   TH2F * fhCaloV0MCorrNCells; // Calo vs V0 multiplicity, number of cells
381   TH2F * fhCaloV0MCorrECells; // Calo vs V0 multiplicity,  total measured cell energy
382   
383   //Track Correlation
384   TH2F * fhCaloTrackMCorrNClusters; // Calo vs Track Multiplicity, number of clusters   
385   TH2F * fhCaloTrackMCorrEClusters; // Calo vs Track Multiplicity, total measured cluster energy
386   TH2F * fhCaloTrackMCorrNCells; // Calo vs V0 Track Multiplicity, number of cells
387   TH2F * fhCaloTrackMCorrECells; // Calo vs V0 Track Multipliticy,  total measured cell energy
388   
389   //Module histograms
390   TH1F ** fhEMod  ;               //! E distribution for different module, Reco
391   TH1F ** fhNClustersMod ;        //! Number of clusters for different module, Reco
392   TH2F ** fhNCellsPerClusterMod ; //! N cells per clusters different module, Reco
393   TH1F ** fhNCellsMod ;           //! Number of towers/crystals with signal different module, Reco
394   TH2F ** fhGridCellsMod ;        //! Cells ordered in column/row for different module, Reco
395   TH2F ** fhGridCellsEMod ;       //! Cells ordered in column/row for different module, weighted with energy, Reco
396   TH2F ** fhGridCellsTimeMod ;    //! Cells ordered in column/row for different module, weighted with time, Reco
397   TH1F ** fhAmplitudeMod ;        //! Amplitude measured in towers/crystals different module, Reco
398   TH1F ** fhAmplitudeModFraction; //! Amplitude measured in towers/crystals different fractions of module, Reco
399   TH2F ** fhTimeAmpPerRCU;        //! Time vs Amplitude measured in towers/crystals different RCU
400   //TH2F ** fhT0TimeAmpPerRCU;      //! T0 - EMCAL Time vs Amplitude measured in towers/crystals different RCU
401   //TH2F ** fhTimeCorrRCU;          //! Correlate time entries in the different RCU, E > 0.3
402   TH2F ** fhIMMod;                //! cluster pairs invariant mass, different module,
403   TH2F ** fhIMCellCutMod;         //! cluster pairs invariant mass, n cells > 1 per cluster, different module
404         
405   //MC  
406   TH1F *fhGenGamPt  ; // pt of primary gamma
407   TH1F *fhGenGamEta ; // eta of primart gamma
408   TH1F *fhGenGamPhi ; // phi of primary gamma   
409   TH1F *fhGenPi0Pt  ; // pt of primary pi0
410   TH1F *fhGenPi0Eta ; // eta of primart pi0
411   TH1F *fhGenPi0Phi ; // phi of primary pi0     
412   TH1F *fhGenEtaPt  ; // pt of primary eta
413   TH1F *fhGenEtaEta ; // eta of primart eta
414   TH1F *fhGenEtaPhi ; // phi of primary eta
415   TH1F *fhGenOmegaPt  ; // pt of primary omega
416   TH1F *fhGenOmegaEta ; // eta of primart omega
417   TH1F *fhGenOmegaPhi ; // phi of primary omega
418   TH1F *fhGenElePt  ; // pt of primary electron
419   TH1F *fhGenEleEta ; // eta of primart electron
420   TH1F *fhGenElePhi ; // phi of primary electron
421         
422   //TH3F * fhEMVxyz    ; // Electromagnetic particle production vertex
423   TH2F * fhEMVxyz    ; // Electromagnetic particle production vertex
424   TH2F * fhEMR       ; // Electromagnetic distance to vertex vs rec energy  
425   //TH3F * fhHaVxyz    ; // Hadron production vertex
426   TH2F * fhHaVxyz    ; // Hadron production vertex
427   TH2F * fhHaR       ; // Hadron distance to vertex vs rec energy  
428   
429   TH2F * fhGamE  ; //! E distribution of generated photons, Reco
430   TH2F * fhGamPt ; //! pT distribution of generated photons, Reco
431   TH2F * fhGamPhi; //! phi distribution of generated photon, Reco 
432   TH2F * fhGamEta; //! eta distribution of generated photons, Reco 
433   TH1F * fhGamDeltaE  ; //! MC-Reco E distribution of generated photons 
434   TH1F * fhGamDeltaPt ; //! MC-Reco pT distribution of generated photons
435   TH1F * fhGamDeltaPhi; //! MC-Reco phi distribution of generated photons
436   TH1F * fhGamDeltaEta; //! MC-Reco eta distribution of generated photons
437   TH1F * fhGamRatioE  ; //! Reco/MC E distribution of generated photons 
438   TH1F * fhGamRatioPt ; //! Reco/MC pT distribution of generated photons
439   TH1F * fhGamRatioPhi; //! Reco/MC phi distribution of generated photons
440   TH1F * fhGamRatioEta; //! Reco/MC eta distribution of generated photons
441   TH2F * fhEleE  ; //! E distribution of generated electrons, Reco
442   TH2F * fhElePt ; //! pT distribution of generated electrons, Reco
443   TH2F * fhElePhi; //! phi distribution of generated electron, Reco 
444   TH2F * fhEleEta; //! eta distribution of generated electrons, Reco            
445   TH2F * fhPi0E  ; //! E distribution of generated pi0, Reco, gamma decay overlapped
446   TH2F * fhPi0Pt ; //! pT distribution of generated pi0, Reco, gamma decay overlapped
447   TH2F * fhPi0Phi; //! phi distribution of generated pi0, Reco, gamma decay overlapped
448   TH2F * fhPi0Eta; //! eta distribution of generated pi0, Reco, gamma decay overlapped
449   TH2F * fhNeHadE  ; //! E distribution of generated neutral hadron, Reco
450   TH2F * fhNeHadPt ; //! pT distribution of generated neutral hadron, Reco
451   TH2F * fhNeHadPhi; //! phi distribution of generated neutral hadron, Reco 
452   TH2F * fhNeHadEta; //! eta distribution of generated neutral hadron, Reco     
453   TH2F * fhChHadE  ; //! E distribution of generated charged hadron, Reco
454   TH2F * fhChHadPt ; //! pT distribution of generated charged hadron, Reco
455   TH2F * fhChHadPhi; //! phi distribution of generated charged hadron, Reco 
456   TH2F * fhChHadEta; //! eta distribution of generated charged hadron, Reco 
457   
458   TH2F * fhGamECharged  ; //! E distribution of generated photons, Reco, track matched cluster
459   TH2F * fhGamPtCharged ; //! pT distribution of generated photons, Reco, track matched cluster
460   TH2F * fhGamPhiCharged; //! phi distribution of generated photon, Reco, track matched cluster 
461   TH2F * fhGamEtaCharged; //! eta distribution of generated photons, Reco, track matched cluster 
462   TH2F * fhEleECharged  ; //! E distribution of generated electrons, Reco, track matched cluster
463   TH2F * fhElePtCharged ; //! pT distribution of generated electrons, Reco, track matched cluster
464   TH2F * fhElePhiCharged; //! phi distribution of generated electron, Reco, track matched cluster 
465   TH2F * fhEleEtaCharged; //! eta distribution of generated electrons, Reco, track matched cluster              
466   TH2F * fhPi0ECharged  ; //! E distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
467   TH2F * fhPi0PtCharged ; //! pT distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
468   TH2F * fhPi0PhiCharged; //! phi distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
469   TH2F * fhPi0EtaCharged; //! eta distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
470   TH2F * fhNeHadECharged  ; //! E distribution of generated neutral hadron, Reco, track matched cluster
471   TH2F * fhNeHadPtCharged ; //! pT distribution of generated neutral hadron, Reco, track matched cluster
472   TH2F * fhNeHadPhiCharged; //! phi distribution of generated neutral hadron, Reco , track matched cluster
473   TH2F * fhNeHadEtaCharged; //! eta distribution of generated neutral hadron, Reco, track matched cluster       
474   TH2F * fhChHadECharged  ; //! E distribution of generated charged hadron, Reco, track matched cluster
475   TH2F * fhChHadPtCharged ; //! pT distribution of generated charged hadron, Reco, track matched cluster
476   TH2F * fhChHadPhiCharged; //! phi distribution of generated charged hadron, Reco, track matched cluster 
477   TH2F * fhChHadEtaCharged; //! eta distribution of generated charged hadron, Reco, track matched cluster       
478         
479   TH1F *fhGenGamAccE   ; // E of primary gamma
480   TH1F *fhGenGamAccPt  ; // pt of primary gamma
481   TH1F *fhGenGamAccEta ; // eta of primart gamma
482   TH1F *fhGenGamAccPhi ; // phi of primary gamma        
483   TH1F *fhGenPi0AccE   ; // E of primary pi0
484   TH1F *fhGenPi0AccPt  ; // pt of primary pi0
485   TH1F *fhGenPi0AccEta ; // eta of primart pi0
486   TH1F *fhGenPi0AccPhi ; // phi of primary pi0          
487         
488   //Histograms for track-matching
489   TH2F *fh1pOverE;     //! p/E for track-cluster matches
490   TH1F *fh1dR;         //! distance between projected track and cluster
491   TH2F *fh2EledEdx;    //! dE/dx vs. momentum for electron candidates
492   TH2F *fh2MatchdEdx;  //! dE/dx vs. momentum for all matches
493         
494   TH2F *fhMCEle1pOverE;     //! p/E for track-cluster matches, MC electrons
495   TH1F *fhMCEle1dR;         //! distance between projected track and cluster, MC electrons
496   TH2F *fhMCEle2MatchdEdx;  //! dE/dx vs. momentum for all matches, MC electrons        
497         
498   TH2F *fhMCChHad1pOverE;     //! p/E for track-cluster matches, MC charged hadrons
499   TH1F *fhMCChHad1dR;         //! distance between projected track and cluster, MC charged hadrons
500   TH2F *fhMCChHad2MatchdEdx;  //! dE/dx vs. momentum for all matches, MC charged
501         
502   TH2F *fhMCNeutral1pOverE;     //! p/E for track-cluster matches, MC neutral
503   TH1F *fhMCNeutral1dR;         //! distance between projected track and cluster, MC neutral
504   TH2F *fhMCNeutral2MatchdEdx;  //! dE/dx vs. momentum for all matches, MC neutral      
505         
506   TH2F *fh1pOverER02;           //! p/E for track-cluster matches, dR > 0.2     
507   TH2F *fhMCEle1pOverER02;      //! p/E for track-cluster matches, dR > 0.2, MC electrons
508   TH2F *fhMCChHad1pOverER02;    //! p/E for track-cluster matches, dR > 0.2, MC charged hadrons
509   TH2F *fhMCNeutral1pOverER02;  //! p/E for track-cluster matches, dR > 0.2, MC neutral
510         
511   ClassDef(AliAnaCalorimeterQA,13)
512 } ;
513
514
515 #endif //ALIANACALORIMETERQA_H
516
517
518