TABLE OF CONTENTS
- 1. /collisionTerm
- 1.1. collisionTerm/useStatistics
- 1.2. collisionTerm/noNucNuc
- 1.3. collisionTerm/energyCheck
- 1.4. collisionTerm/oneBodyProcesses
- 1.5. collisionTerm/oneBodyAdditional
- 1.6. collisionTerm/twoBodyProcesses
- 1.7. collisionTerm/twoBodyProcessesRealReal
- 1.8. collisionTerm/twoBodyProcessesRealPert
- 1.9. collisionTerm/threeBodyProcesses
- 1.10. collisionTerm/threeMesonProcesses
- 1.11. collisionTerm/threeBarMesProcesses
- 1.12. collisionTerm/twoPlusOneBodyProcesses
- 1.13. collisionTerm/doForceDecay
- 1.14. collisionTerm/maxOut
- 1.15. collisionTerm/printPositions
- 1.16. collisionTerm/storeRho0Info
- 1.17. collisionTerm/storeRho0InfoOnlyDifr
- 1.18. collisionTerm/DoJustAbsorptive
- 1.19. collisionTerm/annihilate
- 1.20. collisionTerm/annihilationTime
- 1.21. collisionTerm/justDeleteDelta
- 1.22. collisionTerm/collisionProtocol
- 1.23. collisionTerm/noRecollisions
- 1.24. collisionTerm/debug
- 1.25. collisionTerm/readInput
- 1.26. collisionTerm/collisionterm
- 1.27. collisionTerm/ForceDecays
- 1.28. collisionTerm/collideMain
- 1.29. collisionTerm/oneBody
- 1.30. collisionTerm/twoBody
- 1.31. collisionTerm/twoBody_local
- 1.32. collisionTerm/positionPrinter
- 1.33. collisionTerm/threeBody
/collisionTerm [ Modules ]
NAME
module collisionTerm
PURPOSE
Includes the collision term.
collisionTerm/useStatistics [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, save :: useStatistics=.false.
PURPOSE
Generate statistical information using the module statistics.
collisionTerm/noNucNuc [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, save :: noNucNuc=.false.
PURPOSE
Switch on/off perturbative NN reactions.
collisionTerm/energyCheck [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
real, save :: energyCheck=0.01
PURPOSE
Precision of energy check for each collision in GeV.
collisionTerm/oneBodyProcesses [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: oneBodyProcesses=.true.
PURPOSE
Switch on/off one-body-induced processes.
collisionTerm/oneBodyAdditional [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: oneBodyAdditional=.true.
PURPOSE
Switch on/off additional Pythia one-body-induced processes.
collisionTerm/twoBodyProcesses [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: twoBodyProcesses=.true.
PURPOSE
Switch on/off two-body-induced processes.
collisionTerm/twoBodyProcessesRealReal [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: twoBodyProcessesRealReal=.true.
PURPOSE
Switch on/off two-body-induced processes between two real particles.
collisionTerm/twoBodyProcessesRealPert [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: twoBodyProcessesRealPert=.true.
PURPOSE
Switch on/off two-body-induced processes between a real and a perturbative particle.
collisionTerm/threeBodyProcesses [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: threeBodyProcesses=.true.
PURPOSE
Switch on/off three-body-induced processes.
collisionTerm/threeMesonProcesses [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: threeMesonProcesses=.false.
PURPOSE
Switch on/off three-meson-induced processes. These are the backreactions for e.g. omega -> pi pi pi etc.
collisionTerm/threeBarMesProcesses [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: threeBarMesProcesses=.false.
PURPOSE
Switch on/off baryon-meson-meson induced processes. These are the backreactions for e.g. N pi -> N pi pi etc.
collisionTerm/twoPlusOneBodyProcesses [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: twoPlusOneBodyProcesses=.false.
PURPOSE
Switch on/off 2+1 body processes (two really colliding particles plus one nearby).
collisionTerm/doForceDecay [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: doForceDecay = .true.
PURPOSE
switch on/off the forced decays at the end of the simulation
NOTES
- Do not touch, unless you know what you are doing!
- You may set this to .false., if you are e.g. running box calculations with excited states. Decaying all these particles would need a much larger particle vector...
collisionTerm/maxOut [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
integer,save :: maxOut=100
PURPOSE
Maximal number of produced particles in one process. Must not be smaller than 4.
NOTES
- When using annihilation, must not be smaller than 6
- If using FRITIOF or PYTHIA, should probably larger than 6
- Code stops with an error message, if value chosen too small
collisionTerm/printPositions [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical,save :: printPositions=.false.
PURPOSE
Switch on/off output of positions in real-pert collisions. Produces statistical output.
collisionTerm/storeRho0Info [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, save :: storeRho0Info = .false.
PURPOSE
Flag whether in a rho0 decay the particle numbers of the resulting charged pions are stored or not.
collisionTerm/storeRho0InfoOnlyDifr [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, save :: storeRho0InfoOnlyDifr = .false.
PURPOSE
Flag, whether the flag storeRho0Info is valid for all decays or only for rho0, which are marked to be diffractive.
collisionTerm/DoJustAbsorptive [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, save :: DoJustAbsorptive = .false.
PURPOSE
If this flag is true, then: for perturbative simulations all final state particles in a collision are set to zero; for real simulations %event index of incoming hadron is changed in the case of collision, but actual collision is not simulated. This is a way to mimick Glauber like calculations.
NOTES
The "absorption" is done with sigmaTot, not just by sigmaInEl.
collisionTerm/annihilate [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, save :: annihilate = .false.
PURPOSE
If this flag is true, then an annihilation of the antibaryons with the closest baryons will be simulated (by hand) starting from annihilationTime.
collisionTerm/annihilationTime [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
real, save :: annihilationTime = 1000.
PURPOSE
Time moment (in fm/c) when the annihilation will be started.
NOTES
This flag has an influence only when annihilate = .true. Before annihilationTime all the collision processes are not activated. They start to act (if the corresponding switches oneBodyProcesses,twoBodyProcesses etc. are .true.) only after annihilationTime.
collisionTerm/justDeleteDelta [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, save :: justDeleteDelta = .false.
PURPOSE
Deletes final-state products in Delta N N -> NNN and Delta N -> N N. NOTE: Only for testing and comparing with the old Effenberger code! DO NOT USE OTHERWISE: Violates energy conservation! This switch is meant to simulate the treatment of the Delta in the old code. Only implemented for perturbative runs.
collisionTerm/collisionProtocol [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, save :: collisionProtocol = .false.
PURPOSE
Write a protocol of all real-real collisions to the file 'fort.990'. Includes the time, IDs, charges, invariant masses and 3-momenta of both collision partners and an indicator for Pauli blocking.
collisionTerm/noRecollisions [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, save :: noRecollisions = .false.
PURPOSE
Outgoing particles of collisions are inserted somewhere in the particle vector. Due to implementation issues, these outgoing particles may interact during the same timestep.
Setting this flag to true, the parameter '%lastCollTime' is checked against the actual time variable and collisions of these particles are excluded.
collisionTerm/debug [ Global module-variables ]
[ Top ] [ collisionTerm ] [ Global module-variables ]
SOURCE
logical, parameter :: debug=.false.
PURPOSE
Switch for debug information.
collisionTerm/readInput [ Subroutines ]
[ Top ] [ collisionTerm ] [ Subroutines ]
NAME
subroutine readInput
PURPOSE
Reads input in jobcard out of namelist "collisionTerm".
collisionTerm/collisionterm [ Namelists ]
[ Top ] [ collisionTerm ] [ Namelists ]
PURPOSE
Namelist for collisionTerm includes:
- oneBodyProcesses
- twoBodyProcesses
- threeBodyProcesses
- threeMesonProcesses
- threeBarMesProcesses
- twoPlusOneBodyProcesses
- twoBodyProcessesRealReal
- twoBodyProcessesRealPert
- oneBodyAdditional
- doForceDecay
- energyCheck
- maxOut
- collisionProtocol
- printPositions
- useStatistics
- noNucNuc
- storeRho0Info
- storeRho0InfoOnlyDifr
- DoJustAbsorptive
- annihilate
- annihilationTime
- justDeleteDelta
- noRecollisions
collisionTerm/ForceDecays [ Subroutines ]
[ Top ] [ collisionTerm ] [ Subroutines ]
NAME
subroutine ForceDecays(partPert, partReal, time)
PURPOSE
This routine forces all instable particles to decay in the last timestep. We loop over the particle vectors several times in order to allow for multi-step decay chains and to make sure that everything has decayed.
INPUTS
- type(particle), dimension(:,:) :: partReal -- real particles
- type(particle), dimension(:,:) :: partPert -- perturbative particles
- real :: time
collisionTerm/collideMain [ Subroutines ]
[ Top ] [ collisionTerm ] [ Subroutines ]
NAME
subroutine collideMain(partPert, partReal, time)
PURPOSE
Evaluates the collision term for a given real and perturbative particle vector. There are reactions induced by a single particle (decays), two particles and even three particles.
INPUTS
- type(particle), dimension(:,:) :: partReal -- real particles
- type(particle), dimension(:,:) :: partPert -- perturbative particles
- real :: time
collisionTerm/oneBody [ Subroutines ]
[ Top ] [ collisionTerm ] [ Subroutines ]
NAME
logical function oneBody(partPert, partReal, time, ForceFlag)
PURPOSE
Administrates the 1-body processes (i.e. decays).
INPUTS
- type(particle),dimension(:,:) :: partPert -- perturbative particles
- type(particle),dimension(:,:) :: partReal -- real particles
- real :: time -- actual time step
- logical :: ForceFlag -- .true. = let particles decay (decay probability=1), do not consider the width anymore for the decay probability. This is useful at the end of a run.
OUTPUT
- partPert and partReal are changed.
- The return value indicates whether any decays have occurred.
collisionTerm/twoBody [ Subroutines ]
[ Top ] [ collisionTerm ] [ Subroutines ]
NAME
subroutine twoBody(partPert, partReal, time)
PURPOSE
Administrates the 2-body processes. The collision criteria is based upon the Kodama criteria.
INPUTS
- type(particle),dimension(:,:) :: partPert -- perturbative particles
- type(particle),dimension(:,:) :: partReal -- real particles
- real :: time -- actual time step
OUTPUT
- partPert and partReal are changed
collisionTerm/twoBody_local [ Subroutines ]
[ Top ] [ collisionTerm ] [ Subroutines ]
NAME
subroutine twoBody_local(partPert, partReal, time)
PURPOSE
- Administrates the 2-body processes.
- The collision criteria is based upon the local collision criteria. Therefore the volume elements (module VolumeElements) must be initialized. Only scatterings within one volume element are allowed.
INPUTS
- type(particle),intent(inOUT),target,dimension(:,:) :: partReal -- real particles
- type(particle),intent(inOUT),target,dimension(:,:) :: partPert -- perturbative particles
- real, intent(in) :: time
OUTPUT
- partPert and partReal are changed
collisionTerm/positionPrinter [ Subroutines ]
[ Top ] [ collisionTerm ] [ Subroutines ]
NAME
subroutine positionPrinter(p)
PURPOSE
This routine saves the position of a given particle into a 2D Histogram as a function of cylinder coordinates z and rho. Each new entry is added to the previous ones. The histograms are meant to be used as tables of all production points.
If no input is given, the histogrames are printed to file.
INPUTS
- type(particle), intent(in), optional :: p
OUTPUT
- file 'ProdPlaces_piPlus.dat' -- All saved positions of pi^+
- file 'ProdPlaces_piNull.dat' -- All saved positions of pi^0
- file 'ProdPlaces_piMinus.dat' -- All saved positions of pi^-
- file 'ProdPlaces_nucleon.dat' -- All saved positions of nucleons
collisionTerm/threeBody [ Subroutines ]
[ Top ] [ collisionTerm ] [ Subroutines ]
NAME
subroutine threeBody(partPert, partReal, time)
PURPOSE
Administrates the 3-body processes.
INPUTS
- type(particle),dimension(:,:) :: partPert -- perturbative particles
- type(particle),dimension(:,:) :: partReal -- real particles
- real :: time -- actual time step
OUTPUT
- partPert and partReal are changed