ROOT logo
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisHelperJetTasks.h"
#include "THnSparse.h"
#include "AliAnalysisManager.h"
#include "AliInputEventHandler.h"
#include "AliAODHandler.h"
#include "AliAODInputHandler.h"
#include "AliAODEvent.h"
#include "AliESDEvent.h"
#include "TAxis.h"
#include "AliAODMCParticle.h"


#include "AliAnalysisTaskPPJetSpectra.h"
#include "AliAnalysisHelperJetTasks.h"

ClassImp(AliAnalysisTaskPPJetSpectra)

//---------------------------------------------------------------------------------------------------
AliAnalysisTaskPPJetSpectra::AliAnalysisTaskPPJetSpectra()
 :AliAnalysisTaskSE()
  ,fOutputList(0)
  ,fESD(0)
  ,fAOD(0)
  ,fAODIn(0)
  ,fAODOut(0)
  ,fAODExt(0)
  ,fNonStdFile("")
  ,fDebug(0)
  ,fUseMC(kFALSE)
  ,fEvtSelectionMask(0)
  ,fEventClass(-1)
  ,nVtxContCut(2)
  ,fVtxZcut(10)
  ,fVtxRcut(1)
  ,nTrackFilter(272)
  ,trackPtMin(0.15)
  ,trackPtMax(100.)
  ,trackEtaAbsMax(0.9)
  ,jetPtMin(0.)
  ,jetEtaCut(0.)
  ,jetZmax(0.)
  ,fhnEvent(0)
  ,fhnTracks(0)
  ,fhnMC(0)
  ,fhnMC2(0)
  ,fhnRecJetsNoCut(0)
  ,fhnGenJetsNoCut(0)
  ,fhnRecJetsCut(0)
  ,fhnGenJetsCut(0)
  ,fhnRecBckg(0)
  ,fhnGenBckg(0)
  ,fhnRecJetsTrackUEcor(0)
  ,fhnGenJetsTrackUEcor(0)
  ,fhnRecJetsBckgUEcor(0)
  ,fhnGenJetsBckgUEcor(0)
  ,fhnTrackUE(0)
  ,fhnParticleUE(0)
  ,fhnBckgRecUE(0)
  ,fhnBckgGenUE(0)
  ,fRecJetBranch("")
  ,fGenJetBranch("")
  ,fRecBckgBranch("")
  ,fGenBckgBranch("")
  ,fRecJetR(0.)
  ,fGenJetR(0.)
  ,fRecBckgR(0.)
  ,fGenBckgR(0.)
  ,fTrackType(0)
  ,fParticleType(0)
  ,fhnMatching(0)
  ,fhnTrackCorrMatching(0)
  ,fhnBckgCorrMatching(0)
  ,fhnTrackUEanal(0)
  ,kDoUEanalysis(kFALSE)
  ,fRejectPileUp(1)
{
  if(fDebug) printf("%s: %d  Constructor\n",(char*)__FILE__, __LINE__);
  //DefineOutput(1, TList::Class());
}

