ROOT logo
//
// Emcal jet finder task.
//
// Authors: C.Loizides, S.Aiola, M. Verweij

#include <vector>
#include "AliEmcalJetTask.h"

#include <TChain.h>
#include <TClonesArray.h>
#include <TList.h>
#include <TLorentzVector.h>
#include <TMath.h>
#include <TRandom3.h>

#include "AliAnalysisManager.h"
#include "AliCentrality.h"
#include "AliEMCALGeometry.h"
#include "AliESDEvent.h"
#include "AliEmcalJet.h"
#include "AliEmcalParticle.h"
#include "AliFJWrapper.h"
#include "AliMCEvent.h"
#include "AliVCluster.h"
#include "AliVEvent.h"
#include "AliVParticle.h"
#include "AliEmcalJetUtility.h"

using std::cout;
using std::endl;
using std::cerr;

ClassImp(AliEmcalJetTask)

//________________________________________________________________________
AliEmcalJetTask::AliEmcalJetTask() :
  AliAnalysisTaskSE("AliEmcalJetTask"),
  fTracksName("Tracks"),
  fCaloName("CaloClusters"),
  fJetsName("Jets"),
  fJetType(kAKT|kFullJet|kRX1Jet),
  fMinLabelTracks(-kMaxInt),
  fMaxLabelTracks(kMaxInt),
  fMinLabelClusters(-kMaxInt),
  fMaxLabelClusters(kMaxInt),
  fMinMCLabel(0),
  fRadius(0.4),
  fMinJetTrackPt(0.15),
  fMinJetClusPt(0.15),
  fPhiMin(0),
  fPhiMax(TMath::TwoPi()),
  fEtaMin(-0.9),
  fEtaMax(+0.9),
  fMinJetArea(0.001),
  fMinJetPt(1.0),
  fJetPhiMin(-10),
  fJetPhiMax(+10),
  fJetEtaMin(-1),
  fJetEtaMax(+1),
  fGhostArea(0.005),
  fRecombScheme(fastjet::pt_scheme),
  fTrackEfficiency(1.),
  fMCFlag(0),
  fGeneratorIndex(-1),
  fUtilities(0),
  fLocked(0),
  fIsInit(0),
  fIsPSelSet(0),
  fIsEmcPart(0),
  fLegacyMode(kFALSE),
  fGeom(0),
  fJets(0),
  fEvent(0),
  fTracks(0),
  fClus(0),
  fFastJetWrapper("AliEmcalJetTask","AliEmcalJetTask")
{
  // Default constructor.

  fVertex[0] = 0.;
  fVertex[1] = 0.;
  fVertex[2] = 0.;
}

//________________________________________________________________________
AliEmcalJetTask::AliEmcalJetTask(const char *name) :
  AliAnalysisTaskSE(name),
  fTracksName("Tracks"),
  fCaloName("CaloClusters"),
  fJetsName("Jets"),
  fJetType(kAKT|kFullJet|kRX1Jet),
  fMinLabelTracks(-kMaxInt),
  fMaxLabelTracks(kMaxInt),
  fMinLabelClusters(-kMaxInt),
  fMaxLabelClusters(kMaxInt),
  fMinMCLabel(0),
  fRadius(0.4),
  fMinJetTrackPt(0.15),
  fMinJetClusPt(0.15),
  fPhiMin(0),
  fPhiMax(TMath::TwoPi()),
  fEtaMin(-0.9),
  fEtaMax(+0.9),
  fMinJetArea(0.001),
  fMinJetPt(1.0),
  fJetPhiMin(-10),
  fJetPhiMax(+10),
  fJetEtaMin(-1),
  fJetEtaMax(+1),
  fGhostArea(0.005),
  fRecombScheme(fastjet::pt_scheme),
  fTrackEfficiency(1.),
  fMCFlag(0),
  fGeneratorIndex(-1),
  fUtilities(0),
  fLocked(0),
  fIsInit(0),
  fIsPSelSet(0),
  fIsEmcPart(0),
  fLegacyMode(kFALSE),
  fGeom(0),
  fJets(0),
  fEvent(0),
  fTracks(0),
  fClus(0),
  fFastJetWrapper(name,name)
{
  // Standard constructor.

  fBranchNames="ESD:AliESDRun.,AliESDHeader.,PrimaryVertex.";

  fVertex[0] = 0.;
  fVertex[1] = 0.;
  fVertex[2] = 0.;
}

//________________________________________________________________________
AliEmcalJetTask::~AliEmcalJetTask()
{
  // Destructor
}

//________________________________________________________________________
AliEmcalJetUtility* AliEmcalJetTask::AddUtility(AliEmcalJetUtility* utility)
{
  // Addition of utilities.

  if (!fUtilities) fUtilities = new TObjArray();
  if (fUtilities->FindObject(utility)) {
     Error("AddSupply", "Jet utility %s already connected.", utility->GetName());
     return utility;
  }   
  fUtilities->Add(utility);
  utility->SetJetTask(this);

  return utility;
}

//________________________________________________________________________
void AliEmcalJetTask::InitUtilities()
{
  TIter next(fUtilities);
  AliEmcalJetUtility *utility = 0;
  while ((utility=static_cast<AliEmcalJetUtility*>(next()))) utility->Init();
}

//________________________________________________________________________
void AliEmcalJetTask::PrepareUtilities()
{
  TIter next(fUtilities);
  AliEmcalJetUtility *utility = 0;
  while ((utility=static_cast<AliEmcalJetUtility*>(next()))) utility->Prepare(fFastJetWrapper);
}

//________________________________________________________________________
void AliEmcalJetTask::ExecuteUtilities(AliEmcalJet* jet, Int_t ij)
{
  TIter next(fUtilities);
  AliEmcalJetUtility *utility = 0;
  while ((utility=static_cast<AliEmcalJetUtility*>(next()))) utility->ProcessJet(jet, ij, fFastJetWrapper);
}

//________________________________________________________________________
void AliEmcalJetTask::TerminateUtilities()
{
  TIter next(fUtilities);
  AliEmcalJetUtility *utility = 0;
  while ((utility=static_cast<AliEmcalJetUtility*>(next()))) utility->Terminate(fFastJetWrapper);
}

//________________________________________________________________________
void AliEmcalJetTask::UserCreateOutputObjects()
{
  // Create user objects.
}

//________________________________________________________________________
void AliEmcalJetTask::UserExec(Option_t *)
{
  // Main loop, called for each event.
  if (!fIsInit) {
    if (!DoInit())
      return;
    fIsInit = kTRUE;
  }

  // clear the jet array (normally a null operation)
  fJets->Delete();

  // get primary vertex
  if(fEvent->GetPrimaryVertex()) fEvent->GetPrimaryVertex()->GetXYZ(fVertex);

  FindJets();

  FillJetBranch();
}

