ROOT logo
#include "AliBaseAODTask.h"
#include "AliForwardUtil.h"
#include "AliAODForwardMult.h"
#include "AliAODCentralMult.h"
#include <AliAnalysisManager.h>
#include <AliLog.h>
#include <AliAODEvent.h>
#include <TROOT.h>
#include <TSystem.h>
#include <TInterpreter.h>

//____________________________________________________________________
AliBaseAODTask::AliBaseAODTask()
  : AliAnalysisTaskSE(),
    fTriggerMask(0xFFFFFFFF), 
    fMinIpZ(0), 
    fMaxIpZ(-1), 
    fCentAxis(0, 0, -1), 
    fTriggers(0), 
    fEventStatus(0), 
    fVertex(0),
    fCent(0),
    fAccVertex(0),
    fAccCent(0),
    fFirstEvent(true),
    fCloneList(false),
    fSums(0), 
    fResults(0)
{
}
//____________________________________________________________________
AliBaseAODTask::AliBaseAODTask(const char* name,
			       const char* title)
  : AliAnalysisTaskSE(name),
    fTriggerMask(0xFFFFFFFF), 
    fMinIpZ(0), 
    fMaxIpZ(-1), 
    fCentAxis(0, 0, -1), 
    fTriggers(0), 
    fEventStatus(0), 
    fVertex(0),
    fCent(0),
    fAccVertex(0),
    fAccCent(0),
    fFirstEvent(true), 
    fCloneList(false),
    fSums(0), 
    fResults(0)
{
  SetTitle(title && title[0] != '\0' ? title : this->ClassName());
  fCentAxis.SetName("centAxis");
  fCentAxis.SetTitle("Centrality [%]");
  DefineOutput(1, TList::Class());
  DefineOutput(2, TList::Class());
}

//____________________________________________________________________
Bool_t 
AliBaseAODTask::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 (gInterpreter->IsLoaded(config)) 
  // gInterpreter->UnloadFile(config);

  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 
