]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/AliRDHFCutsD0toKpi.cxx
Coverity
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliRDHFCutsD0toKpi.cxx
index 67a01959123353966d3c4901e94afaa1fa840579..d1b136a32d0dc472662bd4c07a171db78126d5eb 100644 (file)
@@ -40,10 +40,11 @@ ClassImp(AliRDHFCutsD0toKpi)
 //--------------------------------------------------------------------------
 AliRDHFCutsD0toKpi::AliRDHFCutsD0toKpi(const char* name) : 
 AliRDHFCuts(name),
-fUseSpecialCuts(kTRUE),
+fUseSpecialCuts(kFALSE),
 fLowPt(kTRUE),
 fDefaultPID(kFALSE),
-fUseKF(kFALSE)
+fUseKF(kFALSE),
+fPtLowPID(2.)
 {
   //
   // Default Constructor
@@ -95,7 +96,8 @@ AliRDHFCutsD0toKpi::AliRDHFCutsD0toKpi(const AliRDHFCutsD0toKpi &source) :
   fUseSpecialCuts(source.fUseSpecialCuts),
   fLowPt(source.fLowPt),
   fDefaultPID(source.fDefaultPID),
-  fUseKF(source.fUseKF)
+  fUseKF(source.fUseKF),
+  fPtLowPID(source.fPtLowPID)
 {
   //
   // Copy constructor
@@ -114,6 +116,7 @@ AliRDHFCutsD0toKpi &AliRDHFCutsD0toKpi::operator=(const AliRDHFCutsD0toKpi &sour
   fUseSpecialCuts=source.fUseSpecialCuts;
   fLowPt=source.fLowPt;
   fDefaultPID=source.fDefaultPID;
+  fPtLowPID=source.fPtLowPID;
 
   return *this;
 }
@@ -217,7 +220,7 @@ void AliRDHFCutsD0toKpi::GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int
   
    if(fVarsForOpt[10]){
                iter++;
-          vars[iter]=(dd->NormalizedDecayLengthXY()*(dd->P()/dd->Pt()));
+          vars[iter]=dd->NormalizedDecayLengthXY();
        }
 
    if(cleanvtx)CleanOwnPrimaryVtx(dd,aod,origownvtx);
@@ -251,7 +254,9 @@ Int_t AliRDHFCutsD0toKpi::IsSelected(TObject* obj,Int_t selectionLevel,AliAODEve
   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;
@@ -327,7 +332,7 @@ Int_t AliRDHFCutsD0toKpi::IsSelected(TObject* obj,Int_t selectionLevel,AliAODEve
       
       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) {
@@ -727,7 +732,7 @@ Int_t AliRDHFCutsD0toKpi::IsSelectedPID(AliAODRecoDecayHF* d)
       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
@@ -776,10 +781,10 @@ Int_t AliRDHFCutsD0toKpi::IsSelectedPID(AliAODRecoDecayHF* d)
     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;
     }
   }
@@ -1281,11 +1286,11 @@ void AliRDHFCutsD0toKpi::SetStandardCutsPbPb2010() {
   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);
@@ -1314,8 +1319,8 @@ void AliRDHFCutsD0toKpi::SetStandardCutsPbPb2010() {
   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 */
@@ -1362,7 +1367,11 @@ void AliRDHFCutsD0toKpi::SetStandardCutsPbPb2010() {
   pidObj->SetCompat(compat);
   pidObj->SetTPC(kTRUE);
   pidObj->SetTOF(kTRUE);
-  
+  pidObj->SetPCompatTOF(2.);
+  pidObj->SetSigmaForTPCCompat(3.);
+  pidObj->SetSigmaForTOFCompat(3.);  
+
+
   SetPidHF(pidObj);
   SetUsePID(kTRUE);
   SetUseDefaultPID(kFALSE);