]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/macros/makeTFile4CutsD0toKpi.C
Update (ChiaraB)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / macros / makeTFile4CutsD0toKpi.C
1 #include <Riostream.h>
2 #include <TFile.h>
3 #include <AliRDHFCutsD0toKpi.h>
4 #include <TClonesArray.h>
5 #include <TParameter.h>
6
7
8 //Use:
9 //Set hard coded commentet with //set this!!
10 // root[] .L makeInputD0tasks.C++
11 // root[] makeInputAliAnalysisTaskSED0Mass()
12 // root[] makeInputAliAnalysisTaskSESignificanceMaximization()
13 //similar macros for the other D mesons
14
15 //Author: Chiara Bianchin, cbianchi@pd.infn.it
16
17
18 //macro to make a .root file which contains an AliRDHFCutsD0toKpi for AliAnalysisTaskSED0Mass task
19
20 void makeInputAliAnalysisTaskSED0Mass(){
21
22   AliRDHFCutsD0toKpi* RDHFD0toKpi=new AliRDHFCutsD0toKpi();
23   RDHFD0toKpi->SetName("D0toKpiCuts");
24   RDHFD0toKpi->SetTitle("Cuts for D0 analysis");
25
26   AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
27   esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
28   //default
29   esdTrackCuts->SetRequireTPCRefit(kTRUE);
30   esdTrackCuts->SetRequireITSRefit(kTRUE);
31   esdTrackCuts->SetMinNClustersITS(4); // default is 5
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
40   RDHFD0toKpi->AddTrackCuts(esdTrackCuts);
41
42   const Int_t nvars=9;
43
44   const Int_t nptbins=11;
45   Float_t* ptbins;
46   ptbins=new Float_t[nptbins+1];
47   ptbins[0]=0.;
48   ptbins[1]=1.;
49   ptbins[2]=2.;
50   ptbins[3]=3.;
51   ptbins[4]=4.;
52   ptbins[5]=5.;
53   ptbins[6]=6.;
54   ptbins[7]=8.;
55   ptbins[8]=12.;
56   ptbins[9]=16.;
57   ptbins[10]=20.;
58   ptbins[11]=24.;
59   //ptbins[12]=99999.;
60   
61   RDHFD0toKpi->SetPtBins(nptbins+1,ptbins);
62   
63
64   Float_t** rdcutsvalmine;
65   rdcutsvalmine=new Float_t*[nvars];
66   for(Int_t iv=0;iv<nvars;iv++){
67     rdcutsvalmine[iv]=new Float_t[nptbins];
68   }
69
70   //setting my cut values
71     //cuts order
72     //       printf("    |M-MD0| [GeV]    < %f\n",fD0toKpiCuts[0]);
73     //     printf("    dca    [cm]  < %f\n",fD0toKpiCuts[1]);
74     //     printf("    cosThetaStar     < %f\n",fD0toKpiCuts[2]);
75     //     printf("    pTK     [GeV/c]    > %f\n",fD0toKpiCuts[3]);
76     //     printf("    pTpi    [GeV/c]    > %f\n",fD0toKpiCuts[4]);
77     //     printf("    |d0K|  [cm]  < %f\n",fD0toKpiCuts[5]);
78     //     printf("    |d0pi| [cm]  < %f\n",fD0toKpiCuts[6]);
79     //     printf("    d0d0  [cm^2] < %f\n",fD0toKpiCuts[7]);
80     //     printf("    cosThetaPoint    > %f\n",fD0toKpiCuts[8]);
81
82   /*
83   //setting PPR cut values
84   rdcutsvalPPR[0][0]=0.7;
85   rdcutsvalPPR[1][0]=0.04;
86   rdcutsvalPPR[2][0]=0.8;
87   rdcutsvalPPR[3][0]=0.5;
88   rdcutsvalPPR[4][0]=0.5;
89   rdcutsvalPPR[5][0]=0.05;
90   rdcutsvalPPR[6][0]=0.05;
91   rdcutsvalPPR[7][0]=-0.0002;
92   rdcutsvalPPR[8][0]=0.5;
93
94   rdcutsvalPPR[0][1]=rdcutsvalPPR[0][2]=0.7;
95   rdcutsvalPPR[1][1]=rdcutsvalPPR[1][2]=0.02;
96   rdcutsvalPPR[2][1]=rdcutsvalPPR[2][2]=0.8;
97   rdcutsvalPPR[3][1]=rdcutsvalPPR[3][2]=0.7;
98   rdcutsvalPPR[4][1]=rdcutsvalPPR[4][2]=0.7;
99   rdcutsvalPPR[5][1]=rdcutsvalPPR[5][2]=0.05;
100   rdcutsvalPPR[6][1]=rdcutsvalPPR[6][2]=0.05;
101   rdcutsvalPPR[7][1]=rdcutsvalPPR[7][2]=-0.0002;
102   rdcutsvalPPR[8][1]=rdcutsvalPPR[8][2]=0.6;
103
104   rdcutsvalPPR[0][3]=0.7;
105   rdcutsvalPPR[1][3]=0.02;
106   rdcutsvalPPR[2][3]=0.8;
107   rdcutsvalPPR[3][3]=0.7;
108   rdcutsvalPPR[4][3]=0.7;
109   rdcutsvalPPR[5][3]=0.05;
110   rdcutsvalPPR[6][3]=0.05;
111   rdcutsvalPPR[7][3]=-0.0001;
112   rdcutsvalPPR[8][3]=0.8;
113
114   rdcutsvalPPR[0][4]=0.7;
115   rdcutsvalPPR[1][4]=0.02;
116   rdcutsvalPPR[2][4]=0.8;
117   rdcutsvalPPR[3][4]=0.7;
118   rdcutsvalPPR[4][4]=0.7;
119   rdcutsvalPPR[5][4]=0.05;
120   rdcutsvalPPR[6][4]=0.05;
121   rdcutsvalPPR[7][4]=-0.00005;
122   rdcutsvalPPR[8][4]=0.8;
123   */
124   Double_t arrcuts[9]={0.2,0.03,0.8,0.3,0.3,0.1,0.1,-0.0004,0.7};
125
126   //setting my cut values
127
128   //0-1 GeV
129   rdcutsvalmine[0][0]=arrcuts[0];
130   rdcutsvalmine[1][0]=arrcuts[1];
131   rdcutsvalmine[2][0]=arrcuts[2];
132   rdcutsvalmine[3][0]=arrcuts[3];
133   rdcutsvalmine[4][0]=arrcuts[4];
134   rdcutsvalmine[5][0]=arrcuts[5];
135   rdcutsvalmine[6][0]=arrcuts[6];
136   rdcutsvalmine[7][0]=arrcuts[7];
137   rdcutsvalmine[8][0]=arrcuts[8];
138
139   //1-2 GeV
140   arrcuts[1]=0.02; arrcuts[3]=arrcuts[4]=0.4; arrcuts[7]=-0.00032; arrcuts[8]=0.8;
141   rdcutsvalmine[0][1]=arrcuts[0];
142   rdcutsvalmine[1][1]=arrcuts[1];
143   rdcutsvalmine[2][1]=arrcuts[2];
144   rdcutsvalmine[3][1]=arrcuts[3];
145   rdcutsvalmine[4][1]=arrcuts[4];
146   rdcutsvalmine[5][1]=arrcuts[5];
147   rdcutsvalmine[6][1]=arrcuts[6];
148   rdcutsvalmine[7][1]=arrcuts[7];
149   rdcutsvalmine[8][1]=arrcuts[8];
150
151   //2-3 GeV
152   arrcuts[3]=arrcuts[4]=0.7; arrcuts[7]=-0.00026;
153   rdcutsvalmine[0][2]=arrcuts[0];
154   rdcutsvalmine[1][2]=arrcuts[1];
155   rdcutsvalmine[2][2]=arrcuts[2];
156   rdcutsvalmine[3][2]=arrcuts[3];
157   rdcutsvalmine[4][2]=arrcuts[4];
158   rdcutsvalmine[5][2]=arrcuts[5];
159   rdcutsvalmine[6][2]=arrcuts[6];
160   rdcutsvalmine[7][2]=arrcuts[7];
161   rdcutsvalmine[8][2]=arrcuts[8];
162
163
164   //3-4 GeV - 4-5 GeV 
165   arrcuts[7]=-0.00015;
166   rdcutsvalmine[0][3]=rdcutsvalmine[0][4]=arrcuts[0];
167   rdcutsvalmine[1][3]=rdcutsvalmine[1][4]=arrcuts[1];
168   rdcutsvalmine[2][3]=rdcutsvalmine[2][4]=arrcuts[2];
169   rdcutsvalmine[3][3]=rdcutsvalmine[3][4]=arrcuts[3];
170   rdcutsvalmine[4][3]=rdcutsvalmine[4][4]=arrcuts[4];
171   rdcutsvalmine[5][3]=rdcutsvalmine[5][4]=arrcuts[5];
172   rdcutsvalmine[6][3]=rdcutsvalmine[6][4]=arrcuts[6];
173   rdcutsvalmine[7][3]=rdcutsvalmine[7][4]=arrcuts[7];
174   rdcutsvalmine[8][3]=rdcutsvalmine[8][4]=arrcuts[8];
175
176
177   //5-6 GeV - 6-8 GeV - 8-12 GeV - 12-16 GeV
178   arrcuts[2]=0.015;  arrcuts[7]=-0.0001;
179
180   rdcutsvalmine[0][5]=rdcutsvalmine[0][6]=rdcutsvalmine[0][7]=rdcutsvalmine[0][8]=arrcuts[0];
181   rdcutsvalmine[1][5]=rdcutsvalmine[1][6]=rdcutsvalmine[1][7]=rdcutsvalmine[1][8]=arrcuts[1];
182   rdcutsvalmine[2][5]=rdcutsvalmine[2][6]=rdcutsvalmine[2][7]=rdcutsvalmine[2][8]=arrcuts[2];
183   rdcutsvalmine[3][5]=rdcutsvalmine[3][6]=rdcutsvalmine[3][7]=rdcutsvalmine[3][8]=arrcuts[3];
184   rdcutsvalmine[4][5]=rdcutsvalmine[4][6]=rdcutsvalmine[4][7]=rdcutsvalmine[4][8]=arrcuts[4];
185   rdcutsvalmine[5][5]=rdcutsvalmine[5][6]=rdcutsvalmine[5][7]=rdcutsvalmine[5][8]=arrcuts[5];
186   rdcutsvalmine[6][5]=rdcutsvalmine[6][6]=rdcutsvalmine[6][7]=rdcutsvalmine[6][8]=arrcuts[6];
187   rdcutsvalmine[7][5]=rdcutsvalmine[7][6]=rdcutsvalmine[7][7]=rdcutsvalmine[7][8]=arrcuts[7];
188   rdcutsvalmine[8][5]=rdcutsvalmine[8][6]=rdcutsvalmine[8][7]=rdcutsvalmine[8][8]=arrcuts[8];
189
190   //16-20 GeV - 20-24 GeV --to be optimized
191   arrcuts[7]=0.0001; arrcuts[8]=0.7;
192   rdcutsvalmine[0][9]=rdcutsvalmine[0][10]=arrcuts[0];
193   rdcutsvalmine[1][9]=rdcutsvalmine[1][10]=arrcuts[1];
194   rdcutsvalmine[2][9]=rdcutsvalmine[2][10]=arrcuts[2];
195   rdcutsvalmine[3][9]=rdcutsvalmine[3][10]=arrcuts[3];
196   rdcutsvalmine[4][9]=rdcutsvalmine[4][10]=arrcuts[4];
197   rdcutsvalmine[5][9]=rdcutsvalmine[5][10]=arrcuts[5];
198   rdcutsvalmine[6][9]=rdcutsvalmine[6][10]=arrcuts[6];
199   rdcutsvalmine[7][9]=rdcutsvalmine[7][10]=arrcuts[7];
200   rdcutsvalmine[8][9]=rdcutsvalmine[8][10]=arrcuts[8];
201
202   RDHFD0toKpi->SetCuts(nvars,nptbins,rdcutsvalmine);
203
204   Bool_t pidflag=kTRUE;
205   RDHFD0toKpi->SetUsePID(pidflag);
206   if(pidflag) cout<<"PID is used"<<endl;
207   else cout<<"PID is not used"<<endl;
208
209   //pid settings
210   AliAODPidHF* pidObj=new AliAODPidHF();
211   //pidObj->SetName("pid4D0");
212   Int_t mode=1;
213   const Int_t nlims=2;
214   Double_t plims[nlims]={0.6,0.8}; //TPC limits in momentum [GeV/c]
215   Bool_t compat=kTRUE; //effective only for this mode
216   Bool_t asym=kTRUE;
217   Double_t sigmas[5]={2.,1.,0.,3.,0.}; //to be checked and to be modified with new implementation of setters by Rossella
218   pidObj->SetAsym(asym);// if you want to use the asymmetric bands in TPC
219   pidObj->SetMatch(mode);
220   pidObj->SetPLimit(plims,nlims);
221   pidObj->SetSigma(sigmas);
222   pidObj->SetCompat(compat);
223   pidObj->SetTPC(kTRUE);
224   pidObj->SetTOF(kTRUE);
225   RDHFD0toKpi->SetPidHF(pidObj);
226
227   RDHFD0toKpi->SetUseDefaultPID(kFALSE); //to use the AliAODPidHF
228
229   cout<<"This is the odject I'm going to save:"<<endl;
230   RDHFD0toKpi->PrintAll();
231   TFile* fout=new TFile("D0toKpiCuts.root","recreate");   //set this!! 
232   fout->cd();
233   RDHFD0toKpi->Write();
234   fout->Close();
235
236 }
237
238 //macro to make a .root file (for significance maximization) which contains an AliRDHFCutsD0toKpi with loose set of cuts  and TParameter with the tighest value of these cuts
239
240 void makeInputAliAnalysisTaskSESignificanceMaximization(){
241
242   AliRDHFCutsD0toKpi* RDHFD0toKpi=new AliRDHFCutsD0toKpi();
243   RDHFD0toKpi->SetName("loosercuts");
244   RDHFD0toKpi->SetTitle("Cuts for significance maximization");
245
246   AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
247   esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
248   //default
249   esdTrackCuts->SetRequireTPCRefit(kTRUE);
250   esdTrackCuts->SetRequireITSRefit(kTRUE);
251   esdTrackCuts->SetMinNClustersITS(4);
252   
253   esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
254   esdTrackCuts->SetMinDCAToVertexXY(0.);
255   esdTrackCuts->SetEtaRange(-0.9,0.9);
256   esdTrackCuts->SetPtRange(0.1,1.e10);
257   
258   RDHFD0toKpi->AddTrackCuts(esdTrackCuts);
259
260   const Int_t nvars=9;
261
262   const Int_t nptbins=11;
263   Float_t ptbins[nptbins+1];
264   ptbins[0]=0.;
265   ptbins[1]=0.5;
266   ptbins[2]=1.;
267   ptbins[3]=2.;
268   ptbins[4]=3.;
269   ptbins[5]=4.;
270   ptbins[6]=5.;
271   ptbins[7]=6.;
272   ptbins[8]=8.;
273   ptbins[9]=12.;
274   ptbins[10]=16.;
275   ptbins[11]=9999.;
276   
277   RDHFD0toKpi->SetPtBins(nptbins+1,ptbins);
278   
279
280   Float_t** rdcutsvalmine;
281   rdcutsvalmine=new Float_t*[nvars];
282   for(Int_t iv=0;iv<nvars;iv++){
283     rdcutsvalmine[iv]=new Float_t[nptbins];
284   }
285
286   //setting my cut values
287     //cuts order
288     //       printf("    |M-MD0| [GeV]    < %f\n",fD0toKpiCuts[0]);
289     //     printf("    dca    [cm]  < %f\n",fD0toKpiCuts[1]);
290     //     printf("    cosThetaStar     < %f\n",fD0toKpiCuts[2]);
291     //     printf("    pTK     [GeV/c]    > %f\n",fD0toKpiCuts[3]);
292     //     printf("    pTpi    [GeV/c]    > %f\n",fD0toKpiCuts[4]);
293     //     printf("    |d0K|  [cm]  < %f\n",fD0toKpiCuts[5]);
294     //     printf("    |d0pi| [cm]  < %f\n",fD0toKpiCuts[6]);
295     //     printf("    d0d0  [cm^2] < %f\n",fD0toKpiCuts[7]);
296     //     printf("    cosThetaPoint    > %f\n",fD0toKpiCuts[8]);
297
298    Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.2,300.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/* pt<0.5*/
299                                                   {0.2,300.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/* 0.5<pt<1*/
300                                                   {0.2,200.*1E-4,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/* 1<pt<2 */
301                                                   {0.2,200.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/* 2<pt<3 */
302                                                   {0.2,200.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/* 3<pt<4 */
303                                                   {0.2,200.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/* 4<pt<5 */
304                                                   {0.2,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/* 5<pt<6 */
305                                                   {0.2,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/* 6<pt<8 */
306                                                   {0.2,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/* 8<pt<12 */
307                                                   {0.2,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00005,0.7},/*12<pt<16 */
308                                                   {0.2,150.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-0.00005,0.7}};/*pt>16 */
309   
310   //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts
311   for (Int_t ibin=0;ibin<nptbins;ibin++){
312     for (Int_t ivar = 0; ivar<nvars; ivar++){
313       rdcutsvalmine[ivar][ibin]=cutsMatrixD0toKpiStand[ibin][ivar];
314     }
315   }
316
317   RDHFD0toKpi->SetCuts(nvars,nptbins,rdcutsvalmine);
318
319   Int_t nvarsforopt=RDHFD0toKpi->GetNVarsForOpt();
320   Int_t dim=2; //set this!!
321   Bool_t *boolforopt;
322   boolforopt=new Bool_t[nvars];
323   if(dim>nvarsforopt){
324     cout<<"Number of variables for optimization has probably changed, check and edit accordingly"<<endl;
325     return;
326   } else {
327     if(dim==nvarsforopt){
328       boolforopt=RDHFD0toKpi->GetVarsForOpt();
329     }else{
330       TString *names;
331       names=new TString[nvars];
332       TString answer="";
333       Int_t checktrue=0;
334       names=RDHFD0toKpi->GetVarNames();
335       for(Int_t i=0;i<nvars;i++){
336         cout<<names[i]<<" for opt? (y/n)"<<endl;
337         cin>>answer;
338         if(answer=="y") {
339           boolforopt[i]=kTRUE;
340           checktrue++;
341         }
342         else boolforopt[i]=kFALSE;
343       }
344       if (checktrue!=dim) {
345         cout<<"Error! You set "<<checktrue<<" kTRUE instead of "<<dim<<endl;
346         return;
347       }
348       RDHFD0toKpi->SetVarsForOpt(dim,boolforopt);
349     }
350   }
351
352
353   Float_t tighterval[dim][nptbins];
354   //dca
355   //costhetastar
356   //d0d0 <-this 
357   //costhetapoint <-this 
358
359   
360   //number of steps for each variable is 4 now (set in the AddTask)
361   //set this!!
362   // tighterval[0][0]=0.01;
363   // tighterval[1][0]=0.8;
364    tighterval[0][0]=-0.0006;
365   tighterval[1][0]=0.95;
366
367   // tighterval[0][1]=0.01;
368   // tighterval[1][1]=0.8;
369   tighterval[0][1]=-0.0006;
370   tighterval[1][1]=0.95;
371  
372  // tighterval[0][2]=0.01;
373   // tighterval[1][2]=0.8;
374   tighterval[0][2]=-0.0006;
375   tighterval[1][2]=0.95;
376  
377   // tighterval[0][3]=0.01;
378   // tighterval[1][3]=0.8;
379   tighterval[0][3]=-0.0006;
380   tighterval[1][3]=0.95;
381
382   // tighterval[0][4]=0.01;
383   // tighterval[1][4]=0.8;
384   tighterval[0][4]=-0.0006;
385   tighterval[1][4]=0.95;
386
387   // tighterval[0][5]=0.01;
388   // tighterval[1][5]=0.8;
389   tighterval[0][5]=-0.0006;
390   tighterval[1][5]=0.95;
391
392   // tighterval[0][6]=0.01;
393   // tighterval[1][6]=0.8;
394   tighterval[0][6]=-0.0006;
395   tighterval[1][6]=0.95;
396
397   // tighterval[0][6]=0.01;
398   // tighterval[1][6]=0.8;
399   tighterval[0][7]=-0.0006;
400   tighterval[1][7]=0.95;
401
402   // tighterval[0][6]=0.01;
403   // tighterval[1][6]=0.8;
404   tighterval[0][8]=-0.0006;
405   tighterval[1][8]=0.95;
406
407   // tighterval[0][6]=0.01;
408   // tighterval[1][6]=0.8;
409   tighterval[0][9]=-0.0006;
410   tighterval[1][9]=0.95;
411
412   // tighterval[0][6]=0.01;
413   // tighterval[1][6]=0.8;
414   tighterval[0][10]=-0.0006;
415   tighterval[1][10]=0.95;
416
417
418   TString name=""; 
419   Int_t arrdim=dim*nptbins;
420   cout<<"Will save "<<arrdim<<" TParameter<float>"<<endl;
421   TClonesArray max("TParameter<float>",arrdim);
422   for(Int_t ival=0;ival<dim;ival++){
423     for(Int_t jpt=0;jpt<nptbins;jpt++){
424       name=Form("par%dptbin%d",ival,jpt);
425       cout<<"Setting "<<name.Data()<<" to "<<tighterval[ival][jpt]<<endl;
426       new(max[jpt*dim+ival])TParameter<float>(name.Data(),tighterval[ival][jpt]);
427     }
428   }
429   cout<<"Looser cuts are: "<<endl;
430   RDHFD0toKpi->PrintAll();
431
432   Bool_t flagPID=kTRUE;
433   RDHFD0toKpi->SetUsePID(flagPID);
434   printf("Use PID? %s\n",flagPID ? "yes" : "no");
435
436   //pid settings
437   AliAODPidHF* pidObj=new AliAODPidHF();
438   //pidObj->SetName("pid4D0");
439   Int_t mode=1;
440   const Int_t nlims=2;
441   Double_t plims[nlims]={0.6,0.8}; //TPC limits in momentum [GeV/c]
442   Bool_t compat=kTRUE; //effective only for this mode
443   Bool_t asym=kTRUE;
444   Double_t sigmas[5]={2.,1.,0.,3.,0.}; //to be checked and to be modified with new implementation of setters by Rossella
445   pidObj->SetAsym(asym);// if you want to use the asymmetric bands in TPC
446   pidObj->SetMatch(mode);
447   pidObj->SetPLimit(plims,nlims);
448   pidObj->SetSigma(sigmas);
449   pidObj->SetCompat(compat);
450   pidObj->SetTPC(kTRUE);
451   pidObj->SetTOF(kTRUE);
452   RDHFD0toKpi->SetPidHF(pidObj);
453
454
455  
456   RDHFD0toKpi->SetUseDefaultPID(kFALSE); //to use the AliAODPidHF
457
458   TFile* fout=new TFile("cuts4SignifMaxim.root","recreate");   //set this!! 
459   fout->cd();
460   RDHFD0toKpi->Write();
461   max.Write();
462   fout->Close();
463  
464 }
465