]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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 class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
27
28  public:   
29   AliAnaParticleIsolation() ; // default ctor
30   virtual ~AliAnaParticleIsolation() { ; } //virtual dtor
31
32   // Main general methods
33     
34   void         CalculateCaloUEBand    (AliAODPWG4ParticleCorrelation * pCandidate,
35                                        Float_t & etaBand, Float_t & phiBand) ;
36   void         CalculateCaloCellUEBand(AliAODPWG4ParticleCorrelation * pCandidate,
37                                        Float_t & etaBand, Float_t & phiBand) ;
38   void         CalculateTrackUEBand   (AliAODPWG4ParticleCorrelation * pCandidate,
39                                        Float_t & etaBand, Float_t & phiBand) ;
40   
41   void         CalculateCaloSignalInCone    (AliAODPWG4ParticleCorrelation * aodParticle, Float_t & coneptsumCluster, Float_t & coneptLeadCluster) ;
42   void         CalculateCaloCellSignalInCone(AliAODPWG4ParticleCorrelation * aodParticle, Float_t & coneptsumCell) ;
43   void         CalculateTrackSignalInCone   (AliAODPWG4ParticleCorrelation * aodParticle, Float_t & coneptsumTrack  , Float_t & coneptLeadTrack  ) ;
44
45
46   void         CalculateNormalizeUEBandPerUnitArea(AliAODPWG4ParticleCorrelation * pCandidate,
47                                                    Float_t coneptsumCluster,       Float_t coneptsumCell,     Float_t coneptsumTrack,
48                                                    Float_t &etaBandptsumTrackNorm, Float_t &etaBandptsumClusterNorm ) ;
49   
50   TObjString * GetAnalysisCuts() ;
51   
52   TList      * GetCreateOutputObjects() ;
53   
54   void         Init() ;
55
56   void         InitParameters() ;
57   
58   void         MakeAnalysisFillAOD()  ;
59   
60   void         MakeAnalysisFillHistograms() ; 
61   
62   
63   void         Print( const Option_t * opt ) const ;
64  
65   //Analysis specific methods 
66   
67   void         FillPileUpHistograms(Float_t energy, Float_t time) ; //Int_t clusterID) ;
68   
69   void         FillAcceptanceHistograms();
70  
71   void         FillTrackMatchingShowerShapeControlHistograms(AliAODPWG4ParticleCorrelation  * pCandidate,
72                                                              Float_t coneptsum, Float_t coneleadpt, Int_t mcIndex) ;
73   
74   Bool_t       IsTriggerTheNearSideEventLeadingParticle(Int_t & idLeading);
75   
76   void         MakeSeveralICAnalysis( AliAODPWG4ParticleCorrelation * ph, Int_t mcIndex ) ;
77   
78   // Analysis Setters and Getters
79   
80   TString      GetTriggerDetectorString()      const { return fIsoDetectorString ; }
81   TString      GetTriggerDetector()            const { return fIsoDetector       ; }
82   Int_t        GetNCones()                     const { return fNCones            ; }
83   Int_t        GetNPtThresFrac()               const { return fNPtThresFrac      ; }
84   Float_t      GetConeSizes(Int_t i)           const { return fConeSizes[i]      ; }
85   Float_t      GetPtThresholds(Int_t i)        const { return fPtThresholds[i]   ; }
86   Float_t      GetSumPtThresholds(Int_t i)     const { return fSumPtThresholds[i]; }
87   Float_t      GetPtFractions(Int_t i)         const { return fPtFractions[i]    ; }
88   
89   Int_t        GetMCIndex(Int_t mcTag);
90   
91   void         SetTriggerDetector(TString & det)     ;
92   void         SetTriggerDetector(Int_t  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
100   void         SetMinCellsAngleOverlap(Float_t n)    { fMinCellsAngleOverlap = n ; }
101   
102   Bool_t       IsReIsolationOn()               const { return fReMakeIC          ; }
103   void         SwitchOnReIsolation()                 { fReMakeIC      = kTRUE    ; }
104   void         SwitchOffReIsolation()                { fReMakeIC      = kFALSE   ; }
105   
106   Bool_t       IsSeveralIsolationOn()          const { return fMakeSeveralIC     ; }
107   void         SwitchOnSeveralIsolation()            { fMakeSeveralIC = kTRUE    ; }
108   void         SwitchOffSeveralIsolation()           { fMakeSeveralIC = kFALSE   ; }
109   
110   void         SwitchOnTMHistoFill()                 { fFillTMHisto   = kTRUE    ; }
111   void         SwitchOffTMHistoFill()                { fFillTMHisto   = kFALSE   ; }
112   
113   void         SwitchOnSSHistoFill()                 { fFillSSHisto   = kTRUE    ; }
114   void         SwitchOffSSHistoFill()                { fFillSSHisto   = kFALSE   ; }
115
116   Bool_t       IsLeadingOnlyOn()               const { return fLeadingOnly       ; }
117   void         SwitchOnLeadingOnly()                 { fLeadingOnly    = kTRUE   ; }
118   void         SwitchOffLeadingOnly()                { fLeadingOnly    = kFALSE  ; }
119   
120   void         SwitchOnCheckNeutralClustersForLeading() { fCheckLeadingWithNeutralClusters = kTRUE  ; }
121   void         SwitchOffCheckNeutralClustersForLeading(){ fCheckLeadingWithNeutralClusters = kFALSE ; }
122   
123   void         SwitchOnUEBandSubtractionHistoFill()  { fFillUEBandSubtractHistograms   = kTRUE    ; }
124   void         SwitchOffUEBandSubtractionHistoFill() { fFillUEBandSubtractHistograms   = kFALSE   ; }
125
126   void         SwitchOnCellHistoFill()               { fFillCellHistograms = kTRUE ; }
127   void         SwitchOffCellHistoFill()              { fFillCellHistograms = kFALSE; }
128
129   void         SwitchOnNLMHistoFill()                { fFillNLMHistograms = kTRUE ; }
130   void         SwitchOffNLMHistoFill()               { fFillNLMHistograms = kFALSE; }
131   
132   void         SwitchOnDecayTaggedHistoFill()        { fFillTaggedDecayHistograms = kTRUE ; }
133   void         SwitchOffDecayTaggedHistoFill()       { fFillTaggedDecayHistograms = kFALSE; }
134   void         SetNDecayBits(Int_t n)                { fNDecayBits = n               ; }
135   void         SetDecayBits(Int_t i, UInt_t bit)     { if(i < 4) fDecayBits[i] = bit ; }
136   
137   void         SwitchOnBackgroundBinHistoFill()      { fFillBackgroundBinHistograms = kTRUE ; }
138   void         SwitchOffBackgroundBinHistoFill()     { fFillBackgroundBinHistograms = kFALSE; }
139   void         SetNBackgroundBins(Int_t n)           { if(n < 19) fNBkgBin = n ; }
140   void         SetBackgroundLimits(Int_t i,Float_t l){ if(i <= fNBkgBin) fBkgBinLimit[i] = l; }
141
142   void         SwitchOnPtTrigBinHistoFill()          { fFillPtTrigBinHistograms = kTRUE ; }
143   void         SwitchOffPtTrigBinHistoFill()         { fFillPtTrigBinHistograms = kFALSE; }
144   void         SetNPtTrigBins(Int_t n)               { if(n < 19) fNPtTrigBin = n ; }
145   void         SetPtTrigLimits(Int_t i,Float_t l)    { if(i <= fNPtTrigBin) fPtTrigBinLimit[i] = l; }
146
147   void         SwitchOnPrimariesInConeSelection()    { fSelectPrimariesInCone = kTRUE ; }
148   void         SwitchOffPrimariesInConeSelection()   { fSelectPrimariesInCone = kFALSE; }
149
150   void         SwitchOnPrimariesPi0DecayStudy()      { fMakePrimaryPi0DecayStudy = kTRUE ; }
151   void         SwitchOffPrimariesPi0DecayStudy()     { fMakePrimaryPi0DecayStudy = kFALSE; }
152   
153   // For primary histograms in arrays, index in the array, corresponding to a photon origin
154   enum mcPrimTypes { kmcPrimPhoton = 0, kmcPrimPi0Decay = 1, kmcPrimOtherDecay  = 2,
155                      kmcPrimPrompt = 3, kmcPrimFrag     = 4, kmcPrimISR         = 5, kmcPrimPi0 = 6 } ;
156   static const Int_t fgkNmcPrimTypes = 7;
157   
158   // For histograms in arrays, index in the array, corresponding to any particle origin
159   enum mcTypes     { kmcPhoton   = 0, kmcPrompt     = 1, kmcFragment         = 2,
160                      kmcPi0      = 3, kmcPi0Decay   = 4, kmcPi0DecayLostPair = 5,
161                      kmcEtaDecay = 6, kmcOtherDecay = 7,
162                      kmcElectron = 8, kmcHadron     = 9                          } ;
163   static const Int_t fgkNmcTypes = 10;
164
165  private:
166   
167   Int_t    fIsoDetector ;                         // Candidate particle for isolation detector ;
168   TString  fIsoDetectorString ;                   // Candidate particle for isolation detector ;
169   Bool_t   fReMakeIC ;                            // Do isolation analysis
170   Bool_t   fMakeSeveralIC ;                       // Do analysis for different IC
171   Bool_t   fFillTMHisto;                          // Fill track matching plots
172   Bool_t   fFillSSHisto;                          // Fill Shower shape plots
173   Bool_t   fFillUEBandSubtractHistograms;         // Fill histograms working on the UE subtraction
174   Bool_t   fFillCellHistograms;                   // Fill cell histograms
175   Bool_t   fFillTaggedDecayHistograms;            // Fill histograms for clusters tagged as decay
176   Int_t    fNDecayBits ;                          // in case of study of decay triggers, select the decay bit
177   UInt_t   fDecayBits[4] ;                        // in case of study of decay triggers, select the decay bit
178   Bool_t   fFillNLMHistograms;                    // Fill NLM histograms
179   Bool_t   fLeadingOnly;                          // Do isolation with leading particle
180   Bool_t   fCheckLeadingWithNeutralClusters;      // Compare the trigger candidate to Leading pT with the clusters pT, by default only charged
181   Bool_t   fSelectPrimariesInCone;                // In primary particle isolation studies, select only particles in isolation cone within detector acceptance and E cut.
182   Bool_t   fMakePrimaryPi0DecayStudy;             // Fill dedicated histograms for primary decay photons
183   
184   Bool_t   fFillBackgroundBinHistograms;          // Fill histograms for different bins in pt content of the cone
185   Int_t    fNBkgBin;                              // Number of bins on pt content in cone
186   Float_t  fBkgBinLimit[20];                      // Pt bin limits on pt content in the cone
187
188   Bool_t   fFillPtTrigBinHistograms;              // Fill histograms for different bins in pt trigger
189   Int_t    fNPtTrigBin;                           // Number of bins on pt trigger
190   Float_t  fPtTrigBinLimit[20];                   // Pt bin limits on pt trigger
191   
192   Float_t  fMinCellsAngleOverlap;                 // Number of cells that define the cluster overlap
193   
194   // Analysis data members for multiple cones and pt thresholds
195   Int_t    fNCones ;                              //! Number of cone sizes to test
196   Int_t    fNPtThresFrac ;                        //! Number of ptThres and ptFrac to test
197   
198   Float_t  fConeSizes[5] ;                        //! Array with cones to test
199   Float_t  fPtThresholds[5] ;                     //! Array with pt thresholds to test
200   Float_t  fPtFractions[5] ;                      //! Array with pt thresholds to test frac
201   Float_t  fSumPtThresholds[5] ;                  //! Array with pt thresholds to test frac
202   
203   TLorentzVector fMomentum;                       //! Temporary vector, avoid creation per event
204   TLorentzVector fMomIso;                         //! Temporary vector, avoid creation per event
205   TLorentzVector fMomDaugh1;                      //! Temporary vector, avoid creation per event
206   TLorentzVector fMomDaugh2;                      //! Temporary vector, avoid creation per event
207   TVector3       fTrackVector;                    //! Temporary vector, avoid creation per event
208   
209   //Histograms  
210   
211   TH1F *   fhEIso ;                               //! Number of isolated particles vs energy
212   TH1F *   fhPtIso ;                              //! Number of isolated particles vs pT
213   TH2F *   fhPtCentralityIso ;                    //! centrality vs pT
214   TH2F *   fhPtEventPlaneIso ;                    //! event plane angle vs pT
215   TH2F *   fhPtNLocMaxIso ;                       //! Number of isolated particles vs NLM in cluster
216   TH2F *   fhPhiIso ;                             //! Phi of isolated particles
217   TH2F *   fhEtaIso ;                             //! eta of isolated particles
218   TH2F *   fhEtaPhiIso ;                          //! eta vs phi of isolated particles
219   TH2F *   fhEtaPhiNoIso ;                        //! eta vs phi of not isolated leading particles
220   TH1F *   fhENoIso ;                             //! Number of not isolated leading particles vs Energy
221   TH1F *   fhPtNoIso ;                            //! Number of not isolated leading particles vs pT
222   TH2F *   fhPtNLocMaxNoIso ;                     //! Number of not isolated particles vs NLM in cluster
223   TH1F *   fhPtDecay[2][4] ;                      //! Number of (non) isolated Pi0 decay particles (invariant mass tag)
224   TH2F *   fhEtaPhiDecay[2][4] ;                  //! eta vs phi of (not) isolated leading Pi0 decay particles
225   TH2F *   fhPtLambda0Decay[2][4];                //! Shower shape of (non) isolated leading Pi0 decay particles (do not apply SS cut previously)
226
227   TH2F *   fhPtInCone ;                           //! Cluster/track Pt in the cone
228   TH2F *   fhPtClusterInCone ;                    //! Cluster Pt in the cone
229   TH2F *   fhPtCellInCone ;                       //! Cell amplitude in the cone
230   TH2F *   fhPtTrackInCone ;                      //! Track Pt in the cone
231   TH2F *   fhPtTrackInConeOtherBC ;               //! Track Pt in the cone, tracks out of main BC Time window
232   TH2F *   fhPtTrackInConeOtherBCPileUpSPD ;      //! Track Pt in the cone, tracks out of main BC Time window
233   TH2F *   fhPtTrackInConeBC0 ;                   //! Track Pt in the cone, tracks in BC=0
234   TH2F *   fhPtTrackInConeVtxBC0 ;                //! Track Pt in the cone, tracks in BC=0
235   TH2F *   fhPtTrackInConeBC0PileUpSPD ;          //! Track Pt in the cone, tracks in BC=0
236   TH2F *   fhPtInConePileUp[7] ;                  //! Particle Pt in the cone, if event is from pile-up (SPD method)
237   TH2F *   fhPtInConeCent ;                       //! Particle Pt in the cone versus centrality
238   TH2F *   fhPerpConeSumPt ;                      //! Sum Pt in cone at the perpendicular phi region to trigger axis  (phi +90)
239   TH2F *   fhPtInPerpCone ;                       //! Particle Pt  in cone at the perpendicular phi region to trigger axis  (phi +90)
240   
241   TH2F *   fhEtaPhiInConeCluster ;                //! Eta vs. phi of clusters in cone
242   TH2F *   fhEtaPhiCluster ;                      //! Eta vs. phi of all clusters
243   TH2F *   fhEtaPhiInConeTrack ;                  //! Eta vs. phi of tracks in cone
244   TH2F *   fhEtaPhiTrack ;                        //! Eta vs. phi of all tracks
245   
246   TH2F *   fhEtaBandCluster ;                     //! Accumulated pT in Eta band to estimate UE in cone, only clusters
247   TH2F *   fhPhiBandCluster ;                     //! Accumulated pT in Phi band to estimate UE in cone, only clusters
248   TH2F *   fhEtaBandTrack   ;                     //! Accumulated pT in Eta band to estimate UE in cone, only tracks
249   TH2F *   fhPhiBandTrack   ;                     //! Accumulated pT in Phi band to estimate UE in cone, only tracks
250   TH2F *   fhEtaBandCell ;                        //! Accumulated pT in Eta band to estimate UE in cone, only cells
251   TH2F *   fhPhiBandCell ;                        //! Accumulated pT in Phi band to estimate UE in cone, only cells
252
253   TH2F *   fhConePtLead ;                         //! Cluster and tracks leading pt in the cone
254   TH2F *   fhConePtLeadCluster ;                  //! Clusters leading pt in the cone
255   TH2F *   fhConePtLeadTrack ;                    //! Tracks leading pt in the cone
256   TH2F *   fhConePtLeadClustervsTrack;            //! Tracks vs Clusters leading pt
257   TH2F *   fhConePtLeadClusterTrackFrac;          //! Trigger pt vs cluster/track leading pt
258   
259   TH2F *   fhConeSumPt ;                          //! Cluster and tracks Sum Pt Sum Pt in the cone
260   TH2F *   fhConeSumPtCellTrack ;                 //! Cells and tracks Sum Pt Sum Pt in the cone
261   TH2F *   fhConeSumPtCell ;                      //! Cells Sum Pt Sum Pt in the cone
262   TH2F *   fhConeSumPtCluster ;                   //! Clusters Sum Pt Sum Pt in the cone
263   TH2F *   fhConeSumPtTrack ;                     //! Tracks Sum Pt Sum Pt in the cone
264   TH2F *   fhConeSumPtEtaBandUECluster;           //! Cluster Sum Pt in the eta band for clusters, before normalization
265   TH2F *   fhConeSumPtPhiBandUECluster;           //! Cluster Sum Pt in the phi band for clusters, before normalization
266   TH2F *   fhConeSumPtEtaBandUETrack;             //! Track Sum Pt in the eta band for tracks  , before normalization
267   TH2F *   fhConeSumPtPhiBandUETrack;             //! Track Sum Pt in the phi badn for tracks  , before normalization
268   TH2F *   fhConeSumPtEtaBandUECell;              //! Cell Sum amplitude in the eta band for cells, before normalization
269   TH2F *   fhConeSumPtPhiBandUECell;              //! Cell Sum amplitude in the phi band for cells, before normalization
270
271   TH2F *   fhConeSumPtTrigEtaPhi ;                //! Cluster and tracks Sum Pt Sum Pt in the cone, per eta-phi bin of trigger,
272   TH2F *   fhConeSumPtCellTrackTrigEtaPhi ;       //! Cell and tracks Sum Pt Sum Pt in the cone, per eta-phi bin of trigger,
273   TH2F *   fhConeSumPtEtaBandUEClusterTrigEtaPhi; //! Cluster Sum Pt in the eta band for clusters, per eta-phi bin of trigger,before normalization
274   TH2F *   fhConeSumPtPhiBandUEClusterTrigEtaPhi; //! Cluster Sum Pt in the phi band for clusters, per eta-phi bin of trigger, before normalization
275   TH2F *   fhConeSumPtEtaBandUETrackTrigEtaPhi;   //! Track Sum Pt in the eta band for tracks  , per eta-phi bin of trigger, before normalization
276   TH2F *   fhConeSumPtPhiBandUETrackTrigEtaPhi;   //! Track Sum Pt in the phi badn for tracks  , per eta-phi bin of trigger, before normalization
277   TH2F *   fhConeSumPtEtaBandUECellTrigEtaPhi;    //! Cluster Sum amplitude in the eta band for cells, per eta-phi bin of trigger, before normalization
278   TH2F *   fhConeSumPtPhiBandUECellTrigEtaPhi;    //! Cluster Sum amplitude in the phi band for cells, per eta-phi bin of trigger, before normalization
279   
280   TH2F *   fhConeSumPtEtaUESub;                   //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
281   TH2F *   fhConeSumPtPhiUESub;                   //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
282   TH2F *   fhConeSumPtEtaUESubTrigEtaPhi;         //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
283   TH2F *   fhConeSumPtPhiUESubTrigEtaPhi;         //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
284   
285   TH2F *   fhConeSumPtEtaUESubTrackCell;          //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
286   TH2F *   fhConeSumPtPhiUESubTrackCell;          //! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs pT trigger
287   TH2F *   fhConeSumPtEtaUESubTrackCellTrigEtaPhi;//! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
288   TH2F *   fhConeSumPtPhiUESubTrackCellTrigEtaPhi;//! Cluster and tracks Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
289   
290   TH2F *   fhConeSumPtEtaUESubCluster;            //! Cluster Sum Pt in the cone after bkg subtraction, vs pT trigger
291   TH2F *   fhConeSumPtPhiUESubCluster;            //! Cluster Sum Pt in the cone after bkg subtraction, vs pT trigger
292   TH2F *   fhConeSumPtEtaUESubClusterTrigEtaPhi;  //! Cluster Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
293   TH2F *   fhConeSumPtPhiUESubClusterTrigEtaPhi;  //! Cluster Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
294
295   TH2F *   fhConeSumPtEtaUESubCell;               //! Cell Sum amplitude in the cone after bkg subtraction, vs pT trigger
296   TH2F *   fhConeSumPtPhiUESubCell;               //! Cell Sum amplitude in the cone after bkg subtraction, vs pT trigger
297   TH2F *   fhConeSumPtEtaUESubCellTrigEtaPhi;     //! Cell Sum amplitude in the cone after bkg subtraction, vs eta-phi trigger
298   TH2F *   fhConeSumPtPhiUESubCellTrigEtaPhi;     //! Cell Sum amplitude in the cone after bkg subtraction, vs eta-phi trigger
299   
300   TH2F *   fhConeSumPtEtaUESubTrack;              //! Track Sum Pt in the cone after bkg subtraction, vs pT trigger
301   TH2F *   fhConeSumPtPhiUESubTrack;              //! Track Sum Pt in the cone after bkg subtraction, vs pT trigger
302   TH2F *   fhConeSumPtEtaUESubTrackTrigEtaPhi;    //! Track Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
303   TH2F *   fhConeSumPtPhiUESubTrackTrigEtaPhi;    //! Track Sum Pt in the cone after bkg subtraction, vs eta-phi trigger
304   
305   TH2F *   fhFractionTrackOutConeEta;             //! Fraction of cone out of tracks acceptance in eta
306   TH2F *   fhFractionTrackOutConeEtaTrigEtaPhi;   //! Fraction of cone out of tracks acceptance in eta, vs trigger eta-phi
307   TH2F *   fhFractionClusterOutConeEta;           //! Fraction of cone out of clusters acceptance in eta
308   TH2F *   fhFractionClusterOutConeEtaTrigEtaPhi; //! Fraction of cone out of clusters acceptance in eta, vs trigger eta-phi
309   TH2F *   fhFractionClusterOutConePhi;           //! Fraction of cone out of clusters acceptance in phi
310   TH2F *   fhFractionClusterOutConePhiTrigEtaPhi; //! Fraction of cone out of clusters acceptance in phi, vs trigger eta-phi
311   
312   TH2F *   fhFractionCellOutConeEta;              //! Fraction of cone out of cells acceptance in eta
313   TH2F *   fhFractionCellOutConeEtaTrigEtaPhi;    //! Fraction of cone out of cells acceptance in eta, vs trigger eta-phi
314   TH2F *   fhFractionCellOutConePhi;              //! Fraction of cone out of cells acceptance in phi
315   TH2F *   fhFractionCellOutConePhiTrigEtaPhi;    //! Fraction of cone out of cells acceptance in phi, vs trigger eta-phi
316   
317   TH2F *   fhConeSumPtClustervsTrack ;            //! Cluster vs tracks Sum Pt Sum Pt in the cone
318   TH2F *   fhConeSumPtClusterTrackFrac ;          //! Cluster / tracks Sum Pt Sum Pt in the cone
319   TH2F *   fhConeSumPtEtaUESubClustervsTrack ;    //! Cluster vs tracks Sum Pt Sum Pt in the cone, after subtraction in eta band
320   TH2F *   fhConeSumPtPhiUESubClustervsTrack ;    //! Cluster vs tracks Sum Pt Sum Pt in the cone, after subtraction in phi band
321   TH2F *   fhConeSumPtCellvsTrack;                //! Cell vs tracks Sum Pt Sum Pt in the cone
322   TH2F *   fhConeSumPtEtaUESubCellvsTrack ;       //! Cell vs tracks Sum Pt Sum Pt in the cone, after subtraction in eta band
323   TH2F *   fhConeSumPtPhiUESubCellvsTrack ;       //! Cell vs tracks Sum Pt Sum Pt in the cone, after subtraction in phi band
324
325   TH2F *   fhEtaBandClustervsTrack ;              //! Accumulated pT in Eta band to estimate UE in cone, clusters vs tracks
326   TH2F *   fhPhiBandClustervsTrack ;              //! Accumulated pT in Phi band to estimate UE in cone, clusters vs tracks
327   TH2F *   fhEtaBandNormClustervsTrack ;          //! Accumulated pT in Eta band to estimate UE in cone, normalized to cone size, clusters vs tracks
328   TH2F *   fhPhiBandNormClustervsTrack ;          //! Accumulated pT in Phi band to estimate UE in cone, normalized to cone size, clusters vs tracks
329   TH2F *   fhEtaBandCellvsTrack ;                 //! Accumulated pT in Eta band to estimate UE in cone, cells vs tracks
330   TH2F *   fhPhiBandCellvsTrack ;                 //! Accumulated pT in Phi band to estimate UE in cone, cells vs tracks
331   TH2F *   fhEtaBandNormCellvsTrack ;             //! Accumulated pT cell in Eta band to estimate UE in cone, normalized to cone size, clusters vs tracks
332   TH2F *   fhPhiBandNormCellvsTrack ;             //! Accumulated pT cell in Phi band to estimate UE in cone, normalized to cone
333
334   TH2F *   fhConeSumPtSubvsConeSumPtTotPhiTrack;       //! Tracks, phi band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
335   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
336   TH2F *   fhConeSumPtSubvsConeSumPtTotEtaTrack;       //! Tracks, eta band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
337   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
338   TH2F *   fhConeSumPtSubvsConeSumPtTotPhiCluster;     //! Clusters, phi band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
339   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
340   TH2F *   fhConeSumPtSubvsConeSumPtTotEtaCluster;     //! Clusters, eta band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
341   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
342   TH2F *   fhConeSumPtSubvsConeSumPtTotPhiCell;        //! Cells, phi band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
343   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
344   TH2F *   fhConeSumPtSubvsConeSumPtTotEtaCell;        //! Cells, eta band: sum pT in cone after bkg sub vs sum pT in cone before bkg sub
345   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
346   TH2F *   fhConeSumPtVSUETracksEtaBand;               //! fhConeSumPtVSUETracksEtaBand
347   TH2F *   fhConeSumPtVSUETracksPhiBand;               //! fhConeSumPtVSUETracksPhiBand
348   TH2F *   fhConeSumPtVSUEClusterEtaBand;              //! fhConeSumPtVSUEClusterEtaBand
349   TH2F *   fhConeSumPtVSUEClusterPhiBand;              //! fhConeSumPtVSUEClusterPhiBand
350   
351   //MC
352   //
353   TH2F *   fhEtaPrimMC  [fgkNmcPrimTypes];        //! Pt vs Eta of generated photon
354   TH2F *   fhPhiPrimMC  [fgkNmcPrimTypes];        //! Pt vs Phi of generated photon
355   TH1F *   fhEPrimMC    [fgkNmcPrimTypes];        //! Number of generated photon vs E
356   TH1F *   fhPtPrimMC   [fgkNmcPrimTypes];        //! Number of generated photon vs pT
357   TH1F *   fhPtPrimMCiso[fgkNmcPrimTypes];        //! Number of generated isolated photon vs pT
358   
359   TH1F *   fhPtPrimMCPi0DecayPairOutOfCone;       //! Pi0 decay photons, with decay pair out of isolation cone
360   TH1F *   fhPtPrimMCPi0DecayPairOutOfAcceptance; //! Pi0 decay photons, with decay pair out of detector acceptance
361   TH1F *   fhPtPrimMCPi0DecayPairOutOfAcceptanceNoOverlap; //! Pi0 decay photons, with decay pair out of detector acceptance
362   TH1F *   fhPtPrimMCPi0DecayPairAcceptInConeLowPt;//! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold
363   TH1F *   fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlap; //! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, and do not overlap
364   TH1F *   fhPtPrimMCPi0DecayPairAcceptInConeLowPtNoOverlapCaloE; //! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, and larger than detector threshold, and do not overlap
365   TH1F *   fhPtPrimMCPi0DecayPairNoOverlap;        //! Pi0 decay photons, not overlapped decay
366
367   TH1F *   fhPtPrimMCPi0DecayIsoPairOutOfCone;       //! Pi0 decay photons, with decay pair out of isolation cone, isolated
368   TH1F *   fhPtPrimMCPi0DecayIsoPairOutOfAcceptance; //! Pi0 decay photons, with decay pair out of detector acceptance, isolated
369   TH1F *   fhPtPrimMCPi0DecayIsoPairOutOfAcceptanceNoOverlap; //! Pi0 decay photons, with decay pair out of detector acceptance, isolated
370   TH1F *   fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPt;//! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, isolated
371   TH1F *   fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlap; //! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, and do not overlap, isolated
372   TH1F *   fhPtPrimMCPi0DecayIsoPairAcceptInConeLowPtNoOverlapCaloE; //! Pi0 decay photons, with decay pair in cone and acceptance and lower pT than threshold, and larger than detector threshold, and do not overlap, isolated
373   TH1F *   fhPtPrimMCPi0DecayIsoPairNoOverlap;    //! Pi0 decay photons isolated, not overlapped decay
374
375   TH1F *   fhPtPrimMCPi0Overlap;                  //! Pi0 with overlapped decay photons
376   TH1F *   fhPtPrimMCPi0IsoOverlap;               //! Pi0 isolated with overlapped decay photons
377
378   
379   TH1F *   fhPtNoIsoMC  [fgkNmcTypes];            //! Number of not isolated mcTypes particle
380   TH1F *   fhPtIsoMC    [fgkNmcTypes];            //! Number of isolated mcTypes particle
381   TH2F *   fhPhiIsoMC   [fgkNmcTypes];            //! Phi of isolated mcTypes particle
382   TH2F *   fhEtaIsoMC   [fgkNmcTypes];            //! eta of isolated mcTypes particle
383   
384   TH1F *   fhPtDecayMC  [2][4][fgkNmcTypes] ;     //! Number of (not) isolated Pi0 decay particles (invariant mass tag) for a mcTypes particle
385   
386   TH2F *   fhPtLambda0MC   [fgkNmcTypes][2];      //! Shower shape of (non) isolated candidates originated by mcTypes particle (do not apply SS cut previously)
387  
388   // Multiple cut analysis
389   TH2F *   fhSumPtLeadingPt[5] ;                  //! Sum Pt in the cone
390   TH2F *   fhPtLeadingPt[5] ;                     //! Particle Pt in the cone
391   TH2F *   fhPerpSumPtLeadingPt[5] ;              //! Sum Pt in the cone at the perpendicular phi region to trigger axis  (phi +90)
392   TH2F *   fhPerpPtLeadingPt[5];                  //! Sum Pt in the cone at the perpendicular phi region to trigger axis  (phi +90)
393
394   TH1F *   fhPtThresIsolated[5][5] ;              //! Isolated particle with pt threshold 
395   TH1F *   fhPtFracIsolated[5][5] ;               //! Isolated particle with pt threshold frac
396   TH1F *   fhSumPtIsolated[5][5] ;                //! Isolated particle with threshold on cone pt sum
397   
398   TH2F *   fhEtaPhiPtThresIso[5][5] ;             //! eta vs phi of isolated particles with pt threshold
399   TH2F *   fhEtaPhiPtThresDecayIso[5][5] ;        //! eta vs phi of isolated particles with pt threshold, only for decay bit fDecayBits[0]
400   TH1F *   fhPtPtThresDecayIso[5][5] ;            //! Number of isolated Pi0 decay particles (invariant mass tag) with pt threshold,, only for decay bit fDecayBits[0]
401   
402   TH2F *   fhEtaPhiPtFracIso[5][5] ;              //! eta vs phi of isolated particles with pt frac
403   TH2F *   fhEtaPhiPtFracDecayIso[5][5] ;         //! eta vs phi of isolated particles with pt frac,, only for decay bit fDecayBits[0]
404   TH1F *   fhPtPtFracDecayIso[5][5] ;             //! Number of isolated Pi0 decay particles (invariant mass tag) with pt fra, only for decay bit fDecayBits[0]
405
406   TH2F *   fhEtaPhiPtSumIso[5][5] ;               //! eta vs phi of isolated particles with pt sum
407   TH2F *   fhEtaPhiPtSumDecayIso[5][5] ;          //! eta vs phi of isolated particles with pt sum,, only for decay bit fDecayBits[0]
408   TH1F *   fhPtPtSumDecayIso[5][5] ;              //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum, only for decay bit fDecayBits[0]
409   
410   TH2F *   fhEtaPhiSumDensityIso[5][5];           //! Isolated particle with threshold on cone sum density
411   TH2F *   fhEtaPhiSumDensityDecayIso[5][5];      //! Isolated particle with threshold on cone sum density, only for decay bit fDecayBits[0]
412   TH1F *   fhPtSumDensityIso[5][5];               //! Isolated particle with threshold on cone sum density
413   TH1F *   fhPtSumDensityDecayIso[5][5];          //! Isolated decay particle with threshold on cone sum density, only for decay bit fDecayBits[0]
414   
415   TH1F *   fhPtFracPtSumIso[5][5] ;               //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum
416   TH1F *   fhPtFracPtSumDecayIso[5][5] ;          //! Number of isolated Pi0 decay particles (invariant mass tag) with pt sum, only for decay bit fDecayBits[0]
417   TH2F *   fhEtaPhiFracPtSumIso[5][5];            //! Isolated particle with threshold on cone sum density
418   TH2F *   fhEtaPhiFracPtSumDecayIso[5][5];       //! Isolated particle with threshold on cone sum density, only for decay bit fDecayBits[0]
419  
420   // Multiple cut MC
421   TH1F *   fhPtThresIsolatedMC[fgkNmcTypes][5][5];//! Isolated mcTypes particle with pt threshold
422   TH1F *   fhPtFracIsolatedMC [fgkNmcTypes][5][5];//! Isolated mcTypes particle with pt frac
423   TH1F *   fhSumPtIsolatedMC  [fgkNmcTypes][5][5];//! Isolated mcTypes particle with threshold on cone pt sum
424   TH2F *   fhSumPtLeadingPtMC [fgkNmcTypes][5];   //! mcTypes particle for sum Pt, different cone
425
426   // Track matching studies
427   TH2F *   fhTrackMatchedDEta[2]     ;            //! Eta distance between track and cluster vs cluster E
428   TH2F *   fhTrackMatchedDPhi[2]     ;            //! Phi distance between track and cluster vs cluster E
429   TH2F *   fhTrackMatchedDEtaDPhi[2] ;            //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
430   TH2F *   fhdEdx[2]  ;                           //! matched track dEdx vs cluster E 
431   TH2F *   fhEOverP[2];                           //! matched track E cluster over P track vs cluster E, after dEdx cut 
432   TH2F *   fhTrackMatchedMCParticle[2];           //! Trace origin of matched particle
433
434   // Shower Shape histograms
435   TH2F *   fhELambda0[2];                         //! Shower shape of (non) isolated photons (do not apply SS cut previously)  
436   TH2F *   fhPtLambda0[2];                        //! Shower shape of (non) isolated photons (do not apply SS cut previously)
437   //TH2F *   fhELambda1[2];                         //! Shower shape of (non) isolated photons (do not apply SS cut previously)
438   TH2F *   fhELambda0TRD[2];                      //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
439   TH2F *   fhPtLambda0TRD[2];                     //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
440   //TH2F *   fhELambda1TRD[2];                      //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
441
442   TH1F **  fhPtLeadConeBin ;                      //![fNBkgBin] Candidate Pt distribution depending on bin of cone leading particle
443   TH1F **  fhSumPtConeBin  ;                      //![fNBkgBin] Candidate Pt distribution depending on bin of cone sum pt
444   TH1F **  fhPtLeadConeBinMC ;                    //![fNBkgBin*fgkNmcTypes] Candidate Pt distribution depending on bin of cone leading particle, per MC particle
445   TH1F **  fhSumPtConeBinMC  ;                    //![fNBkgBin*fgkNmcTypes] Candidate Pt distribution depending on bin of cone sum pt, per MC particle
446
447   TH1F **  fhPtLeadConeBinDecay ;                 //![fNBkgBin*fNDecayBits] Candidate Pt distribution depending on bin of cone leading particle, tagged as decay
448   TH1F **  fhSumPtConeBinDecay  ;                 //![fNBkgBin*fNDecayBits] Candidate Pte distribution depending on bin of cone sum pt, tagged as decay
449   
450   TH2F **  fhPtLeadConeBinLambda0 ;               //![fNBkgBin] Candidate shower shape distribution depending on bin of cone leading particle
451   TH2F **  fhSumPtConeBinLambda0  ;               //![fNBkgBin] Candidate shower shape distribution depending on bin of cone sum pt
452   TH2F **  fhPtLeadConeBinLambda0MC ;             //![fNBkgBin*fgkNmcTypes] Candidate shower shape distribution depending on bin of cone leading particle, per MC particle
453   TH2F **  fhSumPtConeBinLambda0MC  ;             //![fNBkgBin*fgkNmcTypes] Candidate shower shape distribution depending on bin of cone sum pt, per MC particle
454
455   TH1F **  fhPtTrigBinPtLeadCone ;                //![fNPtTrigBin] Candidate pt bin, distribution of cone leading particle pt
456   TH1F **  fhPtTrigBinSumPtCone  ;                //![fNPtTrigBin] Candidate pt bin, distribution of cone sum particle pt
457   TH1F **  fhPtTrigBinPtLeadConeMC ;              //![fNPtTrigBin*fgkNmcTypes] Candidate pt bin, distribution of cone leading particle pt, per MC particle
458   TH1F **  fhPtTrigBinSumPtConeMC  ;              //![fNPtTrigBin*fgkNmcTypes] Candidate pt bin, distribution of cone sum particle pt, per MC particle
459   
460   TH1F **  fhPtTrigBinPtLeadConeDecay ;           //![fNBkgBin*fNDecayBits] Candidate pt bin, distribution of cone leading particle pt, tagged as decay
461   TH1F **  fhPtTrigBinSumPtConeDecay  ;           //![fNBkgBin*fNDecayBits] Candidate pt bin, distribution of cone sum particle pt, tagged as decay
462
463   TH2F **  fhPtTrigBinLambda0vsPtLeadCone ;       //![fNPtTrigBin] Candidate shower shape distribution depending vs cone leading particle in pT trigger bins
464   TH2F **  fhPtTrigBinLambda0vsSumPtCone  ;       //![fNPtTrigBin] Candidate shower shape distribution depending vs of cone sum pt in pT trigger bins
465   TH2F **  fhPtTrigBinLambda0vsPtLeadConeMC ;     //![fNPtTrigBin*fgkNmcTypes] Candidate shower shape distribution depending vs cone leading particle in pT trigger bins, per MC particle
466   TH2F **  fhPtTrigBinLambda0vsSumPtConeMC  ;     //![fNPtTrigBin*fgkNmcTypes] Candidate shower shape distribution depending vs cone sum pt in pT trigger bins, per MC particle
467
468   // Local maxima
469   TH2F *   fhNLocMax[2];                          //! number of maxima in selected clusters
470   TH2F *   fhELambda0LocMax1[2] ;                 //! E vs lambda0 of selected cluster, 1 local maxima in cluster 
471   TH2F *   fhELambda1LocMax1[2] ;                 //! E vs lambda1 of selected cluster, 1 local maxima in cluster 
472   TH2F *   fhELambda0LocMax2[2] ;                 //! E vs lambda0 of selected cluster, 2 local maxima in cluster 
473   TH2F *   fhELambda1LocMax2[2] ;                 //! E vs lambda1 of selected cluster, 2 local maxima in cluster
474   TH2F *   fhELambda0LocMaxN[2] ;                 //! E vs lambda0 of selected cluster, N>2 local maxima in cluster 
475   TH2F *   fhELambda1LocMaxN[2] ;                 //! E vs lambda1 of selected cluster, N>2 local maxima in cluster 
476   
477   // Pile-up
478   TH1F *   fhEIsoPileUp[7] ;                      //! Number of isolated particles
479   TH1F *   fhPtIsoPileUp[7] ;                     //! Number of isolated particles
480   TH1F *   fhENoIsoPileUp[7] ;                    //! Number of not isolated particles
481   TH1F *   fhPtNoIsoPileUp[7] ;                   //! Number of not isolated particles
482   TH2F *   fhTimeENoCut;                          //! time of cluster vs E, no cut 
483   TH2F *   fhTimeESPD;                            //! time of cluster vs E, IsSPDPileUp
484   TH2F *   fhTimeESPDMulti;                       //! time of cluster vs E, IsSPDPileUpMulti
485   TH2F *   fhTimeNPileUpVertSPD;                  //! time of cluster vs n pile-up vertices from SPD
486   TH2F *   fhTimeNPileUpVertTrack;                //! time of cluster vs n pile-up vertices from Tracks
487   TH2F *   fhTimeNPileUpVertContributors;         //! time of cluster vs n pile-up vertex from SPD contributors
488   TH2F *   fhTimePileUpMainVertexZDistance;       //! time of cluster vs difference of z main vertex and pile-up vertex 
489   TH2F *   fhTimePileUpMainVertexZDiamond;        //! time of cluster vs difference of z diamond and pile-up vertex 
490   
491   AliAnaParticleIsolation(              const AliAnaParticleIsolation & iso) ; // cpy ctor
492   AliAnaParticleIsolation & operator = (const AliAnaParticleIsolation & iso) ; // cpy assignment
493   
494   ClassDef(AliAnaParticleIsolation,32)
495 } ;
496
497
498 #endif //ALIANAPARTICLEISOLATION_H
499
500
501