]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/vertexingHF/AliRDHFCutsDplustoKpipi.cxx
trial to improve the calculation time
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliRDHFCutsDplustoKpipi.cxx
index 4bf0a5b7a72c2e1801a7cd175a81aef374512dcd..5a100da57093d1e1653b5eae07e577787b4b0928 100644 (file)
@@ -290,6 +290,11 @@ Bool_t AliRDHFCutsDplustoKpipi::IsInFiducialAcceptance(Double_t pt, Double_t y)
   // Checking if Dplus is in 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(2,Form("pt of D+ = %f (> 5), cutting at |y| < 0.8",pt)); 
@@ -410,7 +415,7 @@ Int_t AliRDHFCutsDplustoKpipi::IsSelected(TObject* obj,Int_t selectionLevel, Ali
     
     //recalculate vertex w/o daughters
     AliAODVertex *origownvtx=0x0;
-    if(fRemoveDaughtersFromPrimary) {
+    if(fRemoveDaughtersFromPrimary && !fUseMCVertex) {
       if(d->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*d->GetOwnPrimaryVtx());
       if(!RecalcOwnPrimaryVtx(d,aod)) {
        CleanOwnPrimaryVtx(d,aod,origownvtx);
@@ -418,6 +423,14 @@ Int_t AliRDHFCutsDplustoKpipi::IsSelected(TObject* obj,Int_t selectionLevel, Ali
       }
     }
 
+    if(fUseMCVertex) {
+      if(d->GetOwnPrimaryVtx()) origownvtx=new AliAODVertex(*d->GetOwnPrimaryVtx());
+      if(!SetMCPrimaryVtx(d,aod)) {
+       CleanOwnPrimaryVtx(d,aod,origownvtx);
+       return 0;
+      }
+    }
+
     Int_t ptbin=PtBin(pt);
     if (ptbin==-1) {
       CleanOwnPrimaryVtx(d,aod,origownvtx);
@@ -647,6 +660,9 @@ void AliRDHFCutsDplustoKpipi::SetStandardCutsPP2010() {
   delete [] anacutsval;
   anacutsval=NULL;
 
+  delete esdTrackCuts;
+  esdTrackCuts=NULL;
+
   return;
 }
 
@@ -785,6 +801,9 @@ void AliRDHFCutsDplustoKpipi::SetStandardCutsPbPb2010() {
   delete [] ptbins;
   ptbins=NULL;
 
+  delete esdTrackCuts;
+  esdTrackCuts=NULL;
+
   return;
 }