ROOT logo
#include "AliBaseESDTask.h"
#include "AliFMDEventInspector.h"
#include "AliForwardCorrectionManager.h"
#include "AliForwardUtil.h"
#include "AliFMDCorrELossFit.h"
#include <AliAnalysisManager.h>
#include <AliAODHandler.h>
#include <AliLog.h>
#include <AliESDEvent.h>
#include <TROOT.h>
#include <TSystem.h>
#include <TInterpreter.h>
#include <iostream>
#include <iomanip>

//____________________________________________________________________
AliBaseESDTask::AliBaseESDTask()
  : AliAnalysisTaskSE(), 
    fFirstEvent(true),
    fList(0),
    fResults(0),
    fNeededCorrections(0),
    fExtraCorrections(0),
    fCloneList(false),
    fCorrManager(0)
{}

//____________________________________________________________________
AliBaseESDTask::AliBaseESDTask(const char* name, const char* title,
			       AliCorrectionManagerBase* manager)
  : AliAnalysisTaskSE(name), 
    fFirstEvent(true),
    fList(0),
    fResults(0),
    fNeededCorrections(0),
    fExtraCorrections(0),
    fCloneList(false),
    fCorrManager(0)
{
  // The line below doesn't actually do the job - when we're
  // constructing, the derived class ins't set yet and this explicitly
  // points to an object of _this_ class.
  // SetTitle(title && title[0] != '\0' ? title : this->ClassName());
  SetTitle(title && title[0] != '\0' ? title : "");
  fCorrManager = manager;
  // if (!manager) 
  //   AliFatal("Must pass in a valid correction manager object!");
  fBranchNames = 
    "ESD:AliESDRun.,AliESDHeader.,AliMultiplicity.,"
    "AliESDFMD.,SPDVertex.,PrimaryVertex.";

  DefineOutput(1, TList::Class());
  DefineOutput(2, TList::Class());
}
//____________________________________________________________________
Bool_t
AliBaseESDTask::Connect(const char* sumFile, 
			const char* resFile,
			Bool_t      old)
{
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskForwardMult", "No analysis manager to connect to.");
    return false;
  }   

  // Add to the manager 
  mgr->AddTask(this);
  
  // Create and connect output containers 
  TString sumOut;
  TString resOut;
  if      (sumFile && sumFile[0] != '\0') sumOut = sumFile;
  if      (resFile && resFile[0] != '\0') resOut = resFile;
  else if (sumFile && sumFile[0] != '\0') resOut = sumFile;
  // If the string is null or 'default' connect to standard output file 
  if (sumOut.IsNull() || sumOut.EqualTo("default", TString::kIgnoreCase)) 
    sumOut = AliAnalysisManager::GetCommonFileName();
  // If the string is null or 'default' connect to standard output file 
  if (resOut.IsNull() || resOut.EqualTo("default", TString::kIgnoreCase)) 
    resOut = AliAnalysisManager::GetCommonFileName();

  // Always connect input 
  mgr->ConnectInput(this, 0, mgr->GetCommonInputContainer());

  // Connect sum list unless the output 'none' is specified
  if (!sumOut.EqualTo("none", TString::kIgnoreCase)) {
    TString sumName(Form("%s%s", old ? "Forward" : GetName(), old ? "" : "Sums"));
    AliAnalysisDataContainer* sumCon = 
      mgr->CreateContainer(sumName, TList::Class(), 
			   AliAnalysisManager::kOutputContainer, sumOut);
    mgr->ConnectOutput(this, 1, sumCon);
  }
  // Connect the result list unless the output 'none' is specified
  if (!resOut.EqualTo("none", TString::kIgnoreCase)) {
    TString resName(Form("%sResults", GetName()));
    AliAnalysisDataContainer* resCon = 
      mgr->CreateContainer(resName, TList::Class(), 
			   AliAnalysisManager::kParamContainer, resOut);
    mgr->ConnectOutput(this, 2, resCon);
  }
  
  return true;
}

//____________________________________________________________________
TAxis*
AliBaseESDTask::DefaultEtaAxis() const
{
  static TAxis* a = new TAxis(200, -4, 6);
  return a;
}
//____________________________________________________________________
TAxis*
AliBaseESDTask::DefaultVertexAxis() const
{
  static TAxis* a = AliForwardUtil::MakeFullIpZAxis(20);
  return a;
}
//____________________________________________________________________
void
AliBaseESDTask::SetDebug(Int_t dbg)
{
  // 
  // Set debug level 
  // 
  // Parameters:
  //    dbg debug level
  //
  GetEventInspector().SetDebug(dbg);
}


