]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/SPECTRA/LambdaK0PbPb/AddTaskLambdaK0PbPb.C
HWCF configuration: switching on deconvolution in time after fix r51236
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / LambdaK0PbPb / AddTaskLambdaK0PbPb.C
CommitLineData
8797f8b6 1AliAnalysisTaskPerformanceStrange ** AddTaskLambdaK0PbPb(const char * outfilename, AliAnalysisCentralitySelector * centr, Int_t &nbin, Int_t binMin, Int_t binMax, Int_t iMCAnalysis = 0) {
e886738f 2
3
4 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 if (!mgr) {
6 ::Error("AddTaskPhysicsSelection", "No analysis manager to connect to.");
7 return NULL;
8 }
9
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");
14 return NULL;
15 }
16 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
17
18 if (inputDataType != "ESD") {
19 Printf("ERROR! This task can only run on ESDs!");
20 }
21
22 // Configure analysis
23 //===========================================================================
8797f8b6 24 Int_t nbMinTPCclusters = 80;
25 Int_t lCollidingSystems = 1;
26 TString fAnalysisType = "ESD";
27 TString lAnalysisPidMode = "withoutPID";
28 TString lAnalysisCut = "no";
29 //Int_t iMCAnalysis = 0;
30
31 AliESDtrackCuts * myTracksCuts = new AliESDtrackCuts();
32 myTracksCuts->SetRequireTPCRefit(kTRUE);
33 myTracksCuts->SetMinNClustersTPC(nbMinTPCclusters);
34
35 nbin = binMax - binMin + 1;
e886738f 36
37 AliAnalysisTaskPerformanceStrange ** task = new AliAnalysisTaskPerformanceStrange*[nbin];
38 Int_t itask = -1;
39 for(Int_t ibin = binMin; ibin <= binMax; ibin++){
40 itask++;
41
42 task[itask] = new AliAnalysisTaskPerformanceStrange("TaskLambdaK0");
43 cout << "Booking " << ibin << " "<< itask << " " << task[itask] <<endl;
8797f8b6 44
45 task[itask]->SetCollidingSystems(lCollidingSystems);
46 task[itask]->SetAnalysisType(fAnalysisType);
47 task[itask]->SetAnalysisMC(iMCAnalysis);
48 task[itask]->SetAnalysisCut(lAnalysisCut);
49 task[itask]->SetUsePID(lAnalysisPidMode);
50 task[itask]->SetTrackCuts(myTracksCuts);
51
e886738f 52 mgr->AddTask(task[itask]);
53
54 // // Set Cuts
55 // if (!esdTrackCuts)
56 // {
57 // printf("ERROR: esdTrackCuts could not be created\n");
58 // return;
59 // }
60 // task->SetTrackCuts(esdTrackCuts);
61
62 // set centrality
63 AliAnalysisCentralitySelector * centrBin = (AliAnalysisCentralitySelector*) centr->Clone();
8797f8b6 64 //centrBin->SetCentralityBin(ibin);
65 if(ibin == 0){
66 centrBin->SetCentralityBin(0,5);
e886738f 67 task[itask]->SetCentralitySelector(centrBin);
8797f8b6 68 }
69 if(ibin == 1){
70 centrBin->SetCentralityBin(5,10);
71 task[itask]->SetCentralitySelector(centrBin);
72 }
73 if(ibin == 2){
74 centrBin->SetCentralityBin(10,20);
75 task[itask]->SetCentralitySelector(centrBin);
76 }
77 if(ibin == 3){
78 centrBin->SetCentralityBin(20,30);
79 task[itask]->SetCentralitySelector(centrBin);
80 }
81 if(ibin == 4){
82 centrBin->SetCentralityBin(30,40);
83 task[itask]->SetCentralitySelector(centrBin);
84 }
85 if(ibin == 5){
86 centrBin->SetCentralityBin(40,50);
87 task[itask]->SetCentralitySelector(centrBin);
88 }
89 if(ibin == 6){
90 centrBin->SetCentralityBin(50,60);
91 task[itask]->SetCentralitySelector(centrBin);
92 }
93 if(ibin == 7){
94 centrBin->SetCentralityBin(60,70);
95 task[itask]->SetCentralitySelector(centrBin);
96 }
97 if(ibin == 8){
98 centrBin->SetCentralityBin(70,80);
99 task[itask]->SetCentralitySelector(centrBin);
100 }
101 if(ibin == 9){
102 centrBin->SetCentralityBin(80,90);
103 task[itask]->SetCentralitySelector(centrBin);
104 }
105 if(ibin == 10){
106 centrBin->SetCentralityBin(0,90);
107 task[itask]->SetCentralitySelector(centrBin);
108 }
e886738f 109 TString outfilenameCentr = outfilename;
110 outfilenameCentr.ReplaceAll(".root",Form("_%2.2d.root",ibin));
111
112 AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
113 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("clambdak0Histo_%2.2d",ibin), TList::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
114 AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("clambdak0Centr_%2.2d",ibin), AliAnalysisCentralitySelector::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
8797f8b6 115 AliAnalysisDataContainer *output_cuts = mgr->CreateContainer(Form("cuts_%2.2d",ibin), AliESDtrackCuts::Class(), AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
e886738f 116 mgr->ConnectInput (task[itask], 0, mgr->GetCommonInputContainer());
117 mgr->ConnectOutput(task[itask],1,coutput1);
118 mgr->ConnectOutput(task[itask],2,coutput2);
8797f8b6 119 mgr->ConnectOutput(task[itask],3,output_cuts);
120
e886738f 121
122 }
123 // TODO:
124 // IO into folders in a file?
125
126 // Set I/O
127
128 return task;
129}
130
131