History of messages
messages should keep track of their ancestry by keeping shared pointers to previous message. This allows to fetch the MC truth at the end of the event processing e.g. for storage
- provide simple functions to fetch things from history to prevent things like
charges->propagated->deposited->mcparticle
- make sure to throw proper exceptions in case there is no ancestry available for the current message