]>
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 */ | |
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 possibility 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 | // 8. Add the possibility to request the absolute leading particle at the near side or not, set trigger bins, general clean-up (08/2011) | |
21 | ||
22 | // --- ROOT system --- | |
23 | //class TH3D; | |
24 | ||
25 | // --- Analysis system --- | |
26 | #include "AliAnaPartCorrBaseClass.h" | |
27 | class AliAODPWG4ParticleCorrelation ; | |
28 | ||
29 | class AliAnaParticleHadronCorrelation : public AliAnaPartCorrBaseClass { | |
30 | ||
31 | public: | |
32 | AliAnaParticleHadronCorrelation() ; // default ctor | |
33 | virtual ~AliAnaParticleHadronCorrelation() {;} //virtual dtor | |
34 | private: | |
35 | AliAnaParticleHadronCorrelation(const AliAnaParticleHadronCorrelation & ph) ; // cpy ctor | |
36 | AliAnaParticleHadronCorrelation & operator = (const AliAnaParticleHadronCorrelation & ph) ;//cpy assignment | |
37 | ||
38 | public: | |
39 | ||
40 | // General methods | |
41 | ||
42 | TObjString * GetAnalysisCuts(); | |
43 | ||
44 | TList * GetCreateOutputObjects(); | |
45 | ||
46 | void InitParameters(); | |
47 | ||
48 | void MakeAnalysisFillAOD() ; | |
49 | ||
50 | void MakeAnalysisFillHistograms() ; | |
51 | ||
52 | void Print(const Option_t * opt) const; | |
53 | ||
54 | // Main analysis methods | |
55 | ||
56 | Bool_t MakeChargedCorrelation (AliAODPWG4ParticleCorrelation * aodParticle, TObjArray* pl, const Bool_t bFillHisto) ; | |
57 | ||
58 | Bool_t MakeNeutralCorrelation (AliAODPWG4ParticleCorrelation * aodParticle, TObjArray* pl, const Bool_t bFillHisto) ; | |
59 | ||
60 | void MakeMCChargedCorrelation(AliAODPWG4ParticleCorrelation *aodParticle); | |
61 | ||
62 | ||
63 | // Parameter setter and getter | |
64 | ||
65 | Double_t GetDeltaPhiMaxCut() const { return fDeltaPhiMaxCut ; } | |
66 | Double_t GetDeltaPhiMinCut() const { return fDeltaPhiMinCut ; } | |
67 | Double_t GetUeDeltaPhiMaxCut() const { return fUeDeltaPhiMaxCut ; } | |
68 | Double_t GetUeDeltaPhiMinCut() const { return fUeDeltaPhiMinCut ; } | |
69 | ||
70 | void SetDeltaPhiCutRange(Double_t phimin, Double_t phimax) | |
71 | { fDeltaPhiMaxCut = phimax ; fDeltaPhiMinCut = phimin ; } | |
72 | void SetUeDeltaPhiCutRange(Double_t uephimin, Double_t uephimax) | |
73 | { fUeDeltaPhiMaxCut = uephimax; fUeDeltaPhiMinCut = uephimin ; } | |
74 | ||
75 | Bool_t IsSeveralUEOn() const { return fMakeSeveralUE ; } | |
76 | void SwitchOnSeveralUECalculation() { fMakeSeveralUE = kTRUE ; } | |
77 | void SwitchOffSeveralUECalculation() { fMakeSeveralUE = kFALSE ; } | |
78 | ||
79 | // Do trigger-neutral correlation | |
80 | Bool_t DoNeutralCorr() const { return fNeutralCorr ; } | |
81 | void SwitchOnNeutralCorr() { fNeutralCorr = kTRUE ; } | |
82 | void SwitchOffNeutralCorr() { fNeutralCorr = kFALSE ; } | |
83 | ||
84 | // Taking the absolute leading as the trigger or not | |
85 | Bool_t DoAbsoluteLeading() const { return fMakeAbsoluteLeading ; } | |
86 | void SwitchOnAbsoluteLeading() { fMakeAbsoluteLeading = kTRUE ; } | |
87 | void SwitchOffAbsoluteLeading() { fMakeAbsoluteLeading = kFALSE ; } | |
88 | ||
89 | // Do decay-hadron correlation if it is pi0 trigger | |
90 | Bool_t IsPi0Trigger() const { return fPi0Trigger ; } | |
91 | void SwitchOnDecayCorr() { fPi0Trigger = kTRUE ; } | |
92 | void SwitchOffDecayCorr() { fPi0Trigger = kFALSE ; } | |
93 | ||
94 | Bool_t OnlyIsolated() const { return fSelectIsolated ; } | |
95 | void SelectIsolated(Bool_t s) { fSelectIsolated = s ; } | |
96 | ||
97 | void SetPi0AODBranchName(TString n) { fPi0AODBranchName = n ; } | |
98 | ||
99 | void SetNTriggerPtBins(Int_t n) ; | |
100 | void SetTriggerPtBinLimit(Int_t ibin, Float_t pt) ; | |
101 | ||
102 | private: | |
103 | ||
104 | Double_t fDeltaPhiMaxCut ; // Minimum Delta Phi Gamma-Hadron | |
105 | Double_t fDeltaPhiMinCut ; // Maximum Delta Phi Gamma-Hadron | |
106 | Bool_t fSelectIsolated ; // Select only trigger particles isolated | |
107 | Bool_t fMakeSeveralUE ; // Do analysis for several underlying events contribution | |
108 | Double_t fUeDeltaPhiMaxCut ; // Minimum Delta Phi Gamma-Underlying Hadron | |
109 | Double_t fUeDeltaPhiMinCut ; // Maximum Delta Phi Gamma-Underlying Hadron | |
110 | TString fPi0AODBranchName; // Name of AOD branch with pi0, not trigger | |
111 | Bool_t fNeutralCorr ; // switch the analysis with neutral particles | |
112 | Bool_t fPi0Trigger ; // switch the analysis with decay photon from pi0 trigger | |
113 | Bool_t fMakeAbsoluteLeading ; // requesting absolute leading while it is cluster triggers | |
114 | Int_t fLeadingTriggerIndex ; // Store here per event the trigger index, to avoid too many loops | |
115 | ||
116 | Int_t fNTriggerPtBins ; // Number of trigger bins under study | |
117 | Float_t fTriggerPtBinLimit[10] ; // Trigger pt limtis | |
118 | ||
119 | //Histograms | |
120 | ||
121 | //leading particles | |
122 | TH1F * fhPtLeading; //! pT distribution of leading particles | |
123 | TH2F * fhPhiLeading; //! phi distribution vs pT of leading particles | |
124 | TH2F * fhEtaLeading; //! eta distribution vs pT of leading particles | |
125 | ||
126 | //trigger-charged histograms | |
127 | TH2F * fhDeltaPhiDeltaEtaCharged ; //! differences of eta and phi between trigger and charged hadrons | |
128 | TH2F * fhPhiCharged ; //! Phi distribution of charged particles | |
129 | TH2F * fhEtaCharged ; //! Eta distribution of charged particles | |
130 | TH2F * fhDeltaPhiCharged ; //! Difference of charged particle phi and trigger particle phi as function of trigger particle pT | |
131 | TH2F * fhDeltaEtaCharged ; //! Difference of charged particle eta and trigger particle eta as function of trigger particle pT | |
132 | TH2F * fhDeltaPhiChargedPt ; //! Difference of charged particle phi and trigger particle phi as function of charged particle pT | |
133 | TH2F * fhDeltaPhiUeChargedPt ; //! Difference of charged particle from underlying events phi and trigger particle phi as function of charged particle pT | |
134 | TH2F * fhPtImbalanceCharged ; //! Trigger particle -charged hadron momentim imbalance histogram | |
135 | TH2F * fhPtImbalanceUeCharged ; //! Trigger particle -underlying charged hadron momentum imbalance histogram | |
136 | TH2F * fhPtImbalancePosCharged ; //! Trigger particle -positive charged hadron momentum imbalance histogram | |
137 | TH2F * fhPtImbalanceNegCharged ; //! Trigger particle -negative charged hadron momentum imbalance histogram | |
138 | ||
139 | //with different imblance varible defination HBP distribution | |
140 | TH2F * fhPtHbpCharged ; //! Trigger particle -charged hadron momentim HBP histogram | |
141 | TH2F * fhPtHbpUeCharged ; //! Trigger particle -underlying charged hadron momentim HBP histogram | |
142 | ||
143 | //if several UE calculation is on, most useful for jet-jet events contribution | |
144 | TH2F * fhDeltaPhiUeLeftCharged ; //! Difference of charged particle from underlying events phi and trigger particle phi as function of charged particle pT | |
145 | TH2F * fhDeltaPhiUeRightCharged ; //! Difference of charged particle from underlying events phi and trigger particle phi | |
146 | TH2F * fhPtImbalanceUeLeftCharged ; //! Trigger particle -underlying charged hadron momentim imbalance histogram | |
147 | TH2F * fhPtImbalanceUeRightCharged ; //! Trigger particle -underlying charged hadron momentim imbalance histogram | |
148 | TH2F * fhPtHbpUeLeftCharged ; //! Trigger particle -underlying charged hadron momentim HBP histogram | |
149 | TH2F * fhPtHbpUeRightCharged ; //! Trigger particle -underlying charged hadron momentim HBP histogram | |
150 | ||
151 | //for pout and kt extraction | |
152 | TH2F * fhPtTrigPout ; //! Pout =associated pt*sin(delta phi) distribution vs trigger pt vs associated pt | |
153 | TH2F * fhPtAssocDeltaPhi ; //! Pout =associated pt*sin(delta phi) distribution | |
154 | TH2F * fhPtTrigCharged ; //! trigger and correlated particl pt, to be used for mean value for kt | |
155 | ||
156 | //if different multiplicity analysis asked | |
157 | TH2F ** fhTrigDeltaPhiCharged ; //! differences of phi between trigger and charged hadrons | |
158 | TH2F ** fhTrigDeltaEtaCharged ; //! differences of eta between trigger and charged hadrons | |
159 | TH2F ** fhTrigCorr ; //! Trigger particle -charged hadron momentim imbalance histogram | |
160 | TH2F ** fhTrigUeCorr ; //! Trigger particle -UE charged hadron momentim imbalance histogram | |
161 | ||
162 | TH1F * fhTrigPt[10] ; //! add explanation | |
163 | TH1F * fhDphiTrigPtAssocPt[10]; //! add explanation | |
164 | TH1F * fhAssocPtBkg[10]; //! add explanation | |
165 | TH1F * fhXE[10] ; //! add explanation | |
166 | ||
167 | //trigger-neutral histograms | |
168 | TH2F * fhDeltaPhiDeltaEtaNeutral ; //! differences of eta and phi between trigger and neutral hadrons (pi0) | |
169 | TH2F * fhPhiNeutral ; //! Phi distribution of neutral particles | |
170 | TH2F * fhEtaNeutral ; //! Eta distribution of neutral particles | |
171 | TH2F * fhDeltaPhiNeutral ; //! Difference of neutral particle phi and trigger particle phi as function of trigger particle pT | |
172 | TH2F * fhDeltaEtaNeutral ; //! Difference of neutral particle eta and trigger particle eta as function of trigger particle pT | |
173 | TH2F * fhDeltaPhiNeutralPt ; //! Difference of neutral particle phi and trigger particle phi as function of neutral particle particle pT | |
174 | TH2F * fhDeltaPhiUeNeutralPt ; //! Difference of neutral particle phi and trigger particle phi as function of neutral particle particle pT | |
175 | TH2F * fhPtImbalanceNeutral ; //! Trigger particle - neutral hadron momentum imbalance histogram | |
176 | TH2F * fhPtImbalanceUeNeutral ; //! Trigger particle - neutral hadron momentum imbalance histogram | |
177 | ||
178 | //with different imblance varible defination HBP distribution | |
179 | TH2F * fhPtHbpNeutral ; //! Trigger particle -neutral particle momentim HBP histogram | |
180 | TH2F * fhPtHbpUeNeutral ; //! Trigger particle -underlying neutral hadron momentim HBP histogram | |
181 | ||
182 | //if several UE calculation is on, most useful for jet-jet events contribution | |
183 | TH2F * fhDeltaPhiUeLeftNeutral ; //! Difference of charged particle from underlying events phi and trigger particle phi as function of neutral particle pT | |
184 | TH2F * fhDeltaPhiUeRightNeutral ; //! Difference of charged particle from underlying events phi and trigger particle phi | |
185 | TH2F * fhPtImbalanceUeLeftNeutral ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram | |
186 | TH2F * fhPtImbalanceUeRightNeutral ; //! Trigger particle -underlying neutral hadron momentim imbalance histogram | |
187 | TH2F * fhPtHbpUeLeftNeutral ; //! Trigger particle -underlying neutral hadron momentim HBP histogram | |
188 | TH2F * fhPtHbpUeRightNeutral ; //! Trigger particle -underlying neutral hadron momentim HBP histogram | |
189 | ||
190 | //for decay photon trigger correlation | |
191 | TH2F * fhPtPi0DecayRatio ; //! for pi0 pt and ratio of decay photon pt | |
192 | TH2F * fhDeltaPhiDecayCharged ; //! Difference of charged particle phi and decay trigger | |
193 | TH2F * fhPtImbalanceDecayCharged ; //! Trigger particle (decay from pi0)-charged hadron momentim imbalance histogram | |
194 | TH2F * fhDeltaPhiDecayNeutral ; //! Difference of neutral particle phi and decay trigger | |
195 | TH2F * fhPtImbalanceDecayNeutral ; //! Trigger particle (decay from pi0)-neutral hadron momentim imbalance histogram | |
196 | ||
197 | //if the data is MC, fill MC information | |
198 | TH2F * fh2phiLeadingParticle; //! #phi resolution for triggers | |
199 | TH1F * fhMCLeadingCount; //! add explanation | |
200 | TH2F * fhMCEtaCharged; //! add explanation | |
201 | TH2F * fhMCPhiCharged; //! add explanation | |
202 | TH2F * fhMCDeltaEtaCharged; //! add explanation | |
203 | TH2F * fhMCDeltaPhiCharged; //! add explanation | |
204 | TH2F * fhMCDeltaPhiDeltaEtaCharged; //! add explanation | |
205 | TH2F * fhMCDeltaPhiChargedPt; //! add explanation | |
206 | TH2F * fhMCPtImbalanceCharged; //! add explanation | |
207 | TH2F * fhMCPtHbpCharged; //! add explanation | |
208 | TH2F * fhMCPtTrigPout ; //! add explanation | |
209 | TH2F * fhMCPtAssocDeltaPhi ; //! Pout =associated pt*sin(delta phi) distribution | |
210 | ||
211 | ||
212 | ClassDef(AliAnaParticleHadronCorrelation,7) | |
213 | } ; | |
214 | ||
215 | ||
216 | #endif //ALIANAPARTICLEHADRONCORRELATION_H | |
217 | ||
218 | ||
219 |