We should handle "interactions" and "decay" separately. The former works in grammage, the latter in time. The ProcessList interface must be extended to reflect that difference, and in the Cascade::Step function both must be evaluated independently. Only the shorter step-length is selected -> min(interactions, decay, geometry). See Issue 53 and related.
The total inverse interaction length should be evaluated twice. Once at the beginning of Cascade::Step in order to get the step-length, and a second time after all Continuous processes are executed just before selecting the actual discrete process. For decay it is equivalent, but the "branching ratios" are used instead.
Tim mentioned it would be excellent if we can later still move to Trajectory<Helix> at least for cross-checks.
Felix agrees to merge sibyll branch into master. I will look into it today.
Also:
- rename MinStepLength function into MaxStepLength
- rename operator+ for ProcessList into something that makes more clear that ordering matter, i.e. operator<< . See Issue 91.
Tomorrow we should have a consistent AND improved version with all of that.
Next major topics: environment integration, tracking, and nuclei.