]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisTaskME.cxx
Extra library EMCALUtils needed for particle correlations task.
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskME.cxx
index 5371f7482fb3524e97d016ba6a8b7c6d09567156..c922604e2af121de49be696b0b85f6249b7ab4ea 100644 (file)
@@ -25,8 +25,9 @@
 #include "AliAnalysisTaskME.h"
 #include "AliAnalysisManager.h"
 #include "AliAODEvent.h"
+#include "AliVEvent.h"
 #include "AliAODHandler.h"
-#include "AliMultiAODInputHandler.h"
+#include "AliMultiEventInputHandler.h"
 #include "AliLog.h"
 
 
@@ -99,10 +100,18 @@ void AliAnalysisTaskME::ConnectInputData(Option_t* /*option*/)
 //
 //  Multi AOD
 //
-    fInputHandler = dynamic_cast<AliMultiAODInputHandler*> 
+    fInputHandler = dynamic_cast<AliMultiEventInputHandler*> 
        ((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
-    if (fInputHandler == 0) 
-       AliFatal("Event Handler has to be MultiAODHandler !");
+    if (fInputHandler == 0) {
+       AliFatal("Event Handler has to be MultiEventInputHandler !");
+    } else {
+       // Check that we have an event pool
+       if (!fInputHandler->GetEventPool()) {
+           fInputHandler->SetEventPool(AliAnalysisManager::GetAnalysisManager()->GetEventPool());
+           if (!fInputHandler->GetEventPool()) 
+               AliFatal("MultiEventInputHandler has no EventPool connected !");
+       }
+    }
 }
 
 void AliAnalysisTaskME::CreateOutputObjects()
@@ -134,13 +143,18 @@ void AliAnalysisTaskME::Exec(Option_t* option)
        fEntry = fInputHandler->GetReadEntry();
     if ( !((Entry()-1)%100) && fDebug > 0) 
          AliInfo(Form("%s ----> Processing event # %lld", CurrentFileName(), Entry()));
-         
+
+    AliAODHandler* outputHandler = (AliAODHandler*) 
+       ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());         
 // Call the user analysis    
     if (fInputHandler->IsBufferReady()) {
        if ((fFreshBufferOnly && fInputHandler->IsFreshBuffer()) || !fFreshBufferOnly)
        {
+           if (outputHandler) outputHandler->SetFillAOD(kTRUE);
            UserExec(option);
            PostData(0, fTreeA);
+       } else {
+           if (outputHandler) outputHandler->SetFillAOD(kFALSE);
        }
     } else {
        AliInfo(Form("Waiting for buffer to be ready !\n"));
@@ -165,7 +179,7 @@ void AliAnalysisTaskME::AddAODBranch(const char* cname, void* addobj)
     }
 }
 
-AliAODEvent*  AliAnalysisTaskME::GetEvent(Int_t iev)
+AliVEvent*  AliAnalysisTaskME::GetEvent(Int_t iev)
 {
     // Get an event from the input handler
     return (fInputHandler->GetEvent(iev));