TABLE OF CONTENTS
- 1. /history
- 1.1. history/IncGeneration_Decay
- 1.2. history/IncGeneration_Elastic
- 1.3. history/setHistory
- 1.4. history/readInput
- 1.5. history/History
- 1.6. history/history_getParents
- 1.7. history/history_getGeneration
- 1.8. history/history_print
/history [ Modules ]
NAME
module history
PURPOSE
Here the %history field of type(particle) is dealt with. This field is used to store a history of the collisions of a particle.
In particular, we save the particle IDs of those particles which produced the particle ('parents'). E.g. if a pion was produced in AB -> X pion, then we store the IDs of the two incoming particles "A" and "B".
Furthermore, we define a so-called "generation". Initially all particles have generation=0. Particles which are created by particles of generation x and y get a value for the generation of generation=max( x, y )+1. Therefore this "generation" is a measure for the number of interactions which were necessary to produce a particle. For perturbative particles in ground state calculations,"generation" gives directly the number of interactions which were necessary to produce a particle.
history/IncGeneration_Decay [ Global module-variables ]
[ Top ] [ history ] [ Global module-variables ]
SOURCE
logical, save :: IncGeneration_Decay = .true.
PURPOSE
This flag determines whether we will increase the stored 'generation' of the daughter particles in a resonance decay.
history/IncGeneration_Elastic [ Global module-variables ]
[ Top ] [ history ] [ Global module-variables ]
SOURCE
logical, save :: IncGeneration_Elastic = .true.
PURPOSE
This flag determines whether we will increase the stored 'generation' of particles in an elastic collision. Setting it to .false. will also prevent elastic collisions from showing up as parents in the history.
history/setHistory [ Subroutines ]
[ Top ] [ history ] [ Subroutines ]
NAME
interface setHistory
PURPOSE
Evaluates the value of %history for a particle which was produced in a interaction, which was either a resonance decay, 2 body interaction or 3 body interaction.
NOTES
We use the following rule to determine the value of %history:
- For 1-Body processes : history=1.000.000*generation+id1
- For 2-Body processes : history=1.000.000*generation+1.000*id2+id1
- For 3-Body processes : history=-(1.000.000*generation+x) where x is defined by the identifiers given as parameters in the module header.
This scheme is employed to store this information in a compact way into one integer, and to save memory by doing this.
history/readInput [ Subroutines ]
[ Top ] [ history ] [ Subroutines ]
NAME
subroutine readInput
PURPOSE
Reads input in jobcard out of namelist "History".
history/History [ Namelists ]
[ Top ] [ history ] [ Namelists ]
NAME
Namelist /History/
PURPOSE
Namelist for history includes:
history/history_getParents [ Subroutines ]
[ Top ] [ history ] [ Subroutines ]
NAME
function history_getParents (history) result (parents)
PURPOSE
Analyzes a given value of %history of a particle and returns an array of integers which include the IDs of the particles which produced the latter particle.
INPUTS
OUTPUT
- integer, dimension(1:3) :: parents -- parents of the regarded particle
history/history_getGeneration [ Functions ]
[ Top ] [ history ] [ Functions ]
NAME
integer function history_getGeneration(history)
PURPOSE
Analyzes a given value of %history of a particle and returns the value of generation of the latter particle.
INPUTS
history/history_print [ Functions ]
[ Top ] [ history ] [ Functions ]
NAME
subroutine history_print(ensemble,p, iFile)
PURPOSE
Print the history of a given particle to channel "ifile"
INPUTS
- integer, intent(in) :: iFile, ensemble
- type(particle),intent(in) :: p