### TABLE OF CONTENTS

- 1. /mesonWidth
- 1.1. mesonWidth/partialWidthMeson
- 1.2. mesonWidth/FullWidthMeson
- 1.3. mesonWidth/initWidth
- 1.4. mesonWidth/cleanUp
- 1.5. mesonWidth/decayWidthMeson
- 1.6. mesonWidth/GetMinMaxMass
- 1.7. mesonWidth/GetMaxQ
- 1.8. mesonWidth/InitializeSpectralIntegral
- 1.9. mesonWidth/calcSpectralIntegral
- 1.10. mesonWidth/GetSpectralIntegral

## /mesonWidth [ Modules ]

NAME

module **mesonWidth**

PURPOSE

When this module is initialized then all information for the VACUUM width is once calculated for all meson 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 meson resonances in the vacuum by the subroutine "partialWidthMeson, fullWidthMeson"

USES

## mesonWidth/partialWidthMeson [ Functions ]

[ Top ] [ mesonWidth ] [ Functions ]

NAME

function **partialWidthMeson** (ID, mass, IDout1, IDout2, IDout3, iQ1, iQ2, iQ3)

PURPOSE

This function calculates the partial width (energy dependent) of all meson resonances.

INPUTS

- integer :: ID -- ID of resonance
- real :: mass -- sqrt(p_mu p^mu) = mass of the resonance (offshell)
- integer :: IDout1, IDout2 -- IDs of decay products (selecting channel of interest)
- integer, OPTIONAL :: IDout3 -- ID of third decay product
- integer, OPTIONAL :: iQ1, iQ2, iQ3 -- Charges of decay products (only relevant for 3-body decays)

## mesonWidth/FullWidthMeson [ Functions ]

[ Top ] [ mesonWidth ] [ Functions ]

NAME

real function **FullWidthMeson**(ID,mass)

PURPOSE

This function calculates the full width (energy dependent) of all meson resonances.

INPUTS

NOTES

We declare this function to be recursive, since there may be a cycle as

FullWidthMeson-> initWidth -> InitializeSpectralIntegral ->FullWidthMeson

## mesonWidth/initWidth [ Subroutines ]

[ Top ] [ mesonWidth ] [ Subroutines ]

NAME

subroutine **initWidth**

PURPOSE

Stores the vacuum width of each meson to the field "gammaField". Should be called only once.

## mesonWidth/cleanUp [ Subroutines ]

[ Top ] [ mesonWidth ] [ Subroutines ]

PURPOSE

Deallocate all fields

## mesonWidth/decayWidthMeson [ Functions ]

[ Top ] [ mesonWidth ] [ Functions ]

NAME

function **decayWidthMeson** (ID, mass, ch) result(decayWidth)

PURPOSE

This function returns the partial out width (energy dependent) for all decay channels.

INPUTS

- integer :: ID -- ID of resonance
- real :: mass -- baremass of the resonance (offshell)
- integer :: ch -- charge of the resonance

OUTPUT

- real, dimension(nDecays) :: decayWidth -- widths

NOTES

The D* resonances are treated explicitly since they are the only resonances which have decay ratios which depend on the charge of the resonance.

## mesonWidth/GetMinMaxMass [ Subroutines ]

[ Top ] [ mesonWidth ] [ Subroutines ]

NAME

subroutine **GetMinMaxMass**(ID,MinMass,MaxMass,InMedium)

PURPOSE

return values of minimal and maximal mass according the mass tabulation

INPUTS

- integer :: ID -- ID of particle
- logical :: InMedium -- Flag to override minimal mass of vector mesons

OUTPUT

NOTES

This returns the minimal mass as stored as default value. For in-medium vector mesons, the minimal mass is reduced to zero.

The maximal mass is given by the size of the array times the bin width. All masses are restricted by an upper bound (=3 GeV).

## mesonWidth/GetMaxQ [ Subroutines ]

[ Top ] [ mesonWidth ] [ 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.

## mesonWidth/InitializeSpectralIntegral [ Subroutines ]

[ Top ] [ mesonWidth ] [ 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.

## mesonWidth/calcSpectralIntegral [ Functions ]

[ Top ] [ mesonWidth ] [ Functions ]

NAME

real function **calcSpectralIntegral**(id,massMax)

PURPOSE

calculate the integral of the spectral function over the mass

## mesonWidth/GetSpectralIntegral [ Functions ]

[ Top ] [ mesonWidth ] [ Functions ]

NAME

real function **GetSpectralIntegral**(id)

PURPOSE

return the value of the integral of the spectral function over the mass