ROOT logo
// $Id$
//
// Jet embedding from AOD task.
//
// Author: S.Aiola, C.Loizides

#include "AliJetEmbeddingFromAODTask.h"

// C++ standard library
#include <vector>

// ROOT
#include <TFile.h>
#include <TTree.h>
#include <TClonesArray.h>
#include <TObjArray.h>
#include <TObjString.h>
#include <TGrid.h>
#include <TH2C.h>
#include <TList.h>
#include <TStreamerInfo.h>
#include <TRandom.h>
#include <TSystem.h>
#include <TLorentzVector.h>

// AliRoot
#include "AliVEvent.h"
#include "AliAODTrack.h"
#include "AliESDtrack.h"
#include "AliPicoTrack.h"
#include "AliVTrack.h"
#include "AliVCluster.h"
#include "AliVCaloCells.h"
#include "AliAODMCParticle.h"
#include "AliCentrality.h"
#include "AliVHeader.h"
#include "AliVVertex.h"
#include "AliAODHeader.h"
#include "AliFJWrapper.h"
#include "AliLog.h"
#include "AliInputEventHandler.h"
#include "AliNamedString.h"

ClassImp(AliJetEmbeddingFromAODTask)

//________________________________________________________________________
AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask() : 
  AliJetModelBaseTask("AliJetEmbeddingFromAODTask"),
  fFileList(0),
  fRandomAccess(kFALSE),
  fAODTreeName(),
  fAODHeaderName(),
  fAODVertexName(),
  fAODTrackName(),
  fAODClusName(),
  fAODCellsName(),
  fAODMCParticlesName(),
  fMinCentrality(-1),
  fMaxCentrality(-1),
  fTriggerMask(AliVEvent::kAny),
  fZVertexCut(10),
  fMaxVertexDist(999),
  fJetMinPt(0),
  fJetMinEta(-0.5),
  fJetMaxEta(0.5),
  fJetMinPhi(-999),
  fJetMaxPhi(999),
  fJetConstituentMinPt(0),
  fJetRadius(0.4),
  fJetType(0),
  fJetAlgo(1),
  fJetParticleLevel(kTRUE),
  fParticleMinPt(0),
  fParticleMaxPt(0),
  fParticleSelection(0),
  fIncludeNoITS(kFALSE),
  fCutMaxFractionSharedTPCClusters(0.4),
  fUseNegativeLabels(kTRUE),
  fTrackEfficiency(0),
  fIsAODMC(kFALSE),
  fTotalFiles(2050),
  fAttempts(5),
  fEmbedCentrality(kFALSE),
  fEsdTreeMode(kFALSE),
  fCurrentFileID(0),
  fCurrentAODFileID(0),
  fCurrentAODFile(0),
  fPicoTrackVersion(0),
  fCurrentAODTree(0),
  fAODHeader(0),
  fAODVertex(0),
  fAODTracks(0),
  fAODClusters(0),
  fAODCaloCells(0),
  fAODMCParticles(0),
  fCurrentAODEntry(-1),
  fFirstAODEntry(-1),
  fLastAODEntry(-1),
  fAODFilePath(0),
  fHistFileMatching(0),
  fHistAODFileError(0),
  fHistNotEmbedded(0),
  fHistEmbeddingQA(0),
  fHistRejectedEvents(0),
  fEmbeddingCount(0)
{
  // Default constructor.
  SetSuffix("AODEmbedding");
  fAODfilterBits[0] = -1;
  fAODfilterBits[1] = -1;
  fEtaMin = -1;
  fEtaMax = 1;
  fPhiMin = -10;
  fPhiMax = 10;
  fPtMin = 0;
  fPtMax = 1000;
}

