6 #include <TClonesArray.h>
11 #include <TLorentzVector.h>
14 #include "AliVCluster.h"
15 #include "AliAODCaloCluster.h"
16 #include "AliESDCaloCluster.h"
17 #include "AliVTrack.h"
47 fHistLeadingJetPtCorr(0),
50 fHistJetsPtLeadHad(0),
51 fHistJetsCorrPtArea(0),
52 fHistPtDEtaDPhiTrackClus(0),
53 fHistPtDEtaDPhiClusTrack(0),
99 SetMakeGeneralHistograms(kTRUE);
115 fHistLeadingJetPt(0),
116 fHistLeadingJetPtCorr(0),
119 fHistJetsPtLeadHad(0),
120 fHistJetsCorrPtArea(0),
121 fHistPtDEtaDPhiTrackClus(0),
122 fHistPtDEtaDPhiClusTrack(0),
169 Double_t centBinsTemp[7] = {0,5,10,20,30,40,50};
171 Double_t jetPtBinsTemp[6] = {40.,50.,70.,90.,120.,200.};
222 fHistJetsPhiEta =
new TH2F(
"fHistJetsPhiEta",
"fHistJetsPhiEta", 50, -1, 1, 101, 0, TMath::Pi()*2 + TMath::Pi()/200);
243 fHistPtDEtaDPhiTrackClus =
new TH3F(
"fHistPtDEtaDPhiTrackClus",
"fHistPtDEtaDPhiTrackClus;#it{p}_{T}^{track};#Delta#eta;#Delta#varphi",100,0.,100.,100,-0.1,0.1,100,-0.1,0.1);
246 fHistPtDEtaDPhiClusTrack =
new TH3F(
"fHistPtDEtaDPhiClusTrack",
"fHistPtDEtaDPhiClusTrack;#it{p}_{T}^{clus};#Delta#eta;#Delta#varphi",100,0.,100.,100,-0.1,0.1,100,-0.1,0.1);
249 fDPhiJet =
new TH1F(
"fDPhiJet",
"fDPhiJet",90, -TMath::Pi()/3, 5*TMath::Pi()/3);
250 fDPhiJet->GetXaxis()->SetTitle(
"#Delta#varphi");
251 fDPhiJet->GetYaxis()->SetTitle(
"counts");
254 fDPhiJetPythia =
new TH1F(
"fDPhiJetPythia",
"fDPhiJetPythia",90, -TMath::Pi()/3, 5*TMath::Pi()/3);
259 fDPhiEP =
new TH1F(
"fDPhiEP",
"fDPhiEP",90, 0, 2*TMath::Pi());
260 fDPhiEP->GetXaxis()->SetTitle(
"#Delta#varphi");
261 fDPhiEP->GetYaxis()->SetTitle(
"counts");
265 hGx->GetXaxis()->SetTitle(
"Centrality (%)");
266 hGx->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
270 hGy2->GetXaxis()->SetTitle(
"Centrality (%)");
271 hGy2->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
275 hGxGy2->GetXaxis()->SetTitle(
"Centrality (%)");
276 hGxGy2->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
280 hGy4->GetXaxis()->SetTitle(
"Centrality (%)");
281 hGy4->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
285 hGx2->GetXaxis()->SetTitle(
"Centrality (%)");
286 hGx2->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
290 hGx2Gy2->GetXaxis()->SetTitle(
"Centrality (%)");
291 hGx2Gy2->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
295 hGxGy4->GetXaxis()->SetTitle(
"Centrality (%)");
296 hGxGy4->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
300 hGy6->GetXaxis()->SetTitle(
"Centrality (%)");
301 hGy6->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
305 hGx2Gy4->GetXaxis()->SetTitle(
"Centrality (%)");
306 hGx2Gy4->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
310 hGxGy6->GetXaxis()->SetTitle(
"Centrality (%)");
311 hGxGy6->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
315 hGy8->GetXaxis()->SetTitle(
"Centrality (%)");
316 hGy8->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
320 hGy->GetXaxis()->SetTitle(
"Centrality (%)");
321 hGy->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
325 hN->GetXaxis()->SetTitle(
"Centrality (%)");
326 hN->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
330 htv2std->GetXaxis()->SetTitle(
"Centrality (%)");
331 htv2std->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
335 htjv2std->GetXaxis()->SetTitle(
"Centrality (%)");
336 htjv2std->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
340 htj2v2std->GetXaxis()->SetTitle(
"Centrality (%)");
341 htj2v2std->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
345 hV0jv2std->GetXaxis()->SetTitle(
"Centrality (%)");
346 hV0jv2std->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
349 Int_t ndpsibins = 100;
351 for(
Int_t t = 0; t < 101; t++) dpsibins[t] = TMath::Pi()*t/50.;
354 htdPsi->GetZaxis()->SetTitle(
"#Psi_{jet} - #Psi_{EP}");
358 htjdPsi->GetZaxis()->SetTitle(
"#Psi_{jet} - #Psi_{EP}");
362 htj2dPsi->GetZaxis()->SetTitle(
"#Psi_{jet} - #Psi_{EP}");
366 hV0jdPsi->GetZaxis()->SetTitle(
"#Psi_{jet} - #Psi_{EP}");
370 hQx->GetXaxis()->SetTitle(
"Qx");
371 hQx->GetYaxis()->SetTitle(
"Centrality (%)");
375 hQy->GetXaxis()->SetTitle(
"Qy");
376 hQy->GetYaxis()->SetTitle(
"Centrality (%)");
380 hAx->GetXaxis()->SetTitle(
"Ax");
381 hAx->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
385 hAxDijet->GetXaxis()->SetTitle(
"Ax");
386 hAxDijet->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
389 hEventData =
new TH1F(
"hEventData",
"Events Kept and Discarded", 9, 0, 9);
393 hNTracks =
new TH2F(
"hNTracks",
"Number of Tracks Per Event", 100, 0, 3000, 3, 0, 3);
394 hNTracks->GetXaxis()->SetTitle(
"# tracks");
402 hGxTracks =
new TH2D(
"hGxTracks",
"Gx by NTracks", 200, -200, 200, 100, 0, 3000);
404 hGxTracks->GetYaxis()->SetTitle(
"# tracks");
407 hGyTracks =
new TH2D(
"hGyTracks",
"Gy by NTracks", 200, -200, 200, 100, 0, 3000);
409 hGyTracks->GetYaxis()->SetTitle(
"# tracks");
412 hGy2Tracks =
new TH2D(
"hGy2Tracks",
"Gy2 by NTracks", 100, 0, 20000, 100, 0, 3000);
417 hGxGy2Tracks =
new TH2D(
"hGxGy2Tracks",
"GxGy2 by NTracks", 100, -100000, 100000, 100, 0, 3000);
422 hGy4Tracks =
new TH2D(
"hGy4Tracks",
"Gy4 by NTracks", 100, 0, 100000000, 100, 0, 3000);
428 htEPRes->GetXaxis()->SetTitle(
"Centrality (%)");
429 htEPRes->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
433 htjEPRes->GetXaxis()->SetTitle(
"Centrality (%)");
434 htjEPRes->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
438 htj2EPRes->GetXaxis()->SetTitle(
"Centrality (%)");
439 htj2EPRes->GetYaxis()->SetTitle(
"Leading Jet pT (GeV/c)");
493 Int_t nTracksBkgnd = 0;
521 jetArea = jet->
Area();
567 if(dijet->
Pt() > jetPt*2./3. && fabs(jetPhi-dijet->
Phi()-TMath::Pi()) < 0.4)
577 TLorentzVector nPart;
578 cluster->GetMomentum(nPart,
fVertex);
591 trackPt = track->Pt();
596 if(dPhi < 0) dPhi += TMath::TwoPi();
597 if(dPhi > TMath::TwoPi()) dPhi -= TMath::TwoPi();
600 if(dPhiQA < 0) dPhiQA += TMath::TwoPi();
601 if(dPhiQA > TMath::TwoPi()) dPhiQA -= TMath::TwoPi();
608 if(dphiJet > 5*TMath::Pi()/3) dphiJet -= 2*TMath::Pi();
609 if(dphiJet < -TMath::Pi()/3) dphiJet += 2*TMath::Pi();
610 if(track->GetLabel() == 0)
619 gx += weight*cos(2*dPhi);
620 gy += weight*sin(2*dPhi);
622 if(track->GetLabel() == 0)
624 tSin += weight*sin(2*phi);
625 tCos += weight*cos(2*phi);
626 qx += weight*cos(2*dPhiQA);
627 qy += weight*sin(2*dPhiQA);
632 jSin += weight*sin(2*phi);
633 jCos += weight*cos(2*phi);
634 ax += weight*cos(2*dPhi);
640 tSin2 += weight*sin(2*phi);
641 tCos2 += weight*cos(2*phi);
648 hNTracks->Fill(nTracksBkgnd,
"Bkgnd Tracks",1);
649 hNTracks->Fill(nTracksJet,
"Jet Tracks",1);
650 hNTracks->Fill(nTracksBkgnd+nTracksJet,
"Total Tracks",1);
653 if(nTracksBkgnd == 0)
662 hGx->Fill(
fCent, jetPt, v2weight*gx);
663 hGy2->Fill(
fCent, jetPt, v2weight*gy*gy);
665 hGy4->Fill(
fCent, jetPt, v2weight*gy*gy*gy*gy);
666 hGx2->Fill(
fCent, jetPt, v2weight*gx*gx);
668 hGxGy4->Fill(
fCent, jetPt, v2weight*gx*gy*gy*gy*gy);
669 hGy6->Fill(
fCent, jetPt, v2weight*gy*gy*gy*gy*gy*gy);
670 hGx2Gy4->Fill(
fCent, jetPt, v2weight*gx*gx*gy*gy*gy*gy);
671 hGxGy6->Fill(
fCent, jetPt, v2weight*gx*gy*gy*gy*gy*gy*gy);
672 hGy8->Fill(
fCent, jetPt, v2weight*gy*gy*gy*gy*gy*gy*gy*gy);
673 hGy->Fill(
fCent, jetPt, v2weight*gy);
674 hN->Fill(
fCent, jetPt, v2weight);
676 hGxTracks->Fill(gx,nTracksBkgnd+nTracksJet);
677 hGyTracks->Fill(gy,nTracksBkgnd+nTracksJet);
678 hGy2Tracks->Fill(gy*gy,nTracksBkgnd+nTracksJet);
680 hGy4Tracks->Fill(gy*gy*gy*gy,nTracksBkgnd+nTracksJet);
689 tEP = 0.5*atan2(tSin,tCos);
690 tjEP = 0.5*atan2((tSin+jSin),(tCos+jCos));
691 tjEP2 = 0.5*atan2(tSin2,tCos2);
699 if(dPsi < 0) dPsi += TMath::TwoPi();
700 if(dPsi > TMath::TwoPi()) dPsi -= TMath::TwoPi();
706 if(dPsi < 0) dPsi += TMath::TwoPi();
707 if(dPsi > TMath::TwoPi()) dPsi -= TMath::TwoPi();
713 if(dPsi < 0) dPsi += TMath::TwoPi();
714 if(dPsi > TMath::TwoPi()) dPsi -= TMath::TwoPi();
720 if(dPsi < 0) dPsi += TMath::TwoPi();
721 if(dPsi > TMath::TwoPi()) dPsi -= TMath::TwoPi();
746 cout << endl <<
"Setting " << nCentBins <<
" centrality bins: " << endl;
747 for(
Int_t i = 0; i < nCentBins+1; i++)
749 cout << endl << endl;
760 cout << endl <<
"Setting " << nJetPtBins <<
" jet pt bins: " << endl;
761 for(
Int_t i = 0; i < nJetPtBins+1; i++)
763 cout << endl << endl;
virtual AliVParticle * GetNextAcceptParticle()
Double_t GetRhoVal() const
void SetCentBins(Int_t n, Double_t *bins)
AliJetContainer * GetJetContainer(Int_t i=0) const
TH2F * fHistJetsPhiEta
Leading jet pt spectrum, background subtracted.
Double_t fMinBinPt
min pt in histograms
Double_t fEPV0
!event plane V0
AliClusterContainer * GetClusterContainer() const
TH2F * fHistJetsPtArea
Phi-Eta distribution of jets.
virtual ~AliAnalysisTaskEmcalJetv2QA()
ClassImp(AliAnalysisTaskEmcalJetv2QA) AliAnalysisTaskEmcalJetv2QA
AliParticleContainer * GetParticleContainer(Int_t i=0) const
void UserCreateOutputObjects()
AliParticleContainer * GetParticleContainer() const
AliEmcalJet * GetLeadingJet(const char *opt="")
Double_t GetLeadingHadronPt(const AliEmcalJet *jet) const
AliJetContainer * fJetsCont
AliAnalysisTaskEmcalJetv2QA()
TH3F * fHistPtDEtaDPhiTrackClus
Jet pt - bkg vs. area.
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Double_t fCent
!event centrality
AliEmcalJet * GetNextAcceptJet()
TH2F * fHistJetsPtLeadHad
Jet pt vs. area.
TH3F * fHistPtDEtaDPhiClusTrack
track pt, delta eta, delta phi to matched cluster
AliEmcalList * fOutput
!output list
Double_t fMaxBinPt
max pt in histograms
TH1F * fHistClustersPt
Track pt spectrum.
Double_t fVertex[3]
!event vertex
TH1F * fHistLeadingJetPt
Cluster pt spectrum.
AliParticleContainer * fTracksCont
Jets.
void SetMakeGeneralHistograms(Bool_t g)
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
void SetJetPtBins(Int_t n, Double_t *bins)
TH1F * fDPhiJet
cluster pt, delta eta, delta phi to matched track
void UserCreateOutputObjects()
TH1F * fHistLeadingJetPtCorr
Leading jet pt spectrum.
TH2F * fHistJetsCorrPtArea
Jet pt vs. leading hadron.
void Terminate(Option_t *option)
AliVCluster * GetNextAcceptCluster()
AliClusterContainer * fCaloClustersCont
Tracks.
Int_t fNbins
no. of pt bins