]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h
0fbddaf6fc9cebebc19b1916ab6238583f8e3d8d
[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   void         CalculateCaloUEBand (AliAODPWG4ParticleCorrelation * pCandidate,
36                                     Float_t & etaBand, Float_t & phiBand) ;
37   void         CalculateTrackUEBand(AliAODPWG4ParticleCorrelation * pCandidate,
38                                     Float_t & etaBand, Float_t & phiBand) ;
39   
40   void         CalculateCaloSignalInCone  (AliAODPWG4ParticleCorrelation * aodParticle, Float_t & coneptsumCluster) ;
41   void         CalculateTrackSignalInCone (AliAODPWG4ParticleCorrelation * aodParticle, Float_t & coneptsumTrack  ) ;
42   
43   Float_t      CalculateExcessAreaFraction(const Float_t excess, const Float_t conesize);
44   
45   void         CalculateNormalizeUEBandPerUnitArea(AliAODPWG4ParticleCorrelation * pCandidate,
46                                                    const Float_t coneptsumCluster, const Float_t coneptsumTrack ) ;
47   
48   TObjString * GetAnalysisCuts() ;
49   
50   TList      * GetCreateOutputObjects() ;
51   
52   void         Init() ;
53
54   void         InitParameters() ;
55   
56   void         MakeAnalysisFillAOD()  ;
57   
58   void         MakeAnalysisFillHistograms() ; 
59   
60   
61   void         Print( const Option_t * opt ) const ;
62  
63   //Analysis specific methods 
64   
65   void         FillPileUpHistograms(Int_t clusterID) ;
66   
67   void         FillTrackMatchingShowerShapeControlHistograms(AliAODPWG4ParticleCorrelation  * pCandidate,
68                                                              const AliCaloTrackReader * reader,
69                                                              const AliCaloPID * pid) ;
70   
71   void         MakeSeveralICAnalysis( AliAODPWG4ParticleCorrelation * ph ) ; 
72   
73   // Analysis Setters and Getters
74   
75   TString      GetCalorimeter()                const { return fCalorimeter       ; }
76   Int_t        GetNCones()                     const { return fNCones            ; }
77   Int_t        GetNPtThresFrac()               const { return fNPtThresFrac      ; }
78   Float_t      GetConeSizes(Int_t i)           const { return fConeSizes[i]      ; }
79   Float_t      GetPtThresholds(Int_t i)        const { return fPtThresholds[i]   ; }
80   Float_t      GetSumPtThresholds(Int_t i)     const { return fSumPtThresholds[i]; }
81   Float_t      GetPtFractions(Int_t i)         const { return fPtFractions[i]    ; }
82   
83   void         SetCalorimeter(TString & det)         { fCalorimeter     = det    ; }
84   void         SetNCones(Int_t ncs)                  { fNCones          = ncs    ; }
85   void         SetNPtThresFrac(Int_t npt)            { fNPtThresFrac    = npt    ; }
86   void         SetConeSizes(Int_t i, Float_t r)      { fConeSizes[i]    = r      ; }
87   void         SetPtThresholds(Int_t i, Float_t pt)  { fPtThresholds[i] = pt     ; }
88   void         SetPtFractions(Int_t i, Float_t pt)   { fPtFractions[i]  = pt     ; } 
89   void         SetSumPtThresholds(Int_t i, Float_t pt){ fSumPtThresholds[i] = pt ; }
90   
91   
92   Bool_t       IsReIsolationOn()               const { return fReMakeIC          ; }
93   void         SwitchOnReIsolation()                 { fReMakeIC      = kTRUE    ; }
94   void         SwitchOffReIsolation()                { fReMakeIC      = kFALSE   ; }
95   
96   Bool_t       IsSeveralIsolationOn()          const { return fMakeSeveralIC     ; }
97   void         SwitchOnSeveralIsolation()            { fMakeSeveralIC = kTRUE    ; }
98   void         SwitchOffSeveralIsolation()           { fMakeSeveralIC = kFALSE   ; }
99
100   void         SwitchOnFillPileUpHistograms()        { fFillPileUpHistograms = kTRUE  ; }
101   void         SwitchOffFillPileUpHistograms()       { fFillPileUpHistograms = kFALSE ; }    
102   
103   void         SwitchOnTMHistoFill()                 { fFillTMHisto   = kTRUE    ; }
104   void         SwitchOffTMHistoFill()                { fFillTMHisto   = kFALSE   ; }
105   
106   void         SwitchOnSSHistoFill()                 { fFillSSHisto   = kTRUE    ; }
107   void         SwitchOffSSHistoFill()                { fFillSSHisto   = kFALSE   ; }
108
109   //Histogrammes setters and getters
110   
111   void         SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)       {
112     fHistoNPtSumBins = n ;    fHistoPtSumMax = max ;    fHistoPtSumMin = min ;     }
113   
114   Int_t        GetHistoNPtSumBins()            const { return fHistoNPtSumBins   ; }
115   Float_t      GetHistoPtSumMin()              const { return fHistoPtSumMin     ; }
116   Float_t      GetHistoPtSumMax()              const { return fHistoPtSumMax     ; }
117   
118   void         SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n)    {
119     fHistoNPtInConeBins = n ; fHistoPtInConeMax = max ; fHistoPtInConeMin = min  ; }
120   
121   Int_t        GetHistoNPtInConeBins()         const { return fHistoNPtInConeBins; }
122   Float_t      GetHistoPtInConeMin()           const { return fHistoPtInConeMin  ; }
123   Float_t      GetHistoPtInConeMax()           const { return fHistoPtInConeMax  ; }
124   
125  private:
126   
127   TString  fCalorimeter ;                         // Calorimeter where neutral particles in cone for isolation are;
128   Bool_t   fReMakeIC ;                            // Do isolation analysis
129   Bool_t   fMakeSeveralIC ;                       // Do analysis for different IC
130   Bool_t   fFillPileUpHistograms;                 // Fill pile-up related histograms
131   Bool_t   fFillTMHisto;                          // Fill track matching plots
132   Bool_t   fFillSSHisto;                          // Fill Shower shape plots
133
134   // Analysis data members for multiple cones and pt thresholds 
135   Int_t    fNCones ;                              //! Number of cone sizes to test
136   Int_t    fNPtThresFrac ;                        //! Number of ptThres and ptFrac to test
137   
138   Float_t  fConeSizes[5] ;                        //! Array with cones to test
139   Float_t  fPtThresholds[5] ;                     //! Array with pt thresholds to test
140   Float_t  fPtFractions[5] ;                      //! Array with pt thresholds to test frac
141   Float_t  fSumPtThresholds[5] ;                  //! Array with pt thresholds to test frac
142   
143   //Histograms  
144   
145   TH1F *   fhEIso ;                               //! Number of isolated particles vs energy
146   TH1F *   fhPtIso ;                              //! Number of isolated particles vs pT
147   TH2F *   fhPtCentralityIso ;                    //! centrality vs pT
148   TH2F *   fhPtEventPlaneIso ;                    //! event plane angle vs pT
149   TH2F *   fhPtNLocMaxIso ;                       //! Number of isolated particles vs NLM in cluster
150   TH2F *   fhPhiIso ;                             //! Phi of isolated particles
151   TH2F *   fhEtaIso ;                             //! eta of isolated particles
152   TH2F *   fhEtaPhiIso ;                          //! eta vs phi of isolated particles
153   TH2F *   fhEtaPhiNoIso ;                        //! eta vs phi of not isolated leading particles
154   TH1F *   fhENoIso ;                             //! Number of not isolated leading particles vs Energy
155   TH1F *   fhPtNoIso ;                            //! Number of not isolated leading particles vs pT
156   TH2F *   fhPtNLocMaxNoIso ;                     //! Number of not isolated particles vs NLM in cluster
157   TH1F *   fhPtDecayIso ;                         //! Number of isolated Pi0 decay particles (invariant mass tag)
158   TH1F *   fhPtDecayNoIso ;                       //! Number of not isolated Pi0 decay leading particles (invariant mass tag)
159   TH2F *   fhEtaPhiDecayIso ;                     //! eta vs phi of isolated Pi0 decay particles
160   TH2F *   fhEtaPhiDecayNoIso ;                   //! eta vs phi of not isolated leading Pi0 decay particles
161
162   TH2F *   fhPtInCone ;                           //! Cluster/track Pt in the cone
163   TH2F *   fhPtClusterInCone ;                    //! Cluster Pt in the cone
164   TH2F *   fhPtTrackInCone ;                      //! Track Pt in the cone
165   TH2F *   fhPtTrackInConeOtherBC ;               //! Track Pt in the cone, tracks out of main BC Time window
166   TH2F *   fhPtTrackInConeOtherBCPileUpSPD ;      //! Track Pt in the cone, tracks out of main BC Time window
167   TH2F *   fhPtTrackInConeBC0 ;                   //! Track Pt in the cone, tracks in BC=0
168   TH2F *   fhPtTrackInConeVtxBC0 ;                //! Track Pt in the cone, tracks in BC=0
169   TH2F *   fhPtTrackInConeBC0PileUpSPD ;          //! Track Pt in the cone, tracks in BC=0
170   TH2F *   fhPtInConePileUp[7] ;                  //! Particle Pt in the cone, if event is from pile-up (SPD method)
171   TH2F *   fhPtInConeCent ;                       //! Particle Pt in the cone versus centrality
172   TH2F *   fhPerpConeSumPt ;                      //! Sum Pt in cone at the perpendicular phi region to trigger axis  (phi +90)
173   TH2F *   fhPtInPerpCone ;                       //! Particle Pt  in cone at the perpendicular phi region to trigger axis  (phi +90)
174   
175   TH2F *   fhEtaBandCluster ;                     //! Accumulated pT in Eta band to estimate UE in cone, only clusters
176   TH2F *   fhPhiBandCluster ;                     //! Accumulated pT in Phi band to estimate UE in cone, only clusters
177   TH2F *   fhEtaBandTrack   ;                     //! Accumulated pT in Eta band to estimate UE in cone, only tracks
178   TH2F *   fhPhiBandTrack   ;                     //! Accumulated pT in Phi band to estimate UE in cone, only tracks
179   
180   TH2F *   fhConeSumPt ;                          //! Cluster and tracks Sum Pt Sum Pt in the cone
181   TH2F *   fhConeSumPtEtaBandUECluster;           //! Cluster Sum Pt in the eta band for clusters, before normalization
182   TH2F *   fhConeSumPtPhiBandUECluster;           //! Cluster Sum Pt in the phi band for clusters, before normalization
183   TH2F *   fhConeSumPtEtaBandUETrack;             //! Track Sum Pt in the eta band for tracks  , before normalization
184   TH2F *   fhConeSumPtPhiBandUETrack;             //! Track Sum Pt in the phi badn for tracks  , before normalization
185   
186   TH2F *   fhConeSumPtTrigEtaPhi ;                //! Cluster and tracks Sum Pt Sum Pt in the cone, per eta-phi bin of trigger,
187   TH2F *   fhConeSumPtEtaBandUEClusterTrigEtaPhi; //! Cluster Sum Pt in the eta band for clusters, per eta-phi bin of trigger,before normalization
188   TH2F *   fhConeSumPtPhiBandUEClusterTrigEtaPhi; //! Cluster Sum Pt in the phi band for clusters, per eta-phi bin of trigger, before normalization
189   TH2F *   fhConeSumPtEtaBandUETrackTrigEtaPhi;   //! Track Sum Pt in the eta band for tracks  , per eta-phi bin of trigger, before normalization
190   TH2F *   fhConeSumPtPhiBandUETrackTrigEtaPhi;   //! Track Sum Pt in the phi badn for tracks  , per eta-phi bin of trigger, before normalization
191
192   TH2F *   fhConeSumPtEtaUESub;                   //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
193   TH2F *   fhConeSumPtPhiUESub;                   //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
194   TH2F *   fhConeSumPtEtaUESubTrigEtaPhi;         //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
195   TH2F *   fhConeSumPtPhiUESubTrigEtaPhi;         //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
196     
197   TH2F *   fhConeSumPtEtaUESubCluster;            //! Cluster Sum Pt in the cone after bkg subtraction, vs pT trigger
198   TH2F *   fhConeSumPtPhiUESubCluster;            //! Cluster Sum Pt in the cone after bkg subtraction, vs pT trigger
199   TH2F *   fhConeSumPtEtaUESubClusterTrigEtaPhi;  //! Cluster Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
200   TH2F *   fhConeSumPtPhiUESubClusterTrigEtaPhi;  //! Cluster Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
201
202   TH2F *   fhConeSumPtEtaUESubTrack;              //! Track Sum Pt in the cone after bkg subtraction, vs pT trigger
203   TH2F *   fhConeSumPtPhiUESubTrack;              //! Track Sum Pt in the cone after bkg subtraction, vs pT trigger
204   TH2F *   fhConeSumPtEtaUESubTrackTrigEtaPhi;    //! Track Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
205   TH2F *   fhConeSumPtPhiUESubTrackTrigEtaPhi;    //! Track Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
206   
207   TH2F *   fhFractionTrackOutConeEta;             //! Fraction of cone out of tracks acceptance in eta
208   TH2F *   fhFractionTrackOutConeEtaTrigEtaPhi;   //! Fraction of cone out of tracks acceptance in eta, vs trigger eta-phi
209   TH2F *   fhFractionClusterOutConeEta;           //! Fraction of cone out of clusters acceptance in eta
210   TH2F *   fhFractionClusterOutConeEtaTrigEtaPhi; //! Fraction of cone out of clusters acceptance in eta, vs trigger eta-phi
211   TH2F *   fhFractionClusterOutConePhi;           //! Fraction of cone out of clusters acceptance in phi
212   TH2F *   fhFractionClusterOutConePhiTrigEtaPhi; //! Fraction of cone out of clusters acceptance in phi, vs trigger eta-phi
213   
214   //MC
215   TH1F *   fhPtIsoPrompt;                         //! Number of isolated prompt gamma 
216   TH2F *   fhPhiIsoPrompt;                        //! Phi of isolated prompt gamma
217   TH2F *   fhEtaIsoPrompt;                        //! eta of isolated prompt gamma
218   TH1F *   fhPtThresIsolatedPrompt[5][5];         //! Isolated prompt gamma with pt threshold 
219   TH1F *   fhPtFracIsolatedPrompt[5][5];          //! Isolated prompt gamma with pt frac
220   TH2F *   fhPtSumIsolatedPrompt[5];              //! Isolated prompt gamma with threshold on cone pt sume
221   TH1F *   fhPtIsoFragmentation;                  //! Number of isolated fragmentation gamma 
222   TH2F *   fhPhiIsoFragmentation;                 //! Phi of isolated fragmentation gamma
223   TH2F *   fhEtaIsoFragmentation;                 //! eta of isolated fragmentation gamma
224   TH1F *   fhPtThresIsolatedFragmentation[5][5];  //! Isolated fragmentation gamma with pt threshold 
225   TH1F *   fhPtFracIsolatedFragmentation[5][5];   //! Isolated fragmentation gamma with pt frac
226   TH2F *   fhPtSumIsolatedFragmentation[5];       //! Isolated fragmentation gamma with threshold on cone pt sume
227   TH1F *   fhPtIsoPi0;                            //! Number of isolated pi0 (2 gamma)
228   TH2F *   fhPhiIsoPi0;                           //! Phi of isolated pi0 (2 gamma)
229   TH2F *   fhEtaIsoPi0;                           //! eta of isolated pi0 (2 gamma)
230   TH1F *   fhPtThresIsolatedPi0[5][5];            //! Isolated pi0 (2 gamma) with pt threshold 
231   TH1F *   fhPtFracIsolatedPi0[5][5];             //! Isolated pi0 (2 gamma) with pt frac
232   TH2F *   fhPtSumIsolatedPi0[5];                 //! Isolated pi0 (2 gamma) with threshold on cone pt sum
233   TH1F *   fhPtIsoPi0Decay;                       //! Number of isolated pi0 decay gamma 
234   TH2F *   fhPhiIsoPi0Decay;                      //! Phi of isolated pi0 decay gamma
235   TH2F *   fhEtaIsoPi0Decay;                      //! eta of isolated pi0 decay gamma
236   TH1F *   fhPtThresIsolatedPi0Decay[5][5];       //! Isolated pi0 decay gamma with pt threshold 
237   TH1F *   fhPtFracIsolatedPi0Decay[5][5];        //! Isolated pi0 decay gamma with pt frac
238   TH2F *   fhPtSumIsolatedPi0Decay[5];            //! Isolated pi0 decay gamma with threshold on cone pt sume
239   TH1F *   fhPtIsoEtaDecay;                       //! Number of isolated eta decay gamma 
240   TH2F *   fhPhiIsoEtaDecay;                      //! Phi of isolated eta decay gamma
241   TH2F *   fhEtaIsoEtaDecay;                      //! eta of isolated eta decay gamma
242   TH1F *   fhPtThresIsolatedEtaDecay[5][5];       //! Isolated eta decay gamma with pt threshold 
243   TH1F *   fhPtFracIsolatedEtaDecay[5][5];        //! Isolated eta decay gamma with pt frac
244   TH2F *   fhPtSumIsolatedEtaDecay[5];            //! Isolated eta fecay gamma with threshold on cone pt sume  
245   TH1F *   fhPtIsoOtherDecay;                     //! Number of isolated other decay gamma 
246   TH2F *   fhPhiIsoOtherDecay;                    //! Phi of isolated other decay gamma
247   TH2F *   fhEtaIsoOtherDecay;                    //! eta of isolated other decay gamma
248   TH1F *   fhPtThresIsolatedOtherDecay[5][5];     //! Isolated OtherDecay gamma with pt threshold 
249   TH1F *   fhPtFracIsolatedOtherDecay[5][5];      //! Isolated OtherDecay gamma with pt frac
250   TH2F *   fhPtSumIsolatedOtherDecay[5];          //! Isolated OtherDecay gamma with threshold on cone pt sume  
251 //  TH1F *   fhPtIsoConversion;                     //! Number of isolated Conversion gamma 
252 //  TH2F *   fhPhiIsoConversion;                    //! Phi of isolated Conversion gamma
253 //  TH2F *   fhEtaIsoConversion;                    //! eta of isolated Conversion gamma
254 //  TH1F *   fhPtThresIsolatedConversion[5][5];     //! Isolated Conversion gamma with pt threshold 
255 //  TH1F *   fhPtFracIsolatedConversion[5][5];      //! Isolated Conversion gamma with pt frac
256 //  TH2F *   fhPtSumIsolatedConversion[5];          //! Isolated Conversion gamma with threshold on cone pt sume
257   TH1F *   fhPtIsoHadron;                        //! Number of isolated Hadron 
258   TH2F *   fhPhiIsoHadron;                       //! Phi of isolated Hadron
259   TH2F *   fhEtaIsoHadron;                       //! eta of isolated Hadron
260   TH1F *   fhPtThresIsolatedHadron[5][5];        //! Isolated Hadron gamma with pt threshold 
261   TH1F *   fhPtFracIsolatedHadron[5][5];         //! Isolated Hadron gamma with pt frac
262   TH2F *   fhPtSumIsolatedHadron[5];             //! Isolated Hadron gamma with threshold on cone pt sume
263
264   // Multi Cut analysis Several IC
265   TH1F *   fhPtNoIsoPi0;                          //! Number of not isolated leading pi0 (2 gamma)
266   TH1F *   fhPtNoIsoPi0Decay;                     //! Number of not isolated leading pi0 decay gamma 
267   TH1F *   fhPtNoIsoEtaDecay;                     //! Number of not isolated leading eta decay gamma 
268   TH1F *   fhPtNoIsoOtherDecay;                   //! Number of not isolated leading other decay gamma 
269   TH1F *   fhPtNoIsoPrompt;                       //! Number of not isolated leading prompt gamma 
270   TH1F *   fhPtIsoMCPhoton;                       //! Number of isolated leading gamma 
271   TH1F *   fhPtNoIsoMCPhoton;                     //! Number of not isolated leading gamma 
272 //  TH1F *   fhPtNoIsoConversion;                   //! Number of not isolated leading conversion gamma 
273   TH1F *   fhPtNoIsoFragmentation;                //! Number of not isolated leading fragmentation gamma 
274   TH1F *   fhPtNoIsoHadron;                      //! Number of not isolated leading hadrons 
275   
276   TH2F *   fhSumPtLeadingPt[5] ;                  //! Sum Pt in the cone
277   TH2F *   fhPtLeadingPt[5] ;                     //! Particle Pt in the cone
278   TH2F *   fhPerpSumPtLeadingPt[5] ;              //! Sum Pt in the cone at the perpendicular phi region to trigger axis  (phi +90)
279   TH2F *   fhPerpPtLeadingPt[5];                  //! Sum Pt in the cone at the perpendicular phi region to trigger axis  (phi +90)
280
281   TH1F *   fhPtThresIsolated[5][5] ;              //! Isolated particle with pt threshold 
282   TH1F *   fhPtFracIsolated[5][5] ;               //! Isolated particle with pt threshold frac
283   TH1F *   fhPtSumIsolated[5][5] ;                //! Isolated particle with threshold on cone pt sum
284   
285   TH2F *   fhEtaPhiPtThresIso[5][5] ;             //! eta vs phi of isolated particles with pt threshold
286   TH2F *   fhEtaPhiPtThresDecayIso[5][5] ;        //! eta vs phi of isolated particles with pt threshold
287   TH1F *   fhPtPtThresDecayIso[5][5] ;            //! Number of isolated Pi0 decay particles (invariant mass tag) with pt threshold   
288   
289   TH2F *   fhEtaPhiPtFracIso[5][5] ;              //! eta vs phi of isolated particles with pt frac
290   TH2F *   fhEtaPhiPtFracDecayIso[5][5] ;         //! eta vs phi of isolated particles with pt frac
291   TH1F *   fhPtPtFracDecayIso[5][5] ;             //! Number of isolated Pi0 decay particles (invariant mass tag) with pt fra
292
293   TH2F *   fhEtaPhiPtSumIso[5][5] ;               //! eta vs phi of isolated particles with pt sum
294   TH2F *   fhEtaPhiPtSumDecayIso[5][5] ;          //! eta vs phi of isolated particles with pt sum
295   TH1F *   fhPtPtSumDecayIso[5][5] ;              //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
296   
297   TH2F *   fhEtaPhiSumDensityIso[5][5];           //! Isolated particle with threshold on cone sum density
298   TH2F *   fhEtaPhiSumDensityDecayIso[5][5];      //! Isolated particle with threshold on cone sum density
299   TH1F *   fhPtSumDensityIso[5][5];               //! Isolated particle with threshold on cone sum density
300   TH1F *   fhPtSumDensityDecayIso[5][5];          //! Isolated decay particle with threshold on cone sum density
301   
302   TH1F *   fhPtFracPtSumIso[5][5] ;               //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
303   TH1F *   fhPtFracPtSumDecayIso[5][5] ;          //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
304   TH2F *   fhEtaPhiFracPtSumIso[5][5];            //! Isolated particle with threshold on cone sum density
305   TH2F *   fhEtaPhiFracPtSumDecayIso[5][5];       //! Isolated particle with threshold on cone sum density
306  
307   // Track matching studies
308   TH2F *   fhTrackMatchedDEta[2]     ;            //! Eta distance between track and cluster vs cluster E
309   TH2F *   fhTrackMatchedDPhi[2]     ;            //! Phi distance between track and cluster vs cluster E
310   TH2F *   fhTrackMatchedDEtaDPhi[2] ;            //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
311   TH2F *   fhdEdx[2]  ;                           //! matched track dEdx vs cluster E 
312   TH2F *   fhEOverP[2];                           //! matched track E cluster over P track vs cluster E, after dEdx cut 
313   TH2F *   fhTrackMatchedMCParticle[2];           //! Trace origin of matched particle
314
315   // Shower Shape histograms
316   TH2F *   fhELambda0[2];                         //! Shower shape of (non) isolated photons (do not apply SS cut previously)
317   TH2F *   fhELambda1[2];                         //! Shower shape of (non) isolated photons (do not apply SS cut previously)
318   TH2F *   fhELambda0SSBkg;                       //! Shower shape of non isolated photons close to isolation threshold (do not apply SS cut previously)
319   TH2F *   fhELambda0TRD[2];                      //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
320   TH2F *   fhELambda1TRD[2];                      //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
321   TH2F *   fhELambda0MCPhoton[2];                 //! Shower shape of (non) isolated photon candidates originated by particle photon not decay (do not apply SS cut previously)
322   TH2F *   fhELambda0MCPi0[2];                    //! Shower shape of (non) isolated photon candidates originated by particle 2 merged pi0 photons (do not apply SS cut previously)
323   TH2F *   fhELambda0MCPi0Decay[2];               //! Shower shape of (non) isolated photon candidates originated by particle pi0 decay photon (do not apply SS cut previously)
324   TH2F *   fhELambda0MCEtaDecay[2];               //! Shower shape of (non) isolated photon candidates originated by particle eta decay photon (do not apply SS cut previously)
325   TH2F *   fhELambda0MCOtherDecay[2];             //! Shower shape of (non) isolated photon candidates originated by particle other decay photon (do not apply SS cut previously)
326   TH2F *   fhELambda0MCHadron[2];                 //! Shower shape of (non) isolated photon candidates originated by particle other hadrons (do not apply SS cut previously)
327
328   // Local maxima
329   TH2F *   fhNLocMax[2];                          //! number of maxima in selected clusters
330   TH2F *   fhELambda0LocMax1[2] ;                 //! E vs lambda0 of selected cluster, 1 local maxima in cluster 
331   TH2F *   fhELambda1LocMax1[2] ;                 //! E vs lambda1 of selected cluster, 1 local maxima in cluster 
332   TH2F *   fhELambda0LocMax2[2] ;                 //! E vs lambda0 of selected cluster, 2 local maxima in cluster 
333   TH2F *   fhELambda1LocMax2[2] ;                 //! E vs lambda1 of selected cluster, 2 local maxima in cluster
334   TH2F *   fhELambda0LocMaxN[2] ;                 //! E vs lambda0 of selected cluster, N>2 local maxima in cluster 
335   TH2F *   fhELambda1LocMaxN[2] ;                 //! E vs lambda1 of selected cluster, N>2 local maxima in cluster 
336   
337   // Pile-up
338   TH1F *   fhEIsoPileUp[7] ;                      //! Number of isolated particles
339   TH1F *   fhPtIsoPileUp[7] ;                     //! Number of isolated particles
340   TH1F *   fhENoIsoPileUp[7] ;                    //! Number of not isolated particles
341   TH1F *   fhPtNoIsoPileUp[7] ;                   //! Number of not isolated particles
342   TH2F *   fhTimeENoCut;                          //! time of cluster vs E, no cut 
343   TH2F *   fhTimeESPD;                            //! time of cluster vs E, IsSPDPileUp
344   TH2F *   fhTimeESPDMulti;                       //! time of cluster vs E, IsSPDPileUpMulti
345   TH2F *   fhTimeNPileUpVertSPD;                  //! time of cluster vs n pile-up vertices from SPD
346   TH2F *   fhTimeNPileUpVertTrack;                //! time of cluster vs n pile-up vertices from Tracks
347   TH2F *   fhTimeNPileUpVertContributors;         //! time of cluster vs n pile-up vertex from SPD contributors
348   TH2F *   fhTimePileUpMainVertexZDistance;       //! time of cluster vs difference of z main vertex and pile-up vertex 
349   TH2F *   fhTimePileUpMainVertexZDiamond;        //! time of cluster vs difference of z diamond and pile-up vertex 
350   
351   //Histograms settings
352   Int_t    fHistoNPtSumBins;                      // Number of bins in PtSum histograms
353   Float_t  fHistoPtSumMax;                        // PtSum maximum in histogram
354   Float_t  fHistoPtSumMin;                        // PtSum minimum in histogram
355   Int_t    fHistoNPtInConeBins;                   // Number of bins in PtInCone histogram
356   Float_t  fHistoPtInConeMax;                     // PtInCone maximum in histogram
357   Float_t  fHistoPtInConeMin;                     // PtInCone maximum in histogram 
358
359   AliAnaParticleIsolation(              const AliAnaParticleIsolation & iso) ; // cpy ctor
360   AliAnaParticleIsolation & operator = (const AliAnaParticleIsolation & iso) ; // cpy assignment
361   
362   ClassDef(AliAnaParticleIsolation,23)
363 } ;
364
365
366 #endif //ALIANAPARTICLEISOLATION_H
367
368
369