3 #include <ANALYSIS/AliAnalysisManager.h>
4 #include <AliRsnAnalysisTask.h>
5 #include "AliRsnDaughterSelector.h"
6 #include "AliRsnMiniAnalysisTask.h"
8 AliAnalysisTaskSE *AddRsnAnalysisTask(TString format = "esd", Bool_t useMC = kFALSE,Bool_t isMixing = kFALSE,AliRsnInputHandler *rsnIH=0,TList *listRsn=0,TString postfix="")
11 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
12 if (!mgr) { Printf("Error [AddRsnAnalysisTask%s] : mgr is null !!!",postfix.Data()); return 0;}
14 // initialize task with all available slots, even if not all of them will be used:
15 AliAnalysisTaskSE *task = 0;
18 Int_t isRsnMini = AliAnalysisManager::GetGlobalInt("rsnUseMiniPackage",valid);
19 Int_t isPhysSel = AliAnalysisManager::GetGlobalInt("rsnUsePhysSel",valid);
21 postfix.Prepend("Mini");
22 AliRsnMiniAnalysisTask *taskRsnMini = new AliRsnMiniAnalysisTask(Form("Rsn%s",postfix.Data()),useMC);
23 Int_t refreshPrint = AliAnalysisManager::GetGlobalInt("rsnMixPrintRefresh",valid);
24 if (valid) taskRsnMini->SetMixPrintRefresh(refreshPrint);
25 task = (AliAnalysisTaskSE *) taskRsnMini;
28 AliRsnAnalysisTask *taskRsn = new AliRsnAnalysisTask(Form("Rsn%s",postfix.Data()));
29 task = (AliAnalysisTaskSE *) taskRsn;
32 if (isPhysSel>=0) task->SelectCollisionCandidates((AliVEvent::EOfflineTriggerTypes)isPhysSel);
34 // TODO this is tmp hack
35 if (!rsnIH) rsnIH = new AliRsnInputHandler();
37 // gROOT->LoadMacro("RsnConfig.C");
38 if (!RsnConfig(task,useMC,isMixing,rsnIH,listRsn)) {
39 Printf("Error in RsnConfig.C");
43 // add the task to manager
46 AliRsnDaughterSelector *sel = 0;
49 sel = rsnIH->GetSelector();
53 // connect input container according to source choice
54 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
56 // create paths for the output in the common file
57 TString commonPath = AliAnalysisManager::GetCommonFileName();
59 // create containers for output
60 AliAnalysisDataContainer *output = mgr->CreateContainer(Form("RsnHist%s", postfix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, commonPath.Data());
62 // big outout (expert only)
63 Int_t useBigOutput = 0;
65 Printf("Using Big output ...");
67 output->SetSpecialOutput();
68 mgr->SetSpecialOutputLocation("root://lx000.saske.sk:21094//tmp/mvala/");
71 mgr->ConnectOutput(task, 1, output);