4 #include <TLorentzVector.h>
8 #include "AliVCluster.h"
9 #include "AliAODCaloCluster.h"
10 #include "AliESDCaloCluster.h"
18 #include "AliVEventHandler.h"
19 #include "AliAnalysisManager.h"
76 DefineOutput(2, TList::Class());
77 DefineOutput(3, TList::Class());
78 DefineOutput(4, TList::Class());
79 DefineOutput(5, TList::Class());
141 Bool_t bStatusTmpH = TH1::AddDirectoryStatus();
142 TH1::AddDirectory(kFALSE);
149 TH1::AddDirectory(bStatusTmpH);
168 AliAnalysisTaskEmcalJet::Terminate(opt);
297 pTrk->Pt(), pTrk->Eta(), pTrk->Phi() };
316 AliVCluster *pClu = 0;
324 vClu.Pt(), vClu.Eta(), vClu.Phi() };
343 Int_t kLjetID[2] = { -1, -1 };
351 if (dPtJ>dLjetPt[0]) {
352 dLjetPt[1] = dLjetPt[0];
353 kLjetID[1] = kLjetID[0];
357 }
else if (dPtJ>dLjetPt[1]) {
364 for (
Int_t j=0; j<2; j++) {
365 if ((kLjetID[j]<0) || (dLjetPt[j]<0.))
continue;
371 AliVParticle *pTrk = pJet->
TrackAt(i, pContTrk->GetArray());
376 pTrk->Pt(), pTrk->Eta(), pTrk->Phi(), 2.*j };
385 AliVCluster *pClu = pJet->
ClusterAt(i, pContClus->GetArray());
389 pClu->GetMomentum(vClu,
fVertex);
392 vClu.Pt(), vClu.Eta(), vClu.Phi(), 2.*j+1. };
414 const Double_t dPhiNeg = -1.*TMath::Pi();
415 const Double_t dPhiPos = 1.*TMath::Pi() + TMath::Pi()/50.;
416 const Double_t dPhiMax = TMath::TwoPi() + TMath::Pi()/50.;
417 const TString sBin[] = {
"aCent",
"aMtCh",
"aMtEm",
"aVz",
"aEPhi",
"aAPhi",
"aRho" };
418 const Int_t nBin[] = { 100, 600, 600, 20, 101, 101, 500 };
419 const Double_t dMin[] = { 0., 0., 0., -10., dPhiNeg, 0., 0. };
420 const Double_t dMax[] = { 100., 3000., 3000., 10., dPhiPos, dPhiMax, 500. };
423 fHnsEveH =
new THnSparseD(
"hsEveH",
"", nV, nBin, dMin, dMax);
424 for (
Int_t i=0; i<nV; i++)
fHnsEveH->GetAxis(i)->SetName(sBin[i]);
442 const Double_t dPhiNeg = -1.*TMath::Pi();
443 const Double_t dPhiPos = 1.*TMath::Pi() + TMath::Pi()/50.;
444 const Double_t dPhiMax = TMath::TwoPi() + TMath::Pi()/50.;
445 const Double_t dPhiMin = TMath::PiOver2() + TMath::Pi()/50.;
446 const TString sBin[] = {
"aCent",
"aMult",
"aVz",
"aEPhi",
"aAPhi",
"aRPhi",
"aPt",
"aEta",
"aPhi" };
447 const Int_t nBin[] = { 100, 600, 20, 101, 101, 26, 1000, 200, 101 };
448 const Double_t dMin[] = { 0., 0., -10., dPhiNeg, 0., 0., 0., -1., 0. };
449 const Double_t dMax[] = { 100., 3000., 10., dPhiPos, dPhiMax, dPhiMin, 100., 1., dPhiMax };
452 fHnsTrks =
new THnSparseD(
"hsTrks",
"", nV, nBin, dMin, dMax);
453 for (
Int_t i=0; i<nV; i++)
fHnsTrks->GetAxis(i)->SetName(sBin[i]);
471 const Double_t dPhiNeg = -1.*TMath::Pi();
472 const Double_t dPhiPos = 1.*TMath::Pi() + TMath::Pi()/50.;
473 const Double_t dPhiMax = TMath::TwoPi() + TMath::Pi()/50.;
474 const Double_t dPhiMin = TMath::PiOver2() + TMath::Pi()/50.;
475 const TString sBin[] = {
"aCent",
"aMult",
"aVz",
"aEPhi",
"aAPhi",
"aRPhi",
"aPt",
"aEta",
"aPhi" };
476 const Int_t nBin[] = { 100, 600, 20, 101, 101, 26, 1000, 200, 101 };
477 const Double_t dMin[] = { 0., 0., -10., dPhiNeg, 0., 0., 0., -1., 0. };
478 const Double_t dMax[] = { 100., 3000., 10., dPhiPos, dPhiMax, dPhiMin, 100., 1., dPhiMax };
481 fHnsClus =
new THnSparseD(
"hsClus",
"", nV, nBin, dMin, dMax);
482 for (
Int_t i=0; i<nV; i++)
fHnsClus->GetAxis(i)->SetName(sBin[i]);
500 const Double_t dPhiNeg = -1.*TMath::Pi();
501 const Double_t dPhiPos = 1.*TMath::Pi() + TMath::Pi()/50.;
502 const Double_t dPhiMax = TMath::TwoPi() + TMath::Pi()/50.;
503 const Double_t dPhiMin = TMath::PiOver2() + TMath::Pi()/50.;
504 const TString sBin[] = {
"aCent",
"aMult",
"aVz",
"aEPhi",
"aAPhi",
"aRPhi",
"aJet",
"aPt",
"aEta",
"aPhi",
"aType" };
505 const Int_t nBin[] = { 100, 600, 20, 101, 101, 26, 500, 1000, 200, 101, 4 };
506 const Double_t dMin[] = { 0., 0., -10., dPhiNeg, 0., 0., 0., 0., -1., 0., -0.5 };
507 const Double_t dMax[] = { 100., 3000., 10., dPhiPos, dPhiMax, dPhiMin, 250, 100., 1., dPhiMax, 3.5 };
510 fHnsJets =
new THnSparseD(
"hsJets",
"", nV, nBin, dMin, dMax);
511 for (
Int_t i=0; i<nV; i++)
fHnsJets->GetAxis(i)->SetName(sBin[i]);
525 Double_t dPhiSA = TVector2::Phi_mpi_pi(dPhi);
528 dPhiEP = TMath::Abs(dPhiEP);
529 if (dPhiEP>TMath::PiOver2()) dPhiEP = TMath::Pi() - dPhiEP;
543 AliVParticle *pTrk = 0;
547 dQx += TMath::Cos(pTrk->Phi());
548 dQy += TMath::Sin(pTrk->Phi());
549 } TVector2 vQ(dQx,dQy);
virtual AliVParticle * GetNextAcceptParticle()
Double_t GetRhoVal() const
AliJetContainer * GetJetContainer(Int_t i=0) const
Bool_t fLocalInitialized
whether or not the task has been already initialized
virtual Bool_t FillGeneralHistograms()
AliAnalysisTaskEmcalTmpSparseMaker()
Double_t fEPV0
!event plane V0
AliClusterContainer * GetClusterContainer() const
Bool_t RetrieveEventObjects()
virtual void UserCreateOutputObjects()
Container for particles within the EMCAL framework.
UShort_t GetNumberOfTracks() const
AliParticleContainer * GetParticleContainer(Int_t i=0) const
AliClusterContainer * fContClus
AliParticleContainer * GetParticleContainer() const
virtual Bool_t FillHistograms()
AliParticleContainer * fContTrks
Short_t ClusterAt(Int_t idx) const
UShort_t GetNumberOfClusters() const
AliClusterContainer * GetClusterContainer(Int_t i=0) const
virtual Bool_t FillGeneralHistograms()
Int_t GetNAcceptedClusters() const
Double_t fCent
!event centrality
AliEmcalJet * GetNextAcceptJet()
virtual Bool_t IsEventSelected()
Short_t TrackAt(Int_t idx) const
virtual Bool_t RetrieveEventObjects()
Double_t CalcRelPhiEP(Double_t dPhi)
Double_t fVertex[3]
!event vertex
virtual ~AliAnalysisTaskEmcalTmpSparseMaker()
void SetMakeGeneralHistograms(Bool_t g)
AliEmcalJet * GetAcceptJet(Int_t i) const
Bool_t GetMomentum(TLorentzVector &mom, const AliVCluster *vc, Double_t mass) const
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
void UserCreateOutputObjects()
virtual Bool_t IsEventSelected()
ClassImp(AliAnalysisTaskEmcalTmpSparseMaker) AliAnalysisTaskEmcalTmpSparseMaker
Int_t GetNAcceptedParticles() const
virtual Bool_t FillHistograms()
Container structure for EMCAL clusters.
AliJetContainer * fContJets
AliVCluster * GetNextAcceptCluster()
virtual void Terminate(Option_t *opt)
Double_t GetJetPtCorr(Int_t i) const