gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/CollHistory [ Modules ]

[ Top ] [ Modules ]

NAME

module CollHistory

PURPOSE

Here we can store for debugging purposes the full collision history of every (perturbative) particle from the particle vector

Every collision type is stored in a list of type tPreEvList (In fact 1-Body, 2-Body and 3-Body collisions are stored in three independent lists). We identify the collision type by its position in the list. Additionally we encode the "list" by modifying the iEntry value:

  • 1-Body: iEntry = iEntry (range: 1 ... 10000)
  • 2-Body: iEntry = -iEntry
  • 3-Body: iEntry = iEntry + 10000

Therefore for every collision type the (modified) iEntry represents an unique code number.

For each particle in the perturbative particle vector we store now in an additional array the code numbers of the corresponding collition types. This array has the same dimensions as the perturbative particle vector + one additional dimension -- the subsequent collision type codes.

In a collision we have therefore to delete the array entry of the incoming perturbative particle and to create for every final state particle an entry in the array which has one more entry in the third dimension than the array of the incoming particle. (We use the information from insertion/setIntoVector, where the particles were inserted.)

Doing a Garbage Collection on the perturbative particle vector also reshuffles the entries. This has to be respected.

On could think of enhancing the actual stored information by maybe also storing...:

  • the HiEnergy type of the collision (this would be an additional field in the PreEvListEntry)
  • the time of the collision (this would be an additional field in CollHistEntry)


CollHistory/CollHistEntry [ Types ]

[ Top ] [ CollHistory ] [ Types ]

SOURCE

  type CollHistEntry
     integer, allocatable :: Entries(:)
  end type CollHistEntry

PURPOSE

The type to store the collision history. The entries are the codes for the collsion types. The size of the array corresponds to the generation.


CollHistory/CollHistArray [ Global module-variables ]

[ Top ] [ CollHistory ] [ Global module-variables ]

SOURCE

  type(CollHistEntry), allocatable :: CollHistArray(:,:)

PURPOSE

The global array of the size of the perturbative particle vector, which holds all Collision History information


CollHistory/CollList [ Global module-variables ]

[ Top ] [ CollHistory ] [ Global module-variables ]

SOURCE

  type(tPreEvList), save :: CollList1, CollList2, CollList3

PURPOSE

The list to store the 1Body, 2Body and 3Body collision types.


CollHistory/DoCollHistory [ Global module-variables ]

[ Top ] [ CollHistory ] [ Global module-variables ]

SOURCE

  logical, save :: DoCollHistory = .false.

PURPOSE

Flag to switch on/off the whole Collision History machinery.

You may set this variable via your jobcard, namelist "collHistory"


CollHistory/collHistory [ Namelists ]

[ Top ] [ CollHistory ] [ Namelists ]

NAME

NAMELIST collHistory

PURPOSE

Includes the switches:


CollHistory/CollHist_GetDoCollHistory [ Functions ]

[ Top ] [ CollHistory ] [ Functions ]

NAME

logical function CollHist_GetDoCollHistory

PURPOSE

return value of DoCollHistory


CollHistory/DoInit [ Subroutines ]

[ Top ] [ CollHistory ] [ Subroutines ]

NAME

subroutine DoInit

PURPOSE

Do the init of this module.

INPUTS

OUTPUT

  • memory is allocated, no explicit output


CollHistory/CollHist_SetSize [ Subroutines ]

[ Top ] [ CollHistory ] [ Subroutines ]

NAME

subroutine CollHist_SetSize(sizes,localflag)

PURPOSE

Prepare the init of this module by storing the size of the perturbtive particle vector.

INPUTS

  • integer, dimension(2) :: sizes -- corresponds to ubound(PertParticles)

OUTPUT

  • (none)

NOTES

This routine has to been called before DoInit in order to set the size of the array.


CollHistory/CollHist_ClearArray [ Subroutines ]

[ Top ] [ CollHistory ] [ Subroutines ]

NAME

subroutine CollHist_ClearArray()

PURPOSE

Clears the used CollHistArray. Necessary after every run/in every Init call

INPUTS

  • (none)

OUTPUT

  • (none)

NOTES

The lists of collisions types are unchanged.


CollHistory/CollHist_UpdateHist [ Subroutines ]

[ Top ] [ CollHistory ] [ Subroutines ]

NAME

subroutine CollHist_UpdateHist(partIn, partOut, posIn, posOut, weight)

PURPOSE

This is the major routine doing all the work for keeping the history of all particles up to date:

  • store the collision type in the corresponding list (if necessary)
  • remove history for incoming particle
  • enhance history for all (stored) outgoing particles

INPUTS

  • type(particle), dimension(:) :: partIn -- incoming particles
  • type(particle), dimension(:) :: partOut-- outgoing particles
  • integer, dimension(2) :: posIn -- (iEns,iPart) of incoming particles
  • integer, dimension(:,:) :: posOut -- (iEns,iPart) of outgoing particles (the array has to be as (2,:))
  • real :: weight -- perweight of the incoming perturbative particle

OUTPUT

  • internal arrays and lists modified.


CollHistory/CollHist_DoGBC [ Subroutines ]

[ Top ] [ CollHistory ] [ Subroutines ]

NAME

subroutine CollHist_DoGBC(iEns,iPart1,iPart2)

PURPOSE

This routine replays modifications done by insertion/GarbageCollection: The information of (iEns,iPart2) has to be moved to (iEns,iPart1)

INPUTS

  • integer :: iEns,iPart1,iPart2 -- ensemble and particle position of enties to move

OUTPUT

  • internal arrays modified.


CollHistory/CollHist_WriteList [ Subroutines ]

[ Top ] [ CollHistory ] [ Subroutines ]

NAME

subroutine CollHist_WriteList(fak)

PURPOSE

Write all the collision type lists to files.

INPUTS

  • real :: fak -- faktor to multiply the weights with

OUTPUT

  • files written


CollHistory/CollHist_WriteHistParticle [ Subroutines ]

[ Top ] [ CollHistory ] [ Subroutines ]

NAME

subroutine CollHist_WriteHistParticle(iFile,iEns,iPart)

PURPOSE

Write the history of a specific particle to a file

INPUTS

  • integer :: ifile -- file to be used
  • integer :: iEns, iPart -- coordinates of the particle in the particle vector

OUTPUT

  • information written to file


CollHistory/CollHist_GetV [ Functions ]

[ Top ] [ CollHistory ] [ Functions ]

NAME

logical function CollHist_GetV(iEntry, V, nIn)

PURPOSE

with Entry code as input return the corresponding History entry

INPUTS

  • integer :: iEntry -- history code

OUTPUT

  • type(tPreEvListEntry) :: V -- The PreEvList
  • integer :: nIn -- number of incoming particles (1-Body,2-Body,3-Body)
  • function value: .true. on success


CollHistory/CollHist_ClassifyHist [ Functions ]

[ Top ] [ CollHistory ] [ Functions ]

NAME

integer function CollHist_ClassifyHist(iEns,iPart)

PURPOSE

...

INPUTS

OUTPUT

  • function value

NOTES

This is here a very special version for N+gamma -> pi+- + X