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