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

#include "AliJetEmbeddingFromPYTHIATask.h"

#include <TFile.h>
#include <TMath.h>
#include <TString.h>
#include <TRandom.h>
#include <TParameter.h>
#include <TH1I.h>
#include <TGrid.h>
#include <THashTable.h>
#include <TSystem.h>

#include "AliVEvent.h"
#include "AliLog.h"

ClassImp(AliJetEmbeddingFromPYTHIATask)

//________________________________________________________________________
AliJetEmbeddingFromPYTHIATask::AliJetEmbeddingFromPYTHIATask() : 
  AliJetEmbeddingFromAODTask("AliJetEmbeddingFromPYTHIATask"),
  fPYTHIAPath(),
  fPtHardBinScaling(),
  fLHC11hAnchorRun(kTRUE),
  fAnchorRun(-1),
  fFileTable(0),
  fUseAsVetoTable(kTRUE),
  fMinEntriesPerPtHardBin(1),
  fCurrentPtHardBin(-1),
  fPtHardBinParam(0),
  fPtHardBinCount(0),
  fHistPtHardBins(0)
{
  // Default constructor.
  SetSuffix("PYTHIAEmbedding");
  fTotalFiles = 140;
  fRandomAccess = kTRUE;
  SetAODMC(kTRUE);
}

//________________________________________________________________________
AliJetEmbeddingFromPYTHIATask::AliJetEmbeddingFromPYTHIATask(const char *name, Bool_t drawqa) : 
  AliJetEmbeddingFromAODTask(name, drawqa),
  fPYTHIAPath("alien:///alice/sim/2012/LHC12a15e_fix/%d/%d/AOD149/%04d/AliAOD.root"),
  fPtHardBinScaling(),
  fLHC11hAnchorRun(kTRUE),
  fAnchorRun(-1),
  fFileTable(0),
  fUseAsVetoTable(kTRUE),
  fMinEntriesPerPtHardBin(1),
  fCurrentPtHardBin(-1),
  fPtHardBinParam(0),
  fPtHardBinCount(0),
  fHistPtHardBins(0)
{
  // Standard constructor.
  SetSuffix("PYTHIAEmbedding");
  fTotalFiles = 140;
  fRandomAccess = kTRUE;
  SetAODMC(kTRUE);
}

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

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

  AliJetModelBaseTask::UserCreateOutputObjects();

  fHistPtHardBins = new TH1F("fHistPtHardBins", "fHistPtHardBins", 11, 0, 11);
  fHistPtHardBins->GetXaxis()->SetTitle("p_{T} hard bin");
  fHistPtHardBins->GetYaxis()->SetTitle("total events");
  fOutput->Add(fHistPtHardBins);

  const Int_t ptHardLo[11] = { 0, 5,11,21,36,57, 84,117,152,191,234};
  const Int_t ptHardHi[11] = { 5,11,21,36,57,84,117,152,191,234,1000000};

  for (Int_t i = 1; i < 12; i++) 
    fHistPtHardBins->GetXaxis()->SetBinLabel(i, Form("%d-%d",ptHardLo[i-1],ptHardHi[i-1]));

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

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

  PostData(1, fOutput);
}

//________________________________________________________________________
Bool_t AliJetEmbeddingFromPYTHIATask::ExecOnce() 
{
  if (fPtHardBinScaling.GetSize() > 0) {
    Double_t sum = 0;
    for (Int_t i = 0; i < fPtHardBinScaling.GetSize(); i++) 
      sum += fPtHardBinScaling[i];
    
    if (sum == 0) {
      AliWarning("No hard pt bin scaling!");
      sum = fPtHardBinScaling.GetSize();
      for (Int_t i = 0; i < fPtHardBinScaling.GetSize(); i++) 
        fPtHardBinScaling[i] /= sum;
    }
    else {
      for (Int_t i = 0; i < fPtHardBinScaling.GetSize(); i++) 
        fPtHardBinScaling[i] /= sum;
    }
  }

  fPtHardBinParam = static_cast<TParameter<int>*>(InputEvent()->FindListObject("PYTHIAPtHardBin"));
  if (!fPtHardBinParam) {
    fPtHardBinParam = new TParameter<int>("PYTHIAPtHardBin", 0);
    AliDebug(3,"Adding pt hard bin param object to the event list...");
    InputEvent()->AddObject(fPtHardBinParam);
  }

  return AliJetEmbeddingFromAODTask::ExecOnce();
}

