ROOT logo
// $Id$
//
// Jet modelling task.
//
// Author: S.Aiola, C.Loizides

#include "AliJetModelBaseTask.h"

#include <TClonesArray.h>
#include <TH1I.h>
#include <TLorentzVector.h>
#include <TRandom3.h>
#include <TList.h>
#include <TF2.h>

#include "AliVEvent.h"
#include "AliAODCaloCluster.h"
#include "AliESDCaloCluster.h"
#include "AliVCluster.h"
#include "AliEMCALDigit.h"
#include "AliEMCALRecPoint.h"
#include "AliESDCaloCells.h"
#include "AliAODCaloCells.h"
#include "AliAODMCParticle.h"
#include "AliVCaloCells.h"
#include "AliPicoTrack.h"
#include "AliEMCALGeometry.h"
#include "AliLog.h"
#include "AliNamedArrayI.h"

ClassImp(AliJetModelBaseTask)

//________________________________________________________________________
AliJetModelBaseTask::AliJetModelBaseTask() : 
  AliAnalysisTaskSE("AliJetModelBaseTask"),
  fGeomName(),
  fTracksName(),
  fOutTracksName(),
  fCaloName(),
  fOutCaloName(),
  fCellsName(),
  fOutCellsName(),
  fMCParticlesName(),
  fOutMCParticlesName(),
  fPythiaInfoName(""),
  fIsMC(kFALSE),
  fSuffix(),
  fEtaMin(-1),
  fEtaMax(1),
  fPhiMin(0),
  fPhiMax(TMath::Pi() * 2),
  fPtMin(0),
  fPtMax(0),
  fCopyArray(kTRUE),
  fNClusters(0),
  fNCells(0),
  fNTracks(0),
  fMarkMC(99999),
  fPtSpectrum(0),
  fPtPhiEvPlDistribution(0),
  fDensitySpectrum(0),
  fDifferentialV2(0),
  fAddV2(kFALSE),
  fFlowFluctuations(kFALSE),
  fQAhistos(kFALSE),
  fPsi(0),
  fIsInit(0),
  fGeom(0),
  fClusters(0),
  fOutClusters(0),
  fTracks(0),
  fOutTracks(0),
  fCaloCells(0),
  fOutCaloCells(0),
  fAddedCells(0),
  fMCParticles(0),
  fMCParticlesMap(0),
  fOutMCParticles(0),
  fOutMCParticlesMap(0),
  fMCLabelShift(0),
  fEsdMode(kFALSE),
  fOutput(0),
  fPythiaInfo(0x0)
{
  // Default constructor.

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

//________________________________________________________________________
AliJetModelBaseTask::AliJetModelBaseTask(const char *name, Bool_t drawqa) : 
  AliAnalysisTaskSE(name),
  fGeomName(""),
  fTracksName("PicoTracks"),
  fOutTracksName("PicoTracksEmbedded"),
  fCaloName("CaloClustersCorr"),
  fOutCaloName("CaloClustersCorrEmbedded"),
  fCellsName(""),
  fOutCellsName(""),
  fMCParticlesName(""),
  fOutMCParticlesName(""),
  fPythiaInfoName(""),
  fIsMC(kFALSE),
  fSuffix("Processed"),
  fEtaMin(-1),
  fEtaMax(1),
  fPhiMin(0),
  fPhiMax(TMath::Pi() * 2),
  fPtMin(50),
  fPtMax(60),
  fCopyArray(kTRUE),
  fNClusters(0),
  fNCells(0),
  fNTracks(1),
  fMarkMC(99999),
  fPtSpectrum(0),
  fPtPhiEvPlDistribution(0),
  fDensitySpectrum(0),
  fDifferentialV2(0),
  fAddV2(kFALSE),
  fFlowFluctuations(kFALSE),
  fQAhistos(drawqa),
  fPsi(0),
  fIsInit(0),
  fGeom(0),
  fClusters(0),
  fOutClusters(0),
  fTracks(0),
  fOutTracks(0),
  fCaloCells(0),
  fOutCaloCells(0),
  fAddedCells(0),
  fMCParticles(0),
  fMCParticlesMap(0),
  fOutMCParticles(0),
  fOutMCParticlesMap(0),
  fMCLabelShift(0),
  fEsdMode(kFALSE),
  fOutput(0),
  fPythiaInfo(0x0)
{
  // Standard constructor.

  if (fQAhistos) {
    DefineOutput(1, TList::Class()); 
  }

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

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

//________________________________________________________________________
void AliJetModelBaseTask::UserCreateOutputObjects()
{
  // Create user output.
  if (!fQAhistos)
    return;

  OpenFile(1);
  fOutput = new TList();
  fOutput->SetOwner();

  PostData(1, fOutput);
}

//________________________________________________________________________
void AliJetModelBaseTask::UserExec(Option_t *) 
{
  // Execute per event.

  if (!fIsInit)
    fIsInit = ExecOnce();

  if (!fIsInit)
    return;

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

  const AliVVertex *vert = InputEvent()->GetPrimaryVertex();
  if (vert)
    vert->GetXYZ(fVertex);

  if (fCopyArray) {
    if (fOutTracks)
      fOutTracks->Delete();
    if (fOutClusters)
      fOutClusters->Delete();
    if (fOutMCParticles)
      fOutMCParticles->Delete();
  }

  if (fDensitySpectrum) {
    fNTracks = TMath::Nint(fDensitySpectrum->GetRandom());
    fNCells = TMath::Nint(fDensitySpectrum->GetRandom());
    fNClusters = TMath::Nint(fDensitySpectrum->GetRandom());
  }
  
  // Clear map
  if (fOutMCParticlesMap)
    fOutMCParticlesMap->Clear();

  AliVCaloCells *tempCaloCells = 0;

  if (fCaloCells) {
    fAddedCells = 0;
    if (!fCopyArray) {
      tempCaloCells = fCaloCells;
      fCaloCells = static_cast<AliVCaloCells*>(tempCaloCells->Clone(Form("%s_old",fCaloCells->GetName())));
    }
  }

  if (fPtPhiEvPlDistribution || fAddV2)
    fPsi = gRandom->Rndm() * TMath::Pi();
  
  Run();
  
  if (fCaloCells && !fCopyArray) {
    delete fCaloCells;
    fCaloCells = tempCaloCells;
  }
}

//________________________________________________________________________
Bool_t AliJetModelBaseTask::ExecOnce()
{
  // Init task.

  delete gRandom;
  gRandom = new TRandom3(0);

  fEsdMode = InputEvent()->InheritsFrom("AliESDEvent");

  if (fPtMax < fPtMin) {
    AliWarning (Form("PtMax (%f) < PtMin (%f), setting PtMax = PtMin = %f", fPtMax, fPtMin, fPtMin));
    fPtMax = fPtMin;
  }

  if (fEtaMax < fEtaMin) {
    AliWarning (Form("EtaMax (%f) < EtaMin (%f), setting EtaMax = EtaMin = %f", fEtaMax, fEtaMin, fEtaMin));
    fEtaMax = fEtaMin;
  }

  if (fPhiMax < fPhiMin) {
    AliWarning (Form("PhiMax (%f) < PhiMin (%f), setting PhiMax = PhiMin = %f", fPhiMax, fPhiMin, fPhiMin));
    fPhiMax = fPhiMin;
  }

  if (!fCellsName.IsNull()) {
    fCaloCells = dynamic_cast<AliVCaloCells*>(InputEvent()->FindListObject(fCellsName));
    if (!fCaloCells) {
      AliWarning(Form("%s: Couldn't retrieve calo cells with name %s!", GetName(), fCellsName.Data()));
    }
    else if (!fCaloCells->InheritsFrom("AliVCaloCells")) {
      AliError(Form("%s: Collection %s does not contain a AliVCaloCells object!", GetName(), fCellsName.Data())); 
      fCaloCells = 0;
      return kFALSE;
    }

    if (!fOutCaloCells) {
      fOutCellsName = fCellsName;
      if (fCopyArray) 
	fOutCellsName += fSuffix;
      if (fCopyArray || !fCaloCells) {
	if (fEsdMode) 
	  fOutCaloCells = new AliESDCaloCells(fOutCellsName,fOutCellsName);
	else
	  fOutCaloCells = new AliAODCaloCells(fOutCellsName,fOutCellsName);

	if (InputEvent()->FindListObject(fOutCellsName)) {
	  AliFatal(Form("%s: Collection %s is already present in the event!", GetName(), fOutCellsName.Data())); 
	  return kFALSE;
	}
	else {
	  InputEvent()->AddObject(fOutCaloCells);
	}
      }
      else {
	fOutCaloCells = fCaloCells;
      }
    }
  }

  if (!fTracksName.IsNull()) {
    fTracks = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fTracksName));
    if (!fTracks) {
      AliWarning(Form("%s: Couldn't retrieve tracks with name %s!", GetName(), fTracksName.Data()));
    }
    else if (!fTracks->GetClass()->GetBaseClass("AliPicoTrack")) {
      AliError(Form("%s: Collection %s does not contain AliPicoTrack objects!", GetName(), fTracksName.Data())); 
      fTracks = 0;
      return kFALSE;
    }

    if (!fOutTracks) {
      fOutTracksName = fTracksName;
      if (fCopyArray)
	fOutTracksName += fSuffix;
      if (fCopyArray || !fTracks) {
	fOutTracks = new TClonesArray("AliPicoTrack");
	fOutTracks->SetName(fOutTracksName);
	if (InputEvent()->FindListObject(fOutTracksName)) {
	  AliFatal(Form("%s: Collection %s is already present in the event!", GetName(), fOutTracksName.Data())); 
	  return kFALSE;
	}
	else {
	  InputEvent()->AddObject(fOutTracks);
	}
      }
      else {
	fOutTracks = fTracks;
      }
    }
  }

  if(fAddV2 && (!fDifferentialV2)) {
    AliWarning(Form("%s: Cannot add v2 without diffential v2!", GetName()));
  }

  if (!fCaloName.IsNull()) {
    fClusters = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fCaloName));
 
    if (!fClusters) {
      AliWarning(Form("%s: Couldn't retrieve clusters with name %s!", GetName(), fCaloName.Data()));
    }
    else if (!fClusters->GetClass()->GetBaseClass("AliVCluster")) {
      AliError(Form("%s: Collection %s does not contain AliVCluster objects!", GetName(), fCaloName.Data())); 
      fClusters = 0;
      return kFALSE;
    }

    if (!fOutClusters) {
      fOutCaloName = fCaloName;
      if (fCopyArray) 
	fOutCaloName += fSuffix;
      TString className;
      if (fClusters)
	className = fClusters->GetClass()->GetName();
      else if (fEsdMode)
	className = "AliESDCaloCluster";
      else
	className = "AliAODCaloCluster";
	
      if (fCopyArray || !fClusters) {
	fOutClusters = new TClonesArray(className.Data());
	fOutClusters->SetName(fOutCaloName);
	if (InputEvent()->FindListObject(fOutCaloName)) {
	  AliFatal(Form("%s: Collection %s is already present in the event!", GetName(), fOutCaloName.Data())); 
	  return kFALSE;
	}
	else {
	  InputEvent()->AddObject(fOutClusters);
	}
      }
      else {
	fOutClusters = fClusters;
      }
    }
  }

  if (!fMCParticlesName.IsNull()) {
    fMCParticles = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fMCParticlesName));
    if (!fMCParticles) {
      AliWarning(Form("%s: Couldn't retrieve MC particles with name %s!", GetName(), fMCParticlesName.Data()));
    }
    else {
      if (!fMCParticles->GetClass()->GetBaseClass("AliAODMCParticle")) {
	AliError(Form("%s: Collection %s does not contain AliAODMCParticle objects!", GetName(), fMCParticlesName.Data())); 
	fMCParticles = 0;
	return kFALSE;
      }
      
      fMCParticlesMap = dynamic_cast<AliNamedArrayI*>(InputEvent()->FindListObject(fMCParticlesName + "_Map"));

      if (!fMCParticlesMap) {
	AliWarning(Form("%s: Could not retrieve map for MC particles %s! Will assume MC labels consistent with indexes...", GetName(), fMCParticlesName.Data())); 
	fMCParticlesMap = new AliNamedArrayI(fMCParticlesName + "_Map", 99999);
	for (Int_t i = 0; i < 99999; i++) {
	  fMCParticlesMap->AddAt(i,i);
	}
      }
    }

    if (!fOutMCParticles) {
      fOutMCParticlesName = fMCParticlesName;
      if (fCopyArray)
	fOutMCParticlesName += fSuffix;
      if (fCopyArray || !fMCParticles) {

	fOutMCParticles = new TClonesArray("AliAODMCParticle");
	fOutMCParticles->SetName(fOutMCParticlesName);
	if (InputEvent()->FindListObject(fOutMCParticlesName)) {
	  AliFatal(Form("%s: Collection %s is already present in the event!", GetName(), fOutMCParticlesName.Data())); 
	  return kFALSE;
	}
	else {
	  InputEvent()->AddObject(fOutMCParticles);
	}

	fOutMCParticlesMap = new AliNamedArrayI(fOutMCParticlesName + "_Map",99999);
	if (InputEvent()->FindListObject(fOutMCParticlesName + "_Map")) {
	  AliFatal(Form("%s: Map %s_Map is already present in the event!", GetName(), fOutMCParticlesName.Data())); 
	  return kFALSE;
	}
	else {
	  InputEvent()->AddObject(fOutMCParticlesMap);
	}
      }
      else {
	fOutMCParticles = fMCParticles;
	fOutMCParticlesMap = fMCParticlesMap;
      }
    }
  }

  if (!fGeom) {
    if (fGeomName.Length() > 0) {
      fGeom = AliEMCALGeometry::GetInstance(fGeomName);
      if (!fGeom) {
	AliFatal(Form("Could not get geometry with name %s!", fGeomName.Data()));
	return kFALSE;
      }
    } else {
      fGeom = AliEMCALGeometry::GetInstance();
      if (!fGeom) {
	AliFatal("Could not get default geometry!");
	return kFALSE;
      }
    }
  }

  return kTRUE;
}

