]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/PartCorrDep/AliAnaParticleHadronCorrelation.h
2c1d49b9ce09d24d14f7d27eca5e09638384dc2a
[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
18 // --- ROOT system ---
19 class TH3D;
20
21 // --- Analysis system ---
22 #include "AliAnaPartCorrBaseClass.h"
23 class AliAODPWG4ParticleCorrelation ;
24
25 class AliAnaParticleHadronCorrelation : public AliAnaPartCorrBaseClass {
26   
27  public: 
28   AliAnaParticleHadronCorrelation() ; // default ctor
29   virtual ~AliAnaParticleHadronCorrelation() {;} //virtual dtor
30  private:  
31   AliAnaParticleHadronCorrelation(const AliAnaParticleHadronCorrelation & ph) ; // cpy ctor
32   AliAnaParticleHadronCorrelation & operator = (const AliAnaParticleHadronCorrelation & ph) ;//cpy assignment
33
34  public:
35   
36   TObjString * GetAnalysisCuts();
37   TList * GetCreateOutputObjects();
38   
39   Double_t GetDeltaPhiMaxCut() const {return fDeltaPhiMaxCut ; }
40   Double_t GetDeltaPhiMinCut() const {return fDeltaPhiMinCut ; }
41   void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax)
42   {fDeltaPhiMaxCut =phimax;  fDeltaPhiMinCut =phimin;}
43
44   Double_t GetUeDeltaPhiMaxCut() const {return fUeDeltaPhiMaxCut ; }
45   Double_t GetUeDeltaPhiMinCut() const {return fUeDeltaPhiMinCut ; }
46   void SetUeDeltaPhiCutRange(Double_t uephimin, Double_t uephimax)
47   {fUeDeltaPhiMaxCut =uephimax;  fUeDeltaPhiMinCut =uephimin;}
48   Bool_t IsSeveralUEOn() const {return fMakeSeveralUE ; }
49   void SwitchOnSeveralUECalculation()  { fMakeSeveralUE = kTRUE;}
50   void SwitchOffSeveralUECalculation() { fMakeSeveralUE = kFALSE;}
51
52   // Do decay-hadron correlation if it is pi0 trigger
53   Bool_t IsPi0Trigger() const {return fPi0Trigger ; }
54   void SwitchOnDecayCorr()  { fPi0Trigger = kTRUE;}
55   void SwitchOffDecayCorr() { fPi0Trigger = kFALSE;}  
56   
57   Bool_t OnlyIsolated() const {return fSelectIsolated ; }
58   void SelectIsolated(Bool_t select) {fSelectIsolated = select ; }
59   
60   void InitParameters();
61   
62   void Print(const Option_t * opt) const;
63   
64   void MakeChargedCorrelation(AliAODPWG4ParticleCorrelation * aodParticle,TObjArray* const pl,   const Bool_t bFillHisto) ;
65   void MakeNeutralCorrelation(AliAODPWG4ParticleCorrelation * aodParticle,TObjArray* const pl, const Bool_t bFillHisto) ;
66
67   //void MakeNeutralCorrelationFillAOD(AliAODPWG4ParticleCorrelation* const aodParticle, TObjArray* const pl, TString detector)  ;
68   //void MakeNeutralCorrelationFillHistograms(AliAODPWG4ParticleCorrelation* const aodParticle)  ;
69         
70   void MakeAnalysisFillAOD()  ;
71   void MakeAnalysisFillHistograms() ; 
72   
73   //Bool_t SelectCluster(AliVCluster * calo, Double_t *vertex, TLorentzVector & mom, Int_t & pdg) ;
74   
75   void SetPi0AODBranchName(TString pi0list) {fPi0AODBranchName = pi0list;}
76   
77  private:
78   
79   Double_t   fDeltaPhiMaxCut ;      // Minimum Delta Phi Gamma-Hadron
80   Double_t   fDeltaPhiMinCut ;      // Maximum Delta Phi Gamma-Hadron
81   Bool_t     fSelectIsolated ;      // Select only trigger particles isolated
82   Bool_t     fMakeSeveralUE ;       // Do analysis for several underlying events contribution
83   Double_t   fUeDeltaPhiMaxCut ;    // Minimum Delta Phi Gamma-Underlying Hadron
84   Double_t   fUeDeltaPhiMinCut ;    // Maximum Delta Phi Gamma-Underlying Hadron
85   TString    fPi0AODBranchName;     // Name of AOD branch with pi0, not trigger
86   Bool_t     fPi0Trigger ;          // Do analysis with decay photon from pi0 trigger
87
88   //Histograms
89   //leading particles 
90   TH1F * fhPtLeading;         //! pT distribution of leading particles
91   TH2F * fhPhiLeading;        //! phi distribution vs pT of leading particles
92   TH2F * fhEtaLeading;        //! eta distribution vs pT of leading particles
93   TH2F * fhDeltaPhiDeltaEtaCharged ; //! differences of eta and phi between trigger and charged hadrons
94   TH2F * fhDeltaPhiDeltaEtaNeutral ; //! differences of eta and phi between trigger and neutral hadrons (pi0)
95         
96   TH2F * fhPhiCharged  ;         //! Phi distribution of charged particles
97   TH2F * fhPhiNeutral   ;        //! Phi distribution of neutral particles
98   TH2F * fhEtaCharged  ;         //! Eta distribution of charged particles
99   TH2F * fhEtaNeutral   ;        //! Eta distribution of neutral particles
100   TH2F * fhDeltaPhiCharged  ;    //! Difference of charged particle phi and trigger particle  phi as function of  trigger particle pT
101   TH2F * fhDeltaPhiNeutral   ;   //! Difference of neutral particle phi and trigger particle  phi as function of  trigger particle pT
102   TH2F * fhDeltaEtaCharged  ;    //! Difference of charged particle eta and trigger particle  eta as function of  trigger particle pT
103   TH2F * fhDeltaEtaNeutral  ;    //! Difference of neutral particle eta and trigger particle  eta as function of  trigger particle pT
104   TH2F * fhDeltaPhiChargedPt  ;  //! Difference of charged particle phi and trigger particle  phi as function of charged particle pT
105   TH2F * fhDeltaPhiNeutralPt  ;  //! Difference of neutral particle phi and trigger particle  phi as function of neutral particle particle pT
106   TH2F * fhDeltaPhiUeChargedPt ; //! Difference of charged particle from underlying events phi and trigger particle  phi as function of charged particle pT
107   TH2F * fhDeltaPhiUeNeutralPt ; //! Difference of neutral particle phi and trigger particle  phi as function of neutral particle particle pT
108
109   TH2F * fhPtImbalanceNeutral  ;   //! Trigger particle - neutral hadron momentum imbalance histogram 
110   TH2F * fhPtImbalanceCharged  ;   //! Trigger particle -charged hadron momentim imbalance histogram
111   TH2F * fhPtImbalanceUeCharged  ; //! Trigger particle -underlying charged hadron momentim imbalance histogram  
112   TH2F * fhPtImbalanceUeNeutral  ; //! Trigger particle - neutral hadron momentum imbalance histogram 
113
114   //with different imblance varible defination HBP distribution
115   TH2F * fhPtHbpCharged  ;   //! Trigger particle -charged hadron momentim HBP histogram
116   TH2F * fhPtHbpUeCharged  ; //! Trigger particle -underlying charged hadron momentim HBP histogram  
117   TH2F * fhPtHbpNeutral  ;   //! Trigger particle -neutral particle momentim HBP histogram
118   TH2F * fhPtHbpUeNeutral  ; //! Trigger particle -underlying neutral 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 * fhDeltaPhiUeLeftNeutral  ;    //! Difference of charged particle from underlying events phi and trigger particle  phi as function of neutral particle pT
124   TH2F * fhDeltaPhiUeRightNeutral  ;   //! Difference of charged particle from underlying events phi and trigger particle  phi 
125   TH2F * fhPtImbalanceUeLeftCharged  ; //! Trigger particle -underlying charged hadron momentim imbalance histogram 
126   TH2F * fhPtImbalanceUeRightCharged ; //! Trigger particle -underlying charged hadron momentim imbalance histogram  
127   TH2F * fhPtImbalanceUeLeftNeutral  ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram 
128   TH2F * fhPtImbalanceUeRightNeutral ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram 
129   TH2F * fhPtHbpUeLeftCharged  ;       //! Trigger particle -underlying charged hadron momentim HBP histogram 
130   TH2F * fhPtHbpUeRightCharged  ;      //! Trigger particle -underlying charged hadron momentim HBP histogram  
131   TH2F * fhPtHbpUeLeftNeutral  ;       //! Trigger particle -underlying neutral hadron momentim HBP histogram 
132   TH2F * fhPtHbpUeRightNeutral  ;      //! Trigger particle -underlying neutral hadron momentim HBP histogram  
133         
134   //for decay photon trigger correlation
135   TH3D * fhPtPi0DecayRatio ;          //! for pi0 pt and ratio of decay photon pt
136   TH2F * fhDeltaPhiDecay1Charged  ;   //! Difference of charged particle phi and decay trigger
137   TH2F * fhDeltaPhiDecay2Charged  ;   //! Difference of charged particle phi and decay trigger
138   TH2F * fhPtImbalanceDecay1Charged ; //! Trigger particle (decay 1 from pi0)-charged hadron momentim imbalance histogram  
139   TH2F * fhPtImbalanceDecay2Charged ; //! Trigger particle (decay 2 from pi0) -charged hadron momentim imbalance histogram
140   
141   TH2F * fhDeltaPhiDecay1Neutral  ;   //! Difference of neutral particle phi and decay trigger
142   TH2F * fhDeltaPhiDecay2Neutral  ;   //! Difference of neutral particle phi and decay trigger
143   TH2F * fhPtImbalanceDecay1Neutral ; //! Trigger particle (decay 1 from pi0)-neutral hadron momentim imbalance histogram  
144   TH2F * fhPtImbalanceDecay2Neutral ; //! Trigger particle (decay 2 from pi0) -neutral hadron momentim imbalance histogram  
145         
146   ClassDef(AliAnaParticleHadronCorrelation,4)
147 } ;
148  
149
150 #endif //ALIANAPARTICLEHADRONCORRELATION_H
151
152
153