5 #include <TClonesArray.h> 6 #include <TParameter.h> 27 for (
Int_t ispecies=0;ispecies<AliPID::kSPECIES;++ispecies)
28 cutsObj->
SetPIDThreshold(static_cast<AliPID::EParticleType>(ispecies),threshold);
36 RDHFLctopKpiProd->SetName(
"LctopKpiProdCuts");
37 RDHFLctopKpiProd->SetTitle(
"Production cuts for Lc analysis");
40 RDHFLctopKpiAn->SetName(
"LctopKpiAnalysisCuts");
41 RDHFLctopKpiAn->SetTitle(
"Analysis cuts for Lc analysis");
43 AliESDtrackCuts* esdTrackCuts=
new AliESDtrackCuts();
44 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
46 esdTrackCuts->SetRequireTPCRefit(kTRUE);
47 esdTrackCuts->SetRequireITSRefit(kTRUE);
48 esdTrackCuts->SetMinNClustersITS(4);
49 esdTrackCuts->SetMinNClustersTPC(70);
50 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
51 AliESDtrackCuts::kAny);
53 esdTrackCuts->SetMinDCAToVertexXY(0.);
54 esdTrackCuts->SetPtRange(0.3,1.e10);
73 prodcutsval=
new Float_t*[nvars];
74 for(
Int_t iv=0;iv<nvars;iv++){
91 prodcutsval[0][ipt]=0.18;
92 prodcutsval[1][ipt]=0.4;
93 prodcutsval[2][ipt]=0.5;
94 prodcutsval[3][ipt]=0.;
95 prodcutsval[4][ipt]=0.;
96 prodcutsval[5][ipt]=0.01;
97 prodcutsval[6][ipt]=0.06;
98 prodcutsval[7][ipt]=0.005;
99 prodcutsval[8][ipt]=0.7;
100 prodcutsval[9][ipt]=0.;
101 prodcutsval[10][ipt]=0.;
102 prodcutsval[11][ipt]=0.05;
103 prodcutsval[12][ipt]=0.4;
106 RDHFLctopKpiProd->
SetPtBins(nptbins+1,ptbins);
107 RDHFLctopKpiProd->
SetCuts(nvars,nptbins,prodcutsval);
110 anacutsval=
new Float_t*[nvars];
113 anacutsval[0][ipt2]=0.18;
114 anacutsval[1][ipt2]=0.4;
115 anacutsval[2][ipt2]=0.5;
116 anacutsval[3][ipt2]=0.;
117 anacutsval[4][ipt2]=0.;
118 anacutsval[5][ipt2]=0.01;
119 anacutsval[6][ipt2]=0.06;
120 anacutsval[7][ipt2]=0.005;
121 anacutsval[8][ipt2]=0.7;
122 anacutsval[9][ipt2]=0.;
123 anacutsval[10][ipt2]=0.;
124 anacutsval[11][ipt2]=0.05;
125 anacutsval[12][ipt2]=0.4;
129 anacutsval[1][0]=0.5;
130 anacutsval[1][1]=0.85;
131 anacutsval[1][2]=0.9;
132 anacutsval[1][3]=0.4;
134 anacutsval[2][0]=0.5;
135 anacutsval[2][1]=0.6;
136 anacutsval[2][2]=0.9;
137 anacutsval[2][3]=0.9;
140 anacutsval[12][0]=0.475;
141 anacutsval[12][1]=0.75;
142 anacutsval[12][2]=0.75;
143 anacutsval[12][3]=0.7;
145 anacutsval[5][0]=0.02;
146 anacutsval[5][1]=0.025;
147 anacutsval[5][2]=0.02;
148 anacutsval[5][3]=0.01;
150 anacutsval[7][0]=0.00625;
151 anacutsval[7][1]=0.0125;
152 anacutsval[7][2]=0.005;
153 anacutsval[7][3]=0.007;
155 anacutsval[9][0]=0.5;
156 anacutsval[9][1]=0.2;
157 anacutsval[9][2]=0.6;
160 anacutsval[10][0]=0.00125;
162 RDHFLctopKpiAn->
SetPtBins(nptbins+1,ptbins);
163 RDHFLctopKpiAn->
SetCuts(nvars,nptbins,anacutsval);
169 Double_t sigmasK[5]={3.,1.,1.,3.,2.};
179 RDHFLctopKpiProd->
SetPidHF(pidObjK);
185 Double_t sigmaspi[5]={3.,0.,0.,0.,0.};
194 Double_t sigmasp[5]={3.,1.,1.,3.,2.};
216 TH1* hplot=pid->GetPriorDistribution(static_cast<AliPID::EParticleType>(3));
217 TCanvas *c1=
new TCanvas();
235 if(pidflag) cout<<
"PID is used"<<endl;
236 else cout<<
"PID is not used"<<endl;
238 cout<<
"This is the object I'm going to save:"<<endl;
241 TFile*
fout=
new TFile(
"prova.root",
"RECREATE");
243 RDHFLctopKpiProd->Write();
244 RDHFLctopKpiAn->Write();
250 delete RDHFLctopKpiProd;
251 delete RDHFLctopKpiAn;
261 RDHFLctopKpi->SetName(
"loosercuts");
262 RDHFLctopKpi->SetTitle(
"Cuts for significance maximization");
264 AliESDtrackCuts* esdTrackCuts=
new AliESDtrackCuts();
265 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
267 esdTrackCuts->SetRequireTPCRefit(kTRUE);
268 esdTrackCuts->SetMinNClustersTPC(70);
269 esdTrackCuts->SetRequireITSRefit(kTRUE);
270 esdTrackCuts->SetMinNClustersITS(4);
272 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
273 esdTrackCuts->SetMinDCAToVertexXY(0.);
274 esdTrackCuts->SetEtaRange(-0.8,0.8);
275 esdTrackCuts->SetPtRange(0.3,1.e10);
279 const Int_t nvars=13;
289 RDHFLctopKpi->
SetPtBins(nptbins+1,ptbins);
292 rdcutsvalmine=
new Float_t*[nvars];
293 for(
Int_t iv=0;iv<nvars;iv++){
312 {{0.18,0.4,0.5,0.,0.,0.01,0.06,0.005,0.7,0.,0.,0.05,0.4},
313 {0.18,0.4,0.5,0.,0.,0.01,0.06,0.005,0.7,0.,0.,0.05,0.4},
314 {0.18,0.4,0.5,0.,0.,0.01,0.06,0.005,0.7,0.,0.,0.05,0.4},
315 {0.18,0.4,0.5,0.,0.,0.01,0.06,0.005,0.7,0.,0.,0.05,0.4}};
319 for(
Int_t iv=0;iv<nvars;iv++)cutsMatrixTransposeStand[iv]=
new Float_t[nptbins];
321 for (
Int_t ivar = 0; ivar<nvars; ivar++){
322 cutsMatrixTransposeStand[ivar][ibin]=cutsMatrixLctopKpiStand[ibin][ivar];
325 RDHFLctopKpi->
SetCuts(nvars,nptbins,cutsMatrixTransposeStand);
331 boolforopt=
new Bool_t[nvars];
333 cout<<
"Number of variables for optimization has probably changed, check and edit accordingly"<<endl;
336 if(dim==nvarsforopt){
344 for(
Int_t i=0;i<nvars;i++){
345 cout<<names[i]<<
" for opt? (y/n)"<<endl;
351 else boolforopt[i]=kFALSE;
353 if (checktrue!=dim) {
354 cout<<
"Error! You set "<<checktrue<<
" kTRUE instead of "<<dim<<endl;
373 tighterval[0][ipt]=0.03;
374 tighterval[1][ipt]=0.02;
375 tighterval[2][ipt]=1.;
376 tighterval[3][ipt]=0.01;
383 cout<<
"Will save "<<arrdim<<
" TParameter<float>"<<endl;
384 TClonesArray max(
"TParameter<float>",arrdim);
385 for(
Int_t ival=0;ival<dim;ival++){
387 name=Form(
"par%dptbin%d",ival,jpt);
388 cout<<
"Setting "<<name.Data()<<
" to "<<tighterval[ival][jpt]<<endl;
397 printf(
"Use PID? %s\n",flagPID ?
"yes" :
"no");
402 Double_t sigmasK[5]={3.,1.,1.,3.,2.};
418 Double_t sigmaspi[5]={3.,0.,0.,0.,0.};
426 Double_t sigmasp[5]={3.,1.,1.,3.,2.};
450 cent=Form(
"%.0f%.0f",minc,maxc);
460 RDHFLctopKpi->Write();
void SetPriorsHistos(TString priorFileName)
void SetAsym(Bool_t asym)
Bool_t GetOptPileUp() const
void SetUseCentrality(Int_t flag=1)
void SetPidpion(AliAODPidHF *pidPion)
TString * GetVarNames() const
void SetPidHF(AliAODPidHF *pidObj)
see enum below
AliAODPidHF * GetPidHF() const
void SetUseCombined(Bool_t useCombined=kTRUE)
void makeInputAliAnalysisTaskSESignificanceMaximization()
void SetCombDetectors(ECombDetectors pidComb)
void SetPidprot(AliAODPidHF *pidProt)
void SetCuts(Int_t nVars, Int_t nPtBins, Float_t **cutsRD)
void SetMinCentrality(Float_t minCentrality=0.)
AliPIDCombined * GetPidCombined() const
void SetupCombinedPID(AliRDHFCutsLctopKpi *cutsObj, Double_t threshold, TString priorFileName="noferini-priors.root")
Bool_t * GetVarsForOpt() const
Int_t GetNVarsForOpt() const
void SetSigma(Double_t *sigma)
void SetMaxCentrality(Float_t maxCentrality=100.)
void SetVarsForOpt(Int_t nVars, Bool_t *forOpt)
Bool_t GetIsPrimaryWithoutDaughters() const
void SetUsePID(Bool_t flag=kTRUE)
virtual void PrintAll() const
void SetRemoveDaughtersFromPrim(Bool_t removeDaughtersPrim)
void SetPtBins(Int_t nPtBinLimits, Float_t *ptBinLimits)
void SetPIDStrategy(EPIDStrategy pidStrategy)
void SetTOFdecide(Bool_t tOFdecide)
void SetMatch(Int_t match)
void AddTrackCuts(const AliESDtrackCuts *cuts)
void SetPLimit(Double_t *plim, Int_t npLim)
TFile * fout
input train file
void SetPIDThreshold(AliPID::EParticleType species, Double_t threshold)
Int_t GetUseCentrality() const
void makeInputAliAnalysisTaskSELctopKpi()