TABLE OF CONTENTS
- 1. /neutrinoXsection
- 1.1. neutrinoXsection/debugflag
- 1.2. neutrinoXsection/nuclear_phasespace
- 1.3. neutrinoXsection/singlePiModel
- 1.4. neutrinoXsection/integralPrecision
- 1.5. neutrinoXsection/integralPrecisionQE
- 1.6. neutrinoXsection/enu
- 1.7. neutrinoXsection/delta_enu
- 1.8. neutrinoXsection/Qs
- 1.9. neutrinoXsection/delta_Qs
- 1.10. neutrinoXsection/W
- 1.11. neutrinoXsection/delta_W
- 1.12. neutrinoXsection/costheta
- 1.13. neutrinoXsection/delta_costheta
- 1.14. neutrinoXsection/elepton
- 1.15. neutrinoXsection/delta_elepton
- 1.16. neutrinoXsection/invariantMassCut
- 1.17. neutrinoXsection/invariantMassCut_BG
- 1.18. neutrinoXsection/DISmassless
- 1.19. neutrinoXsection/DIScutW1
- 1.20. neutrinoXsection/DIScutW2
- 1.21. neutrinoXsection/REScutW1
- 1.22. neutrinoXsection/REScutW2
- 1.23. neutrinoXsection/mcutDIS
- 1.24. neutrinoXsection/MC_xmax
- 1.25. neutrinoXsection/DISformfakEM
- 1.26. neutrinoXsection/DISformfakNCCC
- 1.27. neutrinoXsection/readinput
- 1.28. neutrinoXsection/nl_neutrinoxsection
- 1.29. neutrinoXsection/nl_integratedSigma
- 1.30. neutrinoXsection/nl_dSigmadCosThetadElepton
- 1.31. neutrinoXsection/nl_dSigmadQsdElepton
- 1.32. neutrinoXsection/nl_dSigmadQs
- 1.33. neutrinoXsection/nl_dSigmadW
- 1.34. neutrinoXsection/nl_dSigmadcostheta
- 1.35. neutrinoXsection/nl_dSigmadElepton
- 1.36. neutrinoXsection/nl_SigmaMC
- 1.37. neutrinoXsection/Xsec_SigmaMC
- 1.38. neutrinoXsection/SetXsecMC
- 1.39. neutrinoXsection/Xsec_integratedSigma
- 1.40. neutrinoXsection/Xsec_dSigmadCosThetadElepton
- 1.41. neutrinoXsection/Xsec_dSigmadQsdElepton
- 1.42. neutrinoXsection/Xsec_dSigmadcostheta
- 1.43. neutrinoXsection/Xsec_dSigmadElepton
- 1.44. neutrinoXsection/XsecdCosthetadElepton
- 1.45. neutrinoXsection/SetHadronCharge
- 1.46. neutrinoXsection/getCosthetaLimits
- 1.47. neutrinoXsection/getEleptonLimits
- 1.48. neutrinoXsection/getQsLimits
- 1.49. neutrinoXsection/checkLimits
- 1.50. neutrinoXsection/get_xsection_namelist
- 1.51. neutrinoXsection/useQEextraterm
- 1.52. neutrinoXsection/useCorrelations
- 1.53. neutrinoXsection/nievesCorr_para
- 1.54. neutrinoXsection/gp
- 1.55. neutrinoXsection/withScalarInt
/neutrinoXsection [ Modules ]
NAME
module neutrinoXsection
PURPOSE
This module calculates various neutrino cross sections, depending on the choice of the user:
- integrated or differential or double differential cross sections (according to the value of nuXsectionmode, the corresponding subroutines are called in the neutrino init file)
- EM, CC or NC (according to the value of process_ID given as input to the corresponding subroutines)
- muon, electron or tau flavor (according to the value of flavor_ID given as input to the corresponding subroutines)
neutrinoXsection/debugflag [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
logical, parameter :: debugflag=.false.
PURPOSE
to switch on/off debug information
neutrinoXsection/nuclear_phasespace [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
logical, save :: nuclear_phasespace=.true.
PURPOSE
to change between different phasespace factors. (change only for debugging purposes):
- .false. = 1/SP(k_in,p_in) i.e. phasespace factor for each nucleon
- .true. = 1/k_in(0)*p_in(0) i.e. global phasespace factor for the nucleus
neutrinoXsection/singlePiModel [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
integer, save :: singlePiModel=1
PURPOSE
to change between different models for the pion nucleon cross section:
- 0 = pi N according to Nieves et al (hep-ph/0701149)
- 1 = MAID-like model
neutrinoXsection/integralPrecision [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
integer, save :: integralPrecision=3
PURPOSE
precision for the Gauss integration (reduce it for nuXsectionMode.eq.0 (sigma) to e.g. 2)
neutrinoXsection/integralPrecisionQE [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
integer, save :: integralPrecisionQE=500
PURPOSE
precision for the Gauss integration over the QE peak (reduce it for nuXsectionMode.eq.0 (sigma) to e.g. 300)
neutrinoXsection/enu [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: enu=-10.
PURPOSE
neutrino energy, read in by namelist
neutrinoXsection/delta_enu [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: delta_enu=-10.
PURPOSE
value by which the neutrino energy is increased
neutrinoXsection/Qs [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: Qs=-10.
PURPOSE
momentum transfer squared
neutrinoXsection/delta_Qs [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: delta_Qs=-10.
PURPOSE
value by which Qs is increased
neutrinoXsection/W [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: W=-10.
PURPOSE
invariant mass defined as (p+q)^2
neutrinoXsection/delta_W [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: delta_W=-10.
PURPOSE
value by which W is increased
neutrinoXsection/costheta [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: costheta=-10.
PURPOSE
cosine of the angle between the neutrino (z-direction) and the outgoing lepton
neutrinoXsection/delta_costheta [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: delta_costheta=-10.
PURPOSE
value by which costheta is increased
neutrinoXsection/elepton [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: elepton=-10.
PURPOSE
energy of the outgoing lepton
neutrinoXsection/delta_elepton [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: delta_elepton=-10.
PURPOSE
value by which elepton is increased
neutrinoXsection/invariantMassCut [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: invariantMassCut=100.
PURPOSE
cut events with invariant Mass above this value (in GeV); cut pion production from Delta and DIS on Wrec = Sqrt[M^2 + 2*M*nu - Q^2]
neutrinoXsection/invariantMassCut_BG [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: invariantMassCut_BG=100.
PURPOSE
cut MAID-like background events with invariantMass_BG above this value (in GeV); cut 1pi BG on Wrec = Sqrt[M^2 + 2*M*nu - Q^2]
neutrinoXsection/DISmassless [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
logical, save :: DISmassless = .false.
PURPOSE
Flag whether the PYTHIA calculation for the DIS process is done with massless or massive (Mquark~300MeV) quarks and diquarks.
neutrinoXsection/DIScutW1 [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: DIScutW1 = 1.6
PURPOSE
lower W-cut for linear onset of DIS
neutrinoXsection/DIScutW2 [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: DIScutW2 = 1.65
PURPOSE
upper W-cut for linear onset of DIS
neutrinoXsection/REScutW1 [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: REScutW1 = 2.00
PURPOSE
lower W-cut for linear turn-off of resonances
neutrinoXsection/REScutW2 [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: REScutW2 = 2.05
PURPOSE
upper W-cut for linear turn-off or resonances
neutrinoXsection/mcutDIS [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real, save :: mcutDIS = 0.60
PURPOSE
parameter to control Q^2 dependence of DIS
neutrinoXsection/MC_xmax [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
real,save :: MC_xmax = 2.0
PURPOSE
neutrinoXsection/DISformfakEM [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
integer,save :: DISformfakEM = 2
PURPOSE
Introduce an additional form factor for the DIS cross section, when processed via a photon:
In case of electron induced events, we need choose 2 in order to be compatible with Pythia's electron machinery.
neutrinoXsection/DISformfakNCCC [ Global module-variables ]
[ Top ] [ neutrinoXsection ] [ Global module-variables ]
SOURCE
integer,save :: DISformfakNCCC = 1
PURPOSE
Introduce an additional form factor for the DIS cross section, when processed via W or Z boson:
In case of electron induced events, we need choose 2 in order to be compatible with Pythia's electron machinery.
neutrinoXsection/readinput [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine readinput(nuXsectionmode)
PURPOSE
This subroutine reads input out of jobcard. Namelist 'nl_neutrinoxsection' is read in always. All other namelist are read depending on the value of nuXsectionmode. If a nuXsectionmode for a particular experiment is chosen, with inherent flux integration, the parameter enu must be set to some dummy, but reasonable value > 0
neutrinoXsection/nl_neutrinoxsection [ Namelists ]
[ Top ] [ neutrinoXsection ] [ Namelists ]
NAME
NAMELIST /nl_neutrinoxsection/
PURPOSE
This Namelist includes:
- integralPrecision
- integralPrecisionQE
- singlePiModel
- invariantMassCut
- invariantMassCut_BG
- DISmassless
- DIScutW1
- DIScutW2
- REScutW1
- REScutW2
- DISformfakEM
- DISformfakNCCC
- mcutDIS
neutrinoXsection/nl_integratedSigma [ Namelists ]
[ Top ] [ neutrinoXsection ] [ Namelists ]
NAME
NAMELIST /nl_integratedSigma/
PURPOSE
This Namelist is read in when nuXsectionmode=integratedsigma and includes:
neutrinoXsection/nl_dSigmadCosThetadElepton [ Namelists ]
[ Top ] [ neutrinoXsection ] [ Namelists ]
NAME
NAMELIST /nl_dSigmadCosThetadElepton/
PURPOSE
This Namelist is read in when nuXsectionmode=dSigmadCosThetadElepton and includes:
neutrinoXsection/nl_dSigmadQsdElepton [ Namelists ]
[ Top ] [ neutrinoXsection ] [ Namelists ]
NAME
NAMELIST /nl_dSigmadQsdElepton/
PURPOSE
This Namelist is read in when nuXsectionmode=dSigmadQsdElepton and includes:
neutrinoXsection/nl_dSigmadQs [ Namelists ]
[ Top ] [ neutrinoXsection ] [ Namelists ]
NAME
NAMELIST /nl_dSigmadQs/
PURPOSE
This Namelist is read in when nuXsectionmode=dSigmadQs and includes:
neutrinoXsection/nl_dSigmadW [ Namelists ]
[ Top ] [ neutrinoXsection ] [ Namelists ]
NAME
NAMELIST /nl_dSigmadW/
PURPOSE
This Namelist is read in when nuXsectionmode=dSigmadW and includes:
neutrinoXsection/nl_dSigmadcostheta [ Namelists ]
[ Top ] [ neutrinoXsection ] [ Namelists ]
NAME
NAMELIST /nl_dSigmadcostheta/
PURPOSE
This Namelist is read in when nuXsectionmode=dSigmadcostheta and includes:
neutrinoXsection/nl_dSigmadElepton [ Namelists ]
[ Top ] [ neutrinoXsection ] [ Namelists ]
NAME
NAMELIST /nl_dSigmadElepton/
PURPOSE
This Namelist is read in when nuXsectionmode=dSigmadElepton and includes:
neutrinoXsection/nl_SigmaMC [ Namelists ]
[ Top ] [ neutrinoXsection ] [ Namelists ]
NAME
NAMELIST /nl_SigmaMC/
PURPOSE
This Namelist is read in when nuXsectionmode=dSigmaMC and includes:
neutrinoXsection/Xsec_SigmaMC [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine Xsec_SigmaMC(eNev,IP,raiseFlag,raiseVal,OutPart,sig,flux_enu)
PURPOSE
This subroutine calculates the integrated cross section depending on the input variables. It applies a MC integration technique.
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- integer :: IP -- ID of outgoing hadron/process
- logical :: raiseFlag -- shall energy etc. be increased?
- real, optional :: flux_enu -- if present, use this value as neutrino energy (used for experiments)
OUTPUT
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- real :: raiseVal -- the actual value of the running variable (i.e. elepton, enu, costheta, ...)
- type(particle), dimension(:) :: OutPart -- FinalState particles
- real :: sig -- calculated cross section
neutrinoXsection/SetXsecMC [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine SetXsecMC()
PURPOSE
set the values of the integration variables in the MC integration called from subroutine initNeutrino in file initNeutrino.f90
neutrinoXsection/Xsec_integratedSigma [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine Xsec_integratedSigma(eNev,IP,raiseFlag,raiseVal,OutPart,sig, flux_enu)
PURPOSE
This subroutine calculates the integrated cross section depending on the input variables:
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- integer :: IP -- ID of outgoing hadron/process
- logical :: raiseFlag -- shall energy etc. be increased?
- real, optional :: flux_enu -- if present, use this value as neutrino energy (used for experiments)
OUTPUT
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- real :: raiseVal -- the actual value of the running variable (i.e. elepton, enu, costheta, ...)
- type(particle), dimension(:) :: OutPart -- FinalState particles
- real :: sig -- calculated cross section
neutrinoXsection/Xsec_dSigmadCosThetadElepton [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine Xsec_dSigmadCosThetadElepton(eNev,IP,raiseFlag,raiseVal, OutPart,sig,flux_enu)
PURPOSE
This subroutine calculates dSigmadCosThetadElepton depending on the input variables:
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- integer :: IP -- ID of outgoing hadron/process
- logical :: raiseFlag -- shall energy etc. be increased?
- real, optional :: flux_enu -- if present, use this value as neutrino energy (used for experiments)
OUTPUT
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- real :: raiseVal -- the actual value of the running variable (i.e. elepton, enu, costheta, ...)
- type(particle), dimension(:) :: OutPart -- FinalState particles
- real :: sig -- calculated cross section
neutrinoXsection/Xsec_dSigmadQsdElepton [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine Xsec_dSigmadQsdElepton(eNev,IP,raiseFlag,raiseVal,OutPart, sig,flux_enu)
PURPOSE
This subroutine calculates dSigmadQsdElepton depending on the input variables:
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- integer :: IP -- ID of outgoing hadron/process
- logical :: raiseFlag -- shall energy etc. be increased?
- real, optional :: flux_enu -- if present, use this value as neutrino energy (used for experiments)
OUTPUT
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- real :: raiseVal -- the actual value of the running variable (i.e. elepton, enu, costheta, ...)
- type(particle), dimension(:) :: OutPart -- FinalState particles
- real :: sig -- calculated cross section
neutrinoXsection/Xsec_dSigmadcostheta [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine Xsec_dSigmadcostheta(eNev,IP,raiseFlag,raiseVal,OutPart,sig, flux_enu)
PURPOSE
This subroutine calculates dSigmadcostheta depending on the input variables:
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- integer :: IP -- ID of outgoing hadron/process
- logical :: raiseFlag -- shall energy etc. be increased?
- real, optional :: flux_enu -- if present, use this value as neutrino energy (used for experiments)
OUTPUT
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- real :: raiseVal -- the actual value of the running variable (i.e. elepton, enu, costheta, ...)
- type(particle), dimension(:) :: OutPart -- FinalState particles
- real :: sig -- calculated cross section
neutrinoXsection/Xsec_dSigmadElepton [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine Xsec_dSigmadElepton(eNev,IP,raiseFlag,raiseVal,OutPart,sig, flux_enu)
PURPOSE
This subroutine calculates dSigmadElepton depending on the input variables:
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- integer :: IP -- ID of outgoing hadron/process
- logical :: raiseFlag -- shall energy etc. be increased?
- real, optional :: flux_enu -- if present, use this value as neutrino energy (used for experiments)
OUTPUT
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- real :: raiseVal -- the actual value of the running variable (i.e. elepton, enu, costheta, ...)
- type(particle), dimension(:) :: OutPart -- FinalState particles
- real :: sig -- calculated cross section
neutrinoXsection/XsecdCosthetadElepton [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine XsecdCosthetadElepton(eNev,IP,OutPart,sig)
PURPOSE
This subroutine is the basic subroutine, which does all the job of calculating the cross section dSigma/dCost dElepton and generating a corresponding final state particle vector.
This routine is called by all routines called "Xsec_...".
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- integer :: IP -- ID of outgoing hadron/process
OUTPUT
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- type(particle), dimension(:) :: OutPart -- FinalState particles
- real :: sig -- calculated cross section
NOTES
For the outgoing particles OutPart, the following entries have to be set afterwards:
- OutPart%firstEvent
- OutPart%event(1:2)
- OutPart%perturbative
- OutPart%velocity
- OutPart%offshellparameter
- OutPart%perweight
All the other values are set in this routine.
Returned cross section is in 10^-38 cm^2/GeV, except for EM, where the units are nb/GeV
neutrinoXsection/SetHadronCharge [ Functions ]
[ Top ] [ neutrinoXsection ] [ Functions ]
NAME
logical function SetHadronCharge(eNev,IP,Q_R,Q_pi)
PURPOSE
This function sets the charge of the outgoing hadrons depending on the reaction process. If successful, SetHadronCharge=.true., if not (when the reaction is not possible) SetHadronCharge=.false.
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- integer :: IP -- ID of reaction
OUTPUT
- integer :: Q_R -- charge of outgoing baryon
- integer :: Q_pi -- charge of outgoing pion
- function value -- indicates possible failures
neutrinoXsection/getCosthetaLimits [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine getCosthetaLimits(costheta_min,costheta_max)
PURPOSE
This subroutine returns the limits in costheta.
OUTPUT
- real :: costheta_min
- real :: costheta_max
neutrinoXsection/getEleptonLimits [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine getEleptonLimits(IP,eNev,elepton_min,elepton_max)
PURPOSE
This subroutine returns the limits in elepton depending on the neutrino energy.
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- integer :: IP -- ID of outgoing hadron/process
OUTPUT
- real :: elepton_min
- real :: elepton_max
neutrinoXsection/getQsLimits [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine getQsLimits(eNev,elepton,Qs_min,Qs_max)
PURPOSE
This subroutine returns the limits in Qs depending on the neutrino energy and the energy of the outgoing lepton.
INPUTS
- type(electronNucleon_event) :: eNev -- the Lepton-Nucleon Event
- real :: elepton -- energy of outgoing lepton
OUTPUT
- real :: Qs_min
- real :: Qs_max
neutrinoXsection/checkLimits [ Functions ]
[ Top ] [ neutrinoXsection ] [ Functions ]
NAME
logical function checkLimits(X_min,X_max,X)
PURPOSE
This function checks whether X is out of bounds. If not, checkLimits=.true., if yes checkQsLimits=.false.
INPUTS
- real :: X_min,X_max,X
neutrinoXsection/get_xsection_namelist [ Subroutines ]
[ Top ] [ neutrinoXsection ] [ Subroutines ]
NAME
subroutine get_xsection_namelist
PURPOSE
This subroutine returns variables that are set in the according xsection namlist.
OUTPUT
- logical,optional :: Gdebugflag,Gnuclear_phasespace
- integer,optional :: GsinglePiModel,GintegralPrecision,GintegralPrecisionQE
- real,optional :: Genu, Gdelta_enu, GQs,Gdelta_Qs, Gcostheta, Gdelta_costheta, Gdelta_elepton, GinvariantMasscut