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