]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h
remove one histogram for primary not needed, case corresponds to any decay, change...
[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         CalculateCaloCellUEBand(AliAODPWG4ParticleCorrelation * pCandidate,
38                                        Float_t & etaBand, Float_t & phiBand) ;
39   void         CalculateTrackUEBand   (AliAODPWG4ParticleCorrelation * pCandidate,
40                                        Float_t & etaBand, Float_t & phiBand) ;
41   
42   void         CalculateCaloSignalInCone    (AliAODPWG4ParticleCorrelation * aodParticle, Float_t & coneptsumCluster) ;
43   void         CalculateCaloCellSignalInCone(AliAODPWG4ParticleCorrelation * aodParticle, Float_t & coneptsumCell) ;
44   void         CalculateTrackSignalInCone   (AliAODPWG4ParticleCorrelation * aodParticle, Float_t & coneptsumTrack  ) ;
45
46
47   void         CalculateNormalizeUEBandPerUnitArea(AliAODPWG4ParticleCorrelation * pCandidate,
48                                                    Float_t coneptsumCluster,       Float_t coneptsumCell,     Float_t coneptsumTrack,
49                                                    Float_t &etaBandptsumTrackNorm, Float_t &etaBandptsumClusterNorm ) ;
50   
51   TObjString * GetAnalysisCuts() ;
52   
53   TList      * GetCreateOutputObjects() ;
54   
55   void         Init() ;
56
57   void         InitParameters() ;
58   
59   void         MakeAnalysisFillAOD()  ;
60   
61   void         MakeAnalysisFillHistograms() ; 
62   
63   
64   void         Print( const Option_t * opt ) const ;
65  
66   //Analysis specific methods 
67   
68   void         FillPileUpHistograms(Int_t clusterID) ;
69   
70   void         FillAcceptanceHistograms();
71  
72   void         FillTrackMatchingShowerShapeControlHistograms(AliAODPWG4ParticleCorrelation  * pCandidate,
73                                                              Int_t mcIndex) ;
74   
75   void         MakeSeveralICAnalysis( AliAODPWG4ParticleCorrelation * ph, Int_t mcIndex ) ;
76   
77   // Analysis Setters and Getters
78   
79   TString      GetCalorimeter()                const { return fCalorimeter       ; }
80   TString      GetTriggerDetector()            const { return fIsoDetector       ; }
81   Int_t        GetNCones()                     const { return fNCones            ; }
82   Int_t        GetNPtThresFrac()               const { return fNPtThresFrac      ; }
83   Float_t      GetConeSizes(Int_t i)           const { return fConeSizes[i]      ; }
84   Float_t      GetPtThresholds(Int_t i)        const { return fPtThresholds[i]   ; }
85   Float_t      GetSumPtThresholds(Int_t i)     const { return fSumPtThresholds[i]; }
86   Float_t      GetPtFractions(Int_t i)         const { return fPtFractions[i]    ; }
87   Int_t        GetNumberOfSMCoveredByTRD()     const { return fTRDSMCovered      ; }
88   
89   Int_t        GetMCIndex(Int_t mcTag);
90   
91   void         SetCalorimeter(TString & det)         { fCalorimeter     = det    ; }
92   void         SetTriggerDetector(TString & det)     { fIsoDetector     = det    ; }
93   void         SetNCones(Int_t ncs)                  { fNCones          = ncs    ; }
94   void         SetNPtThresFrac(Int_t npt)            { fNPtThresFrac    = npt    ; }
95   void         SetConeSizes(Int_t i, Float_t r)      { fConeSizes[i]    = r      ; }
96   void         SetPtThresholds(Int_t i, Float_t pt)  { fPtThresholds[i] = pt     ; }
97   void         SetPtFractions(Int_t i, Float_t pt)   { fPtFractions[i]  = pt     ; } 
98   void         SetSumPtThresholds(Int_t i, Float_t pt){ fSumPtThresholds[i] = pt ; }
99   void         SetNumberOfSMCoveredByTRD(Int_t n)    { fTRDSMCovered    = n      ; }
100
101   Bool_t       IsReIsolationOn()               const { return fReMakeIC          ; }
102   void         SwitchOnReIsolation()                 { fReMakeIC      = kTRUE    ; }
103   void         SwitchOffReIsolation()                { fReMakeIC      = kFALSE   ; }
104   
105   Bool_t       IsSeveralIsolationOn()          const { return fMakeSeveralIC     ; }
106   void         SwitchOnSeveralIsolation()            { fMakeSeveralIC = kTRUE    ; }
107   void         SwitchOffSeveralIsolation()           { fMakeSeveralIC = kFALSE   ; }
108
109   void         SwitchOnFillPileUpHistograms()        { fFillPileUpHistograms = kTRUE  ; }
110   void         SwitchOffFillPileUpHistograms()       { fFillPileUpHistograms = kFALSE ; }    
111   
112   void         SwitchOnTMHistoFill()                 { fFillTMHisto   = kTRUE    ; }
113   void         SwitchOffTMHistoFill()                { fFillTMHisto   = kFALSE   ; }
114   
115   void         SwitchOnSSHistoFill()                 { fFillSSHisto   = kTRUE    ; }
116   void         SwitchOffSSHistoFill()                { fFillSSHisto   = kFALSE   ; }
117
118   void         SwitchOnUEBandSubtractionHistoFill()  { fFillUEBandSubtractHistograms   = kTRUE    ; }
119   void         SwitchOffUEBandSubtractionHistoFill() { fFillUEBandSubtractHistograms   = kFALSE   ; }
120
121   void         SwitchOnCellHistoFill()               { fFillCellHistograms = kTRUE ; }
122   void         SwitchOffCellHistoFill()              { fFillCellHistograms = kFALSE; }
123
124   void         SwitchOnHighMultiplicityHistoFill()   { fFillHighMultHistograms = kTRUE ; }
125   void         SwitchOffHighMultiplicityHistoFill()  { fFillHighMultHistograms = kFALSE; }
126
127   void         SwitchOnNLMHistoFill()                { fFillNLMHistograms = kTRUE ; }
128   void         SwitchOffNLMHistoFill()               { fFillNLMHistograms = kFALSE; }
129   
130   void         SwitchOnDecayTaggedHistoFill()        { fFillTaggedDecayHistograms = kTRUE ; }
131   void         SwitchOffDecayTaggedHistoFill()       { fFillTaggedDecayHistograms = kFALSE; }
132   
133   //Histogrammes setters and getters
134   
135   void         SetHistoPtSumRangeAndNBins(Float_t min, Float_t max, Int_t n)       {
136     fHistoNPtSumBins = n ;    fHistoPtSumMax = max ;    fHistoPtSumMin = min ;     }
137   
138   Int_t        GetHistoNPtSumBins()            const { return fHistoNPtSumBins   ; }
139   Float_t      GetHistoPtSumMin()              const { return fHistoPtSumMin     ; }
140   Float_t      GetHistoPtSumMax()              const { return fHistoPtSumMax     ; }
141   
142   void         SetHistoPtInConeRangeAndNBins(Float_t min, Float_t max, Int_t n)    {
143     fHistoNPtInConeBins = n ; fHistoPtInConeMax = max ; fHistoPtInConeMin = min  ; }
144   
145   Int_t        GetHistoNPtInConeBins()         const { return fHistoNPtInConeBins; }
146   Float_t      GetHistoPtInConeMin()           const { return fHistoPtInConeMin  ; }
147   Float_t      GetHistoPtInConeMax()           const { return fHistoPtInConeMax  ; }
148   
149  // For primary histograms in arrays, index in the array, corresponding to a photon origin
150   enum mcPrimTypes { kmcPrimPhoton = 0, kmcPrimPi0Decay = 1, kmcPrimOtherDecay  = 2,
151                      kmcPrimPrompt = 3, kmcPrimFrag     = 4, kmcPrimISR         = 5       } ;
152   
153   // For histograms in arrays, index in the array, corresponding to any particle origin
154   enum mcTypes     { kmcPhoton   = 0, kmcPrompt   = 1, kmcFragment   = 2,
155                      kmcPi0      = 3, kmcPi0Decay = 4, kmcEtaDecay = 5, kmcOtherDecay = 6,
156                      kmcElectron = 7, kmcHadron   = 8                                     } ;
157   
158  private:
159   
160   TString  fCalorimeter ;                         // Calorimeter where neutral particles in cone for isolation are;
161   TString  fIsoDetector ;                         // Candidate particle for isolation detector ;
162   Bool_t   fReMakeIC ;                            // Do isolation analysis
163   Bool_t   fMakeSeveralIC ;                       // Do analysis for different IC
164   Bool_t   fFillPileUpHistograms;                 // Fill pile-up related histograms
165   Bool_t   fFillTMHisto;                          // Fill track matching plots
166   Bool_t   fFillSSHisto;                          // Fill Shower shape plots
167   Bool_t   fFillUEBandSubtractHistograms;         // Fill histograms working on the UE subtraction
168   Bool_t   fFillCellHistograms;                   // Fill cell histograms
169   Bool_t   fFillHighMultHistograms;               // Fill high multiplicity histograms
170   Bool_t   fFillTaggedDecayHistograms;            // Fill histograms for clusters tagged as decay
171   Bool_t   fFillNLMHistograms;                    // Fill NLM histograms
172   Int_t    fTRDSMCovered;                         // From which SM EMCal is covered by TRD
173
174   // Analysis data members for multiple cones and pt thresholds 
175   Int_t    fNCones ;                              //! Number of cone sizes to test
176   Int_t    fNPtThresFrac ;                        //! Number of ptThres and ptFrac to test
177   
178   Float_t  fConeSizes[5] ;                        //! Array with cones to test
179   Float_t  fPtThresholds[5] ;                     //! Array with pt thresholds to test
180   Float_t  fPtFractions[5] ;                      //! Array with pt thresholds to test frac
181   Float_t  fSumPtThresholds[5] ;                  //! Array with pt thresholds to test frac
182   
183   //Histograms  
184   
185   TH1F *   fhEIso ;                               //! Number of isolated particles vs energy
186   TH1F *   fhPtIso ;                              //! Number of isolated particles vs pT
187   TH2F *   fhPtCentralityIso ;                    //! centrality vs pT
188   TH2F *   fhPtEventPlaneIso ;                    //! event plane angle vs pT
189   TH2F *   fhPtNLocMaxIso ;                       //! Number of isolated particles vs NLM in cluster
190   TH2F *   fhPhiIso ;                             //! Phi of isolated particles
191   TH2F *   fhEtaIso ;                             //! eta of isolated particles
192   TH2F *   fhEtaPhiIso ;                          //! eta vs phi of isolated particles
193   TH2F *   fhEtaPhiNoIso ;                        //! eta vs phi of not isolated leading particles
194   TH1F *   fhENoIso ;                             //! Number of not isolated leading particles vs Energy
195   TH1F *   fhPtNoIso ;                            //! Number of not isolated leading particles vs pT
196   TH2F *   fhPtNLocMaxNoIso ;                     //! Number of not isolated particles vs NLM in cluster
197   TH1F *   fhPtDecayIso ;                         //! Number of isolated Pi0 decay particles (invariant mass tag)
198   TH1F *   fhPtDecayNoIso ;                       //! Number of not isolated Pi0 decay leading particles (invariant mass tag)
199   TH2F *   fhEtaPhiDecayIso ;                     //! eta vs phi of isolated Pi0 decay particles
200   TH2F *   fhEtaPhiDecayNoIso ;                   //! eta vs phi of not isolated leading Pi0 decay particles
201
202   TH2F *   fhPtInCone ;                           //! Cluster/track Pt in the cone
203   TH2F *   fhPtClusterInCone ;                    //! Cluster Pt in the cone
204   TH2F *   fhPtCellInCone ;                       //! Cell amplitude in the cone
205   TH2F *   fhPtTrackInCone ;                      //! Track Pt in the cone
206   TH2F *   fhPtTrackInConeOtherBC ;               //! Track Pt in the cone, tracks out of main BC Time window
207   TH2F *   fhPtTrackInConeOtherBCPileUpSPD ;      //! Track Pt in the cone, tracks out of main BC Time window
208   TH2F *   fhPtTrackInConeBC0 ;                   //! Track Pt in the cone, tracks in BC=0
209   TH2F *   fhPtTrackInConeVtxBC0 ;                //! Track Pt in the cone, tracks in BC=0
210   TH2F *   fhPtTrackInConeBC0PileUpSPD ;          //! Track Pt in the cone, tracks in BC=0
211   TH2F *   fhPtInConePileUp[7] ;                  //! Particle Pt in the cone, if event is from pile-up (SPD method)
212   TH2F *   fhPtInConeCent ;                       //! Particle Pt in the cone versus centrality
213   TH2F *   fhPerpConeSumPt ;                      //! Sum Pt in cone at the perpendicular phi region to trigger axis  (phi +90)
214   TH2F *   fhPtInPerpCone ;                       //! Particle Pt  in cone at the perpendicular phi region to trigger axis  (phi +90)
215   
216   TH2F *   fhEtaPhiInConeCluster ;                //! Eta vs. phi of clusters in cone
217   TH2F *   fhEtaPhiCluster ;                      //! Eta vs. phi of all clusters
218   TH2F *   fhEtaPhiInConeTrack ;                  //! Eta vs. phi of tracks in cone
219   TH2F *   fhEtaPhiTrack ;                        //! Eta vs. phi of all tracks
220   
221   TH2F *   fhEtaBandCluster ;                     //! Accumulated pT in Eta band to estimate UE in cone, only clusters
222   TH2F *   fhPhiBandCluster ;                     //! Accumulated pT in Phi band to estimate UE in cone, only clusters
223   TH2F *   fhEtaBandTrack   ;                     //! Accumulated pT in Eta band to estimate UE in cone, only tracks
224   TH2F *   fhPhiBandTrack   ;                     //! Accumulated pT in Phi band to estimate UE in cone, only tracks
225   TH2F *   fhEtaBandCell ;                        //! Accumulated pT in Eta band to estimate UE in cone, only cells
226   TH2F *   fhPhiBandCell ;                        //! Accumulated pT in Phi band to estimate UE in cone, only cells
227
228   TH2F *   fhConeSumPt ;                          //! Cluster and tracks Sum Pt Sum Pt in the cone
229   TH2F *   fhConeSumPtCellTrack ;                 //! Cells and tracks Sum Pt Sum Pt in the cone
230   TH2F *   fhConeSumPtCell ;                      //! Cells Sum Pt Sum Pt in the cone
231   TH2F *   fhConeSumPtCluster ;                   //! Clusters Sum Pt Sum Pt in the cone
232   TH2F *   fhConeSumPtTrack ;                     //! Tracks Sum Pt Sum Pt in the cone
233   TH2F *   fhConeSumPtEtaBandUECluster;           //! Cluster Sum Pt in the eta band for clusters, before normalization
234   TH2F *   fhConeSumPtPhiBandUECluster;           //! Cluster Sum Pt in the phi band for clusters, before normalization
235   TH2F *   fhConeSumPtEtaBandUETrack;             //! Track Sum Pt in the eta band for tracks  , before normalization
236   TH2F *   fhConeSumPtPhiBandUETrack;             //! Track Sum Pt in the phi badn for tracks  , before normalization
237   TH2F *   fhConeSumPtEtaBandUECell;              //! Cell Sum amplitude in the eta band for cells, before normalization
238   TH2F *   fhConeSumPtPhiBandUECell;              //! Cell Sum amplitude in the phi band for cells, before normalization
239
240   TH2F *   fhConeSumPtTrigEtaPhi ;                //! Cluster and tracks Sum Pt Sum Pt in the cone, per eta-phi bin of trigger,
241   TH2F *   fhConeSumPtCellTrackTrigEtaPhi ;       //! Cell and tracks Sum Pt Sum Pt in the cone, per eta-phi bin of trigger,
242   TH2F *   fhConeSumPtEtaBandUEClusterTrigEtaPhi; //! Cluster Sum Pt in the eta band for clusters, per eta-phi bin of trigger,before normalization
243   TH2F *   fhConeSumPtPhiBandUEClusterTrigEtaPhi; //! Cluster Sum Pt in the phi band for clusters, per eta-phi bin of trigger, before normalization
244   TH2F *   fhConeSumPtEtaBandUETrackTrigEtaPhi;   //! Track Sum Pt in the eta band for tracks  , per eta-phi bin of trigger, before normalization
245   TH2F *   fhConeSumPtPhiBandUETrackTrigEtaPhi;   //! Track Sum Pt in the phi badn for tracks  , per eta-phi bin of trigger, before normalization
246   TH2F *   fhConeSumPtEtaBandUECellTrigEtaPhi;    //! Cluster Sum amplitude in the eta band for cells, per eta-phi bin of trigger, before normalization
247   TH2F *   fhConeSumPtPhiBandUECellTrigEtaPhi;    //! Cluster Sum amplitude in the phi band for cells, per eta-phi bin of trigger, before normalization
248   
249   TH2F *   fhConeSumPtEtaUESub;                   //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
250   TH2F *   fhConeSumPtPhiUESub;                   //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
251   TH2F *   fhConeSumPtEtaUESubTrigEtaPhi;         //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
252   TH2F *   fhConeSumPtPhiUESubTrigEtaPhi;         //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
253   
254   TH2F *   fhConeSumPtEtaUESubTrackCell;          //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
255   TH2F *   fhConeSumPtPhiUESubTrackCell;          //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
256   TH2F *   fhConeSumPtEtaUESubTrackCellTrigEtaPhi;//! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
257   TH2F *   fhConeSumPtPhiUESubTrackCellTrigEtaPhi;//! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
258   
259   TH2F *   fhConeSumPtEtaUESubCluster;            //! Cluster Sum Pt in the cone after bkg subtraction, vs pT trigger
260   TH2F *   fhConeSumPtPhiUESubCluster;            //! Cluster Sum Pt in the cone after bkg subtraction, vs pT trigger
261   TH2F *   fhConeSumPtEtaUESubClusterTrigEtaPhi;  //! Cluster Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
262   TH2F *   fhConeSumPtPhiUESubClusterTrigEtaPhi;  //! Cluster Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
263
264   TH2F *   fhConeSumPtEtaUESubCell;               //! Cell Sum amplitude in the cone after bkg subtraction, vs pT trigger
265   TH2F *   fhConeSumPtPhiUESubCell;               //! Cell Sum amplitude in the cone after bkg subtraction, vs pT trigger
266   TH2F *   fhConeSumPtEtaUESubCellTrigEtaPhi;     //! Cell Sum amplitude in the cone after bkg subtraction, vs eta-phi trigger
267   TH2F *   fhConeSumPtPhiUESubCellTrigEtaPhi;     //! Cell Sum amplitude in the cone after bkg subtraction, vs eta-phi trigger
268   
269   TH2F *   fhConeSumPtEtaUESubTrack;              //! Track Sum Pt in the cone after bkg subtraction, vs pT trigger
270   TH2F *   fhConeSumPtPhiUESubTrack;              //! Track Sum Pt in the cone after bkg subtraction, vs pT trigger
271   TH2F *   fhConeSumPtEtaUESubTrackTrigEtaPhi;    //! Track Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
272   TH2F *   fhConeSumPtPhiUESubTrackTrigEtaPhi;    //! Track Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
273   
274   TH2F *   fhFractionTrackOutConeEta;             //! Fraction of cone out of tracks acceptance in eta
275   TH2F *   fhFractionTrackOutConeEtaTrigEtaPhi;   //! Fraction of cone out of tracks acceptance in eta, vs trigger eta-phi
276   TH2F *   fhFractionClusterOutConeEta;           //! Fraction of cone out of clusters acceptance in eta
277   TH2F *   fhFractionClusterOutConeEtaTrigEtaPhi; //! Fraction of cone out of clusters acceptance in eta, vs trigger eta-phi
278   TH2F *   fhFractionClusterOutConePhi;           //! Fraction of cone out of clusters acceptance in phi
279   TH2F *   fhFractionClusterOutConePhiTrigEtaPhi; //! Fraction of cone out of clusters acceptance in phi, vs trigger eta-phi
280   
281   TH2F *   fhFractionCellOutConeEta;              //! Fraction of cone out of cells acceptance in eta
282   TH2F *   fhFractionCellOutConeEtaTrigEtaPhi;    //! Fraction of cone out of cells acceptance in eta, vs trigger eta-phi
283   TH2F *   fhFractionCellOutConePhi;              //! Fraction of cone out of cells acceptance in phi
284   TH2F *   fhFractionCellOutConePhiTrigEtaPhi;    //! Fraction of cone out of cells acceptance in phi, vs trigger eta-phi
285   
286   TH2F *   fhConeSumPtClustervsTrack ;            //! Cluster vs tracks Sum Pt Sum Pt in the cone
287   TH2F *   fhConeSumPtEtaUESubClustervsTrack ;    //! Cluster vs tracks Sum Pt Sum Pt in the cone, after subtraction in eta band
288   TH2F *   fhConeSumPtPhiUESubClustervsTrack ;    //! Cluster vs tracks Sum Pt Sum Pt in the cone, after subtraction in phi band
289   TH2F *   fhConeSumPtCellvsTrack;                //! Cell vs tracks Sum Pt Sum Pt in the cone
290   TH2F *   fhConeSumPtEtaUESubCellvsTrack ;       //! Cell vs tracks Sum Pt Sum Pt in the cone, after subtraction in eta band
291   TH2F *   fhConeSumPtPhiUESubCellvsTrack ;       //! Cell vs tracks Sum Pt Sum Pt in the cone, after subtraction in phi band
292
293   TH2F *   fhEtaBandClustervsTrack ;              //! Accumulated pT in Eta band to estimate UE in cone, clusters vs tracks
294   TH2F *   fhPhiBandClustervsTrack ;              //! Accumulated pT in Phi band to estimate UE in cone, clusters vs tracks
295   TH2F *   fhEtaBandNormClustervsTrack ;          //! Accumulated pT in Eta band to estimate UE in cone, normalized to cone size, clusters vs tracks
296   TH2F *   fhPhiBandNormClustervsTrack ;          //! Accumulated pT in Phi band to estimate UE in cone, normalized to cone size, clusters vs tracks
297   TH2F *   fhEtaBandCellvsTrack ;                 //! Accumulated pT in Eta band to estimate UE in cone, cells vs tracks
298   TH2F *   fhPhiBandCellvsTrack ;                 //! Accumulated pT in Phi band to estimate UE in cone, cells vs tracks
299   TH2F *   fhEtaBandNormCellvsTrack ;             //! Accumulated pT cell in Eta band to estimate UE in cone, normalized to cone size, clusters vs tracks
300   TH2F *   fhPhiBandNormCellvsTrack ;             //! Accumulated pT cell in Phi band to estimate UE in cone, normalized to cone
301
302   TH2F *   fhConeSumPtSubvsConeSumPtTotPhiTrack;       //! Tracks, phi band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
303   TH2F *   fhConeSumPtSubNormvsConeSumPtTotPhiTrack;   //! Tracks, phi band: sum pT in cone after bkg sub normalized by sum pT in cone before bkg sub vs sum pT in cone before bkg sub
304   TH2F *   fhConeSumPtSubvsConeSumPtTotEtaTrack;       //! Tracks, eta band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
305   TH2F *   fhConeSumPtSubNormvsConeSumPtTotEtaTrack;   //! Tracks, eta band: sum pT in cone after bkg sub normalized by sum pT in cone before bkg sub vs sum pT in cone before bkg sub
306   TH2F *   fhConeSumPtSubvsConeSumPtTotPhiCluster;     //! Clusters, phi band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
307   TH2F *   fhConeSumPtSubNormvsConeSumPtTotPhiCluster; //! Clusters, phi band: sum pT in cone after bkg sub normalized by sum pT in cone before bkg sub vs sum pT in cone before bkg sub
308   TH2F *   fhConeSumPtSubvsConeSumPtTotEtaCluster;     //! Clusters, eta band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
309   TH2F *   fhConeSumPtSubNormvsConeSumPtTotEtaCluster; //! Clusters, eta band: sum pT in cone after bkg sub normalized by sum pT in cone before bkg sub vs sum pT in cone before bkg sub
310   TH2F *   fhConeSumPtSubvsConeSumPtTotPhiCell;        //! Cells, phi band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
311   TH2F *   fhConeSumPtSubNormvsConeSumPtTotPhiCell;    //! Cells, phi band: sum pT in cone after bkg sub normalized by sum pT in cone before bkg sub vs sum pT in cone before bkg sub
312   TH2F *   fhConeSumPtSubvsConeSumPtTotEtaCell;        //! Cells, eta band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
313   TH2F *   fhConeSumPtSubNormvsConeSumPtTotEtaCell;    //! Cells, eta band: sum pT in cone after bkg sub normalized by sum pT in cone before bkg sub vs sum pT in cone before bkg sub
314   TH2F *   fhConeSumPtVSUETracksEtaBand;               //! fhConeSumPtVSUETracksEtaBand
315   TH2F *   fhConeSumPtVSUETracksPhiBand;               //! fhConeSumPtVSUETracksPhiBand
316   TH2F *   fhConeSumPtVSUEClusterEtaBand;              //! fhConeSumPtVSUEClusterEtaBand
317   TH2F *   fhConeSumPtVSUEClusterPhiBand;              //! fhConeSumPtVSUEClusterPhiBand
318   
319   //MC
320   //
321   TH2F *   fhEtaPrimMC  [6];                      //! Pt vs Eta of generated photon
322   TH2F *   fhPhiPrimMC  [6];                      //! Pt vs Phi of generated photon
323   TH1F *   fhEPrimMC    [6];                      //! Number of generated photon vs E
324   TH1F *   fhPtPrimMCiso[6];                      //! Number of generated isolated photon vs pT
325   
326   TH1F *   fhPtNoIsoMC[9];                        //! Number of not isolated mcTypes particle
327   TH1F *   fhPtIsoMC  [9];                        //! Number of isolated mcTypes particle
328   TH2F *   fhPhiIsoMC [9];                        //! Phi of isolated mcTypes particle
329   TH2F *   fhEtaIsoMC [9];                        //! eta of isolated mcTypes particle
330   TH1F *   fhPtThresIsolatedMC[9][5][5];          //! Isolated mcTypes particle with pt threshold
331   TH1F *   fhPtFracIsolatedMC [9][5][5];          //! Isolated mcTypes particle with pt frac
332   TH2F *   fhPtSumIsolatedMC  [9][5];             //! Isolated mcTypes particle with threshold on cone pt sum
333   
334   TH2F *   fhPtLambda0MC[9][2];                    //! Shower shape of (non) isolated candidates originated by mcTypes particle (do not apply SS cut previously)
335   //
336   
337   TH2F *   fhSumPtLeadingPt[5] ;                  //! Sum Pt in the cone
338   TH2F *   fhPtLeadingPt[5] ;                     //! Particle Pt in the cone
339   TH2F *   fhPerpSumPtLeadingPt[5] ;              //! Sum Pt in the cone at the perpendicular phi region to trigger axis  (phi +90)
340   TH2F *   fhPerpPtLeadingPt[5];                  //! Sum Pt in the cone at the perpendicular phi region to trigger axis  (phi +90)
341
342   TH1F *   fhPtThresIsolated[5][5] ;              //! Isolated particle with pt threshold 
343   TH1F *   fhPtFracIsolated[5][5] ;               //! Isolated particle with pt threshold frac
344   TH1F *   fhPtSumIsolated[5][5] ;                //! Isolated particle with threshold on cone pt sum
345   
346   TH2F *   fhEtaPhiPtThresIso[5][5] ;             //! eta vs phi of isolated particles with pt threshold
347   TH2F *   fhEtaPhiPtThresDecayIso[5][5] ;        //! eta vs phi of isolated particles with pt threshold
348   TH1F *   fhPtPtThresDecayIso[5][5] ;            //! Number of isolated Pi0 decay particles (invariant mass tag) with pt threshold   
349   
350   TH2F *   fhEtaPhiPtFracIso[5][5] ;              //! eta vs phi of isolated particles with pt frac
351   TH2F *   fhEtaPhiPtFracDecayIso[5][5] ;         //! eta vs phi of isolated particles with pt frac
352   TH1F *   fhPtPtFracDecayIso[5][5] ;             //! Number of isolated Pi0 decay particles (invariant mass tag) with pt fra
353
354   TH2F *   fhEtaPhiPtSumIso[5][5] ;               //! eta vs phi of isolated particles with pt sum
355   TH2F *   fhEtaPhiPtSumDecayIso[5][5] ;          //! eta vs phi of isolated particles with pt sum
356   TH1F *   fhPtPtSumDecayIso[5][5] ;              //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
357   
358   TH2F *   fhEtaPhiSumDensityIso[5][5];           //! Isolated particle with threshold on cone sum density
359   TH2F *   fhEtaPhiSumDensityDecayIso[5][5];      //! Isolated particle with threshold on cone sum density
360   TH1F *   fhPtSumDensityIso[5][5];               //! Isolated particle with threshold on cone sum density
361   TH1F *   fhPtSumDensityDecayIso[5][5];          //! Isolated decay particle with threshold on cone sum density
362   
363   TH1F *   fhPtFracPtSumIso[5][5] ;               //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
364   TH1F *   fhPtFracPtSumDecayIso[5][5] ;          //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
365   TH2F *   fhEtaPhiFracPtSumIso[5][5];            //! Isolated particle with threshold on cone sum density
366   TH2F *   fhEtaPhiFracPtSumDecayIso[5][5];       //! Isolated particle with threshold on cone sum density
367  
368   // Track matching studies
369   TH2F *   fhTrackMatchedDEta[2]     ;            //! Eta distance between track and cluster vs cluster E
370   TH2F *   fhTrackMatchedDPhi[2]     ;            //! Phi distance between track and cluster vs cluster E
371   TH2F *   fhTrackMatchedDEtaDPhi[2] ;            //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
372   TH2F *   fhdEdx[2]  ;                           //! matched track dEdx vs cluster E 
373   TH2F *   fhEOverP[2];                           //! matched track E cluster over P track vs cluster E, after dEdx cut 
374   TH2F *   fhTrackMatchedMCParticle[2];           //! Trace origin of matched particle
375
376   // Shower Shape histograms
377   TH2F *   fhELambda0[2];                         //! Shower shape of (non) isolated photons (do not apply SS cut previously)  
378   TH2F *   fhPtLambda0[2];                        //! Shower shape of (non) isolated photons (do not apply SS cut previously)
379   TH2F *   fhELambda1[2];                         //! Shower shape of (non) isolated photons (do not apply SS cut previously)
380   TH2F *   fhELambda0TRD[2];                      //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
381   TH2F *   fhPtLambda0TRD[2];                     //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
382   TH2F *   fhELambda1TRD[2];                      //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
383
384   // Local maxima
385   TH2F *   fhNLocMax[2];                          //! number of maxima in selected clusters
386   TH2F *   fhELambda0LocMax1[2] ;                 //! E vs lambda0 of selected cluster, 1 local maxima in cluster 
387   TH2F *   fhELambda1LocMax1[2] ;                 //! E vs lambda1 of selected cluster, 1 local maxima in cluster 
388   TH2F *   fhELambda0LocMax2[2] ;                 //! E vs lambda0 of selected cluster, 2 local maxima in cluster 
389   TH2F *   fhELambda1LocMax2[2] ;                 //! E vs lambda1 of selected cluster, 2 local maxima in cluster
390   TH2F *   fhELambda0LocMaxN[2] ;                 //! E vs lambda0 of selected cluster, N>2 local maxima in cluster 
391   TH2F *   fhELambda1LocMaxN[2] ;                 //! E vs lambda1 of selected cluster, N>2 local maxima in cluster 
392   
393   // Pile-up
394   TH1F *   fhEIsoPileUp[7] ;                      //! Number of isolated particles
395   TH1F *   fhPtIsoPileUp[7] ;                     //! Number of isolated particles
396   TH1F *   fhENoIsoPileUp[7] ;                    //! Number of not isolated particles
397   TH1F *   fhPtNoIsoPileUp[7] ;                   //! Number of not isolated particles
398   TH2F *   fhTimeENoCut;                          //! time of cluster vs E, no cut 
399   TH2F *   fhTimeESPD;                            //! time of cluster vs E, IsSPDPileUp
400   TH2F *   fhTimeESPDMulti;                       //! time of cluster vs E, IsSPDPileUpMulti
401   TH2F *   fhTimeNPileUpVertSPD;                  //! time of cluster vs n pile-up vertices from SPD
402   TH2F *   fhTimeNPileUpVertTrack;                //! time of cluster vs n pile-up vertices from Tracks
403   TH2F *   fhTimeNPileUpVertContributors;         //! time of cluster vs n pile-up vertex from SPD contributors
404   TH2F *   fhTimePileUpMainVertexZDistance;       //! time of cluster vs difference of z main vertex and pile-up vertex 
405   TH2F *   fhTimePileUpMainVertexZDiamond;        //! time of cluster vs difference of z diamond and pile-up vertex 
406   
407   //Histograms settings
408   Int_t    fHistoNPtSumBins;                      // Number of bins in PtSum histograms
409   Float_t  fHistoPtSumMax;                        // PtSum maximum in histogram
410   Float_t  fHistoPtSumMin;                            // PtSum minimum in histogram
411   Int_t    fHistoNPtInConeBins;                   // Number of bins in PtInCone histogram
412   Float_t  fHistoPtInConeMax;                     // PtInCone maximum in histogram
413   Float_t  fHistoPtInConeMin;                     // PtInCone maximum in histogram 
414
415   AliAnaParticleIsolation(              const AliAnaParticleIsolation & iso) ; // cpy ctor
416   AliAnaParticleIsolation & operator = (const AliAnaParticleIsolation & iso) ; // cpy assignment
417   
418   ClassDef(AliAnaParticleIsolation,26)
419 } ;
420
421
422 #endif //ALIANAPARTICLEISOLATION_H
423
424
425