]>
Commit | Line | Data |
---|---|---|
ae4f2cfb | 1 | AliAnalysisTask *AddTask_GammaConvdPhi_PbPb(TString v0Cut = "1090002002092970023220000000", |
439cf020 | 2 | TString pionCut = "01522045009000", |
3 | TString photoncut = "", | |
4 | Bool_t pbpb = kTRUE) { | |
5 | ||
344100c4 | 6 | ////////////////////CURRENTLY NOT WORKING /////////////////////////////// |
7 | ||
439cf020 | 8 | // standard with task |
9 | printf("========================================================================================\n"); | |
10 | printf("dPhiAnalysis: Initialising AliAnalysisTaskdPhi\n"); | |
11 | printf("========================================================================================\n"); | |
12 | ||
13 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
14 | if (!mgr) { | |
15 | Error("AddTask_slindal_dPhi", "No analysis manager found."); | |
16 | return 0; | |
17 | } | |
18 | ||
19 | AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager(); | |
20 | Bool_t isAOD=man->GetInputEventHandler()->IsA()==AliAODInputHandler::Class(); | |
21 | ||
22 | AliAnalysisTaskdPhi *task = new AliAnalysisTaskdPhi((TString("slindalTask_dPhi")+"_" + v0Cut)); | |
23 | ||
24 | ///Axes for histrograms | |
99d49b30 | 25 | Double_t cptbins[6] = {0.5, 1.0, 1.5, 3.0, 5.0, 10}; |
26 | task->GetAxiscPt().Set(5, cptbins); | |
439cf020 | 27 | |
99d49b30 | 28 | Double_t tptbins[3] = {3.0, 5.0, 10.0}; |
29 | task->GetAxistPt().Set(2, tptbins); | |
439cf020 | 30 | |
31 | if(pbpb) { | |
9e6bd607 | 32 | Double_t centBins[7] = {0, 5, 10, 30, 50, 60, 90}; |
33 | task->GetAxisCent().Set(6, centBins); | |
439cf020 | 34 | } else { |
9e6bd607 | 35 | Double_t centBins[2] = {-9999, 9999}; |
36 | task->GetAxisCent().Set(1, centBins); | |
439cf020 | 37 | } |
38 | ||
39 | Double_t zbins[6] = { -10, -5, -1.5, 1.5, 5, 10}; | |
40 | task->GetAxisZ().Set(5, zbins); | |
41 | ||
42 | Double_t mbins[17] = {0.07, 0.09, 0.1, 0.11, 0.12, 0.125, 0.1275, 0.13, 0.14, 0.1425, 0.145, 0.15, 0.16, 0.18, 0.2, 0.24, 0.26}; | |
43 | task->GetAxisPiMass().Set(16, mbins); | |
44 | ||
9e6bd607 | 45 | AliESDtrackCuts * trackCuts = new AliESDtrackCuts(); |
9e6bd607 | 46 | TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x"); |
47 | trackCuts->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100); | |
48 | trackCuts->SetMaxChi2PerClusterTPC(4); | |
49 | trackCuts->SetRequireTPCStandAlone(kTRUE); | |
50 | trackCuts->SetAcceptKinkDaughters(kFALSE); | |
51 | trackCuts->SetRequireTPCRefit(kTRUE); | |
52 | trackCuts->SetMaxFractionSharedTPCClusters(0.4); | |
53 | ||
54 | trackCuts->SetMaxDCAToVertexXY(2.4); | |
55 | trackCuts->SetMaxDCAToVertexZ(3.2); | |
56 | trackCuts->SetDCAToVertex2D(kTRUE); | |
57 | ||
58 | trackCuts->SetMaxChi2PerClusterITS(36); | |
59 | trackCuts->SetMaxChi2TPCConstrainedGlobal(36); | |
60 | ||
61 | trackCuts->SetRequireSigmaToVertex(kFALSE); | |
62 | ||
63 | trackCuts->SetEtaRange(-0.9, 0.9); | |
64 | trackCuts->SetPtRange(cptbins[0], 1000000.0); | |
65 | ||
66 | trackCuts->SetRequireITSRefit(kFALSE); | |
99d49b30 | 67 | task->SetTrackFilter(trackCuts); |
68 | ||
69 | ///open side nclusters graph | |
70 | AliESDtrackCuts * trackCuts2 = new AliESDtrackCuts(); | |
71 | TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","65.+30./20.*x"); | |
72 | trackCuts2->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100); | |
73 | trackCuts2->SetMaxChi2PerClusterTPC(4); | |
74 | trackCuts2->SetRequireTPCStandAlone(kTRUE); | |
75 | trackCuts2->SetAcceptKinkDaughters(kFALSE); | |
76 | trackCuts2->SetRequireTPCRefit(kTRUE); | |
77 | trackCuts2->SetMaxFractionSharedTPCClusters(0.4); | |
78 | ||
79 | trackCuts2->SetMaxDCAToVertexXY(2.4); | |
80 | trackCuts2->SetMaxDCAToVertexZ(3.2); | |
81 | trackCuts2->SetDCAToVertex2D(kTRUE); | |
82 | ||
83 | trackCuts2->SetMaxChi2PerClusterITS(36); | |
84 | trackCuts2->SetMaxChi2TPCConstrainedGlobal(36); | |
85 | ||
86 | trackCuts2->SetRequireSigmaToVertex(kFALSE); | |
87 | ||
88 | trackCuts2->SetEtaRange(-0.9, 0.9); | |
89 | trackCuts2->SetPtRange(cptbins[0], 1000000.0); | |
90 | ||
91 | trackCuts2->SetRequireITSRefit(kFALSE); | |
92 | task->AddTrackFilter(trackCuts2, kTRUE); | |
93 | ||
94 | ///Tight side nclusters graphs | |
95 | AliESDtrackCuts * trackCuts3 = new AliESDtrackCuts(); | |
96 | TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","75.+30./20.*x"); | |
97 | trackCuts3->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100); | |
98 | trackCuts3->SetMaxChi2PerClusterTPC(4); | |
99 | trackCuts3->SetRequireTPCStandAlone(kTRUE); | |
100 | trackCuts3->SetAcceptKinkDaughters(kFALSE); | |
101 | trackCuts3->SetRequireTPCRefit(kTRUE); | |
102 | trackCuts3->SetMaxFractionSharedTPCClusters(0.4); | |
103 | ||
104 | trackCuts3->SetMaxDCAToVertexXY(2.4); | |
105 | trackCuts3->SetMaxDCAToVertexZ(3.2); | |
106 | trackCuts3->SetDCAToVertex2D(kTRUE); | |
107 | ||
108 | trackCuts3->SetMaxChi2PerClusterITS(36); | |
109 | trackCuts3->SetMaxChi2TPCConstrainedGlobal(36); | |
110 | ||
111 | trackCuts3->SetRequireSigmaToVertex(kFALSE); | |
112 | ||
113 | trackCuts3->SetEtaRange(-0.9, 0.9); | |
114 | trackCuts3->SetPtRange(cptbins[0], 1000000.0); | |
115 | ||
116 | trackCuts3->SetRequireITSRefit(kFALSE); | |
117 | task->AddTrackFilter(trackCuts3, kFALSE); | |
118 | ||
119 | ||
120 | ////Tight xyz track cuts | |
121 | AliESDtrackCuts4 * trackCuts4 = new AliESDtrackCuts(); | |
122 | TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x"); | |
123 | trackCuts4->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100); | |
124 | trackCuts4->SetMaxChi2PerClusterTPC(4); | |
125 | trackCuts4->SetRequireTPCStandAlone(kTRUE); | |
126 | trackCuts4->SetAcceptKinkDaughters(kFALSE); | |
127 | trackCuts4->SetRequireTPCRefit(kTRUE); | |
128 | trackCuts4->SetMaxFractionSharedTPCClusters(0.4); | |
129 | ||
130 | trackCuts4->SetMaxDCAToVertexXY(2.2); | |
131 | trackCuts4->SetMaxDCAToVertexZ(3.0); | |
132 | trackCuts4->SetDCAToVertex2D(kTRUE); | |
133 | ||
134 | trackCuts4->SetMaxChi2PerClusterITS(36); | |
135 | trackCuts4->SetMaxChi2TPCConstrainedGlobal(36); | |
136 | ||
137 | trackCuts4->SetRequireSigmaToVertex(kFALSE); | |
138 | ||
139 | trackCuts4->SetEtaRange(-0.9, 0.9); | |
140 | trackCuts4->SetPtRange(cptbins[0], 1000000.0); | |
141 | ||
142 | trackCuts4->SetRequireITSRefit(kFALSE); | |
143 | task->AddTrackFilter(trackCuts4, kFALSE); | |
144 | ||
145 | ||
146 | ////lose xyz track cuts | |
147 | AliESDtrackCuts5 * trackCuts5 = new AliESDtrackCuts(); | |
148 | TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x"); | |
149 | trackCuts5->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100); | |
150 | trackCuts5->SetMaxChi2PerClusterTPC(4); | |
151 | trackCuts5->SetRequireTPCStandAlone(kTRUE); | |
152 | trackCuts5->SetAcceptKinkDaughters(kFALSE); | |
153 | trackCuts5->SetRequireTPCRefit(kTRUE); | |
154 | trackCuts5->SetMaxFractionSharedTPCClusters(0.4); | |
155 | ||
156 | trackCuts5->SetMaxDCAToVertexXY(2.6); | |
157 | trackCuts5->SetMaxDCAToVertexZ(3.6); | |
158 | trackCuts5->SetDCAToVertex2D(kTRUE); | |
159 | ||
160 | trackCuts5->SetMaxChi2PerClusterITS(36); | |
161 | trackCuts5->SetMaxChi2TPCConstrainedGlobal(36); | |
162 | ||
163 | trackCuts5->SetRequireSigmaToVertex(kFALSE); | |
164 | ||
165 | trackCuts5->SetEtaRange(-0.9, 0.9); | |
166 | trackCuts5->SetPtRange(cptbins[0], 1000000.0); | |
167 | ||
168 | trackCuts5->SetRequireITSRefit(kFALSE); | |
169 | task->AddTrackFilter(trackCuts5); | |
170 | ||
171 | ||
9e6bd607 | 172 | |
99d49b30 | 173 | ///open side shared tpt clusters |
174 | AliESDtrackCuts * trackCuts2 = new AliESDtrackCuts(); | |
175 | TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x"); | |
176 | trackCuts2->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100); | |
177 | trackCuts2->SetMaxChi2PerClusterTPC(4); | |
178 | trackCuts2->SetRequireTPCStandAlone(kTRUE); | |
179 | trackCuts2->SetAcceptKinkDaughters(kFALSE); | |
180 | trackCuts2->SetRequireTPCRefit(kTRUE); | |
181 | trackCuts2->SetMaxFractionSharedTPCClusters(0.44); | |
182 | ||
183 | trackCuts2->SetMaxDCAToVertexXY(2.4); | |
184 | trackCuts2->SetMaxDCAToVertexZ(3.2); | |
185 | trackCuts2->SetDCAToVertex2D(kTRUE); | |
186 | ||
187 | trackCuts2->SetMaxChi2PerClusterITS(36); | |
188 | trackCuts2->SetMaxChi2TPCConstrainedGlobal(36); | |
189 | ||
190 | trackCuts2->SetRequireSigmaToVertex(kFALSE); | |
191 | ||
192 | trackCuts2->SetEtaRange(-0.9, 0.9); | |
193 | trackCuts2->SetPtRange(cptbins[0], 1000000.0); | |
194 | ||
195 | trackCuts2->SetRequireITSRefit(kFALSE); | |
196 | task->AddTrackFilter(trackCuts2, kTRUE); | |
197 | ||
198 | ||
199 | ///tight side shared tpt clusters | |
200 | AliESDtrackCuts * trackCuts2 = new AliESDtrackCuts(); | |
201 | TFormula *f1NClustersTPCLinearPtDep = new TFormula("f1NClustersTPCLinearPtDep","70.+30./20.*x"); | |
202 | trackCuts2->SetMinNClustersTPCPtDep(f1NClustersTPCLinearPtDep, 100); | |
203 | trackCuts2->SetMaxChi2PerClusterTPC(4); | |
204 | trackCuts2->SetRequireTPCStandAlone(kTRUE); | |
205 | trackCuts2->SetAcceptKinkDaughters(kFALSE); | |
206 | trackCuts2->SetRequireTPCRefit(kTRUE); | |
207 | trackCuts2->SetMaxFractionSharedTPCClusters(0.36); | |
208 | ||
209 | trackCuts2->SetMaxDCAToVertexXY(2.4); | |
210 | trackCuts2->SetMaxDCAToVertexZ(3.2); | |
211 | trackCuts2->SetDCAToVertex2D(kTRUE); | |
212 | ||
213 | trackCuts2->SetMaxChi2PerClusterITS(36); | |
214 | trackCuts2->SetMaxChi2TPCConstrainedGlobal(36); | |
215 | ||
216 | trackCuts2->SetRequireSigmaToVertex(kFALSE); | |
217 | ||
218 | trackCuts2->SetEtaRange(-0.9, 0.9); | |
219 | trackCuts2->SetPtRange(cptbins[0], 1000000.0); | |
220 | ||
221 | trackCuts2->SetRequireITSRefit(kFALSE); | |
222 | task->AddTrackFilter(trackCuts2, kTRUE); | |
223 | ||
224 | ||
225 | ||
226 | ///Pizero cuts | |
227 | pionString = "01630031009000"; | |
228 | TString * picutarr[2][4]; | |
229 | ||
230 | picutarr[0][ | |
231 | ||
232 | ||
9e6bd607 | 233 | |
99d49b30 | 234 | |
235 | ||
236 | AliConversionMesonCuts * picuts = new AliConversionMesonCuts(); | |
237 | picuts->InitializeCutsFromCutString(pionString); | |
238 | task->SetMesonFilter(picuts); | |
239 | ||
240 | ||
241 | AliConversionMesonCuts * picuts2 = new AliConversionMesonCuts(); | |
242 | picuts2->InitializeCutsFromCutString(pionString2); | |
243 | task->AddMesonFilter(picuts2, kFALSE); | |
244 | ||
245 | ||
246 | AliConversionMesonCuts * picuts3 = new AliConversionMesonCuts(); | |
247 | picuts3->InitializeCutsFromCutString(pionString3); | |
248 | task->AddMesonFilter(picuts3); | |
249 | ||
250 | ||
251 | ||
439cf020 | 252 | |
253 | ///Pion cuts | |
9e6bd607 | 254 | AliConversionMesonCuts * picuts = new AliConversionMesonCuts("dphi_pioncuts"); |
439cf020 | 255 | picuts->InitializeCutsFromCutString(pionCut); |
256 | task->SetMesonFilter(picuts); | |
257 | ||
258 | if(photoncut.Length() > 0) { | |
259 | ///V0 analysis cuts (applied before pion analysis) | |
260 | AliConversionCuts * gcuts = new AliConversionCuts(); | |
261 | gcuts->InitializeCutsFromCutString(photoncut); | |
9e6bd607 | 262 | task->SetPhotonFilter(gcuts); |
439cf020 | 263 | } |
264 | ||
265 | //================================================ | |
266 | // data containers | |
267 | //================================================ | |
268 | // find input container | |
269 | //below the trunk version | |
270 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
271 | TString baseString("slindal_dPhi_"); | |
9e6bd607 | 272 | baseString += v0Cut + "_" + pionCut; |
439cf020 | 273 | |
274 | //dumm output container | |
275 | AliAnalysisDataContainer *coutput0 = | |
276 | mgr->CreateContainer(baseString+"tree", | |
277 | TTree::Class(), | |
278 | AliAnalysisManager::kExchangeContainer, | |
279 | "slindal_default"); | |
280 | ||
281 | //define output containers, please use 'username'_'somename' | |
282 | AliAnalysisDataContainer *coutput1 = | |
283 | mgr->CreateContainer(baseString+"me", TList::Class(), | |
9e6bd607 | 284 | AliAnalysisManager::kOutputContainer,baseString+".root"); |
439cf020 | 285 | |
286 | //define output containers, please use 'username'_'somename' | |
439cf020 | 287 | |
439cf020 | 288 | |
289 | //========= Add PID Reponse to ANALYSIS manager ==== | |
290 | Bool_t isMC = kFALSE; | |
291 | if(!(AliPIDResponse*)mgr->GetTask("PIDResponseTask")){ | |
292 | gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C"); | |
293 | AddTaskPIDResponse(isMC); | |
294 | } | |
295 | ||
296 | //========= Set Cutnumber for V0Reader ================================ | |
297 | // TString cutnumber = "100000000008400100150000000"; | |
298 | //========= Add V0 Reader to ANALYSIS manager if not yet existent ===== | |
9e6bd607 | 299 | AliV0ReaderV1 * fV0ReaderV1 = (AliV0ReaderV1*)mgr->GetTask("V0ReaderV1"); |
300 | if( !fV0reader ){ | |
439cf020 | 301 | AliV0ReaderV1 *fV0ReaderV1 = new AliV0ReaderV1("V0ReaderV1"); |
302 | ||
303 | fV0ReaderV1->SetUseOwnXYZCalculation(kTRUE); | |
304 | fV0ReaderV1->SetCreateAODs(kFALSE);// AOD Output | |
305 | fV0ReaderV1->SetUseAODConversionPhoton(kTRUE); | |
306 | ||
307 | if (!mgr) { | |
308 | Error("AddTask_V0ReaderV1", "No analysis manager found."); | |
309 | return; | |
310 | } | |
311 | ||
312 | // Set AnalysisCut Number | |
313 | AliConversionCuts *fCuts=NULL; | |
314 | if(v0Cut!=""){ | |
315 | fCuts= new AliConversionCuts(v0Cut.Data(),v0Cut.Data()); | |
316 | if(pbpb) { | |
317 | fCuts->SetPreSelectionCutFlag(kFALSE); | |
318 | } else { | |
319 | fCuts->SetPreSelectionCutFlag(kTRUE); | |
320 | } | |
321 | if(fCuts->InitializeCutsFromCutString(v0Cut)){ | |
322 | fV0ReaderV1->SetConversionCuts(fCuts); | |
323 | //fCuts->SetFillCutHistograms("",kTRUE); | |
324 | } | |
325 | ||
326 | ||
327 | } | |
328 | ||
329 | fV0ReaderV1->Init(); | |
439cf020 | 330 | mgr->AddTask(fV0ReaderV1); |
331 | mgr->ConnectInput(fV0ReaderV1,0,cinput); | |
332 | task->SetV0Reader(fV0ReaderV1); | |
333 | task->SaveReaderHists(); | |
334 | } else { | |
335 | ///V0 analysis cuts (applied before pion analysis) | |
336 | AliConversionCuts * v0cuts = new AliConversionCuts(); | |
337 | v0cuts->InitializeCutsFromCutString(v0Cut); | |
9e6bd607 | 338 | task->SetV0Reader(fV0ReaderV1); |
439cf020 | 339 | task->SetV0Filter(v0cuts); |
340 | } | |
341 | ||
99d49b30 | 342 | task->SelectCollisionCandidates(AliVEvent::kMB|AliVEvent::kCentral|AliVEvent::kSemiCentral); |
343 | ||
439cf020 | 344 | mgr->AddTask(task); |
345 | mgr->ConnectInput (task, 0, cinput ); | |
346 | mgr->ConnectOutput (task, 0, coutput0); | |
347 | mgr->ConnectOutput (task, 1, coutput1); | |
439cf020 | 348 | |
349 | return task; | |
350 | } | |
351 | ||
352 |