AliBaseAODTask::SetTriggerMask(const char* mask)
{
  // 
  // Set the trigger maskl 
  // 
  // Parameters:
  //    mask Trigger mask
  //
  DGUARD(fDebug,3,"Set the trigger mask: %s", mask);
  SetTriggerMask(AliAODForwardMult::MakeTriggerMask(mask));
}
//________________________________________________________________________
void 
AliBaseAODTask::SetTriggerMask(UShort_t mask) 
{ 
  DGUARD(fDebug,3,"Set the trigger mask: 0x%0x", mask);
  fTriggerMask = mask; 
  // if (fTriggerString) delete fTriggerString;
  // fTriggerString = AliForwardUtil::MakeParameter("trigger", fTriggerMask);
}
//________________________________________________________________________
void 
AliBaseAODTask::SetCentralityAxis(UShort_t n, Short_t* bins)
{
  DGUARD(fDebug,3,"Set centrality axis, %d bins", n);
  TArrayD dbins(n+1);
  for (UShort_t i = 0; i <= n; i++) 
    dbins[i] = (bins[i] == 100 ? 100.1 : bins[i]);
  fCentAxis.Set(n, dbins.GetArray());
}
//________________________________________________________________________
void 
AliBaseAODTask::SetCentralityAxis(Short_t low, Short_t high)
{
  Short_t a[] = { low, high };
  SetCentralityAxis(1, a);
}

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

  // --- Check that we have an AOD input handler ---------------------
  UShort_t aodInput = 0;
  if (!(aodInput = AliForwardUtil::CheckForAOD())) {
    AliError("Cannot proceed without and AOD handler");
    return false;
  }
  if (aodInput == 2 &&
      !AliForwardUtil::CheckForTask("AliForwardMultiplicityBase")) {
    AliError("The relevant task wasn't added to the train");
    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 (sumOut.IsNull()) sumOut = AliAnalysisManager::GetCommonFileName();
  if (resOut.IsNull()) resOut = AliAnalysisManager::GetCommonFileName();

  AliAnalysisDataContainer* sumCon = 
    mgr->CreateContainer(Form("%sSums", GetName()), TList::Class(), 
			 AliAnalysisManager::kOutputContainer, sumOut);
  AliAnalysisDataContainer* resCon = 
    mgr->CreateContainer(Form("%sResults", GetName()), TList::Class(), 
			 AliAnalysisManager::kParamContainer, resOut);
  mgr->ConnectInput(this, 0, mgr->GetCommonInputContainer());
  mgr->ConnectOutput(this, 1, sumCon);
  mgr->ConnectOutput(this, 2, resCon);
  
  return true;
}
//____________________________________________________________________
void
AliBaseAODTask::UserCreateOutputObjects()
{
  // 
  // Create output objects 
  // 
  //
  DGUARD(fDebug,1,"Create user ouput");
  fSums = new TList;
  fSums->SetName(Form("%sSums", GetName()));
  fSums->SetOwner();

  fTriggers = AliAODForwardMult::MakeTriggerHistogram("triggers",fTriggerMask);
  fTriggers->SetDirectory(0);

  fEventStatus = AliAODForwardMult::MakeStatusHistogram("status");
  fEventStatus->SetDirectory(0);

  fSums->Add(fTriggers);
  fSums->Add(fEventStatus);

  TAxis* vA = AliForwardUtil::MakeFullIpZAxis(20);
  fVertex = new TH1D("vertex", "IP_{z} of all events", 
		     vA->GetNbins(), vA->GetXbins()->GetArray());
  fVertex->SetXTitle("IP_{z} [cm]");
  fVertex->SetYTitle("Events");
  fVertex->SetDirectory(0);
  fVertex->SetFillColor(kRed+2);
  fVertex->SetFillStyle(3001);
  fVertex->SetLineColor(kRed+2);
  fSums->Add(fVertex);
  fAccVertex = static_cast<TH1D*>(fVertex->Clone("vertexAcc"));
  fAccVertex->SetTitle("IP_{z} of accepted events");
  fAccVertex->SetDirectory(0);
  fAccVertex->SetFillColor(kGreen+2);
  fAccVertex->SetLineColor(kGreen+2);
  fSums->Add(fAccVertex);

  fCent = new TH1D("cent","Centrality of all events",100, 0, 100);
  fCent->SetXTitle("Centrality [%]");
  fCent->SetYTitle("Events");
  fCent->SetFillColor(kRed+2);
  fCent->SetFillStyle(3001);
  fCent->SetLineColor(kRed+2);
  fCent->SetDirectory(0);
  fSums->Add(fCent);
  fAccCent = static_cast<TH1D*>(fCent->Clone("centAcc"));
  fAccCent->SetTitle("Centrality of accepted events");
  fAccCent->SetDirectory(0);
  fAccCent->SetFillColor(kGreen+2);
  fAccCent->SetLineColor(kGreen+2);
  fSums->Add(fAccCent);


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

  // Store centrality axis as a histogram - which can be merged
  TH1* cH = 0;
  if (fCentAxis.GetXbins() && fCentAxis.GetXbins()->GetSize() > 0) 
    cH = new TH1I(fCentAxis.GetName(), fCentAxis.GetTitle(), 
		  fCentAxis.GetNbins(), fCentAxis.GetXbins()->GetArray());
  else 
    cH = new TH1I(fCentAxis.GetName(), fCentAxis.GetTitle(), 
		  fCentAxis.GetNbins(), fCentAxis.GetXmin(), 
		  fCentAxis.GetXmax());
  cH->GetXaxis()->SetTitle(fCentAxis.GetTitle());
  cH->GetXaxis()->SetName(fCentAxis.GetName());

  fSums->Add(cH);
  fSums->Add(AliForwardUtil::MakeParameter("trigger", ULong_t(fTriggerMask)));
  fSums->Add(AliForwardUtil::MakeParameter("count", 1));
  fSums->Add(AliForwardUtil::MakeParameter("alirootRev", 
					   AliForwardUtil::AliROOTRevision()));
  fSums->Add(AliForwardUtil::MakeParameter("alirootBranch", 
					   AliForwardUtil::AliROOTBranch()));

  Print();

  PostData(1, fSums);
}