//________________________________________________________________________
Int_t AliJetModelBaseTask::SetNumberOfOutCells(Int_t n)
{
  if (fOutCaloCells->GetNumberOfCells() < n) {
    fOutCaloCells->DeleteContainer();
    fOutCaloCells->CreateContainer(n);
  }
  else {
    fOutCaloCells->SetNumberOfCells(n);
  }

  fAddedCells = 0;

  return n;
}

//________________________________________________________________________
Int_t AliJetModelBaseTask::AddCell(Double_t e, Double_t eta, Double_t phi)
{
  // Add a cell to the event.

  Int_t absId = 0;
  if (eta < -100 || phi < 0) {
    GetRandomCell(eta, phi, absId);
  }
  else {
    fGeom->EtaPhiFromIndex(absId, eta, phi);
  }

  if (absId == -1) {
    AliWarning(Form("Unable to embed cell in eta = %f, phi = %f!"
		    " Maybe the eta-phi range is not inside the EMCal acceptance (eta = [%f, %f], phi = [%f, %f])", 
		    eta, phi, fEtaMin, fEtaMax, fPhiMin, fPhiMax));
    return 0;
  } 

  if (e < 0) {
    Double_t pt = GetRandomPt();
    TLorentzVector nPart;
    nPart.SetPtEtaPhiM(pt, eta, phi, 0);
    e = nPart.E();
  }

  return AddCell(e, absId);
}

