4 #include <TClonesArray.h>
5 #include <TParameter.h>
28 AliESDtrackCuts* esdTrackCuts=
new AliESDtrackCuts();
29 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
31 esdTrackCuts->SetRequireTPCRefit(kTRUE);
32 esdTrackCuts->SetRequireITSRefit(kTRUE);
34 esdTrackCuts->SetMinNClustersTPC(70);
35 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
36 AliESDtrackCuts::kAny);
38 esdTrackCuts->SetMinDCAToVertexXY(0.);
39 esdTrackCuts->SetPtRange(0.3,1.e10);
72 anacutsval[ic][ipt]=0.2;
76 anacutsval[ic][ipt]=0.4;
84 anacutsval[ic][ipt]=0.4;
93 anacutsval[ic][ipt]=0.;
98 anacutsval[ic][ipt]=0.;
103 anacutsval[ic][ipt]=0.01;
109 anacutsval[ic][ipt]=0.023333;
112 anacutsval[6][0]=0.022100;
113 anacutsval[6][1]=0.022100;
114 anacutsval[6][2]=0.034;
115 anacutsval[6][3]=0.020667;
116 anacutsval[6][4]=0.020667;
121 anacutsval[ic][ipt]=0.115;
124 anacutsval[7][0]=0.08;
125 anacutsval[7][1]=0.08;
126 anacutsval[7][2]=0.09;
127 anacutsval[7][3]=0.095;
128 anacutsval[7][4]=0.095;
132 anacutsval[ic][ipt]=0.5;
135 anacutsval[8][0]=0.5;
136 anacutsval[8][1]=0.5;
137 anacutsval[8][2]=1.0;
142 anacutsval[ic][ipt]=0.90;
145 anacutsval[9][0]=0.95;
146 anacutsval[9][1]=0.95;
147 anacutsval[9][2]=0.95;
148 anacutsval[9][3]=0.95;
149 anacutsval[9][4]= 0.95;
150 anacutsval[9][5]=0.92;
151 anacutsval[9][6]=0.92;
152 anacutsval[9][7]=0.92;
153 anacutsval[9][8]=0.92;
158 anacutsval[ic][ipt]=0.000883;
161 anacutsval[10][0]=0.0055;
162 anacutsval[10][1]=0.0055;
163 anacutsval[10][2]= 0.0028;
170 anacutsval[ic][ipt]=10000000000.;
175 anacutsval[ic][ipt]=0.;
180 anacutsval[ic][ipt]=0.;
187 analysiscuts->SetName(
"AnalysisCuts");
188 analysiscuts->SetTitle(
"Cuts for Dplus Analysis and CF");
189 analysiscuts->
SetPtBins(nptbins+1,ptbins);
190 analysiscuts->
SetCuts(nvars,nptbins,anacutsval);
194 cout<<
"This is the odject I'm going to save:"<<nptbins<<endl;
197 TFile*
fout=
new TFile(
"DplustoKpipiCuts.root",
"recreate");
199 analysiscuts->Write();
214 AliESDtrackCuts* esdTrackCuts=
new AliESDtrackCuts();
215 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
217 esdTrackCuts->SetRequireTPCRefit(kTRUE);
218 esdTrackCuts->SetRequireITSRefit(kTRUE);
220 esdTrackCuts->SetMinNClustersTPC(70);
221 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
222 AliESDtrackCuts::kAny);
224 esdTrackCuts->SetMinDCAToVertexXY(0.);
225 esdTrackCuts->SetPtRange(0.8,1.e10);
246 const Int_t nvars=14;
252 anacutsval=
new Float_t*[nvars];
258 anacutsval[ic][ipt]=0.2;
265 anacutsval[1][ipt]=1.0;
268 anacutsval[1][0]=0.8;
269 anacutsval[1][1]=0.8;
270 anacutsval[1][2]=0.8;
271 anacutsval[1][3]=0.8;
272 anacutsval[1][4]=0.9;
273 anacutsval[1][5]=0.9;
274 anacutsval[1][6]=0.8;
281 anacutsval[ic][ipt]=0.8;
289 anacutsval[ic][ipt]=0.;
293 anacutsval[ic][ipt]=0.;
297 anacutsval[ic][ipt]=0.01;
303 anacutsval[ic][ipt]=0.023333;
305 anacutsval[6][0]=0.022100;
306 anacutsval[6][1]=0.022100;
307 anacutsval[6][2]=0.034;
308 anacutsval[6][3]=0.020667;
309 anacutsval[6][4]=0.020667;
314 anacutsval[ic][ipt]=0.19;
317 anacutsval[7][0]=0.08;
318 anacutsval[7][1]=0.08;
319 anacutsval[7][2]=0.17;
320 anacutsval[7][3]=0.14;
321 anacutsval[7][4]=0.14;
322 anacutsval[7][5]=0.19;
323 anacutsval[7][6]=0.14;
330 anacutsval[ic][ipt]=2.0;
333 anacutsval[8][0]=0.8;
334 anacutsval[8][1]=0.8;
335 anacutsval[8][2]=1.1;
336 anacutsval[8][3]=0.5;
337 anacutsval[8][4]=0.5;
343 anacutsval[ic][ipt]=0.997;
346 anacutsval[9][0]=0.995;
347 anacutsval[9][1]=0.995;
348 anacutsval[9][2]=0.997;
349 anacutsval[9][3]=0.998;
350 anacutsval[9][4]= 0.998;
351 anacutsval[9][5]=0.995;
352 anacutsval[9][6]=0.995;
361 anacutsval[ic][ipt]=0.000883;
364 anacutsval[10][0]=0.0055;
365 anacutsval[10][1]=0.0055;
366 anacutsval[10][2]= 0.0028;
372 anacutsval[ic][ipt]=10000000000.;
378 anacutsval[ic][ipt]=0.;
381 anacutsval[12][0]=0.;
382 anacutsval[12][1]=0.;
384 anacutsval[12][2]=0.;
385 anacutsval[12][3]=12.;
386 anacutsval[12][4]=12.;
387 anacutsval[12][5]=12.0;
388 anacutsval[12][6]=10.;
394 anacutsval[ic][ipt]=0.;
397 anacutsval[13][0]=0.;
398 anacutsval[13][1]=0.;
400 anacutsval[13][2]=0.;
401 anacutsval[13][3]=0.998571;
402 anacutsval[13][4]=0.998571;
403 anacutsval[13][5]=0.998571;
404 anacutsval[13][6]=0.997143;
410 analysiscuts->SetName(
"AnalysisCuts");
411 analysiscuts->SetTitle(
"Cuts for Dplus Analysis and CF");
412 analysiscuts->
SetPtBins(nptbins+1,ptbins);
413 analysiscuts->
SetCuts(nvars,nptbins,anacutsval);
422 cent=Form(
"%.0f%.0f",minc,maxc);
426 cout<<
"This is the odject I'm going to save:"<<nptbins<<endl;
429 TFile*
fout=
new TFile(
"DplustoKpipiCuts.root",
"recreate");
431 analysiscuts->Write();
441 RDHFDplustoKpipi->SetName(
"loosercuts");
442 RDHFDplustoKpipi->SetTitle(
"Cuts for significance maximization");
444 AliESDtrackCuts* esdTrackCuts=
new AliESDtrackCuts();
445 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
447 esdTrackCuts->SetRequireTPCRefit(kTRUE);
448 esdTrackCuts->SetRequireITSRefit(kTRUE);
450 esdTrackCuts->SetMinNClustersTPC(70);
451 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
452 AliESDtrackCuts::kAny);
454 esdTrackCuts->SetMinDCAToVertexXY(0.);
455 esdTrackCuts->SetPtRange(0.3,1.e10);
459 const Int_t nvars=12;
470 RDHFDplustoKpipi->
SetPtBins(nptbins+1,ptbins);
475 prodcutsval=
new Float_t*[nvars];
478 prodcutsval[0][ipt]=0.2;
479 prodcutsval[1][ipt]=0.4;
480 prodcutsval[2][ipt]=0.4;
481 prodcutsval[3][ipt]=0.;
482 prodcutsval[4][ipt]=0.;
483 prodcutsval[5][ipt]=0.01;
484 prodcutsval[6][ipt]=0.06;
485 prodcutsval[7][ipt]=0.02;
486 prodcutsval[8][ipt]=0.;
487 prodcutsval[9][ipt]=0.85;
488 prodcutsval[10][ipt]=0.;
489 prodcutsval[11][ipt]=10000000.0;
493 RDHFDplustoKpipi->
SetCuts(nvars,nptbins,prodcutsval);
498 boolforopt=
new Bool_t[nvars];
500 cout<<
"Number of variables for optimization has probably changed, check and edit accordingly"<<endl;
503 if(dim==nvarsforopt){
511 for(
Int_t i=0;i<nvars;i++){
512 cout<<names[i]<<
" for opt? (y/n)"<<endl;
518 else boolforopt[i]=kFALSE;
520 if (checktrue!=dim) {
521 cout<<
"Error! You set "<<checktrue<<
" kTRUE instead of "<<dim<<endl;
540 tighterval[0][0]=0.022100;
541 tighterval[0][1]=0.034;
542 tighterval[0][2]=0.020667;
543 tighterval[0][3]=0.023333;
545 tighterval[1][0]=0.08;
546 tighterval[1][1]=0.09;
547 tighterval[1][2]=0.095;
548 tighterval[1][3]=0.115;
555 tighterval[3][0]=0.979;
556 tighterval[3][1]=0.9975;
557 tighterval[3][2]=0.995;
558 tighterval[3][3]=0.9975;
560 tighterval[4][0]=0.0055;
561 tighterval[4][1]=0.0028;
562 tighterval[4][2]=0.000883;
563 tighterval[4][3]=0.000883;
567 TClonesArray max(
"TParameter<float>",arrdim);
569 for(
Int_t ival=0;ival<dim;ival++){
570 name=Form(
"par%dptbin%d",ival,ipt);
575 TFile*
fout=
new TFile(
"cuts4SignifMaximDplus.root",
"recreate");
577 RDHFDplustoKpipi->Write();
void makeInputAliAnalysisTaskSEDplusPP()
void SetUseAOD049(Bool_t flag=kTRUE)
virtual void PrintAll() const
void SetUseCentrality(Int_t flag=1)
TString * GetVarNames() const
void SetMaxPtCandidate(Double_t ptCand=1000.)
Class for cuts on AOD reconstructed D+->Kpipi.
void SetCuts(Int_t nVars, Int_t nPtBins, Float_t **cutsRD)
void SetMinCentrality(Float_t minCentrality=0.)
Bool_t * GetVarsForOpt() const
Int_t GetNVarsForOpt() const
void makeInputAliAnalysisTaskSEDplusPbPb()
void SetMaxCentrality(Float_t maxCentrality=100.)
void SetVarsForOpt(Int_t nVars, Bool_t *forOpt)
void SetUsePID(Bool_t flag=kTRUE)
void SetPtBins(Int_t nPtBinLimits, Float_t *ptBinLimits)
void SetUseImpParProdCorrCut(Bool_t use)
void AddTrackCuts(const AliESDtrackCuts *cuts)
void SetMinPtCandidate(Double_t ptCand=-1.)
TFile * fout
input train file
void makeInputAliAnalysisTaskSESignificanceMaximization()
void SetOptPileup(Int_t opt=0)