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