TABLE OF CONTENTS
- 1. /initPion
- 1.1. initPion/getEkin
- 1.2. initPion/getTotalPerweight
- 1.3. initPion/getImpact
- 1.4. initPion/initPionInduced
- 1.4.1. initPionInduced/initInput
- 1.4.2. initPionInduced/setKinematics
- 1.5. initPion/pionNucleus
- 1.5.1. pionNucleus/UseCoulomb
- 1.5.2. pionNucleus/CoulombDistance
- 1.5.3. pionNucleus/distance
- 1.5.4. pionNucleus/impact_parameter
- 1.5.5. pionNucleus/charge
- 1.5.6. pionNucleus/numberPions
- 1.5.7. pionNucleus/ekin_lab
- 1.5.8. pionNucleus/delta_ekin_lab
- 1.5.9. pionNucleus/debug
- 1.6. initPion/setPosition
- 1.7. initPion/CoulombCorrect
- 1.8. initPion/storeImpact
/initPion [ Modules ]
NAME
module initPion
PURPOSE
Includes the initialization of pions for pion induced events.
pionNucleus/UseCoulomb [ Global module-variables ]
[ Top ] [ pionNucleus ] [ Global module-variables ]
SOURCE
logical,save :: UseCoulomb=.false.
PURPOSE
if .true. then a Coulomb propagation from CoulombDistance to distance is performed
pionNucleus/CoulombDistance [ Global module-variables ]
[ Top ] [ pionNucleus ] [ Global module-variables ]
SOURCE
real,save :: CoulombDistance=200. ! [fm]
PURPOSE
distance from where the Coulomb propagation starts
pionNucleus/distance [ Global module-variables ]
[ Top ] [ pionNucleus ] [ Global module-variables ]
SOURCE
real,save :: distance=15. ! [fm]
PURPOSE
initialization distance
pionNucleus/impact_parameter [ Global module-variables ]
[ Top ] [ pionNucleus ] [ Global module-variables ]
SOURCE
real,save :: impact_parameter=0. ! [fm]
PURPOSE
impact parameter. If less than 0, than an impact parameter integration is performed
pionNucleus/charge [ Global module-variables ]
[ Top ] [ pionNucleus ] [ Global module-variables ]
SOURCE
integer,save :: charge=0
PURPOSE
charge of pion
pionNucleus/numberPions [ Global module-variables ]
[ Top ] [ pionNucleus ] [ Global module-variables ]
SOURCE
integer,save :: numberPions=200
PURPOSE
number of initialized pions per ensemble
pionNucleus/ekin_lab [ Global module-variables ]
[ Top ] [ pionNucleus ] [ Global module-variables ]
SOURCE
real,save :: ekin_lab=0.
PURPOSE
kinetic energies of pions in lab frame.
pionNucleus/delta_ekin_lab [ Global module-variables ]
[ Top ] [ pionNucleus ] [ Global module-variables ]
SOURCE
real,save :: delta_ekin_lab=0.01 ! [GeV]
PURPOSE
step size for kinetic energies in energy scans
pionNucleus/debug [ Global module-variables ]
[ Top ] [ pionNucleus ] [ Global module-variables ]
SOURCE
logical, parameter :: debug=.false.
PURPOSE
Switch on debug mode
initPion/getEkin [ Functions ]
[ Top ] [ initPion ] [ Functions ]
NAME
real function getEkin
PURPOSE
This function returns the kinetic energy of the pions as they were initialized at the last call of initPionInduced.
initPion/getTotalPerweight [ Functions ]
[ Top ] [ initPion ] [ Functions ]
NAME
real function getTotalPerweight
PURPOSE
This function returns the total perweight of the pions as they were initialized at the last call of initPionInduced.
initPion/getImpact [ Functions ]
[ Top ] [ initPion ] [ Functions ]
NAME
real function getImpact(firstevent)
PURPOSE
return the impact value connected with the pion inducing event indexed by firstevent
initPion/initPionInduced [ Subroutines ]
[ Top ] [ initPion ] [ Subroutines ]
NAME
subroutine initPionInduced(teilchen,raiseEnergyFlag,targetNuc)
PURPOSE
This routine initializes pions in pion-nucleus scattering.
INPUTS
- type(particle), intent(inout), dimension(:,:) :: teilchen -- vector to store pions in
- logical, intent(in) :: raiseEnergyFlag -- if .true. energy of initialized pions is raised by delta_ekin_lab
- type(tNucleus),pointer,optional :: targetNuc -- Target nucleus
initPionInduced/initInput [ Subroutines ]
[ Top ] [ initPionInduced ] [ Subroutines ]
NAME
subroutine initInput(outside)
PURPOSE
Reads input out of jobcard. Namelist 'pionNucleus'.
RESULT
logical outside !whether pions are initialized in or outside the nucleus
NOTES
Checks wether pion is initialized in- or outside the nucleus
initPion/pionNucleus [ Namelists ]
[ Top ] [ initPion ] [ Namelists ]
NAME
NAMELIST pionNucleus
PURPOSE
Includes parameters of pion initialization:
initPionInduced/setKinematics [ Subroutines ]
[ Top ] [ initPionInduced ] [ Subroutines ]
NAME
subroutine setKinematics
PURPOSE
Sets basic kinematics of the pions.
initPion/setPosition [ Subroutines ]
[ Top ] [ initPion ] [ Subroutines ]
NAME
subroutine setPosition(impact)
PURPOSE
Sets positions of the pions.
NOTES
If Impact_Parameter is choosen to be less than zero, than the impact parameter is choosen by a Monte-Carlo-decision. This is made such that the pion is initialized on a disk of radius "bmax_Innerdisk" or on a ring which surrounds the inner disk and has an outer radius of "bmaxOuterRing". The probability to be on the inner disk is given by "pInnerDisk". The inner disk and the outer ring are separetely populated by a constant number density of pions. One distinguishes between inner disk and outer ring to have the possibility to have different population densities. Assumed one would only have one disk, then most of the particles would be initialized with high impact-parameter where only few reactions take place.
The perweight is given in units of mb for impact parameter integration.
OUTPUTS * teilchen(j,index) is changed * real :: impact -- the actual impact parameter for this pion
initPion/CoulombCorrect [ Subroutines ]
[ Top ] [ initPion ] [ Subroutines ]
NAME
subroutine CoulombCorrect
PURPOSE
Corrects the trajectory according to Coulomb forces.