From: dainese Date: Thu, 9 Dec 2010 16:07:47 +0000 (+0000) Subject: Added standard cuts (Alessandro) X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=7562813cb2b9ac36ed34284b6d007532247b0421;hp=de1b82ff81e25105e586884f84a85475760f9227;p=u%2Fmrichter%2FAliRoot.git Added standard cuts (Alessandro) --- diff --git a/PWG3/vertexingHF/AliRDHFCutsDStartoKpipi.cxx b/PWG3/vertexingHF/AliRDHFCutsDStartoKpipi.cxx index a7c728572a3..d73557baf90 100644 --- a/PWG3/vertexingHF/AliRDHFCutsDStartoKpipi.cxx +++ b/PWG3/vertexingHF/AliRDHFCutsDStartoKpipi.cxx @@ -18,6 +18,9 @@ // Class for cuts on AOD reconstructed DStar->Kpipi // // Author: A.Grelli, alessandro.grelli@uu.nl +// +// PID method implemented by Y.Wang, yifei@physi.uni-heidelberg.de +// ///////////////////////////////////////////////////////////// #include @@ -34,8 +37,6 @@ #include "AliAODVertex.h" #include "AliESDVertex.h" - - ClassImp(AliRDHFCutsDStartoKpipi) //-------------------------------------------------------------------------- @@ -46,7 +47,7 @@ AliRDHFCutsDStartoKpipi::AliRDHFCutsDStartoKpipi(const char* name) : // // Default Constructor // - + Int_t nvars=14; SetNVars(nvars); TString varNames[14]={ @@ -276,7 +277,7 @@ Int_t AliRDHFCutsDStartoKpipi::IsSelected(TObject* obj,Int_t selectionLevel) { if(selectionLevel==AliRDHFCuts::kAll || selectionLevel==AliRDHFCuts::kCandidate || selectionLevel==AliRDHFCuts::kPID) { - returnvaluePID = IsSelectedPID(dd); + returnvaluePID = IsSelectedPID(d); } @@ -310,8 +311,10 @@ Int_t AliRDHFCutsDStartoKpipi::IsSelected(TObject* obj,Int_t selectionLevel) { if(d->AngleD0dkpPisoft() > fCutsRD[GetGlobalIndex(13,ptbin)]) return 0; } - + + if(returnvaluePID!=3) returnvalue =0; return returnvalue; + } //_________________________________________________________________________________________________ Int_t AliRDHFCutsDStartoKpipi::IsD0FromDStarSelected(Double_t pt, TObject* obj,Int_t selectionLevel) const { @@ -398,8 +401,7 @@ Bool_t AliRDHFCutsDStartoKpipi::IsInFiducialAcceptance(Double_t pt, Double_t y) if (TMath::Abs(y) > 0.8){ return kFALSE; } - } else { - + } else { // appliying smooth cut for pt < 5 GeV Double_t maxFiducialY = -0.2/15*pt*pt+1.9/15*pt+0.5; Double_t minFiducialY = 0.2/15*pt*pt-1.9/15*pt-0.5; @@ -408,18 +410,302 @@ Bool_t AliRDHFCutsDStartoKpipi::IsInFiducialAcceptance(Double_t pt, Double_t y) return kFALSE; } } + + return kTRUE; +} + +//_______________________________________________________________________________- +Int_t AliRDHFCutsDStartoKpipi::IsSelectedPID(AliAODRecoDecayHF* obj) +{ + // + // PID method, n signa approach default + // + + if(!fUsePID) return 3; + + AliAODRecoCascadeHF* dstar = (AliAODRecoCascadeHF*)obj; + if(!dstar){ + cout<<"AliAODRecoCascadeHF null"<Get2Prong(); + if(!d0){ + cout<<"AliAODRecoDecayHF2Prong null"<Get2Prong()->GetDaughter(0); + AliAODTrack *neg = (AliAODTrack*)dstar->Get2Prong()->GetDaughter(1); + if (dstar->Charge()>0){ + if(!SelectPID(pos,2)) return 0;//pion+ + if(!SelectPID(neg,3)) return 0;//kaon- + }else{ + if(!SelectPID(pos,3)) return 0;//kaon+ + if(!SelectPID(neg,2)) return 0;//pion- + } - return kTRUE; + return 3; } + //_______________________________________________________________________________- -Int_t AliRDHFCutsDStartoKpipi::IsSelectedPID(AliAODRecoDecayHF* dd) +Int_t AliRDHFCutsDStartoKpipi::SelectPID(AliAODTrack *track, Int_t type) { // // here the PID + + Bool_t isParticle=kTRUE; + + if(fPidHF->GetMatch()==1){//n-sigma + Bool_t TPCon=TMath::Abs(2)>1e-4?kTRUE:kFALSE; + Bool_t TOFon=TMath::Abs(3)>1e-4?kTRUE:kFALSE; + + Bool_t isTPC=kTRUE; + Bool_t isTOF=kTRUE; + + if (TPCon){//TPC + if(fPidHF->CheckStatus(track,"TPC")){ + if(type==2) isTPC=fPidHF->IsPionRaw(track,"TPC"); + if(type==3) isTPC=fPidHF->IsKaonRaw(track,"TPC"); + } + } + if (TOFon){//TOF + if(fPidHF->CheckStatus(track,"TOF")){ + if(type==2) isTOF=fPidHF->IsPionRaw(track,"TOF"); + if(type==3) isTOF=fPidHF->IsKaonRaw(track,"TOF"); + } + } + isParticle = isTPC&&isTOF; + } + + if(fPidHF->GetMatch()==2){//bayesian + //Double_t priors[5]={0.01,0.001,0.3,0.3,0.3}; + Double_t prob[5]={1.,1.,1.,1.,1.}; + + //fPidHF->SetPriors(priors); + fPidHF->BayesianProbability(track,prob); + + Double_t max=0.; + Int_t k=-1; + for (Int_t i=0; i<5; i++) { + if (prob[i]>max) {k=i; max=prob[i];} + } + isParticle = Bool_t(k==type); + } + + return isParticle; + +} +//__________________________________________________________________________________- +void AliRDHFCutsDStartoKpipi::SetStandardCutsPP2010() { + // + //STANDARD CUTS USED FOR 2010 pp analysis + // + // Need to be updated for the final cut version + // + + SetName("DStartoD0piCutsStandard"); + SetTitle("Standard Cuts for D* analysis"); + + // PILE UP REJECTION + SetOptPileup(AliRDHFCuts::kRejectPileupEvent); + + // EVENT CUTS + SetMinVtxContr(1); + + // CUTS ON SINGLE TRACKS + AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default"); + esdTrackCuts->SetRequireSigmaToVertex(kFALSE); + esdTrackCuts->SetRequireTPCRefit(kTRUE); + esdTrackCuts->SetRequireITSRefit(kTRUE); + esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); + esdTrackCuts->SetMinDCAToVertexXY(0.); + esdTrackCuts->SetEtaRange(-0.8,0.8); + esdTrackCuts->SetPtRange(0.3,1.e10); + + // CUTS on SOFT PION + AliESDtrackCuts* esdSoftPicuts=new AliESDtrackCuts(); + esdSoftPicuts->SetRequireSigmaToVertex(kFALSE); + esdSoftPicuts->SetRequireTPCRefit(kFALSE); + esdSoftPicuts->SetRequireITSRefit(kFALSE); + esdSoftPicuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, + AliESDtrackCuts::kAny); + esdSoftPicuts->SetPtRange(0.0,1.e10); + + AddTrackCuts(esdTrackCuts); + AddTrackCutsSoftPi(esdSoftPicuts); + + const Int_t nptbins =13; + const Double_t ptmax = 9999.; + const Int_t nvars=14; + Float_t ptbins[nptbins+1]; + ptbins[0]=0.; + ptbins[1]=0.5; + ptbins[2]=1.; + ptbins[3]=2.; + ptbins[4]=3.; + ptbins[5]=4.; + ptbins[6]=5.; + ptbins[7]=6.; + ptbins[8]=8.; + ptbins[9]=12.; + ptbins[10]=16.; + ptbins[11]=20.; + ptbins[12]=24.; + ptbins[13]=ptmax; + + SetGlobalIndex(nvars,nptbins); + SetPtBins(nptbins+1,ptbins); + + Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.7,220.*1E-4,0.7,0.21,0.21,500.*1E-4,500.*1E-4,-2000.*1E-8,0.85,0.3,0.1,0.05,100,0.5},/* pt<0.5*/ + {0.7,220.*1E-4,0.7,0.21,0.21,500.*1E-4,500.*1E-4,-16000.*1E-8,0.85,0.3,0.1,0.05,100,0.5},/* 0.524 */ + + + //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts + Float_t **cutsMatrixTransposeStand=new Float_t*[nvars]; + for(Int_t iv=0;ivSetName("pid4DSatr"); + Int_t mode=1; + Double_t priors[5]={0.01,0.001,0.3,0.3,0.3}; + pidObj->SetPriors(priors); + pidObj->SetMatch(mode); + pidObj->SetSigma(0,2); // TPC + pidObj->SetSigma(3,3); // TOF + pidObj->SetTPC(kTRUE); + pidObj->SetTOF(kTRUE); + + SetPidHF(pidObj); + SetUsePID(kTRUE); + + PrintAll(); + + return; +} +//_____________________________________________________________________________- +void AliRDHFCutsDStartoKpipi::SetStandardCutsPbPb2010(){ + // + // TEMPORARY, WORK IN PROGRESS ... BUT WORKING! + // + // Lead Lead + // + + SetName("DStartoD0piCutsStandard"); + SetTitle("Standard Cuts for D* analysis in PbPb 2010"); + + // EVENT CUTS + SetMinVtxContr(1); + + // CUTS ON SINGLE TRACKS + AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts","default"); + esdTrackCuts->SetRequireSigmaToVertex(kFALSE); + esdTrackCuts->SetRequireTPCRefit(kTRUE); + esdTrackCuts->SetRequireITSRefit(kTRUE); + esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); + esdTrackCuts->SetMinDCAToVertexXY(0.); + esdTrackCuts->SetEtaRange(-0.8,0.8); + esdTrackCuts->SetPtRange(0.3,1.e10); + + // CUTS on SOFT PION + AliESDtrackCuts* esdSoftPicuts=new AliESDtrackCuts(); + esdSoftPicuts->SetRequireSigmaToVertex(kFALSE); + esdSoftPicuts->SetRequireTPCRefit(kTRUE); + esdSoftPicuts->SetRequireITSRefit(kTRUE); + esdSoftPicuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, + AliESDtrackCuts::kAny); //test d0 asimmetry + esdSoftPicuts->SetPtRange(0.25,5); + + AddTrackCuts(esdTrackCuts); + AddTrackCutsSoftPi(esdSoftPicuts); + + const Int_t nptbins =13; + const Double_t ptmax = 9999.; + const Int_t nvars=14; + Float_t ptbins[nptbins+1]; + ptbins[0]=0.; + ptbins[1]=0.5; + ptbins[2]=1.; + ptbins[3]=2.; + ptbins[4]=3.; + ptbins[5]=4.; + ptbins[6]=5.; + ptbins[7]=6.; + ptbins[8]=8.; + ptbins[9]=12.; + ptbins[10]=16.; + ptbins[11]=20.; + ptbins[12]=24.; + ptbins[13]=ptmax; + + SetGlobalIndex(nvars,nptbins); + SetPtBins(nptbins+1,ptbins); + + Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.7,220.*1E-4,0.7,0.21,0.21,500.*1E-4,500.*1E-4,-2000.*1E-8,0.85,0.3,0.1,0.05,100,0.5},/* pt<0.5*/ + {0.7,220.*1E-4,0.7,0.21,0.21,500.*1E-4,500.*1E-4,-16000.*1E-8,0.85,0.3,0.1,0.05,100,0.5},/* 0.524 */ + + + //CREATE TRANSPOSE MATRIX...REVERSE INDICES as required by AliRDHFCuts + Float_t **cutsMatrixTransposeStand=new Float_t*[nvars]; + for(Int_t iv=0;ivSetName("pid4DSatr"); + Int_t mode=1; + Double_t priors[5]={0.01,0.001,0.3,0.3,0.3}; + pidObj->SetPriors(priors); + pidObj->SetMatch(mode); + pidObj->SetSigma(0,2); // TPC + pidObj->SetSigma(3,3); // TOF + pidObj->SetTPC(kTRUE); + pidObj->SetTOF(kTRUE); + + SetPidHF(pidObj); + SetUsePID(kTRUE); - // Double_t cw = dd->Pt(); + PrintAll(); + + return; - if(dd) return 1; - return 1; } diff --git a/PWG3/vertexingHF/AliRDHFCutsDStartoKpipi.h b/PWG3/vertexingHF/AliRDHFCutsDStartoKpipi.h index 9662b576329..233719a5f76 100644 --- a/PWG3/vertexingHF/AliRDHFCutsDStartoKpipi.h +++ b/PWG3/vertexingHF/AliRDHFCutsDStartoKpipi.h @@ -7,6 +7,7 @@ // Class AliRDHFCutsDStartoKpipi // class for cuts on AOD reconstructed DStar->Kpipi // Author: A.Grelli, alessandro.grelli@uu.nl +// PID method implemented by Y.Wang, yifei@physi.uni-heidelberg.de //*********************************************************** #include "AliRDHFCuts.h" @@ -32,9 +33,12 @@ class AliRDHFCutsDStartoKpipi : public AliRDHFCuts virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel); Int_t IsD0FromDStarSelected(Double_t pt, TObject* obj,Int_t selectionLevel) const; virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd); + virtual Int_t SelectPID(AliAODTrack *track, Int_t type); virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const; Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(9,iPtBin)] : 1.e6);} // for the Dstar Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(1,iPtBin)] : 1.e6);} // for the D0 + virtual void SetStandardCutsPP2010(); + virtual void SetStandardCutsPbPb2010(); void AddTrackCutsSoftPi(const AliESDtrackCuts *cuts) {fTrackCutsSoftPi=new AliESDtrackCuts(*cuts); return;} @@ -44,7 +48,7 @@ class AliRDHFCutsDStartoKpipi : public AliRDHFCuts AliESDtrackCuts *fTrackCutsSoftPi; // cuts for soft pion (AOD converted to ESD on the flight!) - ClassDef(AliRDHFCutsDStartoKpipi,3); // class for cuts on AOD reconstructed D0->Kpipi + ClassDef(AliRDHFCutsDStartoKpipi,4); // class for cuts on AOD reconstructed D0->Kpipi }; #endif diff --git a/PWG3/vertexingHF/macros/makeTFile4CutsDStartoKpipi.C b/PWG3/vertexingHF/macros/makeTFile4CutsDStartoKpipi.C index 759401adf4a..cb81d8ae6d7 100644 --- a/PWG3/vertexingHF/macros/makeTFile4CutsDStartoKpipi.C +++ b/PWG3/vertexingHF/macros/makeTFile4CutsDStartoKpipi.C @@ -18,7 +18,7 @@ //macro to make a .root file which contains an AliRDHFCutsDStartoKpipi for AliAnalysisTaskSEDStarSpectra task and CF task -void makeInputAliAnalysisTaskSEDStarSpectra(){ +void makeInputAliAnalysisTaskSEDStarSpectra(const char *set_cuts="utrecht"){ AliRDHFCutsDStartoKpipi* RDHFDStartoKpipi=new AliRDHFCutsDStartoKpipi(); RDHFDStartoKpipi->SetName("DStartoKpipiCuts"); @@ -29,7 +29,6 @@ void makeInputAliAnalysisTaskSEDStarSpectra(){ //default esdTrackCuts->SetRequireTPCRefit(kTRUE); esdTrackCuts->SetRequireITSRefit(kTRUE); - //esdTrackCuts->SetMinNClustersITS(4); // default is 5 //esdTrackCuts->SetMinNClustersTPC(70); esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny); @@ -43,7 +42,6 @@ void makeInputAliAnalysisTaskSEDStarSpectra(){ //default esdSoftPicuts->SetRequireTPCRefit(kFALSE); esdSoftPicuts->SetRequireITSRefit(kFALSE); - //esdSoftPicuts->SetMinNClustersITS(4); // default is 4 esdSoftPicuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny); //test d0 asimmetry esdSoftPicuts->SetPtRange(0.0,1.e10); @@ -74,211 +72,432 @@ void makeInputAliAnalysisTaskSEDStarSpectra(){ RDHFDStartoKpipi->SetPtBins(nptbins+1,ptbins); - Float_t** rdcutsvalmine; rdcutsvalmine=new Float_t*[nvars]; for(Int_t iv=0;iv25 - rdcutsvalmine[0][12]=0.7; - rdcutsvalmine[1][12]=0.6; - rdcutsvalmine[2][12]=1.0; - rdcutsvalmine[3][12]=.4; - rdcutsvalmine[4][12]=.4; - rdcutsvalmine[5][12]=0.5; - rdcutsvalmine[6][12]=0.5; - rdcutsvalmine[7][12]=0.1; - rdcutsvalmine[8][12]=0.7; - rdcutsvalmine[9][12]=0.3; - rdcutsvalmine[10][12]=0.1; - rdcutsvalmine[11][12]=0.05; - rdcutsvalmine[12][12]=100.; - rdcutsvalmine[13][12]=0.5; - + if(set_cuts=="utrecht"){ + //0-0.5 + rdcutsvalmine[0][0]=0.7; + rdcutsvalmine[1][0]=0.03; + rdcutsvalmine[2][0]=0.8; + rdcutsvalmine[3][0]=0.3; + rdcutsvalmine[4][0]=0.3; + rdcutsvalmine[5][0]=0.1; + rdcutsvalmine[6][0]=0.1; + rdcutsvalmine[7][0]=0.00035; + rdcutsvalmine[8][0]=0.73; + rdcutsvalmine[9][0]=0.3; + rdcutsvalmine[10][0]=0.1; + rdcutsvalmine[11][0]=0.05; + rdcutsvalmine[12][0]=100.; + rdcutsvalmine[13][0]=0.5; + //0.5-1 + rdcutsvalmine[0][1]=0.7; + rdcutsvalmine[1][1]=0.03; + rdcutsvalmine[2][1]=0.8; + rdcutsvalmine[3][1]=0.3; + rdcutsvalmine[4][1]=0.3; + rdcutsvalmine[5][1]=0.1; + rdcutsvalmine[6][1]=0.1; + rdcutsvalmine[7][1]=-0.00020; + rdcutsvalmine[8][1]=0.73; + rdcutsvalmine[9][1]=0.3; + rdcutsvalmine[10][1]=0.1; + rdcutsvalmine[11][1]=0.05; + rdcutsvalmine[12][1]=100.; + rdcutsvalmine[13][1]=0.5; + //1-2 + rdcutsvalmine[0][2]=0.7; + rdcutsvalmine[1][2]=0.02; + rdcutsvalmine[2][2]=0.8; + rdcutsvalmine[3][2]=0.4; + rdcutsvalmine[4][2]=0.4; + rdcutsvalmine[5][2]=0.1; + rdcutsvalmine[6][2]=0.1; + rdcutsvalmine[7][2]=-0.00036; + rdcutsvalmine[8][2]=0.82; + rdcutsvalmine[9][2]=0.3; + rdcutsvalmine[10][2]=0.1; + rdcutsvalmine[11][2]=0.05; + rdcutsvalmine[12][2]=100.; + rdcutsvalmine[13][2]=0.5; + //2-3 + rdcutsvalmine[0][3]=0.7; + rdcutsvalmine[1][3]=0.02; + rdcutsvalmine[2][3]=0.8; + rdcutsvalmine[3][3]=0.7; + rdcutsvalmine[4][3]=0.7; + rdcutsvalmine[5][3]=0.08; + rdcutsvalmine[6][3]=0.08; + rdcutsvalmine[7][3]=-0.00016; + rdcutsvalmine[8][3]=0.90; + rdcutsvalmine[9][3]=0.3; + rdcutsvalmine[10][3]=0.1; + rdcutsvalmine[11][3]=0.05; + rdcutsvalmine[12][3]=100.; + rdcutsvalmine[13][3]=0.5; + //3-4 + rdcutsvalmine[0][4]=0.7; + rdcutsvalmine[1][4]=0.05; + rdcutsvalmine[2][4]=0.8; + rdcutsvalmine[3][4]=1.; + rdcutsvalmine[4][4]=1.; + rdcutsvalmine[5][4]=0.042; + rdcutsvalmine[6][4]=0.056; + rdcutsvalmine[7][4]=-0.000065; + rdcutsvalmine[8][4]=0.9; + rdcutsvalmine[9][4]=0.3; + rdcutsvalmine[10][4]=0.1; + rdcutsvalmine[11][4]=0.05; + rdcutsvalmine[12][4]=100.; + rdcutsvalmine[13][4]=0.5; + //4-5 + rdcutsvalmine[0][5]=0.7; + rdcutsvalmine[1][5]=0.08; + rdcutsvalmine[2][5]=0.9; + rdcutsvalmine[3][5]=1.2; + rdcutsvalmine[4][5]=1.2; + rdcutsvalmine[5][5]=0.07; + rdcutsvalmine[6][5]=0.07; + rdcutsvalmine[7][5]=0.0001; + rdcutsvalmine[8][5]=0.9; + rdcutsvalmine[9][5]=0.3; + rdcutsvalmine[10][5]=0.1; + rdcutsvalmine[11][5]=0.05; + rdcutsvalmine[12][5]=100.; + rdcutsvalmine[13][5]=0.5; + //5-6 + rdcutsvalmine[0][6]=0.7; + rdcutsvalmine[1][6]=0.1; + rdcutsvalmine[2][6]=1.0; + rdcutsvalmine[3][6]=1.; + rdcutsvalmine[4][6]=1.; + rdcutsvalmine[5][6]=0.08; + rdcutsvalmine[6][6]=0.08; + rdcutsvalmine[7][6]=0.0005; + rdcutsvalmine[8][6]=0.8; + rdcutsvalmine[9][6]=0.3; + rdcutsvalmine[10][6]=0.1; + rdcutsvalmine[11][6]=0.05; + rdcutsvalmine[12][6]=100000.; + rdcutsvalmine[13][6]=0.5; + //6-8 + rdcutsvalmine[0][7]=0.7; + rdcutsvalmine[1][7]=0.1; + rdcutsvalmine[2][7]=1.0; + rdcutsvalmine[3][7]=1.; + rdcutsvalmine[4][7]=1.; + rdcutsvalmine[5][7]=0.1; + rdcutsvalmine[6][7]=0.1; + rdcutsvalmine[7][7]=0.001; + rdcutsvalmine[8][7]=0.7; + rdcutsvalmine[9][7]=0.3; + rdcutsvalmine[10][7]=0.1; + rdcutsvalmine[11][7]=0.05; + rdcutsvalmine[12][7]=100.; + rdcutsvalmine[13][7]=0.5; + //8-12 + rdcutsvalmine[0][8]=0.7; + rdcutsvalmine[1][8]=0.1; + rdcutsvalmine[2][8]=1.0; + rdcutsvalmine[3][8]=1.; + rdcutsvalmine[4][8]=1.; + rdcutsvalmine[5][8]=0.1; + rdcutsvalmine[6][8]=0.1; + rdcutsvalmine[7][8]=0.006; + rdcutsvalmine[8][8]=0.7; + rdcutsvalmine[9][8]=0.3; + rdcutsvalmine[10][8]=0.1; + rdcutsvalmine[11][8]=0.05; + rdcutsvalmine[12][8]=100.; + rdcutsvalmine[13][8]=0.5; + //12-16 + rdcutsvalmine[0][9]=0.7; + rdcutsvalmine[1][9]=0.1; + rdcutsvalmine[2][9]=1.0; + rdcutsvalmine[3][9]=0.3; + rdcutsvalmine[4][9]=0.3; + rdcutsvalmine[5][9]=0.15; + rdcutsvalmine[6][9]=0.15; + rdcutsvalmine[7][9]=0.01; + rdcutsvalmine[8][9]=0.7; + rdcutsvalmine[9][9]=0.3; + rdcutsvalmine[10][9]=0.1; + rdcutsvalmine[11][9]=0.05; + rdcutsvalmine[12][9]=100.; + rdcutsvalmine[13][9]=0.5; + //16-20 + rdcutsvalmine[0][10]=0.7; + rdcutsvalmine[1][10]=0.2; + rdcutsvalmine[2][10]=1.0; + rdcutsvalmine[3][10]=.3; + rdcutsvalmine[4][10]=.3; + rdcutsvalmine[5][10]=0.15; + rdcutsvalmine[6][10]=0.15; + rdcutsvalmine[7][10]=0.01; + rdcutsvalmine[8][10]=0.7; + rdcutsvalmine[9][10]=0.3; + rdcutsvalmine[10][10]=0.1; + rdcutsvalmine[11][10]=0.05; + rdcutsvalmine[12][10]=100.; + rdcutsvalmine[13][10]=0.5; + //20-24 + rdcutsvalmine[0][11]=0.7; + rdcutsvalmine[1][11]=0.2; + rdcutsvalmine[2][11]=1.0; + rdcutsvalmine[3][11]=.3; + rdcutsvalmine[4][11]=.3; + rdcutsvalmine[5][11]=0.15; + rdcutsvalmine[6][11]=0.15; + rdcutsvalmine[7][11]=0.01; + rdcutsvalmine[8][11]=0.7; + rdcutsvalmine[9][11]=0.3; + rdcutsvalmine[10][11]=0.1; + rdcutsvalmine[11][11]=0.05; + rdcutsvalmine[12][11]=100.; + rdcutsvalmine[13][11]=0.5; + //>25 + rdcutsvalmine[0][12]=0.7; + rdcutsvalmine[1][12]=0.6; + rdcutsvalmine[2][12]=1.0; + rdcutsvalmine[3][12]=.4; + rdcutsvalmine[4][12]=.4; + rdcutsvalmine[5][12]=0.5; + rdcutsvalmine[6][12]=0.5; + rdcutsvalmine[7][12]=0.1; + rdcutsvalmine[8][12]=0.7; + rdcutsvalmine[9][12]=0.3; + rdcutsvalmine[10][12]=0.1; + rdcutsvalmine[11][12]=0.05; + rdcutsvalmine[12][12]=100.; + rdcutsvalmine[13][12]=0.5; + } + if(set_cuts=="heidelberg"){ + + //0-0.5 + rdcutsvalmine[0][0]=0.7; + rdcutsvalmine[1][0]=0.03; + rdcutsvalmine[2][0]=0.7; + rdcutsvalmine[3][0]=0.8; + rdcutsvalmine[4][0]=0.8; + rdcutsvalmine[5][0]=0.1; + rdcutsvalmine[6][0]=0.1; + rdcutsvalmine[7][0]=-0.00002; + rdcutsvalmine[8][0]=0.9; + rdcutsvalmine[9][0]=0.3; + rdcutsvalmine[10][0]=0.1; + rdcutsvalmine[11][0]=0.05; + rdcutsvalmine[12][0]=100.; + rdcutsvalmine[13][0]=0.5; + //0.5-1 + rdcutsvalmine[0][1]=0.7; + rdcutsvalmine[1][1]=0.03; + rdcutsvalmine[2][1]=0.7; + rdcutsvalmine[3][1]=0.8; + rdcutsvalmine[4][1]=0.8; + rdcutsvalmine[5][1]=0.1; + rdcutsvalmine[6][1]=0.1; + rdcutsvalmine[7][1]=-0.00002; + rdcutsvalmine[8][1]=0.9; + rdcutsvalmine[9][1]=0.3; + rdcutsvalmine[10][1]=0.1; + rdcutsvalmine[11][1]=0.05; + rdcutsvalmine[12][1]=100.; + rdcutsvalmine[13][1]=0.5; + + //1-2 + rdcutsvalmine[0][2]=0.7; + rdcutsvalmine[1][2]=0.03; + rdcutsvalmine[2][2]=0.7; + rdcutsvalmine[3][2]=0.8; + rdcutsvalmine[4][2]=0.8; + rdcutsvalmine[5][2]=0.1; + rdcutsvalmine[6][2]=0.1; + rdcutsvalmine[7][2]=-0.00002; + rdcutsvalmine[8][2]=0.9; + rdcutsvalmine[9][2]=0.3; + rdcutsvalmine[10][2]=0.1; + rdcutsvalmine[11][2]=0.05; + rdcutsvalmine[12][2]=100.; + rdcutsvalmine[13][2]=0.5; + //2-3 + rdcutsvalmine[0][3]=0.7; + rdcutsvalmine[1][3]=0.03; + rdcutsvalmine[2][3]=0.7; + rdcutsvalmine[3][3]=0.8; + rdcutsvalmine[4][3]=0.8; + rdcutsvalmine[5][3]=0.1; + rdcutsvalmine[6][3]=0.1; + rdcutsvalmine[7][3]=-0.00002; + rdcutsvalmine[8][3]=0.9; + rdcutsvalmine[9][3]=0.3; + rdcutsvalmine[10][3]=0.1; + rdcutsvalmine[11][3]=0.05; + rdcutsvalmine[12][3]=100.; + rdcutsvalmine[13][3]=0.5; + //3-4 + rdcutsvalmine[0][4]=0.7; + rdcutsvalmine[1][4]=0.03; + rdcutsvalmine[2][4]=0.7; + rdcutsvalmine[3][4]=0.9; + rdcutsvalmine[4][4]=0.9; + rdcutsvalmine[5][4]=0.1; + rdcutsvalmine[6][4]=0.1; + rdcutsvalmine[7][4]=0.000002; + rdcutsvalmine[8][4]=0.8; + rdcutsvalmine[9][4]=0.3; + rdcutsvalmine[10][4]=0.1; + rdcutsvalmine[11][4]=0.05; + rdcutsvalmine[12][4]=100.; + rdcutsvalmine[13][4]=0.5; + //4-5 + rdcutsvalmine[0][5]=0.7; + rdcutsvalmine[1][5]=0.03; + rdcutsvalmine[2][5]=0.7; + rdcutsvalmine[3][5]=0.9; + rdcutsvalmine[4][5]=0.9; + rdcutsvalmine[5][5]=0.1; + rdcutsvalmine[6][5]=0.1; + rdcutsvalmine[7][5]=0.000002; + rdcutsvalmine[8][5]=0.8; + rdcutsvalmine[9][5]=0.3; + rdcutsvalmine[10][5]=0.1; + rdcutsvalmine[11][5]=0.05; + rdcutsvalmine[12][5]=100.; + rdcutsvalmine[13][5]=0.5; + //5-6 + rdcutsvalmine[0][6]=0.7; + rdcutsvalmine[1][6]=0.03; + rdcutsvalmine[2][6]=0.7; + rdcutsvalmine[3][6]=1.0; + rdcutsvalmine[4][6]=1.0; + rdcutsvalmine[5][6]=0.1; + rdcutsvalmine[6][6]=0.1; + rdcutsvalmine[7][6]=0.000002; + rdcutsvalmine[8][6]=0.8; + rdcutsvalmine[9][6]=0.3; + rdcutsvalmine[10][6]=0.1; + rdcutsvalmine[11][6]=0.05; + rdcutsvalmine[12][6]=100.; + rdcutsvalmine[13][6]=0.5; + //6-8 + rdcutsvalmine[0][7]=0.7; + rdcutsvalmine[1][7]=0.03; + rdcutsvalmine[2][7]=0.7; + rdcutsvalmine[3][7]=1.0; + rdcutsvalmine[4][7]=1.0; + rdcutsvalmine[5][7]=0.1; + rdcutsvalmine[6][7]=0.1; + rdcutsvalmine[7][7]=0.000002; + rdcutsvalmine[8][7]=0.8; + rdcutsvalmine[9][7]=0.3; + rdcutsvalmine[10][7]=0.1; + rdcutsvalmine[11][7]=0.05; + rdcutsvalmine[12][7]=100.; + rdcutsvalmine[13][7]=0.5; + //8-12 + rdcutsvalmine[0][8]=0.7; + rdcutsvalmine[1][8]=0.03; + rdcutsvalmine[2][8]=0.7; + rdcutsvalmine[3][8]=1.0; + rdcutsvalmine[4][8]=1.0; + rdcutsvalmine[5][8]=0.1; + rdcutsvalmine[6][8]=0.1; + rdcutsvalmine[7][8]=0.000002; + rdcutsvalmine[8][8]=0.8; + rdcutsvalmine[9][8]=0.3; + rdcutsvalmine[10][8]=0.1; + rdcutsvalmine[11][8]=0.05; + rdcutsvalmine[12][8]=100.; + rdcutsvalmine[13][8]=0.5; + //12-16 + rdcutsvalmine[0][9]=0.7; + rdcutsvalmine[1][9]=0.03; + rdcutsvalmine[2][9]=0.7; + rdcutsvalmine[3][9]=1.0; + rdcutsvalmine[4][9]=1.0; + rdcutsvalmine[5][9]=0.1; + rdcutsvalmine[6][9]=0.1; + rdcutsvalmine[7][9]=0.000002; + rdcutsvalmine[8][9]=0.8; + rdcutsvalmine[9][9]=0.3; + rdcutsvalmine[10][9]=0.1; + rdcutsvalmine[11][9]=0.05; + rdcutsvalmine[12][9]=100.; + rdcutsvalmine[13][9]=0.5; + //16-20 + rdcutsvalmine[0][10]=0.7; + rdcutsvalmine[1][10]=0.03; + rdcutsvalmine[2][10]=0.7; + rdcutsvalmine[3][10]=1.0; + rdcutsvalmine[4][10]=1.0; + rdcutsvalmine[5][10]=0.1; + rdcutsvalmine[6][10]=0.1; + rdcutsvalmine[7][10]=0.000002; + rdcutsvalmine[8][10]=0.8; + rdcutsvalmine[9][10]=0.3; + rdcutsvalmine[10][10]=0.1; + rdcutsvalmine[11][10]=0.05; + rdcutsvalmine[12][10]=100.; + rdcutsvalmine[13][10]=0.5; + //20-24 + rdcutsvalmine[0][11]=0.7; + rdcutsvalmine[1][11]=0.03; + rdcutsvalmine[2][11]=0.7; + rdcutsvalmine[3][11]=1.0; + rdcutsvalmine[4][11]=1.0; + rdcutsvalmine[5][11]=0.1; + rdcutsvalmine[6][11]=0.1; + rdcutsvalmine[7][11]=0.000002; + rdcutsvalmine[8][11]=0.8; + rdcutsvalmine[9][11]=0.3; + rdcutsvalmine[10][11]=0.1; + rdcutsvalmine[11][11]=0.05; + rdcutsvalmine[12][11]=100.; + rdcutsvalmine[13][11]=0.5; + //>24 + rdcutsvalmine[0][12]=0.7; + rdcutsvalmine[1][12]=0.03; + rdcutsvalmine[2][12]=0.7; + rdcutsvalmine[3][12]=1.0; + rdcutsvalmine[4][12]=1.0; + rdcutsvalmine[5][12]=0.1; + rdcutsvalmine[6][12]=0.1; + rdcutsvalmine[7][12]=0.000002; + rdcutsvalmine[8][12]=0.8; + rdcutsvalmine[9][12]=0.3; + rdcutsvalmine[10][12]=0.1; + rdcutsvalmine[11][12]=0.05; + rdcutsvalmine[12][12]=100.; + rdcutsvalmine[13][12]=0.5; + } RDHFDStartoKpipi->SetCuts(nvars,nptbins,rdcutsvalmine); + + Bool_t pidflag=kFALSE; + RDHFDStartoKpipi->SetUsePID(pidflag); + if(pidflag) cout<<"PID is used"<SetName("pid4DSatr"); + Int_t mode=1; + Double_t priors[5]={0.01,0.001,0.3,0.3,0.3}; + pidObj->SetPriors(priors); + pidObj->SetMatch(mode); + pidObj->SetSigma(0,2); // TPC + pidObj->SetSigma(3,3); // TOF + pidObj->SetTPC(kTRUE); + pidObj->SetTOF(kTRUE); + RDHFDStartoKpipi->SetPidHF(pidObj); + + //activate pileup rejection + RDHFDStartoKpipi->SetOptPileup(AliRDHFCuts::kRejectPileupEvent); + RDHFDStartoKpipi->PrintAll(); TFile* fout=new TFile("DStartoKpipiCuts.root","recreate"); //set this!! @@ -306,7 +525,7 @@ void makeInputAliAnalysisTaskSEDstarSignificanceMaximization(){ esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny); esdTrackCuts->SetMinDCAToVertexXY(0.); - esdTrackCuts->SetEtaRange(-0.9,0.9); + esdTrackCuts->SetEtaRange(-0.8,0.8); esdTrackCuts->SetPtRange(0.1,1.e10); // soft pion pre-selections