### TABLE OF CONTENTS

- 1. /baryonWidth
- 1.1. baryonWidth/readTable
- 1.2. baryonWidth/writeTable
- 1.3. baryonWidth/partialWidthBaryon
- 1.4. baryonWidth/FullWidthBaryon
- 1.5. baryonWidth/decayWidthBaryon
- 1.6. baryonWidth/initWidth
- 1.7. baryonWidth/BaryonWidth_gammaN
- 1.8. baryonWidth/readInput
- 1.9. baryonWidth/BaryonWidth
- 1.10. baryonWidth/GetMaxQ
- 1.11. 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/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