11 #include <TClonesArray.h> 14 #include <THnSparse.h> 16 #include <TLorentzVector.h> 17 #include <TParameter.h> 18 #include <TParticle.h> 22 #include "AliAODEvent.h" 23 #include "AliAnalysisManager.h" 24 #include "AliAnalysisTask.h" 25 #include "AliCentrality.h" 26 #include "AliESDEvent.h" 27 #include "AliESDInputHandler.h" 29 #include "AliVCluster.h" 44 fHistRhovsdEPLOC(0), fHistRhovsdEPGL(0),
45 fHistJetPtvsdEPLOC(0), fHistJetPtvsdEPGL(0),
46 fHistRhovsEPLOC(0), fHistRhovsEPGL(0),
47 fHistJetPtvsEPLOC(0), fHistJetPtvsEPGL(0),
48 fHistCorJetPt(0), fHistCorJetPtGL(0)
51 for (
Int_t i = 0;i<6;++i){
52 fHistJetPtvsTrackPt[i] = 0;
53 fHistRawJetPtvsTrackPt[i] = 0;
59 fHistJetPtvsdEP[i] = 0;
60 fHistJetPtvsdEPBias[i] = 0;
61 fHistJetPtvsEP[i] = 0;
62 fHistJetPtvsEPBias[i] = 0;
64 fHistCorJetPtfromLocalRho[i]= 0;
65 fHistCorJetPtfromGlobalRho[i] = 0;
67 fHistCorJetPtfromLocalRhoIN[i] = 0;
68 fHistCorJetPtfromLocalRhoOUT[i] = 0;
69 fHistCorJetPtfromGlobalRhoIN[i] = 0;
70 fHistCorJetPtfromGlobalRhoOUT[i]= 0;
71 fHistRhodEPcentLOC[i] = 0;
72 fHistRhodEPcentGL[i] = 0;
73 fHistCorJetPtdEPcentLOC[i] = 0;
74 fHistCorJetPtdEPcentGL[i] = 0;
75 fHistRhoEPcentLOC[i] = 0;
76 fHistRhoEPcentGL[i] = 0;
77 fHistCorJetPtEPcentLOC[i] = 0;
78 fHistCorJetPtEPcentGL[i] = 0;
82 SetMakeGeneralHistograms(kTRUE);
93 fHistRhovsdEPLOC(0), fHistRhovsdEPGL(0),
94 fHistJetPtvsdEPLOC(0), fHistJetPtvsdEPGL(0),
95 fHistRhovsEPLOC(0), fHistRhovsEPGL(0),
96 fHistJetPtvsEPLOC(0), fHistJetPtvsEPGL(0),
97 fHistCorJetPt(0), fHistCorJetPtGL(0)
99 for (
Int_t i = 0;i<6;++i){
146 fHistRhovsdEPLOC =
new TH2F(
"RhovsdEPLOC",
"RhovsdEPLOC",400,0,400, 144,-1*TMath::Pi(),1*TMath::Pi());
147 fHistRhovsdEPGL =
new TH2F(
"RhovsdEPGL",
"RhovsdEPGL",400,0,400, 144,-1*TMath::Pi(),1*TMath::Pi());
148 fHistJetPtvsdEPLOC =
new TH2F(
"JetPtvsdEPLOC",
"JetPtvsdEPLOC", 500, -250, 250, 144,-1*TMath::Pi(),1*TMath::Pi());
149 fHistJetPtvsdEPGL =
new TH2F(
"JetPtvsdEPGL",
"JetPtvsdEPGL", 500, -250, 250, 144,-1*TMath::Pi(),1*TMath::Pi());
150 fHistRhovsEPLOC =
new TH2F(
"RhovsEPLOC",
"RhovsEPLOC",400,0,400, 144,-1*TMath::Pi(),1*TMath::Pi());
151 fHistRhovsEPGL =
new TH2F(
"RhovsEPGL",
"RhovsEPGL",400,0,400, 144,-1*TMath::Pi(),1*TMath::Pi());
152 fHistJetPtvsEPLOC =
new TH2F(
"JetPtvsEPLOC",
"JetPtvsEPLOC", 500, -250, 250, 144,-1*TMath::Pi(),1*TMath::Pi());
153 fHistJetPtvsEPGL =
new TH2F(
"JetPtvsEPGL",
"JetPtvsEPGL", 500, -250, 250, 144,-1*TMath::Pi(),1*TMath::Pi());
155 fHistCorJetPtGL =
new TH1F(
"NjetvsCorrJetPtGL",
"NjetvsCorrJetPtGL", 500, -250, 250);
156 fHistCorJetPt =
new TH1F(
"NjetvsCorrJetPt",
"NjetvsCorrJetPt", 500, -250, 250);
160 for (
Int_t i = 0;i<6;++i){
161 name =
TString(Form(
"JetPtvsTrackPt_%i",i));
162 title =
TString(Form(
"Jet pT vs Leading Track pT cent bin %i",i));
165 name =
TString(Form(
"RawJetPtvsTrackPt_%i",i));
166 title =
TString(Form(
"Raw Jet pT vs Leading Track pT cent bin %i",i));
169 name =
TString(Form(
"TrackPt_%i",i));
170 title =
TString(Form(
"Track pT cent bin %i",i));
174 name =
TString(Form(
"EP0_%i",i));
175 title =
TString(Form(
"EP VZero cent bin %i",i));
176 fHistEP0[i] =
new TH1F(name,title,100,-TMath::Pi(),TMath::Pi());
178 name =
TString(Form(
"EP0A_%i",i));
179 title =
TString(Form(
"EP VZero cent bin %i",i));
180 fHistEP0A[i] =
new TH1F(name,title,100,-TMath::Pi(),TMath::Pi());
182 name =
TString(Form(
"EP0C_%i",i));
183 title =
TString(Form(
"EP VZero cent bin %i",i));
184 fHistEP0C[i] =
new TH1F(name,title,100,-TMath::Pi(),TMath::Pi());
186 name =
TString(Form(
"EPAvsC_%i",i));
187 title =
TString(Form(
"EP VZero cent bin %i",i));
188 fHistEPAvsC[i] =
new TH2F(name,title,100,-TMath::Pi(),TMath::Pi(),100,-TMath::Pi(),TMath::Pi());
190 name =
TString(Form(
"JetPtvsdEP_%i",i));
191 title =
TString(Form(
"Jet pt vs dEP cent bin %i",i));
194 name =
TString(Form(
"JetPtvsdEPBias_%i",i));
195 title =
TString(Form(
"Bias Jet pt vs dEP cent bin %i",i));
198 name =
TString(Form(
"JetPtvsEP_%i",i));
199 title =
TString(Form(
"Jet pt vs EP cent bin %i",i));
200 fHistJetPtvsEP[i] =
new TH2F(name,title,1000,-500,500,400,-2*TMath::Pi(),2*TMath::Pi());
202 name =
TString(Form(
"JetPtvsEPBias_%i",i));
203 title =
TString(Form(
"Bias Jet pt vs EP cent bin %i",i));
206 name =
TString(Form(
"RhovsEP_%i",i));
207 title =
TString(Form(
"Rho vs EP cent bin %i",i));
208 fHistRhovsEP[i] =
new TH2F(name,title,500,0,500,400,-2*TMath::Pi(),2*TMath::Pi());
211 name =
TString(Form(
"NjetvsCorrJetPtfromLocalRho_%i",i));
212 title =
TString(Form(
"Njets vs Corrected jet pT from Local Rho cent bin %i",i));
216 name =
TString(Form(
"NjetvsCorrJetPtfromGlobalRho_%i",i));
217 title =
TString(Form(
"Njets vs Corrected jet pT from Global Rho cent bin %i",i));
221 name =
TString(Form(
"NjetvsCorrJetPtfromGlobalRhoIN_%i",i));
222 title =
TString(Form(
"Njets vs Corrected jet pT from Global Rho IN PLANE cent bin %i",i));
226 name =
TString(Form(
"NjetvsCorrJetPtfromGlobalRhoOUT_%i",i));
227 title =
TString(Form(
"Njets vs Corrected jet pT from Global Rho OUT PLANE cent bin %i",i));
231 name =
TString(Form(
"RhovsdEPcentGLOBAL_%i",i));
232 title =
TString(Form(
"Rho vs delta Event Plane angle for Global Rho cent bin %i",i));
236 name =
TString(Form(
"JePtvsdEPcentGLOBAL_%i",i));
237 title =
TString(Form(
"Jet Pt vs delta Event Plane angle for Global Rho cent bin %i",i));
241 name =
TString(Form(
"NjetvsCorrJetPtfromLocalRhoIN_%i",i));
242 title =
TString(Form(
"Njets vs Corrected jet pT from Local Rho IN PLANE cent bin %i",i));
246 name =
TString(Form(
"NjetvsCorrJetPtfromLocalRhoOUT_%i",i));
247 title =
TString(Form(
"Njets vs Corrected jet pT from Local Rho OUT PLANE cent bin %i",i));
251 name =
TString(Form(
"RhovsdEPcentLOCAL_%i",i));
252 title =
TString(Form(
"Rho vs delta Event Plane angle for Local Rho cent bin %i",i));
256 name =
TString(Form(
"JetPtvsdEPcentLOCAL_%i",i));
257 title =
TString(Form(
"Jet Pt vs delta Event Plane angle for Local Rho cent bin %i",i));
262 name =
TString(Form(
"RhovsEPcentGLOBAL_%i",i));
263 title =
TString(Form(
"Rho vs Event Plane angle for Global Rho cent bin %i",i));
267 name =
TString(Form(
"RhovsEPcentLOCAL_%i",i));
268 title =
TString(Form(
"Rho vs Event Plane angle for Local Rho cent bin %i",i));
272 name =
TString(Form(
"JetPtvsEPcentLOCAL_%i",i));
273 title =
TString(Form(
"Jet Pt vs Event Plane angle for Local Rho cent bin %i",i));
278 name =
TString(Form(
"JetPtvsEPcentGLOBAL_%i",i));
279 title =
TString(Form(
"Jet Pt vs Event Plane angle for Global Rho cent bin %i",i));
313 if (cent>=0 && cent<10)
315 else if (cent>=10 && cent<20)
317 else if (cent>=20 && cent<30)
319 else if (cent>=30 && cent<40)
321 else if (cent>=40 && cent<50)
323 else if (cent>=50 && cent<90)
332 if (vphi < -1*TMath::Pi()) vphi += (2*TMath::Pi());
333 else if (vphi > TMath::Pi()) vphi -= (2*TMath::Pi());
334 if (mphi < -1*TMath::Pi()) mphi += (2*TMath::Pi());
335 else if (mphi > TMath::Pi()) mphi -= (2*TMath::Pi());
336 double dphi = mphi-vphi;
337 if (dphi < -1*TMath::Pi()) dphi += (2*TMath::Pi());
338 else if (dphi > TMath::Pi()) dphi -= (2*TMath::Pi());
356 for (
int i = 0;i<nTrack;i++){
357 AliVParticle *track =
static_cast<AliVParticle*
>(
fTracks->At(i));
364 AliWarning(Form(
"%s: No LocalRho object found, attempting to get it from Event based on name!",GetName()));
379 for (
Int_t iJets = 0; iJets < Njets; ++iJets) {
444 if( dEP>0 && dEP<=(TMath::Pi()/6) ){
448 }
else if( dEP>(TMath::Pi()/3) && dEP<=(TMath::Pi()/2) ){
466 if( dphi<-1*TMath::Pi() ){
467 dphi = dphi + 1*TMath::Pi();
470 if( (dphi>0) && (dphi<1*TMath::Pi()/2) ){
472 }
else if( (dphi>1*TMath::Pi()/2) && (dphi<1*TMath::Pi()) ){
473 dphi = 1*TMath::Pi() - dphi;
474 }
else if( (dphi<0) && (dphi>-1*TMath::Pi()/2) ){
476 }
else if( (dphi<-1*TMath::Pi()/2) && (dphi>-1*TMath::Pi()) ){
477 dphi = dphi + 1*TMath::Pi();
481 if( dphi < 0 || dphi > TMath::Pi()/2 )
482 AliWarning(Form(
"%s: dPHI is outside of restricted range: [0,Pi/2]",GetName()));
TH2F * fHistCorJetPtEPcentLOC[6]
TH2F * fHistRhovsdEPLOC
// Global vs Local Rho distribution
TH2F * fHistRhodEPcentGL[6]
TH2F * fHistCorJetPtdEPcentGL[6]
TH2F * fHistRhodEPcentLOC[6]
virtual Int_t GetCentBin(Double_t cent) const
Double_t GetLocalVal(Double_t phi, Double_t r, Double_t n) const
Double_t fEPV0
!event plane V0
TH2F * fHistJetPtvsdEPBias[6]
TH1F * fHistCorJetPtfromGlobalRhoIN[6]
AliAnalysisTaskEmcalJetSpectra()
AliLocalRhoParameter * GetLocalRhoFromEvent(const char *name)
TH1F * fHistCorJetPtfromGlobalRho[6]
TH2F * fHistCorJetPtdEPcentLOC[6]
Double_t fEPV0C
!event plane V0C
TH2F * fHistRhoEPcentLOC[6]
TH2F * fHistRawJetPtvsTrackPt[6]
TH2F * fHistCorJetPtEPcentGL[6]
TString fLocalRhoName
name for local rho
TH1F * fHistCorJetPtfromGlobalRhoOUT[6]
TH2F * fHistJetPtvsEPBias[6]
AliRhoParameter * GetRhoFromEvent(const char *name)
TH1F * fHistCorJetPtGL
// (Njets) vs Corrected Jet Pt (local rho)
AliRhoParameter * fRho
! event rho
Double_t MaxTrackPt() const
Double_t fCent
!event centrality
AliLocalRhoParameter * fLocalRho
! local event rho
TH2F * fHistJetPtvsTrackPt[6]
number of jets versus Centrality
Float_t RelativePhi(Double_t mphi, Double_t vphi) const
TH2F * fHistJetPtvsdEPLOC
TClonesArray * fJets
! jets
Bool_t Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
AliEmcalList * fOutput
!output list
TClonesArray * fTracks
!tracks
TH1F * fHistCorJetPtfromLocalRhoIN[6]
// (Njets) vs Corrected Jet Pt (global rho)
Float_t RelativeEPJET(Double_t jetAng, Double_t EPAng) const
Bool_t fCreateHisto
whether or not create histograms
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Double_t fEPV0A
!event plane V0A
Represent a jet reconstructed using the EMCal jet framework.
TH2F * fHistJetPtvsdEP[6]
void UserCreateOutputObjects()
Main initialization function on the worker.
TH1F * fHistCorJetPtfromLocalRho[6]
virtual Bool_t AcceptJet(AliEmcalJet *jet, Int_t c=0)
TH1F * fHistCorJetPtfromLocalRhoOUT[6]
TH2F * fHistRhoEPcentGL[6]
Double_t fRhoVal
! event rho value, same for local rho
virtual void UserCreateOutputObjects()