]>
Commit | Line | Data |
---|---|---|
045396c8 | 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 */ | |
045396c8 | 5 | |
6 | //_________________________________________________________________________ | |
7 | // Class that contains the algorithm for the analysis of particle - hadron correlations | |
8 | // Particle (for example direct gamma) must be found in a previous analysis | |
9 | //-- Author: Gustavo Conesa (INFN-LNF) | |
10 | ||
11 | // Modified by Yaxian Mao: | |
12 | // 1. add the UE subtraction for corrlation study | |
13 | // 2. change the correlation variable | |
14 | // 3. Only use leading particle(cluster/track) as trigger for correlation (2010/07/02) | |
15 | // 4. Make decay photon-hadron correlations where decay contribute pi0 mass (2010/09/09) | |
16 | // 5. fill the pout to extract kt at the end, also to study charge asymmetry(2010/10/06) | |
17 | // 6. Add the possibility for event selection analysis based on vertex and multiplicity bins (10/10/2010) | |
18 | // 7. change the way of delta phi cut for UE study due to memory issue (reduce histograms) | |
19 | // 8. Add the possibility to request the absolute leading particle at the near side or not, set trigger bins, general clean-up (08/2011) | |
20 | ||
21 | // --- ROOT system --- | |
22 | //class TH3D; | |
23 | ||
24 | // --- Analysis system --- | |
745913ae | 25 | #include "AliAnaCaloTrackCorrBaseClass.h" |
045396c8 | 26 | class AliAODPWG4ParticleCorrelation ; |
27 | ||
745913ae | 28 | class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass { |
045396c8 | 29 | |
30 | public: | |
c5693f62 | 31 | |
045396c8 | 32 | AliAnaParticleHadronCorrelation() ; // default ctor |
33 | virtual ~AliAnaParticleHadronCorrelation() {;} //virtual dtor | |
045396c8 | 34 | |
35 | // General methods | |
36 | ||
37 | TObjString * GetAnalysisCuts(); | |
38 | ||
39 | TList * GetCreateOutputObjects(); | |
40 | ||
41 | void InitParameters(); | |
42 | ||
43 | void MakeAnalysisFillAOD() ; | |
44 | ||
45 | void MakeAnalysisFillHistograms() ; | |
46 | ||
47 | void Print(const Option_t * opt) const; | |
48 | ||
49 | // Main analysis methods | |
50 | ||
c5693f62 | 51 | Bool_t MakeChargedCorrelation (AliAODPWG4ParticleCorrelation * aodParticle, const TObjArray* pl, const Bool_t bFillHisto) ; |
045396c8 | 52 | |
c5693f62 | 53 | Bool_t MakeNeutralCorrelation (AliAODPWG4ParticleCorrelation * aodParticle, const TObjArray* pl, const Bool_t bFillHisto) ; |
045396c8 | 54 | |
66e64043 | 55 | void MakeMCChargedCorrelation(AliAODPWG4ParticleCorrelation * aodParticle); |
045396c8 | 56 | |
57 | ||
58 | // Parameter setter and getter | |
59 | ||
66e64043 | 60 | Float_t GetMinimumTriggerPt() const { return fMinTriggerPt ; } |
61 | ||
62 | Float_t GetMaximumAssociatedPt() const { return fMaxAssocPt ; } | |
63 | Float_t GetMinimumAssociatedPt() const { return fMinAssocPt ; } | |
64 | ||
045396c8 | 65 | Double_t GetDeltaPhiMaxCut() const { return fDeltaPhiMaxCut ; } |
66 | Double_t GetDeltaPhiMinCut() const { return fDeltaPhiMinCut ; } | |
66e64043 | 67 | |
045396c8 | 68 | Double_t GetUeDeltaPhiMaxCut() const { return fUeDeltaPhiMaxCut ; } |
69 | Double_t GetUeDeltaPhiMinCut() const { return fUeDeltaPhiMinCut ; } | |
70 | ||
66e64043 | 71 | void SetMinimumTriggerPt(Float_t min){ fMinTriggerPt = min ; } |
72 | ||
73 | void SetAssociatedPtRange(Float_t min, Float_t max) | |
74 | { fMaxAssocPt = max ; fMinAssocPt = min ; } | |
75 | ||
045396c8 | 76 | void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax) |
77 | { fDeltaPhiMaxCut = phimax ; fDeltaPhiMinCut = phimin ; } | |
66e64043 | 78 | |
045396c8 | 79 | void SetUeDeltaPhiCutRange(Double_t uephimin, Double_t uephimax) |
80 | { fUeDeltaPhiMaxCut = uephimax; fUeDeltaPhiMinCut = uephimin ; } | |
81 | ||
82 | Bool_t IsSeveralUEOn() const { return fMakeSeveralUE ; } | |
83 | void SwitchOnSeveralUECalculation() { fMakeSeveralUE = kTRUE ; } | |
84 | void SwitchOffSeveralUECalculation() { fMakeSeveralUE = kFALSE ; } | |
85 | ||
86 | // Do trigger-neutral correlation | |
87 | Bool_t DoNeutralCorr() const { return fNeutralCorr ; } | |
88 | void SwitchOnNeutralCorr() { fNeutralCorr = kTRUE ; } | |
89 | void SwitchOffNeutralCorr() { fNeutralCorr = kFALSE ; } | |
90 | ||
91 | // Taking the absolute leading as the trigger or not | |
92 | Bool_t DoAbsoluteLeading() const { return fMakeAbsoluteLeading ; } | |
93 | void SwitchOnAbsoluteLeading() { fMakeAbsoluteLeading = kTRUE ; } | |
94 | void SwitchOffAbsoluteLeading() { fMakeAbsoluteLeading = kFALSE ; } | |
95 | ||
96 | // Do decay-hadron correlation if it is pi0 trigger | |
97 | Bool_t IsPi0Trigger() const { return fPi0Trigger ; } | |
98 | void SwitchOnDecayCorr() { fPi0Trigger = kTRUE ; } | |
99 | void SwitchOffDecayCorr() { fPi0Trigger = kFALSE ; } | |
100 | ||
101 | Bool_t OnlyIsolated() const { return fSelectIsolated ; } | |
102 | void SelectIsolated(Bool_t s) { fSelectIsolated = s ; } | |
103 | ||
104 | void SetPi0AODBranchName(TString n) { fPi0AODBranchName = n ; } | |
105 | ||
05d0d05d | 106 | void SetNAssocPtBins(Int_t n) ; |
107 | void SetAssocPtBinLimit(Int_t ibin, Float_t pt) ; | |
045396c8 | 108 | |
109 | private: | |
66e64043 | 110 | Float_t fMinTriggerPt ; // Minimum trigger hadron pt |
111 | Float_t fMaxAssocPt ; // Maximum associated hadron pt | |
112 | Float_t fMinAssocPt ; // Minimum associated hadron pt | |
045396c8 | 113 | Double_t fDeltaPhiMaxCut ; // Minimum Delta Phi Gamma-Hadron |
114 | Double_t fDeltaPhiMinCut ; // Maximum Delta Phi Gamma-Hadron | |
115 | Bool_t fSelectIsolated ; // Select only trigger particles isolated | |
116 | Bool_t fMakeSeveralUE ; // Do analysis for several underlying events contribution | |
117 | Double_t fUeDeltaPhiMaxCut ; // Minimum Delta Phi Gamma-Underlying Hadron | |
118 | Double_t fUeDeltaPhiMinCut ; // Maximum Delta Phi Gamma-Underlying Hadron | |
119 | TString fPi0AODBranchName; // Name of AOD branch with pi0, not trigger | |
120 | Bool_t fNeutralCorr ; // switch the analysis with neutral particles | |
121 | Bool_t fPi0Trigger ; // switch the analysis with decay photon from pi0 trigger | |
122 | Bool_t fMakeAbsoluteLeading ; // requesting absolute leading while it is cluster triggers | |
123 | Int_t fLeadingTriggerIndex ; // Store here per event the trigger index, to avoid too many loops | |
124 | ||
05d0d05d | 125 | Int_t fNAssocPtBins ; // Number of associated pT bins under study |
126 | Float_t fAssocPtBinLimit[10] ; // Associated pT under study | |
045396c8 | 127 | |
128 | //Histograms | |
129 | ||
130 | //leading particles | |
131 | TH1F * fhPtLeading; //! pT distribution of leading particles | |
132 | TH2F * fhPhiLeading; //! phi distribution vs pT of leading particles | |
133 | TH2F * fhEtaLeading; //! eta distribution vs pT of leading particles | |
134 | ||
135 | //trigger-charged histograms | |
136 | TH2F * fhDeltaPhiDeltaEtaCharged ; //! differences of eta and phi between trigger and charged hadrons | |
137 | TH2F * fhPhiCharged ; //! Phi distribution of charged particles | |
138 | TH2F * fhEtaCharged ; //! Eta distribution of charged particles | |
139 | TH2F * fhDeltaPhiCharged ; //! Difference of charged particle phi and trigger particle phi as function of trigger particle pT | |
140 | TH2F * fhDeltaEtaCharged ; //! Difference of charged particle eta and trigger particle eta as function of trigger particle pT | |
141 | TH2F * fhDeltaPhiChargedPt ; //! Difference of charged particle phi and trigger particle phi as function of charged particle pT | |
142 | TH2F * fhDeltaPhiUeChargedPt ; //! Difference of charged particle from underlying events phi and trigger particle phi as function of charged particle pT | |
143 | TH2F * fhPtImbalanceCharged ; //! Trigger particle -charged hadron momentim imbalance histogram | |
144 | TH2F * fhPtImbalanceUeCharged ; //! Trigger particle -underlying charged hadron momentum imbalance histogram | |
145 | TH2F * fhPtImbalancePosCharged ; //! Trigger particle -positive charged hadron momentum imbalance histogram | |
146 | TH2F * fhPtImbalanceNegCharged ; //! Trigger particle -negative charged hadron momentum imbalance histogram | |
147 | ||
148 | //with different imblance varible defination HBP distribution | |
149 | TH2F * fhPtHbpCharged ; //! Trigger particle -charged hadron momentim HBP histogram | |
150 | TH2F * fhPtHbpUeCharged ; //! Trigger particle -underlying charged hadron momentim HBP histogram | |
151 | ||
152 | //if several UE calculation is on, most useful for jet-jet events contribution | |
153 | TH2F * fhDeltaPhiUeLeftCharged ; //! Difference of charged particle from underlying events phi and trigger particle phi as function of charged particle pT | |
154 | TH2F * fhDeltaPhiUeRightCharged ; //! Difference of charged particle from underlying events phi and trigger particle phi | |
155 | TH2F * fhPtImbalanceUeLeftCharged ; //! Trigger particle -underlying charged hadron momentim imbalance histogram | |
156 | TH2F * fhPtImbalanceUeRightCharged ; //! Trigger particle -underlying charged hadron momentim imbalance histogram | |
157 | TH2F * fhPtHbpUeLeftCharged ; //! Trigger particle -underlying charged hadron momentim HBP histogram | |
158 | TH2F * fhPtHbpUeRightCharged ; //! Trigger particle -underlying charged hadron momentim HBP histogram | |
159 | ||
160 | //for pout and kt extraction | |
05d0d05d | 161 | TH2F * fhPtTrigPout ; //! Pout =associated pt*sin(delta phi) distribution vs trigger pt |
045396c8 | 162 | TH2F * fhPtTrigCharged ; //! trigger and correlated particl pt, to be used for mean value for kt |
163 | ||
164 | //if different multiplicity analysis asked | |
05d0d05d | 165 | TH2F ** fhTrigDeltaPhiCharged ; //![GetMultiBin()] differences of phi between trigger and charged hadrons |
166 | TH2F ** fhTrigDeltaEtaCharged ; //![GetMultiBin()] differences of eta between trigger and charged hadrons | |
167 | TH2F ** fhTrigCorr ; //![GetMultiBin()] Trigger particle -charged hadron momentim imbalance histogram | |
168 | TH2F ** fhTrigUeCorr ; //![GetMultiBin()] Trigger particle -UE charged hadron momentim imbalance histogram | |
045396c8 | 169 | |
05d0d05d | 170 | TH2F * fhAssocPt ; //! Trigger pT vs associated pT |
171 | TH2F * fhAssocPtBkg; //! Trigger pT vs associated pT for background | |
172 | TH2F ** fhDeltaPhiAssocPtBin; //![fNAssocPtBins] Trigger pT vs dPhi for different associated pt bins | |
06d3bad7 | 173 | TH2F ** fhDeltaPhiAssocPtBinHMPID; //![fNAssocPtBins] Trigger pT vs dPhi for different associated pt bins, track with HMPID |
174 | TH2F ** fhDeltaPhiAssocPtBinHMPIDAcc; //![fNAssocPtBins] Trigger pT vs dPhi for different associated pt bins, track with HMPIDAcc | |
05d0d05d | 175 | TH2F ** fhDeltaPhiBradAssocPtBin; //![fNAssocPtBins] Trigger pT vs dPhi Brad (?) for different associated pt bins |
66e64043 | 176 | TH2F * fhDeltaPhiBrad; //! Trigger pT vs dPhi Brad (?) for different associated pt bins |
05d0d05d | 177 | TH2F ** fhXEAssocPtBin ; //![fNAssocPtBins] Trigger pT vs xE for different associated pt bins |
66e64043 | 178 | TH2F * fhXE ; //! Trigger pT vs xE for different associated pt bins |
045396c8 | 179 | |
180 | //trigger-neutral histograms | |
181 | TH2F * fhDeltaPhiDeltaEtaNeutral ; //! differences of eta and phi between trigger and neutral hadrons (pi0) | |
182 | TH2F * fhPhiNeutral ; //! Phi distribution of neutral particles | |
183 | TH2F * fhEtaNeutral ; //! Eta distribution of neutral particles | |
184 | TH2F * fhDeltaPhiNeutral ; //! Difference of neutral particle phi and trigger particle phi as function of trigger particle pT | |
185 | TH2F * fhDeltaEtaNeutral ; //! Difference of neutral particle eta and trigger particle eta as function of trigger particle pT | |
186 | TH2F * fhDeltaPhiNeutralPt ; //! Difference of neutral particle phi and trigger particle phi as function of neutral particle particle pT | |
187 | TH2F * fhDeltaPhiUeNeutralPt ; //! Difference of neutral particle phi and trigger particle phi as function of neutral particle particle pT | |
188 | TH2F * fhPtImbalanceNeutral ; //! Trigger particle - neutral hadron momentum imbalance histogram | |
189 | TH2F * fhPtImbalanceUeNeutral ; //! Trigger particle - neutral hadron momentum imbalance histogram | |
190 | ||
191 | //with different imblance varible defination HBP distribution | |
192 | TH2F * fhPtHbpNeutral ; //! Trigger particle -neutral particle momentim HBP histogram | |
193 | TH2F * fhPtHbpUeNeutral ; //! Trigger particle -underlying neutral hadron momentim HBP histogram | |
194 | ||
195 | //if several UE calculation is on, most useful for jet-jet events contribution | |
196 | TH2F * fhDeltaPhiUeLeftNeutral ; //! Difference of charged particle from underlying events phi and trigger particle phi as function of neutral particle pT | |
197 | TH2F * fhDeltaPhiUeRightNeutral ; //! Difference of charged particle from underlying events phi and trigger particle phi | |
198 | TH2F * fhPtImbalanceUeLeftNeutral ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram | |
199 | TH2F * fhPtImbalanceUeRightNeutral ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram | |
200 | TH2F * fhPtHbpUeLeftNeutral ; //! Trigger particle -underlying neutral hadron momentim HBP histogram | |
201 | TH2F * fhPtHbpUeRightNeutral ; //! Trigger particle -underlying neutral hadron momentim HBP histogram | |
202 | ||
203 | //for decay photon trigger correlation | |
204 | TH2F * fhPtPi0DecayRatio ; //! for pi0 pt and ratio of decay photon pt | |
205 | TH2F * fhDeltaPhiDecayCharged ; //! Difference of charged particle phi and decay trigger | |
206 | TH2F * fhPtImbalanceDecayCharged ; //! Trigger particle (decay from pi0)-charged hadron momentim imbalance histogram | |
207 | TH2F * fhDeltaPhiDecayNeutral ; //! Difference of neutral particle phi and decay trigger | |
208 | TH2F * fhPtImbalanceDecayNeutral ; //! Trigger particle (decay from pi0)-neutral hadron momentim imbalance histogram | |
209 | ||
210 | //if the data is MC, fill MC information | |
211 | TH2F * fh2phiLeadingParticle; //! #phi resolution for triggers | |
212 | TH1F * fhMCLeadingCount; //! add explanation | |
213 | TH2F * fhMCEtaCharged; //! add explanation | |
214 | TH2F * fhMCPhiCharged; //! add explanation | |
215 | TH2F * fhMCDeltaEtaCharged; //! add explanation | |
216 | TH2F * fhMCDeltaPhiCharged; //! add explanation | |
217 | TH2F * fhMCDeltaPhiDeltaEtaCharged; //! add explanation | |
218 | TH2F * fhMCDeltaPhiChargedPt; //! add explanation | |
219 | TH2F * fhMCPtImbalanceCharged; //! add explanation | |
220 | TH2F * fhMCPtHbpCharged; //! add explanation | |
221 | TH2F * fhMCPtTrigPout ; //! add explanation | |
222 | TH2F * fhMCPtAssocDeltaPhi ; //! Pout =associated pt*sin(delta phi) distribution | |
223 | ||
c5693f62 | 224 | AliAnaParticleHadronCorrelation(const AliAnaParticleHadronCorrelation & ph) ; // cpy ctor |
225 | AliAnaParticleHadronCorrelation & operator = (const AliAnaParticleHadronCorrelation & ph) ;//cpy assignment | |
045396c8 | 226 | |
66e64043 | 227 | ClassDef(AliAnaParticleHadronCorrelation,9) |
045396c8 | 228 | } ; |
229 | ||
230 | ||
231 | #endif //ALIANAPARTICLEHADRONCORRELATION_H | |
232 | ||
233 | ||
234 |