gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/neutrinoXsection [ Modules ]

[ Top ] [ 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/DIScutW1 [ Global module-variables ]

[ Top ] [ neutrinoXsection ] [ Global module-variables ]

SOURCE

  real, save :: DIScutW1 = 1.55

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 = 1.90

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.00

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.5

PURPOSE

parameter to control Q^2 dependence of DIS


neutrinoXsection/oldDIS [ Global module-variables ]

[ Top ] [ neutrinoXsection ] [ Global module-variables ]

SOURCE

  logical, save :: oldDIS = .false.

PURPOSE

controls Res-DIS transition, if .true. then old method before Oct. 2018


neutrinoXsection/Q2cut [ Global module-variables ]

[ Top ] [ neutrinoXsection ] [ Global module-variables ]

SOURCE

  real, save :: Q2cut = 1.0

PURPOSE

parameter to control Q^2 dependence of DIS, DIS is cut out for all Q^2 < Q2cut in the resonance region


neutrinoXsection/dQ2 [ Global module-variables ]

[ Top ] [ neutrinoXsection ] [ Global module-variables ]

SOURCE

  real, save :: dQ2 = 0.1

PURPOSE

parameter to control sharpness of DIS-cutoff Q2cut


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/DISrespectHad [ Global module-variables ]

[ Top ] [ neutrinoXsection ] [ Global module-variables ]

SOURCE

  logical, save :: DISrespectHad = .true.

PURPOSE

Flag to indicate, whether hadronization failures should be respected and affect the overall DIS cross section

Pythia is run to generate the DIS cross section. But not every of the generated events may lead to a correct hadronic final state.


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:


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


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


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


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


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


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


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

OUTPUT

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

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

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

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