]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/PartCorrDep/AliAnaParticleIsolation.h
PartCorr split in 2 Base and Dep; coding violations corrected; PHOS geometry can...
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaParticleIsolation.h
CommitLineData
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
23class AliAODPWG4ParticleCorrelation ;\r
24\r
25class TList ;\r
26\r
27class AliAnaParticleIsolation : public AliAnaPartCorrBaseClass {\r
28\r
29public: \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
99private:\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