diff --git a/src/libraries/JANA/Components/JHasInputs.h b/src/libraries/JANA/Components/JHasInputs.h index 3fb5e5a4f..c6c644cfa 100644 --- a/src/libraries/JANA/Components/JHasInputs.h +++ b/src/libraries/JANA/Components/JHasInputs.h @@ -108,23 +108,24 @@ struct JHasInputs { void GetCollection(const JEvent& event) { auto& level = this->levels[0]; + m_data.clear(); if (level == event.GetLevel() || level == JEventLevel::None) { - m_data = event.Get(this->names[0], !this->is_optional); + event.Get(m_data, this->names[0], !this->is_optional); } else { if (this->is_optional && !event.HasParent(level)) return; - m_data = event.GetParent(level).template Get(this->names[0], !this->is_optional); + event.GetParent(level).template Get(m_data, this->names[0], !this->is_optional); } } void PrefetchCollection(const JEvent& event) { auto& level = this->levels[0]; auto& name = this->names[0]; if (level == event.GetLevel() || level == JEventLevel::None) { - event.Get(name, !this->is_optional); + event.GetFactory(name, !this->is_optional)->Create(event.shared_from_this()); } else { if (this->is_optional && !event.HasParent(level)) return; - event.GetParent(level).template Get(name, !this->is_optional); + event.GetParent(level).template GetFactory(name, !this->is_optional)->Create(event.shared_from_this()); } } };