]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/macros/makeTFile4CutsDStartoKpipi.C
Update (Chiara Z)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / macros / makeTFile4CutsDStartoKpipi.C
1 // gSystem->SetIncludePath("-I. -I$ROOTSYS/include -I$ALICE_ROOT -I$ALICE_ROOT/include -I$ALICE_ROOT/ITS -I$ALICE_ROOT/TPC -I$ALICE_ROOT/CONTAINERS -I$ALICE_ROOT/STEER -I$ALICE_ROOT/TRD -I$ALICE_ROOT/macros -I$ALICE_ROOT/ANALYSIS -I$ALICE_ROOT/PWG3 -I$ALICE_ROOT/PWG3/vertexingHF -g");
2
3 #include <Riostream.h>
4 #include <TFile.h>
5 #include "AliRDHFCutsDStartoKpipi.h"
6 #include <TClonesArray.h>
7 #include <TParameter.h>
8
9
10 //Use:
11 //Set hard coded commentet with //set this!!
12 // root[] .L makeTFile4CutsDStar.....C++
13 // root[] makeInputAliAnalysisTaskSED0Mass()
14 // root[] makeInputAliAnalysisTaskSESignificanceMaximization()
15 //similar macros for the other D mesons
16
17 //Author: Alessandro Grelli, a.grelli@uu.nl
18
19
20 //macro to make a .root file which contains an AliRDHFCutsDStartoKpipi for AliAnalysisTaskSEDStarSpectra task and CF task
21 void makeInputAliAnalysisTaskSEDStarSpectra(const char *set_cuts="utrecht"){
22
23   AliRDHFCutsDStartoKpipi* RDHFDStartoKpipi=new AliRDHFCutsDStartoKpipi();
24   RDHFDStartoKpipi->SetName("DStartoKpipiCuts");
25   RDHFDStartoKpipi->SetTitle("Cuts for D* analysis");
26
27   AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
28   esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
29   //default
30   esdTrackCuts->SetRequireTPCRefit(kTRUE);
31   esdTrackCuts->SetRequireITSRefit(kTRUE);
32   //esdTrackCuts->SetMinNClustersTPC(70);
33   esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
34                                          AliESDtrackCuts::kAny); 
35  // default is kBoth, otherwise kAny
36   esdTrackCuts->SetMinDCAToVertexXY(0.);
37   esdTrackCuts->SetPtRange(0.3,1.e10);
38
39  // soft pion pre-selections 
40   AliESDtrackCuts* esdSoftPicuts=new AliESDtrackCuts();
41   esdSoftPicuts->SetRequireSigmaToVertex(kFALSE);
42   //default
43   esdSoftPicuts->SetRequireTPCRefit(kFALSE);
44   esdSoftPicuts->SetRequireITSRefit(kFALSE);
45   esdSoftPicuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
46                                           AliESDtrackCuts::kAny); //test d0 asimmetry
47   esdSoftPicuts->SetPtRange(0.0,1.e10);
48
49   // set pre selections
50   RDHFDStartoKpipi->AddTrackCuts(esdTrackCuts);
51   RDHFDStartoKpipi->AddTrackCutsSoftPi(esdSoftPicuts);
52
53   const Int_t nvars=14;
54   const Int_t nptbins=13;
55   
56   Float_t* ptbins;
57   ptbins=new Float_t[nptbins+1];
58   ptbins[0]=0.;
59   ptbins[1]=0.5;
60   ptbins[2]=1.;
61   ptbins[3]=2.;
62   ptbins[4]=3.;
63   ptbins[5]=4.;
64   ptbins[6]=5.; 
65   ptbins[7]=6.;
66   ptbins[8]=8.;
67   ptbins[9]=12.;
68   ptbins[10]=16.;
69   ptbins[11]=20.;
70   ptbins[12]=25.;
71   ptbins[13]=999.;
72
73   RDHFDStartoKpipi->SetPtBins(nptbins+1,ptbins);
74   
75   Float_t** rdcutsvalmine;
76   rdcutsvalmine=new Float_t*[nvars];
77   for(Int_t iv=0;iv<nvars;iv++){
78     rdcutsvalmine[iv]=new Float_t[nptbins];
79   }
80
81   if(set_cuts=="utrecht"){
82     //0-0.5
83     rdcutsvalmine[0][0]=0.7;
84     rdcutsvalmine[1][0]=0.03;
85     rdcutsvalmine[2][0]=0.8;
86     rdcutsvalmine[3][0]=0.3;
87     rdcutsvalmine[4][0]=0.3;
88     rdcutsvalmine[5][0]=0.1;
89     rdcutsvalmine[6][0]=0.1;
90     rdcutsvalmine[7][0]=0.00035;
91     rdcutsvalmine[8][0]=0.73;
92     rdcutsvalmine[9][0]=0.3;
93     rdcutsvalmine[10][0]=0.1;
94     rdcutsvalmine[11][0]=0.05;
95     rdcutsvalmine[12][0]=100.;
96     rdcutsvalmine[13][0]=0.5;
97     //0.5-1
98     rdcutsvalmine[0][1]=0.7;
99     rdcutsvalmine[1][1]=0.03;
100     rdcutsvalmine[2][1]=0.8;
101     rdcutsvalmine[3][1]=0.3;
102     rdcutsvalmine[4][1]=0.3;
103     rdcutsvalmine[5][1]=0.1;
104     rdcutsvalmine[6][1]=0.1;
105     rdcutsvalmine[7][1]=-0.00020;
106     rdcutsvalmine[8][1]=0.73;
107     rdcutsvalmine[9][1]=0.3;
108     rdcutsvalmine[10][1]=0.1;
109     rdcutsvalmine[11][1]=0.05;
110     rdcutsvalmine[12][1]=100.;
111     rdcutsvalmine[13][1]=0.5;
112     //1-2
113     rdcutsvalmine[0][2]=0.7;
114     rdcutsvalmine[1][2]=0.02;
115     rdcutsvalmine[2][2]=0.8;
116     rdcutsvalmine[3][2]=0.4;
117     rdcutsvalmine[4][2]=0.4;
118     rdcutsvalmine[5][2]=0.1;
119     rdcutsvalmine[6][2]=0.1;
120     rdcutsvalmine[7][2]=-0.00036;
121     rdcutsvalmine[8][2]=0.82;
122     rdcutsvalmine[9][2]=0.3;
123     rdcutsvalmine[10][2]=0.1;
124     rdcutsvalmine[11][2]=0.05;
125     rdcutsvalmine[12][2]=100.;
126     rdcutsvalmine[13][2]=0.5;
127     //2-3
128     rdcutsvalmine[0][3]=0.7;
129     rdcutsvalmine[1][3]=0.02;
130     rdcutsvalmine[2][3]=0.8;
131     rdcutsvalmine[3][3]=0.7;
132     rdcutsvalmine[4][3]=0.7;
133     rdcutsvalmine[5][3]=0.08;
134     rdcutsvalmine[6][3]=0.08;
135     rdcutsvalmine[7][3]=-0.00016;
136     rdcutsvalmine[8][3]=0.90;
137     rdcutsvalmine[9][3]=0.3;
138     rdcutsvalmine[10][3]=0.1;
139     rdcutsvalmine[11][3]=0.05;
140     rdcutsvalmine[12][3]=100.;
141     rdcutsvalmine[13][3]=0.5;
142     //3-4
143     rdcutsvalmine[0][4]=0.7;
144     rdcutsvalmine[1][4]=0.05;
145     rdcutsvalmine[2][4]=0.8;
146     rdcutsvalmine[3][4]=1.;
147     rdcutsvalmine[4][4]=1.;
148     rdcutsvalmine[5][4]=0.042;
149     rdcutsvalmine[6][4]=0.056;
150     rdcutsvalmine[7][4]=-0.000065;
151     rdcutsvalmine[8][4]=0.9;
152     rdcutsvalmine[9][4]=0.3;
153     rdcutsvalmine[10][4]=0.1;
154     rdcutsvalmine[11][4]=0.05;
155     rdcutsvalmine[12][4]=100.;
156     rdcutsvalmine[13][4]=0.5;
157     //4-5
158     rdcutsvalmine[0][5]=0.7;
159     rdcutsvalmine[1][5]=0.08;
160     rdcutsvalmine[2][5]=0.9;
161     rdcutsvalmine[3][5]=1.2;
162     rdcutsvalmine[4][5]=1.2;
163     rdcutsvalmine[5][5]=0.07;
164     rdcutsvalmine[6][5]=0.07;
165     rdcutsvalmine[7][5]=0.0001;
166     rdcutsvalmine[8][5]=0.9;
167     rdcutsvalmine[9][5]=0.3;
168     rdcutsvalmine[10][5]=0.1;
169     rdcutsvalmine[11][5]=0.05;
170     rdcutsvalmine[12][5]=100.;
171     rdcutsvalmine[13][5]=0.5;
172     //5-6
173     rdcutsvalmine[0][6]=0.7;
174     rdcutsvalmine[1][6]=0.1;
175     rdcutsvalmine[2][6]=1.0;
176     rdcutsvalmine[3][6]=1.;
177     rdcutsvalmine[4][6]=1.;
178     rdcutsvalmine[5][6]=0.08;
179     rdcutsvalmine[6][6]=0.08;
180     rdcutsvalmine[7][6]=0.0005;
181     rdcutsvalmine[8][6]=0.8;
182     rdcutsvalmine[9][6]=0.3;
183     rdcutsvalmine[10][6]=0.1;
184     rdcutsvalmine[11][6]=0.05;
185     rdcutsvalmine[12][6]=100000.;
186     rdcutsvalmine[13][6]=0.5;
187     //6-8
188     rdcutsvalmine[0][7]=0.7;
189     rdcutsvalmine[1][7]=0.1;
190     rdcutsvalmine[2][7]=1.0;
191     rdcutsvalmine[3][7]=1.;
192     rdcutsvalmine[4][7]=1.;
193     rdcutsvalmine[5][7]=0.1;
194     rdcutsvalmine[6][7]=0.1;
195     rdcutsvalmine[7][7]=0.001;
196     rdcutsvalmine[8][7]=0.7;
197     rdcutsvalmine[9][7]=0.3;
198     rdcutsvalmine[10][7]=0.1;
199     rdcutsvalmine[11][7]=0.05;
200     rdcutsvalmine[12][7]=100.;
201     rdcutsvalmine[13][7]=0.5;
202     //8-12
203     rdcutsvalmine[0][8]=0.7;
204     rdcutsvalmine[1][8]=0.1;
205     rdcutsvalmine[2][8]=1.0;
206     rdcutsvalmine[3][8]=1.;
207     rdcutsvalmine[4][8]=1.;
208     rdcutsvalmine[5][8]=0.1;
209     rdcutsvalmine[6][8]=0.1;
210     rdcutsvalmine[7][8]=0.006;
211     rdcutsvalmine[8][8]=0.7;
212     rdcutsvalmine[9][8]=0.3;
213     rdcutsvalmine[10][8]=0.1;
214     rdcutsvalmine[11][8]=0.05;
215     rdcutsvalmine[12][8]=100.;
216     rdcutsvalmine[13][8]=0.5;
217     //12-16
218     rdcutsvalmine[0][9]=0.7;
219     rdcutsvalmine[1][9]=0.1;
220     rdcutsvalmine[2][9]=1.0;
221     rdcutsvalmine[3][9]=0.3;
222     rdcutsvalmine[4][9]=0.3;
223     rdcutsvalmine[5][9]=0.15;
224     rdcutsvalmine[6][9]=0.15;
225     rdcutsvalmine[7][9]=0.01;
226     rdcutsvalmine[8][9]=0.7;
227     rdcutsvalmine[9][9]=0.3;
228     rdcutsvalmine[10][9]=0.1;
229     rdcutsvalmine[11][9]=0.05;
230     rdcutsvalmine[12][9]=100.;
231     rdcutsvalmine[13][9]=0.5;
232     //16-20
233     rdcutsvalmine[0][10]=0.7;
234     rdcutsvalmine[1][10]=0.2;
235     rdcutsvalmine[2][10]=1.0;
236     rdcutsvalmine[3][10]=.3;
237     rdcutsvalmine[4][10]=.3;
238     rdcutsvalmine[5][10]=0.15;
239     rdcutsvalmine[6][10]=0.15;
240     rdcutsvalmine[7][10]=0.01;
241     rdcutsvalmine[8][10]=0.7;
242     rdcutsvalmine[9][10]=0.3;
243     rdcutsvalmine[10][10]=0.1;
244     rdcutsvalmine[11][10]=0.05;
245     rdcutsvalmine[12][10]=100.;
246     rdcutsvalmine[13][10]=0.5;
247     //20-24
248     rdcutsvalmine[0][11]=0.7;
249     rdcutsvalmine[1][11]=0.2;
250     rdcutsvalmine[2][11]=1.0;
251     rdcutsvalmine[3][11]=.3;
252     rdcutsvalmine[4][11]=.3;
253     rdcutsvalmine[5][11]=0.15;
254     rdcutsvalmine[6][11]=0.15;
255     rdcutsvalmine[7][11]=0.01;
256     rdcutsvalmine[8][11]=0.7;
257     rdcutsvalmine[9][11]=0.3;
258     rdcutsvalmine[10][11]=0.1;
259     rdcutsvalmine[11][11]=0.05;
260     rdcutsvalmine[12][11]=100.;
261     rdcutsvalmine[13][11]=0.5;
262     //>25
263     rdcutsvalmine[0][12]=0.7;
264     rdcutsvalmine[1][12]=0.6;
265     rdcutsvalmine[2][12]=1.0;
266     rdcutsvalmine[3][12]=.4;
267     rdcutsvalmine[4][12]=.4;
268     rdcutsvalmine[5][12]=0.5;
269     rdcutsvalmine[6][12]=0.5;
270     rdcutsvalmine[7][12]=0.1;
271     rdcutsvalmine[8][12]=0.7;
272     rdcutsvalmine[9][12]=0.3;
273     rdcutsvalmine[10][12]=0.1;
274     rdcutsvalmine[11][12]=0.05;
275     rdcutsvalmine[12][12]=100.;
276     rdcutsvalmine[13][12]=0.5;
277   }
278   if(set_cuts=="heidelberg"){
279
280     //0-0.5
281     rdcutsvalmine[0][0]=0.7;
282     rdcutsvalmine[1][0]=0.03;
283     rdcutsvalmine[2][0]=0.7;
284     rdcutsvalmine[3][0]=0.8;
285     rdcutsvalmine[4][0]=0.8;
286     rdcutsvalmine[5][0]=0.1;
287     rdcutsvalmine[6][0]=0.1;
288     rdcutsvalmine[7][0]=-0.00002;
289     rdcutsvalmine[8][0]=0.9;
290     rdcutsvalmine[9][0]=0.3;
291     rdcutsvalmine[10][0]=0.1;
292     rdcutsvalmine[11][0]=0.05;
293     rdcutsvalmine[12][0]=100.;
294     rdcutsvalmine[13][0]=0.5;
295     //0.5-1
296     rdcutsvalmine[0][1]=0.7;
297     rdcutsvalmine[1][1]=0.03;
298     rdcutsvalmine[2][1]=0.7;
299     rdcutsvalmine[3][1]=0.8;
300     rdcutsvalmine[4][1]=0.8;
301     rdcutsvalmine[5][1]=0.1;
302     rdcutsvalmine[6][1]=0.1;
303     rdcutsvalmine[7][1]=-0.00002;
304     rdcutsvalmine[8][1]=0.9;
305     rdcutsvalmine[9][1]=0.3;
306     rdcutsvalmine[10][1]=0.1;
307     rdcutsvalmine[11][1]=0.05;
308     rdcutsvalmine[12][1]=100.;
309     rdcutsvalmine[13][1]=0.5;
310
311     //1-2
312     rdcutsvalmine[0][2]=0.7;
313     rdcutsvalmine[1][2]=0.03;
314     rdcutsvalmine[2][2]=0.7;
315     rdcutsvalmine[3][2]=0.8;
316     rdcutsvalmine[4][2]=0.8;
317     rdcutsvalmine[5][2]=0.1;
318     rdcutsvalmine[6][2]=0.1;
319     rdcutsvalmine[7][2]=-0.00002;
320     rdcutsvalmine[8][2]=0.9;
321     rdcutsvalmine[9][2]=0.3;
322     rdcutsvalmine[10][2]=0.1;
323     rdcutsvalmine[11][2]=0.05;
324     rdcutsvalmine[12][2]=100.;
325     rdcutsvalmine[13][2]=0.5;
326     //2-3
327     rdcutsvalmine[0][3]=0.7;
328     rdcutsvalmine[1][3]=0.03;
329     rdcutsvalmine[2][3]=0.7;
330     rdcutsvalmine[3][3]=0.8;
331     rdcutsvalmine[4][3]=0.8;
332     rdcutsvalmine[5][3]=0.1;
333     rdcutsvalmine[6][3]=0.1;
334     rdcutsvalmine[7][3]=-0.00002;
335     rdcutsvalmine[8][3]=0.9;
336     rdcutsvalmine[9][3]=0.3;
337     rdcutsvalmine[10][3]=0.1;
338     rdcutsvalmine[11][3]=0.05;
339     rdcutsvalmine[12][3]=100.;
340     rdcutsvalmine[13][3]=0.5;
341     //3-4
342     rdcutsvalmine[0][4]=0.7;
343     rdcutsvalmine[1][4]=0.03;
344     rdcutsvalmine[2][4]=0.7;
345     rdcutsvalmine[3][4]=0.9;
346     rdcutsvalmine[4][4]=0.9;
347     rdcutsvalmine[5][4]=0.1;
348     rdcutsvalmine[6][4]=0.1;
349     rdcutsvalmine[7][4]=0.000002;
350     rdcutsvalmine[8][4]=0.8;
351     rdcutsvalmine[9][4]=0.3;
352     rdcutsvalmine[10][4]=0.1;
353     rdcutsvalmine[11][4]=0.05;
354     rdcutsvalmine[12][4]=100.;
355     rdcutsvalmine[13][4]=0.5;
356     //4-5
357     rdcutsvalmine[0][5]=0.7;
358     rdcutsvalmine[1][5]=0.03;
359     rdcutsvalmine[2][5]=0.7;
360     rdcutsvalmine[3][5]=0.9;
361     rdcutsvalmine[4][5]=0.9;
362     rdcutsvalmine[5][5]=0.1;
363     rdcutsvalmine[6][5]=0.1;
364     rdcutsvalmine[7][5]=0.000002;
365     rdcutsvalmine[8][5]=0.8;
366     rdcutsvalmine[9][5]=0.3;
367     rdcutsvalmine[10][5]=0.1;
368     rdcutsvalmine[11][5]=0.05;
369     rdcutsvalmine[12][5]=100.;
370     rdcutsvalmine[13][5]=0.5;
371     //5-6
372     rdcutsvalmine[0][6]=0.7;
373     rdcutsvalmine[1][6]=0.03;
374     rdcutsvalmine[2][6]=0.7;
375     rdcutsvalmine[3][6]=1.0;
376     rdcutsvalmine[4][6]=1.0;
377     rdcutsvalmine[5][6]=0.1;
378     rdcutsvalmine[6][6]=0.1;
379     rdcutsvalmine[7][6]=0.000002;
380     rdcutsvalmine[8][6]=0.8;
381     rdcutsvalmine[9][6]=0.3;
382     rdcutsvalmine[10][6]=0.1;
383     rdcutsvalmine[11][6]=0.05;
384     rdcutsvalmine[12][6]=100.;
385     rdcutsvalmine[13][6]=0.5;
386     //6-8
387     rdcutsvalmine[0][7]=0.7;
388     rdcutsvalmine[1][7]=0.03;
389     rdcutsvalmine[2][7]=0.7;
390     rdcutsvalmine[3][7]=1.0;
391     rdcutsvalmine[4][7]=1.0;
392     rdcutsvalmine[5][7]=0.1;
393     rdcutsvalmine[6][7]=0.1;
394     rdcutsvalmine[7][7]=0.000002;
395     rdcutsvalmine[8][7]=0.8;
396     rdcutsvalmine[9][7]=0.3;
397     rdcutsvalmine[10][7]=0.1;
398     rdcutsvalmine[11][7]=0.05;
399     rdcutsvalmine[12][7]=100.;
400     rdcutsvalmine[13][7]=0.5;
401     //8-12
402     rdcutsvalmine[0][8]=0.7;
403     rdcutsvalmine[1][8]=0.03;
404     rdcutsvalmine[2][8]=0.7;
405     rdcutsvalmine[3][8]=1.0;
406     rdcutsvalmine[4][8]=1.0;
407     rdcutsvalmine[5][8]=0.1;
408     rdcutsvalmine[6][8]=0.1;
409     rdcutsvalmine[7][8]=0.000002;
410     rdcutsvalmine[8][8]=0.8;
411     rdcutsvalmine[9][8]=0.3;
412     rdcutsvalmine[10][8]=0.1;
413     rdcutsvalmine[11][8]=0.05;
414     rdcutsvalmine[12][8]=100.;
415     rdcutsvalmine[13][8]=0.5;
416     //12-16
417     rdcutsvalmine[0][9]=0.7;
418     rdcutsvalmine[1][9]=0.03;
419     rdcutsvalmine[2][9]=0.7;
420     rdcutsvalmine[3][9]=1.0;
421     rdcutsvalmine[4][9]=1.0;
422     rdcutsvalmine[5][9]=0.1;
423     rdcutsvalmine[6][9]=0.1;
424     rdcutsvalmine[7][9]=0.000002;
425     rdcutsvalmine[8][9]=0.8;
426     rdcutsvalmine[9][9]=0.3;
427     rdcutsvalmine[10][9]=0.1;
428     rdcutsvalmine[11][9]=0.05;
429     rdcutsvalmine[12][9]=100.;
430     rdcutsvalmine[13][9]=0.5;
431     //16-20
432     rdcutsvalmine[0][10]=0.7;
433     rdcutsvalmine[1][10]=0.03;
434     rdcutsvalmine[2][10]=0.7;
435     rdcutsvalmine[3][10]=1.0;
436     rdcutsvalmine[4][10]=1.0;
437     rdcutsvalmine[5][10]=0.1;
438     rdcutsvalmine[6][10]=0.1;
439     rdcutsvalmine[7][10]=0.000002;
440     rdcutsvalmine[8][10]=0.8;
441     rdcutsvalmine[9][10]=0.3;
442     rdcutsvalmine[10][10]=0.1;
443     rdcutsvalmine[11][10]=0.05;
444     rdcutsvalmine[12][10]=100.;
445     rdcutsvalmine[13][10]=0.5;
446     //20-24
447     rdcutsvalmine[0][11]=0.7;
448     rdcutsvalmine[1][11]=0.03;
449     rdcutsvalmine[2][11]=0.7;
450     rdcutsvalmine[3][11]=1.0;
451     rdcutsvalmine[4][11]=1.0;
452     rdcutsvalmine[5][11]=0.1;
453     rdcutsvalmine[6][11]=0.1;
454     rdcutsvalmine[7][11]=0.000002;
455     rdcutsvalmine[8][11]=0.8;
456     rdcutsvalmine[9][11]=0.3;
457     rdcutsvalmine[10][11]=0.1;
458     rdcutsvalmine[11][11]=0.05;
459     rdcutsvalmine[12][11]=100.;
460     rdcutsvalmine[13][11]=0.5;
461     //>24
462     rdcutsvalmine[0][12]=0.7;
463     rdcutsvalmine[1][12]=0.03;
464     rdcutsvalmine[2][12]=0.7;
465     rdcutsvalmine[3][12]=1.0;
466     rdcutsvalmine[4][12]=1.0;
467     rdcutsvalmine[5][12]=0.1;
468     rdcutsvalmine[6][12]=0.1;
469     rdcutsvalmine[7][12]=0.000002;
470     rdcutsvalmine[8][12]=0.8;
471     rdcutsvalmine[9][12]=0.3;
472     rdcutsvalmine[10][12]=0.1;
473     rdcutsvalmine[11][12]=0.05;
474     rdcutsvalmine[12][12]=100.;
475     rdcutsvalmine[13][12]=0.5;
476   }
477
478   RDHFDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine);
479
480   Bool_t pidflag=kFALSE;
481   RDHFDStartoKpipi->SetUsePID(pidflag);
482   if(pidflag) cout<<"PID is used"<<endl;
483   else cout<<"PID is not used"<<endl;
484
485   // PID SETTINGS
486   AliAODPidHF* pidObj=new AliAODPidHF();
487   // pidObj->SetName("pid4DSatr");
488   Int_t mode=1;
489   Double_t priors[5]={0.01,0.001,0.3,0.3,0.3};
490   pidObj->SetPriors(priors);
491   pidObj->SetMatch(mode);
492   pidObj->SetSigma(0,2); // TPC
493   pidObj->SetSigma(3,3); // TOF
494   pidObj->SetTPC(kTRUE);
495   pidObj->SetTOF(kTRUE);
496   RDHFDStartoKpipi->SetPidHF(pidObj);
497
498   //activate pileup rejection
499   RDHFDStartoKpipi->SetOptPileup(AliRDHFCuts::kRejectPileupEvent);
500
501   RDHFDStartoKpipi->PrintAll();
502
503   TFile* fout=new TFile("DStartoKpipiCuts.root","recreate");   //set this!! 
504   fout->cd();
505   RDHFDStartoKpipi->Write();
506   fout->Close();
507
508 }
509
510 //macro to make a .root file (for significance maximization) which contains an AliRDHFCutsDStartoKpipi with loose set of cuts  and TParameter with the tighest value of these cuts
511 // copy form D0 ... NOT TESTED YIET ... to be tested!!
512
513 void makeInputAliAnalysisTaskSEDstarSignificanceMaximization(){
514
515   AliRDHFCutsDStartoKpipi* RDHFDStartoKpipi=new AliRDHFCutsDStartoKpipi();
516   RDHFDStartoKpipi->SetName("loosercuts");
517   RDHFDStartoKpipi->SetTitle("Cuts for significance maximization");
518
519   AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
520   esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
521   //default
522   esdTrackCuts->SetRequireTPCRefit(kTRUE);
523   esdTrackCuts->SetRequireITSRefit(kTRUE);
524   esdTrackCuts->SetMinNClustersITS(4);
525   
526   esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
527   esdTrackCuts->SetMinDCAToVertexXY(0.);
528   esdTrackCuts->SetEtaRange(-0.8,0.8);
529   esdTrackCuts->SetPtRange(0.1,1.e10);
530   
531  // soft pion pre-selections 
532   // 
533   AliESDtrackCuts* esdSoftPicuts=new AliESDtrackCuts();
534   esdSoftPicuts->SetRequireSigmaToVertex(kFALSE);
535   //default
536   esdSoftPicuts->SetRequireTPCRefit(kFALSE);
537   esdSoftPicuts->SetRequireITSRefit(kFALSE);
538   esdSoftPicuts->SetMinNClustersITS(4); // default is 4
539   esdSoftPicuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
540                                           AliESDtrackCuts::kAny); //test d0 asimmetry
541   esdSoftPicuts->SetPtRange(0.0,1.e10);
542
543   // set pre selections
544   RDHFDStartoKpipi->AddTrackCuts(esdTrackCuts);
545   RDHFDStartoKpipi->AddTrackCutsSoftPi(esdSoftPicuts);
546
547   const Int_t nvars=14;
548   const Int_t nptbins=9;
549   
550   Float_t* ptbins;
551   ptbins=new Float_t[nptbins+1];
552   ptbins[0]=0.7;
553   ptbins[1]=1.0;
554   ptbins[2]=2.0;
555   ptbins[3]=3.0;
556   ptbins[4]=5.0;
557   ptbins[5]=8.0; 
558   ptbins[6]=12.0;
559   ptbins[7]=18.0;
560   ptbins[8]=25.0;
561   ptbins[9]=999.;
562
563   RDHFDStartoKpipi->SetPtBins(nptbins+1,ptbins);
564   
565
566   Float_t** rdcutsvalmine;
567   rdcutsvalmine=new Float_t*[nvars];
568   for(Int_t iv=0;iv<nvars;iv++){
569     rdcutsvalmine[iv]=new Float_t[nptbins];
570   }
571   
572   //0.7-1
573   rdcutsvalmine[0][0]=0.7;
574   rdcutsvalmine[1][0]=0.022;
575   rdcutsvalmine[2][0]=0.7;
576   rdcutsvalmine[3][0]=0.21;
577   rdcutsvalmine[4][0]=0.21;
578   rdcutsvalmine[5][0]=0.05;
579   rdcutsvalmine[6][0]=0.05;
580   rdcutsvalmine[7][0]=-0.00002;
581   rdcutsvalmine[8][0]=0.85;
582   rdcutsvalmine[9][0]=0.3.;
583   rdcutsvalmine[10][0]=0.1;
584   rdcutsvalmine[11][0]=0.05;
585   rdcutsvalmine[12][0]=100.;
586   rdcutsvalmine[13][0]=0.5;
587   //1-2
588   rdcutsvalmine[0][1]=0.7;
589   rdcutsvalmine[1][1]=0.04;
590   rdcutsvalmine[2][1]=0.8;
591   rdcutsvalmine[3][1]=0.3;
592   rdcutsvalmine[4][1]=0.3;
593   rdcutsvalmine[5][1]=0.08;
594   rdcutsvalmine[6][1]=0.08;
595   rdcutsvalmine[7][1]=-0.00036;
596   rdcutsvalmine[8][1]=0.82;
597   rdcutsvalmine[9][1]=0.3;
598   rdcutsvalmine[10][1]=0.1;
599   rdcutsvalmine[11][1]=0.05;
600   rdcutsvalmine[12][1]=100.;
601   rdcutsvalmine[13][1]=0.5;
602   //2-3
603   rdcutsvalmine[0][2]=0.7;
604   rdcutsvalmine[1][2]=0.02;
605   rdcutsvalmine[2][2]=0.8;
606   rdcutsvalmine[3][2]=0.7;
607   rdcutsvalmine[4][2]=0.7;
608   rdcutsvalmine[5][2]=0.08;
609   rdcutsvalmine[6][2]=0.08;
610   rdcutsvalmine[7][2]=-0.00016;
611   rdcutsvalmine[8][2]=0.90;
612   rdcutsvalmine[9][2]=0.3;
613   rdcutsvalmine[10][2]=0.1;
614   rdcutsvalmine[11][2]=0.05;
615   rdcutsvalmine[12][2]=100.;
616   rdcutsvalmine[13][2]=0.5;
617   //3-5
618   rdcutsvalmine[0][3]=0.7;
619   rdcutsvalmine[1][3]=0.05;
620   rdcutsvalmine[2][3]=0.8;
621   rdcutsvalmine[3][3]=1.;
622   rdcutsvalmine[4][3]=1.;
623   rdcutsvalmine[5][3]=0.042;
624   rdcutsvalmine[6][3]=0.056;
625   rdcutsvalmine[7][3]=-0.000065;
626   rdcutsvalmine[8][3]=0.9;
627   rdcutsvalmine[9][3]=0.3;
628   rdcutsvalmine[10][3]=0.1;
629   rdcutsvalmine[11][3]=0.05;
630   rdcutsvalmine[12][3]=100.;
631   rdcutsvalmine[13][3]=0.5;
632   //5-8
633   rdcutsvalmine[0][4]=0.7;
634   rdcutsvalmine[1][4]=0.08;
635   rdcutsvalmine[2][4]=0.9;
636   rdcutsvalmine[3][4]=1.2;
637   rdcutsvalmine[4][4]=1.2;
638   rdcutsvalmine[5][4]=0.07;
639   rdcutsvalmine[6][4]=0.07;
640   rdcutsvalmine[7][4]=0.0001;
641   rdcutsvalmine[8][4]=0.9;
642   rdcutsvalmine[9][4]=0.3;
643   rdcutsvalmine[10][4]=0.1;
644   rdcutsvalmine[11][4]=0.05;
645   rdcutsvalmine[12][4]=100.;
646   rdcutsvalmine[13][4]=0.5;
647   //8-12
648   rdcutsvalmine[0][5]=0.7;
649   rdcutsvalmine[1][5]=0.1;
650   rdcutsvalmine[2][5]=1.0;
651   rdcutsvalmine[3][5]=1.;
652   rdcutsvalmine[4][5]=1.;
653   rdcutsvalmine[5][5]=0.08;
654   rdcutsvalmine[6][5]=0.08;
655   rdcutsvalmine[7][5]=0.0004;
656   rdcutsvalmine[8][5]=0.9;
657   rdcutsvalmine[9][5]=0.3;
658   rdcutsvalmine[10][5]=0.1;
659   rdcutsvalmine[11][5]=0.05;
660   rdcutsvalmine[12][5]=100000.;
661   rdcutsvalmine[13][5]=0.5;
662   //12-18
663   rdcutsvalmine[0][6]=0.7;
664   rdcutsvalmine[1][6]=0.1;
665   rdcutsvalmine[2][6]=1.0;
666   rdcutsvalmine[3][6]=1.;
667   rdcutsvalmine[4][6]=1.;
668   rdcutsvalmine[5][6]=0.1;
669   rdcutsvalmine[6][6]=0.1;
670   rdcutsvalmine[7][6]=0.0005;
671   rdcutsvalmine[8][6]=0.9;
672   rdcutsvalmine[9][6]=0.3;
673   rdcutsvalmine[10][6]=0.1;
674   rdcutsvalmine[11][6]=0.05;
675   rdcutsvalmine[12][6]=100.;
676   rdcutsvalmine[13][6]=0.5;
677   //18-25
678   rdcutsvalmine[0][7]=0.7;
679   rdcutsvalmine[1][7]=0.1;
680   rdcutsvalmine[2][7]=1.0;
681   rdcutsvalmine[3][7]=1.;
682   rdcutsvalmine[4][7]=1.;
683   rdcutsvalmine[5][7]=0.1;
684   rdcutsvalmine[6][7]=0.1;
685   rdcutsvalmine[7][7]=0.001;
686   rdcutsvalmine[8][7]=0.9;
687   rdcutsvalmine[9][7]=0.3;
688   rdcutsvalmine[10][7]=0.1;
689   rdcutsvalmine[11][7]=0.05;
690   rdcutsvalmine[12][7]=100.;
691   rdcutsvalmine[13][7]=0.5;
692   //>25
693   rdcutsvalmine[0][8]=0.7;
694   rdcutsvalmine[1][8]=0.2;
695   rdcutsvalmine[2][8]=1.0;
696   rdcutsvalmine[3][8]=.8;
697   rdcutsvalmine[4][8]=.8;
698   rdcutsvalmine[5][8]=0.15;
699   rdcutsvalmine[6][8]=0.15;
700   rdcutsvalmine[7][8]=0.01;
701   rdcutsvalmine[8][8]=0.8;
702   rdcutsvalmine[9][8]=0.3;
703   rdcutsvalmine[10][8]=0.1;
704   rdcutsvalmine[11][8]=0.05;
705   rdcutsvalmine[12][8]=100.;
706   rdcutsvalmine[13][8]=0.5;
707
708   RDHFDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine);
709
710   Int_t nvarsforopt=RDHFDStartoKpipi->GetNVarsForOpt();
711   Int_t dim=2; //set this!!
712   Bool_t *boolforopt;
713   boolforopt=new Bool_t[nvars];
714   if(dim>nvarsforopt){
715     cout<<"Number of variables for optimization has probably changed, check and edit accordingly"<<endl;
716     return;
717   } else {
718     if(dim==nvarsforopt){
719       boolforopt=RDHFDStartoKpipi->GetVarsForOpt();
720     }else{
721       TString *names;
722       names=new TString[nvars];
723       TString answer="";
724       Int_t checktrue=0;
725       names=RDHFDStartoKpipi->GetVarNames();
726       for(Int_t i=0;i<nvars;i++){
727         cout<<names[i]<<" for opt? (y/n)"<<endl;
728         cin>>answer;
729         if(answer=="y") {
730           boolforopt[i]=kTRUE;
731           checktrue++;
732         }
733         else boolforopt[i]=kFALSE;
734       }
735       if (checktrue!=dim) {
736         cout<<"Error! You set "<<checktrue<<" kTRUE instead of "<<dim<<endl;
737         return;
738       }
739       RDHFDStartoKpipi->SetVarsForOpt(dim,boolforopt);
740     }
741   }
742
743
744   Float_t tighterval[dim][nptbins];
745   //dca
746   //costhetastar
747   //d0d0 <-this 
748   //costhetapoint <-this 
749
750   
751   //number of steps for each variable is 4 now
752   //set this!!
753   tighterval[0][0]=-0.0007;
754   tighterval[1][0]=0.99;
755
756   tighterval[0][1]=-0.0006;
757   tighterval[1][1]=0.99;
758  
759   tighterval[0][2]=-0.0004;
760   tighterval[1][2]=0.99;
761  
762   tighterval[0][3]=-0.00035;
763   tighterval[1][3]=0.98;
764
765   tighterval[0][4]=-0.0003;
766   tighterval[1][4]=0.99;
767
768
769   TString name=""; 
770   Int_t arrdim=dim*nptbins;
771   cout<<"Will save "<<arrdim<<" TParameter<float>"<<endl;
772   TClonesArray max("TParameter<float>",arrdim);
773   for(Int_t ival=0;ival<dim;ival++){
774     for(Int_t jpt=0;jpt<nptbins;jpt++){
775       name=Form("par%dptbin%d",ival,jpt);
776       cout<<"Setting "<<name.Data()<<" to "<<tighterval[ival][jpt]<<endl;
777       new(max[jpt*dim+ival])TParameter<float>(name.Data(),tighterval[ival][jpt]);
778     }
779   }
780  
781   TFile* fout=new TFile("cuts4SignifMaxim.root","recreate");   //set this!! 
782   fout->cd();
783   RDHFDStartoKpipi->Write();
784   max.Write();
785   fout->Close();
786  
787 }
788