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