]>
Commit | Line | Data |
---|---|---|
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 |
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 | ||
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 | } |