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");
131 const Int_t nvars=17;
134 anacutsval=
new Float_t*[nvars];
137 anacutsval[0][ipt2]=0.25;
138 anacutsval[1][ipt2]=1.00;
139 anacutsval[3][ipt2]=0.05;
140 anacutsval[7][ipt2]=1000.;
141 anacutsval[8][ipt2]=1.5;
142 anacutsval[9][ipt2]=0.99;
143 anacutsval[12][ipt2]=0.;
144 anacutsval[13][ipt2]=0.005;
145 anacutsval[16][ipt2]=0.;
150 anacutsval[2][0]=0.00500;
151 anacutsval[2][1]=0.00812;
152 anacutsval[2][2]=0.00858;
153 anacutsval[2][3]=0.00900;
154 anacutsval[2][4]=0.01000;
155 anacutsval[2][5]=0.01000;
177 anacutsval[2][0]=0.00500;
178 anacutsval[2][1]=0.00812;
179 anacutsval[2][2]=0.00858;
180 anacutsval[2][3]=0.00900;
181 anacutsval[2][4]=0.01000;
182 anacutsval[2][5]=0.01000;
187 anacutsval[13][0]=0.005;
188 anacutsval[13][1]=0.005;
189 anacutsval[13][2]=0.005;
190 anacutsval[13][3]=0.005;
191 anacutsval[13][4]=0.005;
192 anacutsval[13][5]=0.005;
210 anacutsval[2][0]=0.006;
211 anacutsval[2][1]=0.007;
212 anacutsval[2][2]=0.008;
213 anacutsval[2][3]=0.009;
214 anacutsval[2][4]=0.010;
215 anacutsval[2][5]=0.011;
230 anacutsval[4][0]=0.6;
231 anacutsval[4][1]=0.6;
232 anacutsval[4][2]=0.7;
233 anacutsval[4][3]=0.7;
234 anacutsval[4][4]=0.9;
235 anacutsval[4][5]=1.1;
237 anacutsval[5][0]=0.2;
238 anacutsval[5][1]=0.2;
239 anacutsval[5][2]=0.2;
240 anacutsval[5][3]=0.2;
241 anacutsval[5][4]=0.2;
242 anacutsval[5][5]=0.3;
244 anacutsval[6][0]=0.2;
245 anacutsval[6][1]=0.2;
246 anacutsval[6][2]=0.2;
247 anacutsval[6][3]=0.2;
248 anacutsval[6][4]=0.2;
249 anacutsval[6][5]=0.3;
251 anacutsval[10][0]=0.05;
252 anacutsval[10][1]=0.05;
253 anacutsval[10][2]=0.10;
254 anacutsval[10][3]=0.10;
255 anacutsval[10][4]=0.10;
256 anacutsval[10][5]=0.10;
258 anacutsval[11][0]=0.05;
259 anacutsval[11][1]=0.05;
260 anacutsval[11][2]=0.09;
261 anacutsval[11][3]=0.09;
262 anacutsval[11][4]=999.;
263 anacutsval[11][5]=999.;
265 anacutsval[14][0]=0.100;
266 anacutsval[14][1]=0.100;
267 anacutsval[14][2]=0.300;
268 anacutsval[14][3]=0.300;
269 anacutsval[14][4]=0.300;
270 anacutsval[14][5]=0.300;
272 anacutsval[15][0]=0.5;
273 anacutsval[15][1]=0.6;
274 anacutsval[15][2]=0.7;
275 anacutsval[15][3]=1.0;
276 anacutsval[15][4]=1.1;
277 anacutsval[15][5]=1.2;
281 anacutsval[4][0]=0.5;
282 anacutsval[4][1]=0.6;
283 anacutsval[4][2]=0.7;
284 anacutsval[4][3]=0.9;
285 anacutsval[4][4]=0.9;
286 anacutsval[5][5]=0.9;
288 anacutsval[5][0]=0.2;
289 anacutsval[5][1]=0.2;
290 anacutsval[5][2]=0.2;
291 anacutsval[5][3]=0.2;
292 anacutsval[5][4]=0.2;
293 anacutsval[5][5]=0.3;
295 anacutsval[6][0]=0.2;
296 anacutsval[6][1]=0.2;
297 anacutsval[6][2]=0.2;
298 anacutsval[6][3]=0.2;
299 anacutsval[6][4]=0.2;
300 anacutsval[6][5]=0.3;
302 anacutsval[10][0]=0.05;
303 anacutsval[10][1]=0.05;
304 anacutsval[10][2]=0.08;
305 anacutsval[10][3]=0.10;
306 anacutsval[10][4]=0.10;
307 anacutsval[10][5]=0.10;
309 for (
Int_t ipt2=0; ipt2<
nptbins; ipt2++) anacutsval[11][ipt2]=999.;
311 anacutsval[14][0]=0.100;
312 anacutsval[14][1]=0.100;
313 anacutsval[14][2]=0.100;
314 anacutsval[14][3]=0.100;
315 anacutsval[14][4]=0.100;
316 anacutsval[14][5]=0.100;
318 anacutsval[15][0]=0.8;
319 anacutsval[15][1]=0.8;
320 anacutsval[15][2]=0.8;
321 anacutsval[15][3]=1.2;
322 anacutsval[15][4]=1.0;
323 anacutsval[15][5]=1.2;
327 RDHFLctoV0An->
SetCuts(nvars,nptbins,anacutsval);
331 for (
Int_t iBin=0; iBin<
nptbins; iBin++) minCombProb[iBin]=0.;
338 Double_t sigmasBac[5]={3.,1.,1.,3.,3.};
339 pidObjBachelor->
SetSigma(sigmasBac);
340 pidObjBachelor->
SetAsym(kFALSE);
342 pidObjBachelor->
SetTPC(kTRUE);
343 pidObjBachelor->
SetTOF(kTRUE);
351 RDHFLctoV0An->
SetPidHF(pidObjBachelor);
369 if(pidflag) cout<<
"PID is used"<<endl;
370 else cout<<
"PID is not used"<<endl;
372 cout<<
"This is the (anal) object I'm going to save:"<<endl;
376 fout=
new TFile(
"Lc2pK0SCuts.root",
"RECREATE");
378 fout=
new TFile(
"Lc2pK0SCuts.root",
"RECREATE");
381 RDHFLctoV0An->Write();
385 delete pidObjBachelor;
396 RDHFLctoV0->SetName(
"loosercuts");
397 RDHFLctoV0->SetTitle(
"Cuts for significance maximization");
399 AliESDtrackCuts* esdTrackCuts=
new AliESDtrackCuts();
400 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
402 esdTrackCuts->SetRequireTPCRefit(kTRUE);
403 esdTrackCuts->SetMinNClustersTPC(70);
404 esdTrackCuts->SetRequireITSRefit(kFALSE);
405 esdTrackCuts->SetMinNClustersITS(0);
407 esdTrackCuts->SetMinDCAToVertexXY(0.);
408 esdTrackCuts->SetEtaRange(-0.8,0.8);
409 esdTrackCuts->SetPtRange(0.,1.e10);
411 AliESDtrackCuts* esdTrackCutsV0daughters=
new AliESDtrackCuts();
412 esdTrackCutsV0daughters->SetRequireSigmaToVertex(kFALSE);
414 esdTrackCutsV0daughters->SetRequireTPCRefit(kTRUE);
415 esdTrackCutsV0daughters->SetMinNClustersTPC(70);
416 esdTrackCutsV0daughters->SetRequireITSRefit(kFALSE);
417 esdTrackCutsV0daughters->SetMinNClustersITS(0);
419 esdTrackCutsV0daughters->SetMinDCAToVertexXY(0.);
420 esdTrackCutsV0daughters->SetPtRange(0.,1.e10);
431 const Int_t nvars=14;
445 rdcutsvalmine=
new Float_t*[nvars];
446 for(
Int_t iv=0;iv<nvars;iv++){
468 for(
Int_t ic=0;ic<nvars;ic++)
471 cutsMatrixLctoV0Stand[ 0][ipt2] =0.0075;
472 cutsMatrixLctoV0Stand[ 1][ipt2] =0.0500;
473 cutsMatrixLctoV0Stand[ 2][ipt2] =0.4;
474 cutsMatrixLctoV0Stand[ 3][ipt2] =0.2;
475 cutsMatrixLctoV0Stand[ 4][ipt2] =0.2;
476 cutsMatrixLctoV0Stand[ 5][ipt2] =1000.;
477 cutsMatrixLctoV0Stand[ 6][ipt2] =1.5;
478 cutsMatrixLctoV0Stand[ 7][ipt2] =0.99;
479 cutsMatrixLctoV0Stand[ 8][ipt2] =0.05;
480 cutsMatrixLctoV0Stand[ 9][ipt2] =0.1;
481 cutsMatrixLctoV0Stand[10][ipt2] =0.0;
482 cutsMatrixLctoV0Stand[11][ipt2] =0.005;
483 cutsMatrixLctoV0Stand[12][ipt2] =0.100;
485 cutsMatrixLctoV0Stand[13][0]=0.0;
486 cutsMatrixLctoV0Stand[13][1]=0.6;
487 cutsMatrixLctoV0Stand[13][2]=0.8;
488 cutsMatrixLctoV0Stand[13][3]=0.8;
489 cutsMatrixLctoV0Stand[13][4]=0.8;
490 cutsMatrixLctoV0Stand[13][5]=1.0;
495 for(
Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=
new Float_t[nptbins];
497 for (
Int_t ivar=0; ivar<nvars; ivar++){
498 cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixLctoV0Stand[ibin][ivar];
501 RDHFLctoV0->
SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
507 boolforopt=
new Bool_t[nvars];
509 cout<<
"Number of variables for optimization has probably changed, check and edit accordingly"<<endl;
512 if(dim==nvarsforopt){
520 for(
Int_t i=0;i<nvars;i++){
521 cout<<names[i]<<
" for opt? (y/n)"<<endl;
527 else boolforopt[i]=kFALSE;
529 if (checktrue!=dim) {
530 cout<<
"Error! You set "<<checktrue<<
" kTRUE instead of "<<dim<<endl;
557 tighterval[ 0][ipt] =0.075;
558 tighterval[ 1][ipt] =0.040;
559 tighterval[ 2][ipt] =0.4;
560 tighterval[ 3][ipt] =0.2;
561 tighterval[ 4][ipt] =0.2;
562 tighterval[ 5][ipt] =100.;
563 tighterval[ 6][ipt] =1.5;
564 tighterval[ 7][ipt] =0.99;
565 tighterval[ 8][ipt] =0.05;
566 tighterval[ 9][ipt] =0.1;
567 tighterval[10][ipt] =0.0;
568 tighterval[11][ipt] =0.005;
569 tighterval[12][ipt] =0.100;
571 tighterval[13][0]=0.0;
572 tighterval[13][1]=0.6;
573 tighterval[13][2]=0.8;
574 tighterval[13][3]=0.8;
575 tighterval[13][4]=0.8;
576 tighterval[13][5]=0.8;
580 cout<<
"Will save "<<arrdim<<
" TParameter<float>"<<endl;
581 TClonesArray max(
"TParameter<float>",arrdim);
582 for(
Int_t ival=0;ival<dim;ival++){
584 name=Form(
"par%dptbin%d",ival,jpt);
585 cout<<
"Setting "<<name.Data()<<
" to "<<tighterval[ival][jpt]<<endl;
594 printf(
"Use PID? %s\n",flagPID ?
"yes" :
"no");
599 Double_t sigmasBac[5]={3.,1.,1.,3.,3.};
600 pidObjBachelor->
SetSigma(sigmasBac);
601 pidObjBachelor->
SetAsym(kFALSE);
603 pidObjBachelor->
SetTPC(kTRUE);
604 pidObjBachelor->
SetTOF(kTRUE);
606 RDHFLctoV0->
SetPidHF(pidObjBachelor);
616 cent=Form(
"%.0f%.0f",minc,maxc);
623 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)
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]