//________________________________________________________________________
Bool_t AliJetEmbeddingFromPYTHIATask::GetNextEntry()
{
  if (fCurrentPtHardBin < 0 || (fMinEntriesPerPtHardBin >= 0 && fPtHardBinCount >= fMinEntriesPerPtHardBin)) {
    fPtHardBinCount = 0;

    Int_t newPtHard = GetRandomPtHardBin();
    
    if (newPtHard != fCurrentPtHardBin) {
      fPtHardBinParam->SetVal(newPtHard);
      fCurrentPtHardBin = newPtHard;
      if (!OpenNextFile()) return kFALSE;
    }
  }

  fPtHardBinCount++;
  if (fHistPtHardBins) fHistPtHardBins->SetBinContent(fCurrentPtHardBin+1, fHistPtHardBins->GetBinContent(fCurrentPtHardBin+1)+1);

  return AliJetEmbeddingFromAODTask::GetNextEntry();
}

//________________________________________________________________________
Int_t AliJetEmbeddingFromPYTHIATask::GetRandomPtHardBin() 
{
  static Int_t order[20]={-1};

  if (order[0] == -1)
    TMath::Sort(fPtHardBinScaling.GetSize(), fPtHardBinScaling.GetArray(), order);

  Double_t rnd = gRandom->Rndm();
  Double_t sum = 0;
  Int_t ptHard = -1;
  for (Int_t i = 0; i < fPtHardBinScaling.GetSize(); i++) {
    sum += fPtHardBinScaling[order[i]];
    if (sum >= rnd) {
      ptHard = order[i];
      break;
    }
  }

  return ptHard;
}

//________________________________________________________________________
Bool_t AliJetEmbeddingFromPYTHIATask::UserNotify()
{
  if (!fLHC11hAnchorRun)
    return kTRUE;
  
  Int_t runNumber = InputEvent()->GetRunNumber();

  Int_t semiGoodRunList[32] = {169975, 169981, 170038, 170040, 170083, 170084, 170085, 
			       170088, 170089, 170091, 170152, 170155, 170159, 170163, 
			       170193, 170195, 170203, 170204, 170228, 170230, 170268, 
			       170269, 170270, 170306, 170308, 170309, 169238, 169160, 
			       169156, 169148, 169145, 169144};

  fAnchorRun = 169838; // Assume it is a good run

  for (Int_t i = 0; i < 32; i++) {
    if (runNumber == semiGoodRunList[i]) { // If it is semi good, change the anchor run
      fAnchorRun = 170040;
      break;
    }
  }

  return kTRUE;
}