//________________________________________________________________________
Int_t AliJetModelBaseTask::AddCell(Double_t e, Int_t absId, Double_t time, Int_t label)
{
  // Add a cell to the event.

  if (label < 0)
    label = 0;

  label += fMarkMC + fMCLabelShift;

  Short_t pos = -1;
  if (fCaloCells)  
    pos = fCaloCells->GetCellPosition(absId);

  Double_t efrac = 1;
  Bool_t increaseOnSuccess = kFALSE;

  if (pos < 0) {
    increaseOnSuccess = kTRUE;
    pos = fAddedCells;
  }
  else {
    Short_t cellNumber = -1;
    Double_t old_e = 0;
    Double_t old_time = 0;
    Int_t old_label = 0;
    Double_t old_efrac = 0;
    fOutCaloCells->GetCell(pos, cellNumber, old_e, old_time, old_label, old_efrac);
    
    efrac = e / (old_e + e);

    if (old_label > 0 && e < old_efrac * old_e) {
      label = old_label;
      efrac = old_efrac;
      time = old_time;
    }
    
    e += old_e;
  }

  Bool_t r = fOutCaloCells->SetCell(pos, absId, e, time, label, efrac);

  if (r) {
    if (increaseOnSuccess)
      fAddedCells++;
    return fAddedCells;
  }
  else 
    return 0;
}

