gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/initHiLepton [ Modules ]

[ Top ] [ Modules ]

NAME

module initHiLepton

PURPOSE

This module is for high-energetic lepton-nucleus collisions. The kinematical setup is such that the exchanged virtual photon runs in z direction, while the leptons (incoming/outgoing) move in the x-z plane.

INPUTS

The namelists "HiLeptonNucleus" and "HiPhotonKinematics".


initHiLepton/iExperiment [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  integer,save :: iExperiment=0

PURPOSE

choice of experiment, detector and energy

possible values are:

  • 0: no experiment/fixed kinematics
  • 1: Hermes, 27GeV, D,N,Kr
  • 2: Hermes, 27GeV, Ne
  • 3: Hermes, 27GeV, H
  • 4: JLAB, 12GeV
  • 5: JLAB, 5GeV
  • 6: EMC, 100GeV
  • 7: EMC, 120GeV
  • 8: EMC, 200GeV
  • 9: EMC, 280GeV
  • 10: Hermes, 12GeV
  • 11: Hermes, 27GeV, arXiv:0704.3270
  • 12: Mainz, Yoon: Ebeam=1.5GeV
  • 13: Hermes, 27GeV, arXiv:0704.3712 (pT-broadening)
  • 14: JLAB, 5GeV, rho0 experiment
  • 15: JLAB, 4GeV, rho0 experiment
  • 16: EIC, E_e and E_A given explicit (3+30,11+30,4+100)
  • 17: no detector, total cross section, Ebeam
  • 18: E665, 470GeV
  • 19: CLAS/JLAB, 12GeV RunGroupA optimized 10.6 GeV
  • 20: CLAS/JLAB, 12GeV RunGroupA theoterical

please note: The entry "iExperiment == 0" replaces the old HiPhoton event type.


initHiLepton/iDetector [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  integer,save :: iDetector = -1

PURPOSE

This sets the treatment of the detector:

  • -1 : not valid/not initialized/use default
  • 0 : no detector, as AccFlag=.false.
  • 1 : HERMES, full efficiency
  • 2 : EMC, full efficiency
  • 3 : CLAS, only cuts (th_e=12°..50°, th_hadron=6°..143°)
  • 4 : CLAS, full efficiency + cuts as for 5GeV
  • 5 : CLAS, electron: cuts (th_e=12°..50°), hadrons: efficiency+cuts as for 5GeV
  • 90 : full acceptance


initHiLepton/shadow [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  logical,save :: shadow=.true.

PURPOSE

flag: Consider shadowing or not


initHiLepton/minimumMomentum [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real,save    :: minimumMomentum=0.1

PURPOSE

minimal momentum considered. (in GeV)


initHiLepton/ModusCalcFluxNorm [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  logical,save :: ModusCalcFluxNorm=.false.

PURPOSE

if this flag is true, than we do not really generate events. We only select nu and Q2 according an equal distribution and plot the flux (and the flux multiplied with AccWeight). Normally we choose nu and Q2 according flux*Accweight via von-Neumann- rejection method (where we loose access to the absolute normalisation).


initHiLepton/realRun [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  logical,save :: realRun=.false.

PURPOSE

Flag to indicate, whether we produce real or perturbative particles.

NOTES

run with real particles untested !!!


initHiLepton/DoStatistics [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  logical,save :: DoStatistics=.false.

PURPOSE

switch on/off statistical output of init routines


initHiLepton/Ebeam [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real, save :: Ebeam

PURPOSE

electron beam energy [GeV]


initHiLepton/user_ymax [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_ymax = -99.9

PURPOSE

user given value for ymax, overrides default value if reasonable


initHiLepton/user_numin [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_numin = -99.9 ! GeV

PURPOSE

user given value for numin, overrides default value if reasonable


initHiLepton/user_numax [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_numax = -99.9 ! GeV

PURPOSE

user given value for numax, overrides default value if reasonable


initHiLepton/user_costmin [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_costmin = -99.9

PURPOSE

user given value for costmin, overrides default value if reasonable


initHiLepton/user_costmax [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_costmax =  99.9

PURPOSE

user given value for costmax, overrides default value if reasonable


initHiLepton/user_smin [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_smin = -99.9

PURPOSE

user given value for smin, overrides default value if reasonable


initHiLepton/user_xBmin [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_xBmin = -99.9

PURPOSE

user given value for xBmin, overrides default value if reasonable


initHiLepton/user_qsqmin [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_qsqmin = -99.9

PURPOSE

user given value for qsqmin, overrides default value if reasonable


initHiLepton/user_qsqmax [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_qsqmax = -99.9

PURPOSE

user given value for qsqmax, overrides default value if reasonable


initHiLepton/user_maxw [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real :: user_maxw = -99.9

PURPOSE

user given value for maxw, overrides default value if reasonable


initHiLepton/earlyPauli [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  logical,save :: earlyPauli=.false.

PURPOSE

Flag to indicate, whether we should check Pauli blocking already during generation or only at the end.

if .false. (default), events will be generated in a first stage without Pauli blocking. This is then tested afterwards. If the generated event is blocked, it will be redone! Thus Pauli blocking does *not* change the total cross section, only the relative strength will be reshuffled.

if .true., then blocked events will be excluded from the Monte Carlo decision and the total cross section will be reduced.

NOTES

The behaviour, if no event at all is possible, is at the moment a little bit unpredictable ;)


initHiLepton/EIC_Ee [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real, save :: EIC_Ee = -99.9

PURPOSE

the electron beam energy, if iExperiment=EIC


initHiLepton/EIC_EA [ Global module-variables ]

[ Top ] [ initHiLepton ] [ Global module-variables ]

SOURCE

  real, save :: EIC_EA = -99.9

PURPOSE

the hadron beam energy, if iExperiment=EIC


initHiLepton/HiLepton_getRealRun [ Functions ]

[ Top ] [ initHiLepton ] [ Functions ]

NAME

logical function HiLepton_getRealRun()

PURPOSE

return the value of realRun


initHiLepton/InitHiLeptonInduced [ Subroutines ]

[ Top ] [ initHiLepton ] [ Subroutines ]

NAME

subroutine InitHiLeptonInduced(rParts,pParts,targetNuc)

PURPOSE

This routine initializes the total given perturbative particle vector "pParts" by calling "genHiPhotonEvent" for every nucleon given in "rParts" and inserting the output of every successful event into "pParts".

For every incoming "photon" a new set of the kinematic variables according the constraints of the given experiment/detector is choosen.

Particle weights are set by the total XS of the generating event.

Outgoing particles are in a system, where the (intermediate) PHOTON defines the z-axis, not the (incoming) LEPTON. The scattering happens in a plane (except fermi motion), where the second momentum component (i.e. y-direction) vanishes.

INPUTS

OUTPUT

  • type(particle),dimension(:,:) :: pParts


initHiLepton/initInput [ Subroutines ]

[ Top ] [ initHiLepton ] [ Subroutines ]

NAME

subroutine initInput

PURPOSE

read initialisation of "InitHiLeptonInduced" from input file, namelist "HiLeptonNucleus"


initHiLepton/HiLeptonNucleus [ Namelists ]

[ Top ] [ initHiLepton ] [ Namelists ]

NAME

NAMELIST /HiLeptonNucleus/

PURPOSE

Namelist for initHiLepton includes:


initHiLepton/initExperiment [ Subroutines ]

[ Top ] [ initHiLepton ] [ Subroutines ]

NAME

subroutine initExperiment

PURPOSE

set kinematical constraints according the given experiment


initHiLepton/initFixedKin [ Subroutines ]

[ Top ] [ initHiLepton ] [ Subroutines ]

NAME

subroutine initFixedKin

PURPOSE

set kinematical constraints according to no experiment but to given fixed kinematics. The namelist 'HiPhotonKinematics' is read.

NOTES

you also have to set e.g. numin,numax etc. in order to ensure correct treatment of histograms


initFixedKin/nu [ Global module-variables ]

[ Top ] [ initFixedKin ] [ Global module-variables ]

SOURCE

    real :: nu = -99.9

PURPOSE

Photon energy [GeV]


initFixedKin/Q2 [ Global module-variables ]

[ Top ] [ initFixedKin ] [ Global module-variables ]

SOURCE

    real :: Q2 = -99.9

PURPOSE

transfer four momentum squared [GeV^2]


initFixedKin/eps [ Global module-variables ]

[ Top ] [ initFixedKin ] [ Global module-variables ]

SOURCE

    real :: eps =-99.9

PURPOSE

Photon polarisation [1]


initFixedKin/srts [ Global module-variables ]

[ Top ] [ initFixedKin ] [ Global module-variables ]

SOURCE

    real :: srts = -99.9

PURPOSE

sqrt(s) of electron nucleon system [GeV]


initFixedKin/W [ Global module-variables ]

[ Top ] [ initFixedKin ] [ Global module-variables ]

SOURCE

    real :: W = -99.9

PURPOSE

sqrt(s) of photon nucleon system [GeV]


initFixedKin/xBj [ Global module-variables ]

[ Top ] [ initFixedKin ] [ Global module-variables ]

SOURCE

    real :: xBj = -99.9

PURPOSE

Bjorken x [1]


initHiLepton/HiPhotonKinematics [ Namelists ]

[ Top ] [ initHiLepton ] [ Namelists ]

NAME

NAMELIST /HiPhotonKinematics/

PURPOSE

Namelist for initHiLepton in the case of iExperiment=0 includes:

NOTES

you have to give a valid combination of three of them.


initHiLepton/GetiExperiment [ Functions ]

[ Top ] [ initHiLepton ] [ Functions ]

NAME

integer function GetiExperiment()

PURPOSE

return value of variable "iExperiment"

needed e.g. in analysis routines


initHiLepton/GetEnergies [ Subroutines ]

[ Top ] [ initHiLepton ] [ Subroutines ]

NAME

real GetEnergies(Ebeam_,EIC_Ee_,EIC_EA_)

PURPOSE

return value of variables Ebeam and (if given) EIC_Ee, EIC_EA

needed e.g. in analysis routines


initHiLepton/GetPhotonKin [ Subroutines ]

[ Top ] [ initHiLepton ] [ Subroutines ]

NAME

subroutine GetPhotonKin(nu,Q2,W)

PURPOSE

in the case of Experiment==0, this returns the given kinematics

needed e.g. in analysis routines


initHiLepton/photonFluxMC [ Functions ]

[ Top ] [ initHiLepton ] [ Functions ]

NAME

function photonFluxMC(pTarget) result(eNev)

PURPOSE

Choose randomly some nu, Q2 and eps values corresponding to "iExperiment". Then calculate the flux for this given kinematics. Take the flux and some weight (called AccWeight) representing (averaged) probabilities of detecting the scattered lepton in the detector in order to accept or reject the choice accoring Monte Carlo techniques.

INPUTS

OUTPUT

NOTES

  • since we changed the definition according the MC selection, the values given for "maxW" are not valid anymore. We have done some preliminary runs for some configurations to readjust he values. All non-checked values are set to zero. You may get a lot of "adjust maxW"-messages in first runs. See the file "initHiLep.AdjustMaxW.txt" for the largest value used so far, readjust the values in the code, recompile, restart.
  • depending on the flag "eN_event/restingNucleon" the flux is calculated as average over the fermi momentum or using the momentum of the target nucleon for fT and epsilon.


initHiLepton/AccWeight [ Functions ]

[ Top ] [ initHiLepton ] [ Functions ]

NAME

real function AccWeight(iDetector,partID,partCharge,momentum,theta)

PURPOSE

Return the probability to detect the scattered lepton or produced hadrons with a given detector symmetry.

The detctor is rotated around the lepton beam axis and only the angle between particle vector and beam axis is taken into account. Therefore not only boolean values (1: detected, 0:not detected) are possible but all values inbetween.

INPUTS

OUTPUT

probability to detect the particle

NOTES

The variable "iDetector" can take the values:

  • 1 = HERMES
  • 2 = EMC
  • 3 = CLAS
  • 4 = CLAS@5GeV
  • 5 = CLAS (mixture): electron: as 3, hadrons: as 4


AccWeight/CLAS [ Functions ]

[ Top ] [ AccWeight ] [ Functions ]

NAME

real FUNCTION CLAS(part_type,p,theta_rad)

PURPOSE

detector efficiency of CLAS @ 5 GeV

NOTES

  • W.Brooks, private communication


AccWeight/CLASpi0 [ Functions ]

[ Top ] [ AccWeight ] [ Functions ]

NAME

real FUNCTION CLASpi0(p,theta_rad)

PURPOSE

detector efficiency for pi0 of CLAS @ 5 GeV

NOTES

  • Taya Mineeva, private communications
  • own approximation from photon acceptance


initHiLepton/checkConservation [ Functions ]

[ Top ] [ initHiLepton ] [ Functions ]

NAME

logical function checkConservation(eNev,outPart,channel)

PURPOSE

Perform checks about conservation of:

  • Charge
  • Baryon number
  • Energy

on the given event.

INPUTS

OUTPUT

NOTES

  • if it was a 2p2h event, no checks are done. This could be improved, since we know all incoming particles stored in eNev. To be done!
  • To be done: Check what happens for DIS events !!!
  • 3-momentum conservation is somehow peculiar. Therefore you may switch it on and off at compile time.