]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrDep/AliAnaParticleHadronCorrelation.h
hooks for PMD flow analysis
[u/mrichter/AliRoot.git] / PWG4 / PartCorrDep / AliAnaParticleHadronCorrelation.h
1 #ifndef ALIANAPARTICLEHADRONCORRELATION_H
2 #define ALIANAPARTICLEHADRONCORRELATION_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5 /* $Id:  $ */
6
7 //_________________________________________________________________________
8 // Class that contains the algorithm for the analysis of particle - hadron correlations
9 // Particle (for example direct gamma) must be found in a previous analysis 
10 //-- Author: Gustavo Conesa (INFN-LNF)
11
12 //  Modified by Yaxian Mao:
13 // 1. add the UE subtraction for corrlation study
14 // 2. change the correlation variable
15 // 3. Only use leading particle(cluster/track) as trigger for correlation (2010/07/02)
16 // 4. Make decay photon-hadron correlations where decay contribute pi0 mass (2010/09/09)
17 // 5. fill the pout to extract kt at the end, also to study charge asymmetry(2010/10/06) 
18 // 6. Add the possibality for event selection analysis based on vertex and multiplicity bins (10/10/2010)
19 // 7. change the way of delta phi cut for UE study due to memory issue (reduce histograms)
20
21 // --- ROOT system ---
22 class TH3D;
23
24 // --- Analysis system ---
25 #include "AliAnaPartCorrBaseClass.h"
26 class AliAODPWG4ParticleCorrelation ;
27
28 class AliAnaParticleHadronCorrelation : public AliAnaPartCorrBaseClass {
29   
30  public: 
31   AliAnaParticleHadronCorrelation() ; // default ctor
32   virtual ~AliAnaParticleHadronCorrelation() {;} //virtual dtor
33  private:  
34   AliAnaParticleHadronCorrelation(const AliAnaParticleHadronCorrelation & ph) ; // cpy ctor
35   AliAnaParticleHadronCorrelation & operator = (const AliAnaParticleHadronCorrelation & ph) ;//cpy assignment
36
37  public:
38   
39   TObjString * GetAnalysisCuts();
40   TList * GetCreateOutputObjects();
41   
42   Double_t GetDeltaPhiMaxCut() const {return fDeltaPhiMaxCut ; }
43   Double_t GetDeltaPhiMinCut() const {return fDeltaPhiMinCut ; }
44   void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
45   {fDeltaPhiMaxCut =phimax;  fDeltaPhiMinCut =phimin;}
46  
47   Double_t GetUeDeltaPhiMaxCut() const {return fUeDeltaPhiMaxCut ; }
48   Double_t GetUeDeltaPhiMinCut() const {return fUeDeltaPhiMinCut ; }
49   void SetUeDeltaPhiCutRange(Double_t uephimin, Double_t uephimax)
50   {fUeDeltaPhiMaxCut =uephimax;  fUeDeltaPhiMinCut =uephimin;}
51   Bool_t IsSeveralUEOn() const {return fMakeSeveralUE ; }
52   void SwitchOnSeveralUECalculation()  { fMakeSeveralUE = kTRUE;}
53   void SwitchOffSeveralUECalculation() { fMakeSeveralUE = kFALSE;}
54
55   // Do trigger-neutral correlation
56   Bool_t DoNeutralCorr() const {return fNeutralCorr ; }
57   void SwitchOnNeutralCorr()  { fNeutralCorr = kTRUE;}
58   void SwitchOffNeutralCorr() { fNeutralCorr = kFALSE;}  
59   
60   // Do decay-hadron correlation if it is pi0 trigger
61   Bool_t IsPi0Trigger() const {return fPi0Trigger ; }
62   void SwitchOnDecayCorr()  { fPi0Trigger = kTRUE;}
63   void SwitchOffDecayCorr() { fPi0Trigger = kFALSE;}  
64   
65   Bool_t OnlyIsolated() const {return fSelectIsolated ; }
66   void SelectIsolated(Bool_t select) {fSelectIsolated = select ; }
67
68   void InitParameters();
69   
70   void Print(const Option_t * opt) const;
71   
72   void MakeChargedCorrelation(AliAODPWG4ParticleCorrelation * aodParticle,TObjArray* const pl,   const Bool_t bFillHisto) ;
73   void MakeNeutralCorrelation(AliAODPWG4ParticleCorrelation * aodParticle,TObjArray* const pl, const Bool_t bFillHisto) ;
74
75   //void MakeNeutralCorrelationFillAOD(AliAODPWG4ParticleCorrelation* const aodParticle, TObjArray* const pl, TString detector)  ;
76   //void MakeNeutralCorrelationFillHistograms(AliAODPWG4ParticleCorrelation* const aodParticle)  ;
77         
78   void MakeAnalysisFillAOD()  ;
79   void MakeAnalysisFillHistograms() ; 
80   
81   //Bool_t SelectCluster(AliVCluster * calo, Double_t *vertex, TLorentzVector & mom, Int_t & pdg) ;
82   
83   void SetPi0AODBranchName(TString pi0list) {fPi0AODBranchName = pi0list;}
84   
85  private:
86   
87   Double_t   fDeltaPhiMaxCut ;      // Minimum Delta Phi Gamma-Hadron
88   Double_t   fDeltaPhiMinCut ;      // Maximum Delta Phi Gamma-Hadron
89   Bool_t     fSelectIsolated ;      // Select only trigger particles isolated
90   Bool_t     fMakeSeveralUE ;       // Do analysis for several underlying events contribution
91   Double_t   fUeDeltaPhiMaxCut ;    // Minimum Delta Phi Gamma-Underlying Hadron
92   Double_t   fUeDeltaPhiMinCut ;    // Maximum Delta Phi Gamma-Underlying Hadron
93   TString    fPi0AODBranchName;     // Name of AOD branch with pi0, not trigger
94   Bool_t     fNeutralCorr ;          // switch the analysis with neutral particles
95   Bool_t     fPi0Trigger ;          // switch the analysis with decay photon from pi0 trigger
96   
97   //Histograms
98 //  TH2F * fhNclustersNtracks; //charge and cluster multiplicity distribution
99   //leading particles 
100   TH1F * fhPtLeading;         //! pT distribution of leading particles
101   TH2F * fhPhiLeading;        //! phi distribution vs pT of leading particles
102   TH2F * fhEtaLeading;        //! eta distribution vs pT of leading particles
103   
104   //trigger-charged histograms
105   TH2F * fhDeltaPhiDeltaEtaCharged ; //! differences of eta and phi between trigger and charged hadrons
106   TH2F * fhPhiCharged  ;         //! Phi distribution of charged particles
107   TH2F * fhEtaCharged  ;         //! Eta distribution of charged particles
108   TH2F * fhDeltaPhiCharged  ;    //! Difference of charged particle phi and trigger particle  phi as function of  trigger particle pT
109   TH2F * fhDeltaEtaCharged  ;    //! Difference of charged particle eta and trigger particle  eta as function of  trigger particle pT
110   TH2F * fhDeltaPhiChargedPt  ;  //! Difference of charged particle phi and trigger particle  phi as function of charged particle pT
111   TH2F * fhDeltaPhiUeChargedPt ; //! Difference of charged particle from underlying events phi and trigger particle  phi as function of charged particle pT
112   TH2F * fhPtImbalanceCharged  ;   //! Trigger particle -charged hadron momentim imbalance histogram
113   TH2F * fhPtImbalanceUeCharged  ; //! Trigger particle -underlying charged hadron momentim imbalance histogram  
114   TH2F * fhPtImbalancePosCharged  ;   //! Trigger particle -positive charged hadron momentim imbalance histogram
115   TH2F * fhPtImbalanceNegCharged  ; //! Trigger particle -negative charged hadron momentim imbalance histogram 
116   //with different imblance varible defination HBP distribution
117   TH2F * fhPtHbpCharged  ;   //! Trigger particle -charged hadron momentim HBP histogram
118   TH2F * fhPtHbpUeCharged  ; //! Trigger particle -underlying charged hadron momentim HBP histogram  
119   
120   //if several UE calculation is on, most useful for jet-jet events contribution
121   TH2F * fhDeltaPhiUeLeftCharged  ;    //! Difference of charged particle from underlying events phi and trigger particle  phi as function of charged particle pT
122   TH2F * fhDeltaPhiUeRightCharged  ;   //! Difference of charged particle from underlying events phi and trigger particle  phi 
123   TH2F * fhPtImbalanceUeLeftCharged  ; //! Trigger particle -underlying charged hadron momentim imbalance histogram 
124   TH2F * fhPtImbalanceUeRightCharged ; //! Trigger particle -underlying charged hadron momentim imbalance histogram  
125   TH2F * fhPtHbpUeLeftCharged  ;       //! Trigger particle -underlying charged hadron momentim HBP histogram 
126   TH2F * fhPtHbpUeRightCharged  ;      //! Trigger particle -underlying charged hadron momentim HBP histogram  
127
128   //for pout and kt extraction
129   TH3D * fhPoutPtTrigPtAssoc  ; // Pout =associated pt*sin(delta phi) distribution vs trigger pt vs associated pt
130   TH3D * fhUePoutPtTrigPtAssoc  ; // UE Pout =associated pt*sin(delta phi) distribution vs trigger pt vs associated pt
131   TH2F * fhPtTrigCharged ; //trigger and correlated particl pt, to be used for mean value for kt        
132   
133   //if different multiplicity analysis asked
134   TH3D ** fhTrigDeltaPhiDeltaEtaCharged ; //! differences of eta and phi between trigger and charged hadrons
135   TH2F ** fhTrigCorr  ;    //! Trigger particle -charged hadron momentim imbalance histogram
136   TH2F ** fhTrigUeCorr  ;    //! Trigger particle -UE charged hadron momentim imbalance histogram
137   
138   //trigger-neutral histograms
139   TH2F * fhDeltaPhiDeltaEtaNeutral ; //! differences of eta and phi between trigger and neutral hadrons (pi0)
140   TH2F * fhPhiNeutral   ;        //! Phi distribution of neutral particles  
141   TH2F * fhEtaNeutral   ;        //! Eta distribution of neutral particles
142   TH2F * fhDeltaPhiNeutral   ;   //! Difference of neutral particle phi and trigger particle  phi as function of  trigger particle pT
143   TH2F * fhDeltaEtaNeutral  ;    //! Difference of neutral particle eta and trigger particle  eta as function of  trigger particle pT
144   TH2F * fhDeltaPhiNeutralPt  ;  //! Difference of neutral particle phi and trigger particle  phi as function of neutral particle particle pT
145   TH2F * fhDeltaPhiUeNeutralPt ; //! Difference of neutral particle phi and trigger particle  phi as function of neutral particle particle pT  
146   TH2F * fhPtImbalanceNeutral  ;   //! Trigger particle - neutral hadron momentum imbalance histogram 
147   TH2F * fhPtImbalanceUeNeutral  ; //! Trigger particle - neutral hadron momentum imbalance histogram 
148   //with different imblance varible defination HBP distribution  
149   TH2F * fhPtHbpNeutral  ;   //! Trigger particle -neutral particle momentim HBP histogram
150   TH2F * fhPtHbpUeNeutral  ; //! Trigger particle -underlying neutral hadron momentim HBP histogram  
151
152   //if several UE calculation is on, most useful for jet-jet events contribution
153   TH2F * fhDeltaPhiUeLeftNeutral  ;    //! Difference of charged particle from underlying events phi and trigger particle  phi as function of neutral particle pT
154   TH2F * fhDeltaPhiUeRightNeutral  ;   //! Difference of charged particle from underlying events phi and trigger particle  phi 
155   TH2F * fhPtImbalanceUeLeftNeutral  ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram 
156   TH2F * fhPtImbalanceUeRightNeutral ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram 
157   TH2F * fhPtHbpUeLeftNeutral  ;       //! Trigger particle -underlying neutral hadron momentim HBP histogram 
158   TH2F * fhPtHbpUeRightNeutral  ;      //! Trigger particle -underlying neutral hadron momentim HBP histogram 
159   
160   //for decay photon trigger correlation
161   TH2F * fhPtPi0DecayRatio ;          //! for pi0 pt and ratio of decay photon pt
162   TH2F * fhDeltaPhiDecayCharged  ;   //! Difference of charged particle phi and decay trigger
163   TH2F * fhPtImbalanceDecayCharged ; //! Trigger particle (decay from pi0)-charged hadron momentim imbalance histogram    
164   TH2F * fhDeltaPhiDecayNeutral  ;   //! Difference of neutral particle phi and decay trigger
165   TH2F * fhPtImbalanceDecayNeutral ; //! Trigger particle (decay from pi0)-neutral hadron momentim imbalance histogram  
166   
167         
168   ClassDef(AliAnaParticleHadronCorrelation,5)
169 } ;
170  
171
172 #endif //ALIANAPARTICLEHADRONCORRELATION_H
173
174
175