]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrDep/AliAnaCalorimeterQA.h
Add a setter to the number of PID options
[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
18 // --- Analysis system --- 
19 class AliPHOSGeoUtils;
20 class AliEMCALGeoUtils;
21 class AliESDCaloCluster;
22 class AliAODCaloCluster;
23
24 #include "AliAnaPartCorrBaseClass.h"
25  
26 class AliAnaCalorimeterQA : public AliAnaPartCorrBaseClass {
27   
28  public: 
29   
30   AliAnaCalorimeterQA() ; // default ctor
31   AliAnaCalorimeterQA(const AliAnaCalorimeterQA & g) ; // cpy ctor
32   AliAnaCalorimeterQA & operator = (const AliAnaCalorimeterQA & g) ;//cpy assignment
33   virtual ~AliAnaCalorimeterQA() ; //virtual dtor
34   
35   void ClusterHistograms(const TLorentzVector mom, const Int_t nCaloCellsPerCluster, const Int_t nModule,
36                                                  const Int_t nTracksMatched, const TObject* track, 
37                                                  const Int_t * labels, const Int_t nLabels);
38         
39   TList * GetCreateOutputObjects();
40
41   void Init();
42   void InitParameters();
43   
44   void Print(const Option_t * opt) const;
45     
46   void MakeAnalysisFillHistograms() ; 
47   
48   void MCHistograms(const TLorentzVector mom, const Int_t pdg);
49
50   TString GetCalorimeter() const {return fCalorimeter ;}
51   void SetCalorimeter( TString calo ) {fCalorimeter = calo; }
52   TString GetStyleMacro() const {return fStyleMacro ;}
53   void SetStyleMacro( TString macro ) {fStyleMacro = macro; }
54   
55   void SwitchOnPlotsMaking()  {fMakePlots = kTRUE;}
56   void SwitchOffPlotsMaking() {fMakePlots = kFALSE;}
57         
58   void SwitchOnCalorimetersCorrelation()  {fCorrelateCalos = kTRUE;}
59   void SwitchOffCalorimetersCorrelation() {fCorrelateCalos = kFALSE;}
60   void CorrelateCalorimeters(TRefArray* caloClusters);
61         
62   void Terminate(TList * outputList);
63   void ReadHistograms(TList * outputList); //Fill histograms with histograms in ouput list, needed in Terminate.
64
65   void SetEMCALGeometryName(TString name)   { fEMCALGeoName = name ; }
66   TString EMCALGeometryName() const { return fEMCALGeoName ; }
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);
71
72   void SetNumberOfModules(Int_t nmod) {fNModules = nmod;}
73
74  private:
75   
76   TString fCalorimeter ;   //Calorimeter selection
77   TString fStyleMacro  ;   //Location of macro for plots style
78   Bool_t fMakePlots    ;   //Print plots
79   Bool_t fCorrelateCalos;  //Correlate PHOS/EMCAL clusters
80   AliPHOSGeoUtils  * fPHOSGeo  ; //! PHOS geometry pointer  
81   AliEMCALGeoUtils * fEMCALGeo ; //! EMCAL geometry pointer
82   TString fEMCALGeoName;  // Name of geometry to use.
83   Int_t fNModules ;        // Number of EMCAL/PHOS modules, set as many histogras as modules 
84         
85   //Histograms
86   //CaloClusters 
87   TH1F * fhE  ; //! E distribution, Reco
88   TH1F * fhPt ; //! pT distribution, Reco
89   TH1F * fhPhi; //! phi distribution, Reco 
90   TH1F * fhEta; //! eta distribution, Reco 
91   TH2F * fhEtaPhi  ; //! eta vs phi, Reco 
92   TH3F * fhEtaPhiE  ; //! eta vs phi vs E, Reco
93   TH1F * fhECharged  ; //! E distribution, Reco, matched with track
94   TH1F * fhPtCharged ; //! pT distribution, Reco, matched with track
95   TH1F * fhPhiCharged; //! phi distribution, Reco, matched with track 
96   TH1F * fhEtaCharged; //! eta distribution, Reco, matched with track 
97   TH2F * fhEtaPhiCharged  ; //! eta vs phi, Reco, matched with track 
98   TH1F * fhEChargedNoOut  ; //! E distribution, Reco, matched with track, no outer param
99   TH1F * fhPtChargedNoOut ; //! pT distribution, Reco, matched with track, no outer param
100   TH1F * fhPhiChargedNoOut; //! phi distribution, Reco, matched with track, no outer param
101   TH1F * fhEtaChargedNoOut; //! eta distribution, Reco, matched with track, no outer param
102   TH2F * fhEtaPhiChargedNoOut  ; //! eta vs phi, Reco, matched with track, no outer param
103   TH1F * fhDeltaE  ; //! MC-Reco E distribution 
104   TH1F * fhDeltaPt ; //! MC-Reco pT distribution
105   TH1F * fhDeltaPhi; //! MC-Reco phi distribution
106   TH1F * fhDeltaEta; //! MC-Reco eta distribution
107   TH1F * fhRatioE  ; //! Reco/MC E distribution 
108   TH1F * fhRatioPt ; //! Reco/MC pT distribution
109   TH1F * fhRatioPhi; //! Reco/MC phi distribution
110   TH1F * fhRatioEta; //! Reco/MC eta distribution
111   TH2F * fh2E  ; //! E distribution, Reco vs MC
112   TH2F * fh2Pt ; //! pT distribution, Reco vs MC
113   TH2F * fh2Phi; //! phi distribution, Reco vs MC
114   TH2F * fh2Eta; //! eta distribution, Reco vs MC
115   TH2F * fhIM; //! cluster pairs invariant mass
116   TH2F * fhIMCellCut; //! cluster pairs invariant mass, n cells > 1 per cluster
117   TH2F * fhAsym; //! cluster pairs invariant mass       
118   TH2F * fhNCellsPerCluster; //! N cells per cluster    
119   TH1F * fhNClusters; //! Number of clusters
120         
121   //Calo Cells
122   TH1F * fhNCells; //! Number of towers/crystals with signal
123   TH1F * fhAmplitude; //! Amplitude measured in towers/crystals
124
125   //Calorimeters Correlation
126   TH2F * fhCaloCorrNClusters; // EMCAL vs PHOS, number of clusters      
127   TH2F * fhCaloCorrEClusters; // EMCAL vs PHOS, total measured cluster energy
128   TH2F * fhCaloCorrNCells; // EMCAL vs PHOS, number of cells
129   TH2F * fhCaloCorrECells; // EMCAL vs PHOS,  total measured cell energy
130         
131   //Module histograms
132   TH1F ** fhEMod  ;               //! E distribution for different module, Reco
133   TH1F ** fhNClustersMod ;        //! Number of clusters for different module, Reco
134   TH2F ** fhNCellsPerClusterMod ; //! N cells per clusters different module, Reco
135   TH1F ** fhNCellsMod ;           //! Number of towers/crystals with signal different module, Reco
136   TH2F ** fhGridCellsMod ;        //! Cells ordered in column/row for different module, Reco
137   TH2F ** fhGridCellsEMod ;       //! Cells ordered in column/row for different module, weighted with energy, Reco
138   TH1F ** fhAmplitudeMod ;        //! Amplitude measured in towers/crystals different module, Reco
139   TH2F ** fhIMMod;                //! cluster pairs invariant mass, different module,
140   TH2F ** fhIMCellCutMod;         //! cluster pairs invariant mass, n cells > 1 per cluster, different module
141
142   //MC  
143   TH1F *fhGenGamPt  ; // pt of primary gamma
144   TH1F *fhGenGamEta ; // eta of primart gamma
145   TH1F *fhGenGamPhi ; // phi of primary gamma   
146   TH1F *fhGenPi0Pt  ; // pt of primary pi0
147   TH1F *fhGenPi0Eta ; // eta of primart pi0
148   TH1F *fhGenPi0Phi ; // phi of primary pi0     
149   TH1F *fhGenEtaPt  ; // pt of primary eta
150   TH1F *fhGenEtaEta ; // eta of primart eta
151   TH1F *fhGenEtaPhi ; // phi of primary eta
152   TH1F *fhGenOmegaPt  ; // pt of primary omega
153   TH1F *fhGenOmegaEta ; // eta of primart omega
154   TH1F *fhGenOmegaPhi ; // phi of primary omega
155   TH1F *fhGenElePt  ; // pt of primary electron
156   TH1F *fhGenEleEta ; // eta of primart electron
157   TH1F *fhGenElePhi ; // phi of primary electron
158         
159   //TH3F * fhEMVxyz    ; // Electromagnetic particle production vertex
160   TH2F * fhEMVxyz    ; // Electromagnetic particle production vertex
161   TH2F * fhEMR       ; // Electromagnetic distance to vertex vs rec energy  
162   //TH3F * fhHaVxyz    ; // Hadron production vertex
163   TH2F * fhHaVxyz    ; // Hadron production vertex
164   TH2F * fhHaR       ; // Hadron distance to vertex vs rec energy  
165
166   TH2F * fhGamE  ; //! E distribution of generated photons, Reco
167   TH2F * fhGamPt ; //! pT distribution of generated photons, Reco
168   TH2F * fhGamPhi; //! phi distribution of generated photon, Reco 
169   TH2F * fhGamEta; //! eta distribution of generated photons, Reco 
170   TH1F * fhGamDeltaE  ; //! MC-Reco E distribution of generated photons 
171   TH1F * fhGamDeltaPt ; //! MC-Reco pT distribution of generated photons
172   TH1F * fhGamDeltaPhi; //! MC-Reco phi distribution of generated photons
173   TH1F * fhGamDeltaEta; //! MC-Reco eta distribution of generated photons
174   TH1F * fhGamRatioE  ; //! Reco/MC E distribution of generated photons 
175   TH1F * fhGamRatioPt ; //! Reco/MC pT distribution of generated photons
176   TH1F * fhGamRatioPhi; //! Reco/MC phi distribution of generated photons
177   TH1F * fhGamRatioEta; //! Reco/MC eta distribution of generated photons
178   TH2F * fhEleE  ; //! E distribution of generated electrons, Reco
179   TH2F * fhElePt ; //! pT distribution of generated electrons, Reco
180   TH2F * fhElePhi; //! phi distribution of generated electron, Reco 
181   TH2F * fhEleEta; //! eta distribution of generated electrons, Reco            
182   TH2F * fhPi0E  ; //! E distribution of generated pi0, Reco, gamma decay overlapped
183   TH2F * fhPi0Pt ; //! pT distribution of generated pi0, Reco, gamma decay overlapped
184   TH2F * fhPi0Phi; //! phi distribution of generated pi0, Reco, gamma decay overlapped
185   TH2F * fhPi0Eta; //! eta distribution of generated pi0, Reco, gamma decay overlapped
186   TH2F * fhNeHadE  ; //! E distribution of generated neutral hadron, Reco
187   TH2F * fhNeHadPt ; //! pT distribution of generated neutral hadron, Reco
188   TH2F * fhNeHadPhi; //! phi distribution of generated neutral hadron, Reco 
189   TH2F * fhNeHadEta; //! eta distribution of generated neutral hadron, Reco     
190   TH2F * fhChHadE  ; //! E distribution of generated charged hadron, Reco
191   TH2F * fhChHadPt ; //! pT distribution of generated charged hadron, Reco
192   TH2F * fhChHadPhi; //! phi distribution of generated charged hadron, Reco 
193   TH2F * fhChHadEta; //! eta distribution of generated charged hadron, Reco 
194
195   TH2F * fhGamECharged  ; //! E distribution of generated photons, Reco, track matched cluster
196   TH2F * fhGamPtCharged ; //! pT distribution of generated photons, Reco, track matched cluster
197   TH2F * fhGamPhiCharged; //! phi distribution of generated photon, Reco, track matched cluster 
198   TH2F * fhGamEtaCharged; //! eta distribution of generated photons, Reco, track matched cluster 
199   TH2F * fhEleECharged  ; //! E distribution of generated electrons, Reco, track matched cluster
200   TH2F * fhElePtCharged ; //! pT distribution of generated electrons, Reco, track matched cluster
201   TH2F * fhElePhiCharged; //! phi distribution of generated electron, Reco, track matched cluster 
202   TH2F * fhEleEtaCharged; //! eta distribution of generated electrons, Reco, track matched cluster              
203   TH2F * fhPi0ECharged  ; //! E distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
204   TH2F * fhPi0PtCharged ; //! pT distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
205   TH2F * fhPi0PhiCharged; //! phi distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
206   TH2F * fhPi0EtaCharged; //! eta distribution of generated pi0, Reco, gamma decay overlapped, track matched cluster
207   TH2F * fhNeHadECharged  ; //! E distribution of generated neutral hadron, Reco, track matched cluster
208   TH2F * fhNeHadPtCharged ; //! pT distribution of generated neutral hadron, Reco, track matched cluster
209   TH2F * fhNeHadPhiCharged; //! phi distribution of generated neutral hadron, Reco , track matched cluster
210   TH2F * fhNeHadEtaCharged; //! eta distribution of generated neutral hadron, Reco, track matched cluster       
211   TH2F * fhChHadECharged  ; //! E distribution of generated charged hadron, Reco, track matched cluster
212   TH2F * fhChHadPtCharged ; //! pT distribution of generated charged hadron, Reco, track matched cluster
213   TH2F * fhChHadPhiCharged; //! phi distribution of generated charged hadron, Reco, track matched cluster 
214   TH2F * fhChHadEtaCharged; //! eta distribution of generated charged hadron, Reco, track matched cluster       
215         
216   TH1F *fhGenGamAccE   ; // E of primary gamma
217   TH1F *fhGenGamAccPt  ; // pt of primary gamma
218   TH1F *fhGenGamAccEta ; // eta of primart gamma
219   TH1F *fhGenGamAccPhi ; // phi of primary gamma        
220   TH1F *fhGenPi0AccE   ; // E of primary pi0
221   TH1F *fhGenPi0AccPt  ; // pt of primary pi0
222   TH1F *fhGenPi0AccEta ; // eta of primart pi0
223   TH1F *fhGenPi0AccPhi ; // phi of primary pi0          
224         
225   //Histograms for track-matching
226   TH2F *fh1pOverE;     //! p/E for track-cluster matches
227   TH1F *fh1dR;         //! distance between projected track and cluster
228   TH2F *fh2EledEdx;    //! dE/dx vs. momentum for electron candidates
229   TH2F *fh2MatchdEdx;  //! dE/dx vs. momentum for all matches
230         
231   TH2F *fhMCEle1pOverE;     //! p/E for track-cluster matches, MC electrons
232   TH1F *fhMCEle1dR;         //! distance between projected track and cluster, MC electrons
233   TH2F *fhMCEle2MatchdEdx;  //! dE/dx vs. momentum for all matches, MC electrons        
234         
235   TH2F *fhMCChHad1pOverE;     //! p/E for track-cluster matches, MC charged hadrons
236   TH1F *fhMCChHad1dR;         //! distance between projected track and cluster, MC charged hadrons
237   TH2F *fhMCChHad2MatchdEdx;  //! dE/dx vs. momentum for all matches, MC charged
238         
239   TH2F *fhMCNeutral1pOverE;     //! p/E for track-cluster matches, MC neutral
240   TH1F *fhMCNeutral1dR;         //! distance between projected track and cluster, MC neutral
241   TH2F *fhMCNeutral2MatchdEdx;  //! dE/dx vs. momentum for all matches, MC neutral      
242         
243   TH2F *fh1pOverER02;           //! p/E for track-cluster matches, dR > 0.2     
244   TH2F *fhMCEle1pOverER02;      //! p/E for track-cluster matches, dR > 0.2, MC electrons
245   TH2F *fhMCChHad1pOverER02;    //! p/E for track-cluster matches, dR > 0.2, MC charged hadrons
246   TH2F *fhMCNeutral1pOverER02;  //! p/E for track-cluster matches, dR > 0.2, MC neutral
247         
248         ClassDef(AliAnaCalorimeterQA,3)
249 } ;
250
251
252 #endif //ALIANACALORIMETERQA_H
253
254
255