//____________________________________________________________________
Bool_t 
AliBaseESDTask::Configure(const char* macro)
{
  // --- Configure the task ------------------------------------------
  TString macroPath(gROOT->GetMacroPath());
  if (!macroPath.Contains("$(ALICE_ROOT)/PWGLF/FORWARD/analysis2")) { 
    macroPath.Append(":$(ALICE_ROOT)/PWGLF/FORWARD/analysis2");
    gROOT->SetMacroPath(macroPath);
  }
  TString mac(macro);
  if (mac.EqualTo("-default-")) mac = DefaultConfig();
  const char* config = gSystem->Which(gROOT->GetMacroPath(), mac.Data());
  if (!config) {
    AliWarningF("%s not found in %s", mac.Data(), gROOT->GetMacroPath());
    return false;
  }
  if (fTitle.IsNull()) fTitle = this->ClassName();

  AliInfoF("Loading configuration of '%s' from %s",  ClassName(), config);
  gROOT->Macro(Form("%s((%s*)%p)", config, GetTitle(), this));

  Info("Configure", "Unloading configuration script");
  gInterpreter->UnloadFile(config);

  delete config;
 
 return true;
}

//____________________________________________________________________
void 
AliBaseESDTask::LocalInit() 
{ 
  fFirstEvent = true; 
  DGUARD(fDebug,1,"Doing local initialization");
  Setup(); 
}

//____________________________________________________________________
void
AliBaseESDTask::UserCreateOutputObjects()
{
  // 
  // Create output objects 
  // 
  //
  DGUARD(fDebug,1,"Create user ouput");
  fList = new TList;
  fList->SetName(Form("%sSums", GetName()));
  fList->SetOwner();
  
  AliAnalysisManager* am = AliAnalysisManager::GetAnalysisManager();
  AliAODHandler*      ah = 
    dynamic_cast<AliAODHandler*>(am->GetOutputEventHandler());
  //if (!ah) AliFatal("No AOD output handler set in analysis manager");
  if (ah)  CreateBranches(ah);
   
  GetEventInspector().CreateOutputObjects(fList);

  if (!Book()) AliFatalF("Failed to book output objects for %s", GetName());

  // gSystem->Exec("root-config --version --prefix");
  PostData(1, fList);
}

//____________________________________________________________________
void
AliBaseESDTask::UserExec(Option_t*)
{
  // Call pre-event setup 
  PreEvent();

  // Read in selected branches 
  LoadBranches();

  // Get the input data 
  AliESDEvent* esd = GetESDEvent();
  if (!esd) return;

  // Call the user code with our event passed in 
  Event(*esd);
  // if (!Event(*esd)) {
  //   AliWarningF("Failed to process the event for %s", GetName());
  //   return;
  // }

  // Post data 
  PostData(1, fList);

  // Call post-event processing 
  PostEvent();
}

//____________________________________________________________________
void
AliBaseESDTask::Terminate(Option_t*)
{
  TList* list = dynamic_cast<TList*>(GetOutputData(1));
  if (!list) {
    AliError(Form("No output list defined (%p)", GetOutputData(1)));
    if (GetOutputData(1)) GetOutputData(1)->Print();
    return;
  }

  // Assign to our internal variable for use by sub-classes 
  fList = list;

  // Create our output container 
  TString resName(Form("%sResults", GetName()));
  if (fCloneList)
    fResults = static_cast<TList*>(fList->Clone(resName));
  else {
    fResults = new TList;
    fResults->SetName(resName);
  }
  fResults->SetOwner();

  // Now call user defined routines 
  if (!Finalize()) {
    AliErrorF("Failed to finalize this task (%s)", GetName());
    return;
  }

  PostData(2, fResults);
}

//____________________________________________________________________
Bool_t 
AliBaseESDTask::PreData(const TAxis&, const TAxis&) 
{ 
  return true; 
}


