]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h
adding cone pt and sumPt vs. pt leading
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / 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
6 //_________________________________________________________________________
7
8 // Class for the analysis of particle isolation
9 // Input is selected particles put in AOD branch (AliAODPWG4ParticleCorrelation)
10 //
11 //  Class created from old AliPHOSGammaJet
12 //  (see AliRoot versions previous Release 4-09)
13
14 //-- Author: Gustavo Conesa (INFN-LNF)
15
16 // --- ROOT system ---
17 class TH2F;
18 class TList ;
19 class TObjString;
20
21 // --- ANALYSIS system ---
22 #include "AliAnaCaloTrackCorrBaseClass.h"
23 class AliAODPWG4Particle;
24 class AliAODPWG4ParticleCorrelation ;
25
26
27 class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
28
29  public:   
30   AliAnaParticleIsolation() ; // default ctor
31   virtual ~AliAnaParticleIsolation() { ; } //virtual dtor
32
33   // Main general methods
34     
35   
36   TObjString * GetAnalysisCuts() ;
37   
38   TList      * GetCreateOutputObjects() ;
39   
40   void         Init() ;
41
42   void         InitParameters() ;
43   
44   void         MakeAnalysisFillAOD()  ;
45   
46   void         MakeAnalysisFillHistograms() ; 
47   
48   void         Print( const Option_t * opt ) const ;
49  
50   //Analysis specific methods 
51   
52   void         FillTrackMatchingShowerShapeControlHistograms(const Int_t clusterID, 
53                                                              const Int_t nLocMax,
54                                                              const Int_t mcTag ) ;
55   
56   void         MakeSeveralICAnalysis( AliAODPWG4ParticleCorrelation * ph ) ; 
57   
58   // Analysis Setters and Getters
59   
60   TString      GetCalorimeter()                const { return fCalorimeter       ; }
61   Int_t        GetNCones()                     const { return fNCones            ; }
62   Int_t        GetNPtThresFrac()               const { return fNPtThresFrac      ; }
63   Float_t      GetConeSizes(Int_t i)           const { return fConeSizes[i]      ; }
64   Float_t      GetPtThresholds(Int_t i)        const { return fPtThresholds[i]   ; }
65   Float_t      GetSumPtThresholds(Int_t i)     const { return fSumPtThresholds[i]; }
66   Float_t      GetPtFractions(Int_t i)         const { return fPtFractions[i]    ; }
67   
68   void         SetCalorimeter(TString & det)         { fCalorimeter     = det    ; }
69   void         SetNCones(Int_t ncs)                  { fNCones          = ncs    ; }
70   void         SetNPtThresFrac(Int_t npt)            { fNPtThresFrac    = npt    ; }
71   void         SetConeSizes(Int_t i, Float_t r)      { fConeSizes[i]    = r      ; }
72   void         SetPtThresholds(Int_t i, Float_t pt)  { fPtThresholds[i] = pt     ; }
73   void         SetPtFractions(Int_t i, Float_t pt)   { fPtFractions[i]  = pt     ; } 
74   void         SetSumPtThresholds(Int_t i, Float_t pt){ fSumPtThresholds[i] = pt ; }
75   
76   
77   Bool_t       IsReIsolationOn()               const { return fReMakeIC          ; }
78   void         SwitchOnReIsolation()                 { fReMakeIC      = kTRUE    ; }
79   void         SwitchOffReIsolation()                { fReMakeIC      = kFALSE   ; }
80   
81   Bool_t       IsSeveralIsolationOn()          const { return fMakeSeveralIC     ; }
82   void         SwitchOnSeveralIsolation()            { fMakeSeveralIC = kTRUE    ; }
83   void         SwitchOffSeveralIsolation()           { fMakeSeveralIC = kFALSE   ; }
84
85   void         SwitchOnTMHistoFill()                 { fFillTMHisto   = kTRUE    ; }
86   void         SwitchOffTMHistoFill()                { fFillTMHisto   = kFALSE   ; }
87   
88   void         SwitchOnSSHistoFill()                 { fFillSSHisto   = kTRUE    ; }
89   void         SwitchOffSSHistoFill()                { fFillSSHisto   = kFALSE   ; }
90
91   //Histogrammes setters and getters
92   
93   void         SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)       {
94     fHistoNPtSumBins = n ;    fHistoPtSumMax = max ;    fHistoPtSumMin = min ;     }
95   
96   Int_t        GetHistoNPtSumBins()            const { return fHistoNPtSumBins   ; }
97   Float_t      GetHistoPtSumMin()              const { return fHistoPtSumMin     ; }
98   Float_t      GetHistoPtSumMax()              const { return fHistoPtSumMax     ; }
99   
100   void         SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n)    {
101     fHistoNPtInConeBins = n ; fHistoPtInConeMax = max ; fHistoPtInConeMin = min  ; }
102   
103   Int_t        GetHistoNPtInConeBins()         const { return fHistoNPtInConeBins; }
104   Float_t      GetHistoPtInConeMin()           const { return fHistoPtInConeMin  ; }
105   Float_t      GetHistoPtInConeMax()           const { return fHistoPtInConeMax  ; }
106   
107  private:
108   
109   TString  fCalorimeter ;                         // Calorimeter where neutral particles in cone for isolation are;
110   Bool_t   fReMakeIC ;                            // Do isolation analysis
111   Bool_t   fMakeSeveralIC ;                       // Do analysis for different IC
112   Bool_t   fFillTMHisto;                          // Fill track matching plots
113   Bool_t   fFillSSHisto;                          // Fill Shower shape plots
114
115   // Analysis data members for multiple cones and pt thresholds 
116   Int_t    fNCones ;                              //! Number of cone sizes to test
117   Int_t    fNPtThresFrac ;                        //! Number of ptThres and ptFrac to test
118   
119   Float_t  fConeSizes[5] ;                        //! Array with cones to test
120   Float_t  fPtThresholds[5] ;                     //! Array with pt thresholds to test
121   Float_t  fPtFractions[5] ;                      //! Array with pt thresholds to test frac
122   Float_t  fSumPtThresholds[5] ;                  //! Array with pt thresholds to test frac
123   
124   //Histograms  
125   
126   TH1F *   fhEIso ;                               //! Number of isolated particles
127   TH1F *   fhPtIso ;                              //! Number of isolated particles
128   TH2F *   fhPhiIso ;                             //! Phi of isolated particles
129   TH2F *   fhEtaIso ;                             //! eta of isolated particles
130   TH2F *   fhEtaPhiIso ;                          //! eta vs phi of isolated particles
131   TH2F *   fhEtaPhiNoIso ;                        //! eta vs phi of not isolated leading particles
132   TH1F *   fhPtNoIso ;                            //! Number of not isolated leading particles
133   TH1F *   fhPtDecayIso ;                         //! Number of isolated Pi0 decay particles (invariant mass tag)
134   TH1F *   fhPtDecayNoIso ;                       //! Number of not isolated Pi0 decay leading particles (invariant mass tag)
135   TH2F *   fhEtaPhiDecayIso ;                     //! eta vs phi of isolated Pi0 decay particles
136   TH2F *   fhEtaPhiDecayNoIso ;                   //! eta vs phi of not isolated leading Pi0 decay particles
137   TH2F *   fhConeSumPt ;                          //! Sum Pt in the cone
138   TH2F *   fhPtInCone ;                           //! Particle Pt in the cone
139   TH2F *   fhFRConeSumPt ;                        //! Sum Pt in the forward region cone (phi +90)
140   TH2F *   fhPtInFRCone ;                         //! Particle Pt in the forward region cone (phi +90 ) 
141   
142   //MC
143   TH1F *   fhPtIsoPrompt;                         //! Number of isolated prompt gamma 
144   TH2F *   fhPhiIsoPrompt;                        //! Phi of isolated prompt gamma
145   TH2F *   fhEtaIsoPrompt;                        //! eta of isolated prompt gamma
146   TH1F *   fhPtThresIsolatedPrompt[5][5];         //! Isolated prompt gamma with pt threshold 
147   TH1F *   fhPtFracIsolatedPrompt[5][5];          //! Isolated prompt gamma with pt frac
148   TH2F *   fhPtSumIsolatedPrompt[5];              //! Isolated prompt gamma with threshold on cone pt sume
149   TH1F *   fhPtIsoFragmentation;                  //! Number of isolated fragmentation gamma 
150   TH2F *   fhPhiIsoFragmentation;                 //! Phi of isolated fragmentation gamma
151   TH2F *   fhEtaIsoFragmentation;                 //! eta of isolated fragmentation gamma
152   TH1F *   fhPtThresIsolatedFragmentation[5][5];  //! Isolated fragmentation gamma with pt threshold 
153   TH1F *   fhPtFracIsolatedFragmentation[5][5];   //! Isolated fragmentation gamma with pt frac
154   TH2F *   fhPtSumIsolatedFragmentation[5];       //! Isolated fragmentation gamma with threshold on cone pt sume
155   TH1F *   fhPtIsoPi0Decay;                       //! Number of isolated pi0 decay gamma 
156   TH2F *   fhPhiIsoPi0Decay;                      //! Phi of isolated pi0 decay gamma
157   TH2F *   fhEtaIsoPi0Decay;                      //! eta of isolated pi0 decay gamma
158   TH1F *   fhPtThresIsolatedPi0Decay[5][5];       //! Isolated pi0 decay gamma with pt threshold 
159   TH1F *   fhPtFracIsolatedPi0Decay[5][5];        //! Isolated pi0 decay gamma with pt frac
160   TH2F *   fhPtSumIsolatedPi0Decay[5];            //! Isolated pi0 decay gamma with threshold on cone pt sume
161   TH1F *   fhPtIsoEtaDecay;                       //! Number of isolated eta decay gamma 
162   TH2F *   fhPhiIsoEtaDecay;                      //! Phi of isolated eta decay gamma
163   TH2F *   fhEtaIsoEtaDecay;                      //! eta of isolated eta decay gamma
164   TH1F *   fhPtThresIsolatedEtaDecay[5][5];       //! Isolated eta decay gamma with pt threshold 
165   TH1F *   fhPtFracIsolatedEtaDecay[5][5];        //! Isolated eta decay gamma with pt frac
166   TH2F *   fhPtSumIsolatedEtaDecay[5];            //! Isolated eta fecay gamma with threshold on cone pt sume  
167   TH1F *   fhPtIsoOtherDecay;                     //! Number of isolated other decay gamma 
168   TH2F *   fhPhiIsoOtherDecay;                    //! Phi of isolated other decay gamma
169   TH2F *   fhEtaIsoOtherDecay;                    //! eta of isolated other decay gamma
170   TH1F *   fhPtThresIsolatedOtherDecay[5][5];     //! Isolated OtherDecay gamma with pt threshold 
171   TH1F *   fhPtFracIsolatedOtherDecay[5][5];      //! Isolated OtherDecay gamma with pt frac
172   TH2F *   fhPtSumIsolatedOtherDecay[5];          //! Isolated OtherDecay gamma with threshold on cone pt sume  
173   TH1F *   fhPtIsoConversion;                     //! Number of isolated Conversion gamma 
174   TH2F *   fhPhiIsoConversion;                    //! Phi of isolated Conversion gamma
175   TH2F *   fhEtaIsoConversion;                    //! eta of isolated Conversion gamma
176   TH1F *   fhPtThresIsolatedConversion[5][5];     //! Isolated Conversion gamma with pt threshold 
177   TH1F *   fhPtFracIsolatedConversion[5][5];      //! Isolated Conversion gamma with pt frac
178   TH2F *   fhPtSumIsolatedConversion[5];          //! Isolated Conversion gamma with threshold on cone pt sume
179   TH1F *   fhPtIsoUnknown;                        //! Number of isolated Unknown 
180   TH2F *   fhPhiIsoUnknown;                       //! Phi of isolated Unknown
181   TH2F *   fhEtaIsoUnknown;                       //! eta of isolated Unknown
182   TH1F *   fhPtThresIsolatedUnknown[5][5];        //! Isolated Unknown gamma with pt threshold 
183   TH1F *   fhPtFracIsolatedUnknown[5][5];         //! Isolated Unknown gamma with pt frac
184   TH2F *   fhPtSumIsolatedUnknown[5];             //! Isolated Unknown gamma with threshold on cone pt sume
185
186   // Multi Cut analysis Several IC
187    TH1F *   fhPtNoIsoPi0Decay;                     //! Number of not isolated leading pi0 decay gamma 
188   TH1F *   fhPtNoIsoEtaDecay;                     //! Number of not isolated leading eta decay gamma 
189   TH1F *   fhPtNoIsoOtherDecay;                   //! Number of not isolated leading other decay gamma 
190   TH1F *   fhPtNoIsoPrompt;                       //! Number of not isolated leading prompt gamma 
191   TH1F *   fhPtIsoMCPhoton;                       //! Number of isolated leading gamma 
192   TH1F *   fhPtNoIsoMCPhoton;                     //! Number of not isolated leading gamma 
193   TH1F *   fhPtNoIsoConversion;                   //! Number of not isolated leading conversion gamma 
194   TH1F *   fhPtNoIsoFragmentation;                //! Number of not isolated leading fragmentation gamma 
195   TH1F *   fhPtNoIsoUnknown;                      //! Number of not isolated leading hadrons 
196   
197   TH2F *   fhSumPtLeadingPt[5] ;                          //! Sum Pt in the cone
198   TH2F *   fhPtLeadingPt[5] ;                           //! Particle Pt in the cone
199   TH2F *   fhFRSumPtLeadingPt[5] ;                        //! Sum Pt in the forward region cone (phi +90)
200   TH2F *   fhFRPtLeadingPt[5];                         //! Particle Pt in the forward region cone (phi +90 ) 
201
202  TH1F *   fhPtThresIsolated[5][5] ;              //! Isolated particle with pt threshold 
203   TH1F *   fhPtFracIsolated[5][5] ;               //! Isolated particle with pt threshold frac
204   TH1F *   fhPtSumIsolated[5][5] ;                //! Isolated particle with threshold on cone pt sum
205   
206   TH2F *   fhEtaPhiPtThresIso[5][5] ;             //! eta vs phi of isolated particles with pt threshold
207   TH2F *   fhEtaPhiPtThresDecayIso[5][5] ;        //! eta vs phi of isolated particles with pt threshold
208   TH1F *   fhPtPtThresDecayIso[5][5] ;            //! Number of isolated Pi0 decay particles (invariant mass tag) with pt threshold   
209   
210   TH2F *   fhEtaPhiPtFracIso[5][5] ;              //! eta vs phi of isolated particles with pt frac
211   TH2F *   fhEtaPhiPtFracDecayIso[5][5] ;         //! eta vs phi of isolated particles with pt frac
212   TH1F *   fhPtPtFracDecayIso[5][5] ;             //! Number of isolated Pi0 decay particles (invariant mass tag) with pt fra
213
214   TH2F *   fhEtaPhiPtSumIso[5][5] ;               //! eta vs phi of isolated particles with pt sum
215   TH2F *   fhEtaPhiPtSumDecayIso[5][5] ;          //! eta vs phi of isolated particles with pt sum
216   TH1F *   fhPtPtSumDecayIso[5][5] ;              //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
217   
218   TH2F *   fhEtaPhiSumDensityIso[5][5];           //! Isolated particle with threshold on cone sum density
219   TH2F *   fhEtaPhiSumDensityDecayIso[5][5];      //! Isolated particle with threshold on cone sum density
220   TH1F *   fhPtSumDensityIso[5][5];               //! Isolated particle with threshold on cone sum density
221   TH1F *   fhPtSumDensityDecayIso[5][5];          //! Isolated decay particle with threshold on cone sum density
222   
223   TH1F *   fhPtFracPtSumIso[5][5] ;               //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
224   TH1F *   fhPtFracPtSumDecayIso[5][5] ;          //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
225   TH2F *   fhEtaPhiFracPtSumIso[5][5];            //! Isolated particle with threshold on cone sum density
226   TH2F *   fhEtaPhiFracPtSumDecayIso[5][5];       //! Isolated particle with threshold on cone sum density
227  
228   // Track matching studies
229   TH2F *   fhTrackMatchedDEta     ;               //! Eta distance between track and cluster vs cluster E
230   TH2F *   fhTrackMatchedDPhi     ;               //! Phi distance between track and cluster vs cluster E
231   TH2F *   fhTrackMatchedDEtaDPhi ;               //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
232   TH2F *   fhdEdx  ;                              //! matched track dEdx vs cluster E 
233   TH2F *   fhEOverP;                              //! matched track E cluster over P track vs cluster E, after dEdx cut 
234   TH2F *   fhTrackMatchedMCParticle;              //! Trace origin of matched particle
235
236   // Shower Shape histograms
237   TH2F *   fhELambda0;                            //! Shower shape of isolated photons
238   TH2F *   fhELambda1;                            //! Shower shape of isolated photons
239   TH2F *   fhELambda0TRD;                         //! Shower shape of isolated photons, SM behind TRD
240   TH2F *   fhELambda1TRD;                         //! Shower shape of isolated photons, SM behind TRD
241   
242   // Local maxima
243   TH2F *   fhNLocMax;                             //! number of maxima in selected clusters
244   TH2F *   fhELambda0LocMax1 ;                    //! E vs lambda0 of selected cluster, 1 local maxima in cluster 
245   TH2F *   fhELambda1LocMax1 ;                    //! E vs lambda1 of selected cluster, 1 local maxima in cluster 
246   TH2F *   fhELambda0LocMax2 ;                    //! E vs lambda0 of selected cluster, 2 local maxima in cluster 
247   TH2F *   fhELambda1LocMax2 ;                    //! E vs lambda1 of selected cluster, 2 local maxima in cluster
248   TH2F *   fhELambda0LocMaxN ;                    //! E vs lambda0 of selected cluster, N>2 local maxima in cluster 
249   TH2F *   fhELambda1LocMaxN ;                    //! E vs lambda1 of selected cluster, N>2 local maxima in cluster 
250   
251   //Histograms settings
252   Int_t    fHistoNPtSumBins;                      // Number of bins in PtSum histograms
253   Float_t  fHistoPtSumMax;                        // PtSum maximum in histogram
254   Float_t  fHistoPtSumMin;                            // PtSum minimum in histogram
255   Int_t    fHistoNPtInConeBins;                   // Number of bins in PtInCone histogram
256   Float_t  fHistoPtInConeMax;                     // PtInCone maximum in histogram
257   Float_t  fHistoPtInConeMin;                     // PtInCone maximum in histogram 
258
259   AliAnaParticleIsolation(              const AliAnaParticleIsolation & iso) ; // cpy ctor
260   AliAnaParticleIsolation & operator = (const AliAnaParticleIsolation & iso) ; // cpy assignment
261   
262   ClassDef(AliAnaParticleIsolation,13)
263 } ;
264
265
266 #endif //ALIANAPARTICLEISOLATION_H
267
268
269