TABLE OF CONTENTS
/potentialMain [ Modules ]
NAME
module potentialMain
PURPOSE
Does administration for the hadronic potentials in the code.
potentialMain/massDetermination [ Subroutines ]
[ Top ] [ potentialMain ] [ Subroutines ]
NAME
subroutine massDetermination(particleID,momentumLRF,med,baremass,verbose,success,pos)
subroutine massDetermination(teilchen,betaToCF,verbose,success)
PURPOSE
This subroutine determines the bare mass of a particle with a given 4-momentum considering a momentum-dependent scalar potential that is defined in the local rest frame.
NOTES
We keep p(0:3) constant! To solve p_0=sqrt(p**2+m**2)+V_LRF_0 (p(1:3)) in the LRF frame => solution for m!
Attention: Does not respect Coulomb potential !!!
INPUTS
- integer :: ID -- ID of particle to consider
- real, dimension(0:3) :: momentumLRF -- momentum of particle in LRF
- type(medium) :: med -- medium information
- logical, OPTIONAL :: verbose -- flag to print warnings (Default: .true.)
or:
- type(particle) :: teilchen -- Particle whose energy should be calculated.
- real,dimension(3), OPTIONAL :: betaToCF -- Velocity of "Calc Frame" in the frame where the particle's momentum is defined
- logical, OPTIONAL :: verbose -- flag to print warnings (Default: .true.)
OUTPUT
- real :: baremass
- logical, OPTIONAL :: success
or:
- type(particle) :: teilchen -- Particle whose energy should be calculated.
- logical, OPTIONAL :: success
potentialMain/potential_LRF [ Functions ]
[ Top ] [ potentialMain ] [ Functions ]
NAME
real function potential_LRF(teilchen, addCoulomb)
real function potential_LRF(ID,IQ,mom,pos, addCoulomb)
real function potential_LRF(teilchen,density, addCoulomb)
real function potential_LRF(teilchen,rhoB, addCoulomb)
real function potential_LRF(teilchen,med, addCoulomb)
PURPOSE
Evaluates the hadronic potential of particles in the local rest frame (LRF). It's considered to be the 0th component of a vector potential. If 'addCoulomb' is given and true, it also adds the Coulomb potential.
INPUTS
- type(particle) :: teilchen -- particle (already boosted to LRF)
- logical, OPTIONAL :: addCoulomb -- flag, whether to add Coulomb (default: cf. addCoulombDefault)
or:
* integer :: ID -- Id of baryon * integer :: IQ -- Charge of baryon * real, dimension(0:3) :: mom -- momentum of baryon in LRF * real, dimension(1:3) :: pos -- position of baryon
If additional arguments are given, they reduce to define the medium:
- med%density,med%densityProton,med%densityNeutron = rhoB,rhoB/2,rhoB/2
- med%density,med%densityProton,med%densityNeutron = med
In these cases, the position of the particle is not set properly.
Calling the routine with an optional 'density' argument is as in the first case, but giving 'density' also as an optional argument to the internal routine 'mediumAt'.
OUTPUT
function value
potentialMain/scaPot [ Functions ]
[ Top ] [ potentialMain ] [ Functions ]
NAME
real function scapot(part,baremass_out,success, addCoulomb)
real function scapot(ID,IQ,mom,pos,baremass_out,success, addCoulomb)
PURPOSE
Returns the scalar potential of a particle. If 'addCoulomb' is given and true, it includes the Coulomb potential in the calculation.
INPUTS
- type(particle) :: part
- logical, OPTIONAL :: addCoulomb -- flag, whether to add Coulomb (default: cf. addCoulombDefault)
or:
* integer :: ID -- Id of baryon * integer :: IQ -- Charge of baryon * real, dimension(0:3) :: mom -- momentum of baryon in LRF * real, dimension(1:3) :: pos -- position of baryon
OUTPUT
- real, optional :: bareMass_out
- logical, optional :: success
NOTES
Does not respect coulomb potential !
potentialMain/trueEnergy [ Subroutines ]
[ Top ] [ potentialMain ] [ Subroutines ]
NAME
function trueEnergy(part, addCoulomb, partOut)
PURPOSE
- (1) Boosts particle to "Local Rest Frame" (LRF).
- (2) Evaluates energy-rearrangement terms.
- (3) Boosts this back to calculation frame.
INPUTS
- type(particle) :: part -- Particle whose energy is to be calculated
NOTES
- The LRF is the frame in which the baryon current vanishes.
- If the density is very small, then no boost takes place, and the free
energy is assumed. * For all particles besides the nucleon, the free 1-particle energy is equal to the true energy. But for the nucleon we need to substract the rearrangement terms due to the potential. * do not give the same variable both for part and partOut: You will get errors like 'ID=0' in this case.