TABLE OF CONTENTS
- 1. /master_2Body
- 1.1. master_2Body/debug
- 1.2. master_2Body/useHiEnergy
- 1.3. master_2Body/HiEnergyThresholdBarMes
- 1.4. master_2Body/HiEnergyThresholdBarMesDelta
- 1.5. master_2Body/HiEnergyThresholdBarBar
- 1.6. master_2Body/HiEnergyThresholdBarBarDelta
- 1.7. master_2Body/HiEnergyThresholdBarAntibar
- 1.8. master_2Body/HiEnergyThresholdBarAntibarDelta
- 1.9. master_2Body/smoothHiEnergy
- 1.10. master_2Body/xSectionCutOff
- 1.11. master_2Body/correctEnergy
- 1.12. master_2Body/correctEnergy_message
- 1.13. master_2Body/coulombCorrect
- 1.14. master_2Body/usePythia
- 1.15. master_2Body/usePythiaCut
- 1.16. master_2Body/usePythia_BaB
- 1.17. master_2Body/usePythiaCut_BaB
- 1.18. master_2Body/doPythiaReweight
- 1.19. master_2Body/PythiaWeight
- 1.20. master_2Body/useManni
- 1.21. master_2Body/ElastAngDist
- 1.22. master_2Body/baryonBaryonScattering
- 1.23. master_2Body/baryonMesonScattering
- 1.24. master_2Body/mesonMesonScattering
- 1.25. master_2Body/coarse
- 1.26. master_2Body/bmax_nucleonNucleon
- 1.27. master_2Body/bmax_nucleonResonance
- 1.28. master_2Body/bmax_hyperonNucleon
- 1.29. master_2Body/bmax_baryonPion
- 1.30. master_2Body/bmax_baryonMeson
- 1.31. master_2Body/bmax_mesonMeson
- 1.32. master_2Body/flagElastBB
- 1.33. master_2Body/OverideSigma_PiN
- 1.34. master_2Body/OverideSigma_RhoN
- 1.35. master_2Body/OverideSigma_PiPi
- 1.36. master_2Body/omega_K_factor
- 1.37. master_2Body/readInput
- 1.38. master_2Body/master_2body
- 1.39. master_2Body/collide_2body
- 1.40. master_2Body/check_veryRough
- 1.41. master_2Body/checkKodama_Rough
- 1.42. master_2Body/generateFinalState
- 1.42.1. generateFinalState/ResetPosition
- 1.43. master_2Body/coulombDifference
- 1.44. master_2Body/setKinematics
- 1.45. master_2Body/setKinematicsHiEnergy
- 1.46. master_2Body/LogicMatrix
- 1.47. master_2Body/XsectionMaster
- 1.47.1. XsectionMaster/DecideHiEnergy
- 1.47.2. XsectionMaster/mesMes
- 1.47.3. XsectionMaster/barMes
- 1.47.4. XsectionMaster/barBar
- 1.48. master_2Body/sigtot_NN
- 1.49. master_2Body/HiEnergyContrib
/master_2Body [ Modules ]
NAME
module master_2Body
PURPOSE
Implements all 2-body processes (a b -> X).
master_2Body/debug [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical,save :: debug=.false.
PURPOSE
Switch for debug information
master_2Body/useHiEnergy [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical, save :: useHiEnergy = .true.
PURPOSE
Switch to turn HiEnergy on/off. Formerly known as "useFritiof".
NOTES
Please be very sure what you are doing when setting this parameter to .false.!
master_2Body/HiEnergyThresholdBarMes [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: HiEnergyThresholdBarMes = 2.2
PURPOSE
Sqrt(s) threshold for HiEnergy in Baryon-Meson Reactions
master_2Body/HiEnergyThresholdBarMesDelta [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: HiEnergyThresholdBarMesDelta = 0.2
PURPOSE
width for the Sqrt(s) threshold for HiEnergy in Baryon-Meson Reactions
master_2Body/HiEnergyThresholdBarBar [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: HiEnergyThresholdBarBar = 3.4
PURPOSE
Sqrt(s) threshold for HiEnergy in Baryon-Baryon Reactions
master_2Body/HiEnergyThresholdBarBarDelta [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: HiEnergyThresholdBarBarDelta = 0.1
PURPOSE
width for the Sqrt(s) threshold for HiEnergy in Baryon-Baryon Reactions
master_2Body/HiEnergyThresholdBarAntibar [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: HiEnergyThresholdBarAntibar = 2.38
PURPOSE
Sqrt(s) threshold for HiEnergy in Baryon-Antibaryon Reactions
master_2Body/HiEnergyThresholdBarAntibarDelta [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: HiEnergyThresholdBarAntibarDelta = 0.0
PURPOSE
width for the Sqrt(s) threshold for HiEnergy in Baryon-Antibaryon Reactions
master_2Body/smoothHiEnergy [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical, save :: smoothHiEnergy = .true.
PURPOSE
Flag to indicate, whether a smooth transition from the resonance prescription to the HiEnergy routines should be performed or not.
master_2Body/xSectionCutOff [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, parameter, public :: xSectionCutOff=1.E-10
PURPOSE
No reaction takes place if Xsection is below this value! Units: mB.
master_2Body/correctEnergy [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical,save :: correctEnergy=.true.
PURPOSE
Scale final state momenta to fulfill energy and momentum conservation. If .false. energy conservation is violated
master_2Body/correctEnergy_message [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical,save :: correctEnergy_message=.true.
PURPOSE
Switch off error message for energy correction failures.
master_2Body/coulombCorrect [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical,save :: coulombCorrect=.false.
PURPOSE
Since the new particles are initialized at new positions, also the total coulomb energy might change. If .true. than this is taken into account and some correction to sqrt(s) is done.
NOTES
Should only be used if the new finalstate particles are initialized in the middle of the two initial state particles!
According to OB, this parameter, which switches on/off the usage of the routine "CoulombDifference", has more or less some nostalgical reasons. Better not to use it nowadays anymore!
master_2Body/usePythia [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
integer,save :: usePythia = 1
PURPOSE
Flag, whether to use Fritiof or Pythia for high energetic collisions (except for baryon-antibaryon channel, where separate switch is used now):
- 0: Use Fritiof
- 1: Use Pythia for all collisons above UsePythiaCut,
- 2: as 1, but only for primary collisions
master_2Body/usePythiaCut [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real,save :: usePythiaCut = 2.
PURPOSE
cut-off sqrt(s): above this value PYTHIA is usable directly (for all channels except for baryon-antibaryon, where separate cut-off is used now)
master_2Body/usePythia_BaB [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
integer,save :: usePythia_BaB = 0
PURPOSE
Flag, whether to use Fritiof or Pythia for high energetic baryon-antibaryon collisions:
- 0: Use Fritiof
- 1: Use Pythia for all collisons above UsePythiaCut_BaB,
- 2: as 1, but only for primary collisions
master_2Body/usePythiaCut_BaB [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real,save :: usePythiaCut_BaB = 2.
PURPOSE
cut-off sqrt(s): above this value PYTHIA is usable directly for the baryon-antibaryon collisions
master_2Body/doPythiaReweight [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical,save :: doPythiaReweight = .FALSE.
PURPOSE
switch whether PYTHIA is run in reweighting mode or not
master_2Body/PythiaWeight [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real,save :: PythiaWeight = 1.0
PURPOSE
Weigth of actual Event (cf. PYTHIA-reweighting)
master_2Body/useManni [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical,save :: useManni = .true.
PURPOSE
Flag, whether to use meson-baryon annhilation as by the recipie of Markus Wagner (Diploma, Giessen 2004)
master_2Body/ElastAngDist [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
integer,save :: ElastAngDist = 3
PURPOSE
Choice of angular distribution in elastic collisions (cf. DoColl_Elast):
- 1 = isotropic
- 2 = J. Cugnon et al., NPA 352, 505 (1981)
- 3 = Pythia (default)
master_2Body/baryonBaryonScattering [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical, save :: baryonBaryonScattering=.true.
PURPOSE
Switch to turn off baryon-baryon-Scattering
master_2Body/baryonMesonScattering [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical, save :: baryonMesonScattering=.true.
PURPOSE
Switch to turn off baryon-Meson-Scattering
master_2Body/mesonMesonScattering [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical, save :: mesonMesonScattering=.true.
PURPOSE
Switch to turn off meson-Meson-Scattering
master_2Body/coarse [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, dimension(1:3), save :: coarse=(/3.,4.,4./) !baryonBaryon, baryonMeson, mesonMeson
PURPOSE
coarse maximal impact parameter
master_2Body/bmax_nucleonNucleon [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: bmax_nucleonNucleon=2.52
PURPOSE
Real maximal impact parameter for nucleon-nucleon-scattering. Maximal crossection is
bMax**2 * pi * 10 mb/fm**2 = (2.52**2*pi*10) mb = 199.5 mb
master_2Body/bmax_nucleonResonance [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: bmax_nucleonResonance=1.60
PURPOSE
Real maximal impact parameter for nucleon-resonance scattering. Maximal crossection is
bMax**2 * pi * 10 mb/fm**2 = (1.60**2*pi*10) mb = 80.4 mb
master_2Body/bmax_hyperonNucleon [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: bmax_hyperonNucleon=2.52
PURPOSE
Real maximal impact parameter for hyperon-nucleon-scattering. Maximal crossection is
bMax**2 * pi * 10 mb/fm**2 = (2.52**2*pi*10) mb = 199.5 mb
master_2Body/bmax_baryonPion [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: bmax_baryonPion=2.52
PURPOSE
real maximal impact parameter for baryon pion scattering
master_2Body/bmax_baryonMeson [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: bmax_baryonMeson=2.52
PURPOSE
real maximal impact parameter for baryon-Meson-scattering
master_2Body/bmax_mesonMeson [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: bmax_mesonMeson=2.
PURPOSE
real maximal impact parameter for meson-meson-scattering
master_2Body/flagElastBB [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
logical, save :: flagElastBB=.false.
PURPOSE
if .true. --- set constant energy independent elastic baryon-baryon scattering cross section
master_2Body/OverideSigma_PiN [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: OverideSigma_PiN=-99.9
PURPOSE
Parameter to replace the calculated cross section for pi+N collision by a fixed value (in mb). Only in use if >= 0.
The elastic cross section is assumed to be 1/10 of the given value.
master_2Body/OverideSigma_RhoN [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: OverideSigma_RhoN=-99.9
PURPOSE
Parameter to replace the calculated cross section for rho+N collision by a fixed value (in mb). Only in use if >= 0.
The elastic cross section is assumed to be 1/10 of the given value.
master_2Body/OverideSigma_PiPi [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: OverideSigma_PiPi=-99.9
PURPOSE
Parameter to replace the calculated cross section for pi+pi collision by a fixed value (in mb). Only in use if >= 0.
We set sigma_elast = sigma_tot
master_2Body/omega_K_factor [ Global module-variables ]
[ Top ] [ master_2Body ] [ Global module-variables ]
SOURCE
real, save :: omega_K_factor = 2.
PURPOSE
Modification factor for the inelastic omega-nucleon cross section. Necessary to describe transpacrency ratio data measured by CBELSA/TAPS, see: http://arxiv.org/abs/1210.3074
master_2Body/readInput [ Subroutines ]
[ Top ] [ master_2Body ] [ Subroutines ]
NAME
subroutine readInput
PURPOSE
Reads input in jobcard out of namelist "master_2Body"
master_2Body/master_2body [ Namelists ]
[ Top ] [ master_2Body ] [ Namelists ]
NAME
NAMELIST master_2Body
PURPOSE
Includes the switches:
- correctEnergy
- baryonBaryonScattering
- baryonMesonScattering
- mesonMesonScattering
- debug
- usePythia
- usePythiaCut
- usePythia_BaB
- usePythiaCut_BaB
- doPythiaReweight
- useHiEnergy
- HiEnergyThresholdBarMes
- HiEnergyThresholdBarMesDelta
- HiEnergyThresholdBarBar
- HiEnergyThresholdBarBarDelta
- HiEnergyThresholdBarAntibar
- HiEnergyThresholdBarAntibarDelta
- smoothHiEnergy
- useManni
- ElastAngDist
- flagElastBB
- coarse
- bmax_nucleonNucleon
- bmax_nucleonResonance
- bmax_hyperonNucleon
- bmax_baryonPion
- bmax_baryonMeson
- bmax_mesonMeson
- correctEnergy_message
- OverideSigma_PiN
- OverideSigma_RhoN
- OverideSigma_PiPi
- omega_K_factor
- coulombCorrect
master_2Body/collide_2body [ Subroutines ]
[ Top ] [ master_2Body ] [ Subroutines ]
NAME
subroutine collide_2body (pair, finalState, time, collisionFlag, HiEnergyFlag, HiEnergyType, EventWeight, collision_time, weightLocal, sigTot_out, pauliIncluded_out)
PURPOSE
Evaluates for two given particles the final states. First it checks the collision criteria, then it evaluates the final state if the collision criteria is fulfilled.
INPUTS
- type(particle),dimension(:) :: pair -- incoming pair of particles
- type(particle),dimension(:) :: finalState -- produced final state particles
- real :: time -- time in fm
OUTPUT
- type(particle),dimension(:) :: finalState -- produced final state particles
- logical :: collisionFlag -- true if collision takes place
- logical :: HiEnergyFlag -- true if HiEnergy was used
- integer :: HiEnergyType -- 0:LowEnergy, 1:Fritiof, 2:Pythia
- real, optional :: EventWeight -- weight of Pythia-reweighting
- real, optional :: collision_time -- Time instant in the computational frame when the two particles collide (with respect to the current "BUU time" used for time stepping)
- integer, optional :: weightLocal -- Weight used for local ensemble method for reweighting the probability in the collision criteria. Not necessary in case of localEnsemble=.false.
- real (OPTIONAL) :: sigTot_out -- total cross section
- logical,optional :: pauliIncluded_out -- true if Pauli blocking was already included in the cross section evaluation
NOTES
"finalState" has to be given as input with some values set properly!
master_2Body/check_veryRough [ Functions ]
[ Top ] [ master_2Body ] [ Functions ]
NAME
logical function check_veryRough(pair,stringFactor,numEnsembles,scenario) Result(flag)
PURPOSE
Very Rough collision criterium
INPUTS
- type(particle), dimension(1:2) :: pair
- real :: stringFactor
- integer :: numEnsembles -- number of ensembles
- integer :: scenario -- type of scattering scenario
OUTPUT
- logical :: flag
master_2Body/checkKodama_Rough [ Functions ]
[ Top ] [ master_2Body ] [ Functions ]
NAME
logical function checkKodama_Rough(pair,stringFactor,numEnsembles,scenario) Result(flag)
PURPOSE
Checks in a rough way wether the "pair" of particles is so close in space that a collision should take place. Therefore we check with the kodama criteria whether a collision would take place, if we assume that the Xsection is maximal, which means that
xSection=2 pi cutOff**2.
If "kodama_position" returns .true. than the "flag" is set .true. .
NOTES
This check is meant to save computation time. If a collision is already excluded assuming the maximal cross section, then we do not even have to check for the real cross section and the correct collision criteria!
INPUTS
- type(particle), dimension(1:2):: pair -- incoming particles
- real :: stringFactor -- XS reduction factor
- integer :: numEnsembles -- number of ensembles used in the code
- integer :: scenario -- kind of scattering scenario
OUTPUT
- logical :: flag
master_2Body/generateFinalState [ Subroutines ]
[ Top ] [ master_2Body ] [ Subroutines ]
NAME
subroutine generateFinalState(pair, finalState, stringFactor, numEnsembles, time, collisionFlag, HiEnergyFlag, HiEnergyType, weightLocal, scenario0, sigTot_out, pauliIncluded_out)
PURPOSE
This is the routine, which really does the collision
INPUTS
- type(particle), dimension(1:2) :: pair -- incoming particles
- real :: stringFactor -- rescaling of XS
- integer :: numEnsembles -- number of ensembles
- real :: time -- actual time step
- integer, optional :: weightLocal -- weight which is used for the local ensemble method. Used for reweighting the probability in the collision criteria. Not necessary in case of localEnsemble=.false.
- integer, optional :: scenario0 -- if given : BarBar,BarMes,MesMes
OUTPUT
- type(particle), dimension(:) :: finalState -- outgoing particles
- logical :: collisionFlag -- true if collisions was okay
- logical :: HiEnergyFlag -- true if HiEnergy was used
- integer :: HiEnergyType -- 0:LowEnergy, 1:Fritiof, 2:Pythia
- real (OPTIONAL) :: sigTot_out -- total cross section
- logical,optional :: pauliIncluded_out -- true if Pauli blocking was already included in the cross section evaluation
generateFinalState/ResetPosition [ Subroutines ]
[ Top ] [ generateFinalState ] [ Subroutines ]
NAME
subroutine ResetPosition
PURPOSE
- calculate maxID, i.e. the number of finalState-particles
- set position of finalState-particles: It loops over the FS particles vector and sets for the first FS-particle, which is baryon/meson as the first IS-particle, the spatial position as the first IS particle. Looping continues and the same is done for the next FS particle, which is of the same type as the secon IS particle. All other particles get as position the position of the interaction.
NOTES
It is even a little bit more involved; get the power, read the source ;)
master_2Body/coulombDifference [ Functions ]
[ Top ] [ master_2Body ] [ Functions ]
NAME
real function coulombDifference(pos_1,pos_2,charge_1,charge_2)
PURPOSE
This function evaluates the difference of the sum of Coulomb energy of two charges at positions "pos_1" and "pos_2" compared to the Coulomb energy of both charges at the point in the middle:
charge_1*V(pos_1) + charge_2*V(pos_2) - (charge_1+charge_2)*V( [pos_1+pos_2]/2 )
NOTES
The coulomb potential is created by the nucleus and not by the charges given here as argument.
According to OB, this routine has more or less some nostalgical reasons. Better not to use it nowadays anymore.
master_2Body/setKinematics [ Subroutines ]
[ Top ] [ master_2Body ] [ Subroutines ]
NAME
subroutine setKinematics (srts, srts_vacuum, betaToLRF, betaToCM, medium_AtCollision, pairIn, finalState, collisionFlag, verbose)
PURPOSE
Evaluates the kinematics for the "finalState" particles assuming vacuum kinematics (-> no potentials).
INPUTS
- type(particle),dimension(1:2):: pairIn -- incoming initial particles
- type(particle),dimension(:) :: finalState -- outgoing particles
- real :: srts -- sqrt(s)
- real :: srts_vacuum -- sqrt(s) in the vacuum
- real, dimension(1:3) :: betaToLRF -- beta of calc frame to LRF frame
- real, dimension(1:3) :: betaToCM -- beta of calc frame to CM frame
- type(medium) :: medium_AtCollision -- medium information
- logical, OPTIONAL :: verbose -- flag print messages on/off (default: on)
OUTPUT
- type(particle), dimension(:) :: finalState -- outgoing particles
- logical :: collisionFlag -- "true" if kinematics could be set
NOTES
- It's important that the Id's, positions, perturbative flags and charges of the "finalState" particles are already set when calling this subroutine.
- Only the kinematics (including masses of the finalState) will be set.
master_2Body/setKinematicsHiEnergy [ Subroutines ]
[ Top ] [ master_2Body ] [ Subroutines ]
NAME
subroutine setKinematicsHiEnergy (srts, srts_vacuum, sigmaTot, sigmaElast, &
sigmaCEX, sigmaAnni, sigmaLbar, sigmaSbar, sigmaXiBar, sigmaJPsi, & betaToCM, pairIn, time, finalState, collisionFlag, HiEnergyType, scenario0)
PURPOSE
Evaluates the kinematics for the "finalState" particles assuming vacuum kinematics (-> no potentials) using FRITIOF or PYTHIA.
INPUTS
- type(particle),dimension(1:2):: pairIn -- incoming initial particles
- type(particle), dimension(:) :: finalState -- outgoing particles
- real :: srts -- sqrt(s)
- real :: srts_vacuum -- sqrt(s) in the vacuum
- real, dimension(1:3) :: betaToCM -- beta of calc frame to CM frame
- real :: sigmaTot -- total XS
- real :: sigmaElast -- elastic XS
- real :: sigmaCEX -- charge exchange XS
- real :: sigmaAnni -- annihilation XS
- real :: sigmaLbar -- Lambda LambdaBar exclusive production XS
- real :: sigmaSbar -- Lambda SigmaBar + LambdaBar Sigma exclusive production XS
- real :: sigmaXiBar -- Xi XiBar exclusive production XS
- real :: sigmaJPsi -- sigmaJPsi exclusive production XS
- real :: time -- time of event
- integer, OPTIONAL :: scenario0 -- if given : BarBar,BarMes,MesMes
OUTPUT
- type(particle), dimension(:) :: finalState
- logical :: collisionFlag -- "true" if kinematics could be set
- integer :: HiEnergyType -- (see below)
possible values for "HiEnergyType":
- -3: BaB (Baryon-Antibaryon-Annihilation)
- -2: Manni (Meson-Baryon-Annihilation)
- -1: Elastic or charge exchange
- 0: == Low Energy ==
- 1: FRITIOF
- 2: PYTHIA
NOTES
0) Formerly known as 'setKinematicsFritiof'. 1) there are some "hardwired" switches:
* DoFritiofCor (=.true.) -- Switch to vary the srts-description
2) The cross sections sigmaCEX, sigmaAnni, sigmaLbar, sigmaSbar, sigmaXiBar and sigmaJPsi are relevant only for
baryon-antibaryon collisions. Otherwise they are set to zero.
master_2Body/LogicMatrix [ Functions ]
[ Top ] [ master_2Body ] [ Functions ]
NAME
integer function LogicMatrix(flag1,flag2)
PURPOSE
convert the 4 possibilities of two logical variables into 3 integer values:
| flag1 = .FALSE. ! flag1 = .TRUE. ----------------+-----------------+--------------- flag2 = .FALSE. | 1 ! 2 flag2 = .TRUE. | 2 ! 3 ----------------+-----------------+---------------
NOTES
- flag(i)=isMeson(pair(i)%ID) -> 1,2,3 == BarBar,BarMes,MesMes
- flag(i)=pair(i)%antiparticle -> 1,2,3 == BarBar,BarAntiBar,AntiBarAntiBar
master_2Body/XsectionMaster [ Subroutines ]
[ Top ] [ master_2Body ] [ Subroutines ]
NAME
subroutine XsectionMaster (srts, teilchenIn, mediumATcollision, momentumLRF, teilchenOut, sigmaTot, sigmaElast, sigmaCEX, sigmaAnni, sigmaLbar, sigmaSbar, sigmaXiBar, sigmaJPsi, HiEnergyFlag, plotFlag, scenario0, ForceHiEnergy, pauliIncluded_out)
PURPOSE
Gets as input two colliding particles and returns the total, elastic and annihilation cross sections. In case of resonance model processes it also already returns the final state particles.
INPUTS
- real :: srts -- sqrt(s) of the process
- type(particle),dimension(1:2) :: teilchenIn -- colliding particles
- type(medium) :: mediumATcollision -- Medium informations
- real,dimension(0:3) :: momentumLRF -- Total Momentum in LRF
- logical, optional :: plotFlag -- Switch plotting the XS
- integer, optional :: scenario0 -- if given: BarBar,BarMes,MesMes
- logical, optional :: ForceHiEnergy -- if given: force scenario selection
OUTPUT
- type(preEvent),dimension(:) :: teilchenOut -- produced particles
- real :: sigmaTot -- total Xsection
- real :: sigmaElast -- elastic Xsection
- real, :: sigmaCEX -- charge exchange Xsection
- real, :: sigmaAnni -- annihilation Xsection
- real :: sigmaLbar -- Lambda LambdaBar exclusive production Xsection
- real :: sigmaSbar -- Lambda SigmaBar + LambdaBar Sigma exclusive production Xsection
- real :: sigmaXiBar -- Xi XiBar exclusive production Xsection
- real :: sigmaJPsi -- J/Psi exclusive production Xsection
- logical :: HiEnergyFlag -- true if HiEnergy is used to generate the final state
- logical,optional :: pauliIncluded_out -- true if Pauli blocking was already included in the cross section evaluation
NOTES
The cross sections sigmaCEX, sigmaAnni, sigmaLbar, sigmaSbar and sigmaXiBar are relevant only for baryon-antibaryon collisions. Otherwise they are set to zero.
XsectionMaster/DecideHiEnergy [ Functions ]
[ Top ] [ XsectionMaster ] [ Functions ]
NAME
logical function DecideHiEnergy (srts, srts0, dsrts)
PURPOSE
Decide whether to use high-energy prescription or not. For the smooth transition, the logic is the following:
INPUTS
- real :: srts -- sqrt(s) value
- real :: srts0 -- threshold
- real :: dsrts -- width of transition region
OUTPUT
function value
XsectionMaster/mesMes [ Subroutines ]
[ Top ] [ XsectionMaster ] [ Subroutines ]
NAME
subroutine mesMes (srts, teilchenIN, mediumATcollision, momentumLRF, teilchenOUT, sigmaTot, sigmaElast)
PURPOSE
Calculate the total and elastic cross section of meson-meson collisions.
INPUTS
- real :: srts -- sqrt(s) of the process (in vacuum!)
- type(particle),dimension(1:2) :: teilchenIn -- colliding particles
- type(medium) :: mediumATcollision -- Medium informations
- real,dimension(0:3) :: momentumLRF -- Total Momentum in LRF
OUTPUT
- type(preEvent),dimension(:) :: teilchenOut -- produced particles
- real :: sigmaTot -- total Xsection
- real :: sigmaElast -- elastic Xsection
NOTES
original pi pi <-> K Kbar from Martin Effenberger, other channels are added by Markus Wagner
XsectionMaster/barMes [ Subroutines ]
[ Top ] [ XsectionMaster ] [ Subroutines ]
NAME
subroutine barMes (srts, teilchenIN, mediumATcollision, momentumLRF, teilchenOUT, sigmaTot, sigmaElast)
PURPOSE
Calculate the total and elastic cross section of baryon-meson collisions.
INPUTS
- real :: srts -- sqrt(s) of the process
- type(particle),dimension(1:2) :: teilchenIn -- colliding particles
- type(medium) :: mediumATcollision -- Medium informations
- real,dimension(0:3) :: momentumLRF -- Total Momentum in LRF
OUTPUT
- type(preEvent),dimension(:) :: teilchenOut -- produced particles
- real :: sigmaTot -- total Xsection
- real :: sigmaElast -- elastic Xsection
NOTES
the internal variable "HiEnergyFlag" is input.
XsectionMaster/barBar [ Subroutines ]
[ Top ] [ XsectionMaster ] [ Subroutines ]
NAME
subroutine barBar (srts, teilchenIn, mediumATcollision, teilchenOut, sigmaTot, sigmaElast, sigmaCEX, sigmaAnni, sigmaLbar, sigmaSbar, sigmaXiBar, sigmaJPsi, PauliIncluded)
PURPOSE
Calculate the total and elastic cross section of baryon-baryon collisions.
INPUTS
- real :: srts -- sqrt(s) of the process
- type(particle),dimension(1:2) :: teilchenIn -- colliding particles
- type(medium) :: mediumATcollision -- Medium informations
OUTPUT
- type(preEvent),dimension(1:4) :: teilchenOut -- produced particles
- real :: sigmaTot -- total Xsection
- real :: sigmaElast -- elastic Xsection
- real :: sigmaCEX -- charge exchange Xsection
- real :: sigmaAnni -- annihilation Xsection
- real :: sigmaLbar -- Lambda LambdaBar exclusive production Xsection
- real :: sigmaSbar -- Lambda SigmaBar + LambdaBar Sigma exclusive production Xsection
- real :: sigmaXiBar -- Xi XiBar exclusive production Xsection
- real :: sigmaJPsi -- J/Psi exclusive production Xsection
- logical, :: pauliIncluded -- true if Pauli blocking is included when calculating the Xsection
NOTES
the internal variable "HiEnergyFlag" is input.
master_2Body/sigtot_NN [ Functions ]
[ Top ] [ master_2Body ] [ Functions ]
NAME
real function sigtot_NN(srts, totalcharge)
PURPOSE
This routine provides a parametrization of the total nucleon-nucleon cross section, consisting of different pieces for different energy regimes.
INPUTS
- real, intent(in) :: srts -- sqrt(s) of the process
- integer, intent(in) :: totalcharge -- IDs of colliding particles
References:
- PDG, L. Montanet et al., Phys. Rev. D 50 (1994) 1173–1814
- J. Cugnon, J. Vandermeulen, D. L’hote, Nuclear Instrum. Methods B 111 (1996) 215–220.
master_2Body/HiEnergyContrib [ Functions ]
[ Top ] [ master_2Body ] [ Functions ]
NAME
real function HiEnergyContrib (srts, ID)
PURPOSE
This routine returns the relative importance of the HiEnergy part, i.e. the return value varies between 0 (full low energy resonance model) and 1 (full HiEnergy model)
This routine is not used by XsectionMaster and related routines. But it may be helpful for plotting the XS.
INPUTS
- real, intent(in) :: srts -- sqrt(s) of the process
- integer, intent(in) :: ID(1:2) -- IDs of colliding particles
OUTPUT
function value as described above
NOTES
This routine assumes a smooth transition (as for smoothHiEnergy=.true.). If you want to have the (old) sharp transition, just compare the function value against 0.5: <0.5=resonance, >0.5=HiEnergy