gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/collisionTerm [ Modules ]

[ Top ] [ 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:


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

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_pionPlus.dat' -- All saved positions of pi^+
  • file 'ProdPlaces_pionNull.dat' -- All saved positions of pi^0
  • file 'ProdPlaces_pionMinus.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