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 */
7 //_________________________________________________________________________
8 // Class to check results from simulations or reconstructed real data.
9 // Fill few histograms and do some checking plots
11 //-- Author: Gustavo Conesa (INFN-LNF)
13 // --- Root system ---
18 // --- Analysis system ---
19 class AliPHOSGeoUtils;
20 class AliEMCALGeoUtils;
21 class AliESDCaloCluster;
22 class AliAODCaloCluster;
24 #include "AliAnaPartCorrBaseClass.h"
26 class AliAnaCalorimeterQA : public AliAnaPartCorrBaseClass {
30 AliAnaCalorimeterQA() ; // default ctor
31 AliAnaCalorimeterQA(const AliAnaCalorimeterQA & g) ; // cpy ctor
32 AliAnaCalorimeterQA & operator = (const AliAnaCalorimeterQA & g) ;//cpy assignment
33 virtual ~AliAnaCalorimeterQA() ; //virtual dtor
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);
39 TList * GetCreateOutputObjects();
42 void InitParameters();
44 void Print(const Option_t * opt) const;
46 void MakeAnalysisFillHistograms() ;
48 void MCHistograms(const TLorentzVector mom, const Int_t pdg);
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; }
55 void SwitchOnPlotsMaking() {fMakePlots = kTRUE;}
56 void SwitchOffPlotsMaking() {fMakePlots = kFALSE;}
58 void SwitchOnCalorimetersCorrelation() {fCorrelateCalos = kTRUE;}
59 void SwitchOffCalorimetersCorrelation() {fCorrelateCalos = kFALSE;}
60 void CorrelateCalorimeters(TRefArray* caloClusters);
62 void Terminate(TList * outputList);
63 void ReadHistograms(TList * outputList); //Fill histograms with histograms in ouput list, needed in Terminate.
65 void SetEMCALGeometryName(TString name) { fEMCALGeoName = name ; }
66 TString EMCALGeometryName() const { return fEMCALGeoName ; }
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);
72 void SetNumberOfModules(Int_t nmod) {fNModules = nmod;}
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
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
122 TH1F * fhNCells; //! Number of towers/crystals with signal
123 TH1F * fhAmplitude; //! Amplitude measured in towers/crystals
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
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
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
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
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
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
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
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
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
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
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
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
248 ClassDef(AliAnaCalorimeterQA,3)
252 #endif //ALIANACALORIMETERQA_H