TABLE OF CONTENTS
- 1. /baryonWidth
- 1.1. baryonWidth/readTable
- 1.2. baryonWidth/writeTable
- 1.3. baryonWidth/partialWidthBaryon
- 1.4. baryonWidth/getPartialWidthBaryon
- 1.5. baryonWidth/FullWidthBaryon
- 1.6. baryonWidth/decayWidthBaryon
- 1.7. baryonWidth/initWidth
- 1.8. baryonWidth/BaryonWidth_gammaN
- 1.9. baryonWidth/readInput
- 1.10. baryonWidth/BaryonWidth
- 1.11. baryonWidth/GetMaxQ
- 1.12. baryonWidth/InitializeSpectralIntegral
/baryonWidth [ Modules ]
NAME
module baryonWidth
PURPOSE
When this module is initialized then all information for the VACUUM width is once calculated for all resonances and then stored into the field gammaField, which is of type gammaFieldType. This is done by initWidth. Afterwards this field is used to return full and partial width of the resonances in the vacuum by the subroutine "partialWidthBaryon, fullWidthBaryon"
USES
module baryonWidthVacuum
baryonWidth/readTable [ Global module-variables ]
[ Top ] [ baryonWidth ] [ Global module-variables ]
PURPOSE
There is a tabulation of the widths saved in buuinput which is used to initialize ('baryonWidthVacuum.dat.bz2'). If you don't want to use this pre-tabulated input, then you can set "readTable=.false". This is useful for runs on a cluster where you want to minimize input/output. Also it is necessary if the decay channels have been modified (cf. DecayChannels.dat).
SOURCE
logical, save :: readTable = .true.
baryonWidth/writeTable [ Global module-variables ]
[ Top ] [ baryonWidth ] [ Global module-variables ]
PURPOSE
This flag determines whether we write out a new tabulation of the widths ('baryonWidthVacuum.dat.bz2'). It will only have an effects if readTable == .false. or reading of the tabulation file fails for some reason.
SOURCE
logical, save :: writeTable = .false.
baryonWidth/partialWidthBaryon [ Subroutines ]
[ Top ] [ baryonWidth ] [ Subroutines ]
NAME
real function partialwidthBaryon(ID, mass, inWidth, mesonID, baryonID, mesonMass, baryonMass)
PURPOSE
This function calculates the mass-dependent partial width for a specific decay channel of a baryon resonance.
INPUTS
- integer :: ID -- id of resonance
- real :: mass -- p_mu p^mu = mass of the resonance (offshell)
- logical :: inWidth -- .true. => in width(only important for channels with unstable particles), .false. => out width
- integer :: mesonID, baryonID -- ID's of the decay products which one is interested in
- real, optional :: mesonMass, baryonMass -- Possibility to define the masses of the incoming baryon and meson, needed in the case of the In-Width if one of them is off-shell. Otherwise not relevant.
baryonWidth/getPartialWidthBaryon [ Functions ]
[ Top ] [ baryonWidth ] [ Functions ]
NAME
real function getPartialWidthBaryon(ID, mass, i)
PURPOSE
This function calculates the mass-dependent partial width for the i--th decay channel of a baryon resonance.
INPUTS
- integer, intent(in) :: ID ! id of resonance
- real, intent(in) :: mass ! sqrt(p_mu p^mu) = mass of the resonance (offshell), w/o mean field
- integer, intent(in) :: i ! number of the decay channel (i=1,...,nDecays) --- Don't mix with dID !!!
baryonWidth/FullWidthBaryon [ Functions ]
[ Top ] [ baryonWidth ] [ Functions ]
NAME
real function FullWidthBaryon(ID,mass)
PURPOSE
This function calculates the mass-dependent total decay width of a baryon resonance.
INPUTS
NOTES
We declare this function to be recursive, since there may be a cycle as
FullWidthBaryon -> initWidth -> InitializeSpectralIntegral -> FullWidthBaryon
baryonWidth/decayWidthBaryon [ Functions ]
[ Top ] [ baryonWidth ] [ Functions ]
NAME
function decayWidthBaryon(ID, mass) result(decayWidth)
PURPOSE
This function returns the mass-dependent partial widths of all decay channels.
INPUTS
OUTPUT
- real, dimension(1:nDecays)) :: decayWidth -- widths of all decay channels
baryonWidth/initWidth [ Subroutines ]
[ Top ] [ baryonWidth ] [ Subroutines ]
NAME
subroutine initWidth
PURPOSE
Stores the vacuum width of each baryon to the field "gammaField" Should be called only once.
baryonWidth/BaryonWidth_gammaN [ Functions ]
[ Top ] [ baryonWidth ] [ Functions ]
NAME
real function BaryonWidth_gammaN (ID, m_R, m, charge)
PURPOSE
This function calculates the decay width of a baryon resonance going into a nucleon and a gamma*, using the matrix elements from hadronTensor_ResProd.
INPUTS
- integer :: ID -- ID of the baryon resonance
- real :: m_R -- mass of the baryon resonance
- real :: m -- invariant mass of the gamma* (dilepton)
- integer :: charge -- charge of the Delta
OUTPUT
Width in GeV.
baryonWidth/readInput [ Subroutines ]
[ Top ] [ baryonWidth ] [ Subroutines ]
NAME
subroutine readInput
PURPOSE
Reads input in jobcard out of namelist "BaryonWidth".
baryonWidth/BaryonWidth [ Namelists ]
[ Top ] [ baryonWidth ] [ Namelists ]
NAME
NAMELIST /BaryonWidth/
PURPOSE
Includes the input switches:
baryonWidth/GetMaxQ [ Subroutines ]
[ Top ] [ baryonWidth ] [ Subroutines ]
NAME
subroutine GetMaxQ (ID, mass0, gamma0, gammaDelta, BinM, BinMaxQ)
PURPOSE
Calculate the maximal values of the Q weight for bins according BinM
INPUTS
- integer :: ID -- ID of resonance
- real :: mass0 -- pole mass
- real :: gamma0 -- width at pole mass
- real :: gammaDelta -- additional width to be added during calculations
- real, dimension(:) :: BinM -- array with boundaries for M binning
OUTPUT
- real, dimension(:) :: BinMaxQ -- the maximal Q values for each bin.
NOTES
- The size of BinMaxQ has to be at least the size of BinM minus 1.
- It first calculates Q at the boundaries, then it iterates over the tabulated width values in order to take into account, that the Q value may be larger inbetween the boundaries.
- if the Q value is maximal at the upper bound, we store its value as -Q.
baryonWidth/InitializeSpectralIntegral [ Subroutines ]
[ Top ] [ baryonWidth ] [ Subroutines ]
NAME
subroutine InitializeSpectralIntegral(massMax)
PURPOSE
Calculates the integral over the spectral functions and stores the values. Prints a warning message, if the difference to unity is too large