]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetSpectraMECpA.cxx
cumulant qa
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalJetSpectraMECpA.cxx
CommitLineData
9e64e697 1// $Id: AliAnalysisTaskEmcalJetSpectraMECpA.cxx 3010 2012-06-10 05:40:56Z loizides $
d7afd9ac 2//
3// Jet spectrum task.
4//
5// Author: R.Reed, M.Connors
6
7#include "AliAnalysisTaskEmcalJetSpectraMECpA.h"
8
9#include <TCanvas.h>
10#include <TChain.h>
11#include <TClonesArray.h>
12#include <TH1F.h>
13#include <TH2F.h>
14#include <TH3F.h>
15#include <THnSparse.h>
16#include <TList.h>
17#include <TLorentzVector.h>
18#include <TParameter.h>
19#include <TParticle.h>
20#include <TTree.h>
21#include <TVector3.h>
22
23#include "AliAODEvent.h"
24#include "AliAnalysisManager.h"
25#include "AliAnalysisTask.h"
26#include "AliCentrality.h"
27#include "AliESDEvent.h"
28#include "AliESDInputHandler.h"
29#include "AliEmcalJet.h"
30#include "AliVCluster.h"
31#include "AliRhoParameter.h"
32#include "AliEmcalParticle.h"
33
34ClassImp(AliAnalysisTaskEmcalJetSpectraMECpA)
35
36//________________________________________________________________________
37AliAnalysisTaskEmcalJetSpectraMECpA::AliAnalysisTaskEmcalJetSpectraMECpA() :
38 AliAnalysisTaskEmcalJet("spectra",kFALSE),
39 fHistRhovsCent(0),
770d2418 40 fHistRhoScvsCent(0),
d7afd9ac 41 fHistNjetvsCent(0)
42{
43 // Default constructor.
719a6f97 44 for (Int_t i = 0;i<7;++i){
d7afd9ac 45 fHistJetPtvsTrackPt[i] = 0;
46 fHistRawJetPtvsTrackPt[i] = 0;
47 fHistTrackPt[i] = 0;
48 fHistEP0[i] = 0;
49 fHistEP0A[i] = 0;
50 fHistEP0C[i] = 0;
51 fHistEPAvsC[i] = 0;
52 fHistJetPtvsdEP[i] = 0;
53 fHistJetPtvsdEPBias[i] = 0;
54 fHistRhovsEP[i] = 0;
55 fHistJetPtEtaPhi[i] = 0;
56
57 }
d7afd9ac 58 SetMakeGeneralHistograms(kTRUE);
59}
60
61//________________________________________________________________________
62AliAnalysisTaskEmcalJetSpectraMECpA::AliAnalysisTaskEmcalJetSpectraMECpA(const char *name) :
63 AliAnalysisTaskEmcalJet(name,kTRUE),
64 fHistRhovsCent(0),
770d2418 65 fHistRhoScvsCent(0),
d7afd9ac 66 fHistNjetvsCent(0)
67 {
719a6f97 68 for (Int_t i = 0;i<7;++i){
d7afd9ac 69 fHistJetPtvsTrackPt[i] = 0;
70 fHistRawJetPtvsTrackPt[i] = 0;
71 fHistTrackPt[i] = 0;
72 fHistEP0[i] = 0;
73 fHistEP0A[i] = 0;
74 fHistEP0C[i] = 0;
75 fHistEPAvsC[i] = 0;
76 fHistJetPtvsdEP[i] = 0;
77 fHistJetPtvsdEPBias[i] = 0;
78 fHistRhovsEP[i] = 0;
79 fHistJetPtEtaPhi[i] = 0;
80 }
d7afd9ac 81 SetMakeGeneralHistograms(kTRUE);
82 }
83
84//________________________________________________________________________
85void AliAnalysisTaskEmcalJetSpectraMECpA::UserCreateOutputObjects()
86{
87 if (! fCreateHisto)
88 return;
89 AliAnalysisTaskEmcalJet::UserCreateOutputObjects();
90
91 fHistRhovsCent = new TH2F("RhovsCent", "RhovsCent", 100, 0.0, 100.0, 500, 0, 500);
719a6f97 92 fHistRhoScvsCent = new TH2F("RhoScvsCent", "RhoScvsCent", 100, 0.0, 100.0, 500, 0, 500);
d7afd9ac 93 fHistNjetvsCent = new TH2F("NjetvsCent", "NjetvsCent", 100, 0.0, 100.0, 100, 0, 100);
94
95 TString name;
96 TString title;
719a6f97 97 for (Int_t i = 0;i<7;++i){
d7afd9ac 98 name = TString(Form("JetPtvsTrackPt_%i",i));
99 title = TString(Form("Jet pT vs Leading Track pT cent bin %i",i));
100 fHistJetPtvsTrackPt[i] = new TH2F(name,title,1000,-500,500,100,0,100);
101 fOutput->Add(fHistJetPtvsTrackPt[i]);
e77cf839 102
103 name = TString(Form("JetPtScvsTrackPt_%i",i));
104 title = TString(Form("Jet pT Rho_scaled vs Leading Track pT cent bin %i",i));
105 fHistJetPtScvsTrackPt[i] = new TH2F(name,title,1000,-500,500,100,0,100);
106 fOutput->Add(fHistJetPtScvsTrackPt[i]);
107
d7afd9ac 108 name = TString(Form("RawJetPtvsTrackPt_%i",i));
109 title = TString(Form("Raw Jet pT vs Leading Track pT cent bin %i",i));
110 fHistRawJetPtvsTrackPt[i] = new TH2F(name,title,1000,-500,500,100,0,100);
111 fOutput->Add(fHistRawJetPtvsTrackPt[i]);
112 name = TString(Form("TrackPt_%i",i));
113 title = TString(Form("Track pT cent bin %i",i));
114 fHistTrackPt[i] = new TH1F(name,title,1000,0,200);
115 fOutput->Add(fHistTrackPt[i]);
116
117 name = TString(Form("EP0_%i",i));
118 title = TString(Form("EP VZero cent bin %i",i));
119 fHistEP0[i] = new TH1F(name,title,100,-TMath::Pi(),TMath::Pi());
120 fOutput->Add(fHistEP0[i]);
121 name = TString(Form("EP0A_%i",i));
122 title = TString(Form("EP VZero cent bin %i",i));
123 fHistEP0A[i] = new TH1F(name,title,100,-TMath::Pi(),TMath::Pi());
124 fOutput->Add(fHistEP0A[i]);
125 name = TString(Form("EP0C_%i",i));
126 title = TString(Form("EP VZero cent bin %i",i));
127 fHistEP0C[i] = new TH1F(name,title,100,-TMath::Pi(),TMath::Pi());
128 fOutput->Add(fHistEP0C[i]);
129 name = TString(Form("EPAvsC_%i",i));
130 title = TString(Form("EP VZero cent bin %i",i));
131 fHistEPAvsC[i] = new TH2F(name,title,100,-TMath::Pi(),TMath::Pi(),100,-TMath::Pi(),TMath::Pi());
132 fOutput->Add(fHistEPAvsC[i]);
133 name = TString(Form("JetPtvsdEP_%i",i));
134 title = TString(Form("Jet pt vs dEP cent bin %i",i));
135 fHistJetPtvsdEP[i] = new TH2F(name,title,1000,-500,500,400,-2*TMath::Pi(),2*TMath::Pi());
136 fOutput->Add(fHistJetPtvsdEP[i]);
137 name = TString(Form("JetPtvsdEPBias_%i",i));
138 title = TString(Form("Bias Jet pt vs dEP cent bin %i",i));
139 fHistJetPtvsdEPBias[i] = new TH2F(name,title,1000,-500,500,400,-2*TMath::Pi(),2*TMath::Pi());
140 fOutput->Add(fHistJetPtvsdEPBias[i]);
141 name = TString(Form("JetPtvsEP_%i",i));
142 title = TString(Form("Jet pt vs EP cent bin %i",i));
143 fHistJetPtvsEP[i] = new TH2F(name,title,1000,-500,500,400,-2*TMath::Pi(),2*TMath::Pi());
144 fOutput->Add(fHistJetPtvsEP[i]);
145 name = TString(Form("JetPtvsEPBias_%i",i));
146 title = TString(Form("Bias Jet pt vs EP cent bin %i",i));
147 fHistJetPtvsEPBias[i] = new TH2F(name,title,1000,-500,500,400,-2*TMath::Pi(),2*TMath::Pi());
148 fOutput->Add(fHistJetPtvsEPBias[i]);
149 name = TString(Form("RhovsEP_%i",i));
150 title = TString(Form("Rho vs EP cent bin %i",i));
151 fHistRhovsEP[i] = new TH2F(name,title,500,0,500,400,-2*TMath::Pi(),2*TMath::Pi());
152 fOutput->Add(fHistRhovsEP[i]);
153
154 name = TString(Form("JetPtEtaPhi_%i",i));
155 title = TString(Form("JetPtEtaPhi_%i",i));
156 fHistJetPtEtaPhi[i] = new TH3F(name,title,300,-100,200,26,-0.8,0.8,400,-2*TMath::Pi(),2*TMath::Pi());
157 fOutput->Add(fHistJetPtEtaPhi[i]);
158
159
160 }
161
162
163 fOutput->Add(fHistRhovsCent);
719a6f97 164 fOutput->Add(fHistRhoScvsCent);
d7afd9ac 165 fOutput->Add(fHistNjetvsCent);
166
167 PostData(1, fOutput);
168}
169
170//________________________________________________________________________
171
172Int_t AliAnalysisTaskEmcalJetSpectraMECpA::GetCentBin(Double_t cent) const
173{
174 // Get centrality bin.
175
176 Int_t centbin = -1;
177 if (cent>=0 && cent<10)
178 centbin = 0;
179 else if (cent>=10 && cent<20)
180 centbin = 1;
181 else if (cent>=20 && cent<30)
182 centbin = 2;
183 else if (cent>=30 && cent<40)
184 centbin = 3;
185 else if (cent>=40 && cent<50)
186 centbin = 4;
719a6f97 187 else if (cent>=50 && cent<101)
d7afd9ac 188 centbin = 5;
189 return centbin;
190}
191
192//________________________________________________________________________
193
194Float_t AliAnalysisTaskEmcalJetSpectraMECpA:: RelativePhi(Double_t mphi,Double_t vphi) const
195{
196 if (vphi < -1*TMath::Pi()) vphi += (2*TMath::Pi());
197 else if (vphi > TMath::Pi()) vphi -= (2*TMath::Pi());
198 if (mphi < -1*TMath::Pi()) mphi += (2*TMath::Pi());
199 else if (mphi > TMath::Pi()) mphi -= (2*TMath::Pi());
200 double dphi = mphi-vphi;
201 if (dphi < -1*TMath::Pi()) dphi += (2*TMath::Pi());
202 else if (dphi > TMath::Pi()) dphi -= (2*TMath::Pi());
203
204 return dphi;//dphi in [-Pi, Pi]
205}
206
207
208//________________________________________________________________________
209Bool_t AliAnalysisTaskEmcalJetSpectraMECpA::Run()
210{
9e64e697 211
212
d7afd9ac 213 Int_t centbin = GetCentBin(fCent);
214 //for pp analyses we will just use the first centrality bin
215 if (centbin == -1)
719a6f97 216 centbin = 6;
d7afd9ac 217
719a6f97 218 //if (!fTracks){
219 //cout << "Tracks not found: " << fCent << endl;
220 //return kTRUE;
221 //}
d7afd9ac 222
719a6f97 223 if (fTracks){
224 const Int_t nTrack = fTracks->GetEntriesFast();
225 for (int i = 0;i<nTrack;i++){
226 AliVParticle *track = static_cast<AliVParticle*>(fTracks->At(i));
227 if (!track)
228 continue;
229 fHistTrackPt[centbin]->Fill(track->Pt());
230 }
d7afd9ac 231 }
232
719a6f97 233
d7afd9ac 234 fHistEP0[centbin]->Fill(fEPV0);
235 fHistEP0A[centbin]->Fill(fEPV0A);
236 fHistEP0C[centbin]->Fill(fEPV0C);
237 fHistEPAvsC[centbin]->Fill(fEPV0A,fEPV0C);
e77cf839 238
239 fRho = GetRhoFromEvent(fRhoName);
d7afd9ac 240 fRhoVal = fRho->GetVal();
241 fHistRhovsCent->Fill(fCent,fRhoVal);
242 fHistRhovsEP[centbin]->Fill(fRhoVal,fEPV0);
e77cf839 243
244
245 TString fRhoScaledName = fRhoName;
246 fRhoScaledName.Append("_Scaled");
247 Double_t fRhoScVal = 0;
248 AliRhoParameter *fRhoScaled=GetRhoFromEvent(fRhoScaledName);
719a6f97 249
e77cf839 250 if(fRhoScaled){
251 fRhoScVal=fRhoScaled->GetVal();
719a6f97 252 fHistRhoScvsCent->Fill(fCent,fRhoScVal);
e77cf839 253 }
d7afd9ac 254 const Int_t Njets = fJets->GetEntriesFast();
255
256 Int_t NjetAcc = 0;
257 for (Int_t iJets = 0; iJets < Njets; ++iJets) {
258 AliEmcalJet *jet = static_cast<AliEmcalJet*>(fJets->At(iJets));
259 if (!jet)
260 continue;
261 if (jet->Area()==0)
262 continue;
263 if (jet->Pt()<0.1)
264 continue;
265 if (jet->MaxTrackPt()>100)
266 continue;
267 if (! AcceptJet(jet))
268 continue;
269 // jets.push_back(jet);
270 NjetAcc++;
271 Double_t jetPt = -500;
272 jetPt = jet->Pt()-jet->Area()*fRhoVal;
273 fHistJetPtvsTrackPt[centbin]->Fill(jetPt,jet->MaxTrackPt());
719a6f97 274 if(centbin<6) fHistJetPtvsTrackPt[6]->Fill(jetPt,jet->MaxTrackPt());
e77cf839 275
276 if(fRhoScVal) {
277 Double_t jetPtSc = -500;
278 jetPtSc = jet->Pt()-jet->Area()*fRhoScVal;
279 fHistJetPtScvsTrackPt[centbin]->Fill(jetPtSc,jet->MaxTrackPt());
719a6f97 280 if(centbin<6) fHistJetPtScvsTrackPt[6]->Fill(jetPtSc,jet->MaxTrackPt());
e77cf839 281 }
282
d7afd9ac 283 fHistRawJetPtvsTrackPt[centbin]->Fill(jet->Pt(),jet->MaxTrackPt());
719a6f97 284 if(centbin<6) fHistRawJetPtvsTrackPt[6]->Fill(jet->Pt(),jet->MaxTrackPt());
d7afd9ac 285
286 fHistJetPtEtaPhi[centbin]->Fill(jet->Pt(),jet->Eta(),jet->Phi());
287
288 fHistJetPtvsdEP[centbin]->Fill(jetPt,RelativePhi((fEPV0+TMath::Pi()),jet->Phi()));
289 fHistJetPtvsEP[centbin]->Fill(jetPt,fEPV0);
290 if (jet->MaxTrackPt()>5.0){
291 fHistJetPtvsdEPBias[centbin]->Fill(jetPt,RelativePhi((fEPV0+TMath::Pi()),jet->Phi()));
292 fHistJetPtvsEPBias[centbin]->Fill(jetPt,fEPV0);
293 }
294 }
295
296 fHistNjetvsCent->Fill(fCent,NjetAcc);
297 return kTRUE;
298}
299
300
301
302
303