//________________________________________________________________________
void AliEmcalJetTask::FindJets()
{
  // Find jets.

  if (!fTracks && !fClus){
    AliError("No tracks or clusters, returning.");
    return;
  }

  fFastJetWrapper.Clear();

  AliDebug(2,Form("Jet type = %d", fJetType));

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

      if (!t) continue;

      if (t->Pt() < fMinJetTrackPt) continue;
      Double_t eta = t->Eta();
      Double_t phi = t->Phi();
      if ((eta<fEtaMin) || (eta>fEtaMax) ||
          (phi<fPhiMin) || (phi>fPhiMax))
        continue;

      if (((fJetType & kChargedJet) != 0) && (t->Charge() == 0)) {
        AliDebug(2,Form("Skipping track %d because it is neutral.", iTracks));
        continue;
      }

      if (((fJetType & kNeutralJet) != 0) && (t->Charge() != 0)) {
        AliDebug(2,Form("Skipping track %d because it is charged.", iTracks));
        continue;
      }
      
      Int_t lab = TMath::Abs(t->GetLabel());
      if (lab < fMinLabelTracks || lab > fMaxLabelTracks) {
        AliDebug(2,Form("Skipping track %d because label %d is not in range (%d, %d)", iTracks, lab, fMinLabelTracks, fMaxLabelTracks));
        continue;
      }

      if ((t->GetFlag() & fMCFlag) != fMCFlag) {
	AliDebug(2,Form("Skipping track %d because it does not match the MC flags", iTracks));
	continue;
      }

      if (fGeneratorIndex >= 0 && t->GetGeneratorIndex() != fGeneratorIndex) {
	AliDebug(2,Form("Skipping track %d because it does not match the MC generator index", iTracks));
	continue;
      }

      // artificial inefficiency
      if (fTrackEfficiency < 1.) {
	Double_t rnd = gRandom->Rndm();
	if (fTrackEfficiency < rnd) {
	  AliDebug(2,Form("Track %d rejected due to artificial tracking inefficiency", iTracks));
	  continue;
	}
      }

      // offset of 100 for consistency with cluster ids
      AliDebug(2,Form("Track %d accepted (label = %d, pt = %f)", iTracks, lab, t->Pt()));
      fFastJetWrapper.AddInputVector(t->Px(), t->Py(), t->Pz(), t->E(), iTracks + 100);
    }
  }

  if (fClus) {
    const Int_t Nclus = fClus->GetEntries();
    for (Int_t iClus = 0; iClus < Nclus; ++iClus) {
      AliVCluster *c = 0;
      Double_t cEta=0,cPhi=0,cPt=0;
      Double_t cPx=0,cPy=0,cPz=0;
      if (fIsEmcPart) {
	AliEmcalParticle *ep = static_cast<AliEmcalParticle*>(fClus->At(iClus));
	if (!ep) continue;
	c = ep->GetCluster();
	if (!c) continue;

	cEta = ep->Eta();
	cPhi = ep->Phi();
	cPt  = ep->Pt();
	cPx  = ep->Px();
	cPy  = ep->Py();
	cPz  = ep->Pz();
      } 
      else {
	c = static_cast<AliVCluster*>(fClus->At(iClus));
	if (!c) continue;

	TLorentzVector nP;
	c->GetMomentum(nP, fVertex);
	cEta = nP.Eta();
	cPhi = nP.Phi();
	cPt  = nP.Pt();
	cPx  = nP.Px();
	cPy  = nP.Py();
	cPz  = nP.Pz();
      }

      if (!c->IsEMCAL()) continue;
      if (cPt < fMinJetClusPt) continue;
      if ((cEta<fEtaMin) || (cEta>fEtaMax) ||
	  (cPhi<fPhiMin) || (cPhi>fPhiMax))
	continue;

      Int_t lab = TMath::Abs(c->GetLabel());
      if (lab < fMinLabelClusters || lab > fMaxLabelClusters) {
        AliDebug(2,Form("Skipping cluster %d because label %d is not in range (%d, %d)", iClus, lab, fMinLabelClusters, fMaxLabelClusters));
        continue;
      }

      // offset of 100 to skip ghost particles uid = -1
      AliDebug(2,Form("Cluster %d accepted (label = %d)", iClus, c->GetLabel()));
      Double_t e = TMath::Sqrt(cPx*cPx+cPy*cPy+cPz*cPz);
      fFastJetWrapper.AddInputVector(cPx, cPy, cPz, e, -iClus - 100);
    }
  }

  // run jet finder
  fFastJetWrapper.Run();
}

//________________________________________________________________________
void AliEmcalJetTask::FillJetBranch()
{
  // Fill jet branch with fastjet jets.

  PrepareUtilities();

  // loop over fastjet jets
  std::vector<fastjet::PseudoJet> jets_incl = fFastJetWrapper.GetInclusiveJets();
  // sort jets according to jet pt
  static Int_t indexes[9999] = {-1};
  GetSortedArray(indexes, jets_incl);

  AliDebug(1,Form("%d jets found", (Int_t)jets_incl.size()));
  for (UInt_t ijet = 0, jetCount = 0; ijet < jets_incl.size(); ++ijet) {
    Int_t ij = indexes[ijet];
    AliDebug(3,Form("Jet pt = %f, area = %f", jets_incl[ij].perp(), fFastJetWrapper.GetJetArea(ij)));

    if (jets_incl[ij].perp() < fMinJetPt) continue;
    if (fFastJetWrapper.GetJetArea(ij) < fMinJetArea) continue;
    if ((jets_incl[ij].eta() < fJetEtaMin) || (jets_incl[ij].eta() > fJetEtaMax) ||
	(jets_incl[ij].phi() < fJetPhiMin) || (jets_incl[ij].phi() > fJetPhiMax))
      continue;

    AliEmcalJet *jet = new ((*fJets)[jetCount])
      AliEmcalJet(jets_incl[ij].perp(), jets_incl[ij].eta(), jets_incl[ij].phi(), jets_incl[ij].m());
    jet->SetLabel(ij);

    fastjet::PseudoJet area(fFastJetWrapper.GetJetAreaVector(ij));
    jet->SetArea(area.perp());
    jet->SetAreaEta(area.eta());
    jet->SetAreaPhi(area.phi());
    jet->SetAreaE(area.E());

    // Fill constituent info
    std::vector<fastjet::PseudoJet> constituents(fFastJetWrapper.GetJetConstituents(ij));
    FillJetConstituents(jet, constituents, fTracks, fClus, constituents);

    if (fGeom) {
      if ((jet->Phi() > fGeom->GetArm1PhiMin() * TMath::DegToRad()) &&
          (jet->Phi() < fGeom->GetArm1PhiMax() * TMath::DegToRad()) &&
          (jet->Eta() > fGeom->GetArm1EtaMin()) &&
          (jet->Eta() < fGeom->GetArm1EtaMax()))
        jet->SetAxisInEmcal(kTRUE);
    }

    ExecuteUtilities(jet, ij);

    AliDebug(2,Form("Added jet n. %d, pt = %f, area = %f, constituents = %d", jetCount, jet->Pt(), jet->Area(), jet->GetNumberOfConstituents()));
    jetCount++;
  }

  TerminateUtilities();
}

