1 AliAnalysisTaskPerformanceStrange ** AddTaskLambdaK0PbPb(const char * outfilename, AliAnalysisCentralitySelector * centr, Int_t &nbin, Int_t binMin, Int_t binMax, Int_t iMCAnalysis = 0) {
4 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6 ::Error("AddTaskPhysicsSelection", "No analysis manager to connect to.");
10 // Check the analysis type using the event handlers connected to the analysis manager.
11 //==============================================================================
12 if (!mgr->GetInputEventHandler()) {
13 ::Error("AddTaskPhysicsSelection", "This task requires an input event handler");
16 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
18 if (inputDataType != "ESD") {
19 Printf("ERROR! This task can only run on ESDs!");
23 //===========================================================================
24 // Int_t nbMinTPCclusters = 80;
25 // Int_t lCollidingSystems = 1;
26 // TString fAnalysisType = "ESD";
27 // TString lAnalysisPidMode = "withPID";
28 // TString lAnalysisCut = "no";
29 //Int_t iMCAnalysis = 0;
31 AliESDtrackCuts * myTracksCuts = new AliESDtrackCuts();
32 myTracksCuts->SetRequireTPCRefit(kTRUE);
33 // myTracksCuts->SetRequireITSRefit(kTRUE);
34 myTracksCuts->SetRequireITSRefit(kFALSE);
35 // myTracksCuts->SetMinNClustersTPC(nbMinTPCclusters);
36 myTracksCuts->SetMinNCrossedRowsTPC(70);
37 myTracksCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
39 nbin = binMax - binMin + 1;
41 AliAnalysisTaskPerformanceStrange ** task = new AliAnalysisTaskPerformanceStrange*[nbin];
43 for(Int_t ibin = binMin; ibin <= binMax; ibin++){
46 task[itask] = new AliAnalysisTaskPerformanceStrange("TaskLambdaK0");
47 cout << "Booking " << ibin << " "<< itask << " " << task[itask] <<endl;
49 //task[itask]->SetCollidingSystems(lCollidingSystems);
50 //task[itask]->SetAnalysisType(fAnalysisType);
51 //task[itask]->SetAnalysisMC(iMCAnalysis);
52 //task[itask]->SetAnalysisCut(lAnalysisCut);
53 // task[itask]->SetUsePID(lAnalysisPidMode);
54 task[itask]->SetTrackCuts(myTracksCuts);
56 mgr->AddTask(task[itask]);
61 // printf("ERROR: esdTrackCuts could not be created\n");
64 // task->SetTrackCuts(esdTrackCuts);
67 AliAnalysisCentralitySelector * centrBin = (AliAnalysisCentralitySelector*) centr->Clone();
68 //centrBin->SetCentralityBin(ibin);
70 centrBin->SetCentralityBin(0,5);
71 task[itask]->SetCentralitySelector(centrBin);
74 centrBin->SetCentralityBin(5,10);
75 task[itask]->SetCentralitySelector(centrBin);
78 centrBin->SetCentralityBin(10,20);
79 task[itask]->SetCentralitySelector(centrBin);
82 centrBin->SetCentralityBin(20,30);
83 task[itask]->SetCentralitySelector(centrBin);
86 centrBin->SetCentralityBin(30,40);
87 task[itask]->SetCentralitySelector(centrBin);
90 centrBin->SetCentralityBin(40,50);
91 task[itask]->SetCentralitySelector(centrBin);
94 centrBin->SetCentralityBin(50,60);
95 task[itask]->SetCentralitySelector(centrBin);
98 centrBin->SetCentralityBin(60,70);
99 task[itask]->SetCentralitySelector(centrBin);
102 centrBin->SetCentralityBin(70,80);
103 task[itask]->SetCentralitySelector(centrBin);
106 centrBin->SetCentralityBin(80,90);
107 task[itask]->SetCentralitySelector(centrBin);
110 centrBin->SetCentralityBin(0,90);
111 task[itask]->SetCentralitySelector(centrBin);
113 TString outfilenameCentr = outfilename;
114 outfilenameCentr.ReplaceAll(".root",Form("_%2.2d.root",ibin));
116 AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
117 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("clambdak0Histo_%2.2d",ibin), TList::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
118 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("clambdak0Centr_%2.2d",ibin), AliAnalysisCentralitySelector::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
119 AliAnalysisDataContainer *output_cuts = mgr->CreateContainer(Form("cuts_%2.2d",ibin), AliESDtrackCuts::Class(), AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
120 mgr->ConnectInput (task[itask], 0, mgr->GetCommonInputContainer());
121 mgr->ConnectOutput(task[itask],1,coutput1);
122 mgr->ConnectOutput(task[itask],2,coutput2);
123 mgr->ConnectOutput(task[itask],3,output_cuts);
128 // IO into folders in a file?