gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/finalState_Full [ Modules ]

[ Top ] [ Modules ]

NAME

module finalState_Full

PURPOSE

This module contains the routines "massAss" and "assMass" which are used to choose the momentum and masses in a final state prescription. Read chapter 4.7 of Lehr's Dr. thesis to understand the principles of this decision.


finalState_Full/maxbwd_scalingFactor [ Global module-variables ]

[ Top ] [ finalState_Full ] [ Global module-variables ]

SOURCE

  real, save :: maxbwd_scalingFactor=1.

PURPOSE

  • Rescales maxBWD


finalState_Full/silentMode [ Global module-variables ]

[ Top ] [ finalState_Full ] [ Global module-variables ]

SOURCE

  logical, save :: silentMode=.true.

PURPOSE

  • Switches error messages off in massAss. Errors can still be seen looking at massAssStatus.dat


finalState_Full/NYK_isotropic [ Global module-variables ]

[ Top ] [ finalState_Full ] [ Global module-variables ]

SOURCE

  logical, save :: NYK_isotropic = .false.

PURPOSE

If .true., the angular distribution in Nucleon-Hyperon-Kaon production is assumed to be isotropic. If .false., a non-isotropic distribution is used, as described in Larionov/Mosel, Phys.Rev. C 72 (2005) 014901. See also momenta_in_3Body_BYK.


finalState_Full/readinput [ Subroutines ]

[ Top ] [ finalState_Full ] [ Subroutines ]

NAME

subroutine readinput

PURPOSE

This subroutine reads in the namelist "FinalState_Full". Only called once to initialize the module.


finalState_Full/FinalState_Full [ Namelists ]

[ Top ] [ finalState_Full ] [ Namelists ]

NAME

NAMELIST /FinalState_Full/

PURPOSE

This namelist includes the following switches:


finalState_Full/massAss_Full [ Subroutines ]

[ Top ] [ finalState_Full ] [ Subroutines ]

NAME

subroutine massAss_Full (srts, medium_AtCollision, pairIn, pairOut, betaToLRF, betaToCM, L, successFlag)

PURPOSE

This routine selects the masses of a 2 particle final state according to phase space x spectral functions, simultaneously the scattering angle is choosen (necessary if spectral functions are momentum dependent). See J. Lehr Dr. Thesis. We regard the process a+b->c+d.

