gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/hadronFormation [ Modules ]

[ Top ] [ 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:


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


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

  • If this routine is called for a nonleading particle : return
  • If this routine is called with ScaleQ2==0 : return