TABLE OF CONTENTS
- 1. /hadronFormation
- 1.1. hadronFormation/hadronformation
- 1.2. hadronFormation/useJetSetVec
- 1.3. hadronFormation/useJetSetVec_Q
- 1.4. hadronFormation/useJetSetVec_R
- 1.5. hadronFormation/tauProda
- 1.6. hadronFormation/tauForma
- 1.7. hadronFormation/tauFormaFak
- 1.8. hadronFormation/powerCS
- 1.9. hadronFormation/useTimeFrom
- 1.10. hadronFormation/useTimeTo
- 1.11. hadronFormation/pedestalCS
- 1.12. hadronFormation/GuessDiffrTimes
- 1.13. hadronFormation/useQDM
- 1.14. hadronFormation/dM2
- 1.15. hadronFormation/use_pCut
- 1.16. hadronFormation/pCut
- 1.17. hadronFormation/readInput
- 1.18. hadronFormation/forceInitFormation
- 1.19. hadronFormation/formation
- 1.20. hadronFormation/performFormation
- 1.21. hadronFormation/SetJSVFormation
- 1.21.1. SetJSVFormation/CalcTimeOrder
- 1.21.2. SetJSVFormation/SetQ_UseQ
/hadronFormation [ Modules ]
NAME
module hadronFormation
PURPOSE
This module contains routines handling the formation process of particles
INPUTS
namelist "hadronformation"
NOTES
1) Old Concept:
Between Creation time and tauForma*gamma, the XS is scaled by #leading quarks/#quarks (i.e. 0/2,1/2,2/2 for mesons and 0/3,1/3,2/3,3/3 for baryons). After tauForma*gamma, the original XS is restored. tauForma is in the order of 0.8fm/c.
2) New Concept: (GetJetSetVec)
We have 4 times:
- (hard) interaction (INT),
- production of first quark (P1),
- production of second quark (P2),
- formation of hadron (F). (i.e. first meeting point of YoYo-Lines)
According to input, 2 times are selected. Before time 1, the XS is zero. Between the two times, the cross section evolves according to a given power of the time variable. If zero is given, the XS is scaled by a given factor. After time 2 the XS is set to 1
Unfortunately, GetJetSetVec works not for all particles but produces some "funny" numbers for some particles (e.g. tau_F < tau_P1, tau_P2) [approx 10% of particles] In this case, Concept 1) is used for these particles (!!! ATTENTION !!!)
3) Enhanced New Concept
as concept 2), but the cross section do not start at 0 for leading particles, but at a value ~ 1/Q2, where Q2 has to be defined process dependent.
hadronFormation/hadronformation [ Namelists ]
[ Top ] [ hadronFormation ] [ Namelists ]
NAME
NAMELIST hadronformation
PURPOSE
Namelist for module "hadronFormation" includes:
- tauProda
- tauForma
- tauFormaFak
- useJetSetVec
- powerCS
- useTimeFrom
- useTimeTo
- GuessDiffrTimes
- useJetSetVec_Q
- useJetSetVec_R
- pedestalCS
- useQDM
- dM2
- use_pCut
- pCut
hadronFormation/useJetSetVec [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
logical,save, public :: useJetSetVec = .TRUE.
PURPOSE
Flag to select fragmentation time estimates:
- false -> old concept 1)
- true -> new concepts 2) and 3)
NOTES
select false in case of calculations on a nucleon (speed!).
hadronFormation/useJetSetVec_Q [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
logical,save, public :: useJetSetVec_Q = .TRUE.
PURPOSE
if useJetSetVec, then also use Q2 as measure for XS-pedestal, i.e. select concept 3) instead of concept 2)
hadronFormation/useJetSetVec_R [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
logical,save, public :: useJetSetVec_R = .TRUE.
PURPOSE
if not useJetSetVec_Q, then use rLead as measure for XS-pedestal
hadronFormation/tauProda [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
real,save :: tauProda = 0.5
PURPOSE
in formation time concept 2) and 3) for "error particles": production time of non-leading in rest frame of hadron (in fm)
hadronFormation/tauForma [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
real,save :: tauForma = 0.8
PURPOSE
in formation time concept 1) and in concept 2),3) for "error particles": formation time in rest frame of hadron (in fm)
hadronFormation/tauFormaFak [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
real,save :: tauFormaFak = 1.0
PURPOSE
in formation time concept 1): scale factor for constituent quark model, rescales #(lead quarks)/#quarks
hadronFormation/powerCS [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
real, save :: powerCS=1.0
PURPOSE
in formation time concept 2): power of 't' (constant, linear, quadratic)
hadronFormation/useTimeFrom [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
integer, save :: useTimeFrom = 1
PURPOSE
in formation time concept 2): encode time XS starts to evolve: 1: tP_min, 2: tP_max, 3: tF
hadronFormation/useTimeTo [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
integer, save :: useTimeTo = 3
PURPOSE
in formation time concept 2): encode time XS stops to evolve: 1: tP_min, 2: tP_max, 3: tF
hadronFormation/pedestalCS [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
real, save :: pedestalCS=0.0
PURPOSE
in formation time concept 2): encode time XS stops to evolve: 1: tP_min, 2: tP_max, 3: tF
hadronFormation/GuessDiffrTimes [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
logical, save :: GuessDiffrTimes = .TRUE.
PURPOSE
if true, then the times for diffractive particles are treated like them of all other particles, otherwise particles from "diffractive" events hadronize immediately.
hadronFormation/useQDM [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
logical, save :: useQDM = .false.
PURPOSE
If true, then use the quantum diffusion model of G.R. Farrar et al., PRL 61, 686 (1988).
It means that the cross section grows as (t-t_int)**powerCS for t_int < t < t_form, where t_int is the interaction time (=0 for electron-nucleus case) and t_form= t_int + 2*p/dM2. So hadrons with equal momenta have equal formation times (lengths). Also allows to control the space-time scale of hadronization. Attention: setting useQDM = .true. overrides other switches of this module.
hadronFormation/dM2 [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
real,save :: dM2 = 0.7 ! GeV^2
PURPOSE
Mass denominator in the coherence length.
Relevant only for quantum diffusion model (when useQDM =.true.)
hadronFormation/use_pCut [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
logical, save :: use_pCut = .false.
PURPOSE
If true, then only particles with momentum p < pCut will interact.
hadronFormation/pCut [ Global module-variables ]
[ Top ] [ hadronFormation ] [ Global module-variables ]
SOURCE
real,save :: pCut = 1. ! GeV/c
PURPOSE
Momentum cutoff. Relevant only when use_pCut =.true.
hadronFormation/readInput [ Subroutines ]
[ Top ] [ hadronFormation ] [ Subroutines ]
NAME
subroutine readInput
PURPOSE
Reads input in jobcard out of namelist "hadronFormation"
hadronFormation/forceInitFormation [ Subroutines ]
[ Top ] [ hadronFormation ] [ Subroutines ]
NAME
subroutine forceInitFormation
PURPOSE
Forces to read the JobCard (if not done already) to initialize this module.
hadronFormation/formation [ Subroutines ]
[ Top ] [ hadronFormation ] [ Subroutines ]
NAME
subroutine formation(PertPart,RealPart,time,finalFlag)
PURPOSE
Loop over all particles in PertPart and RealPart and call for them the subroutine "performFormation"
hadronFormation/performFormation [ Subroutines ]
[ Top ] [ hadronFormation ] [ Subroutines ]
NAME
subroutine performFormation(Part,time,finalFlag)
PURPOSE
Set the Flag "in_Formation" and the scaling of the CrossSection "ScaleCS" according to the "formation time concept": cf. top of the module
NOTES
scaleCS should be set to something like
(#leading quarks/#quarks) * tauformaFak
hadronFormation/SetJSVFormation [ Subroutines ]
[ Top ] [ hadronFormation ] [ Subroutines ]
NAME
subroutine SetJSVFormation(Part,iPart, HardScaleQ2)
PURPOSE
Calculates and sets the "Production/Formation Time" to be stored with the particle (in case of GetJetSetVec).
INPUTS
- type(particle) :: Part
- integer :: iPart
- real :: HardScaleQ2 -- the Q2 value of the production process connected to this particle
- integer :: nLead -- number of leading quarks (0...3)
OUTPUT
- type(particle) :: Part
SetJSVFormation/CalcTimeOrder [ Subroutines ]
[ Top ] [ SetJSVFormation ] [ Subroutines ]
NAME
subroutine CalcTimeOrder
PURPOSE
set "iSmaller" to 1 or 2 according 4D points Arr(i,1:4,iPart)
Time ordering is defined to be according: tau
SetJSVFormation/SetQ_UseQ [ Subroutines ]
[ Top ] [ SetJSVFormation ] [ Subroutines ]
NAME
subroutine SetQ_UseQ(ScaleQ2)
PURPOSE
Get the Q2 information stored on a event basis and connect it with the leading particle.
NOTES