AliAnalysisTaskMultPbTracks * AddTaskMultPbPbTracks(const char * outfilename, AliESDtrackCuts * esdTrackCuts = 0, AliAnalysisMultPbCentralitySelector * centr)
{
// TODO: add some parameters to set the centrality for this task, and maybe the name of the task
// TODO: shall I use the same file and different dirs for the different centralities?
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AddTaskPhysicsSelection", "No analysis manager to connect to.");
return NULL;
}
// Check the analysis type using the event handlers connected to the analysis manager.
//==============================================================================
if (!mgr->GetInputEventHandler()) {
::Error("AddTaskPhysicsSelection", "This task requires an input event handler");
return NULL;
}
TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
if (inputDataType != "ESD") {
Printf("ERROR! This task can only run on ESDs!");
}
// Configure analysis
//===========================================================================
AliAnalysisTaskMultPbTracks *task = new AliAnalysisTaskMultPbTracks("TaskMultPbTracks");
mgr->AddTask(task);
// Set Cuts
if (!esdTrackCuts)
{
printf("ERROR: esdTrackCuts could not be created\n");
return;
}
task->SetTrackCuts(esdTrackCuts);
// set centrality
task->SetCentralitySelector(centr);
// TODO:
// IO into folders in a file?
// Set I/O
AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("cmultPbTracksOutHM",
AliAnalysisMultPbTrackHistoManager::Class(),
AliAnalysisManager::kOutputContainer,
outfilename);
AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("cmultPbTracksOutCT",
AliESDtrackCuts::Class(),
AliAnalysisManager::kOutputContainer,
outfilename);
AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("cmultPbTracksOutCM",
AliAnalysisMultPbCentralitySelector::Class(),
AliAnalysisManager::kOutputContainer,
outfilename);
mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(task,1,coutput1);
mgr->ConnectOutput(task,2,coutput2);
mgr->ConnectOutput(task,3,coutput3);
return task;
}
AddTaskMultPbPbTracks.C:1 AddTaskMultPbPbTracks.C:2 AddTaskMultPbPbTracks.C:3 AddTaskMultPbPbTracks.C:4 AddTaskMultPbPbTracks.C:5 AddTaskMultPbPbTracks.C:6 AddTaskMultPbPbTracks.C:7 AddTaskMultPbPbTracks.C:8 AddTaskMultPbPbTracks.C:9 AddTaskMultPbPbTracks.C:10 AddTaskMultPbPbTracks.C:11 AddTaskMultPbPbTracks.C:12 AddTaskMultPbPbTracks.C:13 AddTaskMultPbPbTracks.C:14 AddTaskMultPbPbTracks.C:15 AddTaskMultPbPbTracks.C:16 AddTaskMultPbPbTracks.C:17 AddTaskMultPbPbTracks.C:18 AddTaskMultPbPbTracks.C:19 AddTaskMultPbPbTracks.C:20 AddTaskMultPbPbTracks.C:21 AddTaskMultPbPbTracks.C:22 AddTaskMultPbPbTracks.C:23 AddTaskMultPbPbTracks.C:24 AddTaskMultPbPbTracks.C:25 AddTaskMultPbPbTracks.C:26 AddTaskMultPbPbTracks.C:27 AddTaskMultPbPbTracks.C:28 AddTaskMultPbPbTracks.C:29 AddTaskMultPbPbTracks.C:30 AddTaskMultPbPbTracks.C:31 AddTaskMultPbPbTracks.C:32 AddTaskMultPbPbTracks.C:33 AddTaskMultPbPbTracks.C:34 AddTaskMultPbPbTracks.C:35 AddTaskMultPbPbTracks.C:36 AddTaskMultPbPbTracks.C:37 AddTaskMultPbPbTracks.C:38 AddTaskMultPbPbTracks.C:39 AddTaskMultPbPbTracks.C:40 AddTaskMultPbPbTracks.C:41 AddTaskMultPbPbTracks.C:42 AddTaskMultPbPbTracks.C:43 AddTaskMultPbPbTracks.C:44 AddTaskMultPbPbTracks.C:45 AddTaskMultPbPbTracks.C:46 AddTaskMultPbPbTracks.C:47 AddTaskMultPbPbTracks.C:48 AddTaskMultPbPbTracks.C:49 AddTaskMultPbPbTracks.C:50 AddTaskMultPbPbTracks.C:51 AddTaskMultPbPbTracks.C:52 AddTaskMultPbPbTracks.C:53 AddTaskMultPbPbTracks.C:54 AddTaskMultPbPbTracks.C:55 AddTaskMultPbPbTracks.C:56 AddTaskMultPbPbTracks.C:57 AddTaskMultPbPbTracks.C:58 AddTaskMultPbPbTracks.C:59 AddTaskMultPbPbTracks.C:60 AddTaskMultPbPbTracks.C:61 AddTaskMultPbPbTracks.C:62 AddTaskMultPbPbTracks.C:63 AddTaskMultPbPbTracks.C:64 AddTaskMultPbPbTracks.C:65 AddTaskMultPbPbTracks.C:66 AddTaskMultPbPbTracks.C:67 AddTaskMultPbPbTracks.C:68