]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrDep/AliAnaParticleHadronCorrelation.h
c2a2f497926562c2384b050d33b8ff93950f258d
[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 // --- ROOT system ---
20 class TH3D;
21
22 // --- Analysis system ---
23 #include "AliAnaPartCorrBaseClass.h"
24 class AliAODPWG4ParticleCorrelation ;
25
26 class AliAnaParticleHadronCorrelation : public AliAnaPartCorrBaseClass {
27   
28  public: 
29   AliAnaParticleHadronCorrelation() ; // default ctor
30   virtual ~AliAnaParticleHadronCorrelation() {;} //virtual dtor
31  private:  
32   AliAnaParticleHadronCorrelation(const AliAnaParticleHadronCorrelation & ph) ; // cpy ctor
33   AliAnaParticleHadronCorrelation & operator = (const AliAnaParticleHadronCorrelation & ph) ;//cpy assignment
34
35  public:
36   
37   TObjString * GetAnalysisCuts();
38   TList * GetCreateOutputObjects();
39   
40   Double_t GetDeltaPhiMaxCut() const {return fDeltaPhiMaxCut ; }
41   Double_t GetDeltaPhiMinCut() const {return fDeltaPhiMinCut ; }
42   void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
43   {fDeltaPhiMaxCut =phimax;  fDeltaPhiMinCut =phimin;}
44
45   Double_t GetUeDeltaPhiMaxCut() const {return fUeDeltaPhiMaxCut ; }
46   Double_t GetUeDeltaPhiMinCut() const {return fUeDeltaPhiMinCut ; }
47   void SetUeDeltaPhiCutRange(Double_t uephimin, Double_t uephimax)
48   {fUeDeltaPhiMaxCut =uephimax;  fUeDeltaPhiMinCut =uephimin;}
49   Bool_t IsSeveralUEOn() const {return fMakeSeveralUE ; }
50   void SwitchOnSeveralUECalculation()  { fMakeSeveralUE = kTRUE;}
51   void SwitchOffSeveralUECalculation() { fMakeSeveralUE = kFALSE;}
52
53   // Do trigger-neutral correlation
54   Bool_t DoNeutralCorr() const {return fNeutralCorr ; }
55   void SwitchOnNeutralCorr()  { fNeutralCorr = kTRUE;}
56   void SwitchOffNeutralCorr() { fNeutralCorr = kFALSE;}  
57   
58   // Do decay-hadron correlation if it is pi0 trigger
59   Bool_t IsPi0Trigger() const {return fPi0Trigger ; }
60   void SwitchOnDecayCorr()  { fPi0Trigger = kTRUE;}
61   void SwitchOffDecayCorr() { fPi0Trigger = kFALSE;}  
62   
63   Bool_t OnlyIsolated() const {return fSelectIsolated ; }
64   void SelectIsolated(Bool_t select) {fSelectIsolated = select ; }
65
66 //  //Setters for parameters of event buffers
67 //  void SetMultiBin(Int_t n=1) {fMultiBin=n ;} //number of bins in Multiplicity 
68 //  void SetNRPBin(Int_t n=1)    {fNrpBin=n ;}    //number of bins in reaction plain  
69 //  //Setters for event selection
70 //  void SetZvertexCut(Float_t zcut=40.){fZvtxCut=zcut ;} //cut on vertex position
71 //  Int_t GetMultiBin() const {return fMultiBin ;} //number of bins in Multiplicity 
72 //  Int_t GetNRPBin()    const {return fNrpBin=n ;}    //number of bins in reaction plain  
73 //  //Getters for event selection
74 //  Float_t GetZvertexCut() const {return fZvtxCut ;} //cut on vertex position  
75 //  void SwitchOnEventSelection()    {fUseSelectEvent = kTRUE ; }
76 //  void SwitchOffEventSelection()   {fUseSelectEvent = kFALSE ; } s
77 //  // Do correlation analysis with different event buffers
78 //  Bool_t IsEventSelect() const {return fUseSelectEvent ; }
79   
80   void InitParameters();
81   
82   void Print(const Option_t * opt) const;
83   
84   void MakeChargedCorrelation(AliAODPWG4ParticleCorrelation * aodParticle,TObjArray* const pl,   const Bool_t bFillHisto) ;
85   void MakeNeutralCorrelation(AliAODPWG4ParticleCorrelation * aodParticle,TObjArray* const pl, const Bool_t bFillHisto) ;
86
87   //void MakeNeutralCorrelationFillAOD(AliAODPWG4ParticleCorrelation* const aodParticle, TObjArray* const pl, TString detector)  ;
88   //void MakeNeutralCorrelationFillHistograms(AliAODPWG4ParticleCorrelation* const aodParticle)  ;
89         
90   void MakeAnalysisFillAOD()  ;
91   void MakeAnalysisFillHistograms() ; 
92   
93   //Bool_t SelectCluster(AliVCluster * calo, Double_t *vertex, TLorentzVector & mom, Int_t & pdg) ;
94   
95   void SetPi0AODBranchName(TString pi0list) {fPi0AODBranchName = pi0list;}
96   
97  private:
98   
99   Double_t   fDeltaPhiMaxCut ;      // Minimum Delta Phi Gamma-Hadron
100   Double_t   fDeltaPhiMinCut ;      // Maximum Delta Phi Gamma-Hadron
101   Bool_t     fSelectIsolated ;      // Select only trigger particles isolated
102   Bool_t     fMakeSeveralUE ;       // Do analysis for several underlying events contribution
103   Double_t   fUeDeltaPhiMaxCut ;    // Minimum Delta Phi Gamma-Underlying Hadron
104   Double_t   fUeDeltaPhiMinCut ;    // Maximum Delta Phi Gamma-Underlying Hadron
105   TString    fPi0AODBranchName;     // Name of AOD branch with pi0, not trigger
106   Bool_t     fNeutralCorr ;          // switch the analysis with neutral particles
107   Bool_t     fPi0Trigger ;          // switch the analysis with decay photon from pi0 trigger
108 //  Int_t      fMultiBin ;        // Number of bins in event container for multiplicity
109 //  Int_t      fNZvertBin ;       // Number of bins in event container for vertex position
110 //  Int_t      fNrpBin ;            // Number of bins in event container for reaction plain
111 //  Float_t    fZvtxCut ;           // Cut on vertex position  
112 //  Bool_t     fUseSelectEvent ; // Select events based on multiplicity and vertex cuts
113   
114   
115   //Histograms
116   TH2F * fhNclustersNtracks; //charge and cluster multiplicity distribution
117   TH3D * fhVertex; //vertex position
118   //leading particles 
119   TH1F * fhPtLeading;         //! pT distribution of leading particles
120   TH2F * fhPhiLeading;        //! phi distribution vs pT of leading particles
121   TH2F * fhEtaLeading;        //! eta distribution vs pT of leading particles
122   
123   //trigger-charged histograms
124   TH2F * fhDeltaPhiDeltaEtaCharged ; //! differences of eta and phi between trigger and charged hadrons
125   TH2F * fhPhiCharged  ;         //! Phi distribution of charged particles
126   TH2F * fhEtaCharged  ;         //! Eta distribution of charged particles
127   TH2F * fhDeltaPhiCharged  ;    //! Difference of charged particle phi and trigger particle  phi as function of  trigger particle pT
128   TH2F * fhDeltaEtaCharged  ;    //! Difference of charged particle eta and trigger particle  eta as function of  trigger particle pT
129   TH2F * fhDeltaPhiChargedPt  ;  //! Difference of charged particle phi and trigger particle  phi as function of charged particle pT
130   TH2F * fhDeltaPhiUeChargedPt ; //! Difference of charged particle from underlying events phi and trigger particle  phi as function of charged particle pT
131   TH2F * fhPtImbalanceCharged  ;   //! Trigger particle -charged hadron momentim imbalance histogram
132   TH2F * fhPtImbalanceUeCharged  ; //! Trigger particle -underlying charged hadron momentim imbalance histogram  
133   TH2F * fhPtImbalancePosCharged  ;   //! Trigger particle -positive charged hadron momentim imbalance histogram
134   TH2F * fhPtImbalanceNegCharged  ; //! Trigger particle -negative charged hadron momentim imbalance histogram 
135   //with different imblance varible defination HBP distribution
136   TH2F * fhPtHbpCharged  ;   //! Trigger particle -charged hadron momentim HBP histogram
137   TH2F * fhPtHbpUeCharged  ; //! Trigger particle -underlying charged hadron momentim HBP histogram  
138   
139   //if several UE calculation is on, most useful for jet-jet events contribution
140   TH2F * fhDeltaPhiUeLeftCharged  ;    //! Difference of charged particle from underlying events phi and trigger particle  phi as function of charged particle pT
141   TH2F * fhDeltaPhiUeRightCharged  ;   //! Difference of charged particle from underlying events phi and trigger particle  phi 
142   TH2F * fhPtImbalanceUeLeftCharged  ; //! Trigger particle -underlying charged hadron momentim imbalance histogram 
143   TH2F * fhPtImbalanceUeRightCharged ; //! Trigger particle -underlying charged hadron momentim imbalance histogram  
144   TH2F * fhPtHbpUeLeftCharged  ;       //! Trigger particle -underlying charged hadron momentim HBP histogram 
145   TH2F * fhPtHbpUeRightCharged  ;      //! Trigger particle -underlying charged hadron momentim HBP histogram  
146
147   //for pout and kt extraction
148   TH2F * fhPoutTrig  ; // Pout =associated pt*sin(delta phi) distribution vs trigger pt
149   TH2F * fhPtTrigCharged ; //trigger and correlated particl pt, to be used for mean value for kt        
150   
151   //if different multiplicity analysis asked
152   TH3D ** fhTrigDeltaPhiDeltaEtaCharged ; //! differences of eta and phi between trigger and charged hadrons
153   TH2F ** fhTrigCorr  ;    //! Trigger particle -charged hadron momentim imbalance histogram
154   TH2F ** fhTrigUeCorr  ;    //! Trigger particle -UE charged hadron momentim imbalance histogram
155   
156   //trigger-neutral histograms
157   TH2F * fhDeltaPhiDeltaEtaNeutral ; //! differences of eta and phi between trigger and neutral hadrons (pi0)
158   TH2F * fhPhiNeutral   ;        //! Phi distribution of neutral particles  
159   TH2F * fhEtaNeutral   ;        //! Eta distribution of neutral particles
160   TH2F * fhDeltaPhiNeutral   ;   //! Difference of neutral particle phi and trigger particle  phi as function of  trigger particle pT
161   TH2F * fhDeltaEtaNeutral  ;    //! Difference of neutral particle eta and trigger particle  eta as function of  trigger particle pT
162   TH2F * fhDeltaPhiNeutralPt  ;  //! Difference of neutral particle phi and trigger particle  phi as function of neutral particle particle pT
163   TH2F * fhDeltaPhiUeNeutralPt ; //! Difference of neutral particle phi and trigger particle  phi as function of neutral particle particle pT  
164   TH2F * fhPtImbalanceNeutral  ;   //! Trigger particle - neutral hadron momentum imbalance histogram 
165   TH2F * fhPtImbalanceUeNeutral  ; //! Trigger particle - neutral hadron momentum imbalance histogram 
166   //with different imblance varible defination HBP distribution  
167   TH2F * fhPtHbpNeutral  ;   //! Trigger particle -neutral particle momentim HBP histogram
168   TH2F * fhPtHbpUeNeutral  ; //! Trigger particle -underlying neutral hadron momentim HBP histogram  
169
170   //if several UE calculation is on, most useful for jet-jet events contribution
171   TH2F * fhDeltaPhiUeLeftNeutral  ;    //! Difference of charged particle from underlying events phi and trigger particle  phi as function of neutral particle pT
172   TH2F * fhDeltaPhiUeRightNeutral  ;   //! Difference of charged particle from underlying events phi and trigger particle  phi 
173   TH2F * fhPtImbalanceUeLeftNeutral  ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram 
174   TH2F * fhPtImbalanceUeRightNeutral ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram 
175   TH2F * fhPtHbpUeLeftNeutral  ;       //! Trigger particle -underlying neutral hadron momentim HBP histogram 
176   TH2F * fhPtHbpUeRightNeutral  ;      //! Trigger particle -underlying neutral hadron momentim HBP histogram 
177   
178   //for decay photon trigger correlation
179   TH3D * fhPtPi0DecayRatio ;          //! for pi0 pt and ratio of decay photon pt
180   TH2F * fhDeltaPhiDecayCharged  ;   //! Difference of charged particle phi and decay trigger
181   TH2F * fhPtImbalanceDecayCharged ; //! Trigger particle (decay from pi0)-charged hadron momentim imbalance histogram    
182   TH2F * fhDeltaPhiDecayNeutral  ;   //! Difference of neutral particle phi and decay trigger
183   TH2F * fhPtImbalanceDecayNeutral ; //! Trigger particle (decay from pi0)-neutral hadron momentim imbalance histogram  
184   
185         
186   ClassDef(AliAnaParticleHadronCorrelation,5)
187 } ;
188  
189
190 #endif //ALIANAPARTICLEHADRONCORRELATION_H
191
192
193