1 #ifndef ALIANAPARTICLEISOLATION_H
2 #define ALIANAPARTICLEISOLATION_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 //_________________________________________________________________________
8 // Class for the analysis of particle isolation
9 // Input is selected particles put in AOD branch (AliAODPWG4ParticleCorrelation)
11 // Class created from old AliPHOSGammaJet
12 // (see AliRoot versions previous Release 4-09)
14 //-- Author: Gustavo Conesa (INFN-LNF)
16 // --- ROOT system ---
21 // --- ANALYSIS system ---
22 #include "AliAnaCaloTrackCorrBaseClass.h"
23 class AliAODPWG4Particle;
24 class AliAODPWG4ParticleCorrelation ;
27 class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
30 AliAnaParticleIsolation() ; // default ctor
31 virtual ~AliAnaParticleIsolation() { ; } //virtual dtor
33 // Main general methods
36 TObjString * GetAnalysisCuts() ;
38 TList * GetCreateOutputObjects() ;
42 void InitParameters() ;
44 void MakeAnalysisFillAOD() ;
46 void MakeAnalysisFillHistograms() ;
48 void Print( const Option_t * opt ) const ;
50 //Analysis specific methods
52 void FillTrackMatchingShowerShapeControlHistograms(const Int_t clusterID,
56 void MakeSeveralICAnalysis( AliAODPWG4ParticleCorrelation * ph ) ;
58 // Analysis Setters and Getters
60 TString GetCalorimeter() const { return fCalorimeter ; }
61 Int_t GetNCones() const { return fNCones ; }
62 Int_t GetNPtThresFrac() const { return fNPtThresFrac ; }
63 Float_t GetConeSizes(Int_t i) const { return fConeSizes[i] ; }
64 Float_t GetPtThresholds(Int_t i) const { return fPtThresholds[i] ; }
65 Float_t GetSumPtThresholds(Int_t i) const { return fSumPtThresholds[i]; }
66 Float_t GetPtFractions(Int_t i) const { return fPtFractions[i] ; }
68 void SetCalorimeter(TString & det) { fCalorimeter = det ; }
69 void SetNCones(Int_t ncs) { fNCones = ncs ; }
70 void SetNPtThresFrac(Int_t npt) { fNPtThresFrac = npt ; }
71 void SetConeSizes(Int_t i, Float_t r) { fConeSizes[i] = r ; }
72 void SetPtThresholds(Int_t i, Float_t pt) { fPtThresholds[i] = pt ; }
73 void SetPtFractions(Int_t i, Float_t pt) { fPtFractions[i] = pt ; }
74 void SetSumPtThresholds(Int_t i, Float_t pt){ fSumPtThresholds[i] = pt ; }
77 Bool_t IsReIsolationOn() const { return fReMakeIC ; }
78 void SwitchOnReIsolation() { fReMakeIC = kTRUE ; }
79 void SwitchOffReIsolation() { fReMakeIC = kFALSE ; }
81 Bool_t IsSeveralIsolationOn() const { return fMakeSeveralIC ; }
82 void SwitchOnSeveralIsolation() { fMakeSeveralIC = kTRUE ; }
83 void SwitchOffSeveralIsolation() { fMakeSeveralIC = kFALSE ; }
85 void SwitchOnTMHistoFill() { fFillTMHisto = kTRUE ; }
86 void SwitchOffTMHistoFill() { fFillTMHisto = kFALSE ; }
88 void SwitchOnSSHistoFill() { fFillSSHisto = kTRUE ; }
89 void SwitchOffSSHistoFill() { fFillSSHisto = kFALSE ; }
91 //Histogrammes setters and getters
93 void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n) {
94 fHistoNPtSumBins = n ; fHistoPtSumMax = max ; fHistoPtSumMin = min ; }
96 Int_t GetHistoNPtSumBins() const { return fHistoNPtSumBins ; }
97 Float_t GetHistoPtSumMin() const { return fHistoPtSumMin ; }
98 Float_t GetHistoPtSumMax() const { return fHistoPtSumMax ; }
100 void SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n) {
101 fHistoNPtInConeBins = n ; fHistoPtInConeMax = max ; fHistoPtInConeMin = min ; }
103 Int_t GetHistoNPtInConeBins() const { return fHistoNPtInConeBins; }
104 Float_t GetHistoPtInConeMin() const { return fHistoPtInConeMin ; }
105 Float_t GetHistoPtInConeMax() const { return fHistoPtInConeMax ; }
109 TString fCalorimeter ; // Calorimeter where neutral particles in cone for isolation are;
110 Bool_t fReMakeIC ; // Do isolation analysis
111 Bool_t fMakeSeveralIC ; // Do analysis for different IC
112 Bool_t fFillTMHisto; // Fill track matching plots
113 Bool_t fFillSSHisto; // Fill Shower shape plots
115 // Analysis data members for multiple cones and pt thresholds
116 Int_t fNCones ; //! Number of cone sizes to test
117 Int_t fNPtThresFrac ; //! Number of ptThres and ptFrac to test
119 Float_t fConeSizes[5] ; //! Array with cones to test
120 Float_t fPtThresholds[5] ; //! Array with pt thresholds to test
121 Float_t fPtFractions[5] ; //! Array with pt thresholds to test frac
122 Float_t fSumPtThresholds[5] ; //! Array with pt thresholds to test frac
126 TH1F * fhEIso ; //! Number of isolated particles
127 TH1F * fhPtIso ; //! Number of isolated particles
128 TH2F * fhPhiIso ; //! Phi of isolated particles
129 TH2F * fhEtaIso ; //! eta of isolated particles
130 TH2F * fhEtaPhiIso ; //! eta vs phi of isolated particles
131 TH2F * fhEtaPhiNoIso ; //! eta vs phi of not isolated leading particles
132 TH1F * fhPtNoIso ; //! Number of not isolated leading particles
133 TH1F * fhPtDecayIso ; //! Number of isolated Pi0 decay particles (invariant mass tag)
134 TH1F * fhPtDecayNoIso ; //! Number of not isolated Pi0 decay leading particles (invariant mass tag)
135 TH2F * fhEtaPhiDecayIso ; //! eta vs phi of isolated Pi0 decay particles
136 TH2F * fhEtaPhiDecayNoIso ; //! eta vs phi of not isolated leading Pi0 decay particles
137 TH2F * fhConeSumPt ; //! Sum Pt in the cone
138 TH2F * fhPtInCone ; //! Particle Pt in the cone
139 TH2F * fhFRConeSumPt ; //! Sum Pt in the forward region cone (phi +90)
140 TH2F * fhPtInFRCone ; //! Particle Pt in the forward region cone (phi +90 )
143 TH1F * fhPtIsoPrompt; //! Number of isolated prompt gamma
144 TH2F * fhPhiIsoPrompt; //! Phi of isolated prompt gamma
145 TH2F * fhEtaIsoPrompt; //! eta of isolated prompt gamma
146 TH1F * fhPtThresIsolatedPrompt[5][5]; //! Isolated prompt gamma with pt threshold
147 TH1F * fhPtFracIsolatedPrompt[5][5]; //! Isolated prompt gamma with pt frac
148 TH2F * fhPtSumIsolatedPrompt[5]; //! Isolated prompt gamma with threshold on cone pt sume
149 TH1F * fhPtIsoFragmentation; //! Number of isolated fragmentation gamma
150 TH2F * fhPhiIsoFragmentation; //! Phi of isolated fragmentation gamma
151 TH2F * fhEtaIsoFragmentation; //! eta of isolated fragmentation gamma
152 TH1F * fhPtThresIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt threshold
153 TH1F * fhPtFracIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt frac
154 TH2F * fhPtSumIsolatedFragmentation[5]; //! Isolated fragmentation gamma with threshold on cone pt sume
155 TH1F * fhPtIsoPi0Decay; //! Number of isolated pi0 decay gamma
156 TH2F * fhPhiIsoPi0Decay; //! Phi of isolated pi0 decay gamma
157 TH2F * fhEtaIsoPi0Decay; //! eta of isolated pi0 decay gamma
158 TH1F * fhPtThresIsolatedPi0Decay[5][5]; //! Isolated pi0 decay gamma with pt threshold
159 TH1F * fhPtFracIsolatedPi0Decay[5][5]; //! Isolated pi0 decay gamma with pt frac
160 TH2F * fhPtSumIsolatedPi0Decay[5]; //! Isolated pi0 decay gamma with threshold on cone pt sume
161 TH1F * fhPtIsoEtaDecay; //! Number of isolated eta decay gamma
162 TH2F * fhPhiIsoEtaDecay; //! Phi of isolated eta decay gamma
163 TH2F * fhEtaIsoEtaDecay; //! eta of isolated eta decay gamma
164 TH1F * fhPtThresIsolatedEtaDecay[5][5]; //! Isolated eta decay gamma with pt threshold
165 TH1F * fhPtFracIsolatedEtaDecay[5][5]; //! Isolated eta decay gamma with pt frac
166 TH2F * fhPtSumIsolatedEtaDecay[5]; //! Isolated eta fecay gamma with threshold on cone pt sume
167 TH1F * fhPtIsoOtherDecay; //! Number of isolated other decay gamma
168 TH2F * fhPhiIsoOtherDecay; //! Phi of isolated other decay gamma
169 TH2F * fhEtaIsoOtherDecay; //! eta of isolated other decay gamma
170 TH1F * fhPtThresIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt threshold
171 TH1F * fhPtFracIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt frac
172 TH2F * fhPtSumIsolatedOtherDecay[5]; //! Isolated OtherDecay gamma with threshold on cone pt sume
173 TH1F * fhPtIsoConversion; //! Number of isolated Conversion gamma
174 TH2F * fhPhiIsoConversion; //! Phi of isolated Conversion gamma
175 TH2F * fhEtaIsoConversion; //! eta of isolated Conversion gamma
176 TH1F * fhPtThresIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt threshold
177 TH1F * fhPtFracIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt frac
178 TH2F * fhPtSumIsolatedConversion[5]; //! Isolated Conversion gamma with threshold on cone pt sume
179 TH1F * fhPtIsoUnknown; //! Number of isolated Unknown
180 TH2F * fhPhiIsoUnknown; //! Phi of isolated Unknown
181 TH2F * fhEtaIsoUnknown; //! eta of isolated Unknown
182 TH1F * fhPtThresIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt threshold
183 TH1F * fhPtFracIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt frac
184 TH2F * fhPtSumIsolatedUnknown[5]; //! Isolated Unknown gamma with threshold on cone pt sume
186 // Multi Cut analysis Several IC
187 TH1F * fhPtNoIsoPi0Decay; //! Number of not isolated leading pi0 decay gamma
188 TH1F * fhPtNoIsoEtaDecay; //! Number of not isolated leading eta decay gamma
189 TH1F * fhPtNoIsoOtherDecay; //! Number of not isolated leading other decay gamma
190 TH1F * fhPtNoIsoPrompt; //! Number of not isolated leading prompt gamma
191 TH1F * fhPtIsoMCPhoton; //! Number of isolated leading gamma
192 TH1F * fhPtNoIsoMCPhoton; //! Number of not isolated leading gamma
193 TH1F * fhPtNoIsoConversion; //! Number of not isolated leading conversion gamma
194 TH1F * fhPtNoIsoFragmentation; //! Number of not isolated leading fragmentation gamma
195 TH1F * fhPtNoIsoUnknown; //! Number of not isolated leading hadrons
197 TH2F * fhSumPtLeadingPt[5] ; //! Sum Pt in the cone
198 TH2F * fhPtLeadingPt[5] ; //! Particle Pt in the cone
199 TH2F * fhFRSumPtLeadingPt[5] ; //! Sum Pt in the forward region cone (phi +90)
200 TH2F * fhFRPtLeadingPt[5]; //! Particle Pt in the forward region cone (phi +90 )
202 TH1F * fhPtThresIsolated[5][5] ; //! Isolated particle with pt threshold
203 TH1F * fhPtFracIsolated[5][5] ; //! Isolated particle with pt threshold frac
204 TH1F * fhPtSumIsolated[5][5] ; //! Isolated particle with threshold on cone pt sum
206 TH2F * fhEtaPhiPtThresIso[5][5] ; //! eta vs phi of isolated particles with pt threshold
207 TH2F * fhEtaPhiPtThresDecayIso[5][5] ; //! eta vs phi of isolated particles with pt threshold
208 TH1F * fhPtPtThresDecayIso[5][5] ; //! Number of isolated Pi0 decay particles (invariant mass tag) with pt threshold
210 TH2F * fhEtaPhiPtFracIso[5][5] ; //! eta vs phi of isolated particles with pt frac
211 TH2F * fhEtaPhiPtFracDecayIso[5][5] ; //! eta vs phi of isolated particles with pt frac
212 TH1F * fhPtPtFracDecayIso[5][5] ; //! Number of isolated Pi0 decay particles (invariant mass tag) with pt fra
214 TH2F * fhEtaPhiPtSumIso[5][5] ; //! eta vs phi of isolated particles with pt sum
215 TH2F * fhEtaPhiPtSumDecayIso[5][5] ; //! eta vs phi of isolated particles with pt sum
216 TH1F * fhPtPtSumDecayIso[5][5] ; //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
218 TH2F * fhEtaPhiSumDensityIso[5][5]; //! Isolated particle with threshold on cone sum density
219 TH2F * fhEtaPhiSumDensityDecayIso[5][5]; //! Isolated particle with threshold on cone sum density
220 TH1F * fhPtSumDensityIso[5][5]; //! Isolated particle with threshold on cone sum density
221 TH1F * fhPtSumDensityDecayIso[5][5]; //! Isolated decay particle with threshold on cone sum density
223 TH1F * fhPtFracPtSumIso[5][5] ; //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
224 TH1F * fhPtFracPtSumDecayIso[5][5] ; //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
225 TH2F * fhEtaPhiFracPtSumIso[5][5]; //! Isolated particle with threshold on cone sum density
226 TH2F * fhEtaPhiFracPtSumDecayIso[5][5]; //! Isolated particle with threshold on cone sum density
228 // Track matching studies
229 TH2F * fhTrackMatchedDEta ; //! Eta distance between track and cluster vs cluster E
230 TH2F * fhTrackMatchedDPhi ; //! Phi distance between track and cluster vs cluster E
231 TH2F * fhTrackMatchedDEtaDPhi ; //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
232 TH2F * fhdEdx ; //! matched track dEdx vs cluster E
233 TH2F * fhEOverP; //! matched track E cluster over P track vs cluster E, after dEdx cut
234 TH2F * fhTrackMatchedMCParticle; //! Trace origin of matched particle
236 // Shower Shape histograms
237 TH2F * fhELambda0; //! Shower shape of isolated photons
238 TH2F * fhELambda1; //! Shower shape of isolated photons
239 TH2F * fhELambda0TRD; //! Shower shape of isolated photons, SM behind TRD
240 TH2F * fhELambda1TRD; //! Shower shape of isolated photons, SM behind TRD
243 TH2F * fhNLocMax; //! number of maxima in selected clusters
244 TH2F * fhELambda0LocMax1 ; //! E vs lambda0 of selected cluster, 1 local maxima in cluster
245 TH2F * fhELambda1LocMax1 ; //! E vs lambda1 of selected cluster, 1 local maxima in cluster
246 TH2F * fhELambda0LocMax2 ; //! E vs lambda0 of selected cluster, 2 local maxima in cluster
247 TH2F * fhELambda1LocMax2 ; //! E vs lambda1 of selected cluster, 2 local maxima in cluster
248 TH2F * fhELambda0LocMaxN ; //! E vs lambda0 of selected cluster, N>2 local maxima in cluster
249 TH2F * fhELambda1LocMaxN ; //! E vs lambda1 of selected cluster, N>2 local maxima in cluster
251 //Histograms settings
252 Int_t fHistoNPtSumBins; // Number of bins in PtSum histograms
253 Float_t fHistoPtSumMax; // PtSum maximum in histogram
254 Float_t fHistoPtSumMin; // PtSum minimum in histogram
255 Int_t fHistoNPtInConeBins; // Number of bins in PtInCone histogram
256 Float_t fHistoPtInConeMax; // PtInCone maximum in histogram
257 Float_t fHistoPtInConeMin; // PtInCone maximum in histogram
259 AliAnaParticleIsolation( const AliAnaParticleIsolation & iso) ; // cpy ctor
260 AliAnaParticleIsolation & operator = (const AliAnaParticleIsolation & iso) ; // cpy assignment
262 ClassDef(AliAnaParticleIsolation,13)
266 #endif //ALIANAPARTICLEISOLATION_H