//________________________________________________________________________
AliJetEmbeddingFromAODTask::AliJetEmbeddingFromAODTask(const char *name, Bool_t drawqa) : 
  AliJetModelBaseTask(name, drawqa),
  fFileList(0),
  fRandomAccess(kFALSE),
  fAODTreeName("aodTree"),
  fAODHeaderName("header"),
  fAODVertexName("vertices"),
  fAODTrackName("tracks"),
  fAODClusName(""),
  fAODCellsName("emcalCells"),
  fAODMCParticlesName(AliAODMCParticle::StdBranchName()),
  fMinCentrality(-1),
  fMaxCentrality(-1),
  fTriggerMask(AliVEvent::kAny),
  fZVertexCut(10),
  fMaxVertexDist(999),
  fJetMinPt(0),
  fJetMinEta(-0.5),
  fJetMaxEta(0.5),
  fJetMinPhi(-999),
  fJetMaxPhi(999),
  fJetConstituentMinPt(0),
  fJetRadius(0.4),
  fJetType(0),
  fJetAlgo(1),
  fJetParticleLevel(kTRUE),
  fParticleMinPt(0),
  fParticleMaxPt(0),
  fParticleSelection(0),
  fIncludeNoITS(kFALSE),
  fCutMaxFractionSharedTPCClusters(0.4),
  fUseNegativeLabels(kTRUE),
  fTrackEfficiency(0),
  fIsAODMC(kFALSE),
  fTotalFiles(2050),
  fAttempts(5),
  fEmbedCentrality(kFALSE),
  fEsdTreeMode(kFALSE),
  fCurrentFileID(0),
  fCurrentAODFileID(0),
  fCurrentAODFile(0),
  fPicoTrackVersion(0),
  fCurrentAODTree(0),
  fAODHeader(0),
  fAODVertex(0),
  fAODTracks(0),
  fAODClusters(0),
  fAODCaloCells(0),  
  fAODMCParticles(0),
  fCurrentAODEntry(-1),
  fFirstAODEntry(-1),
  fLastAODEntry(-1),
  fAODFilePath(0),
  fHistFileMatching(0),
  fHistAODFileError(0),
  fHistNotEmbedded(0),
  fHistEmbeddingQA(0),
  fHistRejectedEvents(0),
  fEmbeddingCount(0)
{
  // Standard constructor.
  SetSuffix("AODEmbedding");
  fAODfilterBits[0] = -1;
  fAODfilterBits[1] = -1;
  fEtaMin = -1;
  fEtaMax = 1;
  fPhiMin = -10;
  fPhiMax = 10;
  fPtMin = 0;
  fPtMax = 1000;
}

//________________________________________________________________________
AliJetEmbeddingFromAODTask::~AliJetEmbeddingFromAODTask()
{
  // Destructor

  if (fCurrentAODFile) {
    fCurrentAODFile->Close();
    delete fCurrentAODFile;
  }
}

//________________________________________________________________________
void AliJetEmbeddingFromAODTask::UserCreateOutputObjects()
{
  if (!fQAhistos)
    return;

  AliJetModelBaseTask::UserCreateOutputObjects();
  
  fHistFileMatching = new TH2C("fHistFileMatching", "fHistFileMatching", fTotalFiles, -0.5, fTotalFiles - 0.5, fFileList->GetEntriesFast(), -0.5, fFileList->GetEntriesFast() -0.5);
  fHistFileMatching->GetXaxis()->SetTitle("File no. (PYTHIA)");
  fHistFileMatching->GetYaxis()->SetTitle("File no. (Embedded AOD)");
  fHistFileMatching->GetZaxis()->SetTitle("counts");
  fOutput->Add(fHistFileMatching);

  fHistAODFileError = new TH1C("fHistAODFileError", "fHistAODFileError", fFileList->GetEntriesFast(), -0.5, fFileList->GetEntriesFast() -0.5);
  fHistAODFileError->GetXaxis()->SetTitle("File no. (Embedded AOD)");
  fHistAODFileError->GetYaxis()->SetTitle("counts");
  fOutput->Add(fHistAODFileError);

  fHistNotEmbedded = new TH1C("fHistNotEmbedded", "fHistNotEmbedded", fTotalFiles, -0.5, fTotalFiles - 0.5);
  fHistNotEmbedded->GetXaxis()->SetTitle("File no. (PYTHIA)");
  fHistNotEmbedded->GetYaxis()->SetTitle("counts");
  fOutput->Add(fHistNotEmbedded);

  fHistEmbeddingQA = new TH1F("fHistEmbeddingQA", "fHistEmbeddingQA", 2, 0, 2);
  fHistEmbeddingQA->GetXaxis()->SetTitle("Event state");
  fHistEmbeddingQA->GetYaxis()->SetTitle("counts");
  fHistEmbeddingQA->GetXaxis()->SetBinLabel(1, "OK");
  fHistEmbeddingQA->GetXaxis()->SetBinLabel(2, "Not embedded");
  fOutput->Add(fHistEmbeddingQA);

  fHistRejectedEvents = new TH1F("fHistRejectedEvents", "fHistRejectedEvents", 500, -0.5, 499.5);
  fHistRejectedEvents->GetXaxis()->SetTitle("# of rejected events");
  fHistRejectedEvents->GetYaxis()->SetTitle("counts");
  fOutput->Add(fHistRejectedEvents);

  PostData(1, fOutput);
}

