TABLE OF CONTENTS
- 1. /master_1Body
- 1.1. master_1Body/correctEnergy
- 1.2. master_1Body/debug
- 1.3. master_1Body/gammaCutOff
- 1.4. master_1Body/StableInFormation
- 1.5. master_1Body/omegaDecayMediumInfo
- 1.6. master_1Body/omegaDecay_restriction
- 1.7. master_1Body/readInput
- 1.8. master_1Body/master_1body
- 1.9. master_1Body/decayParticle
- 1.10. master_1Body/decayParticle_rhoN
- 1.11. master_1Body/omegaMediumInfo.dat
- 1.12. master_1Body/assignCharge
- 1.13. master_1Body/getMomentum_and_Medium
- 1.14. master_1Body/setKinematics
/master_1Body [ Modules ]
NAME
module master_1Body
PURPOSE
Implements all decays (a -> X).
master_1Body/correctEnergy [ Global module-variables ]
[ Top ] [ master_1Body ] [ 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_1Body/debug [ Global module-variables ]
[ Top ] [ master_1Body ] [ Global module-variables ]
SOURCE
logical, parameter :: debug = .false.
PURPOSE
If .true., additional debugging information will be printed out.
master_1Body/gammaCutOff [ Global module-variables ]
[ Top ] [ master_1Body ] [ Global module-variables ]
SOURCE
real, parameter :: gammaCutOff = 1E-4
PURPOSE
If the decay width is lower than this value, than we treat this particle to be stable during propagation; particle is forced to decay in last time step, if gammaDecay > 0.
master_1Body/StableInFormation [ Global module-variables ]
[ Top ] [ master_1Body ] [ Global module-variables ]
SOURCE
logical, save :: StableInFormation = .true.
PURPOSE
Particles during its formation time are considered to be stable or not.
master_1Body/omegaDecayMediumInfo [ Global module-variables ]
[ Top ] [ master_1Body ] [ Global module-variables ]
SOURCE
logical, save :: omegaDecayMediumInfo = .false.
PURPOSE
Write out information about all decaying omega mesons to a file called "omegaMediumInfo.dat" (decay point, momentum, density, etc).
master_1Body/omegaDecay_restriction [ Global module-variables ]
[ Top ] [ master_1Body ] [ Global module-variables ]
SOURCE
integer, save :: omegaDecay_restriction = 0
PURPOSE
This switch, like omegaDecayMediumInfo, helps to analyze omega -> pi0 gamma decays. It will only have an effect for omegaDecayMediumInfo = .true. Possible values:
- 0 = none (default)
- 1 = vacuum ( rho < 0.1 rho0)
- 2 = medium ( rho > 0.1 rho0)
With the default value (0), all omega decays are carried out as usual. For the value 1, the decay products are only kept, if the decay happens in the vacuum (i.e. at rho < 0.1 * rho0). For the value 2, the decay products are only kept, if the decay happens in the medium (i.e. at rho > 0.1 * rho0). If the density does not meet these conditions, the decay products are simply removed and will not be put in the particle vector (and thus they will not appear in the analysis).
master_1Body/readInput [ Subroutines ]
[ Top ] [ master_1Body ] [ Subroutines ]
NAME
subroutine readInput
PURPOSE
Reads input in jobcard out of namelist "master_1body".
master_1Body/master_1body [ Namelists ]
[ Top ] [ master_1Body ] [ Namelists ]
NAME
NAMELIST /master_1body/
PURPOSE
Includes the switches:
master_1Body/decayParticle [ Subroutines ]
[ Top ] [ master_1Body ] [ Subroutines ]
NAME
subroutine decayParticle(resonanceIN, finalState, collisionFlag, pauliFlag, finalFlag, time, gammaOut)
PURPOSE
Evaluates for a given particle the final states of a decay process. First it checks wether the decay takes place in this time step, then it evaluates the final state if the decay criteria is fulfilled.
Treatment of the antiParticles: If the incoming resonance is an anti-particle, then we charge conjugate the incoming resonance and promote it to a particle. In the end we will do the charge conjugation again and promote all particle to antiparticles. If the particle is still in its formation period (%in_formation=.true.) then we do not allow it to decay!
INPUTS
- type(particle),dimension(1:1) :: resonanceIN -- incoming particle
- logical :: finalFlag -- if .true. then decay is forced to happen
- real :: time -- current time in fermi [does not influence any MC decisions; only used for analysis]
OUTPUT
- type(particle),dimension(:) :: finalState -- produced final state
- logical :: collisionFlag -- true if decay took place
- logical :: pauliFlag -- Set to .true. if Pauli blocking is already considered in decay decision
- real, optional :: gammaOut -- full width [GeV]
master_1Body/decayParticle_rhoN [ Functions ]
[ Top ] [ master_1Body ] [ Functions ]
NAME
function decayParticle_rhoN (resonanceIN, finalState) result (gammaDecay)
PURPOSE
Performs the decay of a baryon resonance into a rho0-N final state and returns the decay width associated with that process.
INPUTS
- type(particle) :: resonanceIN -- incoming resonance
OUTPUT
- type(particle) :: finalState(1:2) -- produced final state
- real :: gammaDecay -- decay width into rho0-N [GeV]
master_1Body/omegaMediumInfo.dat [ Output files ]
[ Top ] [ master_1Body ] [ Output files ]
NAME
file omegaMediumInfo.dat
PURPOSE
This file contains informations about omega mesons at decay time (event number, perweight, 4-momentum, position, bare mass, density at decy point, time, etc).
master_1Body/assignCharge [ Subroutines ]
[ Top ] [ master_1Body ] [ Subroutines ]
NAME
subroutine assignCharge(outPart,inID,inCharge)
PURPOSE
Random Choice of charges for a 2-body final-state in a given decay of a resonance "inID" of charge "inCharge". The charges are choosen for hadronic decays according to the Clebsch-Gordan coefficients. For weak decays the charges are distributed according to their weak decay channels.
INPUTS
- type(particle), dimension(1:2) :: outPart -- pair resulting of a decay
- integer :: inID -- Id of decaying particle
- integer :: inCharge -- Charge of decaying particle
OUTPUT
NOTES
Be careful: variables named isospin can also contain isospin*2 to convert to integer values.
master_1Body/getMomentum_and_Medium [ Subroutines ]
[ Top ] [ master_1Body ] [ Subroutines ]
NAME
subroutine getMomentum_and_Medium(resonance,momentumLRF, betatToLRF, mediumAtDecay)
PURPOSE
Evaluates for a given particle the medium at its position and transforms its momentum into the LRF.
INPUTS
OUTPUT
- type(medium) :: mediumAtDecay
- real, dimension(0:3) :: momentumLRF -- momentum in the LRF
- real, dimension(1:3) :: betaToLRF -- beta for boost to LRF
master_1Body/setKinematics [ Functions ]
[ Top ] [ master_1Body ] [ Functions ]
NAME
function setKinematics (resonance, finalState, mediumAtCollision, betaToLRF, L) result(collisionFlag)
PURPOSE
Evaluates the kinematics for the "finalState" particles.
INPUTS
- type(particle) :: resonance -- resonance which decays into "FinalState"
- type(medium) :: mediumAtCollision -- medium information
- real,dimension(1:3) :: betaToLRF -- beta for boost to Local Rest Frame
- integer :: L -- angular momentum in final state
- type(particle),dimension(:) :: finalState -- vector of final-state particles
OUTPUT
- type(particle),dimension(:) :: finalState -- vector of final-state particles
- logical :: collisionFlag -- "true" if kinematics could be set, "false" if not
NOTES
It's important that the IDs and charges of the "finalState" particles are already set when calling this subroutine.
Only kinematics including masses of this finalState will be set.