ROOT logo
// $Id$
//
// Jet embedding deltaPt task.
//
// Author: M. Verweij

#include <TClonesArray.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TH3F.h>
#include <TList.h>
#include <TLorentzVector.h>
#include <TRandom3.h>

#include "AliVCluster.h"
#include "AliVParticle.h"
#include "AliVTrack.h"
#include "AliEmcalJet.h"
#include "AliRhoParameter.h"
#include "AliLog.h"
#include "AliJetContainer.h"
#include "AliParticleContainer.h"
#include "AliClusterContainer.h"

#include "AliAnalysisTaskDeltaPtJEmb.h"

ClassImp(AliAnalysisTaskDeltaPtJEmb)

//________________________________________________________________________
AliAnalysisTaskDeltaPtJEmb::AliAnalysisTaskDeltaPtJEmb() : 
  AliAnalysisTaskEmcalJet("AliAnalysisTaskDeltaPtJEmb", kTRUE),
  fJetsCont(0),
  fTracksCont(0),
  fCaloClustersCont(0),
  fMinFractionShared(0.5),
  fHistEmbJetsPtArea(0),
  fHistEmbJetsCorrPtArea(0),
  fHistEmbPartPtvsJetPt(0),
  fHistEmbPartPtvsJetCorrPt(0),
  fHistJetPtvsJetCorrPt(0),
  fHistDistLeadPart2JetAxis(0),
  fHistEmbBkgArea(0),
  fHistRhoVSEmbBkg(0),
  fHistDeltaPtEmbArea(0),
  fHistDeltaPtEmbvsEP(0),
  fHistDeltaPtEmbPtProbe(0),
  fHistEmbJetsPhiEta(0),
  fHistLeadPartPhiEta(0)
{
  // Default constructor.

  fHistEmbJetsPtArea = new TH3*[fNcentBins];
  fHistEmbJetsCorrPtArea = new TH3*[fNcentBins];
  fHistEmbPartPtvsJetPt = new TH2*[fNcentBins];
  fHistEmbPartPtvsJetCorrPt = new TH2*[fNcentBins];
  fHistJetPtvsJetCorrPt = new TH2*[fNcentBins];
  fHistDistLeadPart2JetAxis = new TH1*[fNcentBins];
  fHistEmbBkgArea = new TH2*[fNcentBins];
  fHistRhoVSEmbBkg = new TH2*[fNcentBins];
  fHistDeltaPtEmbArea = new TH2*[fNcentBins];
  fHistDeltaPtEmbvsEP = new TH2*[fNcentBins];
  fHistDeltaPtEmbPtProbe = new TH2*[fNcentBins];

  for (Int_t i = 0; i < fNcentBins; i++) {
    fHistEmbJetsPtArea[i] = 0;
    fHistEmbJetsCorrPtArea[i] = 0;
    fHistEmbPartPtvsJetPt[i] = 0;
    fHistEmbPartPtvsJetCorrPt[i] = 0;
    fHistJetPtvsJetCorrPt[i] = 0;
    fHistDistLeadPart2JetAxis[i] = 0;
    fHistEmbBkgArea[i] = 0;
    fHistRhoVSEmbBkg[i] = 0;
    fHistDeltaPtEmbArea[i] = 0;
    fHistDeltaPtEmbvsEP[i] = 0;
    fHistDeltaPtEmbPtProbe[i] = 0;
  }

  SetMakeGeneralHistograms(kTRUE);
}

//________________________________________________________________________
AliAnalysisTaskDeltaPtJEmb::AliAnalysisTaskDeltaPtJEmb(const char *name) : 
  AliAnalysisTaskEmcalJet(name, kTRUE),
  fJetsCont(0),
  fTracksCont(0),
  fCaloClustersCont(0),
  fMinFractionShared(0.5),
  fHistEmbJetsPtArea(0),
  fHistEmbJetsCorrPtArea(0),
  fHistEmbPartPtvsJetPt(0),
  fHistEmbPartPtvsJetCorrPt(0),
  fHistJetPtvsJetCorrPt(0),
  fHistDistLeadPart2JetAxis(0),
  fHistEmbBkgArea(0),
  fHistRhoVSEmbBkg(0),
  fHistDeltaPtEmbArea(0),
  fHistDeltaPtEmbvsEP(0),
  fHistDeltaPtEmbPtProbe(0),
  fHistEmbJetsPhiEta(0),
  fHistLeadPartPhiEta(0)
{
  // Standard constructor.

  fHistEmbJetsPtArea = new TH3*[fNcentBins];
  fHistEmbJetsCorrPtArea = new TH3*[fNcentBins];
  fHistEmbPartPtvsJetPt = new TH2*[fNcentBins];
  fHistEmbPartPtvsJetCorrPt = new TH2*[fNcentBins];
  fHistJetPtvsJetCorrPt = new TH2*[fNcentBins];
  fHistDistLeadPart2JetAxis = new TH1*[fNcentBins];
  fHistEmbBkgArea = new TH2*[fNcentBins];
  fHistRhoVSEmbBkg = new TH2*[fNcentBins];
  fHistDeltaPtEmbArea = new TH2*[fNcentBins];
  fHistDeltaPtEmbvsEP = new TH2*[fNcentBins];
  fHistDeltaPtEmbPtProbe = new TH2*[fNcentBins];

  for (Int_t i = 0; i < fNcentBins; i++) {
    fHistEmbJetsPtArea[i] = 0;
    fHistEmbJetsCorrPtArea[i] = 0;
    fHistEmbPartPtvsJetPt[i] = 0;
    fHistEmbPartPtvsJetCorrPt[i] = 0;
    fHistJetPtvsJetCorrPt[i] = 0;
    fHistDistLeadPart2JetAxis[i] = 0;
    fHistEmbBkgArea[i] = 0;
    fHistRhoVSEmbBkg[i] = 0;
    fHistDeltaPtEmbArea[i] = 0;
    fHistDeltaPtEmbvsEP[i] = 0;
    fHistDeltaPtEmbPtProbe[i] = 0;
  }

  SetMakeGeneralHistograms(kTRUE);
}