//________________________________________________________________________
Bool_t AliJetEmbeddingFromAODTask::UserNotify()
{
  TString path(fInputHandler->GetTree()->GetCurrentFile()->GetPath());
  if (path.EndsWith("/"))
    path.Remove(path.Length()-1);
  path.Remove(path.Last('/'));
  path.Remove(0, path.Last('/')+1);
  if (!path.IsDec()) {
    AliWarning(Form("Could not extract file number from path %s", path.Data()));
    return kTRUE;
  }
  fCurrentFileID = path.Atoi();
  if (!fRandomAccess) {
    fCurrentAODFileID = fFileList->GetEntriesFast() * fCurrentFileID / fTotalFiles-1;
    AliInfo(Form("Start embedding from file ID %d", fCurrentAODFileID));
  }
  return kTRUE;
}

//________________________________________________________________________
Bool_t AliJetEmbeddingFromAODTask::ExecOnce() 
{
  if (fAODTreeName.Contains("aod"))
    fEsdTreeMode = kFALSE;
  else
    fEsdTreeMode = kTRUE;

  fAODFilePath = static_cast<AliNamedString*>(InputEvent()->FindListObject("AODEmbeddingFile"));
  if (!fAODFilePath) {
    fAODFilePath = new AliNamedString("AODEmbeddingFile", "");
    AliDebug(3,"Adding AOD embedding file path object to the event list...");
    InputEvent()->AddObject(fAODFilePath);
  }

  return AliJetModelBaseTask::ExecOnce();
}

//________________________________________________________________________
Bool_t AliJetEmbeddingFromAODTask::OpenNextFile() 
{
  if (fCurrentAODFile) {
    fCurrentAODFile->Close();
    delete fCurrentAODFile;
    fCurrentAODFile = 0;
  }

  Int_t i = 0;

  while ((!fCurrentAODFile || fCurrentAODFile->IsZombie()) && i < fAttempts) {
    if (i > 0 && fHistAODFileError) {
	fHistAODFileError->Fill(fCurrentAODFileID);
    }

    fCurrentAODFile = GetNextFile();
    i++;
  } 

  if (!fCurrentAODFile || fCurrentAODFile->IsZombie()) {
    AliError("Could not open AOD file to embed!");
    return kFALSE;
  }

  const TList *clist = fCurrentAODFile->GetStreamerInfoCache();
  if(clist) {
    TStreamerInfo *cinfo = static_cast<TStreamerInfo*>(clist->FindObject("AliPicoTrack"));
    if(cinfo) 
      fPicoTrackVersion = cinfo->GetClassVersion();
    else
      fPicoTrackVersion = 0;
  }

  fCurrentAODTree = static_cast<TTree*>(fCurrentAODFile->Get(fAODTreeName));
  if (!fCurrentAODTree) {
    AliError(Form("Could not get tree %s from file %s", fAODTreeName.Data(), fCurrentAODFile->GetName()));
    return kFALSE;
  }

  if (!fAODHeaderName.IsNull()) 
    fCurrentAODTree->SetBranchAddress(fAODHeaderName, &fAODHeader);
  
  if (!fAODVertexName.IsNull()) 
    fCurrentAODTree->SetBranchAddress(fAODVertexName, &fAODVertex);
      
  if (!fAODTrackName.IsNull()) 
    fCurrentAODTree->SetBranchAddress(fAODTrackName, &fAODTracks);
  
  if (!fAODClusName.IsNull()) 
    fCurrentAODTree->SetBranchAddress(fAODClusName, &fAODClusters);
  
  if (!fAODCellsName.IsNull()) 
    fCurrentAODTree->SetBranchAddress(fAODCellsName, &fAODCaloCells);
  
  if (!fAODMCParticlesName.IsNull()) 
    fCurrentAODTree->SetBranchAddress(fAODMCParticlesName, &fAODMCParticles);
  
  if (fRandomAccess) {
    fFirstAODEntry = TMath::Nint(gRandom->Rndm()*fCurrentAODTree->GetEntries())-1;
  }
  else {
    fFirstAODEntry = -1;
  }

  fLastAODEntry = fCurrentAODTree->GetEntries();
  fCurrentAODEntry = fFirstAODEntry;

  AliDebug(3,Form("Will start embedding from entry %d", fCurrentAODEntry+1));
  
  if (fHistFileMatching)
    fHistFileMatching->Fill(fCurrentFileID, fCurrentAODFileID-1);

  fEmbeddingCount = 0;
  
  return kTRUE;
}

