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");
134 const Int_t nvars=21;
137 anacutsval=
new Float_t*[nvars];
140 anacutsval[0][ipt2]=0.25;
141 anacutsval[1][ipt2]=1.00;
142 anacutsval[3][ipt2]=0.05;
143 anacutsval[7][ipt2]=1000.;
144 anacutsval[8][ipt2]=1.5;
145 anacutsval[9][ipt2]=0.99;
146 anacutsval[12][ipt2]=0.;
147 anacutsval[13][ipt2]=0.005;
148 anacutsval[16][ipt2]=9999;
149 anacutsval[17][ipt2]=-9999;
150 anacutsval[18][ipt2]=-9999;
151 anacutsval[19][ipt2]=-9999;
152 anacutsval[20][ipt2]=0.;
157 anacutsval[2][0]=0.00500;
158 anacutsval[2][1]=0.00812;
159 anacutsval[2][2]=0.00858;
160 anacutsval[2][3]=0.00900;
161 anacutsval[2][4]=0.01000;
162 anacutsval[2][5]=0.01000;
184 anacutsval[2][0]=0.00500;
185 anacutsval[2][1]=0.00812;
186 anacutsval[2][2]=0.00858;
187 anacutsval[2][3]=0.00900;
188 anacutsval[2][4]=0.01000;
189 anacutsval[2][5]=0.01000;
194 anacutsval[13][0]=0.005;
195 anacutsval[13][1]=0.005;
196 anacutsval[13][2]=0.005;
197 anacutsval[13][3]=0.005;
198 anacutsval[13][4]=0.005;
199 anacutsval[13][5]=0.005;
217 anacutsval[2][0]=0.006;
218 anacutsval[2][1]=0.007;
219 anacutsval[2][2]=0.008;
220 anacutsval[2][3]=0.009;
221 anacutsval[2][4]=0.010;
222 anacutsval[2][5]=0.011;
237 anacutsval[4][0]=0.6;
238 anacutsval[4][1]=0.6;
239 anacutsval[4][2]=0.7;
240 anacutsval[4][3]=0.7;
241 anacutsval[4][4]=0.9;
242 anacutsval[4][5]=1.1;
244 anacutsval[5][0]=0.2;
245 anacutsval[5][1]=0.2;
246 anacutsval[5][2]=0.2;
247 anacutsval[5][3]=0.2;
248 anacutsval[5][4]=0.2;
249 anacutsval[5][5]=0.3;
251 anacutsval[6][0]=0.2;
252 anacutsval[6][1]=0.2;
253 anacutsval[6][2]=0.2;
254 anacutsval[6][3]=0.2;
255 anacutsval[6][4]=0.2;
256 anacutsval[6][5]=0.3;
258 anacutsval[10][0]=0.05;
259 anacutsval[10][1]=0.05;
260 anacutsval[10][2]=0.10;
261 anacutsval[10][3]=0.10;
262 anacutsval[10][4]=0.10;
263 anacutsval[10][5]=0.10;
265 anacutsval[11][0]=0.05;
266 anacutsval[11][1]=0.05;
267 anacutsval[11][2]=0.09;
268 anacutsval[11][3]=0.09;
269 anacutsval[11][4]=999.;
270 anacutsval[11][5]=999.;
272 anacutsval[14][0]=0.100;
273 anacutsval[14][1]=0.100;
274 anacutsval[14][2]=0.300;
275 anacutsval[14][3]=0.300;
276 anacutsval[14][4]=0.300;
277 anacutsval[14][5]=0.300;
279 anacutsval[15][0]=0.5;
280 anacutsval[15][1]=0.6;
281 anacutsval[15][2]=0.7;
282 anacutsval[15][3]=1.0;
283 anacutsval[15][4]=1.1;
284 anacutsval[15][5]=1.2;
288 anacutsval[4][0]=0.5;
289 anacutsval[4][1]=0.6;
290 anacutsval[4][2]=0.7;
291 anacutsval[4][3]=0.9;
292 anacutsval[4][4]=0.9;
293 anacutsval[5][5]=0.9;
295 anacutsval[5][0]=0.2;
296 anacutsval[5][1]=0.2;
297 anacutsval[5][2]=0.2;
298 anacutsval[5][3]=0.2;
299 anacutsval[5][4]=0.2;
300 anacutsval[5][5]=0.3;
302 anacutsval[6][0]=0.2;
303 anacutsval[6][1]=0.2;
304 anacutsval[6][2]=0.2;
305 anacutsval[6][3]=0.2;
306 anacutsval[6][4]=0.2;
307 anacutsval[6][5]=0.3;
309 anacutsval[10][0]=0.05;
310 anacutsval[10][1]=0.05;
311 anacutsval[10][2]=0.08;
312 anacutsval[10][3]=0.10;
313 anacutsval[10][4]=0.10;
314 anacutsval[10][5]=0.10;
316 for (
Int_t ipt2=0; ipt2<
nptbins; ipt2++) anacutsval[11][ipt2]=999.;
318 anacutsval[14][0]=0.100;
319 anacutsval[14][1]=0.100;
320 anacutsval[14][2]=0.100;
321 anacutsval[14][3]=0.100;
322 anacutsval[14][4]=0.100;
323 anacutsval[14][5]=0.100;
325 anacutsval[15][0]=0.8;
326 anacutsval[15][1]=0.8;
327 anacutsval[15][2]=0.8;
328 anacutsval[15][3]=1.2;
329 anacutsval[15][4]=1.0;
330 anacutsval[15][5]=1.2;
334 RDHFLctoV0An->
SetCuts(nvars,nptbins,anacutsval);
338 for (
Int_t iBin=0; iBin<
nptbins; iBin++) minCombProb[iBin]=0.;
345 Double_t sigmasBac[5]={3.,1.,1.,3.,3.};
346 pidObjBachelor->
SetSigma(sigmasBac);
347 pidObjBachelor->
SetAsym(kFALSE);
349 pidObjBachelor->
SetTPC(kTRUE);
350 pidObjBachelor->
SetTOF(kTRUE);
358 RDHFLctoV0An->
SetPidHF(pidObjBachelor);
376 if(pidflag) cout<<
"PID is used"<<endl;
377 else cout<<
"PID is not used"<<endl;
379 cout<<
"This is the (anal) object I'm going to save:"<<endl;
383 fout=
new TFile(
"Lc2pK0SCuts.root",
"RECREATE");
385 fout=
new TFile(
"Lc2pK0SCuts.root",
"RECREATE");
388 RDHFLctoV0An->Write();
392 delete pidObjBachelor;
403 RDHFLctoV0->SetName(
"loosercuts");
404 RDHFLctoV0->SetTitle(
"Cuts for significance maximization");
406 AliESDtrackCuts* esdTrackCuts=
new AliESDtrackCuts();
407 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
409 esdTrackCuts->SetRequireTPCRefit(kTRUE);
410 esdTrackCuts->SetMinNClustersTPC(70);
411 esdTrackCuts->SetRequireITSRefit(kFALSE);
412 esdTrackCuts->SetMinNClustersITS(0);
414 esdTrackCuts->SetMinDCAToVertexXY(0.);
415 esdTrackCuts->SetEtaRange(-0.8,0.8);
416 esdTrackCuts->SetPtRange(0.,1.e10);
418 AliESDtrackCuts* esdTrackCutsV0daughters=
new AliESDtrackCuts();
419 esdTrackCutsV0daughters->SetRequireSigmaToVertex(kFALSE);
421 esdTrackCutsV0daughters->SetRequireTPCRefit(kTRUE);
422 esdTrackCutsV0daughters->SetMinNClustersTPC(70);
423 esdTrackCutsV0daughters->SetRequireITSRefit(kFALSE);
424 esdTrackCutsV0daughters->SetMinNClustersITS(0);
426 esdTrackCutsV0daughters->SetMinDCAToVertexXY(0.);
427 esdTrackCutsV0daughters->SetPtRange(0.,1.e10);
438 const Int_t nvars=14;
452 rdcutsvalmine=
new Float_t*[nvars];
453 for(
Int_t iv=0;iv<nvars;iv++){
475 for(
Int_t ic=0;ic<nvars;ic++)
478 cutsMatrixLctoV0Stand[ 0][ipt2] =0.0075;
479 cutsMatrixLctoV0Stand[ 1][ipt2] =0.0500;
480 cutsMatrixLctoV0Stand[ 2][ipt2] =0.4;
481 cutsMatrixLctoV0Stand[ 3][ipt2] =0.2;
482 cutsMatrixLctoV0Stand[ 4][ipt2] =0.2;
483 cutsMatrixLctoV0Stand[ 5][ipt2] =1000.;
484 cutsMatrixLctoV0Stand[ 6][ipt2] =1.5;
485 cutsMatrixLctoV0Stand[ 7][ipt2] =0.99;
486 cutsMatrixLctoV0Stand[ 8][ipt2] =0.05;
487 cutsMatrixLctoV0Stand[ 9][ipt2] =0.1;
488 cutsMatrixLctoV0Stand[10][ipt2] =0.0;
489 cutsMatrixLctoV0Stand[11][ipt2] =0.005;
490 cutsMatrixLctoV0Stand[12][ipt2] =0.100;
492 cutsMatrixLctoV0Stand[13][0]=0.0;
493 cutsMatrixLctoV0Stand[13][1]=0.6;
494 cutsMatrixLctoV0Stand[13][2]=0.8;
495 cutsMatrixLctoV0Stand[13][3]=0.8;
496 cutsMatrixLctoV0Stand[13][4]=0.8;
497 cutsMatrixLctoV0Stand[13][5]=1.0;
502 for(
Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=
new Float_t[nptbins];
504 for (
Int_t ivar=0; ivar<nvars; ivar++){
505 cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixLctoV0Stand[ibin][ivar];
508 RDHFLctoV0->
SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
514 boolforopt=
new Bool_t[nvars];
516 cout<<
"Number of variables for optimization has probably changed, check and edit accordingly"<<endl;
519 if(dim==nvarsforopt){
527 for(
Int_t i=0;i<nvars;i++){
528 cout<<names[i]<<
" for opt? (y/n)"<<endl;
534 else boolforopt[i]=kFALSE;
536 if (checktrue!=dim) {
537 cout<<
"Error! You set "<<checktrue<<
" kTRUE instead of "<<dim<<endl;
564 tighterval[ 0][ipt] =0.075;
565 tighterval[ 1][ipt] =0.040;
566 tighterval[ 2][ipt] =0.4;
567 tighterval[ 3][ipt] =0.2;
568 tighterval[ 4][ipt] =0.2;
569 tighterval[ 5][ipt] =100.;
570 tighterval[ 6][ipt] =1.5;
571 tighterval[ 7][ipt] =0.99;
572 tighterval[ 8][ipt] =0.05;
573 tighterval[ 9][ipt] =0.1;
574 tighterval[10][ipt] =0.0;
575 tighterval[11][ipt] =0.005;
576 tighterval[12][ipt] =0.100;
578 tighterval[13][0]=0.0;
579 tighterval[13][1]=0.6;
580 tighterval[13][2]=0.8;
581 tighterval[13][3]=0.8;
582 tighterval[13][4]=0.8;
583 tighterval[13][5]=0.8;
587 cout<<
"Will save "<<arrdim<<
" TParameter<float>"<<endl;
588 TClonesArray max(
"TParameter<float>",arrdim);
589 for(
Int_t ival=0;ival<dim;ival++){
591 name=Form(
"par%dptbin%d",ival,jpt);
592 cout<<
"Setting "<<name.Data()<<
" to "<<tighterval[ival][jpt]<<endl;
601 printf(
"Use PID? %s\n",flagPID ?
"yes" :
"no");
606 Double_t sigmasBac[5]={3.,1.,1.,3.,3.};
607 pidObjBachelor->
SetSigma(sigmasBac);
608 pidObjBachelor->
SetAsym(kFALSE);
610 pidObjBachelor->
SetTPC(kTRUE);
611 pidObjBachelor->
SetTOF(kTRUE);
613 RDHFLctoV0->
SetPidHF(pidObjBachelor);
623 cent=Form(
"%.0f%.0f",minc,maxc);
630 TFile*
fout=
new TFile(Form(
"cuts4SignifMaxim%s%s%sRecVtx%sPileupRej.root",
void SetNPtBins(Int_t nptBins)
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)
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 SetMinCombinedProbability(Int_t ptBins, Float_t *ptMin)
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 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]