]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- V0base: Implemented different vertex cut: also accept SPD vertices in ESDs. For...
authorbhess <bhess@cern.ch>
Mon, 25 Aug 2014 09:21:09 +0000 (11:21 +0200)
committerbhess <bhess@cern.ch>
Mon, 25 Aug 2014 13:41:21 +0000 (15:41 +0200)
PWGJE/UserTasks/AliAnalysisTaskPID.cxx
PWGJE/UserTasks/AliAnalysisTaskPIDV0base.cxx

index 9a7941f7ce0b8bc55ffd3f19ae5c74d4297e77f9..96dcd5ae0c4528e56029c90cbf6be310b70ab5cd 100644 (file)
@@ -1026,14 +1026,6 @@ void AliAnalysisTaskPID::UserExec(Option_t *)
   if (!GetVertexIsOk(fEvent, kFALSE))
     return;
   
-  fESD = dynamic_cast<AliESDEvent*>(fEvent);
-  const AliVVertex* primaryVertex = fESD ? fESD->GetPrimaryVertexTracks() : fEvent->GetPrimaryVertex(); 
-  if (!primaryVertex)
-    return;
-  
-  if(primaryVertex->GetNContributors() <= 0) 
-    return;
-  
   IncrementEventCounter(centralityPercentile, kTriggerSelAndVtxCut);
   
   // Now check again, but also require z position to be in desired range
index 97d403c0e6ec74ccb97b1a4776a1d0994ccf764b..99be55f51eb6c3738076b92a3e0dc479785b161d 100644 (file)
@@ -294,11 +294,29 @@ Bool_t AliAnalysisTaskPIDV0base::GetVertexIsOk(AliVEvent* event, Bool_t doVtxZcu
     
   
   // pp and PbPb
-  const AliVVertex* primaryVertex = (aod ? dynamic_cast<const AliVVertex*>(aod->GetPrimaryVertex()) :
-                                           dynamic_cast<const AliVVertex*>(esd->GetPrimaryVertexTracks()));
+  const AliVVertex* primaryVertex = 0x0;
+  if (aod) {
+    primaryVertex = dynamic_cast<const AliVVertex*>(aod->GetPrimaryVertex());
+    if (!primaryVertex || primaryVertex->GetNContributors() <= 0) 
+      return kFALSE;
     
-  if (!primaryVertex || primaryVertex->GetNContributors() <= 0)
-    return kFALSE;
+    // Reject TPC vertices
+    TString primVtxTitle(primaryVertex->GetTitle());
+    if (primVtxTitle.Contains("TPCVertex",TString::kIgnoreCase))
+      return kFALSE;
+  }
+  else {
+    primaryVertex = dynamic_cast<const AliVVertex*>(esd->GetPrimaryVertexTracks());
+    if (!primaryVertex)
+      return kFALSE;
+    
+    if (primaryVertex->GetNContributors() <= 0) {
+      // Try SPD vertex
+      primaryVertex = dynamic_cast<const AliVVertex*>(esd->GetPrimaryVertexSPD());
+      if (!primaryVertex || primaryVertex->GetNContributors() <= 0) 
+        return kFALSE;
+    }
+  }
   
   if (doVtxZcut) {
     if (TMath::Abs(primaryVertex->GetZ()) > fZvtxCutEvent) //Default: 10 cm