a577d5177cb4dded7968cf72814266338f7d8c1d
[u/mrichter/AliRoot.git] / PWGUD / UPC / AddTaskUpcPsi2s.C
1 AliAnalysisTaskUpcPsi2s *AddTaskUpcPsi2s(Bool_t runTree = kTRUE,Bool_t runHist = kTRUE){
2
3   
4   //--- get the current analysis manager ---//
5   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6   if (!mgr) {
7       Error("AddTask_UpcPsi2s", "No analysis manager found.");
8       return 0;
9    }
10   
11   // Check the analysis type using the event handlers connected to the analysis manager.
12   //==============================================================================
13   if (!mgr->GetInputEventHandler()) {
14     Error("AddTask_UpcPsi2s", "This task requires an input event handler");
15     return 0;
16   }
17         
18   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
19   
20   // Create tasks
21   AliAnalysisTaskUpcPsi2s *task = new AliAnalysisTaskUpcPsi2s(inputDataType.Data());
22   task->SetRunTree(runTree);
23   task->SetRunHist(runHist);
24   mgr->AddTask(task);
25
26
27    // Create containers for input/output
28   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
29   AliAnalysisDataContainer *coutput = mgr->CreateContainer("JPsiTree", TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcTree", AliAnalysisManager::GetCommonFileName()));
30   AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("Psi2sTree", TTree::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcTree", AliAnalysisManager::GetCommonFileName()));
31   AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("ListTrig", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcTree", AliAnalysisManager::GetCommonFileName()));
32   AliAnalysisDataContainer *coutput4 = mgr->CreateContainer("ListHist", TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:UpcTree", AliAnalysisManager::GetCommonFileName()));  
33
34   // Connect input/output
35   mgr->ConnectInput(task, 0, cinput);
36   mgr->ConnectOutput(task, 1, coutput);
37   mgr->ConnectOutput(task, 2, coutput2);
38   mgr->ConnectOutput(task, 3, coutput3);
39   mgr->ConnectOutput(task, 4, coutput4);
40
41 return task;
42 }