//________________________________________________________________________
Bool_t AliEmcalJetTask::GetSortedArray(Int_t indexes[], std::vector<fastjet::PseudoJet> array) const
{
  // Get the leading jets.

  static Float_t pt[9999] = {0};

  const Int_t n = (Int_t)array.size();

  if (n < 1)
    return kFALSE;

  for (Int_t i = 0; i < n; i++)
    pt[i] = array[i].perp();

  TMath::Sort(n, pt, indexes);

  return kTRUE;
}

//________________________________________________________________________
Bool_t AliEmcalJetTask::DoInit()
{
  // Init. Return true if successful.

  if (fTrackEfficiency < 1.) {
    if (gRandom) delete gRandom;
    gRandom = new TRandom3(0);
  }

  // get geometry
  fGeom = AliEMCALGeometry::GetInstance();
  if (!fGeom) {
    AliWarning(Form("%s: Can not create EMCal geometry, some features will not work...", GetName()));
  }

  // get input collections
  AliAnalysisManager *am = AliAnalysisManager::GetAnalysisManager();

  // get the event
  fEvent = InputEvent();
  if (!fEvent) {
    AliError(Form("%s: Could not retrieve event! Returning", GetName()));
    return 0;
  }

  if (fTracksName == "Tracks")
    am->LoadBranch("Tracks");
  if (!fTracks && !fTracksName.IsNull()) {
    fTracks = dynamic_cast<TClonesArray*>(fEvent->FindListObject(fTracksName));
    if (!fTracks) {
      AliError(Form("%s: Pointer to tracks %s == 0", GetName(), fTracksName.Data()));
      return 0;
    }
  }

  if (fCaloName == "CaloClusters")
    am->LoadBranch("CaloClusters");
  if (!fClus && !fCaloName.IsNull()) {
    fClus = dynamic_cast<TClonesArray*>(fEvent->FindListObject(fCaloName));
    if (!fClus) {
      AliError(Form("%s: Pointer to clus %s == 0", GetName(), fCaloName.Data()));
      return 0;
    }
  }
  if (fClus) {
    TClass cls(fClus->GetClass()->GetName());
    if (cls.InheritsFrom("AliEmcalParticle"))
      fIsEmcPart = 1;
  }

  // add jets to event if not yet there
  if (!(fEvent->FindListObject(fJetsName))) {
    fJets = new TClonesArray("AliEmcalJet");
    fJets->SetName(fJetsName);
    fEvent->AddObject(fJets);
  }
  else {
    AliError(Form("%s: Object with name %s already in event! Returning", GetName(), fJetsName.Data()));
    return 0;
  }

  TString name("kt");
  fastjet::JetAlgorithm jalgo(fastjet::kt_algorithm);
  if ((fJetType & kAKT) != 0) {
    name  = "antikt";
    jalgo = fastjet::antikt_algorithm;
    AliDebug(1,"Using AKT algorithm");
  }
  else {
    AliDebug(1,"Using KT algorithm");
  }

  if ((fJetType & kR020Jet) != 0)
    fRadius = 0.2;
  else if ((fJetType & kR030Jet) != 0)
    fRadius = 0.3;
  else if ((fJetType & kR040Jet) != 0)
    fRadius = 0.4;

  // setup fj wrapper
  fFastJetWrapper.SetName(name);
  fFastJetWrapper.SetTitle(name);
  fFastJetWrapper.SetAreaType(fastjet::active_area_explicit_ghosts);
  fFastJetWrapper.SetGhostArea(fGhostArea);
  fFastJetWrapper.SetR(fRadius);
  fFastJetWrapper.SetAlgorithm(jalgo);
  fFastJetWrapper.SetRecombScheme(static_cast<fastjet::RecombinationScheme>(fRecombScheme));
  fFastJetWrapper.SetMaxRap(fEtaMax);

  // setting legacy mode
  if (fLegacyMode) {
    fFastJetWrapper.SetLegacyMode(kTRUE);
  }

  InitUtilities();

  return kTRUE;
}

