]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
fix in processing MC AODs
authorjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 5 Mar 2012 16:40:14 +0000 (16:40 +0000)
committerjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 5 Mar 2012 16:40:14 +0000 (16:40 +0000)
PWGCF/Correlations/Base/AliAnalyseLeadingTrackUE.cxx
PWGCF/Correlations/DPhi/AliAnalysisTaskPhiCorrelations.cxx

index 243df9f43a155dd4995a93c1cf29d7bf769b3699..844d6aa6dfcb62ff8acf8fdd083bcaa0c5c59ff2 100644 (file)
@@ -49,6 +49,7 @@
 //#include "AliLog.h"
 #include "AliMCEvent.h"
 #include "AliVParticle.h"
+#include "AliAODMCHeader.h"
 
 #include "AliAnalysisManager.h"
 #include "AliMCEventHandler.h"
@@ -704,6 +705,15 @@ Bool_t  AliAnalyseLeadingTrackUE::VertexSelection(const TObject* obj, Int_t ntra
     }
   }
 
+  if (obj->InheritsFrom("AliAODMCHeader"))
+  { 
+    if (TMath::Abs(((AliAODMCHeader*) obj)->GetVtxZ()) > zed)
+    {
+      if (fDebug > 1) AliInfo(" Primary-vertex Selection: event (based on MC) REJECTED ...");
+      return kFALSE;
+    }
+  }
+
   // ESD case for DCA studies
   if (obj->InheritsFrom("AliESDEvent")){
        AliESDVertex* vertex = (AliESDVertex*)((AliESDEvent*)obj)->GetPrimaryVertex();
index 6483f243120159b153adbeb70cc707d6df68da90..9caefee6c8d0b4af59141b7b4566fba1018b8f67 100644 (file)
@@ -44,6 +44,7 @@
 #include "AliMultiplicity.h"
 #include "AliCentrality.h"
 #include "AliStack.h"
+#include "AliAODMCHeader.h"
 
 #include "AliEventPoolManager.h"
 
@@ -247,17 +248,6 @@ void  AliAnalysisTaskPhiCorrelations::CreateOutputObjects()
 //____________________________________________________________________
 void  AliAnalysisTaskPhiCorrelations::Exec(Option_t */*option*/)
 {
-  // array of MC particles
-  if (fMcHandler) {
-    if (fAOD)
-    {
-      fArrayMC = dynamic_cast<TClonesArray*>(fAOD->FindListObject(AliAODMCParticle::StdBranchName()));
-      if (!fArrayMC)
-       AliFatal("No array of MC particles found !!!");
-    }
-    fMcEvent = fMcHandler->MCEvent();
-  }
-
   // receive ESD pointer if we are not running AOD analysis
   if (!fAOD)
   {
@@ -266,8 +256,23 @@ void  AliAnalysisTaskPhiCorrelations::Exec(Option_t */*option*/)
       fESD = ((AliESDInputHandler*)handler)->GetEvent();
   }
 
-  // Analyse the event
-  if (fMode) AnalyseCorrectionMode();
+  if (fMode)
+  {
+    // correction mode
+    
+    if (fMcHandler)
+      fMcEvent = fMcHandler->MCEvent();
+
+    if (fAOD)
+    {
+      // array of MC particles
+      fArrayMC = dynamic_cast<TClonesArray*>(fAOD->FindListObject(AliAODMCParticle::StdBranchName()));
+      if (!fArrayMC)
+       AliFatal("No array of MC particles found !!!");
+    }
+    
+    AnalyseCorrectionMode();
+  }
   else AnalyseDataMode();
 }
 
@@ -338,10 +343,18 @@ void  AliAnalysisTaskPhiCorrelations::AnalyseCorrectionMode()
   fHistos->FillEvent(centrality, -1);
   
   // Only consider MC events within the vtx-z region used also as cut on the reconstructed vertex
-  if (!fAnalyseUE->VertexSelection(fMcEvent, 0, fZVertex)) 
+  TObject* vertexSupplier = fMcEvent;
+  if (fAOD) // AOD
+    vertexSupplier = fAOD->FindListObject(AliAODMCHeader::StdBranchName());
+    
+  if (!fAnalyseUE->VertexSelection(vertexSupplier, 0, fZVertex)) 
     return;
   
-  Float_t zVtx = fMcEvent->GetPrimaryVertex()->GetZ();
+  Float_t zVtx = 0;
+  if (fAOD)
+    zVtx = ((AliAODMCHeader*) vertexSupplier)->GetVtxZ();
+  else
+    zVtx = fMcEvent->GetPrimaryVertex()->GetZ();
   Float_t weight = 1;
   if (fFillpT)
     weight = -1;