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 safe the particle ID's of those particles which produced the particle. E.g. if a pion was produced in AB -> X pion, then we store the ID's 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.
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