//___________________________________________________________________________________________________________________
void AliEmcalJetTask::FillJetConstituents(AliEmcalJet *jet, std::vector<fastjet::PseudoJet>& constituents, TClonesArray *tracks, TClonesArray *clusters,
                                          std::vector<fastjet::PseudoJet>& constituents_unsub, Int_t flag, TClonesArray *particles_sub)
{
  Int_t nt            = 0;
  Int_t nc            = 0;
  Double_t neutralE   = 0.;
  Double_t maxCh      = 0.;
  Double_t maxNe      = 0.;
  Int_t gall          = 0;
  Int_t gemc          = 0;
  Int_t cemc          = 0;
  Int_t ncharged      = 0;
  Int_t nneutral      = 0;
  Double_t mcpt       = 0.;
  Double_t emcpt      = 0.;

  Int_t uid   = -1;

  jet->SetNumberOfTracks(constituents.size());
  jet->SetNumberOfClusters(constituents.size());

  for (UInt_t ic = 0; ic < constituents.size(); ++ic) {

    if (flag == 0) uid = constituents[ic].user_index();
    else uid = GetIndexSub(constituents[ic].phi(), constituents_unsub);

    AliDebug(3,Form("Processing constituent %d", uid));
    if (uid == -1) { //ghost particle
      ++gall;
      if (fGeom) {
        Double_t gphi = constituents[ic].phi();
        if (gphi < 0) gphi += TMath::TwoPi();
        gphi *= TMath::RadToDeg();
        Double_t geta = constituents[ic].eta();
        if ((gphi > fGeom->GetArm1PhiMin()) && (gphi < fGeom->GetArm1PhiMax()) &&
            (geta > fGeom->GetArm1EtaMin()) && (geta < fGeom->GetArm1EtaMax()))
          ++gemc;
      }
    }	
    else if ((uid >= 100) && tracks) { // track constituent
      Int_t tid = uid - 100;
      AliVParticle *t = static_cast<AliVParticle*>(tracks->At(tid));
      if (!t) {
        AliError(Form("Could not find track %d",tid));
        continue;
      }

      Double_t cEta = t->Eta();
      Double_t cPhi = t->Phi();
      Double_t cPt  = t->Pt();
      Double_t cP   = t->P();
      if (t->Charge() == 0) {
        neutralE += cP;
        ++nneutral;
        if (cPt > maxNe) maxNe = cPt;
      } else {
        ++ncharged;
        if (cPt > maxCh) maxCh = cPt;
      }

      // check if MC particle
      if (TMath::Abs(t->GetLabel()) > fMinMCLabel) mcpt += cPt;

      if (fGeom) {
        if (cPhi < 0) cPhi += TMath::TwoPi();
        cPhi *= TMath::RadToDeg();
        if ((cPhi > fGeom->GetArm1PhiMin()) && (cPhi < fGeom->GetArm1PhiMax()) &&
            (cEta > fGeom->GetArm1EtaMin()) && (cEta < fGeom->GetArm1EtaMax())) {
          emcpt += cPt;
          ++cemc;
        }
      }

      if (flag == 0 || particles_sub == 0) {
        jet->AddTrackAt(tid, nt);
      }
      else {
        Int_t part_sub_id = particles_sub->GetEntriesFast();
        AliEmcalParticle* part_sub = new ((*particles_sub)[part_sub_id]) AliEmcalParticle(t);
        part_sub->SetPt(constituents[ic].perp());
        jet->AddTrackAt(part_sub_id, nt);
      }

      ++nt;
    } 
    else if ((uid <= -100) && clusters) { // cluster constituent
      Int_t cid = -uid - 100;
      AliVCluster *c = 0;
      Double_t cEta=0,cPhi=0,cPt=0,cP=0;
      if (fIsEmcPart) {
        AliEmcalParticle *ep = static_cast<AliEmcalParticle*>(fClus->At(cid));
        if (!ep) continue;
        c = ep->GetCluster();
        if (!c) continue;

        cEta = ep->Eta();
        cPhi = ep->Phi();
        cPt  = ep->Pt();
        cP   = ep->P();
      } 
      else {
        c = static_cast<AliVCluster*>(fClus->At(cid));
        if (!c) continue;

        TLorentzVector nP;
        c->GetMomentum(nP, fVertex);
        cEta = nP.Eta();
        cPhi = nP.Phi();
        cPt  = nP.Pt();
        cP   = nP.P();
      }

      neutralE += cP;
      if (cPt > maxNe) maxNe = cPt;

      // MC particle
      if (TMath::Abs(c->GetLabel()) > fMinMCLabel) mcpt += c->GetMCEnergyFraction() > 1e-6 ? cPt * c->GetMCEnergyFraction() : cPt;

      if (fGeom) {
        if (cPhi<0) cPhi += TMath::TwoPi();
        cPhi *= TMath::RadToDeg();
        if ((cPhi > fGeom->GetArm1PhiMin()) && (cPhi < fGeom->GetArm1PhiMax()) &&
            (cEta > fGeom->GetArm1EtaMin()) && (cEta < fGeom->GetArm1EtaMax())) {
          emcpt += cPt;
          ++cemc;
        }
      }

      if (flag == 0 || particles_sub == 0) {
        jet->AddClusterAt(cid, nc);
      }
      else {
        Int_t part_sub_id = particles_sub->GetEntriesFast();
        AliEmcalParticle* part_sub = new ((*particles_sub)[part_sub_id]) AliEmcalParticle(c);
        part_sub->SetPt(constituents[ic].perp());
        jet->AddTrackAt(part_sub_id, nt);
      }

      ++nc;
      ++nneutral;
    } 
    else {
      AliError(Form("%s: No logical way to end up here.", GetName()));
      continue;
    }
  }

  jet->SetNumberOfTracks(nt);
  jet->SetNumberOfClusters(nc);
  jet->SetNEF(neutralE / jet->E());
  jet->SetMaxChargedPt(maxCh);
  jet->SetMaxNeutralPt(maxNe);
  if (gall > 0) jet->SetAreaEmc(jet->Area() * gemc / gall);
  else jet->SetAreaEmc(-1);
  jet->SetNEmc(cemc);
  jet->SetNumberOfCharged(ncharged);
  jet->SetNumberOfNeutrals(nneutral);
  jet->SetMCPt(mcpt);
  jet->SetPtEmc(emcpt);
  jet->SortConstituents();
}

