]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AOD/AliAODInputHandler.cxx
Non-implemented method are commented out or moved to the private part of the class
[u/mrichter/AliRoot.git] / STEER / AOD / AliAODInputHandler.cxx
index 915b36e7fbf9c206c53faee021020444e40bbf8c..7f52973a8d066d5318541a067ffdc3fc4b04cf55 100644 (file)
@@ -32,6 +32,7 @@
 #include "AliVCuts.h"
 #include "AliMCEvent.h"
 #include "AliAODpidUtil.h"
+#include "AliAODMCHeader.h"
 
 ClassImp(AliAODInputHandler)
 
@@ -131,11 +132,16 @@ Bool_t AliAODInputHandler::BeginEvent(Long64_t entry)
       fEvent->InitMagneticField();
       prevRunNumber = fEvent->GetRunNumber();
     } 
-    TClonesArray* mcParticles = (TClonesArray*) (fEvent->FindListObject("mcparticles"));
-    if (mcParticles) {
-       if (!fMCEvent) fMCEvent = new AliMCEvent();
-       fMCEvent->SetParticleArray(mcParticles);
+
+    AliAODMCHeader* mcHeader  = (AliAODMCHeader*) fEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
+    TClonesArray* mcParticles = (TClonesArray*)   (fEvent->FindListObject("mcparticles"));
+    
+    if (mcParticles && mcHeader) {
+      if (!fMCEvent) fMCEvent = new AliMCEvent();
+      fMCEvent->SetExternalHeader(mcHeader);
+      fMCEvent->SetParticleArray(mcParticles);
     }
+
     // When merging, get current event number from GetReadEntry(), 
     // entry gives the events in the current file
     if (fTreeToMerge) fTreeToMerge->GetEntry(GetReadEntry() + fMergeOffset);
@@ -143,7 +149,7 @@ Bool_t AliAODInputHandler::BeginEvent(Long64_t entry)
     if (fEventCuts)
       fIsSelectedResult = fEventCuts->GetSelectionMask(fEvent);
     else
-      fIsSelectedResult = fEvent->GetHeader()->GetOfflineTrigger();
+      fIsSelectedResult = static_cast<AliVAODHeader*>(fEvent->GetHeader())->GetOfflineTrigger();
 
     if (fMixingHandler) fMixingHandler->BeginEvent(entry);