//________________________________________________________________________
void AliAnalysisTaskDeltaPtJEmb::UserCreateOutputObjects()
{
  // Create user output.

  AliAnalysisTaskEmcalJet::UserCreateOutputObjects();

  fJetsCont = GetJetContainer("Jets");
  fTracksCont = GetParticleContainer("Tracks");
  fCaloClustersCont = GetClusterContainer("CaloClusters");
  
  fHistEmbJetsPhiEta = new TH2F("fHistEmbJetsPhiEta","fHistEmbJetsPhiEta", 100, -1, 1, 201, 0, TMath::Pi() * 2.01);
  fHistEmbJetsPhiEta->GetXaxis()->SetTitle("#eta");
  fHistEmbJetsPhiEta->GetYaxis()->SetTitle("#phi");
  fOutput->Add(fHistEmbJetsPhiEta);
  
  fHistLeadPartPhiEta = new TH2F("fHistLeadPartPhiEta","fHistLeadPartPhiEta", 100, -1, 1, 201, 0, TMath::Pi() * 2.01);
  fHistLeadPartPhiEta->GetXaxis()->SetTitle("#eta");
  fHistLeadPartPhiEta->GetYaxis()->SetTitle("#phi");
  fOutput->Add(fHistLeadPartPhiEta);
  
  TString histname;

  const Int_t nbinsZ = 12;
  Double_t binsZ[nbinsZ+1] = {0,1,2,3,4,5,6,7,8,9,10,20,1000};

  Double_t *binsPt       = GenerateFixedBinArray(fNbins, fMinBinPt, fMaxBinPt);
  Double_t *binsCorrPt   = GenerateFixedBinArray(fNbins*2, -fMaxBinPt, fMaxBinPt);
  Double_t *binsArea     = GenerateFixedBinArray(50, 0, 2);

  for (Int_t i = 0; i < fNcentBins; i++) {
    histname = "fHistEmbJetsPtArea_";
    histname += i;
    fHistEmbJetsPtArea[i] = new TH3F(histname.Data(), histname.Data(), 50, binsArea, fNbins, binsPt, nbinsZ, binsZ);
    fHistEmbJetsPtArea[i]->GetXaxis()->SetTitle("area");
    fHistEmbJetsPtArea[i]->GetYaxis()->SetTitle("#it{p}_{T,jet}^{emb,raw} (GeV/#it{c})");
    fOutput->Add(fHistEmbJetsPtArea[i]);

    histname = "fHistEmbJetsCorrPtArea_";
    histname += i;
    fHistEmbJetsCorrPtArea[i] = new TH3F(histname.Data(), histname.Data(), 50, binsArea, fNbins * 2, binsCorrPt, nbinsZ, binsZ);
    fHistEmbJetsCorrPtArea[i]->GetXaxis()->SetTitle("area");
    fHistEmbJetsCorrPtArea[i]->GetYaxis()->SetTitle("#it{p}_{T,jet}^{emb,corr} (GeV/#it{c})");
    fOutput->Add(fHistEmbJetsCorrPtArea[i]);

    histname = "fHistEmbPartPtvsJetPt_";
    histname += i;
    fHistEmbPartPtvsJetPt[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt);
    fHistEmbPartPtvsJetPt[i]->GetXaxis()->SetTitle("#sum#it{p}_{T,const}^{emb} (GeV/#it{c})");
    fHistEmbPartPtvsJetPt[i]->GetYaxis()->SetTitle("#it{p}_{T,jet}^{emb} (GeV/#it{c})");
    fHistEmbPartPtvsJetPt[i]->GetZaxis()->SetTitle("counts");
    fOutput->Add(fHistEmbPartPtvsJetPt[i]);

    histname = "fHistEmbPartPtvsJetCorrPt_";
    histname += i;
    fHistEmbPartPtvsJetCorrPt[i] = new TH2F(histname.Data(), histname.Data(), 
					    fNbins, fMinBinPt, fMaxBinPt, fNbins*2, -fMaxBinPt, fMaxBinPt);
    fHistEmbPartPtvsJetCorrPt[i]->GetXaxis()->SetTitle("#sum#it{p}_{T,const}^{emb} (GeV/#it{c})");
    fHistEmbPartPtvsJetCorrPt[i]->GetYaxis()->SetTitle("#it{p}_{T,jet}^{emb} - A#rho (GeV/#it{c})");
    fHistEmbPartPtvsJetCorrPt[i]->GetZaxis()->SetTitle("counts");
    fOutput->Add(fHistEmbPartPtvsJetCorrPt[i]);

    histname = "fHistJetPtvsJetCorrPt_";
    histname += i;
    fHistJetPtvsJetCorrPt[i] = new TH2F(histname.Data(), histname.Data(), 
					fNbins, fMinBinPt, fMaxBinPt, fNbins*2, -fMaxBinPt, fMaxBinPt);
    fHistJetPtvsJetCorrPt[i]->GetXaxis()->SetTitle("#it{p}_{T,jet}^{emb} (GeV/#it{c})");
    fHistJetPtvsJetCorrPt[i]->GetYaxis()->SetTitle("#it{p}_{T,jet}^{emb} - A#rho (GeV/#it{c})");
    fHistJetPtvsJetCorrPt[i]->GetZaxis()->SetTitle("counts");
    fOutput->Add(fHistJetPtvsJetCorrPt[i]);

    histname = "fHistDistLeadPart2JetAxis_";
    histname += i;
    fHistDistLeadPart2JetAxis[i] = new TH1F(histname.Data(), histname.Data(), 50, 0, 0.5);
    fHistDistLeadPart2JetAxis[i]->GetXaxis()->SetTitle("distance");
    fHistDistLeadPart2JetAxis[i]->GetYaxis()->SetTitle("counts");
    fOutput->Add(fHistDistLeadPart2JetAxis[i]);

    histname = "fHistEmbBkgArea_";
    histname += i;
    fHistEmbBkgArea[i] = new TH2F(histname.Data(), histname.Data(), 50, 0, 2, fNbins, fMinBinPt, fMaxBinPt);
    fHistEmbBkgArea[i]->GetXaxis()->SetTitle("area");
    fHistEmbBkgArea[i]->GetYaxis()->SetTitle("#it{p}_{T,jet}^{emb} - #sum#it{p}_{T,const}^{emb} (GeV/#it{c})");
    fOutput->Add(fHistEmbBkgArea[i]);

    histname = "fHistRhoVSEmbBkg_";
    histname += i;
    fHistRhoVSEmbBkg[i] = new TH2F(histname.Data(), histname.Data(), fNbins, fMinBinPt, fMaxBinPt, fNbins, fMinBinPt, fMaxBinPt);
    fHistRhoVSEmbBkg[i]->GetXaxis()->SetTitle("A#rho (GeV/#it{c})");
    fHistRhoVSEmbBkg[i]->GetYaxis()->SetTitle("#it{p}_{T,jet}^{emb} - #sum#it{p}_{T,const}^{emb} (GeV/#it{c})");
    fOutput->Add(fHistRhoVSEmbBkg[i]);
      
    histname = "fHistDeltaPtEmbArea_";
    histname += i;
    fHistDeltaPtEmbArea[i] = new TH2F(histname.Data(), histname.Data(), 
				      50, 0, 2, fNbins * 2, -fMaxBinPt, fMaxBinPt);
    fHistDeltaPtEmbArea[i]->GetXaxis()->SetTitle("area");
    fHistDeltaPtEmbArea[i]->GetYaxis()->SetTitle("#delta#it{p}_{T}^{emb} (GeV/#it{c})");
    fHistDeltaPtEmbArea[i]->GetZaxis()->SetTitle("counts");
    fOutput->Add(fHistDeltaPtEmbArea[i]);

    histname = "fHistDeltaPtEmbvsEP_";
    histname += i;
    fHistDeltaPtEmbvsEP[i] = new TH2F(histname.Data(), histname.Data(), 
				      402, -TMath::Pi()*1.01, TMath::Pi()*3.01, fNbins * 2, -fMaxBinPt, fMaxBinPt);
    fHistDeltaPtEmbvsEP[i]->GetXaxis()->SetTitle("#phi_{jet} - #Psi_{EP}");
    fHistDeltaPtEmbvsEP[i]->GetYaxis()->SetTitle("#delta#it{p}_{T}^{emb} (GeV/#it{c})");
    fHistDeltaPtEmbvsEP[i]->GetZaxis()->SetTitle("counts");
    fOutput->Add(fHistDeltaPtEmbvsEP[i]);

    histname = "fHistDeltaPtEmbPtProbe_";
    histname += i;
    fHistDeltaPtEmbPtProbe[i] = new TH2F(histname.Data(), histname.Data(), 
					 fNbins, fMinBinPt, fMaxBinPt, fNbins * 2, -fMaxBinPt, fMaxBinPt);
    fHistDeltaPtEmbPtProbe[i]->GetXaxis()->SetTitle("#it{p}_{T,probe} (GeV/#it{c})");
    fHistDeltaPtEmbPtProbe[i]->GetYaxis()->SetTitle("#delta#it{p}_{T}^{emb} (GeV/#it{c})");
    fHistDeltaPtEmbPtProbe[i]->GetZaxis()->SetTitle("counts");
    fOutput->Add(fHistDeltaPtEmbPtProbe[i]);
  }

  delete[] binsPt;
  delete[] binsCorrPt;
  delete[] binsArea;

  PostData(1, fOutput); // Post data for ALL output slots >0 here, to get at least an empty histogram
}

