TABLE OF CONTENTS
- 1. assMass/throwDice
- 2. assMass/checkMaximum
- 3. assMass/getMaximum
- 4. massAss/throwDice
- 5. massAss/checkMaximum
- 6. massAss/getMaximum
- 7. massAss/writeInput
- 8. /finalState_Full
/finalState_Full [ 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 = .true.
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, 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
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:2,1:3) :: momentum -- of the final state (first index : particle, second : momentum component)
- 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)
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 refjected 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.
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 and of the final state ! particles
NOTES
n=2,...,6 outgoing particles can be treated.
AUTHOR
Alexei Larionov, 06.2008
NOTES
This subroutine has a similar structure as subroutine massAss.