]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/GammaConv/macros/AddTask_GammaConvdPhi_PbPb.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / macros / AddTask_GammaConvdPhi_PbPb.C
CommitLineData
ae4f2cfb 1AliAnalysisTask *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