Added IsInFiducualAcceptance() (Alessandro)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliRDHFCutsDStartoKpipi.cxx
index 0f491355da74e8692e0a5e410141e085ed85a372..fd538dcc056cc8879bea6ea0b7230e4b12fc524d 100644 (file)
@@ -267,7 +267,7 @@ Int_t AliRDHFCutsDStartoKpipi::IsSelected(TObject* obj,Int_t selectionLevel) {
     }
   }
   
-  Int_t returnvalue=0;
+  Int_t returnvalue=1;
   
   // selection on candidate
   if(selectionLevel==AliRDHFCuts::kAll || 
@@ -376,5 +376,28 @@ Int_t AliRDHFCutsDStartoKpipi::IsD0FromDStarSelected(Double_t pt, TObject* obj,I
   //if((Charge()==+1 && !okD0) || (Charge()==-1 && !okD0bar)) return kFALSE; 
   return returnvalue;
 }
+//----------------------------------------------------------------------------------
+Bool_t AliRDHFCutsDStartoKpipi::IsInFiducialAcceptance(Double_t pt, Double_t y) const
+{
+  //
+  // D* fiducial acceptance region 
+  //
 
+  if(pt > 5.) {
+    // applying cut for pt > 5 GeV
+    AliDebug(4,Form("pt of D* = %f (> 5), cutting at |y| < 0.8\n",pt)); 
+    if (TMath::Abs(y) > 0.8){
+      return kFALSE;
+    }
+  } else {
+    // appliying smooth cut for pt < 5 GeV
+    Double_t maxFiducialY = -0.151/15*pt*pt+1.9/15*pt+0.4; 
+    Double_t minFiducialY = 0.151/15*pt*pt-1.9/15*pt-0.4;              
+    AliDebug(4,Form("pt of D* = %f (< 5), cutting  according to the fiducial zone [%f, %f]\n",pt,minFiducialY,maxFiducialY)); 
+    if (y < minFiducialY || y > maxFiducialY){
+      return kFALSE;
+    }
+  }
 
+  return kTRUE;
+}