//____________________________________________________________________
Bool_t 
AliBaseESDTask::CheckCorrections(UInt_t what) const
{
  // 
  // Check if all needed corrections are there and accounted for.  If not,
  // do a Fatal exit 
  // 
  // Parameters:
  //    what Which corrections is needed
  // 
  // Return:
  //    true if all present, false otherwise
  //  
  DGUARD(fDebug,1,"Checking corrections 0x%x", what);
  if (what == 0) return true;

  AliCorrectionManagerBase* cm = GetManager();
  if (!cm) {
    AliErrorF("Check corrections=0x%x not null, "
	      "but no correction manager defined!", 
	      what);
    return false;
  }
  Bool_t ret = cm->CheckCorrections(what);
  return ret;
}
//____________________________________________________________________
Bool_t
AliBaseESDTask::ReadCorrections(const TAxis*& pe, 
			       const TAxis*& pv, 
			       Bool_t        mc,
			       Bool_t        sat)
{
  //
  // Read corrections
  //
  //
  UInt_t what = fNeededCorrections|fExtraCorrections;
  
  DGUARD(fDebug,1,"Read corrections 0x%x", what);

  AliCorrectionManagerBase* cm = GetManager();
  if (!cm && fNeededCorrections) {
    AliErrorF("Needed/extra corrections=0x%x/0x%x not null, "
	      "but no correction manager defined!", 
	      fNeededCorrections, fExtraCorrections);
    return false;
  }
  if (!cm || !what) {
    // In case we have no needed corrections, we can return here 
    if (!pe) pe = DefaultEtaAxis();
    if (!pv) pv = DefaultVertexAxis();
    return true;
  }
  cm->EnableCorrections(what);
  if (!cm->InitCorrections(GetEventInspector().GetRunNumber(),
			   GetEventInspector().GetCollisionSystem(),
			   GetEventInspector().GetEnergy(),
			   GetEventInspector().GetField(),
			   mc,
			   sat,
			   false)) { 
    AliWarning("Failed to read in some corrections, making task zombie");
    return false;
  }
  if (!CheckCorrections(fNeededCorrections)) return false;

  // Sett our persistency pointer 
  // fCorrManager = &fcm;

  // Get the eta axis from the secondary maps - if read in
  if (!pe) {
    pe = cm->GetEtaAxis();
    if (!pe) pe = DefaultEtaAxis();
  }
  // Get the vertex axis from the secondary maps - if read in
  if (!pv) {
    pv = cm->GetVertexAxis();
    if (!pv) pv = DefaultVertexAxis();
  }

  return true;
}
//____________________________________________________________________
AliESDEvent*
AliBaseESDTask::GetESDEvent()
{
  //
  // Get the ESD event. IF this is the first event, initialise
  //
  DGUARD(fDebug,1,"Get the ESD event");

  // If we're marked as a zombie, do nothing and return a null
  if (IsZombie()) return 0;

  // Try to get the ESD event 
  AliESDEvent* esd = dynamic_cast<AliESDEvent*>(InputEvent());
  if (!esd) {
    AliWarning("No ESD event found for input event");
    return 0;
  }

  // --- Load the data -----------------------------------------------
  LoadBranches();

  if (!fFirstEvent || !esd->GetESDRun()) return esd;

  // On the first event, initialize the parameters
  GetEventInspector().SetMC(MCEvent());
  GetEventInspector().ReadRunDetails(esd);
  
  AliInfoF("Initializing with parameters from the ESD:\n"
	   "         AliESDEvent::GetBeamEnergy()   ->%f\n"
	   "         AliESDEvent::GetBeamType()     ->%s\n"
	   "         AliESDEvent::GetCurrentL3()    ->%f\n"
	   "         AliESDEvent::GetMagneticField()->%f\n"
	   "         AliESDEvent::GetRunNumber()    ->%d",
	   esd->GetBeamEnergy(),
	   esd->GetBeamType(),
	   esd->GetCurrentL3(),
	   esd->GetMagneticField(),
	   esd->GetRunNumber());

  PreCorrections(esd);

  fFirstEvent = false;
  
  const   TAxis* pe = 0;
  const   TAxis* pv = 0;
  Bool_t  mc        = IsMC();
  Bool_t  sat       = false;
  Bool_t  ret       = ReadCorrections(pe, pv, mc, sat);
  if (!ret) {
    AliError("Failed to read corrections, making this a zombie");
    SetZombie(true);
    return 0;
  }
  Printf("Vertex axis: %p   Eta axis: %p", pv, pe);
  if (!pv) AliFatal("No vertex axis defined");
  if (!pe) AliFatal("No eta axis defined");

  // Initialize the event inspector 
  GetEventInspector().SetupForData(*pv);
  
  // Initialize the remaining stuff 
  if (!PreData(*pv, *pe)) {
    AliError("Failed to initialize sub-algorithms, making this a zombie");
    SetZombie(true);
    return 0;
  }
  
  this->Print("R");

  return esd;
}