//________________________________________________________________________
AliVCluster* AliJetModelBaseTask::AddCluster(AliVCluster *oc)
{
  // Add a cluster to the event.

  const Int_t nClusters = fOutClusters->GetEntriesFast();
  AliVCluster *dc = static_cast<AliVCluster*>(fOutClusters->New(nClusters));
  dc->SetType(AliVCluster::kEMCALClusterv1);
  dc->SetE(oc->E());
  Float_t pos[3] = {0};
  oc->GetPosition(pos);
  dc->SetPosition(pos);
  dc->SetNCells(oc->GetNCells());
  dc->SetCellsAbsId(oc->GetCellsAbsId());
  dc->SetCellsAmplitudeFraction(oc->GetCellsAmplitudeFraction());
  dc->SetID(oc->GetID());
  dc->SetDispersion(oc->GetDispersion());
  dc->SetEmcCpvDistance(-1);
  dc->SetChi2(-1);
  dc->SetTOF(oc->GetTOF());     //time-of-flight
  dc->SetNExMax(oc->GetNExMax()); //number of local maxima
  dc->SetM02(oc->GetM02());
  dc->SetM20(oc->GetM20());
  dc->SetDistanceToBadChannel(oc->GetDistanceToBadChannel()); 

  //MC
  UInt_t nlabels = oc->GetNLabels();
  Int_t *labels = oc->GetLabels();
  TArrayI parents;
  if (nlabels != 0 && labels) 
    parents.Set(nlabels, labels);
  else {
    nlabels = 1;
    parents.Set(1);
    parents[0] = 0;
  }

  if (fMarkMC+fMCLabelShift != 0) {
    for (UInt_t i = 0; i < nlabels; i++) {
      parents[i] += fMarkMC+fMCLabelShift;
    }
  }

  AliESDCaloCluster *esdClus = dynamic_cast<AliESDCaloCluster*>(dc);
  if (esdClus) {
    esdClus->AddLabels(parents); 
  }
  else {
    AliAODCaloCluster *aodClus = dynamic_cast<AliAODCaloCluster*>(dc);
    if (aodClus) 
      aodClus->SetLabel(parents.GetArray(), nlabels); 
  }

  return dc;
}