INPUTS

  • real :: srts -- sqrt(s)
  • type(medium) :: medium_AtCollision -- medium information : density, temperature,...
  • type(particle), dimension(1:2) :: pairIn -- incoming particles a and b
  • type(particle), dimension(1:2) :: pairOut -- outgoing particles c and d (only id's, charges and antiflags are used at input)
  • real, dimension(1:3) :: betaToLRF -- beta for boost to LRF
  • real, dimension(1:3) :: betaToCM -- beta for boost to CM-Frame
  • integer :: L -- angular momentum in final state

OUTPUT

  • logical :: successFlag -- .true. if mass assignment was successful
  • type(particle), dimension(1:2) :: pairOut -- final state particles with full kinematics in the CM frame. ID, momentum(1:3),charge and mass are now defined.


massAss/writeInput [ Subroutines ]

[ Top ] [ massAss ] [ Subroutines ]

NAME

subroutine writeInput()

PURPOSE

This subroutine prints the input to screen for debugging!


massAss/getMaximum [ Subroutines ]

[ Top ] [ massAss ] [ Subroutines ]

NAME

subroutine getMaximum(maxBWD)

PURPOSE

This subroutine evaluates the maximal value of $\frac{p_{cd}}{p^vacuum_{cd}} \A_c \A_d \frac{d\mu_c}{dy_c} \frac{d\mu_d}{dy_d}$ in process a b -> c d. It's a purely empirical value.

RESULT

real :: maxBWD


massAss/checkMaximum [ Subroutines ]

[ Top ] [ massAss ] [ Subroutines ]

NAME

subroutine checkMaximum(value, maxValue)

PURPOSE

This subroutine checks wether the maximal value is really the maximal value. If not, then error messages are written to standard out and 'massAssError.dat'. After a critical number of errors the program is terminated!!


massAss/throwDice [ Subroutines ]

[ Top ] [ massAss ] [ Subroutines ]

NAME

subroutine throwDice (success, momentum, mass, massFailure_Nuc, treatNuc_onshell)

PURPOSE

We consider a + b -> c + d. The kinematics of c and d are determined. Here the masses and momenta of the particles are choosen by Monte-Carlo decision. Then p_cd/p_cd_vacuumMax*spectral(c)*spectral(d)/(intfac(c)*intfac(d)*maxValue) is evaluated which our probability to accept a choosen final state. We then decide to reject or accept the final state. If rejected new masses and momenta are choosen until we find a final state that is accepted. If it's not possible to find a final state, than successs=.false. is set and the routine is terminated.

INPUTS

  • real :: maxValue -- maximum of the function
  • logical :: treatNuc_onshell -- true: set nucleon masses to onshell value

OUTPUT

  • real, dimension(1:3,1:2) :: momentum -- of the final state (first index: momentum, second: particle)
  • real, dimension(1:2) :: mass -- of the final state
  • logical :: success -- .true. if mass and momentum could be set
  • logical :: massFailure_nuc -- .true. if process failed when setting the mass of a final state involving a nucleon


finalState_Full/assMass_Full [ Subroutines ]

[ Top ] [ finalState_Full ] [ Subroutines ]

NAME

subroutine assMass_Full (srts, medium_AtCollision, pairIn, tripleOut, spotOut, betaToLRF, betaToCM, flag)

PURPOSE

This routine selects the masses of a 3 particle final state according to phase space x spectral functions, simultaneously the scattering angle is choosen (necessary if spectral functions are momentum dependent). See J. Lehr Dr. Thesis. We regard the process a+b->c+d+e.

INPUTS

  • real :: srts ! sqrt(s)
  • type(medium) :: medium_AtCollision ! medium information : density, temperature,...
  • type(particle), dimension(1:2) :: pairIn ! incoming particles a and b
  • type(particle), dimension(1:3) :: tripleOut ! outgoing particles c,d and e
  • ! (only id's, charges and antiflags are used at input)
  • real, dimension(1:3) :: spotOut ! scalar potential of produced particles
  • real, dimension(1:3) :: betaToLRF ! beta for boost to LRF
  • real, dimension(1:3) :: betaToCM ! beta for boost to CM-Frame

RESULT

  • logical :: flag ! set to .true. is mass assignment was successful
  • type(particle), dimension (1:3) ,intent(out) :: tripleOut ! final state particles with almost full kinematics in CM frame. ID, momentum(1:3),charge and mass are defined.


assMass/getMaximum [ Subroutines ]

[ Top ] [ assMass ] [ Subroutines ]

NAME

subroutine getMaximum(maxBWD)

PURPOSE

This subroutine evaluates the maximal value for the phase space decision variable.

RESULT

real :: maxBWD


assMass/checkMaximum [ Subroutines ]

[ Top ] [ assMass ] [ Subroutines ]

NAME

subroutine checkMaximum(value, maxValue)

PURPOSE

This subroutine checks wether the maximal value is really the maximal value. If not, then error messages are written to standard out and 'massAssError.dat'. After a critical number of errors the program is terminated!!


assMass/throwDice [ Subroutines ]

[ Top ] [ assMass ] [ Subroutines ]

NAME

subroutine throwDice (maxValue, success, momentum, mass)

PURPOSE

We consider a + b -> c + d + e. The kinematics of c, d & e are determined. Here the masses and momenta of the particles are choosen by Monte-Carlo decision. pcmAbs(1)/ pcmAbs(3)/ecm(1)/eCM(3) *spectral(c)*spectral(d)*spectral(d)/ intfac(c) /intfac(d)/intfac(e) /maxValue is evaluated which is our probability to accept a chosen final state. We then decide to reject or accept the final state. If rejected new masses and momenta are choosen until we find a final state that is accepted. If it is not possible to find a final state, than successs=.false. is set and the routine is terminated.


finalState_Full/massass_nBody [ Subroutines ]

[ Top ] [ finalState_Full ] [ Subroutines ]

NAME

subroutine massass_nBody(srts,betaToLRF,betaToCM,mediumAtCollision,finalState,success)

PURPOSE

Determines the masses and momenta of outgoing particles in the c.m. frame of incoming particles.

INPUTS

  • real :: srts ! Invariant energy
  • real, dimension(1:3) :: betaToLRF ! Boost from computational frame to LRF
  • real, dimension(1:3) :: betaToCM ! Boost from computational frame to CM frame
  • type(medium) :: mediumAtCollision ! Medium info at collision point
  • type(particle), dimension(:) :: finalState ! Id's and charges of the outgoing particles

OUTPUT

  • logical :: success ! .true. if masses and momenta are set
  • type(particle), dimension(:) :: finalState ! Masses and four-momenta of the final state particles

NOTES

n=2,...,6 outgoing particles can be treated.

NOTES

This subroutine has a similar structure as subroutine massAss.