1 AliAnalysisTaskMultPbTracks ** AddTaskMultPbPbTracksAllCentrality(TString outfilename, AliESDtrackCuts * esdTrackCuts = 0, AliAnalysisMultPbCentralitySelector * centr, Int_t ncentr, Float_t * minCentr, Float_t *maxCentr)
3 // TODO: add some parameters to set the centrality for this task, and maybe the name of the task
4 // TODO: shall I use the same file and different dirs for the different centralities?
6 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8 ::Error("AddTaskPhysicsSelection", "No analysis manager to connect to.");
12 // Check the analysis type using the event handlers connected to the analysis manager.
13 //==============================================================================
14 if (!mgr->GetInputEventHandler()) {
15 ::Error("AddTaskPhysicsSelection", "This task requires an input event handler");
18 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
20 if (inputDataType != "ESD") {
21 Printf("ERROR! This task can only run on ESDs!");
25 //===========================================================================
28 cout << "Booking " << ncentr << " Tasks" << endl;
29 AliAnalysisTaskMultPbTracks ** tasks = new AliAnalysisTaskMultPbTracks*[ncentr];
31 for(Int_t icentr = 0; icentr < ncentr; icentr++){
33 tasks[icentr] = new AliAnalysisTaskMultPbTracks(Form("TaskMultPbTracks_%d",icentr));
34 mgr->AddTask(tasks[icentr]);
39 printf("ERROR: esdTrackCuts could not be created\n");
42 tasks[icentr]->SetTrackCuts(esdTrackCuts);
45 AliAnalysisMultPbCentralitySelector * centrBin = (AliAnalysisMultPbCentralitySelector*) centr->Clone();
46 centrBin->SetMultRange(minCentr[icentr],maxCentr[icentr]);
47 tasks[icentr]->SetCentralitySelector(centrBin);
50 // IO into folders in a file?
53 TString outfilenameCentr = outfilename;
54 outfilenameCentr.ReplaceAll(".root",Form("_%2.2d.root",icentr));
55 AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
56 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("cmultPbTracksOutHM_%d",icentr),
57 AliAnalysisMultPbTrackHistoManager::Class(),
58 AliAnalysisManager::kOutputContainer,
59 outfilenameCentr.Data());
60 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("cmultPbTracksOutCT_%d",icentr),
61 AliESDtrackCuts::Class(),
62 AliAnalysisManager::kOutputContainer,
63 outfilenameCentr.Data());
64 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer(Form("cmultPbTracksOutCM_%d",icentr),
65 AliAnalysisMultPbCentralitySelector::Class(),
66 AliAnalysisManager::kOutputContainer,
67 outfilenameCentr.Data());
69 mgr->ConnectInput(tasks[icentr], 0, mgr->GetCommonInputContainer());
70 mgr->ConnectOutput(tasks[icentr],1,coutput1);
71 mgr->ConnectOutput(tasks[icentr],2,coutput2);
72 mgr->ConnectOutput(tasks[icentr],3,coutput3);