//____________________________________________________________________
void
AliBaseESDTask::MarkEventForStore() const
{
  // Make sure the AOD tree is filled 
  DGUARD(fDebug,3,"Mark AOD event for storage");
  AliAnalysisManager* am = AliAnalysisManager::GetAnalysisManager();
  AliAODHandler*      ah = 
    dynamic_cast<AliAODHandler*>(am->GetOutputEventHandler());
  if (ah) ah->SetFillAOD(kTRUE);
}
#define PF(N,V,...)					\
  AliForwardUtil::PrintField(N,V, ## __VA_ARGS__)
#define PFB(N,FLAG)				\
  do {									\
    AliForwardUtil::PrintName(N);					\
    std::cout << std::boolalpha << (FLAG) << std::noboolalpha << std::endl; \
  } while(false)
#define PFV(N,VALUE)					\
  do {							\
    AliForwardUtil::PrintName(N);			\
    std::cout << (VALUE) << std::endl; } while(false)

//____________________________________________________________________
void
AliBaseESDTask::Print(Option_t* option) const
{
  // 
  // Print information 
  // 
  // Parameters:
  //    option Not used
  //  
  std::cout << std::setfill('=') << std::setw(75) << "=" 
	    << std::setfill(' ') << std::endl;
  AliForwardUtil::PrintTask(*this);
  gROOT->IncreaseDirLevel();
  PF("Off-line trigger mask", "0x%0x", fOfflineTriggerMask);
  if (GetManager()) GetManager()->Print(option);
  else  PF("No correction manager","");

  GetEventInspector().Print(option);
  gROOT->DecreaseDirLevel();
}
//
// EOF
//
 AliBaseESDTask.cxx:1
 AliBaseESDTask.cxx:2
 AliBaseESDTask.cxx:3
 AliBaseESDTask.cxx:4
 AliBaseESDTask.cxx:5
 AliBaseESDTask.cxx:6
 AliBaseESDTask.cxx:7
 AliBaseESDTask.cxx:8
 AliBaseESDTask.cxx:9
 AliBaseESDTask.cxx:10
 AliBaseESDTask.cxx:11
 AliBaseESDTask.cxx:12
 AliBaseESDTask.cxx:13
 AliBaseESDTask.cxx:14
 AliBaseESDTask.cxx:15
 AliBaseESDTask.cxx:16
 AliBaseESDTask.cxx:17
 AliBaseESDTask.cxx:18
 AliBaseESDTask.cxx:19
 AliBaseESDTask.cxx:20
 AliBaseESDTask.cxx:21
 AliBaseESDTask.cxx:22
 AliBaseESDTask.cxx:23
 AliBaseESDTask.cxx:24
 AliBaseESDTask.cxx:25
 AliBaseESDTask.cxx:26
 AliBaseESDTask.cxx:27
 AliBaseESDTask.cxx:28
 AliBaseESDTask.cxx:29
 AliBaseESDTask.cxx:30
 AliBaseESDTask.cxx:31
 AliBaseESDTask.cxx:32
 AliBaseESDTask.cxx:33
 AliBaseESDTask.cxx:34
 AliBaseESDTask.cxx:35
 AliBaseESDTask.cxx:36
 AliBaseESDTask.cxx:37
 AliBaseESDTask.cxx:38
 AliBaseESDTask.cxx:39
 AliBaseESDTask.cxx:40
 AliBaseESDTask.cxx:41
 AliBaseESDTask.cxx:42
 AliBaseESDTask.cxx:43
 AliBaseESDTask.cxx:44
 AliBaseESDTask.cxx:45
 AliBaseESDTask.cxx:46
 AliBaseESDTask.cxx:47
 AliBaseESDTask.cxx:48
 AliBaseESDTask.cxx:49
 AliBaseESDTask.cxx:50
 AliBaseESDTask.cxx:51
 AliBaseESDTask.cxx:52
 AliBaseESDTask.cxx:53
 AliBaseESDTask.cxx:54
 AliBaseESDTask.cxx:55
 AliBaseESDTask.cxx:56
 AliBaseESDTask.cxx:57
 AliBaseESDTask.cxx:58
 AliBaseESDTask.cxx:59
 AliBaseESDTask.cxx:60
 AliBaseESDTask.cxx:61
 AliBaseESDTask.cxx:62
 AliBaseESDTask.cxx:63
 AliBaseESDTask.cxx:64
 AliBaseESDTask.cxx:65
 AliBaseESDTask.cxx:66
 AliBaseESDTask.cxx:67
 AliBaseESDTask.cxx:68
 AliBaseESDTask.cxx:69
 AliBaseESDTask.cxx:70
 AliBaseESDTask.cxx:71
 AliBaseESDTask.cxx:72
 AliBaseESDTask.cxx:73
 AliBaseESDTask.cxx:74
 AliBaseESDTask.cxx:75
 AliBaseESDTask.cxx:76
 AliBaseESDTask.cxx:77
 AliBaseESDTask.cxx:78
 AliBaseESDTask.cxx:79
 AliBaseESDTask.cxx:80
 AliBaseESDTask.cxx:81
 AliBaseESDTask.cxx:82
 AliBaseESDTask.cxx:83
 AliBaseESDTask.cxx:84
 AliBaseESDTask.cxx:85
 AliBaseESDTask.cxx:86
 AliBaseESDTask.cxx:87
 AliBaseESDTask.cxx:88
 AliBaseESDTask.cxx:89
 AliBaseESDTask.cxx:90
 AliBaseESDTask.cxx:91
 AliBaseESDTask.cxx:92
 AliBaseESDTask.cxx:93
 AliBaseESDTask.cxx:94
 AliBaseESDTask.cxx:95
 AliBaseESDTask.cxx:96
 AliBaseESDTask.cxx:97
 AliBaseESDTask.cxx:98
 AliBaseESDTask.cxx:99
 AliBaseESDTask.cxx:100
 AliBaseESDTask.cxx:101
 AliBaseESDTask.cxx:102
 AliBaseESDTask.cxx:103
 AliBaseESDTask.cxx:104
 AliBaseESDTask.cxx:105
 AliBaseESDTask.cxx:106
 AliBaseESDTask.cxx:107
 AliBaseESDTask.cxx:108
 AliBaseESDTask.cxx:109
 AliBaseESDTask.cxx:110
 AliBaseESDTask.cxx:111
 AliBaseESDTask.cxx:112
 AliBaseESDTask.cxx:113
 AliBaseESDTask.cxx:114
 AliBaseESDTask.cxx:115
 AliBaseESDTask.cxx:116
 AliBaseESDTask.cxx:117
 AliBaseESDTask.cxx:118
 AliBaseESDTask.cxx:119
 AliBaseESDTask.cxx:120
 AliBaseESDTask.cxx:121
 AliBaseESDTask.cxx:122
 AliBaseESDTask.cxx:123
 AliBaseESDTask.cxx:124
 AliBaseESDTask.cxx:125
 AliBaseESDTask.cxx:126
 AliBaseESDTask.cxx:127
 AliBaseESDTask.cxx:128
 AliBaseESDTask.cxx:129
 AliBaseESDTask.cxx:130
 AliBaseESDTask.cxx:131
 AliBaseESDTask.cxx:132
 AliBaseESDTask.cxx:133
 AliBaseESDTask.cxx:134
 AliBaseESDTask.cxx:135
 AliBaseESDTask.cxx:136
 AliBaseESDTask.cxx:137
 AliBaseESDTask.cxx:138
 AliBaseESDTask.cxx:139
 AliBaseESDTask.cxx:140
 AliBaseESDTask.cxx:141
 AliBaseESDTask.cxx:142
 AliBaseESDTask.cxx:143
 AliBaseESDTask.cxx:144
 AliBaseESDTask.cxx:145
 AliBaseESDTask.cxx:146
 AliBaseESDTask.cxx:147
 AliBaseESDTask.cxx:148
 AliBaseESDTask.cxx:149
 AliBaseESDTask.cxx:150
 AliBaseESDTask.cxx:151
 AliBaseESDTask.cxx:152
 AliBaseESDTask.cxx:153
 AliBaseESDTask.cxx:154
 AliBaseESDTask.cxx:155
 AliBaseESDTask.cxx:156
 AliBaseESDTask.cxx:157
 AliBaseESDTask.cxx:158
 AliBaseESDTask.cxx:159
 AliBaseESDTask.cxx:160
 AliBaseESDTask.cxx:161
 AliBaseESDTask.cxx:162
 AliBaseESDTask.cxx:163
 AliBaseESDTask.cxx:164
 AliBaseESDTask.cxx:165
 AliBaseESDTask.cxx:166
 AliBaseESDTask.cxx:167
 AliBaseESDTask.cxx:168
 AliBaseESDTask.cxx:169
 AliBaseESDTask.cxx:170
 AliBaseESDTask.cxx:171
 AliBaseESDTask.cxx:172
 AliBaseESDTask.cxx:173
 AliBaseESDTask.cxx:174
 AliBaseESDTask.cxx:175
 AliBaseESDTask.cxx:176
 AliBaseESDTask.cxx:177
 AliBaseESDTask.cxx:178
 AliBaseESDTask.cxx:179
 AliBaseESDTask.cxx:180
 AliBaseESDTask.cxx:181
 AliBaseESDTask.cxx:182
 AliBaseESDTask.cxx:183
 AliBaseESDTask.cxx:184
 AliBaseESDTask.cxx:185
 AliBaseESDTask.cxx:186
 AliBaseESDTask.cxx:187
 AliBaseESDTask.cxx:188
 AliBaseESDTask.cxx:189
 AliBaseESDTask.cxx:190
 AliBaseESDTask.cxx:191
 AliBaseESDTask.cxx:192
 AliBaseESDTask.cxx:193
 AliBaseESDTask.cxx:194
 AliBaseESDTask.cxx:195
 AliBaseESDTask.cxx:196
 AliBaseESDTask.cxx:197
 AliBaseESDTask.cxx:198
 AliBaseESDTask.cxx:199
 AliBaseESDTask.cxx:200
 AliBaseESDTask.cxx:201
 AliBaseESDTask.cxx:202
 AliBaseESDTask.cxx:203
 AliBaseESDTask.cxx:204
 AliBaseESDTask.cxx:205
 AliBaseESDTask.cxx:206
 AliBaseESDTask.cxx:207
 AliBaseESDTask.cxx:208
 AliBaseESDTask.cxx:209
 AliBaseESDTask.cxx:210
 AliBaseESDTask.cxx:211
 AliBaseESDTask.cxx:212
 AliBaseESDTask.cxx:213
 AliBaseESDTask.cxx:214
 AliBaseESDTask.cxx:215
 AliBaseESDTask.cxx:216
 AliBaseESDTask.cxx:217
 AliBaseESDTask.cxx:218
 AliBaseESDTask.cxx:219
 AliBaseESDTask.cxx:220
 AliBaseESDTask.cxx:221
 AliBaseESDTask.cxx:222
 AliBaseESDTask.cxx:223
 AliBaseESDTask.cxx:224
 AliBaseESDTask.cxx:225
 AliBaseESDTask.cxx:226
 AliBaseESDTask.cxx:227
 AliBaseESDTask.cxx:228
 AliBaseESDTask.cxx:229
 AliBaseESDTask.cxx:230
 AliBaseESDTask.cxx:231
 AliBaseESDTask.cxx:232
 AliBaseESDTask.cxx:233
 AliBaseESDTask.cxx:234
 AliBaseESDTask.cxx:235
 AliBaseESDTask.cxx:236
 AliBaseESDTask.cxx:237
 AliBaseESDTask.cxx:238
 AliBaseESDTask.cxx:239
 AliBaseESDTask.cxx:240
 AliBaseESDTask.cxx:241
 AliBaseESDTask.cxx:242
 AliBaseESDTask.cxx:243
 AliBaseESDTask.cxx:244
 AliBaseESDTask.cxx:245
 AliBaseESDTask.cxx:246
 AliBaseESDTask.cxx:247
 AliBaseESDTask.cxx:248
 AliBaseESDTask.cxx:249
 AliBaseESDTask.cxx:250
 AliBaseESDTask.cxx:251
 AliBaseESDTask.cxx:252
 AliBaseESDTask.cxx:253
 AliBaseESDTask.cxx:254
 AliBaseESDTask.cxx:255
 AliBaseESDTask.cxx:256
 AliBaseESDTask.cxx:257
 AliBaseESDTask.cxx:258
 AliBaseESDTask.cxx:259
 AliBaseESDTask.cxx:260
 AliBaseESDTask.cxx:261
 AliBaseESDTask.cxx:262
 AliBaseESDTask.cxx:263
 AliBaseESDTask.cxx:264
 AliBaseESDTask.cxx:265
 AliBaseESDTask.cxx:266
 AliBaseESDTask.cxx:267
 AliBaseESDTask.cxx:268
 AliBaseESDTask.cxx:269
 AliBaseESDTask.cxx:270
 AliBaseESDTask.cxx:271
 AliBaseESDTask.cxx:272
 AliBaseESDTask.cxx:273
 AliBaseESDTask.cxx:274
 AliBaseESDTask.cxx:275
 AliBaseESDTask.cxx:276
 AliBaseESDTask.cxx:277
 AliBaseESDTask.cxx:278
 AliBaseESDTask.cxx:279
 AliBaseESDTask.cxx:280
 AliBaseESDTask.cxx:281
 AliBaseESDTask.cxx:282
 AliBaseESDTask.cxx:283
 AliBaseESDTask.cxx:284
 AliBaseESDTask.cxx:285
 AliBaseESDTask.cxx:286
 AliBaseESDTask.cxx:287
 AliBaseESDTask.cxx:288
 AliBaseESDTask.cxx:289
 AliBaseESDTask.cxx:290
 AliBaseESDTask.cxx:291
 AliBaseESDTask.cxx:292
 AliBaseESDTask.cxx:293
 AliBaseESDTask.cxx:294
 AliBaseESDTask.cxx:295
 AliBaseESDTask.cxx:296
 AliBaseESDTask.cxx:297
 AliBaseESDTask.cxx:298
 AliBaseESDTask.cxx:299
 AliBaseESDTask.cxx:300
 AliBaseESDTask.cxx:301
 AliBaseESDTask.cxx:302
 AliBaseESDTask.cxx:303
 AliBaseESDTask.cxx:304
 AliBaseESDTask.cxx:305
 AliBaseESDTask.cxx:306
 AliBaseESDTask.cxx:307
 AliBaseESDTask.cxx:308
 AliBaseESDTask.cxx:309
 AliBaseESDTask.cxx:310
 AliBaseESDTask.cxx:311
 AliBaseESDTask.cxx:312
 AliBaseESDTask.cxx:313
 AliBaseESDTask.cxx:314
 AliBaseESDTask.cxx:315
 AliBaseESDTask.cxx:316
 AliBaseESDTask.cxx:317
 AliBaseESDTask.cxx:318
 AliBaseESDTask.cxx:319
 AliBaseESDTask.cxx:320
 AliBaseESDTask.cxx:321
 AliBaseESDTask.cxx:322
 AliBaseESDTask.cxx:323
 AliBaseESDTask.cxx:324
 AliBaseESDTask.cxx:325
 AliBaseESDTask.cxx:326
 AliBaseESDTask.cxx:327
 AliBaseESDTask.cxx:328
 AliBaseESDTask.cxx:329
 AliBaseESDTask.cxx:330
 AliBaseESDTask.cxx:331
 AliBaseESDTask.cxx:332
 AliBaseESDTask.cxx:333
 AliBaseESDTask.cxx:334
 AliBaseESDTask.cxx:335
 AliBaseESDTask.cxx:336
 AliBaseESDTask.cxx:337
 AliBaseESDTask.cxx:338
 AliBaseESDTask.cxx:339
 AliBaseESDTask.cxx:340
 AliBaseESDTask.cxx:341
 AliBaseESDTask.cxx:342
 AliBaseESDTask.cxx:343
 AliBaseESDTask.cxx:344
 AliBaseESDTask.cxx:345
 AliBaseESDTask.cxx:346
 AliBaseESDTask.cxx:347
 AliBaseESDTask.cxx:348
 AliBaseESDTask.cxx:349
 AliBaseESDTask.cxx:350
 AliBaseESDTask.cxx:351
 AliBaseESDTask.cxx:352
 AliBaseESDTask.cxx:353
 AliBaseESDTask.cxx:354
 AliBaseESDTask.cxx:355
 AliBaseESDTask.cxx:356
 AliBaseESDTask.cxx:357
 AliBaseESDTask.cxx:358
 AliBaseESDTask.cxx:359
 AliBaseESDTask.cxx:360
 AliBaseESDTask.cxx:361
 AliBaseESDTask.cxx:362
 AliBaseESDTask.cxx:363
 AliBaseESDTask.cxx:364
 AliBaseESDTask.cxx:365
 AliBaseESDTask.cxx:366
 AliBaseESDTask.cxx:367
 AliBaseESDTask.cxx:368
 AliBaseESDTask.cxx:369
 AliBaseESDTask.cxx:370
 AliBaseESDTask.cxx:371
 AliBaseESDTask.cxx:372
 AliBaseESDTask.cxx:373
 AliBaseESDTask.cxx:374
 AliBaseESDTask.cxx:375
 AliBaseESDTask.cxx:376
 AliBaseESDTask.cxx:377
 AliBaseESDTask.cxx:378
 AliBaseESDTask.cxx:379
 AliBaseESDTask.cxx:380
 AliBaseESDTask.cxx:381
 AliBaseESDTask.cxx:382
 AliBaseESDTask.cxx:383
 AliBaseESDTask.cxx:384
 AliBaseESDTask.cxx:385
 AliBaseESDTask.cxx:386
 AliBaseESDTask.cxx:387
 AliBaseESDTask.cxx:388
 AliBaseESDTask.cxx:389
 AliBaseESDTask.cxx:390
 AliBaseESDTask.cxx:391
 AliBaseESDTask.cxx:392
 AliBaseESDTask.cxx:393
 AliBaseESDTask.cxx:394
 AliBaseESDTask.cxx:395
 AliBaseESDTask.cxx:396
 AliBaseESDTask.cxx:397
 AliBaseESDTask.cxx:398
 AliBaseESDTask.cxx:399
 AliBaseESDTask.cxx:400
 AliBaseESDTask.cxx:401
 AliBaseESDTask.cxx:402
 AliBaseESDTask.cxx:403
 AliBaseESDTask.cxx:404
 AliBaseESDTask.cxx:405
 AliBaseESDTask.cxx:406
 AliBaseESDTask.cxx:407
 AliBaseESDTask.cxx:408
 AliBaseESDTask.cxx:409
 AliBaseESDTask.cxx:410
 AliBaseESDTask.cxx:411
 AliBaseESDTask.cxx:412
 AliBaseESDTask.cxx:413
 AliBaseESDTask.cxx:414
 AliBaseESDTask.cxx:415
 AliBaseESDTask.cxx:416
 AliBaseESDTask.cxx:417
 AliBaseESDTask.cxx:418
 AliBaseESDTask.cxx:419
 AliBaseESDTask.cxx:420
 AliBaseESDTask.cxx:421
 AliBaseESDTask.cxx:422
 AliBaseESDTask.cxx:423
 AliBaseESDTask.cxx:424
 AliBaseESDTask.cxx:425
 AliBaseESDTask.cxx:426
 AliBaseESDTask.cxx:427
 AliBaseESDTask.cxx:428
 AliBaseESDTask.cxx:429
 AliBaseESDTask.cxx:430
 AliBaseESDTask.cxx:431
 AliBaseESDTask.cxx:432
 AliBaseESDTask.cxx:433
 AliBaseESDTask.cxx:434
 AliBaseESDTask.cxx:435
 AliBaseESDTask.cxx:436
 AliBaseESDTask.cxx:437
 AliBaseESDTask.cxx:438
 AliBaseESDTask.cxx:439
 AliBaseESDTask.cxx:440
 AliBaseESDTask.cxx:441
 AliBaseESDTask.cxx:442
 AliBaseESDTask.cxx:443
 AliBaseESDTask.cxx:444
 AliBaseESDTask.cxx:445
 AliBaseESDTask.cxx:446
 AliBaseESDTask.cxx:447
 AliBaseESDTask.cxx:448
 AliBaseESDTask.cxx:449
 AliBaseESDTask.cxx:450
 AliBaseESDTask.cxx:451
 AliBaseESDTask.cxx:452
 AliBaseESDTask.cxx:453
 AliBaseESDTask.cxx:454
 AliBaseESDTask.cxx:455
 AliBaseESDTask.cxx:456
 AliBaseESDTask.cxx:457
 AliBaseESDTask.cxx:458
 AliBaseESDTask.cxx:459
 AliBaseESDTask.cxx:460
 AliBaseESDTask.cxx:461
 AliBaseESDTask.cxx:462
 AliBaseESDTask.cxx:463
 AliBaseESDTask.cxx:464
 AliBaseESDTask.cxx:465
 AliBaseESDTask.cxx:466
 AliBaseESDTask.cxx:467
 AliBaseESDTask.cxx:468
 AliBaseESDTask.cxx:469
 AliBaseESDTask.cxx:470
 AliBaseESDTask.cxx:471
 AliBaseESDTask.cxx:472