]>
Commit | Line | Data |
---|---|---|
2bfd3f82 | 1 | AliAnalysisTaskLK0Spectra * 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 |