#include "AliVCuts.h"
#include "AliMCEvent.h"
#include "AliAODpidUtil.h"
+#include "AliAODMCHeader.h"
ClassImp(AliAODInputHandler)
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);
if (fEventCuts)
fIsSelectedResult = fEventCuts->GetSelectionMask(fEvent);
else
- fIsSelectedResult = fEvent->GetHeader()->GetOfflineTrigger();
+ fIsSelectedResult = static_cast<AliVAODHeader*>(fEvent->GetHeader())->GetOfflineTrigger();
if (fMixingHandler) fMixingHandler->BeginEvent(entry);