gibuu is hosted by Hepforge, IPPP Durham
GiBUU

/twoBodyTools [ Modules ]

[ Top ] [ Modules ]

NAME

module twoBodyTools

PURPOSE

This module contains some auxiliary routines for two-body collisions.

twoBodyTools/pCM [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

real function pCM(srts, mass1, mass2)

real function pCM(srts, mass1, mass2, flagOK)

PURPOSE

This routine evaluates the CM-momentum of two particles, asssuming vacuum kinematics.

The formula used here looks different than the standard formula given in PDG, but the are actually the same. In particular, pCM is of course invariant with respect to an exchange of 'mass1' and 'mass2'.

If the no logical 'falgOK' is given, the routine aims for performance, and does not check whether the argument of the sqrt is positive. If you need to check this, give this logical.

INPUTS

• real :: mass1, mass2 ! masses of both particles
• real :: srts ! SQRT(s)

OUTPUT

twoBodyTools/velocity_correction [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

real function velocity_correction(pair)

PURPOSE

Evaluates relative velocity/relative velocity in vacuum

INPUTS

• type(particle), dimension(1:2) :: pair

OUTPUT

function value

twoBodyTools/get_PInitial [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

real function get_PInitial(teilchenIn)

PURPOSE

return CM momentum of 2 particles

INPUTS

• type(particle),intent(in),dimension(1:2) :: teilchenIn
• integer, intent(in) :: mode

NOTES

Return value depends on mode:

• mode=0 : getP_Pinitial returns CM-momentum of two particles
• mode=1 : getP_Pinitial returns old ikodama=1 prescription [not yet implemented]
• mode=2 : getP_Pinitial returns old ikodama=2 prescription [not yet implemented]

twoBodyTools/sqrtS_Free [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

function sqrtS_Free(teilchen)

PURPOSE

return the "free" sqrt(s) of 2 particles

INPUTS

• type(particle),intent(in),dimension(1:2) :: teilchen

NOTES

The name "free Sqrt(s)" is according to standard BUU prescription the following: Transform everything to CM system and define there the sqrt(s) by neglecting the potentials. Therefore one wants to take care of the fact, that also the Xsections are measured in vacuum, therefore without potentials.

RESULT

• Real : The free Sqrt(s)

twoBodyTools/searchInInput [ Subroutines ]

[ Top ] [ twoBodyTools ] [ Subroutines ]

NAME

subroutine searchInInput(teilchenIn,id1,id2,particle_1,particle_2,failFlag)

PURPOSE

Given two IDs and a particleVector of dimension 2, this routine tries to find the given IDs in the particleVector.

INPUTS

• type(particle),dimension(1,2), intent(in) :: teilchenIn
• integer, intent(in) :: id1,id2

OUTPUT

• type(particle), intent(out) :: particle_1 ! copy of particle which has id1
• type(particle), intent(out) :: particle_2 ! copy of particle which has id2
• logical, intent(out) :: failFlag ! .true. if id1 or id2 could not be found in the particleVector

twoBodyTools/pCM_sqr [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

real function pCM_sqr(s, msqr1, msqr2)

PURPOSE

This routine evaluates the CM-momentum of two particles, asssuming vacuum kinematics.

Attention: Takes all arguments as squared quantities!!!

This routine does almost the same as 'pCM', but without taking the sqrt. Useful if a validity check is needed.

INPUTS

• real :: msqr1, msqr2 ! squared masses of both particles
• real :: s ! Mandelstam s

OUTPUT

twoBodyTools/p_lab [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

real function p_lab(srts, mass1, mass2)

PURPOSE

This routine evaluates the momentum of the 1-st particle in the rest frame of the 2-nd particle, asssuming vacuum kinematics.

INPUTS

• real :: mass1, mass2 ! masses of both particles
• real :: srts ! SQRT(s)

OUTPUT

twoBodyTools/MomentumTransfer2 [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

real function MomentumTransfer2(part1,part2)

PURPOSE

This routine evaluates the momentum transfer squared, i.e. -t=-(p1-p2)^2

INPUTS

• type(particle), intent(in) :: part1,part2 ! Incoming and outgoing particles, respectively

OUTPUT

• function value

twoBodyTools/convertToAntiParticles [ Subroutines ]

[ Top ] [ twoBodyTools ] [ Subroutines ]

NAME

subroutine convertToAntiParticles(a)

PURPOSE

Converts a given preEvent to AntiParticles

INPUTS

OUTPUT

twoBodyTools/IsElastic [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

logical function IsElastic (in, out)

PURPOSE

Given two ingoing and two outgoing particles, check if this is an elastic collision.

INPUTS

• type(particle), dimension(2), intent(in) :: in,out

twoBodyTools/IsChargeExchange [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

logical function IsChargeExchange(part1,part2,part3,part4)

PURPOSE

Compare incoming particles part1, part2 with outgoing particles part3, part4 and return .TRUE., if this is a charge exchange reaction.

INPUTS

• type(particle), intent(in) :: part1,part2,part3,part4

OUTPUT

• function value

twoBodyTools/LogicMatrix [ Functions ]

[ Top ] [ twoBodyTools ] [ Functions ]

NAME

integer function LogicMatrix(flag1,flag2)

PURPOSE

convert the 4 possibilities of two logical variables into 3 integer values:

```                   | flag1 = .FALSE. ! flag1 = .TRUE.
----------------+-----------------+---------------
flag2 = .FALSE. |       1         !       2
flag2 = .TRUE.  |       2         !       3
----------------+-----------------+---------------
```

NOTES

• flag(i)=isMeson(partIn(i)%ID) -> 1,2,3 == BarBar,BarMes,MesMes
• flag(i)=partIn(i)%antiparticle -> 1,2,3 == BarBar,BarAntiBar,AntiBarAntiBar