5 #include <TClonesArray.h> 6 #include <TParameter.h> 50 AliESDtrackCuts* esdTrackCuts=
new AliESDtrackCuts();
51 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
53 esdTrackCuts->SetRequireTPCRefit(kTRUE);
54 esdTrackCuts->SetRequireITSRefit(kTRUE);
55 esdTrackCuts->SetMinNClustersITS(0);
56 esdTrackCuts->SetMinNClustersTPC(70);
60 esdTrackCuts->SetMinDCAToVertexXY(0.);
61 esdTrackCuts->SetPtRange(0.,1.e10);
62 esdTrackCuts->SetEtaRange(-0.8,0.8);
63 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
66 AliESDtrackCuts* esdTrackCutsV0daughters=
new AliESDtrackCuts();
67 esdTrackCutsV0daughters->SetRequireSigmaToVertex(kFALSE);
69 esdTrackCutsV0daughters->SetRequireTPCRefit(kTRUE);
70 esdTrackCutsV0daughters->SetRequireITSRefit(kFALSE);
71 esdTrackCutsV0daughters->SetMinNClustersITS(0);
72 esdTrackCutsV0daughters->SetMinNClustersTPC(70);
76 esdTrackCutsV0daughters->SetMinDCAToVertexXY(0.);
77 esdTrackCutsV0daughters->SetPtRange(0.,1.e10);
78 esdTrackCutsV0daughters->SetEtaRange(-0.8,0.8);
79 esdTrackCutsV0daughters->SetAcceptKinkDaughters(kFALSE);
82 RDHFLctoV0An->SetName(
"LctoV0AnalysisCuts");
83 RDHFLctoV0An->SetTitle(
"Analysis cuts for Lc analysis");
133 const Int_t nvars=21;
136 anacutsval=
new Float_t*[nvars];
139 anacutsval[0][ipt2]=0.25;
140 anacutsval[1][ipt2]=1.00;
141 anacutsval[3][ipt2]=0.05;
142 anacutsval[7][ipt2]=1000.;
143 anacutsval[8][ipt2]=1.5;
144 anacutsval[9][ipt2]=0.99;
145 anacutsval[12][ipt2]=0.;
146 anacutsval[13][ipt2]=0.005;
147 anacutsval[16][ipt2]=9999;
148 anacutsval[17][ipt2]=-9999;
149 anacutsval[18][ipt2]=-9999;
150 anacutsval[19][ipt2]=-9999;
151 anacutsval[20][ipt2]=0.;
156 anacutsval[2][0]=0.00500;
157 anacutsval[2][1]=0.00812;
158 anacutsval[2][2]=0.00858;
159 anacutsval[2][3]=0.00900;
160 anacutsval[2][4]=0.01000;
161 anacutsval[2][5]=0.01000;
183 anacutsval[2][0]=0.00500;
184 anacutsval[2][1]=0.00812;
185 anacutsval[2][2]=0.00858;
186 anacutsval[2][3]=0.00900;
187 anacutsval[2][4]=0.01000;
188 anacutsval[2][5]=0.01000;
193 anacutsval[13][0]=0.005;
194 anacutsval[13][1]=0.005;
195 anacutsval[13][2]=0.005;
196 anacutsval[13][3]=0.005;
197 anacutsval[13][4]=0.005;
198 anacutsval[13][5]=0.005;
216 anacutsval[2][0]=0.006;
217 anacutsval[2][1]=0.007;
218 anacutsval[2][2]=0.008;
219 anacutsval[2][3]=0.009;
220 anacutsval[2][4]=0.010;
221 anacutsval[2][5]=0.011;
236 anacutsval[4][0]=0.6;
237 anacutsval[4][1]=0.6;
238 anacutsval[4][2]=0.7;
239 anacutsval[4][3]=0.7;
240 anacutsval[4][4]=0.9;
241 anacutsval[4][5]=1.1;
243 anacutsval[5][0]=0.2;
244 anacutsval[5][1]=0.2;
245 anacutsval[5][2]=0.2;
246 anacutsval[5][3]=0.2;
247 anacutsval[5][4]=0.2;
248 anacutsval[5][5]=0.3;
250 anacutsval[6][0]=0.2;
251 anacutsval[6][1]=0.2;
252 anacutsval[6][2]=0.2;
253 anacutsval[6][3]=0.2;
254 anacutsval[6][4]=0.2;
255 anacutsval[6][5]=0.3;
257 anacutsval[10][0]=0.05;
258 anacutsval[10][1]=0.05;
259 anacutsval[10][2]=0.10;
260 anacutsval[10][3]=0.10;
261 anacutsval[10][4]=0.10;
262 anacutsval[10][5]=0.10;
264 anacutsval[11][0]=0.05;
265 anacutsval[11][1]=0.05;
266 anacutsval[11][2]=0.09;
267 anacutsval[11][3]=0.09;
268 anacutsval[11][4]=999.;
269 anacutsval[11][5]=999.;
271 anacutsval[14][0]=0.100;
272 anacutsval[14][1]=0.100;
273 anacutsval[14][2]=0.300;
274 anacutsval[14][3]=0.300;
275 anacutsval[14][4]=0.300;
276 anacutsval[14][5]=0.300;
278 anacutsval[15][0]=0.5;
279 anacutsval[15][1]=0.6;
280 anacutsval[15][2]=0.7;
281 anacutsval[15][3]=1.0;
282 anacutsval[15][4]=1.1;
283 anacutsval[15][5]=1.2;
287 anacutsval[4][0]=0.5;
288 anacutsval[4][1]=0.6;
289 anacutsval[4][2]=0.7;
290 anacutsval[4][3]=0.9;
291 anacutsval[4][4]=0.9;
292 anacutsval[5][5]=0.9;
294 anacutsval[5][0]=0.2;
295 anacutsval[5][1]=0.2;
296 anacutsval[5][2]=0.2;
297 anacutsval[5][3]=0.2;
298 anacutsval[5][4]=0.2;
299 anacutsval[5][5]=0.3;
301 anacutsval[6][0]=0.2;
302 anacutsval[6][1]=0.2;
303 anacutsval[6][2]=0.2;
304 anacutsval[6][3]=0.2;
305 anacutsval[6][4]=0.2;
306 anacutsval[6][5]=0.3;
308 anacutsval[10][0]=0.05;
309 anacutsval[10][1]=0.05;
310 anacutsval[10][2]=0.08;
311 anacutsval[10][3]=0.10;
312 anacutsval[10][4]=0.10;
313 anacutsval[10][5]=0.10;
315 for (
Int_t ipt2=0; ipt2<
nptbins; ipt2++) anacutsval[11][ipt2]=999.;
317 anacutsval[14][0]=0.100;
318 anacutsval[14][1]=0.100;
319 anacutsval[14][2]=0.100;
320 anacutsval[14][3]=0.100;
321 anacutsval[14][4]=0.100;
322 anacutsval[14][5]=0.100;
324 anacutsval[15][0]=0.8;
325 anacutsval[15][1]=0.8;
326 anacutsval[15][2]=0.8;
327 anacutsval[15][3]=1.2;
328 anacutsval[15][4]=1.0;
329 anacutsval[15][5]=1.2;
333 RDHFLctoV0An->
SetCuts(nvars,nptbins,anacutsval);
336 const Int_t nBachelorPbins=2;
338 Float_t minCombProb[nBachelorPbins];
339 for (
Int_t iBin=0; iBin<nBachelorPbins; iBin++) minCombProb[iBin]=0.;
341 Float_t bachelorPlimits[nBachelorPbins+];
342 for (
Int_t iBin=0; iBin<nBachelorPbins; iBin++) bachelorPlimits[iBin]=0.;
343 SetBachelorPLimitsForPID(nBachelorPbins,bachelorPlimits);
349 Double_t sigmasBac[5]={3.,1.,1.,3.,3.};
350 pidObjBachelor->
SetSigma(sigmasBac);
351 pidObjBachelor->
SetAsym(kFALSE);
353 pidObjBachelor->
SetTPC(kTRUE);
354 pidObjBachelor->
SetTOF(kTRUE);
362 RDHFLctoV0An->
SetPidHF(pidObjBachelor);
380 if(pidflag) cout<<
"PID is used"<<endl;
381 else cout<<
"PID is not used"<<endl;
383 cout<<
"This is the (anal) object I'm going to save:"<<endl;
387 fout=
new TFile(
"Lc2pK0SCuts.root",
"RECREATE");
389 fout=
new TFile(
"Lc2pK0SCuts.root",
"RECREATE");
392 RDHFLctoV0An->Write();
396 delete pidObjBachelor;
407 RDHFLctoV0->SetName(
"loosercuts");
408 RDHFLctoV0->SetTitle(
"Cuts for significance maximization");
410 AliESDtrackCuts* esdTrackCuts=
new AliESDtrackCuts();
411 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
413 esdTrackCuts->SetRequireTPCRefit(kTRUE);
414 esdTrackCuts->SetMinNClustersTPC(70);
415 esdTrackCuts->SetRequireITSRefit(kFALSE);
416 esdTrackCuts->SetMinNClustersITS(0);
418 esdTrackCuts->SetMinDCAToVertexXY(0.);
419 esdTrackCuts->SetEtaRange(-0.8,0.8);
420 esdTrackCuts->SetPtRange(0.,1.e10);
422 AliESDtrackCuts* esdTrackCutsV0daughters=
new AliESDtrackCuts();
423 esdTrackCutsV0daughters->SetRequireSigmaToVertex(kFALSE);
425 esdTrackCutsV0daughters->SetRequireTPCRefit(kTRUE);
426 esdTrackCutsV0daughters->SetMinNClustersTPC(70);
427 esdTrackCutsV0daughters->SetRequireITSRefit(kFALSE);
428 esdTrackCutsV0daughters->SetMinNClustersITS(0);
430 esdTrackCutsV0daughters->SetMinDCAToVertexXY(0.);
431 esdTrackCutsV0daughters->SetPtRange(0.,1.e10);
442 const Int_t nvars=14;
456 rdcutsvalmine=
new Float_t*[nvars];
457 for(
Int_t iv=0;iv<nvars;iv++){
479 for(
Int_t ic=0;ic<nvars;ic++)
482 cutsMatrixLctoV0Stand[ 0][ipt2] =0.0075;
483 cutsMatrixLctoV0Stand[ 1][ipt2] =0.0500;
484 cutsMatrixLctoV0Stand[ 2][ipt2] =0.4;
485 cutsMatrixLctoV0Stand[ 3][ipt2] =0.2;
486 cutsMatrixLctoV0Stand[ 4][ipt2] =0.2;
487 cutsMatrixLctoV0Stand[ 5][ipt2] =1000.;
488 cutsMatrixLctoV0Stand[ 6][ipt2] =1.5;
489 cutsMatrixLctoV0Stand[ 7][ipt2] =0.99;
490 cutsMatrixLctoV0Stand[ 8][ipt2] =0.05;
491 cutsMatrixLctoV0Stand[ 9][ipt2] =0.1;
492 cutsMatrixLctoV0Stand[10][ipt2] =0.0;
493 cutsMatrixLctoV0Stand[11][ipt2] =0.005;
494 cutsMatrixLctoV0Stand[12][ipt2] =0.100;
496 cutsMatrixLctoV0Stand[13][0]=0.0;
497 cutsMatrixLctoV0Stand[13][1]=0.6;
498 cutsMatrixLctoV0Stand[13][2]=0.8;
499 cutsMatrixLctoV0Stand[13][3]=0.8;
500 cutsMatrixLctoV0Stand[13][4]=0.8;
501 cutsMatrixLctoV0Stand[13][5]=1.0;
506 for(
Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=
new Float_t[nptbins];
508 for (
Int_t ivar=0; ivar<nvars; ivar++){
509 cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixLctoV0Stand[ibin][ivar];
512 RDHFLctoV0->
SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
518 boolforopt=
new Bool_t[nvars];
520 cout<<
"Number of variables for optimization has probably changed, check and edit accordingly"<<endl;
523 if(dim==nvarsforopt){
531 for(
Int_t i=0;i<nvars;i++){
532 cout<<names[i]<<
" for opt? (y/n)"<<endl;
538 else boolforopt[i]=kFALSE;
540 if (checktrue!=dim) {
541 cout<<
"Error! You set "<<checktrue<<
" kTRUE instead of "<<dim<<endl;
568 tighterval[ 0][ipt] =0.075;
569 tighterval[ 1][ipt] =0.040;
570 tighterval[ 2][ipt] =0.4;
571 tighterval[ 3][ipt] =0.2;
572 tighterval[ 4][ipt] =0.2;
573 tighterval[ 5][ipt] =100.;
574 tighterval[ 6][ipt] =1.5;
575 tighterval[ 7][ipt] =0.99;
576 tighterval[ 8][ipt] =0.05;
577 tighterval[ 9][ipt] =0.1;
578 tighterval[10][ipt] =0.0;
579 tighterval[11][ipt] =0.005;
580 tighterval[12][ipt] =0.100;
582 tighterval[13][0]=0.0;
583 tighterval[13][1]=0.6;
584 tighterval[13][2]=0.8;
585 tighterval[13][3]=0.8;
586 tighterval[13][4]=0.8;
587 tighterval[13][5]=0.8;
591 cout<<
"Will save "<<arrdim<<
" TParameter<float>"<<endl;
592 TClonesArray max(
"TParameter<float>",arrdim);
593 for(
Int_t ival=0;ival<dim;ival++){
595 name=Form(
"par%dptbin%d",ival,jpt);
596 cout<<
"Setting "<<name.Data()<<
" to "<<tighterval[ival][jpt]<<endl;
605 printf(
"Use PID? %s\n",flagPID ?
"yes" :
"no");
610 Double_t sigmasBac[5]={3.,1.,1.,3.,3.};
611 pidObjBachelor->
SetSigma(sigmasBac);
612 pidObjBachelor->
SetAsym(kFALSE);
614 pidObjBachelor->
SetTPC(kTRUE);
615 pidObjBachelor->
SetTOF(kTRUE);
617 RDHFLctoV0->
SetPidHF(pidObjBachelor);
627 cent=Form(
"%.0f%.0f",minc,maxc);
634 TFile*
fout=
new TFile(Form(
"cuts4SignifMaxim%s%s%sRecVtx%sPileupRej.root",
void SetMinCombinedProbability(Int_t nPBins, Float_t *minProb)
void SetAsym(Bool_t asym)
Bool_t GetOptPileUp() const
const Float_t kmInvPPi_LHC13d3[nptbins]
const Float_t kmInvPPi_LHC10f7a[nptbins]
const Float_t kmInvPipPim_pp7TeV_pass2[nptbins]
void SetUseCentrality(Int_t flag=1)
void makeInputAliAnalysisTaskSELctoV0bachelor()
TString * GetVarNames() const
const Float_t kmInvPipPim_LHC13d3[nptbins]
void SetPidHF(AliAODPidHF *pidObj)
see enum below
void SetKinkRejection(Bool_t flag=kTRUE)
const Float_t kmInvPPi_LHC15a2a[nptbins]
void SetUseCombined(Bool_t useCombined=kTRUE)
void SetUseDefaultPriors(Bool_t defaultP)
void SetCombDetectors(ECombDetectors pidComb)
Bool_t fChangeAlsoLambdaVetoOnMC
const Float_t kmInvPPi_LHC11b2[nptbins]
const Float_t kmInvPipPim_pp7TeV_pass4[nptbins]
void SetCuts(Int_t nVars, Int_t nPtBins, Float_t **cutsRD)
void SetMinCentrality(Float_t minCentrality=0.)
Int_t GetPidSelectionFlag()
Bool_t * GetVarsForOpt() const
void AddTrackCutsV0daughters(AliESDtrackCuts *v0daug)
void SetGetNTPCSigmaCutForPreselection(Float_t a)
const Float_t kmInvPipPim_LHC11b2[nptbins]
const Float_t kmInvPipPim_LHC15a2a[nptbins]
void makeInputAliAnalysisTaskSESignificanceMaximization()
Int_t GetNVarsForOpt() const
virtual void PrintAll() const
void SetUseTrackSelectionWithFilterBits(Bool_t flag=kTRUE)
const Float_t kmInvPPi_pp7TeV_pass2[nptbins]
void SetSigma(Double_t *sigma)
void SetMaxCentrality(Float_t maxCentrality=100.)
void SetVarsForOpt(Int_t nVars, Bool_t *forOpt)
void SetLowPtCut(Float_t lowPtCut)
const Float_t kmInvPipPim_LHC10f7a[nptbins]
Bool_t GetIsPrimaryWithoutDaughters() const
void SetUsePID(Bool_t flag=kTRUE)
void SetRemoveDaughtersFromPrim(Bool_t removeDaughtersPrim)
void SetPtBins(Int_t nPtBinLimits, Float_t *ptBinLimits)
void SetTOFdecide(Bool_t tOFdecide)
void SetMatch(Int_t match)
const Float_t kmInvPipPim_pPb[nptbins]
void AddTrackCuts(const AliESDtrackCuts *cuts)
TFile * fout
input train file
void SetTriggerClass(TString trclass0, TString trclass1="")
Int_t GetUseCentrality() const
void SetOptPileup(Int_t opt=0)
void SetPidSelectionFlag(Int_t a)
void SetHighPtCut(Float_t highPtCut)
void SetTriggerMask(ULong64_t mask=0)
const Float_t kmInvPPi_pp7TeV_pass4[nptbins]
const Float_t kmInvPPi_pPb[nptbins]