gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/initHiPion [ Modules ]

[ Top ] [ 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:


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

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:


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