#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)
{
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)
{
if (fQAhistos) {
DefineOutput(1, TList::Class());
}
fVertex[0] = 0;
fVertex[1] = 0;
fVertex[2] = 0;
}
AliJetModelBaseTask::~AliJetModelBaseTask()
{
}
void AliJetModelBaseTask::UserCreateOutputObjects()
{
if (!fQAhistos)
return;
OpenFile(1);
fOutput = new TList();
fOutput->SetOwner();
PostData(1, fOutput);
}
void AliJetModelBaseTask::UserExec(Option_t *)
{
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());
}
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()
{
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)
{
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)
{
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)
{
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());
dc->SetNExMax(oc->GetNExMax());
dc->SetM02(oc->GetM02());
dc->SetM20(oc->GetM20());
dc->SetDistanceToBadChannel(oc->GetDistanceToBadChannel());
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)
{
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)
{
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);
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)
{
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
{
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;
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;
f = phi-phi0+v2*TMath::Sin(2.*(phi-fPsi));
fp = 1.0+2.0*v2*TMath::Cos(2.*(phi-fPsi));
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()
{
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()
{
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()
{
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)
{
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)
{
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)
{
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()
{
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)
{
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()
{
}
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