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