* provided "as is" without express or implied warranty. *
**************************************************************************/
+/* $Id$ */
+
/////////////////////////////////////////////////////////////
//
// Class for cuts on AOD reconstructed D+->Kpipi
//--------------------------------------------------------------------------
AliRDHFCutsDplustoKpipi::AliRDHFCutsDplustoKpipi(const char* name) :
AliRDHFCuts(name),
-fUseStrongPid(kFALSE)
+ fUseStrongPid(0),
+ fMaxPtStrongPid(0.),
+ fUseImpParProdCorrCut(kFALSE)
{
//
// Default Constructor
//
- Int_t nvars=12;
+ Int_t nvars=14;
SetNVars(nvars);
- TString varNames[12]={"inv. mass [GeV]",
+ TString varNames[14]={"inv. mass [GeV]",
"pTK [GeV/c]",
"pTPi [GeV/c]",
"d0K [cm] lower limit!",
"pM=Max{pT1,pT2,pT3} (GeV/c)",
"cosThetaPoint",
"Sum d0^2 (cm^2)",
- "dca cut (cm)"};
- Bool_t isUpperCut[12]={kTRUE,
+ "dca cut (cm)",
+ "dec len XY (cm)",
+ "cosThetaPointXY"};
+ Bool_t isUpperCut[14]={kTRUE,
kFALSE,
kFALSE,
kFALSE,
kFALSE,
kFALSE,
kFALSE,
- kTRUE};
+ kTRUE,
+ kFALSE,
+ kFALSE};
SetVarNames(nvars,varNames,isUpperCut);
- Bool_t forOpt[12]={kFALSE,
+ Bool_t forOpt[14]={kFALSE,
kFALSE,
kFALSE,
kFALSE,
kTRUE,
kTRUE,
kTRUE,
- kFALSE};
- SetVarsForOpt(5,forOpt);
+ kFALSE,
+ kTRUE,
+ kTRUE};
+ SetVarsForOpt(7,forOpt);
Float_t limits[2]={0,999999999.};
SetPtBins(2,limits);
if(fPidHF)delete fPidHF;
}
+
+
+
+
+
+
+
+
//--------------------------------------------------------------------------
AliRDHFCutsDplustoKpipi::AliRDHFCutsDplustoKpipi(const AliRDHFCutsDplustoKpipi &source) :
AliRDHFCuts(source),
- fUseStrongPid(source.fUseStrongPid)
-
+ fUseStrongPid(source.fUseStrongPid),
+ fMaxPtStrongPid(source.fMaxPtStrongPid),
+ fUseImpParProdCorrCut(source.fUseImpParProdCorrCut)
{
//
// Copy constructor
//---------------------------------------------------------------------------
-void AliRDHFCutsDplustoKpipi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters) {
+void AliRDHFCutsDplustoKpipi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod) {
//
// Fills in vars the values of the variables
//
}
AliAODRecoDecayHF3Prong *dd = (AliAODRecoDecayHF3Prong*)d;
+
+ //recalculate vertex w/o daughters
+ Bool_t cleanvtx=kFALSE;
+ AliAODVertex *origownvtx=0x0;
+ if(fRemoveDaughtersFromPrimary) {
+ if(dd->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*dd->GetOwnPrimaryVtx());
+ cleanvtx=kTRUE;
+ if(!RecalcOwnPrimaryVtx(dd,aod)) {
+ CleanOwnPrimaryVtx(dd,aod,origownvtx);
+ cleanvtx=kFALSE;
+ }
+ }
Int_t iter=-1;
if(fVarsForOpt[0]){
}
if(fVarsForOpt[6]){
iter++;
- vars[iter]=dd->GetSigmaVert();
+ vars[iter]=dd->GetSigmaVert(aod);
}
if(fVarsForOpt[7]){
iter++;
}
vars[iter]=maxDCA;
}
+ if(fVarsForOpt[12]){
+ iter++;
+ vars[iter]=dd->NormalizedDecayLengthXY()*dd->P()/dd->Pt();
+ }
+ if(fVarsForOpt[13]){
+ iter++;
+ vars[iter]=dd->CosPointingAngleXY();
+ }
+
+ if(cleanvtx)CleanOwnPrimaryVtx(dd,aod,origownvtx);
+
return;
}
//---------------------------------------------------------------------------
if(isKaon<0) nNotKaons++;
if(sign==track->Charge()){//pions
if(isPion<0)return 0;
- if(rd->Pt()<2. && isPion<=0 && fUseStrongPid)return 0;
+ if(rd->Pt()<fMaxPtStrongPid && isPion<=0 && fUseStrongPid>1)return 0;
+ }
+ else{//kaons
+ if(isKaon<0)return 0;
+ if(rd->Pt()<fMaxPtStrongPid && isKaon<=0 && fUseStrongPid>0)return 0;
}
- else{//kaons
- if(isKaon<0)return 0;
- if(rd->Pt()<2. && isKaon<=0 && fUseStrongPid)return 0;
- }
-
-
}
if(nkaons>1)return 0;
}
-
//---------------------------------------------------------------------------
Int_t AliRDHFCutsDplustoKpipi::IsSelected(TObject* obj,Int_t selectionLevel, AliAODEvent* aod) {
//
// Apply selection, returns 3 if accepted, 0 if not accepted
//
+
+ fIsSelectedCuts=0;
+ fIsSelectedPID=0;
+
if(!fCutsRD){
cout<<"Cut matrix not inizialized. Exit..."<<endl;
return 0;
return 0;
}
+ if(fKeepSignalMC) if(IsSignalMC(d,aod,411)) return 3;
-
- // selection on daughter tracks
- if(selectionLevel==AliRDHFCuts::kAll ||
- selectionLevel==AliRDHFCuts::kTracks) {
- if(!AreDaughtersSelected(d)) return 0;
- }
-
// PID selection
Int_t returnvaluePID=3;
Int_t returnvalueCuts=3;
-
- //if(selectionLevel==AliRDHFCuts::kAll ||
- if(selectionLevel==AliRDHFCuts::kCandidate ||
- selectionLevel==AliRDHFCuts::kPID) {
- returnvaluePID = IsSelectedPID(d);
- }
- if(returnvaluePID==0)return 0;
-
+ Double_t pt=d->Pt();
+ if(pt<fMinPtCand) return 0;
+ if(pt>fMaxPtCand) return 0;
+
+ if(d->HasBadDaughters()) return 0;
// selection on candidate
if(selectionLevel==AliRDHFCuts::kAll ||
//recalculate vertex w/o daughters
AliAODVertex *origownvtx=0x0;
- AliAODVertex *recvtx=0x0;
if(fRemoveDaughtersFromPrimary) {
- if(!aod) {
- AliError("Can not remove daughters from vertex without AOD event");
- return 0;
- }
if(d->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*d->GetOwnPrimaryVtx());
- recvtx=d->RemoveDaughtersFromPrimaryVtx(aod);
- if(!recvtx){
- AliDebug(2,"Removal of daughter tracks failed");
- //recvtx=d->GetPrimaryVtx();
- if(origownvtx){
- delete origownvtx;
- origownvtx=NULL;
- }
+ if(!RecalcOwnPrimaryVtx(d,aod)) {
+ CleanOwnPrimaryVtx(d,aod,origownvtx);
return 0;
}
- //set recalculed primary vertex
- d->SetOwnPrimaryVtx(recvtx);
- delete recvtx; recvtx=NULL;
}
- Double_t pt=d->Pt();
-
Int_t ptbin=PtBin(pt);
if (ptbin==-1) {
- if(origownvtx){
- d->SetOwnPrimaryVtx(origownvtx);
- delete origownvtx;
- origownvtx=NULL;
- }
- else d->UnsetOwnPrimaryVtx();
+ CleanOwnPrimaryVtx(d,aod,origownvtx);
return 0;
}
Double_t mDplusPDG = TDatabasePDG::Instance()->GetParticle(411)->Mass();
Double_t mDplus=d->InvMassDplus();
- if(TMath::Abs(mDplus-mDplusPDG)>fCutsRD[GetGlobalIndex(0,ptbin)])returnvalueCuts=0;
- // if(d->PtProng(1) < fCutsRD[GetGlobalIndex(3,ptbin)] || d->PtProng(0) < fCutsRD[GetGlobalIndex(4,ptbin)]) okD0 = 0;
- if(TMath::Abs(d->PtProng(1)) < fCutsRD[GetGlobalIndex(1,ptbin)] || TMath::Abs(d->Getd0Prong(1))<fCutsRD[GetGlobalIndex(3,ptbin)])returnvalueCuts=0;//Kaon
- if(TMath::Abs(d->PtProng(0)) < fCutsRD[GetGlobalIndex(2,ptbin)] || TMath::Abs(d->Getd0Prong(0))<fCutsRD[GetGlobalIndex(4,ptbin)])returnvalueCuts=0;//Pion1
- if(TMath::Abs(d->PtProng(2)) < fCutsRD[GetGlobalIndex(2,ptbin)] || TMath::Abs(d->Getd0Prong(2))<fCutsRD[GetGlobalIndex(4,ptbin)])returnvalueCuts=0;//Pion2
-
-
+ if(TMath::Abs(mDplus-mDplusPDG)>fCutsRD[GetGlobalIndex(0,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
//2track cuts
- if(d->GetDist12toPrim()<fCutsRD[GetGlobalIndex(5,ptbin)]|| d->GetDist23toPrim()<fCutsRD[GetGlobalIndex(5,ptbin)])returnvalueCuts=0;
- if(d->Getd0Prong(0)*d->Getd0Prong(1)<0. && d->Getd0Prong(2)*d->Getd0Prong(1)<0.)returnvalueCuts=0;
-
- //sec vert
- if(d->GetSigmaVert()>fCutsRD[GetGlobalIndex(6,ptbin)])returnvalueCuts=0;
-
- if(d->DecayLength()<fCutsRD[GetGlobalIndex(7,ptbin)])returnvalueCuts=0;
-
- if(TMath::Abs(d->PtProng(0))<fCutsRD[GetGlobalIndex(8,ptbin)] && TMath::Abs(d->PtProng(1))<fCutsRD[GetGlobalIndex(8,ptbin)] && TMath::Abs(d->PtProng(2))<fCutsRD[GetGlobalIndex(8,ptbin)])returnvalueCuts=0;
- if(d->CosPointingAngle()< fCutsRD[GetGlobalIndex(9,ptbin)])returnvalueCuts=0;
+ if(d->GetDist12toPrim()<fCutsRD[GetGlobalIndex(5,ptbin)]|| d->GetDist23toPrim()<fCutsRD[GetGlobalIndex(5,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+
Double_t sum2=d->Getd0Prong(0)*d->Getd0Prong(0)+d->Getd0Prong(1)*d->Getd0Prong(1)+d->Getd0Prong(2)*d->Getd0Prong(2);
- if(sum2<fCutsRD[GetGlobalIndex(10,ptbin)])returnvalueCuts=0;
-
+ if(sum2<fCutsRD[GetGlobalIndex(10,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+
+ if(fUseImpParProdCorrCut){
+ if(d->Getd0Prong(0)*d->Getd0Prong(1)<0. && d->Getd0Prong(2)*d->Getd0Prong(1)<0.) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+ }
+
+
//DCA
- for(Int_t i=0;i<3;i++) if(d->GetDCA(i)>fCutsRD[GetGlobalIndex(11,ptbin)]) returnvalueCuts=0;
+ for(Int_t i=0;i<3;i++) if(d->GetDCA(i)>fCutsRD[GetGlobalIndex(11,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+
+ if(d->Pt2Prong(1) < fCutsRD[GetGlobalIndex(1,ptbin)]*fCutsRD[GetGlobalIndex(1,ptbin)] || TMath::Abs(d->Getd0Prong(1))<fCutsRD[GetGlobalIndex(3,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}//Kaon
+
+ if(d->Pt2Prong(0) < fCutsRD[GetGlobalIndex(2,ptbin)]*fCutsRD[GetGlobalIndex(2,ptbin)] || TMath::Abs(d->Getd0Prong(0))<fCutsRD[GetGlobalIndex(4,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}//Pion1
+
+ if(d->Pt2Prong(2) < fCutsRD[GetGlobalIndex(2,ptbin)]*fCutsRD[GetGlobalIndex(2,ptbin)] || TMath::Abs(d->Getd0Prong(2))<fCutsRD[GetGlobalIndex(4,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}//Pion2
+
+ if(d->Pt2Prong(0)<fCutsRD[GetGlobalIndex(8,ptbin)]*fCutsRD[GetGlobalIndex(8,ptbin)] && d->Pt2Prong(1)<fCutsRD[GetGlobalIndex(8,ptbin)]*fCutsRD[GetGlobalIndex(8,ptbin)] && d->Pt2Prong(2)<fCutsRD[GetGlobalIndex(8,ptbin)]*fCutsRD[GetGlobalIndex(8,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+
+ if(d->DecayLength2()<fCutsRD[GetGlobalIndex(7,ptbin)]*fCutsRD[GetGlobalIndex(7,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+
+ if(d->CosPointingAngle()< fCutsRD[GetGlobalIndex(9,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+
+ if(d->NormalizedDecayLengthXY()*d->P()/pt<fCutsRD[GetGlobalIndex(12,ptbin)]){CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+
+ if(d->CosPointingAngleXY()<fCutsRD[GetGlobalIndex(13,ptbin)]){CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+
+ //sec vert
+ Double_t sigmavert=d->GetSigmaVert(aod);
+ if(sigmavert>fCutsRD[GetGlobalIndex(6,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
+
// unset recalculated primary vertex when not needed any more
- if(origownvtx) {
- d->SetOwnPrimaryVtx(origownvtx);
- delete origownvtx;
- origownvtx=NULL;
- } else if(fRemoveDaughtersFromPrimary) {
- d->UnsetOwnPrimaryVtx();
- AliDebug(3,"delete new vertex\n");
- }
+ CleanOwnPrimaryVtx(d,aod,origownvtx);
- return returnvalueCuts;
+ fIsSelectedCuts=returnvalueCuts;
+
+ //if(!returnvalueCuts) return 0; // returnvalueCuts cannot be 0 here
+ }
+
+ if(selectionLevel==AliRDHFCuts::kAll ||
+ selectionLevel==AliRDHFCuts::kCandidate ||
+ selectionLevel==AliRDHFCuts::kPID) {
+ returnvaluePID = IsSelectedPID(d);
+ fIsSelectedPID=returnvaluePID;
+ }
+ if(returnvaluePID==0)return 0;
+
+ // selection on daughter tracks
+ if(selectionLevel==AliRDHFCuts::kAll ||
+ selectionLevel==AliRDHFCuts::kTracks) {
+ if(!AreDaughtersSelected(d)) return 0;
}
+
+
+
return 3;
}
+
+
+
+
//---------------------------------------------------------------------------
+
+
+void AliRDHFCutsDplustoKpipi::SetStandardCutsPP2010() {
+ //
+ //STANDARD CUTS USED FOR 2010 pp analysis
+ //
+
+ SetName("DplustoKpipiCutsStandard");
+ SetTitle("Standard Cuts for D+ analysis");
+
+ // PILE UP REJECTION
+ SetOptPileup(AliRDHFCuts::kRejectPileupEvent);
+
+ // EVENT CUTS
+ SetMinVtxContr(1);
+
+ AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
+ esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
+ //default
+ esdTrackCuts->SetRequireTPCRefit(kTRUE);
+ esdTrackCuts->SetRequireITSRefit(kTRUE);
+ //esdTrackCuts->SetMinNClustersITS(4); // default is 5
+ esdTrackCuts->SetMinNClustersTPC(70);
+ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+ AliESDtrackCuts::kAny);
+ // default is kBoth, otherwise kAny
+ esdTrackCuts->SetMinDCAToVertexXY(0.);
+ esdTrackCuts->SetPtRange(0.3,1.e10);
+
+ AddTrackCuts(esdTrackCuts);
+
+
+ const Int_t nptbins =13;
+ const Int_t nvars=14;
+ Float_t ptbins[nptbins+1];
+ ptbins[0]=0.;
+ ptbins[1]=1;
+ ptbins[2]=2.;
+ ptbins[3]=3.;
+ ptbins[4]=4.;
+ ptbins[5]=5.;
+ ptbins[6]=6.;
+ ptbins[7]=8.;
+ ptbins[8]=10.;
+ ptbins[9]=12.;
+ ptbins[10]=14.;
+ ptbins[11]=16.;
+ ptbins[12]=24.;
+ ptbins[13]=99999.;
+
+
+ Float_t** anacutsval;
+ anacutsval=new Float_t*[nvars];
+
+ for(Int_t ic=0;ic<nvars;ic++){anacutsval[ic]=new Float_t[nptbins];}
+
+ //Double_t cutsDplus[12]={0.2,0.4,0.4,0.,0.,0.01,0.06,0.02,0.,0.85,0.,10000000000.};
+ for(Int_t ipt=0;ipt<nptbins;ipt++){
+ anacutsval[0][ipt]=0.2;
+ anacutsval[3][ipt]=0.;
+ anacutsval[4][ipt]=0.;
+ anacutsval[5][ipt]=0.01;
+ anacutsval[11][ipt]=10000000000.;
+ anacutsval[12][ipt]=0.;
+ anacutsval[13][ipt]=0.;
+ }
+
+ anacutsval[1][0]=0.3;
+ anacutsval[1][1]=0.3;
+ anacutsval[1][2]=0.4;
+ anacutsval[2][0]=0.3;
+ anacutsval[2][1]=0.3;
+ anacutsval[2][2]=0.4;
+ for(Int_t ipt=3;ipt<nptbins;ipt++){
+ anacutsval[1][ipt]=0.4;
+ anacutsval[2][ipt]=0.4;
+ }
+
+ anacutsval[6][0]=0.022100;
+ anacutsval[6][1]=0.022100;
+ anacutsval[6][2]=0.034;
+ anacutsval[6][3]=0.020667;
+ anacutsval[6][4]=0.020667;
+ anacutsval[6][5]=0.023333;
+
+
+ anacutsval[7][0]=0.08;
+ anacutsval[7][1]=0.08;
+ anacutsval[7][2]=0.09;
+ anacutsval[7][3]=0.095;
+ anacutsval[7][4]=0.095;
+
+ anacutsval[8][0]=0.5;
+ anacutsval[8][1]=0.5;
+ anacutsval[8][2]=1.0;
+ anacutsval[8][3]=0.5;
+ anacutsval[8][4]=0.5;
+
+
+ anacutsval[9][0]=0.95;
+ anacutsval[9][1]=0.95;
+ anacutsval[9][2]=0.95;
+ anacutsval[9][3]=0.95;
+ anacutsval[9][4]= 0.95;
+ anacutsval[9][5]=0.92;
+ anacutsval[9][6]=0.92;
+ anacutsval[9][7]=0.92;
+ anacutsval[9][8]=0.92;
+ anacutsval[9][9]=0.90;
+ anacutsval[9][10]=0.90;
+ anacutsval[9][11]=0.90;
+ anacutsval[9][12]=0.90;
+
+ anacutsval[10][0]=0.0055;
+ anacutsval[10][1]=0.0055;
+ anacutsval[10][2]= 0.0028;
+ anacutsval[10][3]=0.000883;
+ anacutsval[10][4]=0.000883;
+
+
+ for(Int_t ipt=5;ipt<nptbins;ipt++){
+ anacutsval[6][ipt]=0.02333;
+ anacutsval[7][ipt]=0.115;
+ anacutsval[8][ipt]=0.5;
+ anacutsval[10][ipt]=0.000883;
+ }
+
+
+ SetGlobalIndex(nvars,nptbins);
+ SetPtBins(nptbins+1,ptbins);
+ SetCuts(nvars,nptbins,anacutsval);
+ SetUsePID(kTRUE);
+ SetRemoveDaughtersFromPrim(kTRUE);
+
+ PrintAll();
+
+ for(Int_t iic=0;iic<nvars;iic++){delete [] anacutsval[iic];}
+ delete [] anacutsval;
+ anacutsval=NULL;
+
+ return;
+}
+
+
+void AliRDHFCutsDplustoKpipi::SetStandardCutsPbPb2010() {
+ //
+ //STANDARD CUTS USED FOR 2010 Pb Pb analysis.... not optimized yet
+ //
+
+ SetName("DplustoKpipiCutsStandard");
+ SetTitle("Standard Cuts for D+ analysis in PbPb2010 run");
+
+ // PILE UP REJECTION
+ //SetOptPileup(AliRDHFCuts::kRejectPileupEvent);
+
+ // EVENT CUTS
+ SetMinVtxContr(1);
+
+
+ AliESDtrackCuts* esdTrackCuts=new AliESDtrackCuts();
+ esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
+ //default
+ esdTrackCuts->SetRequireTPCRefit(kTRUE);
+ esdTrackCuts->SetRequireITSRefit(kTRUE);
+ //esdTrackCuts->SetMinNClustersITS(4); // default is 5
+ esdTrackCuts->SetMinNClustersTPC(70);
+ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+ AliESDtrackCuts::kAny);
+ // default is kBoth, otherwise kAny
+ esdTrackCuts->SetMinDCAToVertexXY(0.);
+ esdTrackCuts->SetPtRange(0.8,1.e10);
+
+ AddTrackCuts(esdTrackCuts);
+
+ const Int_t nptbins=10;
+ Float_t* ptbins;
+ ptbins=new Float_t[nptbins+1];
+
+ ptbins[0]=0.;
+ ptbins[1]=1.;
+ ptbins[2]=2.;
+ ptbins[3]=3.;
+ ptbins[4]=4.;
+ ptbins[5]=5.;
+ ptbins[6]=6.;
+ ptbins[7]=8.;
+ ptbins[8]=12.;
+ ptbins[9]=16.;
+ ptbins[10]=24.;
+ const Int_t nvars=14;
+
+ Float_t** anacutsval;
+ anacutsval=new Float_t*[nvars];
+
+ for(Int_t ic=0;ic<nvars;ic++){anacutsval[ic]=new Float_t[nptbins];}
+ //Double_t cutsDplus[12]={0.2,0.4,0.4,0.,0.,0.01,0.06,0.02,0.,0.85,0.,10000000000.};
+
+ for(Int_t ipt=0;ipt<nptbins;ipt++){
+ anacutsval[0][ipt]=0.2;
+ anacutsval[1][ipt]=0.8;
+ anacutsval[2][ipt]=0.8;
+ anacutsval[3][ipt]=0.;
+ anacutsval[4][ipt]=0.;
+ anacutsval[5][ipt]=0.01;
+ anacutsval[11][ipt]=10000000000.;
+ anacutsval[12][ipt]=0.;
+ anacutsval[13][ipt]=0.;
+ }
+ anacutsval[1][5]=0.9;
+
+ anacutsval[6][0]=0.022100;
+ anacutsval[6][1]=0.022100;
+ anacutsval[6][2]=0.034;
+ anacutsval[6][3]=0.020667;
+ anacutsval[6][4]=0.020667;
+ anacutsval[6][5]=0.023333;
+
+ anacutsval[7][0]=0.08;
+ anacutsval[7][1]=0.08;
+ anacutsval[7][2]=0.17;
+ anacutsval[7][3]=0.14;
+ anacutsval[7][4]=0.14;
+ anacutsval[7][5]=0.19;
+
+ anacutsval[8][0]=0.8;
+ anacutsval[8][1]=0.8;
+ anacutsval[8][2]=1.1;
+ anacutsval[8][3]=0.5;
+ anacutsval[8][4]=0.5;
+ anacutsval[8][5]=0.5;
+
+ anacutsval[9][0]=0.995;
+ anacutsval[9][1]=0.995;
+ anacutsval[9][2]=0.997;
+ anacutsval[9][3]=0.998;
+ anacutsval[9][4]=0.998;
+ anacutsval[9][5]=0.995;
+
+ anacutsval[10][0]=0.0055;
+ anacutsval[10][1]=0.0055;
+ anacutsval[10][2]= 0.0028;
+ anacutsval[10][3]=0.000883;
+ anacutsval[10][4]=0.000883;
+ anacutsval[10][5]=0.000883;
+
+ anacutsval[12][5]=12.;
+ anacutsval[13][5]=0.998571;
+ anacutsval[12][6]=10.;
+ anacutsval[13][6]=0.997143;
+
+ for(Int_t ipt=6;ipt<nptbins;ipt++){
+ anacutsval[6][ipt]=0.02333;
+ anacutsval[7][ipt]=0.19;
+ anacutsval[8][ipt]=2.0;
+ anacutsval[9][ipt]=0.997;
+ anacutsval[10][ipt]=0.000883;
+ }
+ anacutsval[7][6]=0.14;
+ anacutsval[9][6]=0.995;
+
+ SetPtBins(nptbins+1,ptbins);
+ SetCuts(nvars,nptbins,anacutsval);
+ SetUsePID(kTRUE);
+ SetMinCentrality(1E-10);
+ SetMaxCentrality(20.);
+ SetUseCentrality(AliRDHFCuts::kCentV0M);
+ SetRemoveDaughtersFromPrim(kFALSE);
+
+ PrintAll();
+
+ for(Int_t iic=0;iic<nvars;iic++){delete [] anacutsval[iic];}
+ delete [] anacutsval;
+ anacutsval=NULL;
+
+ delete [] ptbins;
+ ptbins=NULL;
+
+ return;
+}