ROOT logo
#ifndef __CINT__
#include <TString.h>
#endif
AliAnalysisTaskSE *AddRsnAnalysisTaskTrain(TString addRsnManager="AddRsnToManagerTrain.C",
                                           Int_t isESD=0,
                                           Int_t isMC=0,
                                           Int_t isPP=1,
                                           Int_t useRsnMini = 1,
                                           Int_t useMixing = 0,
                                           Int_t numMix = 10,
                                           Int_t fullOutput = 1,
                                           AliRsnInputHandler *rsnIH=0,
                                           TString postfix="")
{
   // create manager
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) { Printf("Error [AddRsnAnalysisTask%s] : mgr is null !!!",postfix.Data()); return 0;}

   // initialize task with all available slots, even if not all of them will be used:
   AliAnalysisTaskSE *task = 0;

   TString lego_path = AliAnalysisManager::GetGlobalStr("rsnLegoTrainPath",valid);
   TString rsnManagerMacro = "RsnManagerTrain.C";
   gROOT->LoadMacro(gSystem->EpandPathName(TString::Format("%s/%s",lego_path.Data(),rsnManagerMacro.Data()).Data()));
   TList *listRsn = RsnManagerTrain(addRsnManager,isESD,isMC,isPP,useRsnMini,useMixing,numMix,fullOutput);
   if (!listRsn) return 0;

   Bool_t valid;
   Int_t isRsnMini = AliAnalysisManager::GetGlobalInt("rsnUseMiniPackage",valid);
   Int_t useMC = AliAnalysisManager::GetGlobalInt("rsnUseMC",valid);
      
   if (isRsnMini) {
      postfix.Prepend("Mini");
      AliRsnMiniAnalysisTask *taskRsnMini = new AliRsnMiniAnalysisTask(Form("Rsn%s",postfix.Data()),useMC);
      Int_t refreshPrint = AliAnalysisManager::GetGlobalInt("rsnMixPrintRefresh",valid);
      if (valid) taskRsnMini->SetMixPrintRefresh(refreshPrint);
      task = (AliAnalysisTaskSE *) taskRsnMini;
   }
   else {
      AliRsnAnalysisTask *taskRsn = new AliRsnAnalysisTask(Form("Rsn%s",postfix.Data()));
      task = (AliAnalysisTaskSE *) taskRsn;
   }

   // TODO this is tmp hack
   if (!rsnIH) rsnIH = new AliRsnInputHandler();

   //   gROOT->LoadMacro("RsnConfig.C");
   if (!RsnConfig(task,useMC,isMixing,rsnIH,listRsn)) {
      Printf("Error in RsnConfig.C");
      return 0;
   }

   // add the task to manager
   mgr->AddTask(task);

   AliRsnDaughterSelector *sel = 0;

   if (!isRsnMini) {
      sel = rsnIH->GetSelector();
      sel->Init();
   }

   // connect input container according to source choice
   mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());

   // create paths for the output in the common file
   TString commonPath = AliAnalysisManager::GetCommonFileName();

   // create containers for output
   AliAnalysisDataContainer *output = mgr->CreateContainer(Form("RsnHist%s", postfix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, commonPath.Data());
   mgr->ConnectOutput(task, 1, output);

   return task;
}
 AddRsnAnalysisTaskTrain.C:1
 AddRsnAnalysisTaskTrain.C:2
 AddRsnAnalysisTaskTrain.C:3
 AddRsnAnalysisTaskTrain.C:4
 AddRsnAnalysisTaskTrain.C:5
 AddRsnAnalysisTaskTrain.C:6
 AddRsnAnalysisTaskTrain.C:7
 AddRsnAnalysisTaskTrain.C:8
 AddRsnAnalysisTaskTrain.C:9
 AddRsnAnalysisTaskTrain.C:10
 AddRsnAnalysisTaskTrain.C:11
 AddRsnAnalysisTaskTrain.C:12
 AddRsnAnalysisTaskTrain.C:13
 AddRsnAnalysisTaskTrain.C:14
 AddRsnAnalysisTaskTrain.C:15
 AddRsnAnalysisTaskTrain.C:16
 AddRsnAnalysisTaskTrain.C:17
 AddRsnAnalysisTaskTrain.C:18
 AddRsnAnalysisTaskTrain.C:19
 AddRsnAnalysisTaskTrain.C:20
 AddRsnAnalysisTaskTrain.C:21
 AddRsnAnalysisTaskTrain.C:22
 AddRsnAnalysisTaskTrain.C:23
 AddRsnAnalysisTaskTrain.C:24
 AddRsnAnalysisTaskTrain.C:25
 AddRsnAnalysisTaskTrain.C:26
 AddRsnAnalysisTaskTrain.C:27
 AddRsnAnalysisTaskTrain.C:28
 AddRsnAnalysisTaskTrain.C:29
 AddRsnAnalysisTaskTrain.C:30
 AddRsnAnalysisTaskTrain.C:31
 AddRsnAnalysisTaskTrain.C:32
 AddRsnAnalysisTaskTrain.C:33
 AddRsnAnalysisTaskTrain.C:34
 AddRsnAnalysisTaskTrain.C:35
 AddRsnAnalysisTaskTrain.C:36
 AddRsnAnalysisTaskTrain.C:37
 AddRsnAnalysisTaskTrain.C:38
 AddRsnAnalysisTaskTrain.C:39
 AddRsnAnalysisTaskTrain.C:40
 AddRsnAnalysisTaskTrain.C:41
 AddRsnAnalysisTaskTrain.C:42
 AddRsnAnalysisTaskTrain.C:43
 AddRsnAnalysisTaskTrain.C:44
 AddRsnAnalysisTaskTrain.C:45
 AddRsnAnalysisTaskTrain.C:46
 AddRsnAnalysisTaskTrain.C:47
 AddRsnAnalysisTaskTrain.C:48
 AddRsnAnalysisTaskTrain.C:49
 AddRsnAnalysisTaskTrain.C:50
 AddRsnAnalysisTaskTrain.C:51
 AddRsnAnalysisTaskTrain.C:52
 AddRsnAnalysisTaskTrain.C:53
 AddRsnAnalysisTaskTrain.C:54
 AddRsnAnalysisTaskTrain.C:55
 AddRsnAnalysisTaskTrain.C:56
 AddRsnAnalysisTaskTrain.C:57
 AddRsnAnalysisTaskTrain.C:58
 AddRsnAnalysisTaskTrain.C:59
 AddRsnAnalysisTaskTrain.C:60
 AddRsnAnalysisTaskTrain.C:61
 AddRsnAnalysisTaskTrain.C:62
 AddRsnAnalysisTaskTrain.C:63
 AddRsnAnalysisTaskTrain.C:64
 AddRsnAnalysisTaskTrain.C:65
 AddRsnAnalysisTaskTrain.C:66
 AddRsnAnalysisTaskTrain.C:67
 AddRsnAnalysisTaskTrain.C:68
 AddRsnAnalysisTaskTrain.C:69
 AddRsnAnalysisTaskTrain.C:70
 AddRsnAnalysisTaskTrain.C:71
 AddRsnAnalysisTaskTrain.C:72
 AddRsnAnalysisTaskTrain.C:73
 AddRsnAnalysisTaskTrain.C:74
 AddRsnAnalysisTaskTrain.C:75