//________________________________________________________________________
AliVCluster* AliJetModelBaseTask::AddCluster(Double_t e, Double_t eta, Double_t phi, Int_t label)
{
  // Add a cluster to the event.

  Int_t absId = 0;
  if (eta < -100 || phi < 0) {
    GetRandomCell(eta, phi, absId);
  }
  else {
    fGeom->EtaPhiFromIndex(absId, eta, phi);
  }

  if (absId == -1) {
    AliWarning(Form("Unable to embed cluster in eta = %f, phi = %f!"
		    " Maybe the eta-phi range is not inside the EMCal acceptance (eta = [%f, %f], phi = [%f, %f])", 
		    eta, phi, fEtaMin, fEtaMax, fPhiMin, fPhiMax));
    return 0;
  } 

  if (e < 0) {
    Double_t pt = GetRandomPt();
    TLorentzVector nPart;
    nPart.SetPtEtaPhiM(pt, eta, phi, 0);
    e = nPart.E();
  }

  return AddCluster(e, absId, label);
}
      
//________________________________________________________________________
AliVCluster* AliJetModelBaseTask::AddCluster(Double_t e, Int_t absId, Int_t label)
{
  // Add a cluster to the event.

  const Int_t nClusters = fOutClusters->GetEntriesFast();

  TClonesArray digits("AliEMCALDigit", 1);

  AliEMCALDigit *digit = static_cast<AliEMCALDigit*>(digits.New(0));
  digit->SetId(absId);
  digit->SetIndexInList(0);
  digit->SetType(AliEMCALDigit::kHG);
  digit->SetAmplitude(e);
      
  AliEMCALRecPoint recPoint("");
  recPoint.AddDigit(*digit, e, kFALSE);
  recPoint.EvalGlobalPosition(0, &digits);

  TVector3 gpos;
  recPoint.GetGlobalPosition(gpos);
  Float_t g[3];
  gpos.GetXYZ(g);
      
  AliVCluster *cluster = static_cast<AliVCluster*>(fOutClusters->New(nClusters));
  cluster->SetType(AliVCluster::kEMCALClusterv1);
  cluster->SetE(recPoint.GetEnergy());
  cluster->SetPosition(g);
  cluster->SetNCells(1);
  UShort_t shortAbsId = absId;
  cluster->SetCellsAbsId(&shortAbsId);
  Double32_t fract = 1;
  cluster->SetCellsAmplitudeFraction(&fract);
  cluster->SetID(nClusters);
  cluster->SetEmcCpvDistance(-1);

  //MC label
  if (label < 0)
    label = 0;
 
  label += fMarkMC+fMCLabelShift;

  if (fEsdMode) {
    AliESDCaloCluster *esdClus = static_cast<AliESDCaloCluster*>(cluster);
    TArrayI parents(1, &label);
    esdClus->AddLabels(parents); 
  }
  else {
    AliAODCaloCluster *aodClus = static_cast<AliAODCaloCluster*>(cluster);
    aodClus->SetLabel(&label, 1); 
  }
  
  return cluster;
}

