]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/vertexingHF/AliRDHFCutsDStartoKpipi.cxx
Possibility to select flat acceptance in y
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliRDHFCutsDStartoKpipi.cxx
index 1d79de059ede9a8f00e38700b8b35cdbae3bd3e3..088c1fcb25b11ec7a9ba32d0ef8f1f0964fdf005 100644 (file)
 #include "AliAODVertex.h"
 #include "AliESDVertex.h"
 
+using std::cout;
+using std::endl;
+
 ClassImp(AliRDHFCutsDStartoKpipi)
 
 //--------------------------------------------------------------------------
 AliRDHFCutsDStartoKpipi::AliRDHFCutsDStartoKpipi(const char* name) : 
   AliRDHFCuts(name),
   fTrackCutsSoftPi(0),
-  fMaxPtPid(9999.)
+  fMaxPtPid(9999.),
+  fTPCflag(999.)
 {
   //
   // Default Constructor
@@ -113,7 +117,8 @@ AliRDHFCutsDStartoKpipi::AliRDHFCutsDStartoKpipi(const char* name) :
 AliRDHFCutsDStartoKpipi::AliRDHFCutsDStartoKpipi(const AliRDHFCutsDStartoKpipi &source) :
   AliRDHFCuts(source),
   fTrackCutsSoftPi(0),
-  fMaxPtPid(9999.)
+  fMaxPtPid(9999.),
+  fTPCflag(999.)
 {
   //
   // Copy constructor
@@ -258,6 +263,10 @@ Int_t AliRDHFCutsDStartoKpipi::IsSelected(TObject* obj,Int_t selectionLevel) {
   //
   // Apply selection for D*.
   //
+
+  fIsSelectedCuts=0;
+  fIsSelectedPID=0;
+
   if(!fCutsRD){
     cout<<"Cut matrice not inizialized. Exit..."<<endl;
     return 0;
@@ -280,7 +289,7 @@ Int_t AliRDHFCutsDStartoKpipi::IsSelected(TObject* obj,Int_t selectionLevel) {
     return 0;
   }
 
-  if(dd->HasBadDaughters()) return 0;
+  if(fUseTrackSelectionWithFilterBits && dd->HasBadDaughters()) return 0;
 
   AliAODTrack *b = (AliAODTrack*)d->GetBachelor();
   if(fTrackCutsSoftPi && fTrackCutsSoftPi->GetRequireTPCRefit()){
@@ -321,11 +330,14 @@ Int_t AliRDHFCutsDStartoKpipi::IsSelected(TObject* obj,Int_t selectionLevel) {
     
   }
 
+  fIsSelectedCuts = returnvalue;
+
   // selection on PID 
   if(selectionLevel==AliRDHFCuts::kAll || 
      selectionLevel==AliRDHFCuts::kCandidate ||
      selectionLevel==AliRDHFCuts::kPID) {
     returnvaluePID = IsSelectedPID(d);
+    fIsSelectedPID = returnvaluePID;
   }
   if(returnvaluePID!=3) returnvalue =0;
 
@@ -431,6 +443,11 @@ Bool_t AliRDHFCutsDStartoKpipi::IsInFiducialAcceptance(Double_t pt, Double_t y)
   // D* fiducial acceptance region 
   //
 
+  if(fMaxRapidityCand>-998.){
+    if(TMath::Abs(y) > fMaxRapidityCand) return kFALSE;
+    else return kTRUE;
+  }
+
   if(pt > 5.) {
     // applying cut for pt > 5 GeV
     AliDebug(4,Form("pt of D* = %f (> 5), cutting at |y| < 0.8\n",pt)); 
@@ -513,6 +530,13 @@ Int_t AliRDHFCutsDStartoKpipi::SelectPID(AliAODTrack *track, Int_t type)
        if(type==3) isTOF=fPidHF->IsKaonRaw(track,"TOF");
       }
     }
+
+    //--------------------------------
+    // cut on high momentum in the TPC
+    //--------------------------------
+    Double_t pPIDcut = track->P();
+    if(pPIDcut>fTPCflag) isTPC=1;
+    
     isParticle = isTPC&&isTOF;
   }
   
@@ -521,7 +545,7 @@ Int_t AliRDHFCutsDStartoKpipi::SelectPID(AliAODTrack *track, Int_t type)
     Double_t prob[5]={1.,1.,1.,1.,1.};
     
     //fPidHF->SetPriors(priors);
-    fPidHF->BayesianProbability(track,prob);
+    //    fPidHF->BayesianProbability(track,prob);
     
     Double_t max=0.;
     Int_t k=-1;
@@ -531,6 +555,7 @@ Int_t AliRDHFCutsDStartoKpipi::SelectPID(AliAODTrack *track, Int_t type)
     isParticle = Bool_t(k==type);
   }
   
+
   return isParticle;
   
 }