TABLE OF CONTENTS
- 1. /initLowPhoton
- 1.1. initLowPhoton/pascalTwoPi
- 1.2. initLowPhoton/equalDistribution_twoPi
- 1.3. initLowPhoton/twoPi
- 1.4. initLowPhoton/vecMes
- 1.5. initLowPhoton/vecMes_Delta
- 1.6. initLowPhoton/resonances
- 1.7. initLowPhoton/singlePi
- 1.8. initLowPhoton/pi0Eta
- 1.9. initLowPhoton/pi0Eta=_factor_neutron
- 1.10. initLowPhoton/fritiof
- 1.11. initLowPhoton/includeResonance
- 1.12. initLowPhoton/onlyDelta
- 1.13. initLowPhoton/onlyDelta_not
- 1.14. initLowPhoton/debugFlag
- 1.15. initLowPhoton/energy_gamma
- 1.16. initLowPhoton/delta_energy
- 1.17. initLowPhoton/energy_weighting
- 1.18. initLowPhoton/noNucs_twoPi
- 1.19. initLowPhoton/realRun
- 1.20. initLowPhoton/nuclearTarget_corr
- 1.21. initLowPhoton/makeHist_mass_energy
- 1.22. initLowPhoton/useXsectionBoost
- 1.23. initLowPhoton/selectFrame
- 1.24. initLowPhoton/printXS
- 1.25. initLowPhoton/scale1535
- 1.26. initLowPhoton/readInput
- 1.27. initLowPhoton/low_photo_induced
- 1.28. initLowPhoton/init_LowPhoton.log
- 1.29. initLowPhoton/cleanUp
- 1.30. initLowPhoton/getResonances
- 1.31. initLowPhoton/getSinglePi
- 1.32. initLowPhoton/getPi0eta
- 1.33. initLowPhoton/getTwoPi
- 1.34. initLowPhoton/getVecMes
- 1.35. initLowPhoton/lowPhotonInit_getRealRun
- 1.36. initLowPhoton/getEnergyGamma
- 1.37. initLowPhoton/getDeltaEnergy
- 1.38. initLowPhoton/energyWeight
- 1.39. initLowPhoton/initialize_lowPhoton
- 1.40. initLowPhoton/OmegaExcitFunc.dat
- 1.41. initLowPhoton/printOutXS
- 1.42. initLowPhoton/lowPhoton_XS.dat
- 1.43. initLowPhoton/lowPhoton_XS_res.dat
- 1.44. initLowPhoton/saveCoordinate
- 1.45. initLowPhoton/getCoordinate
- 1.46. initLowPhoton/omegaProdInfo
- 1.47. initLowPhoton/omegaProdInfo.dat
- 1.48. initLowPhoton/omegaProdDensity.dat
- 1.49. initLowPhoton/twoPiProduction
- 1.50. initLowPhoton/binSrts
- 1.51. initLowPhoton/sigma_1pi_bg
- 1.52. initLowPhoton/vecmesProduction
- 1.53. initLowPhoton/transitionEvent
/initLowPhoton [ Modules ]
NAME
module initLowPhoton
PURPOSE
Includes initialization of photon induced events at low energies.
NOTES
due to negative weights of some contributions, the total cross section and the sum of cross sections (absolut value) has to be distinguished.
initLowPhoton/pascalTwoPi [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: pascalTwoPi=.true.
PURPOSE
To switch on Pascal Muehlich's event generator for the gamma N -> N pi pi reaction:
- .true. : Pascal's prescription
- .false. : phase space
initLowPhoton/equalDistribution_twoPi [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: equalDistribution_twoPi=.false.
PURPOSE
All two pion production channels are populated with the same probability. This enhances the production of pi^0 pi0 pairs. Here, one has been careful to set perweight in a careful manner.
initLowPhoton/twoPi [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: twoPi = .true.
PURPOSE
Switch for the direct 2pi production (gamma N -> N pi pi). If resonances=.true., then it is only a background, else the full cross section. Only works up to sqrt(s) = 2.1 GeV and is set to zero above.
initLowPhoton/vecMes [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: vecMes(1:3) = .false.
PURPOSE
Switch for the production of neutral vector mesons: gamma N -> V N (1=rho^0,2=omega,3=phi)
initLowPhoton/vecMes_Delta [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: vecMes_Delta(1:3) = .false.
PURPOSE
Switch for the production of neutral vector mesons: gamma N -> V Delta (1=rho^0,2=omega,3=phi)
initLowPhoton/resonances [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: resonances = .false.
PURPOSE
Switch for including or excluding resonance production processes.
initLowPhoton/singlePi [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: singlePi = .false.
PURPOSE
Switch for including direct single pion production. If resonances=.true. then it's only a background, else the full cross section. Only works up to sqrt(s) = 2.0 GeV and is set to zero above.
initLowPhoton/pi0Eta [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: pi0Eta = .false.
PURPOSE
Switch for including direct pi^0 eta production. Only works up to sqrt(s) = 2.5 GeV and is set to zero above.
initLowPhoton/pi0Eta=_factor_neutron [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
real, save :: pi0eta_factor_neutron=1.
PURPOSE
Scaling the gamma n->n pi^0 eta cross section. We assume
sigma(gamma n->n pi^0 eta) = pi0eta_factor_neutron * sigma(gamma p->p pi^0 eta)
initLowPhoton/fritiof [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: fritiof = .false.
PURPOSE
Switch for including FRITIOF events, cf. 'transitionEvent'. Will not give any contributions below sqrt(s) = 1.7 GeV.
initLowPhoton/includeResonance [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical,save,dimension(1:100) :: includeResonance=.true.
PURPOSE
Switch for including/excluding specific resonances, e.g. includeResonance(21)=.false. excludes the D33(1700).
initLowPhoton/onlyDelta [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical,save :: onlyDelta=.false.
PURPOSE
Switch for including only the Delta resonance.
initLowPhoton/onlyDelta_not [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical,save :: onlyDelta_not=.false.
PURPOSE
Switch for excluding only the Delta resonance.
initLowPhoton/debugFlag [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: debugFlag=.false.
PURPOSE
To switch on debugging information.
initLowPhoton/energy_gamma [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
real, save :: energy_gamma = 0.
PURPOSE
Energy of incoming photon in nucleus rest frame (in GeV).
initLowPhoton/delta_energy [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
real, save :: delta_energy=0.
PURPOSE
Increase of energy for energy scans.
initLowPhoton/energy_weighting [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
integer, save :: energy_weighting = 0
PURPOSE
Determines the relative weight of different photon energies in energy scans Possible values:
- 0 = flat distribution (all energies are weighted equal)
- 1 = exponential distr. (energies are weighted ~ 1/E)
initLowPhoton/noNucs_twoPi [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: noNucs_twoPi=.false.
PURPOSE
Do not propagate the nucleons which are produced in a 2Pi event.
initLowPhoton/realRun [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: realRun=.false.
PURPOSE
Do not initialize the final state particles as perturbative particles but as real ones.
initLowPhoton/nuclearTarget_corr [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical , save :: nuclearTarget_corr=.true.
PURPOSE
If the input is a nuclear target, then the target nucleus is assumed to be at rest and we calculate the cross section for a nuclear target. Therefore, we use the flux factor with respect to the nucleus.
NOTES
- Use ".false." only for debugging.
initLowPhoton/makeHist_mass_energy [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: makeHist_mass_energy=.false.
PURPOSE
Protocol the bare mass and the absolute momentum of excited resonances
Output is written to files named
"Mass_and_energy_resID_'resID'_'energy of photon'_MeV.dat"
initLowPhoton/useXsectionBoost [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: useXsectionBoost=.true.
PURPOSE
boost Xsections from nucleon rest frame to lab frame (where necessary)
NOTES
- Up to now only implemented for 2pi, not necessary for single pi and resonances
- Check vecMes production !!!!
initLowPhoton/selectFrame [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
integer, save :: selectFrame = 1
PURPOSE
Select the frame in which 'sqrt(s)_free' is calulated: 1 = CM frame (default) 2 = LAB frame
In the chosen frame, one removes the 0th component of the potential from the nucleon momentum. Then this modified momentum is used to calculate sqrt(s)_free.
initLowPhoton/printXS [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: printXS = .false.
PURPOSE
Write out the photoproduction cross sections to files "lowPhoton_XS.dat" and "lowPhoton_XS_res.dat".
initLowPhoton/scale1535 [ Global module-variables ]
[ Top ] [ initLowPhoton ] [ Global module-variables ]
SOURCE
logical, save :: scale1535 = .true.
PURPOSE
Flag whether to rescale the helicity amplitudes of the N*(1535) to get the eta photopruduction right
initLowPhoton/readInput [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine readInput
PURPOSE
Reads input out of jobcard. Namelist 'low_photo_induced'.
initLowPhoton/low_photo_induced [ Namelists ]
[ Top ] [ initLowPhoton ] [ Namelists ]
NAME
NAMELIST low_photo_induced
PURPOSE
Includes input parameters
Kinematical parameters:
Single Pion production:
Two pion production:
- twoPi
- pi0eta
- pi0eta_factor_neutron
- pascalTwoPi
- noNucs_twoPi
- equalDistribution_twoPi
Resonance production:
Vector meson production:
- vecMes
- vecMes_Delta
- gammaN_VN_formation
- fritiof
Technical:
initLowPhoton/init_LowPhoton.log [ Output files ]
[ Top ] [ initLowPhoton ] [ Output files ]
NAME
file init_LowPhoton.log
PURPOSE
Logfile for the lowPhoton init
initLowPhoton/cleanUp [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine cleanUp
PURPOSE
cleanup allocated array and histograms
initLowPhoton/getResonances [ Functions ]
[ Top ] [ initLowPhoton ] [ Functions ]
NAME
logical function getResonances()
PURPOSE
return variable 'resonances'
initLowPhoton/getSinglePi [ Functions ]
[ Top ] [ initLowPhoton ] [ Functions ]
NAME
logical function getSinglePi()
PURPOSE
initLowPhoton/getPi0eta [ Functions ]
[ Top ] [ initLowPhoton ] [ Functions ]
NAME
logical function getPi0eta()
PURPOSE
return variable 'pi0eta'
initLowPhoton/getTwoPi [ Functions ]
[ Top ] [ initLowPhoton ] [ Functions ]
NAME
logical function getTwoPi()
PURPOSE
return variable 'twopi'
initLowPhoton/getVecMes [ Functions ]
[ Top ] [ initLowPhoton ] [ Functions ]
NAME
logical function getVecMes()
PURPOSE
return logical 'or' of vecMes() and vecMes_Delta()
initLowPhoton/lowPhotonInit_getRealRun [ Functions ]
[ Top ] [ initLowPhoton ] [ Functions ]
NAME
logical function lowPhotonInit_getRealRun()
PURPOSE
initLowPhoton/getEnergyGamma [ Functions ]
[ Top ] [ initLowPhoton ] [ Functions ]
NAME
real function getEnergyGamma()
PURPOSE
return variable 'energy_gamma'
initLowPhoton/getDeltaEnergy [ Functions ]
[ Top ] [ initLowPhoton ] [ Functions ]
NAME
real function getDeltaEnergy()
PURPOSE
return variable 'delta_energy'
initLowPhoton/energyWeight [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
real function energyWeight(E)
PURPOSE
Computes a weighting factor which depends on the photon energy. Currently this weighting can be flat or exponential, cf. 'energy_weighting'.
INPUTS
- real, intent(in) :: E -- the current photon energy
NOTES
All weighting functions implemented here should be normalized to the same value, i.e. doing a summation over all energies should yield a value of num_Energies, like in the flat case.
initLowPhoton/initialize_lowPhoton [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine initialize_lowPhoton(realParticles, pertParticles, raiseFlag, targetNuc)
PURPOSE
- Initializes a photon event on each nucleon in the realparticles vector.
- The resulting particles are set into the pertParticles vector.
- The assigned perweight is given for each single event by sigma_Total/(number of ensembles)/(number of nucleons per ensemble).
- Pauli blocking is accounted for.
INPUTS
- type(particle), dimension(:,:) :: realParticles
- type(particle), dimension(:,:) :: pertParticles
- logical :: raiseFlag -- If .true. then the photon energy is raised by delta_energy
- type(tNucleus), pointer :: targetNuc -- target Nucleus
OUTPUT
- type(particle), dimension(:,:) :: realParticles
- type(particle), dimension(:,:) :: pertParticles
NOTES
- For the 1Pi Background, we allow for negative perweights. Henceforth, the Monte-Carlo sampling is done according to sum ( abs (cross sections) ). Then the perweight for a special channel "i" is given by sig(i)/abs(sig(i)) * sum ( abs (cross sections) ).
- cross sections in [\mu b].
initLowPhoton/OmegaExcitFunc.dat [ Output files ]
[ Top ] [ initLowPhoton ] [ Output files ]
NAME
file OmegaExcitFunc.dat
PURPOSE
Contains the omega excitation function, i.e. the energy-dependent inclusive omega photo-production cross section. In contrast to OmegaExcitFunc_pi0gamma.dat, this does not include FSI effects.
initLowPhoton/printOutXS [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine printOutXS
PURPOSE
...
initLowPhoton/lowPhoton_XS.dat [ Output files ]
[ Top ] [ initLowPhoton ] [ Output files ]
NAME
file lowPhoton_XS.dat
PURPOSE
Contains various photoproduction cross sections per nucleon (without FSI).
PURPOSE
Columns:
* 1 : E_gamma [Gev] * 2 : sqrt(s) [GeV] * 3 : total cross section [microbarn/A] * 4 : sum of all resonances * 5-7 : exclusive pi-, pi0, pi+ * 8-11 : 2pi * 12-20: vector mesons * 21 : pi0 eta * 22 : Fritiof
initLowPhoton/lowPhoton_XS_res.dat [ Output files ]
[ Top ] [ initLowPhoton ] [ Output files ]
NAME
file lowPhoton_XS_res.dat
PURPOSE
Contains the resonance photoproduction cross sections per nucleon (without FSI).
PURPOSE
Columns:
* 1 : E_gamma [Gev] * 2 : sqrt(s) [GeV] * 3-63: resonance cross sections [microbarn/A]
initLowPhoton/saveCoordinate [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine saveCoordinate(firstEventNumber,x)
PURPOSE
Used to save production coordinates of particles
INPUTS
- integer :: firstEventNumber -- firstEventnumber associated to position x
- real, dimension(1:3) :: x -- position
initLowPhoton/getCoordinate [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine getCoordinate(firstEventNumber,x)
PURPOSE
Used to return production coordinates of particles
INPUTS
- integer :: firstEventNumber -- firstEventnumber associated to position x
OUTPUT
- real, dimension(1:3) :: x -- position
initLowPhoton/omegaProdInfo [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine omegaProdInfo(part, med)
PURPOSE
...
initLowPhoton/omegaProdInfo.dat [ Output files ]
[ Top ] [ initLowPhoton ] [ Output files ]
NAME
file omegaProdInfo.dat
PURPOSE
This file contains informations about omega mesons at production time (event number, perweight, 4-momentum, position, density at production point, etc).
initLowPhoton/omegaProdDensity.dat [ Output files ]
[ Top ] [ initLowPhoton ] [ Output files ]
NAME
file omegaProdDensity.dat
PURPOSE
This file contains a histogram of the density at the production point of omega mesons.
initLowPhoton/twoPiProduction [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine twoPiProduction(qnuk, momNuk, posNuk, egamma, sig2Pi, sumAbsSig, srtFree, betaToCalcFrame, mediumAtPosition, finalState, successFlag)
PURPOSE
Initialize a photon nucleon -> nucleon pion pion event.
The resulting particles are returned via the field "finalState".
The assigned perweight is given for each single event by
sigma_Total/(number of ensembles)/(number of nucleons per ensemble).
INPUTS
- integer :: qnuk -- charge of nucleon
- real :: egamma -- energy of gamma
- real, dimension(0:3) :: sig2pi -- Xsections for two-pi-production, according to gamma2pi
- real, dimension(0:3) :: momNuk -- momentum of nucleon in incoming channel
- real, dimension(1:3) :: posNuk -- position of nucleon in incoming channel
- real :: srtFree -- sqrt(s) in vacuum prescription
- real, dimension(1:3) :: betaToCalcFrame -- velocity of calc frame in cm frame, necessary to boost from CM frame to calc-frame
- real :: sumAbsSig -- total cross section, used to set perweight
OUTPUT
- logical :: successFlag -- whether event could be generated
- type(particle), dimension(1:3) :: finalState -- final state particles
initLowPhoton/binSrts [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine binSrts(srts,srtsFree,PrintFlag)
PURPOSE
...
initLowPhoton/sigma_1pi_bg [ Functions ]
[ Top ] [ initLowPhoton ] [ Functions ]
NAME
function sigma_1pi_bg(targetNuc,phi_pi,theta_pi,q,k_pi,pf_pi) result(sigma)
PURPOSE
- Evaluated bg cross section for gamma N -> N pion events.
- The cross section is the difference of the total pion production cross section in the vacuum and the resonance contributions in the vacuum.
- The final state momenta are evaluated in the medium
INPUTS
OUTPUT
- real, dimension(-1:1) :: sigma
- real, dimension(-1:1,0:3) :: k, pf
initLowPhoton/vecmesProduction [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine vecmesProduction(nuc, gamma, sigVM, sumAbsSig, srts, srtFree, betaCM, mediumAtPosition, fState, flag)
PURPOSE
photon-induced vector meson production on a nucleon (only neutral vector mesons)
INPUTS
- type(particle) :: nuc,gamma -- incoming nucleon, photon
- real :: sigVM(0:8) -- cross section for different channels
- real :: sumAbsSig -- total cross section
- real :: srts -- sqrt(s)
- real :: srtFree -- sqrt(s) in vacuum
- real :: betaCM(3) -- beta for boost from CM to Lab frame
- type(medium) :: mediumAtPosition
OUTPUT
- type(particle) :: fState(2) -- final state particles
- logical :: flag
initLowPhoton/transitionEvent [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine transitionEvent(nuc, flagOk, outPart, W, XS, pcm, beta, nout)
PURPOSE
This routine creates inclusive FRITIOF events above E_gamma ~ 1.4 GeV, excluding the exclusive channels N+V and Delta+V, which are treated separately.
It is mainly used for inclusive production of vector mesons, such as V+N+pi, V+N+2pi, V+Delta+pi, V+Delta+2pi, etc.
Cf. Muehlich, Falter, Mosel: Inclusive omega photoproduction off nuclei Eur. Phys. J. A 20, 499-508 (2004)
INPUTS
- type(particle) :: nuc -- incoming nucleon
- real :: W
- real, dimension(0:3) :: pcm
- real, dimension(1:3) :: beta
- real, dimension(0:4) :: XS -- zero component is total XS
OUTPUT
- logical :: flagOk
- type(particle),dimension(:) :: outPart -- outgoing particles
- integer :: nOut