EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
lyspli.F
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file lyspli.F
1 
2 C **********************************************************************
3 
4  SUBROUTINE lyspli(KPART,KFLIN,KFLCH,KFLSP)
5 
6  IMPLICIT NONE
7 
8 C...IN CASE OF A HADRON REMNANT WHICH IS MORE COMPLICATED THAN JUST A
9 C...QUARK OR A DIQUARK, SPLIT IT INTO TWO (PARTONS OR HADRON + PARTON).
10 *
11 * to avoid variable conflictions, a second keep element is necessary
12 * with the same common block name (see LPTOU2)
13 *
14  COMMON /leptou/ cut(14),lst(40),parl(30),
15  & x,y,w2,q2,u
16  REAL cut,parl,x,y,w2,q2,u
17  INTEGER lst
18  SAVE /leptou/
19 
20 
21  INTEGER kpart,kflin,kflch,kflsp,iflin,ksign,ifl,idum
22  REAL rlu,r
23 
24  iflin=kflin
25  ksign=isign(1,kpart)
26  ifl=kflin*ksign
27  kflch=0
28  idum=0
29 
30  IF(lst(14).EQ.0) THEN
31 C...If baryon production from remnant excluded, remnant is antiflavour
32  kflsp=-kflin
33  IF(kflin.EQ.21) kflsp=21
34  RETURN
35  ENDIF
36 
37  IF(iabs(kpart).EQ.211) THEN
38 C...DECOMPOSE PI+ (PI-).
39  IF(ifl.EQ.2) THEN
40 C...VALENCE U (UBAR) REMOVED.
41  kflsp=-1*ksign
42  ELSEIF(ifl.EQ.-1) THEN
43 C...VALENCE D (DBAR) REMOVED.
44  kflsp=2*ksign
45  ELSEIF(kflin.EQ.21) THEN
46 C...GLUON REMOVED.
47  r=2.*rlu(0)
48  IF(r.LT.1.) THEN
49  kflch=2*ksign
50  kflsp=-1*ksign
51  ELSE
52  kflch=-1*ksign
53  kflsp=2*ksign
54  ENDIF
55  ELSEIF((ifl.GE.1.AND.ifl.LE.8).AND.ifl.NE.2) THEN
56 C...SEA QUARK (ANTIQUARK) REMOVED.
57  CALL lukfdi(-iflin,2*ksign,idum,kflch)
58  kflsp=-1*ksign
59  ELSEIF((ifl.GE.-8.AND.ifl.LE.-1).AND.ifl.NE.-1) THEN
60 C...SEA ANTIQUARK (QUARK) REMOVED.
61  CALL lukfdi(-iflin,-1*ksign,idum,kflch)
62  kflsp=2*ksign
63  ENDIF
64 
65  ELSEIF(iabs(kpart).EQ.2212) THEN
66 C...DECOMPOSE PROTON (ANTIPROTON).
67  IF(ifl.EQ.2) THEN
68 C...VALENCE U (UBAR) REMOVED.
69  r=4.*rlu(0)
70  IF(r.LT.3.) THEN
71  kflsp=2101*ksign
72  ELSE
73  kflsp=2103*ksign
74  ENDIF
75  ELSEIF(ifl.EQ.1) THEN
76 C...VALENCE D (DBAR) REMOVED.
77  kflsp=2203*ksign
78  ELSEIF(kflin.EQ.21) THEN
79 C...GLUON REMOVED.
80  r=6.*rlu(0)
81  IF(r.LT.3.) THEN
82  kflch=2*ksign
83  kflsp=2101*ksign
84  ELSEIF(r.LT.4.) THEN
85  kflch=2*ksign
86  kflsp=2103*ksign
87  ELSE
88  kflch=1*ksign
89  kflsp=2203*ksign
90  ENDIF
91  ELSEIF(ifl.GT.2) THEN
92 C...SEA QUARK (ANTIQUARK) REMOVED.
93  r=6*rlu(0)
94  IF(r.LT.3.) THEN
95  CALL lukfdi(-iflin,2*ksign,idum,kflch)
96  kflsp=2101*ksign
97  ELSEIF(r.LT.4.) THEN
98  CALL lukfdi(-iflin,2*ksign,idum,kflch)
99  kflsp=2103*ksign
100  ELSE
101  CALL lukfdi(-iflin,1*ksign,idum,kflch)
102  kflsp=2203*ksign
103  ENDIF
104  ELSEIF(ifl.LT.0) THEN
105 C...SEA ANTIQUARK (QUARK) REMOVED.
106  100 r=6*rlu(0)
107  IF(r.LT.3.) THEN
108  CALL lukfdi(2101*ksign,-iflin,idum,kflch)
109  kflsp=2*ksign
110  ELSEIF(r.LT.4.) THEN
111  CALL lukfdi(2103*ksign,-iflin,idum,kflch)
112  kflsp=2*ksign
113  ELSE
114  CALL lukfdi(2203*ksign,-iflin,idum,kflch)
115  kflsp=1*ksign
116  ENDIF
117  IF(kflch.EQ.0) goto 100
118  ENDIF
119 
120  ELSEIF(iabs(kpart).EQ.2112) THEN
121 C...DECOMPOSE NEUTRON (ANTINEUTRON).
122  IF(ifl.EQ.2) THEN
123 C...VALENCE U (UBAR) REMOVED.
124  kflsp=1103*ksign
125  ELSEIF(ifl.EQ.1) THEN
126 C...VALENCE D (DBAR) REMOVED.
127  r=4.*rlu(0)
128  IF(r.LT.3.) THEN
129  kflsp=2101*ksign
130  ELSE
131  kflsp=2103*ksign
132  ENDIF
133  ELSEIF(kflin.EQ.21) THEN
134 C...GLUON REMOVED.
135  r=6.*rlu(0)
136  IF(r.LT.2.) THEN
137  kflch=2*ksign
138  kflsp=1103*ksign
139  ELSEIF(r.LT.5.) THEN
140  kflch=1*ksign
141  kflsp=2101*ksign
142  ELSE
143  kflch=1*ksign
144  kflsp=2103*ksign
145  ENDIF
146  ELSEIF(ifl.GT.2) THEN
147 C...SEA QUARK (ANTIQUARK) REMOVED.
148  r=6*rlu(0)
149  IF(r.LT.2.) THEN
150  CALL lukfdi(-iflin,2*ksign,idum,kflch)
151  kflsp=1103*ksign
152  ELSEIF(r.LT.5.) THEN
153  CALL lukfdi(-iflin,1*ksign,idum,kflch)
154  kflsp=2101*ksign
155  ELSE
156  CALL lukfdi(-iflin,1*ksign,idum,kflch)
157  kflsp=2103*ksign
158  ENDIF
159  ELSEIF(ifl.LT.0) THEN
160 C...SEA ANTIQUARK (QUARK) REMOVED.
161  110 r=6*rlu(0)
162  IF(r.LT.2.) THEN
163  CALL lukfdi(1103*ksign,-iflin,idum,kflch)
164  kflsp=2*ksign
165  ELSEIF(r.LT.5.) THEN
166  CALL lukfdi(2101*ksign,-iflin,idum,kflch)
167  kflsp=1*ksign
168  ELSE
169  CALL lukfdi(2103*ksign,-iflin,idum,kflch)
170  kflsp=1*ksign
171  ENDIF
172  IF(kflch.EQ.0) goto 110
173  ENDIF
174  ENDIF
175 
176  RETURN
177  END