//____________________________________________________________________
AliAODForwardMult*
AliBaseAODTask::GetForward(const AliAODEvent& aod, Bool_t mc, Bool_t verb)
{
  // Get the forward object that contains our event selection stuff 
  TObject* obj = 0;
  if (mc) obj = aod.FindListObject("ForwardMC");
  else    obj = aod.FindListObject("Forward");
  if (!obj) { 
    if (verb) AliWarning("No forward object found");
    return 0;
  }
  AliAODForwardMult* forward = static_cast<AliAODForwardMult*>(obj);
  return forward;
}
//____________________________________________________________________
AliAODCentralMult*
AliBaseAODTask::GetCentral(const AliAODEvent& aod, Bool_t mc, Bool_t verb)
{
  // Get the forward object that contains our event selection stuff 
  TObject* obj = 0;
  if (mc) obj = aod.FindListObject("CentralClustersMC");
  else    obj = aod.FindListObject("CentralClusters");
  if (!obj) { 
    if (verb) AliWarning("No central object found");
    return 0;
  }
  AliAODCentralMult* central = static_cast<AliAODCentralMult*>(obj);
  return central;
}
//____________________________________________________________________
TH2D*
AliBaseAODTask::GetPrimary(const AliAODEvent& aod)
{
  TObject* obj = aod.FindListObject("primary");
  // We should have a forward object at least 
  if (!obj) {
    return 0;
  }
  TH2D* ret = static_cast<TH2D*>(obj);
  return ret;
}
  
//____________________________________________________________________
void 
AliBaseAODTask::UserExec(Option_t *) 
{
  // 
  // Process a single event 
  // 
  // Parameters:
  //    option Not used
  //
  // Main loop
  DGUARD(fDebug,1,"Analyse the AOD event");
  if (!PreEvent()) return;

  AliAODEvent* aod = AliForwardUtil::GetAODEvent(this);
  if (!aod) return;

  // Get the forward object that contains our event selection stuff 
  AliAODForwardMult* forward = GetForward(*aod);
  if (!forward) return;

  if (fFirstEvent) { 
    if (!PreData()) return;
    StoreInformation(*forward);
    fFirstEvent = false;
  }

  // Get our ip_z and centrality 
  Double_t vtx   = forward->GetIpZ();
  Float_t  cent  = forward->GetCentrality();
  fVertex->Fill(vtx);
  fCent->Fill(cent);

  // Now check our event selectio up front 
  if (!CheckEvent(*forward)) return;

  // Let user defined code do the job 
  Bool_t taken = Event(*aod);

  // Fill our histograms 
  if (taken) {
    fAccVertex->Fill(vtx);
    fAccCent->Fill(cent);
  }

  PostData(1, fSums);
  
  PostEvent();
}

//____________________________________________________________________
Bool_t
AliBaseAODTask::CheckEvent(const AliAODForwardMult& forward)
{
  if (HasCentrality())
    return forward.CheckEvent(fTriggerMask, fMinIpZ, fMaxIpZ, 
			      UShort_t(fCentAxis.GetXmin()), 
			      UShort_t(fCentAxis.GetXmax()), 
			      fTriggers, fEventStatus);
 return forward.CheckEvent(fTriggerMask, fMinIpZ, fMaxIpZ, 
			   0, 0, fTriggers, fEventStatus);
}

//____________________________________________________________________
void
AliBaseAODTask::StoreInformation(AliAODForwardMult& forward)
{
  fSums->Add(AliForwardUtil::MakeParameter("sNN", forward.GetSNN()));
  fSums->Add(AliForwardUtil::MakeParameter("sys", forward.GetSystem()));
}

//____________________________________________________________________
void
AliBaseAODTask::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 
  fSums = list;

  // Create our output container 
  TString resName(Form("%sResults", GetName()));
  if (fCloneList)
    fResults = static_cast<TList*>(fSums->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);
}

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