//________________________________________________________________________
TFile* AliJetEmbeddingFromAODTask::GetNextFile()
{
  if (fRandomAccess) 
    fCurrentAODFileID = TMath::Nint(gRandom->Rndm()*fFileList->GetEntriesFast());
  else
    fCurrentAODFileID++;
  
  if (fCurrentAODFileID >= fFileList->GetEntriesFast()) {
    AliError("No more file in the list!");
    return 0;
  }
  
  TObjString *objFileName = static_cast<TObjString*>(fFileList->At(fCurrentAODFileID));
  TString fileName(objFileName->GetString());

  if (fileName.BeginsWith("alien://") && !gGrid) {
    AliInfo("Trying to connect to AliEn ...");
    TGrid::Connect("alien://");
  }

  TString baseFileName(fileName);
  if (baseFileName.Contains(".zip#")) {
    Ssiz_t pos = baseFileName.Last('#');
    baseFileName.Remove(pos);
  }
  
  if (gSystem->AccessPathName(baseFileName)) {
    AliError(Form("File %s does not exist!", baseFileName.Data()));
    return 0;
  }

  AliDebug(3,Form("Trying to open file %s...", fileName.Data()));
  TFile *file = TFile::Open(fileName);

  if (!file || file->IsZombie()) {
    AliError(Form("Unable to open file: %s!", fileName.Data()));
    return 0;
  }

  return file;
}

//________________________________________________________________________
Bool_t AliJetEmbeddingFromAODTask::GetNextEntry() 
{
  Int_t attempts = -1;

  do {
    if (fCurrentAODEntry+1 >= fLastAODEntry) { // in case it did not start from the first entry, it will go back
      fLastAODEntry = fFirstAODEntry;
      fFirstAODEntry = -1;
      fCurrentAODEntry = -1;
    }
    if (!fCurrentAODFile || !fCurrentAODTree || fCurrentAODEntry+1 >= fLastAODEntry) {
      if (!OpenNextFile()) {
	AliError("Could not open the next file!");
	return kFALSE;
      }
    }

    if (!fCurrentAODTree) {
      AliError("Could not get the tree!");
      return kFALSE;
    }
    
    fCurrentAODEntry++;
    fCurrentAODTree->GetEntry(fCurrentAODEntry);

    attempts++;
    if (attempts == 1000) 
      AliWarning("After 1000 attempts no event has been accepted by the event selection (trigger, centrality...)!");

  } while (!IsAODEventSelected());

  if (fHistRejectedEvents)
    fHistRejectedEvents->Fill(attempts);

  if (!fCurrentAODTree)
    return kFALSE;

  if (!fEsdMode && !fEsdTreeMode && fAODHeader) {
    AliAODHeader *aodHeader = static_cast<AliAODHeader*>(fAODHeader);
    AliAODHeader *evHeader = static_cast<AliAODHeader*>(InputEvent()->GetHeader());
    if (fEmbedCentrality) {
      AliCentrality *cent = aodHeader->GetCentralityP();
      evHeader->SetCentrality(cent);
    }
  }

  fEmbeddingCount++;

  return kTRUE;
}

