]>
Commit | Line | Data |
---|---|---|
8797f8b6 | 1 | AliAnalysisTaskPerformanceStrange ** 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 |