//________________________________________________________________________
AliPicoTrack* AliJetModelBaseTask::AddTrack(Double_t pt, Double_t eta, Double_t phi, Byte_t type, Double_t etaemc, Double_t phiemc, Double_t ptemc, Bool_t ise, Int_t label, Short_t charge, Double_t mass)
{
  // Add a track to the event.
  
  if (pt < 0 && eta < -100 && phi < 0) {
    GetRandomParticle(pt,eta,phi);
  }
  else {
    if (pt < 0) 
      pt = GetRandomPt();
    if (eta < -100) 
      eta = GetRandomEta();
    if (phi < 0) 
      phi = GetRandomPhi(pt);
  }

  if (label >= 0)
    label += fMarkMC+fMCLabelShift;
  else if (label < 0)
    label -= fMarkMC+fMCLabelShift;
  
  if(fAddV2) AddV2(phi, pt);

  const Int_t nTracks = fOutTracks->GetEntriesFast();

  AliPicoTrack *track = new ((*fOutTracks)[nTracks]) AliPicoTrack(pt, 
								  eta, 
								  phi, 
								  charge,
								  label,
								  type, 
								  etaemc, 
								  phiemc,
								  ptemc,
								  ise,
								  mass);

  return track;
}

//________________________________________________________________________
AliAODMCParticle* AliJetModelBaseTask::AddMCParticle(AliAODMCParticle *part, Int_t origIndex)
{
  const Int_t nPart = fOutMCParticles->GetEntriesFast();

  AliAODMCParticle *aodpart = new ((*fOutMCParticles)[nPart]) AliAODMCParticle(*part);

  if (origIndex + fMCLabelShift >= fOutMCParticlesMap->GetSize())
    fOutMCParticlesMap->Set((origIndex + fMCLabelShift)*2);

  fOutMCParticlesMap->AddAt(nPart, origIndex + fMCLabelShift);
  AliDebug(2, Form("Setting bin %d to %d (fMCLabelShift=%d, origIndex=%d)", 
		   origIndex + fMCLabelShift, fOutMCParticlesMap->At(origIndex + fMCLabelShift), fMCLabelShift, origIndex));

  return aodpart;
}

//_____________________________________________________________________________
void AliJetModelBaseTask::AddV2(Double_t &phi, Double_t &pt) const
{
    // similar to AliFlowTrackSimple::AddV2, except for the flow fluctuations
    Double_t phi0(phi), v2(0.), f(0.), fp(0.), phiprev(0.);
    if(fDifferentialV2) v2 = fDifferentialV2->Eval(pt);
    if(TMath::AreEqualAbs(v2, 0, 1e-5)) return; 
    // introduce flow fluctuations (gaussian)
    if(fFlowFluctuations) v2 += TMath::Sqrt(2*(v2*.25)*(v2*.25))*TMath::ErfInverse(2*(gRandom->Uniform(0, fFlowFluctuations))-1);
    for (Int_t i(0); i < 100; i++) {
        phiprev=phi; //store last value for comparison
        f =  phi-phi0+v2*TMath::Sin(2.*(phi-fPsi));
        fp = 1.0+2.0*v2*TMath::Cos(2.*(phi-fPsi)); //first derivative
        phi -= f/fp;
        if (TMath::AreEqualAbs(phiprev, phi, 1e-10)) break; 
    }
}