//________________________________________________________________________
Bool_t AliJetEmbeddingFromAODTask::IsAODEventSelected()
{
  // AOD event selection.

  if (!fEsdTreeMode && fAODHeader) {
    AliAODHeader *aodHeader = static_cast<AliAODHeader*>(fAODHeader);

    // Trigger selection
    if (fTriggerMask != 0) {
      UInt_t offlineTrigger = aodHeader->GetOfflineTrigger();
      if ((offlineTrigger & fTriggerMask) == 0) {
        AliDebug(2,Form("Event rejected due to physics selection. Event trigger mask: %d, trigger mask selection: %d.", 
                        offlineTrigger, fTriggerMask));
        return kFALSE;
      }
    }
    
    // Centrality selection
    if (fMinCentrality >= 0) {
      AliCentrality *cent = aodHeader->GetCentralityP();
      Float_t centVal = cent->GetCentralityPercentile("V0M");
      if (centVal < fMinCentrality || centVal >= fMaxCentrality) {
	AliDebug(2,Form("Event rejected due to centrality selection. Event centrality: %f, centrality range selection: %f to %f", 
			centVal, fMinCentrality, fMaxCentrality));
	return kFALSE;
      }
    }
  }

  // Vertex selection
  if (fAODVertex) {
    Double_t vert[3]={0};
    ((AliVVertex*)fAODVertex->At(0))->GetXYZ(vert);
    if (TMath::Abs(vert[2]) > fZVertexCut) {
      AliDebug(2,Form("Event rejected due to Z vertex selection. Event Z vertex: %f, Z vertex cut: %f", 
		      vert[2], fZVertexCut));
      return kFALSE;
    }
    Double_t dist = TMath::Sqrt((vert[0]-fVertex[0])*(vert[0]-fVertex[0])+(vert[1]-fVertex[1])*(vert[1]-fVertex[1])+(vert[2]-fVertex[2])*(vert[2]-fVertex[2]));
    if (dist > fMaxVertexDist) {
      AliDebug(2,Form("Event rejected because the distance between the current and embedded verteces is > %f. "
		      "Current event vertex (%f, %f, %f), embedded event vertex (%f, %f, %f). Distance = %f", 
		      fMaxVertexDist, fVertex[0], fVertex[1], fVertex[2], vert[0], vert[1], vert[2], dist));
      return kFALSE;
    }
      
  }

  // Particle selection
  if ((fParticleSelection == 1 && FindParticleInRange(fAODTracks)==kFALSE) ||
      (fParticleSelection == 2 && FindParticleInRange(fAODClusters)==kFALSE) ||
      (fParticleSelection == 3 && FindParticleInRange(fAODMCParticles)==kFALSE))
    return kFALSE;

  // Jet selection
  if (fJetMinPt > 0) {
    TLorentzVector jet;

    if (fJetParticleLevel) {
      if (fAODMCParticles)
	jet = GetLeadingJet(fAODMCParticles);
      else {
	AliWarning("Particle level jets selected, but not MC particles found. The jet event selection will be skipped.");
	return kTRUE;
      }
    }
    else {
      if (fAODTracks || fAODClusters) 
	jet = GetLeadingJet(fAODTracks, fAODClusters);
      else {
	AliWarning("Detector level jets selected, but not tracks or clusters found. The jet event selection will be skipped.");
	return kTRUE;
      }
    }
    
    AliDebug(1, Form("Leading jet pt = %f", jet.Pt()));
    if (jet.Pt() < fJetMinPt)
      return kFALSE;
  }

  return kTRUE;
}

//________________________________________________________________________
Bool_t AliJetEmbeddingFromAODTask::FindParticleInRange(TClonesArray *array)
{
  if (!array) return kFALSE;

  if (array->GetClass()->InheritsFrom("AliVParticle")) {
    const Int_t nentries = array->GetEntriesFast();
    for (Int_t i = 0; i < nentries; i++) {
      AliVParticle *part = static_cast<AliVParticle*>(array->At(i));
      if (!part) continue;
      if (part->Pt() > fParticleMinPt && part->Pt() < fParticleMaxPt) return kTRUE;
    }
  }
  else if (array->GetClass()->InheritsFrom("AliVCluster")) {
    const Int_t nentries = array->GetEntriesFast();
    for (Int_t i = 0; i < nentries; i++) {
      AliVCluster *clus = static_cast<AliVCluster*>(array->At(i));
      if (!clus) continue;
      
      TLorentzVector vect;
      Double_t vert[3] = {0,0,0};
      clus->GetMomentum(vect,vert);

      if (vect.Pt() > fParticleMinPt && vect.Pt() < fParticleMaxPt) return kTRUE;
    }
  }
  else {
    AliWarning(Form("Unable to do event selection based on particle pT: %s class type not recognized.",array->GetClass()->GetName()));
  }

  return kFALSE;
}

