]>
Commit | Line | Data |
---|---|---|
9725fd2a | 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 */ | |
9725fd2a | 5 | |
6 | //_________________________________________________________________________ | |
7 | // Class to check results from simulations or reconstructed real data. | |
8 | // Fill few histograms and do some checking plots | |
9 | // | |
2302a644 | 10 | //-- Author: Gustavo Conesa (INFN-LNF) |
9725fd2a | 11 | |
12 | // --- Root system --- | |
a5fafd85 | 13 | class TH3F; |
9725fd2a | 14 | class TH2F; |
15 | class TH1F; | |
0c1383b5 | 16 | class TObjString; |
649b825d | 17 | class TObjArray; |
9725fd2a | 18 | |
19 | // --- Analysis system --- | |
649b825d | 20 | class AliVCaloCells; |
c8fe2783 | 21 | class AliVCaloCluster; |
22 | class AliVTrack; | |
a5fafd85 | 23 | |
745913ae | 24 | #include "AliAnaCaloTrackCorrBaseClass.h" |
9725fd2a | 25 | |
745913ae | 26 | class AliAnaCalorimeterQA : public AliAnaCaloTrackCorrBaseClass { |
9725fd2a | 27 | |
2302a644 | 28 | public: |
78219bac | 29 | AliAnaCalorimeterQA() ; // default ctor |
30 | virtual ~AliAnaCalorimeterQA() {;} //virtual dtor | |
c5693f62 | 31 | |
521636d2 | 32 | // General methods |
33 | ||
0c1383b5 | 34 | TObjString * GetAnalysisCuts(); |
521636d2 | 35 | |
36 | TList * GetCreateOutputObjects(); | |
2302a644 | 37 | |
521636d2 | 38 | void Init(); |
9725fd2a | 39 | |
521636d2 | 40 | void InitParameters(); |
41 | ||
42 | void MakeAnalysisFillHistograms() ; | |
2302a644 | 43 | |
521636d2 | 44 | void Print(const Option_t * opt) const; |
924e319f | 45 | |
521636d2 | 46 | // Main methods |
9725fd2a | 47 | |
b94e038e | 48 | void BadClusterHistograms(AliVCluster* clus, const TObjArray *caloClusters, AliVCaloCells * cells, |
45769d5b | 49 | Int_t absIdMax, Double_t maxCellFraction, Float_t eCrossFrac, Double_t tmax); |
1a72f6c5 | 50 | |
a82b4462 | 51 | void CalculateAverageTime(AliVCluster *clus, AliVCaloCells *cells, Double_t timeAverages[2]); |
649b825d | 52 | |
53 | void CellHistograms(AliVCaloCells * cells); | |
54 | ||
55 | void CellInClusterPositionHistograms(AliVCluster* cluster); | |
56 | ||
95aee5e1 | 57 | void ClusterAsymmetryHistograms(AliVCluster* clus, Int_t absIdMax, Bool_t goodCluster ); |
649b825d | 58 | |
c5693f62 | 59 | void ClusterHistograms(AliVCluster* cluster, const TObjArray *caloClusters, AliVCaloCells * cells, |
45769d5b | 60 | Int_t absIdMax, Double_t maxCellFraction, Float_t eCrossFrac, Double_t tmax); |
649b825d | 61 | |
f3138ecf | 62 | void ClusterLoopHistograms(const TObjArray * clusters, AliVCaloCells * cells); |
649b825d | 63 | |
b94e038e | 64 | Bool_t ClusterMCHistograms(TLorentzVector mom, Bool_t matched, |
65 | const Int_t * labels, Int_t nLabels, Int_t & pdg ); | |
649b825d | 66 | |
67 | void ClusterMatchedWithTrackHistograms(AliVCluster* clus, TLorentzVector mom, | |
b94e038e | 68 | Bool_t mcOK, Int_t pdg); |
649b825d | 69 | |
521636d2 | 70 | void Correlate(); |
649b825d | 71 | |
b94e038e | 72 | void ExoticHistograms(Int_t absIdMax, Float_t ampMax, |
f1538a5f | 73 | AliVCluster *clus, AliVCaloCells* cells); |
74 | ||
b94e038e | 75 | Float_t GetECross(Int_t absId, AliVCaloCells* cells,Float_t dtcut = 10000); |
1a72f6c5 | 76 | |
b94e038e | 77 | void InvariantMassHistograms(Int_t iclus, TLorentzVector mom, Int_t nModule, |
c5693f62 | 78 | const TObjArray* caloClusters, AliVCaloCells * cells); |
521636d2 | 79 | |
b94e038e | 80 | Bool_t IsGoodCluster(Int_t absIdMax, AliVCaloCells *cells); |
649b825d | 81 | |
82 | void MCHistograms(); | |
9e9f04cb | 83 | |
649b825d | 84 | void WeightHistograms(AliVCluster *clus, AliVCaloCells* cells); |
85 | ||
521636d2 | 86 | // Setters and Getters |
87 | ||
55c05f8c | 88 | |
521636d2 | 89 | Float_t GetEMCALCellAmpMin() const { return fEMCALCellAmpMin ; } |
90 | void SetEMCALCellAmpMin(Float_t amp) { fEMCALCellAmpMin = amp ; } | |
a6f26052 | 91 | |
521636d2 | 92 | Float_t GetPHOSCellAmpMin() const { return fPHOSCellAmpMin ; } |
93 | void SetPHOSCellAmpMin (Float_t amp) { fPHOSCellAmpMin = amp ; } | |
07e4c878 | 94 | |
95 | Float_t GetInvMassMinECut() const { return fMinInvMassECut ; } | |
96 | void SetInvMassMinECut(Float_t cut) { fMinInvMassECut = cut ; } | |
97 | ||
521636d2 | 98 | TString GetCalorimeter() const { return fCalorimeter ; } |
99 | void SetCalorimeter(TString calo) { fCalorimeter = calo ; } | |
55c05f8c | 100 | |
521636d2 | 101 | Double_t GetTimeCutMin() const { return fTimeCutMin ; } |
102 | Double_t GetTimeCutMax() const { return fTimeCutMax ; } | |
103 | void SetTimeCut(Double_t min, Double_t max) { | |
104 | fTimeCutMin = min ; fTimeCutMax = max ; } | |
649b825d | 105 | |
521636d2 | 106 | // Histogram Switchs |
2302a644 | 107 | |
e6fec6f5 | 108 | void SwitchOnFillAllCellTimeHisto() { fFillAllCellTimeHisto = kTRUE ; } |
109 | void SwitchOffFillAllCellTimeHisto() { fFillAllCellTimeHisto = kFALSE ; } | |
110 | ||
521636d2 | 111 | void SwitchOnFillAllPositionHistogram() { fFillAllPosHisto = kTRUE ; } |
112 | void SwitchOffFillAllPositionHistogram() { fFillAllPosHisto = kFALSE ; } | |
2302a644 | 113 | |
521636d2 | 114 | void SwitchOnFillAllPositionHistogram2() { fFillAllPosHisto2 = kTRUE ; } |
115 | void SwitchOffFillAllPositionHistogram2() { fFillAllPosHisto2 = kFALSE ; } | |
2302a644 | 116 | |
521636d2 | 117 | void SwitchOnFillAllTH3Histogram() { fFillAllTH3 = kTRUE ; } |
118 | void SwitchOffFillAllTH3Histogram() { fFillAllTH3 = kFALSE ; } | |
2302a644 | 119 | |
521636d2 | 120 | void SwitchOnFillAllTrackMatchingHistogram() { fFillAllTMHisto = kTRUE ; } |
121 | void SwitchOffFillAllTrackMatchingHistogram() { fFillAllTMHisto = kFALSE ; } | |
b8187de4 | 122 | |
521636d2 | 123 | void SwitchOnFillAllPi0Histogram() { fFillAllPi0Histo = kTRUE ; } |
124 | void SwitchOffFillAllPi0Histogram() { fFillAllPi0Histo = kFALSE ; } | |
125 | ||
126 | void SwitchOnCorrelation() { fCorrelate = kTRUE ; } | |
127 | void SwitchOffCorrelation() { fCorrelate = kFALSE ; } | |
649b825d | 128 | |
129 | void SwitchOnStudyBadClusters() { fStudyBadClusters = kTRUE ; } | |
130 | void SwitchOffStudyBadClusters() { fStudyBadClusters = kFALSE ; } | |
131 | ||
132 | void SwitchOnStudyClustersAsymmetry() { fStudyClustersAsymmetry = kTRUE ; } | |
133 | void SwitchOffStudyClustersAsymmetry() { fStudyClustersAsymmetry = kFALSE ; } | |
134 | ||
135 | void SwitchOnStudyWeight() { fStudyWeight = kTRUE ; } | |
136 | void SwitchOffStudyWeight() { fStudyWeight = kFALSE ; } | |
f1538a5f | 137 | |
138 | void SwitchOnStudyExotic() { fStudyExotic = kTRUE ; } | |
139 | void SwitchOffStudyExotic() { fStudyExotic = kFALSE ; } | |
140 | ||
141 | void SetNECrossCuts(Int_t n) { fExoNECrossCuts = n ; } | |
142 | void SetNDTimeCuts (Int_t n) { fExoNDTimeCuts = n ; } | |
143 | ||
144 | void SetExoECrossCuts (Int_t i, Float_t c) { if (i<fExoNECrossCuts) fExoECrossCuts[i] = c ; } | |
145 | void SetExoDTimeCuts (Int_t i, Float_t c) { if (i<fExoNDTimeCuts ) fExoDTimeCuts [i] = c ; } | |
649b825d | 146 | |
9725fd2a | 147 | private: |
148 | ||
521636d2 | 149 | TString fCalorimeter ; // Calorimeter selection |
649b825d | 150 | |
151 | //Switches | |
e6fec6f5 | 152 | Bool_t fFillAllCellTimeHisto; // Fill all cell time histo |
521636d2 | 153 | Bool_t fFillAllPosHisto; // Fill all the position related histograms |
154 | Bool_t fFillAllPosHisto2; // Fill all the position related histograms 2 | |
521636d2 | 155 | Bool_t fFillAllTH3 ; // Fill TH3 histograms |
156 | Bool_t fFillAllTMHisto ; // Fill track matching histograms | |
1a83b960 | 157 | Bool_t fFillAllPi0Histo ; // Fill invariant mass histograms |
521636d2 | 158 | Bool_t fCorrelate ; // Correlate PHOS/EMCAL cells/clusters, also with V0 and track multiplicity |
649b825d | 159 | Bool_t fStudyBadClusters; // Study bad clusters |
160 | Bool_t fStudyClustersAsymmetry; // Study asymmetry of clusters | |
f1538a5f | 161 | Bool_t fStudyExotic; // Study the exotic cluster for different cuts |
649b825d | 162 | Bool_t fStudyWeight; // Study the energy weight used in different cluster calculations |
163 | ||
164 | // Parameters | |
35c71d5c | 165 | Int_t fNModules ; // Number of EMCAL/PHOS modules |
166 | Int_t fNRCU ; // Number of EMCAL/PHOS RCU | |
167 | Int_t fNMaxCols ; // Number of EMCAL/PHOS rows | |
168 | Int_t fNMaxRows ; // Number of EMCAL/PHOS columns | |
649b825d | 169 | |
170 | //Cuts | |
521636d2 | 171 | Double_t fTimeCutMin ; // Remove clusters/cells with time smaller than this value, in ns |
172 | Double_t fTimeCutMax ; // Remove clusters/cells with time larger than this value, in ns | |
701cbf54 | 173 | Float_t fCellAmpMin; // amplitude Threshold on calorimeter cells, set at execution time |
521636d2 | 174 | Float_t fEMCALCellAmpMin; // amplitude Threshold on emcal cells |
175 | Float_t fPHOSCellAmpMin ; // amplitude Threshold on phos cells | |
2302a644 | 176 | |
07e4c878 | 177 | Float_t fMinInvMassECut; // Minimum energy cut value for clusters entering the invariant mass calculation |
178 | ||
f1538a5f | 179 | // Exotic studies |
180 | Float_t fExoNECrossCuts ; // Number of ecross cuts | |
181 | Float_t fExoECrossCuts[10]; // List of ecross cuts | |
182 | Float_t fExoNDTimeCuts ; // Number of time cuts | |
183 | Float_t fExoDTimeCuts[5] ; // List of time cuts | |
184 | ||
521636d2 | 185 | //CaloClusters |
186 | TH1F * fhE ; //! E distribution, Reco | |
187 | TH1F * fhPt ; //! pT distribution, Reco | |
188 | TH1F * fhPhi; //! phi distribution, Reco | |
189 | TH1F * fhEta; //! eta distribution, Reco | |
190 | TH3F * fhEtaPhiE ; //! eta vs phi vs E, Reco | |
191 | TH1F * fhECharged ; //! E distribution, Reco, matched with track | |
192 | TH1F * fhPtCharged ; //! pT distribution, Reco, matched with track | |
193 | TH1F * fhPhiCharged; //! phi distribution, Reco, matched with track | |
194 | TH1F * fhEtaCharged; //! eta distribution, Reco, matched with track | |
195 | TH3F * fhEtaPhiECharged; //! eta vs phi vs E, Reco, matched with track | |
521636d2 | 196 | |
197 | TH2F * fhIM; //! cluster pairs invariant mass | |
521636d2 | 198 | TH2F * fhAsym; //! cluster pairs invariant mass |
199 | ||
3f5990d6 | 200 | TH2F * fhNCellsPerCluster; //! N cells per cluster vs cluster energy vs eta of cluster |
715fd81f | 201 | TH2F * fhNCellsPerClusterNoCut; //! N cells per cluster vs cluster energy vs eta of cluster |
a82b4462 | 202 | |
521636d2 | 203 | TH1F * fhNClusters; //! Number of clusters |
204 | ||
205 | TH2F * fhClusterTimeEnergy; //! Cluster Time vs Energy | |
924e319f | 206 | TH2F * fhCellTimeSpreadRespectToCellMax; //! Difference of the time of cell with maximum dep energy and the rest of cells |
521636d2 | 207 | TH1F * fhCellIdCellLargeTimeSpread; //! Cells with large time respect to max (diff > 100 ns) |
e1e62b89 | 208 | TH2F * fhClusterPairDiffTimeE; //! Pair of clusters time difference vs E |
649b825d | 209 | |
e1e62b89 | 210 | TH2F * fhClusterMaxCellCloseCellRatio; //! Ratio between max cell energy and cell energy of the same cluster |
649b825d | 211 | TH2F * fhClusterMaxCellCloseCellDiff; //! Difference between max cell energy and cell energy of the same cluster |
715fd81f | 212 | TH2F * fhClusterMaxCellDiff; //! Difference between cluster energy and energy of cell with more energy, good clusters only |
213 | TH2F * fhClusterMaxCellDiffNoCut; //! Difference between cluster energy and energy of cell with more energy, no bad cluster rejection | |
715fd81f | 214 | |
649b825d | 215 | TH2F * fhClusterMaxCellDiffAverageTime; //! Difference between cluster average time and time of cell with more energy |
649b825d | 216 | TH2F * fhClusterMaxCellDiffWeightedTime; //! Difference between cluster weighted time and time of cell with more energy |
1a72f6c5 | 217 | TH2F * fhClusterMaxCellECross; //! 1 - Energy in cross around max energy cell / max energy cell vs cluster energy, good clusters |
e1e62b89 | 218 | |
649b825d | 219 | TH2F * fhLambda0; //! cluster Lambda0 vs Energy |
220 | TH2F * fhLambda1; //! cluster Lambda1 vs Energy | |
221 | TH2F * fhDispersion; //! cluster Dispersion vs Energy | |
222 | ||
223 | // Bad clusters histograms | |
e1e62b89 | 224 | TH1F * fhBadClusterEnergy; //! energy of bad cluster |
225 | TH2F * fhBadClusterTimeEnergy; //! Time Max cell of bad cluster | |
226 | TH2F * fhBadClusterPairDiffTimeE; //! Pair of clusters time difference vs E, bad cluster | |
649b825d | 227 | TH2F * fhBadCellTimeSpreadRespectToCellMax; //! Difference of the time of cell with maximum dep energy and the rest of cells for bad clusters |
228 | ||
521636d2 | 229 | TH2F * fhBadClusterMaxCellCloseCellRatio; //! Ratio between max cell energy and cell energy of the same cluster for bad clusters |
4c8f7c2e | 230 | TH2F * fhBadClusterMaxCellCloseCellDiff ; //! Difference between max cell energy and cell energy of the same cluster for bad clusters |
e1e62b89 | 231 | TH2F * fhBadClusterMaxCellDiff; //! Difference between cluster energy and energy of cell with more energy |
649b825d | 232 | |
233 | TH2F * fhBadClusterMaxCellDiffAverageTime; //! Difference between cluster average time and time of cell with more energy | |
649b825d | 234 | TH2F * fhBadClusterMaxCellDiffWeightedTime; //! Difference between cluster weighted time and time of cell with more energy |
1a72f6c5 | 235 | TH2F * fhBadClusterMaxCellECross; //! 1 - Energy in cross around max energy cell / max energy cell vs cluster energy, bad clusters |
4c8f7c2e | 236 | |
39de6caa | 237 | // Cluster cell size |
649b825d | 238 | TH2F * fhDeltaIEtaDeltaIPhiE0[2]; //! Difference between max cell index and farthest cell, eta vs phi, E < 2 GeV, with and without matching; |
239 | TH2F * fhDeltaIEtaDeltaIPhiE2[2]; //! Difference between max cell index and farthest cell, eta vs phi, 2 < E < 6 GeV, with and without matching; | |
240 | TH2F * fhDeltaIEtaDeltaIPhiE6[2]; //! Difference between max cell index and farthest cell, eta vs phi, E > 6 GeV, with and without matching; | |
241 | TH2F * fhDeltaIA[2]; //! Cluster "asymmetry" in cell terms vs E, with and without matching | |
242 | TH2F * fhDeltaIAL0[2]; //! Cluster "asymmetry" in cell units vs Lambda0 for E > 0.5 GeV, n cells in cluster > 3, with and without matching | |
243 | TH2F * fhDeltaIAL1[2]; //! Cluster "asymmetry" in cell units vs Lambda1 for E > 0.5 GeV, n cells in cluster > 3, with and without matching | |
244 | TH2F * fhDeltaIANCells[2] ; //! Cluster "asymmetry" in cell units vs number of cells in cluster for E > 0.5, with and without matching | |
1a83b960 | 245 | TH2F * fhDeltaIAMC[4]; //! Cluster "asymmetry" in cell terms vs E, from MC photon, electron, conversion or hadron. |
246 | TH2F * fhBadClusterDeltaIEtaDeltaIPhiE0; //! Difference between max cell index and farthest cell, eta vs phi, E < 2 GeV, with and without matching; bad clusters. | |
247 | TH2F * fhBadClusterDeltaIEtaDeltaIPhiE2; //! Difference between max cell index and farthest cell, eta vs phi, 2 < E < 6 GeV, with and without matching; bad clusters. | |
248 | TH2F * fhBadClusterDeltaIEtaDeltaIPhiE6; //! Difference between max cell index and farthest cell, eta vs phi, E > 6 GeV, with and without matching; bad clusters. | |
249 | TH2F * fhBadClusterDeltaIA; //! Cluster "asymmetry" in cell terms vs E, with and without matching; bad clusters. | |
250 | ||
39de6caa | 251 | //Cluster/cell Position |
521636d2 | 252 | TH2F * fhRNCells ; //! R=sqrt(x^2+y^2) (cm) cluster distribution vs N cells in cluster |
253 | TH2F * fhXNCells ; //! X (cm) cluster distribution vs N cells in cluster | |
254 | TH2F * fhYNCells ; //! Y (cm) cluster distribution vs N cells in cluster | |
255 | TH2F * fhZNCells ; //! Z (cm) cluster distribution vs N cells in cluster | |
0866d83a | 256 | |
521636d2 | 257 | TH2F * fhRE ; //! R=sqrt(x^2+y^2) (cm) cluster distribution vs cluster energy |
258 | TH2F * fhXE ; //! X (cm) cluster distribution vs cluster energy | |
259 | TH2F * fhYE ; //! Y (cm) cluster distribution vs cluster energy | |
260 | TH2F * fhZE ; //! Z (cm) cluster distribution vs cluster energy | |
261 | TH3F * fhXYZ; //! cluster X vs Y vs Z (cm) | |
0866d83a | 262 | |
521636d2 | 263 | TH2F * fhRCellE ; //! R=sqrt(x^2+y^2) (cm) cell distribution vs cell energy |
264 | TH2F * fhXCellE ; //! X (cm) cell distribution vs cell energy | |
265 | TH2F * fhYCellE ; //! Y (cm) cell distribution vs cell energy | |
266 | TH2F * fhZCellE ; //! Z (cm) cell distribution vs cell energy | |
267 | TH3F * fhXYZCell; //! cell X vs Y vs Z (cm) | |
268 | ||
269 | TH2F * fhDeltaCellClusterRNCells ; //! R cluster - R cell distribution (cm) vs N cells in cluster | |
270 | TH2F * fhDeltaCellClusterXNCells ; //! X cluster - X cell distribution (cm) vs N cells in cluster | |
271 | TH2F * fhDeltaCellClusterYNCells ; //! Y cluster - Y cell distribution (cm) vs N cells in cluster | |
272 | TH2F * fhDeltaCellClusterZNCells ; //! Z cluster - Z cell distribution (cm) vs N cells in cluster | |
0866d83a | 273 | |
521636d2 | 274 | TH2F * fhDeltaCellClusterRE ; //! R cluster - R cell distribution (cm) vs cluster energy |
275 | TH2F * fhDeltaCellClusterXE ; //! X cluster - X cell distribution (cm) vs cluster energy | |
276 | TH2F * fhDeltaCellClusterYE ; //! Y cluster - Y cell distribution (cm) vs cluster energy | |
277 | TH2F * fhDeltaCellClusterZE ; //! Z cluster - Z cell distribution (cm) vs cluster energy | |
0866d83a | 278 | |
9725fd2a | 279 | //Calo Cells |
521636d2 | 280 | TH1F * fhNCells; //! Number of towers/crystals with signal |
701cbf54 | 281 | TH1F * fhNCellsCutAmpMin; //! Number of towers/crystals with signal, with min amplitude |
521636d2 | 282 | TH1F * fhAmplitude; //! Amplitude measured in towers/crystals |
638916c4 | 283 | TH2F * fhAmpId; //! Amplitude measured in towers/crystals vs id of tower. |
521636d2 | 284 | TH3F * fhEtaPhiAmp; //! eta vs phi vs amplitude, cells |
a82b4462 | 285 | |
521636d2 | 286 | TH1F * fhTime; //! Time measured in towers/crystals |
1a72f6c5 | 287 | TH2F * fhTimeVz; //! Time measured in towers/crystals vs vertex z component, for E > 0.5 |
521636d2 | 288 | TH2F * fhTimeId; //! Time vs Absolute cell Id |
638916c4 | 289 | TH2F * fhTimeAmp; //! Time vs Amplitude |
2302a644 | 290 | |
638916c4 | 291 | TH2F * fhAmpIdLowGain; //! Amplitude measured in towers/crystals vs id of tower, low gain towers |
292 | TH2F * fhTimeIdLowGain; //! Time vs Absolute cell Id, low gain | |
293 | TH2F * fhTimeAmpLowGain; //! Time vs Amplitude, low gain | |
294 | ||
295 | TH2F * fhCellECross; //! 1 - Energy in cross around cell / cell energy | |
1a72f6c5 | 296 | |
a0bb4dc0 | 297 | //Calorimeters Correlation |
521636d2 | 298 | TH2F * fhCaloCorrNClusters; //! EMCAL vs PHOS, number of clusters |
299 | TH2F * fhCaloCorrEClusters; //! EMCAL vs PHOS, total measured cluster energy | |
300 | TH2F * fhCaloCorrNCells; //! EMCAL vs PHOS, number of cells | |
301 | TH2F * fhCaloCorrECells; //! EMCAL vs PHOS, total measured cell energy | |
a0bb4dc0 | 302 | |
798a9b04 | 303 | //V0 Correlation |
521636d2 | 304 | TH2F * fhCaloV0SCorrNClusters; //! Calo vs V0 signal , number of clusters |
305 | TH2F * fhCaloV0SCorrEClusters; //! Calo vs V0 signal, total measured cluster energy | |
306 | TH2F * fhCaloV0SCorrNCells; //! Calo vs V0 signal, number of cells | |
307 | TH2F * fhCaloV0SCorrECells; //! Calo vs V0 signal, total measured cell energy | |
308 | TH2F * fhCaloV0MCorrNClusters; //! Calo vs V0 multiplicity , number of clusters | |
309 | TH2F * fhCaloV0MCorrEClusters; //! Calo vs V0 multiplicity, total measured cluster energy | |
310 | TH2F * fhCaloV0MCorrNCells; //! Calo vs V0 multiplicity, number of cells | |
311 | TH2F * fhCaloV0MCorrECells; //! Calo vs V0 multiplicity, total measured cell energy | |
798a9b04 | 312 | |
313 | //Track Correlation | |
521636d2 | 314 | TH2F * fhCaloTrackMCorrNClusters; //! Calo vs Track Multiplicity, number of clusters |
315 | TH2F * fhCaloTrackMCorrEClusters; //! Calo vs Track Multiplicity, total measured cluster energy | |
316 | TH2F * fhCaloTrackMCorrNCells; //! Calo vs V0 Track Multiplicity, number of cells | |
317 | TH2F * fhCaloTrackMCorrECells; //! Calo vs V0 Track Multipliticy, total measured cell energy | |
798a9b04 | 318 | |
653aed3c | 319 | // Centrality |
320 | TH2F * fhCaloCenNClusters; //! Calo vs centrality, number of clusters | |
321 | TH2F * fhCaloCenEClusters; //! Calo vs centrality, total measured cluster energy | |
322 | TH2F * fhCaloCenNCells; //! Calo vs centrality, number of cells | |
323 | TH2F * fhCaloCenECells; //! Calo vs centrality, total measured cell energy | |
324 | ||
325 | // Event plane | |
326 | TH2F * fhCaloEvPNClusters; //! Calo vs event plane angle, number of clusters | |
327 | TH2F * fhCaloEvPEClusters; //! Calo vs event plane angle, total measured cluster energy | |
328 | TH2F * fhCaloEvPNCells; //! Calo vs event plane angle, number of cells | |
329 | TH2F * fhCaloEvPECells; //! Calo vs event plane angle, total measured cell energy | |
330 | ||
a5fafd85 | 331 | //Module histograms |
649b825d | 332 | TH2F * fhEMod ; //! cluster E distribution for different module, Reco |
333 | TH2F * fhAmpMod ; //! cell amplitude distribution for different module, Reco | |
334 | TH2F * fhTimeMod ; //! cell time distribution for different module, Reco | |
35c71d5c | 335 | TH2F * fhNClustersMod ; //! Number of clusters for different module, Reco |
649b825d | 336 | TH2F * fhNCellsMod ; //! Number of towers/crystals with signal different module, Reco |
521636d2 | 337 | TH2F ** fhNCellsPerClusterMod ; //! N cells per clusters different module, Reco |
715fd81f | 338 | TH2F ** fhNCellsPerClusterModNoCut ; //! N cells per clusters different module, Reco, No cut |
649b825d | 339 | TH2F * fhGridCells ; //! Cells ordered in column/row for different module, Reco |
340 | TH2F * fhGridCellsE ; //! Cells ordered in column/row for different module, weighted with energy, Reco | |
341 | TH2F * fhGridCellsTime ; //! Cells ordered in column/row for different module, weighted with time, Reco | |
638916c4 | 342 | TH2F * fhGridCellsLowGain ; //! Cells ordered in column/row for different module, Reco, low gain |
343 | TH2F * fhGridCellsELowGain ; //! Cells ordered in column/row for different module, weighted with energy, Reco, low gain | |
344 | TH2F * fhGridCellsTimeLowGain ; //! Cells ordered in column/row for different module, weighted with time, Reco, low gain | |
521636d2 | 345 | TH2F ** fhTimeAmpPerRCU; //! Time vs Amplitude measured in towers/crystals different RCU |
35c71d5c | 346 | TH2F ** fhIMMod; //! cluster pairs invariant mass, different module, |
c1ac3823 | 347 | |
649b825d | 348 | // Weight studies |
349 | ||
f1538a5f | 350 | TH2F * fhECellClusterRatio; //! e cell / e cluster vs e cluster |
351 | TH2F * fhECellClusterLogRatio; //! log (e cell / e cluster) vs e cluster | |
352 | TH2F * fhEMaxCellClusterRatio; //! e max cell / e cluster vs e cluster | |
353 | TH2F * fhEMaxCellClusterLogRatio; //! log (e max cell / e cluster) vs e cluster | |
649b825d | 354 | |
f1538a5f | 355 | TH2F * fhLambda0ForW0[14]; //! L0 for 7 defined w0= 3, 3.5 ... 6 |
356 | //TH2F * fhLambda1ForW0[7]; //! L1 for 7 defined w0= 3, 3.5 ... 6 | |
649b825d | 357 | |
f1538a5f | 358 | TH2F * fhLambda0ForW0MC[14][5]; //! L0 for 7 defined w0= 3, 3.5 ... 6, depending on the particle of origin |
359 | //TH2F * fhLambda1ForW0MC[7][5]; //! L1 for 7 defined w0= 3, 3.5 ... 6, depending on the particle of origin | |
360 | ||
701cbf54 | 361 | TH2F * fhECellTotalRatio; //! e cell / e total vs e total |
362 | TH2F * fhECellTotalLogRatio; //! log (e cell / e total) vs e total | |
363 | TH2F ** fhECellTotalRatioMod; //! e cell / e total vs e total, per SM | |
364 | TH2F ** fhECellTotalLogRatioMod; //! log (e cell / e total) vs e total, per SM | |
365 | ||
f1538a5f | 366 | // Exotic studies |
367 | ||
765206a5 | 368 | TH2F * fhExoNCell [10][5] ; //! Number of cells per cluster for different cuts |
369 | TH2F * fhExoL0 [10][5] ; //! Long shower shape axis for exotic | |
370 | TH2F * fhExoL1 [10][5] ; //! Short shower shape axis for exotic | |
371 | TH2F * fhExoECross [10][5] ; //! E cross for max cell in cluster, for different cuts | |
372 | TH2F * fhExoTime [10][5] ; //! Time of exotic cluster, for different cuts | |
373 | TH2F * fhExoDTime [10] ; //! Difference in time between cell with max energy and rest of cells for exotic | |
374 | TH2F * fhExoL0NCell[10][5] ; //! Lambda0 vs n cells in cluster for several E cross cuts and cluster with E > 5 | |
375 | TH2F * fhExoL0ECross ; //! Lambda0 vs E cross fraction for clusters with E > 5 GeV | |
376 | TH2F * fhExoL1NCell[10][5] ; //! Lambda1 vs n cells in cluster for several E cross cuts and cluster with E > 5 | |
377 | TH2F * fhExoL1ECross ; //! Lambda1 vs E cross fraction for clusters with E > 5 GeV | |
649b825d | 378 | |
715fd81f | 379 | //Pure MC |
35c71d5c | 380 | |
f0f2f3a5 | 381 | enum mcTypes {kmcPhoton = 0, kmcPi0 = 1, kmcEta = 2, |
382 | kmcElectron = 3, kmcPhotonConv = 4, | |
383 | kmcNeHadron = 5, kmcChHadron = 6 }; | |
6aba6683 | 384 | |
385 | TH2F * fhRecoMCE[7][2] ; //! E generated particle vs reconstructed E | |
386 | TH2F * fhRecoMCPhi[7][2] ; //! phi generated particle vs reconstructed phi | |
387 | TH2F * fhRecoMCEta[7][2] ; //! eta generated particle vs reconstructed Eta | |
388 | TH2F * fhRecoMCDeltaE[7][2] ; //! Gen-Reco E generated particle vs reconstructed E | |
389 | TH2F * fhRecoMCRatioE[7][2] ; //! Reco/Gen E generated particle vs reconstructed E | |
390 | TH2F * fhRecoMCDeltaPhi[7][2]; //! Gen-Reco phi generated particle vs reconstructed E | |
391 | TH2F * fhRecoMCDeltaEta[7][2]; //! Gen-Reco eta generated particle vs reconstructed E | |
35c71d5c | 392 | |
95aee5e1 | 393 | TH1F * fhGenMCE [4] ; //! pt of primary particle |
394 | TH1F * fhGenMCPt[4] ; //! pt of primary particle | |
35c71d5c | 395 | TH2F * fhGenMCEtaPhi[4] ; //! eta vs phi of primary particle |
95aee5e1 | 396 | TH1F * fhGenMCAccE [4] ; //! pt of primary particle, in acceptance |
397 | TH1F * fhGenMCAccPt[4] ; //! pt of primary particle, in acceptance | |
35c71d5c | 398 | TH2F * fhGenMCAccEtaPhi[4] ; //! eta vs phi of primary particle, in acceptance |
399 | ||
521636d2 | 400 | TH2F * fhEMVxyz ; //! Electromagnetic particle production vertex |
401 | TH2F * fhEMR ; //! Electromagnetic distance to vertex vs rec energy | |
402 | TH2F * fhHaVxyz ; //! Hadron production vertex | |
403 | TH2F * fhHaR ; //! Hadron distance to vertex vs rec energy | |
9725fd2a | 404 | |
521636d2 | 405 | //Histograms for MC track-matching |
d55bb5e1 | 406 | TH2F * fh1EOverP; //! p/E for track-cluster matches |
a87e069d | 407 | TH2F * fh2dR; //! distance between projected track and cluster (eta-phi units) |
3bfc4732 | 408 | TH2F * fh2EledEdx; //! dE/dx vs. momentum for electron candidates |
409 | TH2F * fh2MatchdEdx; //! dE/dx vs. momentum for all matches | |
410 | ||
d55bb5e1 | 411 | TH2F * fhMCEle1EOverP; //! p/E for track-cluster matches, MC electrons |
3bfc4732 | 412 | TH1F * fhMCEle1dR; //! distance between projected track and cluster, MC electrons |
413 | TH2F * fhMCEle2MatchdEdx; //! dE/dx vs. momentum for all matches, MC electrons | |
414 | ||
d55bb5e1 | 415 | TH2F * fhMCChHad1EOverP; //! p/E for track-cluster matches, MC charged hadrons |
3bfc4732 | 416 | TH1F * fhMCChHad1dR; //! distance between projected track and cluster, MC charged hadrons |
417 | TH2F * fhMCChHad2MatchdEdx; //! dE/dx vs. momentum for all matches, MC charged | |
418 | ||
d55bb5e1 | 419 | TH2F * fhMCNeutral1EOverP; //! p/E for track-cluster matches, MC neutral |
3bfc4732 | 420 | TH1F * fhMCNeutral1dR; //! distance between projected track and cluster, MC neutral |
421 | TH2F * fhMCNeutral2MatchdEdx; //! dE/dx vs. momentum for all matches, MC neutral | |
422 | ||
a054a582 | 423 | TH2F * fh1EOverPR02; //! p/E for track-cluster matches, dR < 0.2 |
424 | TH2F * fhMCEle1EOverPR02; //! p/E for track-cluster matches, dR < 0.2, MC electrons | |
425 | TH2F * fhMCChHad1EOverPR02; //! p/E for track-cluster matches, dR < 0.2, MC charged hadrons | |
426 | TH2F * fhMCNeutral1EOverPR02; //! p/E for track-cluster matches, dR < 0.2, MC neutral | |
427 | ||
428 | TH2F * fh1EleEOverP; //! p/E for track-cluster matches, dR < 0.2, 60 < dEdx < 100 | |
429 | TH2F * fhMCEle1EleEOverP; //! p/E for track-cluster matches, dR < 0.2, 60 < dEdx < 100, MC electrons | |
430 | TH2F * fhMCChHad1EleEOverP; //! p/E for track-cluster matches, dR < 0.2, 60 < dEdx < 100, MC charged hadrons | |
431 | TH2F * fhMCNeutral1EleEOverP; //! p/E for track-cluster matches, dR < 0.2, 60 < dEdx < 100, MC neutral | |
432 | ||
653aed3c | 433 | TH2F * fhTrackMatchedDEta ; //! Eta distance between track and cluster vs cluster E, after and before photon cuts |
434 | TH2F * fhTrackMatchedDPhi ; //! Phi distance between track and cluster vs cluster E, after and before photon cuts | |
435 | TH2F * fhTrackMatchedDEtaDPhi; //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV, after and before | |
436 | ||
437 | TH2F * fhTrackMatchedDEtaPos; //! Eta distance between track and cluster vs cluster E, after and before photon cuts | |
438 | TH2F * fhTrackMatchedDPhiPos; //! Phi distance between track and cluster vs cluster E, after and before photon cuts | |
439 | TH2F * fhTrackMatchedDEtaDPhiPos; //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV, after and before | |
440 | ||
1a83b960 | 441 | AliAnaCalorimeterQA & operator = (const AliAnaCalorimeterQA & qa) ;//cpy assignment |
442 | AliAnaCalorimeterQA( const AliAnaCalorimeterQA & qa) ; // cpy ctor | |
c5693f62 | 443 | |
95aee5e1 | 444 | ClassDef(AliAnaCalorimeterQA,29) |
9725fd2a | 445 | } ; |
446 | ||
447 | ||
448 | #endif //ALIANACALORIMETERQA_H | |
449 | ||
450 | ||
451 |