forked from sPHENIX-Collaboration/coresoftware
/
attflv.f
executable file
·52 lines (52 loc) · 952 Bytes
/
attflv.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
C
C
C
SUBROUTINE ATTFLV(ID,IDQ,IDQQ)
COMMON/RANSEED/NSEED
SAVE /RANSEED/
C
IF(ABS(ID).LT.100) THEN
NSIGN=1
IDQ=ID/100
IDQQ=-ID/10+IDQ*10
IF(ABS(IDQ).EQ.3) NSIGN=-1
IDQ=NSIGN*IDQ
IDQQ=NSIGN*IDQQ
IF(IDQ.LT.0) THEN
ID0=IDQ
IDQ=IDQQ
IDQQ=ID0
ENDIF
RETURN
ENDIF
C ********return ID of quark(IDQ) and anti-quark(IDQQ)
C for pions and kaons
c
C Return LU ID for quarks and diquarks for proton(ID=2212)
C anti-proton(ID=-2212) and nuetron(ID=2112)
C LU ID for d=1,u=2, (ud)0=2101, (ud)1=2103,
C (dd)1=1103,(uu)1=2203.
C Use SU(6) weight proton=1/3d(uu)1 + 1/6u(ud)1 + 1/2u(ud)0
C nurtron=1/3u(dd)1 + 1/6d(ud)1 + 1/2d(ud)0
C
IDQ=2
IF(ABS(ID).EQ.2112) IDQ=1
IDQQ=2101
X=ATL_RAN(NSEED)
IF(X.LE.0.5) GO TO 30
IF(X.GT.0.666667) GO TO 10
IDQQ=2103
GO TO 30
10 IDQ=1
IDQQ=2203
IF(ABS(ID).EQ.2112) THEN
IDQ=2
IDQQ=1103
ENDIF
30 IF(ID.LT.0) THEN
ID00=IDQQ
IDQQ=-IDQ
IDQ=-ID00
ENDIF
RETURN
END