//________________________________________________________________________
void AliJetEmbeddingFromAODTask::Run() 
{
  if (!GetNextEntry()) {
    if (fHistNotEmbedded)
      fHistNotEmbedded->Fill(fCurrentFileID);
    if (fHistEmbeddingQA)
      fHistEmbeddingQA->Fill("Not embedded", 1);
    AliError("Unable to get the AOD event to embed. Nothing will be embedded.");
    return;
  }

  if (fHistEmbeddingQA)
    fHistEmbeddingQA->Fill("OK", 1);

  fAODFilePath->SetString(fCurrentAODFile->GetName());

  if (fOutMCParticles) {

    if (fCopyArray && fMCParticles)
      CopyMCParticles();

    if (fAODMCParticles) {
      AliDebug(3, Form("%d MC particles will be processed for embedding.", fAODMCParticles->GetEntriesFast()));
      for (Int_t i = 0; i < fAODMCParticles->GetEntriesFast(); i++) {
	AliAODMCParticle *part = static_cast<AliAODMCParticle*>(fAODMCParticles->At(i));
	if (!part) {
	  AliError(Form("Could not find MC particle %d in branch %s of tree %s!", i, fAODMCParticlesName.Data(), fAODTreeName.Data()));
	  continue;
	}
	
	AliDebug(3, Form("Processing MC particle %d with pT = %f, eta = %f, phi = %f", i, part->Pt(), part->Eta(), part->Phi()));
	
	if (!part->IsPhysicalPrimary()) 
	  continue;

	if (part->Pt() < fPtMin || part->Pt() > fPtMax ||
	    part->Eta() < fEtaMin || part->Eta() > fEtaMax ||
	    part->Phi() < fPhiMin || part->Phi() > fPhiMax)
	  continue;
	
	AddMCParticle(part, i);
	AliDebug(3, "Embedded!");
      }
    }
  }

  if (fOutTracks) {

    if (fCopyArray && fTracks)
      CopyTracks();

    AliDebug(3, Form("Start embedding with %d tracks.", fOutTracks->GetEntriesFast()));

    if (fAODTracks) {
      AliDebug(3, Form("%d tracks will be processed for embedding.", fAODTracks->GetEntriesFast()));
      for (Int_t i = 0; i < fAODTracks->GetEntriesFast(); i++) {
	AliVTrack *track = static_cast<AliVTrack*>(fAODTracks->At(i));
	if (!track) {
	  AliError(Form("Could not find track %d in branch %s of tree %s!", i, fAODTrackName.Data(), fAODTreeName.Data()));
	  continue;
	}
	
	AliDebug(3, Form("Processing track %d with pT = %f, eta = %f, phi = %f, label = %d", i, track->Pt(), track->Eta(), track->Phi(), track->GetLabel()));
	
	Int_t type = 0;
	Bool_t isEmc = kFALSE;
	if (!fEsdTreeMode) {
	  AliAODTrack *aodtrack = static_cast<AliAODTrack*>(track);
	  if (aodtrack->TestFilterBit(fAODfilterBits[0])) {
	    type = 0;
	  }
	  else if (aodtrack->TestFilterBit(fAODfilterBits[1])) {
	    if ((aodtrack->GetStatus()&AliESDtrack::kITSrefit)==0) {
	      if (fIncludeNoITS)
		type = 2;
	      else {
		AliDebug(3, "Track not embedded because ITS refit failed.");
		continue;
	      }
	    }
	    else {
	      type = 1;
	    }
	  }
	  else { /*not a good track*/
	    AliDebug(3, "Track not embedded because not an hybrid track.");
	    continue;
	  }
	  if (fCutMaxFractionSharedTPCClusters > 0) {
	    Double_t frac = Double_t(aodtrack->GetTPCnclsS()) / Double_t(aodtrack->GetTPCncls());
	    if (frac > fCutMaxFractionSharedTPCClusters) 
	      continue;
	  }
	  if (TMath::Abs(aodtrack->GetTrackEtaOnEMCal()) < 0.75 && 
	      aodtrack->GetTrackPhiOnEMCal() > 70 * TMath::DegToRad() && 
	      aodtrack->GetTrackPhiOnEMCal() < 190 * TMath::DegToRad())
	    isEmc = kTRUE;
	}
	else if (fPicoTrackVersion > 0) { /*not AOD mode, let's see if it is PicoTrack*/
	  AliPicoTrack *ptrack = dynamic_cast<AliPicoTrack*>(track);
	  if (ptrack) {
	    if (fPicoTrackVersion >= 3)
	      type = ptrack->GetTrackType();
	    else
	      type = ptrack->GetLabel();
	    isEmc = ptrack->IsEMCAL();

	    if (!fIncludeNoITS && type==2) {
	      AliDebug(3, "Track not embedded because ITS refit failed.");
	      continue;
	    }
	  }
	}
	
	if (track->Pt() < fPtMin || track->Pt() > fPtMax ||
	    track->Eta() < fEtaMin || track->Eta() > fEtaMax ||
	    track->Phi() < fPhiMin || track->Phi() > fPhiMax) {
	  AliDebug(3, "Track not embedded because out of limits.");
	  continue;
	}
	
	if (fTrackEfficiency) {
	  Double_t r = gRandom->Rndm();
	  if (fTrackEfficiency->Eval(track->Pt()) < r) {
	    AliDebug(3, "Track not embedded because of artificial inefficiency.");
	    continue;
	  }
	}
	
	Int_t label = 0;
	if (fIsAODMC) {
	  if (fUseNegativeLabels)
	    label = track->GetLabel();
	  else 
	    label = TMath::Abs(track->GetLabel());
	  
	  if (label == 0) 
	    AliDebug(1,Form("%s: Track %d with label==0", GetName(), i));
	}

	AddTrack(track->Pt(), track->Eta(), track->Phi(), type, track->GetTrackEtaOnEMCal(), track->GetTrackPhiOnEMCal(), track->GetTrackPtOnEMCal(), isEmc, label, track->Charge());
	AliDebug(3, "Track embedded!");
      }
    }
  }

  if (fOutClusters) {

    if (fCopyArray && fClusters)
      CopyClusters();

    if (fAODClusters) {
      for (Int_t i = 0; i < fAODClusters->GetEntriesFast(); i++) {
	AliVCluster *clus = static_cast<AliVCluster*>(fAODClusters->At(i));
	if (!clus) {
	  AliError(Form("Could not find cluster %d in branch %s of tree %s!", i, fAODClusName.Data(), fAODTreeName.Data()));
	  continue;
	}

	if (!clus->IsEMCAL())
	  continue;

	TLorentzVector vect;
	Double_t vert[3] = {0,0,0};
	clus->GetMomentum(vect,vert);

	if (vect.Pt() < fPtMin || vect.Pt() > fPtMax ||
	    vect.Eta() < fEtaMin || vect.Eta() > fEtaMax ||
	    vect.Phi() < fPhiMin || vect.Phi() > fPhiMax)
	  continue;
	
	Int_t label = 0;
	if (fIsAODMC) {
	  label = clus->GetLabel();
	  if (label <= 0) 
	    AliDebug(1,Form("%s: Clus %d with label<=0", GetName(), i));
	}
	AddCluster(clus);
      }
    }
  }

  if (fOutCaloCells) {

    Double_t totalEnergy = 0;
    Int_t totalCells = 0;

    if (fCaloCells)
      totalCells += fCaloCells->GetNumberOfCells();
    if (fAODCaloCells)
      totalCells += fAODCaloCells->GetNumberOfCells();

    SetNumberOfOutCells(totalCells);

    if (fCaloCells)
      CopyCells();

    if (fAODCaloCells) {
      for (Short_t i = 0; i < fAODCaloCells->GetNumberOfCells(); i++) {
	Int_t mclabel = 0;
	Double_t efrac = 0.;
	Double_t time = -1;
	Short_t cellNum = -1;
	Double_t amp = -1;
	
	fAODCaloCells->GetCell(i, cellNum, amp, time, mclabel, efrac);

	if (fIsAODMC) {
	  if (mclabel <= 0) 
	    AliDebug(1,Form("%s: Cell %d with label<=0", GetName(), i));
	}
	else {
	  mclabel = 0;
	}

	AliDebug(2,Form("Adding cell with amplitude %f, absolute ID %d, time %f, mc label %d", amp, cellNum, time, mclabel));
	AddCell(amp, cellNum, time, mclabel);
	totalEnergy += amp;
      }
    }
    AliDebug(2,Form("Added cells = %d (energy = %f), total cells = %d", fAddedCells, totalEnergy, totalCells));
  }
}

