]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/STRANGENESS/LambdaK0PbPb/AddTaskLK0Spectra.C
Commit for Simone - Change ClassDef
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AddTaskLK0Spectra.C
CommitLineData
2bfd3f82 1AliAnalysisTaskLK0Spectra * AddTaskLK0Spectra(const char * outfilename, Int_t ibin, Int_t iMCAnalysis = 0, Bool_t usePID = kTRUE, Bool_t removeInjected = kFALSE) {
c36344c8 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
17 TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
18
19 if (inputDataType != "ESD") {
20 Printf("ERROR! This task can only run on ESDs!");
21 }
22
23 // Configure analysis
24 //===========================================================================
25 // Int_t nbMinTPCclusters = 80;
26 // Int_t lCollidingSystems = 1;
27 // TString fAnalysisType = "ESD";
28 // TString lAnalysisPidMode = "withPID";
29 // TString lAnalysisCut = "no";
30 //Int_t iMCAnalysis = 0;
31
32 AliESDtrackCuts * myTracksCuts = new AliESDtrackCuts();
33 myTracksCuts->SetRequireTPCRefit(kTRUE);
34 //myTracksCuts->SetRequireITSRefit(kTRUE);
35 myTracksCuts->SetRequireITSRefit(kFALSE);
36 // myTracksCuts->SetMinNClustersTPC(nbMinTPCclusters);
37 myTracksCuts->SetMinNCrossedRowsTPC(70);
2bfd3f82 38 //myTracksCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
c36344c8 39
e08d836e 40 char taskName[18];
41 sprintf(taskName,"TaskLambdaK0_%d_%d",ibin,removeInjected);
c36344c8 42
43
44 AliAnalysisTaskLK0Spectra * task = new AliAnalysisTaskLK0Spectra(taskName);
45
46 task->SetAnalysisType("ESD");
47 task->SetAnalysisMC(iMCAnalysis); // 0 or 1
48 task->SetCollidingSystems(1); // 0 =pp, 1=AA
49 task->SetAnalysisCut("no");
50 task->SetQASelector(kFALSE);
51 if(usePID)
52 task->SetUsePID("withPID"); // withPID or withoutPID
53 else
54 task->SetUsePID("withoutPID"); // withPID or withoutPID
55 task->SetArmenterosCut(0.2);
56 task->SetTrackCuts(myTracksCuts);
2bfd3f82 57 task->SetRemoveInjected(removeInjected);
c36344c8 58
59 mgr->AddTask(task);
60
61 // set centrality
62
63 AliAnalysisCentralitySelector * centrBin = new AliAnalysisCentralitySelector();
64 centrBin->SetIsMC(iMCAnalysis);
65 centrBin->SetCentralityEstimator("V0M"); // Todo: add parameter to macro?
66
67 if(ibin == 0){
68 centrBin->SetCentralityBin(0,5);
69 task->SetCentralitySelector(centrBin);
70 }
71
72 if(ibin == 1){
73 centrBin->SetCentralityBin(5,10);
74 task->SetCentralitySelector(centrBin);
75 }
76
77 if(ibin == 2){
78 centrBin->SetCentralityBin(10,20);
79 task->SetCentralitySelector(centrBin);
80 }
81
82 if(ibin == 3){
83 centrBin->SetCentralityBin(20,30);
84 task->SetCentralitySelector(centrBin);
85 }
86
87 if(ibin == 4){
88 centrBin->SetCentralityBin(30,40);
89 task->SetCentralitySelector(centrBin);
90 }
91
92 if(ibin == 5){
93 centrBin->SetCentralityBin(40,50);
94 task->SetCentralitySelector(centrBin);
95 }
96
97 if(ibin == 6){
98 centrBin->SetCentralityBin(50,60);
99 task->SetCentralitySelector(centrBin);
100 }
101
102 if(ibin == 7){
103 centrBin->SetCentralityBin(60,70);
104 task->SetCentralitySelector(centrBin);
105 }
106
107 if(ibin == 8){
108 centrBin->SetCentralityBin(70,80);
109 task->SetCentralitySelector(centrBin);
110 }
111
112 if(ibin == 9){
113 centrBin->SetCentralityBin(80,90);
114 task->SetCentralitySelector(centrBin);
115 }
116
117 if(ibin == 10){
118 centrBin->SetCentralityBin(0,90);
119 task->SetCentralitySelector(centrBin);
120 }
121
122 TString outfilenameCentr = outfilename;
123 outfilenameCentr.ReplaceAll(".root",Form("_%2.2d.root",ibin));
124
125 AliAnalysisDataContainer *cinput0 = mgr->GetCommonInputContainer();
126
e08d836e 127 sprintf(taskName,"clambdak0Histo_%2.2d_%d",ibin,removeInjected);
c36344c8 128
403c87ee 129 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(taskName, TList::Class(),AliAnalysisManager::kOutputContainer, Form("%s:lambdak0", AliAnalysisManager::GetCommonFileName()));
c36344c8 130 //AliAnalysisDataContainer *coutput2 = mgr->CreateContainer(Form("clambdak0Centr_%2.2d",ibin), AliAnalysisCentralitySelector::Class(),AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
131 //AliAnalysisDataContainer *output_cuts = mgr->CreateContainer(Form("cuts_%2.2d",ibin), AliESDtrackCuts::Class(), AliAnalysisManager::kOutputContainer, outfilenameCentr.Data());
403c87ee 132
c36344c8 133 mgr->ConnectInput (task, 0, mgr->GetCommonInputContainer());
134 mgr->ConnectOutput(task,1,coutput1);
135 //mgr->ConnectOutput(task,2,coutput2);
136 //mgr->ConnectOutput(task,3,output_cuts);
137
138
139
140 // TODO:
141 // IO into folders in a file?
142
143 // Set I/O
144
145 return task;
146}
147
148