//________________________________________________________________________
Bool_t AliAnalysisTaskDeltaPtJEmb::FillHistograms()
{
  // Fill histograms.

  // ************
  // Embedding
  // Jets should already be matched, GetClosestJet gives matched partner. Cut on shared fraction to be applied
  // _________________________________

  if (fJetsCont) {
    AliEmcalJet *jet1 = NULL;
    AliEmcalJet *jet2 = NULL;
    fJetsCont->ResetCurrentID();
    while((jet1 = fJetsCont->GetNextAcceptJet())) {

      jet2 = jet1->ClosestJet();
      if(!jet2) continue;

      Double_t fraction = fJetsCont->GetFractionSharedPt(jet1);
      if(fMinFractionShared>0. && fraction<fMinFractionShared) continue;

      TLorentzVector mom;
      fJetsCont->GetLeadingHadronMomentum(mom,jet1);
      
      Double_t distLeading2Jet = TMath::Sqrt((jet1->Eta() - mom.Eta()) * (jet1->Eta() - mom.Eta()) + (jet1->Phi() - mom.Phi()+TMath::Pi()) * (jet1->Phi() - mom.Phi()+TMath::Pi()));
      
      fHistEmbPartPtvsJetPt[fCentBin]->Fill(jet2->Pt(), jet1->Pt());
      fHistEmbPartPtvsJetCorrPt[fCentBin]->Fill(jet2->Pt(), jet1->Pt() - jet1->Area() * fRhoVal);
      fHistLeadPartPhiEta->Fill(mom.Eta(), mom.Phi()+TMath::Pi());
      fHistDistLeadPart2JetAxis[fCentBin]->Fill(distLeading2Jet);
      
      fHistEmbJetsPtArea[fCentBin]->Fill(jet1->Area(), jet1->Pt(), mom.Pt());
      fHistEmbJetsCorrPtArea[fCentBin]->Fill(jet1->Area(), jet1->Pt() - fRhoVal * jet1->Area(), mom.Pt());
      fHistEmbJetsPhiEta->Fill(jet1->Eta(), jet1->Phi());
      fHistJetPtvsJetCorrPt[fCentBin]->Fill(jet1->Pt(), jet1->Pt() - fRhoVal * jet1->Area());
      
      fHistEmbBkgArea[fCentBin]->Fill(jet1->Area(), jet1->Pt() - jet2->Pt());
      fHistRhoVSEmbBkg[fCentBin]->Fill(fRhoVal * jet1->Area(), jet1->Pt() - jet2->Pt());
      fHistDeltaPtEmbArea[fCentBin]->Fill(jet1->Area(), jet1->Pt() - jet1->Area() * fRhoVal - jet2->Pt());
      fHistDeltaPtEmbvsEP[fCentBin]->Fill(jet1->Phi() - fEPV0, jet1->Pt() - jet1->Area() * fRhoVal - jet2->Pt());
      fHistDeltaPtEmbPtProbe[fCentBin]->Fill(jet2->Pt(), jet1->Pt() - jet1->Area() * fRhoVal - jet2->Pt());
    }
  }

  return kTRUE;
}

