PartCorr split in 2 Base and Dep; coding violations corrected; PHOS geometry can...
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaParticleIsolation.h
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