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 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 to turn off one-body-induced processes.


collisionTerm/oneBodyAdditional [ Global module-variables ]

[ Top ] [ collisionTerm ] [ Global module-variables ]

SOURCE

  logical,save :: oneBodyAdditional=.true. 

PURPOSE

Switch to turn off additional Pythia one-body-induced processes.


collisionTerm/twoBodyProcesses [ Global module-variables ]

[ Top ] [ collisionTerm ] [ Global module-variables ]

SOURCE

  logical,save :: twoBodyProcesses=.true. 

PURPOSE

Switch to turn off two-body-induced processes.


collisionTerm/twoBodyProcessesRealReal [ Global module-variables ]

[ Top ] [ collisionTerm ] [ Global module-variables ]

SOURCE

  logical,save :: twoBodyProcessesRealReal=.true. 

PURPOSE

Switch to turn of 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 to turn 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 to turn off three-body-induced processes.


collisionTerm/twoPlusOneBodyProcesses [ Global module-variables ]

[ Top ] [ collisionTerm ] [ Global module-variables ]

SOURCE

  logical,save :: twoPlusOneBodyProcesses=.false. 

PURPOSE

Switch to turn off 2+1 body processes (two really colliding particles plus one nearby).


collisionTerm/maxOut [ Global module-variables ]

[ Top ] [ collisionTerm ] [ Global module-variables ]

SOURCE

  integer,save :: maxOut=100 

PURPOSE

Maximal number of produced particles in one process.


collisionTerm/printPositions [ Global module-variables ]

[ Top ] [ collisionTerm ] [ Global module-variables ]

SOURCE

  logical,save :: printPositions=.false. 

PURPOSE

Switch to turn of 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/debug [ Global module-variables ]

[ Top ] [ collisionTerm ] [ Global module-variables ]

SOURCE

  logical,save  :: 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 (teilchenPert, teilchenReal, 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(:,:) :: teilchenReal -- real particles
  • type(particle), dimension(:,:) :: teilchenPert -- perturbative particles
  • real :: time


collisionTerm/collideMain [ Subroutines ]

[ Top ] [ collisionTerm ] [ Subroutines ]

NAME

subroutine collideMain (teilchenPert, teilchenReal, 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(:,:) :: teilchenReal -- real particles
  • type(particle), dimension(:,:) :: teilchenPert -- perturbative particles
  • real :: time


collisionTerm/oneBody [ Subroutines ]

[ Top ] [ collisionTerm ] [ Subroutines ]

NAME

logical function oneBody (teilchenPert, teilchenReal, time, ForceFlag)

PURPOSE

Administrates the 1-body processes (i.e. decays).

INPUTS

  • type(particle),dimension(:,:) :: teilchenPert -- perturbative particles
  • type(particle),dimension(:,:) :: teilchenReal -- 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

  • teilchenPert and teilchenReal are changed.
  • The return value indicates whether any decays have occurred.


collisionTerm/twoBody [ Subroutines ]

[ Top ] [ collisionTerm ] [ Subroutines ]

NAME

subroutine twoBody (teilchenPert, teilchenReal, time)

PURPOSE

Administrates the 2-body processes. The collision criteria is based upon the Kodama criteria.

INPUTS

  • type(particle),dimension(:,:) :: teilchenPert -- perturbative particles
  • type(particle),dimension(:,:) :: teilchenReal -- real particles
  • real :: time -- actual time step

OUTPUT

  • teilchenPert and teilchenReal are changed


collisionTerm/twoBody_local [ Subroutines ]

[ Top ] [ collisionTerm ] [ Subroutines ]

NAME

subroutine twoBody_local (teilchenPert, teilchenReal, 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.

NOTES

For real-real collisions there is still the Kodama procedure implemented. This shall be changed in the future.

INPUTS

  • type(particle),intent(inOUT),target,dimension(:,:) :: teilchenReal -- real particles
  • type(particle),intent(inOUT),target,dimension(:,:) :: teilchenPert -- perturbative particles
  • real, intent(in) :: time

OUTPUT

  • teilchenPert and teilchenReal 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 (teilchenPert, teilchenReal, time)

PURPOSE

Administrates the 3-body processes.

INPUTS

  • type(particle),dimension(:,:) :: teilchenPert -- perturbative particles
  • type(particle),dimension(:,:) :: teilchenReal -- real particles
  • real :: time -- actual time step

OUTPUT

  • teilchenPert and teilchenReal are changed


collisionTerm/finalCheck [ Functions ]

[ Top ] [ collisionTerm ] [ Functions ]

NAME

function finalCheck (teilchenIn, teilchenOut, HiEnergyFlagge, woher) result(flag)

PURPOSE

Checks the final state of a collision for the conservation of all quantum numbers, also including momentum and energy conservation.

For HiEnergy events we do not check charge and momentum conservation, this MUST be done separately. The reason for this is, that some particles which are produced by Pythia/Fritiof can not be propagated by BUU and therefore do not show up in the final state vector "teilchenOut" ("unknown particles wont be propagated").

INPUTS

  • type(particle),dimension(:) :: teilchenIn -- Incoming particles
  • type(particle),dimension(:) :: teilchenOut -- Outgoing particles
  • logical, optional :: HiEnergyFlag -- .true. if it was a HiEnergy event. if .true. then energy conservation is not checked and code does not stop if charge conservation is violated
  • character(*), optional :: woher -- ...

OUTPUT

  • logical :: flag -- .true. if quantum numbers are conserved