#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