]> git.uio.no Git - u/mrichter/AliRoot.git/blob - OADB/macros/AddTaskCentrality.C
Split: AliEve{Beams,Lego} to new EVEANALYSIS
[u/mrichter/AliRoot.git] / OADB / macros / AddTaskCentrality.C
1 AliCentralitySelectionTask *AddTaskCentrality(Bool_t fillHistos=kTRUE, Bool_t aod=kFALSE)
2 {
3 // Macro to connect a centrality selection task to an existing analysis manager.
4   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5   if (!mgr) {
6     ::Error("AddTaskCentrality", "No analysis manager to connect to.");
7     return NULL;
8   }    
9   // Check the analysis type using the event handlers connected to the analysis manager.
10   //==============================================================================
11   if (!mgr->GetInputEventHandler()) {
12     ::Error("AddTaskCentrality", "This task requires an input event handler");
13     return NULL;
14   }
15   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
16   if (!aod && (inputDataType != "ESD")) {
17     ::Error("AddTaskCentrality", "This task works only on ESD analysis");
18     return NULL;
19   }
20   //
21   AliInputEventHandler* hdl = (AliInputEventHandler*)mgr->GetInputEventHandler();
22   if (hdl) hdl->SetNeedField(); 
23   //
24   AliCentralitySelectionTask *centralityTask = new AliCentralitySelectionTask("CentralitySelection");
25   centralityTask->SetInput(inputDataType);
26   centralityTask->SelectCollisionCandidates(AliVEvent::kAny);
27   mgr->AddTask(centralityTask);
28   
29   mgr->ConnectInput(centralityTask, 0, mgr->GetCommonInputContainer());
30   if (fillHistos) {
31     centralityTask->SetFillHistos();
32     AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("CentralityStat",
33                                                               TList::Class(), 
34                                                               AliAnalysisManager::kOutputContainer,
35                                                               "EventStat_temp.root");
36     mgr->ConnectOutput(centralityTask,1,coutput1);
37   }
38
39   return centralityTask;
40 }