]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/macros/lego_train/AddRsnAnalysisTask.C
Added ITS,TPC nclusters and chi2 variables to daughter particle (M. Vala)
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / lego_train / AddRsnAnalysisTask.C
CommitLineData
900e06e4 1#ifndef __CINT__
2#include <TString.h>
3#include <ANALYSIS/AliAnalysisManager.h>
4#include <AliRsnAnalysisTask.h>
586747b9 5#include "AliRsnDaughterSelector.h"
6#include "AliRsnMiniAnalysisTask.h"
900e06e4 7#endif
8AliAnalysisTaskSE *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
547e2d97 17 Bool_t valid;
18 Int_t isRsnMini = AliAnalysisManager::GetGlobalInt("rsnUseMiniPackage",valid);
586747b9 19 Int_t isPhysSel = AliAnalysisManager::GetGlobalInt("rsnUsePhysSel",valid);
547e2d97 20 if (isRsnMini) {
900e06e4 21 postfix.Prepend("Mini");
22 AliRsnMiniAnalysisTask *taskRsnMini = new AliRsnMiniAnalysisTask(Form("Rsn%s",postfix.Data()),useMC);
547e2d97 23 Int_t refreshPrint = AliAnalysisManager::GetGlobalInt("rsnMixPrintRefresh",valid);
24 if (valid) taskRsnMini->SetMixPrintRefresh(refreshPrint);
900e06e4 25 task = (AliAnalysisTaskSE *) taskRsnMini;
26 }
27 else {
28 AliRsnAnalysisTask *taskRsn = new AliRsnAnalysisTask(Form("Rsn%s",postfix.Data()));
29 task = (AliAnalysisTaskSE *) taskRsn;
30 }
31
a83bcf6e 32 if (isPhysSel>=0) task->SelectCollisionCandidates((AliVEvent::EOfflineTriggerTypes)isPhysSel);
586747b9 33
547e2d97 34 // TODO this is tmp hack
35 if (!rsnIH) rsnIH = new AliRsnInputHandler();
900e06e4 36
547e2d97 37 // gROOT->LoadMacro("RsnConfig.C");
900e06e4 38 if (!RsnConfig(task,useMC,isMixing,rsnIH,listRsn)) {
39 Printf("Error in RsnConfig.C");
40 return 0;
41 }
42
43 // add the task to manager
44 mgr->AddTask(task);
45
46 AliRsnDaughterSelector *sel = 0;
47
547e2d97 48 if (!isRsnMini) {
900e06e4 49 sel = rsnIH->GetSelector();
50 sel->Init();
51 }
52
53 // connect input container according to source choice
54 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
55
56 // create paths for the output in the common file
57 TString commonPath = AliAnalysisManager::GetCommonFileName();
58
59 // create containers for output
60 AliAnalysisDataContainer *output = mgr->CreateContainer(Form("RsnHist%s", postfix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, commonPath.Data());
61
62 // big outout (expert only)
63 Int_t useBigOutput = 0;
64 if (useBigOutput) {
65 Printf("Using Big output ...");
66 task->UseBigOutput();
67 output->SetSpecialOutput();
68 mgr->SetSpecialOutputLocation("root://lx000.saske.sk:21094//tmp/mvala/");
69 }
70
71 mgr->ConnectOutput(task, 1, output);
72
73 return task;
74}