//________________________________________________________________________
TFile* AliJetEmbeddingFromPYTHIATask::GetNextFile() 
{
  fCurrentAODFileID = TMath::Nint(gRandom->Rndm()*(fTotalFiles-1))+1;

  if (fMinEntriesPerPtHardBin < 0) {
    fCurrentPtHardBin = GetRandomPtHardBin();
    fPtHardBinParam->SetVal(fCurrentPtHardBin);
  }

  TString fileName;

  if (fAnchorRun>0)
    fileName = Form(fPYTHIAPath.Data(), fAnchorRun, fCurrentPtHardBin, fCurrentAODFileID);
  else
    fileName = Form(fPYTHIAPath.Data(), fCurrentPtHardBin, fCurrentAODFileID);

  if (fFileTable && fFileTable->GetEntries() > 0) {
    TObject* obj = fFileTable->FindObject(fileName);
    if (obj != 0 && fUseAsVetoTable) {
      AliWarning(Form("File %s found in the vetoed file table. Skipping...", fileName.Data()));
      return 0;
    } 
    if (obj == 0 && !fUseAsVetoTable) {
      AliWarning(Form("File %s not found in the allowed file table. Skipping...", fileName.Data()));
      return 0;
    }
  }

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

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

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

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

  return file;
}
 AliJetEmbeddingFromPYTHIATask.cxx:1
 AliJetEmbeddingFromPYTHIATask.cxx:2
 AliJetEmbeddingFromPYTHIATask.cxx:3
 AliJetEmbeddingFromPYTHIATask.cxx:4
 AliJetEmbeddingFromPYTHIATask.cxx:5
 AliJetEmbeddingFromPYTHIATask.cxx:6
 AliJetEmbeddingFromPYTHIATask.cxx:7
 AliJetEmbeddingFromPYTHIATask.cxx:8
 AliJetEmbeddingFromPYTHIATask.cxx:9
 AliJetEmbeddingFromPYTHIATask.cxx:10
 AliJetEmbeddingFromPYTHIATask.cxx:11
 AliJetEmbeddingFromPYTHIATask.cxx:12
 AliJetEmbeddingFromPYTHIATask.cxx:13
 AliJetEmbeddingFromPYTHIATask.cxx:14
 AliJetEmbeddingFromPYTHIATask.cxx:15
 AliJetEmbeddingFromPYTHIATask.cxx:16
 AliJetEmbeddingFromPYTHIATask.cxx:17
 AliJetEmbeddingFromPYTHIATask.cxx:18
 AliJetEmbeddingFromPYTHIATask.cxx:19
 AliJetEmbeddingFromPYTHIATask.cxx:20
 AliJetEmbeddingFromPYTHIATask.cxx:21
 AliJetEmbeddingFromPYTHIATask.cxx:22
 AliJetEmbeddingFromPYTHIATask.cxx:23
 AliJetEmbeddingFromPYTHIATask.cxx:24
 AliJetEmbeddingFromPYTHIATask.cxx:25
 AliJetEmbeddingFromPYTHIATask.cxx:26
 AliJetEmbeddingFromPYTHIATask.cxx:27
 AliJetEmbeddingFromPYTHIATask.cxx:28
 AliJetEmbeddingFromPYTHIATask.cxx:29
 AliJetEmbeddingFromPYTHIATask.cxx:30
 AliJetEmbeddingFromPYTHIATask.cxx:31
 AliJetEmbeddingFromPYTHIATask.cxx:32
 AliJetEmbeddingFromPYTHIATask.cxx:33
 AliJetEmbeddingFromPYTHIATask.cxx:34
 AliJetEmbeddingFromPYTHIATask.cxx:35
 AliJetEmbeddingFromPYTHIATask.cxx:36
 AliJetEmbeddingFromPYTHIATask.cxx:37
 AliJetEmbeddingFromPYTHIATask.cxx:38
 AliJetEmbeddingFromPYTHIATask.cxx:39
 AliJetEmbeddingFromPYTHIATask.cxx:40
 AliJetEmbeddingFromPYTHIATask.cxx:41
 AliJetEmbeddingFromPYTHIATask.cxx:42
 AliJetEmbeddingFromPYTHIATask.cxx:43
 AliJetEmbeddingFromPYTHIATask.cxx:44
 AliJetEmbeddingFromPYTHIATask.cxx:45
 AliJetEmbeddingFromPYTHIATask.cxx:46
 AliJetEmbeddingFromPYTHIATask.cxx:47
 AliJetEmbeddingFromPYTHIATask.cxx:48
 AliJetEmbeddingFromPYTHIATask.cxx:49
 AliJetEmbeddingFromPYTHIATask.cxx:50
 AliJetEmbeddingFromPYTHIATask.cxx:51
 AliJetEmbeddingFromPYTHIATask.cxx:52
 AliJetEmbeddingFromPYTHIATask.cxx:53
 AliJetEmbeddingFromPYTHIATask.cxx:54
 AliJetEmbeddingFromPYTHIATask.cxx:55
 AliJetEmbeddingFromPYTHIATask.cxx:56
 AliJetEmbeddingFromPYTHIATask.cxx:57
 AliJetEmbeddingFromPYTHIATask.cxx:58
 AliJetEmbeddingFromPYTHIATask.cxx:59
 AliJetEmbeddingFromPYTHIATask.cxx:60
 AliJetEmbeddingFromPYTHIATask.cxx:61
 AliJetEmbeddingFromPYTHIATask.cxx:62
 AliJetEmbeddingFromPYTHIATask.cxx:63
 AliJetEmbeddingFromPYTHIATask.cxx:64
 AliJetEmbeddingFromPYTHIATask.cxx:65
 AliJetEmbeddingFromPYTHIATask.cxx:66
 AliJetEmbeddingFromPYTHIATask.cxx:67
 AliJetEmbeddingFromPYTHIATask.cxx:68
 AliJetEmbeddingFromPYTHIATask.cxx:69
 AliJetEmbeddingFromPYTHIATask.cxx:70
 AliJetEmbeddingFromPYTHIATask.cxx:71
 AliJetEmbeddingFromPYTHIATask.cxx:72
 AliJetEmbeddingFromPYTHIATask.cxx:73
 AliJetEmbeddingFromPYTHIATask.cxx:74
 AliJetEmbeddingFromPYTHIATask.cxx:75
 AliJetEmbeddingFromPYTHIATask.cxx:76
 AliJetEmbeddingFromPYTHIATask.cxx:77
 AliJetEmbeddingFromPYTHIATask.cxx:78
 AliJetEmbeddingFromPYTHIATask.cxx:79
 AliJetEmbeddingFromPYTHIATask.cxx:80
 AliJetEmbeddingFromPYTHIATask.cxx:81
 AliJetEmbeddingFromPYTHIATask.cxx:82
 AliJetEmbeddingFromPYTHIATask.cxx:83
 AliJetEmbeddingFromPYTHIATask.cxx:84
 AliJetEmbeddingFromPYTHIATask.cxx:85
 AliJetEmbeddingFromPYTHIATask.cxx:86
 AliJetEmbeddingFromPYTHIATask.cxx:87
 AliJetEmbeddingFromPYTHIATask.cxx:88
 AliJetEmbeddingFromPYTHIATask.cxx:89
 AliJetEmbeddingFromPYTHIATask.cxx:90
 AliJetEmbeddingFromPYTHIATask.cxx:91
 AliJetEmbeddingFromPYTHIATask.cxx:92
 AliJetEmbeddingFromPYTHIATask.cxx:93
 AliJetEmbeddingFromPYTHIATask.cxx:94
 AliJetEmbeddingFromPYTHIATask.cxx:95
 AliJetEmbeddingFromPYTHIATask.cxx:96
 AliJetEmbeddingFromPYTHIATask.cxx:97
 AliJetEmbeddingFromPYTHIATask.cxx:98
 AliJetEmbeddingFromPYTHIATask.cxx:99
 AliJetEmbeddingFromPYTHIATask.cxx:100
 AliJetEmbeddingFromPYTHIATask.cxx:101
 AliJetEmbeddingFromPYTHIATask.cxx:102
 AliJetEmbeddingFromPYTHIATask.cxx:103
 AliJetEmbeddingFromPYTHIATask.cxx:104
 AliJetEmbeddingFromPYTHIATask.cxx:105
 AliJetEmbeddingFromPYTHIATask.cxx:106
 AliJetEmbeddingFromPYTHIATask.cxx:107
 AliJetEmbeddingFromPYTHIATask.cxx:108
 AliJetEmbeddingFromPYTHIATask.cxx:109
 AliJetEmbeddingFromPYTHIATask.cxx:110
 AliJetEmbeddingFromPYTHIATask.cxx:111
 AliJetEmbeddingFromPYTHIATask.cxx:112
 AliJetEmbeddingFromPYTHIATask.cxx:113
 AliJetEmbeddingFromPYTHIATask.cxx:114
 AliJetEmbeddingFromPYTHIATask.cxx:115
 AliJetEmbeddingFromPYTHIATask.cxx:116
 AliJetEmbeddingFromPYTHIATask.cxx:117
 AliJetEmbeddingFromPYTHIATask.cxx:118
 AliJetEmbeddingFromPYTHIATask.cxx:119
 AliJetEmbeddingFromPYTHIATask.cxx:120
 AliJetEmbeddingFromPYTHIATask.cxx:121
 AliJetEmbeddingFromPYTHIATask.cxx:122
 AliJetEmbeddingFromPYTHIATask.cxx:123
 AliJetEmbeddingFromPYTHIATask.cxx:124
 AliJetEmbeddingFromPYTHIATask.cxx:125
 AliJetEmbeddingFromPYTHIATask.cxx:126
 AliJetEmbeddingFromPYTHIATask.cxx:127
 AliJetEmbeddingFromPYTHIATask.cxx:128
 AliJetEmbeddingFromPYTHIATask.cxx:129
 AliJetEmbeddingFromPYTHIATask.cxx:130
 AliJetEmbeddingFromPYTHIATask.cxx:131
 AliJetEmbeddingFromPYTHIATask.cxx:132
 AliJetEmbeddingFromPYTHIATask.cxx:133
 AliJetEmbeddingFromPYTHIATask.cxx:134
 AliJetEmbeddingFromPYTHIATask.cxx:135
 AliJetEmbeddingFromPYTHIATask.cxx:136
 AliJetEmbeddingFromPYTHIATask.cxx:137
 AliJetEmbeddingFromPYTHIATask.cxx:138
 AliJetEmbeddingFromPYTHIATask.cxx:139
 AliJetEmbeddingFromPYTHIATask.cxx:140
 AliJetEmbeddingFromPYTHIATask.cxx:141
 AliJetEmbeddingFromPYTHIATask.cxx:142
 AliJetEmbeddingFromPYTHIATask.cxx:143
 AliJetEmbeddingFromPYTHIATask.cxx:144
 AliJetEmbeddingFromPYTHIATask.cxx:145
 AliJetEmbeddingFromPYTHIATask.cxx:146
 AliJetEmbeddingFromPYTHIATask.cxx:147
 AliJetEmbeddingFromPYTHIATask.cxx:148
 AliJetEmbeddingFromPYTHIATask.cxx:149
 AliJetEmbeddingFromPYTHIATask.cxx:150
 AliJetEmbeddingFromPYTHIATask.cxx:151
 AliJetEmbeddingFromPYTHIATask.cxx:152
 AliJetEmbeddingFromPYTHIATask.cxx:153
 AliJetEmbeddingFromPYTHIATask.cxx:154
 AliJetEmbeddingFromPYTHIATask.cxx:155
 AliJetEmbeddingFromPYTHIATask.cxx:156
 AliJetEmbeddingFromPYTHIATask.cxx:157
 AliJetEmbeddingFromPYTHIATask.cxx:158
 AliJetEmbeddingFromPYTHIATask.cxx:159
 AliJetEmbeddingFromPYTHIATask.cxx:160
 AliJetEmbeddingFromPYTHIATask.cxx:161
 AliJetEmbeddingFromPYTHIATask.cxx:162
 AliJetEmbeddingFromPYTHIATask.cxx:163
 AliJetEmbeddingFromPYTHIATask.cxx:164
 AliJetEmbeddingFromPYTHIATask.cxx:165
 AliJetEmbeddingFromPYTHIATask.cxx:166
 AliJetEmbeddingFromPYTHIATask.cxx:167
 AliJetEmbeddingFromPYTHIATask.cxx:168
 AliJetEmbeddingFromPYTHIATask.cxx:169
 AliJetEmbeddingFromPYTHIATask.cxx:170
 AliJetEmbeddingFromPYTHIATask.cxx:171
 AliJetEmbeddingFromPYTHIATask.cxx:172
 AliJetEmbeddingFromPYTHIATask.cxx:173
 AliJetEmbeddingFromPYTHIATask.cxx:174
 AliJetEmbeddingFromPYTHIATask.cxx:175
 AliJetEmbeddingFromPYTHIATask.cxx:176
 AliJetEmbeddingFromPYTHIATask.cxx:177
 AliJetEmbeddingFromPYTHIATask.cxx:178
 AliJetEmbeddingFromPYTHIATask.cxx:179
 AliJetEmbeddingFromPYTHIATask.cxx:180
 AliJetEmbeddingFromPYTHIATask.cxx:181
 AliJetEmbeddingFromPYTHIATask.cxx:182
 AliJetEmbeddingFromPYTHIATask.cxx:183
 AliJetEmbeddingFromPYTHIATask.cxx:184
 AliJetEmbeddingFromPYTHIATask.cxx:185
 AliJetEmbeddingFromPYTHIATask.cxx:186
 AliJetEmbeddingFromPYTHIATask.cxx:187
 AliJetEmbeddingFromPYTHIATask.cxx:188
 AliJetEmbeddingFromPYTHIATask.cxx:189
 AliJetEmbeddingFromPYTHIATask.cxx:190
 AliJetEmbeddingFromPYTHIATask.cxx:191
 AliJetEmbeddingFromPYTHIATask.cxx:192
 AliJetEmbeddingFromPYTHIATask.cxx:193
 AliJetEmbeddingFromPYTHIATask.cxx:194
 AliJetEmbeddingFromPYTHIATask.cxx:195
 AliJetEmbeddingFromPYTHIATask.cxx:196
 AliJetEmbeddingFromPYTHIATask.cxx:197
 AliJetEmbeddingFromPYTHIATask.cxx:198
 AliJetEmbeddingFromPYTHIATask.cxx:199
 AliJetEmbeddingFromPYTHIATask.cxx:200
 AliJetEmbeddingFromPYTHIATask.cxx:201
 AliJetEmbeddingFromPYTHIATask.cxx:202
 AliJetEmbeddingFromPYTHIATask.cxx:203
 AliJetEmbeddingFromPYTHIATask.cxx:204
 AliJetEmbeddingFromPYTHIATask.cxx:205
 AliJetEmbeddingFromPYTHIATask.cxx:206
 AliJetEmbeddingFromPYTHIATask.cxx:207
 AliJetEmbeddingFromPYTHIATask.cxx:208
 AliJetEmbeddingFromPYTHIATask.cxx:209
 AliJetEmbeddingFromPYTHIATask.cxx:210
 AliJetEmbeddingFromPYTHIATask.cxx:211
 AliJetEmbeddingFromPYTHIATask.cxx:212
 AliJetEmbeddingFromPYTHIATask.cxx:213
 AliJetEmbeddingFromPYTHIATask.cxx:214
 AliJetEmbeddingFromPYTHIATask.cxx:215
 AliJetEmbeddingFromPYTHIATask.cxx:216
 AliJetEmbeddingFromPYTHIATask.cxx:217
 AliJetEmbeddingFromPYTHIATask.cxx:218
 AliJetEmbeddingFromPYTHIATask.cxx:219
 AliJetEmbeddingFromPYTHIATask.cxx:220
 AliJetEmbeddingFromPYTHIATask.cxx:221
 AliJetEmbeddingFromPYTHIATask.cxx:222
 AliJetEmbeddingFromPYTHIATask.cxx:223
 AliJetEmbeddingFromPYTHIATask.cxx:224
 AliJetEmbeddingFromPYTHIATask.cxx:225
 AliJetEmbeddingFromPYTHIATask.cxx:226
 AliJetEmbeddingFromPYTHIATask.cxx:227
 AliJetEmbeddingFromPYTHIATask.cxx:228
 AliJetEmbeddingFromPYTHIATask.cxx:229
 AliJetEmbeddingFromPYTHIATask.cxx:230
 AliJetEmbeddingFromPYTHIATask.cxx:231
 AliJetEmbeddingFromPYTHIATask.cxx:232
 AliJetEmbeddingFromPYTHIATask.cxx:233
 AliJetEmbeddingFromPYTHIATask.cxx:234
 AliJetEmbeddingFromPYTHIATask.cxx:235
 AliJetEmbeddingFromPYTHIATask.cxx:236
 AliJetEmbeddingFromPYTHIATask.cxx:237
 AliJetEmbeddingFromPYTHIATask.cxx:238
 AliJetEmbeddingFromPYTHIATask.cxx:239
 AliJetEmbeddingFromPYTHIATask.cxx:240
 AliJetEmbeddingFromPYTHIATask.cxx:241
 AliJetEmbeddingFromPYTHIATask.cxx:242
 AliJetEmbeddingFromPYTHIATask.cxx:243
 AliJetEmbeddingFromPYTHIATask.cxx:244
 AliJetEmbeddingFromPYTHIATask.cxx:245
 AliJetEmbeddingFromPYTHIATask.cxx:246
 AliJetEmbeddingFromPYTHIATask.cxx:247
 AliJetEmbeddingFromPYTHIATask.cxx:248
 AliJetEmbeddingFromPYTHIATask.cxx:249
 AliJetEmbeddingFromPYTHIATask.cxx:250
 AliJetEmbeddingFromPYTHIATask.cxx:251
 AliJetEmbeddingFromPYTHIATask.cxx:252
 AliJetEmbeddingFromPYTHIATask.cxx:253
 AliJetEmbeddingFromPYTHIATask.cxx:254
 AliJetEmbeddingFromPYTHIATask.cxx:255
 AliJetEmbeddingFromPYTHIATask.cxx:256
 AliJetEmbeddingFromPYTHIATask.cxx:257
 AliJetEmbeddingFromPYTHIATask.cxx:258
 AliJetEmbeddingFromPYTHIATask.cxx:259
 AliJetEmbeddingFromPYTHIATask.cxx:260
 AliJetEmbeddingFromPYTHIATask.cxx:261