Connection to tree in Notify() seems to be safer.
[u/mrichter/AliRoot.git] / ANALYSIS / AliMultiEventInputHandler.cxx
index d36854d..7c6da29 100644 (file)
@@ -100,16 +100,22 @@ Bool_t AliMultiEventInputHandler::Init(TTree* tree, Option_t* /*opt*/)
 {
     // Initialisation necessary for each new tree
     fTree = tree;
-    fTree->GetEntry(0);
-    
     if (!fTree) return kFALSE;
-    // Get pointer to AOD event
-    fEventBuffer[0]->ReadFromTree(fTree, "");
+    for (Int_t i = 0; i < fBufferSize; i++) 
+       fEventBuffer[i]->Clear();
     fIndex     = 0;
     fNBuffered = 1;
     return kTRUE;
 }
 
+
+Bool_t AliMultiEventInputHandler::Notify(const char */*path*/)
+{
+    // Connect to new tree
+    fEventBuffer[0]->ReadFromTree(fTree, "");
+    return (kTRUE);
+}
+
 Bool_t AliMultiEventInputHandler::BeginEvent(Long64_t /*entry*/)
 {
     // Actions before analysis of each event 
@@ -130,7 +136,7 @@ Bool_t AliMultiEventInputHandler::FinishEvent()
     
     fIndex %= fBufferSize;
     AliInfo(Form("Connecting buffer entry %5d", fIndex));
-
+    fEventBuffer[fIndex]->Clear();
     fEventBuffer[fIndex]->ReadFromTree(fTree, "reconnect");
 
     fNBuffered++;
@@ -139,7 +145,6 @@ Bool_t AliMultiEventInputHandler::FinishEvent()
     return (kTRUE);
 }
 
-
 AliVEvent* AliMultiEventInputHandler::GetEvent(Int_t iev) const
 {
     // Get event number iev from buffer