]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HIJING/hipyset1_35/ulmass_hijing.F
fWSN->Eval(0.001) to avoid fpe.
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / ulmass_hijing.F
CommitLineData
e74335a4 1* $Id$
2
3C*********************************************************************
4
5 FUNCTION ULMASS_HIJING(KF)
6
7C...Purpose: to give the mass of a particle/parton.
8#include "ludat1_hijing.inc"
9#include "ludat2_hijing.inc"
10
11C...Reset variables. Compressed code.
12 ULMASS_HIJING=0.
13 KFA=IABS(KF)
14 KC=LUCOMP_HIJING(KF)
15 IF(KC.EQ.0) RETURN
16 PARF(106)=PMAS(6,1)
17 PARF(107)=PMAS(7,1)
18 PARF(108)=PMAS(8,1)
19
20C...Guarantee use of constituent masses for internal checks.
21 IF((MSTJ(93).EQ.1.OR.MSTJ(93).EQ.2).AND.KFA.LE.10) THEN
22 ULMASS_HIJING=PARF(100+KFA)
23 IF(MSTJ(93).EQ.2) ULMASS_HIJING=MAX(0.,ULMASS_HIJING-PARF(121))
24
25C...Masses that can be read directly off table.
26 ELSEIF(KFA.LE.100.OR.KC.LE.80.OR.KC.GT.100) THEN
27 ULMASS_HIJING=PMAS(KC,1)
28
29C...Find constituent partons and their masses.
30 ELSE
31 KFLA=MOD(KFA/1000,10)
32 KFLB=MOD(KFA/100,10)
33 KFLC=MOD(KFA/10,10)
34 KFLS=MOD(KFA,10)
35 KFLR=MOD(KFA/10000,10)
36 PMA=PARF(100+KFLA)
37 PMB=PARF(100+KFLB)
38 PMC=PARF(100+KFLC)
39
40C...Construct masses for various meson, diquark and baryon cases.
41 IF(KFLA.EQ.0.AND.KFLR.EQ.0.AND.KFLS.LE.3) THEN
42 IF(KFLS.EQ.1) PMSPL=-3./(PMB*PMC)
43 IF(KFLS.GE.3) PMSPL=1./(PMB*PMC)
44 ULMASS_HIJING=PARF(111)+PMB+PMC+PARF(113)*PARF(101)**2*PMSPL
45 ELSEIF(KFLA.EQ.0) THEN
46 KMUL=2
47 IF(KFLS.EQ.1) KMUL=3
48 IF(KFLR.EQ.2) KMUL=4
49 IF(KFLS.EQ.5) KMUL=5
50 ULMASS_HIJING=PARF(113+KMUL)+PMB+PMC
51 ELSEIF(KFLC.EQ.0) THEN
52 IF(KFLS.EQ.1) PMSPL=-3./(PMA*PMB)
53 IF(KFLS.EQ.3) PMSPL=1./(PMA*PMB)
54 ULMASS_HIJING=2.*PARF(112)/3.+PMA+PMB+PARF(114)*PARF(101)**2
55 $ *PMSPL
56 IF(MSTJ(93).EQ.1) ULMASS_HIJING=PMA+PMB
57 IF(MSTJ(93).EQ.2) ULMASS_HIJING=MAX(0.,ULMASS_HIJING-PARF(122)
58 $ -2.*PARF(112)/3.)
59 ELSE
60 IF(KFLS.EQ.2.AND.KFLA.EQ.KFLB) THEN
61 PMSPL=1./(PMA*PMB)-2./(PMA*PMC)-2./(PMB*PMC)
62 ELSEIF(KFLS.EQ.2.AND.KFLB.GE.KFLC) THEN
63 PMSPL=-2./(PMA*PMB)-2./(PMA*PMC)+1./(PMB*PMC)
64 ELSEIF(KFLS.EQ.2) THEN
65 PMSPL=-3./(PMB*PMC)
66 ELSE
67 PMSPL=1./(PMA*PMB)+1./(PMA*PMC)+1./(PMB*PMC)
68 ENDIF
69 ULMASS_HIJING=PARF(112)+PMA+PMB+PMC+PARF(114)*PARF(101)**2
70 $ *PMSPL
71 ENDIF
72 ENDIF
73
74C...Optional mass broadening according to truncated Breit-Wigner
75C...(either in m or in m^2).
76 IF(MSTJ(24).GE.1.AND.PMAS(KC,2).GT.1E-4) THEN
77 IF(MSTJ(24).EQ.1.OR.(MSTJ(24).EQ.2.AND.KFA.GT.100)) THEN
78 ULMASS_HIJING=ULMASS_HIJING+0.5*PMAS(KC,2)*TAN((2.
79 $ *RLU_HIJING(0)-1.)*ATAN(2.*PMAS(KC,3)/PMAS(KC,2)))
80 ELSE
81 PM0=ULMASS_HIJING
82 PMLOW=ATAN((MAX(0.,PM0-PMAS(KC,3))**2-PM0**2)/
83 & (PM0*PMAS(KC,2)))
84 PMUPP=ATAN((PM0+PMAS(KC,3))**2-PM0**2)/(PM0*PMAS(KC,2))
85 ULMASS_HIJING=SQRT(MAX(0.,PM0**2+PM0*PMAS(KC,2)*TAN(PMLOW+
86 & (PMUPP-PMLOW)*RLU_HIJING(0))))
87 ENDIF
88 ENDIF
89 MSTJ(93)=0
90
91 RETURN
92 END