TABLE OF CONTENTS
- 1. initPion/storeImpact
- 2. /initHiPion
- 2.1. initHiPion/ekin_lab
- 2.2. initHiPion/p_lab
- 2.3. initHiPion/ProjectileCharge
- 2.4. initHiPion/ProjectileID
- 2.5. initHiPion/ProjectileAnti
- 2.6. initHiPion/ProjectileMass
- 2.7. initHiPion/nTestparticles
- 2.8. initHiPion/minimumMomentum
- 2.9. initHiPion/useHermesPythiaPars
- 2.10. initHiPion/distance
- 2.11. initHiPion/impact_parameter
- 2.12. initHiPion/DoPerturbativeInit
- 2.13. initHiPion/DoOnlyOne
- 2.14. initHiPion/betafak
- 2.15. initHiPion/totalPerweight
- 2.16. initHiPion/ConfigParticles
- 2.17. initHiPion/NucCharge
- 2.18. initHiPion/flagOffShell
- 2.19. initHiPion/flagFlux
- 2.20. initHiPion/flagLC
- 2.21. initHiPion/CoulombCorrection
- 2.22. initHiPion/CoulombDistance
- 2.23. initHiPion/DoPlotSrts
- 2.24. initHiPion/getBetaFak
- 2.25. initHiPion/getTotalPerweight
- 2.26. initHiPion/initHiPionInduced
- 2.26.1. initHiPionInduced/initInput
- 2.26.2. initHiPionInduced/setKinematics
- 2.26.3. initHiPionInduced/setPosition
- 2.26.4. initHiPionInduced/doCoulombCorrect
- 2.26.5. initHiPionInduced/setBetaFak
- 2.27. initHiPion/HiPionNucleus
- 2.28. initHiPion/initHiPionInducedCollide
- 2.29. initHiPion/initHiPionInducedCollideFull
- 2.30. initHiPion/binSrts
- 2.31. initHiPion/getImpact
/initHiPion [ Modules ]
NAME
module initHiPion
PURPOSE
This module is for (high-energy) pion-nucleus and proton-nucleus collisions. In fact also any other hadron can be used as projectile. The eventtype 'HiPion' uses perturbative projectile particles.
INPUTS
The namelist "HiPionNucleus".
NOTES
following input parameters are changed/renamed/deleted/new:
- numberPions -> nTestparticles
- DoProton is removed
- Charge -> ProjectileCharge
- ProjectileID is introduced
- ProjectileAnti is introduced
initHiPion/ekin_lab [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
real,save :: ekin_lab = -99.9
PURPOSE
Kinetic energy of projectile particles in lab frame [GeV].
initHiPion/p_lab [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
real,save :: p_lab = -99.9
PURPOSE
Momentum of projectile particles in lab frame [GeV/c].
initHiPion/ProjectileCharge [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
integer,save :: ProjectileCharge = 0
PURPOSE
Charge of projectile particles.
initHiPion/ProjectileID [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
integer,save :: ProjectileID = pion
PURPOSE
ID of projectile particles.
initHiPion/ProjectileAnti [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
logical,save :: ProjectileAnti = .false.
PURPOSE
Antiparticle flag of projectile particles.
initHiPion/ProjectileMass [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
real,save :: ProjectileMass = -99.9
PURPOSE
Mass of projectile particles; if negative, pole mass is used.
initHiPion/nTestparticles [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
integer,save :: nTestparticles = 200
PURPOSE
Number of projectile testparticles per ensemble.
initHiPion/minimumMomentum [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
real, save :: minimumMomentum = 1.0
PURPOSE
Minimal momentum of particles (in GeV) produced in the init routines. Only particles with an absolute momentum larger than this will be further propagated.
initHiPion/useHermesPythiaPars [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
logical,save :: useHermesPythiaPars = .false.
PURPOSE
flag: Use "PYTHIA tuning done by HERMES collab"
initHiPion/distance [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
real,save :: distance = 15.
PURPOSE
Distance in z-direction from the nucleus center in fm, where the projectiles are initialzed. If negative, the distance will be chosen automatically.
initHiPion/impact_parameter [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
real,save :: impact_parameter = 0.
PURPOSE
Impact parameter of the projectiles in fm. If positive (or zero), this fixed value is used for all projectiles. If negative, the impact parameter is chosen by Monte Carlo, so that the projectiles are distributed over a certain disk. Cf. 'setPosition'.
initHiPion/DoPerturbativeInit [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
logical, save :: DoPerturbativeInit = .false.
PURPOSE
If this flag is set to .true., the first collision of the projectile particles with a nucleon in the target nucleus will be done in this init routine (at timestep 0). This enables you to treat the first (hard) collision different from those in the FSI.
If this flag is set to .false., the projectile particles have to be propagated onto the nucleus as in the default transport treatment.
See documentation of 'initHiPionInducedCollide' and 'initHiPionInducedCollideFull' for further information.
initHiPion/DoOnlyOne [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
logical, save :: DoOnlyOne = .true.
PURPOSE
If the first interaction of beam and target particles is treated already here in the init (cf. DoPerturbativeInit), you may select whether a beam particle may interact only once (flag set to .true.) or with all other target nucleons (flag set to .false.).
See documentation of 'initHiPionInducedCollide' and 'initHiPionInducedCollideFull' for further information.
initHiPion/betafak [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
real, save :: betafak = 0.
PURPOSE
This variable holds 2 times the value of the rapidity of the center of mass of the colliding pion-nucleon system (modulo sign).
beta = -(P(1,3)+P(2,3))/(P(1,4)+P(2,4)) betafak = log((1+beta)/(1-beta))
Here
E_pion = M_pion + Ekin_lab beta = - sqrt(E_pion**2 - m_Pion**2) / (E_pion+M_nucleon)
The rapidity of a particle is given by
y_lab = 0.5 * log( (E+p_z)/(E-p_z) ) [lab frame] y_cm = y_lab + 0.5 * betafak [cm frame]
This is used in "HiPionAnalysis"
initHiPion/totalPerweight [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
real,save :: totalPerweight=0.
PURPOSE
This is the sum over the perweights of all initialized beam particles. Is needed in order to calculate total cross sections,
initHiPion/ConfigParticles [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
type(particle),dimension(2), save :: ConfigParticles
PURPOSE
Store beam and target particles as dummy
initHiPion/NucCharge [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
integer, save :: NucCharge = -1
PURPOSE
Select charge state of nucleons to scatter on. If this value is >=0, then we only scatter on nucleons with the respective charge, i.e. only on neutrons if NucCharge==0 and only on protons if NucCharge==1. Useful e.g. for selecting only pn events in a pd collision.
initHiPion/flagOffShell [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
logical, save :: flagOffShell = .false.
PURPOSE
If this flag is set to .true., the struck nucleon in the deuteron will be off vacuum mass shell to agree with total energy conservation. Relevant for the deuteron target only.
initHiPion/flagFlux [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
logical, save :: flagFlux = .false.
PURPOSE
If this flag is set to .true., the Moeller flux factor will be included in calculation of the cross section with nuclear target.
initHiPion/flagLC [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
logical, save :: flagLC = .false.
PURPOSE
If this flag is set to .true., the deuteron wave function will be treated according to the light cone formalism.
initHiPion/CoulombCorrection [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
logical, save :: CoulombCorrection = .false.
PURPOSE
if .true. then a Coulomb propagation from CoulombDistance to distance is performed
initHiPion/CoulombDistance [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
real, save :: CoulombDistance = 200. ! [fm]
PURPOSE
distance from where the Coulomb propagation starts
initHiPion/DoPlotSrts [ Global module-variables ]
[ Top ] [ initHiPion ] [ Global module-variables ]
SOURCE
logical, save :: DoPlotSrts = .false.
PURPOSE
flag to switch whether a histogram of the sqrt(s) of the first collision is written or not
initHiPion/getBetaFak [ Functions ]
[ Top ] [ initHiPion ] [ Functions ]
NAME
real function getBetaFak()
PURPOSE
return the value of the variable "betafak"
initHiPion/getTotalPerweight [ Functions ]
[ Top ] [ initHiPion ] [ Functions ]
NAME
real function getTotalPerweight()
PURPOSE
This function returns the total perweight of the pions as they were initialized at the last call of initHiPionInduced.
initHiPion/initHiPionInduced [ Subroutines ]
[ Top ] [ initHiPion ] [ Subroutines ]
NAME
subroutine initHiPionInduced(pertPart,realPart,targetNuc)
PURPOSE
This routine initializes high energy pions in pion-nucleus scattering.
INPUTS
- type(particle),dimension(:,:) :: pertPart,realPart -- particle vectors
- type(tNucleus),pointer :: targetNuc -- the target nucleus
OUTPUT
pertPart is modified
initHiPionInduced/initInput [ Subroutines ]
[ Top ] [ initHiPionInduced ] [ Subroutines ]
NAME
subroutine initInput
PURPOSE
Reads input out of jobcard. Namelist 'HiPionNucleus'.
initHiPion/HiPionNucleus [ Namelists ]
[ Top ] [ initHiPion ] [ Namelists ]
PURPOSE
Namelist for initHiPion includes:
- distance
- impact_parameter
- ProjectileCharge
- ProjectileID
- ProjectileAnti
- ProjectileMass
- nTestparticles
- ekin_lab
- p_lab
- DoPerturbativeInit
- DoOnlyOne
- minimumMomentum
- useHermesPythiaPars
- NucCharge
- flagOffShell
- flagFlux
- flagLC
- CoulombCorrection
- CoulombDistance
- DoPlotSrts
initHiPionInduced/setKinematics [ Subroutines ]
[ Top ] [ initHiPionInduced ] [ Subroutines ]
NAME
subroutine setKinematics(part)
PURPOSE
Sets basic kinematics of the pions.
initHiPionInduced/setPosition [ Subroutines ]
[ Top ] [ initHiPionInduced ] [ Subroutines ]
NAME
subroutine setPosition(part)
PURPOSE
Sets positions of the pions.
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.
initHiPionInduced/doCoulombCorrect [ Subroutines ]
[ Top ] [ initHiPionInduced ] [ Subroutines ]
NAME
subroutine doCoulombCorrect(part)
PURPOSE
Corrects the trajectory according to Coulomb forces.
initHiPionInduced/setBetaFak [ Subroutines ]
[ Top ] [ initHiPionInduced ] [ Subroutines ]
NAME
subroutine setBetaFak
PURPOSE
set the variable "BetaFak"
initHiPion/initHiPionInducedCollide [ Subroutines ]
[ Top ] [ initHiPion ] [ Subroutines ]
NAME
subroutine initHiPionInducedCollide(pertPart,realPart)
PURPOSE
if all (perturbative) pions and (real) nucleons are set, this routine performs for every pion its first collision. All collisions are done at time=zero.
The nucleons are sorted by its z-position. Then for a given pion it is checked whether a collision happens with the first nucleon, with the secons and so on. If the flag "DoOnlyOne" is true, only the first possible collision is performed [sigma ~ A^(2/3)], otherwise all possible collisions are considered [sigma ~ A].
Pions without any possible collisions are set somewhere in space with a large z-coordinate, otherwise the pion is deleted from the particle vector.
INPUTS
OUTPUT
pertPart is modified
initHiPion/initHiPionInducedCollideFull [ Subroutines ]
[ Top ] [ initHiPion ] [ Subroutines ]
NAME
subroutine initHiPionInducedCollideFull(pertPart,realPart)
PURPOSE
same as initHiPionInducedCollide, but now for full (and) local ensemble calculations
if all (perturbative) pions and (real) nucleons are set, this routine performs for every pion its first collision. All collisions are done at time=zero.
The nucleons are sorted by its z-position. Then for a given pion it is checked whether a collision happens with the first nucleon, with the second and so on. If the flag "DoOnlyOne" is true, only the first possible collision is performed [sigma ~ A^(2/3)], otherwise all possible collisions are considered [sigma ~ A].
Pions without any possible collisions are set somewhere in space with a large z-coordinate, otherwise the pion is deleted from the particle vector.
INPUTS
OUTPUT
pertPart is modified
initHiPion/binSrts [ Subroutines ]
[ Top ] [ initHiPion ] [ Subroutines ]
NAME
subroutine binSrts(srts, weight)
PURPOSE
Create a histogram of the sqrt(s) of the first collision. If called without argument, the histogram is writen to "initHiPion_binSrts.dat"
INPUTS
- real, optional: srts -- the value to add
- real, optional: weight -- weight of the value
initHiPion/getImpact [ Functions ]
[ Top ] [ initHiPion ] [ Functions ]
NAME
real function getImpact(firstevent)
PURPOSE
return the impact value connected with the pion inducing event indexed by firstevent
initPion/storeImpact [ Subroutines ]
[ Top ] [ initPion ] [ Subroutines ]
NAME
subroutine storeImpact(firstevent, impact)
PURPOSE
store the impact value connected with the pion inducing event indexed by firstevent