//________________________________________________________________________
TLorentzVector AliJetEmbeddingFromAODTask::GetLeadingJet(TClonesArray *tracks, TClonesArray *clusters)
{
  TString name("kt");
  fastjet::JetAlgorithm jalgo(fastjet::kt_algorithm);
  if (fJetAlgo == 1) {
    name  = "antikt";
    jalgo = fastjet::antikt_algorithm;
  }

  // setup fj wrapper
  AliFJWrapper fjw(name, name);
  fjw.SetAreaType(fastjet::active_area_explicit_ghosts);
  fjw.SetGhostArea(1);  // set a very large ghost area to speed up jet finding
  fjw.SetR(fJetRadius);
  fjw.SetAlgorithm(jalgo);  
  fjw.SetMaxRap(1);
  fjw.Clear();

  if (tracks) {
    const Int_t Ntracks = tracks->GetEntries();
    for (Int_t iTracks = 0; iTracks < Ntracks; ++iTracks) {
      AliVParticle *t = static_cast<AliVParticle*>(tracks->At(iTracks));
      if (!t)
        continue;

      AliAODMCParticle *aodmcpart = dynamic_cast<AliAODMCParticle*>(t);
      if (aodmcpart && !aodmcpart->IsPhysicalPrimary())
	continue;
      
      if ((fJetType == 1 && t->Charge() == 0) ||
	  (fJetType == 2 && t->Charge() != 0))
	continue;

      if (t->Pt() < fJetConstituentMinPt)
	continue;

      fjw.AddInputVector(t->Px(), t->Py(), t->Pz(), t->P(), iTracks + 100);  
    }
  }

  if (clusters && fJetType != 1) {
    Double_t vert[3]={0};
    if (fAODVertex) 
      ((AliVVertex*)fAODVertex->At(0))->GetXYZ(vert);

    const Int_t Nclus = clusters->GetEntries();
    for (Int_t iClus = 0; iClus < Nclus; ++iClus) {
      AliVCluster *c = static_cast<AliVCluster*>(clusters->At(iClus));
      if (!c)
	continue;

      if (!c->IsEMCAL())
	continue;
      
      TLorentzVector nP;
      c->GetMomentum(nP, vert);

      if (nP.Pt() < fJetConstituentMinPt)
	continue;

      fjw.AddInputVector(nP.Px(), nP.Py(), nP.Pz(), nP.P(), -iClus - 100);
    }
  }
  
  // run jet finder
  fjw.Run();

  std::vector<fastjet::PseudoJet> jets_incl = fjw.GetInclusiveJets();
  AliDebug(1,Form("%d jets found", (Int_t)jets_incl.size()));

  TLorentzVector jet;

  Int_t njets = jets_incl.size();

  if (njets > 0) {
    //std::vector<fastjet::PseudoJet> jets_incl_sorted = fastjet::sorted_by_pt(jets_incl);
    for (Int_t i = 0; i < njets; i++) {
      if (jet.Pt() >= jets_incl[i].perp())
	continue;
      if (jets_incl[i].eta() < fJetMinEta || jets_incl[i].eta() > fJetMaxEta || jets_incl[i].phi() < fJetMinPhi || jets_incl[i].phi() > fJetMaxPhi)
	continue;
      jet.SetPxPyPzE(jets_incl[i].px(), jets_incl[i].py(), jets_incl[i].pz(), jets_incl[i].E());
    }
  }

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