//______________________________________________________________________________________
Int_t AliEmcalJetTask::GetIndexSub(Double_t phi_sub, std::vector<fastjet::PseudoJet>& constituents_unsub) 
{
  for (UInt_t ii = 0; ii < constituents_unsub.size(); ii++) {
    Double_t phi_unsub = constituents_unsub[ii].phi();
    if (phi_sub == phi_unsub) return constituents_unsub[ii].user_index();
  }

  return -1;
}
 AliEmcalJetTask.cxx:1
 AliEmcalJetTask.cxx:2
 AliEmcalJetTask.cxx:3
 AliEmcalJetTask.cxx:4
 AliEmcalJetTask.cxx:5
 AliEmcalJetTask.cxx:6
 AliEmcalJetTask.cxx:7
 AliEmcalJetTask.cxx:8
 AliEmcalJetTask.cxx:9
 AliEmcalJetTask.cxx:10
 AliEmcalJetTask.cxx:11
 AliEmcalJetTask.cxx:12
 AliEmcalJetTask.cxx:13
 AliEmcalJetTask.cxx:14
 AliEmcalJetTask.cxx:15
 AliEmcalJetTask.cxx:16
 AliEmcalJetTask.cxx:17
 AliEmcalJetTask.cxx:18
 AliEmcalJetTask.cxx:19
 AliEmcalJetTask.cxx:20
 AliEmcalJetTask.cxx:21
 AliEmcalJetTask.cxx:22
 AliEmcalJetTask.cxx:23
 AliEmcalJetTask.cxx:24
 AliEmcalJetTask.cxx:25
 AliEmcalJetTask.cxx:26
 AliEmcalJetTask.cxx:27
 AliEmcalJetTask.cxx:28
 AliEmcalJetTask.cxx:29
 AliEmcalJetTask.cxx:30
 AliEmcalJetTask.cxx:31
 AliEmcalJetTask.cxx:32
 AliEmcalJetTask.cxx:33
 AliEmcalJetTask.cxx:34
 AliEmcalJetTask.cxx:35
 AliEmcalJetTask.cxx:36
 AliEmcalJetTask.cxx:37
 AliEmcalJetTask.cxx:38
 AliEmcalJetTask.cxx:39
 AliEmcalJetTask.cxx:40
 AliEmcalJetTask.cxx:41
 AliEmcalJetTask.cxx:42
 AliEmcalJetTask.cxx:43
 AliEmcalJetTask.cxx:44
 AliEmcalJetTask.cxx:45
 AliEmcalJetTask.cxx:46
 AliEmcalJetTask.cxx:47
 AliEmcalJetTask.cxx:48
 AliEmcalJetTask.cxx:49
 AliEmcalJetTask.cxx:50
 AliEmcalJetTask.cxx:51
 AliEmcalJetTask.cxx:52
 AliEmcalJetTask.cxx:53
 AliEmcalJetTask.cxx:54
 AliEmcalJetTask.cxx:55
 AliEmcalJetTask.cxx:56
 AliEmcalJetTask.cxx:57
 AliEmcalJetTask.cxx:58
 AliEmcalJetTask.cxx:59
 AliEmcalJetTask.cxx:60
 AliEmcalJetTask.cxx:61
 AliEmcalJetTask.cxx:62
 AliEmcalJetTask.cxx:63
 AliEmcalJetTask.cxx:64
 AliEmcalJetTask.cxx:65
 AliEmcalJetTask.cxx:66
 AliEmcalJetTask.cxx:67
 AliEmcalJetTask.cxx:68
 AliEmcalJetTask.cxx:69
 AliEmcalJetTask.cxx:70
 AliEmcalJetTask.cxx:71
 AliEmcalJetTask.cxx:72
 AliEmcalJetTask.cxx:73
 AliEmcalJetTask.cxx:74
 AliEmcalJetTask.cxx:75
 AliEmcalJetTask.cxx:76
 AliEmcalJetTask.cxx:77
 AliEmcalJetTask.cxx:78
 AliEmcalJetTask.cxx:79
 AliEmcalJetTask.cxx:80
 AliEmcalJetTask.cxx:81
 AliEmcalJetTask.cxx:82
 AliEmcalJetTask.cxx:83
 AliEmcalJetTask.cxx:84
 AliEmcalJetTask.cxx:85
 AliEmcalJetTask.cxx:86
 AliEmcalJetTask.cxx:87
 AliEmcalJetTask.cxx:88
 AliEmcalJetTask.cxx:89
 AliEmcalJetTask.cxx:90
 AliEmcalJetTask.cxx:91
 AliEmcalJetTask.cxx:92
 AliEmcalJetTask.cxx:93
 AliEmcalJetTask.cxx:94
 AliEmcalJetTask.cxx:95
 AliEmcalJetTask.cxx:96
 AliEmcalJetTask.cxx:97
 AliEmcalJetTask.cxx:98
 AliEmcalJetTask.cxx:99
 AliEmcalJetTask.cxx:100
 AliEmcalJetTask.cxx:101
 AliEmcalJetTask.cxx:102
 AliEmcalJetTask.cxx:103
 AliEmcalJetTask.cxx:104
 AliEmcalJetTask.cxx:105
 AliEmcalJetTask.cxx:106
 AliEmcalJetTask.cxx:107
 AliEmcalJetTask.cxx:108
 AliEmcalJetTask.cxx:109
 AliEmcalJetTask.cxx:110
 AliEmcalJetTask.cxx:111
 AliEmcalJetTask.cxx:112
 AliEmcalJetTask.cxx:113
 AliEmcalJetTask.cxx:114
 AliEmcalJetTask.cxx:115
 AliEmcalJetTask.cxx:116
 AliEmcalJetTask.cxx:117
 AliEmcalJetTask.cxx:118
 AliEmcalJetTask.cxx:119
 AliEmcalJetTask.cxx:120
 AliEmcalJetTask.cxx:121
 AliEmcalJetTask.cxx:122
 AliEmcalJetTask.cxx:123
 AliEmcalJetTask.cxx:124
 AliEmcalJetTask.cxx:125
 AliEmcalJetTask.cxx:126
 AliEmcalJetTask.cxx:127
 AliEmcalJetTask.cxx:128
 AliEmcalJetTask.cxx:129
 AliEmcalJetTask.cxx:130
 AliEmcalJetTask.cxx:131
 AliEmcalJetTask.cxx:132
 AliEmcalJetTask.cxx:133
 AliEmcalJetTask.cxx:134
 AliEmcalJetTask.cxx:135
 AliEmcalJetTask.cxx:136
 AliEmcalJetTask.cxx:137
 AliEmcalJetTask.cxx:138
 AliEmcalJetTask.cxx:139
 AliEmcalJetTask.cxx:140
 AliEmcalJetTask.cxx:141
 AliEmcalJetTask.cxx:142
 AliEmcalJetTask.cxx:143
 AliEmcalJetTask.cxx:144
 AliEmcalJetTask.cxx:145
 AliEmcalJetTask.cxx:146
 AliEmcalJetTask.cxx:147
 AliEmcalJetTask.cxx:148
 AliEmcalJetTask.cxx:149
 AliEmcalJetTask.cxx:150
 AliEmcalJetTask.cxx:151
 AliEmcalJetTask.cxx:152
 AliEmcalJetTask.cxx:153
 AliEmcalJetTask.cxx:154
 AliEmcalJetTask.cxx:155
 AliEmcalJetTask.cxx:156
 AliEmcalJetTask.cxx:157
 AliEmcalJetTask.cxx:158
 AliEmcalJetTask.cxx:159
 AliEmcalJetTask.cxx:160
 AliEmcalJetTask.cxx:161
 AliEmcalJetTask.cxx:162
 AliEmcalJetTask.cxx:163
 AliEmcalJetTask.cxx:164
 AliEmcalJetTask.cxx:165
 AliEmcalJetTask.cxx:166
 AliEmcalJetTask.cxx:167
 AliEmcalJetTask.cxx:168
 AliEmcalJetTask.cxx:169
 AliEmcalJetTask.cxx:170
 AliEmcalJetTask.cxx:171
 AliEmcalJetTask.cxx:172
 AliEmcalJetTask.cxx:173
 AliEmcalJetTask.cxx:174
 AliEmcalJetTask.cxx:175
 AliEmcalJetTask.cxx:176
 AliEmcalJetTask.cxx:177
 AliEmcalJetTask.cxx:178
 AliEmcalJetTask.cxx:179
 AliEmcalJetTask.cxx:180
 AliEmcalJetTask.cxx:181
 AliEmcalJetTask.cxx:182
 AliEmcalJetTask.cxx:183
 AliEmcalJetTask.cxx:184
 AliEmcalJetTask.cxx:185
 AliEmcalJetTask.cxx:186
 AliEmcalJetTask.cxx:187
 AliEmcalJetTask.cxx:188
 AliEmcalJetTask.cxx:189
 AliEmcalJetTask.cxx:190
 AliEmcalJetTask.cxx:191
 AliEmcalJetTask.cxx:192
 AliEmcalJetTask.cxx:193
 AliEmcalJetTask.cxx:194
 AliEmcalJetTask.cxx:195
 AliEmcalJetTask.cxx:196
 AliEmcalJetTask.cxx:197
 AliEmcalJetTask.cxx:198
 AliEmcalJetTask.cxx:199
 AliEmcalJetTask.cxx:200
 AliEmcalJetTask.cxx:201
 AliEmcalJetTask.cxx:202
 AliEmcalJetTask.cxx:203
 AliEmcalJetTask.cxx:204
 AliEmcalJetTask.cxx:205
 AliEmcalJetTask.cxx:206
 AliEmcalJetTask.cxx:207
 AliEmcalJetTask.cxx:208
 AliEmcalJetTask.cxx:209
 AliEmcalJetTask.cxx:210
 AliEmcalJetTask.cxx:211
 AliEmcalJetTask.cxx:212
 AliEmcalJetTask.cxx:213
 AliEmcalJetTask.cxx:214
 AliEmcalJetTask.cxx:215
 AliEmcalJetTask.cxx:216
 AliEmcalJetTask.cxx:217
 AliEmcalJetTask.cxx:218
 AliEmcalJetTask.cxx:219
 AliEmcalJetTask.cxx:220
 AliEmcalJetTask.cxx:221
 AliEmcalJetTask.cxx:222
 AliEmcalJetTask.cxx:223
 AliEmcalJetTask.cxx:224
 AliEmcalJetTask.cxx:225
 AliEmcalJetTask.cxx:226
 AliEmcalJetTask.cxx:227
 AliEmcalJetTask.cxx:228
 AliEmcalJetTask.cxx:229
 AliEmcalJetTask.cxx:230
 AliEmcalJetTask.cxx:231
 AliEmcalJetTask.cxx:232
 AliEmcalJetTask.cxx:233
 AliEmcalJetTask.cxx:234
 AliEmcalJetTask.cxx:235
 AliEmcalJetTask.cxx:236
 AliEmcalJetTask.cxx:237
 AliEmcalJetTask.cxx:238
 AliEmcalJetTask.cxx:239
 AliEmcalJetTask.cxx:240
 AliEmcalJetTask.cxx:241
 AliEmcalJetTask.cxx:242
 AliEmcalJetTask.cxx:243
 AliEmcalJetTask.cxx:244
 AliEmcalJetTask.cxx:245
 AliEmcalJetTask.cxx:246
 AliEmcalJetTask.cxx:247
 AliEmcalJetTask.cxx:248
 AliEmcalJetTask.cxx:249
 AliEmcalJetTask.cxx:250
 AliEmcalJetTask.cxx:251
 AliEmcalJetTask.cxx:252
 AliEmcalJetTask.cxx:253
 AliEmcalJetTask.cxx:254
 AliEmcalJetTask.cxx:255
 AliEmcalJetTask.cxx:256
 AliEmcalJetTask.cxx:257
 AliEmcalJetTask.cxx:258
 AliEmcalJetTask.cxx:259
 AliEmcalJetTask.cxx:260
 AliEmcalJetTask.cxx:261
 AliEmcalJetTask.cxx:262
 AliEmcalJetTask.cxx:263
 AliEmcalJetTask.cxx:264
 AliEmcalJetTask.cxx:265
 AliEmcalJetTask.cxx:266
 AliEmcalJetTask.cxx:267
 AliEmcalJetTask.cxx:268
 AliEmcalJetTask.cxx:269
 AliEmcalJetTask.cxx:270
 AliEmcalJetTask.cxx:271
 AliEmcalJetTask.cxx:272
 AliEmcalJetTask.cxx:273
 AliEmcalJetTask.cxx:274
 AliEmcalJetTask.cxx:275
 AliEmcalJetTask.cxx:276
 AliEmcalJetTask.cxx:277
 AliEmcalJetTask.cxx:278
 AliEmcalJetTask.cxx:279
 AliEmcalJetTask.cxx:280
 AliEmcalJetTask.cxx:281
 AliEmcalJetTask.cxx:282
 AliEmcalJetTask.cxx:283
 AliEmcalJetTask.cxx:284
 AliEmcalJetTask.cxx:285
 AliEmcalJetTask.cxx:286
 AliEmcalJetTask.cxx:287
 AliEmcalJetTask.cxx:288
 AliEmcalJetTask.cxx:289
 AliEmcalJetTask.cxx:290
 AliEmcalJetTask.cxx:291
 AliEmcalJetTask.cxx:292
 AliEmcalJetTask.cxx:293
 AliEmcalJetTask.cxx:294
 AliEmcalJetTask.cxx:295
 AliEmcalJetTask.cxx:296
 AliEmcalJetTask.cxx:297
 AliEmcalJetTask.cxx:298
 AliEmcalJetTask.cxx:299
 AliEmcalJetTask.cxx:300
 AliEmcalJetTask.cxx:301
 AliEmcalJetTask.cxx:302
 AliEmcalJetTask.cxx:303
 AliEmcalJetTask.cxx:304
 AliEmcalJetTask.cxx:305
 AliEmcalJetTask.cxx:306
 AliEmcalJetTask.cxx:307
 AliEmcalJetTask.cxx:308
 AliEmcalJetTask.cxx:309
 AliEmcalJetTask.cxx:310
 AliEmcalJetTask.cxx:311
 AliEmcalJetTask.cxx:312
 AliEmcalJetTask.cxx:313
 AliEmcalJetTask.cxx:314
 AliEmcalJetTask.cxx:315
 AliEmcalJetTask.cxx:316
 AliEmcalJetTask.cxx:317
 AliEmcalJetTask.cxx:318
 AliEmcalJetTask.cxx:319
 AliEmcalJetTask.cxx:320
 AliEmcalJetTask.cxx:321
 AliEmcalJetTask.cxx:322
 AliEmcalJetTask.cxx:323
 AliEmcalJetTask.cxx:324
 AliEmcalJetTask.cxx:325
 AliEmcalJetTask.cxx:326
 AliEmcalJetTask.cxx:327
 AliEmcalJetTask.cxx:328
 AliEmcalJetTask.cxx:329
 AliEmcalJetTask.cxx:330
 AliEmcalJetTask.cxx:331
 AliEmcalJetTask.cxx:332
 AliEmcalJetTask.cxx:333
 AliEmcalJetTask.cxx:334
 AliEmcalJetTask.cxx:335
 AliEmcalJetTask.cxx:336
 AliEmcalJetTask.cxx:337
 AliEmcalJetTask.cxx:338
 AliEmcalJetTask.cxx:339
 AliEmcalJetTask.cxx:340
 AliEmcalJetTask.cxx:341
 AliEmcalJetTask.cxx:342
 AliEmcalJetTask.cxx:343
 AliEmcalJetTask.cxx:344
 AliEmcalJetTask.cxx:345
 AliEmcalJetTask.cxx:346
 AliEmcalJetTask.cxx:347
 AliEmcalJetTask.cxx:348
 AliEmcalJetTask.cxx:349
 AliEmcalJetTask.cxx:350
 AliEmcalJetTask.cxx:351
 AliEmcalJetTask.cxx:352
 AliEmcalJetTask.cxx:353
 AliEmcalJetTask.cxx:354
 AliEmcalJetTask.cxx:355
 AliEmcalJetTask.cxx:356
 AliEmcalJetTask.cxx:357
 AliEmcalJetTask.cxx:358
 AliEmcalJetTask.cxx:359
 AliEmcalJetTask.cxx:360
 AliEmcalJetTask.cxx:361
 AliEmcalJetTask.cxx:362
 AliEmcalJetTask.cxx:363
 AliEmcalJetTask.cxx:364
 AliEmcalJetTask.cxx:365
 AliEmcalJetTask.cxx:366
 AliEmcalJetTask.cxx:367
 AliEmcalJetTask.cxx:368
 AliEmcalJetTask.cxx:369
 AliEmcalJetTask.cxx:370
 AliEmcalJetTask.cxx:371
 AliEmcalJetTask.cxx:372
 AliEmcalJetTask.cxx:373
 AliEmcalJetTask.cxx:374
 AliEmcalJetTask.cxx:375
 AliEmcalJetTask.cxx:376
 AliEmcalJetTask.cxx:377
 AliEmcalJetTask.cxx:378
 AliEmcalJetTask.cxx:379
 AliEmcalJetTask.cxx:380
 AliEmcalJetTask.cxx:381
 AliEmcalJetTask.cxx:382
 AliEmcalJetTask.cxx:383
 AliEmcalJetTask.cxx:384
 AliEmcalJetTask.cxx:385
 AliEmcalJetTask.cxx:386
 AliEmcalJetTask.cxx:387
 AliEmcalJetTask.cxx:388
 AliEmcalJetTask.cxx:389
 AliEmcalJetTask.cxx:390
 AliEmcalJetTask.cxx:391
 AliEmcalJetTask.cxx:392
 AliEmcalJetTask.cxx:393
 AliEmcalJetTask.cxx:394
 AliEmcalJetTask.cxx:395
 AliEmcalJetTask.cxx:396
 AliEmcalJetTask.cxx:397
 AliEmcalJetTask.cxx:398
 AliEmcalJetTask.cxx:399
 AliEmcalJetTask.cxx:400
 AliEmcalJetTask.cxx:401
 AliEmcalJetTask.cxx:402
 AliEmcalJetTask.cxx:403
 AliEmcalJetTask.cxx:404
 AliEmcalJetTask.cxx:405
 AliEmcalJetTask.cxx:406
 AliEmcalJetTask.cxx:407
 AliEmcalJetTask.cxx:408
 AliEmcalJetTask.cxx:409
 AliEmcalJetTask.cxx:410
 AliEmcalJetTask.cxx:411
 AliEmcalJetTask.cxx:412
 AliEmcalJetTask.cxx:413
 AliEmcalJetTask.cxx:414
 AliEmcalJetTask.cxx:415
 AliEmcalJetTask.cxx:416
 AliEmcalJetTask.cxx:417
 AliEmcalJetTask.cxx:418
 AliEmcalJetTask.cxx:419
 AliEmcalJetTask.cxx:420
 AliEmcalJetTask.cxx:421
 AliEmcalJetTask.cxx:422
 AliEmcalJetTask.cxx:423
 AliEmcalJetTask.cxx:424
 AliEmcalJetTask.cxx:425
 AliEmcalJetTask.cxx:426
 AliEmcalJetTask.cxx:427
 AliEmcalJetTask.cxx:428
 AliEmcalJetTask.cxx:429
 AliEmcalJetTask.cxx:430
 AliEmcalJetTask.cxx:431
 AliEmcalJetTask.cxx:432
 AliEmcalJetTask.cxx:433
 AliEmcalJetTask.cxx:434
 AliEmcalJetTask.cxx:435
 AliEmcalJetTask.cxx:436
 AliEmcalJetTask.cxx:437
 AliEmcalJetTask.cxx:438
 AliEmcalJetTask.cxx:439
 AliEmcalJetTask.cxx:440
 AliEmcalJetTask.cxx:441
 AliEmcalJetTask.cxx:442
 AliEmcalJetTask.cxx:443
 AliEmcalJetTask.cxx:444
 AliEmcalJetTask.cxx:445
 AliEmcalJetTask.cxx:446
 AliEmcalJetTask.cxx:447
 AliEmcalJetTask.cxx:448
 AliEmcalJetTask.cxx:449
 AliEmcalJetTask.cxx:450
 AliEmcalJetTask.cxx:451
 AliEmcalJetTask.cxx:452
 AliEmcalJetTask.cxx:453
 AliEmcalJetTask.cxx:454
 AliEmcalJetTask.cxx:455
 AliEmcalJetTask.cxx:456
 AliEmcalJetTask.cxx:457
 AliEmcalJetTask.cxx:458
 AliEmcalJetTask.cxx:459
 AliEmcalJetTask.cxx:460
 AliEmcalJetTask.cxx:461
 AliEmcalJetTask.cxx:462
 AliEmcalJetTask.cxx:463
 AliEmcalJetTask.cxx:464
 AliEmcalJetTask.cxx:465
 AliEmcalJetTask.cxx:466
 AliEmcalJetTask.cxx:467
 AliEmcalJetTask.cxx:468
 AliEmcalJetTask.cxx:469
 AliEmcalJetTask.cxx:470
 AliEmcalJetTask.cxx:471
 AliEmcalJetTask.cxx:472
 AliEmcalJetTask.cxx:473
 AliEmcalJetTask.cxx:474
 AliEmcalJetTask.cxx:475
 AliEmcalJetTask.cxx:476
 AliEmcalJetTask.cxx:477
 AliEmcalJetTask.cxx:478
 AliEmcalJetTask.cxx:479
 AliEmcalJetTask.cxx:480
 AliEmcalJetTask.cxx:481
 AliEmcalJetTask.cxx:482
 AliEmcalJetTask.cxx:483
 AliEmcalJetTask.cxx:484
 AliEmcalJetTask.cxx:485
 AliEmcalJetTask.cxx:486
 AliEmcalJetTask.cxx:487
 AliEmcalJetTask.cxx:488
 AliEmcalJetTask.cxx:489
 AliEmcalJetTask.cxx:490
 AliEmcalJetTask.cxx:491
 AliEmcalJetTask.cxx:492
 AliEmcalJetTask.cxx:493
 AliEmcalJetTask.cxx:494
 AliEmcalJetTask.cxx:495
 AliEmcalJetTask.cxx:496
 AliEmcalJetTask.cxx:497
 AliEmcalJetTask.cxx:498
 AliEmcalJetTask.cxx:499
 AliEmcalJetTask.cxx:500
 AliEmcalJetTask.cxx:501
 AliEmcalJetTask.cxx:502
 AliEmcalJetTask.cxx:503
 AliEmcalJetTask.cxx:504
 AliEmcalJetTask.cxx:505
 AliEmcalJetTask.cxx:506
 AliEmcalJetTask.cxx:507
 AliEmcalJetTask.cxx:508
 AliEmcalJetTask.cxx:509
 AliEmcalJetTask.cxx:510
 AliEmcalJetTask.cxx:511
 AliEmcalJetTask.cxx:512
 AliEmcalJetTask.cxx:513
 AliEmcalJetTask.cxx:514
 AliEmcalJetTask.cxx:515
 AliEmcalJetTask.cxx:516
 AliEmcalJetTask.cxx:517
 AliEmcalJetTask.cxx:518
 AliEmcalJetTask.cxx:519
 AliEmcalJetTask.cxx:520
 AliEmcalJetTask.cxx:521
 AliEmcalJetTask.cxx:522
 AliEmcalJetTask.cxx:523
 AliEmcalJetTask.cxx:524
 AliEmcalJetTask.cxx:525
 AliEmcalJetTask.cxx:526
 AliEmcalJetTask.cxx:527
 AliEmcalJetTask.cxx:528
 AliEmcalJetTask.cxx:529
 AliEmcalJetTask.cxx:530
 AliEmcalJetTask.cxx:531
 AliEmcalJetTask.cxx:532
 AliEmcalJetTask.cxx:533
 AliEmcalJetTask.cxx:534
 AliEmcalJetTask.cxx:535
 AliEmcalJetTask.cxx:536
 AliEmcalJetTask.cxx:537
 AliEmcalJetTask.cxx:538
 AliEmcalJetTask.cxx:539
 AliEmcalJetTask.cxx:540
 AliEmcalJetTask.cxx:541
 AliEmcalJetTask.cxx:542
 AliEmcalJetTask.cxx:543
 AliEmcalJetTask.cxx:544
 AliEmcalJetTask.cxx:545
 AliEmcalJetTask.cxx:546
 AliEmcalJetTask.cxx:547
 AliEmcalJetTask.cxx:548
 AliEmcalJetTask.cxx:549
 AliEmcalJetTask.cxx:550
 AliEmcalJetTask.cxx:551
 AliEmcalJetTask.cxx:552
 AliEmcalJetTask.cxx:553
 AliEmcalJetTask.cxx:554
 AliEmcalJetTask.cxx:555
 AliEmcalJetTask.cxx:556
 AliEmcalJetTask.cxx:557
 AliEmcalJetTask.cxx:558
 AliEmcalJetTask.cxx:559
 AliEmcalJetTask.cxx:560
 AliEmcalJetTask.cxx:561
 AliEmcalJetTask.cxx:562
 AliEmcalJetTask.cxx:563
 AliEmcalJetTask.cxx:564
 AliEmcalJetTask.cxx:565
 AliEmcalJetTask.cxx:566
 AliEmcalJetTask.cxx:567
 AliEmcalJetTask.cxx:568
 AliEmcalJetTask.cxx:569
 AliEmcalJetTask.cxx:570
 AliEmcalJetTask.cxx:571
 AliEmcalJetTask.cxx:572
 AliEmcalJetTask.cxx:573
 AliEmcalJetTask.cxx:574
 AliEmcalJetTask.cxx:575
 AliEmcalJetTask.cxx:576
 AliEmcalJetTask.cxx:577
 AliEmcalJetTask.cxx:578
 AliEmcalJetTask.cxx:579
 AliEmcalJetTask.cxx:580
 AliEmcalJetTask.cxx:581
 AliEmcalJetTask.cxx:582
 AliEmcalJetTask.cxx:583
 AliEmcalJetTask.cxx:584
 AliEmcalJetTask.cxx:585
 AliEmcalJetTask.cxx:586
 AliEmcalJetTask.cxx:587
 AliEmcalJetTask.cxx:588
 AliEmcalJetTask.cxx:589
 AliEmcalJetTask.cxx:590
 AliEmcalJetTask.cxx:591
 AliEmcalJetTask.cxx:592
 AliEmcalJetTask.cxx:593
 AliEmcalJetTask.cxx:594
 AliEmcalJetTask.cxx:595
 AliEmcalJetTask.cxx:596
 AliEmcalJetTask.cxx:597
 AliEmcalJetTask.cxx:598
 AliEmcalJetTask.cxx:599
 AliEmcalJetTask.cxx:600
 AliEmcalJetTask.cxx:601
 AliEmcalJetTask.cxx:602
 AliEmcalJetTask.cxx:603
 AliEmcalJetTask.cxx:604
 AliEmcalJetTask.cxx:605
 AliEmcalJetTask.cxx:606
 AliEmcalJetTask.cxx:607
 AliEmcalJetTask.cxx:608
 AliEmcalJetTask.cxx:609
 AliEmcalJetTask.cxx:610
 AliEmcalJetTask.cxx:611
 AliEmcalJetTask.cxx:612
 AliEmcalJetTask.cxx:613
 AliEmcalJetTask.cxx:614
 AliEmcalJetTask.cxx:615
 AliEmcalJetTask.cxx:616
 AliEmcalJetTask.cxx:617
 AliEmcalJetTask.cxx:618
 AliEmcalJetTask.cxx:619
 AliEmcalJetTask.cxx:620
 AliEmcalJetTask.cxx:621
 AliEmcalJetTask.cxx:622
 AliEmcalJetTask.cxx:623
 AliEmcalJetTask.cxx:624
 AliEmcalJetTask.cxx:625
 AliEmcalJetTask.cxx:626
 AliEmcalJetTask.cxx:627
 AliEmcalJetTask.cxx:628
 AliEmcalJetTask.cxx:629
 AliEmcalJetTask.cxx:630
 AliEmcalJetTask.cxx:631
 AliEmcalJetTask.cxx:632
 AliEmcalJetTask.cxx:633
 AliEmcalJetTask.cxx:634
 AliEmcalJetTask.cxx:635
 AliEmcalJetTask.cxx:636
 AliEmcalJetTask.cxx:637
 AliEmcalJetTask.cxx:638
 AliEmcalJetTask.cxx:639
 AliEmcalJetTask.cxx:640
 AliEmcalJetTask.cxx:641
 AliEmcalJetTask.cxx:642
 AliEmcalJetTask.cxx:643
 AliEmcalJetTask.cxx:644
 AliEmcalJetTask.cxx:645
 AliEmcalJetTask.cxx:646
 AliEmcalJetTask.cxx:647
 AliEmcalJetTask.cxx:648
 AliEmcalJetTask.cxx:649
 AliEmcalJetTask.cxx:650
 AliEmcalJetTask.cxx:651
 AliEmcalJetTask.cxx:652
 AliEmcalJetTask.cxx:653
 AliEmcalJetTask.cxx:654
 AliEmcalJetTask.cxx:655
 AliEmcalJetTask.cxx:656
 AliEmcalJetTask.cxx:657
 AliEmcalJetTask.cxx:658
 AliEmcalJetTask.cxx:659
 AliEmcalJetTask.cxx:660
 AliEmcalJetTask.cxx:661
 AliEmcalJetTask.cxx:662
 AliEmcalJetTask.cxx:663
 AliEmcalJetTask.cxx:664
 AliEmcalJetTask.cxx:665
 AliEmcalJetTask.cxx:666
 AliEmcalJetTask.cxx:667
 AliEmcalJetTask.cxx:668
 AliEmcalJetTask.cxx:669
 AliEmcalJetTask.cxx:670
 AliEmcalJetTask.cxx:671
 AliEmcalJetTask.cxx:672
 AliEmcalJetTask.cxx:673
 AliEmcalJetTask.cxx:674
 AliEmcalJetTask.cxx:675
 AliEmcalJetTask.cxx:676
 AliEmcalJetTask.cxx:677
 AliEmcalJetTask.cxx:678
 AliEmcalJetTask.cxx:679
 AliEmcalJetTask.cxx:680
 AliEmcalJetTask.cxx:681
 AliEmcalJetTask.cxx:682
 AliEmcalJetTask.cxx:683
 AliEmcalJetTask.cxx:684
 AliEmcalJetTask.cxx:685
 AliEmcalJetTask.cxx:686
 AliEmcalJetTask.cxx:687
 AliEmcalJetTask.cxx:688
 AliEmcalJetTask.cxx:689
 AliEmcalJetTask.cxx:690