//---------------------------------------------------------------------------------------------------
AliAnalysisTaskPPJetSpectra::AliAnalysisTaskPPJetSpectra(const char* name):AliAnalysisTaskSE(name)
  ,fOutputList(0)
  ,fESD(0)
  ,fAOD(0)
  ,fAODIn(0)
  ,fAODOut(0)
  ,fAODExt(0)
  ,fNonStdFile("")
  ,fDebug(0)
  ,fUseMC(kFALSE)
  ,fEvtSelectionMask(0)
  ,fEventClass(-1)
  ,nVtxContCut(2)
  ,fVtxZcut(10)
  ,fVtxRcut(1)
  ,nTrackFilter(272)
  ,trackPtMin(0.15)
  ,trackPtMax(100.)
  ,trackEtaAbsMax(0.9)
  ,jetPtMin(0.)
  ,jetEtaCut(0.)
  ,jetZmax(0.)
  ,fhnEvent(0)
  ,fhnTracks(0)
  ,fhnMC(0)
  ,fhnMC2(0)
  ,fhnRecJetsNoCut(0)
  ,fhnGenJetsNoCut(0)
  ,fhnRecJetsCut(0)
  ,fhnGenJetsCut(0)
  ,fhnRecBckg(0)
  ,fhnGenBckg(0)
  ,fhnRecJetsTrackUEcor(0)
  ,fhnGenJetsTrackUEcor(0)
  ,fhnRecJetsBckgUEcor(0)
  ,fhnGenJetsBckgUEcor(0)
  ,fhnTrackUE(0)
  ,fhnParticleUE(0)
  ,fhnBckgRecUE(0)
  ,fhnBckgGenUE(0)
  ,fRecJetBranch("")
  ,fGenJetBranch("")
  ,fRecBckgBranch("")
  ,fGenBckgBranch("")
  ,fRecJetR(0.)
  ,fGenJetR(0.)
  ,fRecBckgR(0.)
  ,fGenBckgR(0.)
  ,fTrackType(0)
  ,fParticleType(0)
  ,fhnMatching(0)
  ,fhnTrackCorrMatching(0)
  ,fhnBckgCorrMatching(0)
  ,fhnTrackUEanal(0)
  ,kDoUEanalysis(kFALSE)
  ,fRejectPileUp(1)
{
  if(fDebug) printf("%s: %d  Constructor\n",(char*)__FILE__, __LINE__);
  DefineOutput(1, TList::Class());
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::Init()
{
  if(fDebug) printf("%s: %d  Initialize\n", (char*)__FILE__, __LINE__);
  return;
}

//---------------------------------------------------------------------------------------------------
Bool_t AliAnalysisTaskPPJetSpectra::Notify()
{

  if(fDebug) printf("%s: %d  Notify\n", (char*)__FILE__, __LINE__);
  return kTRUE;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::UserCreateOutputObjects()
{
  fOutputList = new TList;
  PostData(1,fOutputList);
  fOutputList->SetOwner(1);

  const Double_t binsPt[] = {0.,2.,4.,6.,8.,10.,12., 14.,16., 18.,20.,24.,28.,32.,38.,44.,50.,58.,66.,76.,86.,100.,114.,128.,150.,250.};
  const Int_t nBinsPt = 25;

  const Double_t trackPtBins[42] = {0,0.2,0.4,0.6,0.8,1.,1.2,1.4,1.6,1.8,2.,2.5,3.,3.5,4.,4.5,5.,5.5,6.,8.,10.,12.,14.,16.,18.,20.,25.,30.,35.,40.,45.,50.,55.,60.,65.,70.,75.,80.,85.,90.,95.,100};
  const Int_t nTrackPtBins = 41;

  if(fDebug) printf("%s: %d  Creating output objects\n",(char*)__FILE__,__LINE__);
  // triggered - centrality - z-vtxs - r-vtx - ncontrib - ntracks - IsPileUp?- njetsrec - njetsgen - accepted
  const Int_t evtsDim = 7;
  Int_t     evtsBins[evtsDim] = {   2,   22,   40,  20,  20,    2,  2};
  Double_t  evtsMins[evtsDim] = {-0.5,  -5., -20.,  0.,  0., -0.5, -0.5};
  Double_t  evtsMaxs[evtsDim] = { 1.5, 105.,  20.,  2., 40.,  1.5, 1.5};
  // pt - eta - phi - is272 - charge
  const Int_t trksDim = 7;
  Int_t     trksBins[trksDim] = {  nTrackPtBins,  10,             10,    2,   2,   2,    3};
  Double_t  trksMins[trksDim] = {            0.,  -1.,            0., -0.5,-0.5,-0.5, -1.5};
  Double_t  trksMaxs[trksDim] = {            0.,   1., 2*TMath::Pi(),  1.5, 1.5, 1.5,  1.5};
  // pt - eta - phi - AreaCh - AreaN - ptLeadingTrack/ptJet - nTracks
  const Int_t jetsDim = 7;
  Int_t     jetsBins[jetsDim] = { nBinsPt,  20,            10,3, 5, 20, 30};
  Double_t  jetsMins[jetsDim] = {      0., -1.,            0., 0., 0., 0., 0.};
  Double_t  jetsMaxs[jetsDim] = {      0.,  1., 2*TMath::Pi(), 3., 5., 1.,30.};
  // pt - eta - phi - AreaCH - AreaN - UEdensity - ptLeadingTrack/ptJet - ptOrig 
  const Int_t jetsUEcorDim = 8;
  Int_t     jetsUEcorBins[jetsUEcorDim] = { nBinsPt,  10,            10, 3,  5, 100,  20, nBinsPt};
  Double_t  jetsUEcorMins[jetsUEcorDim] = {  	 0., -1.,            0., 0., 0.,  0.,  0.,  0.};
  Double_t  jetsUEcorMaxs[jetsUEcorDim] = {  	 0.,  1., 2*TMath::Pi(), 3., 5., 10.,  1.,  0.};
  // leading jet pt - eta - sumAllPt1 - sumAllPt2 - Rpar
  const Int_t ueDim = 5;
  Int_t       ueBins[ueDim] = {  nBinsPt, 20, 100, 100, 100};
  Double_t    ueMins[ueDim] = {       0., -1,  0.,  0., 0.};
  Double_t    ueMaxs[ueDim] = {       0.,  1, 10., 10., 10.};
  // ptGen - ptRec - ptFraction - maxDist - bothWays - (1 - rec/gen) - dR - dEta - dPhi - isSamePtBin
  const Int_t matchingDim = 10;
  Int_t	      matchingBins[matchingDim] = {nBinsPt, nBinsPt,  20,    5,    2, 100, 10,  10, 10, 2  };
  Double_t    matchingMins[matchingDim] = {	0., 	 0.,  0., 0.05, -0.5,   0,  0,   0,  0,-0.5};
  Double_t    matchingMaxs[matchingDim] = {	0., 	 0.,  1., 0.55,  1.5,   1,0.5, 0.5,0.5, 1.5};

  fhnEvent    = new THnSparseF("fhnEvent", "fhnEvent;triggered;centrality;zVtx;rVtx;Ncontrib;IsPileUp;isAccepted", evtsDim, evtsBins, evtsMins, evtsMaxs);
  fhnTracks   = new THnSparseF("fhnTracks", "fhnTraks;pT;eta;phi;isFilterMask272;isMask16;isMask256;charge;", trksDim, trksBins, trksMins, trksMaxs);
  fhnMC       = new THnSparseF("fhnMC",     "fhnTraks;pT;eta;phi;isFilterMask272;isMask16;isMask256;charge;", trksDim, trksBins, trksMins, trksMaxs);
  fhnMC2      = new THnSparseF("fhnMC2",    "fhnTraks;pT;eta;phi;isFilterMask272;isMask16;isMask256;charge;", trksDim, trksBins, trksMins, trksMaxs);

  fhnRecJetsNoCut  = new THnSparseF("fhnRecJetsNoCut", "fhnRecJetsNoCut;pT;eta;phi;AreaCH;AreaN;z;nTracks;", jetsDim, jetsBins, jetsMins, jetsMaxs);
  fhnGenJetsNoCut  = new THnSparseF("fhnGenJetsNoCut", "fhnGenJetsNoCut;pT;eta;phi;AreaCH;AreaN;z;nTracks;", jetsDim, jetsBins, jetsMins, jetsMaxs);
  fhnRecJetsCut    = new THnSparseF("fhnRecJetsCut",     "fhnRecJetsCut;pT;eta;phi;AreaCH;AreaN;z;nTracks;", jetsDim, jetsBins, jetsMins, jetsMaxs);
  fhnGenJetsCut    = new THnSparseF("fhnGenJetsCut",     "fhnGenJetsCut;pT;eta;phi;AreaCH;AreaN;z;nTracks;", jetsDim, jetsBins, jetsMins, jetsMaxs);
  //UE sparses
  fhnTrackUE     = new THnSparseF("fhnTrackUE",      "fhnTrackUE;pT-leading jet;eta;sum1;sum2;avgSum;", ueDim, ueBins, ueMins, ueMaxs);
  fhnParticleUE  = new THnSparseF("fhnParticleUE","fhnParticleUE;pT-leading jet;eta;sum1;sum2;avgSum;", ueDim, ueBins, ueMins, ueMaxs);
  // pt - eta - phi - AreaCH - AreaN - UEdensity - ptLeadingTrack/ptJet - ptOrig 
  fhnRecJetsTrackUEcor  = new THnSparseF("fhnRecJetsTrackUEcor", "fhnRecJetsTrackUEcor;pT;eta;phi;AreaCH;AreaN;UE;z;pTorig;", jetsUEcorDim, jetsUEcorBins, jetsUEcorMins, jetsUEcorMaxs);
  fhnGenJetsTrackUEcor  = new THnSparseF("fhnGenJetsTrackUEcor", "fhnGenJetsTrackUEcor;pT;eta;phi;AreaCH;AreaN;UE;z;pTorig;", jetsUEcorDim, jetsUEcorBins, jetsUEcorMins, jetsUEcorMaxs);
  // ptGen - ptRec - ptFraction - maxDist - bothWays
  fhnMatching = new THnSparseF("fhnMatching","fhnMatching;pTgen;pTrec;ptFraction;maxDist;bothWays;1-p_{T,rec}/p_{T,gen}; dR; dEta; dPhi;;isSamePtBin;", matchingDim, matchingBins, matchingMins, matchingMaxs);
  fhnTrackCorrMatching = new THnSparseF("fhnTrackCorrMatching","fhnTrackCorrMatching;pTgen;pTrec;ptFraction;maxDist;bothWays;1-p_{T,rec}/p_{T,gen}; dR; dEta; dPhi;isSamePtBin;", matchingDim, matchingBins, matchingMins, matchingMaxs);

  fhnTracks->SetBinEdges(0, trackPtBins);
  fhnTrackUE->SetBinEdges(0, trackPtBins);
  fhnParticleUE->SetBinEdges(0, trackPtBins);

  fhnRecJetsNoCut->SetBinEdges(0, binsPt);
  fhnGenJetsNoCut->SetBinEdges(0, binsPt);
  fhnRecJetsCut->SetBinEdges(0, binsPt);
  fhnGenJetsCut->SetBinEdges(0, binsPt);

  fhnRecJetsTrackUEcor->SetBinEdges(0,binsPt);
  fhnRecJetsTrackUEcor->SetBinEdges(7,binsPt);
  fhnGenJetsTrackUEcor->SetBinEdges(0,binsPt);
  fhnGenJetsTrackUEcor->SetBinEdges(7,binsPt);

  fhnMatching->SetBinEdges(0,binsPt);
  fhnMatching->SetBinEdges(1,binsPt);
  fhnTrackCorrMatching->SetBinEdges(0,binsPt);
  fhnTrackCorrMatching->SetBinEdges(1,binsPt);

  fhnEvent->Sumw2();
  fhnTracks->Sumw2();
  fhnMC->Sumw2();
  fhnMC2->Sumw2();
  fhnRecJetsNoCut->Sumw2();
  fhnGenJetsNoCut->Sumw2();
  fhnRecJetsCut->Sumw2();
  fhnGenJetsCut->Sumw2();
  fhnRecJetsTrackUEcor->Sumw2();
  fhnGenJetsTrackUEcor->Sumw2();
  fhnTrackUE->Sumw2();
  fhnParticleUE->Sumw2();
  fhnMatching->Sumw2();
  fhnTrackCorrMatching->Sumw2();

  fOutputList->Add(fhnEvent);
  fOutputList->Add(fhnTracks);
  fOutputList->Add(fhnMC);
  fOutputList->Add(fhnMC2);
  fOutputList->Add(fhnRecJetsNoCut);
  fOutputList->Add(fhnGenJetsNoCut);
  fOutputList->Add(fhnRecJetsCut);
  fOutputList->Add(fhnGenJetsCut);
  fOutputList->Add(fhnRecJetsTrackUEcor);
  fOutputList->Add(fhnGenJetsTrackUEcor);
  fOutputList->Add(fhnTrackUE);
  fOutputList->Add(fhnParticleUE);
  fOutputList->Add(fhnMatching);
  fOutputList->Add(fhnTrackCorrMatching);

  const Int_t trackUEdim = 11;
  //max track pt - ch_part_dens - ch_pt_dens - avg_pt_track - zero particles -tMAX_part_dens-tMIN_part_dens-tDIF_part_dens-tMAX_pt_dens-tMIN_pt_dens-tDIF_pt_dens
  Int_t trackUEbins[trackUEdim] = { 100, 50, 50, 50,   2, 50, 50, 50, 50, 50, 50};
  Double_t trackUEmins[trackUEdim] = {  0., 0., 0.,  0.,-0.5, 0., 0., 0., 0., 0., 0.};
  Double_t trackUEmaxs[trackUEdim] = {100., 5., 5., 5., 1.5, 5., 5., 5., 5., 5., 5.};

  fhnTrackUEanal = new THnSparseF("fhnTrackUEanal","fhnTrackUEanal;PTmax;#rho^{ch.part}_{T};#rho^{pT}_{T};avg-pt/track;zero_particles;#rho^{ch.part}_{transMAX};#rho^{ch.part}_{transMIN};#rho^{ch.part}_{transDIF};#rho^{pT}_{transMAX};#rho^{pT}_{transMIN};#rho^{pT}_{transDIF}", trackUEdim, trackUEbins, trackUEmins, trackUEmaxs);
  fhnTrackUEanal->Sumw2();
  fOutputList->Add(fhnTrackUEanal);

}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::UserExec(Option_t */*option*/)
{
  Double_t evtContainer[7];
  Bool_t isEventSelected = EventSelection(evtContainer);

  TList trackList; 
  TList particleList;
  Int_t nTracks         = GetListOfTracks(fTrackType, &trackList);
  Int_t nParticles      = GetListOfTracks(fParticleType, &particleList);

 if(fDebug > 10 ) 
    std::cout<< nTracks<< " " << nParticles<<std::endl;  

  TClonesArray *tcaRecJets = 0;
  TClonesArray *tcaGenJets = 0;
  TClonesArray *tcaRecBckg = 0;
  TClonesArray *tcaGenBckg = 0;

  Int_t rJ, gJ, rB, gB;
  if(fAODOut && !tcaRecJets && fRecJetBranch.Length() > 0) tcaRecJets = dynamic_cast<TClonesArray*>(fAODOut->FindListObject(fRecJetBranch.Data()));
  if(fAODOut && !tcaGenJets && fGenJetBranch.Length() > 0) tcaGenJets = dynamic_cast<TClonesArray*>(fAODOut->FindListObject(fGenJetBranch.Data()));
  if(fAODOut && !tcaRecBckg && fRecBckgBranch.Length() > 0) tcaRecBckg = dynamic_cast<TClonesArray*>(fAODOut->FindListObject(fRecBckgBranch.Data()));
  if(fAODOut && !tcaGenBckg && fGenBckgBranch.Length() > 0) tcaGenBckg = dynamic_cast<TClonesArray*>(fAODOut->FindListObject(fGenBckgBranch.Data()));

  if(fAODExt) {
    if(!tcaRecJets && fRecJetBranch.Length() > 0) tcaRecJets = dynamic_cast<TClonesArray*>(fAODExt->GetAOD()->FindListObject(fRecJetBranch.Data()));
    if(!tcaGenJets && fGenJetBranch.Length() > 0) tcaGenJets = dynamic_cast<TClonesArray*>(fAODExt->GetAOD()->FindListObject(fGenJetBranch.Data()));
    if(!tcaRecBckg && fRecBckgBranch.Length() > 0) tcaRecBckg = dynamic_cast<TClonesArray*>(fAODExt->GetAOD()->FindListObject(fRecBckgBranch.Data()));
    if(!tcaGenBckg && fGenBckgBranch.Length() > 0) tcaGenBckg = dynamic_cast<TClonesArray*>(fAODExt->GetAOD()->FindListObject(fGenBckgBranch.Data()));
  }

  if(fAODIn) {
    if(!tcaRecJets && fRecJetBranch.Length() > 0) tcaRecJets = dynamic_cast<TClonesArray*>(fAODIn->FindListObject(fRecJetBranch.Data()));
    if(!tcaGenJets && fGenJetBranch.Length() > 0) tcaGenJets = dynamic_cast<TClonesArray*>(fAODIn->FindListObject(fGenJetBranch.Data()));
    if(!tcaRecBckg && fRecBckgBranch.Length() > 0) tcaRecBckg = dynamic_cast<TClonesArray*>(fAODIn->FindListObject(fRecBckgBranch.Data()));
    if(!tcaGenBckg && fGenBckgBranch.Length() > 0) tcaGenBckg = dynamic_cast<TClonesArray*>(fAODIn->FindListObject(fGenBckgBranch.Data()));
  }

  if(!tcaRecJets) rJ = -1; 
  else rJ = tcaRecJets->GetEntries();
  if(!tcaGenJets) gJ = -1; 
  else gJ = tcaGenJets->GetEntries();
  if(!tcaRecBckg) rB = -1; 
  else rB = tcaRecBckg->GetEntries();
  if(!tcaGenBckg) gB = -1; 
  else gB = tcaGenBckg->GetEntries();

  TList jetRecListNoCut; 
  TList jetGenListNoCut; 
  Int_t nRecJetsNoCut   = (rJ>0?GetListOfJets(tcaRecJets, &jetRecListNoCut, kFALSE):0);
  Int_t nGenJetsNoCut   = (gJ>0?GetListOfJets(tcaGenJets, &jetGenListNoCut, kFALSE):0);

  TList jetRecListCut;   
  TList jetGenListCut;   
  Int_t nRecJetsCut     = (rJ>0?GetListOfJets(tcaRecJets, &jetRecListCut, kTRUE):0);
  Int_t nGenJetsCut     = (gJ>0?GetListOfJets(tcaGenJets, &jetGenListCut, kTRUE):0);

  TList bckgRecListCut;  
  TList bckgGenListCut;  
  Int_t nRecBckgCut     = (rB>0?GetListOfJets(tcaRecBckg, &bckgRecListCut, kTRUE):0);
  Int_t nGenBckgCut     = (gB>0?GetListOfJets(tcaGenBckg, &bckgGenListCut, kTRUE):0);

  if(fDebug > 10) std::cout<<nRecJetsNoCut<<" "<<nGenJetsNoCut<<" "<<nRecJetsCut<< " "<< nGenJetsCut<<" "<<nRecBckgCut<<" "<<nGenBckgCut<<std::endl;

  evtContainer[6] = (isEventSelected?1:0);
  fhnEvent->Fill(evtContainer);

  if(!isEventSelected) {
    PostData(1,fOutputList);
    return;
  }

  if(kDoUEanalysis) DoUEAnalysis(&trackList, (Double_t)0.15, (Double_t)0.9);

  Double_t  recUEdensity = GetUE(&jetRecListCut, &trackList, fRecJetR, fhnTrackUE);
  Double_t  genUEdensity = GetUE(&jetGenListCut, &particleList, fGenJetR, fhnParticleUE);

  TList  trackUEcorrJetRecListCut;
  TList  trackUEcorrJetGenListCut;

  CorrectForUE(&jetRecListCut, recUEdensity, &trackUEcorrJetRecListCut, fhnRecJetsTrackUEcor);
  CorrectForUE(&jetGenListCut, genUEdensity, &trackUEcorrJetGenListCut, fhnGenJetsTrackUEcor);

  FillJetContainer(&jetRecListNoCut, fhnRecJetsNoCut);
  FillJetContainer(&jetGenListNoCut, fhnGenJetsNoCut);
  FillJetContainer(&jetRecListCut,   fhnRecJetsCut);
  FillJetContainer(&jetGenListCut,   fhnGenJetsCut);

    if(trackUEcorrJetRecListCut.GetEntries() != 0  && trackUEcorrJetGenListCut.GetEntries() != 0 ) {
    	MatchJets(kTRUE,  &trackUEcorrJetRecListCut,	&trackUEcorrJetGenListCut, 0.1,  fhnTrackCorrMatching);
    	MatchJets(kTRUE,  &trackUEcorrJetRecListCut,	&trackUEcorrJetGenListCut, 0.3,  fhnTrackCorrMatching);
    	MatchJets(kTRUE,  &trackUEcorrJetRecListCut,	&trackUEcorrJetGenListCut, 0.5,  fhnTrackCorrMatching);
    }
    if(jetRecListCut.GetEntries() != 0  && jetGenListCut.GetEntries() != 0 ) {
    	MatchJets(kTRUE,  &jetRecListCut,		&jetGenListCut,		  0.1,  fhnMatching);
    	MatchJets(kTRUE,  &jetRecListCut,		&jetGenListCut,		  0.3,  fhnMatching);
    	MatchJets(kTRUE,  &jetRecListCut,		&jetGenListCut,		  0.5,  fhnMatching);
    }


  PostData(1,fOutputList);
  return;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::Terminate(Option_t *)
{
  if(fDebug) printf("%s: %d Terminating\n",(char*)__FILE__, __LINE__);
  return;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::SetRecJetBranch(TString s) {
  fRecJetBranch = s;
  if(s.Contains("KT02") || s.Contains("SISCONE02") || s.Contains("UA102")) fRecJetR = 0.2;
  else if(s.Contains("KT03") || s.Contains("SISCONE03") || s.Contains("UA103")) fRecJetR = 0.3;
  else if(s.Contains("KT04") || s.Contains("SISCONE04") || s.Contains("UA104")) fRecJetR = 0.4;
  else if(s.Contains("KT05") || s.Contains("SISCONE05") || s.Contains("UA105")) fRecJetR = 0.5;
  else if(s.Contains("KT06") || s.Contains("SISCONE06") || s.Contains("UA106")) fRecJetR = 0.6;
  else fRecJetR = 0;
  return;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::SetGenJetBranch(TString s) {
  fGenJetBranch = s;
  if(s.Contains("KT02") || s.Contains("SISCONE02") || s.Contains("UA102")) fGenJetR = 0.2;
  else if(s.Contains("KT03") || s.Contains("SISCONE03") || s.Contains("UA103")) fGenJetR = 0.3;
  else if(s.Contains("KT04") || s.Contains("SISCONE04") || s.Contains("UA104")) fGenJetR = 0.4;
  else if(s.Contains("KT05") || s.Contains("SISCONE05") || s.Contains("UA105")) fGenJetR = 0.5;
  else if(s.Contains("KT06") || s.Contains("SISCONE06") || s.Contains("UA106")) fGenJetR = 0.6;
  else fGenJetR = 0;
  return;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::SetRecBckgBranch(TString s) {
  fRecBckgBranch = s;
  if(s.Contains("KT02") || s.Contains("SISCONE02") || s.Contains("UA102")) fRecBckgR = 0.2;
  else if(s.Contains("KT03") || s.Contains("SISCONE03") || s.Contains("UA103")) fRecBckgR = 0.3;
  else if(s.Contains("KT04") || s.Contains("SISCONE04") || s.Contains("UA104")) fRecBckgR = 0.4;
  else if(s.Contains("KT05") || s.Contains("SISCONE05") || s.Contains("UA105")) fRecBckgR = 0.5;
  else if(s.Contains("KT06") || s.Contains("SISCONE06") || s.Contains("UA106")) fRecBckgR = 0.6;
  else fRecBckgR = 0;
  return;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::SetGenBckgBranch(TString s) {
  fGenBckgBranch = s;
  if(s.Contains("KT02") || s.Contains("SISCONE02") || s.Contains("UA102")) fGenBckgR = 0.2;
  else if(s.Contains("KT03") || s.Contains("SISCONE03") || s.Contains("UA103")) fGenBckgR = 0.3;
  else if(s.Contains("KT04") || s.Contains("SISCONE04") || s.Contains("UA104")) fGenBckgR = 0.4;
  else if(s.Contains("KT05") || s.Contains("SISCONE05") || s.Contains("UA105")) fGenBckgR = 0.5;
  else if(s.Contains("KT06") || s.Contains("SISCONE06") || s.Contains("UA106")) fGenBckgR = 0.6;
  else fGenBckgR = 0;
  return;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::SetVertexCuts(Int_t nCont, Double_t Zcut, Double_t Rcut) {
  if(fDebug)
    printf("%s: %d Setting Vertex Cuts\n",(char*)__FILE__,__LINE__);
  nVtxContCut = nCont;
  fVtxZcut = Zcut;
  fVtxRcut = Rcut;
  return;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::SetTrackCuts(Double_t ptMin, Double_t ptMax, Double_t etaMax) {
  if(fDebug > 1) 
    printf("%s: %d Track cuts set\n",(char*)__FILE__,__LINE__);
  trackPtMin = ptMin;
  trackPtMax = ptMax;
  trackEtaAbsMax = etaMax;
  return;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::SetJetCuts(Double_t ptMin, Double_t eta, Double_t z) {
  jetPtMin = ptMin;
  jetEtaCut = eta;
  jetZmax = z;
  return;
}

//---------------------------------------------------------------------------------------------------
Bool_t AliAnalysisTaskPPJetSpectra::EventSelection(Double_t evtContainer[6]) {
  if(fDebug > 1) 
    printf("%s: %d UserExec analysing event %d.\n", (char*)__FILE__, __LINE__, (Int_t)fEntry);

  // Trigger selection
  AliInputEventHandler* inputHandler = (AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
  if(fDebug > 2 ) 
    printf("IsEventSelected: %d eventSelectionMask: %d\n", (Int_t)inputHandler->IsEventSelected(), (Int_t)fEvtSelectionMask);

  Bool_t isTriggerSelected = inputHandler->IsEventSelected() & fEvtSelectionMask;
  evtContainer[0] = (Int_t)isTriggerSelected;

  fESD = dynamic_cast<AliESDEvent*>(InputEvent());
  if(!fESD && fDebug > 2) 
    printf("%s: %d No ESD event found\n",(char*)__FILE__, __LINE__);

  if(!fESD) fAODIn = dynamic_cast<AliAODEvent*>(InputEvent());
  fAODOut = dynamic_cast<AliAODEvent*>(AODEvent());

  if(!fESD)fAOD = fAODIn;
  else fAOD = fAODOut;

  if(fNonStdFile.Length()!=0) {
    AliAODHandler *aodH = dynamic_cast<AliAODHandler*>(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler());
    fAODExt = (aodH?aodH->GetExtension(fNonStdFile.Data()):0);
  }

  TObject* handler = AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler();
  Float_t centrality = -1;
  if(fEventClass > 0)
  {
    if(handler->InheritsFrom("AliAODHandler")) centrality = ((AliVAODHeader*)fAODIn->GetHeader())->GetCentrality();
    else if(fESD) centrality = fESD->GetCentrality()->GetCentralityPercentile("V0M");
    else centrality = AliAnalysisHelperJetTasks::EventClass();
  }
  evtContainer[1] = centrality;

  // Event selection
  AliAODVertex* primVtx = fAOD->GetPrimaryVertex();
  if(!primVtx) {
    evtContainer[2]  =  1e10;
    evtContainer[3]  =  1e10;
    evtContainer[4]  =  1e10;
    return kFALSE;
  } else {  
    primVtx->Print();
    evtContainer[2] = primVtx->GetZ();
    evtContainer[3] = TMath::Sqrt(primVtx->GetX()*primVtx->GetX() + primVtx->GetY()*primVtx->GetY() );
    evtContainer[4] = primVtx->GetNContributors();
  }

  if(fRejectPileUp && AliAnalysisHelperJetTasks::IsPileUp()){
    if (fDebug > 1) Printf("%s:%d SPD pileup: event REJECTED...", (char*)__FILE__,__LINE__);
    evtContainer[5] = 0.;
    return kFALSE;
  }
  else 
    evtContainer[5] = 1.;

  if(evtContainer[0] == 0) 
  {
    if(fDebug > 2) 
      printf("%s: %d Event rejected: Trigger\n",(char*)__FILE__, __LINE__);
    return kFALSE;
  }
  if(evtContainer[1] >= 0 && evtContainer[1] < 10*((Int_t)fEventClass/10) && evtContainer[1] > 10*((Int_t)fEventClass/10 + 1) )
  {
    if(fDebug > 2) 
      printf("%s: %d Event rejected: Centrality\n",(char*)__FILE__, __LINE__);
    return kFALSE;
  }
  if(TMath::Abs(evtContainer[2]) > fVtxZcut)
  {
    if(fDebug > 2) 
      printf("%s: %d Event rejected: Vertex position (z)\n",(char*)__FILE__, __LINE__);
    return kFALSE;
  }
  if(evtContainer[3] > fVtxRcut)
  {
    if(fDebug > 2)
      printf("%s: %d Event rejected: Vertex position (x-y)\n",(char*)__FILE__,__LINE__);
    return kFALSE;
  }
  if(evtContainer[4] < nVtxContCut)
  {
    if(fDebug > 2) 
      printf("%s: %d Event rejected: Vertex contributors \n",(char*)__FILE__, __LINE__);
    return kFALSE;
  }

  return kTRUE;
}

//---------------------------------------------------------------------------------------------------
Int_t AliAnalysisTaskPPJetSpectra::GetListOfTracks(Int_t trackType, TList *trackList) {
  if(fDebug) 
    printf("%s: %d Getting Tracks\n",(char*)__FILE__,__LINE__);
  if(trackType == AliAnalysisTaskPPJetSpectra::kNone) {
    if(fDebug) printf("%s: %d No track type selected", (char*)__FILE__,__LINE__);
    return 0;
  }

  if(1 == trackType) {
    for(Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) {
      Bool_t isOK = kTRUE;
      Bool_t isOK16 = kTRUE;
      Bool_t isOK256 = kTRUE;
      AliAODTrack* track = (AliAODTrack*)fAOD->GetTrack(i);
      if(!track) continue;
      if(nTrackFilter>0 && !track->TestFilterBit(nTrackFilter) ) isOK = kFALSE;
      if(nTrackFilter>0 && !track->TestFilterBit(16) ) isOK16 = kFALSE;
      if(nTrackFilter>0 && !track->TestFilterBit(256) ) isOK256 = kFALSE;
      if(track->Pt() < trackPtMin || track->Pt() > trackPtMax) isOK = kFALSE;
      if(trackEtaAbsMax < TMath::Abs(track->Eta())) isOK = kFALSE;
      Double_t tmpContainer[] = {track->Pt(), track->Eta(), track->Phi(), (Double_t)isOK, (Double_t)isOK16, (Double_t)isOK256, (Double_t)track->Charge()/3};
      if(isOK) trackList->Add(track);
      fhnTracks->Fill(tmpContainer);
    }
  }
  else {
    TClonesArray *tca=dynamic_cast<TClonesArray*>(fAOD->FindListObject(AliAODMCParticle::StdBranchName()));
    if(!tca) {
      if(fDebug > 2) printf("no branch %s\n", AliAODMCParticle::StdBranchName());
    }
    for(Int_t i = 0; i < tca->GetEntries(); i++) {
      AliAODMCParticle *particle = (AliAODMCParticle*)tca->At(i);
      if(!particle) continue;
      if(!particle->IsPhysicalPrimary()) continue;
      Double_t charge = particle->Charge();
      if( charge > 0 ) charge = 1;
      if( charge < 0 ) charge = -1;
      if( (trackType == 3) && (charge == 0) ) continue;
      trackList->Add(particle);
      Double_t tmpContainer[] = {particle->Pt(), particle->Eta(), particle->Phi(), -999, -999, -999, charge };
      if(trackType == 2) fhnMC->Fill(tmpContainer);
      else fhnMC2->Fill(tmpContainer);
    }
  }
  trackList->Sort();
  return trackList->GetEntries();
}

//---------------------------------------------------------------------------------------------------
Int_t AliAnalysisTaskPPJetSpectra::GetListOfJets(TClonesArray* jca, TList* jetList, Bool_t useCuts) {
  if(fDebug) 
    printf("%s: %d Getting list of jets\n",(char*)__FILE__,__LINE__);

  Double_t ptCut = (useCuts   &&  jetPtMin>0 ?jetPtMin :0.1);
  Double_t etaCut = (useCuts  &&  jetEtaCut>0?jetEtaCut:0.9);
  Double_t zCut  = (useCuts   &&  jetZmax>0  ?jetZmax  :1);

  if(!jca){
    return -2;
  } 

  for(Int_t i =0 ; i < jca->GetEntries(); i++) {
    AliAODJet* jet = (AliAODJet*)jca->At(i);
    if(!jet) continue;
    Double_t zLeading = -1;
//    if(jet->GetPtLeading() <= 0) {
//      TRefArray* jetRef = (TRefArray*)jet->GetRefTracks();
//      for(int j = 0; j < jetRef->GetEntries(); j++) {
//	AliVTrack *track = (AliVTrack*)jet->GetTrack(j);
//        if(!track) continue;
//        cout<<track->Pt()<<" "<<zLeading<<endl;
//	if(track->Pt() > zLeading) zLeading = track->Pt();
//        cout<<__LINE__<<endl;
//      }
//      if(jet->Pt() > 0) zLeading /= jet->Pt();
//      else zLeading = -1;
//    }
    //cuty
    if(ptCut > 0  && ptCut > jet->Pt()                ) continue;
    if(etaCut > 0 && etaCut < TMath::Abs(jet->Eta())  ) continue;
    if(zCut > 0   && zCut < zLeading  && zLeading > 0 ) continue;

    jetList->Add(jet);
  }

  jetList->Sort();
  return jetList->GetEntries();
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::FillJetContainer(TList* jets, THnSparseF* container) {
  if(!jets || !container) return;

  for(Int_t i =0 ; i < jets->GetEntries(); i++) {
    AliAODJet* jet = (AliAODJet*)jets->At(i);
    if(!jet) continue;
  // pt - eta - phi - AreaCH - AreaN -  ptLeadingTrack/ptJet - ptOrig 
    Double_t tmpContainer[] = {jet->Pt(), jet->Eta(), jet->Phi(), jet->EffectiveAreaCharged(), jet->EffectiveAreaNeutral(), jet->GetPtLeading()/jet->Pt(), (Double_t)((TRefArray*)jet->GetRefTracks())->GetEntries() };
    container->Fill(tmpContainer);
  }
  return;
}

//---------------------------------------------------------------------------------------------------
Double_t AliAnalysisTaskPPJetSpectra::GetUE(TList* jets, TList* tracks, Double_t Rpar,THnSparseF* thnCont) {
  if(!jets || !tracks) {
    if(fDebug) printf("%s: %d No jets or tracks\n",(char*)__FILE__,__LINE__);
    return 0;
  }

  //find leading jet
  AliAODJet *jet = 0;
  for(Int_t iTmp = 0; iTmp < jets->GetEntries(); iTmp++) {
    AliAODJet* tmp = (AliAODJet*)jets->At(iTmp);
    if(!tmp) continue;
    if(!jet) jet = tmp;
    else 
      if( jet->Pt() < tmp->Pt() ) jet = tmp;
  }
  if(!jet) return 0;
  
  //get track in perpendicular cone
  //TVector3 for jet and perpendicular cones with same eta axis
  TVector3 j(jet->Px(), jet->Py(), jet->Pz());
  TVector3 p1(j);
  TVector3 p2(j);

  p1.RotateZ(TMath::Pi()/2.);
  p2.RotateZ(-TMath::Pi()/2.);

  Double_t sumAllPt1 = 0;
  Double_t sumAllPt2 = 0;

  for(int i = 0; i < tracks->GetEntries(); i++)  {
    AliVParticle* tr = (AliVParticle*)tracks->At(i);
    if(!tr) continue;
    TVector3 v(tr->Px(), tr->Py(), tr->Pz());
    Double_t dR1 = v.DrEtaPhi(p1);
    Double_t dR2 = v.DrEtaPhi(p2);

    if(dR1 < Rpar) sumAllPt1+=v.Pt();
    if(dR2 < Rpar) sumAllPt2+=v.Pt();
  }

  if(Rpar != 0) {
    sumAllPt1/=(TMath::Pi()*Rpar*Rpar);
    sumAllPt2/=(TMath::Pi()*Rpar*Rpar);
  }

  Double_t container[] = {j.Pt(), j.Eta(), sumAllPt1, sumAllPt2, (sumAllPt1+sumAllPt2)/2.};
  thnCont->Fill(container);

  return (sumAllPt1+sumAllPt2)/2.;

}

//---------------------------------------------------------------------------------------------------
Double_t AliAnalysisTaskPPJetSpectra::GetBckgUE(TList* jets, Double_t Rpar, Bool_t isSkipped, THnSparseF* cont) {
  if(!jets) return 0;

  Int_t leading01 = -1;
  Int_t leading02 = -1;
  Double_t leading01pt = 0;
  Double_t leading02pt = 0;

  if(!isSkipped) {
    for(Int_t i = 0; i < jets->GetEntries(); i++) {
      AliAODJet* tmp = (AliAODJet*)jets->At(i);
      if(!tmp) continue;
      if(tmp->Pt() > leading01pt) {
        leading02 = leading01;
        leading01 = i;
        leading02pt = leading01pt;
        leading01pt = tmp->Pt();
      } else if(tmp->Pt() > leading02) {
        leading02 = i;
        leading02pt = tmp->Pt();
      }
    }
  }

  Int_t subLeading01 = -1;
  Int_t subLeading02 = -1;
  Double_t subLeading01pt = 0;
  Double_t subLeading02pt = 0;
  Double_t subLeading01area = 0;
  Double_t subLeading02area = 0;

  Double_t avgAll = 0;
  Double_t areaAll = 0;
  //search for subleading jets assuming leading 2 (skip02) jets are skipped
  if(jets->GetEntries() > 0) {
    for(Int_t i = 0; i < jets->GetEntries(); i++) {
      if(i == leading01 || i == leading02) continue;
      AliAODJet* tmp = (AliAODJet*)jets->At(i);
      if(!tmp) continue;
      if( subLeading01pt < tmp->Pt() ) {
        subLeading02 = subLeading01;
        subLeading01 = i;
        subLeading02pt = subLeading01pt;
        subLeading01pt = tmp->Pt();
        subLeading02area = subLeading01area;
        subLeading01area = tmp->EffectiveAreaCharged();
      } else if( subLeading02pt < tmp->Pt() ) {
        subLeading02 = i;
        subLeading02pt = tmp->Pt();
        subLeading02area = tmp->EffectiveAreaCharged();
      }
    }

    //do avg jet pt
    Int_t nJets = 0;
    for(int i = 0; i < jets->GetEntries();i++) {
      if(i == leading01 || i == leading02) continue;
      AliAODJet* tmp = (AliAODJet*)jets->At(i);
      if(!tmp) continue;
      nJets++;
      avgAll+= tmp->Pt();
      areaAll += tmp->EffectiveAreaCharged();
    }
  }


  if(avgAll!=0) avgAll/=areaAll;
  if(subLeading01pt!=0) subLeading01pt/=subLeading01area;
  if(subLeading02pt!=0)subLeading02pt/=subLeading02area;
  Double_t tmpContainer[]={subLeading01pt,subLeading02pt,avgAll,Rpar*10};

  cont->Fill(tmpContainer);

  return avgAll; 
}

//---------------------------------------------------------------------------------------------------
Int_t  AliAnalysisTaskPPJetSpectra::CorrectForUE(TList* jets, Double_t UE, TList* newList, THnSparseF* container) {
  if(!jets) return 0;

  for(Int_t i = 0; i < jets->GetEntries(); i++) {
    AliAODJet* tmpJet = (AliAODJet*)jets->At(i);
    if(!tmpJet) continue;

    AliAODJet* jet = (AliAODJet*)tmpJet->Clone(Form("%s%s",tmpJet->GetName(),"_clone"));
    Double_t corrUE = UE*(jet->EffectiveAreaCharged() + jet->EffectiveAreaNeutral() );

    if(jet->Pt() > corrUE) jet->SetPtEtaPhiM(jet->Pt()- corrUE, jet->Eta(), jet->Phi(), jet->M());
    else jet->SetPtEtaPhiM(0, jet->Eta(), jet->Phi(), jet->M());
    newList->Add(jet);

  // pt - eta - phi - AreaCH - AreaN - UEdensity - ptLeadingTrack/ptJet - ptOrig 
    Double_t cont[8]={jet->Pt(), jet->Eta(), jet->Phi(), jet->EffectiveAreaCharged(),jet->EffectiveAreaNeutral(), corrUE, (jet->Pt() > 0?jet->GetPtLeading() / jet->Pt():-1),tmpJet->Pt()};
    container->Fill(cont);
  }
  newList->Sort();
  return newList->GetEntries();
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::MatchJets(Bool_t doBothWay, TList* recList, TList* genList, Float_t maxDist, THnSparseF* container) {
  if(!genList || !recList) return;
  Int_t mode = 1;

  const Int_t kGenJets = genList->GetEntries();
  const Int_t kRecJets = recList->GetEntries();

  TArrayI iMatchIndex(kGenJets);
  TArrayF fPtFraction(kGenJets);

  TArrayI aGenIndex(kRecJets);
  TArrayI aRecIndex(kGenJets);

  Double_t genPt = -1;
  Double_t recPt = -1;
  Double_t ptFraction = -1;

  //-- Closest jets to generated and checked for E-fraction
  if(!doBothWay) {
    AliAnalysisHelperJetTasks::GetJetMatching(genList, kGenJets, recList, kRecJets, iMatchIndex, fPtFraction, fDebug, maxDist, mode);
    for(Int_t ig = 0; ig < kGenJets; ig++) {
      //get gen-jet
      AliAODJet* genJet = (AliAODJet*)genList->At(ig);
      if(!genJet) continue;
      genPt = genJet->Pt();
      
      //get rec-jet
      Int_t ir = iMatchIndex[ig];
      if(ir<0||ir>=recList->GetEntries()) continue;
      AliAODJet* recJet = (AliAODJet*)recList->At(ir);
      if(!recJet) continue;
      recPt = recJet->Pt();

      ptFraction = fPtFraction[ig];

      Double_t dR = recJet->DeltaR(genJet);
      Double_t dEta = recJet->Eta() - genJet->Eta();
      Double_t dPhi2 = dR*dR - dEta*dEta;
      
	Bool_t isSame = kFALSE;
	if(CheckPtBin(genPt) == CheckPtBin(recPt)) isSame = kTRUE;
      // ptGen - ptRec - ptFraction - maxDist - bothWays - (1 - rec/gen) - dR - dEta  - dPhi
      Double_t cont[] = {genPt,recPt,ptFraction,maxDist,(Float_t)doBothWay, (genPt != 0 ? (1. - recPt/genPt):1), dR, dEta, (dPhi2>=0?TMath::Sqrt(dPhi2):-1), (Double_t)isSame};
      container->Fill(cont);
    }
  }
  //-- Closest rec jet to gen and vice-versa & check for E-fraction
  else {
    AliAnalysisHelperJetTasks::GetClosestJets(genList, kGenJets, recList, kRecJets, aGenIndex, aRecIndex,fDebug, maxDist);
    for(Int_t ig = 0; ig < kGenJets; ig++) {
      //get gen-jet
      AliAODJet* genJet = (AliAODJet*)genList->At(ig);
      if(!genJet) continue;
      genPt = genJet->Pt();

      //get rec-jet
      Int_t ir = aRecIndex[ig];
      if(ir>=0&&ir<recList->GetEntries()) {
	AliAODJet *recJet = (AliAODJet*)recList->At(ir);
	if(!recJet) continue;
	recPt = recJet->Pt();
	Double_t dR = recJet->DeltaR(genJet);
	Double_t dEta = recJet->Eta() - genJet->Eta();
	Double_t dPhi2 = dR*dR - dEta*dEta;

	ptFraction = AliAnalysisHelperJetTasks::GetFractionOfJet(recJet,genJet,mode);

	Bool_t isSame = kFALSE;
	if(CheckPtBin(genPt) == CheckPtBin(recPt)) isSame = kTRUE;
	// ptGen - ptRec - ptFraction - maxDist - bothWays - (1 - rec/gen) - dR - dEta  - dPhi
	Double_t cont[] = {genPt,recPt,ptFraction,maxDist,(Float_t)doBothWay, (genPt != 0 ? (1. - recPt/genPt):1), dR, dEta, (dPhi2>=0?TMath::Sqrt(dPhi2):-1), (Double_t)isSame  };
        container->Fill(cont);
      }
    }
  }

  return;
}

//---------------------------------------------------------------------------------------------------
Int_t AliAnalysisTaskPPJetSpectra::CheckPtBin(Double_t pT) {
  Double_t bins[] 	= {0.,2.,4.,6.,8.,10.,12., 14.,16., 18.,20.,24.,28.,32.,38.,44.,50.,58.,66.,76.,86.,100.,114.,128.,150.,250.};
  Double_t nBins 	= 25;

  for(Int_t i = 0; i <= nBins; i++) {
    if(pT < bins[i] ) return i;
  }
  return nBins+1;
}

//---------------------------------------------------------------------------------------------------
void AliAnalysisTaskPPJetSpectra::DoUEAnalysis(TList* tracks, Double_t PTcut, Double_t ETAcut) {
	Double_t PTmax = 0;
	int iMax = -1;
	for(int i = 0; i < tracks->GetEntries(); i++) {
		AliVParticle *part = (AliVParticle*)tracks->At(i);
		if(!part) continue;

		if(part->Pt() < PTcut) continue;
		if(TMath::Abs(part->Eta()) > ETAcut ) continue;

		if(PTmax < part->Pt()) {
			PTmax = part->Pt();
			iMax = i;
		}
	}

	if(PTmax < trackPtMin) return;

	Double_t ch_part_density = 0;
	Double_t ch_part_pt_density = 0;
	Double_t avg_track_pt = 0;
	Double_t zero_ch_part = 0;
	Double_t transMAX_part_density = 0;
	Double_t transMIN_part_density = 0;
	Double_t transMAX_pt_density = 0;
	Double_t transMIN_pt_density = 0;
	Double_t transDIF_pt_density = 0;
	Double_t transDIF_part_density = 0;

	Double_t A1_part_density = 0;
	Double_t A2_part_density = 0;
	Double_t A1_pt_density = 0;
	Double_t A2_pt_density = 0;

	AliVParticle *maxParticle = (AliVParticle*)tracks->At(iMax);

	Double_t PHImax = maxParticle->Phi();

	for(int i = 0; i < tracks->GetEntries(); i++) {
		AliVParticle* part = (AliVParticle*)tracks->At(i);
		if(!part) continue;
		if(part->Pt() < PTcut) continue;

		Bool_t isArea1 = kFALSE;
		Bool_t isArea2 = kFALSE;

		Double_t dPhi = part->Phi() - PHImax;
		if(dPhi > TMath::Pi()) dPhi -= TMath::Pi();
		if(dPhi < -TMath::Pi()) dPhi +=TMath::Pi();

		if(TMath::Abs(dPhi) > TMath::Pi()/3 && TMath::Abs(dPhi) < 2*TMath::Pi()/3 ) {
			if(dPhi>0) isArea1 = kTRUE;
			else isArea2 = kTRUE;
		}

		if(!isArea1 && !isArea2) continue;

		ch_part_density += 1;
		ch_part_pt_density += part->Pt();
		avg_track_pt += part->Pt();

		if(isArea1) {
			A1_part_density += 1;
			A1_pt_density += part->Pt();
		} else if(isArea2) {
			A2_part_density += 1;
			A2_pt_density += part->Pt();
		}
	}


	if(ch_part_density > 0) avg_track_pt/=ch_part_density;
	else zero_ch_part = 1;
	ch_part_density*=3./(4.*TMath::Pi()*ETAcut);
	ch_part_pt_density*= 3./(4.*TMath::Pi()*ETAcut);

	A1_part_density*=3./(4.*TMath::Pi()*ETAcut);
	A1_pt_density*= 3./(4.*TMath::Pi()*ETAcut);
	A2_part_density*=3./(4.*TMath::Pi()*ETAcut);
	A2_pt_density*= 3./(4.*TMath::Pi()*ETAcut);

	if(A1_part_density < A2_part_density) {
		transMAX_part_density = A2_part_density;
		transMIN_part_density = A1_part_density;
	} else {
		transMAX_part_density = A1_part_density;
		transMIN_part_density = A2_part_density;
	}

	if(A1_pt_density < A2_pt_density) {
		transMAX_pt_density = A2_pt_density;
		transMIN_pt_density = A1_pt_density;
	} else {
		transMAX_pt_density = A1_pt_density;
		transMIN_pt_density = A2_pt_density;
	}

	transDIF_pt_density 	= transMAX_pt_density - transMIN_pt_density;
	transDIF_part_density 	= transMAX_part_density - transMIN_part_density;

	Double_t container[] = {PTmax, ch_part_density, ch_part_pt_density, avg_track_pt, zero_ch_part,
							transMAX_part_density, transMIN_part_density, transDIF_part_density,
							transMAX_pt_density, transMIN_pt_density, transDIF_pt_density};

	fhnTrackUEanal->Fill(container);
}
 AliAnalysisTaskPPJetSpectra.cxx:1
 AliAnalysisTaskPPJetSpectra.cxx:2
 AliAnalysisTaskPPJetSpectra.cxx:3
 AliAnalysisTaskPPJetSpectra.cxx:4
 AliAnalysisTaskPPJetSpectra.cxx:5
 AliAnalysisTaskPPJetSpectra.cxx:6
 AliAnalysisTaskPPJetSpectra.cxx:7
 AliAnalysisTaskPPJetSpectra.cxx:8
 AliAnalysisTaskPPJetSpectra.cxx:9
 AliAnalysisTaskPPJetSpectra.cxx:10
 AliAnalysisTaskPPJetSpectra.cxx:11
 AliAnalysisTaskPPJetSpectra.cxx:12
 AliAnalysisTaskPPJetSpectra.cxx:13
 AliAnalysisTaskPPJetSpectra.cxx:14
 AliAnalysisTaskPPJetSpectra.cxx:15
 AliAnalysisTaskPPJetSpectra.cxx:16
 AliAnalysisTaskPPJetSpectra.cxx:17
 AliAnalysisTaskPPJetSpectra.cxx:18
 AliAnalysisTaskPPJetSpectra.cxx:19
 AliAnalysisTaskPPJetSpectra.cxx:20
 AliAnalysisTaskPPJetSpectra.cxx:21
 AliAnalysisTaskPPJetSpectra.cxx:22
 AliAnalysisTaskPPJetSpectra.cxx:23
 AliAnalysisTaskPPJetSpectra.cxx:24
 AliAnalysisTaskPPJetSpectra.cxx:25
 AliAnalysisTaskPPJetSpectra.cxx:26
 AliAnalysisTaskPPJetSpectra.cxx:27
 AliAnalysisTaskPPJetSpectra.cxx:28
 AliAnalysisTaskPPJetSpectra.cxx:29
 AliAnalysisTaskPPJetSpectra.cxx:30
 AliAnalysisTaskPPJetSpectra.cxx:31
 AliAnalysisTaskPPJetSpectra.cxx:32
 AliAnalysisTaskPPJetSpectra.cxx:33
 AliAnalysisTaskPPJetSpectra.cxx:34
 AliAnalysisTaskPPJetSpectra.cxx:35
 AliAnalysisTaskPPJetSpectra.cxx:36
 AliAnalysisTaskPPJetSpectra.cxx:37
 AliAnalysisTaskPPJetSpectra.cxx:38
 AliAnalysisTaskPPJetSpectra.cxx:39
 AliAnalysisTaskPPJetSpectra.cxx:40
 AliAnalysisTaskPPJetSpectra.cxx:41
 AliAnalysisTaskPPJetSpectra.cxx:42
 AliAnalysisTaskPPJetSpectra.cxx:43
 AliAnalysisTaskPPJetSpectra.cxx:44
 AliAnalysisTaskPPJetSpectra.cxx:45
 AliAnalysisTaskPPJetSpectra.cxx:46
 AliAnalysisTaskPPJetSpectra.cxx:47
 AliAnalysisTaskPPJetSpectra.cxx:48
 AliAnalysisTaskPPJetSpectra.cxx:49
 AliAnalysisTaskPPJetSpectra.cxx:50
 AliAnalysisTaskPPJetSpectra.cxx:51
 AliAnalysisTaskPPJetSpectra.cxx:52
 AliAnalysisTaskPPJetSpectra.cxx:53
 AliAnalysisTaskPPJetSpectra.cxx:54
 AliAnalysisTaskPPJetSpectra.cxx:55
 AliAnalysisTaskPPJetSpectra.cxx:56
 AliAnalysisTaskPPJetSpectra.cxx:57
 AliAnalysisTaskPPJetSpectra.cxx:58
 AliAnalysisTaskPPJetSpectra.cxx:59
 AliAnalysisTaskPPJetSpectra.cxx:60
 AliAnalysisTaskPPJetSpectra.cxx:61
 AliAnalysisTaskPPJetSpectra.cxx:62
 AliAnalysisTaskPPJetSpectra.cxx:63
 AliAnalysisTaskPPJetSpectra.cxx:64
 AliAnalysisTaskPPJetSpectra.cxx:65
 AliAnalysisTaskPPJetSpectra.cxx:66
 AliAnalysisTaskPPJetSpectra.cxx:67
 AliAnalysisTaskPPJetSpectra.cxx:68
 AliAnalysisTaskPPJetSpectra.cxx:69
 AliAnalysisTaskPPJetSpectra.cxx:70
 AliAnalysisTaskPPJetSpectra.cxx:71
 AliAnalysisTaskPPJetSpectra.cxx:72
 AliAnalysisTaskPPJetSpectra.cxx:73
 AliAnalysisTaskPPJetSpectra.cxx:74
 AliAnalysisTaskPPJetSpectra.cxx:75
 AliAnalysisTaskPPJetSpectra.cxx:76
 AliAnalysisTaskPPJetSpectra.cxx:77
 AliAnalysisTaskPPJetSpectra.cxx:78
 AliAnalysisTaskPPJetSpectra.cxx:79
 AliAnalysisTaskPPJetSpectra.cxx:80
 AliAnalysisTaskPPJetSpectra.cxx:81
 AliAnalysisTaskPPJetSpectra.cxx:82
 AliAnalysisTaskPPJetSpectra.cxx:83
 AliAnalysisTaskPPJetSpectra.cxx:84
 AliAnalysisTaskPPJetSpectra.cxx:85
 AliAnalysisTaskPPJetSpectra.cxx:86
 AliAnalysisTaskPPJetSpectra.cxx:87
 AliAnalysisTaskPPJetSpectra.cxx:88
 AliAnalysisTaskPPJetSpectra.cxx:89
 AliAnalysisTaskPPJetSpectra.cxx:90
 AliAnalysisTaskPPJetSpectra.cxx:91
 AliAnalysisTaskPPJetSpectra.cxx:92
 AliAnalysisTaskPPJetSpectra.cxx:93
 AliAnalysisTaskPPJetSpectra.cxx:94
 AliAnalysisTaskPPJetSpectra.cxx:95
 AliAnalysisTaskPPJetSpectra.cxx:96
 AliAnalysisTaskPPJetSpectra.cxx:97
 AliAnalysisTaskPPJetSpectra.cxx:98
 AliAnalysisTaskPPJetSpectra.cxx:99
 AliAnalysisTaskPPJetSpectra.cxx:100
 AliAnalysisTaskPPJetSpectra.cxx:101
 AliAnalysisTaskPPJetSpectra.cxx:102
 AliAnalysisTaskPPJetSpectra.cxx:103
 AliAnalysisTaskPPJetSpectra.cxx:104
 AliAnalysisTaskPPJetSpectra.cxx:105
 AliAnalysisTaskPPJetSpectra.cxx:106
 AliAnalysisTaskPPJetSpectra.cxx:107
 AliAnalysisTaskPPJetSpectra.cxx:108
 AliAnalysisTaskPPJetSpectra.cxx:109
 AliAnalysisTaskPPJetSpectra.cxx:110
 AliAnalysisTaskPPJetSpectra.cxx:111
 AliAnalysisTaskPPJetSpectra.cxx:112
 AliAnalysisTaskPPJetSpectra.cxx:113
 AliAnalysisTaskPPJetSpectra.cxx:114
 AliAnalysisTaskPPJetSpectra.cxx:115
 AliAnalysisTaskPPJetSpectra.cxx:116
 AliAnalysisTaskPPJetSpectra.cxx:117
 AliAnalysisTaskPPJetSpectra.cxx:118
 AliAnalysisTaskPPJetSpectra.cxx:119
 AliAnalysisTaskPPJetSpectra.cxx:120
 AliAnalysisTaskPPJetSpectra.cxx:121
 AliAnalysisTaskPPJetSpectra.cxx:122
 AliAnalysisTaskPPJetSpectra.cxx:123
 AliAnalysisTaskPPJetSpectra.cxx:124
 AliAnalysisTaskPPJetSpectra.cxx:125
 AliAnalysisTaskPPJetSpectra.cxx:126
 AliAnalysisTaskPPJetSpectra.cxx:127
 AliAnalysisTaskPPJetSpectra.cxx:128
 AliAnalysisTaskPPJetSpectra.cxx:129
 AliAnalysisTaskPPJetSpectra.cxx:130
 AliAnalysisTaskPPJetSpectra.cxx:131
 AliAnalysisTaskPPJetSpectra.cxx:132
 AliAnalysisTaskPPJetSpectra.cxx:133
 AliAnalysisTaskPPJetSpectra.cxx:134
 AliAnalysisTaskPPJetSpectra.cxx:135
 AliAnalysisTaskPPJetSpectra.cxx:136
 AliAnalysisTaskPPJetSpectra.cxx:137
 AliAnalysisTaskPPJetSpectra.cxx:138
 AliAnalysisTaskPPJetSpectra.cxx:139
 AliAnalysisTaskPPJetSpectra.cxx:140
 AliAnalysisTaskPPJetSpectra.cxx:141
 AliAnalysisTaskPPJetSpectra.cxx:142
 AliAnalysisTaskPPJetSpectra.cxx:143
 AliAnalysisTaskPPJetSpectra.cxx:144
 AliAnalysisTaskPPJetSpectra.cxx:145
 AliAnalysisTaskPPJetSpectra.cxx:146
 AliAnalysisTaskPPJetSpectra.cxx:147
 AliAnalysisTaskPPJetSpectra.cxx:148
 AliAnalysisTaskPPJetSpectra.cxx:149
 AliAnalysisTaskPPJetSpectra.cxx:150
 AliAnalysisTaskPPJetSpectra.cxx:151
 AliAnalysisTaskPPJetSpectra.cxx:152
 AliAnalysisTaskPPJetSpectra.cxx:153
 AliAnalysisTaskPPJetSpectra.cxx:154
 AliAnalysisTaskPPJetSpectra.cxx:155
 AliAnalysisTaskPPJetSpectra.cxx:156
 AliAnalysisTaskPPJetSpectra.cxx:157
 AliAnalysisTaskPPJetSpectra.cxx:158
 AliAnalysisTaskPPJetSpectra.cxx:159
 AliAnalysisTaskPPJetSpectra.cxx:160
 AliAnalysisTaskPPJetSpectra.cxx:161
 AliAnalysisTaskPPJetSpectra.cxx:162
 AliAnalysisTaskPPJetSpectra.cxx:163
 AliAnalysisTaskPPJetSpectra.cxx:164
 AliAnalysisTaskPPJetSpectra.cxx:165
 AliAnalysisTaskPPJetSpectra.cxx:166
 AliAnalysisTaskPPJetSpectra.cxx:167
 AliAnalysisTaskPPJetSpectra.cxx:168
 AliAnalysisTaskPPJetSpectra.cxx:169
 AliAnalysisTaskPPJetSpectra.cxx:170
 AliAnalysisTaskPPJetSpectra.cxx:171
 AliAnalysisTaskPPJetSpectra.cxx:172
 AliAnalysisTaskPPJetSpectra.cxx:173
 AliAnalysisTaskPPJetSpectra.cxx:174
 AliAnalysisTaskPPJetSpectra.cxx:175
 AliAnalysisTaskPPJetSpectra.cxx:176
 AliAnalysisTaskPPJetSpectra.cxx:177
 AliAnalysisTaskPPJetSpectra.cxx:178
 AliAnalysisTaskPPJetSpectra.cxx:179
 AliAnalysisTaskPPJetSpectra.cxx:180
 AliAnalysisTaskPPJetSpectra.cxx:181
 AliAnalysisTaskPPJetSpectra.cxx:182
 AliAnalysisTaskPPJetSpectra.cxx:183
 AliAnalysisTaskPPJetSpectra.cxx:184
 AliAnalysisTaskPPJetSpectra.cxx:185
 AliAnalysisTaskPPJetSpectra.cxx:186
 AliAnalysisTaskPPJetSpectra.cxx:187
 AliAnalysisTaskPPJetSpectra.cxx:188
 AliAnalysisTaskPPJetSpectra.cxx:189
 AliAnalysisTaskPPJetSpectra.cxx:190
 AliAnalysisTaskPPJetSpectra.cxx:191
 AliAnalysisTaskPPJetSpectra.cxx:192
 AliAnalysisTaskPPJetSpectra.cxx:193
 AliAnalysisTaskPPJetSpectra.cxx:194
 AliAnalysisTaskPPJetSpectra.cxx:195
 AliAnalysisTaskPPJetSpectra.cxx:196
 AliAnalysisTaskPPJetSpectra.cxx:197
 AliAnalysisTaskPPJetSpectra.cxx:198
 AliAnalysisTaskPPJetSpectra.cxx:199
 AliAnalysisTaskPPJetSpectra.cxx:200
 AliAnalysisTaskPPJetSpectra.cxx:201
 AliAnalysisTaskPPJetSpectra.cxx:202
 AliAnalysisTaskPPJetSpectra.cxx:203
 AliAnalysisTaskPPJetSpectra.cxx:204
 AliAnalysisTaskPPJetSpectra.cxx:205
 AliAnalysisTaskPPJetSpectra.cxx:206
 AliAnalysisTaskPPJetSpectra.cxx:207
 AliAnalysisTaskPPJetSpectra.cxx:208
 AliAnalysisTaskPPJetSpectra.cxx:209
 AliAnalysisTaskPPJetSpectra.cxx:210
 AliAnalysisTaskPPJetSpectra.cxx:211
 AliAnalysisTaskPPJetSpectra.cxx:212
 AliAnalysisTaskPPJetSpectra.cxx:213
 AliAnalysisTaskPPJetSpectra.cxx:214
 AliAnalysisTaskPPJetSpectra.cxx:215
 AliAnalysisTaskPPJetSpectra.cxx:216
 AliAnalysisTaskPPJetSpectra.cxx:217
 AliAnalysisTaskPPJetSpectra.cxx:218
 AliAnalysisTaskPPJetSpectra.cxx:219
 AliAnalysisTaskPPJetSpectra.cxx:220
 AliAnalysisTaskPPJetSpectra.cxx:221
 AliAnalysisTaskPPJetSpectra.cxx:222
 AliAnalysisTaskPPJetSpectra.cxx:223
 AliAnalysisTaskPPJetSpectra.cxx:224
 AliAnalysisTaskPPJetSpectra.cxx:225
 AliAnalysisTaskPPJetSpectra.cxx:226
 AliAnalysisTaskPPJetSpectra.cxx:227
 AliAnalysisTaskPPJetSpectra.cxx:228
 AliAnalysisTaskPPJetSpectra.cxx:229
 AliAnalysisTaskPPJetSpectra.cxx:230
 AliAnalysisTaskPPJetSpectra.cxx:231
 AliAnalysisTaskPPJetSpectra.cxx:232
 AliAnalysisTaskPPJetSpectra.cxx:233
 AliAnalysisTaskPPJetSpectra.cxx:234
 AliAnalysisTaskPPJetSpectra.cxx:235
 AliAnalysisTaskPPJetSpectra.cxx:236
 AliAnalysisTaskPPJetSpectra.cxx:237
 AliAnalysisTaskPPJetSpectra.cxx:238
 AliAnalysisTaskPPJetSpectra.cxx:239
 AliAnalysisTaskPPJetSpectra.cxx:240
 AliAnalysisTaskPPJetSpectra.cxx:241
 AliAnalysisTaskPPJetSpectra.cxx:242
 AliAnalysisTaskPPJetSpectra.cxx:243
 AliAnalysisTaskPPJetSpectra.cxx:244
 AliAnalysisTaskPPJetSpectra.cxx:245
 AliAnalysisTaskPPJetSpectra.cxx:246
 AliAnalysisTaskPPJetSpectra.cxx:247
 AliAnalysisTaskPPJetSpectra.cxx:248
 AliAnalysisTaskPPJetSpectra.cxx:249
 AliAnalysisTaskPPJetSpectra.cxx:250
 AliAnalysisTaskPPJetSpectra.cxx:251
 AliAnalysisTaskPPJetSpectra.cxx:252
 AliAnalysisTaskPPJetSpectra.cxx:253
 AliAnalysisTaskPPJetSpectra.cxx:254
 AliAnalysisTaskPPJetSpectra.cxx:255
 AliAnalysisTaskPPJetSpectra.cxx:256
 AliAnalysisTaskPPJetSpectra.cxx:257
 AliAnalysisTaskPPJetSpectra.cxx:258
 AliAnalysisTaskPPJetSpectra.cxx:259
 AliAnalysisTaskPPJetSpectra.cxx:260
 AliAnalysisTaskPPJetSpectra.cxx:261
 AliAnalysisTaskPPJetSpectra.cxx:262
 AliAnalysisTaskPPJetSpectra.cxx:263
 AliAnalysisTaskPPJetSpectra.cxx:264
 AliAnalysisTaskPPJetSpectra.cxx:265
 AliAnalysisTaskPPJetSpectra.cxx:266
 AliAnalysisTaskPPJetSpectra.cxx:267
 AliAnalysisTaskPPJetSpectra.cxx:268
 AliAnalysisTaskPPJetSpectra.cxx:269
 AliAnalysisTaskPPJetSpectra.cxx:270
 AliAnalysisTaskPPJetSpectra.cxx:271
 AliAnalysisTaskPPJetSpectra.cxx:272
 AliAnalysisTaskPPJetSpectra.cxx:273
 AliAnalysisTaskPPJetSpectra.cxx:274
 AliAnalysisTaskPPJetSpectra.cxx:275
 AliAnalysisTaskPPJetSpectra.cxx:276
 AliAnalysisTaskPPJetSpectra.cxx:277
 AliAnalysisTaskPPJetSpectra.cxx:278
 AliAnalysisTaskPPJetSpectra.cxx:279
 AliAnalysisTaskPPJetSpectra.cxx:280
 AliAnalysisTaskPPJetSpectra.cxx:281
 AliAnalysisTaskPPJetSpectra.cxx:282
 AliAnalysisTaskPPJetSpectra.cxx:283
 AliAnalysisTaskPPJetSpectra.cxx:284
 AliAnalysisTaskPPJetSpectra.cxx:285
 AliAnalysisTaskPPJetSpectra.cxx:286
 AliAnalysisTaskPPJetSpectra.cxx:287
 AliAnalysisTaskPPJetSpectra.cxx:288
 AliAnalysisTaskPPJetSpectra.cxx:289
 AliAnalysisTaskPPJetSpectra.cxx:290
 AliAnalysisTaskPPJetSpectra.cxx:291
 AliAnalysisTaskPPJetSpectra.cxx:292
 AliAnalysisTaskPPJetSpectra.cxx:293
 AliAnalysisTaskPPJetSpectra.cxx:294
 AliAnalysisTaskPPJetSpectra.cxx:295
 AliAnalysisTaskPPJetSpectra.cxx:296
 AliAnalysisTaskPPJetSpectra.cxx:297
 AliAnalysisTaskPPJetSpectra.cxx:298
 AliAnalysisTaskPPJetSpectra.cxx:299
 AliAnalysisTaskPPJetSpectra.cxx:300
 AliAnalysisTaskPPJetSpectra.cxx:301
 AliAnalysisTaskPPJetSpectra.cxx:302
 AliAnalysisTaskPPJetSpectra.cxx:303
 AliAnalysisTaskPPJetSpectra.cxx:304
 AliAnalysisTaskPPJetSpectra.cxx:305
 AliAnalysisTaskPPJetSpectra.cxx:306
 AliAnalysisTaskPPJetSpectra.cxx:307
 AliAnalysisTaskPPJetSpectra.cxx:308
 AliAnalysisTaskPPJetSpectra.cxx:309
 AliAnalysisTaskPPJetSpectra.cxx:310
 AliAnalysisTaskPPJetSpectra.cxx:311
 AliAnalysisTaskPPJetSpectra.cxx:312
 AliAnalysisTaskPPJetSpectra.cxx:313
 AliAnalysisTaskPPJetSpectra.cxx:314
 AliAnalysisTaskPPJetSpectra.cxx:315
 AliAnalysisTaskPPJetSpectra.cxx:316
 AliAnalysisTaskPPJetSpectra.cxx:317
 AliAnalysisTaskPPJetSpectra.cxx:318
 AliAnalysisTaskPPJetSpectra.cxx:319
 AliAnalysisTaskPPJetSpectra.cxx:320
 AliAnalysisTaskPPJetSpectra.cxx:321
 AliAnalysisTaskPPJetSpectra.cxx:322
 AliAnalysisTaskPPJetSpectra.cxx:323
 AliAnalysisTaskPPJetSpectra.cxx:324
 AliAnalysisTaskPPJetSpectra.cxx:325
 AliAnalysisTaskPPJetSpectra.cxx:326
 AliAnalysisTaskPPJetSpectra.cxx:327
 AliAnalysisTaskPPJetSpectra.cxx:328
 AliAnalysisTaskPPJetSpectra.cxx:329
 AliAnalysisTaskPPJetSpectra.cxx:330
 AliAnalysisTaskPPJetSpectra.cxx:331
 AliAnalysisTaskPPJetSpectra.cxx:332
 AliAnalysisTaskPPJetSpectra.cxx:333
 AliAnalysisTaskPPJetSpectra.cxx:334
 AliAnalysisTaskPPJetSpectra.cxx:335
 AliAnalysisTaskPPJetSpectra.cxx:336
 AliAnalysisTaskPPJetSpectra.cxx:337
 AliAnalysisTaskPPJetSpectra.cxx:338
 AliAnalysisTaskPPJetSpectra.cxx:339
 AliAnalysisTaskPPJetSpectra.cxx:340
 AliAnalysisTaskPPJetSpectra.cxx:341
 AliAnalysisTaskPPJetSpectra.cxx:342
 AliAnalysisTaskPPJetSpectra.cxx:343
 AliAnalysisTaskPPJetSpectra.cxx:344
 AliAnalysisTaskPPJetSpectra.cxx:345
 AliAnalysisTaskPPJetSpectra.cxx:346
 AliAnalysisTaskPPJetSpectra.cxx:347
 AliAnalysisTaskPPJetSpectra.cxx:348
 AliAnalysisTaskPPJetSpectra.cxx:349
 AliAnalysisTaskPPJetSpectra.cxx:350
 AliAnalysisTaskPPJetSpectra.cxx:351
 AliAnalysisTaskPPJetSpectra.cxx:352
 AliAnalysisTaskPPJetSpectra.cxx:353
 AliAnalysisTaskPPJetSpectra.cxx:354
 AliAnalysisTaskPPJetSpectra.cxx:355
 AliAnalysisTaskPPJetSpectra.cxx:356
 AliAnalysisTaskPPJetSpectra.cxx:357
 AliAnalysisTaskPPJetSpectra.cxx:358
 AliAnalysisTaskPPJetSpectra.cxx:359
 AliAnalysisTaskPPJetSpectra.cxx:360
 AliAnalysisTaskPPJetSpectra.cxx:361
 AliAnalysisTaskPPJetSpectra.cxx:362
 AliAnalysisTaskPPJetSpectra.cxx:363
 AliAnalysisTaskPPJetSpectra.cxx:364
 AliAnalysisTaskPPJetSpectra.cxx:365
 AliAnalysisTaskPPJetSpectra.cxx:366
 AliAnalysisTaskPPJetSpectra.cxx:367
 AliAnalysisTaskPPJetSpectra.cxx:368
 AliAnalysisTaskPPJetSpectra.cxx:369
 AliAnalysisTaskPPJetSpectra.cxx:370
 AliAnalysisTaskPPJetSpectra.cxx:371
 AliAnalysisTaskPPJetSpectra.cxx:372
 AliAnalysisTaskPPJetSpectra.cxx:373
 AliAnalysisTaskPPJetSpectra.cxx:374
 AliAnalysisTaskPPJetSpectra.cxx:375
 AliAnalysisTaskPPJetSpectra.cxx:376
 AliAnalysisTaskPPJetSpectra.cxx:377
 AliAnalysisTaskPPJetSpectra.cxx:378
 AliAnalysisTaskPPJetSpectra.cxx:379
 AliAnalysisTaskPPJetSpectra.cxx:380
 AliAnalysisTaskPPJetSpectra.cxx:381
 AliAnalysisTaskPPJetSpectra.cxx:382
 AliAnalysisTaskPPJetSpectra.cxx:383
 AliAnalysisTaskPPJetSpectra.cxx:384
 AliAnalysisTaskPPJetSpectra.cxx:385
 AliAnalysisTaskPPJetSpectra.cxx:386
 AliAnalysisTaskPPJetSpectra.cxx:387
 AliAnalysisTaskPPJetSpectra.cxx:388
 AliAnalysisTaskPPJetSpectra.cxx:389
 AliAnalysisTaskPPJetSpectra.cxx:390
 AliAnalysisTaskPPJetSpectra.cxx:391
 AliAnalysisTaskPPJetSpectra.cxx:392
 AliAnalysisTaskPPJetSpectra.cxx:393
 AliAnalysisTaskPPJetSpectra.cxx:394
 AliAnalysisTaskPPJetSpectra.cxx:395
 AliAnalysisTaskPPJetSpectra.cxx:396
 AliAnalysisTaskPPJetSpectra.cxx:397
 AliAnalysisTaskPPJetSpectra.cxx:398
 AliAnalysisTaskPPJetSpectra.cxx:399
 AliAnalysisTaskPPJetSpectra.cxx:400
 AliAnalysisTaskPPJetSpectra.cxx:401
 AliAnalysisTaskPPJetSpectra.cxx:402
 AliAnalysisTaskPPJetSpectra.cxx:403
 AliAnalysisTaskPPJetSpectra.cxx:404
 AliAnalysisTaskPPJetSpectra.cxx:405
 AliAnalysisTaskPPJetSpectra.cxx:406
 AliAnalysisTaskPPJetSpectra.cxx:407
 AliAnalysisTaskPPJetSpectra.cxx:408
 AliAnalysisTaskPPJetSpectra.cxx:409
 AliAnalysisTaskPPJetSpectra.cxx:410
 AliAnalysisTaskPPJetSpectra.cxx:411
 AliAnalysisTaskPPJetSpectra.cxx:412
 AliAnalysisTaskPPJetSpectra.cxx:413
 AliAnalysisTaskPPJetSpectra.cxx:414
 AliAnalysisTaskPPJetSpectra.cxx:415
 AliAnalysisTaskPPJetSpectra.cxx:416
 AliAnalysisTaskPPJetSpectra.cxx:417
 AliAnalysisTaskPPJetSpectra.cxx:418
 AliAnalysisTaskPPJetSpectra.cxx:419
 AliAnalysisTaskPPJetSpectra.cxx:420
 AliAnalysisTaskPPJetSpectra.cxx:421
 AliAnalysisTaskPPJetSpectra.cxx:422
 AliAnalysisTaskPPJetSpectra.cxx:423
 AliAnalysisTaskPPJetSpectra.cxx:424
 AliAnalysisTaskPPJetSpectra.cxx:425
 AliAnalysisTaskPPJetSpectra.cxx:426
 AliAnalysisTaskPPJetSpectra.cxx:427
 AliAnalysisTaskPPJetSpectra.cxx:428
 AliAnalysisTaskPPJetSpectra.cxx:429
 AliAnalysisTaskPPJetSpectra.cxx:430
 AliAnalysisTaskPPJetSpectra.cxx:431
 AliAnalysisTaskPPJetSpectra.cxx:432
 AliAnalysisTaskPPJetSpectra.cxx:433
 AliAnalysisTaskPPJetSpectra.cxx:434
 AliAnalysisTaskPPJetSpectra.cxx:435
 AliAnalysisTaskPPJetSpectra.cxx:436
 AliAnalysisTaskPPJetSpectra.cxx:437
 AliAnalysisTaskPPJetSpectra.cxx:438
 AliAnalysisTaskPPJetSpectra.cxx:439
 AliAnalysisTaskPPJetSpectra.cxx:440
 AliAnalysisTaskPPJetSpectra.cxx:441
 AliAnalysisTaskPPJetSpectra.cxx:442
 AliAnalysisTaskPPJetSpectra.cxx:443
 AliAnalysisTaskPPJetSpectra.cxx:444
 AliAnalysisTaskPPJetSpectra.cxx:445
 AliAnalysisTaskPPJetSpectra.cxx:446
 AliAnalysisTaskPPJetSpectra.cxx:447
 AliAnalysisTaskPPJetSpectra.cxx:448
 AliAnalysisTaskPPJetSpectra.cxx:449
 AliAnalysisTaskPPJetSpectra.cxx:450
 AliAnalysisTaskPPJetSpectra.cxx:451
 AliAnalysisTaskPPJetSpectra.cxx:452
 AliAnalysisTaskPPJetSpectra.cxx:453
 AliAnalysisTaskPPJetSpectra.cxx:454
 AliAnalysisTaskPPJetSpectra.cxx:455
 AliAnalysisTaskPPJetSpectra.cxx:456
 AliAnalysisTaskPPJetSpectra.cxx:457
 AliAnalysisTaskPPJetSpectra.cxx:458
 AliAnalysisTaskPPJetSpectra.cxx:459
 AliAnalysisTaskPPJetSpectra.cxx:460
 AliAnalysisTaskPPJetSpectra.cxx:461
 AliAnalysisTaskPPJetSpectra.cxx:462
 AliAnalysisTaskPPJetSpectra.cxx:463
 AliAnalysisTaskPPJetSpectra.cxx:464
 AliAnalysisTaskPPJetSpectra.cxx:465
 AliAnalysisTaskPPJetSpectra.cxx:466
 AliAnalysisTaskPPJetSpectra.cxx:467
 AliAnalysisTaskPPJetSpectra.cxx:468
 AliAnalysisTaskPPJetSpectra.cxx:469
 AliAnalysisTaskPPJetSpectra.cxx:470
 AliAnalysisTaskPPJetSpectra.cxx:471
 AliAnalysisTaskPPJetSpectra.cxx:472
 AliAnalysisTaskPPJetSpectra.cxx:473
 AliAnalysisTaskPPJetSpectra.cxx:474
 AliAnalysisTaskPPJetSpectra.cxx:475
 AliAnalysisTaskPPJetSpectra.cxx:476
 AliAnalysisTaskPPJetSpectra.cxx:477
 AliAnalysisTaskPPJetSpectra.cxx:478
 AliAnalysisTaskPPJetSpectra.cxx:479
 AliAnalysisTaskPPJetSpectra.cxx:480
 AliAnalysisTaskPPJetSpectra.cxx:481
 AliAnalysisTaskPPJetSpectra.cxx:482
 AliAnalysisTaskPPJetSpectra.cxx:483
 AliAnalysisTaskPPJetSpectra.cxx:484
 AliAnalysisTaskPPJetSpectra.cxx:485
 AliAnalysisTaskPPJetSpectra.cxx:486
 AliAnalysisTaskPPJetSpectra.cxx:487
 AliAnalysisTaskPPJetSpectra.cxx:488
 AliAnalysisTaskPPJetSpectra.cxx:489
 AliAnalysisTaskPPJetSpectra.cxx:490
 AliAnalysisTaskPPJetSpectra.cxx:491
 AliAnalysisTaskPPJetSpectra.cxx:492
 AliAnalysisTaskPPJetSpectra.cxx:493
 AliAnalysisTaskPPJetSpectra.cxx:494
 AliAnalysisTaskPPJetSpectra.cxx:495
 AliAnalysisTaskPPJetSpectra.cxx:496
 AliAnalysisTaskPPJetSpectra.cxx:497
 AliAnalysisTaskPPJetSpectra.cxx:498
 AliAnalysisTaskPPJetSpectra.cxx:499
 AliAnalysisTaskPPJetSpectra.cxx:500
 AliAnalysisTaskPPJetSpectra.cxx:501
 AliAnalysisTaskPPJetSpectra.cxx:502
 AliAnalysisTaskPPJetSpectra.cxx:503
 AliAnalysisTaskPPJetSpectra.cxx:504
 AliAnalysisTaskPPJetSpectra.cxx:505
 AliAnalysisTaskPPJetSpectra.cxx:506
 AliAnalysisTaskPPJetSpectra.cxx:507
 AliAnalysisTaskPPJetSpectra.cxx:508
 AliAnalysisTaskPPJetSpectra.cxx:509
 AliAnalysisTaskPPJetSpectra.cxx:510
 AliAnalysisTaskPPJetSpectra.cxx:511
 AliAnalysisTaskPPJetSpectra.cxx:512
 AliAnalysisTaskPPJetSpectra.cxx:513
 AliAnalysisTaskPPJetSpectra.cxx:514
 AliAnalysisTaskPPJetSpectra.cxx:515
 AliAnalysisTaskPPJetSpectra.cxx:516
 AliAnalysisTaskPPJetSpectra.cxx:517
 AliAnalysisTaskPPJetSpectra.cxx:518
 AliAnalysisTaskPPJetSpectra.cxx:519
 AliAnalysisTaskPPJetSpectra.cxx:520
 AliAnalysisTaskPPJetSpectra.cxx:521
 AliAnalysisTaskPPJetSpectra.cxx:522
 AliAnalysisTaskPPJetSpectra.cxx:523
 AliAnalysisTaskPPJetSpectra.cxx:524
 AliAnalysisTaskPPJetSpectra.cxx:525
 AliAnalysisTaskPPJetSpectra.cxx:526
 AliAnalysisTaskPPJetSpectra.cxx:527
 AliAnalysisTaskPPJetSpectra.cxx:528
 AliAnalysisTaskPPJetSpectra.cxx:529
 AliAnalysisTaskPPJetSpectra.cxx:530
 AliAnalysisTaskPPJetSpectra.cxx:531
 AliAnalysisTaskPPJetSpectra.cxx:532
 AliAnalysisTaskPPJetSpectra.cxx:533
 AliAnalysisTaskPPJetSpectra.cxx:534
 AliAnalysisTaskPPJetSpectra.cxx:535
 AliAnalysisTaskPPJetSpectra.cxx:536
 AliAnalysisTaskPPJetSpectra.cxx:537
 AliAnalysisTaskPPJetSpectra.cxx:538
 AliAnalysisTaskPPJetSpectra.cxx:539
 AliAnalysisTaskPPJetSpectra.cxx:540
 AliAnalysisTaskPPJetSpectra.cxx:541
 AliAnalysisTaskPPJetSpectra.cxx:542
 AliAnalysisTaskPPJetSpectra.cxx:543
 AliAnalysisTaskPPJetSpectra.cxx:544
 AliAnalysisTaskPPJetSpectra.cxx:545
 AliAnalysisTaskPPJetSpectra.cxx:546
 AliAnalysisTaskPPJetSpectra.cxx:547
 AliAnalysisTaskPPJetSpectra.cxx:548
 AliAnalysisTaskPPJetSpectra.cxx:549
 AliAnalysisTaskPPJetSpectra.cxx:550
 AliAnalysisTaskPPJetSpectra.cxx:551
 AliAnalysisTaskPPJetSpectra.cxx:552
 AliAnalysisTaskPPJetSpectra.cxx:553
 AliAnalysisTaskPPJetSpectra.cxx:554
 AliAnalysisTaskPPJetSpectra.cxx:555
 AliAnalysisTaskPPJetSpectra.cxx:556
 AliAnalysisTaskPPJetSpectra.cxx:557
 AliAnalysisTaskPPJetSpectra.cxx:558
 AliAnalysisTaskPPJetSpectra.cxx:559
 AliAnalysisTaskPPJetSpectra.cxx:560
 AliAnalysisTaskPPJetSpectra.cxx:561
 AliAnalysisTaskPPJetSpectra.cxx:562
 AliAnalysisTaskPPJetSpectra.cxx:563
 AliAnalysisTaskPPJetSpectra.cxx:564
 AliAnalysisTaskPPJetSpectra.cxx:565
 AliAnalysisTaskPPJetSpectra.cxx:566
 AliAnalysisTaskPPJetSpectra.cxx:567
 AliAnalysisTaskPPJetSpectra.cxx:568
 AliAnalysisTaskPPJetSpectra.cxx:569
 AliAnalysisTaskPPJetSpectra.cxx:570
 AliAnalysisTaskPPJetSpectra.cxx:571
 AliAnalysisTaskPPJetSpectra.cxx:572
 AliAnalysisTaskPPJetSpectra.cxx:573
 AliAnalysisTaskPPJetSpectra.cxx:574
 AliAnalysisTaskPPJetSpectra.cxx:575
 AliAnalysisTaskPPJetSpectra.cxx:576
 AliAnalysisTaskPPJetSpectra.cxx:577
 AliAnalysisTaskPPJetSpectra.cxx:578
 AliAnalysisTaskPPJetSpectra.cxx:579
 AliAnalysisTaskPPJetSpectra.cxx:580
 AliAnalysisTaskPPJetSpectra.cxx:581
 AliAnalysisTaskPPJetSpectra.cxx:582
 AliAnalysisTaskPPJetSpectra.cxx:583
 AliAnalysisTaskPPJetSpectra.cxx:584
 AliAnalysisTaskPPJetSpectra.cxx:585
 AliAnalysisTaskPPJetSpectra.cxx:586
 AliAnalysisTaskPPJetSpectra.cxx:587
 AliAnalysisTaskPPJetSpectra.cxx:588
 AliAnalysisTaskPPJetSpectra.cxx:589
 AliAnalysisTaskPPJetSpectra.cxx:590
 AliAnalysisTaskPPJetSpectra.cxx:591
 AliAnalysisTaskPPJetSpectra.cxx:592
 AliAnalysisTaskPPJetSpectra.cxx:593
 AliAnalysisTaskPPJetSpectra.cxx:594
 AliAnalysisTaskPPJetSpectra.cxx:595
 AliAnalysisTaskPPJetSpectra.cxx:596
 AliAnalysisTaskPPJetSpectra.cxx:597
 AliAnalysisTaskPPJetSpectra.cxx:598
 AliAnalysisTaskPPJetSpectra.cxx:599
 AliAnalysisTaskPPJetSpectra.cxx:600
 AliAnalysisTaskPPJetSpectra.cxx:601
 AliAnalysisTaskPPJetSpectra.cxx:602
 AliAnalysisTaskPPJetSpectra.cxx:603
 AliAnalysisTaskPPJetSpectra.cxx:604
 AliAnalysisTaskPPJetSpectra.cxx:605
 AliAnalysisTaskPPJetSpectra.cxx:606
 AliAnalysisTaskPPJetSpectra.cxx:607
 AliAnalysisTaskPPJetSpectra.cxx:608
 AliAnalysisTaskPPJetSpectra.cxx:609
 AliAnalysisTaskPPJetSpectra.cxx:610
 AliAnalysisTaskPPJetSpectra.cxx:611
 AliAnalysisTaskPPJetSpectra.cxx:612
 AliAnalysisTaskPPJetSpectra.cxx:613
 AliAnalysisTaskPPJetSpectra.cxx:614
 AliAnalysisTaskPPJetSpectra.cxx:615
 AliAnalysisTaskPPJetSpectra.cxx:616
 AliAnalysisTaskPPJetSpectra.cxx:617
 AliAnalysisTaskPPJetSpectra.cxx:618
 AliAnalysisTaskPPJetSpectra.cxx:619
 AliAnalysisTaskPPJetSpectra.cxx:620
 AliAnalysisTaskPPJetSpectra.cxx:621
 AliAnalysisTaskPPJetSpectra.cxx:622
 AliAnalysisTaskPPJetSpectra.cxx:623
 AliAnalysisTaskPPJetSpectra.cxx:624
 AliAnalysisTaskPPJetSpectra.cxx:625
 AliAnalysisTaskPPJetSpectra.cxx:626
 AliAnalysisTaskPPJetSpectra.cxx:627
 AliAnalysisTaskPPJetSpectra.cxx:628
 AliAnalysisTaskPPJetSpectra.cxx:629
 AliAnalysisTaskPPJetSpectra.cxx:630
 AliAnalysisTaskPPJetSpectra.cxx:631
 AliAnalysisTaskPPJetSpectra.cxx:632
 AliAnalysisTaskPPJetSpectra.cxx:633
 AliAnalysisTaskPPJetSpectra.cxx:634
 AliAnalysisTaskPPJetSpectra.cxx:635
 AliAnalysisTaskPPJetSpectra.cxx:636
 AliAnalysisTaskPPJetSpectra.cxx:637
 AliAnalysisTaskPPJetSpectra.cxx:638
 AliAnalysisTaskPPJetSpectra.cxx:639
 AliAnalysisTaskPPJetSpectra.cxx:640
 AliAnalysisTaskPPJetSpectra.cxx:641
 AliAnalysisTaskPPJetSpectra.cxx:642
 AliAnalysisTaskPPJetSpectra.cxx:643
 AliAnalysisTaskPPJetSpectra.cxx:644
 AliAnalysisTaskPPJetSpectra.cxx:645
 AliAnalysisTaskPPJetSpectra.cxx:646
 AliAnalysisTaskPPJetSpectra.cxx:647
 AliAnalysisTaskPPJetSpectra.cxx:648
 AliAnalysisTaskPPJetSpectra.cxx:649
 AliAnalysisTaskPPJetSpectra.cxx:650
 AliAnalysisTaskPPJetSpectra.cxx:651
 AliAnalysisTaskPPJetSpectra.cxx:652
 AliAnalysisTaskPPJetSpectra.cxx:653
 AliAnalysisTaskPPJetSpectra.cxx:654
 AliAnalysisTaskPPJetSpectra.cxx:655
 AliAnalysisTaskPPJetSpectra.cxx:656
 AliAnalysisTaskPPJetSpectra.cxx:657
 AliAnalysisTaskPPJetSpectra.cxx:658
 AliAnalysisTaskPPJetSpectra.cxx:659
 AliAnalysisTaskPPJetSpectra.cxx:660
 AliAnalysisTaskPPJetSpectra.cxx:661
 AliAnalysisTaskPPJetSpectra.cxx:662
 AliAnalysisTaskPPJetSpectra.cxx:663
 AliAnalysisTaskPPJetSpectra.cxx:664
 AliAnalysisTaskPPJetSpectra.cxx:665
 AliAnalysisTaskPPJetSpectra.cxx:666
 AliAnalysisTaskPPJetSpectra.cxx:667
 AliAnalysisTaskPPJetSpectra.cxx:668
 AliAnalysisTaskPPJetSpectra.cxx:669
 AliAnalysisTaskPPJetSpectra.cxx:670
 AliAnalysisTaskPPJetSpectra.cxx:671
 AliAnalysisTaskPPJetSpectra.cxx:672
 AliAnalysisTaskPPJetSpectra.cxx:673
 AliAnalysisTaskPPJetSpectra.cxx:674
 AliAnalysisTaskPPJetSpectra.cxx:675
 AliAnalysisTaskPPJetSpectra.cxx:676
 AliAnalysisTaskPPJetSpectra.cxx:677
 AliAnalysisTaskPPJetSpectra.cxx:678
 AliAnalysisTaskPPJetSpectra.cxx:679
 AliAnalysisTaskPPJetSpectra.cxx:680
 AliAnalysisTaskPPJetSpectra.cxx:681
 AliAnalysisTaskPPJetSpectra.cxx:682
 AliAnalysisTaskPPJetSpectra.cxx:683
 AliAnalysisTaskPPJetSpectra.cxx:684
 AliAnalysisTaskPPJetSpectra.cxx:685
 AliAnalysisTaskPPJetSpectra.cxx:686
 AliAnalysisTaskPPJetSpectra.cxx:687
 AliAnalysisTaskPPJetSpectra.cxx:688
 AliAnalysisTaskPPJetSpectra.cxx:689
 AliAnalysisTaskPPJetSpectra.cxx:690
 AliAnalysisTaskPPJetSpectra.cxx:691
 AliAnalysisTaskPPJetSpectra.cxx:692
 AliAnalysisTaskPPJetSpectra.cxx:693
 AliAnalysisTaskPPJetSpectra.cxx:694
 AliAnalysisTaskPPJetSpectra.cxx:695
 AliAnalysisTaskPPJetSpectra.cxx:696
 AliAnalysisTaskPPJetSpectra.cxx:697
 AliAnalysisTaskPPJetSpectra.cxx:698
 AliAnalysisTaskPPJetSpectra.cxx:699
 AliAnalysisTaskPPJetSpectra.cxx:700
 AliAnalysisTaskPPJetSpectra.cxx:701
 AliAnalysisTaskPPJetSpectra.cxx:702
 AliAnalysisTaskPPJetSpectra.cxx:703
 AliAnalysisTaskPPJetSpectra.cxx:704
 AliAnalysisTaskPPJetSpectra.cxx:705
 AliAnalysisTaskPPJetSpectra.cxx:706
 AliAnalysisTaskPPJetSpectra.cxx:707
 AliAnalysisTaskPPJetSpectra.cxx:708
 AliAnalysisTaskPPJetSpectra.cxx:709
 AliAnalysisTaskPPJetSpectra.cxx:710
 AliAnalysisTaskPPJetSpectra.cxx:711
 AliAnalysisTaskPPJetSpectra.cxx:712
 AliAnalysisTaskPPJetSpectra.cxx:713
 AliAnalysisTaskPPJetSpectra.cxx:714
 AliAnalysisTaskPPJetSpectra.cxx:715
 AliAnalysisTaskPPJetSpectra.cxx:716
 AliAnalysisTaskPPJetSpectra.cxx:717
 AliAnalysisTaskPPJetSpectra.cxx:718
 AliAnalysisTaskPPJetSpectra.cxx:719
 AliAnalysisTaskPPJetSpectra.cxx:720
 AliAnalysisTaskPPJetSpectra.cxx:721
 AliAnalysisTaskPPJetSpectra.cxx:722
 AliAnalysisTaskPPJetSpectra.cxx:723
 AliAnalysisTaskPPJetSpectra.cxx:724
 AliAnalysisTaskPPJetSpectra.cxx:725
 AliAnalysisTaskPPJetSpectra.cxx:726
 AliAnalysisTaskPPJetSpectra.cxx:727
 AliAnalysisTaskPPJetSpectra.cxx:728
 AliAnalysisTaskPPJetSpectra.cxx:729
 AliAnalysisTaskPPJetSpectra.cxx:730
 AliAnalysisTaskPPJetSpectra.cxx:731
 AliAnalysisTaskPPJetSpectra.cxx:732
 AliAnalysisTaskPPJetSpectra.cxx:733
 AliAnalysisTaskPPJetSpectra.cxx:734
 AliAnalysisTaskPPJetSpectra.cxx:735
 AliAnalysisTaskPPJetSpectra.cxx:736
 AliAnalysisTaskPPJetSpectra.cxx:737
 AliAnalysisTaskPPJetSpectra.cxx:738
 AliAnalysisTaskPPJetSpectra.cxx:739
 AliAnalysisTaskPPJetSpectra.cxx:740
 AliAnalysisTaskPPJetSpectra.cxx:741
 AliAnalysisTaskPPJetSpectra.cxx:742
 AliAnalysisTaskPPJetSpectra.cxx:743
 AliAnalysisTaskPPJetSpectra.cxx:744
 AliAnalysisTaskPPJetSpectra.cxx:745
 AliAnalysisTaskPPJetSpectra.cxx:746
 AliAnalysisTaskPPJetSpectra.cxx:747
 AliAnalysisTaskPPJetSpectra.cxx:748
 AliAnalysisTaskPPJetSpectra.cxx:749
 AliAnalysisTaskPPJetSpectra.cxx:750
 AliAnalysisTaskPPJetSpectra.cxx:751
 AliAnalysisTaskPPJetSpectra.cxx:752
 AliAnalysisTaskPPJetSpectra.cxx:753
 AliAnalysisTaskPPJetSpectra.cxx:754
 AliAnalysisTaskPPJetSpectra.cxx:755
 AliAnalysisTaskPPJetSpectra.cxx:756
 AliAnalysisTaskPPJetSpectra.cxx:757
 AliAnalysisTaskPPJetSpectra.cxx:758
 AliAnalysisTaskPPJetSpectra.cxx:759
 AliAnalysisTaskPPJetSpectra.cxx:760
 AliAnalysisTaskPPJetSpectra.cxx:761
 AliAnalysisTaskPPJetSpectra.cxx:762
 AliAnalysisTaskPPJetSpectra.cxx:763
 AliAnalysisTaskPPJetSpectra.cxx:764
 AliAnalysisTaskPPJetSpectra.cxx:765
 AliAnalysisTaskPPJetSpectra.cxx:766
 AliAnalysisTaskPPJetSpectra.cxx:767
 AliAnalysisTaskPPJetSpectra.cxx:768
 AliAnalysisTaskPPJetSpectra.cxx:769
 AliAnalysisTaskPPJetSpectra.cxx:770
 AliAnalysisTaskPPJetSpectra.cxx:771
 AliAnalysisTaskPPJetSpectra.cxx:772
 AliAnalysisTaskPPJetSpectra.cxx:773
 AliAnalysisTaskPPJetSpectra.cxx:774
 AliAnalysisTaskPPJetSpectra.cxx:775
 AliAnalysisTaskPPJetSpectra.cxx:776
 AliAnalysisTaskPPJetSpectra.cxx:777
 AliAnalysisTaskPPJetSpectra.cxx:778
 AliAnalysisTaskPPJetSpectra.cxx:779
 AliAnalysisTaskPPJetSpectra.cxx:780
 AliAnalysisTaskPPJetSpectra.cxx:781
 AliAnalysisTaskPPJetSpectra.cxx:782
 AliAnalysisTaskPPJetSpectra.cxx:783
 AliAnalysisTaskPPJetSpectra.cxx:784
 AliAnalysisTaskPPJetSpectra.cxx:785
 AliAnalysisTaskPPJetSpectra.cxx:786
 AliAnalysisTaskPPJetSpectra.cxx:787
 AliAnalysisTaskPPJetSpectra.cxx:788
 AliAnalysisTaskPPJetSpectra.cxx:789
 AliAnalysisTaskPPJetSpectra.cxx:790
 AliAnalysisTaskPPJetSpectra.cxx:791
 AliAnalysisTaskPPJetSpectra.cxx:792
 AliAnalysisTaskPPJetSpectra.cxx:793
 AliAnalysisTaskPPJetSpectra.cxx:794
 AliAnalysisTaskPPJetSpectra.cxx:795
 AliAnalysisTaskPPJetSpectra.cxx:796
 AliAnalysisTaskPPJetSpectra.cxx:797
 AliAnalysisTaskPPJetSpectra.cxx:798
 AliAnalysisTaskPPJetSpectra.cxx:799
 AliAnalysisTaskPPJetSpectra.cxx:800
 AliAnalysisTaskPPJetSpectra.cxx:801
 AliAnalysisTaskPPJetSpectra.cxx:802
 AliAnalysisTaskPPJetSpectra.cxx:803
 AliAnalysisTaskPPJetSpectra.cxx:804
 AliAnalysisTaskPPJetSpectra.cxx:805
 AliAnalysisTaskPPJetSpectra.cxx:806
 AliAnalysisTaskPPJetSpectra.cxx:807
 AliAnalysisTaskPPJetSpectra.cxx:808
 AliAnalysisTaskPPJetSpectra.cxx:809
 AliAnalysisTaskPPJetSpectra.cxx:810
 AliAnalysisTaskPPJetSpectra.cxx:811
 AliAnalysisTaskPPJetSpectra.cxx:812
 AliAnalysisTaskPPJetSpectra.cxx:813
 AliAnalysisTaskPPJetSpectra.cxx:814
 AliAnalysisTaskPPJetSpectra.cxx:815
 AliAnalysisTaskPPJetSpectra.cxx:816
 AliAnalysisTaskPPJetSpectra.cxx:817
 AliAnalysisTaskPPJetSpectra.cxx:818
 AliAnalysisTaskPPJetSpectra.cxx:819
 AliAnalysisTaskPPJetSpectra.cxx:820
 AliAnalysisTaskPPJetSpectra.cxx:821
 AliAnalysisTaskPPJetSpectra.cxx:822
 AliAnalysisTaskPPJetSpectra.cxx:823
 AliAnalysisTaskPPJetSpectra.cxx:824
 AliAnalysisTaskPPJetSpectra.cxx:825
 AliAnalysisTaskPPJetSpectra.cxx:826
 AliAnalysisTaskPPJetSpectra.cxx:827
 AliAnalysisTaskPPJetSpectra.cxx:828
 AliAnalysisTaskPPJetSpectra.cxx:829
 AliAnalysisTaskPPJetSpectra.cxx:830
 AliAnalysisTaskPPJetSpectra.cxx:831
 AliAnalysisTaskPPJetSpectra.cxx:832
 AliAnalysisTaskPPJetSpectra.cxx:833
 AliAnalysisTaskPPJetSpectra.cxx:834
 AliAnalysisTaskPPJetSpectra.cxx:835
 AliAnalysisTaskPPJetSpectra.cxx:836
 AliAnalysisTaskPPJetSpectra.cxx:837
 AliAnalysisTaskPPJetSpectra.cxx:838
 AliAnalysisTaskPPJetSpectra.cxx:839
 AliAnalysisTaskPPJetSpectra.cxx:840
 AliAnalysisTaskPPJetSpectra.cxx:841
 AliAnalysisTaskPPJetSpectra.cxx:842
 AliAnalysisTaskPPJetSpectra.cxx:843
 AliAnalysisTaskPPJetSpectra.cxx:844
 AliAnalysisTaskPPJetSpectra.cxx:845
 AliAnalysisTaskPPJetSpectra.cxx:846
 AliAnalysisTaskPPJetSpectra.cxx:847
 AliAnalysisTaskPPJetSpectra.cxx:848
 AliAnalysisTaskPPJetSpectra.cxx:849
 AliAnalysisTaskPPJetSpectra.cxx:850
 AliAnalysisTaskPPJetSpectra.cxx:851
 AliAnalysisTaskPPJetSpectra.cxx:852
 AliAnalysisTaskPPJetSpectra.cxx:853
 AliAnalysisTaskPPJetSpectra.cxx:854
 AliAnalysisTaskPPJetSpectra.cxx:855
 AliAnalysisTaskPPJetSpectra.cxx:856
 AliAnalysisTaskPPJetSpectra.cxx:857
 AliAnalysisTaskPPJetSpectra.cxx:858
 AliAnalysisTaskPPJetSpectra.cxx:859
 AliAnalysisTaskPPJetSpectra.cxx:860
 AliAnalysisTaskPPJetSpectra.cxx:861
 AliAnalysisTaskPPJetSpectra.cxx:862
 AliAnalysisTaskPPJetSpectra.cxx:863
 AliAnalysisTaskPPJetSpectra.cxx:864
 AliAnalysisTaskPPJetSpectra.cxx:865
 AliAnalysisTaskPPJetSpectra.cxx:866
 AliAnalysisTaskPPJetSpectra.cxx:867
 AliAnalysisTaskPPJetSpectra.cxx:868
 AliAnalysisTaskPPJetSpectra.cxx:869
 AliAnalysisTaskPPJetSpectra.cxx:870
 AliAnalysisTaskPPJetSpectra.cxx:871
 AliAnalysisTaskPPJetSpectra.cxx:872
 AliAnalysisTaskPPJetSpectra.cxx:873
 AliAnalysisTaskPPJetSpectra.cxx:874
 AliAnalysisTaskPPJetSpectra.cxx:875
 AliAnalysisTaskPPJetSpectra.cxx:876
 AliAnalysisTaskPPJetSpectra.cxx:877
 AliAnalysisTaskPPJetSpectra.cxx:878
 AliAnalysisTaskPPJetSpectra.cxx:879
 AliAnalysisTaskPPJetSpectra.cxx:880
 AliAnalysisTaskPPJetSpectra.cxx:881
 AliAnalysisTaskPPJetSpectra.cxx:882
 AliAnalysisTaskPPJetSpectra.cxx:883
 AliAnalysisTaskPPJetSpectra.cxx:884
 AliAnalysisTaskPPJetSpectra.cxx:885
 AliAnalysisTaskPPJetSpectra.cxx:886
 AliAnalysisTaskPPJetSpectra.cxx:887
 AliAnalysisTaskPPJetSpectra.cxx:888
 AliAnalysisTaskPPJetSpectra.cxx:889
 AliAnalysisTaskPPJetSpectra.cxx:890
 AliAnalysisTaskPPJetSpectra.cxx:891
 AliAnalysisTaskPPJetSpectra.cxx:892
 AliAnalysisTaskPPJetSpectra.cxx:893
 AliAnalysisTaskPPJetSpectra.cxx:894
 AliAnalysisTaskPPJetSpectra.cxx:895
 AliAnalysisTaskPPJetSpectra.cxx:896
 AliAnalysisTaskPPJetSpectra.cxx:897
 AliAnalysisTaskPPJetSpectra.cxx:898
 AliAnalysisTaskPPJetSpectra.cxx:899
 AliAnalysisTaskPPJetSpectra.cxx:900
 AliAnalysisTaskPPJetSpectra.cxx:901
 AliAnalysisTaskPPJetSpectra.cxx:902
 AliAnalysisTaskPPJetSpectra.cxx:903
 AliAnalysisTaskPPJetSpectra.cxx:904
 AliAnalysisTaskPPJetSpectra.cxx:905
 AliAnalysisTaskPPJetSpectra.cxx:906
 AliAnalysisTaskPPJetSpectra.cxx:907
 AliAnalysisTaskPPJetSpectra.cxx:908
 AliAnalysisTaskPPJetSpectra.cxx:909
 AliAnalysisTaskPPJetSpectra.cxx:910
 AliAnalysisTaskPPJetSpectra.cxx:911
 AliAnalysisTaskPPJetSpectra.cxx:912
 AliAnalysisTaskPPJetSpectra.cxx:913
 AliAnalysisTaskPPJetSpectra.cxx:914
 AliAnalysisTaskPPJetSpectra.cxx:915
 AliAnalysisTaskPPJetSpectra.cxx:916
 AliAnalysisTaskPPJetSpectra.cxx:917
 AliAnalysisTaskPPJetSpectra.cxx:918
 AliAnalysisTaskPPJetSpectra.cxx:919
 AliAnalysisTaskPPJetSpectra.cxx:920
 AliAnalysisTaskPPJetSpectra.cxx:921
 AliAnalysisTaskPPJetSpectra.cxx:922
 AliAnalysisTaskPPJetSpectra.cxx:923
 AliAnalysisTaskPPJetSpectra.cxx:924
 AliAnalysisTaskPPJetSpectra.cxx:925
 AliAnalysisTaskPPJetSpectra.cxx:926
 AliAnalysisTaskPPJetSpectra.cxx:927
 AliAnalysisTaskPPJetSpectra.cxx:928
 AliAnalysisTaskPPJetSpectra.cxx:929
 AliAnalysisTaskPPJetSpectra.cxx:930
 AliAnalysisTaskPPJetSpectra.cxx:931
 AliAnalysisTaskPPJetSpectra.cxx:932
 AliAnalysisTaskPPJetSpectra.cxx:933
 AliAnalysisTaskPPJetSpectra.cxx:934
 AliAnalysisTaskPPJetSpectra.cxx:935
 AliAnalysisTaskPPJetSpectra.cxx:936
 AliAnalysisTaskPPJetSpectra.cxx:937
 AliAnalysisTaskPPJetSpectra.cxx:938
 AliAnalysisTaskPPJetSpectra.cxx:939
 AliAnalysisTaskPPJetSpectra.cxx:940
 AliAnalysisTaskPPJetSpectra.cxx:941
 AliAnalysisTaskPPJetSpectra.cxx:942
 AliAnalysisTaskPPJetSpectra.cxx:943
 AliAnalysisTaskPPJetSpectra.cxx:944
 AliAnalysisTaskPPJetSpectra.cxx:945
 AliAnalysisTaskPPJetSpectra.cxx:946
 AliAnalysisTaskPPJetSpectra.cxx:947
 AliAnalysisTaskPPJetSpectra.cxx:948
 AliAnalysisTaskPPJetSpectra.cxx:949
 AliAnalysisTaskPPJetSpectra.cxx:950
 AliAnalysisTaskPPJetSpectra.cxx:951
 AliAnalysisTaskPPJetSpectra.cxx:952
 AliAnalysisTaskPPJetSpectra.cxx:953
 AliAnalysisTaskPPJetSpectra.cxx:954
 AliAnalysisTaskPPJetSpectra.cxx:955
 AliAnalysisTaskPPJetSpectra.cxx:956
 AliAnalysisTaskPPJetSpectra.cxx:957
 AliAnalysisTaskPPJetSpectra.cxx:958
 AliAnalysisTaskPPJetSpectra.cxx:959
 AliAnalysisTaskPPJetSpectra.cxx:960
 AliAnalysisTaskPPJetSpectra.cxx:961
 AliAnalysisTaskPPJetSpectra.cxx:962
 AliAnalysisTaskPPJetSpectra.cxx:963
 AliAnalysisTaskPPJetSpectra.cxx:964
 AliAnalysisTaskPPJetSpectra.cxx:965
 AliAnalysisTaskPPJetSpectra.cxx:966
 AliAnalysisTaskPPJetSpectra.cxx:967
 AliAnalysisTaskPPJetSpectra.cxx:968
 AliAnalysisTaskPPJetSpectra.cxx:969
 AliAnalysisTaskPPJetSpectra.cxx:970
 AliAnalysisTaskPPJetSpectra.cxx:971
 AliAnalysisTaskPPJetSpectra.cxx:972
 AliAnalysisTaskPPJetSpectra.cxx:973
 AliAnalysisTaskPPJetSpectra.cxx:974
 AliAnalysisTaskPPJetSpectra.cxx:975
 AliAnalysisTaskPPJetSpectra.cxx:976
 AliAnalysisTaskPPJetSpectra.cxx:977
 AliAnalysisTaskPPJetSpectra.cxx:978
 AliAnalysisTaskPPJetSpectra.cxx:979
 AliAnalysisTaskPPJetSpectra.cxx:980
 AliAnalysisTaskPPJetSpectra.cxx:981
 AliAnalysisTaskPPJetSpectra.cxx:982
 AliAnalysisTaskPPJetSpectra.cxx:983
 AliAnalysisTaskPPJetSpectra.cxx:984
 AliAnalysisTaskPPJetSpectra.cxx:985
 AliAnalysisTaskPPJetSpectra.cxx:986
 AliAnalysisTaskPPJetSpectra.cxx:987
 AliAnalysisTaskPPJetSpectra.cxx:988
 AliAnalysisTaskPPJetSpectra.cxx:989
 AliAnalysisTaskPPJetSpectra.cxx:990
 AliAnalysisTaskPPJetSpectra.cxx:991
 AliAnalysisTaskPPJetSpectra.cxx:992
 AliAnalysisTaskPPJetSpectra.cxx:993
 AliAnalysisTaskPPJetSpectra.cxx:994
 AliAnalysisTaskPPJetSpectra.cxx:995
 AliAnalysisTaskPPJetSpectra.cxx:996
 AliAnalysisTaskPPJetSpectra.cxx:997
 AliAnalysisTaskPPJetSpectra.cxx:998
 AliAnalysisTaskPPJetSpectra.cxx:999
 AliAnalysisTaskPPJetSpectra.cxx:1000
 AliAnalysisTaskPPJetSpectra.cxx:1001
 AliAnalysisTaskPPJetSpectra.cxx:1002
 AliAnalysisTaskPPJetSpectra.cxx:1003
 AliAnalysisTaskPPJetSpectra.cxx:1004
 AliAnalysisTaskPPJetSpectra.cxx:1005
 AliAnalysisTaskPPJetSpectra.cxx:1006
 AliAnalysisTaskPPJetSpectra.cxx:1007
 AliAnalysisTaskPPJetSpectra.cxx:1008
 AliAnalysisTaskPPJetSpectra.cxx:1009
 AliAnalysisTaskPPJetSpectra.cxx:1010
 AliAnalysisTaskPPJetSpectra.cxx:1011
 AliAnalysisTaskPPJetSpectra.cxx:1012
 AliAnalysisTaskPPJetSpectra.cxx:1013
 AliAnalysisTaskPPJetSpectra.cxx:1014
 AliAnalysisTaskPPJetSpectra.cxx:1015
 AliAnalysisTaskPPJetSpectra.cxx:1016
 AliAnalysisTaskPPJetSpectra.cxx:1017
 AliAnalysisTaskPPJetSpectra.cxx:1018
 AliAnalysisTaskPPJetSpectra.cxx:1019
 AliAnalysisTaskPPJetSpectra.cxx:1020