... | ... | @@ -14,11 +14,25 @@ This is an as detailed as possible outline of the requirement list for physics p |
|
|
|
|
|
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.
|
|
|
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 (SecondariesProcess), typical applications are:
|
|
|
|
|
|
1. thinning, re-weighting
|
|
|
1. low-energy cuts etc.
|
|
|
|
|
|
1. survey processes that act on all currently existing particles (from time-to-time) to determine combined statistical properties, etc. (energy conservation, run-time, ETA, sanity checks)
|
|
|
|
|
|
1. boundary crossing process: when a particle is moving from one volume into another there may be interface-physics there (refraction, absorption, reflection, etc.)
|
|
|
|
|
|
1. The detailed interface to all the above processes is slightly different and driven by the underlying physics.
|
|
|
|
|
|
1. In addition we need a machinery to switch between two "branches" in the sequence based on phase-space regions, the most simple use-case is switching fro hadrons between low- and high- energy interaction model. But this can include small process-sequences by itself (switching between (sub-) process lists)
|
|
|
|
|
|
1. processes lists are ordered. They are executed in the order of appearance in the code.
|
|
|
|
|
|
1. in particular thinking about point 6.4.1/2 we have to either further break down the interface, or we define a way to let "SecondariesProcesses" act only in specific cases. Consider a ```thinning``` SecondariesProcess, which should act on the output of ```collisons``` but *not* on the output of ```decays``` etc. Thus, logically we would like to distinguish ```interaction << decay << thinning``` from ```(interaction << thinning) << decay``` |