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()
Filling general histograms.
AliAnalysisTaskEmcalTmpSparseMaker()
Double_t fEPV0
!event plane V0
Int_t ClusterAt(Int_t idx) const
AliClusterContainer * GetClusterContainer() const
Bool_t RetrieveEventObjects()
virtual void UserCreateOutputObjects()
Container for particles within the EMCAL framework.
Int_t TrackAt(Int_t idx) const
UShort_t GetNumberOfTracks() const
AliParticleContainer * GetParticleContainer(Int_t i=0) const
Get particle container attached to this task.
AliClusterContainer * fContClus
AliParticleContainer * GetParticleContainer() const
virtual Bool_t FillHistograms()
Function filling histograms.
AliParticleContainer * fContTrks
UShort_t GetNumberOfClusters() const
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Get cluster container attached to this task.
virtual Bool_t FillGeneralHistograms()
Filling general histograms.
Int_t GetNAcceptedClusters() const
Double_t fCent
!event centrality
AliEmcalJet * GetNextAcceptJet()
virtual Bool_t IsEventSelected()
Performing event selection.
virtual Bool_t RetrieveEventObjects()
Retrieve common objects from event.
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
virtual 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.
Base task in the EMCAL jet framework.
Represent a jet reconstructed using the EMCal jet framework.
void UserCreateOutputObjects()
Main initialization function on the worker.
virtual Bool_t IsEventSelected()
Performing event selection.
Int_t GetNAcceptedParticles() const
virtual Bool_t FillHistograms()
Function filling histograms.
Container structure for EMCAL clusters.
AliJetContainer * fContJets
AliVCluster * GetNextAcceptCluster()
virtual void ExecOnce()
Perform steps needed to initialize the analysis.
virtual void Terminate(Option_t *opt)
Double_t GetJetPtCorr(Int_t i) const