//_____________________________________________________________________________
void AliJetModelBaseTask::CopyCells()
{
  if (!fCaloCells)
    return;

  fAddedCells = 0;
  fCaloCells->Sort();
  for (Short_t i = 0; i < fCaloCells->GetNumberOfCells(); i++) {
    Int_t mclabel = 0;
    Double_t efrac = 0.;
    Double_t time = -1;
    Short_t cellNum = -1;
    Double_t amp = -1;

    fCaloCells->GetCell(i, cellNum, amp, time, mclabel, efrac);

    if (!fIsMC) 
      mclabel = 0;

    fOutCaloCells->SetCell(i, cellNum, amp, time, mclabel, efrac);
    fAddedCells++;
  }

  AliDebug(2, Form("%d cells from the current event", fAddedCells));
}

//________________________________________________________________________
void AliJetModelBaseTask::CopyClusters()
{
  // Copy all the clusters in the new collection
  if (!fClusters)
    return;

  const Int_t nClusters = fClusters->GetEntriesFast();
  Int_t nCopiedClusters = 0;
  
  if (fEsdMode) {
    for (Int_t i = 0; i < nClusters; ++i) {
      AliESDCaloCluster *esdcluster = static_cast<AliESDCaloCluster*>(fClusters->At(i));
      if (!esdcluster || !esdcluster->IsEMCAL())
	continue;
      AliESDCaloCluster *clus = new ((*fOutClusters)[nCopiedClusters]) AliESDCaloCluster(*esdcluster);
      if (!fIsMC) {
	TArrayI *labels = clus->GetLabelsArray();
	if (labels)
	  labels->Reset();
      }
      nCopiedClusters++;
    }
  }
  else {
    for (Int_t i = 0; i < nClusters; ++i) {
      AliAODCaloCluster *aodcluster = static_cast<AliAODCaloCluster*>(fClusters->At(i));
      if (!aodcluster || !aodcluster->IsEMCAL())
	continue;
      AliAODCaloCluster *clus = new ((*fOutClusters)[nCopiedClusters]) AliAODCaloCluster(*aodcluster);
      if (!fIsMC) 
	clus->SetLabel(0,0);
      nCopiedClusters++;
    }
  }
}

//________________________________________________________________________
void AliJetModelBaseTask::CopyTracks()
{
  // Copy all the tracks in the new collection

  if (!fTracks)
    return;

  const Int_t nTracks = fTracks->GetEntriesFast();
  Int_t nCopiedTracks = 0;
  for (Int_t i = 0; i < nTracks; ++i) {
    AliPicoTrack *picotrack = static_cast<AliPicoTrack*>(fTracks->At(i));
    if (!picotrack)
      continue;
    AliPicoTrack *track = new ((*fOutTracks)[nCopiedTracks]) AliPicoTrack(*picotrack);
    if (!fIsMC && track->GetLabel() != 0) 
      track->SetLabel(0);
    nCopiedTracks++;
  }
}

//________________________________________________________________________
void AliJetModelBaseTask::CopyMCParticles()
{
  // Copy all the MC particles in the new collection

  if (!fMCParticles)
    return;

  const Int_t nPart = fMCParticles->GetEntriesFast();
  Int_t nCopiedPart = 0;
  for (Int_t i = 0; i < nPart; ++i) {
    AliAODMCParticle *part = static_cast<AliAODMCParticle*>(fMCParticles->At(i));
    if (!part)
      continue;
    new ((*fOutMCParticles)[nCopiedPart]) AliAODMCParticle(*part);

    nCopiedPart++;
  }

  if (!fMCParticlesMap || !fOutMCParticlesMap)
    return;

  if (fOutMCParticlesMap->GetSize() < fMCParticlesMap->GetSize())
    fOutMCParticlesMap->Set(fMCParticlesMap->GetSize() * 2);

  for (Int_t i = 0; i < fMCParticlesMap->GetSize(); i++) {
    fOutMCParticlesMap->AddAt(fMCParticlesMap->At(i), i);
    if (fMCParticlesMap->At(i) >= 0)
      fMCLabelShift = i;
  }

  AliDebug(2,Form("MC particles copied. fMCLabelShift=%d",fMCLabelShift));
}

