Skip to content

Commit

Permalink
Improve performance of data access via Input<T>
Browse files Browse the repository at this point in the history
  • Loading branch information
nathanwbrei committed Oct 17, 2024
1 parent a1cbefc commit ba2aa63
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions src/libraries/JANA/Components/JHasInputs.h
Original file line number Diff line number Diff line change
Expand Up @@ -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<T>(this->names[0], !this->is_optional);
event.Get<T>(m_data, this->names[0], !this->is_optional);
}
else {
if (this->is_optional && !event.HasParent(level)) return;
m_data = event.GetParent(level).template Get<T>(this->names[0], !this->is_optional);
event.GetParent(level).template Get<T>(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<T>(name, !this->is_optional);
event.GetFactory<T>(name, !this->is_optional)->Create(event.shared_from_this());
}
else {
if (this->is_optional && !event.HasParent(level)) return;
event.GetParent(level).template Get<T>(name, !this->is_optional);
event.GetParent(level).template GetFactory<T>(name, !this->is_optional)->Create(event.shared_from_this());
}
}
};
Expand Down

0 comments on commit ba2aa63

Please sign in to comment.