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/readInput
- 1.26. initLowPhoton/low_photo_induced
- 1.27. initLowPhoton/init_LowPhoton.log
- 1.28. initLowPhoton/cleanUp
- 1.29. initLowPhoton/getResonances
- 1.30. initLowPhoton/getSinglePi
- 1.31. initLowPhoton/getPi0eta
- 1.32. initLowPhoton/getTwoPi
- 1.33. initLowPhoton/getVecMes
- 1.34. initLowPhoton/lowPhotonInit_getRealRun
- 1.35. initLowPhoton/getEnergyGamma
- 1.36. initLowPhoton/getDeltaEnergy
- 1.37. initLowPhoton/energyWeight
- 1.38. initLowPhoton/initialize_lowPhoton
- 1.39. initLowPhoton/OmegaExcitFunc.dat
- 1.40. initLowPhoton/printOutXS
- 1.41. initLowPhoton/lowPhoton_XS.dat
- 1.42. initLowPhoton/lowPhoton_XS_res.dat
- 1.43. initLowPhoton/saveCoordinate
- 1.44. initLowPhoton/getCoordinate
- 1.45. initLowPhoton/omegaProdInfo
- 1.46. initLowPhoton/omegaProdInfo.dat
- 1.47. initLowPhoton/omegaProdDensity.dat
- 1.48. initLowPhoton/twoPiProduction
- 1.49. initLowPhoton/binSrts
- 1.50. initLowPhoton/sigma_1pi_bg
- 1.51. initLowPhoton/vecmesProduction
- 1.52. initLowPhoton/transitionEvent
/initLowPhoton [ Modules ]
NAME
module initLowPhoton
PURPOSE
Includes initialization of photon induced events at low energies.
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/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, sigtot, 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 :: sigtot -- 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 [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine sigma_1pi_bg(targetNuc,phi_pi,theta_pi,q,k_pi,pf_pi)
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
initLowPhoton/vecmesProduction [ Subroutines ]
[ Top ] [ initLowPhoton ] [ Subroutines ]
NAME
subroutine vecmesProduction(nuc, gamma, sigVM, sigTot, srts, srtFree, betaCM, mediumAtPosition, fState, flag)
PURPOSE
photon-induced vector meson production on a nucleon (only neutral vector mesons)
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)