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