]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/vertexingHF/AliAnalysisTaskSESelectHF.cxx
Added check of daughters clustermap in ITS
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSESelectHF.cxx
index adbe1aa22e0fa9b2b35ef8c867eea48f68abd33b..053f9680b6c00793aaa6ea151e4013dcbc027929 100644 (file)
@@ -23,6 +23,8 @@
 
 #include <TClonesArray.h>
 
+#include "AliAnalysisManager.h"
+#include "AliAODHandler.h"
 #include "AliAODEvent.h"
 #include "AliAODVertex.h"
 #include "AliAODTrack.h"
@@ -107,9 +109,27 @@ void AliAnalysisTaskSESelectHF::UserExec(Option_t */*option*/)
   
   AliAODEvent *aodIn = dynamic_cast<AliAODEvent*> (InputEvent());
 
-  // load D0->Kpi candidates                                                   
-  TClonesArray *inputArrayD0toKpi =
-    (TClonesArray*)aodIn->GetList()->FindObject("D0toKpi");
+  TClonesArray *inputArrayD0toKpi = 0;
+
+  if(!aodIn && AODEvent() && IsStandardAOD()) {
+    // In case there is an AOD handler writing a standard AOD, use the AOD 
+    // event in memory rather than the input (ESD) event.    
+    aodIn = dynamic_cast<AliAODEvent*> (AODEvent());
+    // in this case the braches in the deltaAOD (AliAOD.VertexingHF.root)
+    // have to taken from the AOD event hold by the AliAODExtension
+    AliAODHandler* aodHandler = (AliAODHandler*) 
+      ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
+    if(aodHandler->GetExtensions()) {
+      AliAODExtension *ext = (AliAODExtension*)aodHandler->GetExtensions()->FindObject("AliAOD.VertexingHF.root");
+      AliAODEvent *aodFromExt = ext->GetAOD();
+      // load D0 candidates                                                   
+      inputArrayD0toKpi=(TClonesArray*)aodFromExt->GetList()->FindObject("D0toKpi");
+    }
+  } else {
+    // load D0 candidates                                                   
+    inputArrayD0toKpi=(TClonesArray*)aodIn->GetList()->FindObject("D0toKpi");
+  }
+
   if(!inputArrayD0toKpi) {
     printf("AliAnalysisTaskSESelectHF::UserExec: D0toKpi branch not found!\n");
     return;