]>
Commit | Line | Data |
---|---|---|
477d6cee | 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 */ | |
5 | /* $Id: AliAnaParticleIsolation.h 27413 2008-07-18 13:28:12Z gconesab $ */ | |
6 | ||
7 | //_________________________________________________________________________ | |
8 | ||
9 | // Class for the analysis of particle isolation | |
10 | // Input is selected particles put in AOD branch (AliAODPWG4ParticleCorrelation) | |
11 | // | |
12 | // Class created from old AliPHOSGammaJet | |
13 | // (see AliRoot versions previous Release 4-09) | |
14 | ||
15 | //-- Author: Gustavo Conesa (INFN-LNF) | |
16 | ||
17 | // --- ROOT system --- | |
18 | class TH2F; | |
19 | class TList ; | |
20 | ||
21 | // --- ANALYSIS system --- | |
22 | #include "AliAnaPartCorrBaseClass.h" | |
7f0c28bc | 23 | class AliAODPWG4Particle; |
477d6cee | 24 | class AliAODPWG4ParticleCorrelation ; |
25 | ||
26 | ||
27 | class AliAnaParticleIsolation : public AliAnaPartCorrBaseClass { | |
28 | ||
29 | public: | |
30 | ||
31 | AliAnaParticleIsolation() ; // default ctor | |
32 | AliAnaParticleIsolation(const AliAnaParticleIsolation & g) ; // cpy ctor | |
33 | AliAnaParticleIsolation & operator = (const AliAnaParticleIsolation & g) ;//cpy assignment | |
34 | virtual ~AliAnaParticleIsolation() ; //virtual dtor | |
35 | ||
a3aebfff | 36 | Bool_t CheckInvMass(const Int_t icalo,const AliAODPWG4Particle * ph) const ; |
477d6cee | 37 | |
38 | TList * GetCreateOutputObjects(); | |
39 | ||
40 | void MakeAnalysisFillAOD() ; | |
41 | ||
42 | void MakeAnalysisFillHistograms() ; | |
43 | ||
44 | void MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelation * ph); | |
45 | ||
46 | void Print(const Option_t * opt)const; | |
47 | ||
48 | TString GetCalorimeter() const {return fCalorimeter ; } | |
49 | void SetCalorimeter(TString det) {fCalorimeter = det ; } | |
50 | ||
51 | Int_t GetNCones() const {return fNCones ; } | |
52 | Int_t GetNPtThresFrac() const {return fNPtThresFrac ; } | |
53 | Float_t GetConeSizes(Int_t i) const {return fConeSizes[i] ; } | |
54 | Float_t GetPtThresholds(Int_t i) const {return fPtThresholds[i] ; } | |
55 | Float_t GetPtFractions(Int_t i) const {return fPtFractions[i] ; } | |
56 | ||
57 | void InitParameters(); | |
58 | ||
59 | void SetNCones(Int_t ncs) {fNCones = ncs ; } | |
60 | void SetNPtThresFrac(Int_t npt) {fNPtThresFrac = npt; } | |
61 | void SetConeSizes(Int_t i, Float_t r) {fConeSizes[i] = r ; } | |
62 | void SetPtThresholds(Int_t i, Float_t pt) {fPtThresholds[i] = pt; } | |
63 | void SetPtFractions(Int_t i, Float_t pt) {fPtFractions[i] = pt; } | |
64 | ||
65 | Bool_t IsReIsolationOn() const {return fReMakeIC ; } | |
66 | void SwitchOnReIsolation() { fReMakeIC = kTRUE;} | |
67 | void SwitchOffReIsolation() { fReMakeIC = kFALSE;} | |
68 | ||
69 | Bool_t IsSeveralIsolationOn() const {return fMakeSeveralIC ; } | |
70 | void SwitchOnSeveralIsolation() { fMakeSeveralIC = kTRUE;} | |
71 | void SwitchOffSeveralIsolation() { fMakeSeveralIC = kFALSE;} | |
72 | ||
73 | Bool_t IsInvariantMassOn() const {return fMakeInvMass ; } | |
74 | void SwitchOnInvariantMass() { fMakeInvMass = kTRUE;} | |
75 | void SwitchOffInvariantMass() { fMakeInvMass = kFALSE;} | |
76 | ||
77 | //Histogrammes setters and getters | |
78 | virtual void SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n) { | |
79 | fHistoNPtSumBins = n ; | |
80 | fHistoPtSumMax = max ; | |
81 | fHistoPtSumMin = min ; | |
82 | } | |
83 | ||
84 | Int_t GetHistoNPtSumBins() const { return fHistoNPtSumBins ; } | |
85 | Float_t GetHistoPtSumMin() const { return fHistoPtSumMin ; } | |
86 | Float_t GetHistoPtSumMax() const { return fHistoPtSumMax ; } | |
87 | ||
88 | virtual void SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n) { | |
89 | fHistoNPtInConeBins = n ; | |
90 | fHistoPtInConeMax = max ; | |
91 | fHistoPtInConeMin = min ; | |
92 | } | |
93 | ||
94 | Int_t GetHistoNPtInConeBins() const { return fHistoNPtInConeBins ; } | |
95 | Float_t GetHistoPtInConeMin() const { return fHistoPtInConeMin ; } | |
96 | Float_t GetHistoPtInConeMax() const { return fHistoPtInConeMax ; } | |
97 | ||
98 | ||
99 | private: | |
100 | ||
101 | TString fCalorimeter ; // Calorimeter where neutral particles in cone for isolation are; | |
477d6cee | 102 | Bool_t fReMakeIC ; // Do isolation analysis |
103 | Bool_t fMakeSeveralIC ; // Do analysis for different IC | |
104 | Bool_t fMakeInvMass; // Select candidate if no pair from decay | |
105 | ||
106 | //Histograms | |
107 | ||
108 | TH1F * fhPtIso ; //! Number of isolated particles | |
109 | TH2F * fhPhiIso ; //! Phi of isolated particles | |
110 | TH2F * fhEtaIso ; //! eta of isolated particles | |
111 | TH2F * fhConeSumPt ; //! Sum Pt in the cone | |
112 | TH2F * fhPtInCone ; //! Particle Pt in the cone | |
113 | ||
114 | //Prompt photon analysis data members for multiple cones and pt thresholds | |
115 | Int_t fNCones ; //! Number of cone sizes to test | |
116 | Int_t fNPtThresFrac ; //! Number of ptThres and ptFrac to test | |
117 | ||
118 | Float_t fConeSizes[5] ; //! Array with cones to test | |
119 | Float_t fPtThresholds[5] ; //! Array with pt thresholds to test | |
120 | Float_t fPtFractions[5] ; //! Array with pt thresholds to test | |
121 | ||
122 | TH1F* fhPtThresIsolated[5][5] ; //! Isolated particle with pt threshold | |
123 | TH1F* fhPtFracIsolated[5][5] ; //! Isolated particle with pt threshold | |
124 | TH2F* fhPtSumIsolated[5] ; //! Isolated particle with threshold on cone pt sum | |
125 | ||
126 | //MC | |
127 | TH1F * fhPtIsoPrompt; //! Number of isolated prompt gamma | |
128 | TH2F * fhPhiIsoPrompt; //! Phi of isolated prompt gamma | |
129 | TH2F * fhEtaIsoPrompt; //! eta of isolated prompt gamma | |
130 | TH1F * fhPtThresIsolatedPrompt[5][5]; //! Isolated prompt gamma with pt threshold | |
131 | TH1F * fhPtFracIsolatedPrompt[5][5]; //! Isolated prompt gamma with pt frac | |
132 | TH2F * fhPtSumIsolatedPrompt[5]; //! Isolated prompt gamma with threshold on cone pt sume | |
133 | TH1F * fhPtIsoFragmentation; //! Number of isolated fragmentation gamma | |
134 | TH2F * fhPhiIsoFragmentation; //! Phi of isolated fragmentation gamma | |
135 | TH2F * fhEtaIsoFragmentation; //! eta of isolated fragmentation gamma | |
136 | TH1F * fhPtThresIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt threshold | |
137 | TH1F * fhPtFracIsolatedFragmentation[5][5]; //! Isolated fragmentation gamma with pt frac | |
138 | TH2F * fhPtSumIsolatedFragmentation[5]; //! Isolated fragmentation gamma with threshold on cone pt sume | |
139 | TH1F * fhPtIsoPi0Decay; //!Number of isolated Pi0Decay gamma | |
140 | TH2F * fhPhiIsoPi0Decay; //! Phi of isolated Pi0Decay gamma | |
141 | TH2F * fhEtaIsoPi0Decay; //! eta of isolated Pi0Decay gamma | |
142 | TH1F * fhPtThresIsolatedPi0Decay[5][5]; //! Isolated Pi0Decay gamma with pt threshold | |
143 | TH1F * fhPtFracIsolatedPi0Decay[5][5]; //! Isolated Pi0Decay gamma with pt frac | |
144 | TH2F * fhPtSumIsolatedPi0Decay[5]; //! Isolated Pi0Decay gamma with threshold on cone pt sume | |
145 | TH1F * fhPtIsoOtherDecay; //! Number of isolated OtherDecay gamma | |
146 | TH2F * fhPhiIsoOtherDecay; //! Phi of isolated OtherDecay gamma | |
147 | TH2F * fhEtaIsoOtherDecay; //! eta of isolated OtherDecay gamma | |
148 | TH1F * fhPtThresIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt threshold | |
149 | TH1F * fhPtFracIsolatedOtherDecay[5][5]; //! Isolated OtherDecay gamma with pt frac | |
150 | TH2F * fhPtSumIsolatedOtherDecay[5]; //! Isolated OtherDecay gamma with threshold on cone pt sume | |
151 | TH1F * fhPtIsoConversion; //! Number of isolated Conversion gamma | |
152 | TH2F * fhPhiIsoConversion; //! Phi of isolated Conversion gamma | |
153 | TH2F * fhEtaIsoConversion; //! eta of isolated Conversion gamma | |
154 | TH1F * fhPtThresIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt threshold | |
155 | TH1F * fhPtFracIsolatedConversion[5][5]; //! Isolated Conversion gamma with pt frac | |
156 | TH2F * fhPtSumIsolatedConversion[5]; //! Isolated Conversion gamma with threshold on cone pt sume | |
157 | TH1F * fhPtIsoUnknown; //! Number of isolated Unknown | |
158 | TH2F * fhPhiIsoUnknown; //! Phi of isolated Unknown | |
159 | TH2F * fhEtaIsoUnknown; //! eta of isolated Unknown | |
160 | TH1F * fhPtThresIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt threshold | |
161 | TH1F * fhPtFracIsolatedUnknown[5][5]; //! Isolated Unknown gamma with pt frac | |
162 | TH2F * fhPtSumIsolatedUnknown[5]; //! Isolated Unknown gamma with threshold on cone pt sume | |
163 | ||
164 | //Histograms settings | |
165 | Int_t fHistoNPtSumBins; // Number of bins in PtSum histograms | |
166 | Float_t fHistoPtSumMax; // PtSum maximum in histogram | |
167 | Float_t fHistoPtSumMin; // PtSum minimum in histogram | |
168 | Int_t fHistoNPtInConeBins; // Number of bins in PtInCone histogram | |
169 | Float_t fHistoPtInConeMax; // PtInCone maximum in histogram | |
170 | Float_t fHistoPtInConeMin; // PtInCone maximum in histogram | |
171 | ||
233e0df8 | 172 | ClassDef(AliAnaParticleIsolation,3) |
477d6cee | 173 | } ; |
174 | ||
175 | ||
176 | #endif //ALIANAPARTICLEISOLATION_H | |
177 | ||
178 | ||
179 |