]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.h
coverity, check if pointer was null
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaInsideClusterInvariantMass.h
CommitLineData
992b14a7 1#ifndef ALIANAINSIDECLUSTERINVARIANTMASS_H
2#define ALIANAINSIDECLUSTERINVARIANTMASS_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
992b14a7 5
6//_________________________________________________________________________
7//
8// Split clusters with some criteria and calculate invariant mass
9// to identify them as pi0 or conversion
10//
11//
12//-- Author: Gustavo Conesa (LPSC-Grenoble)
13//_________________________________________________________________________
14
15
16// --- ROOT system ---
17class TList ;
18class TObjString;
19class TLorentzVector;
20
21// --- ANALYSIS system ---
5c46c992 22class AliAODCaloCluster;
23
745913ae 24#include "AliAnaCaloTrackCorrBaseClass.h"
992b14a7 25
745913ae 26class AliAnaInsideClusterInvariantMass : public AliAnaCaloTrackCorrBaseClass {
992b14a7 27
28 public:
3c1d9afb 29
992b14a7 30 AliAnaInsideClusterInvariantMass() ; // default ctor
31 virtual ~AliAnaInsideClusterInvariantMass() { ; } //virtual dtor
992b14a7 32
33 TObjString * GetAnalysisCuts();
34
35 TList * GetCreateOutputObjects();
3c1d9afb 36
992b14a7 37 void Init();
38
39 void InitParameters();
40
41 void MakeAnalysisFillHistograms() ;
992b14a7 42
71e3889f 43 void Print(const Option_t * opt) const;
992b14a7 44
71e3889f 45 void SetCalorimeter(TString & det) { fCalorimeter = det ; }
46
47 void SetM02Cut(Float_t min=0, Float_t max=10) { fM02MinCut = min ; fM02MaxCut = max ; }
992b14a7 48
71e3889f 49 void SetMinNCells(Int_t cut) { fMinNCells = cut ; }
2cb134fb 50
51 void SetMinBadChannelDistance(Float_t cut) { fMinBadDist = cut ; }
992b14a7 52
883411b2 53 void SwitchOnFillAngleHistograms() { fFillAngleHisto = kTRUE ; }
54 void SwitchOffFillAngleHistograms() { fFillAngleHisto = kFALSE ; }
55
56 void SwitchOnFillExtraSSHistograms() { fFillSSExtraHisto = kTRUE ; }
57 void SwitchOffFillExtraSSHistograms() { fFillSSExtraHisto = kFALSE ; }
8e81c2cf 58
59 void SwitchOnFillTMResidualHistograms() { fFillTMResidualHisto = kTRUE ; }
60 void SwitchOffFillTMResidualHistograms() { fFillTMResidualHisto = kFALSE ; }
61
2a77f6f4 62 void SwitchOnMCFractionHistograms() { fFillMCFractionHisto = kTRUE ; }
63 void SwitchOffMCFractionHistograms() { fFillMCFractionHisto = kFALSE ; }
64
65
992b14a7 66 //For histograms
c5693f62 67 enum mcTypes { kmcPhoton = 1, kmcConversion = 2, kmcPi0 = 3,
68 kmcEta = 4, kmcElectron = 5, kmcHadron = 6 };
992b14a7 69
70 private:
71
5c46c992 72 TString fCalorimeter ; // Calorimeter where the gamma is searched
3c1d9afb 73 Float_t fM02MaxCut ; // Study clusters with l0 smaller than cut
74 Float_t fM02MinCut ; // Study clusters with l0 larger than cut
75 Int_t fMinNCells ; // Study clusters with ncells larger than cut
76 Float_t fMinBadDist ; // Minimal distance to bad channel to accept cluster
243c2909 77
883411b2 78 Bool_t fFillAngleHisto; // Fill splitted clusters angle histograms
8e81c2cf 79 Bool_t fFillTMResidualHisto ; // Fill track matching histos, residuals
80 Bool_t fFillSSExtraHisto ; // Fill shower shape extra histos
2a77f6f4 81 Bool_t fFillMCFractionHisto ; // Fill MC energy fraction histos
82
992b14a7 83 //Histograms
84
e671adc2 85 TH2F * fhMassNLocMax1[7][2] ; //! Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types
86 TH2F * fhMassNLocMax2[7][2] ; //! Mass of 2 cells local maxima vs E, 1-6 for different MC particle types
87 TH2F * fhMassNLocMaxN[7][2] ; //! Mass of >2 cells local maxima vs E, 1-6 for different MC particle types
5c46c992 88
e671adc2 89 TH2F * fhAsymNLocMax1[7][2] ; //! Asymmetry of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types
90 TH2F * fhAsymNLocMax2[7][2] ; //! Asymmetry of 2 cells local maxima vs E, 1-6 for different MC particle types
91 TH2F * fhAsymNLocMaxN[7][2] ; //! Asymmetry of >2 cells local maxima vs E, 1-6 for different MC particle types
2a77f6f4 92
e671adc2 93 TH2F * fhSplitEFractionvsAsyNLocMax1[2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima = 1 vs |A|
94 TH2F * fhSplitEFractionvsAsyNLocMax2[2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima = 2 vs |A|
95 TH2F * fhSplitEFractionvsAsyNLocMaxN[2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima > 2 vs |A|
96
97 TH2F * fhMassM02CutNLocMax1 ; //! M02(E) selection, not matched, Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types
98 TH2F * fhMassM02CutNLocMax2 ; //! M02(E) selection, not matched, Mass of 2 cells local maxima vs E, 1-6 for different MC particle types
99 TH2F * fhMassM02CutNLocMaxN ; //! M02(E) selection, not matched, Mass of >2 cells local maxima vs E, 1-6 for different MC particle types
2a77f6f4 100
e671adc2 101 TH2F * fhMassSplitECutNLocMax1 ; //! 85% of split energy, not matched, Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types
102 TH2F * fhMassSplitECutNLocMax2 ; //! 85% of split energy, not matched, Mass of 2 cells local maxima vs E, 1-6 for different MC particle types
103 TH2F * fhMassSplitECutNLocMaxN ; //! 85% of split energy, not matched, Mass of >2 cells local maxima vs E, 1-6 for different MC particle types
104
105 TH2F * fhMassAsyCutNLocMax1 ; //! |A|>0.8 selection, not matched, Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types
106 TH2F * fhMassAsyCutNLocMax2 ; //! |A|>0.8 selection, not matched, Mass of 2 cells local maxima vs E, 1-6 for different MC particle types
107 TH2F * fhMassAsyCutNLocMaxN ; //! |A|>0.8 selection, not matched, Mass of >2 cells local maxima vs E, 1-6 for different MC particle types
2a77f6f4 108
e671adc2 109 TH2F * fhMassM02NLocMax1[7][2] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types
110 TH2F * fhMassM02NLocMax2[7][2] ; //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types
111 TH2F * fhMassM02NLocMaxN[7][2] ; //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types
0137016b 112
e671adc2 113 TH2F * fhMassM02NLocMax1Ebin[4] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters
114 TH2F * fhMassM02NLocMax2Ebin[4] ; //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
115 TH2F * fhMassM02NLocMaxNEbin[4] ; //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters
7b686344 116
e671adc2 117 TH2F * fhMassDispEtaNLocMax1[7][2] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types
118 TH2F * fhMassDispEtaNLocMax2[7][2] ; //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types
119 TH2F * fhMassDispEtaNLocMaxN[7][2] ; //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types
d2655d46 120
e671adc2 121 TH2F * fhMassDispEtaNLocMax1Ebin[4] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters
122 TH2F * fhMassDispEtaNLocMax2Ebin[4] ; //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
123 TH2F * fhMassDispEtaNLocMaxNEbin[4] ; //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters
d2655d46 124
e671adc2 125 TH2F * fhMassDispPhiNLocMax1[7][2] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types
126 TH2F * fhMassDispPhiNLocMax2[7][2] ; //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types
127 TH2F * fhMassDispPhiNLocMaxN[7][2] ; //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types
d2655d46 128
e671adc2 129 TH2F * fhMassDispPhiNLocMax1Ebin[4] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters
130 TH2F * fhMassDispPhiNLocMax2Ebin[4] ; //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
131 TH2F * fhMassDispPhiNLocMaxNEbin[4] ; //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters
d2655d46 132
e671adc2 133 TH2F * fhMassDispAsyNLocMax1[7][2] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types
134 TH2F * fhMassDispAsyNLocMax2[7][2] ; //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types
135 TH2F * fhMassDispAsyNLocMaxN[7][2] ; //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types
d2655d46 136
e671adc2 137 TH2F * fhMassDispAsyNLocMax1Ebin[4] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters
138 TH2F * fhMassDispAsyNLocMax2Ebin[4] ; //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
139 TH2F * fhMassDispAsyNLocMaxNEbin[4] ; //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters
d2655d46 140
e671adc2 141 TH2F * fhNLocMax [7][2] ; //! Number of maxima in cluster vs E, 1-6 for different MC particle types
142 TH2F * fhNLocMaxM02Cut[7][2] ; //! Number of maxima in cluster vs E, 1-6 for different MC particle types, after SS cut
5c46c992 143
e671adc2 144 TH2F * fhM02NLocMax1 [7][2] ; //! M02 vs E for N max in cluster = 1, 1-6 for different MC particle types
145 TH2F * fhM02NLocMax2 [7][2] ; //! M02 vs E for N max in cluster = 2, 1-6 for different MC particle types
146 TH2F * fhM02NLocMaxN [7][2] ; //! M02 vs E for N max in cluster > 2, 1-6 for different MC particle types
8e81c2cf 147
e671adc2 148 TH2F * fhMCAsymM02NLocMax1MCPi0Ebin[4] ; //! M02 vs decay asymmetry for N max in cluster = 1, for 4 energy bins
149 TH2F * fhMCAsymM02NLocMax2MCPi0Ebin[4] ; //! M02 vs decay asymmetry for N max in cluster = 2, for 4 energy bins
150 TH2F * fhMCAsymM02NLocMaxNMCPi0Ebin[4] ; //! M02 vs decay asymmetry for N max in cluster > 2, for 4 energy bins
8e81c2cf 151
e671adc2 152 TH2F * fhMCGenFracNLocMax1[7][2] ; //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
153 TH2F * fhMCGenFracNLocMax2[7][2] ; //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
154 TH2F * fhMCGenFracNLocMaxN[7][2] ; //! E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types
8e81c2cf 155
e671adc2 156 TH2F * fhMCGenSplitEFracNLocMax1[7][2] ; //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
157 TH2F * fhMCGenSplitEFracNLocMax2[7][2] ; //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
158 TH2F * fhMCGenSplitEFracNLocMaxN[7][2] ; //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types
bb2d339b 159
160 TH2F * fhMCGenEFracvsSplitEFracNLocMax1[7][2] ; //! E generated particle / E reconstructed vs E1+E2 reconstructed / E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
161 TH2F * fhMCGenEFracvsSplitEFracNLocMax2[7][2] ; //! E generated particle / E reconstructed vs E1+E2 reconstructed / E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
162 TH2F * fhMCGenEFracvsSplitEFracNLocMaxN[7][2] ; //! E generated particle / E reconstructed vs E1+E2 reconstructed / E reconstructed for N max in cluster > 2, 1-6 for different MC particle types
163
e671adc2 164 TH2F * fhMCGenEvsSplitENLocMax1[7][2] ; //! E generated particle vs E1+E2 for N max in cluster = 1, 1-6 for different MC particle types
165 TH2F * fhMCGenEvsSplitENLocMax2[7][2] ; //! E generated particle vs E1+E2 for N max in cluster = 2, 1-6 for different MC particle types
166 TH2F * fhMCGenEvsSplitENLocMaxN[7][2] ; //! E generated particle vs E1+E2 for N max in cluster > 2, 1-6 for different MC particle types
bb2d339b 167
e671adc2 168 TH2F * fhMCGenFracNLocMaxEbin[7][4] ; //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, not matched to track
169 TH2F * fhMCGenFracNLocMaxEbinMatched[7][4] ; //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, matched to track
53f2c382 170
e671adc2 171 TH2F * fhM02MCGenFracNLocMax1Ebin[7][4] ; //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, not track matched
172 TH2F * fhM02MCGenFracNLocMax2Ebin[7][4] ; //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, not track matched
173 TH2F * fhM02MCGenFracNLocMaxNEbin[7][4] ; //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, not track matched
8e81c2cf 174
e671adc2 175 TH2F * fhMassMCGenFracNLocMax1Ebin[7][4] ; //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, not track matched
176 TH2F * fhMassMCGenFracNLocMax2Ebin[7][4] ; //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, not track matched
177 TH2F * fhMassMCGenFracNLocMaxNEbin[7][4] ; //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, not track matched
8e81c2cf 178
e671adc2 179 TH2F * fhNCellNLocMax1[7][2] ; //! n cells in cluster vs E for N max in cluster = 1, 1-6 for different MC particle types
180 TH2F * fhNCellNLocMax2[7][2] ; //! n cells in cluster vs E for N max in cluster = 2, 1-6 for different MC particle types
181 TH2F * fhNCellNLocMaxN[7][2] ; //! n cells in cluster vs E for N max in cluster > 2, 1-6 for different MC particle types
992b14a7 182
e671adc2 183 TH2F * fhM02Pi0LocMax1[7][2] ; //! M02 for Mass around pi0, N Local Maxima = 1
184 TH2F * fhM02EtaLocMax1[7][2] ; //! M02 for Mass around eta, N Local Maxima = 1
185 TH2F * fhM02ConLocMax1[7][2] ; //! M02 for Mass around close to 0, N Local Maxima = 1
992b14a7 186
e671adc2 187 TH2F * fhM02Pi0LocMax2[7][2] ; //! M02 for Mass around pi0, N Local Maxima = 2
188 TH2F * fhM02EtaLocMax2[7][2] ; //! M02 for Mass around eta, N Local Maxima = 2
189 TH2F * fhM02ConLocMax2[7][2] ; //! M02 for Mass around close to 0, N Local Maxima = 2
5c46c992 190
e671adc2 191 TH2F * fhM02Pi0LocMaxN[7][2] ; //! M02 for Mass around pi0, N Local Maxima > 2
192 TH2F * fhM02EtaLocMaxN[7][2] ; //! M02 for Mass around eta, N Local Maxima > 2
193 TH2F * fhM02ConLocMaxN[7][2] ; //! M02 for Mass around close to 0, N Local Maxima > 2
fc01318e 194
e671adc2 195 TH2F * fhMassPi0LocMax1[7][2] ; //! Mass for selected pi0, N Local Maxima = 1
196 TH2F * fhMassEtaLocMax1[7][2] ; //! Mass for selected around eta, N Local Maxima = 1
197 TH2F * fhMassConLocMax1[7][2] ; //! Mass for selected around close to 0, N Local Maxima = 1
198
199 TH2F * fhMassPi0LocMax2[7][2] ; //! Mass for selected around pi0, N Local Maxima = 2
200 TH2F * fhMassEtaLocMax2[7][2] ; //! Mass for selected around eta, N Local Maxima = 2
201 TH2F * fhMassConLocMax2[7][2] ; //! Mass for selected around close to 0, N Local Maxima = 2
bb2d339b 202
e671adc2 203 TH2F * fhMassPi0LocMaxN[7][2] ; //! Mass for selected around pi0, N Local Maxima > 2
204 TH2F * fhMassEtaLocMaxN[7][2] ; //! Mass for selected around eta, N Local Maxima > 2
205 TH2F * fhMassConLocMaxN[7][2] ; //! Mass for selected around close to 0, N Local Maxima > 2
bb2d339b 206
e671adc2 207 TH2F * fhAsyPi0LocMax1[7][2] ; //! Asy for Mass around pi0, N Local Maxima = 1
208 TH2F * fhAsyEtaLocMax1[7][2] ; //! Asy for Mass around eta, N Local Maxima = 1
209 TH2F * fhAsyConLocMax1[7][2] ; //! Asy for Mass around close to 0, N Local Maxima = 1
bb2d339b 210
e671adc2 211 TH2F * fhAsyPi0LocMax2[7][2] ; //! Asy for Mass around pi0, N Local Maxima = 2
212 TH2F * fhAsyEtaLocMax2[7][2] ; //! Asy for Mass around eta, N Local Maxima = 2
213 TH2F * fhAsyConLocMax2[7][2] ; //! Asy for Mass around close to 0, N Local Maxima = 2
fc01318e 214
e671adc2 215 TH2F * fhAsyPi0LocMaxN[7][2] ; //! Asy for Mass around pi0, N Local Maxima > 2
216 TH2F * fhAsyEtaLocMaxN[7][2] ; //! Asy for Mass around eta, N Local Maxima > 2
217 TH2F * fhAsyConLocMaxN[7][2] ; //! Asy for Mass around close to 0, N Local Maxima > 2
218
219 TH2F * fhSplitEFractionNLocMax1[7][2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima = 1
220 TH2F * fhSplitEFractionNLocMax2[7][2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima = 2
221 TH2F * fhSplitEFractionNLocMaxN[7][2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima > 2
222
fc01318e 223 TH2F * fhMassSplitEFractionNLocMax1Ebin[7][4] ; //! Mass vs sum of splitted cluster energy / cluster energy for N max in cluster = 1, 1-6 for different MC particle types, not track matched
224 TH2F * fhMassSplitEFractionNLocMax2Ebin[7][4] ; //! Mass vs sum of splitted cluster energy / cluster energy for N max in cluster = 2, 1-6 for different MC particle types, not track matched
225 TH2F * fhMassSplitEFractionNLocMaxNEbin[7][4] ; //! Mass vs sum of splitted cluster energy / cluster energy for N max in cluster > 2, 1-6 for different MC particle types, not track matched
5094c724 226
e671adc2 227 TH2F * fhAnglePairLocMax1[2] ; //! pair opening angle vs E
228 TH2F * fhAnglePairLocMax2[2] ; //! pair opening angle vs E
229 TH2F * fhAnglePairLocMaxN[2] ; //! pair opening angle vs E
5c46c992 230
e671adc2 231 TH2F * fhAnglePairMassLocMax1[2] ; //! pair opening angle vs Mass for E > 7 GeV
232 TH2F * fhAnglePairMassLocMax2[2] ; //! pair opening angle vs Mass for E > 7 GeV
233 TH2F * fhAnglePairMassLocMaxN[2] ; //! pair opening angle vs Mass for E > 7 GeV
243c2909 234
e671adc2 235 TH2F * fhTrackMatchedDEtaLocMax1[7] ; //! Eta distance between track and cluster vs cluster E, 1 local maximum
236 TH2F * fhTrackMatchedDPhiLocMax1[7] ; //! Phi distance between track and cluster vs cluster E, 1 local maximum
237 TH2F * fhTrackMatchedDEtaLocMax2[7] ; //! Eta distance between track and cluster vs cluster E, 2 local maximum
238 TH2F * fhTrackMatchedDPhiLocMax2[7] ; //! Phi distance between track and cluster vs cluster E, 2 local maximum
239 TH2F * fhTrackMatchedDEtaLocMaxN[7] ; //! Eta distance between track and cluster vs cluster E, more than 2 local maximum
240 TH2F * fhTrackMatchedDPhiLocMaxN[7] ; //! Phi distance between track and cluster vs cluster E, more than 2 local maximum
243c2909 241
2a77f6f4 242 AliAnaInsideClusterInvariantMass( const AliAnaInsideClusterInvariantMass & split) ; // cpy ctor
243 AliAnaInsideClusterInvariantMass & operator = (const AliAnaInsideClusterInvariantMass & split) ; // cpy assignment
992b14a7 244
e671adc2 245 ClassDef(AliAnaInsideClusterInvariantMass,17)
992b14a7 246
247} ;
248
249#endif //ALIANAINSIDECLUSTERINVARIANTMASS_H
250
251
252