ROOT logo

Bool_t AliPriorsTask()
{
  
  TBenchmark benchmark;
  benchmark.Start("AliPriorsTask");

  AliLog::SetGlobalDebugLevel(0);

  Load() ; //load the required libraries

  TChain * analysisChain = new TChain("esdTree");
  analysisChain->Add("AliESDs.root");

  Int_t nIter = 5;

  // create the task
  AliPriorsTask *task = new AliPriorsTask("Task for Priors");
  Double_t priors[5]={0.2,0.2,0.2,0.2,0.2};
  task->SetPriors(priors);
  task->SetNiterations(nIter);

  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("TestIteration");

  AliMCEventHandler*  mcHandler = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mcHandler);


   AliESDInputHandler* esdHandler = new AliESDInputHandler();
   mgr->SetInputEventHandler(esdHandler);


  // Create and connect containers for input/output
  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
  //slot 0 : default output tree (by default handled by AliAnalysisTaskSE)
  AliAnalysisDataContainer *coutput0 = mgr->CreateContainer("ctree0", TTree::Class(),AliAnalysisManager::kOutputContainer,"output.root");
  // output TH1I for event counting
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("chist0", TH1I::Class(),AliAnalysisManager::kOutputContainer,"output.root");
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("cgraph0", TH2D::Class(),AliAnalysisManager::kOutputContainer,"output.root");


  cinput0->SetData(analysisChain);

  mgr->AddTask(task);
  mgr->ConnectInput(task,0,cinput0);
  mgr->ConnectOutput(task,0,coutput0);
  mgr->ConnectOutput(task,1,coutput1);
  mgr->ConnectOutput(task,2,coutput2);



  AliEventPoolLoop* loop = new AliEventPoolLoop(nIter);
  loop->SetChain(analysisChain);
  mgr->SetEventPool(loop);

  //mgr->SetDebugLevel(1); 
  printf("READY TO RUN\n");
  //RUN !!!
  if (mgr->InitAnalysis()) {
    mgr->PrintStatus();
    mgr->StartAnalysis("mixing",analysisChain);
    //mgr->StartAnalysis("local",analysisChain);
    
  }

  benchmark.Stop("AliPriorsTask");
  benchmark.Show("AliPriorsTask");

  return kTRUE ;
}

void Load() {

  //load the required aliroot libraries
  gSystem->Load("libANALYSIS") ;
  gSystem->Load("libANALYSISalice") ;

  //compile online the task class
  gSystem->SetIncludePath("-I. -I$ALICE_ROOT/include -I$ROOTSYS/include");
  gROOT->LoadMacro("./AliPriorsTask.cxx++g");
}
 AliPriorsTask.C:1
 AliPriorsTask.C:2
 AliPriorsTask.C:3
 AliPriorsTask.C:4
 AliPriorsTask.C:5
 AliPriorsTask.C:6
 AliPriorsTask.C:7
 AliPriorsTask.C:8
 AliPriorsTask.C:9
 AliPriorsTask.C:10
 AliPriorsTask.C:11
 AliPriorsTask.C:12
 AliPriorsTask.C:13
 AliPriorsTask.C:14
 AliPriorsTask.C:15
 AliPriorsTask.C:16
 AliPriorsTask.C:17
 AliPriorsTask.C:18
 AliPriorsTask.C:19
 AliPriorsTask.C:20
 AliPriorsTask.C:21
 AliPriorsTask.C:22
 AliPriorsTask.C:23
 AliPriorsTask.C:24
 AliPriorsTask.C:25
 AliPriorsTask.C:26
 AliPriorsTask.C:27
 AliPriorsTask.C:28
 AliPriorsTask.C:29
 AliPriorsTask.C:30
 AliPriorsTask.C:31
 AliPriorsTask.C:32
 AliPriorsTask.C:33
 AliPriorsTask.C:34
 AliPriorsTask.C:35
 AliPriorsTask.C:36
 AliPriorsTask.C:37
 AliPriorsTask.C:38
 AliPriorsTask.C:39
 AliPriorsTask.C:40
 AliPriorsTask.C:41
 AliPriorsTask.C:42
 AliPriorsTask.C:43
 AliPriorsTask.C:44
 AliPriorsTask.C:45
 AliPriorsTask.C:46
 AliPriorsTask.C:47
 AliPriorsTask.C:48
 AliPriorsTask.C:49
 AliPriorsTask.C:50
 AliPriorsTask.C:51
 AliPriorsTask.C:52
 AliPriorsTask.C:53
 AliPriorsTask.C:54
 AliPriorsTask.C:55
 AliPriorsTask.C:56
 AliPriorsTask.C:57
 AliPriorsTask.C:58
 AliPriorsTask.C:59
 AliPriorsTask.C:60
 AliPriorsTask.C:61
 AliPriorsTask.C:62
 AliPriorsTask.C:63
 AliPriorsTask.C:64
 AliPriorsTask.C:65
 AliPriorsTask.C:66
 AliPriorsTask.C:67
 AliPriorsTask.C:68
 AliPriorsTask.C:69
 AliPriorsTask.C:70
 AliPriorsTask.C:71
 AliPriorsTask.C:72
 AliPriorsTask.C:73
 AliPriorsTask.C:74
 AliPriorsTask.C:75
 AliPriorsTask.C:76
 AliPriorsTask.C:77
 AliPriorsTask.C:78
 AliPriorsTask.C:79
 AliPriorsTask.C:80
 AliPriorsTask.C:81
 AliPriorsTask.C:82
 AliPriorsTask.C:83