//________________________________________________________________________
void AliJetModelBaseTask::GetRandomCell(Double_t &eta, Double_t &phi, Int_t &absId)
{
  // Get random cell.

  Int_t repeats = 0;
  Double_t rndEta = eta;
  Double_t rndPhi = phi;
  do {
    if (eta < -100)
      rndEta = GetRandomEta(kTRUE);
    if (phi < 0)
      rndPhi = GetRandomPhi(kTRUE);
    fGeom->GetAbsCellIdFromEtaPhi(rndEta, rndPhi, absId);  
    repeats++;
  } while (absId == -1 && repeats < 100);
  
  if (!(absId > -1)) {
    AliWarning(Form("Could not extract random cluster! Random eta-phi extracted more than 100 times!\n"
		    "eta [%f, %f], phi [%f, %f]\n", fEtaMin, fEtaMax, fPhiMin, fPhiMax));
  }
  else {
    eta = rndEta;
    phi = rndPhi;
  }
}

//________________________________________________________________________
Double_t AliJetModelBaseTask::GetRandomEta(Bool_t emcal)
{
  // Get random eta.

  Double_t etamax = fEtaMax;
  Double_t etamin = fEtaMin;

  if (emcal) {
    const Double_t EmcalMinEta = fGeom->GetArm1EtaMin();
    const Double_t EmcalMaxEta = fGeom->GetArm1EtaMax();
    
    if (etamax > EmcalMaxEta) etamax = EmcalMaxEta;
    if (etamax < EmcalMinEta) etamax = EmcalMinEta;
    if (etamin > EmcalMaxEta) etamin = EmcalMaxEta;
    if (etamin < EmcalMinEta) etamin = EmcalMinEta;
  }

  return gRandom->Rndm() * (etamax - etamin) + etamin;
}

//________________________________________________________________________
Double_t AliJetModelBaseTask::GetRandomPhi(Bool_t emcal)
{
  // Get random phi.
  
  Double_t phimax = fPhiMax;
  Double_t phimin = fPhiMin;

  if (emcal) {
    const Double_t EmcalMinPhi = fGeom->GetArm1PhiMin() * TMath::DegToRad();
    const Double_t EmcalMaxPhi = fGeom->GetArm1PhiMax() * TMath::DegToRad();
    
    if (phimax > EmcalMaxPhi) phimax = EmcalMaxPhi;
    if (phimax < EmcalMinPhi) phimax = EmcalMinPhi;
    if (phimin > EmcalMaxPhi) phimin = EmcalMaxPhi;
    if (phimin < EmcalMinPhi) phimin = EmcalMinPhi;
  }

  Double_t result = gRandom->Rndm() * (phimax - phimin) + phimin;

  return result;
}

//________________________________________________________________________
Double_t AliJetModelBaseTask::GetRandomPt()
{
  // Get random pt.

  if (fPtSpectrum)
    return fPtSpectrum->GetRandom();
  else
    return gRandom->Rndm() * (fPtMax - fPtMin) + fPtMin;
}

//________________________________________________________________________
void AliJetModelBaseTask::GetRandomParticle(Double_t &pt, Double_t &eta, Double_t &phi, Bool_t emcal)
{
  // Get a random particle.
  
  eta = GetRandomEta(emcal);

  if (fPtPhiEvPlDistribution) {
    Double_t phimax = fPhiMax;
    Double_t phimin = fPhiMin;
    
    if (emcal) {
      const Double_t EmcalMinPhi = fGeom->GetArm1PhiMin() * TMath::DegToRad();
      const Double_t EmcalMaxPhi = fGeom->GetArm1PhiMax() * TMath::DegToRad();
      
      if (phimax > EmcalMaxPhi) phimax = EmcalMaxPhi;
      if (phimax < EmcalMinPhi) phimax = EmcalMinPhi;
      if (phimin > EmcalMaxPhi) phimin = EmcalMaxPhi;
      if (phimin < EmcalMinPhi) phimin = EmcalMinPhi;
    }
    
    if (fPtPhiEvPlDistribution->GetXmin() > phimax || fPtPhiEvPlDistribution->GetXmax() < phimin) {
      AliWarning(Form("The hisogram %s does not overlap with the EMCal acceptance limits. It will be ignored.",fPtPhiEvPlDistribution->GetName()));
      pt = GetRandomPt();
      phi = GetRandomPhi(emcal);
    }
    else {
      do {
	fPtPhiEvPlDistribution->GetRandom2(pt,phi);
	phi += fPsi;
	if (phi > TMath::Pi() * 2) phi -= TMath::Pi() * 2;
      } while (phi > phimax || phi < phimin);
    }
  }
  else {
    pt = GetRandomPt();
    phi = GetRandomPhi(emcal);
  }
}

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