1 #ifndef ALIANAPARTICLEISOLATION_H
\r
2 #define ALIANAPARTICLEISOLATION_H
\r
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
\r
4 * See cxx source for full Copyright notice */
\r
5 /* $Id: AliAnaParticleIsolation.h 27413 2008-07-18 13:28:12Z gconesab $ */
\r
7 //_________________________________________________________________________
\r
9 // Class for the analysis of particle isolation
\r
10 // Input is selected particles put in AOD branch (AliAODPWG4ParticleCorrelation)
\r
12 // Class created from old AliPHOSGammaJet
\r
13 // (see AliRoot versions previous Release 4-09)
\r
15 //-- Author: Gustavo Conesa (INFN-LNF)
\r
17 // --- ROOT system ---
\r
22 // --- ANALYSIS system ---
\r
23 #include "AliAnaPartCorrBaseClass.h"
\r
24 class AliAODPWG4Particle;
\r
25 class AliAODPWG4ParticleCorrelation ;
\r
28 class AliAnaParticleIsolation : public AliAnaPartCorrBaseClass {
\r
31 AliAnaParticleIsolation() ; // default ctor
\r
32 virtual ~AliAnaParticleIsolation() ; //virtual dtor
\r
35 AliAnaParticleIsolation(const AliAnaParticleIsolation & g) ; // cpy ctor
\r
36 AliAnaParticleIsolation & operator = (const AliAnaParticleIsolation & g) ;//cpy assignment
\r
40 Bool_t CheckInvMass(const Int_t icalo,const AliAODPWG4Particle * ph) ;
\r
42 TObjString * GetAnalysisCuts();
\r
43 TList * GetCreateOutputObjects();
\r
45 void MakeAnalysisFillAOD() ;
\r
47 void MakeAnalysisFillHistograms() ;
\r
49 void MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelation * ph);
\r
51 void Print(const Option_t * opt)const;
\r
53 TString GetCalorimeter() const {return fCalorimeter ; }
\r
54 void SetCalorimeter(TString & det) {fCalorimeter = det ; }
\r
56 Int_t GetNCones() const {return fNCones ; }
\r
57 Int_t GetNPtThresFrac() const {return fNPtThresFrac ; }
\r
58 Float_t GetConeSizes(Int_t i) const {return fConeSizes[i] ; }
\r
59 Float_t GetPtThresholds(Int_t i) const {return fPtThresholds[i] ; }
\r
60 Float_t GetPtFractions(Int_t i) const {return fPtFractions[i] ; }
\r
62 void InitParameters();
\r
64 void SetNCones(Int_t ncs) {fNCones = ncs ; }
\r
65 void SetNPtThresFrac(Int_t npt) {fNPtThresFrac = npt; }
\r
66 void SetConeSizes(Int_t i, Float_t r) {fConeSizes[i] = r ; }
\r
67 void SetPtThresholds(Int_t i, Float_t pt) {fPtThresholds[i] = pt; }
\r
68 void SetPtFractions(Int_t i, Float_t pt) {fPtFractions[i] = pt; }
\r
70 Bool_t IsReIsolationOn() const {return fReMakeIC ; }
\r
71 void SwitchOnReIsolation() { fReMakeIC = kTRUE;}
\r
72 void SwitchOffReIsolation() { fReMakeIC = kFALSE;}
\r
74 Bool_t IsSeveralIsolationOn() const {return fMakeSeveralIC ; }
\r
75 void SwitchOnSeveralIsolation() { fMakeSeveralIC = kTRUE;}
\r
76 void SwitchOffSeveralIsolation() { fMakeSeveralIC = kFALSE;}
\r
78 Bool_t IsInvariantMassOn() const {return fMakeInvMass ; }
\r
79 void SwitchOnInvariantMass() { fMakeInvMass = kTRUE;}
\r
80 void SwitchOffInvariantMass() { fMakeInvMass = kFALSE;}
\r
82 //Histogrammes setters and getters
\r
83 virtual void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n) {
\r
84 fHistoNPtSumBins = n ;
\r
85 fHistoPtSumMax = max ;
\r
86 fHistoPtSumMin = min ;
\r
89 Int_t GetHistoNPtSumBins() const { return fHistoNPtSumBins ; }
\r
90 Float_t GetHistoPtSumMin() const { return fHistoPtSumMin ; }
\r
91 Float_t GetHistoPtSumMax() const { return fHistoPtSumMax ; }
\r
93 virtual void SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n) {
\r
94 fHistoNPtInConeBins = n ;
\r
95 fHistoPtInConeMax = max ;
\r
96 fHistoPtInConeMin = min ;
\r
99 Int_t GetHistoNPtInConeBins() const { return fHistoNPtInConeBins ; }
\r
100 Float_t GetHistoPtInConeMin() const { return fHistoPtInConeMin ; }
\r
101 Float_t GetHistoPtInConeMax() const { return fHistoPtInConeMax ; }
\r
106 TString fCalorimeter ; // Calorimeter where neutral particles in cone for isolation are;
\r
107 Bool_t fReMakeIC ; // Do isolation analysis
\r
108 Bool_t fMakeSeveralIC ; // Do analysis for different IC
\r
109 Bool_t fMakeInvMass; // Select candidate if no pair from decay
\r
113 TH1F * fhPtIso ; //! Number of isolated particles
\r
114 TH2F * fhPhiIso ; //! Phi of isolated particles
\r
115 TH2F * fhEtaIso ; //! eta of isolated particles
\r
116 TH1F * fhPtNoIso ; //! Number of not isolated leading particles
\r
117 TH1F * fhPtInvMassDecayIso ; //! Number of isolated Pi0 decay particles (invariant mass tag)
\r
118 TH1F * fhPtInvMassDecayNoIso ; //! Number of not isolated Pi0 decay leading particles (invariant mass tag)
\r
119 TH2F * fhConeSumPt ; //! Sum Pt in the cone
\r
120 TH2F * fhPtInCone ; //! Particle Pt in the cone
\r
121 TH2F * fhFRConeSumPt ; //! Sum Pt in the forward region cone (phi +90)
\r
122 TH2F * fhPtInFRCone ; //! Particle Pt in the forward region cone (phi +90 )
\r
124 //Prompt photon analysis data members for multiple cones and pt thresholds
\r
125 Int_t fNCones ; //! Number of cone sizes to test
\r
126 Int_t fNPtThresFrac ; //! Number of ptThres and ptFrac to test
\r
128 Float_t fConeSizes[5] ; //! Array with cones to test
\r
129 Float_t fPtThresholds[5] ; //! Array with pt thresholds to test
\r
130 Float_t fPtFractions[5] ; //! Array with pt thresholds to test
\r
132 TH1F* fhPtThresIsolated[5][5] ; //! Isolated particle with pt threshold
\r
133 TH1F* fhPtFracIsolated[5][5] ; //! Isolated particle with pt threshold
\r
134 TH2F* fhPtSumIsolated[5] ; //! Isolated particle with threshold on cone pt sum
\r
137 TH1F * fhPtIsoPrompt; //! Number of isolated prompt gamma
\r
138 TH2F * fhPhiIsoPrompt; //! Phi of isolated prompt gamma
\r
139 TH2F * fhEtaIsoPrompt; //! eta of isolated prompt gamma
\r
140 TH1F * fhPtThresIsolatedPrompt[5][5]; //! Isolated prompt gamma with pt threshold
\r
141 TH1F * fhPtFracIsolatedPrompt[5][5]; //! Isolated prompt gamma with pt frac
\r
142 TH2F * fhPtSumIsolatedPrompt[5]; //! Isolated prompt gamma with threshold on cone pt sume
\r
143 TH1F * fhPtIsoFragmentation; //! Number of isolated fragmentation gamma
\r
144 TH2F * fhPhiIsoFragmentation; //! Phi of isolated fragmentation gamma
\r
145 TH2F * fhEtaIsoFragmentation; //! eta of isolated fragmentation gamma
\r
146 TH1F * fhPtThresIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt threshold
\r
147 TH1F * fhPtFracIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt frac
\r
148 TH2F * fhPtSumIsolatedFragmentation[5]; //! Isolated fragmentation gamma with threshold on cone pt sume
\r
149 TH1F * fhPtIsoPi0Decay; //!Number of isolated Pi0Decay gamma
\r
150 TH2F * fhPhiIsoPi0Decay; //! Phi of isolated Pi0Decay gamma
\r
151 TH2F * fhEtaIsoPi0Decay; //! eta of isolated Pi0Decay gamma
\r
152 TH1F * fhPtThresIsolatedPi0Decay[5][5]; //! Isolated Pi0Decay gamma with pt threshold
\r
153 TH1F * fhPtFracIsolatedPi0Decay[5][5]; //! Isolated Pi0Decay gamma with pt frac
\r
154 TH2F * fhPtSumIsolatedPi0Decay[5]; //! Isolated Pi0Decay gamma with threshold on cone pt sume
\r
155 TH1F * fhPtIsoOtherDecay; //! Number of isolated OtherDecay gamma
\r
156 TH2F * fhPhiIsoOtherDecay; //! Phi of isolated OtherDecay gamma
\r
157 TH2F * fhEtaIsoOtherDecay; //! eta of isolated OtherDecay gamma
\r
158 TH1F * fhPtThresIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt threshold
\r
159 TH1F * fhPtFracIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt frac
\r
160 TH2F * fhPtSumIsolatedOtherDecay[5]; //! Isolated OtherDecay gamma with threshold on cone pt sume
\r
161 TH1F * fhPtIsoConversion; //! Number of isolated Conversion gamma
\r
162 TH2F * fhPhiIsoConversion; //! Phi of isolated Conversion gamma
\r
163 TH2F * fhEtaIsoConversion; //! eta of isolated Conversion gamma
\r
164 TH1F * fhPtThresIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt threshold
\r
165 TH1F * fhPtFracIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt frac
\r
166 TH2F * fhPtSumIsolatedConversion[5]; //! Isolated Conversion gamma with threshold on cone pt sume
\r
167 TH1F * fhPtIsoUnknown; //! Number of isolated Unknown
\r
168 TH2F * fhPhiIsoUnknown; //! Phi of isolated Unknown
\r
169 TH2F * fhEtaIsoUnknown; //! eta of isolated Unknown
\r
170 TH1F * fhPtThresIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt threshold
\r
171 TH1F * fhPtFracIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt frac
\r
172 TH2F * fhPtSumIsolatedUnknown[5]; //! Isolated Unknown gamma with threshold on cone pt sume
\r
174 TH1F * fhPtNoIsoPi0Decay; //! Number of not isolated leading Pi0Decay gamma
\r
175 TH1F * fhPtNoIsoPrompt; //! Number of not isolated leading prompt gamma
\r
176 TH1F * fhPtIsoMCPhoton; //! Number of isolated leading gamma
\r
177 TH1F * fhPtNoIsoMCPhoton; //! Number of not isolated leading gamma
\r
179 //Histograms settings
\r
180 Int_t fHistoNPtSumBins; // Number of bins in PtSum histograms
\r
181 Float_t fHistoPtSumMax; // PtSum maximum in histogram
\r
182 Float_t fHistoPtSumMin; // PtSum minimum in histogram
\r
183 Int_t fHistoNPtInConeBins; // Number of bins in PtInCone histogram
\r
184 Float_t fHistoPtInConeMax; // PtInCone maximum in histogram
\r
185 Float_t fHistoPtInConeMin; // PtInCone maximum in histogram
\r
187 ClassDef(AliAnaParticleIsolation,3)
\r
191 #endif //ALIANAPARTICLEISOLATION_H
\r