TABLE OF CONTENTS
- 1. /PyVP
- 1.1. PyVP/SetPYTHIAthresh
- 1.2. PyVP/getPYTHIAthresh
- 1.3. PyVP/InitPythia
- 1.4. PyVP/CollectXS_process
- 1.5. PyVP/CollectXS_class
- 1.6. PyVP/ScaleVMD
- 1.7. PyVP/MarkLepton
/PyVP [ Modules ]
NAME
module PyVP
PURPOSE
[Py]thia and [V]irtual [P]hotons: some routines for gamma* p with PYTHIA 6.x
NOTES
- KG, 12.12.07: The lines concerning fT and eps marked with "!######" should be checked and be consistent with the definitions in initHiLepton.f90
- This was originally PyVP.F, 18.10.2001...25.4.2005, and is now rewritten in F90
- during the rewrite in favour of Type(electronNucleon_event) many of its functionality has been moved somewhere or was obsolete
PyVP/SetPYTHIAthresh [ Subroutines ]
[ Top ] [ PyVP ] [ Subroutines ]
NAME
subroutine SetPYTHIAthresh(thresh)
PURPOSE
Set the value of module variable PYTHIAthresh
NOTES
cf. also eventGenerator_eN_HiEnergy/PYTHIAthresh
PyVP/getPYTHIAthresh [ Functions ]
[ Top ] [ PyVP ] [ Functions ]
NAME
real function GetPYTHIAthresh()
PURPOSE
return the value of module variable PYTHIAthresh
NOTES
cf. also eventGenerator_eN_HiEnergy/PYTHIAthresh
PyVP/InitPythia [ Subroutines ]
[ Top ] [ PyVP ] [ Subroutines ]
NAME
subroutine InitPythia(eNev,DoFrag,Print1,DoDifr)
PURPOSE
STEP (4) of the initialization: Initialize Pythia
Some default parameters and CKIN-parameters are set and PYINIT will be called.
After calling this function, you are able to call PYEVNT without any additional initialisation (everything else should have been done already by calling InitPythiaCalc etc.)
INPUTS
- type(electronNucleon_event):: eNev -- the electron nucleon event
- logical :: DoFrag -- ???
- integer :: Print1 -- ???
- logical :: DoDifr -- ???
NOTES
- BEWARE: the cuts on the PYTHIA-values x and Q2 cannot be exact.
PyVP/CollectXS_process [ Subroutines ]
[ Top ] [ PyVP ] [ Subroutines ]
NAME
subroutine CollectXS_process(N,iXS,XS, file)
PURPOSE
Collect the cross sections for single processes
The array XS will be filled with the cross sections of the processes listed in iXS. N is the maximal number of listable processes (as input), but also the number of processes as output. If file!=0 also output is written to file.
(adapted from PYSTAT)
INPUTS
- integer :: N -- ???
- integer :: iXS(*) -- ???
- integer :: file -- if >0, output is written to specific file
OUTPUT
- real :: XS(*) -- ???
PyVP/CollectXS_class [ Subroutines ]
[ Top ] [ PyVP ] [ Subroutines ]
NAME
subroutine CollectXS_class(XS, file)
PURPOSE
Collect the cross sections for classes
The array XS will be filled with the cross sections of VMD, direct, anomalous, DIS. If file!=0 also output is written to file.
This routine returns
\sigma^*(y,Q^2) = \sigma_T(y,Q^2) + \epsilon * \sigma_L(y,Q^2)
given by
d\sigma/dy dQ^2 = flux^T \sigma^*(y,Q^2)
with
flux^T = \alpha/(2 \pi) ( (1+(1-y)^2)/y 1/Q^2 - 2 m_e^ y/Q^4 )
as given in [Friberg:2000ra,eq.(2.1)ff]
return values are given im mb.
(adapted from PYSTAT)
INPUTS
- integer :: file -- if >0, output is written to specific file
OUTPUT
- see above
NOTES
The original XS reported by PYTHIA is dsigma/dx dQ2 (x not Bjorken-x!), since the MC variables are x and Q2. We transform this to dsigma/dy dQ2 by multiplying with the Jacobian. We divide by the flux as used by PYTHIA. This results in some sigma^(gamma*)(y,Q2), which differs from the usual definition of sigma_T + eps * sigma_L=dsigma/dE'dOmega / flux by the Jacobian (dy dQ2)<->(dE'dOmega).
The cross section is calculated with Hand convention.
PyVP/ScaleVMD [ Subroutines ]
[ Top ] [ PyVP ] [ Subroutines ]
NAME
subroutine ScaleVMD(xVMD)
PURPOSE
Scale the VMD coupling constants: f_V^2/4pi -> f_V^2/4pi / x
INPUTS
- real :: xVMD(4) -- ???
OUTPUT
- ...
PyVP/MarkLepton [ Subroutines ]
[ Top ] [ PyVP ] [ Subroutines ]
NAME
subroutine MarkLepton
PURPOSE
Mark lepton in PYTHIA output as "DOCUMENTATION LINE" This ensures, that the initial electron will be removed by PYEDIT