//--------------------------------------------------------------------------
AliRDHFCutsD0toKpi::AliRDHFCutsD0toKpi(const char* name) :
AliRDHFCuts(name),
-fUseSpecialCuts(kTRUE),
+fUseSpecialCuts(kFALSE),
fLowPt(kTRUE),
fDefaultPID(kFALSE),
-fUseKF(kFALSE)
+fUseKF(kFALSE),
+fPtLowPID(2.)
{
//
// Default Constructor
fUseSpecialCuts(source.fUseSpecialCuts),
fLowPt(source.fLowPt),
fDefaultPID(source.fDefaultPID),
- fUseKF(source.fUseKF)
+ fUseKF(source.fUseKF),
+ fPtLowPID(source.fPtLowPID)
{
//
// Copy constructor
fUseSpecialCuts=source.fUseSpecialCuts;
fLowPt=source.fLowPt;
fDefaultPID=source.fDefaultPID;
+ fPtLowPID=source.fPtLowPID;
return *this;
}
if(fVarsForOpt[10]){
iter++;
- vars[iter]=(dd->NormalizedDecayLengthXY()*(dd->P()/dd->Pt()));
+ vars[iter]=dd->NormalizedDecayLengthXY();
}
if(cleanvtx)CleanOwnPrimaryVtx(dd,aod,origownvtx);
Double_t ptD=d->Pt();
if(ptD<fMinPtCand) return 0;
if(ptD>fMaxPtCand) return 0;
-
+
+ if(d->HasBadDaughters()) return 0;
+
// returnvalue: 0 not sel, 1 only D0, 2 only D0bar, 3 both
Int_t returnvaluePID=3;
Int_t returnvalueCuts=3;
if(TMath::Abs(d->CosPointingAngleXY()) < fCutsRD[GetGlobalIndex(9,ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
- Double_t normalDecayLengXY=(d->NormalizedDecayLengthXY()*(d->P()/d->Pt()));
+ Double_t normalDecayLengXY=d->NormalizedDecayLengthXY();
if (normalDecayLengXY < fCutsRD[GetGlobalIndex(10, ptbin)]) {CleanOwnPrimaryVtx(d,aod,origownvtx); return 0;}
if (returnvalueCuts!=0) {
else isD0D0barPID[1]=0;// not a D0bar if pi+ or if K+ excluded
}
- if(fLowPt && d->Pt()<2.){
+ if(fLowPt && d->Pt()<fPtLowPID){
Double_t sigmaTPC[3]={3.,2.,0.};
fPidHF->SetSigmaForTPC(sigmaTPC);
// identify kaon
return 0;
}
- if(fLowPt && d->Pt()<2.){
- if(fLowPt) fPidHF->SetSigmaForTPC(sigma_tmp);
+ if(fLowPt && d->Pt()<fPtLowPID){
if(combinedPID[0][0]<=0&&combinedPID[1][0]<=0){
fWhyRejection=32;// reject cases where the Kaon is not identified
+ fPidHF->SetSigmaForTPC(sigma_tmp);
return 0;
}
}
esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
esdTrackCuts->SetMinDCAToVertexXY(0.);
esdTrackCuts->SetEtaRange(-0.8,0.8);
- esdTrackCuts->SetPtRange(0.8,1.e10);
+ esdTrackCuts->SetPtRange(0.7,1.e10);
esdTrackCuts->SetMaxDCAToVertexXY(1.);
esdTrackCuts->SetMaxDCAToVertexZ(1.);
- esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0100*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
+ esdTrackCuts->SetMinDCAToVertexXYPtDep("0.0075*TMath::Max(0.,(1-TMath::Floor(TMath::Abs(pt)/2.)))");
AddTrackCuts(esdTrackCuts);
SetPtBins(nptbins+1,ptbins);
SetMinPtCandidate(2.);
- Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.400,400.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-50000.*1E-8,0.85,0.,5.},/* pt<0.5*/
- {0.400,400.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-50000.*1E-8,0.85,0.,5.},/* 0.5<pt<1*/
+ Float_t cutsMatrixD0toKpiStand[nptbins][nvars]={{0.400,400.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-10000.*1E-8,0.85,0.,5.},/* pt<0.5*/
+ {0.400,400.*1E-4,0.8,0.3,0.3,1000.*1E-4,1000.*1E-4,-35000.*1E-8,0.9,0.,5.},/* 0.5<pt<1*/
{0.400,400.*1E-4,0.8,0.4,0.4,1000.*1E-4,1000.*1E-4,-43000.*1E-8,0.85,0.,5.},/* 1<pt<2 */
{0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-40000.*1E-8,0.95,0.998,5.},/* 2<pt<3 */
{0.400,250.*1E-4,0.8,0.7,0.7,1000.*1E-4,1000.*1E-4,-36000.*1E-8,0.95,0.998,5.},/* 3<pt<4 */
pidObj->SetCompat(compat);
pidObj->SetTPC(kTRUE);
pidObj->SetTOF(kTRUE);
-
+ pidObj->SetPCompatTOF(2.);
+ pidObj->SetSigmaForTPCCompat(3.);
+ pidObj->SetSigmaForTOFCompat(3.);
+
+
SetPidHF(pidObj);
SetUsePID(kTRUE);
SetUseDefaultPID(kFALSE);