]>
Commit | Line | Data |
---|---|---|
0b777a09 | 1 | // $Id$ |
4a6b693d | 2 | // |
3 | // Scale task. | |
4 | // | |
68263112 | 5 | // Author: R.Reed, M.Connors |
0b777a09 | 6 | |
c25dc25a | 7 | #include "AliAnalysisTaskScale.h" |
8 | ||
0b777a09 | 9 | #include <TClonesArray.h> |
c25dc25a | 10 | #include <TF1.h> |
8154249f | 11 | #include <TH2F.h> |
0b777a09 | 12 | #include <TLorentzVector.h> |
73e2fd59 | 13 | #include <TMath.h> |
b1dfb3f4 | 14 | |
40e2fd10 | 15 | #include "AliEMCALGeometry.h" |
16 | #include "AliLog.h" | |
c25dc25a | 17 | #include "AliVCluster.h" |
7cd832c7 | 18 | #include "AliVParticle.h" |
b77147f1 | 19 | #include "AliVTrack.h" |
7cd832c7 | 20 | #include "AliParticleContainer.h" |
b77147f1 | 21 | #include "AliClusterContainer.h" |
0b777a09 | 22 | |
23 | ClassImp(AliAnalysisTaskScale) | |
24 | ||
c25dc25a | 25 | //________________________________________________________________________ |
26 | AliAnalysisTaskScale::AliAnalysisTaskScale() : | |
9239b066 | 27 | AliAnalysisTaskEmcal("AliAnalysisTaskScale", kTRUE), |
c25dc25a | 28 | fScaleFunction(0), |
7cd832c7 | 29 | fEmcalArea(1), |
30 | fTpcArea(1), | |
c25dc25a | 31 | fHistPtTPCvsCent(0), |
32 | fHistPtEMCALvsCent(0), | |
33 | fHistEtvsCent(0), | |
34 | fHistScalevsCent(0), | |
35 | fHistDeltaScalevsCent(0), | |
a828ea11 | 36 | fHistScaleEmcalvsCent(0), |
2774335d | 37 | fHistScale2EmcalvsCent(0), |
38 | fHistDeltaScale2EmcalvsCent(0), | |
a828ea11 | 39 | fHistChScalevsCent(0), |
40 | fHistChScale2EmcalvsCent(0), | |
c25dc25a | 41 | fHistPtTPCvsNtrack(0), |
42 | fHistPtEMCALvsNtrack(0), | |
43 | fHistEtvsNtrack(0), | |
44 | fHistScalevsNtrack(0), | |
45 | fHistDeltaScalevsNtrack(0), | |
a828ea11 | 46 | fHistScaleEmcalvsNtrack(0), |
47 | fHistScale2EmcalvsNtrack(0), | |
48 | fHistChScalevsNtrack(0), | |
49 | fHistChScale2EmcalvsNtrack(0), | |
c25dc25a | 50 | fHistTrackPtvsCent(0), |
51 | fHistClusterPtvsCent(0), | |
52 | fHistTrackEtaPhi(0), | |
a828ea11 | 53 | fHistClusterEtaPhi(0), |
54 | fHistScalevsScale2Emcal(0), | |
55 | fHistScalevsScaleEmcal(0), | |
b77147f1 | 56 | fHistScaleEmcalvsScale2Emcal(0), |
57 | fTracksCont(0), | |
58 | fCaloClustersCont(0) | |
c25dc25a | 59 | { |
60 | // Default constructor. | |
73e2fd59 | 61 | |
62 | SetMakeGeneralHistograms(kTRUE); | |
c25dc25a | 63 | } |
64 | ||
0b777a09 | 65 | //________________________________________________________________________ |
b1dfb3f4 | 66 | AliAnalysisTaskScale::AliAnalysisTaskScale(const char *name) : |
9239b066 | 67 | AliAnalysisTaskEmcal(name, kTRUE), |
b1dfb3f4 | 68 | fScaleFunction(0), |
7cd832c7 | 69 | fEmcalArea(1), |
70 | fTpcArea(1), | |
b1dfb3f4 | 71 | fHistPtTPCvsCent(0), |
72 | fHistPtEMCALvsCent(0), | |
73 | fHistEtvsCent(0), | |
74 | fHistScalevsCent(0), | |
75 | fHistDeltaScalevsCent(0), | |
a828ea11 | 76 | fHistScaleEmcalvsCent(0), |
2774335d | 77 | fHistScale2EmcalvsCent(0), |
78 | fHistDeltaScale2EmcalvsCent(0), | |
a828ea11 | 79 | fHistChScalevsCent(0), |
80 | fHistChScale2EmcalvsCent(0), | |
b1dfb3f4 | 81 | fHistPtTPCvsNtrack(0), |
82 | fHistPtEMCALvsNtrack(0), | |
83 | fHistEtvsNtrack(0), | |
84 | fHistScalevsNtrack(0), | |
a5e84976 | 85 | fHistDeltaScalevsNtrack(0), |
a828ea11 | 86 | fHistScaleEmcalvsNtrack(0), |
87 | fHistScale2EmcalvsNtrack(0), | |
88 | fHistChScalevsNtrack(0), | |
89 | fHistChScale2EmcalvsNtrack(0), | |
a5e84976 | 90 | fHistTrackPtvsCent(0), |
91 | fHistClusterPtvsCent(0), | |
92 | fHistTrackEtaPhi(0), | |
a828ea11 | 93 | fHistClusterEtaPhi(0), |
94 | fHistScalevsScale2Emcal(0), | |
95 | fHistScalevsScaleEmcal(0), | |
b77147f1 | 96 | fHistScaleEmcalvsScale2Emcal(0), |
97 | fTracksCont(0), | |
98 | fCaloClustersCont(0) | |
0b777a09 | 99 | { |
4a6b693d | 100 | // Constructor. |
0b777a09 | 101 | |
73e2fd59 | 102 | SetMakeGeneralHistograms(kTRUE); |
0b777a09 | 103 | } |
104 | ||
105 | //________________________________________________________________________ | |
106 | void AliAnalysisTaskScale::UserCreateOutputObjects() | |
107 | { | |
4a6b693d | 108 | // Create my user objects. |
109 | ||
9239b066 | 110 | AliAnalysisTaskEmcal::UserCreateOutputObjects(); |
0b777a09 | 111 | |
b77147f1 | 112 | //Get track and particle container |
113 | fTracksCont = GetParticleContainer(0); | |
114 | fCaloClustersCont = GetClusterContainer(0); | |
115 | if(fTracksCont) fTracksCont->SetClassName("AliVTrack"); | |
116 | if(fCaloClustersCont) fCaloClustersCont->SetClassName("AliVCluster"); | |
117 | ||
118 | //Create histos | |
2774335d | 119 | fHistPtTPCvsCent = new TH2F("fHistPtTPCvsCent", "fHistPtTPCvsCent", 101, -1, 100, 750, 0, 1500); |
120 | fHistPtTPCvsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
121 | fHistPtTPCvsCent->GetYaxis()->SetTitle("#sum p_{T,track}^{TPC} GeV/c"); | |
122 | fHistPtTPCvsCent->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 123 | fOutput->Add(fHistPtTPCvsCent); |
2774335d | 124 | |
125 | fHistPtEMCALvsCent = new TH2F("fHistPtEMCALvsCent", "fHistPtEMCALvsCent", 101, -1, 100, 250, 0, 500); | |
126 | fHistPtEMCALvsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
127 | fHistPtEMCALvsCent->GetYaxis()->SetTitle("#sum p_{T,track}^{EMCal} GeV/c"); | |
128 | fHistPtEMCALvsCent->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 129 | fOutput->Add(fHistPtEMCALvsCent); |
2774335d | 130 | |
131 | fHistEtvsCent = new TH2F("fHistEtvsCent", "fHistEtvsCent", 101, -1, 100, 250, 0, 500); | |
132 | fHistEtvsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
133 | fHistEtvsCent->GetYaxis()->SetTitle("#sum E_{T,cluster} GeV"); | |
134 | fHistEtvsCent->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 135 | fOutput->Add(fHistEtvsCent); |
2774335d | 136 | |
137 | fHistScalevsCent = new TH2F("fHistScalevsCent", "fHistScalevsCent", 101, -1, 100, 500, 0, 5); | |
138 | fHistScalevsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
139 | fHistScalevsCent->GetYaxis()->SetTitle("s_{TPC} = (#sum E_{T,cluster} + #sum p_{T,track}^{TPC}) / #sum p_{T,track}^{TPC}"); | |
140 | fHistScalevsCent->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 141 | fOutput->Add(fHistScalevsCent); |
2774335d | 142 | |
143 | fHistDeltaScalevsCent = new TH2F("fHistDeltaScalevsCent", "fHistDeltaScalevsCent", 101, -1, 100, 500, -2.5, 2.5); | |
144 | fHistDeltaScalevsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
145 | fHistDeltaScalevsCent->GetYaxis()->SetTitle("s_{TPC}-s^{old}"); | |
146 | fHistDeltaScalevsCent->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 147 | fOutput->Add(fHistDeltaScalevsCent); |
2774335d | 148 | |
149 | fHistScaleEmcalvsCent= new TH2F("fHistScaleEmcalvsCent", "fHistScaleEmcalvsCent", 101, -1, 100, 500, 0, 5); | |
150 | fHistScaleEmcalvsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
151 | fHistScaleEmcalvsCent->GetYaxis()->SetTitle("s_{EMC}"); | |
152 | fHistScaleEmcalvsCent->GetZaxis()->SetTitle("counts"); | |
153 | fOutput->Add(fHistScaleEmcalvsCent); | |
154 | ||
155 | fHistScale2EmcalvsCent = new TH2F("fHistScale2EmcalvsCent", "fHistScale2EmcalvsCent", 101, -1, 100, 500, 0, 5); | |
156 | fHistScale2EmcalvsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
157 | fHistScale2EmcalvsCent->GetYaxis()->SetTitle("s_{2 #times EMC}"); | |
158 | fHistScale2EmcalvsCent->GetZaxis()->SetTitle("counts"); | |
159 | fOutput->Add(fHistScale2EmcalvsCent); | |
160 | ||
161 | fHistDeltaScale2EmcalvsCent = new TH2F("fHistDeltaScale2EmcalvsCent", "fHistDeltaScale2EmcalvsCent", 101, -1, 100, 500, -2.5, 2.5); | |
162 | fHistDeltaScale2EmcalvsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
163 | fHistDeltaScale2EmcalvsCent->GetYaxis()->SetTitle("s_{2 #times EMC}-s^{old}"); | |
164 | fHistDeltaScale2EmcalvsCent->GetZaxis()->SetTitle("counts"); | |
165 | fOutput->Add(fHistDeltaScale2EmcalvsCent); | |
166 | ||
167 | fHistChScalevsCent = new TH2F("fHistChScalevsCent", "fHistChScalevsCent", 101, -1, 100, 500, 0, 5); | |
168 | fHistChScalevsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
169 | fHistChScalevsCent->GetYaxis()->SetTitle("s_{TPC}^{ch}"); | |
170 | fHistChScalevsCent->GetZaxis()->SetTitle("counts"); | |
171 | fOutput->Add(fHistChScalevsCent); | |
172 | ||
173 | fHistChScale2EmcalvsCent = new TH2F("fHistChScale2EmcalvsCent", "fHistChScale2EmcalvsCent", 101, -1, 100, 500, 0, 5); | |
174 | fHistChScale2EmcalvsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
175 | fHistChScale2EmcalvsCent->GetYaxis()->SetTitle("s_{2 #times EMC}^{ch}"); | |
176 | fHistChScale2EmcalvsCent->GetZaxis()->SetTitle("counts"); | |
177 | fOutput->Add(fHistChScale2EmcalvsCent); | |
178 | ||
179 | fHistPtTPCvsNtrack = new TH2F("fHistPtTPCvsNtrack", "fHistPtTPCvsNtrack", 800, 0, 4000, 750, 0, 1500); | |
180 | fHistPtTPCvsNtrack->GetXaxis()->SetTitle("No. of tracks"); | |
181 | fHistPtTPCvsNtrack->GetYaxis()->SetTitle("#sum p_{T,track}^{TPC}"); | |
182 | fHistPtTPCvsNtrack->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 183 | fOutput->Add(fHistPtTPCvsNtrack); |
2774335d | 184 | |
185 | fHistPtEMCALvsNtrack = new TH2F("fHistPtEMCALvsNtrack", "fHistPtEMCALvsNtrack", 800, 0, 4000, 500, 0, 1000); | |
186 | fHistPtEMCALvsNtrack->GetXaxis()->SetTitle("No. of tracks"); | |
187 | fHistPtEMCALvsNtrack->GetYaxis()->SetTitle("#sum p_{T,track}^{EMCal}"); | |
188 | fHistPtEMCALvsNtrack->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 189 | fOutput->Add(fHistPtEMCALvsNtrack); |
2774335d | 190 | |
191 | fHistEtvsNtrack = new TH2F("fHistEtvsNtrack", "fHistEtvsNtrack", 800, 0, 4000, 500, 0, 1000); | |
192 | fHistEtvsNtrack->GetXaxis()->SetTitle("No. of tracks"); | |
193 | fHistEtvsNtrack->GetYaxis()->SetTitle("#sum E_{T,cluster}"); | |
194 | fHistEtvsNtrack->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 195 | fOutput->Add(fHistEtvsNtrack); |
2774335d | 196 | |
197 | fHistScalevsNtrack = new TH2F("fHistScalevsNtrack", "fHistScalevsNtrack", 800, 0, 4000, 500, 0, 5); | |
198 | fHistScalevsNtrack->GetXaxis()->SetTitle("No. of tracks"); | |
199 | fHistScalevsNtrack->GetYaxis()->SetTitle("s_{TPC}"); | |
200 | fHistScalevsNtrack->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 201 | fOutput->Add(fHistScalevsNtrack); |
2774335d | 202 | |
203 | fHistDeltaScalevsNtrack = new TH2F("fHistDeltaScalevsNtrack", "fHistDeltaScalevsNtrack", 800, 0, 4000, 500, -2.5, 2.5); | |
204 | fHistDeltaScalevsNtrack->GetXaxis()->SetTitle("No. of tracks"); | |
205 | fHistDeltaScalevsNtrack->GetYaxis()->SetTitle("s_{TPC}-s^{old}"); | |
206 | fHistDeltaScalevsNtrack->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 207 | fOutput->Add(fHistDeltaScalevsNtrack); |
2774335d | 208 | |
209 | fHistScaleEmcalvsNtrack = new TH2F("fHistScaleEmcalvsNtrack", "fHistScaleEmcalvsNtrack", 800, 0, 4000, 500, 0, 5); | |
210 | fHistScaleEmcalvsNtrack->GetXaxis()->SetTitle("No. of tracks"); | |
211 | fHistScaleEmcalvsNtrack->GetYaxis()->SetTitle("s_{EMC}"); | |
212 | fHistScaleEmcalvsNtrack->GetZaxis()->SetTitle("counts"); | |
213 | fOutput->Add(fHistScaleEmcalvsNtrack); | |
214 | ||
215 | fHistScale2EmcalvsNtrack = new TH2F("fHistScale2EmcalvsNtrack","fHistScale2EmcalvsNtrack", 800, 0, 4000, 500, 0, 5); | |
216 | fHistScale2EmcalvsNtrack->GetXaxis()->SetTitle("No. of tracks"); | |
217 | fHistScale2EmcalvsNtrack->GetYaxis()->SetTitle("s_{2 #times EMC}"); | |
218 | fHistScale2EmcalvsNtrack->GetZaxis()->SetTitle("counts"); | |
219 | fOutput->Add(fHistScale2EmcalvsNtrack); | |
220 | ||
221 | fHistChScalevsNtrack = new TH2F("fHistChScalevsNtrack", "fHistChScalevsNtrack", 800, 0, 4000, 500, 0, 5); | |
222 | fHistChScalevsNtrack->GetXaxis()->SetTitle("No. of tracks"); | |
223 | fHistChScalevsNtrack->GetYaxis()->SetTitle("s_{TPC}^{ch}"); | |
224 | fHistChScalevsNtrack->GetZaxis()->SetTitle("counts"); | |
225 | fOutput->Add(fHistChScalevsNtrack); | |
226 | ||
227 | fHistChScale2EmcalvsNtrack = new TH2F("fHistChScale2EmcalvsNtrack", "fHistChScale2EmcalvsNtrack", 800, 0, 4000, 500, 0, 5); | |
228 | fHistChScale2EmcalvsNtrack->GetXaxis()->SetTitle("No. of tracks"); | |
229 | fHistChScale2EmcalvsNtrack->GetYaxis()->SetTitle("s_{2 #times EMC}^{ch}"); | |
230 | fHistChScale2EmcalvsNtrack->GetZaxis()->SetTitle("counts"); | |
231 | fOutput->Add(fHistChScale2EmcalvsNtrack); | |
232 | ||
233 | fHistTrackPtvsCent = new TH2F("fHistTrackPtvsCent", "fHistTrackPtvsCent", 101, -1, 100, 500, 0, 100); | |
234 | fHistTrackPtvsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
235 | fHistTrackPtvsCent->GetYaxis()->SetTitle("p_{T,track} GeV/c"); | |
236 | fHistTrackPtvsCent->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 237 | fOutput->Add(fHistTrackPtvsCent); |
2774335d | 238 | |
239 | fHistClusterPtvsCent = new TH2F("fHistClusterPtvsCent", "fHistClusterPtvsCent", 101, -1, 100, 500, 0, 100); | |
240 | fHistClusterPtvsCent->GetXaxis()->SetTitle("Centrality (%)"); | |
241 | fHistClusterPtvsCent->GetYaxis()->SetTitle("E_{T,cluster} GeV"); | |
242 | fHistClusterPtvsCent->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 243 | fOutput->Add(fHistClusterPtvsCent); |
2774335d | 244 | |
245 | fHistTrackEtaPhi = new TH2F("fHistTrackEtaPhi", "fHistTrackEtaPhi", 100, -1.0, 1.0, 101, 0, 2.02*TMath::Pi()); | |
246 | fHistTrackEtaPhi->GetXaxis()->SetTitle("#eta"); | |
247 | fHistTrackEtaPhi->GetYaxis()->SetTitle("#phi"); | |
248 | fHistTrackEtaPhi->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 249 | fOutput->Add(fHistTrackEtaPhi); |
2774335d | 250 | |
251 | fHistClusterEtaPhi = new TH2F("fHistClusterEtaPhi", "fHistClusterEtaPhi", 100, -1.0, 1.0, 101, 0, 2.02*TMath::Pi()); | |
252 | fHistClusterEtaPhi->GetXaxis()->SetTitle("#eta"); | |
253 | fHistClusterEtaPhi->GetYaxis()->SetTitle("#phi"); | |
254 | fHistClusterEtaPhi->GetZaxis()->SetTitle("counts"); | |
e44e8726 | 255 | fOutput->Add(fHistClusterEtaPhi); |
2774335d | 256 | |
257 | fHistScalevsScale2Emcal = new TH2F("fHistScalevsScale2Emcal", "fHistScalevsScale2Emcal",500, 0, 5, 500, 0, 5); | |
258 | fHistScalevsScale2Emcal->GetXaxis()->SetTitle("s_{TPC}"); | |
259 | fHistScalevsScale2Emcal->GetYaxis()->SetTitle("s_{2 #times EMC}"); | |
260 | fHistScalevsScale2Emcal->GetZaxis()->SetTitle("counts"); | |
261 | fOutput->Add(fHistScalevsScale2Emcal); | |
262 | ||
263 | fHistScalevsScaleEmcal = new TH2F("fHistScalevsScaleEmcal", "fHistScalevsScaleEmcal", 500, 0, 5, 500, 0, 5); | |
264 | fHistScalevsScaleEmcal->GetXaxis()->SetTitle("s_{TPC}"); | |
265 | fHistScalevsScaleEmcal->GetYaxis()->SetTitle("s_{EMC}"); | |
266 | fHistScalevsScaleEmcal->GetZaxis()->SetTitle("counts"); | |
267 | fOutput->Add(fHistScalevsScaleEmcal); | |
268 | ||
269 | fHistScaleEmcalvsScale2Emcal = new TH2F("fHistScaleEmcalvsScale2Emcal", "fHistScaleEmcalvsScale2Emcal", 500, 0, 5, 500, 0, 5); | |
270 | fHistScaleEmcalvsScale2Emcal->GetXaxis()->SetTitle("s_{EMC}"); | |
271 | fHistScaleEmcalvsScale2Emcal->GetYaxis()->SetTitle("s_{2 #times EMC}"); | |
272 | fHistScaleEmcalvsScale2Emcal->GetZaxis()->SetTitle("counts"); | |
a828ea11 | 273 | fOutput->Add(fHistScaleEmcalvsScale2Emcal); |
e44e8726 | 274 | |
275 | PostData(1, fOutput); | |
0b777a09 | 276 | } |
277 | ||
b1dfb3f4 | 278 | //________________________________________________________________________ |
279 | Double_t AliAnalysisTaskScale::GetScaleFactor(Double_t cent) | |
280 | { | |
c25dc25a | 281 | // Get scale function. |
282 | ||
b1dfb3f4 | 283 | Double_t scale = -1; |
284 | if (fScaleFunction) | |
285 | scale = fScaleFunction->Eval(cent); | |
286 | return scale; | |
287 | } | |
288 | ||
e44e8726 | 289 | //________________________________________________________________________ |
290 | Bool_t AliAnalysisTaskScale::FillHistograms() | |
291 | { | |
292 | // Execute on each event. | |
7cd832c7 | 293 | |
9dbcdad7 | 294 | Double_t EmcalMinPhi = fGeom->GetArm1PhiMin() * TMath::DegToRad(); |
295 | Double_t EmcalMaxPhi = fGeom->GetArm1PhiMax() * TMath::DegToRad(); | |
296 | if(InputEvent()->GetRunNumber()>=177295 && InputEvent()->GetRunNumber()<=197470) { //small SM masked in 2012 and 2013 | |
297 | EmcalMinPhi = 1.405; | |
298 | EmcalMaxPhi = 3.135; | |
299 | } | |
a828ea11 | 300 | const Double_t EmcalWidth = (EmcalMaxPhi-EmcalMinPhi)/2.0; |
0b777a09 | 301 | |
85211d8e | 302 | Double_t ptTPC = 0; |
303 | Double_t ptEMCAL = 0; | |
a828ea11 | 304 | Double_t ptEMCAL2 = 0; |
b1dfb3f4 | 305 | |
b77147f1 | 306 | const Int_t Ntracks = fTracksCont->GetNAcceptedParticles(); |
307 | if (fTracksCont) { | |
308 | fTracksCont->ResetCurrentID(); | |
309 | AliVTrack *track = NULL; | |
310 | while((track = static_cast<AliVTrack*>(fTracksCont->GetNextAcceptParticle()))) { | |
311 | fHistTrackPtvsCent->Fill(fCent,track->Pt()); | |
312 | fHistTrackEtaPhi->Fill(track->Eta(),track->Phi()); | |
313 | ptTPC += track->Pt(); | |
314 | if ((track->Phi() > (EmcalMaxPhi+EmcalWidth)) || (track->Phi() < (EmcalMinPhi-EmcalWidth))) continue; | |
315 | ptEMCAL2 += track->Pt(); | |
316 | if ((track->Phi() > EmcalMaxPhi) || (track->Phi() < EmcalMinPhi)) continue; | |
317 | ptEMCAL += track->Pt(); | |
318 | } | |
85211d8e | 319 | } |
e44e8726 | 320 | |
321 | if (ptTPC == 0) | |
322 | return kFALSE; | |
e44e8726 | 323 | |
b77147f1 | 324 | Double_t Et = 0; |
325 | if (fCaloClustersCont) { | |
326 | fCaloClustersCont->ResetCurrentID(); | |
327 | AliVCluster *c = NULL; | |
328 | while((c = fCaloClustersCont->GetNextAcceptCluster())) { | |
329 | TLorentzVector nPart; | |
330 | c->GetMomentum(nPart, fVertex); | |
a5e84976 | 331 | |
b77147f1 | 332 | fHistClusterPtvsCent->Fill(fCent, nPart.Pt()); |
333 | fHistClusterEtaPhi->Fill(nPart.Eta(), nPart.Phi()); | |
a5e84976 | 334 | |
b77147f1 | 335 | Et += nPart.Pt(); |
336 | } | |
0b777a09 | 337 | } |
a828ea11 | 338 | |
a38a6344 | 339 | Double_t scalecalc = -1; |
340 | if (ptEMCAL > 0 && Et > 0 && ptTPC > 0) | |
7cd832c7 | 341 | scalecalc = ((Et + ptEMCAL) / fEmcalArea) * (fTpcArea / ptTPC); |
a828ea11 | 342 | const Double_t scale = GetScaleFactor(fCent); |
343 | Double_t scalecalcemcal = -1; | |
344 | if (ptEMCAL > 0) | |
345 | scalecalcemcal = (Et+ptEMCAL)/ptEMCAL; | |
346 | Double_t scalecalcemcal2 = -1; | |
347 | Double_t Chscalecalcemcal2 = -1; | |
348 | if (ptEMCAL2 > 0){ | |
349 | scalecalcemcal2 = 2*(Et+ptEMCAL)/ptEMCAL2; | |
350 | Chscalecalcemcal2 = 2*ptEMCAL/ptEMCAL2;} | |
7cd832c7 | 351 | const Double_t Chscalecalcemcal = ((ptEMCAL) / fEmcalArea) * (fTpcArea / ptTPC); |
a828ea11 | 352 | |
353 | fHistScaleEmcalvsCent->Fill(fCent,scalecalcemcal); | |
354 | fHistScale2EmcalvsCent->Fill(fCent,scalecalcemcal2); | |
355 | fHistChScalevsCent->Fill(fCent,Chscalecalcemcal); | |
356 | fHistChScale2EmcalvsCent->Fill(fCent,Chscalecalcemcal2); | |
357 | fHistScaleEmcalvsNtrack->Fill(Ntracks,scalecalcemcal); | |
358 | fHistScale2EmcalvsNtrack->Fill(Ntracks,scalecalcemcal2); | |
359 | fHistChScalevsNtrack->Fill(Ntracks,Chscalecalcemcal); | |
360 | fHistChScale2EmcalvsNtrack->Fill(Ntracks,Chscalecalcemcal2); | |
e44e8726 | 361 | fHistPtTPCvsCent->Fill(fCent, ptTPC); |
362 | fHistPtEMCALvsCent->Fill(fCent, ptEMCAL); | |
363 | fHistEtvsCent->Fill(fCent, Et); | |
364 | fHistScalevsCent->Fill(fCent, scalecalc); | |
365 | fHistDeltaScalevsCent->Fill(fCent, scalecalc - scale); | |
2774335d | 366 | fHistDeltaScale2EmcalvsCent->Fill(fCent, scalecalcemcal2 - scale); |
b1dfb3f4 | 367 | fHistPtTPCvsNtrack->Fill(Ntracks, ptTPC); |
368 | fHistPtEMCALvsNtrack->Fill(Ntracks, ptEMCAL); | |
369 | fHistEtvsNtrack->Fill(Ntracks, Et); | |
370 | fHistScalevsNtrack->Fill(Ntracks, scalecalc); | |
371 | fHistDeltaScalevsNtrack->Fill(Ntracks, scalecalc - scale); | |
a828ea11 | 372 | fHistScalevsScale2Emcal->Fill(scalecalc,scalecalcemcal2); |
373 | fHistScalevsScaleEmcal->Fill(scalecalc,scalecalcemcal); | |
374 | fHistScaleEmcalvsScale2Emcal->Fill(scalecalcemcal,scalecalcemcal2); | |
0b777a09 | 375 | |
e44e8726 | 376 | return kTRUE; |
4a6b693d | 377 | } |
7cd832c7 | 378 | |
379 | ||
380 | //________________________________________________________________________ | |
381 | void AliAnalysisTaskScale::ExecOnce() | |
382 | { | |
9239b066 | 383 | AliAnalysisTaskEmcal::ExecOnce(); |
7cd832c7 | 384 | |
385 | const Double_t EmcalMinEta = fGeom->GetArm1EtaMin(); | |
386 | const Double_t EmcalMaxEta = fGeom->GetArm1EtaMax(); | |
744ae479 | 387 | Double_t EmcalMinPhi = fGeom->GetArm1PhiMin() * TMath::DegToRad(); |
388 | Double_t EmcalMaxPhi = fGeom->GetArm1PhiMax() * TMath::DegToRad(); | |
389 | if(InputEvent()->GetRunNumber()>=177295 && InputEvent()->GetRunNumber()<=197470) { //small SM masked in 2012 and 2013 | |
390 | EmcalMinPhi = 1.405; | |
391 | EmcalMaxPhi = 3.135; | |
392 | } | |
7cd832c7 | 393 | |
394 | fEmcalArea = (EmcalMaxPhi - EmcalMinPhi) * (EmcalMinEta - EmcalMaxEta); | |
395 | ||
396 | AliParticleContainer *partCont = GetParticleContainer(0); | |
397 | if (!partCont) { | |
398 | AliError(Form("%s: No particle container found! Assuming tpc area = 1...",GetName())); | |
399 | fTpcArea = 1; | |
400 | return; | |
401 | } | |
402 | ||
403 | Float_t TpcMaxPhi = partCont->GetParticlePhiMax(); | |
404 | Float_t TpcMinPhi = partCont->GetParticlePhiMin(); | |
405 | ||
406 | if (TpcMaxPhi > TMath::Pi()*2) TpcMaxPhi = TMath::Pi()*2; | |
407 | if (TpcMinPhi < 0) TpcMinPhi = 0; | |
408 | ||
409 | fTpcArea = (TpcMaxPhi - TpcMinPhi) * (EmcalMinEta - EmcalMaxEta); | |
b77147f1 | 410 | |
411 | if (fTracksCont && fTracksCont->GetArray() == 0) fTracksCont = 0; | |
412 | if (fCaloClustersCont && fCaloClustersCont->GetArray() == 0) fCaloClustersCont = 0; | |
7cd832c7 | 413 | } |