//________________________________________________________________________
void AliAnalysisTaskDeltaPtJEmb::ExecOnce()
{
  // Initialize the analysis.

  AliAnalysisTaskEmcalJet::ExecOnce();

  if (fTracksCont && fTracksCont->GetArray() == 0) fTracksCont = 0;
  if (fCaloClustersCont && fCaloClustersCont->GetArray() == 0) fCaloClustersCont = 0;
  if (fJetsCont && fJetsCont->GetArray() == 0) fJetsCont = 0;
}
 AliAnalysisTaskDeltaPtJEmb.cxx:1
 AliAnalysisTaskDeltaPtJEmb.cxx:2
 AliAnalysisTaskDeltaPtJEmb.cxx:3
 AliAnalysisTaskDeltaPtJEmb.cxx:4
 AliAnalysisTaskDeltaPtJEmb.cxx:5
 AliAnalysisTaskDeltaPtJEmb.cxx:6
 AliAnalysisTaskDeltaPtJEmb.cxx:7
 AliAnalysisTaskDeltaPtJEmb.cxx:8
 AliAnalysisTaskDeltaPtJEmb.cxx:9
 AliAnalysisTaskDeltaPtJEmb.cxx:10
 AliAnalysisTaskDeltaPtJEmb.cxx:11
 AliAnalysisTaskDeltaPtJEmb.cxx:12
 AliAnalysisTaskDeltaPtJEmb.cxx:13
 AliAnalysisTaskDeltaPtJEmb.cxx:14
 AliAnalysisTaskDeltaPtJEmb.cxx:15
 AliAnalysisTaskDeltaPtJEmb.cxx:16
 AliAnalysisTaskDeltaPtJEmb.cxx:17
 AliAnalysisTaskDeltaPtJEmb.cxx:18
 AliAnalysisTaskDeltaPtJEmb.cxx:19
 AliAnalysisTaskDeltaPtJEmb.cxx:20
 AliAnalysisTaskDeltaPtJEmb.cxx:21
 AliAnalysisTaskDeltaPtJEmb.cxx:22
 AliAnalysisTaskDeltaPtJEmb.cxx:23
 AliAnalysisTaskDeltaPtJEmb.cxx:24
 AliAnalysisTaskDeltaPtJEmb.cxx:25
 AliAnalysisTaskDeltaPtJEmb.cxx:26
 AliAnalysisTaskDeltaPtJEmb.cxx:27
 AliAnalysisTaskDeltaPtJEmb.cxx:28
 AliAnalysisTaskDeltaPtJEmb.cxx:29
 AliAnalysisTaskDeltaPtJEmb.cxx:30
 AliAnalysisTaskDeltaPtJEmb.cxx:31
 AliAnalysisTaskDeltaPtJEmb.cxx:32
 AliAnalysisTaskDeltaPtJEmb.cxx:33
 AliAnalysisTaskDeltaPtJEmb.cxx:34
 AliAnalysisTaskDeltaPtJEmb.cxx:35
 AliAnalysisTaskDeltaPtJEmb.cxx:36
 AliAnalysisTaskDeltaPtJEmb.cxx:37
 AliAnalysisTaskDeltaPtJEmb.cxx:38
 AliAnalysisTaskDeltaPtJEmb.cxx:39
 AliAnalysisTaskDeltaPtJEmb.cxx:40
 AliAnalysisTaskDeltaPtJEmb.cxx:41
 AliAnalysisTaskDeltaPtJEmb.cxx:42
 AliAnalysisTaskDeltaPtJEmb.cxx:43
 AliAnalysisTaskDeltaPtJEmb.cxx:44
 AliAnalysisTaskDeltaPtJEmb.cxx:45
 AliAnalysisTaskDeltaPtJEmb.cxx:46
 AliAnalysisTaskDeltaPtJEmb.cxx:47
 AliAnalysisTaskDeltaPtJEmb.cxx:48
 AliAnalysisTaskDeltaPtJEmb.cxx:49
 AliAnalysisTaskDeltaPtJEmb.cxx:50
 AliAnalysisTaskDeltaPtJEmb.cxx:51
 AliAnalysisTaskDeltaPtJEmb.cxx:52
 AliAnalysisTaskDeltaPtJEmb.cxx:53
 AliAnalysisTaskDeltaPtJEmb.cxx:54
 AliAnalysisTaskDeltaPtJEmb.cxx:55
 AliAnalysisTaskDeltaPtJEmb.cxx:56
 AliAnalysisTaskDeltaPtJEmb.cxx:57
 AliAnalysisTaskDeltaPtJEmb.cxx:58
 AliAnalysisTaskDeltaPtJEmb.cxx:59
 AliAnalysisTaskDeltaPtJEmb.cxx:60
 AliAnalysisTaskDeltaPtJEmb.cxx:61
 AliAnalysisTaskDeltaPtJEmb.cxx:62
 AliAnalysisTaskDeltaPtJEmb.cxx:63
 AliAnalysisTaskDeltaPtJEmb.cxx:64
 AliAnalysisTaskDeltaPtJEmb.cxx:65
 AliAnalysisTaskDeltaPtJEmb.cxx:66
 AliAnalysisTaskDeltaPtJEmb.cxx:67
 AliAnalysisTaskDeltaPtJEmb.cxx:68
 AliAnalysisTaskDeltaPtJEmb.cxx:69
 AliAnalysisTaskDeltaPtJEmb.cxx:70
 AliAnalysisTaskDeltaPtJEmb.cxx:71
 AliAnalysisTaskDeltaPtJEmb.cxx:72
 AliAnalysisTaskDeltaPtJEmb.cxx:73
 AliAnalysisTaskDeltaPtJEmb.cxx:74
 AliAnalysisTaskDeltaPtJEmb.cxx:75
 AliAnalysisTaskDeltaPtJEmb.cxx:76
 AliAnalysisTaskDeltaPtJEmb.cxx:77
 AliAnalysisTaskDeltaPtJEmb.cxx:78
 AliAnalysisTaskDeltaPtJEmb.cxx:79
 AliAnalysisTaskDeltaPtJEmb.cxx:80
 AliAnalysisTaskDeltaPtJEmb.cxx:81
 AliAnalysisTaskDeltaPtJEmb.cxx:82
 AliAnalysisTaskDeltaPtJEmb.cxx:83
 AliAnalysisTaskDeltaPtJEmb.cxx:84
 AliAnalysisTaskDeltaPtJEmb.cxx:85
 AliAnalysisTaskDeltaPtJEmb.cxx:86
 AliAnalysisTaskDeltaPtJEmb.cxx:87
 AliAnalysisTaskDeltaPtJEmb.cxx:88
 AliAnalysisTaskDeltaPtJEmb.cxx:89
 AliAnalysisTaskDeltaPtJEmb.cxx:90
 AliAnalysisTaskDeltaPtJEmb.cxx:91
 AliAnalysisTaskDeltaPtJEmb.cxx:92
 AliAnalysisTaskDeltaPtJEmb.cxx:93
 AliAnalysisTaskDeltaPtJEmb.cxx:94
 AliAnalysisTaskDeltaPtJEmb.cxx:95
 AliAnalysisTaskDeltaPtJEmb.cxx:96
 AliAnalysisTaskDeltaPtJEmb.cxx:97
 AliAnalysisTaskDeltaPtJEmb.cxx:98
 AliAnalysisTaskDeltaPtJEmb.cxx:99
 AliAnalysisTaskDeltaPtJEmb.cxx:100
 AliAnalysisTaskDeltaPtJEmb.cxx:101
 AliAnalysisTaskDeltaPtJEmb.cxx:102
 AliAnalysisTaskDeltaPtJEmb.cxx:103
 AliAnalysisTaskDeltaPtJEmb.cxx:104
 AliAnalysisTaskDeltaPtJEmb.cxx:105
 AliAnalysisTaskDeltaPtJEmb.cxx:106
 AliAnalysisTaskDeltaPtJEmb.cxx:107
 AliAnalysisTaskDeltaPtJEmb.cxx:108
 AliAnalysisTaskDeltaPtJEmb.cxx:109
 AliAnalysisTaskDeltaPtJEmb.cxx:110
 AliAnalysisTaskDeltaPtJEmb.cxx:111
 AliAnalysisTaskDeltaPtJEmb.cxx:112
 AliAnalysisTaskDeltaPtJEmb.cxx:113
 AliAnalysisTaskDeltaPtJEmb.cxx:114
 AliAnalysisTaskDeltaPtJEmb.cxx:115
 AliAnalysisTaskDeltaPtJEmb.cxx:116
 AliAnalysisTaskDeltaPtJEmb.cxx:117
 AliAnalysisTaskDeltaPtJEmb.cxx:118
 AliAnalysisTaskDeltaPtJEmb.cxx:119
 AliAnalysisTaskDeltaPtJEmb.cxx:120
 AliAnalysisTaskDeltaPtJEmb.cxx:121
 AliAnalysisTaskDeltaPtJEmb.cxx:122
 AliAnalysisTaskDeltaPtJEmb.cxx:123
 AliAnalysisTaskDeltaPtJEmb.cxx:124
 AliAnalysisTaskDeltaPtJEmb.cxx:125
 AliAnalysisTaskDeltaPtJEmb.cxx:126
 AliAnalysisTaskDeltaPtJEmb.cxx:127
 AliAnalysisTaskDeltaPtJEmb.cxx:128
 AliAnalysisTaskDeltaPtJEmb.cxx:129
 AliAnalysisTaskDeltaPtJEmb.cxx:130
 AliAnalysisTaskDeltaPtJEmb.cxx:131
 AliAnalysisTaskDeltaPtJEmb.cxx:132
 AliAnalysisTaskDeltaPtJEmb.cxx:133
 AliAnalysisTaskDeltaPtJEmb.cxx:134
 AliAnalysisTaskDeltaPtJEmb.cxx:135
 AliAnalysisTaskDeltaPtJEmb.cxx:136
 AliAnalysisTaskDeltaPtJEmb.cxx:137
 AliAnalysisTaskDeltaPtJEmb.cxx:138
 AliAnalysisTaskDeltaPtJEmb.cxx:139
 AliAnalysisTaskDeltaPtJEmb.cxx:140
 AliAnalysisTaskDeltaPtJEmb.cxx:141
 AliAnalysisTaskDeltaPtJEmb.cxx:142
 AliAnalysisTaskDeltaPtJEmb.cxx:143
 AliAnalysisTaskDeltaPtJEmb.cxx:144
 AliAnalysisTaskDeltaPtJEmb.cxx:145
 AliAnalysisTaskDeltaPtJEmb.cxx:146
 AliAnalysisTaskDeltaPtJEmb.cxx:147
 AliAnalysisTaskDeltaPtJEmb.cxx:148
 AliAnalysisTaskDeltaPtJEmb.cxx:149
 AliAnalysisTaskDeltaPtJEmb.cxx:150
 AliAnalysisTaskDeltaPtJEmb.cxx:151
 AliAnalysisTaskDeltaPtJEmb.cxx:152
 AliAnalysisTaskDeltaPtJEmb.cxx:153
 AliAnalysisTaskDeltaPtJEmb.cxx:154
 AliAnalysisTaskDeltaPtJEmb.cxx:155
 AliAnalysisTaskDeltaPtJEmb.cxx:156
 AliAnalysisTaskDeltaPtJEmb.cxx:157
 AliAnalysisTaskDeltaPtJEmb.cxx:158
 AliAnalysisTaskDeltaPtJEmb.cxx:159
 AliAnalysisTaskDeltaPtJEmb.cxx:160
 AliAnalysisTaskDeltaPtJEmb.cxx:161
 AliAnalysisTaskDeltaPtJEmb.cxx:162
 AliAnalysisTaskDeltaPtJEmb.cxx:163
 AliAnalysisTaskDeltaPtJEmb.cxx:164
 AliAnalysisTaskDeltaPtJEmb.cxx:165
 AliAnalysisTaskDeltaPtJEmb.cxx:166
 AliAnalysisTaskDeltaPtJEmb.cxx:167
 AliAnalysisTaskDeltaPtJEmb.cxx:168
 AliAnalysisTaskDeltaPtJEmb.cxx:169
 AliAnalysisTaskDeltaPtJEmb.cxx:170
 AliAnalysisTaskDeltaPtJEmb.cxx:171
 AliAnalysisTaskDeltaPtJEmb.cxx:172
 AliAnalysisTaskDeltaPtJEmb.cxx:173
 AliAnalysisTaskDeltaPtJEmb.cxx:174
 AliAnalysisTaskDeltaPtJEmb.cxx:175
 AliAnalysisTaskDeltaPtJEmb.cxx:176
 AliAnalysisTaskDeltaPtJEmb.cxx:177
 AliAnalysisTaskDeltaPtJEmb.cxx:178
 AliAnalysisTaskDeltaPtJEmb.cxx:179
 AliAnalysisTaskDeltaPtJEmb.cxx:180
 AliAnalysisTaskDeltaPtJEmb.cxx:181
 AliAnalysisTaskDeltaPtJEmb.cxx:182
 AliAnalysisTaskDeltaPtJEmb.cxx:183
 AliAnalysisTaskDeltaPtJEmb.cxx:184
 AliAnalysisTaskDeltaPtJEmb.cxx:185
 AliAnalysisTaskDeltaPtJEmb.cxx:186
 AliAnalysisTaskDeltaPtJEmb.cxx:187
 AliAnalysisTaskDeltaPtJEmb.cxx:188
 AliAnalysisTaskDeltaPtJEmb.cxx:189
 AliAnalysisTaskDeltaPtJEmb.cxx:190
 AliAnalysisTaskDeltaPtJEmb.cxx:191
 AliAnalysisTaskDeltaPtJEmb.cxx:192
 AliAnalysisTaskDeltaPtJEmb.cxx:193
 AliAnalysisTaskDeltaPtJEmb.cxx:194
 AliAnalysisTaskDeltaPtJEmb.cxx:195
 AliAnalysisTaskDeltaPtJEmb.cxx:196
 AliAnalysisTaskDeltaPtJEmb.cxx:197
 AliAnalysisTaskDeltaPtJEmb.cxx:198
 AliAnalysisTaskDeltaPtJEmb.cxx:199
 AliAnalysisTaskDeltaPtJEmb.cxx:200
 AliAnalysisTaskDeltaPtJEmb.cxx:201
 AliAnalysisTaskDeltaPtJEmb.cxx:202
 AliAnalysisTaskDeltaPtJEmb.cxx:203
 AliAnalysisTaskDeltaPtJEmb.cxx:204
 AliAnalysisTaskDeltaPtJEmb.cxx:205
 AliAnalysisTaskDeltaPtJEmb.cxx:206
 AliAnalysisTaskDeltaPtJEmb.cxx:207
 AliAnalysisTaskDeltaPtJEmb.cxx:208
 AliAnalysisTaskDeltaPtJEmb.cxx:209
 AliAnalysisTaskDeltaPtJEmb.cxx:210
 AliAnalysisTaskDeltaPtJEmb.cxx:211
 AliAnalysisTaskDeltaPtJEmb.cxx:212
 AliAnalysisTaskDeltaPtJEmb.cxx:213
 AliAnalysisTaskDeltaPtJEmb.cxx:214
 AliAnalysisTaskDeltaPtJEmb.cxx:215
 AliAnalysisTaskDeltaPtJEmb.cxx:216
 AliAnalysisTaskDeltaPtJEmb.cxx:217
 AliAnalysisTaskDeltaPtJEmb.cxx:218
 AliAnalysisTaskDeltaPtJEmb.cxx:219
 AliAnalysisTaskDeltaPtJEmb.cxx:220
 AliAnalysisTaskDeltaPtJEmb.cxx:221
 AliAnalysisTaskDeltaPtJEmb.cxx:222
 AliAnalysisTaskDeltaPtJEmb.cxx:223
 AliAnalysisTaskDeltaPtJEmb.cxx:224
 AliAnalysisTaskDeltaPtJEmb.cxx:225
 AliAnalysisTaskDeltaPtJEmb.cxx:226
 AliAnalysisTaskDeltaPtJEmb.cxx:227
 AliAnalysisTaskDeltaPtJEmb.cxx:228
 AliAnalysisTaskDeltaPtJEmb.cxx:229
 AliAnalysisTaskDeltaPtJEmb.cxx:230
 AliAnalysisTaskDeltaPtJEmb.cxx:231
 AliAnalysisTaskDeltaPtJEmb.cxx:232
 AliAnalysisTaskDeltaPtJEmb.cxx:233
 AliAnalysisTaskDeltaPtJEmb.cxx:234
 AliAnalysisTaskDeltaPtJEmb.cxx:235
 AliAnalysisTaskDeltaPtJEmb.cxx:236
 AliAnalysisTaskDeltaPtJEmb.cxx:237
 AliAnalysisTaskDeltaPtJEmb.cxx:238
 AliAnalysisTaskDeltaPtJEmb.cxx:239
 AliAnalysisTaskDeltaPtJEmb.cxx:240
 AliAnalysisTaskDeltaPtJEmb.cxx:241
 AliAnalysisTaskDeltaPtJEmb.cxx:242
 AliAnalysisTaskDeltaPtJEmb.cxx:243
 AliAnalysisTaskDeltaPtJEmb.cxx:244
 AliAnalysisTaskDeltaPtJEmb.cxx:245
 AliAnalysisTaskDeltaPtJEmb.cxx:246
 AliAnalysisTaskDeltaPtJEmb.cxx:247
 AliAnalysisTaskDeltaPtJEmb.cxx:248
 AliAnalysisTaskDeltaPtJEmb.cxx:249
 AliAnalysisTaskDeltaPtJEmb.cxx:250
 AliAnalysisTaskDeltaPtJEmb.cxx:251
 AliAnalysisTaskDeltaPtJEmb.cxx:252
 AliAnalysisTaskDeltaPtJEmb.cxx:253
 AliAnalysisTaskDeltaPtJEmb.cxx:254
 AliAnalysisTaskDeltaPtJEmb.cxx:255
 AliAnalysisTaskDeltaPtJEmb.cxx:256
 AliAnalysisTaskDeltaPtJEmb.cxx:257
 AliAnalysisTaskDeltaPtJEmb.cxx:258
 AliAnalysisTaskDeltaPtJEmb.cxx:259
 AliAnalysisTaskDeltaPtJEmb.cxx:260
 AliAnalysisTaskDeltaPtJEmb.cxx:261
 AliAnalysisTaskDeltaPtJEmb.cxx:262
 AliAnalysisTaskDeltaPtJEmb.cxx:263
 AliAnalysisTaskDeltaPtJEmb.cxx:264
 AliAnalysisTaskDeltaPtJEmb.cxx:265
 AliAnalysisTaskDeltaPtJEmb.cxx:266
 AliAnalysisTaskDeltaPtJEmb.cxx:267
 AliAnalysisTaskDeltaPtJEmb.cxx:268
 AliAnalysisTaskDeltaPtJEmb.cxx:269
 AliAnalysisTaskDeltaPtJEmb.cxx:270
 AliAnalysisTaskDeltaPtJEmb.cxx:271
 AliAnalysisTaskDeltaPtJEmb.cxx:272
 AliAnalysisTaskDeltaPtJEmb.cxx:273
 AliAnalysisTaskDeltaPtJEmb.cxx:274
 AliAnalysisTaskDeltaPtJEmb.cxx:275
 AliAnalysisTaskDeltaPtJEmb.cxx:276
 AliAnalysisTaskDeltaPtJEmb.cxx:277
 AliAnalysisTaskDeltaPtJEmb.cxx:278
 AliAnalysisTaskDeltaPtJEmb.cxx:279
 AliAnalysisTaskDeltaPtJEmb.cxx:280
 AliAnalysisTaskDeltaPtJEmb.cxx:281
 AliAnalysisTaskDeltaPtJEmb.cxx:282
 AliAnalysisTaskDeltaPtJEmb.cxx:283
 AliAnalysisTaskDeltaPtJEmb.cxx:284
 AliAnalysisTaskDeltaPtJEmb.cxx:285
 AliAnalysisTaskDeltaPtJEmb.cxx:286
 AliAnalysisTaskDeltaPtJEmb.cxx:287
 AliAnalysisTaskDeltaPtJEmb.cxx:288
 AliAnalysisTaskDeltaPtJEmb.cxx:289
 AliAnalysisTaskDeltaPtJEmb.cxx:290
 AliAnalysisTaskDeltaPtJEmb.cxx:291
 AliAnalysisTaskDeltaPtJEmb.cxx:292
 AliAnalysisTaskDeltaPtJEmb.cxx:293
 AliAnalysisTaskDeltaPtJEmb.cxx:294
 AliAnalysisTaskDeltaPtJEmb.cxx:295
 AliAnalysisTaskDeltaPtJEmb.cxx:296
 AliAnalysisTaskDeltaPtJEmb.cxx:297
 AliAnalysisTaskDeltaPtJEmb.cxx:298
 AliAnalysisTaskDeltaPtJEmb.cxx:299
 AliAnalysisTaskDeltaPtJEmb.cxx:300
 AliAnalysisTaskDeltaPtJEmb.cxx:301
 AliAnalysisTaskDeltaPtJEmb.cxx:302
 AliAnalysisTaskDeltaPtJEmb.cxx:303
 AliAnalysisTaskDeltaPtJEmb.cxx:304
 AliAnalysisTaskDeltaPtJEmb.cxx:305
 AliAnalysisTaskDeltaPtJEmb.cxx:306
 AliAnalysisTaskDeltaPtJEmb.cxx:307
 AliAnalysisTaskDeltaPtJEmb.cxx:308
 AliAnalysisTaskDeltaPtJEmb.cxx:309
 AliAnalysisTaskDeltaPtJEmb.cxx:310
 AliAnalysisTaskDeltaPtJEmb.cxx:311
 AliAnalysisTaskDeltaPtJEmb.cxx:312
 AliAnalysisTaskDeltaPtJEmb.cxx:313
 AliAnalysisTaskDeltaPtJEmb.cxx:314
 AliAnalysisTaskDeltaPtJEmb.cxx:315
 AliAnalysisTaskDeltaPtJEmb.cxx:316
 AliAnalysisTaskDeltaPtJEmb.cxx:317
 AliAnalysisTaskDeltaPtJEmb.cxx:318