]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/macros/lego_train/AddRsnAnalysisTask.C
First version of macros for lego_train
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / macros / lego_train / AddRsnAnalysisTask.C
1 #ifndef __CINT__
2 #include <TString.h>
3 #include <ANALYSIS/AliAnalysisManager.h>
4 #include <AliRsnAnalysisTask.h>
5 #include <PWG2/RESONANCES/AliRsnDaughterSelector.h>
6 #include <PWG2/RESONANCES/AliRsnMiniAnalysisTask.h>
7 #endif
8 AliAnalysisTaskSE *AddRsnAnalysisTask(TString format = "esd", Bool_t useMC = kFALSE,Bool_t isMixing = kFALSE,AliRsnInputHandler *rsnIH=0,TList *listRsn=0,TString postfix="")
9 {
10    // create manager
11    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
12    if (!mgr) { Printf("Error [AddRsnAnalysisTask%s] : mgr is null !!!",postfix.Data()); return 0;}
13
14    // initialize task with all available slots, even if not all of them will be used:
15    AliAnalysisTaskSE *task = 0;
16
17    if (gRsnUseMiniPackage) {
18       postfix.Prepend("Mini");
19       AliRsnMiniAnalysisTask *taskRsnMini = new AliRsnMiniAnalysisTask(Form("Rsn%s",postfix.Data()),useMC);
20       taskRsnMini->SetMixPrintRefresh(gRsnMixPrintRefresh);
21       Printf("sssssssss %d",gRsnMixPrintRefresh);
22       task = (AliAnalysisTaskSE *) taskRsnMini;
23    }
24    else {
25       AliRsnAnalysisTask *taskRsn = new AliRsnAnalysisTask(Form("Rsn%s",postfix.Data()));
26       task = (AliAnalysisTaskSE *) taskRsn;
27    }
28
29    Printf("pointer is %p",task);
30
31 //   gROOT->LoadMacro("RsnConfig.C");
32    if (!RsnConfig(task,useMC,isMixing,rsnIH,listRsn)) {
33       Printf("Error in RsnConfig.C");
34       return 0;
35    }
36
37    // add the task to manager
38    mgr->AddTask(task);
39
40    AliRsnDaughterSelector *sel = 0;
41
42    if (!gRsnUseMiniPackage) {
43       sel = rsnIH->GetSelector();
44       sel->Init();
45    }
46
47    // connect input container according to source choice
48    mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
49
50    // create paths for the output in the common file
51    TString commonPath = AliAnalysisManager::GetCommonFileName();
52
53    // create containers for output
54    AliAnalysisDataContainer *output = mgr->CreateContainer(Form("RsnHist%s", postfix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, commonPath.Data());
55
56    // big outout (expert only)
57    Int_t useBigOutput = 0;
58    if (useBigOutput) {
59       Printf("Using Big output ...");
60       task->UseBigOutput();
61       output->SetSpecialOutput();
62       mgr->SetSpecialOutputLocation("root://lx000.saske.sk:21094//tmp/mvala/");
63    }
64
65    mgr->ConnectOutput(task, 1, output);
66
67    return task;
68 }