Flatten the event data model
Simplifies the event data model and modifies the using code accordingly:
- Replace the nested
DetectorData
container with a singleGeometryIdMultimap
indexed by the geometry id and stored internally in a flat container. This allows fast iteration over all/ selected elements without multiple nested loops and allows hits to be identified by their event-unique index within the flat container. That way we can add additional per-hit information as additional containers and refer to hits by index. - Add
IndexMultimap
for map e.g. hits to generating particles. - Remove unused templating on the particle type, e.g. for
SimHit
andSimVertex
. This was not used anywhere in the code. Instead,SimParticle
is now always used directly. - Remove duplicated data from
SimParticle
and compute it on-the-fly instead. - Add time variables and accessors.
- Bump to LCG95 in CI build to satisfy increased Boost requirements. Boost 1.68 is required to be able to use C++14 heterogeneous lookup in set-like containers.
Depends on !159 (merged).
Edited by Moritz Kiehn