Skip to content

Draft: Allow to Selectively Store References

Simon Spannagel requested to merge multithreading-selective-store into multithreading

This MR introduces the possibility of only creating TRef references for selected member types. The reason is that otherwise we e.g. call PixelCharge.petrifyHistory() which runs for_each(PropagatedCharge) (several hundred potentially) and creates TRefs only to discard them in the very next step because we're not storing PropagatedCharge objects.

There are still a few caveats:

  • It's not really beautiful how the selection works now. Essentially petrifyHistory takes a std::type_index to select what to store. Optionally, a typeid(nullptr) can be used to call if for all. DO we have a better idea?
  • Currently, the type of objects to be written is built during run() but this should really happen directly when we know include or exclude, but I was not able to chew allpix::OBJECTS to check strings against possible types. Help needed.

Opinions, @kwolters ?

Edited by Simon Spannagel

Merge request reports