AliAnalysisTaskMultPbTracks ** AddTaskMultPbPbTracksAllCentrality(TString outfilename, AliESDtrackCuts * esdTrackCuts = 0, AliAnalysisMultPbCentralitySelector * centr, Int_t ncentr, Float_t * minCentr, Float_t *maxCentr)
{
// 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
//===========================================================================
cout << "Booking " << ncentr << " Tasks" << endl;
AliAnalysisTaskMultPbTracks ** tasks = new AliAnalysisTaskMultPbTracks*[ncentr];
for(Int_t icentr = 0; icentr < ncentr; icentr++){
tasks[icentr] = new AliAnalysisTaskMultPbTracks(Form("TaskMultPbTracks_%d",icentr));
mgr->AddTask(tasks[icentr]);
// Set Cuts
if (!esdTrackCuts)
{
printf("ERROR: esdTrackCuts could not be created\n");
return;
}
tasks[icentr]->SetTrackCuts(esdTrackCuts);
// set centrality
AliAnalysisMultPbCentralitySelector * centrBin = (AliAnalysisMultPbCentralitySelector*) centr->Clone();
centrBin->SetMultRange(minCentr[icentr],maxCentr[icentr]);
tasks[icentr]->SetCentralitySelector(centrBin);
// TODO:
// IO into folders in a file?
// Set I/O
TString outfilenameCentr = outfilename;
outfilenameCentr.ReplaceAll(".root",Form("_%2.2d.root",icentr));
AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("cmultPbTracksOutHM_%d",icentr),
AliAnalysisMultPbTrackHistoManager::Class(),
AliAnalysisManager::kOutputContainer,
outfilenameCentr.Data());
AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("cmultPbTracksOutCT_%d",icentr),
AliESDtrackCuts::Class(),
AliAnalysisManager::kOutputContainer,
outfilenameCentr.Data());
AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("cmultPbTracksOutCM_%d",icentr),
AliAnalysisMultPbCentralitySelector::Class(),
AliAnalysisManager::kOutputContainer,
outfilenameCentr.Data());
mgr->ConnectInput(tasks[icentr], 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(tasks[icentr],1,coutput1);
mgr->ConnectOutput(tasks[icentr],2,coutput2);
mgr->ConnectOutput(tasks[icentr],3,coutput3);
}
return tasks;
}
AddTaskMultPbPbTracksAllCentrality.C:1 AddTaskMultPbPbTracksAllCentrality.C:2 AddTaskMultPbPbTracksAllCentrality.C:3 AddTaskMultPbPbTracksAllCentrality.C:4 AddTaskMultPbPbTracksAllCentrality.C:5 AddTaskMultPbPbTracksAllCentrality.C:6 AddTaskMultPbPbTracksAllCentrality.C:7 AddTaskMultPbPbTracksAllCentrality.C:8 AddTaskMultPbPbTracksAllCentrality.C:9 AddTaskMultPbPbTracksAllCentrality.C:10 AddTaskMultPbPbTracksAllCentrality.C:11 AddTaskMultPbPbTracksAllCentrality.C:12 AddTaskMultPbPbTracksAllCentrality.C:13 AddTaskMultPbPbTracksAllCentrality.C:14 AddTaskMultPbPbTracksAllCentrality.C:15 AddTaskMultPbPbTracksAllCentrality.C:16 AddTaskMultPbPbTracksAllCentrality.C:17 AddTaskMultPbPbTracksAllCentrality.C:18 AddTaskMultPbPbTracksAllCentrality.C:19 AddTaskMultPbPbTracksAllCentrality.C:20 AddTaskMultPbPbTracksAllCentrality.C:21 AddTaskMultPbPbTracksAllCentrality.C:22 AddTaskMultPbPbTracksAllCentrality.C:23 AddTaskMultPbPbTracksAllCentrality.C:24 AddTaskMultPbPbTracksAllCentrality.C:25 AddTaskMultPbPbTracksAllCentrality.C:26 AddTaskMultPbPbTracksAllCentrality.C:27 AddTaskMultPbPbTracksAllCentrality.C:28 AddTaskMultPbPbTracksAllCentrality.C:29 AddTaskMultPbPbTracksAllCentrality.C:30 AddTaskMultPbPbTracksAllCentrality.C:31 AddTaskMultPbPbTracksAllCentrality.C:32 AddTaskMultPbPbTracksAllCentrality.C:33 AddTaskMultPbPbTracksAllCentrality.C:34 AddTaskMultPbPbTracksAllCentrality.C:35 AddTaskMultPbPbTracksAllCentrality.C:36 AddTaskMultPbPbTracksAllCentrality.C:37 AddTaskMultPbPbTracksAllCentrality.C:38 AddTaskMultPbPbTracksAllCentrality.C:39 AddTaskMultPbPbTracksAllCentrality.C:40 AddTaskMultPbPbTracksAllCentrality.C:41 AddTaskMultPbPbTracksAllCentrality.C:42 AddTaskMultPbPbTracksAllCentrality.C:43 AddTaskMultPbPbTracksAllCentrality.C:44 AddTaskMultPbPbTracksAllCentrality.C:45 AddTaskMultPbPbTracksAllCentrality.C:46 AddTaskMultPbPbTracksAllCentrality.C:47 AddTaskMultPbPbTracksAllCentrality.C:48 AddTaskMultPbPbTracksAllCentrality.C:49 AddTaskMultPbPbTracksAllCentrality.C:50 AddTaskMultPbPbTracksAllCentrality.C:51 AddTaskMultPbPbTracksAllCentrality.C:52 AddTaskMultPbPbTracksAllCentrality.C:53 AddTaskMultPbPbTracksAllCentrality.C:54 AddTaskMultPbPbTracksAllCentrality.C:55 AddTaskMultPbPbTracksAllCentrality.C:56 AddTaskMultPbPbTracksAllCentrality.C:57 AddTaskMultPbPbTracksAllCentrality.C:58 AddTaskMultPbPbTracksAllCentrality.C:59 AddTaskMultPbPbTracksAllCentrality.C:60 AddTaskMultPbPbTracksAllCentrality.C:61 AddTaskMultPbPbTracksAllCentrality.C:62 AddTaskMultPbPbTracksAllCentrality.C:63 AddTaskMultPbPbTracksAllCentrality.C:64 AddTaskMultPbPbTracksAllCentrality.C:65 AddTaskMultPbPbTracksAllCentrality.C:66 AddTaskMultPbPbTracksAllCentrality.C:67 AddTaskMultPbPbTracksAllCentrality.C:68 AddTaskMultPbPbTracksAllCentrality.C:69 AddTaskMultPbPbTracksAllCentrality.C:70 AddTaskMultPbPbTracksAllCentrality.C:71 AddTaskMultPbPbTracksAllCentrality.C:72 AddTaskMultPbPbTracksAllCentrality.C:73 AddTaskMultPbPbTracksAllCentrality.C:74 AddTaskMultPbPbTracksAllCentrality.C:75 AddTaskMultPbPbTracksAllCentrality.C:76 AddTaskMultPbPbTracksAllCentrality.C:77