|
|
This is an as detailed as possible outline of the requirement list for physics processes and process-lists:
|
|
|
|
|
|
- The current (first) version of the physics process machinery is entirely designed on static C++ design patterns. However, we should aim for a parallel drop-in replacement that is entirely dynamic. Both can be very useful for different applications. And to develop a dynamic version of the static one might be interesting to some collaborators.
|
|
|
|
|
|
1. All modifications of particles on the stack should be done by "processes"
|
|
|
|
|
|
1. The collection of all processes defines the air shower physics
|
|
|
|
|
|
1. All processes can (or even must) be collected in one single C++ container, this we call ```ProcessList```
|
|
|
|
|
|
1. The ```ProcessList``` is one argument to the air shower machine of CORSIKA, i.e. ```ProcessList list=...; Cascade EAS(list,...);```
|
|
|
|
|
|
1. We want ```ProcessList```s to be mergeable, combineable to create more complicated sequences starting from simpler ones
|
|
|
|
|
|
1. Internally, we must distinguish different types of contained ```Processes``` which is driven by the fact that particle can be modified in very different ways:
|
|
|
|
|
|
1. continuous processes modify the properties of one particle
|
|
|
1. stochastic processes produce new particles, AND remove the current beam particle. This is typical for collisions, or decays.
|
|
|
1. (we also need continuous processes that can _also_ produce extra secondaries, e.g. Bremsstrahlung, maybe Cherenkov photons, etc. - but this is maybe beyond what we need to define here)
|
|
|
1. processes that act on new secondaries produced, typical applications are:
|
|
|
1. thinning, re-weighting
|
|
|
1. low-energy cuts etc.
|
|
|
|
|
|
|