]> git.uio.no Git - u/mrichter/AliRoot.git/blame - DPMJET/dpmjet3.0-5.f
-updates (ShinIchi)
[u/mrichter/AliRoot.git] / DPMJET / dpmjet3.0-5.f
CommitLineData
9aaba0d6 1*$ CREATE DT_INIT.FOR
2*COPY DT_INIT
3*
4* +-------------------------------------------------------------+
5* | |
6* | |
7* | DPMJET 3.0 |
8* | |
9* | |
10* | S. Roesler+), R. Engel#), J. Ranft*) |
11* | |
12* | +) CERN, SC-RP |
13* | CH-1211 Geneva 23, Switzerland |
14* | Email: Stefan.Roesler@cern.ch |
15* | |
16* | #) Institut fuer Kernphysik |
17* | Forschungszentrum Karlsruhe |
18* | D-76021 Karlsruhe, Germany |
19* | |
20* | *) University of Siegen, Dept. of Physics |
21* | D-57068 Siegen, Germany |
22* | |
23* | |
24* | http://home.cern.ch/sroesler/dpmjet3.html |
25* | |
26* | |
27* | Monte Carlo models used for event generation: |
28* | PHOJET 1.12, JETSET 7.4 and LEPTO 6.5.1 |
29* | |
30* +-------------------------------------------------------------+
31*
32*
33*===init===============================================================*
34*
35 SUBROUTINE DT_INIT(NCASES,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,
36 & IDP,IGLAU)
37
38************************************************************************
39* Initialization of event generation *
40* This version dated 7.4.98 is written by S. Roesler. *
41* *
42* Last change 27.12.2006 by S. Roesler. *
43************************************************************************
44
45 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
46 SAVE
47
48 PARAMETER ( LINP = 10 ,
49 & LOUT = 6 ,
50 & LDAT = 9 )
51 PARAMETER (ZERO=0.0D0,ONE=1.0D0)
52
53* particle properties (BAMJET index convention)
54 CHARACTER*8 ANAME
55 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
56 & IICH(210),IIBAR(210),K1(210),K2(210)
57* names of hadrons used in input-cards
58 CHARACTER*8 BTYPE
59 COMMON /DTPAIN/ BTYPE(30)
60* (original name: PAREVT)
61 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
62 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
63 PARAMETER ( NALLWP = 39 )
64 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
65 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
66 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
67 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
68* (original name: INPFLG)
69 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
70* (original name: FRBKCM)
71 PARAMETER ( MXFFBK = 6 )
72 PARAMETER ( MXZFBK = 9 )
73 PARAMETER ( MXNFBK = 10 )
74 PARAMETER ( MXAFBK = 16 )
75 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
76 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
77 PARAMETER ( NXAFBK = MXAFBK + 1 )
78 PARAMETER ( MXPSST = 300 )
79 PARAMETER ( MXPSFB = 41000 )
80 LOGICAL LFRMBK, LNCMSS
81 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
82 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
83 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
84 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
85 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
86 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
87 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
88 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
89 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
90 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
91* emulsion treatment
92 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
93 & NCOMPO,IEMUL
94* Glauber formalism: parameters
95 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
96 & BMAX(NCOMPX),BSTEP(NCOMPX),
97 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
98 & NSITEB,NSTATB
99* Glauber formalism: cross sections
100 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
101 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
102 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
103 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
104 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
105 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
106 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
107 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
108 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
109 & BSLOPE,NEBINI,NQBINI
110* interface HADRIN-DPM
111 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
112* central particle production, impact parameter biasing
113 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
114* parameter for intranuclear cascade
115 LOGICAL LPAULI
116 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
117* various options for treatment of partons (DTUNUC 1.x)
118* (chain recombination, Cronin,..)
119 LOGICAL LCO2CR,LINTPT
120 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
121 & LCO2CR,LINTPT
122* threshold values for x-sampling (DTUNUC 1.x)
123 COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
124 & SSMIMQ,VVMTHR
125* flags for input different options
126 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
127 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
128 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
129* nuclear potential
130 LOGICAL LFERMI
131 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
132 & EBINDP(2),EBINDN(2),EPOT(2,210),
133 & ETACOU(2),ICOUL,LFERMI
134* n-n cross section fluctuations
135 PARAMETER (NBINS = 1000)
136 COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT
137* flags for particle decays
138 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
139 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
140 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
141* diquark-breaking mechanism
142 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
143* nucleon-nucleon event-generator
144 CHARACTER*8 CMODEL
145 LOGICAL LPHOIN
146 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
147* properties of interacting particles
148 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
149* properties of photon/lepton projectiles
150 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
151* flags for diffractive interactions (DTUNUC 1.x)
152 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
153* parameters for hA-diffraction
154 COMMON /DTDIHA/ DIBETA,DIALPH
155* Lorentz-parameters of the current interaction
156 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
157 & UMO,PPCM,EPROJ,PPROJ
158* kinematical cuts for lepton-nucleus interactions
159 COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX,
160 & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI
161* VDM parameter for photon-nucleus interactions
162 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
163* Glauber formalism: flags and parameters for statistics
164 LOGICAL LPROD
165 CHARACTER*8 CGLB
166 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
167* cuts for variable energy runs
168 COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI
169* flags for activated histograms
170 COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL
171 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
bd378884 172 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 173* LEPTO
174**LUND single / double precision
175 REAL CUT,PARL,TMPX,TMPY,TMPW2,TMPQ2,TMPU
176 COMMON /LEPTOU/ CUT(14),LST(40),PARL(30),
177 & TMPX,TMPY,TMPW2,TMPQ2,TMPU
178* LEPTO
179 REAL RPPN
180 COMMON /LEPTOI/ RPPN,LEPIN,INTER
181* steering flags for qel neutrino scattering modules
182 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
183* event flag
184 COMMON /DTEVNO/ NEVENT,ICASCA
185
186 INTEGER PYCOMP
187
188C DIMENSION XPARA(5)
189 DIMENSION XDUMB(40),IPRANG(5)
190
191 PARAMETER (MXCARD=58)
192 CHARACTER*78 CLINE,CTITLE
193 CHARACTER*60 CWHAT
194 CHARACTER*8 BLANK,SDUM
195 CHARACTER*10 CODE,CODEWD
196 CHARACTER*72 HEADER
197 LOGICAL LSTART,LEINP,LXSTAB
198 DIMENSION WHAT(6),CODE(MXCARD)
199 DATA CODE/
200 & 'TITLE ','PROJPAR ','TARPAR ','ENERGY ',
201 & 'MOMENTUM ','CMENERGY ','EMULSION ','FERMI ',
202 & 'TAUFOR ','PAULI ','COULOMB ','HADRIN ',
203 & 'EVAP ','EMCCHECK ','MODEL ','PHOINPUT ',
204 & 'GLAUBERI ','FLUCTUAT ','CENTRAL ','RECOMBIN ',
205 & 'COMBIJET ','XCUTS ','INTPT ','CRONINPT ',
206 & 'SEADISTR ','SEASU3 ','DIQUARKS ','RESONANC ',
207 & 'DIFFRACT ','SINGLECH ','NOFRAGME ','HADRONIZE ',
208 & 'POPCORN ','PARDECAY ','BEAM ','LUND-MSTU ',
209 & 'LUND-MSTJ ','LUND-MDCY ','LUND-PARJ ','LUND-PARU ',
210 & 'OUTLEVEL ','FRAME ','L-TAG ','L-ETAG ',
211 & 'ECMS-CUT ','VDM-PAR1 ','HISTOGRAM ','XS-TABLE ',
212 & 'GLAUB-PAR ','GLAUB-INI ','VDM-PAR2 ','XS-QELPRO ',
213 & 'RNDMINIT ','LEPTO-CUT ','LEPTO-LST ','LEPTO-PARL',
214 & 'START ','STOP '/
215 DATA BLANK /' '/
216
217 DATA LSTART,LXSTAB,IFIRST /.TRUE.,.FALSE.,1/
218 DATA CMEOLD /0.0D0/
219
220*---------------------------------------------------------------------
221* at the first call of INIT: initialize event generation
222 EPNSAV = EPN
223 IF (LSTART) THEN
224 CALL DT_TITLE
225* initialization and test of the random number generator
226 IF (ITRSPT.NE.1) THEN
227 CALL DT_RNDMST(22,54,76,92)
228 CALL DT_RNDMTE(1)
229 ENDIF
230* initialization of BAMJET, DECAY and HADRIN
231 CALL DT_DDATAR
232 CALL DT_DHADDE
233 CALL DT_DCHANT
234 CALL DT_DCHANH
235* set default values for input variables
236 CALL DT_DEFAUL(EPN,PPN)
237 IGLAU = 0
238 IXSQEL = 0
239* flag for collision energy input
240 LEINP = .FALSE.
241 LSTART = .FALSE.
242 ENDIF
243
244*---------------------------------------------------------------------
245 10 CONTINUE
246
247* bypass reading input cards (e.g. for use with Fluka)
248* in this case Epn is expected to carry the beam momentum
249 IF (NCASES.EQ.-1) THEN
250 IP = NPMASS
251 IPZ = NPCHAR
252 PPN = EPNSAV
253 EPN = ZERO
254 CMENER = ZERO
255 LEINP = .TRUE.
256 MKCRON = 0
257 WHAT(1) = 1
258 WHAT(2) = 0
259 CODEWD = 'START '
260 GOTO 900
261 ENDIF
262
263* read control card from input-unit LINP
264 READ(LINP,'(A78)',END=9999) CLINE
265 IF (CLINE(1:1).EQ.'*') THEN
266* comment-line
267 WRITE(LOUT,'(A78)') CLINE
268 GOTO 10
269 ENDIF
270C READ(CLINE,1000,END=9999) CODEWD,(WHAT(I),I=1,6),SDUM
271C1000 FORMAT(A10,6E10.0,A8)
272 DO 1008 I=1,6
273 WHAT(I) = ZERO
274 1008 CONTINUE
275 READ(CLINE,1006,END=9999) CODEWD,CWHAT,SDUM
276 1006 FORMAT(A10,A60,A8)
277 READ(CWHAT,*,END=1007) (WHAT(I),I=1,6)
278 1007 CONTINUE
279 WRITE(LOUT,1001) CODEWD,(WHAT(I),I=1,6),SDUM
280 1001 FORMAT(A10,6G10.3,A8)
281
282 900 CONTINUE
283
284* check for valid control card and get card index
285 ICW = 0
286 DO 11 I=1,MXCARD
287 IF (CODEWD.EQ.CODE(I)) ICW = I
288 11 CONTINUE
289 IF (ICW.EQ.0) THEN
290 WRITE(LOUT,1002) CODEWD
291 1002 FORMAT(/,1X,'---> ',A10,': invalid control-card !',/)
292 GOTO 10
293 ENDIF
294
295 GOTO(
296*------------------------------------------------------------
297* TITLE , PROJPAR , TARPAR , ENERGY , MOMENTUM,
298 & 100 , 110 , 120 , 130 , 140 ,
299*
300*------------------------------------------------------------
301* CMENERGY, EMULSION, FERMI , TAUFOR , PAULI ,
302 & 150 , 160 , 170 , 180 , 190 ,
303*
304*------------------------------------------------------------
305* COULOMB , HADRIN , EVAP , EMCCHECK, MODEL ,
306 & 200 , 210 , 220 , 230 , 240 ,
307*
308*------------------------------------------------------------
309* PHOINPUT, GLAUBERI, FLUCTUAT, CENTRAL , RECOMBIN,
310 & 250 , 260 , 270 , 280 , 290 ,
311*
312*------------------------------------------------------------
313* COMBIJET, XCUTS , INTPT , CRONINPT, SEADISTR,
314 & 300 , 310 , 320 , 330 , 340 ,
315*
316*------------------------------------------------------------
317* SEASU3 , DIQUARKS, RESONANC, DIFFRACT, SINGLECH,
318 & 350 , 360 , 370 , 380 , 390 ,
319*
320*------------------------------------------------------------
321* NOFRAGME, HADRONIZE, POPCORN , PARDECAY, BEAM ,
322 & 400 , 410 , 420 , 430 , 440 ,
323*
324*------------------------------------------------------------
325* LUND-MSTU, LUND-MSTJ, LUND-MDCY, LUND-PARJ, LUND-PARU,
326 & 450 , 451 , 452 , 460 , 470 ,
327*
328*------------------------------------------------------------
329* OUTLEVEL, FRAME , L-TAG , L-ETAG , ECMS-CUT,
330 & 480 , 490 , 500 , 510 , 520 ,
331*
332*------------------------------------------------------------
333* VDM-PAR1, HISTOGRAM, XS-TABLE , GLAUB-PAR, GLAUB-INI,
334 & 530 , 540 , 550 , 560 , 565 ,
335*
336*------------------------------------------------------------
337* , , VDM-PAR2, XS-QELPRO, RNDMINIT ,
338 & 570 , 580 , 590 ,
339*
340*------------------------------------------------------------
341* LEPTO-CUT, LEPTO-LST,LEPTO-PARL, START , STOP )
342 & 600 , 610 , 620 , 630 , 640 ) , ICW
343*
344*------------------------------------------------------------
345
346 GOTO 10
347
348*********************************************************************
349* *
350* control card: codewd = TITLE *
351* *
352* what (1..6), sdum no meaning *
353* *
354* Note: The control-card following this must consist of *
355* a string of characters usually giving the title of *
356* the run. *
357* *
358*********************************************************************
359
360 100 CONTINUE
361 READ(LINP,'(A78)') CTITLE
362 WRITE(LOUT,'(//,5X,A78,//)') CTITLE
363 GOTO 10
364
365*********************************************************************
366* *
367* control card: codewd = PROJPAR *
368* *
369* what (1) = mass number of projectile nucleus default: 1 *
370* what (2) = charge of projectile nucleus default: 1 *
371* what (3..6) no meaning *
372* sdum projectile particle code word *
373* *
374* Note: If sdum is defined what (1..2) have no meaning. *
375* *
376*********************************************************************
377
378 110 CONTINUE
379 IF (SDUM.EQ.BLANK) THEN
380 IP = INT(WHAT(1))
381 IPZ = INT(WHAT(2))
382 IJPROJ = 1
383 IBPROJ = 1
384 ELSE
385 IJPROJ = 0
386 DO 111 II=1,30
387 IF (SDUM.EQ.BTYPE(II)) THEN
388 IP = 1
389 IPZ = 1
390 IF (II.EQ.26) THEN
391 IJPROJ = 135
392 ELSEIF (II.EQ.27) THEN
393 IJPROJ = 136
394 ELSEIF (II.EQ.28) THEN
395 IJPROJ = 133
396 ELSEIF (II.EQ.29) THEN
397 IJPROJ = 134
398 ELSE
399 IJPROJ = II
400 ENDIF
401 IBPROJ = IIBAR(IJPROJ)
402* photon
403 IF ((IJPROJ.EQ.7).AND.(WHAT(1).GT.ZERO)) VIRT = WHAT(1)
404* lepton
405 IF (((IJPROJ.EQ. 3).OR.(IJPROJ.EQ. 4).OR.
406 & (IJPROJ.EQ.10).OR.(IJPROJ.EQ.11)).AND.
407 & (WHAT(1).GT.ZERO)) Q2HI = WHAT(1)
408 ENDIF
409 111 CONTINUE
410 IF (IJPROJ.EQ.0) THEN
411 WRITE(LOUT,1110)
412 1110 FORMAT(/,1X,'invalid PROJPAR card !',/)
413 GOTO 9999
414 ENDIF
415 ENDIF
416 GOTO 10
417
418*********************************************************************
419* *
420* control card: codewd = TARPAR *
421* *
422* what (1) = mass number of target nucleus default: 1 *
423* what (2) = charge of target nucleus default: 1 *
424* what (3..6) no meaning *
425* sdum target particle code word *
426* *
427* Note: If sdum is defined what (1..2) have no meaning. *
428* *
429*********************************************************************
430
431 120 CONTINUE
432 IF (SDUM.EQ.BLANK) THEN
433 IT = INT(WHAT(1))
434 ITZ = INT(WHAT(2))
435 IJTARG = 1
436 IBTARG = 1
437 ELSE
438 IJTARG = 0
439 DO 121 II=1,30
440 IF (SDUM.EQ.BTYPE(II)) THEN
441 IT = 1
442 ITZ = 1
443 IJTARG = II
444 IBTARG = IIBAR(IJTARG)
445 ENDIF
446 121 CONTINUE
447 IF (IJTARG.EQ.0) THEN
448 WRITE(LOUT,1120)
449 1120 FORMAT(/,1X,'invalid TARPAR card !',/)
450 GOTO 9999
451 ENDIF
452 ENDIF
453 GOTO 10
454
455*********************************************************************
456* *
457* control card: codewd = ENERGY *
458* *
459* what (1) = energy (GeV) of projectile in Lab. *
460* if what(1) < 0: |what(1)| = kinetic energy *
461* default: 200 GeV *
462* if |what(2)| > 0: min. energy for variable *
463* energy runs *
464* what (2) = max. energy for variable energy runs *
465* if what(2) < 0: |what(2)| = kinetic energy *
466* *
467*********************************************************************
468
469 130 CONTINUE
470 EPN = WHAT(1)
471 PPN = ZERO
472 CMENER = ZERO
473 IF ((ABS(WHAT(2)).GT.ZERO).AND.
474 & (ABS(WHAT(2)).GT.ABS(WHAT(1)))) THEN
475 VARELO = WHAT(1)
476 VAREHI = WHAT(2)
477 EPN = VAREHI
478 ENDIF
479 LEINP = .TRUE.
480 GOTO 10
481
482*********************************************************************
483* *
484* control card: codewd = MOMENTUM *
485* *
486* what (1) = momentum (GeV/c) of projectile in Lab. *
487* default: 200 GeV/c *
488* what (2..6), sdum no meaning *
489* *
490*********************************************************************
491
492 140 CONTINUE
493 EPN = ZERO
494 PPN = WHAT(1)
495 CMENER = ZERO
496 LEINP = .TRUE.
497 GOTO 10
498
499*********************************************************************
500* *
501* control card: codewd = CMENERGY *
502* *
503* what (1) = energy in nucleon-nucleon cms. *
504* default: none *
505* what (2..6), sdum no meaning *
506* *
507*********************************************************************
508
509 150 CONTINUE
510 EPN = ZERO
511 PPN = ZERO
512 CMENER = WHAT(1)
513 LEINP = .TRUE.
514 GOTO 10
515
516*********************************************************************
517* *
518* control card: codewd = EMULSION *
519* *
520* definition of nuclear emulsions *
521* *
522* what(1) mass number of emulsion component *
523* what(2) charge of emulsion component *
524* what(3) fraction of events in which a scattering on a *
525* nucleus of this properties is performed *
526* what(4,5,6) as what(1,2,3) but for another component *
527* default: no emulsion *
528* sdum no meaning *
529* *
530* Note: If this input-card is once used with valid parameters *
531* TARPAR is obsolete. *
532* Not the absolute values of the fractions are important *
533* but only the ratios of fractions of different comp. *
534* This control card can be repeatedly used to define *
535* emulsions consisting of up to 10 elements. *
536* *
537*********************************************************************
538
539 160 CONTINUE
540 IF ((WHAT(1).GT.ZERO).AND.(WHAT(2).GT.ZERO)
541 & .AND.(ABS(WHAT(3)).GT.ZERO)) THEN
542 NCOMPO = NCOMPO+1
543 IF (NCOMPO.GT.NCOMPX) THEN
544 WRITE(LOUT,1600)
545 STOP
546 ENDIF
547 IEMUMA(NCOMPO) = INT(WHAT(1))
548 IEMUCH(NCOMPO) = INT(WHAT(2))
549 EMUFRA(NCOMPO) = WHAT(3)
550 IEMUL = 1
551C CALL SHMAKF(IDUM,IDUM,IEMUMA(NCOMPO),IEMUCH(NCOMPO))
552 ENDIF
553 IF ((WHAT(4).GT.ZERO).AND.(WHAT(5).GT.ZERO)
554 & .AND.(ABS(WHAT(6)).GT.ZERO)) THEN
555 NCOMPO = NCOMPO+1
556 IF (NCOMPO.GT.NCOMPX) THEN
557 WRITE(LOUT,1001)
558 STOP
559 ENDIF
560 IEMUMA(NCOMPO) = INT(WHAT(4))
561 IEMUCH(NCOMPO) = INT(WHAT(5))
562 EMUFRA(NCOMPO) = WHAT(6)
563C CALL SHMAKF(IDUM,IDUM,IEMUMA(NCOMPO),IEMUCH(NCOMPO))
564 ENDIF
565 1600 FORMAT(1X,'too many emulsion components - program stopped')
566 GOTO 10
567
568*********************************************************************
569* *
570* control card: codewd = FERMI *
571* *
572* what (1) = -1 Fermi-motion of nucleons not treated *
573* default: 1 *
574* what (2) = scale factor for Fermi-momentum *
575* default: 0.75 *
576* what (3..6), sdum no meaning *
577* *
578*********************************************************************
579
580 170 CONTINUE
581 IF (WHAT(1).EQ.-1.0D0) THEN
582 LFERMI = .FALSE.
583 ELSE
584 LFERMI = .TRUE.
585 ENDIF
586 XMOD = WHAT(2)
587 IF (XMOD.GE.ZERO) FERMOD = XMOD
588 GOTO 10
589
590*********************************************************************
591* *
592* control card: codewd = TAUFOR *
593* *
594* formation time supressed intranuclear cascade *
595* *
596* what (1) formation time (in fm/c) *
597* note: what(1)=10. corresponds roughly to an *
598* average formation time of 1 fm/c *
599* default: 5. fm/c *
600* what (2) number of generations followed *
601* default: 25 *
602* what (3) = 1. p_t-dependent formation zone *
603* = 2. constant formation zone *
604* default: 1 *
605* what (4) modus of selection of nucleus where the *
606* cascade if followed first *
607* = 1. proj./target-nucleus with probab. 1/2 *
608* = 2. nucleus with highest mass *
609* = 3. proj. nucleus if particle is moving in pos. z *
610* targ. nucleus if particle is moving in neg. z *
611* default: 1 *
612* what (5..6), sdum no meaning *
613* *
614*********************************************************************
615
616 180 CONTINUE
617 TAUFOR = WHAT(1)
618 KTAUGE = INT(WHAT(2))
619 INCMOD = 1
620 IF ((WHAT(3).GE.1.0D0).AND.(WHAT(3).LE.2.0D0))
621 & ITAUVE = INT(WHAT(3))
622 IF ((WHAT(4).GE.1.0D0).AND.(WHAT(4).LE.3.0D0))
623 & INCMOD = INT(WHAT(4))
624 GOTO 10
625
626*********************************************************************
627* *
628* control card: codewd = PAULI *
629* *
630* what (1) = -1 Pauli's principle for secondary *
631* interactions not treated *
632* default: 1 *
633* what (2..6), sdum no meaning *
634* *
635*********************************************************************
636
637 190 CONTINUE
638 IF (WHAT(1).EQ.-1.0D0) THEN
639 LPAULI = .FALSE.
640 ELSE
641 LPAULI = .TRUE.
642 ENDIF
643 GOTO 10
644
645*********************************************************************
646* *
647* control card: codewd = COULOMB *
648* *
649* what (1) = -1. Coulomb-energy treatment switched off *
650* default: 1 *
651* what (2..6), sdum no meaning *
652* *
653*********************************************************************
654
655 200 CONTINUE
656 ICOUL = 1
657 IF (WHAT(1).EQ.-1.0D0) THEN
658 ICOUL = 0
659 ELSE
660 ICOUL = 1
661 ENDIF
662 GOTO 10
663
664*********************************************************************
665* *
666* control card: codewd = HADRIN *
667* *
668* HADRIN module *
669* *
670* what (1) = 0. elastic/inelastic interactions with probab. *
671* as defined by cross-sections *
672* = 1. inelastic interactions forced *
673* = 2. elastic interactions forced *
674* default: 1 *
675* what (2) upper threshold in total energy (GeV) below *
676* which interactions are sampled by HADRIN *
677* default: 5. GeV *
678* what (3..6), sdum no meaning *
679* *
680*********************************************************************
681
682 210 CONTINUE
683 IWHAT = INT(WHAT(1))
684 IF ((IWHAT.GE.0).AND.(IWHAT.LE.2)) INTHAD = IWHAT
685 IF ((WHAT(2).GT.ZERO).AND.(WHAT(2).LT.15.0D0)) EHADTH = WHAT(2)
686 GOTO 10
687
688*********************************************************************
689* *
690* control card: codewd = EVAP *
691* *
692* evaporation module *
693* *
694* what (1) =< -1 ==> evaporation is switched off *
695* >= 1 ==> evaporation is performed *
696* *
697* what (1) = i1 + i2*10 + i3*100 + i4*10000 *
698* (i1, i2, i3, i4 >= 0 ) *
699* *
700* i1 is the flag for selecting the T=0 level density option used *
701* = 1: standard EVAP level densities with Cook pairing *
702* energies *
703* = 2: Z,N-dependent Gilbert & Cameron level densities *
704* (default) *
705* = 3: Julich A-dependent level densities *
706* = 4: Z,N-dependent Brancazio & Cameron level densities *
707* *
708* i2 >= 1: high energy fission activated *
709* (default high energy fission activated) *
710* *
711* i3 = 0: No energy dependence for level densities *
712* = 1: Standard Ignyatuk (1975, 1st) energy dependence *
713* for level densities (default) *
714* = 2: Standard Ignyatuk (1975, 1st) energy dependence *
715* for level densities with NOT used set of parameters *
716* = 3: Standard Ignyatuk (1975, 1st) energy dependence *
717* for level densities with NOT used set of parameters *
718* = 4: Second Ignyatuk (1975, 2nd) energy dependence *
719* for level densities *
720* = 5: Second Ignyatuk (1975, 2nd) energy dependence *
721* for level densities with fit 1 Iljinov & Mebel set of *
722* parameters *
723* = 6: Second Ignyatuk (1975, 2nd) energy dependence *
724* for level densities with fit 2 Iljinov & Mebel set of *
725* parameters *
726* = 7: Second Ignyatuk (1975, 2nd) energy dependence *
727* for level densities with fit 3 Iljinov & Mebel set of *
728* parameters *
729* = 8: Second Ignyatuk (1975, 2nd) energy dependence *
730* for level densities with fit 4 Iljinov & Mebel set of *
731* parameters *
732* *
733* i4 >= 1: Original Gilbert and Cameron pairing energies used *
734* (default Cook's modified pairing energies) *
735* *
736* what (2) = ig + 10 * if (ig and if must have the same sign) *
737* *
738* ig =< -1 ==> deexcitation gammas are not produced *
739* (if the evaporation step is not performed *
740* they are never produced) *
741* if =< -1 ==> Fermi Break Up is not invoked *
742* (if the evaporation step is not performed *
743* it is never invoked) *
744* The default is: deexcitation gamma produced and Fermi break up *
745* activated for the new preequilibrium, not *
746* activated otherwise. *
747* what (3..6), sdum no meaning *
748* *
749*********************************************************************
750
751 220 CONTINUE
752 WRITE(LOUT,1009)
753 1009 FORMAT(1X,/,'Warning! Evaporation request rejected since',
754 & ' evaporation modules not available with this version.')
755 LEVPRT = .FALSE.
756 LDEEXG = .FALSE.
757 LHEAVY = .FALSE.
758 LFRMBK = .FALSE.
759 IFISS = 0
760 IEVFSS = 0
761
762 GOTO 10
763
764*********************************************************************
765* *
766* control card: codewd = EMCCHECK *
767* *
768* extended energy-momentum / quantum-number conservation check *
769* *
770* what (1) = -1 extended check not performed *
771* default: 1. *
772* what (2..6), sdum no meaning *
773* *
774*********************************************************************
775
776 230 CONTINUE
777 IF (WHAT(1).EQ.-1) THEN
778 LEMCCK = .FALSE.
779 ELSE
780 LEMCCK = .TRUE.
781 ENDIF
782 GOTO 10
783
784*********************************************************************
785* *
786* control card: codewd = MODEL *
787* *
788* Model to be used to treat nucleon-nucleon interactions *
789* *
790* sdum = DTUNUC two-chain model *
791* = PHOJET multiple chains including minijets *
792* = LEPTO DIS *
793* = QNEUTRIN quasi-elastic neutrino scattering *
794* default: PHOJET *
795* *
796* if sdum = LEPTO: *
797* what (1) (variable INTER) *
798* = 1 gamma exchange *
799* = 2 W+- exchange *
800* = 3 Z0 exchange *
801* = 4 gamma/Z0 exchange *
802* *
803* if sdum = QNEUTRIN: *
804* what (1) = 0 elastic scattering on nucleon and *
805* tau does not decay (default) *
806* = 1 decay of tau into mu.. *
807* = 2 decay of tau into e.. *
808* = 10 CC events on p and n *
809* = 11 NC events on p and n *
810* *
811* what (2..6) no meaning *
812* *
813*********************************************************************
814
815 240 CONTINUE
816 IF (SDUM.EQ.CMODEL(1)) THEN
817 MCGENE = 1
818 ELSEIF (SDUM.EQ.CMODEL(2)) THEN
819 MCGENE = 2
820 ELSEIF (SDUM.EQ.CMODEL(3)) THEN
821 MCGENE = 3
822 IF ((WHAT(1).GE.1.0D0).AND.(WHAT(1).LE.4.0D0))
823 & INTER = INT(WHAT(1))
824 ELSEIF (SDUM.EQ.CMODEL(4)) THEN
825 MCGENE = 4
826 IWHAT = INT(WHAT(1))
827 IF ((IWHAT.EQ.1 ).OR.(IWHAT.EQ.2 ).OR.
828 & (IWHAT.EQ.10).OR.(IWHAT.EQ.11))
829 & NEUDEC = IWHAT
830 ELSE
831 STOP ' Unknown model !'
832 ENDIF
833 GOTO 10
834
835*********************************************************************
836* *
837* control card: codewd = PHOINPUT *
838* *
839* Start of input-section for PHOJET-specific input-cards *
840* Note: This section will not be finished before giving *
841* ENDINPUT-card *
842* what (1..6), sdum no meaning *
843* *
844*********************************************************************
845
846 250 CONTINUE
847 IF (LPHOIN) THEN
848 CALL PHO_INIT(LINP,LOUT,IREJ1)
849 IF (IREJ1.NE.0) THEN
850 WRITE(LOUT,'(1X,A)')'INIT: reading PHOJET-input failed'
851 STOP
852 ENDIF
853 LPHOIN = .FALSE.
854 ENDIF
855 GOTO 10
856
857*********************************************************************
858* *
859* control card: codewd = GLAUBERI *
860* *
861* Pre-initialization of impact parameter selection *
862* *
863* what (1..6), sdum no meaning *
864* *
865*********************************************************************
866
867 260 CONTINUE
868 IF (IFIRST.NE.99) THEN
869 CALL DT_RNDMST(12,34,56,78)
870 CALL DT_RNDMTE(1)
871 OPEN(40,FILE='outdata0/shm.out',STATUS='UNKNOWN')
872C OPEN(11,FILE='outdata0/shm.dbg',STATUS='UNKNOWN')
873 IFIRST = 99
874 ENDIF
875
876 IPPN = 8
877 PLOW = 10.0D0
878C IPPN = 1
879C PLOW = 100.0D0
880 PHI = 1.0D5
881 APLOW = LOG10(PLOW)
882 APHI = LOG10(PHI)
883 ADP = (APHI-APLOW)/DBLE(IPPN)
884
885 IPLOW = 1
886 IDIP = 1
887 IIP = 5
888C IPLOW = 1
889C IDIP = 1
890C IIP = 1
891 IPRANG(1) = 1
892 IPRANG(2) = 2
893 IPRANG(3) = 5
894 IPRANG(4) = 10
895 IPRANG(5) = 20
896
897 ITLOW = 30
898 IDIT = 3
899 IIT = 60
900C IDIT = 10
901C IIT = 21
902
903 DO 473 NCIT=1,IIT
904 IT = ITLOW+(NCIT-1)*IDIT
905C IPHI = IT
906C IDIP = 10
907C IIP = (IPHI-IPLOW)/IDIP
908C IF (IIP.EQ.0) IIP = 1
909C IF (IT.EQ.IPLOW) IIP = 0
910
911 DO 472 NCIP=1,IIP
912 IP = IPRANG(NCIP)
913CC IF (NCIP.LE.IIP) THEN
914C IP = IPLOW+(NCIP-1)*IDIP
915CC ELSE
916CC IP = IT
917CC ENDIF
918 IF (IP.GT.IT) GOTO 472
919
920 DO 471 NCP=1,IPPN+1
921 APPN = APLOW+DBLE(NCP-1)*ADP
922 PPN = 10**APPN
923
924 OPEN(12,FILE='outdata0/shm.sta',STATUS='UNKNOWN')
925 WRITE(12,'(1X,2I5,E15.3)') IP,IT,PPN
926 CLOSE(12)
927
928 XLIM1 = 0.0D0
929 XLIM2 = 50.0D0
930 XLIM3 = ZERO
931 IBIN = 50
932 CALL DT_NEWHGR(XDUM,XDUM,XDUM,XDUMB,-1,IHDUM)
933 CALL DT_NEWHGR(XLIM1,XLIM2,XLIM3,XDUMB,IBIN,IHSHMA)
934
935 NEVFIT = 5
936C IF ((IP.GT.10).OR.(IT.GT.10)) THEN
937C NEVFIT = 5
938C ELSE
939C NEVFIT = 10
940C ENDIF
941 SIGAV = 0.0D0
942
943 DO 478 I=1,NEVFIT
944 CALL DT_SHMAKI(IP,IDUM1,IT,IDUM1,IJPROJ,PPN,99)
945 SIGAV = SIGAV+XSPRO(1,1,1)
946 DO 479 J=1,50
947 XC = DBLE(J)
948 CALL DT_FILHGR(XC,BSITE(1,1,1,J),IHSHMA,I)
949 479 CONTINUE
950 478 CONTINUE
951
952 CALL DT_EVTHIS(IDUM)
953 HEADER = ' BSITE'
954C CALL OUTGEN(IHSHMA,0,0,0,0,0,HEADER,0,NEVFIT,ONE,0,1,-1)
955
956C CALL GENFIT(XPARA)
957C WRITE(40,'(2I4,E11.3,F6.0,5E11.3)')
958C & IP,IT,PPN,SIGAV/DBLE(NEVFIT),XPARA
959
960 471 CONTINUE
961
962 472 CONTINUE
963
964 473 CONTINUE
965
966 STOP
967
968*********************************************************************
969* *
970* control card: codewd = FLUCTUAT *
971* *
972* Treatment of cross section fluctuations *
973* *
974* what (1) = 1 treat cross section fluctuations *
975* default: 0. *
976* what (1..6), sdum no meaning *
977* *
978*********************************************************************
979
980 270 CONTINUE
981 IFLUCT = 0
982 IF (WHAT(1).EQ.ONE) THEN
983 IFLUCT = 1
984 CALL DT_FLUINI
985 ENDIF
986 GOTO 10
987
988*********************************************************************
989* *
990* control card: codewd = CENTRAL *
991* *
992* what (1) = 1. central production forced default: 0 *
993* if what (1) < 0 and > -100 *
994* what (2) = min. impact parameter default: 0 *
995* what (3) = max. impact parameter default: b_max *
996* if what (1) < -99 *
997* what (2) = fraction of cross section default: 1 *
998* if what (1) = -1 : evaporation/fzc suppressed *
999* if what (1) < -1 : evaporation/fzc allowed *
1000* *
1001* what (4..6), sdum no meaning *
1002* *
1003*********************************************************************
1004
1005 280 CONTINUE
1006 ICENTR = INT(WHAT(1))
1007 IF (ICENTR.LT.0) THEN
1008 IF (ICENTR.GT.-100) THEN
1009 BIMIN = WHAT(2)
1010 BIMAX = WHAT(3)
1011 ELSE
1012 XSFRAC = WHAT(2)
1013 ENDIF
1014 ENDIF
1015 GOTO 10
1016
1017*********************************************************************
1018* *
1019* control card: codewd = RECOMBIN *
1020* *
1021* Chain recombination *
1022* (recombine S-S and V-V chains to V-S chains) *
1023* *
1024* what (1) = -1. recombination switched off default: 1 *
1025* what (2..6), sdum no meaning *
1026* *
1027*********************************************************************
1028
1029 290 CONTINUE
1030 IRECOM = 1
1031 IF (WHAT(1).EQ.-1.0D0) IRECOM = 0
1032 GOTO 10
1033
1034*********************************************************************
1035* *
1036* control card: codewd = COMBIJET *
1037* *
1038* chain fusion (2 q-aq --> qq-aqaq) *
1039* *
1040* what (1) = 1 fusion treated *
1041* default: 0. *
1042* what (2) minimum number of uncombined chains from *
1043* single projectile or target nucleons *
1044* default: 0. *
1045* what (3..6), sdum no meaning *
1046* *
1047*********************************************************************
1048
1049 300 CONTINUE
1050 LCO2CR = .FALSE.
1051 IF (INT(WHAT(1)).EQ.1) LCO2CR = .TRUE.
1052 IF (WHAT(2).GE.ZERO) CUTOF = WHAT(2)
1053 GOTO 10
1054
1055*********************************************************************
1056* *
1057* control card: codewd = XCUTS *
1058* *
1059* thresholds for x-sampling *
1060* *
1061* what (1) defines lower threshold for val.-q x-value (CVQ) *
1062* default: 1. *
1063* what (2) defines lower threshold for val.-qq x-value (CDQ) *
1064* default: 2. *
1065* what (3) defines lower threshold for sea-q x-value (CSEA) *
1066* default: 0.2 *
1067* what (4) sea-q x-values in S-S chains (SSMIMA) *
1068* default: 0.14 *
1069* what (5) not used *
1070* default: 2. *
1071* what (6), sdum no meaning *
1072* *
1073* Note: Lower thresholds (what(1..3)) are def. as x_thr=CXXX/ECM *
1074* *
1075*********************************************************************
1076
1077 310 CONTINUE
1078 IF (WHAT(1).GE.0.5D0) CVQ = WHAT(1)
1079 IF (WHAT(2).GE.ONE) CDQ = WHAT(2)
1080 IF (WHAT(3).GE.0.1D0) CSEA = WHAT(3)
1081 IF (WHAT(4).GE.ZERO) THEN
1082 SSMIMA = WHAT(4)
1083 SSMIMQ = SSMIMA**2
1084 ENDIF
1085 IF (WHAT(5).GT.2.0D0) VVMTHR = WHAT(5)
1086 GOTO 10
1087
1088*********************************************************************
1089* *
1090* control card: codewd = INTPT *
1091* *
1092* what (1) = -1 intrinsic transverse momenta of partons *
1093* not treated default: 1 *
1094* what (2..6), sdum no meaning *
1095* *
1096*********************************************************************
1097
1098 320 CONTINUE
1099 IF (WHAT(1).EQ.-1.0D0) THEN
1100 LINTPT = .FALSE.
1101 ELSE
1102 LINTPT = .TRUE.
1103 ENDIF
1104 GOTO 10
1105
1106*********************************************************************
1107* *
1108* control card: codewd = CRONINPT *
1109* *
1110* Cronin effect (multiple scattering of partons at chain ends) *
1111* *
1112* what (1) = -1 Cronin effect not treated default: 1 *
1113* what (2) = 0 scattering parameter default: 0.64 *
1114* what (3..6), sdum no meaning *
1115* *
1116*********************************************************************
1117
1118 330 CONTINUE
1119 IF (WHAT(1).EQ.-1.0D0) THEN
1120 MKCRON = 0
1121 ELSE
1122 MKCRON = 1
1123 ENDIF
1124 CRONCO = WHAT(2)
1125 GOTO 10
1126
1127*********************************************************************
1128* *
1129* control card: codewd = SEADISTR *
1130* *
1131* what (1) (XSEACO) sea(x) prop. 1/x**what (1) default: 1. *
1132* what (2) (UNON) default: 2. *
1133* what (3) (UNOM) default: 1.5 *
1134* what (4) (UNOSEA) default: 5. *
1135* qdis(x) prop. (1-x)**what (1) etc. *
1136* what (5..6), sdum no meaning *
1137* *
1138*********************************************************************
1139
1140 340 CONTINUE
1141 XSEACO = WHAT(1)
1142 XSEACU = 1.05D0-XSEACO
1143 UNON = WHAT(2)
1144 IF (UNON.LT.0.1D0) UNON = 2.0D0
1145 UNOM = WHAT(3)
1146 IF (UNOM.LT.0.1D0) UNOM = 1.5D0
1147 UNOSEA = WHAT(4)
1148 IF (UNOSEA.LT.0.1D0) UNOSEA = 5.0D0
1149 GOTO 10
1150
1151*********************************************************************
1152* *
1153* control card: codewd = SEASU3 *
1154* *
1155* Treatment of strange-quarks at chain ends *
1156* *
1157* what (1) (SEASQ) strange-quark supression factor *
1158* iflav = 1.+rndm*(2.+SEASQ) *
1159* default: 1. *
1160* what (2..6), sdum no meaning *
1161* *
1162*********************************************************************
1163
1164 350 CONTINUE
1165 SEASQ = WHAT(1)
1166 GOTO 10
1167
1168*********************************************************************
1169* *
1170* control card: codewd = DIQUARKS *
1171* *
1172* what (1) = -1. sea-diquark/antidiquark-pairs not treated *
1173* default: 1. *
1174* what (2..6), sdum no meaning *
1175* *
1176*********************************************************************
1177
1178 360 CONTINUE
1179 IF (WHAT(1).EQ.-1.0D0) THEN
1180 LSEADI = .FALSE.
1181 ELSE
1182 LSEADI = .TRUE.
1183 ENDIF
1184 GOTO 10
1185
1186*********************************************************************
1187* *
1188* control card: codewd = RESONANC *
1189* *
1190* treatment of low mass chains *
1191* *
1192* what (1) = -1 low chain masses are not corrected for resonance *
1193* masses (obsolete for BAMJET-fragmentation) *
1194* default: 1. *
1195* what (2) = -1 massless partons default: 1. (massive) *
1196* default: 1. (massive) *
1197* what (3) = -1 chain-system containing chain of too small *
1198* mass is rejected (note: this does not fully *
1199* apply to S-S chains) default: 0. *
1200* what (4..6), sdum no meaning *
1201* *
1202*********************************************************************
1203
1204 370 CONTINUE
1205 IRESCO = 1
1206 IMSHL = 1
1207 IRESRJ = 0
1208 IF (WHAT(1).EQ.-ONE) IRESCO = 0
1209 IF (WHAT(2).EQ.-ONE) IMSHL = 0
1210 IF (WHAT(3).EQ.-ONE) IRESRJ = 1
1211 GOTO 10
1212
1213*********************************************************************
1214* *
1215* control card: codewd = DIFFRACT *
1216* *
1217* Treatment of diffractive events *
1218* *
1219* what (1) = (ISINGD) 0 no single diffraction *
1220* 1 single diffraction included *
1221* +-2 single diffractive events only *
1222* +-3 projectile single diffraction only *
1223* +-4 target single diffraction only *
1224* -5 double pomeron exchange only *
1225* (neg. sign applies to PHOJET events) *
1226* default: 0. *
1227* *
1228* what (2) = (IDOUBD) 0 no double diffraction *
1229* 1 double diffraction included *
1230* 2 double diffractive events only *
1231* default: 0. *
1232* what (3) = 1 projectile diffraction treated (2-channel form.) *
1233* default: 0. *
1234* what (4) = alpha-parameter in projectile diffraction *
1235* default: 0. *
1236* what (5..6), sdum no meaning *
1237* *
1238*********************************************************************
1239
1240 380 CONTINUE
1241 IF (ABS(WHAT(1)).GT.ZERO) ISINGD = INT(WHAT(1))
1242 IF (ABS(WHAT(2)).GT.ZERO) IDOUBD = INT(WHAT(2))
1243 IF ((ISINGD.GT.1).AND.(IDOUBD.GT.1)) THEN
1244 WRITE(LOUT,1380)
1245 1380 FORMAT(1X,'INIT: inconsistent DIFFRACT - input !',/,
1246 & 11X,'IDOUBD is reset to zero')
1247 IDOUBD = 0
1248 ENDIF
1249 IF (WHAT(3).GT.ZERO) DIBETA = WHAT(3)
1250 IF (WHAT(4).GT.ZERO) DIALPH = WHAT(4)
1251 GOTO 10
1252
1253*********************************************************************
1254* *
1255* control card: codewd = SINGLECH *
1256* *
1257* what (1) = 1. Regge contribution (one chain) included *
1258* default: 0. *
1259* what (2..6), sdum no meaning *
1260* *
1261*********************************************************************
1262
1263 390 CONTINUE
1264 ISICHA = 0
1265 IF (WHAT(1).EQ.ONE) ISICHA = 1
1266 GOTO 10
1267
1268*********************************************************************
1269* *
1270* control card: codewd = NOFRAGME *
1271* *
1272* biased chain hadronization *
1273* *
1274* what (1..6) = -1 no of hadronizsation of S-S chains *
1275* = -2 no of hadronizsation of D-S chains *
1276* = -3 no of hadronizsation of S-D chains *
1277* = -4 no of hadronizsation of S-V chains *
1278* = -5 no of hadronizsation of D-V chains *
1279* = -6 no of hadronizsation of V-S chains *
1280* = -7 no of hadronizsation of V-D chains *
1281* = -8 no of hadronizsation of V-V chains *
1282* = -9 no of hadronizsation of comb. chains *
1283* default: complete hadronization *
1284* sdum no meaning *
1285* *
1286*********************************************************************
1287
1288 400 CONTINUE
1289 DO 401 I=1,6
1290 ICHAIN = INT(WHAT(I))
1291 IF ((ICHAIN.LE.-1).AND.(ICHAIN.GE.-9))
1292 & LHADRO(ABS(ICHAIN)) = .FALSE.
1293 401 CONTINUE
1294 GOTO 10
1295
1296*********************************************************************
1297* *
1298* control card: codewd = HADRONIZE *
1299* *
1300* hadronization model and parameter switch *
1301* *
1302* what (1) = 1 hadronization via BAMJET *
1303* = 2 hadronization via JETSET *
1304* default: 2 *
1305* what (2) = 1..3 parameter set to be used *
1306* JETSET: 3 sets available *
1307* ( = 3 default JETSET-parameters) *
1308* BAMJET: 1 set available *
1309* default: 1 *
1310* what (3..6), sdum no meaning *
1311* *
1312*********************************************************************
1313
1314 410 CONTINUE
1315 IWHAT1 = INT(WHAT(1))
1316 IWHAT2 = INT(WHAT(2))
1317 IF ((IWHAT1.EQ.1).OR.(IWHAT1.EQ.2)) IFRAG(1) = IWHAT1
1318 IF ((IWHAT1.EQ.2).AND.(IWHAT2.GE.1).AND.(IWHAT2.LE.3))
1319 & IFRAG(2) = IWHAT2
1320 GOTO 10
1321
1322*********************************************************************
1323* *
1324* control card: codewd = POPCORN *
1325* *
1326* "Popcorn-effect" in fragmentation and diquark breaking diagrams *
1327* *
1328* what (1) = (PDB) frac. of diquark fragmenting directly into *
1329* baryons (PYTHIA/JETSET fragmentation) *
1330* (JETSET: = 0. Popcorn mechanism switched off) *
1331* default: 0.5 *
1332* what (2) = probability for accepting a diquark breaking *
1333* diagram involving the generation of a u/d quark- *
1334* antiquark pair default: 0.0 *
1335* what (3) = same a what (2), here for s quark-antiquark pair *
1336* default: 0.0 *
1337* what (4..6), sdum no meaning *
1338* *
1339*********************************************************************
1340
1341 420 CONTINUE
1342 IF (WHAT(1).GE.0.0D0) PDB = WHAT(1)
1343 IF (WHAT(2).GE.0.0D0) THEN
1344 PDBSEA(1) = WHAT(2)
1345 PDBSEA(2) = WHAT(2)
1346 ENDIF
1347 IF (WHAT(3).GE.0.0D0) PDBSEA(3) = WHAT(3)
1348 DO 421 I=1,8
1349 DBRKA(1,I) = DBRKR(1,I)*PDBSEA(1)/(1.D0-PDBSEA(1))
1350 DBRKA(2,I) = DBRKR(2,I)*PDBSEA(2)/(1.D0-PDBSEA(2))
1351 DBRKA(3,I) = DBRKR(3,I)*PDBSEA(3)/(1.D0-PDBSEA(3))
1352 421 CONTINUE
1353 GOTO 10
1354
1355*********************************************************************
1356* *
1357* control card: codewd = PARDECAY *
1358* *
1359* what (1) = 1. Sigma0/Asigma0 are decaying within JETSET *
1360* = 2. pion^0 decay after intranucl. cascade *
1361* default: no decay *
1362* what (2..6), sdum no meaning *
1363* *
1364*********************************************************************
1365
1366 430 CONTINUE
1367 IF (WHAT(1).EQ.ONE) ISIG0 = 1
1368 IF (WHAT(1).EQ.2.0D0) IPI0 = 1
1369 GOTO 10
1370
1371*********************************************************************
1372* *
1373* control card: codewd = BEAM *
1374* *
1375* definition of beam parameters *
1376* *
1377* what (1/2) > 0 : energy of beam 1/2 (GeV) *
1378* < 0 : abs(what(1/2)) energy per charge of *
1379* beam 1/2 (GeV) *
1380* (beam 1 is directed into positive z-direction) *
1381* what (3) beam crossing angle, defined as 2x angle between *
1382* one beam and the z-axis (micro rad) *
1383* what (4) angle with x-axis defining the collision plane *
1384* what (5..6), sdum no meaning *
1385* *
1386* Note: this card requires previously defined projectile and *
1387* target identities (PROJPAR, TARPAR) *
1388* *
1389*********************************************************************
1390
1391 440 CONTINUE
1392 CALL DT_BEAMPR(WHAT,PPN,1)
1393 EPN = ZERO
1394 CMENER = ZERO
1395 LEINP = .TRUE.
1396 GOTO 10
1397
1398*********************************************************************
1399* *
1400* control card: codewd = LUND-MSTU *
1401* *
1402* set parameter MSTU in JETSET-common /LUDAT1/ *
1403* *
1404* what (1) = index according to LUND-common block *
1405* what (2) = new value of MSTU( int(what(1)) ) *
1406* what (3), what(4) and what (5), what(6) further *
1407* parameter in the same way as what (1) and *
1408* what (2) *
1409* default: default-Lund or corresponding to *
1410* the set given in HADRONIZE *
1411* *
1412*********************************************************************
1413
1414 450 CONTINUE
1415 IF (WHAT(1).GT.ZERO) THEN
1416 NMSTU = NMSTU+1
1417 IMSTU(NMSTU) = INT(WHAT(1))
1418 MSTUX(NMSTU) = INT(WHAT(2))
1419 ENDIF
1420 IF (WHAT(3).GT.ZERO) THEN
1421 NMSTU = NMSTU+1
1422 IMSTU(NMSTU) = INT(WHAT(3))
1423 MSTUX(NMSTU) = INT(WHAT(4))
1424 ENDIF
1425 IF (WHAT(5).GT.ZERO) THEN
1426 NMSTU = NMSTU+1
1427 IMSTU(NMSTU) = INT(WHAT(5))
1428 MSTUX(NMSTU) = INT(WHAT(6))
1429 ENDIF
1430 GOTO 10
1431
1432*********************************************************************
1433* *
1434* control card: codewd = LUND-MSTJ *
1435* *
1436* set parameter MSTJ in JETSET-common /LUDAT1/ *
1437* *
1438* what (1) = index according to LUND-common block *
1439* what (2) = new value of MSTJ( int(what(1)) ) *
1440* what (3), what(4) and what (5), what(6) further *
1441* parameter in the same way as what (1) and *
1442* what (2) *
1443* default: default-Lund or corresponding to *
1444* the set given in HADRONIZE *
1445* *
1446*********************************************************************
1447
1448 451 CONTINUE
1449 IF (WHAT(1).GT.ZERO) THEN
1450 NMSTJ = NMSTJ+1
1451 IMSTJ(NMSTJ) = INT(WHAT(1))
1452 MSTJX(NMSTJ) = INT(WHAT(2))
1453 ENDIF
1454 IF (WHAT(3).GT.ZERO) THEN
1455 NMSTJ = NMSTJ+1
1456 IMSTJ(NMSTJ) = INT(WHAT(3))
1457 MSTJX(NMSTJ) = INT(WHAT(4))
1458 ENDIF
1459 IF (WHAT(5).GT.ZERO) THEN
1460 NMSTJ = NMSTJ+1
1461 IMSTJ(NMSTJ) = INT(WHAT(5))
1462 MSTJX(NMSTJ) = INT(WHAT(6))
1463 ENDIF
1464 GOTO 10
1465
1466*********************************************************************
1467* *
1468* control card: codewd = LUND-MDCY *
1469* *
1470* set parameter MDCY(I,1) for particle decays in JETSET-common *
1471* /LUDAT3/ *
1472* *
1473* what (1-6) = PDG particle index of particle which should *
1474* not decay *
1475* default: default-Lund or forced in *
1476* DT_INITJS *
1477* *
1478*********************************************************************
1479
1480 452 CONTINUE
1481 DO 4521 I=1,6
1482 IF (WHAT(I).NE.ZERO) THEN
1483 KC = PYCOMP(INT(WHAT(I)))
1484 MDCY(KC,1) = 0
1485 ENDIF
1486 4521 CONTINUE
1487 GOTO 10
1488
1489*********************************************************************
1490* *
1491* control card: codewd = LUND-PARJ *
1492* *
1493* set parameter PARJ in JETSET-common /LUDAT1/ *
1494* *
1495* what (1) = index according to LUND-common block *
1496* what (2) = new value of PARJ( int(what(1)) ) *
1497* what (3), what(4) and what (5), what(6) further *
1498* parameter in the same way as what (1) and *
1499* what (2) *
1500* default: default-Lund or corresponding to *
1501* the set given in HADRONIZE *
1502* *
1503*********************************************************************
1504
1505 460 CONTINUE
1506 IF (WHAT(1).NE.ZERO) THEN
1507 NPARJ = NPARJ+1
1508 IPARJ(NPARJ) = INT(WHAT(1))
1509 PARJX(NPARJ) = WHAT(2)
1510 ENDIF
1511 IF (WHAT(3).NE.ZERO) THEN
1512 NPARJ = NPARJ+1
1513 IPARJ(NPARJ) = INT(WHAT(3))
1514 PARJX(NPARJ) = WHAT(4)
1515 ENDIF
1516 IF (WHAT(5).NE.ZERO) THEN
1517 NPARJ = NPARJ+1
1518 IPARJ(NPARJ) = INT(WHAT(5))
1519 PARJX(NPARJ) = WHAT(6)
1520 ENDIF
1521 GOTO 10
1522
1523*********************************************************************
1524* *
1525* control card: codewd = LUND-PARU *
1526* *
1527* set parameter PARJ in JETSET-common /LUDAT1/ *
1528* *
1529* what (1) = index according to LUND-common block *
1530* what (2) = new value of PARU( int(what(1)) ) *
1531* what (3), what(4) and what (5), what(6) further *
1532* parameter in the same way as what (1) and *
1533* what (2) *
1534* default: default-Lund or corresponding to *
1535* the set given in HADRONIZE *
1536* *
1537*********************************************************************
1538
1539 470 CONTINUE
1540 IF (WHAT(1).GT.ZERO) THEN
1541 NPARU = NPARU+1
1542 IPARU(NPARU) = INT(WHAT(1))
1543 PARUX(NPARU) = WHAT(2)
1544 ENDIF
1545 IF (WHAT(3).GT.ZERO) THEN
1546 NPARU = NPARU+1
1547 IPARU(NPARU) = INT(WHAT(3))
1548 PARUX(NPARU) = WHAT(4)
1549 ENDIF
1550 IF (WHAT(5).GT.ZERO) THEN
1551 NPARU = NPARU+1
1552 IPARU(NPARU) = INT(WHAT(5))
1553 PARUX(NPARU) = WHAT(6)
1554 ENDIF
1555 GOTO 10
1556
1557*********************************************************************
1558* *
1559* control card: codewd = OUTLEVEL *
1560* *
1561* output control switches *
1562* *
1563* what (1) = internal rejection informations default: 0 *
1564* what (2) = energy-momentum conservation check output *
1565* default: 0 *
1566* what (3) = internal warning messages default: 0 *
1567* what (4..6), sdum not yet used *
1568* *
1569*********************************************************************
1570
1571 480 CONTINUE
1572 DO 481 K=1,6
1573 IOULEV(K) = INT(WHAT(K))
1574 481 CONTINUE
1575 GOTO 10
1576
1577*********************************************************************
1578* *
1579* control card: codewd = FRAME *
1580* *
1581* frame in which final state is given in DTEVT1 *
1582* *
1583* what (1) = 1 target rest frame (laboratory) *
1584* = 2 nucleon-nucleon cms *
1585* default: 1 *
1586* *
1587*********************************************************************
1588
1589 490 CONTINUE
1590 KFRAME = INT(WHAT(1))
1591 IF ((KFRAME.GE.1).AND.(KFRAME.LE.2)) IFRAME = KFRAME
1592 GOTO 10
1593
1594*********************************************************************
1595* *
1596* control card: codewd = L-TAG *
1597* *
1598* lepton tagger: *
1599* definition of kinematical cuts for radiated photon and *
1600* outgoing lepton detection in lepton-nucleus interactions *
1601* *
1602* what (1) = y_min *
1603* what (2) = y_max *
1604* what (3) = Q^2_min *
1605* what (4) = Q^2_max *
1606* what (5) = theta_min (Lab) *
1607* what (6) = theta_max (Lab) *
1608* default: no cuts *
1609* sdum no meaning *
1610* *
1611*********************************************************************
1612
1613 500 CONTINUE
1614 YMIN = WHAT(1)
1615 YMAX = WHAT(2)
1616 Q2MIN = WHAT(3)
1617 Q2MAX = WHAT(4)
1618 THMIN = WHAT(5)
1619 THMAX = WHAT(6)
1620 GOTO 10
1621
1622*********************************************************************
1623* *
1624* control card: codewd = L-ETAG *
1625* *
1626* lepton tagger: *
1627* what (1) = min. outgoing lepton energy (in Lab) *
1628* what (2) = min. photon energy (in Lab) *
1629* what (3) = max. photon energy (in Lab) *
1630* default: no cuts *
1631* what (2..6), sdum no meaning *
1632* *
1633*********************************************************************
1634
1635 510 CONTINUE
1636 ELMIN = MAX(WHAT(1),ZERO)
1637 EGMIN = MAX(WHAT(2),ZERO)
1638 EGMAX = MAX(WHAT(3),ZERO)
1639 GOTO 10
1640
1641*********************************************************************
1642* *
1643* control card: codewd = ECMS-CUT *
1644* *
1645* what (1) = min. c.m. energy to be sampled *
1646* what (2) = max. c.m. energy to be sampled *
1647* what (3) = min x_Bj to be sampled *
1648* default: no cuts *
1649* what (3..6), sdum no meaning *
1650* *
1651*********************************************************************
1652
1653 520 CONTINUE
1654 ECMIN = WHAT(1)
1655 ECMAX = WHAT(2)
1656 IF (ECMIN.GT.ECMAX) ECMIN = ECMAX
1657 XBJMIN = MAX(WHAT(3),ZERO)
1658 GOTO 10
1659
1660*********************************************************************
1661* *
1662* control card: codewd = VDM-PAR1 *
1663* *
1664* parameters in gamma-nucleus cross section calculation *
1665* *
1666* what (1) = Lambda^2 default: 2. *
1667* what (2) lower limit in M^2 integration *
1668* = 1 (3m_pi)^2 *
1669* = 2 (m_rho0)^2 *
1670* = 3 (m_phi)^2 default: 1 *
1671* what (3) upper limit in M^2 integration *
1672* = 1 s/2 *
1673* = 2 s/4 *
1674* = 3 s default: 3 *
1675* what (4) CKMT F_2 structure function *
1676* = 2212 proton *
1677* = 100 deuteron default: 2212 *
1678* what (5) calculation of gamma-nucleon xsections *
1679* = 1 according to CKMT-parametrization of F_2 *
1680* = 2 integrating SIGVP over M^2 *
1681* = 3 using SIGGA *
1682* = 4 PHOJET cross sections default: 4 *
1683* *
1684* what (6), sdum no meaning *
1685* *
1686*********************************************************************
1687
1688 530 CONTINUE
1689 IF (WHAT(1).GE.ZERO) RL2 = WHAT(1)
1690 IF ((WHAT(2).GE.1).AND.(WHAT(2).LE.3)) INTRGE(1) = INT(WHAT(2))
1691 IF ((WHAT(3).GE.1).AND.(WHAT(3).LE.3)) INTRGE(2) = INT(WHAT(3))
1692 IF ((WHAT(4).EQ.2212).OR.(WHAT(4).EQ.100)) IDPDF = INT(WHAT(4))
1693 IF ((WHAT(5).GE.1).AND.(WHAT(5).LE.4)) MODEGA = INT(WHAT(5))
1694 GOTO 10
1695
1696*********************************************************************
1697* *
1698* control card: codewd = HISTOGRAM *
1699* *
1700* activate different classes of histograms *
1701* *
1702* default: no histograms *
1703* *
1704*********************************************************************
1705
1706 540 CONTINUE
1707 DO 541 J=1,6
1708 IF ((WHAT(J).GE.100).AND.(WHAT(J).LE.150)) THEN
1709 IHISPP(INT(WHAT(J))-100) = 1
1710 ELSEIF ((ABS(WHAT(J)).GE.200).AND.(ABS(WHAT(J)).LE.250)) THEN
1711 IHISXS(INT(ABS(WHAT(J)))-200) = 1
1712 IF (WHAT(J).LT.ZERO) IXSTBL = 1
1713 ENDIF
1714 541 CONTINUE
1715 GOTO 10
1716
1717*********************************************************************
1718* *
1719* control card: codewd = XS-TABLE *
1720* *
1721* output of cross section table for requested interaction *
1722* - particle production deactivated ! - *
1723* *
1724* what (1) lower energy limit for tabulation *
1725* > 0 Lab. frame *
1726* < 0 nucleon-nucleon cms *
1727* what (2) upper energy limit for tabulation *
1728* > 0 Lab. frame *
1729* < 0 nucleon-nucleon cms *
1730* what (3) > 0 # of equidistant lin. bins in E *
1731* < 0 # of equidistant log. bins in E *
1732* what (4) lower limit of particle virtuality (photons) *
1733* what (5) upper limit of particle virtuality (photons) *
1734* what (6) > 0 # of equidistant lin. bins in Q^2 *
1735* < 0 # of equidistant log. bins in Q^2 *
1736* *
1737*********************************************************************
1738
1739 550 CONTINUE
1740 IF (WHAT(1).EQ.99999.0D0) THEN
1741 IRATIO = INT(WHAT(2))
1742 GOTO 10
1743 ENDIF
1744 CMENER = ABS(WHAT(2))
1745 IF (.NOT.LXSTAB) THEN
1746 CALL DT_BERTTP
1747 CALL DT_INCINI
1748 ENDIF
1749 IF ((.NOT.LXSTAB).OR.(CMENER.NE.CMEOLD)) THEN
1750 CMEOLD = CMENER
1751 IF (WHAT(2).GT.ZERO)
1752 & CMENER = SQRT(2.0D0*AAM(1)**2+2.0D0*WHAT(2)*AAM(1))
1753 EPN = ZERO
1754 PPN = ZERO
1755C WRITE(LOUT,*) 'CMENER = ',CMENER
1756 CALL DT_LTINI(IJPROJ,IJTARG,EPN,PPN,CMENER,1)
1757 CALL DT_PHOINI
1758 ENDIF
1759 CALL DT_XSTABL(WHAT,IXSQEL,IRATIO)
1760 IXSQEL = 0
1761 LXSTAB = .TRUE.
1762 GOTO 10
1763
1764*********************************************************************
1765* *
1766* control card: codewd = GLAUB-PAR *
1767* *
1768* parameters in Glauber-formalism *
1769* *
1770* what (1) # of nucleon configurations sampled in integration *
1771* over nuclear desity default: 1000 *
1772* what (2) # of bins for integration over impact-parameter and *
1773* for profile-function calculation default: 49 *
1774* what (3) = 1 calculation of tot., el. and qel. cross sections *
1775* default: 0 *
1776* what (4) = 1 read pre-calculated impact-parameter distrib. *
1777* from "sdum".glb *
1778* =-1 dump pre-calculated impact-parameter distrib. *
1779* into "sdum".glb *
1780* = 100 read pre-calculated impact-parameter distrib. *
1781* for variable projectile/target/energy runs *
1782* from "sdum".glb *
1783* default: 0 *
1784* what (5..6) no meaning *
1785* sdum if |what (4)| = 1 name of in/output-file (sdum.glb) *
1786* *
1787*********************************************************************
1788
1789 560 CONTINUE
1790 IF (WHAT(1).GT.ZERO) JSTATB = INT(WHAT(1))
1791 IF (WHAT(2).GT.ZERO) JBINSB = INT(WHAT(2))
1792 IF (WHAT(3).EQ.ONE) LPROD = .FALSE.
1793 IF ((ABS(WHAT(4)).EQ.ONE).OR.(WHAT(4).EQ.100)) THEN
1794 IOGLB = INT(WHAT(4))
1795 CGLB = SDUM
1796 ENDIF
1797 GOTO 10
1798
1799*********************************************************************
1800* *
1801* control card: codewd = GLAUB-INI *
1802* *
1803* pre-initialization of profile function *
1804* *
1805* what (1) lower energy limit for initialization *
1806* > 0 Lab. frame *
1807* < 0 nucleon-nucleon cms *
1808* what (2) upper energy limit for initialization *
1809* > 0 Lab. frame *
1810* < 0 nucleon-nucleon cms *
1811* what (3) > 0 # of equidistant lin. bins in E *
1812* < 0 # of equidistant log. bins in E *
1813* what (4) maximum projectile mass number for which the *
1814* Glauber data are initialized for each *
1815* projectile mass number *
1816* (if <= mass given with the PROJPAR-card) *
1817* default: 18 *
1818* what (5) steps in mass number starting from what (4) *
1819* up to mass number defined with PROJPAR-card *
1820* for which Glauber data are initialized *
1821* default: 5 *
1822* what (6) no meaning *
1823* sdum no meaning *
1824* *
1825*********************************************************************
1826
1827 565 CONTINUE
1828 IOGLB = -100
1829 CALL DT_GLBINI(WHAT)
1830 GOTO 10
1831
1832*********************************************************************
1833* *
1834* control card: codewd = VDM-PAR2 *
1835* *
1836* parameters in gamma-nucleus cross section calculation *
1837* *
1838* what (1) = 0 no suppression of shadowing by direct photon *
1839* processes *
1840* = 1 suppression .. default: 1 *
1841* what (2) = 0 no suppression of shadowing by anomalous *
1842* component if photon-F_2 *
1843* = 1 suppression .. default: 1 *
1844* what (3) = 0 no suppression of shadowing by coherence *
1845* length of the photon *
1846* = 1 suppression .. default: 1 *
1847* what (4) = 1 longitudinal polarized photons are taken into *
1848* account *
1849* eps*R*Q^2/M^2 = what(4)*Q^2/M^2 default: 0 *
1850* what (5..6), sdum no meaning *
1851* *
1852*********************************************************************
1853
1854 570 CONTINUE
1855 IF ((WHAT(1).EQ.ZERO).OR.(WHAT(1).EQ.ONE)) ISHAD(1) = INT(WHAT(1))
1856 IF ((WHAT(2).EQ.ZERO).OR.(WHAT(2).EQ.ONE)) ISHAD(2) = INT(WHAT(2))
1857 IF ((WHAT(3).EQ.ZERO).OR.(WHAT(3).EQ.ONE)) ISHAD(3) = INT(WHAT(3))
1858 EPSPOL = WHAT(4)
1859 GOTO 10
1860
1861*********************************************************************
1862* *
1863* control card: XS-QELPRO *
1864* *
1865* what (1..6), sdum no meaning *
1866* *
1867*********************************************************************
1868
1869 580 CONTINUE
1870 IXSQEL = ABS(WHAT(1))
1871 GOTO 10
1872
1873*********************************************************************
1874* *
1875* control card: RNDMINIT *
1876* *
1877* initialization of random number generator *
1878* *
1879* what (1..4) values for initialization (= 1..168) *
1880* what (5..6), sdum no meaning *
1881* *
1882*********************************************************************
1883
1884 590 CONTINUE
1885 IF ((WHAT(1).LT.1.0D0).OR.(WHAT(1).GT.168.0D0)) THEN
1886 NA1 = 22
1887 ELSE
1888 NA1 = WHAT(1)
1889 ENDIF
1890 IF ((WHAT(2).LT.1.0D0).OR.(WHAT(2).GT.168.0D0)) THEN
1891 NA2 = 54
1892 ELSE
1893 NA2 = WHAT(2)
1894 ENDIF
1895 IF ((WHAT(3).LT.1.0D0).OR.(WHAT(3).GT.168.0D0)) THEN
1896 NA3 = 76
1897 ELSE
1898 NA3 = WHAT(3)
1899 ENDIF
1900 IF ((WHAT(4).LT.1.0D0).OR.(WHAT(4).GT.168.0D0)) THEN
1901 NA4 = 92
1902 ELSE
1903 NA4 = WHAT(4)
1904 ENDIF
1905 CALL DT_RNDMST(NA1,NA2,NA3,NA4)
1906 GOTO 10
1907
1908*********************************************************************
1909* *
1910* control card: codewd = LEPTO-CUT *
1911* *
1912* set parameter CUT in LEPTO-common /LEPTOU/ *
1913* *
1914* what (1) = index in CUT-array *
1915* what (2) = new value of CUT( int(what(1)) ) *
1916* what (3), what(4) and what (5), what(6) further *
1917* parameter in the same way as what (1) and *
1918* what (2) *
1919* default: default-LEPTO parameters *
1920* *
1921*********************************************************************
1922
1923 600 CONTINUE
1924 IF (WHAT(1).GT.ZERO) CUT(INT(WHAT(1))) = WHAT(2)
1925 IF (WHAT(3).GT.ZERO) CUT(INT(WHAT(3))) = WHAT(4)
1926 IF (WHAT(5).GT.ZERO) CUT(INT(WHAT(5))) = WHAT(6)
1927 GOTO 10
1928
1929*********************************************************************
1930* *
1931* control card: codewd = LEPTO-LST *
1932* *
1933* set parameter LST in LEPTO-common /LEPTOU/ *
1934* *
1935* what (1) = index in LST-array *
1936* what (2) = new value of LST( int(what(1)) ) *
1937* what (3), what(4) and what (5), what(6) further *
1938* parameter in the same way as what (1) and *
1939* what (2) *
1940* default: default-LEPTO parameters *
1941* *
1942*********************************************************************
1943
1944 610 CONTINUE
1945 IF (WHAT(1).GT.ZERO) LST(INT(WHAT(1))) = INT(WHAT(2))
1946 IF (WHAT(3).GT.ZERO) LST(INT(WHAT(3))) = INT(WHAT(4))
1947 IF (WHAT(5).GT.ZERO) LST(INT(WHAT(5))) = INT(WHAT(6))
1948 GOTO 10
1949
1950*********************************************************************
1951* *
1952* control card: codewd = LEPTO-PARL *
1953* *
1954* set parameter PARL in LEPTO-common /LEPTOU/ *
1955* *
1956* what (1) = index in PARL-array *
1957* what (2) = new value of PARL( int(what(1)) ) *
1958* what (3), what(4) and what (5), what(6) further *
1959* parameter in the same way as what (1) and *
1960* what (2) *
1961* default: default-LEPTO parameters *
1962* *
1963*********************************************************************
1964
1965 620 CONTINUE
1966 IF (WHAT(1).GT.ZERO) PARL(INT(WHAT(1))) = WHAT(2)
1967 IF (WHAT(3).GT.ZERO) PARL(INT(WHAT(3))) = WHAT(4)
1968 IF (WHAT(5).GT.ZERO) PARL(INT(WHAT(5))) = WHAT(6)
1969 GOTO 10
1970
1971*********************************************************************
1972* *
1973* control card: codewd = START *
1974* *
1975* what (1) = number of events default: 100. *
1976* what (2) = 0 Glauber initialization follows *
1977* = 1 Glauber initialization supressed, fitted *
1978* results are used instead *
1979* (this does not apply if emulsion-treatment *
1980* is requested) *
1981* = 2 Glauber initialization is written to *
1982* output-file shmakov.out *
1983* = 3 Glauber initialization is read from input-file *
1984* shmakov.out default: 0 *
1985* what (3..6) no meaning *
1986* what (3..6) no meaning *
1987* *
1988*********************************************************************
1989
1990 630 CONTINUE
1991
1992* check for cross-section table output only
1993 IF (LXSTAB) STOP
1994
1995 NCASES = INT(WHAT(1))
1996 IF (NCASES.LE.0) NCASES = 100
1997 IGLAU = INT(WHAT(2))
1998 IF ((IGLAU.NE.1).AND.(IGLAU.NE.2).AND.(IGLAU.NE.3))
1999 & IGLAU = 0
2000
2001 NPMASS = IP
2002 NPCHAR = IPZ
2003 NTMASS = IT
2004 NTCHAR = ITZ
2005 IDP = IJPROJ
2006 IDT = IJTARG
2007 IF (IDP.LE.0) IDP = 1
2008* muon neutrinos: temporary (missing index)
2009* (new patch in projpar: therefore the following this is probably not
2010* necessary anymore..)
2011C IF (IDP.EQ.26) IDP = 5
2012C IF (IDP.EQ.27) IDP = 6
2013
2014* redefine collision energy
2015 IF (LEINP) THEN
2016 IF (ABS(VAREHI).GT.ZERO) THEN
2017 PDUM = ZERO
2018 IF (VARELO.LT.EHADLO) VARELO = EHADLO
2019 CALL DT_LTINI(IDP,IDT,VARELO,PDUM,VARCLO,1)
2020 PDUM = ZERO
2021 CALL DT_LTINI(IDP,IDT,VAREHI,PDUM,VARCHI,1)
2022 ENDIF
2023 CALL DT_LTINI(IDP,IDT,EPN,PPN,CMENER,1)
2024 ELSE
2025 WRITE(LOUT,1003)
2026 1003 FORMAT(1X,'INIT: collision energy not defined!',/,
2027 & 1X,' -program stopped- ')
2028 STOP
2029 ENDIF
2030
2031* switch off evaporation (even if requested) if central coll. requ.
2032 IF ((ICENTR.EQ.-1).OR.(ICENTR.GT.0).OR.(XSFRAC.LT.0.5D0)) THEN
2033 IF (LEVPRT) THEN
2034 WRITE(LOUT,1004)
2035 1004 FORMAT(1X,/,'Warning! Evaporation request rejected since',
2036 & ' central collisions forced.')
2037 LEVPRT = .FALSE.
2038 LDEEXG = .FALSE.
2039 LHEAVY = .FALSE.
2040 ENDIF
2041 ENDIF
2042
2043* initialization of evaporation-module
2044
2045 WRITE(LOUT,1010)
2046 1010 FORMAT(1X,/,'Warning! No evaporation performed since',
2047 & ' evaporation modules not available with this version.')
2048 LEVPRT = .FALSE.
2049 LDEEXG = .FALSE.
2050 LHEAVY = .FALSE.
2051 LFRMBK = .FALSE.
2052 IFISS = 0
2053 IEVFSS = 0
2054 CALL DT_BERTTP
2055 CALL DT_INCINI
2056
2057* save the default JETSET-parameter
2058 CALL DT_JSPARA(0)
2059
2060* force use of phojet for g-A
2061 IF ((IDP.EQ.7).AND.(MCGENE.NE.3)) MCGENE = 2
2062* initialization of nucleon-nucleon event generator
2063 IF (MCGENE.EQ.2) CALL DT_PHOINI
2064* initialization of LEPTO event generator
2065 IF (MCGENE.EQ.3) THEN
2066
2067 STOP ' This version does not contain LEPTO !'
2068
2069 ENDIF
2070
2071* initialization of quasi-elastic neutrino scattering
2072 IF (MCGENE.EQ.4) THEN
2073 IF (IJPROJ.EQ.5) THEN
2074 NEUTYP = 1
2075 ELSEIF (IJPROJ.EQ.6) THEN
2076 NEUTYP = 2
2077 ELSEIF (IJPROJ.EQ.135) THEN
2078 NEUTYP = 3
2079 ELSEIF (IJPROJ.EQ.136) THEN
2080 NEUTYP = 4
2081 ELSEIF (IJPROJ.EQ.133) THEN
2082 NEUTYP = 5
2083 ELSEIF (IJPROJ.EQ.134) THEN
2084 NEUTYP = 6
2085 ENDIF
2086 ENDIF
2087
2088* normalize fractions of emulsion components
2089 IF (NCOMPO.GT.0) THEN
2090 SUMFRA = ZERO
2091 DO 491 I=1,NCOMPO
2092 SUMFRA = SUMFRA+EMUFRA(I)
2093 491 CONTINUE
2094 IF (SUMFRA.GT.ZERO) THEN
2095 DO 492 I=1,NCOMPO
2096 EMUFRA(I) = EMUFRA(I)/SUMFRA
2097 492 CONTINUE
2098 ENDIF
2099 ENDIF
2100
2101* disallow Cronin's multiple scattering for nucleus-nucleus interactions
6cf1df4c 2102 IF ((IP.GT.1).AND. (IT.GT.1) .AND. (MKCRON.GT.0)) THEN
9aaba0d6 2103 WRITE(LOUT,1005)
2104 1005 FORMAT(/,1X,'INIT: multiple scattering disallowed',/)
2105 MKCRON = 0
2106 ENDIF
2107
2108* initialization of Glauber-formalism (moved to xAEVT, sr 26.3.96)
2109C IF (NCOMPO.LE.0) THEN
2110C CALL DT_SHMAKI(IP,IPZ,IT,ITZ,IDP,PPN,IGLAU)
2111C ELSE
2112C DO 493 I=1,NCOMPO
2113C CALL DT_SHMAKI(IP,IPZ,IEMUMA(I),IEMUCH(I),IDP,PPN,0)
2114C 493 CONTINUE
2115C ENDIF
2116
2117* pre-tabulation of elastic cross-sections
2118 CALL DT_SIGTBL(JDUM,JDUM,DUM,DUM,-1)
2119
2120 CALL DT_XTIME
2121
2122 RETURN
2123
2124*********************************************************************
2125* *
2126* control card: codewd = STOP *
2127* *
2128* stop of the event generation *
2129* *
2130* what (1..6) no meaning *
2131* *
2132*********************************************************************
2133
2134 9999 CONTINUE
2135 WRITE(LOUT,9000)
2136 9000 FORMAT(1X,'---> unexpected end of input !')
2137
2138 640 CONTINUE
2139 STOP
2140
2141 END
2142
2143*$ CREATE DT_KKINC.FOR
2144*COPY DT_KKINC
2145*
2146*===kkinc==============================================================*
2147*
2148 SUBROUTINE DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,KKMAT,
2149 & IREJ)
2150
2151************************************************************************
2152* Treatment of complete nucleus-nucleus or hadron-nucleus scattering *
2153* This subroutine is an update of the previous version written *
2154* by J. Ranft/ H.-J. Moehring. *
2155* This version dated 19.11.95 is written by S. Roesler *
2156************************************************************************
2157
2158 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2159 SAVE
2160 PARAMETER ( LINP = 10 ,
2161 & LOUT = 6 ,
2162 & LDAT = 9 )
2163 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY5=1.0D-5,
2164 & TINY2=1.0D-2,TINY3=1.0D-3)
2165
2166 LOGICAL LFZC
2167
2168* event history
09b429a4 2169
2170 PARAMETER (NMXHEP=4000)
2171 COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
2172 & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
2173 & VHEP(4,NMXHEP), NSD1, NSD2, NDD
2174
9aaba0d6 2175 PARAMETER (NMXHKK=200000)
2176 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
2177 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
2178 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
2179* extended event history
2180 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
2181 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
2182 & IHIST(2,NMXHKK)
2183* particle properties (BAMJET index convention)
2184 CHARACTER*8 ANAME
2185 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
2186 & IICH(210),IIBAR(210),K1(210),K2(210)
2187* properties of interacting particles
2188 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
2189* Lorentz-parameters of the current interaction
2190 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
2191 & UMO,PPCM,EPROJ,PPROJ
2192* flags for input different options
2193 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
2194 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
2195 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
2196* flags for particle decays
2197 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
2198 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
2199 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
2200* cuts for variable energy runs
2201 COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI
2202* Glauber formalism: flags and parameters for statistics
2203 LOGICAL LPROD
2204 CHARACTER*8 CGLB
2205 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
2206
2207 DIMENSION WHAT(6)
2208
2209 IREJ = 0
2210 ILOOP = 0
09b429a4 2211 NSD1 = 0
2212 NSD2 = 0
2213 NDD = 0
9aaba0d6 2214 100 CONTINUE
2215 IF (ILOOP.EQ.4) THEN
2216 WRITE(LOUT,1000) NEVHKK
2217 1000 FORMAT(1X,'KKINC: event ',I8,' rejected!')
2218 GOTO 9999
2219 ENDIF
2220 ILOOP = ILOOP+1
2221
2222* variable energy-runs, recalculate parameters for LT's
2223 IF ((ABS(VAREHI).GT.ZERO).OR.(IOGLB.EQ.100)) THEN
2224 PDUM = ZERO
2225 CDUM = ZERO
2226 CALL DT_LTINI(IDP,1,EPN,PDUM,CDUM,1)
2227 ENDIF
2228 IF (EPN.GT.EPROJ) THEN
2229 WRITE(LOUT,'(A,E9.3,2A,E9.3,A)')
2230 & ' Requested energy (',EPN,'GeV) exceeds',
2231 & ' initialization energy (',EPROJ,'GeV) !'
2232 STOP
2233 ENDIF
2234
2235* re-initialize /DTPRTA/
2236 IP = NPMASS
2237 IPZ = NPCHAR
2238 IT = NTMASS
2239 ITZ = NTCHAR
2240 IJPROJ = IDP
2241 IBPROJ = IIBAR(IJPROJ)
2242
2243* calculate nuclear potentials (common /DTNPOT/)
2244 CALL DT_NCLPOT(IPZ,IP,ITZ,IT,ZERO,ZERO,0)
2245
2246* initialize treatment for residual nuclei
2247 CALL DT_RESNCL(EPN,NLOOP,1)
2248
2249* sample hadron/nucleus-nucleus interaction
2250 CALL DT_KKEVNT(KKMAT,IREJ1)
2251 IF (IREJ1.GT.0) THEN
2252 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in KKINC'
2253 GOTO 9999
2254 ENDIF
2255
2256 IF ((NPMASS.GT.1).OR.(NTMASS.GT.1)) THEN
2257
2258* intranuclear cascade of final state particles for KTAUGE generations
2259* of secondaries
2260 CALL DT_FOZOCA(LFZC,IREJ1)
2261 IF (IREJ1.GT.0) THEN
2262 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2 in KKINC'
2263 GOTO 9999
2264 ENDIF
2265
2266* baryons unable to escape the nuclear potential are treated as
2267* excited nucleons (ISTHKK=15,16)
2268 CALL DT_SCN4BA
2269
2270* decay of resonances produced in intranuclear cascade processes
2271**sr 15-11-95 should be obsolete
2272C IF (LFZC) CALL DT_DECAY1
2273
2274 101 CONTINUE
2275* treatment of residual nuclei
2276 CALL DT_RESNCL(EPN,NLOOP,2)
2277
2278* evaporation / fission / fragmentation
2279* (if intranuclear cascade was sampled only)
2280 IF (LFZC) THEN
2281 CALL DT_FICONF(IJPROJ,IP,IPZ,IT,ITZ,NLOOP,IREJ1)
2282 IF (IREJ1.GT.1) GOTO 101
2283 IF (IREJ1.EQ.1) GOTO 100
2284 ENDIF
2285
2286 ENDIF
2287
2288* rejection of unphysical configurations
2289 CALL DT_REJUCO(1,IREJ1)
2290 IF (IREJ1.GT.0) THEN
2291 IF (IOULEV(1).GT.0)
2292 & WRITE(LOUT,*) 'rejected 3 in KKINC: too large x'
2293 GOTO 100
2294 ENDIF
2295
2296* transform finale state into Lab.
2297 IFLAG = 2
2298 CALL DT_BEAMPR(WHAT,DUM,IFLAG)
2299 IF ((IFRAME.EQ.1).AND.(IFLAG.EQ.-1)) CALL DT_LT2LAB
2300
2301 IF (IPI0.EQ.1) CALL DT_DECPI0
2302
2303C IF (NEVHKK.EQ.5) CALL DT_EVTOUT(4)
9aaba0d6 2304 RETURN
2305 9999 CONTINUE
2306 IREJ = 1
09b429a4 2307
9aaba0d6 2308 RETURN
2309 END
2310
2311*$ CREATE DT_DEFAUL.FOR
2312*COPY DT_DEFAUL
2313*
2314*===defaul=============================================================*
2315*
2316 SUBROUTINE DT_DEFAUL(EPN,PPN)
2317
2318************************************************************************
2319* Variables are set to default values. *
2320* This version dated 8.5.95 is written by S. Roesler. *
2321************************************************************************
2322
2323 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2324 SAVE
2325 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10)
2326 PARAMETER (TWOPI = 6.283185307179586454D+00)
2327
2328* particle properties (BAMJET index convention)
2329 CHARACTER*8 ANAME
2330 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
2331 & IICH(210),IIBAR(210),K1(210),K2(210)
2332* nuclear potential
2333 LOGICAL LFERMI
2334 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
2335 & EBINDP(2),EBINDN(2),EPOT(2,210),
2336 & ETACOU(2),ICOUL,LFERMI
2337* interface HADRIN-DPM
2338 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
2339* central particle production, impact parameter biasing
2340 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
2341* properties of interacting particles
2342 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
2343* properties of photon/lepton projectiles
2344 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
2345 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
2346* emulsion treatment
2347 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
2348 & NCOMPO,IEMUL
2349* parameter for intranuclear cascade
2350 LOGICAL LPAULI
2351 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
2352* various options for treatment of partons (DTUNUC 1.x)
2353* (chain recombination, Cronin,..)
2354 LOGICAL LCO2CR,LINTPT
2355 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
2356 & LCO2CR,LINTPT
2357* threshold values for x-sampling (DTUNUC 1.x)
2358 COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
2359 & SSMIMQ,VVMTHR
2360* flags for input different options
2361 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
2362 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
2363 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
2364* n-n cross section fluctuations
2365 PARAMETER (NBINS = 1000)
2366 COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT
2367* flags for particle decays
2368 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
2369 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
2370 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
2371* diquark-breaking mechanism
2372 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
2373* nucleon-nucleon event-generator
2374 CHARACTER*8 CMODEL
2375 LOGICAL LPHOIN
2376 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
2377* flags for diffractive interactions (DTUNUC 1.x)
2378 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
2379* VDM parameter for photon-nucleus interactions
2380 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
2381* Glauber formalism: flags and parameters for statistics
2382 LOGICAL LPROD
2383 CHARACTER*8 CGLB
2384 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
2385* kinematical cuts for lepton-nucleus interactions
2386 COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX,
2387 & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI
2388* flags for activated histograms
2389 COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL
2390* cuts for variable energy runs
2391 COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI
2392* parameters for hA-diffraction
2393 COMMON /DTDIHA/ DIBETA,DIALPH
2394* LEPTO
2395 REAL RPPN
2396 COMMON /LEPTOI/ RPPN,LEPIN,INTER
2397* steering flags for qel neutrino scattering modules
2398 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
2399* event flag
2400 COMMON /DTEVNO/ NEVENT,ICASCA
2401
2402 DATA POTMES /0.002D0/
2403
2404* common /DTNPOT/
2405 DO 10 I=1,2
2406 PFERMP(I) = ZERO
2407 PFERMN(I) = ZERO
2408 EBINDP(I) = ZERO
2409 EBINDN(I) = ZERO
2410 DO 11 J=1,210
2411 EPOT(I,J) = ZERO
2412 11 CONTINUE
2413* nucleus independent meson potential
2414 EPOT(I,13) = POTMES
2415 EPOT(I,14) = POTMES
2416 EPOT(I,15) = POTMES
2417 EPOT(I,16) = POTMES
2418 EPOT(I,23) = POTMES
2419 EPOT(I,24) = POTMES
2420 EPOT(I,25) = POTMES
2421 10 CONTINUE
2422 FERMOD = 0.55D0
2423 ETACOU(1) = ZERO
2424 ETACOU(2) = ZERO
2425 ICOUL = 1
2426 LFERMI = .TRUE.
2427
2428* common /HNTHRE/
2429 EHADTH = -99.0D0
2430 EHADLO = 4.06D0
2431 EHADHI = 6.0D0
2432 INTHAD = 1
2433 IDXTA = 2
2434
2435* common /DTIMPA/
2436 ICENTR = 0
2437 BIMIN = ZERO
2438 BIMAX = 1.0D10
2439 XSFRAC = 1.0D0
2440
2441* common /DTPRTA/
2442 IP = 1
2443 IPZ = 1
2444 IT = 1
2445 ITZ = 1
2446 IJPROJ = 1
2447 IBPROJ = 1
2448 IJTARG = 1
2449 IBTARG = 1
2450* common /DTGPRO/
2451 VIRT = ZERO
2452 DO 14 I=1,4
2453 PGAMM(I) = ZERO
2454 PLEPT0(I) = ZERO
2455 PLEPT1(I) = ZERO
2456 PNUCL(I) = ZERO
2457 14 CONTINUE
2458 IDIREC = 0
2459
2460* common /DTFOTI/
2461**sr 7.4.98: changed after corrected B-sampling
2462C TAUFOR = 4.4D0
2463 TAUFOR = 3.5D0
2464 KTAUGE = 25
2465 ITAUVE = 1
2466 INCMOD = 1
2467 LPAULI = .TRUE.
2468
2469* common /DTCHAI/
2470 SEASQ = ONE
2471 MKCRON = 1
2472 CRONCO = 0.64D0
2473 ISICHA = 0
2474 CUTOF = 100.0D0
2475 LCO2CR = .FALSE.
2476 IRECOM = 1
2477 LINTPT = .TRUE.
2478
2479* common /DTXCUT/
2480* definition of soft quark distributions
2481 XSEACU = 0.05D0
2482 UNON = 2.0D0
2483 UNOM = 1.5D0
2484 UNOSEA = 5.0D0
2485* cutoff parameters for x-sampling
2486 CVQ = 1.0D0
2487 CDQ = 2.0D0
2488C CSEA = 0.3D0
2489 CSEA = 0.1D0
2490 SSMIMA = 1.2D0
2491 SSMIMQ = SSMIMA**2
2492 VVMTHR = 2.0D0
2493
2494* common /DTXSFL/
2495 IFLUCT = 0
2496
2497* common /DTFRPA/
2498 PDB = 0.15D0
2499 PDBSEA(1) = 0.0D0
2500 PDBSEA(2) = 0.0D0
2501 PDBSEA(3) = 0.0D0
2502 ISIG0 = 0
2503 IPI0 = 0
2504 NMSTU = 0
2505 NPARU = 0
2506 NMSTJ = 0
2507 NPARJ = 0
2508
2509* common /DTDIQB/
2510 DO 15 I=1,8
2511 DBRKR(1,I) = 5.0D0
2512 DBRKR(2,I) = 5.0D0
2513 DBRKR(3,I) = 10.0D0
2514 DBRKA(1,I) = ZERO
2515 DBRKA(2,I) = ZERO
2516 DBRKA(3,I) = ZERO
2517 15 CONTINUE
2518 CHAM1 = 0.2D0
2519 CHAM3 = 0.5D0
2520 CHAB1 = 0.7D0
2521 CHAB3 = 1.0D0
2522
2523* common /DTFLG3/
2524 ISINGD = 0
2525 IDOUBD = 0
2526 IFLAGD = 0
2527 IDIFF = 0
2528
2529* common /DTMODL/
2530 MCGENE = 2
2531 CMODEL(1) = 'DTUNUC '
2532 CMODEL(2) = 'PHOJET '
2533 CMODEL(3) = 'LEPTO '
2534 CMODEL(4) = 'QNEUTRIN'
2535 LPHOIN = .TRUE.
2536 ELOJET = 5.0D0
2537
2538* common /DTLCUT/
2539 ECMIN = 3.5D0
2540 ECMAX = 1.0D10
2541 XBJMIN = ZERO
2542 ELMIN = ZERO
2543 EGMIN = ZERO
2544 EGMAX = 1.0D10
2545 YMIN = TINY10
2546 YMAX = 0.999D0
2547 Q2MIN = TINY10
2548 Q2MAX = 10.0D0
2549 THMIN = ZERO
2550 THMAX = TWOPI
2551 Q2LI = ZERO
2552 Q2HI = 1.0D10
2553 ECMLI = ZERO
2554 ECMHI = 1.0D10
2555
2556* common /DTVDMP/
2557 RL2 = 2.0D0
2558 INTRGE(1) = 1
2559 INTRGE(2) = 3
2560 IDPDF = 2212
2561 MODEGA = 4
2562 ISHAD(1) = 1
2563 ISHAD(2) = 1
2564 ISHAD(3) = 1
2565 EPSPOL = ZERO
2566
2567* common /DTGLGP/
2568 JSTATB = 1000
2569 JBINSB = 49
2570 CGLB = ' '
2571 IF (ITRSPT.EQ.1) THEN
2572 IOGLB = 100
2573 ELSE
2574 IOGLB = 0
2575 ENDIF
2576 LPROD = .TRUE.
2577
2578* common /DTHIS3/
2579 DO 16 I=1,50
2580 IHISPP(I) = 0
2581 IHISXS(I) = 0
2582 16 CONTINUE
2583 IXSTBL = 0
2584
2585* common /DTVARE/
2586 VARELO = ZERO
2587 VAREHI = ZERO
2588 VARCLO = ZERO
2589 VARCHI = ZERO
2590
2591* common /DTDIHA/
2592 DIBETA = -1.0D0
2593 DIALPH = ZERO
2594
2595* common /LEPTOI/
2596 RPPN = 0.0
2597 LEPIN = 0
2598 INTER = 0
2599
2600* common /QNEUTO/
2601 NEUTYP = 1
2602 NEUDEC = 0
2603
2604* common /DTEVNO/
2605 NEVENT = 1
2606 IF (ITRSPT.EQ.1) THEN
2607 ICASCA = 1
2608 ELSE
2609 ICASCA = 0
2610 ENDIF
2611
2612* default Lab.-energy
2613 EPN = 200.0D0
2614 PPN = SQRT((EPN-AAM(IJPROJ))*(EPN+AAM(IJPROJ)))
2615
2616 RETURN
2617 END
2618
2619*$ CREATE DT_AAEVT.FOR
2620*COPY DT_AAEVT
2621*
2622*===aaevt==============================================================*
2623*
2624 SUBROUTINE DT_AAEVT(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,
2625 & IDP,IGLAU)
2626
2627************************************************************************
2628* This version dated 22.03.96 is written by S. Roesler. *
2629************************************************************************
2630
2631 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2632 SAVE
2633 PARAMETER ( LINP = 10 ,
2634 & LOUT = 6 ,
2635 & LDAT = 9 )
2636
2637 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
2638* emulsion treatment
2639 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
2640 & NCOMPO,IEMUL
2641* event flag
2642 COMMON /DTEVNO/ NEVENT,ICASCA
9aaba0d6 2643 CHARACTER*8 DATE,HHMMSS
2644 DIMENSION IDMNYR(3)
09b429a4 2645 NSD1 = 0
2646 NSD2 = 0
2647 NDD = 0
9aaba0d6 2648 KKMAT = 1
2649 NMSG = MAX(NEVTS/100,1)
2650
2651* initialization of run-statistics and histograms
2652 CALL DT_STATIS(1)
2653 CALL PHO_PHIST(1000,DUM)
2654
2655* initialization of Glauber-formalism
2656 IF (NCOMPO.LE.0) THEN
2657 CALL DT_SHMAKI(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,IGLAU)
2658 ELSE
2659 DO 1 I=1,NCOMPO
2660 CALL DT_SHMAKI(NPMASS,NPCHAR,IEMUMA(I),IEMUCH(I),IDP,EPN,0)
2661 1 CONTINUE
2662 ENDIF
2663 CALL DT_SIGEMU
2664
2665 CALL IDATE(IDMNYR)
2666 WRITE(DATE,'(I2,''/'',I2,''/'',I2)')
2667 & IDMNYR(1),IDMNYR(2),MOD(IDMNYR(3),100)
2668 CALL ITIME(IDMNYR)
2669 WRITE(HHMMSS,'(I2,'':'',I2,'':'',I2)')
2670 & IDMNYR(1),IDMNYR(2),IDMNYR(3)
2671 WRITE(LOUT,1001) DATE,HHMMSS
2672 1001 FORMAT(/,' DT_AAEVT: Initialisation finished. ( Date: ',A8,
2673 & ' Time: ',A8,' )')
2674
2675* generate NEVTS events
2676 DO 2 IEVT=1,NEVTS
2677
2678* print run-status message
2679 IF (MOD(IEVT,NMSG).EQ.0) THEN
2680 CALL IDATE(IDMNYR)
2681 WRITE(DATE,'(I2,''/'',I2,''/'',I2)')
2682 & IDMNYR(1),IDMNYR(2),MOD(IDMNYR(3),100)
2683 CALL ITIME(IDMNYR)
2684 WRITE(HHMMSS,'(I2,'':'',I2,'':'',I2)')
2685 & IDMNYR(1),IDMNYR(2),IDMNYR(3)
2686 WRITE(LOUT,1000) IEVT-1,NEVTS,DATE,HHMMSS
2687 1000 FORMAT(/,1X,I8,' out of ',I8,' events sampled ( Date: ',A,
2688 & ' Time: ',A,' )',/)
2689C WRITE(LOUT,1000) IEVT-1
2690C1000 FORMAT(1X,I8,' events sampled')
2691 ENDIF
2692 NEVENT = IEVT
2693* treat nuclear emulsions
2694 IF (IEMUL.GT.0) CALL DT_GETEMU(NTMASS,NTCHAR,KKMAT,0)
2695* composite targets only
2696 KKMAT = -KKMAT
2697* sample this event
2698 CALL DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,KKMAT,IREJ)
2699
2700 CALL PHO_PHIST(2000,DUM)
09b429a4 2701
2702 write(6,*) "Diffractive collisions", NSD1, NSD2, NDD
9aaba0d6 2703
2704 2 CONTINUE
2705
2706* print run-statistics and histograms to output-unit 6
2707 CALL PHO_PHIST(3000,DUM)
2708 CALL DT_STATIS(2)
9aaba0d6 2709 RETURN
2710 END
2711
2712*$ CREATE DT_LAEVT.FOR
2713*COPY DT_LAEVT
2714*
2715*===laevt==============================================================*
2716*
2717 SUBROUTINE DT_LAEVT(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,
2718 & IDP,IGLAU)
2719
2720************************************************************************
2721* Interface to run DPMJET for lepton-nucleus interactions. *
2722* Kinematics is sampled using the equivalent photon approximation *
2723* Based on GPHERA-routine by R. Engel. *
2724* This version dated 23.03.96 is written by S. Roesler. *
2725************************************************************************
2726
2727 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
2728 SAVE
2729 PARAMETER ( LINP = 10 ,
2730 & LOUT = 6 ,
2731 & LDAT = 9 )
2732 PARAMETER (TINY10=1.0D-10,TINY4=1.0D-4,
2733 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0)
2734 PARAMETER (TWOPI = 6.283185307179586454D+00,
2735 & PI = TWOPI/TWO,
2736 & ALPHEM = ONE/137.0D0)
2737
2738C CHARACTER*72 HEADER
2739
2740* particle properties (BAMJET index convention)
2741 CHARACTER*8 ANAME
2742 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
2743 & IICH(210),IIBAR(210),K1(210),K2(210)
2744* event history
2745 PARAMETER (NMXHKK=200000)
2746 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
2747 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
2748 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
2749* extended event history
2750 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
2751 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
2752 & IHIST(2,NMXHKK)
2753* kinematical cuts for lepton-nucleus interactions
2754 COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX,
2755 & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI
2756* properties of interacting particles
2757 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
2758* properties of photon/lepton projectiles
2759 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
2760* kinematics at lepton-gamma vertex
2761 COMMON /DTLGVX/ PPL0(4),PPL1(4),PPG(4),PPA(4)
2762* flags for activated histograms
2763 COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL
2764 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
2765* emulsion treatment
2766 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
2767 & NCOMPO,IEMUL
2768* Glauber formalism: cross sections
2769 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
2770 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
2771 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
2772 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
2773 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
2774 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
2775 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
2776 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
2777 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
2778 & BSLOPE,NEBINI,NQBINI
2779* nucleon-nucleon event-generator
2780 CHARACTER*8 CMODEL
2781 LOGICAL LPHOIN
2782 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
2783* flags for input different options
2784 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
2785 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
2786 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
2787* event flag
2788 COMMON /DTEVNO/ NEVENT,ICASCA
2789
2790 DIMENSION XDUMB(40),BGTA(4)
2791
2792* LEPTO
2793 IF (MCGENE.EQ.3) THEN
2794 STOP ' This version does not contain LEPTO !'
2795 ENDIF
2796
2797 KKMAT = 1
2798 NMSG = MAX(NEVTS/10,1)
2799
2800* mass of incident lepton
2801 AMLPT = AAM(IDP)
2802 AMLPT2 = AMLPT**2
2803 IDPPDG = IDT_IPDGHA(IDP)
2804
2805* consistency of kinematical limits
2806 Q2MIN = MAX(Q2MIN,TINY10)
2807 Q2MAX = MAX(Q2MAX,TINY10)
2808 YMIN = MIN(MAX(YMIN,TINY10),0.999D0)
2809 YMAX = MIN(MAX(YMAX,TINY10),0.999D0)
2810
2811* total energy of the lepton-nucleon system
2812 PTOTLN = SQRT( (PLEPT0(1)+PNUCL(1))**2+(PLEPT0(2)+PNUCL(2))**2
2813 & +(PLEPT0(3)+PNUCL(3))**2 )
2814 ETOTLN = PLEPT0(4)+PNUCL(4)
2815 ECMLN = SQRT((ETOTLN-PTOTLN)*(ETOTLN+PTOTLN))
2816 ECMAX = MIN(ECMAX,ECMLN)
2817 WRITE(LOUT,1003) ECMIN,ECMAX,YMIN,YMAX,Q2MIN,Q2MAX,EGMIN,
2818 & THMIN,THMAX,ELMIN
2819 1003 FORMAT(1X,'LAEVT:',16X,'kinematical cuts',/,22X,
2820 & '------------------',/,9X,'W (min) =',
2821 & F7.1,' GeV (max) =',F7.1,' GeV',/,9X,'y (min) =',
2822 & F7.3,8X,'(max) =',F7.3,/,9X,'Q^2 (min) =',F7.1,
2823 & ' GeV^2 (max) =',F7.1,' GeV^2',/,' (Lab) E_g (min) ='
2824 & ,F7.1,' GeV',/,' (Lab) theta (min) =',F7.4,8X,'(max) =',
2825 & F7.4,' for E_lpt >',F7.1,' GeV',/)
2826
2827* Lorentz-parameter for transf. into Lab
2828 BGTA(1) = PNUCL(1)/AAM(1)
2829 BGTA(2) = PNUCL(2)/AAM(1)
2830 BGTA(3) = PNUCL(3)/AAM(1)
2831 BGTA(4) = PNUCL(4)/AAM(1)
2832* LT of incident lepton into Lab and dump it in DTEVT1
2833 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
2834 & PLEPT0(1),PLEPT0(2),PLEPT0(3),PLEPT0(4),
2835 & PLTOT,PPL0(1),PPL0(2),PPL0(3),PPL0(4))
2836 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
2837 & PNUCL(1),PNUCL(2),PNUCL(3),PNUCL(4),
2838 & PLTOT,PPA(1),PPA(2),PPA(3),PPA(4))
2839* maximum energy of photon nucleon system
2840 PTOTGN = SQRT((YMAX*PPL0(1)+PPA(1))**2+(YMAX*PPL0(2)+PPA(2))**2
2841 & +(YMAX*PPL0(3)+PPA(3))**2)
2842 ETOTGN = YMAX*PPL0(4)+PPA(4)
2843 EGNMAX = SQRT((ETOTGN-PTOTGN)*(ETOTGN+PTOTGN))
2844 EGNMAX = MIN(EGNMAX,ECMAX)
2845* minimum energy of photon nucleon system
2846 PTOTGN = SQRT((YMIN*PPL0(1)+PPA(1))**2+(YMIN*PPL0(2)+PPA(2))**2
2847 & +(YMIN*PPL0(3)+PPA(3))**2)
2848 ETOTGN = YMIN*PPL0(4)+PPA(4)
2849 EGNMIN = SQRT((ETOTGN-PTOTGN)*(ETOTGN+PTOTGN))
2850 EGNMIN = MAX(EGNMIN,ECMIN)
2851
2852* limits for Glauber-initialization
2853 Q2LI = Q2MIN
2854 Q2HI = MAX(Q2LI,MIN(Q2HI,Q2MAX))
2855 ECMLI = MAX(EGNMIN,THREE)
2856 ECMHI = EGNMAX
2857 WRITE(LOUT,1004) EGNMIN,EGNMAX,ECMLI,ECMHI,Q2LI,Q2HI
2858 1004 FORMAT(1X,'resulting limits:',/,9X,'W (min) =',F7.1,
2859 & ' GeV (max) =',F7.1,' GeV',/,/,' limits for ',
2860 & 'Glauber-initialization:',/,9X,'W (min) =',F7.1,
2861 & ' GeV (max) =',F7.1,' GeV',/,9X,'Q^2 (min) =',F7.1,
2862 & ' GeV^2 (max) =',F7.1,' GeV^2',/)
2863* initialization of Glauber-formalism
2864 IF (NCOMPO.LE.0) THEN
2865 CALL DT_SHMAKI(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,IGLAU)
2866 ELSE
2867 DO 9 I=1,NCOMPO
2868 CALL DT_SHMAKI(NPMASS,NPCHAR,IEMUMA(I),IEMUCH(I),IDP,EPN,0)
2869 9 CONTINUE
2870 ENDIF
2871 CALL DT_SIGEMU
2872
2873* initialization of run-statistics and histograms
2874 CALL DT_STATIS(1)
2875 CALL PHO_PHIST(1000,DUM)
2876
2877* maximum photon-nucleus cross section
2878 I1 = 1
2879 I2 = 1
2880 RAT = ONE
2881 IF (EGNMAX.GE.ECMNN(NEBINI)) THEN
2882 I1 = NEBINI
2883 I2 = NEBINI
2884 RAT = ONE
2885 ELSEIF (EGNMAX.GT.ECMNN(1)) THEN
2886 DO 5 I=2,NEBINI
2887 IF (EGNMAX.LT.ECMNN(I)) THEN
2888 I1 = I-1
2889 I2 = I
2890 RAT = (EGNMAX-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
2891 GOTO 6
2892 ENDIF
2893 5 CONTINUE
2894 6 CONTINUE
2895 ENDIF
2896 SIGMAX = XSTOT(I1,1,1)+RAT*(XSTOT(I2,1,1)-XSTOT(I1,1,1))
2897 EGNXX = EGNMAX
2898 I1 = 1
2899 I2 = 1
2900 RAT = ONE
2901 IF (EGNMIN.GE.ECMNN(NEBINI)) THEN
2902 I1 = NEBINI
2903 I2 = NEBINI
2904 RAT = ONE
2905 ELSEIF (EGNMIN.GT.ECMNN(1)) THEN
2906 DO 7 I=2,NEBINI
2907 IF (EGNMIN.LT.ECMNN(I)) THEN
2908 I1 = I-1
2909 I2 = I
2910 RAT = (EGNMIN-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
2911 GOTO 8
2912 ENDIF
2913 7 CONTINUE
2914 8 CONTINUE
2915 ENDIF
2916 SIGXX = XSTOT(I1,1,1)+RAT*(XSTOT(I2,1,1)-XSTOT(I1,1,1))
2917 IF (SIGXX.GT.SIGMAX) EGNXX = EGNMIN
2918 SIGMAX = MAX(SIGMAX,SIGXX)
2919 WRITE(LOUT,'(9X,A,F8.3,A)') 'Sigma_tot (max) =',SIGMAX,' mb'
2920
2921* plot photon flux table
2922 AYMIN = LOG(YMIN)
2923 AYMAX = LOG(YMAX)
2924 AYRGE = AYMAX-AYMIN
2925 MAXTAB = 50
2926 ADY = LOG(YMAX/YMIN)/DBLE(MAXTAB-1)
2927C WRITE(LOUT,'(/,1X,A)') 'LAEVT: photon flux '
2928 DO 1 I=1,MAXTAB
2929 Y = EXP(AYMIN+ADY*DBLE(I-1))
2930 Q2LOW = MAX(Q2MIN,AMLPT2*Y**2/(ONE-Y))
2931 FF1 = ALPHEM/TWOPI * ((ONE+(ONE-Y)**2)/Y*LOG(Q2MAX/Q2LOW)
2932 & -TWO*AMLPT2*Y*(ONE/Q2LOW-ONE/Q2MAX))
2933 FF2 = ALPHEM/TWOPI * ((ONE+(ONE-Y)**2)/Y*LOG(Q2MAX/Q2LOW)
2934 & -TWO*(ONE-Y)/Y*(ONE-Q2LOW/Q2MAX))
2935C WRITE(LOUT,'(5X,3E15.4)') Y,FF1,FF2
2936 1 CONTINUE
2937
2938* maximum residual weight for flux sampling (dy/y)
2939 YY = YMIN
2940 Q2LOW = MAX(Q2MIN,AMLPT2*YY**2/(ONE-YY))
2941 WGHMAX = (ONE+(ONE-YY)**2)*LOG(Q2MAX/Q2LOW)
2942 & -TWO*AMLPT2*YY*(ONE/Q2LOW-ONE/Q2MAX)*YY
2943
2944 CALL DT_NEWHGR(YMIN,YMAX,ZERO,XDUMB,49,IHFLY0)
2945 CALL DT_NEWHGR(YMIN,YMAX,ZERO,XDUMB,49,IHFLY1)
2946 CALL DT_NEWHGR(YMIN,YMAX,ZERO,XDUMB,49,IHFLY2)
2947 CALL DT_NEWHGR(Q2LOW,Q2MAX,ZERO,XDUMB,20,IHFLQ0)
2948 CALL DT_NEWHGR(Q2LOW,Q2MAX,ZERO,XDUMB,20,IHFLQ1)
2949 CALL DT_NEWHGR(Q2LOW,Q2MAX,ZERO,XDUMB,20,IHFLQ2)
2950 CALL DT_NEWHGR(EGNMIN,EGNMAX,ZERO,XDUMB,20,IHFLE0)
2951 CALL DT_NEWHGR(EGNMIN,EGNMAX,ZERO,XDUMB,20,IHFLE1)
2952 CALL DT_NEWHGR(EGNMIN,EGNMAX,ZERO,XDUMB,20,IHFLE2)
2953 CALL DT_NEWHGR(ZERO,EGMAX,ZERO,XDUMB,20,IHFLU0)
2954 CALL DT_NEWHGR(ZERO,EGMAX,ZERO,XDUMB,20,IHFLU1)
2955 CALL DT_NEWHGR(ZERO,EGMAX,ZERO,XDUMB,20,IHFLU2)
2956 XBLOW = 0.001D0
2957 CALL DT_NEWHGR(XBLOW,ONE,ZERO,XDUMB,-40,IHFLX0)
2958 CALL DT_NEWHGR(XBLOW,ONE,ZERO,XDUMB,-40,IHFLX1)
2959 CALL DT_NEWHGR(XBLOW,ONE,ZERO,XDUMB,-40,IHFLX2)
2960
2961 ITRY = 0
2962 ITRW = 0
2963 NC0 = 0
2964 NC1 = 0
2965
2966* generate events
2967 DO 2 IEVT=1,NEVTS
2968 IF (MOD(IEVT,NMSG).EQ.0) THEN
2969C OPEN(LDAT,FILE='/scrtch3/hr/sroesler/statusd5.out',
2970C & STATUS='UNKNOWN')
2971 WRITE(LOUT,'(1X,I8,A)') IEVT-1,' events sampled'
2972C CLOSE(LDAT)
2973 ENDIF
2974 NEVENT = IEVT
2975
2976 100 CONTINUE
2977 ITRY = ITRY+1
2978
2979* sample y
2980 101 CONTINUE
2981 ITRW = ITRW+1
2982 YY = EXP(AYRGE*DT_RNDM(RAT)+AYMIN)
2983 Q2LOW = MAX(Q2MIN,AMLPT2*YY**2/(ONE-YY))
2984 Q2LOG = LOG(Q2MAX/Q2LOW)
2985 WGH = (ONE+(ONE-YY)**2)*Q2LOG
2986 & -TWO*AMLPT2*YY*(ONE/Q2LOW-ONE/Q2MAX)*YY
2987 IF (WGHMAX.LT.WGH) WRITE(LOUT,1000) YY,WGHMAX,WGH
2988 1000 FORMAT(1X,'LAEVT: weight error!',3E12.5)
2989 IF (DT_RNDM(YY)*WGHMAX.GT.WGH) GOTO 101
2990
2991* sample Q2
2992 YEFF = ONE+(ONE-YY)**2
2993 102 CONTINUE
2994 Q2 = Q2LOW*EXP(Q2LOG*DT_RNDM(YY))
2995 WGH = (YEFF-TWO*(ONE-YY)*Q2LOW/Q2)/YEFF
2996 IF (WGH.LT.DT_RNDM(Q2)) GOTO 102
2997
2998c NC0 = NC0+1
2999c CALL DT_FILHGR(YY,ONE,IHFLY0,NC0)
3000c CALL DT_FILHGR(Q2,ONE,IHFLQ0,NC0)
3001
3002* kinematics at lepton-photon vertex
3003* scattered electron
3004 YQ2 = SQRT((ONE-YY)*Q2)
3005 Q2E = Q2/(4.0D0*PLEPT0(4))
3006 E1Y = (ONE-YY)*PLEPT0(4)
3007 CALL DT_DSFECF(SIF,COF)
3008 PLEPT1(1) = YQ2*COF
3009 PLEPT1(2) = YQ2*SIF
3010 PLEPT1(3) = E1Y-Q2E
3011 PLEPT1(4) = E1Y+Q2E
3012C THETA = ACOS( (E1Y-Q2E)/(E1Y+Q2E) )
3013* radiated photon
3014 PGAMM(1) = -PLEPT1(1)
3015 PGAMM(2) = -PLEPT1(2)
3016 PGAMM(3) = PLEPT0(3)-PLEPT1(3)
3017 PGAMM(4) = PLEPT0(4)-PLEPT1(4)
3018* E_cm cut
3019 PTOTGN = SQRT( (PGAMM(1)+PNUCL(1))**2+(PGAMM(2)+PNUCL(2))**2
3020 & +(PGAMM(3)+PNUCL(3))**2 )
3021 ETOTGN = PGAMM(4)+PNUCL(4)
3022 ECMGN = (ETOTGN-PTOTGN)*(ETOTGN+PTOTGN)
3023 IF (ECMGN.LT.0.1D0) GOTO 101
3024 ECMGN = SQRT(ECMGN)
3025 IF ((ECMGN.LT.ECMIN).OR.(ECMGN.GT.ECMAX)) GOTO 101
3026
3027* Lorentz-transformation into nucleon-rest system
3028 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
3029 & PGAMM(1),PGAMM(2),PGAMM(3),PGAMM(4),
3030 & PGTOT,PPG(1),PPG(2),PPG(3),PPG(4))
3031 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
3032 & PLEPT1(1),PLEPT1(2),PLEPT1(3),PLEPT1(4),
3033 & PLTOT,PPL1(1),PPL1(2),PPL1(3),PPL1(4))
3034* temporary checks..
3035 Q2TMP = ABS(PPG(4)**2-PGTOT**2)
3036 IF (ABS(Q2-Q2TMP).GT.0.01D0) WRITE(LOUT,1001) Q2,Q2TMP
3037 1001 FORMAT(1X,'LAEVT: inconsistent kinematics (Q2,Q2TMP) ',
3038 & 2F10.4)
3039 ECMTMP = SQRT((PPG(4)+AAM(1)-PGTOT)*(PPG(4)+AAM(1)+PGTOT))
3040 IF (ABS(ECMGN-ECMTMP).GT.TINY10) WRITE(LOUT,1002) ECMGN,ECMTMP
3041 1002 FORMAT(1X,'LAEVT: inconsistent kinematics (ECMGN,ECMTMP) ',
3042 & 2F10.2)
3043 YYTMP = PPG(4)/PPL0(4)
3044 IF (ABS(YY-YYTMP).GT.0.01D0) WRITE(LOUT,1005) YY,YYTMP
3045 1005 FORMAT(1X,'LAEVT: inconsistent kinematics (YY,YYTMP) ',
3046 & 2F10.4)
3047
3048* lepton tagger (Lab)
3049 THETA = ACOS( PPL1(3)/PLTOT )
3050 IF (PPL1(4).GT.ELMIN) THEN
3051 IF ((THETA.LT.THMIN).OR.(THETA.GT.THMAX)) GOTO 101
3052 ENDIF
3053* photon energy-cut (Lab)
3054 IF (PPG(4).LT.EGMIN) GOTO 101
3055 IF (PPG(4).GT.EGMAX) GOTO 101
3056* x_Bj cut
3057 XBJ = ABS(Q2/(1.876D0*PPG(4)))
3058 IF (XBJ.LT.XBJMIN) GOTO 101
3059
3060 NC0 = NC0+1
3061 CALL DT_FILHGR( Q2,ONE,IHFLQ0,NC0)
3062 CALL DT_FILHGR( YY,ONE,IHFLY0,NC0)
3063 CALL DT_FILHGR( XBJ,ONE,IHFLX0,NC0)
3064 CALL DT_FILHGR(PPG(4),ONE,IHFLU0,NC0)
3065 CALL DT_FILHGR( ECMGN,ONE,IHFLE0,NC0)
3066
3067* rotation angles against z-axis
3068 COD = PPG(3)/PGTOT
3069C SID = SQRT((ONE-COD)*(ONE+COD))
3070 PPT = SQRT(PPG(1)**2+PPG(2)**2)
3071 SID = PPT/PGTOT
3072 COF = ONE
3073 SIF = ZERO
3074 IF (PGTOT*SID.GT.TINY10) THEN
3075 COF = PPG(1)/(SID*PGTOT)
3076 SIF = PPG(2)/(SID*PGTOT)
3077 ANORF = SQRT(COF*COF+SIF*SIF)
3078 COF = COF/ANORF
3079 SIF = SIF/ANORF
3080 ENDIF
3081
3082 IF (IXSTBL.EQ.0) THEN
3083* change to photon projectile
3084 IJPROJ = 7
3085* set virtuality
3086 VIRT = Q2
3087* re-initialize LTs with new kinematics
3088* !!PGAMM ist set in cms (ECMGN) along z
3089 EPN = ZERO
3090 PPN = ZERO
3091 CALL DT_LTINI(IJPROJ,IJTARG,EPN,PPN,ECMGN,0)
3092* force Lab-system
3093 IFRAME = 1
3094* get emulsion component if requested
3095 IF (IEMUL.GT.0) CALL DT_GETEMU(NTMASS,NTCHAR,KKMAT,0)
3096* convolute with cross section
3097 CALL DT_SIGGAT(Q2LOW,EGNXX,STOTX,KKMAT)
3098 CALL DT_SIGGAT(Q2,ECMGN,STOT,KKMAT)
3099 IF (STOTX.LT.STOT) WRITE(LOUT,'(1X,A,/,6E12.3)')
3100 & 'LAEVT: warning STOTX<STOT ! ',Q2LOW,EGNMAX,STOTX,
3101 & Q2,ECMGN,STOT
3102 IF (DT_RNDM(Q2)*STOTX.GT.STOT) GOTO 100
3103 NC1 = NC1+1
3104 CALL DT_FILHGR( Q2,ONE,IHFLQ1,NC1)
3105 CALL DT_FILHGR( YY,ONE,IHFLY1,NC1)
3106 CALL DT_FILHGR( XBJ,ONE,IHFLX1,NC1)
3107 CALL DT_FILHGR(PPG(4),ONE,IHFLU1,NC1)
3108 CALL DT_FILHGR( ECMGN,ONE,IHFLE1,NC1)
3109* composite targets only
3110 KKMAT = -KKMAT
3111* sample this event
3112 CALL DT_KKINC(NPMASS,NPCHAR,NTMASS,NTCHAR,IJPROJ,EPN,KKMAT,
3113 & IREJ)
3114* rotate momenta of final state particles back in photon-nucleon syst.
3115 DO 4 I=NPOINT(4),NHKK
3116 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
3117 & (ISTHKK(I).EQ.1001)) THEN
3118 PX = PHKK(1,I)
3119 PY = PHKK(2,I)
3120 PZ = PHKK(3,I)
3121 CALL DT_MYTRAN(1,PX,PY,PZ,COD,SID,COF,SIF,
3122 & PHKK(1,I),PHKK(2,I),PHKK(3,I))
3123 ENDIF
3124 4 CONTINUE
3125 ENDIF
3126
3127 CALL DT_FILHGR( Q2,ONE,IHFLQ2,NC1)
3128 CALL DT_FILHGR( YY,ONE,IHFLY2,NC1)
3129 CALL DT_FILHGR( XBJ,ONE,IHFLX2,NC1)
3130 CALL DT_FILHGR(PPG(4),ONE,IHFLU2,NC1)
3131 CALL DT_FILHGR( ECMGN,ONE,IHFLE2,NC1)
3132
3133* dump this event to histograms
3134 CALL PHO_PHIST(2000,DUM)
3135
3136 2 CONTINUE
3137
3138 WGY = ALPHEM/TWOPI*WGHMAX*DBLE(ITRY)/DBLE(ITRW)
3139 WGY = WGY*LOG(YMAX/YMIN)
3140 WEIGHT = WGY*SIGMAX*DBLE(NEVTS)/DBLE(ITRY)
3141
3142C HEADER = ' LAEVT: Q^2 distribution 0'
3143C CALL DT_OUTHGR(IHFLQ0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3144C HEADER = ' LAEVT: Q^2 distribution 1'
3145C CALL DT_OUTHGR(IHFLQ1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3146C HEADER = ' LAEVT: Q^2 distribution 2'
3147C CALL DT_OUTHGR(IHFLQ2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3148C HEADER = ' LAEVT: y distribution 0'
3149C CALL DT_OUTHGR(IHFLY0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3150C HEADER = ' LAEVT: y distribution 1'
3151C CALL DT_OUTHGR(IHFLY1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3152C HEADER = ' LAEVT: y distribution 2'
3153C CALL DT_OUTHGR(IHFLY2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3154C HEADER = ' LAEVT: x distribution 0'
3155C CALL DT_OUTHGR(IHFLX0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3156C HEADER = ' LAEVT: x distribution 1'
3157C CALL DT_OUTHGR(IHFLX1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3158C HEADER = ' LAEVT: x distribution 2'
3159C CALL DT_OUTHGR(IHFLX2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3160C HEADER = ' LAEVT: E_g distribution 0'
3161C CALL DT_OUTHGR(IHFLU0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3162C HEADER = ' LAEVT: E_g distribution 1'
3163C CALL DT_OUTHGR(IHFLU1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3164C HEADER = ' LAEVT: E_g distribution 2'
3165C CALL DT_OUTHGR(IHFLU2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3166C HEADER = ' LAEVT: E_c distribution 0'
3167C CALL DT_OUTHGR(IHFLE0,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3168C HEADER = ' LAEVT: E_c distribution 1'
3169C CALL DT_OUTHGR(IHFLE1,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3170C HEADER = ' LAEVT: E_c distribution 2'
3171C CALL DT_OUTHGR(IHFLE2,0,0,0,0,0,HEADER,0,NEVTS,ONE,1,1,-1)
3172
3173* print run-statistics and histograms to output-unit 6
3174 CALL PHO_PHIST(3000,DUM)
3175 IF (IXSTBL.EQ.0) CALL DT_STATIS(2)
3176
3177 RETURN
3178 END
3179
3180*$ CREATE DT_DTUINI.FOR
3181*COPY DT_DTUINI
3182*
3183*===dtuini=============================================================*
3184*
3185 SUBROUTINE DT_DTUINI(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,
3186 & IDP,IEMU)
3187
3188 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3189 SAVE
3190
3191 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
3192* emulsion treatment
3193 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
3194 & NCOMPO,IEMUL
3195* Glauber formalism: flags and parameters for statistics
3196 LOGICAL LPROD
3197 CHARACTER*8 CGLB
3198 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
3199
3200 CALL DT_INIT(NEVTS,EPN,NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,IGLAU)
3201 CALL DT_STATIS(1)
3202 CALL PHO_PHIST(1000,DUM)
3203 IF (NCOMPO.LE.0) THEN
3204 CALL DT_SHMAKI(NPMASS,NPCHAR,NTMASS,NTCHAR,IDP,EPN,IGLAU)
3205 ELSE
3206 DO 1 I=1,NCOMPO
3207 CALL DT_SHMAKI(NPMASS,NPCHAR,IEMUMA(I),IEMUCH(I),IDP,EPN,0)
3208 1 CONTINUE
3209 ENDIF
3210 IF (IOGLB.NE.100) CALL DT_SIGEMU
3211 IEMU = IEMUL
3212
3213 RETURN
3214 END
3215
3216*$ CREATE DT_DTUOUT.FOR
3217*COPY DT_DTUOUT
3218*
3219*===dtuout=============================================================*
3220*
3221 SUBROUTINE DT_DTUOUT
3222
3223 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3224 SAVE
3225
3226 CALL PHO_PHIST(3000,DUM)
3227 CALL DT_STATIS(2)
3228
3229 RETURN
3230 END
3231
3232*$ CREATE DT_BEAMPR.FOR
3233*COPY DT_BEAMPR
3234*
3235*===beampr=============================================================*
3236*
3237 SUBROUTINE DT_BEAMPR(WHAT,PLAB,MODE)
3238
3239************************************************************************
3240* Initialization of event generation *
3241* This version dated 7.4.98 is written by S. Roesler. *
3242************************************************************************
3243
3244 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3245 SAVE
3246
3247 PARAMETER ( LINP = 10 ,
3248 & LOUT = 6 ,
3249 & LDAT = 9 )
3250 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10)
3251 PARAMETER (TWOPI=6.283185307D0,BOG=TWOPI/360.0D0)
3252
3253 LOGICAL LBEAM
3254
3255* event history
3256 PARAMETER (NMXHKK=200000)
3257 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
3258 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
3259 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
3260* extended event history
3261 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
3262 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
3263 & IHIST(2,NMXHKK)
3264* properties of interacting particles
3265 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
3266* particle properties (BAMJET index convention)
3267 CHARACTER*8 ANAME
3268 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
3269 & IICH(210),IIBAR(210),K1(210),K2(210)
3270* beam momenta
3271 COMMON /DTBEAM/ P1(4),P2(4)
3272
3273C DIMENSION WHAT(6),P1(4),P2(4),P1CMS(4),P2CMS(4)
3274 DIMENSION WHAT(6),P1CMS(4),P2CMS(4)
3275
3276 DATA LBEAM /.FALSE./
3277
3278 GOTO (1,2) MODE
3279
3280 1 CONTINUE
3281
3282 E1 = WHAT(1)
3283 IF (E1.LT.ZERO) E1 = DBLE(IPZ)/DBLE(IP)*ABS(WHAT(1))
3284 E2 = WHAT(2)
3285 IF (E2.LT.ZERO) E2 = DBLE(ITZ)/DBLE(IT)*ABS(WHAT(2))
3286 PP1 = SQRT( (E1+AAM(IJPROJ))*(E1-AAM(IJPROJ)) )
3287 PP2 = SQRT( (E2+AAM(IJTARG))*(E2-AAM(IJTARG)) )
3288 TH = 1.D-6*WHAT(3)/2.D0
3289 PH = WHAT(4)*BOG
3290 P1(1) = PP1*SIN(TH)*COS(PH)
3291 P1(2) = PP1*SIN(TH)*SIN(PH)
3292 P1(3) = PP1*COS(TH)
3293 P1(4) = E1
3294 P2(1) = PP2*SIN(TH)*COS(PH)
3295 P2(2) = PP2*SIN(TH)*SIN(PH)
3296 P2(3) = -PP2*COS(TH)
3297 P2(4) = E2
3298 ECM = SQRT( (P1(4)+P2(4))**2-(P1(1)+P2(1))**2-(P1(2)+P2(2))**2
3299 & -(P1(3)+P2(3))**2 )
3300 ELAB = (ECM**2-AAM(IJPROJ)**2-AAM(IJTARG)**2)/(2.0D0*AAM(IJTARG))
3301 PLAB = SQRT( (ELAB+AAM(IJPROJ))*(ELAB-AAM(IJPROJ)) )
3302 BGX = (P1(1)+P2(1))/ECM
3303 BGY = (P1(2)+P2(2))/ECM
3304 BGZ = (P1(3)+P2(3))/ECM
3305 BGE = (P1(4)+P2(4))/ECM
3306 CALL DT_DALTRA(BGE,-BGX,-BGY,-BGZ,P1(1),P1(2),P1(3),P1(4),
3307 & P1TOT,P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4))
3308 CALL DT_DALTRA(BGE,-BGX,-BGY,-BGZ,P2(1),P2(2),P2(3),P2(4),
3309 & P2TOT,P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4))
3310 COD = P1CMS(3)/P1TOT
3311C SID = SQRT((ONE-COD)*(ONE+COD))
3312 PPT = SQRT(P1CMS(1)**2+P1CMS(2)**2)
3313 SID = PPT/P1TOT
3314 COF = ONE
3315 SIF = ZERO
3316 IF (P1TOT*SID.GT.TINY10) THEN
3317 COF = P1CMS(1)/(SID*P1TOT)
3318 SIF = P1CMS(2)/(SID*P1TOT)
3319 ANORF = SQRT(COF*COF+SIF*SIF)
3320 COF = COF/ANORF
3321 SIF = SIF/ANORF
3322 ENDIF
3323**check
3324C WRITE(LOUT,'(4E15.4)') P1(1),P1(2),P1(3),P1(4)
3325C WRITE(LOUT,'(4E15.4)') P2(1),P2(2),P2(3),P2(4)
3326C WRITE(LOUT,'(5E15.4)') P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4),P1TOT
3327C WRITE(LOUT,'(5E15.4)') P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4),P2TOT
3328C PAX = ZERO
3329C PAY = ZERO
3330C PAZ = P1TOT
3331C PAE = SQRT(AAM(IJPROJ)**2+PAZ**2)
3332C PBX = ZERO
3333C PBY = ZERO
3334C PBZ = -P2TOT
3335C PBE = SQRT(AAM(IJTARG)**2+PBZ**2)
3336C WRITE(LOUT,'(4E15.4)') PAX,PAY,PAZ,PAE
3337C WRITE(LOUT,'(4E15.4)') PBX,PBY,PBZ,PBE
3338C CALL DT_MYTRAN(1,PAX,PAY,PAZ,COD,SID,COF,SIF,
3339C & P1CMS(1),P1CMS(2),P1CMS(3))
3340C CALL DT_MYTRAN(1,PBX,PBY,PBZ,COD,SID,COF,SIF,
3341C & P2CMS(1),P2CMS(2),P2CMS(3))
3342C WRITE(LOUT,'(4E15.4)') P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4)
3343C WRITE(LOUT,'(4E15.4)') P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4)
3344C CALL DT_DALTRA(BGE,BGX,BGY,BGZ,P1CMS(1),P1CMS(2),P1CMS(3),P1CMS(4),
3345C & P1TOT,P1(1),P1(2),P1(3),P1(4))
3346C CALL DT_DALTRA(BGE,BGX,BGY,BGZ,P2CMS(1),P2CMS(2),P2CMS(3),P2CMS(4),
3347C & P2TOT,P2(1),P2(2),P2(3),P2(4))
3348C WRITE(LOUT,'(4E15.4)') P1(1),P1(2),P1(3),P1(4)
3349C WRITE(LOUT,'(4E15.4)') P2(1),P2(2),P2(3),P2(4)
3350C STOP
3351**
3352
3353 LBEAM = .TRUE.
3354
3355 RETURN
3356
3357 2 CONTINUE
3358
3359 IF (LBEAM) THEN
3360 IF ( (NPOINT(4).EQ.0).OR.(NHKK.LT.NPOINT(4)) ) RETURN
3361 DO 20 I=NPOINT(4),NHKK
430525dd 3362 IF ((ABS(ISTHKK(I)).EQ.1) .OR.
3363 & (ABS(ISTHKK(I)).EQ.2) .OR.
3364 & (ISTHKK(I).EQ.1000) .OR.
3365 & (ISTHKK(I).EQ.1001)) THEN
3366
9aaba0d6 3367 CALL DT_MYTRAN(1,PHKK(1,I),PHKK(2,I),PHKK(3,I),
3368 & COD,SID,COF,SIF,PXCMS,PYCMS,PZCMS)
3369 PECMS = PHKK(4,I)
3370 CALL DT_DALTRA(BGE,BGX,BGY,BGZ,PXCMS,PYCMS,PZCMS,PECMS,
3371 & PTOT,PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I))
3372 ENDIF
3373 20 CONTINUE
3374 ELSE
3375 MODE = -1
3376 ENDIF
3377
3378 RETURN
3379 END
3380
3381*$ CREATE DT_REJUCO.FOR
3382*COPY DT_REJUCO
3383*
3384*===rejuco=============================================================*
3385*
3386 SUBROUTINE DT_REJUCO(MODE,IREJ)
3387
3388************************************************************************
3389* REJection of Unphysical COnfigurations *
3390* MODE = 1 rejection of particles with unphysically large energy *
3391* *
3392* This version dated 27.12.2006 is written by S. Roesler. *
3393************************************************************************
3394
3395 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3396 SAVE
3397
3398 PARAMETER ( LINP = 10 ,
3399 & LOUT = 6 ,
3400 & LDAT = 9 )
3401 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10)
3402 PARAMETER (TWOPI=6.283185307D0,BOG=TWOPI/360.0D0)
3403
3404* maximum x_cms of final state particle
3405 PARAMETER (XCMSMX = 1.4D0)
3406
3407* event history
3408 PARAMETER (NMXHKK=200000)
3409 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
3410 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
3411 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
3412* extended event history
3413 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
3414 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
3415 & IHIST(2,NMXHKK)
3416* Lorentz-parameters of the current interaction
3417 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
3418 & UMO,PPCM,EPROJ,PPROJ
3419
3420 IREJ = 0
3421
3422 IF (MODE.EQ.1) THEN
3423 IF ( (NPOINT(4).EQ.0).OR.(NHKK.LT.NPOINT(4)) ) RETURN
3424 ECMHLF = UMO/2.0D0
3425 DO 10 I=NPOINT(4),NHKK
3426 IF ((ABS(ISTHKK(I)).EQ.1).AND.(IDHKK(I).NE.80000)) THEN
3427 XCMS = ABS(PHKK(4,I))/ECMHLF
3428 IF (XCMS.GT.XCMSMX) GOTO 9999
3429 ENDIF
3430 10 CONTINUE
3431 ENDIF
3432
3433 RETURN
3434 9999 CONTINUE
3435 IREJ = 1
3436 RETURN
3437 END
3438
3439*$ CREATE DT_EVENTB.FOR
3440*COPY DT_EVENTB
3441*
3442*===eventb=============================================================*
3443*
3444 SUBROUTINE DT_EVENTB(NCSY,IREJ)
3445
3446************************************************************************
3447* Treatment of nucleon-nucleon interactions with full two-component *
3448* Dual Parton Model. *
3449* NCSY number of nucleon-nucleon interactions *
3450* IREJ rejection flag *
3451* This version dated 14.01.2000 is written by S. Roesler *
3452************************************************************************
3453
3454 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3455 SAVE
3456 PARAMETER ( LINP = 10 ,
3457 & LOUT = 6 ,
3458 & LDAT = 9 )
3459 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,ONE=1.0D0)
3460
3461* event history
3462 PARAMETER (NMXHKK=200000)
3463 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
3464 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
3465 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
3466* extended event history
3467 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
3468 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
3469 & IHIST(2,NMXHKK)
3470*! uncomment this line for internal phojet-fragmentation
3471C #include "dtu_dtevtp.inc"
3472* particle properties (BAMJET index convention)
3473 CHARACTER*8 ANAME
3474 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
3475 & IICH(210),IIBAR(210),K1(210),K2(210)
3476* flags for input different options
3477 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
3478 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
3479 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
3480* rejection counter
3481 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
3482 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
3483 & IREXCI(3),IRDIFF(2),IRINC
3484* properties of interacting particles
3485 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
3486* properties of photon/lepton projectiles
3487 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
3488* various options for treatment of partons (DTUNUC 1.x)
3489* (chain recombination, Cronin,..)
3490 LOGICAL LCO2CR,LINTPT
3491 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
3492 & LCO2CR,LINTPT
3493* statistics
3494 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
3495 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
3496 & ICEVTG(8,0:30)
3497* DTUNUC-PHOJET interface, Lorentz-param. of n-n subsystem
3498 COMMON /DTLTSU/ BGX,BGY,BGZ,GAM
3499* Glauber formalism: collision properties
3500 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
3501 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
3502* flags for diffractive interactions (DTUNUC 1.x)
3503 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
3504* statistics: double-Pomeron exchange
3505 COMMON /DTFLG2/ INTFLG,IPOPO
3506* flags for particle decays
3507 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
3508 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
3509 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
3510* nucleon-nucleon event-generator
3511 CHARACTER*8 CMODEL
3512 LOGICAL LPHOIN
3513 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
3514C nucleon-nucleus / nucleus-nucleus interface to DPMJET
3515 INTEGER IDEQP,IDEQB,IHFLD,IHFLS
3516 DOUBLE PRECISION ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB
3517 COMMON /POHDFL/ ECMN,PCMN,SECM,SPCM,XPSUB,XTSUB,
3518 & IDEQP(2),IDEQB(2),IHFLD(2,2),IHFLS(2)
3519C model switches and parameters
3520 CHARACTER*8 MDLNA
3521 INTEGER ISWMDL,IPAMDL
3522 DOUBLE PRECISION PARMDL
3523 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
3524C initial state parton radiation (internal part)
3525 INTEGER MXISR3,MXISR4
3526 PARAMETER ( MXISR3 = 50, MXISR4 = 100 )
3527 INTEGER IFL1,IFL2,IBRA,IFANO,ISH,NACC
3528 DOUBLE PRECISION Q2SH,PT2SH,XPSH,ZPSH,THSH,SHAT
3529 COMMON /POINT6/ Q2SH(2,MXISR3),PT2SH(2,MXISR3),XPSH(2,MXISR3),
3530 & ZPSH(2,MXISR3),THSH(2,MXISR3),SHAT(MXISR3),
3531 & IFL1(2,MXISR3),IFL2(2,MXISR3),
3532 & IBRA(2,MXISR4),IFANO(2),ISH(2),NACC
3533C event debugging information
3534 INTEGER NMAXD
3535 PARAMETER (NMAXD=100)
3536 INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
3537 & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
3538 COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
3539 & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
3540C general process information
3541 INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
3542 COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
3543
3544 DIMENSION PP(4),PT(4),PTOT(4),PP1(4),PP2(4),PT1(4),PT2(4),
3545 & PPNN(4),PTNN(4),PTOTNN(4),PPSUB(4),PTSUB(4),
3546 & PPTCMS(4),PTTCMS(4),PPTMP(4),PTTMP(4),
3547 & KPRON(15),ISINGL(2000)
3548
3549* initial values for max. number of phojet scatterings and dtunuc chains
3550* to be fragmented with one pyexec call
3551 DATA MXPHFR,MXDTFR /10,100/
3552
3553 IREJ = 0
3554* pointer to first parton of the first chain in dtevt common
3555 NPOINT(3) = NHKK+1
3556* special flag for double-Pomeron statistics
3557 IPOPO = 1
3558* counter for low-mass (DTUNUC) interactions
3559 NDTUSC = 0
3560* counter for interactions treated by PHOJET
3561 NPHOSC = 0
3562
3563* scan interactions for single nucleon-nucleon interactions
3564* (this has to be checked here because Cronin modifies parton momenta)
3565 NC = NPOINT(2)
3566 IF (NCSY.GT.2000) STOP ' DT_EVENTB: NCSY > 2000 ! '
3567 DO 8 I=1,NCSY
3568 ISINGL(I) = 0
3569 MOP = JMOHKK(1,NC)
3570 MOT = JMOHKK(1,NC+1)
3571 DIFF1 = ABS(PHKK(4,MOP)-PHKK(4, NC)-PHKK(4,NC+2))
3572 DIFF2 = ABS(PHKK(4,MOT)-PHKK(4,NC+1)-PHKK(4,NC+3))
3573 IF ((DIFF1.LT.TINY10).AND.(DIFF2.LT.TINY10)) ISINGL(I) = 1
3574 NC = NC+4
3575 8 CONTINUE
3576
3577* multiple scattering of chain ends
3578 IF ((IP.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(1)
3579 IF ((IT.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(2)
3580
3581* switch to PHOJET-settings for JETSET parameter
3582 CALL DT_INITJS(1)
3583
3584* loop over nucleon-nucleon interaction
3585 NC = NPOINT(2)
3586 DO 2 I=1,NCSY
3587*
3588* pick up one nucleon-nucleon interaction from DTEVT1
3589* ppnn / ptnn - momenta of the interacting nucleons (cms)
3590* ptotnn - total momentum of the interacting nucleons (cms)
3591* pp1,2 / pt1,2 - momenta of the four partons
3592* pp / pt - total momenta of the proj / targ partons
3593* ptot - total momentum of the four partons
3594 MOP = JMOHKK(1,NC)
3595 MOT = JMOHKK(1,NC+1)
3596 DO 3 K=1,4
3597 PPNN(K) = PHKK(K,MOP)
3598 PTNN(K) = PHKK(K,MOT)
3599 PTOTNN(K) = PPNN(K)+PTNN(K)
3600 PP1(K) = PHKK(K,NC)
3601 PT1(K) = PHKK(K,NC+1)
3602 PP2(K) = PHKK(K,NC+2)
3603 PT2(K) = PHKK(K,NC+3)
3604 PP(K) = PP1(K)+PP2(K)
3605 PT(K) = PT1(K)+PT2(K)
3606 PTOT(K) = PP(K)+PT(K)
3607 3 CONTINUE
3608*
3609*-----------------------------------------------------------------------
3610* this is a complete nucleon-nucleon interaction
3611*
3612 IF (ISINGL(I).EQ.1) THEN
3613*
3614* initialize PHOJET-variables for remnant/valence-partons
3615 IHFLD(1,1) = 0
3616 IHFLD(1,2) = 0
3617 IHFLD(2,1) = 0
3618 IHFLD(2,2) = 0
3619 IHFLS(1) = 1
3620 IHFLS(2) = 1
3621* save current settings of PHOJET process and min. bias flags
3622 DO 9 K=1,11
3623 KPRON(K) = IPRON(K,1)
3624 9 CONTINUE
3625 ISWSAV = ISWMDL(2)
3626*
3627* check if forced sampling of diffractive interaction requested
3628 IF (ISINGD.LT.-1) THEN
3629 DO 90 K=1,11
3630 IPRON(K,1) = 0
3631 90 CONTINUE
3632 IF ((ISINGD.EQ.-2).OR.(ISINGD.EQ.-3)) IPRON(5,1) = 1
3633 IF ((ISINGD.EQ.-2).OR.(ISINGD.EQ.-4)) IPRON(6,1) = 1
3634 IF (ISINGD.EQ.-5) IPRON(4,1) = 1
3635 ENDIF
3636*
3637* for photons: a direct/anomalous interaction is not sampled
3638* in PHOJET but already in Glauber-formalism. Here we check if such
3639* an interaction is requested
3640 IF (IJPROJ.EQ.7) THEN
3641* first switch off direct interactions
3642 IPRON(8,1) = 0
3643* this is a direct interactions
3644 IF (IDIREC.EQ.1) THEN
3645 DO 12 K=1,11
3646 IPRON(K,1) = 0
3647 12 CONTINUE
3648 IPRON(8,1) = 1
3649* this is an anomalous interactions
3650* (iswmdl(2) = 0 only hard int. generated ( = 1 min. bias) )
3651 ELSEIF (IDIREC.EQ.2) THEN
3652 ISWMDL(2) = 0
3653 ENDIF
3654 ELSE
3655 IF (IDIREC.NE.0) STOP ' DT_EVENTB: IDIREC > 0 ! '
3656 ENDIF
3657*
3658* make sure that total momenta of partons, pp and pt, are on mass
3659* shell (Cronin may have srewed this up..)
3660 CALL DT_MASHEL(PP,PT,PHKK(5,MOP),PHKK(5,MOT),PPNN,PTNN,IR1)
3661 IF (IR1.NE.0) THEN
3662 IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A)')
3663 & 'EVENTB: mass shell correction rejected'
3664 GOTO 9999
3665 ENDIF
3666*
3667* initialize the incoming particles in PHOJET
3668 IF ((IP.EQ.1).AND.(IJPROJ.EQ.7)) THEN
3669 CALL PHO_SETPAR(1,22,0,VIRT)
3670 ELSE
3671 CALL PHO_SETPAR(1,IDHKK(MOP),0,ZERO)
3672 ENDIF
3673 CALL PHO_SETPAR(2,IDHKK(MOT),0,ZERO)
3674*
3675* initialize rejection loop counter for anomalous processes
3676 IRJANO = 0
3677 800 CONTINUE
3678 IRJANO = IRJANO+1
3679*
3680* temporary fix for ifano problem
3681 IFANO(1) = 0
3682 IFANO(2) = 0
3683*
3684* generate complete hadron/nucleon/photon-nucleon event with PHOJET
3685 CALL PHO_EVENT(2,PPNN,PTNN,DUM,IREJ1)
3686*
3687* for photons: special consistency check for anomalous interactions
3688 IF (IJPROJ.EQ.7) THEN
3689 IF (IRJANO.LT.30) THEN
3690 IF (IFANO(1).NE.0) THEN
3691* here, an anomalous interaction was generated. Check if it
3692* was also requested. Otherwise reject this event.
3693 IF (IDIREC.EQ.0) GOTO 800
3694 ELSE
3695* here, an anomalous interaction was not generated. Check if it
3696* was requested in which case we need to reject this event.
3697 IF (IDIREC.EQ.2) GOTO 800
3698 ENDIF
3699 ELSE
3700 WRITE(LOUT,*) ' DT_EVENTB: Warning! IRJANO > 30 ',
3701 & IRJANO,IDIREC,NEVHKK
3702 ENDIF
3703 ENDIF
3704*
3705* copy back original settings of PHOJET process and min. bias flags
3706 DO 10 K=1,11
3707 IPRON(K,1) = KPRON(K)
3708 10 CONTINUE
3709 ISWMDL(2) = ISWSAV
3710*
3711* check if PHOJET has rejected this event
3712 IF (IREJ1.NE.0) THEN
3713C IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A,I4)')
3714 WRITE(LOUT,'(1X,A,I4)')
3715 & 'EVENTB: chain system rejected',IDIREC
3716 CALL PHO_PREVNT(0)
3717 GOTO 9999
3718 ENDIF
3719*
3720* copy partons and strings from PHOJET common back into DTEVT for
3721* external fragmentation
3722 MO1 = NC
3723 MO2 = NC+3
3724*! uncomment this line for internal phojet-fragmentation
3725C CALL DT_GETFSP(MO1,MO2,PPNN,PTNN,-1)
3726 NPHOSC = NPHOSC+1
3727 CALL DT_GETPJE(MO1,MO2,PPNN,PTNN,-1,NPHOSC,IREJ1)
3728 IF (IREJ1.NE.0) THEN
3729 IF (IOULEV(1).GT.0)
3730 & WRITE(LOUT,'(1X,A,I4)') 'EVENTB: chain system rejected 1'
3731 GOTO 9999
3732 ENDIF
3733*
3734* update statistics counter
3735 ICEVTG(IDCH(NC),29) = ICEVTG(IDCH(NC),29)+1
3736*
3737*-----------------------------------------------------------------------
3738* this interaction involves "remnants"
3739*
3740 ELSE
3741*
3742* total mass of this system
3743 PPTOT = SQRT(PTOT(1)**2+PTOT(2)**2+PTOT(3)**2)
3744 AMTOT2 = (PTOT(4)-PPTOT)*(PTOT(4)+PPTOT)
3745 IF (AMTOT2.LT.ZERO) THEN
3746 AMTOT = ZERO
3747 ELSE
3748 AMTOT = SQRT(AMTOT2)
3749 ENDIF
3750*
3751* systems with masses larger than elojet are treated with PHOJET
3752 IF (AMTOT.GT.ELOJET) THEN
3753*
3754* initialize PHOJET-variables for remnant/valence-partons
3755* projectile parton flavors and valence flag
3756 IHFLD(1,1) = IDHKK(NC)
3757 IHFLD(1,2) = IDHKK(NC+2)
3758 IHFLS(1) = 0
3759 IF ((IDCH(NC).EQ.6).OR.(IDCH(NC).EQ.7)
3760 & .OR.(IDCH(NC).EQ.8)) IHFLS(1) = 1
3761* target parton flavors and valence flag
3762 IHFLD(2,1) = IDHKK(NC+1)
3763 IHFLD(2,2) = IDHKK(NC+3)
3764 IHFLS(2) = 0
3765 IF ((IDCH(NC).EQ.4).OR.(IDCH(NC).EQ.5)
3766 & .OR.(IDCH(NC).EQ.8)) IHFLS(2) = 1
3767* flag signalizing PHOJET how to treat the remnant:
3768* iremn = -1 sea-quark remnant: PHOJET takes flavors from ihfld
3769* iremn > -1 valence remnant: PHOJET assumes flavors according
3770* to mother particle
3771 IREMN1 = IHFLS(1)-1
3772 IREMN2 = IHFLS(2)-1
3773*
3774* initialize the incoming particles in PHOJET
3775 IF ((IP.EQ.1).AND.(IJPROJ.EQ.7)) THEN
3776 CALL PHO_SETPAR(1,22,IREMN1,VIRT)
3777 ELSE
3778 CALL PHO_SETPAR(1,IDHKK(MOP),IREMN1,ZERO)
3779 ENDIF
3780 CALL PHO_SETPAR(2,IDHKK(MOT),IREMN2,ZERO)
3781*
3782* calculate Lorentz parameter of the nucleon-nucleon cm-system
3783 PPTOTN = SQRT(PTOTNN(1)**2+PTOTNN(2)**2+PTOTNN(3)**2)
3784 AMNN = SQRT( (PTOTNN(4)-PPTOTN)*(PTOTNN(4)+PPTOTN) )
3785 BGX = PTOTNN(1)/AMNN
3786 BGY = PTOTNN(2)/AMNN
3787 BGZ = PTOTNN(3)/AMNN
3788 GAM = PTOTNN(4)/AMNN
3789* transform interacting nucleons into nucleon-nucleon cm-system
3790 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3791 & PPNN(1),PPNN(2),PPNN(3),PPNN(4),PPCMS,
3792 & PPTCMS(1),PPTCMS(2),PPTCMS(3),PPTCMS(4))
3793 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3794 & PTNN(1),PTNN(2),PTNN(3),PTNN(4),PTCMS,
3795 & PTTCMS(1),PTTCMS(2),PTTCMS(3),PTTCMS(4))
3796* transform (total) momenta of the proj and targ partons into
3797* nucleon-nucleon cm-system
3798 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3799 & PP(1),PP(2),PP(3),PP(4),
3800 & PPTSUB,PPSUB(1),PPSUB(2),PPSUB(3),PPSUB(4))
3801 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,
3802 & PT(1),PT(2),PT(3),PT(4),
3803 & PTTSUB,PTSUB(1),PTSUB(2),PTSUB(3),PTSUB(4))
3804* energy fractions of the proj and targ partons
3805 XPSUB = MIN(PPSUB(4)/PPTCMS(4),ONE)
3806 XTSUB = MIN(PTSUB(4)/PTTCMS(4),ONE)
3807***
3808* testprint
3809c PTOTCM = SQRT( (PPTCMS(1)+PTTCMS(1))**2 +
3810c & (PPTCMS(2)+PTTCMS(2))**2 +
3811c & (PPTCMS(3)+PTTCMS(3))**2 )
3812c EOLDCM = SQRT( (PPTCMS(4)+PTTCMS(4)-PTOTCM) *
3813c & (PPTCMS(4)+PTTCMS(4)+PTOTCM) )
3814c PTOTSU = SQRT( (PPSUB(1)+PTSUB(1))**2 +
3815c & (PPSUB(2)+PTSUB(2))**2 +
3816c & (PPSUB(3)+PTSUB(3))**2 )
3817c EOLDSU = SQRT( (PPSUB(4)+PTSUB(4)-PTOTSU) *
3818c & (PPSUB(4)+PTSUB(4)+PTOTSU) )
3819***
3820*
3821* save current settings of PHOJET process and min. bias flags
3822 DO 7 K=1,11
3823 KPRON(K) = IPRON(K,1)
3824 7 CONTINUE
3825* disallow direct photon int. (does not make sense here anyway)
3826 IPRON(8,1) = 0
3827* disallow double pomeron processes (due to technical problems
3828* in PHOJET, needs to be solved sometime)
3829 IPRON(4,1) = 0
3830* disallow diffraction for sea-diquarks
3831 IF ((IABS(IHFLD(1,1)).GT.1100).AND.
3832 & (IABS(IHFLD(1,2)).GT.1100)) THEN
3833 IPRON(3,1) = 0
3834 IPRON(6,1) = 0
3835 ENDIF
3836 IF ((IABS(IHFLD(2,1)).GT.1100).AND.
3837 & (IABS(IHFLD(2,2)).GT.1100)) THEN
3838 IPRON(3,1) = 0
3839 IPRON(5,1) = 0
3840 ENDIF
3841*
3842* we need massless partons: transform them on mass shell
3843 XMP = ZERO
3844 XMT = ZERO
3845 DO 6 K=1,4
3846 PPTMP(K) = PPSUB(K)
3847 PTTMP(K) = PTSUB(K)
3848 6 CONTINUE
3849 CALL DT_MASHEL(PPTMP,PTTMP,XMP,XMT,PPSUB,PTSUB,IREJ1)
3850 PPSUTO = SQRT(PPSUB(1)**2+PPSUB(2)**2+PPSUB(3)**2)
3851 PTSUTO = SQRT(PTSUB(1)**2+PTSUB(2)**2+PTSUB(3)**2)
3852 PSUTOT = SQRT((PPSUB(1)+PTSUB(1))**2+
3853 & (PPSUB(2)+PTSUB(2))**2+(PPSUB(3)+PTSUB(3))**2)
3854* total energy of the subsysten after mass transformation
3855* (should be the same as before..)
3856 SECM = SQRT( (PPSUB(4)+PTSUB(4)-PSUTOT)*
3857 & (PPSUB(4)+PTSUB(4)+PSUTOT) )
3858*
3859* after mass shell transformation the x_sub - relation has to be
3860* corrected. We therefore create "pseudo-momenta" of mother-nucleons.
3861*
3862* The old version was to scale based on the original x_sub and the
3863* 4-momenta of the subsystem. At very high energy this could lead to
3864* "pseudo-cm energies" of the parent system considerably exceeding
3865* the true cm energy. Now we keep the true cm energy and calculate
3866* new x_sub instead.
3867C old version PPTCMS(4) = PPSUB(4)/XPSUB
3868 PPTCMS(4) = MAX(PPTCMS(4),PPSUB(4))
3869 XPSUB = PPSUB(4)/PPTCMS(4)
3870 IF (IJPROJ.EQ.7) THEN
3871 AMP2 = PHKK(5,MOT)**2
3872 PTOT1 = SQRT(PPTCMS(4)**2-AMP2)
3873 ELSE
3874*???????
3875 PTOT1 = SQRT((PPTCMS(4)-PHKK(5,MOP))
3876 & *(PPTCMS(4)+PHKK(5,MOP)))
3877C PTOT1 = SQRT((PPTCMS(4)-PHKK(5,MOT))
3878C & *(PPTCMS(4)+PHKK(5,MOT)))
3879 ENDIF
3880C old version PTTCMS(4) = PTSUB(4)/XTSUB
3881 PTTCMS(4) = MAX(PTTCMS(4),PTSUB(4))
3882 XTSUB = PTSUB(4)/PTTCMS(4)
3883 PTOT2 = SQRT((PTTCMS(4)-PHKK(5,MOT))
3884 & *(PTTCMS(4)+PHKK(5,MOT)))
3885 DO 4 K=1,3
3886 PPTCMS(K) = PTOT1*PPSUB(K)/PPSUTO
3887 PTTCMS(K) = PTOT2*PTSUB(K)/PTSUTO
3888 4 CONTINUE
3889***
3890* testprint
3891*
3892* ppnn / ptnn - momenta of the int. nucleons (cms, negl. Fermi)
3893* ptotnn - total momentum of the int. nucleons (cms, negl. Fermi)
3894* pptcms/ pttcms - momenta of the interacting nucleons (cms)
3895* pp1,2 / pt1,2 - momenta of the four partons
3896*
3897* pp / pt - total momenta of the pr/ta partons (cms, negl. Fermi)
3898* ptot - total momentum of the four partons (cms, negl. Fermi)
3899* ppsub / ptsub - total momenta of the proj / targ partons (cms)
3900*
3901c PTOTCM = SQRT( (PPTCMS(1)+PTTCMS(1))**2 +
3902c & (PPTCMS(2)+PTTCMS(2))**2 +
3903c & (PPTCMS(3)+PTTCMS(3))**2 )
3904c ENEWCM = SQRT( (PPTCMS(4)+PTTCMS(4)-PTOTCM) *
3905c & (PPTCMS(4)+PTTCMS(4)+PTOTCM) )
3906c PTOTSU = SQRT( (PPSUB(1)+PTSUB(1))**2 +
3907c & (PPSUB(2)+PTSUB(2))**2 +
3908c & (PPSUB(3)+PTSUB(3))**2 )
3909c ENEWSU = SQRT( (PPSUB(4)+PTSUB(4)-PTOTSU) *
3910c & (PPSUB(4)+PTSUB(4)+PTOTSU) )
3911c IF (ENEWCM/EOLDCM.GT.1.1D0) THEN
3912c WRITE(*,*) ' EOLDCM, ENEWCM : ',EOLDCM,ENEWCM
3913c WRITE(*,*) ' EOLDSU, ENEWSU : ',EOLDSU,ENEWSU
3914c WRITE(*,*) ' XPSUB, XTSUB : ',XPSUB,XTSUB
3915c ENDIF
3916c BBGX = (PPTCMS(1)+PTTCMS(1))/ENEWCM
3917c BBGY = (PPTCMS(2)+PTTCMS(2))/ENEWCM
3918c BBGZ = (PPTCMS(3)+PTTCMS(3))/ENEWCM
3919c BGAM = (PPTCMS(4)+PTTCMS(4))/ENEWCM
3920* transform interacting nucleons into nucleon-nucleon cm-system
3921c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3922c & PPTCMS(1),PPTCMS(2),PPTCMS(3),PPTCMS(4),PPTOT,
3923c & PPNEW1,PPNEW2,PPNEW3,PPNEW4)
3924c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3925c & PTTCMS(1),PTTCMS(2),PTTCMS(3),PTTCMS(4),PTTOT,
3926c & PTNEW1,PTNEW2,PTNEW3,PTNEW4)
3927c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3928c & PPSUB(1),PPSUB(2),PPSUB(3),PPSUB(4),PPTOT,
3929c & PPSUB1,PPSUB2,PPSUB3,PPSUB4)
3930c CALL DT_DALTRA(BGAM,-BBGX,-BBGY,-BBGZ,
3931c & PTSUB(1),PTSUB(2),PTSUB(3),PTSUB(4),PTTOT,
3932c & PTSUB1,PTSUB2,PTSUB3,PTSUB4)
3933c PTSTCM = SQRT( (PPNEW1+PTNEW1)**2 +
3934c & (PPNEW2+PTNEW2)**2 +
3935c & (PPNEW3+PTNEW3)**2 )
3936c ETSTCM = SQRT( (PPNEW4+PTNEW4-PTSTCM) *
3937c & (PPNEW4+PTNEW4+PTSTCM) )
3938c PTSTSU = SQRT( (PPSUB1+PTSUB1)**2 +
3939c & (PPSUB2+PTSUB2)**2 +
3940c & (PPSUB3+PTSUB3)**2 )
3941c ETSTSU = SQRT( (PPSUB4+PTSUB4-PTSTSU) *
3942c & (PPSUB4+PTSUB4+PTSTSU) )
3943C WRITE(*,*) ' mother cmE :'
3944C WRITE(*,*) ETSTCM,ENEWCM
3945C WRITE(*,*) ' subsystem cmE :'
3946C WRITE(*,*) ETSTSU,ENEWSU
3947C WRITE(*,*) ' projectile mother :'
3948C WRITE(*,*) PPNEW1,PPNEW2,PPNEW3,PPNEW4
3949C WRITE(*,*) ' target mother :'
3950C WRITE(*,*) PTNEW1,PTNEW2,PTNEW3,PTNEW4
3951C WRITE(*,*) ' projectile subsystem:'
3952C WRITE(*,*) PPSUB1,PPSUB2,PPSUB3,PPSUB4
3953C WRITE(*,*) ' target subsystem:'
3954C WRITE(*,*) PTSUB1,PTSUB2,PTSUB3,PTSUB4
3955C WRITE(*,*) ' projectile subsystem should be:'
3956C WRITE(*,*) ZERO,ZERO,XPSUB*ETSTCM/2.0D0,
3957C & XPSUB*ETSTCM/2.0D0
3958C WRITE(*,*) ' target subsystem should be:'
3959C WRITE(*,*) ZERO,ZERO,-XTSUB*ETSTCM/2.0D0,
3960C & XTSUB*ETSTCM/2.0D0
3961C WRITE(*,*) ' subsystem cmE should be: '
3962C WRITE(*,*) SQRT(XPSUB*XTSUB)*ETSTCM,XPSUB,XTSUB
3963***
3964*
3965* generate complete remnant - nucleon/remnant event with PHOJET
3966 CALL PHO_EVENT(3,PPTCMS,PTTCMS,DUM,IREJ1)
3967*
3968* copy back original settings of PHOJET process flags
3969 DO 11 K=1,11
3970 IPRON(K,1) = KPRON(K)
3971 11 CONTINUE
3972*
3973* check if PHOJET has rejected this event
3974 IF (IREJ1.NE.0) THEN
3975 IF (IOULEV(1).GT.0)
3976 & WRITE(LOUT,'(1X,A)') 'EVENTB: chain system rejected'
3977 WRITE(LOUT,*)
3978 & 'XPSUB,XTSUB,SECM ',XPSUB,XTSUB,SECM,AMTOT
3979 CALL PHO_PREVNT(0)
3980 GOTO 9999
3981 ENDIF
3982*
3983* copy partons and strings from PHOJET common back into DTEVT for
3984* external fragmentation
3985 MO1 = NC
3986 MO2 = NC+3
3987*! uncomment this line for internal phojet-fragmentation
3988C CALL DT_GETFSP(MO1,MO2,PP,PT,1)
3989 NPHOSC = NPHOSC+1
3990 CALL DT_GETPJE(MO1,MO2,PP,PT,1,NPHOSC,IREJ1)
3991 IF (IREJ1.NE.0) THEN
3992 IF (IOULEV(1).GT.0) WRITE(LOUT,'(1X,A,I4)')
3993 & 'EVENTB: chain system rejected 2'
3994 GOTO 9999
3995 ENDIF
3996*
3997* update statistics counter
3998 ICEVTG(IDCH(NC),2) = ICEVTG(IDCH(NC),2)+1
3999*
4000*-----------------------------------------------------------------------
4001* two-chain approx. for smaller systems
4002*
4003 ELSE
4004*
4005 NDTUSC = NDTUSC+1
4006* special flag for double-Pomeron statistics
4007 IPOPO = 0
4008*
4009* pick up flavors at the ends of the two chains
4010 IFP1 = IDHKK(NC)
4011 IFT1 = IDHKK(NC+1)
4012 IFP2 = IDHKK(NC+2)
4013 IFT2 = IDHKK(NC+3)
4014* ..and the indices of the mothers
4015 MOP1 = NC
4016 MOT1 = NC+1
4017 MOP2 = NC+2
4018 MOT2 = NC+3
4019 CALL DT_GETCSY(IFP1,PP1,MOP1,IFP2,PP2,MOP2,
4020 & IFT1,PT1,MOT1,IFT2,PT2,MOT2,IREJ1)
4021*
4022* check if this chain system was rejected
4023 IF (IREJ1.GT.0) THEN
4024 IF (IOULEV(1).GT.0) THEN
4025 WRITE(LOUT,*) 'rejected 1 in EVENTB'
4026 WRITE(LOUT,'(1X,4(I6,4E12.3,/),E12.3)')
4027 & IFP1,PP1,IFT1,PT1,IFP2,PP2,IFT2,PT2,AMTOT
4028 ENDIF
4029 IRHHA = IRHHA+1
4030 GOTO 9999
4031 ENDIF
4032* the following lines are for sea-sea chains rejected in GETCSY
4033 IF (IREJ1.EQ.-1) NDTUSC = NDTUSC-1
4034 ICEVTG(IDCH(NC),1) = ICEVTG(IDCH(NC),1)+1
4035 ENDIF
4036*
4037 ENDIF
4038*
4039* update statistics counter
4040 ICEVTG(IDCH(NC),0) = ICEVTG(IDCH(NC),0)+1
4041*
4042 NC = NC+4
4043*
4044 2 CONTINUE
4045*
4046*-----------------------------------------------------------------------
4047* treatment of low-mass chains (if there are any)
4048*
4049 IF (NDTUSC.GT.0) THEN
4050*
4051* correct chains of very low masses for possible resonances
4052 IF (IRESCO.EQ.1) THEN
4053 CALL DT_EVTRES(IREJ1)
4054 IF (IREJ1.GT.0) THEN
4055 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2a in EVENTB'
4056 IRRES(1) = IRRES(1)+1
4057 GOTO 9999
4058 ENDIF
4059 ENDIF
4060* fragmentation of low-mass chains
4061*! uncomment this line for internal phojet-fragmentation
4062* (of course it will still be fragmented by DPMJET-routines but it
4063* has to be done here instead of further below)
4064C CALL DT_EVTFRA(IREJ1)
4065C IF (IREJ1.GT.0) THEN
4066C IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2b in EVENTB'
4067C IRFRAG = IRFRAG+1
4068C GOTO 9999
4069C ENDIF
4070 ELSE
4071*! uncomment this line for internal phojet-fragmentation
4072C NPOINT(4) = NHKK+1
4073 IF (NPOINT(4).LE.NPOINT(3)) NPOINT(4) = NHKK+1
4074 ENDIF
4075*
4076*-----------------------------------------------------------------------
4077* new di-quark breaking mechanisms
4078*
4079 MXLEFT = 2
4080 CALL DT_CHASTA(0)
4081 IF ((PDBSEA(1).GT.0.0D0).OR.(PDBSEA(2).GT.0.0D0)
4082 & .OR.(PDBSEA(3).GT.0.0D0)) THEN
4083 CALL DT_DIQBRK
4084 MXLEFT = 4
4085 ENDIF
4086*
4087*-----------------------------------------------------------------------
4088* hadronize this event
4089*
4090* hadronize PHOJET chain systems
4091 NPYMAX = 0
4092 NPJE = NPHOSC/MXPHFR
4093 IF (MXPHFR.LT.MXLEFT) MXLEFT = 2
4094 IF (NPJE.GT.1) THEN
4095 NLEFT = NPHOSC-NPJE*MXPHFR
4096 DO 20 JFRG=1,NPJE
4097 NFRG = JFRG*MXPHFR
4098 IF ((JFRG.EQ.NPJE).AND.(NLEFT.LE.MXLEFT)) THEN
4099 CALL DT_EVTFRG(1,NPHOSC,NPYMEM,IREJ1)
4100 IF (IREJ1.GT.0) GOTO 22
4101 NLEFT = 0
4102 ELSE
4103 CALL DT_EVTFRG(1,NFRG,NPYMEM,IREJ1)
4104 IF (IREJ1.GT.0) GOTO 22
4105 ENDIF
4106 IF (NPYMEM.GT.NPYMAX) NPYMAX = NPYMEM
4107 20 CONTINUE
4108 IF (NLEFT.GT.0) THEN
4109 CALL DT_EVTFRG(1,NPHOSC,NPYMEM,IREJ1)
4110 IF (IREJ1.GT.0) GOTO 22
4111 IF (NPYMEM.GT.NPYMAX) NPYMAX = NPYMEM
4112 ENDIF
4113 ELSE
4114 CALL DT_EVTFRG(1,NPHOSC,NPYMEM,IREJ1)
4115 IF (IREJ1.GT.0) GOTO 22
4116 IF (NPYMEM.GT.NPYMAX) NPYMAX = NPYMEM
4117 ENDIF
4118*
4119* check max. filling level of jetset common and
4120* reduce mxphfr if necessary
4121 IF (NPYMAX.GT.3000) THEN
4122 IF (NPYMAX.GT.3500) THEN
4123 MXPHFR = MAX(1,MXPHFR-2)
4124 ELSE
4125 MXPHFR = MAX(1,MXPHFR-1)
4126 ENDIF
4127C WRITE(LOUT,*) ' EVENTB: Mxphfr reduced to ',MXPHFR
4128 ENDIF
4129*
4130* hadronize DTUNUC chain systems
4131 23 CONTINUE
4132 IBACK = MXDTFR
4133 CALL DT_EVTFRG(2,IBACK,NPYMEM,IREJ2)
4134 IF (IREJ2.GT.0) GOTO 22
4135*
4136* check max. filling level of jetset common and
4137* reduce mxdtfr if necessary
4138 IF (NPYMEM.GT.3000) THEN
4139 IF (NPYMEM.GT.3500) THEN
4140 MXDTFR = MAX(1,MXDTFR-20)
4141 ELSE
4142 MXDTFR = MAX(1,MXDTFR-10)
4143 ENDIF
4144C WRITE(LOUT,*) ' EVENTB: Mxdtfr reduced to ',MXDTFR
4145 ENDIF
4146*
4147 IF (IBACK.EQ.-1) GOTO 23
4148*
4149 22 CONTINUE
4150C CALL DT_EVTFRG(1,IREJ1)
4151C CALL DT_EVTFRG(2,IREJ2)
4152 IF ((IREJ1.GT.0).OR.(IREJ2.GT.0)) THEN
4153 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in EVENTB'
4154 IRFRAG = IRFRAG+1
4155 GOTO 9999
4156 ENDIF
4157*
4158* get final state particles from /DTEVTP/
4159*! uncomment this line for internal phojet-fragmentation
4160C CALL DT_GETFSP(IDUM,IDUM,PP,PT,2)
4161
4162 IF (IJPROJ.NE.7)
4163 & CALL DT_EMC2(9,10,0,0,0,3,1,0,0,0,0,3,4,88,IREJ3)
4164C IF (IREJ3.NE.0) GOTO 9999
4165
4166 RETURN
4167
4168 9999 CONTINUE
4169 IREVT = IREVT+1
4170 IREJ = 1
4171 RETURN
4172 END
4173
4174*$ CREATE DT_GETPJE.FOR
4175*COPY DT_GETPJE
4176*
4177*===getpje=============================================================*
4178*
4179 SUBROUTINE DT_GETPJE(MO1,MO2,PP,PT,MODE,IPJE,IREJ)
4180
4181************************************************************************
4182* This subroutine copies PHOJET partons and strings from POEVT1 into *
4183* DTEVT1. *
4184* MO1,MO2 indices of first and last mother-parton in DTEVT1 *
4185* PP,PT 4-momenta of projectile/target being handled by *
4186* PHOJET *
4187* This version dated 11.12.99 is written by S. Roesler *
4188************************************************************************
4189
4190 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4191 SAVE
4192 PARAMETER ( LINP = 10 ,
4193 & LOUT = 6 ,
4194 & LDAT = 9 )
4195 PARAMETER (TINY10=1.0D-10,TINY1=1.0D-1,
4196 & ZERO=0.0D0,ONE=1.0D0,OHALF=0.5D0)
4197
4198 LOGICAL LFLIP
4199
4200* event history
4201 PARAMETER (NMXHKK=200000)
4202 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
4203 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
4204 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
4205* extended event history
4206 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
4207 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
4208 & IHIST(2,NMXHKK)
4209* Lorentz-parameters of the current interaction
4210 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
4211 & UMO,PPCM,EPROJ,PPROJ
4212* DTUNUC-PHOJET interface, Lorentz-param. of n-n subsystem
4213 COMMON /DTLTSU/ BGX,BGY,BGZ,GAM
4214* flags for input different options
4215 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
4216 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
4217 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
4218* statistics: double-Pomeron exchange
4219 COMMON /DTFLG2/ INTFLG,IPOPO
4220* statistics
4221 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
4222 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
4223 & ICEVTG(8,0:30)
4224* rejection counter
4225 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
4226 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
4227 & IREXCI(3),IRDIFF(2),IRINC
4228C standard particle data interface
4229 INTEGER NMXHEP
4230 PARAMETER (NMXHEP=4000)
4231 INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
4232 DOUBLE PRECISION PHEP,VHEP
4233 COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
4234 & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
09b429a4 4235 & VHEP(4,NMXHEP), NSD1, NSD2, NDD
9aaba0d6 4236C extension to standard particle data interface (PHOJET specific)
4237 INTEGER IMPART,IPHIST,ICOLOR
4238 COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
4239C color string configurations including collapsed strings and hadrons
4240 INTEGER MSTR
4241 PARAMETER (MSTR=500)
4242 INTEGER NPOS,NCODE,IPAR1,IPAR2,IPAR3,IPAR4,NNCH,IBHAD
4243 COMMON /POSTRG/ NPOS(4,MSTR),NCODE(MSTR),
4244 & IPAR1(MSTR),IPAR2(MSTR),IPAR3(MSTR),IPAR4(MSTR),
4245 & NNCH(MSTR),IBHAD(MSTR),ISTR
4246C general process information
4247 INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
4248 COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
4249C model switches and parameters
4250 CHARACTER*8 MDLNA
4251 INTEGER ISWMDL,IPAMDL
4252 DOUBLE PRECISION PARMDL
4253 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
4254C event debugging information
4255 INTEGER NMAXD
4256 PARAMETER (NMAXD=100)
4257 INTEGER IDEB,KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,KHTRG,KSLOO,
4258 & KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
4259 COMMON /PODEBG/ IDEB(NMAXD),KSPOM,KHPOM,KSREG,KHDIR,KACCEP,KSTRG,
4260 & KHTRG,KSLOO,KHLOO,KSDPO,KHDPO,KEVENT,KSOFT,KHARD
4261
4262 DIMENSION PP(4),PT(4)
4263 DATA MAXLOP /10000/
4264
4265 INHKK = NHKK
4266 LFLIP = .TRUE.
4267 1 CONTINUE
4268 NPVAL = 0
4269 NTVAL = 0
4270 IREJ = 0
4271
4272* store initial momenta for energy-momentum conservation check
4273 IF (LEMCCK) THEN
4274 CALL DT_EVTEMC(PP(1),PP(2),PP(3),PP(4),1,IDUM1,IDUM2)
4275 CALL DT_EVTEMC(PT(1),PT(2),PT(3),PT(4),2,IDUM1,IDUM2)
4276 ENDIF
4277* copy partons and strings from POEVT1 into DTEVT1
4278 DO 11 I=1,ISTR
4279C IF ((NCODE(I).EQ.-99).AND.(IPAMDL(17).EQ.0)) THEN
4280 IF (NCODE(I).EQ.-99) THEN
4281 IDXSTG = NPOS(1,I)
4282 IDSTG = IDHEP(IDXSTG)
4283 PX = PHEP(1,IDXSTG)
4284 PY = PHEP(2,IDXSTG)
4285 PZ = PHEP(3,IDXSTG)
4286 PE = PHEP(4,IDXSTG)
4287 IF (MODE.LT.0) THEN
4288 ISTAT = 70000+IPJE
4289 CALL DT_EVTPUT(2,ISTAT,MO1,MO2,PX,PY,PZ,PE,
4290 & 11,IDSTG,0)
4291 IF (LEMCCK) THEN
4292 PX = -PX
4293 PY = -PY
4294 PZ = -PZ
4295 PE = -PE
4296 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4297 ENDIF
4298 ELSE
4299 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4300 & PPX,PPY,PPZ,PPE)
4301 ISTAT = 70000+IPJE
4302 CALL DT_EVTPUT(2,ISTAT,MO1,MO2,PPX,PPY,PPZ,PPE,
4303 & 11,IDSTG,0)
4304 IF (LEMCCK) THEN
4305 PX = -PPX
4306 PY = -PPY
4307 PZ = -PPZ
4308 PE = -PPE
4309 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4310 ENDIF
4311 ENDIF
4312 NOBAM(NHKK) = 0
4313 IHIST(1,NHKK) = IPHIST(1,IDXSTG)
4314 IHIST(2,NHKK) = 0
4315 ELSEIF (NCODE(I).GE.0) THEN
4316* indices of partons and string in POEVT1
4317 IDX1 = ABS(JMOHEP(1,NPOS(1,I)))
4318 IDX2 = ABS(JMOHEP(2,NPOS(1,I)))
4319 IF ((IDX1.GT.IDX2).OR.(JMOHEP(2,NPOS(1,I)).GT.0)) THEN
4320 WRITE(LOUT,*) ' GETPJE: IDX1.GT.IDX2 ',IDX1,IDX2,
4321 & ' or JMOHEP(2,NPOS(1,I)).GT.0 ',JMOHEP(2,NPOS(1,I)),' ! '
4322 STOP ' GETPJE 1'
4323 ENDIF
4324 IDXSTG = NPOS(1,I)
4325* find "mother" string of the string
4326 IDXMS1 = ABS(JMOHEP(1,IDX1))
4327 IDXMS2 = ABS(JMOHEP(1,IDX2))
4328 IF (IDXMS1.NE.IDXMS2) THEN
4329 IDXMS1 = IDXSTG
4330 IDXMS2 = IDXSTG
4331C STOP ' GETPJE: IDXMS1.NE.IDXMS2 !'
4332 ENDIF
4333* search POEVT1 for the original hadron of the parton
4334 ILOOP = 0
4335 IPOM1 = 0
4336 14 CONTINUE
4337 ILOOP = ILOOP+1
4338 IF (IDHEP(IDXMS1).EQ.990) IPOM1 = 1
4339 IDXMS1 = ABS(JMOHEP(1,IDXMS1))
4340 IF ((IDXMS1.NE.1).AND.(IDXMS1.NE.2).AND.
4341 & (ILOOP.LT.MAXLOP)) GOTO 14
4342 IF (ILOOP.EQ.MAXLOP) WRITE(LOUT,*) ' GETPJE: MAXLOP in 1 ! '
4343 IPOM2 = 0
4344 ILOOP = 0
4345 15 CONTINUE
4346 ILOOP = ILOOP+1
4347 IF (IDHEP(IDXMS2).EQ.990) IPOM2 = 1
4348 IF ((ILOOP.EQ.1).OR.(IDHEP(IDXMS2).GE.7777)) THEN
4349 IDXMS2 = ABS(JMOHEP(2,IDXMS2))
4350 ELSE
4351 IDXMS2 = ABS(JMOHEP(1,IDXMS2))
4352 ENDIF
4353 IF ((IDXMS2.NE.1).AND.(IDXMS2.NE.2).AND.
4354 & (ILOOP.LT.MAXLOP)) GOTO 15
4355 IF (ILOOP.EQ.MAXLOP) WRITE(LOUT,*) ' GETPJE: MAXLOP in 5 ! '
4356* parton 1
4357 IF (IDXMS1.EQ.1) THEN
4358 ISPTN1 = ISTHKK(MO1)
4359 M1PTN1 = MO1
4360 M2PTN1 = MO1+2
4361 ELSE
4362 ISPTN1 = ISTHKK(MO2)
4363 M1PTN1 = MO2-2
4364 M2PTN1 = MO2
4365 ENDIF
4366* parton 2
4367 IF (IDXMS2.EQ.1) THEN
4368 ISPTN2 = ISTHKK(MO1)
4369 M1PTN2 = MO1
4370 M2PTN2 = MO1+2
4371 ELSE
4372 ISPTN2 = ISTHKK(MO2)
4373 M1PTN2 = MO2-2
4374 M2PTN2 = MO2
4375 ENDIF
4376* check for mis-identified mothers and switch mother indices if necessary
4377 IF ((IDXMS1.EQ.IDXMS2).AND.(IPROCE.NE.5).AND.(IPROCE.NE.6)
4378 & .AND.((IDHEP(IDX1).NE.21).OR.(IDHEP(IDX2).NE.21)).AND.
4379 & (LFLIP)) THEN
4380 IF (PHEP(3,IDX1).GT.PHEP(3,IDX2)) THEN
4381 ISPTN1 = ISTHKK(MO1)
4382 M1PTN1 = MO1
4383 M2PTN1 = MO1+2
4384 ISPTN2 = ISTHKK(MO2)
4385 M1PTN2 = MO2-2
4386 M2PTN2 = MO2
4387 ELSE
4388 ISPTN1 = ISTHKK(MO2)
4389 M1PTN1 = MO2-2
4390 M2PTN1 = MO2
4391 ISPTN2 = ISTHKK(MO1)
4392 M1PTN2 = MO1
4393 M2PTN2 = MO1+2
4394 ENDIF
4395 ENDIF
4396* register partons in temporary common
4397* parton at chain end
4398 PX = PHEP(1,IDX1)
4399 PY = PHEP(2,IDX1)
4400 PZ = PHEP(3,IDX1)
4401 PE = PHEP(4,IDX1)
4402* flag only partons coming from Pomeron with 41/42
4403C IF ((IPOM1.NE.0).OR.(NPOS(4,I).GE.4)) THEN
4404 IF (IPOM1.NE.0) THEN
4405 ISTX = ABS(ISPTN1)/10
4406 IMO = ABS(ISPTN1)-10*ISTX
4407 ISPTN1 = -(40+IMO)
4408 ELSE
4409 IF ((ICOLOR(2,IDX1).EQ.0).OR.(IDHEP(IDX1).EQ.21)) THEN
4410 ISTX = ABS(ISPTN1)/10
4411 IMO = ABS(ISPTN1)-10*ISTX
4412 IF ((IDHEP(IDX1).EQ.21).OR.
4413 & (ABS(IPHIST(1,IDX1)).GE.100)) THEN
4414 ISPTN1 = -(60+IMO)
4415 ELSE
4416 ISPTN1 = -(50+IMO)
4417 ENDIF
4418 ENDIF
4419 ENDIF
4420 IF (ISPTN1.EQ.-21) NPVAL = NPVAL+1
4421 IF (ISPTN1.EQ.-22) NTVAL = NTVAL+1
4422 IF (MODE.LT.0) THEN
4423 CALL DT_EVTPUT(ISPTN1,IDHEP(IDX1),M1PTN1,M2PTN1,PX,PY,
4424 & PZ,PE,0,0,0)
4425 ELSE
4426 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4427 & PPX,PPY,PPZ,PPE)
4428 CALL DT_EVTPUT(ISPTN1,IDHEP(IDX1),M1PTN1,M2PTN1,PPX,PPY,
4429 & PPZ,PPE,0,0,0)
4430 ENDIF
4431 IHIST(1,NHKK) = IPHIST(1,IDX1)
4432 IHIST(2,NHKK) = 0
4433 DO 19 KK=1,4
4434 VHKK(KK,NHKK) = VHKK(KK,M2PTN1)
4435 WHKK(KK,NHKK) = WHKK(KK,M1PTN1)
4436 19 CONTINUE
4437 VHKK(4,NHKK) = VHKK(3,M2PTN1)/BLAB-VHKK(3,M1PTN1)/BGLAB
4438 WHKK(4,NHKK) = -WHKK(3,M1PTN1)/BLAB+WHKK(3,M2PTN1)/BGLAB
4439 M1STRG = NHKK
4440* gluon kinks
4441 NGLUON = IDX2-IDX1-1
4442 IF (NGLUON.GT.0) THEN
4443 DO 17 IGLUON=1,NGLUON
4444 IDX = IDX1+IGLUON
4445 IDXMS = ABS(JMOHEP(1,IDX))
4446 IF ((IDXMS.NE.1).AND.(IDXMS.NE.2)) THEN
4447 ILOOP = 0
4448 16 CONTINUE
4449 ILOOP = ILOOP+1
4450 IDXMS = ABS(JMOHEP(1,IDXMS))
4451 IF ((IDXMS.NE.1).AND.(IDXMS.NE.2).AND.
4452 & (ILOOP.LT.MAXLOP)) GOTO 16
4453 IF (ILOOP.EQ.MAXLOP)
4454 & WRITE(LOUT,*) ' GETPJE: MAXLOP in 3 ! '
4455 ENDIF
4456 IF (IDXMS.EQ.1) THEN
4457 ISPTN = ISTHKK(MO1)
4458 M1PTN = MO1
4459 M2PTN = MO1+2
4460 ELSE
4461 ISPTN = ISTHKK(MO2)
4462 M1PTN = MO2-2
4463 M2PTN = MO2
4464 ENDIF
4465 PX = PHEP(1,IDX)
4466 PY = PHEP(2,IDX)
4467 PZ = PHEP(3,IDX)
4468 PE = PHEP(4,IDX)
4469 IF ((ICOLOR(2,IDX).EQ.0).OR.(IDHEP(IDX).EQ.21)) THEN
4470 ISTX = ABS(ISPTN)/10
4471 IMO = ABS(ISPTN)-10*ISTX
4472 IF ((IDHEP(IDX).EQ.21).OR.
4473 & (ABS(IPHIST(1,IDX)).GE.100)) THEN
4474 ISPTN = -(60+IMO)
4475 ELSE
4476 ISPTN = -(50+IMO)
4477 ENDIF
4478 ENDIF
4479 IF (ISPTN.EQ.-21) NPVAL = NPVAL+1
4480 IF (ISPTN.EQ.-22) NTVAL = NTVAL+1
4481 IF (MODE.LT.0) THEN
4482 CALL DT_EVTPUT(ISPTN,IDHEP(IDX),M1PTN,M2PTN,
4483 & PX,PY,PZ,PE,0,0,0)
4484 ELSE
4485 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4486 & PPX,PPY,PPZ,PPE)
4487 CALL DT_EVTPUT(ISPTN,IDHEP(IDX),M1PTN,M2PTN,
4488 & PPX,PPY,PPZ,PPE,0,0,0)
4489 ENDIF
4490 IHIST(1,NHKK) = IPHIST(1,IDX)
4491 IHIST(2,NHKK) = 0
4492 DO 20 KK=1,4
4493 VHKK(KK,NHKK) = VHKK(KK,M2PTN)
4494 WHKK(KK,NHKK) = WHKK(KK,M1PTN)
4495 20 CONTINUE
4496 VHKK(4,NHKK)= VHKK(3,M2PTN)/BLAB-VHKK(3,M1PTN)/BGLAB
4497 WHKK(4,NHKK)= -WHKK(3,M1PTN)/BLAB+WHKK(3,M2PTN)/BGLAB
4498 17 CONTINUE
4499 ENDIF
4500* parton at chain end
4501 PX = PHEP(1,IDX2)
4502 PY = PHEP(2,IDX2)
4503 PZ = PHEP(3,IDX2)
4504 PE = PHEP(4,IDX2)
4505* flag only partons coming from Pomeron with 41/42
4506C IF ((IPOM2.NE.0).OR.(NPOS(4,I).GE.4)) THEN
4507 IF (IPOM2.NE.0) THEN
4508 ISTX = ABS(ISPTN2)/10
4509 IMO = ABS(ISPTN2)-10*ISTX
4510 ISPTN2 = -(40+IMO)
4511 ELSE
4512 IF ((ICOLOR(2,IDX2).EQ.0).OR.(IDHEP(IDX2).EQ.21)) THEN
4513 ISTX = ABS(ISPTN2)/10
4514 IMO = ABS(ISPTN2)-10*ISTX
4515 IF ((IDHEP(IDX2).EQ.21).OR.
4516 & (ABS(IPHIST(1,IDX2)).GE.100)) THEN
4517 ISPTN2 = -(60+IMO)
4518 ELSE
4519 ISPTN2 = -(50+IMO)
4520 ENDIF
4521 ENDIF
4522 ENDIF
4523 IF (ISPTN2.EQ.-21) NPVAL = NPVAL+1
4524 IF (ISPTN2.EQ.-22) NTVAL = NTVAL+1
4525 IF (MODE.LT.0) THEN
4526 CALL DT_EVTPUT(ISPTN2,IDHEP(IDX2),M1PTN2,M2PTN2,
4527 & PX,PY,PZ,PE,0,0,0)
4528 ELSE
4529 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4530 & PPX,PPY,PPZ,PPE)
4531 CALL DT_EVTPUT(ISPTN2,IDHEP(IDX2),M1PTN2,M2PTN2,
4532 & PPX,PPY,PPZ,PPE,0,0,0)
4533 ENDIF
4534 IHIST(1,NHKK) = IPHIST(1,IDX2)
4535 IHIST(2,NHKK) = 0
4536 DO 21 KK=1,4
4537 VHKK(KK,NHKK) = VHKK(KK,M2PTN2)
4538 WHKK(KK,NHKK) = WHKK(KK,M1PTN2)
4539 21 CONTINUE
4540 VHKK(4,NHKK) = VHKK(3,M2PTN2)/BLAB-VHKK(3,M1PTN2)/BGLAB
4541 WHKK(4,NHKK) = -WHKK(3,M1PTN2)/BLAB+WHKK(3,M2PTN2)/BGLAB
4542 M2STRG = NHKK
4543* register string
4544 JSTRG = 100*IPROCE+NCODE(I)
4545 PX = PHEP(1,IDXSTG)
4546 PY = PHEP(2,IDXSTG)
4547 PZ = PHEP(3,IDXSTG)
4548 PE = PHEP(4,IDXSTG)
4549 IF (MODE.LT.0) THEN
4550 ISTAT = 70000+IPJE
4551 CALL DT_EVTPUT(JSTRG,ISTAT,M1STRG,M2STRG,
4552 & PX,PY,PZ,PE,0,0,0)
4553 IF (LEMCCK) THEN
4554 PX = -PX
4555 PY = -PY
4556 PZ = -PZ
4557 PE = -PE
4558 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4559 ENDIF
4560 ELSE
4561 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,PX,PY,PZ,PE,PTOTMP,
4562 & PPX,PPY,PPZ,PPE)
4563 ISTAT = 70000+IPJE
4564 CALL DT_EVTPUT(JSTRG,ISTAT,M1STRG,M2STRG,
4565 & PPX,PPY,PPZ,PPE,0,0,0)
4566 IF (LEMCCK) THEN
4567 PX = -PPX
4568 PY = -PPY
4569 PZ = -PPZ
4570 PE = -PPE
4571 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
4572 ENDIF
4573 ENDIF
4574 NOBAM(NHKK) = 0
4575 IHIST(1,NHKK) = 0
4576 IHIST(2,NHKK) = 0
4577 DO 18 KK=1,4
4578 VHKK(KK,NHKK) = VHKK(KK,MO2)
4579 WHKK(KK,NHKK) = WHKK(KK,MO1)
4580 18 CONTINUE
4581 VHKK(4,NHKK) = VHKK(3,MO2)/BLAB-VHKK(3,MO1)/BGLAB
4582 WHKK(4,NHKK) = -WHKK(3,MO1)/BLAB+WHKK(3,MO2)/BGLAB
4583 ENDIF
4584 11 CONTINUE
4585
4586 IF ( ((NPVAL.GT.2).OR.(NTVAL.GT.2)).AND.(LFLIP) ) THEN
4587 NHKK = INHKK
4588 LFLIP = .FALSE.
4589 GOTO 1
4590 ENDIF
4591
4592 IF (LEMCCK) THEN
4593 IF (UMO.GT.1.0D5) THEN
4594 CHKLEV = 1.0D0
4595 ELSE
4596 CHKLEV = TINY1
4597 ENDIF
4598 CALL DT_EVTEMC(DUM1,DUM2,DUM3,CHKLEV,-1,1000,IREJ2)
4599 IF (IREJ2.GT.ZERO) CALL PHO_PREVNT(0)
4600 ENDIF
4601
4602* internal statistics
4603* dble-Po statistics.
4604 IF (IPROCE.NE.4) IPOPO = 0
4605
4606 INTFLG = IPROCE
4607 IDCHSY = IDCH(MO1)
4608 IF ((IPROCE.GE.1).AND.(IPROCE.LE.8)) THEN
4609 ICEVTG(IDCHSY,IPROCE+2) = ICEVTG(IDCHSY,IPROCE+2)+1
4610 ELSE
4611 WRITE(LOUT,1000) IPROCE,NEVHKK,MO1
4612 1000 FORMAT(1X,'GETFSP: warning! incons. process id. (',I2,
4613 & ') at evt(chain) ',I6,'(',I2,')')
4614 ENDIF
4615 IF (IPROCE.EQ.5) THEN
4616 IF ((IDIFR1.GE.1).AND.(IDIFR1.LE.3)) THEN
4617 ICEVTG(IDCHSY,18+IDIFR1) = ICEVTG(IDCHSY,18+IDIFR1)+1
4618 ELSE
4619C WRITE(LOUT,1001) IPROCE,IDIFR1,IDIFR2
4620 1001 FORMAT(1X,'GETFSP: warning! incons. diffrac. id. ',
4621 & '(IPROCE,IDIFR1,IDIFR2=',3I3,')')
4622 ENDIF
4623 ELSEIF (IPROCE.EQ.6) THEN
4624 IF ((IDIFR2.GE.1).AND.(IDIFR2.LE.3)) THEN
4625 ICEVTG(IDCHSY,21+IDIFR2) = ICEVTG(IDCHSY,21+IDIFR2)+1
4626 ELSE
4627C WRITE(LOUT,1001) IPROCE,IDIFR1,IDIFR2
4628 ENDIF
4629 ELSEIF (IPROCE.EQ.7) THEN
4630 IF ((IDIFR1.GE.1).AND.(IDIFR1.LE.3).AND.
4631 & (IDIFR2.GE.1).AND.(IDIFR2.LE.3)) THEN
4632 IF ((IDIFR1.EQ.1).AND.(IDIFR2.EQ.1))
4633 & ICEVTG(IDCHSY,25) = ICEVTG(IDCHSY,25)+1
4634 IF ((IDIFR1.EQ.2).AND.(IDIFR2.EQ.2))
4635 & ICEVTG(IDCHSY,26) = ICEVTG(IDCHSY,26)+1
4636 IF ((IDIFR1.EQ.1).AND.(IDIFR2.EQ.2))
4637 & ICEVTG(IDCHSY,27) = ICEVTG(IDCHSY,27)+1
4638 IF ((IDIFR1.EQ.2).AND.(IDIFR2.EQ.1))
4639 & ICEVTG(IDCHSY,28) = ICEVTG(IDCHSY,28)+1
4640 ELSE
4641 WRITE(LOUT,1001) IPROCE,IDIFR1,IDIFR2
4642 ENDIF
4643 ENDIF
4644 IF ((IDIFR1+IDIFR2.EQ.0).AND.(KHDIR.GE.1).AND.(KHDIR.LE.3))
4645 & THEN
4646 ICEVTG(IDCHSY,10+KHDIR) = ICEVTG(IDCHSY,10+KHDIR)+1
4647 ICEVTG(IDCHSY,10+KHDIR) = ICEVTG(IDCHSY,10+KHDIR)+1
4648 ICEVTG(IDCHSY,10+KHDIR) = ICEVTG(IDCHSY,10+KHDIR)+1
4649 ENDIF
4650 ICEVTG(IDCHSY,14) = ICEVTG(IDCHSY,14)+KSPOM
4651 ICEVTG(IDCHSY,15) = ICEVTG(IDCHSY,15)+KHPOM
4652 ICEVTG(IDCHSY,16) = ICEVTG(IDCHSY,16)+KSREG
4653 ICEVTG(IDCHSY,17) = ICEVTG(IDCHSY,17)+(KSTRG+KHTRG)
4654 ICEVTG(IDCHSY,18) = ICEVTG(IDCHSY,18)+(KSLOO+KHLOO)
4655
4656 RETURN
4657
4658 9999 CONTINUE
4659 IREJ = 1
4660 RETURN
4661 END
4662
4663*$ CREATE DT_PHOINI.FOR
4664*COPY DT_PHOINI
4665*
4666*===phoini=============================================================*
4667*
4668 SUBROUTINE DT_PHOINI
4669
4670************************************************************************
4671* Initialization PHOJET-event generator for nucleon-nucleon interact. *
4672* This version dated 16.11.95 is written by S. Roesler *
4673* *
4674* Last change 27.12.2006 by S. Roesler. *
4675************************************************************************
4676
4677 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4678 SAVE
4679 PARAMETER ( LINP = 10 ,
4680 & LOUT = 6 ,
4681 & LDAT = 9 )
4682 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,ONE=1.0D0)
4683
4684* nucleon-nucleon event-generator
4685 CHARACTER*8 CMODEL
4686 LOGICAL LPHOIN
4687 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
4688* particle properties (BAMJET index convention)
4689 CHARACTER*8 ANAME
4690 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
4691 & IICH(210),IIBAR(210),K1(210),K2(210)
4692* Lorentz-parameters of the current interaction
4693 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
4694 & UMO,PPCM,EPROJ,PPROJ
4695* properties of interacting particles
4696 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
4697* properties of photon/lepton projectiles
4698 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
4699 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
4700* emulsion treatment
4701 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
4702 & NCOMPO,IEMUL
4703* VDM parameter for photon-nucleus interactions
4704 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
4705* nuclear potential
4706 LOGICAL LFERMI
4707 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
4708 & EBINDP(2),EBINDN(2),EPOT(2,210),
4709 & ETACOU(2),ICOUL,LFERMI
4710* Glauber formalism: flags and parameters for statistics
4711 LOGICAL LPROD
4712 CHARACTER*8 CGLB
4713 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
4714*
4715* parameters for cascade calculations:
4716* maximum mumber of PDF's which can be defined in phojet (limited
4717* by the dimension of ipdfs in pho_setpdf)
4718 PARAMETER (MAXPDF = 20)
4719* PDF parametrization and number of set for the first 30 hadrons in
4720* the bamjet-code list
4721* negative numbers mean that the PDF is set in phojet,
4722* zero stands for "not a hadron"
4723 DIMENSION IPARPD(30),ISETPD(30)
4724* PDF parametrization
4725 DATA IPARPD /
4726 & -5,-5, 0, 0, 0, 0,-5,-5,-5, 0, 0, 5,-5,-5, 5, 5, 5, 5, 5, 5,
4727 & 5, 5,-5, 5, 5, 0, 0, 0, 0, 0/
4728* number of set
4729 DATA ISETPD /
4730 & -6,-6, 0, 0, 0, 0,-3,-6,-6, 0, 0, 2,-2,-2, 2, 2, 6, 6, 2, 6,
4731 & 6, 6,-2, 2, 2, 0, 0, 0, 0, 0/
4732
4733**PHOJET105a
4734C COMMON /GLOCMS/ XECM,XPCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
4735C PARAMETER ( MAXPRO = 16 )
4736C PARAMETER ( MAXTAB = 20 )
4737C COMMON /HAXSEC/ XSECTA(4,-1:MAXPRO,4,MAXTAB),XSECT(6,-1:MAXPRO),
4738C & MXSECT(0:4,-1:MAXPRO,4),ECMSH(4,MAXTAB),ISTTAB
4739C CHARACTER*8 MDLNA
4740C COMMON /MODELS/ MDLNA(50),ISWMDL(50),PARMDL(200),IPAMDL(100)
4741C COMMON /PROCES/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15)
4742**PHOJET110
4743C global event kinematics and particle IDs
4744 INTEGER IFPAP,IFPAB
4745 DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
4746 COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
4747C hard cross sections and MC selection weights
4748 INTEGER Max_pro_2
4749 PARAMETER ( Max_pro_2 = 16 )
4750 INTEGER IHa_last,IHb_last,MH_pro_on,MH_tried,
4751 & MH_acc_1,MH_acc_2
4752 DOUBLE PRECISION Hfac,HWgx,HSig,Hdpt,HEcm_last,HQ2a_last,HQ2b_last
4753 COMMON /POHRCS/ Hfac(-1:Max_pro_2),HWgx(-1:Max_pro_2),
4754 & HSig(-1:Max_pro_2),Hdpt(-1:Max_pro_2),
4755 & HEcm_last,HQ2a_last,HQ2b_last,IHa_last,IHb_last,
4756 & MH_pro_on(-1:Max_pro_2,0:4),MH_tried(-1:Max_pro_2,0:4),
4757 & MH_acc_1(-1:Max_pro_2,0:4),MH_acc_2(-1:Max_pro_2,0:4)
4758C model switches and parameters
4759 CHARACTER*8 MDLNA
4760 INTEGER ISWMDL,IPAMDL
4761 DOUBLE PRECISION PARMDL
4762 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
4763C general process information
4764 INTEGER IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON
4765 COMMON /POPRCS/ IPROCE,IDNODF,IDIFR1,IDIFR2,IDDPOM,IPRON(15,4)
4766**
4767 DIMENSION PP(4),PT(4)
4768
4769 LOGICAL LSTART
4770 DATA LSTART /.TRUE./
4771
4772 IJP = IJPROJ
4773 IJT = IJTARG
4774 Q2 = VIRT
4775* lepton-projectiles: initialize real photon instead
4776 IF ((IJP.EQ.3).OR.(IJP.EQ.4).OR.(IJP.EQ.10).OR.(IJP.EQ.11)) THEN
4777 IJP = 7
4778 Q2 = ZERO
4779 ENDIF
4780 IF (LPHOIN) CALL PHO_INIT(-1,LOUT,IDUM)
4781* switch Reggeon off
4782C IPAMDL(3)= 0
4783 IF (IP.EQ.1) THEN
4784 IFPAP(1) = IDT_IPDGHA(IJP)
4785 IFPAB(1) = IJP
4786 ELSE
4787 IFPAP(1) = 2212
4788 IFPAB(1) = IDT_ICIHAD(IFPAP(1))
4789 ENDIF
4790 PMASS(1) = AAM(IFPAB(1))-SQRT(Q2)
4791 PVIRT(1) = PMASS(1)**2
4792 IF (IT.EQ.1) THEN
4793 IFPAP(2) = IDT_IPDGHA(IJT)
4794 IFPAB(2) = IJT
4795 ELSE
4796 IFPAP(2) = 2212
4797 IFPAB(2) = IDT_ICIHAD(IFPAP(2))
4798 ENDIF
4799 PMASS(2) = AAM(IFPAB(2))
4800 PVIRT(2) = ZERO
4801 DO 1 K=1,4
4802 PP(K) = ZERO
4803 PT(K) = ZERO
4804 1 CONTINUE
4805* get max. possible momenta of incoming particles to be used for PHOJET ini.
4806 PPF = ZERO
4807 PTF = ZERO
4808 SCPF= 1.5D0
4809 IF (UMO.GE.1.E5) THEN
4810 SCPF= 5.0D0
4811 ENDIF
4812 IF (NCOMPO.GT.0) THEN
4813 DO 2 I=1,NCOMPO
4814 IF (IT.GT.1) THEN
4815 CALL DT_NCLPOT(IEMUCH(I),IEMUMA(I),ITZ,IT,ZERO,ZERO,0)
4816 ELSE
4817 CALL DT_NCLPOT(IPZ,IP,IEMUCH(I),IEMUMA(I),ZERO,ZERO,0)
4818 ENDIF
4819 PPFTMP = MAX(PFERMP(1),PFERMN(1))
4820 PTFTMP = MAX(PFERMP(2),PFERMN(2))
4821 IF (PPFTMP.GT.PPF) PPF = PPFTMP
4822 IF (PTFTMP.GT.PTF) PTF = PTFTMP
4823 2 CONTINUE
4824 ELSE
4825 CALL DT_NCLPOT(IPZ,IP,ITZ,IT,ZERO,ZERO,0)
4826 PPF = MAX(PFERMP(1),PFERMN(1))
4827 PTF = MAX(PFERMP(2),PFERMN(2))
4828 ENDIF
4829 PTF = -PTF
4830 PPF = SCPF*PPF
4831 PTF = SCPF*PTF
4832 IF (IJP.EQ.7) THEN
4833 AMP2 = SIGN(PMASS(1)**2,PMASS(1))
4834 PP(3) = PPCM
4835 PP(4) = SQRT(AMP2+PP(3)**2)
4836 ELSE
4837 EPF = SQRT(PPF**2+PMASS(1)**2)
4838 CALL DT_LTNUC(PPF,EPF,PP(3),PP(4),2)
4839 ENDIF
4840 ETF = SQRT(PTF**2+PMASS(2)**2)
4841 CALL DT_LTNUC(PTF,ETF,PT(3),PT(4),3)
4842 ECMINI = SQRT((PP(4)+PT(4))**2-(PP(1)+PT(1))**2-
4843 & (PP(2)+PT(2))**2-(PP(3)+PT(3))**2)
4844 IF (LSTART) THEN
4845 WRITE(LOUT,1001) IP,IPZ,SCPF,PPF,PP
4846 1001 FORMAT(
4847 & ' DT_PHOINI: PHOJET initialized for projectile A,Z = ',
4848 & I3,',',I2,/,F4.1,'xp_F(max) = ',E10.3,' p(max) = ',4E10.3)
4849 IF (NCOMPO.GT.0) THEN
4850 WRITE(LOUT,1002) SCPF,PTF,PT
4851 ELSE
4852 WRITE(LOUT,1003) IT,ITZ,SCPF,PTF,PT
4853 ENDIF
4854 1002 FORMAT(
4855 & ' DT_PHOINI: PHOJET initialized for target emulsion ',
4856 & /,F4.1,'xp_F(max) = ',E10.3,' p(max) = ',4E10.3)
4857 1003 FORMAT(
4858 & ' DT_PHOINI: PHOJET initialized for target A,Z = ',
4859 & I3,',',I2,/,F4.1,'xp_F(max) = ',E10.3,' p(max) = ',4E10.3)
4860 WRITE(LOUT,1004) ECMINI
4861 1004 FORMAT(' E_cm = ',E10.3)
4862 IF (IJP.EQ.8) WRITE(LOUT,1005)
4863 1005 FORMAT(
4864 & ' DT_PHOINI: warning! proton parameters used for neutron',
4865 & ' projectile')
4866 LSTART = .FALSE.
4867 ENDIF
4868* switch off new diffractive cross sections at low energies for nuclei
4869* (temporary solution)
4870 IF ((ISWMDL(30).NE.0).AND.((IP.GT.1).OR.(IT.GT.1))) THEN
4871 WRITE(LOUT,'(1X,A)')
4872 & ' DT_PHOINI: model-switch 30 for nuclei re-set !'
4873 CALL PHO_SETMDL(30,0,1)
4874 ENDIF
4875*
4876C IF (IJP.EQ.7) THEN
4877C AMP2 = SIGN(PMASS(1)**2,PMASS(1))
4878C PP(3) = PPCM
4879C PP(4) = SQRT(AMP2+PP(3)**2)
4880C ELSE
4881C PFERMX = ZERO
4882C IF (IP.GT.1) PFERMX = 0.5D0
4883C EFERMX = SQRT(PFERMX**2+PMASS(1)**2)
4884C CALL DT_LTNUC(PFERMX,EFERMX,PP(3),PP(4),2)
4885C ENDIF
4886C PFERMX = ZERO
4887C IF ((IT.GT.1).OR.(NCOMPO.GT.0)) PFERMX = -0.5D0
4888C EFERMX = SQRT(PFERMX**2+PMASS(2)**2)
4889C CALL DT_LTNUC(PFERMX,EFERMX,PT(3),PT(4),3)
4890**sr 26.10.96
4891 ISAV = IPAMDL(13)
4892 IF ((ISHAD(2).EQ.1).AND.
4893 & ((IJPROJ.EQ. 7).OR.(IJPROJ.EQ.3).OR.(IJPROJ.EQ.4).OR.
4894 & (IJPROJ.EQ.10).OR.(IJPROJ.EQ.11))) IPAMDL(13) = 1
4895**
4896 CALL PHO_EVENT(-1,PP,PT,SIGMAX,IREJ1)
4897**sr 26.10.96
4898 IPAMDL(13) = ISAV
4899**
4900*
4901* patch for cascade calculations:
4902* define parton distribution functions for other hadrons, i.e. other
4903* then defined already in phojet
4904 IF (IOGLB.EQ.100) THEN
4905 WRITE(LOUT,1006)
4906 1006 FORMAT(/,1X,'PHOINI: additional parton distribution functions',
4907 & ' assiged (ID,IPAR,ISET)',/)
4908 NPDF = 0
4909 DO 3 I=1,30
4910 IF (IPARPD(I).NE.0) THEN
4911 NPDF = NPDF+1
4912 IF (NPDF.GT.MAXPDF) STOP ' PHOINI: npdf > maxpdf !'
4913 IF ((IPARPD(I).GT.0).AND.(ISETPD(I).GT.0)) THEN
4914 IDPDG = IDT_IPDGHA(I)
4915 IPAR = IPARPD(I)
4916 ISET = ISETPD(I)
4917 WRITE(LOUT,'(13X,A8,3I6)') ANAME(I),IDPDG,IPAR,ISET
4918 CALL PHO_SETPDF(IDPDG,IDUM,IPAR,ISET,0,0,-1)
4919 ENDIF
4920 ENDIF
4921 3 CONTINUE
4922 ENDIF
4923
4924C CALL PHO_PHIST(-1,SIGMAX)
4925 IF (IREJ1.NE.0) THEN
4926 WRITE(LOUT,1000)
4927 1000 FORMAT(1X,'PHOINI: PHOJET event-initialization failed!')
4928 STOP
4929 ENDIF
4930
4931 RETURN
4932 END
4933
4934*$ CREATE DT_EVENTD.FOR
4935*COPY DT_EVENTD
4936*
4937*===eventd=============================================================*
4938*
4939 SUBROUTINE DT_EVENTD(IREJ)
4940
4941************************************************************************
4942* Quasi-elastic neutrino nucleus scattering. *
4943* This version dated 29.04.00 is written by S. Roesler. *
4944************************************************************************
4945
4946 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4947 SAVE
4948 PARAMETER ( LINP = 10 ,
4949 & LOUT = 6 ,
4950 & LDAT = 9 )
4951 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY5=1.0D-5)
4952 PARAMETER (SQTINF=1.0D+15)
4953
4954 LOGICAL LFIRST
4955
4956* event history
4957 PARAMETER (NMXHKK=200000)
4958 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
4959 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
4960 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
4961* extended event history
4962 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
4963 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
4964 & IHIST(2,NMXHKK)
4965* flags for input different options
4966 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
4967 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
4968 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
4969 PARAMETER (MAXLND=4000)
4970 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
4971* properties of interacting particles
4972 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
4973* Lorentz-parameters of the current interaction
4974 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
4975 & UMO,PPCM,EPROJ,PPROJ
4976* nuclear potential
4977 LOGICAL LFERMI
4978 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
4979 & EBINDP(2),EBINDN(2),EPOT(2,210),
4980 & ETACOU(2),ICOUL,LFERMI
4981* steering flags for qel neutrino scattering modules
4982 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
4983 COMMON /QNPOL/ POLARX(4),PMODUL
4984 INTEGER PYK
4985
4986 DATA LFIRST /.TRUE./
4987
4988 IREJ = 0
4989
4990 IF (LFIRST) THEN
4991 LFIRST = .FALSE.
4992 CALL DT_MASS_INI
4993 ENDIF
4994
4995* JETSET parameter
4996 CALL DT_INITJS(0)
4997
4998* interacting target nucleon
4999 LTYP = NEUTYP
5000 IF (NEUDEC.LE.9) THEN
5001 IF ((LTYP.EQ.1).OR.(LTYP.EQ.3).OR.(LTYP.EQ.5)) THEN
5002 NUCTYP = 2112
5003 NUCTOP = 2
5004 ELSE
5005 NUCTYP = 2212
5006 NUCTOP = 1
5007 ENDIF
5008 ELSE
5009 RTYP = DT_RNDM(RTYP)
5010 ZFRAC = DBLE(ITZ)/DBLE(IT)
5011 IF (RTYP.LE.ZFRAC) THEN
5012 NUCTYP = 2212
5013 NUCTOP = 1
5014 ELSE
5015 NUCTYP = 2112
5016 NUCTOP = 2
5017 ENDIF
5018 ENDIF
5019
5020* select first nucleon in list with matching id and reset all other
5021* nucleons which have been marked as "wounded" by ININUC
5022 IFOUND = 0
5023 DO 1 I=1,NHKK
5024 IF ((IDHKK(I).EQ.NUCTYP).AND.(IFOUND.EQ.0)) THEN
5025 ISTHKK(I) = 12
5026 IFOUND = 1
5027 IDX = I
5028 ELSE
5029 IF (ISTHKK(I).EQ.12) ISTHKK(I) = 14
5030 ENDIF
5031 1 CONTINUE
5032 IF (IFOUND.EQ.0)
5033 & STOP ' EVENTD: interacting target nucleon not found! '
5034
5035* correct position of proj. lepton: assume position of target nucleon
5036 DO 3 I=1,4
5037 VHKK(I,1) = VHKK(I,IDX)
5038 WHKK(I,1) = WHKK(I,IDX)
5039 3 CONTINUE
5040
5041* load initial momenta for conservation check
5042 IF (LEMCCK) THEN
5043 CALL DT_EVTEMC(ZERO,ZERO,PPROJ,EPROJ,1,IDUM,IDUM)
5044 CALL DT_EVTEMC(PHKK(1,IDX),PHKK(2,IDX),PHKK(3,IDX),PHKK(4,IDX),
5045 & 2,IDUM,IDUM)
5046 ENDIF
5047
5048* quasi-elastic scattering
5049 IF (NEUDEC.LT.9) THEN
5050 CALL DT_QEL_POL(EPROJ,LTYP,PHKK(1,IDX),PHKK(2,IDX),PHKK(3,IDX),
5051 & PHKK(4,IDX),PHKK(5,IDX))
5052* CC event on p or n
5053 ELSEIF (NEUDEC.EQ.10) THEN
5054 CALL DT_GEN_DELTA(EPROJ,LTYP,NUCTOP,1,PHKK(1,IDX),PHKK(2,IDX),
5055 & PHKK(3,IDX),PHKK(4,IDX),PHKK(5,IDX))
5056* NC event on p or n
5057 ELSEIF (NEUDEC.EQ.11) THEN
5058 CALL DT_GEN_DELTA(EPROJ,LTYP,NUCTOP,2,PHKK(1,IDX),PHKK(2,IDX),
5059 & PHKK(3,IDX),PHKK(4,IDX),PHKK(5,IDX))
5060 ENDIF
5061
5062* get final state particles from Lund-common and write them into HKKEVT
5063 NPOINT(1) = NHKK+1
5064 NPOINT(4) = NHKK+1
5065 NLINES = PYK(0,1)
5066 NHKK0 = NHKK+1
5067 DO 4 I=4,NLINES
5068 IF (K(I,1).EQ.1) THEN
5069 ID = K(I,2)
5070 PX = P(I,1)
5071 PY = P(I,2)
5072 PZ = P(I,3)
5073 PE = P(I,4)
5074 CALL DT_EVTPUT(1,ID,1,IDX,PX,PY,PZ,PE,0,0,0)
5075 IDBJ = IDT_ICIHAD(ID)
5076 EKIN = PHKK(4,NHKK)-PHKK(5,NHKK)
5077 IF ((IDBJ.EQ.1).OR.(IDBJ.EQ.8)) THEN
5078 IF (EKIN.LE.EPOT(2,IDBJ)) ISTHKK(NHKK) = 16
5079 ENDIF
5080 VHKK(1,NHKK) = VHKK(1,IDX)
5081 VHKK(2,NHKK) = VHKK(2,IDX)
5082 VHKK(3,NHKK) = VHKK(3,IDX)
5083 VHKK(4,NHKK) = VHKK(4,IDX)
5084C IF (I.EQ.4) THEN
5085C WHKK(1,NHKK) = POLARX(1)
5086C WHKK(2,NHKK) = POLARX(2)
5087C WHKK(3,NHKK) = POLARX(3)
5088C WHKK(4,NHKK) = POLARX(4)
5089C ELSE
5090 WHKK(1,NHKK) = WHKK(1,IDX)
5091 WHKK(2,NHKK) = WHKK(2,IDX)
5092 WHKK(3,NHKK) = WHKK(3,IDX)
5093 WHKK(4,NHKK) = WHKK(4,IDX)
5094C ENDIF
5095 IF (LEMCCK) CALL DT_EVTEMC(-PX,-PY,-PZ,-PE,2,IDUM,IDUM)
5096 ENDIF
5097 4 CONTINUE
5098
5099 IF (LEMCCK) THEN
5100 CHKLEV = TINY5
5101 CALL DT_EVTEMC(DUM,DUM,DUM,CHKLEV,-1,778,IREJ1)
5102 IF (IREJ1.NE.0) CALL DT_EVTOUT(4)
5103 ENDIF
5104
5105* transform momenta into cms (as required for inc etc.)
5106 DO 5 I=NHKK0,NHKK
5107 IF (ISTHKK(I).EQ.1) THEN
5108 CALL DT_LTNUC(PHKK(3,I),PHKK(4,I),PZ,PE,3)
5109 PHKK(3,I) = PZ
5110 PHKK(4,I) = PE
5111 ENDIF
5112 5 CONTINUE
5113
5114 RETURN
5115 END
5116
5117*$ CREATE DT_KKEVNT.FOR
5118*COPY DT_KKEVNT
5119*
5120*===kkevnt=============================================================*
5121*
5122 SUBROUTINE DT_KKEVNT(KKMAT,IREJ)
5123
5124************************************************************************
5125* Treatment of complete nucleus-nucleus or hadron-nucleus scattering *
5126* without nuclear effects (one event). *
5127* This subroutine is an update of the previous version (KKEVT) written *
5128* by J. Ranft/ H.-J. Moehring. *
5129* This version dated 20.04.95 is written by S. Roesler *
5130************************************************************************
5131
5132 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5133 SAVE
5134 PARAMETER ( LINP = 10 ,
5135 & LOUT = 6 ,
5136 & LDAT = 9 )
5137 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10)
5138
5139 PARAMETER ( MAXNCL = 260,
5140 & MAXVQU = MAXNCL,
5141 & MAXSQU = 20*MAXVQU,
5142 & MAXINT = MAXVQU+MAXSQU)
5143* event history
5144 PARAMETER (NMXHKK=200000)
5145 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5146 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5147 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5148* extended event history
5149 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5150 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5151 & IHIST(2,NMXHKK)
5152* flags for input different options
5153 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
5154 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
5155 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
5156* rejection counter
5157 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
5158 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
5159 & IREXCI(3),IRDIFF(2),IRINC
5160* statistics
5161 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5162 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5163 & ICEVTG(8,0:30)
5164* properties of interacting particles
5165 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
5166* Lorentz-parameters of the current interaction
5167 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
5168 & UMO,PPCM,EPROJ,PPROJ
5169* flags for diffractive interactions (DTUNUC 1.x)
5170 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
5171* interface HADRIN-DPM
5172 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
5173* nucleon-nucleon event-generator
5174 CHARACTER*8 CMODEL
5175 LOGICAL LPHOIN
5176 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
5177* coordinates of nucleons
5178 COMMON /DTNUCO/ PKOO(3,MAXNCL),TKOO(3,MAXNCL)
5179* interface between Glauber formalism and DPM
5180 COMMON /DTGLIF/ JSSH(MAXNCL),JTSH(MAXNCL),
5181 & INTER1(MAXINT),INTER2(MAXINT)
5182* Glauber formalism: collision properties
5183 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
7cbda79e 5184 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC,
5185 & NCP,NCT
9aaba0d6 5186* central particle production, impact parameter biasing
5187 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
5188**temporary
5189* statistics: Glauber-formalism
5190 COMMON /DTSTA3/ ICWP,ICWT,NCSY,ICWPG,ICWTG,ICIG,IPGLB,ITGLB,NGLB
5191**
5192
5193 DATA NEVOLD,IPOLD,ITOLD,JJPOLD,EPROLD /4*0,0.0D0/
5194
5195 IREJ = 0
5196 ICREQU = ICREQU+1
5197 NC = 0
7cbda79e 5198 NCP = 0
5199 NCT = 0
9aaba0d6 5200
5201 1 CONTINUE
5202 ICSAMP = ICSAMP+1
5203 NC = NC+1
5204 IF (MOD(NC,10).EQ.0) THEN
5205 WRITE(LOUT,1000) NEVHKK
5206 1000 FORMAT(1X,'KKEVNT: event ',I8,' rejected!')
5207 GOTO 9999
5208 ENDIF
5209
5210* initialize DTEVT1/DTEVT2
5211 CALL DT_EVTINI
5212
5213* We need the following only in order to sample nucleon coordinates.
5214* However we don't have parameters (cross sections, slope etc.)
5215* for neutrinos available. Therefore switch projectile to proton
5216* in this case.
5217 IF (MCGENE.EQ.4) THEN
5218 JJPROJ = 1
5219 ELSE
5220 JJPROJ = IJPROJ
5221 ENDIF
5222
5223 10 CONTINUE
5224 IF ( (NEVHKK.NE.NEVOLD).OR.(ICENTR.GT.0).OR.
5225* make sure that Glauber-formalism is called each time the interaction
5226* configuration changed
5227 & (IP.NE.IPOLD).OR.(IT.NE.ITOLD).OR.(JJPROJ.NE.JJPOLD).OR.
5228 & (ABS(EPROJ-EPROLD).GT.TINY10) ) THEN
5229* sample number of nucleon-nucleon coll. according to Glauber-form.
5230 CALL DT_GLAUBE(IP,IT,JJPROJ,BIMPAC,NN,NP,NT,JSSH,JTSH,KKMAT)
5231 NWTSAM = NN
5232 NWASAM = NP
5233 NWBSAM = NT
5234 NEVOLD = NEVHKK
5235 IPOLD = IP
5236 ITOLD = IT
5237 JJPOLD = JJPROJ
5238 EPROLD = EPROJ
7cbda79e 5239 DO 8 I=1, IP
5240 NCP = NCP+JSSH(I)
5241* WRITE(6,*)' PROJ.NUCL. ',I,' NCOLL = ',NCP
5242 8 CONTINUE
5243 DO 9 I=1, IT
5244 NCT = NCT+JTSH(I)
5245* WRITE(6,*)' TAR.NUCL. ',I,' NCOLL = ',NCT
5246 9 CONTINUE
9aaba0d6 5247 ENDIF
5248
5249* force diffractive particle production in h-K interactions
5250 IF (((ABS(ISINGD).GT.1).OR.(ABS(IDOUBD).GT.1)).AND.
5251 & (IP.EQ.1).AND.(NN.NE.1)) THEN
5252 NEVOLD = 0
5253 GOTO 10
5254 ENDIF
5255
5256* check number of involved proj. nucl. (NP) if central prod.is requested
5257 IF (ICENTR.GT.0) THEN
5258 CALL DT_CHKCEN(IP,IT,NP,NT,IBACK)
5259 IF (IBACK.GT.0) GOTO 10
5260 ENDIF
5261
5262* get initial nucleon-configuration in projectile and target
5263* rest-system (including Fermi-momenta if requested)
5264 CALL DT_ININUC(IJPROJ,IP,IPZ,PKOO,JSSH,1)
5265 MODE = 2
5266 IF (EPROJ.LE.EHADTH) MODE = 3
5267 CALL DT_ININUC(IJTARG,IT,ITZ,TKOO,JTSH,MODE)
5268
5269 IF ((MCGENE.NE.3).AND.(MCGENE.NE.4)) THEN
5270
5271* activate HADRIN at low energies (implemented for h-N scattering only)
5272 IF (EPROJ.LE.EHADHI) THEN
5273 IF (EHADTH.LT.ZERO) THEN
5274* smooth transition btwn. DPM and HADRIN
5275 FRAC = (EPROJ-EHADLO)/(EHADHI-EHADLO)
5276 RR = DT_RNDM(FRAC)
5277 IF (RR.GT.FRAC) THEN
5278 IF (IP.EQ.1) THEN
5279 CALL DT_HADCOL(IJPROJ,PPROJ,IDXTA,IREJ1)
5280 IF (IREJ1.GT.0) GOTO 1
5281 RETURN
5282 ELSE
5283 WRITE(LOUT,1001) IP,IT,EPROJ,EHADTH
5284 ENDIF
5285 ENDIF
5286 ELSE
5287* fixed threshold for onset of production via HADRIN
5288 IF (EPROJ.LE.EHADTH) THEN
5289 IF (IP.EQ.1) THEN
5290 CALL DT_HADCOL(IJPROJ,PPROJ,IDXTA,IREJ1)
5291 IF (IREJ1.GT.0) GOTO 1
5292 RETURN
5293 ELSE
5294 WRITE(LOUT,1001) IP,IT,EPROJ,EHADTH
5295 ENDIF
5296 ENDIF
5297 ENDIF
5298 ENDIF
5299 1001 FORMAT(1X,'KKEVNT: warning! interaction of proj. (m=',
5300 & I3,') with target (m=',I3,')',/,11X,
5301 & 'at E_lab=',F5.1,'GeV (threshold-energy: ',F3.1,
5302 & 'GeV) cannot be handled')
5303
5304* sampling of momentum-x fractions & flavors of chain ends
5305 CALL DT_SPLPTN(NN)
5306
5307* Lorentz-transformation of wounded nucleons into nucl.-nucl. cms
5308 CALL DT_NUC2CM
5309
5310* collect momenta of chain ends and put them into DTEVT1
5311 CALL DT_GETPTN(IP,NN,NCSY,IREJ1)
5312 IF (IREJ1.NE.0) GOTO 1
5313
5314 ENDIF
5315
5316* handle chains including fragmentation (two-chain approximation)
5317 IF (MCGENE.EQ.1) THEN
5318* two-chain approximation
5319 CALL DT_EVENTA(IJPROJ,IP,IT,NCSY,IREJ1)
5320 IF (IREJ1.NE.0) THEN
5321 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in KKEVNT'
5322 GOTO 1
5323 ENDIF
5324 ELSEIF (MCGENE.EQ.2) THEN
5325* multiple-Po exchange including minijets
5326 CALL DT_EVENTB(NCSY,IREJ1)
5327 IF (IREJ1.NE.0) THEN
5328 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2 in KKEVNT'
5329 GOTO 1
5330 ENDIF
5331 ELSEIF (MCGENE.EQ.3) THEN
5332 STOP ' This version does not contain LEPTO !'
5333 ELSEIF (MCGENE.EQ.4) THEN
5334* quasi-elastic neutrino scattering
5335 CALL DT_EVENTD(IREJ1)
5336 IF (IREJ1.NE.0) THEN
5337 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 4 in KKEVNT'
5338 GOTO 1
5339 ENDIF
5340 ELSE
5341 WRITE(LOUT,1002) MCGENE
5342 1002 FORMAT(1X,'KKEVNT: warning! event-generator',I4,
5343 & ' not available - program stopped')
5344 STOP
5345 ENDIF
5346
5347 RETURN
5348
5349 9999 CONTINUE
5350 IREJ = 1
5351 RETURN
5352 END
5353
5354*$ CREATE DT_CHKCEN.FOR
5355*COPY DT_CHKCEN
5356*
5357*===chkcen=============================================================*
5358*
5359 SUBROUTINE DT_CHKCEN(IP,IT,NP,NT,IBACK)
5360
5361************************************************************************
5362* Check of number of involved projectile nucleons if central production*
5363* is requested. *
5364* Adopted from a part of the old KKEVT routine which was written by *
5365* J. Ranft/H.-J.Moehring. *
5366* This version dated 13.01.95 is written by S. Roesler *
5367************************************************************************
5368
5369 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5370 SAVE
5371 PARAMETER ( LINP = 10 ,
5372 & LOUT = 6 ,
5373 & LDAT = 9 )
5374
5375* statistics
5376 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5377 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5378 & ICEVTG(8,0:30)
5379* central particle production, impact parameter biasing
5380 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
5381
5382 IBACK = 0
5383
5384* old version
5385 IF (ICENTR.EQ.2) THEN
5386 IF (IP.LT.IT) THEN
5387 IF (IP.LE.8) THEN
5388 IF (NP.LT.IP-1) IBACK = 1
5389 ELSEIF (IP.LE.16) THEN
5390 IF (NP.LT.IP-2) IBACK = 1
5391 ELSEIF (IP.LE.32) THEN
5392 IF (NP.LT.IP-3) IBACK = 1
5393 ELSEIF (IP.GE.33) THEN
5394 IF (NP.LT.IP-5) IBACK = 1
5395 ENDIF
5396 ELSEIF (IP.EQ.IT) THEN
5397 IF (IP.EQ.32) THEN
5398 IF ((NP.LT.22).OR.(NT.LT.22)) IBACK = 1
5399 ELSE
5400 IF (NP.LT.IP-IP/8) IBACK = 1
5401 ENDIF
5402 ELSEIF (ABS(IP-IT).LT.3) THEN
5403 IF (NP.LT.IP-IP/8) IBACK = 1
5404 ENDIF
5405 ELSE
5406* new version (DPMJET, 5.6.99)
5407 IF (IP.LT.IT) THEN
5408 IF (IP.LE.8) THEN
5409 IF (NP.LT.IP-1) IBACK = 1
5410 ELSEIF (IP.LE.16) THEN
5411 IF (NP.LT.IP-2) IBACK = 1
5412 ELSEIF (IP.LT.32) THEN
5413 IF (NP.LT.IP-3) IBACK = 1
5414 ELSEIF (IP.GE.32) THEN
5415 IF (IT.LE.150) THEN
5416* Example: S-Ag
5417 IF (NP.LT.IP-1) IBACK = 1
5418 ELSE
5419* Example: S-Au
5420 IF (NP.LT.IP) IBACK = 1
5421 ENDIF
5422 ENDIF
5423 ELSEIF (IP.EQ.IT) THEN
5424* Example: S-S
5425 IF (IP.EQ.32) THEN
5426 IF ((NP.LT.22).OR.(NT.LT.22)) IBACK = 1
5427* Example: Pb-Pb
5428 ELSE
5429 IF (NP.LT.IP-IP/4) IBACK = 1
5430 ENDIF
5431 ELSEIF (ABS(IP-IT).LT.3) THEN
5432 IF (NP.LT.IP-IP/8) IBACK = 1
5433 ENDIF
5434 ENDIF
5435
5436 ICCPRO = ICCPRO+1
5437
5438 RETURN
5439 END
5440
5441*$ CREATE DT_ININUC.FOR
5442*COPY DT_ININUC
5443*
5444*===ininuc=============================================================*
5445*
5446 SUBROUTINE DT_ININUC(ID,NMASS,NCH,COORD,JS,IMODE)
5447
5448************************************************************************
5449* Samples initial configuration of nucleons in nucleus with mass NMASS *
5450* including Fermi-momenta (if reqested). *
5451* ID BAMJET-code for hadrons (instead of nuclei) *
5452* NMASS mass number of nucleus (number of nucleons) *
5453* NCH charge of nucleus *
5454* COORD(3,NMASS) coordinates of nucleons inside nucleus in fm *
5455* JS(NMASS) > 0 nucleon undergoes nucleon-nucleon interact. *
5456* IMODE = 1 projectile nucleus *
5457* = 2 target nucleus *
5458* = 3 target nucleus (E_lab<E_thr for HADRIN) *
5459* Adopted from a part of the old KKEVT routine which was written by *
5460* J. Ranft/H.-J.Moehring. *
5461* This version dated 13.01.95 is written by S. Roesler *
5462************************************************************************
5463
5464 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5465 SAVE
5466 PARAMETER ( LINP = 10 ,
5467 & LOUT = 6 ,
5468 & LDAT = 9 )
5469 PARAMETER (FM2MM=1.0D-12)
5470
5471 PARAMETER ( MAXNCL = 260,
5472 & MAXVQU = MAXNCL,
5473 & MAXSQU = 20*MAXVQU,
5474 & MAXINT = MAXVQU+MAXSQU)
5475* event history
5476 PARAMETER (NMXHKK=200000)
5477 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5478 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5479 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5480* extended event history
5481 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5482 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5483 & IHIST(2,NMXHKK)
5484* flags for input different options
5485 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
5486 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
5487 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
5488* auxiliary common for chain system storage (DTUNUC 1.x)
5489 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
5490* nuclear potential
5491 LOGICAL LFERMI
5492 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
5493 & EBINDP(2),EBINDN(2),EPOT(2,210),
5494 & ETACOU(2),ICOUL,LFERMI
5495* properties of photon/lepton projectiles
5496 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
5497* particle properties (BAMJET index convention)
5498 CHARACTER*8 ANAME
5499 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5500 & IICH(210),IIBAR(210),K1(210),K2(210)
5501* Glauber formalism: collision properties
5502 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
5503 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
5504* flavors of partons (DTUNUC 1.x)
5505 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
5506 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
5507 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
5508 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
5509 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
5510 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
5511 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
5512* interface HADRIN-DPM
5513 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
5514
5515 DIMENSION PF(4),PFTOT(4),COORD(3,MAXNCL),JS(MAXNCL)
5516
5517* number of neutrons
5518 NNEU = NMASS-NCH
5519* initializations
5520 NP = 0
5521 NN = 0
5522 DO 1 K=1,4
5523 PFTOT(K) = 0.0D0
5524 1 CONTINUE
5525 MODE = IMODE
5526 IF (IMODE.GT.2) MODE = 2
5527**sr 29.5. new NPOINT(1)-definition
5528C IF (IMODE.GE.2) NPOINT(1) = NHKK+1
5529**
5530 NHADRI = 0
5531 NC = NHKK
5532
5533* get initial configuration
5534 DO 2 I=1,NMASS
5535 NHKK = NHKK+1
5536 IF (JS(I).GT.0) THEN
5537 ISTHKK(NHKK) = 10+MODE
5538 IF (IMODE.EQ.3) THEN
5539* additional treatment if HADRIN-generator is requested
5540 NHADRI = NHADRI+1
5541 IF (NHADRI.EQ.1) IDXTA = NHKK
5542 IF (NHADRI.GT.1) ISTHKK(NHKK) = 14
5543 ENDIF
5544 ELSE
5545 ISTHKK(NHKK) = 12+MODE
5546 ENDIF
5547 IF (NMASS.GE.2) THEN
5548* treatment for nuclei
5549 FRAC = 1.0D0-DBLE(NCH)/DBLE(NMASS)
5550 RR = DT_RNDM(FRAC)
5551 IF ((RR.LT.FRAC).AND.(NN.LT.NNEU)) THEN
5552 IDX = 8
5553 NN = NN+1
5554 ELSEIF ((RR.GE.FRAC).AND.(NP.LT.NCH)) THEN
5555 IDX = 1
5556 NP = NP+1
5557 ELSEIF (NN.LT.NNEU) THEN
5558 IDX = 8
5559 NN = NN+1
5560 ELSEIF (NP.LT.NCH) THEN
5561 IDX = 1
5562 NP = NP+1
5563 ENDIF
5564 IDHKK(NHKK) = IDT_IPDGHA(IDX)
5565 IDBAM(NHKK) = IDX
5566 IF (MODE.EQ.1) THEN
5567 IPOSP(I) = NHKK
5568 KKPROJ(I) = IDX
5569 ELSE
5570 IPOST(I) = NHKK
5571 KKTARG(I) = IDX
5572 ENDIF
5573 IF (IDX.EQ.1) THEN
5574 PFER = PFERMP(MODE)
5575 PBIN = SQRT(2.0D0*EBINDP(MODE)*AAM(1))
5576 ELSE
5577 PFER = PFERMN(MODE)
5578 PBIN = SQRT(2.0D0*EBINDN(MODE)*AAM(8))
5579 ENDIF
5580 CALL DT_FER4M(PFER,PBIN,PF(1),PF(2),PF(3),PF(4),IDX)
5581 DO 3 K=1,4
5582 PFTOT(K) = PFTOT(K)+PF(K)
5583 PHKK(K,NHKK) = PF(K)
5584 3 CONTINUE
5585 PHKK(5,NHKK) = AAM(IDX)
5586 ELSE
5587* treatment for hadrons
5588 IDHKK(NHKK) = IDT_IPDGHA(ID)
5589 IDBAM(NHKK) = ID
5590 PHKK(4,NHKK) = AAM(ID)
5591 PHKK(5,NHKK) = AAM(ID)
5592C* VDM assumption
5593C IF (IDHKK(NHKK).EQ.22) THEN
5594C PHKK(4,NHKK) = AAM(33)
5595C PHKK(5,NHKK) = AAM(33)
5596C ENDIF
5597 IF (MODE.EQ.1) THEN
5598 IPOSP(I) = NHKK
5599 KKPROJ(I) = ID
5600 PHKK(5,NHKK) = PHKK(5,NHKK)-SQRT(VIRT)
5601 ELSE
5602 IPOST(I) = NHKK
5603 KKTARG(I) = ID
5604 ENDIF
5605 ENDIF
5606 DO 4 K=1,3
5607 VHKK(K,NHKK) = COORD(K,I)*FM2MM
5608 WHKK(K,NHKK) = COORD(K,I)*FM2MM
5609 4 CONTINUE
5610 IF (MODE.EQ.2) VHKK(1,NHKK) = VHKK(1,NHKK)+BIMPAC*FM2MM
5611 IF (MODE.EQ.2) WHKK(1,NHKK) = WHKK(1,NHKK)+BIMPAC*FM2MM
5612 VHKK(4,NHKK) = 0.0D0
5613 WHKK(4,NHKK) = 0.0D0
5614 2 CONTINUE
5615
5616* balance Fermi-momenta
5617 IF (NMASS.GE.2) THEN
5618 DO 5 I=1,NMASS
5619 NC = NC+1
5620 DO 6 K=1,3
5621 PHKK(K,NC) = PHKK(K,NC)-PFTOT(K)/DBLE(NMASS)
5622 6 CONTINUE
5623 PHKK(4,NC) = SQRT(PHKK(5,NC)**2+PHKK(1,NC)**2+
5624 & PHKK(2,NC)**2+PHKK(3,NC)**2)
5625 5 CONTINUE
5626 ENDIF
5627
5628 RETURN
5629 END
5630
5631*$ CREATE DT_FER4M.FOR
5632*COPY DT_FER4M
5633*
5634*===fer4m==============================================================*
5635*
5636 SUBROUTINE DT_FER4M(PFERM,PBIND,PXT,PYT,PZT,ET,KT)
5637
5638************************************************************************
5639* Sampling of nucleon Fermi-momenta from distributions at T=0. *
5640* processed by S. Roesler, 17.10.95 *
5641************************************************************************
5642
5643 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5644 SAVE
5645 PARAMETER ( LINP = 10 ,
5646 & LOUT = 6 ,
5647 & LDAT = 9 )
5648
5649 LOGICAL LSTART
5650
5651* particle properties (BAMJET index convention)
5652 CHARACTER*8 ANAME
5653 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5654 & IICH(210),IIBAR(210),K1(210),K2(210)
5655* nuclear potential
5656 LOGICAL LFERMI
5657 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
5658 & EBINDP(2),EBINDN(2),EPOT(2,210),
5659 & ETACOU(2),ICOUL,LFERMI
5660
5661 DATA LSTART /.TRUE./
5662
5663 ILOOP = 0
5664 IF (LFERMI) THEN
5665 IF (LSTART) THEN
5666 WRITE(LOUT,1000)
5667 1000 FORMAT(/,1X,'FER4M: sampling of Fermi-momenta activated')
5668 LSTART = .FALSE.
5669 ENDIF
5670 1 CONTINUE
5671 CALL DT_DFERMI(PABS)
5672 PABS = PFERM*PABS
5673C IF (PABS.GE.PBIND) THEN
5674C ILOOP = ILOOP+1
5675C IF (MOD(ILOOP,500).EQ.0) THEN
5676C WRITE(LOUT,1001) PABS,PBIND,ILOOP
5677C1001 FORMAT(1X,'FER4M: Fermi-mom. corr. for binding',
5678C & ' energy ',2E12.3,I6)
5679C ENDIF
5680C GOTO 1
5681C ENDIF
5682 CALL DT_DPOLI(POLC,POLS)
5683 CALL DT_DSFECF(SFE,CFE)
5684 CXTA = POLS*CFE
5685 CYTA = POLS*SFE
5686 CZTA = POLC
5687 ET = SQRT(PABS*PABS+AAM(KT)**2)
5688 PXT = CXTA*PABS
5689 PYT = CYTA*PABS
5690 PZT = CZTA*PABS
5691 ELSE
5692 ET = AAM(KT)
5693 PXT = 0.0D0
5694 PYT = 0.0D0
5695 PZT = 0.0D0
5696 ENDIF
5697
5698 RETURN
5699 END
5700
5701*$ CREATE DT_NUC2CM.FOR
5702*COPY DT_NUC2CM
5703*
5704*===nuc2cm=============================================================*
5705*
5706 SUBROUTINE DT_NUC2CM
5707
5708************************************************************************
5709* Lorentz-transformation of all wounded nucleons from Lab. to nucl.- *
5710* nucl. cms. (This subroutine replaces NUCMOM.) *
5711* This version dated 15.01.95 is written by S. Roesler *
5712************************************************************************
5713
5714 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5715 SAVE
5716 PARAMETER ( LINP = 10 ,
5717 & LOUT = 6 ,
5718 & LDAT = 9 )
5719 PARAMETER (ZERO=0.0D0,TINY3=1.0D-3)
5720
5721* event history
5722 PARAMETER (NMXHKK=200000)
5723 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5724 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5725 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5726* extended event history
5727 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5728 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5729 & IHIST(2,NMXHKK)
5730* statistics
5731 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5732 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5733 & ICEVTG(8,0:30)
5734* properties of photon/lepton projectiles
5735 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
5736* particle properties (BAMJET index convention)
5737 CHARACTER*8 ANAME
5738 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5739 & IICH(210),IIBAR(210),K1(210),K2(210)
5740* Glauber formalism: collision properties
5741 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
5742 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
5743**temporary
5744* statistics: Glauber-formalism
5745 COMMON /DTSTA3/ ICWP,ICWT,NCSY,ICWPG,ICWTG,ICIG,IPGLB,ITGLB,NGLB
5746**
5747
5748 ICWP = 0
5749 ICWT = 0
5750 NWTACC = 0
5751 NWAACC = 0
5752 NWBACC = 0
5753
5754 NPOINT(1) = NHKK+1
5755 NEND = NHKK
5756 DO 1 I=1,NEND
5757 IF ((ISTHKK(I).EQ.11).OR.(ISTHKK(I).EQ.12)) THEN
5758 IF (ISTHKK(I).EQ.11) NWAACC = NWAACC+1
5759 IF (ISTHKK(I).EQ.12) NWBACC = NWBACC+1
5760 MODE = ISTHKK(I)-9
5761C IF (IDHKK(I).EQ.22) THEN
5762C* VDM assumption
5763C PEIN = AAM(33)
5764C IDB = 33
5765C ELSE
5766C PEIN = PHKK(4,I)
5767C IDB = IDBAM(I)
5768C ENDIF
5769C CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),PEIN,
5770C & PX,PY,PZ,PE,IDB,MODE)
5771 IF (PHKK(5,I).GT.ZERO) THEN
5772 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
5773 & PX,PY,PZ,PE,IDBAM(I),MODE)
5774 ELSE
5775 PX = PGAMM(1)
5776 PY = PGAMM(2)
5777 PZ = PGAMM(3)
5778 PE = PGAMM(4)
5779 ENDIF
5780 IST = ISTHKK(I)-2
5781 ID = IDHKK(I)
5782C* VDM assumption
5783C IF (ID.EQ.22) ID = 113
5784 CALL DT_EVTPUT(IST,ID,I,0,PX,PY,PZ,PE,0,0,0)
5785 IF (ISTHKK(I).EQ.11) ICWP = ICWP+1
5786 IF (ISTHKK(I).EQ.12) ICWT = ICWT+1
5787 ENDIF
5788 1 CONTINUE
5789
5790 NWTACC = MAX(NWAACC,NWBACC)
5791 ICDPR = ICDPR+ICWP
5792 ICDTA = ICDTA+ICWT
5793**temporary
5794 IF ((ICWP.EQ.0).OR.(ICWT.EQ.0)) THEN
5795 CALL DT_EVTOUT(4)
5796 STOP
5797 ENDIF
5798
5799 RETURN
5800 END
5801
5802*$ CREATE DT_SPLPTN.FOR
5803*COPY DT_SPLPTN
5804*
5805*===splptn=============================================================*
5806*
5807 SUBROUTINE DT_SPLPTN(NN)
5808
5809************************************************************************
5810* SamPLing of ParToN momenta and flavors. *
5811* This version dated 15.01.95 is written by S. Roesler *
5812************************************************************************
5813
5814 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5815 SAVE
5816 PARAMETER ( LINP = 10 ,
5817 & LOUT = 6 ,
5818 & LDAT = 9 )
5819
5820* Lorentz-parameters of the current interaction
5821 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
5822 & UMO,PPCM,EPROJ,PPROJ
5823
5824* sample flavors of sea-quarks
5825 CALL DT_SPLFLA(NN,1)
5826
5827* sample x-values of partons at chain ends
5828 ECM = UMO
5829 CALL DT_XKSAMP(NN,ECM)
5830
5831* samle flavors
5832 CALL DT_SPLFLA(NN,2)
5833
5834 RETURN
5835 END
5836
5837*$ CREATE DT_SPLFLA.FOR
5838*COPY DT_SPLFLA
5839*
5840*===splfla=============================================================*
5841*
5842 SUBROUTINE DT_SPLFLA(NN,MODE)
5843
5844************************************************************************
5845* SamPLing of FLAvors of partons at chain ends. *
5846* This subroutine replaces FLKSAA/FLKSAM. *
5847* NN number of nucleon-nucleon interactions *
5848* MODE = 1 sea-flavors *
5849* = 2 valence-flavors *
5850* Based on the original version written by J. Ranft/H.-J. Moehring. *
5851* This version dated 16.01.95 is written by S. Roesler *
5852************************************************************************
5853
5854 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5855 SAVE
5856 PARAMETER ( LINP = 10 ,
5857 & LOUT = 6 ,
5858 & LDAT = 9 )
5859
5860 PARAMETER ( MAXNCL = 260,
5861 & MAXVQU = MAXNCL,
5862 & MAXSQU = 20*MAXVQU,
5863 & MAXINT = MAXVQU+MAXSQU)
5864* flavors of partons (DTUNUC 1.x)
5865 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
5866 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
5867 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
5868 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
5869 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
5870 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
5871 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
5872* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5873 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
5874 & IXPV,IXPS,IXTV,IXTS,
5875 & INTVV1(MAXVQU),INTVV2(MAXVQU),
5876 & INTSV1(MAXVQU),INTSV2(MAXVQU),
5877 & INTVS1(MAXVQU),INTVS2(MAXVQU),
5878 & INTSS1(MAXSQU),INTSS2(MAXSQU),
5879 & INTDV1(MAXVQU),INTDV2(MAXVQU),
5880 & INTVD1(MAXVQU),INTVD2(MAXVQU),
5881 & INTDS1(MAXSQU),INTDS2(MAXSQU),
5882 & INTSD1(MAXSQU),INTSD2(MAXSQU)
5883* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5884 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
5885 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
5886* particle properties (BAMJET index convention)
5887 CHARACTER*8 ANAME
5888 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
5889 & IICH(210),IIBAR(210),K1(210),K2(210)
5890* various options for treatment of partons (DTUNUC 1.x)
5891* (chain recombination, Cronin,..)
5892 LOGICAL LCO2CR,LINTPT
5893 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
5894 & LCO2CR,LINTPT
5895
5896 IF (MODE.EQ.1) THEN
5897* sea-flavors
5898 DO 1 I=1,NN
5899 IPSQ(I) = INT(1.0D0+DT_RNDM(CRONCO)*(2.0D0+SEASQ))
5900 IPSAQ(I) = -IPSQ(I)
5901 1 CONTINUE
5902 DO 2 I=1,NN
5903 ITSQ(I) = INT(1.0D0+DT_RNDM(CRONCO)*(2.0D0+SEASQ))
5904 ITSAQ(I)= -ITSQ(I)
5905 2 CONTINUE
5906 ELSEIF (MODE.EQ.2) THEN
5907* valence flavors
5908 DO 3 I=1,IXPV
5909 CALL DT_FLAHAD(KKPROJ(IFROVP(I)),IPVQ(I),IPPV1(I),IPPV2(I))
5910 3 CONTINUE
5911 DO 4 I=1,IXTV
5912 CALL DT_FLAHAD(KKTARG(IFROVT(I)),ITVQ(I),ITTV1(I),ITTV2(I))
5913 4 CONTINUE
5914 ENDIF
5915
5916 RETURN
5917 END
5918
5919*$ CREATE DT_GETPTN.FOR
5920*COPY DT_GETPTN
5921*
5922*===getptn=============================================================*
5923*
5924 SUBROUTINE DT_GETPTN(IP,NN,NCSY,IREJ)
5925
5926************************************************************************
5927* This subroutine collects partons at chain ends from temporary *
5928* commons and puts them into DTEVT1. *
5929* This version dated 15.01.95 is written by S. Roesler *
5930************************************************************************
5931
5932 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
5933 SAVE
5934 PARAMETER ( LINP = 10 ,
5935 & LOUT = 6 ,
5936 & LDAT = 9 )
5937 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,OHALF=0.5D0)
5938
5939 LOGICAL LCHK
5940
5941 PARAMETER ( MAXNCL = 260,
5942 & MAXVQU = MAXNCL,
5943 & MAXSQU = 20*MAXVQU,
5944 & MAXINT = MAXVQU+MAXSQU)
5945* event history
5946 PARAMETER (NMXHKK=200000)
5947 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
5948 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
5949 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
5950* extended event history
5951 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
5952 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
5953 & IHIST(2,NMXHKK)
5954* flags for input different options
5955 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
5956 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
5957 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
5958* auxiliary common for chain system storage (DTUNUC 1.x)
5959 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
5960* statistics
5961 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
5962 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
5963 & ICEVTG(8,0:30)
5964* flags for diffractive interactions (DTUNUC 1.x)
5965 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
5966* x-values of partons (DTUNUC 1.x)
5967 COMMON /DTDPMX/ XPVQ(MAXVQU),XPVD(MAXVQU),
5968 & XTVQ(MAXVQU),XTVD(MAXVQU),
5969 & XPSQ(MAXSQU),XPSAQ(MAXSQU),
5970 & XTSQ(MAXSQU),XTSAQ(MAXSQU)
5971* flavors of partons (DTUNUC 1.x)
5972 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
5973 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
5974 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
5975 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
5976 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
5977 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
5978 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
5979* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5980 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
5981 & IXPV,IXPS,IXTV,IXTS,
5982 & INTVV1(MAXVQU),INTVV2(MAXVQU),
5983 & INTSV1(MAXVQU),INTSV2(MAXVQU),
5984 & INTVS1(MAXVQU),INTVS2(MAXVQU),
5985 & INTSS1(MAXSQU),INTSS2(MAXSQU),
5986 & INTDV1(MAXVQU),INTDV2(MAXVQU),
5987 & INTVD1(MAXVQU),INTVD2(MAXVQU),
5988 & INTDS1(MAXSQU),INTDS2(MAXSQU),
5989 & INTSD1(MAXSQU),INTSD2(MAXSQU)
5990* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
5991 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
5992 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
5993
5994 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),PP(4),PT(4)
5995
5996 DATA AMSS,AMVS,AMDS,AMVD,AMVV/0.4D0,2.0D0,2.0D0,2.5D0,2.0D0/
5997
5998 IREJ = 0
5999 NCSY = 0
6000 NPOINT(2) = NHKK+1
6001
6002* sea-sea chains
6003 DO 10 I=1,NSS
6004 IF (ISKPCH(1,I).EQ.99) GOTO 10
6005 ICCHAI(1,1) = ICCHAI(1,1)+2
6006 IDXP = INTSS1(I)
6007 IDXT = INTSS2(I)
6008 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6009 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6010 DO 11 K=1,4
6011 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6012 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6013 PT1(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6014 PT2(K) = XTSQ(IDXT) *PHKK(K,MOT)
6015 11 CONTINUE
6016 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6017 & +(PP1(3)+PT1(3))**2)
6018 ECH = PP1(4)+PT1(4)
6019 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6020 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6021 & +(PP2(3)+PT2(3))**2)
6022 ECH = PP2(4)+PT2(4)
6023 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6024 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6025 AM1 = SQRT(AM1)
6026 AM2 = SQRT(AM2)
6027 IF ((AM1.LT.AMSS).OR.(AM2.LT.AMSS)) THEN
6028C WRITE(LOUT,5000) NEVHKK,I,AM1,AM2
6029 5000 FORMAT(1X,'incon. chain mass SS: ',2I5,2E10.3)
6030 ENDIF
6031 ELSE
6032 WRITE(LOUT,5000) NEVHKK,I,AM1,AM2
6033 ENDIF
6034 IFP1 = IDT_IB2PDG(IPSQ(IDXP),0,2)
6035 IFP2 = IDT_IB2PDG(IPSAQ(IDXP),0,2)
6036 IFT1 = IDT_IB2PDG(ITSAQ(IDXT),0,2)
6037 IFT2 = IDT_IB2PDG(ITSQ(IDXT),0,2)
6038 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6039 & 0,0,1)
6040 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6041 & 0,0,1)
6042 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6043 & 0,0,1)
6044 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6045 & 0,0,1)
6046 NCSY = NCSY+1
6047 10 CONTINUE
6048
6049* disea-sea chains
6050 DO 20 I=1,NDS
6051 IF (ISKPCH(2,I).EQ.99) GOTO 20
6052 ICCHAI(1,2) = ICCHAI(1,2)+2
6053 IDXP = INTDS1(I)
6054 IDXT = INTDS2(I)
6055 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6056 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6057 DO 21 K=1,4
6058 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6059 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6060 PT1(K) = XTSQ(IDXT) *PHKK(K,MOT)
6061 PT2(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6062 21 CONTINUE
6063 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6064 & +(PP1(3)+PT1(3))**2)
6065 ECH = PP1(4)+PT1(4)
6066 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6067 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6068 & +(PP2(3)+PT2(3))**2)
6069 ECH = PP2(4)+PT2(4)
6070 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6071 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6072 AM1 = SQRT(AM1)
6073 AM2 = SQRT(AM2)
6074 IF ((AM1.LT.AMDS).OR.(AM2.LT.AMDS)) THEN
6075C WRITE(LOUT,5001) NEVHKK,I,AM1,AM2
6076 5001 FORMAT(1X,'incon. chain mass DS: ',2I5,2E10.3)
6077 ENDIF
6078 ELSE
6079 WRITE(LOUT,5001) NEVHKK,I,AM1,AM2
6080 ENDIF
6081 IFP1 = IDT_IB2PDG(IPSQ(IDXP),IPSQ2(IDXP),2)
6082 IFP2 = IDT_IB2PDG(-IPSQ(IDXP),-IPSQ2(IDXP),2)
6083 IFT1 = IDT_IB2PDG(ITSQ(IDXT),0,2)
6084 IFT2 = IDT_IB2PDG(ITSAQ(IDXT),0,2)
6085 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6086 & 0,0,2)
6087 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6088 & 0,0,2)
6089 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6090 & 0,0,2)
6091 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6092 & 0,0,2)
6093 NCSY = NCSY+1
6094 20 CONTINUE
6095
6096* sea-disea chains
6097 DO 30 I=1,NSD
6098 IF (ISKPCH(3,I).EQ.99) GOTO 30
6099 ICCHAI(1,3) = ICCHAI(1,3)+2
6100 IDXP = INTSD1(I)
6101 IDXT = INTSD2(I)
6102 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6103 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6104 DO 31 K=1,4
6105 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6106 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6107 PT1(K) = XTSQ(IDXT) *PHKK(K,MOT)
6108 PT2(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6109 31 CONTINUE
6110 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6111 & +(PP1(3)+PT1(3))**2)
6112 ECH = PP1(4)+PT1(4)
6113 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6114 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6115 & +(PP2(3)+PT2(3))**2)
6116 ECH = PP2(4)+PT2(4)
6117 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6118 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6119 AM1 = SQRT(AM1)
6120 AM2 = SQRT(AM2)
6121 IF ((AM1.LT.AMDS).OR.(AM2.LT.AMDS)) THEN
6122C WRITE(LOUT,5002) NEVHKK,I,AM1,AM2
6123 5002 FORMAT(1X,'incon. chain mass SD: ',2I5,2E10.3)
6124 ENDIF
6125 ELSE
6126 WRITE(LOUT,5002) NEVHKK,I,AM1,AM2
6127 ENDIF
6128 IFP1 = IDT_IB2PDG(IPSQ(IDXP),0,2)
6129 IFP2 = IDT_IB2PDG(IPSAQ(IDXP),0,2)
6130 IFT1 = IDT_IB2PDG(ITSQ(IDXT),ITSQ2(IDXT),2)
6131 IFT2 = IDT_IB2PDG(-ITSQ(IDXT),-ITSQ2(IDXT),2)
6132 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6133 & 0,0,3)
6134 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6135 & 0,0,3)
6136 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6137 & 0,0,3)
6138 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6139 & 0,0,3)
6140 NCSY = NCSY+1
6141 30 CONTINUE
6142
6143* disea-valence chains
6144 DO 50 I=1,NDV
6145 IF (ISKPCH(5,I).EQ.99) GOTO 50
6146 ICCHAI(1,5) = ICCHAI(1,5)+2
6147 IDXP = INTDV1(I)
6148 IDXT = INTDV2(I)
6149 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6150 MOT = JDAHKK(1,IPOST(IFROVT(IDXT)))
6151 DO 51 K=1,4
6152 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6153 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6154 PT1(K) = XTVQ(IDXT) *PHKK(K,MOT)
6155 PT2(K) = XTVD(IDXT) *PHKK(K,MOT)
6156 51 CONTINUE
6157 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6158 & +(PP1(3)+PT1(3))**2)
6159 ECH = PP1(4)+PT1(4)
6160 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6161 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6162 & +(PP2(3)+PT2(3))**2)
6163 ECH = PP2(4)+PT2(4)
6164 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6165 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6166 AM1 = SQRT(AM1)
6167 AM2 = SQRT(AM2)
6168 IF ((AM1.LT.AMVD).OR.(AM2.LT.AMVD)) THEN
6169C WRITE(LOUT,5003) NEVHKK,I,AM1,AM2
6170 5003 FORMAT(1X,'incon. chain mass DV: ',2I5,2E10.3)
6171 ENDIF
6172 ELSE
6173 WRITE(LOUT,5003) NEVHKK,I,AM1,AM2
6174 ENDIF
6175 IFP1 = IDT_IB2PDG(IPSQ(IDXP),IPSQ2(IDXP),2)
6176 IFP2 = IDT_IB2PDG(-IPSQ(IDXP),-IPSQ2(IDXP),2)
6177 IFT1 = IDT_IB2PDG(ITVQ(IDXT),0,2)
6178 IFT2 = IDT_IB2PDG(ITTV1(IDXT),ITTV2(IDXT),2)
6179 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6180 & 0,0,5)
6181 CALL DT_EVTPUT(-22,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6182 & 0,0,5)
6183 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6184 & 0,0,5)
6185 CALL DT_EVTPUT(-22,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6186 & 0,0,5)
6187 NCSY = NCSY+1
6188 50 CONTINUE
6189
6190* valence-sea chains
6191 DO 60 I=1,NVS
6192 IF (ISKPCH(6,I).EQ.99) GOTO 60
6193 ICCHAI(1,6) = ICCHAI(1,6)+2
6194 IDXP = INTVS1(I)
6195 IDXT = INTVS2(I)
6196 MOP = JDAHKK(1,IPOSP(IFROVP(IDXP)))
6197 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6198 DO 61 K=1,4
6199 PP1(K) = XPVQ(IDXP) *PHKK(K,MOP)
6200 PP2(K) = XPVD(IDXP) *PHKK(K,MOP)
6201 PT1(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6202 PT2(K) = XTSQ(IDXT) *PHKK(K,MOT)
6203 61 CONTINUE
6204 IFP1 = IDT_IB2PDG(IPVQ(IDXP),0,2)
6205 IFP2 = IDT_IB2PDG(IPPV1(IDXP),IPPV2(IDXP),2)
6206 IFT1 = IDT_IB2PDG(ITSAQ(IDXT),0,2)
6207 IFT2 = IDT_IB2PDG(ITSQ(IDXT),0,2)
6208 CALL DT_CHKCSY(IFP1,IFT1,LCHK)
6209 IF (LCHK) THEN
6210 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6211 & 0,0,6)
6212 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6213 & 0,0,6)
6214 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6215 & 0,0,6)
6216 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6217 & 0,0,6)
6218 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6219 & +(PP1(3)+PT1(3))**2)
6220 ECH = PP1(4)+PT1(4)
6221 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6222 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6223 & +(PP2(3)+PT2(3))**2)
6224 ECH = PP2(4)+PT2(4)
6225 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6226 ELSE
6227 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6228 & 0,0,6)
6229 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6230 & 0,0,6)
6231 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6232 & 0,0,6)
6233 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6234 & 0,0,6)
6235 PTOCH = SQRT((PP1(1)+PT2(1))**2+(PP1(2)+PT2(2))**2
6236 & +(PP1(3)+PT2(3))**2)
6237 ECH = PP1(4)+PT2(4)
6238 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6239 PTOCH = SQRT((PP2(1)+PT1(1))**2+(PP2(2)+PT1(2))**2
6240 & +(PP2(3)+PT1(3))**2)
6241 ECH = PP2(4)+PT1(4)
6242 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6243 ENDIF
6244 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6245 AM1 = SQRT(AM1)
6246 AM2 = SQRT(AM2)
6247 IF ((AM1.LT.AMSS).OR.(AM2.LT.AMVS)) THEN
6248C WRITE(LOUT,5004) NEVHKK,I,AM1,AM2
6249 5004 FORMAT(1X,'incon. chain mass VS: ',2I5,2E10.3)
6250 ENDIF
6251 ELSE
6252 WRITE(LOUT,5004) NEVHKK,I,AM1,AM2
6253 ENDIF
6254 NCSY = NCSY+1
6255 60 CONTINUE
6256
6257* sea-valence chains
6258 DO 40 I=1,NSV
6259 IF (ISKPCH(4,I).EQ.99) GOTO 40
6260 ICCHAI(1,4) = ICCHAI(1,4)+2
6261 IDXP = INTSV1(I)
6262 IDXT = INTSV2(I)
6263 MOP = JDAHKK(1,IPOSP(IFROSP(IDXP)))
6264 MOT = JDAHKK(1,IPOST(IFROVT(IDXT)))
6265 DO 41 K=1,4
6266 PP1(K) = XPSQ(IDXP) *PHKK(K,MOP)
6267 PP2(K) = XPSAQ(IDXP)*PHKK(K,MOP)
6268 PT1(K) = XTVD(IDXT) *PHKK(K,MOT)
6269 PT2(K) = XTVQ(IDXT) *PHKK(K,MOT)
6270 41 CONTINUE
6271 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6272 & +(PP1(3)+PT1(3))**2)
6273 ECH = PP1(4)+PT1(4)
6274 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6275 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6276 & +(PP2(3)+PT2(3))**2)
6277 ECH = PP2(4)+PT2(4)
6278 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6279 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6280 AM1 = SQRT(AM1)
6281 AM2 = SQRT(AM2)
6282 IF ((AM1.LT.AMVS).OR.(AM2.LT.AMSS)) THEN
6283C WRITE(LOUT,5005) NEVHKK,I,AM1,AM2
6284 5005 FORMAT(1X,'incon. chain mass SV: ',2I5,2E10.3)
6285 ENDIF
6286 ELSE
6287 WRITE(LOUT,5005) NEVHKK,I,AM1,AM2
6288 ENDIF
6289 IFP1 = IDT_IB2PDG(IPSQ(IDXP),0,2)
6290 IFP2 = IDT_IB2PDG(IPSAQ(IDXP),0,2)
6291 IFT1 = IDT_IB2PDG(ITTV1(IDXT),ITTV2(IDXT),2)
6292 IFT2 = IDT_IB2PDG(ITVQ(IDXT),0,2)
6293 CALL DT_EVTPUT(-31,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6294 & 0,0,4)
6295 CALL DT_EVTPUT(-22,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6296 & 0,0,4)
6297 CALL DT_EVTPUT(-31,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6298 & 0,0,4)
6299 CALL DT_EVTPUT(-22,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6300 & 0,0,4)
6301 NCSY = NCSY+1
6302 40 CONTINUE
6303
6304* valence-disea chains
6305 DO 70 I=1,NVD
6306 IF (ISKPCH(7,I).EQ.99) GOTO 70
6307 ICCHAI(1,7) = ICCHAI(1,7)+2
6308 IDXP = INTVD1(I)
6309 IDXT = INTVD2(I)
6310 MOP = JDAHKK(1,IPOSP(IFROVP(IDXP)))
6311 MOT = JDAHKK(1,IPOST(IFROST(IDXT)))
6312 DO 71 K=1,4
6313 PP1(K) = XPVQ(IDXP) *PHKK(K,MOP)
6314 PP2(K) = XPVD(IDXP) *PHKK(K,MOP)
6315 PT1(K) = XTSQ(IDXT) *PHKK(K,MOT)
6316 PT2(K) = XTSAQ(IDXT)*PHKK(K,MOT)
6317 71 CONTINUE
6318 IFP1 = IDT_IB2PDG(IPVQ(IDXP),0,2)
6319 IFP2 = IDT_IB2PDG(IPPV1(IDXP),IPPV2(IDXP),2)
6320 IFT1 = IDT_IB2PDG(ITSQ(IDXT),ITSQ2(IDXT),2)
6321 IFT2 = IDT_IB2PDG(-ITSQ(IDXT),-ITSQ2(IDXT),2)
6322 CALL DT_CHKCSY(IFP1,IFT1,LCHK)
6323 IF (LCHK) THEN
6324 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6325 & 0,0,7)
6326 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6327 & 0,0,7)
6328 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6329 & 0,0,7)
6330 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6331 & 0,0,7)
6332 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6333 & +(PP1(3)+PT1(3))**2)
6334 ECH = PP1(4)+PT1(4)
6335 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6336 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6337 & +(PP2(3)+PT2(3))**2)
6338 ECH = PP2(4)+PT2(4)
6339 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6340 ELSE
6341 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
6342 & 0,0,7)
6343 CALL DT_EVTPUT(-32,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
6344 & 0,0,7)
6345 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
6346 & 0,0,7)
6347 CALL DT_EVTPUT(-32,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
6348 & 0,0,7)
6349 PTOCH = SQRT((PP1(1)+PT2(1))**2+(PP1(2)+PT2(2))**2
6350 & +(PP1(3)+PT2(3))**2)
6351 ECH = PP1(4)+PT2(4)
6352 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6353 PTOCH = SQRT((PP2(1)+PT1(1))**2+(PP2(2)+PT1(2))**2
6354 & +(PP2(3)+PT1(3))**2)
6355 ECH = PP2(4)+PT1(4)
6356 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6357 ENDIF
6358 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6359 AM1 = SQRT(AM1)
6360 AM2 = SQRT(AM2)
6361 IF ((AM1.LT.AMVD).OR.(AM2.LT.AMVD)) THEN
6362C WRITE(LOUT,5006) NEVHKK,I,AM1,AM2
6363 5006 FORMAT(1X,'incon. chain mass VD: ',2I5,2E10.3)
6364 ENDIF
6365 ELSE
6366 WRITE(LOUT,5006) NEVHKK,I,AM1,AM2
6367 ENDIF
6368 NCSY = NCSY+1
6369 70 CONTINUE
6370
6371* valence-valence chains
6372 DO 80 I=1,NVV
6373 IF (ISKPCH(8,I).EQ.99) GOTO 80
6374 ICCHAI(1,8) = ICCHAI(1,8)+2
6375 IDXP = INTVV1(I)
6376 IDXT = INTVV2(I)
6377 MOP = JDAHKK(1,IPOSP(IFROVP(IDXP)))
6378 MOT = JDAHKK(1,IPOST(IFROVT(IDXT)))
6379 DO 81 K=1,4
6380 PP1(K) = XPVQ(IDXP)*PHKK(K,MOP)
6381 PP2(K) = XPVD(IDXP)*PHKK(K,MOP)
6382 PT1(K) = XTVD(IDXT)*PHKK(K,MOT)
6383 PT2(K) = XTVQ(IDXT)*PHKK(K,MOT)
6384 81 CONTINUE
6385 IFP1 = IDT_IB2PDG(IPVQ(IDXP),0,2)
6386 IFP2 = IDT_IB2PDG(IPPV1(IDXP),IPPV2(IDXP),2)
6387 IFT1 = IDT_IB2PDG(ITTV1(IDXT),ITTV2(IDXT),2)
6388 IFT2 = IDT_IB2PDG(ITVQ(IDXT),0,2)
6389
6390* check for diffractive event
6391 IDIFF = 0
6392 IF (((ISINGD.GT.0).OR.(IDOUBD.GT.0)).AND.
6393 & (IP.EQ.1).AND.(NN.EQ.1)) THEN
6394 DO 800 K=1,4
6395 PP(K) = PP1(K)+PP2(K)
6396 PT(K) = PT1(K)+PT2(K)
6397 800 CONTINUE
6398 ISTCK = NHKK
6399 CALL DT_DIFEVT(IFP1,IFP2,PP,MOP,
6400 & IFT1,IFT2,PT,MOT,IDIFF,NCSY,IREJ1)
6401C IF (IREJ1.NE.0) GOTO 9999
6402 IF (IREJ1.NE.0) THEN
6403 IDIFF = 0
6404 NHKK = ISTCK
6405 ENDIF
6406 ELSE
6407 IDIFF = 0
6408 ENDIF
6409
6410 IF (IDIFF.EQ.0) THEN
6411* valence-valence chain system
6412 CALL DT_CHKCSY(IFP1,IFT1,LCHK)
6413 IF (LCHK) THEN
6414* baryon-baryon
6415 CALL DT_EVTPUT(-21,IFP1,MOP,0,
6416 & PP1(1),PP1(2),PP1(3),PP1(4),0,0,8)
6417 CALL DT_EVTPUT(-22,IFT1,MOT,0,
6418 & PT1(1),PT1(2),PT1(3),PT1(4),0,0,8)
6419 CALL DT_EVTPUT(-21,IFP2,MOP,0,
6420 & PP2(1),PP2(2),PP2(3),PP2(4),0,0,8)
6421 CALL DT_EVTPUT(-22,IFT2,MOT,0,
6422 & PT2(1),PT2(2),PT2(3),PT2(4),0,0,8)
6423 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
6424 & +(PP1(3)+PT1(3))**2)
6425 ECH = PP1(4)+PT1(4)
6426 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6427 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
6428 & +(PP2(3)+PT2(3))**2)
6429 ECH = PP2(4)+PT2(4)
6430 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6431 ELSE
6432* antibaryon-baryon
6433 CALL DT_EVTPUT(-21,IFP1,MOP,0,
6434 & PP1(1),PP1(2),PP1(3),PP1(4),0,0,8)
6435 CALL DT_EVTPUT(-22,IFT2,MOT,0,
6436 & PT2(1),PT2(2),PT2(3),PT2(4),0,0,8)
6437 CALL DT_EVTPUT(-21,IFP2,MOP,0,
6438 & PP2(1),PP2(2),PP2(3),PP2(4),0,0,8)
6439 CALL DT_EVTPUT(-22,IFT1,MOT,0,
6440 & PT1(1),PT1(2),PT1(3),PT1(4),0,0,8)
6441 PTOCH = SQRT((PP1(1)+PT2(1))**2+(PP1(2)+PT2(2))**2
6442 & +(PP1(3)+PT2(3))**2)
6443 ECH = PP1(4)+PT2(4)
6444 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
6445 PTOCH = SQRT((PP2(1)+PT1(1))**2+(PP2(2)+PT1(2))**2
6446 & +(PP2(3)+PT1(3))**2)
6447 ECH = PP2(4)+PT1(4)
6448 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
6449 ENDIF
6450 IF ((AM1.GT.0.0D0).AND.(AM2.GT.0.0D0)) THEN
6451 AM1 = SQRT(AM1)
6452 AM2 = SQRT(AM2)
6453 IF ((AM1.LT.AMVV).OR.(AM2.LT.AMVV)) THEN
6454C WRITE(LOUT,5007) NEVHKK,I,AM1,AM2
6455 5007 FORMAT(1X,'incon. chain mass VV: ',2I5,2E10.3)
6456 ENDIF
6457 ELSE
6458 WRITE(LOUT,5007) NEVHKK,I,AM1,AM2
6459 ENDIF
6460 NCSY = NCSY+1
6461 ENDIF
6462 80 CONTINUE
6463 IF (ISTHKK(NPOINT(2)).EQ.1) NPOINT(2) = NPOINT(2)+1
6464
6465* energy-momentum & flavor conservation check
6466 IF (ABS(IDIFF).NE.1) THEN
6467 IF (IDIFF.NE.0) THEN
6468 IF (LEMCCK) CALL DT_EMC2(9,10,0,0,0,3,-21,-22,-41,1,0,
6469 & 1,3,10,IREJ)
6470 ELSE
6471 IF (LEMCCK) CALL DT_EMC2(9,10,0,0,0,3,-21,-22,-31,-32,0,
6472 & 1,3,10,IREJ)
6473 ENDIF
6474 IF (IREJ.NE.0) THEN
6475 CALL DT_EVTOUT(4)
6476 STOP
6477 ENDIF
6478 ENDIF
6479
6480 RETURN
6481
6482 9999 CONTINUE
6483 IREJ = 1
6484 RETURN
6485 END
6486
6487*$ CREATE DT_CHKCSY.FOR
6488*COPY DT_CHKCSY
6489*
6490*===chkcsy=============================================================*
6491*
6492 SUBROUTINE DT_CHKCSY(ID1,ID2,LCHK)
6493
6494************************************************************************
6495* CHeCk Chain SYstem for consistency of partons at chain ends. *
6496* ID1,ID2 PDG-numbers of partons at chain ends *
6497* LCHK = .true. consistent chain *
6498* = .false. inconsistent chain *
6499* This version dated 18.01.95 is written by S. Roesler *
6500************************************************************************
6501
6502 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6503 SAVE
6504 PARAMETER ( LINP = 10 ,
6505 & LOUT = 6 ,
6506 & LDAT = 9 )
6507
6508 LOGICAL LCHK
6509
6510 LCHK = .TRUE.
6511
6512* q-aq chain
6513 IF ((ABS(ID1).LE.6).AND.(ABS(ID2).LE.6)) THEN
6514 IF (ID1*ID2.GT.0) LCHK = .FALSE.
6515* q-qq, aq-aqaq chain
6516 ELSEIF (((ABS(ID1).LE.6).AND.(ABS(ID2).GT.6)).OR.
6517 & ((ABS(ID1).GT.6).AND.(ABS(ID2).LE.6))) THEN
6518 IF (ID1*ID2.LT.0) LCHK = .FALSE.
6519* qq-aqaq chain
6520 ELSEIF ((ABS(ID1).GT.6).AND.(ABS(ID2).GT.6)) THEN
6521 IF (ID1*ID2.GT.0) LCHK = .FALSE.
6522 ENDIF
6523
6524 RETURN
6525 END
6526
6527*$ CREATE DT_EVENTA.FOR
6528*COPY DT_EVENTA
6529*
6530*===eventa=============================================================*
6531*
6532 SUBROUTINE DT_EVENTA(ID,IP,IT,NCSY,IREJ)
6533
6534************************************************************************
6535* Treatment of nucleon-nucleon interactions in a two-chain *
6536* approximation. *
6537* (input) ID BAMJET-index of projectile hadron (in case of *
6538* h-K scattering) *
6539* IP/IT mass number of projectile/target nucleus *
6540* NCSY number of two chain systems *
6541* IREJ rejection flag *
6542* This version dated 15.01.95 is written by S. Roesler *
6543************************************************************************
6544
6545 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6546 SAVE
6547 PARAMETER ( LINP = 10 ,
6548 & LOUT = 6 ,
6549 & LDAT = 9 )
6550 PARAMETER (TINY10=1.0D-10)
6551
6552* event history
6553 PARAMETER (NMXHKK=200000)
6554 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
6555 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
6556 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
6557* extended event history
6558 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
6559 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
6560 & IHIST(2,NMXHKK)
6561* rejection counter
6562 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
6563 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
6564 & IREXCI(3),IRDIFF(2),IRINC
6565* flags for diffractive interactions (DTUNUC 1.x)
6566 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
6567* particle properties (BAMJET index convention)
6568 CHARACTER*8 ANAME
6569 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
6570 & IICH(210),IIBAR(210),K1(210),K2(210)
6571* flags for input different options
6572 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
6573 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
6574 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
6575* various options for treatment of partons (DTUNUC 1.x)
6576* (chain recombination, Cronin,..)
6577 LOGICAL LCO2CR,LINTPT
6578 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
6579 & LCO2CR,LINTPT
6580
6581 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4)
6582
6583 IREJ = 0
6584 NPOINT(3) = NHKK+1
6585
6586* skip following treatment for low-mass diffraction
6587 IF (ABS(IFLAGD).EQ.1) THEN
6588 NPOINT(3) = NPOINT(2)
6589 GOTO 5
6590 ENDIF
6591
6592* multiple scattering of chain ends
6593 IF ((IP.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(1)
6594 IF ((IT.GT.1).AND.(MKCRON.NE.0)) CALL DT_CRONIN(2)
6595
6596 NC = NPOINT(2)
6597* get a two-chain system from DTEVT1
6598 DO 3 I=1,NCSY
6599 IFP1 = IDHKK(NC)
6600 IFT1 = IDHKK(NC+1)
6601 IFP2 = IDHKK(NC+2)
6602 IFT2 = IDHKK(NC+3)
6603 DO 4 K=1,4
6604 PP1(K) = PHKK(K,NC)
6605 PT1(K) = PHKK(K,NC+1)
6606 PP2(K) = PHKK(K,NC+2)
6607 PT2(K) = PHKK(K,NC+3)
6608 4 CONTINUE
6609 MOP1 = NC
6610 MOT1 = NC+1
6611 MOP2 = NC+2
6612 MOT2 = NC+3
6613 CALL DT_GETCSY(IFP1,PP1,MOP1,IFP2,PP2,MOP2,
6614 & IFT1,PT1,MOT1,IFT2,PT2,MOT2,IREJ1)
6615 IF (IREJ1.GT.0) THEN
6616 IRHHA = IRHHA+1
6617 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in EVENTA'
6618 GOTO 9999
6619 ENDIF
6620 NC = NC+4
6621 3 CONTINUE
6622
6623* meson/antibaryon projectile:
6624* sample single-chain valence-valence systems (Reggeon contrib.)
6625 IF ((IP.EQ.1).AND.(ISICHA.EQ.1)) THEN
6626 IF (IIBAR(ID).LE.0) CALL DT_VV2SCH
6627 ENDIF
6628
6629 IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
6630* check DTEVT1 for remaining resonance mass corrections
6631 CALL DT_EVTRES(IREJ1)
6632 IF (IREJ1.GT.0) THEN
6633 IRRES(1) = IRRES(1)+1
6634 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 2 in EVENTA'
6635 GOTO 9999
6636 ENDIF
6637 ENDIF
6638
6639* assign p_t to two-"chain" systems consisting of two resonances only
6640* since only entries for chains will be affected, this is obsolete
6641* in case of JETSET-fragmetation
6642 CALL DT_RESPT
6643
6644* combine q-aq chains to color ropes (qq-aqaq) (chain fusion)
6645 IF (LCO2CR) CALL DT_COM2CR
6646
6647 5 CONTINUE
6648
6649* fragmentation of the complete event
6650**uncomment for internal phojet-fragmentation
6651C CALL DT_EVTFRA(IREJ1)
6652 CALL DT_EVTFRG(2,IDUM,NPYMEM,IREJ1)
6653 IF (IREJ1.GT.0) THEN
6654 IRFRAG = IRFRAG+1
6655 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 3 in EVENTA'
6656 GOTO 9999
6657 ENDIF
6658
6659* decay of possible resonances (should be obsolete)
6660 CALL DT_DECAY1
6661
6662 RETURN
6663
6664 9999 CONTINUE
6665 IREVT = IREVT+1
6666 IREJ = 1
6667 RETURN
6668 END
6669
6670*$ CREATE DT_GETCSY.FOR
6671*COPY DT_GETCSY
6672*
6673*===getcsy=============================================================*
6674*
6675 SUBROUTINE DT_GETCSY(IFPR1,PP1,MOP1,IFPR2,PP2,MOP2,
6676 & IFTA1,PT1,MOT1,IFTA2,PT2,MOT2,IREJ)
6677
6678************************************************************************
6679* This version dated 15.01.95 is written by S. Roesler *
6680************************************************************************
6681
6682 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6683 SAVE
6684 PARAMETER ( LINP = 10 ,
6685 & LOUT = 6 ,
6686 & LDAT = 9 )
6687 PARAMETER (TINY10=1.0D-10)
6688
6689* event history
6690 PARAMETER (NMXHKK=200000)
6691 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
6692 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
6693 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
6694* extended event history
6695 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
6696 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
6697 & IHIST(2,NMXHKK)
6698* rejection counter
6699 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
6700 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
6701 & IREXCI(3),IRDIFF(2),IRINC
6702* flags for input different options
6703 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
6704 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
6705 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
6706* flags for diffractive interactions (DTUNUC 1.x)
6707 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
6708
6709 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),
6710 & IFP1(2),IFP2(2),IFT1(2),IFT2(2),PCH1(4),PCH2(4)
6711
6712 IREJ = 0
6713
6714* get quark content of partons
6715 DO 1 I=1,2
6716 IFP1(I) = 0
6717 IFP2(I) = 0
6718 IFT1(I) = 0
6719 IFT2(I) = 0
6720 1 CONTINUE
6721 IFP1(1) = IDT_IPDG2B(IFPR1,1,2)
6722 IF (ABS(IFPR1).GE.1000) IFP1(2) = IDT_IPDG2B(IFPR1,2,2)
6723 IFP2(1) = IDT_IPDG2B(IFPR2,1,2)
6724 IF (ABS(IFPR2).GE.1000) IFP2(2) = IDT_IPDG2B(IFPR2,2,2)
6725 IFT1(1) = IDT_IPDG2B(IFTA1,1,2)
6726 IF (ABS(IFTA1).GE.1000) IFT1(2) = IDT_IPDG2B(IFTA1,2,2)
6727 IFT2(1) = IDT_IPDG2B(IFTA2,1,2)
6728 IF (ABS(IFTA2).GE.1000) IFT2(2) = IDT_IPDG2B(IFTA2,2,2)
6729
6730* get kind of chains (1 - q-aq, 2 - q-qq/aq-aqaq, 3 - qq-aqaq)
6731 IDCH1 = 2
6732 IF ((IFP1(2).EQ.0).AND.(IFT1(2).EQ.0)) IDCH1 = 1
6733 IF ((IFP1(2).NE.0).AND.(IFT1(2).NE.0)) IDCH1 = 3
6734 IDCH2 = 2
6735 IF ((IFP2(2).EQ.0).AND.(IFT2(2).EQ.0)) IDCH2 = 1
6736 IF ((IFP2(2).NE.0).AND.(IFT2(2).NE.0)) IDCH2 = 3
6737
6738* store initial configuration for energy-momentum cons. check
6739 IF (LEMCCK) CALL DT_EMC1(PP1,PP2,PT1,PT2,1,1,IDUM)
6740
6741* sample intrinsic p_t at chain-ends
6742 CALL DT_GETSPT(PP1,IFPR1,IFP1,PP2,IFPR2,IFP2,
6743 & PT1,IFTA1,IFT1,PT2,IFTA2,IFT2,
6744 & AMCH1,IDCH1,AMCH2,IDCH2,IDCH(MOP1),IREJ1)
6745 IF (IREJ1.NE.0) THEN
6746 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in GETCSY'
6747 IRPT = IRPT+1
6748 GOTO 9999
6749 ENDIF
6750
6751C IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
6752C IF ((IDCH1.EQ.3).OR.((IDCH1.GT.1).AND.(IDCH2.EQ.1))) THEN
6753C* check second chain for resonance
6754C CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6755C & AMCH2,AMCH2N,IDCH2,IREJ1)
6756C IF (IREJ1.NE.0) GOTO 9999
6757C IF (IDR2.NE.0) THEN
6758C CALL DT_CHKINE(PP2,IFPR2,PP1,IFPR1,PT2,IFTA2,PT1,IFTA1,
6759C & AMCH2,AMCH2N,AMCH1,IREJ1)
6760C IF (IREJ1.NE.0) GOTO 9999
6761C ENDIF
6762C* check first chain for resonance
6763C CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6764C & AMCH1,AMCH1N,IDCH1,IREJ1)
6765C IF (IREJ1.NE.0) GOTO 9999
6766C IF (IDR1.NE.0) IDR1 = 100*IDR1
6767C ELSE
6768C* check first chain for resonance
6769C CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6770C & AMCH1,AMCH1N,IDCH1,IREJ1)
6771C IF (IREJ1.NE.0) GOTO 9999
6772C IF (IDR1.NE.0) THEN
6773C CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
6774C & AMCH1,AMCH1N,AMCH2,IREJ1)
6775C IF (IREJ1.NE.0) GOTO 9999
6776C ENDIF
6777C* check second chain for resonance
6778C CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6779C & AMCH2,AMCH2N,IDCH2,IREJ1)
6780C IF (IREJ1.NE.0) GOTO 9999
6781C IF (IDR2.NE.0) IDR2 = 100*IDR2
6782C ENDIF
6783C ENDIF
6784
6785 IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
6786* check chains for resonances
6787 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6788 & AMCH1,AMCH1N,IDCH1,IREJ1)
6789 IF (IREJ1.NE.0) GOTO 9999
6790 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6791 & AMCH2,AMCH2N,IDCH2,IREJ1)
6792 IF (IREJ1.NE.0) GOTO 9999
6793* change kinematics corresponding to resonance-masses
6794 IF ( (IDR1.NE.0).AND.(IDR2.EQ.0) ) THEN
6795 CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
6796 & AMCH1,AMCH1N,AMCH2,IREJ1)
6797 IF (IREJ1.GT.0) GOTO 9999
6798 IF (IREJ1.EQ.-1) IDR1 = 100*IDR1
6799 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDR2,IDXR2,
6800 & AMCH2,AMCH2N,IDCH2,IREJ1)
6801 IF (IREJ1.NE.0) GOTO 9999
6802 IF (IDR2.NE.0) IDR2 = 100*IDR2
6803 ELSEIF ( (IDR1.EQ.0).AND.(IDR2.NE.0) ) THEN
6804 CALL DT_CHKINE(PP2,IFPR2,PP1,IFPR1,PT2,IFTA2,PT1,IFTA1,
6805 & AMCH2,AMCH2N,AMCH1,IREJ1)
6806 IF (IREJ1.GT.0) GOTO 9999
6807 IF (IREJ1.EQ.-1) IDR2 = 100*IDR2
6808 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDR1,IDXR1,
6809 & AMCH1,AMCH1N,IDCH1,IREJ1)
6810 IF (IREJ1.NE.0) GOTO 9999
6811 IF (IDR1.NE.0) IDR1 = 100*IDR1
6812 ELSEIF ( (IDR1.NE.0).AND.(IDR2.NE.0) ) THEN
6813 AMDIF1 = ABS(AMCH1-AMCH1N)
6814 AMDIF2 = ABS(AMCH2-AMCH2N)
6815 IF (AMDIF2.LT.AMDIF1) THEN
6816 CALL DT_CHKINE(PP2,IFPR2,PP1,IFPR1,PT2,IFTA2,PT1,IFTA1,
6817 & AMCH2,AMCH2N,AMCH1,IREJ1)
6818 IF (IREJ1.GT.0) GOTO 9999
6819 IF (IREJ1.EQ.-1) IDR2 = 100*IDR2
6820 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),
6821 & IDR1,IDXR1,AMCH1,AMCH1N,IDCH1,IREJ1)
6822 IF (IREJ1.NE.0) GOTO 9999
6823 IF (IDR1.NE.0) IDR1 = 100*IDR1
6824 ELSE
6825 CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
6826 & AMCH1,AMCH1N,AMCH2,IREJ1)
6827 IF (IREJ1.GT.0) GOTO 9999
6828 IF (IREJ1.EQ.-1) IDR1 = 100*IDR1
6829 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),
6830 & IDR2,IDXR2,AMCH2,AMCH2N,IDCH2,IREJ1)
6831 IF (IREJ1.NE.0) GOTO 9999
6832 IF (IDR2.NE.0) IDR2 = 100*IDR2
6833 ENDIF
6834 ENDIF
6835 ENDIF
6836
6837* store final configuration for energy-momentum cons. check
6838 IF (LEMCCK) THEN
6839 CALL DT_EMC1(PP1,PP2,PT1,PT2,-2,1,IDUM)
6840 CALL DT_EMC1(PP1,PP2,PT1,PT2,3,1,IREJ1)
6841 IF (IREJ1.NE.0) GOTO 9999
6842 ENDIF
6843
6844* put partons and chains into DTEVT1
6845 DO 10 I=1,4
6846 PCH1(I) = PP1(I)+PT1(I)
6847 PCH2(I) = PP2(I)+PT2(I)
6848 10 CONTINUE
6849 CALL DT_EVTPUT(-ISTHKK(MOP1),IFPR1,MOP1,0,PP1(1),PP1(2),
6850 & PP1(3),PP1(4),0,0,0)
6851 CALL DT_EVTPUT(-ISTHKK(MOT1),IFTA1,MOT1,0,PT1(1),PT1(2),
6852 & PT1(3),PT1(4),0,0,0)
6853 KCH = 100+IDCH(MOP1)*10+1
6854 CALL DT_EVTPUT(KCH,88888,-2,-1,
6855 & PCH1(1),PCH1(2),PCH1(3),PCH1(4),IDR1,IDXR1,IDCH(MOP1))
6856 CALL DT_EVTPUT(-ISTHKK(MOP2),IFPR2,MOP2,0,PP2(1),PP2(2),
6857 & PP2(3),PP2(4),0,0,0)
6858 CALL DT_EVTPUT(-ISTHKK(MOT2),IFTA2,MOT2,0,PT2(1),PT2(2),
6859 & PT2(3),PT2(4),0,0,0)
6860 KCH = KCH+1
6861 CALL DT_EVTPUT(KCH,88888,-2,-1,
6862 & PCH2(1),PCH2(2),PCH2(3),PCH2(4),IDR2,IDXR2,IDCH(MOP2))
6863
6864 RETURN
6865
6866 9999 CONTINUE
6867 IF ((IDCH(MOP1).LE.3).AND.(IDCH(MOP2).LE.3)) THEN
6868* "cancel" sea-sea chains
6869 CALL DT_RJSEAC(MOP1,MOP2,MOT1,MOT2,IREJ1)
6870 IF (IREJ1.NE.0) GOTO 9998
6871**sr 16.5. flag for EVENTB
6872 IREJ = -1
6873 RETURN
6874 ENDIF
6875 9998 CONTINUE
6876 IREJ = 1
6877 RETURN
6878 END
6879
6880*$ CREATE DT_CHKINE.FOR
6881*COPY DT_CHKINE
6882*
6883*===chkine=============================================================*
6884*
6885 SUBROUTINE DT_CHKINE(PP1I,IFP1,PP2I,IFP2,PT1I,IFT1,PT2I,IFT2,
6886 & AMCH1,AMCH1N,AMCH2,IREJ)
6887
6888************************************************************************
6889* This subroutine replaces CORMOM. *
6890* This version dated 05.01.95 is written by S. Roesler *
6891************************************************************************
6892
6893 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
6894 SAVE
6895 PARAMETER ( LINP = 10 ,
6896 & LOUT = 6 ,
6897 & LDAT = 9 )
6898 PARAMETER (TINY10=1.0D-10)
6899
6900* flags for input different options
6901 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
6902 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
6903 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
6904* rejection counter
6905 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
6906 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
6907 & IREXCI(3),IRDIFF(2),IRINC
6908
6909 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),P1(4),P2(4),
6910 & PP1I(4),PP2I(4),PT1I(4),PT2I(4)
6911
6912 IREJ = 0
6913 JMSHL = IMSHL
6914
6915 SCALE = AMCH1N/MAX(AMCH1,TINY10)
6916 DO 10 I=1,4
6917 PP1(I) = PP1I(I)
6918 PP2(I) = PP2I(I)
6919 PT1(I) = PT1I(I)
6920 PT2(I) = PT2I(I)
6921 PP2(I) = PP2(I)+(1.0D0-SCALE)*PP1(I)
6922 PT2(I) = PT2(I)+(1.0D0-SCALE)*PT1(I)
6923 PP1(I) = SCALE*PP1(I)
6924 PT1(I) = SCALE*PT1(I)
6925 10 CONTINUE
6926 IF ((PP1(4).LT.0.0D0).OR.(PP2(4).LT.0.0D0).OR.
6927 & (PT1(4).LT.0.0D0).OR.(PT2(4).LT.0.0D0)) GOTO 9997
6928
6929 ECH = PP2(4)+PT2(4)
6930 PCH = SQRT( (PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2+
6931 & (PP2(3)+PT2(3))**2 )
6932 AMCH22 = (ECH-PCH)*(ECH+PCH)
6933 IF (AMCH22.LT.0.0D0) THEN
6934 IF (IOULEV(1).GT.0)
6935 & WRITE(LOUT,'(1X,A)') 'CHKINE: inconsistent treatment!'
6936 GOTO 9997
6937 ENDIF
6938
6939 AMCH1 = AMCH1N
6940 AMCH2 = SQRT(AMCH22)
6941
6942* put partons again on mass shell
6943 13 CONTINUE
6944 XM1 = 0.0D0
6945 XM2 = 0.0D0
6946 IF (JMSHL.EQ.1) THEN
6947 XM1 = PYMASS(IFP1)
6948 XM2 = PYMASS(IFT1)
6949 ENDIF
6950 CALL DT_MASHEL(PP1,PT1,XM1,XM2,P1,P2,IREJ1)
6951 IF (IREJ1.NE.0) THEN
6952 IF (JMSHL.EQ.0) GOTO 9998
6953 JMSHL = 0
6954 GOTO 13
6955 ENDIF
6956 JMSHL = IMSHL
6957 DO 11 I=1,4
6958 PP1(I) = P1(I)
6959 PT1(I) = P2(I)
6960 11 CONTINUE
6961 14 CONTINUE
6962 XM1 = 0.0D0
6963 XM2 = 0.0D0
6964 IF (JMSHL.EQ.1) THEN
6965 XM1 = PYMASS(IFP2)
6966 XM2 = PYMASS(IFT2)
6967 ENDIF
6968 CALL DT_MASHEL(PP2,PT2,XM1,XM2,P1,P2,IREJ1)
6969 IF (IREJ1.NE.0) THEN
6970 IF (JMSHL.EQ.0) GOTO 9998
6971 JMSHL = 0
6972 GOTO 14
6973 ENDIF
6974 DO 12 I=1,4
6975 PP2(I) = P1(I)
6976 PT2(I) = P2(I)
6977 12 CONTINUE
6978 DO 15 I=1,4
6979 PP1I(I) = PP1(I)
6980 PP2I(I) = PP2(I)
6981 PT1I(I) = PT1(I)
6982 PT2I(I) = PT2(I)
6983 15 CONTINUE
6984 RETURN
6985
6986 9997 IRCHKI(1) = IRCHKI(1)+1
6987**sr
6988C GOTO 9999
6989 IREJ = -1
6990 RETURN
6991**
6992 9998 IRCHKI(2) = IRCHKI(2)+1
6993
6994 9999 CONTINUE
6995 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in CHKINE'
6996 IREJ = 1
6997 RETURN
6998 END
6999
7000*$ CREATE DT_CH2RES.FOR
7001*COPY DT_CH2RES
7002*
7003*===ch2res=============================================================*
7004*
7005 SUBROUTINE DT_CH2RES(IF1,IF2,IF3,IF4,IDR,IDXR,
7006 & AM,AMN,IMODE,IREJ)
7007
7008************************************************************************
7009* Check chains for resonance production. *
7010* This subroutine replaces COMCMA/COBCMA/COMCM2 *
7011* input: *
7012* IF1,2,3,4 input flavors (q,aq in any order) *
7013* AM chain mass *
7014* MODE = 1 check q-aq chain for meson-resonance *
7015* = 2 check q-qq, aq-aqaq chain for baryon-resonance *
7016* = 3 check qq-aqaq chain for lower mass cut *
7017* output: *
7018* IDR = 0 no resonances found *
7019* = -1 pseudoscalar meson/octet baryon *
7020* = 1 vector-meson/decuplet baryon *
7021* IDXR BAMJET-index of corresponding resonance *
7022* AMN mass of corresponding resonance *
7023* *
7024* IREJ rejection flag *
7025* This version dated 06.01.95 is written by S. Roesler *
7026************************************************************************
7027
7028 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7029 SAVE
7030 PARAMETER ( LINP = 10 ,
7031 & LOUT = 6 ,
7032 & LDAT = 9 )
7033
7034* particle properties (BAMJET index convention)
7035 CHARACTER*8 ANAME
7036 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
7037 & IICH(210),IIBAR(210),K1(210),K2(210)
7038* quark-content to particle index conversion (DTUNUC 1.x)
7039 COMMON /DTQ2ID/ IMPS(6,6),IMVE(6,6),IB08(6,21),IB10(6,21),
7040 & IA08(6,21),IA10(6,21)
7041* rejection counter
7042 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
7043 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
7044 & IREXCI(3),IRDIFF(2),IRINC
7045* flags for input different options
7046 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
7047 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
7048 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
7049
7050 DIMENSION IF(4),JF(4)
7051
7052**sr 4.7. test
7053C DATA AMLOM,AMLOB /0.08D0,0.2D0/
7054 DATA AMLOM,AMLOB /0.1D0,0.7D0/
7055**
7056C DATA AMLOM,AMLOB /0.001D0,0.001D0/
7057
7058 MODE = ABS(IMODE)
7059
7060 IF ((MODE.LT.1).OR.(MODE.GT.3)) THEN
7061 WRITE(LOUT,1000) MODE
7062 1000 FORMAT(1X,'CH2RES: MODE ',I4,' not supported!',/,
7063 & 1X,' program stopped')
7064 STOP
7065 ENDIF
7066
7067 AMX = AM
7068 IREJ = 0
7069 IDR = 0
7070 IDXR = 0
7071 AMN = AMX
7072 IF ((AM.LE.0.0D0).AND.(MODE.EQ.1)) AMX = AMLOM
7073 IF ((AM.LE.0.0D0).AND.(MODE.EQ.2)) AMX = AMLOB
7074
7075 IF(1) = IF1
7076 IF(2) = IF2
7077 IF(3) = IF3
7078 IF(4) = IF4
7079 NF = 0
7080 DO 100 I=1,4
7081 IF (IF(I).NE.0) THEN
7082 NF = NF+1
7083 JF(NF) = IF(I)
7084 ENDIF
7085 100 CONTINUE
7086 IF (NF.LE.MODE) THEN
7087 WRITE(LOUT,1001) MODE,IF
7088 1001 FORMAT(1X,'CH2RES: inconsistent input flavors in MODE ',
7089 & I4,' IF1 = ',I4,' IF2 = ',I4,' IF3 = ',I4,' IF4 = ',I4)
7090 GOTO 9999
7091 ENDIF
7092
7093 GOTO (1,2,3) MODE
7094
7095* check for meson resonance
7096 1 CONTINUE
7097 IFQ = JF(1)
7098 IFAQ = ABS(JF(2))
7099 IF (JF(2).GT.0) THEN
7100 IFQ = JF(2)
7101 IFAQ = ABS(JF(1))
7102 ENDIF
7103 IFPS = IMPS(IFAQ,IFQ)
7104 IFV = IMVE(IFAQ,IFQ)
7105 AMPS = AAM(IFPS)
7106 AMV = AAM(IFV)
7107 AMHI = AMV+0.3D0
7108 IF (AMX.LT.AMV) THEN
7109 IF (AMX.LT.AMPS) THEN
7110 IF (IMODE.GT.0) THEN
7111 IF ((IRESRJ.EQ.1).OR.(AMX.LT.AMLOM)) GOTO 9999
7112 ELSE
7113 IF (AMX.LT.0.8D0*AMPS) GOTO 9999
7114 ENDIF
7115 LOMRES = LOMRES+1
7116 ENDIF
7117* replace chain by pseudoscalar meson
7118 IDR = -1
7119 IDXR = IFPS
7120 AMN = AMPS
7121 ELSEIF (AMX.LT.AMHI) THEN
7122* replace chain by vector-meson
7123 IDR = 1
7124 IDXR = IFV
7125 AMN = AMV
7126 ENDIF
7127 RETURN
7128
7129* check for baryon resonance
7130 2 CONTINUE
7131 CALL DT_DBKLAS(JF(1),JF(2),JF(3),JB8,JB10)
7132 AM8 = AAM(JB8)
7133 AM10 = AAM(JB10)
7134 AMHI = AM10+0.3D0
7135 IF (AMX.LT.AM10) THEN
7136 IF (AMX.LT.AM8) THEN
7137 IF (IMODE.GT.0) THEN
7138 IF ((IRESRJ.EQ.1).OR.(AMX.LT.AMLOB)) GOTO 9999
7139 ELSE
7140 IF (AMX.LT.0.8D0*AM8) GOTO 9999
7141 ENDIF
7142 LOBRES = LOBRES+1
7143 ENDIF
7144* replace chain by oktet baryon
7145 IDR = -1
7146 IDXR = JB8
7147 AMN = AM8
7148 ELSEIF (AMX.LT.AMHI) THEN
7149 IDR = 1
7150 IDXR = JB10
7151 AMN = AM10
7152 ENDIF
7153 RETURN
7154
7155* check qq-aqaq for lower mass cut
7156 3 CONTINUE
7157* empirical definition of AMHI to allow for (b-antib)-pair prod.
7158 AMHI = 2.5D0
7159 IF (AMX.LT.AMHI) GOTO 9999
7160 RETURN
7161
7162 9999 CONTINUE
7163 IF ((IOULEV(1).GT.0).AND.(IMODE.GT.0))
7164 & WRITE(LOUT,*) 'rejected 1 in CH2RES',IMODE
7165 IREJ = 1
7166 IRRES(2) = IRRES(2)+1
7167 RETURN
7168 END
7169
7170*$ CREATE DT_RJSEAC.FOR
7171*COPY DT_RJSEAC
7172*
7173*===rjseac=============================================================*
7174*
7175 SUBROUTINE DT_RJSEAC(MOP1,MOP2,MOT1,MOT2,IREJ)
7176
7177************************************************************************
7178* ReJection of SEA-sea Chains. *
7179* MOP1/2 entries of projectile sea-partons in DTEVT1 *
7180* MOT1/2 entries of projectile sea-partons in DTEVT1 *
7181* This version dated 16.01.95 is written by S. Roesler *
7182************************************************************************
7183
7184 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7185 SAVE
7186 PARAMETER ( LINP = 10 ,
7187 & LOUT = 6 ,
7188 & LDAT = 9 )
7189 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0)
7190
7191* event history
7192 PARAMETER (NMXHKK=200000)
7193 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
7194 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
7195 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
7196* extended event history
7197 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
7198 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
7199 & IHIST(2,NMXHKK)
7200* statistics
7201 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
7202 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
7203 & ICEVTG(8,0:30)
7204
7205 DIMENSION IDXSEA(2,2),IDXNUC(2),ISTVAL(2)
7206
7207 IREJ = 0
7208
7209* projectile sea q-aq-pair
7210* indices of sea-pair
7211 IDXSEA(1,1) = MOP1
7212 IDXSEA(1,2) = MOP2
7213* index of mother-nucleon
7214 IDXNUC(1) = JMOHKK(1,MOP1)
7215* status of valence quarks to be corrected
7216 ISTVAL(1) = -21
7217
7218* target sea q-aq-pair
7219* indices of sea-pair
7220 IDXSEA(2,1) = MOT1
7221 IDXSEA(2,2) = MOT2
7222* index of mother-nucleon
7223 IDXNUC(2) = JMOHKK(1,MOT1)
7224* status of valence quarks to be corrected
7225 ISTVAL(2) = -22
7226
7227 DO 1 N=1,2
7228 IDONE = 0
7229 DO 2 I=NPOINT(2),NHKK
7230 IF ((ISTHKK(I).EQ.ISTVAL(N)).AND.
7231 & (JMOHKK(1,I).EQ.IDXNUC(N))) THEN
7232* valence parton found
7233* inrease 4-momentum by sea 4-momentum
7234 DO 3 K=1,4
7235 PHKK(K,I) = PHKK(K,I)+PHKK(K,IDXSEA(N,1))+
7236 & PHKK(K,IDXSEA(N,2))
7237 3 CONTINUE
7238 PHKK(5,I) = SQRT(ABS(PHKK(4,I)**2-PHKK(1,I)**2-
7239 & PHKK(2,I)**2-PHKK(3,I)**2))
7240* "cancel" sea-pair
7241 DO 4 J=1,2
7242 ISTHKK(IDXSEA(N,J)) = 100
7243 IDHKK(IDXSEA(N,J)) = 0
7244 JMOHKK(1,IDXSEA(N,J)) = 0
7245 JMOHKK(2,IDXSEA(N,J)) = 0
7246 JDAHKK(1,IDXSEA(N,J)) = 0
7247 JDAHKK(2,IDXSEA(N,J)) = 0
7248 DO 5 K=1,4
7249 PHKK(K,IDXSEA(N,J)) = ZERO
7250 VHKK(K,IDXSEA(N,J)) = ZERO
7251 WHKK(K,IDXSEA(N,J)) = ZERO
7252 5 CONTINUE
7253 PHKK(5,IDXSEA(N,J)) = ZERO
7254 4 CONTINUE
7255 IDONE = 1
7256 ENDIF
7257 2 CONTINUE
7258 IF (IDONE.NE.1) THEN
7259 WRITE(LOUT,1000) NEVHKK,MOP1,MOP2,MOT1,MOT2
7260 1000 FORMAT(1X,'RJSEAC: event ',I8,': inconsistent event',
7261 & '-record!',/,1X,' sea-quark pairs ',
7262 & 2I5,4X,2I5,' could not be canceled!')
7263 GOTO 9999
7264 ENDIF
7265 1 CONTINUE
7266 ICRJSS = ICRJSS+1
7267 RETURN
7268
7269 9999 CONTINUE
7270 IREJ = 1
7271 RETURN
7272 END
7273
7274*$ CREATE DT_VV2SCH.FOR
7275*COPY DT_VV2SCH
7276*
7277*===vv2sch=============================================================*
7278*
7279 SUBROUTINE DT_VV2SCH
7280
7281************************************************************************
7282* Change Valence-Valence chain systems to Single CHain systems for *
7283* hadron-nucleus collisions with meson or antibaryon projectile. *
7284* (Reggeon contribution) *
7285* The single chain system is approximately treated as one chain and a *
7286* meson at rest. *
7287* This version dated 18.01.95 is written by S. Roesler *
7288************************************************************************
7289
7290 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7291 SAVE
7292 PARAMETER ( LINP = 10 ,
7293 & LOUT = 6 ,
7294 & LDAT = 9 )
7295 PARAMETER (ZERO=0.0D0,TINY7=1.0D-7,TINY3=1.0D-3)
7296
7297 LOGICAL LSTART
7298
7299* event history
7300 PARAMETER (NMXHKK=200000)
7301 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
7302 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
7303 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
7304* extended event history
7305 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
7306 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
7307 & IHIST(2,NMXHKK)
7308* flags for input different options
7309 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
7310 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
7311 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
7312* statistics
7313 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
7314 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
7315 & ICEVTG(8,0:30)
7316
7317 DIMENSION IF(4,2),MO(4),PP1(4),PP2(4),PT1(4),PT2(4),PCH1(4),
7318 & PCH2(4)
7319
7320 DATA LSTART /.TRUE./
7321
7322 IFSC = 0
7323 IF (LSTART) THEN
7324 WRITE(LOUT,1000)
7325 1000 FORMAT(/,1X,'VV2SCH: Reggeon contribution to valance-',
7326 & 'valence chains treated')
7327 LSTART = .FALSE.
7328 ENDIF
7329
7330 NSTOP = NHKK
7331
7332* get index of first chain
7333 DO 1 I=NPOINT(3),NHKK
7334 IF (IDHKK(I).EQ.88888) THEN
7335 NC = I
7336 GOTO 2
7337 ENDIF
7338 1 CONTINUE
7339
7340 2 CONTINUE
7341 IF ((IDHKK(NC).EQ.88888).AND.(IDHKK(NC+3).EQ.88888)
7342 & .AND.(NC.LT.NSTOP)) THEN
7343* get valence-valence chains
7344 IF ((IDCH(NC).EQ.8).AND.(IDCH(NC+3).EQ.8)) THEN
7345* get "mother"-hadron indices
7346 MO1 = JMOHKK(1,JMOHKK(1,JMOHKK(1,NC)))
7347 MO2 = JMOHKK(1,JMOHKK(1,JMOHKK(2,NC)))
7348 KPROJ = IDT_ICIHAD(IDHKK(MO1))
7349 KTARG = IDT_ICIHAD(IDHKK(MO2))
7350* Lab momentum of projectile hadron
7351 CALL DT_LTNUC(PHKK(3,MO1),PHKK(4,MO1),PPZ,PPE,-3)
7352 PTOT = SQRT(PHKK(1,MO1)**2+PHKK(2,MO1)**2+
7353 & PHKK(3,MO1)**2)
7354
7355 SICHAP = DT_PHNSCH(KPROJ,KTARG,PTOT)
7356 IF (DT_RNDM(PTOT).LE.SICHAP) THEN
7357 ICVV2S = ICVV2S+1
7358* single chain requested
7359* get flavors of chain-end partons
7360 MO(1) = JMOHKK(1,NC)
7361 MO(2) = JMOHKK(2,NC)
7362 MO(3) = JMOHKK(1,NC+3)
7363 MO(4) = JMOHKK(2,NC+3)
7364 DO 3 I=1,4
7365 IF(I,1) = IDT_IPDG2B(IDHKK(MO(I)),1,2)
7366 IF(I,2) = 0
7367 IF (ABS(IDHKK(MO(I))).GE.1000)
7368 & IF(I,2) = IDT_IPDG2B(IDHKK(MO(I)),2,2)
7369 3 CONTINUE
7370* which one is the q-aq chain?
7371* N1,N1+1 - DTEVT1-entries for q-aq system
7372* N2,N2+1 - DTEVT1-entries for the other chain
7373 IF ((IF(1,2).EQ.0).AND.(IF(2,2).EQ.0)) THEN
7374 K1 = 1
7375 K2 = 3
7376 N1 = NC-2
7377 N2 = NC+1
7378 ELSEIF ((IF(3,2).EQ.0).AND.(IF(4,2).EQ.0)) THEN
7379 K1 = 3
7380 K2 = 1
7381 N1 = NC+1
7382 N2 = NC-2
7383 ELSE
7384 GOTO 10
7385 ENDIF
7386 DO 4 K=1,4
7387 PP1(K) = PHKK(K,N1)
7388 PT1(K) = PHKK(K,N1+1)
7389 PP2(K) = PHKK(K,N2)
7390 PT2(K) = PHKK(K,N2+1)
7391 4 CONTINUE
7392 AMCH1 = PHKK(5,N1+2)
7393 AMCH2 = PHKK(5,N2+2)
7394* get meson-identity corresponding to flavors of q-aq chain
7395 ITMP = IRESRJ
7396 IRESRJ = 0
7397 CALL DT_CH2RES(IF(K1,1),IF(K1+1,1),0,0,IDR1,IDXR1,
7398 & ZERO,AMCH1N,1,IDUM)
7399 IRESRJ = ITMP
7400* change kinematics of chains
7401 CALL DT_CHKINE(PP1,IDHKK(N1), PP2,IDHKK(N2),
7402 & PT1,IDHKK(N1+1),PT2,IDHKK(N2+1),
7403 & AMCH1,AMCH1N,AMCH2,IREJ1)
7404 IF (IREJ1.NE.0) GOTO 10
7405* check second chain for resonance
7406 IDCHAI = 2
7407 IF ((IF(K2,2).NE.0).AND.(IF(K2+1,2).NE.0)) IDCHAI = 3
7408 CALL DT_CH2RES(IF(K2,1),IF(K2,2),IF(K2+1,1),IF(K2+1,2),
7409 & IDR2,IDXR2,AMCH2,AMCH2N,IDCHAI,IREJ1)
7410 IF (IREJ1.NE.0) GOTO 10
7411 IF (IDR2.NE.0) IDR2 = 100*IDR2
7412* add partons and chains to DTEVT1
7413 DO 5 K=1,4
7414 PCH1(K) = PP1(K)+PT1(K)
7415 PCH2(K) = PP2(K)+PT2(K)
7416 5 CONTINUE
7417 CALL DT_EVTPUT(ISTHKK(N1),IDHKK(N1),N1,0,PP1(1),PP1(2),
7418 & PP1(3),PP1(4),0,0,0)
7419 CALL DT_EVTPUT(ISTHKK(N1+1),IDHKK(N1+1),N1+1,0,PT1(1),
7420 & PT1(2),PT1(3),PT1(4),0,0,0)
7421 KCH = ISTHKK(N1+2)+100
7422 CALL DT_EVTPUT(KCH,88888,-2,-1,PCH1(1),PCH1(2),PCH1(3),
7423 & PCH1(4),IDR1,IDXR1,IDCH(N1+2))
7424 IDHKK(N1+2) = 22222
7425 CALL DT_EVTPUT(ISTHKK(N2),IDHKK(N2),N2,0,PP2(1),PP2(2),
7426 & PP2(3),PP2(4),0,0,0)
7427 CALL DT_EVTPUT(ISTHKK(N2+1),IDHKK(N2+1),N2+1,0,PT2(1),
7428 & PT2(2),PT2(3),PT2(4),0,0,0)
7429 KCH = ISTHKK(N2+2)+100
7430 CALL DT_EVTPUT(KCH,88888,-2,-1,PCH2(1),PCH2(2),PCH2(3),
7431 & PCH2(4),IDR2,IDXR2,IDCH(N2+2))
7432 IDHKK(N2+2) = 22222
7433 ENDIF
7434 ENDIF
7435 ELSE
7436 GOTO 11
7437 ENDIF
7438 10 CONTINUE
7439 NC = NC+6
7440 GOTO 2
7441
7442 11 CONTINUE
7443
7444 RETURN
7445 END
7446
7447*$ CREATE DT_PHNSCH.FOR
7448*COPY DT_PHNSCH
7449*
7450*=== phnsch ===========================================================*
7451*
7452 DOUBLE PRECISION FUNCTION DT_PHNSCH( KP, KTARG, PLAB )
7453
7454*----------------------------------------------------------------------*
7455* *
7456* Probability for Hadron Nucleon Single CHain interactions: *
7457* *
7458* Created on 30 december 1993 by Alfredo Ferrari & Paola Sala *
7459* Infn - Milan *
7460* *
7461* Last change on 04-jan-94 by Alfredo Ferrari *
7462* *
7463* modified by J.R.for use in DTUNUC 6.1.94 *
7464* *
7465* Input variables: *
7466* Kp = hadron projectile index (Part numbering *
7467* scheme) *
7468* Ktarg = target nucleon index (1=proton, 8=neutron) *
7469* Plab = projectile laboratory momentum (GeV/c) *
7470* Output variable: *
7471* Phnsch = probability per single chain (particle *
7472* exchange) interactions *
7473* *
7474*----------------------------------------------------------------------*
7475
7476 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
7477 SAVE
7478
7479 PARAMETER ( LUNOUT = 6 )
7480 PARAMETER ( LUNERR = 6 )
7481 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
7482 PARAMETER ( ZERZER = 0.D+00 )
7483 PARAMETER ( ONEONE = 1.D+00 )
7484 PARAMETER ( TWOTWO = 2.D+00 )
7485 PARAMETER ( FIVFIV = 5.D+00 )
7486 PARAMETER ( HLFHLF = 0.5D+00 )
7487
7488 PARAMETER ( NALLWP = 39 )
7489 PARAMETER ( IDMAXP = 210 )
7490
7491 DIMENSION ICHRGE(39),AM(39)
7492
7493* particle properties (BAMJET index convention)
7494 CHARACTER*8 ANAME
7495 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
7496 & IICH(210),IIBAR(210),K1(210),K2(210)
7497
7498 DIMENSION KPTOIP(210)
7499* auxiliary common for reggeon exchange (DTUNUC 1.x)
7500 COMMON /DTQUAR/ IQECHR(-6:6),IQBCHR(-6:6),IQICHR(-6:6),
7501 & IQSCHR(-6:6),IQCCHR(-6:6),IQUCHR(-6:6),
7502 & IQTCHR(-6:6),MQUARK(3,39)
7503
7504 DIMENSION SGTCOE (5,33), IHLP (NALLWP)
7505 DIMENSION SGTCO1(5,10),SGTCO2(5,8),SGTCO3(5,15)
454792a9 7506CPH SAVE SGTCOE, IHLP
7507CPH SAVE IQFSC1, IQFSC2, IQBSC1, IQBSC2
9aaba0d6 7508 EQUIVALENCE (SGTCO1(1,1),SGTCOE(1,1))
7509 EQUIVALENCE (SGTCO2(1,1),SGTCOE(1,11))
7510 EQUIVALENCE (SGTCO3(1,1),SGTCOE(1,19))
7511
7512* Conversion from part to paprop numbering
7513 DATA KPTOIP / 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
7514 & 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 66*0,
7515 & 34, 36, 31, 32, 33, 35, 37, 5*0, 38, 5*0, 39, 19*0, 27, 28, 74*0/
7516
7517* 1=baryon, 2=pion, 3=kaon, 4=antibaryon:
7518 DATA IHLP/1,4,5*0,1,4,2*0,3,2*2,2*3,1,4,3,3*1,2,
7519 & 2*3, 2, 4*0, 3*4, 1, 4, 1, 4, 1, 4 /
7520C DATA ( ( SGTCOE (J,I), J=1,5 ), I=1,10 ) /
7521 DATA SGTCO1 /
7522* 1st reaction: gamma p total
7523 &0.147 D+00, ZERZER , ZERZER , 0.0022D+00, -0.0170D+00,
7524* 2nd reaction: gamma d total
7525 &0.300 D+00, ZERZER , ZERZER , 0.0095D+00, -0.057 D+00,
7526* 3rd reaction: pi+ p total
7527 &16.4 D+00, 19.3D+00, -0.42D+00, 0.19 D+00, ZERZER ,
7528* 4th reaction: pi- p total
7529 &33.0 D+00, 14.0D+00, -1.36D+00, 0.456 D+00, -4.03 D+00,
7530* 5th reaction: pi+/- d total
7531 &56.8 D+00, 42.2D+00, -1.45D+00, 0.65 D+00, -5.39 D+00,
7532* 6th reaction: K+ p total
7533 &18.1 D+00, ZERZER , ZERZER , 0.26 D+00, -1.0 D+00,
7534* 7th reaction: K+ n total
7535 &18.7 D+00, ZERZER , ZERZER , 0.21 D+00, -0.89 D+00,
7536* 8th reaction: K+ d total
7537 &34.2 D+00, 7.9 D+00, -2.1 D+00, 0.346 D+00, -0.99 D+00,
7538* 9th reaction: K- p total
7539 &32.1 D+00, ZERZER , ZERZER , 0.66 D+00, -5.6 D+00,
7540* 10th reaction: K- n total
7541 &25.2 D+00, ZERZER , ZERZER , 0.38 D+00, -2.9 D+00/
7542C DATA ( ( SGTCOE (J,I), J=1,5 ), I=11,18 ) /
7543 DATA SGTCO2 /
7544* 11th reaction: K- d total
7545 &57.6 D+00, ZERZER , ZERZER , 1.17 D+00, -9.5 D+00,
7546* 12th reaction: p p total
7547 &48.0 D+00, ZERZER , ZERZER , 0.522 D+00, -4.51 D+00,
7548* 13th reaction: p n total
7549 &47.30 D+00, ZERZER , ZERZER , 0.513 D+00, -4.27 D+00,
7550* 14th reaction: p d total
7551 &91.3 D+00, ZERZER , ZERZER , 1.05 D+00, -8.8 D+00,
7552* 15th reaction: pbar p total
7553 &38.4 D+00, 77.6D+00, -0.64D+00, 0.26 D+00, -1.2 D+00,
7554* 16th reaction: pbar n total
7555 &ZERZER ,133.6D+00, -0.70D+00, -1.22 D+00, 13.7 D+00,
7556* 17th reaction: pbar d total
7557 &112. D+00, 125.D+00, -1.08D+00, 1.14 D+00, -12.4 D+00,
7558* 18th reaction: Lamda p total
7559 &30.4 D+00, ZERZER , ZERZER , ZERZER , 1.6 D+00/
7560C DATA ( ( SGTCOE (J,I), J=1,5 ), I=19,33 ) /
7561 DATA SGTCO3 /
7562* 19th reaction: pi+ p elastic
7563 &ZERZER , 11.4D+00, -0.4 D+00, 0.079 D+00, ZERZER ,
7564* 20th reaction: pi- p elastic
7565 &1.76 D+00, 11.2D+00, -0.64D+00, 0.043 D+00, ZERZER ,
7566* 21st reaction: K+ p elastic
7567 &5.0 D+00, 8.1 D+00, -1.8 D+00, 0.16 D+00, -1.3 D+00,
7568* 22nd reaction: K- p elastic
7569 &7.3 D+00, ZERZER , ZERZER , 0.29 D+00, -2.40 D+00,
7570* 23rd reaction: p p elastic
7571 &11.9 D+00, 26.9D+00, -1.21D+00, 0.169 D+00, -1.85 D+00,
7572* 24th reaction: p d elastic
7573 &16.1 D+00, ZERZER , ZERZER , 0.32 D+00, -3.4 D+00,
7574* 25th reaction: pbar p elastic
7575 &10.2 D+00, 52.7D+00, -1.16D+00, 0.125 D+00, -1.28 D+00,
7576* 26th reaction: pbar p elastic bis
7577 &10.6 D+00, 53.1D+00, -1.19D+00, 0.136 D+00, -1.41 D+00,
7578* 27th reaction: pbar n elastic
7579 &36.5 D+00, ZERZER , ZERZER , ZERZER , -11.9 D+00,
7580* 28th reaction: Lamda p elastic
7581 &12.3 D+00, ZERZER , ZERZER , ZERZER , -2.4 D+00,
7582* 29th reaction: K- p ela bis
7583 &7.24 D+00, 46.0D+00, -4.71D+00, 0.279 D+00, -2.35 D+00,
7584* 30th reaction: pi- p cx
7585 &ZERZER ,0.912D+00, -1.22D+00, ZERZER , ZERZER ,
7586* 31st reaction: K- p cx
7587 &ZERZER , 3.39D+00, -1.75D+00, ZERZER , ZERZER ,
7588* 32nd reaction: K+ n cx
7589 &ZERZER , 7.18D+00, -2.01D+00, ZERZER , ZERZER ,
7590* 33rd reaction: pbar p cx
7591 &ZERZER , 18.8D+00, -2.01D+00, ZERZER , ZERZER /
7592*
7593* +-------------------------------------------------------------------*
7594 ICHRGE(KTARG)=IICH(KTARG)
7595 AM (KTARG)=AAM (KTARG)
7596* | Check for pi0 (d-dbar)
7597 IF ( KP .NE. 26 ) THEN
7598 IP = KPTOIP (KP)
7599 IF(IP.EQ.0)IP=1
7600 ICHRGE(IP)=IICH(KP)
7601 AM (IP)=AAM (KP)
7602* |
7603* +-------------------------------------------------------------------*
7604* |
7605 ELSE
7606 IP = 23
7607 ICHRGE(IP)=0
7608 END IF
7609* |
7610* +-------------------------------------------------------------------*
7611* +-------------------------------------------------------------------*
7612* | No such interactions for baryon-baryon
7613 IF ( IIBAR (KP) .GT. 0 ) THEN
7614 DT_PHNSCH = ZERZER
7615 RETURN
7616* |
7617* +-------------------------------------------------------------------*
7618* | No "annihilation" diagram possible for K+ p/n
7619 ELSE IF ( IP .EQ. 15 ) THEN
7620 DT_PHNSCH = ZERZER
7621 RETURN
7622* |
7623* +-------------------------------------------------------------------*
7624* | No "annihilation" diagram possible for K0 p/n
7625 ELSE IF ( IP .EQ. 24 ) THEN
7626 DT_PHNSCH = ZERZER
7627 RETURN
7628* |
7629* +-------------------------------------------------------------------*
7630* | No "annihilation" diagram possible for Omebar p/n
7631 ELSE IF ( IP .GE. 38 ) THEN
7632 DT_PHNSCH = ZERZER
7633 RETURN
7634 END IF
7635* |
7636* +-------------------------------------------------------------------*
7637* +-------------------------------------------------------------------*
7638* | If the momentum is larger than 50 GeV/c, compute the single
7639* | chain probability at 50 GeV/c and extrapolate to the present
7640* | momentum according to 1/sqrt(s)
7641* | sigma = sigma_sch (50) * sqrt (s(50)/s) + sigma_dch
7642* | P_sch (50) = sigma_sch (50) / ( sigma_dch + sigma_sch (50) )
7643* | sigma_dch / sigma_sch (50) = 1 / P_sch (50) - 1
7644* | sigma_dch / sigma_sch = 1 / P_sch - 1 = ( 1 / P_sch (50) - 1 )
7645* | x sqrt(s/s(50))
7646* | P_sch = 1 / [ ( 1 / P_sch (50) - 1 ) x sqrt(s/s(50)) + 1 ]
7647 IF ( PLAB .GT. 50.D+00 ) THEN
7648 PLA = 50.D+00
7649 AMPSQ = AM (IP)**2
7650 AMTSQ = AM (KTARG)**2
7651 EPROJ = SQRT ( PLAB**2 + AMPSQ )
7652 UMOSQ = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7653 EPROJ = SQRT ( PLA**2 + AMPSQ )
7654 UMO50 = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7655 UMORAT = SQRT ( UMOSQ / UMO50 )
7656* |
7657* +-------------------------------------------------------------------*
7658* | P < 3 GeV/c
7659 ELSE IF ( PLAB .LT. 3.D+00 ) THEN
7660 PLA = 3.D+00
7661 AMPSQ = AM (IP)**2
7662 AMTSQ = AM (KTARG)**2
7663 EPROJ = SQRT ( PLAB**2 + AMPSQ )
7664 UMOSQ = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7665 EPROJ = SQRT ( PLA**2 + AMPSQ )
7666 UMO50 = AMPSQ + AMTSQ + TWOTWO * AM (KTARG) * EPROJ
7667 UMORAT = SQRT ( UMOSQ / UMO50 )
7668* |
7669* +-------------------------------------------------------------------*
7670* | P < 50 GeV/c
7671 ELSE
7672 PLA = PLAB
7673 UMORAT = ONEONE
7674 END IF
7675* |
7676* +-------------------------------------------------------------------*
7677 ALGPLA = LOG (PLA)
7678* +-------------------------------------------------------------------*
7679* | Pions:
7680 IF ( IHLP (IP) .EQ. 2 ) THEN
7681 ACOF = SGTCOE (1,3)
7682 BCOF = SGTCOE (2,3)
7683 ENNE = SGTCOE (3,3)
7684 CCOF = SGTCOE (4,3)
7685 DCOF = SGTCOE (5,3)
7686* | Compute the pi+ p total cross section:
7687 SPPPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7688 & + DCOF * ALGPLA
7689 ACOF = SGTCOE (1,19)
7690 BCOF = SGTCOE (2,19)
7691 ENNE = SGTCOE (3,19)
7692 CCOF = SGTCOE (4,19)
7693 DCOF = SGTCOE (5,19)
7694* | Compute the pi+ p elastic cross section:
7695 SPPPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7696 & + DCOF * ALGPLA
7697* | Compute the pi+ p inelastic cross section:
7698 SPPPIN = SPPPTT - SPPPEL
7699 ACOF = SGTCOE (1,4)
7700 BCOF = SGTCOE (2,4)
7701 ENNE = SGTCOE (3,4)
7702 CCOF = SGTCOE (4,4)
7703 DCOF = SGTCOE (5,4)
7704* | Compute the pi- p total cross section:
7705 SPMPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7706 & + DCOF * ALGPLA
7707 ACOF = SGTCOE (1,20)
7708 BCOF = SGTCOE (2,20)
7709 ENNE = SGTCOE (3,20)
7710 CCOF = SGTCOE (4,20)
7711 DCOF = SGTCOE (5,20)
7712* | Compute the pi- p elastic cross section:
7713 SPMPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7714 & + DCOF * ALGPLA
7715* | Compute the pi- p inelastic cross section:
7716 SPMPIN = SPMPTT - SPMPEL
7717 SIGDIA = SPMPIN - SPPPIN
7718* | +----------------------------------------------------------------*
7719* | | Charged pions: besides isospin consideration it is supposed
7720* | | that (pi+ n)el is almost equal to (pi- p)el
7721* | | and (pi+ p)el " " " " (pi- n)el
7722* | | and all are almost equal among each others
7723* | | (reasonable above 5 GeV/c)
7724 IF ( ICHRGE (IP) .NE. 0 ) THEN
7725 KHELP = KTARG / 8
7726 JREAC = 3 + IP - 13 + ICHRGE (IP) * KHELP
7727 ACOF = SGTCOE (1,JREAC)
7728 BCOF = SGTCOE (2,JREAC)
7729 ENNE = SGTCOE (3,JREAC)
7730 CCOF = SGTCOE (4,JREAC)
7731 DCOF = SGTCOE (5,JREAC)
7732* | | Compute the total cross section:
7733 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7734 & + DCOF * ALGPLA
7735 JREAC = 19 + IP - 13 + ICHRGE (IP) * KHELP
7736 ACOF = SGTCOE (1,JREAC)
7737 BCOF = SGTCOE (2,JREAC)
7738 ENNE = SGTCOE (3,JREAC)
7739 CCOF = SGTCOE (4,JREAC)
7740 DCOF = SGTCOE (5,JREAC)
7741* | | Compute the elastic cross section:
7742 SHNCEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7743 & + DCOF * ALGPLA
7744* | | Compute the inelastic cross section:
7745 SHNCIN = SHNCTT - SHNCEL
7746* | | Number of diagrams:
7747 NDIAGR = 1 + IP - 13 + ICHRGE (IP) * KHELP
7748* | | Now compute the chain end (anti)quark-(anti)diquark
7749 IQFSC1 = 1 + IP - 13
7750 IQFSC2 = 0
7751 IQBSC1 = 1 + KHELP
7752 IQBSC2 = 1 + IP - 13
7753* | |
7754* | +----------------------------------------------------------------*
7755* | | pi0: besides isospin consideration it is supposed that the
7756* | | elastic cross section is not very different from
7757* | | pi+ p and/or pi- p (reasonable above 5 GeV/c)
7758 ELSE
7759 KHELP = KTARG / 8
7760 K2HLP = ( KP - 23 ) / 3
7761* | | Number of diagrams:
7762* | | For u ubar (k2hlp=0):
7763* NDIAGR = 2 - KHELP
7764* | | For d dbar (k2hlp=1):
7765* NDIAGR = 2 + KHELP - K2HLP
7766 NDIAGR = 2 + KHELP * ( 2 * K2HLP - 1 ) - K2HLP
7767 SHNCIN = HLFHLF * ( SPPPIN + SPMPIN )
7768* | | Now compute the chain end (anti)quark-(anti)diquark
7769 IQFSC1 = 1 + K2HLP
7770 IQFSC2 = 0
7771 IQBSC1 = 1 + KHELP
7772 IQBSC2 = 2 - K2HLP
7773 END IF
7774* | |
7775* | +----------------------------------------------------------------*
7776* | end pi's
7777* +-------------------------------------------------------------------*
7778* | Kaons:
7779 ELSE IF ( IHLP (IP) .EQ. 3 ) THEN
7780 ACOF = SGTCOE (1,6)
7781 BCOF = SGTCOE (2,6)
7782 ENNE = SGTCOE (3,6)
7783 CCOF = SGTCOE (4,6)
7784 DCOF = SGTCOE (5,6)
7785* | Compute the K+ p total cross section:
7786 SKPPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7787 & + DCOF * ALGPLA
7788 ACOF = SGTCOE (1,21)
7789 BCOF = SGTCOE (2,21)
7790 ENNE = SGTCOE (3,21)
7791 CCOF = SGTCOE (4,21)
7792 DCOF = SGTCOE (5,21)
7793* | Compute the K+ p elastic cross section:
7794 SKPPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7795 & + DCOF * ALGPLA
7796* | Compute the K+ p inelastic cross section:
7797 SKPPIN = SKPPTT - SKPPEL
7798 ACOF = SGTCOE (1,9)
7799 BCOF = SGTCOE (2,9)
7800 ENNE = SGTCOE (3,9)
7801 CCOF = SGTCOE (4,9)
7802 DCOF = SGTCOE (5,9)
7803* | Compute the K- p total cross section:
7804 SKMPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7805 & + DCOF * ALGPLA
7806 ACOF = SGTCOE (1,22)
7807 BCOF = SGTCOE (2,22)
7808 ENNE = SGTCOE (3,22)
7809 CCOF = SGTCOE (4,22)
7810 DCOF = SGTCOE (5,22)
7811* | Compute the K- p elastic cross section:
7812 SKMPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7813 & + DCOF * ALGPLA
7814* | Compute the K- p inelastic cross section:
7815 SKMPIN = SKMPTT - SKMPEL
7816 SIGDIA = HLFHLF * ( SKMPIN - SKPPIN )
7817* | +----------------------------------------------------------------*
7818* | | Charged Kaons: actually only K-
7819 IF ( ICHRGE (IP) .NE. 0 ) THEN
7820 KHELP = KTARG / 8
7821* | | +-------------------------------------------------------------*
7822* | | | Proton target:
7823 IF ( KHELP .EQ. 0 ) THEN
7824 SHNCIN = SKMPIN
7825* | | | Number of diagrams:
7826 NDIAGR = 2
7827* | | |
7828* | | +-------------------------------------------------------------*
7829* | | | Neutron target: besides isospin consideration it is supposed
7830* | | | that (K- n)el is almost equal to (K- p)el
7831* | | | (reasonable above 5 GeV/c)
7832 ELSE
7833 ACOF = SGTCOE (1,10)
7834 BCOF = SGTCOE (2,10)
7835 ENNE = SGTCOE (3,10)
7836 CCOF = SGTCOE (4,10)
7837 DCOF = SGTCOE (5,10)
7838* | | | Compute the total cross section:
7839 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7840 & + DCOF * ALGPLA
7841* | | | Compute the elastic cross section:
7842 SHNCEL = SKMPEL
7843* | | | Compute the inelastic cross section:
7844 SHNCIN = SHNCTT - SHNCEL
7845* | | | Number of diagrams:
7846 NDIAGR = 1
7847 END IF
7848* | | |
7849* | | +-------------------------------------------------------------*
7850* | | Now compute the chain end (anti)quark-(anti)diquark
7851 IQFSC1 = 3
7852 IQFSC2 = 0
7853 IQBSC1 = 1 + KHELP
7854 IQBSC2 = 2
7855* | |
7856* | +----------------------------------------------------------------*
7857* | | K0's: (actually only K0bar)
7858 ELSE
7859 KHELP = KTARG / 8
7860* | | +-------------------------------------------------------------*
7861* | | | Proton target: (K0bar p)in supposed to be given by
7862* | | | (K- p)in - Sig_diagr
7863 IF ( KHELP .EQ. 0 ) THEN
7864 SHNCIN = SKMPIN - SIGDIA
7865* | | | Number of diagrams:
7866 NDIAGR = 1
7867* | | |
7868* | | +-------------------------------------------------------------*
7869* | | | Neutron target: (K0bar n)in supposed to be given by
7870* | | | (K- n)in + Sig_diagr
7871* | | | besides isospin consideration it is supposed
7872* | | | that (K- n)el is almost equal to (K- p)el
7873* | | | (reasonable above 5 GeV/c)
7874 ELSE
7875 ACOF = SGTCOE (1,10)
7876 BCOF = SGTCOE (2,10)
7877 ENNE = SGTCOE (3,10)
7878 CCOF = SGTCOE (4,10)
7879 DCOF = SGTCOE (5,10)
7880* | | | Compute the total cross section:
7881 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7882 & + DCOF * ALGPLA
7883* | | | Compute the elastic cross section:
7884 SHNCEL = SKMPEL
7885* | | | Compute the inelastic cross section:
7886 SHNCIN = SHNCTT - SHNCEL + SIGDIA
7887* | | | Number of diagrams:
7888 NDIAGR = 2
7889 END IF
7890* | | |
7891* | | +-------------------------------------------------------------*
7892* | | Now compute the chain end (anti)quark-(anti)diquark
7893 IQFSC1 = 3
7894 IQFSC2 = 0
7895 IQBSC1 = 1
7896 IQBSC2 = 1 + KHELP
7897 END IF
7898* | |
7899* | +----------------------------------------------------------------*
7900* | end Kaon's
7901* +-------------------------------------------------------------------*
7902* | Antinucleons:
7903 ELSE IF ( IHLP (IP) .EQ. 4 .AND. IP .LE. 9 ) THEN
7904* | For momenta between 3 and 5 GeV/c the use of tabulated data
7905* | should be implemented!
7906 ACOF = SGTCOE (1,15)
7907 BCOF = SGTCOE (2,15)
7908 ENNE = SGTCOE (3,15)
7909 CCOF = SGTCOE (4,15)
7910 DCOF = SGTCOE (5,15)
7911* | Compute the pbar p total cross section:
7912 SAPPTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7913 & + DCOF * ALGPLA
7914 IF ( PLA .LT. FIVFIV ) THEN
7915 JREAC = 26
7916 ELSE
7917 JREAC = 25
7918 END IF
7919 ACOF = SGTCOE (1,JREAC)
7920 BCOF = SGTCOE (2,JREAC)
7921 ENNE = SGTCOE (3,JREAC)
7922 CCOF = SGTCOE (4,JREAC)
7923 DCOF = SGTCOE (5,JREAC)
7924* | Compute the pbar p elastic cross section:
7925 SAPPEL = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7926 & + DCOF * ALGPLA
7927* | Compute the pbar p inelastic cross section:
7928 SAPPIN = SAPPTT - SAPPEL
7929 ACOF = SGTCOE (1,12)
7930 BCOF = SGTCOE (2,12)
7931 ENNE = SGTCOE (3,12)
7932 CCOF = SGTCOE (4,12)
7933 DCOF = SGTCOE (5,12)
7934* | Compute the p p total cross section:
7935 SPPTOT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7936 & + DCOF * ALGPLA
7937 ACOF = SGTCOE (1,23)
7938 BCOF = SGTCOE (2,23)
7939 ENNE = SGTCOE (3,23)
7940 CCOF = SGTCOE (4,23)
7941 DCOF = SGTCOE (5,23)
7942* | Compute the p p elastic cross section:
7943 SPPELA = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7944 & + DCOF * ALGPLA
7945* | Compute the K- p inelastic cross section:
7946 SPPINE = SPPTOT - SPPELA
7947 SIGDIA = ( SAPPIN - SPPINE ) / FIVFIV
7948 KHELP = KTARG / 8
7949* | +----------------------------------------------------------------*
7950* | | Pbar:
7951 IF ( ICHRGE (IP) .NE. 0 ) THEN
7952 NDIAGR = 5 - KHELP
7953* | | +-------------------------------------------------------------*
7954* | | | Proton target:
7955 IF ( KHELP .EQ. 0 ) THEN
7956* | | | Number of diagrams:
7957 SHNCIN = SAPPIN
7958 PUUBAR = 0.8D+00
7959* | | |
7960* | | +-------------------------------------------------------------*
7961* | | | Neutron target: it is supposed that (ap n)el is almost equal
7962* | | | to (ap p)el (reasonable above 5 GeV/c)
7963 ELSE
7964 ACOF = SGTCOE (1,16)
7965 BCOF = SGTCOE (2,16)
7966 ENNE = SGTCOE (3,16)
7967 CCOF = SGTCOE (4,16)
7968 DCOF = SGTCOE (5,16)
7969* | | | Compute the total cross section:
7970 SHNCTT = ACOF + BCOF * PLA**ENNE + CCOF * ALGPLA**2
7971 & + DCOF * ALGPLA
7972* | | | Compute the elastic cross section:
7973 SHNCEL = SAPPEL
7974* | | | Compute the inelastic cross section:
7975 SHNCIN = SHNCTT - SHNCEL
7976 PUUBAR = HLFHLF
7977 END IF
7978* | | |
7979* | | +-------------------------------------------------------------*
7980* | | Now compute the chain end (anti)quark-(anti)diquark
7981* | | there are different possibilities, make a random choiche:
7982 IQFSC1 = -1
7983 RNCHEN = DT_RNDM(PUUBAR)
7984 IF ( RNCHEN .LT. PUUBAR ) THEN
7985 IQFSC2 = -2
7986 ELSE
7987 IQFSC2 = -1
7988 END IF
7989 IQBSC1 = -IQFSC1 + KHELP
7990 IQBSC2 = -IQFSC2
7991* | |
7992* | +----------------------------------------------------------------*
7993* | | nbar:
7994 ELSE
7995 NDIAGR = 4 + KHELP
7996* | | +-------------------------------------------------------------*
7997* | | | Proton target: (nbar p)in supposed to be given by
7998* | | | (pbar p)in - Sig_diagr
7999 IF ( KHELP .EQ. 0 ) THEN
8000 SHNCIN = SAPPIN - SIGDIA
8001 PDDBAR = HLFHLF
8002* | | |
8003* | | +-------------------------------------------------------------*
8004* | | | Neutron target: (nbar n)el is supposed to be equal to
8005* | | | (pbar p)el (reasonable above 5 GeV/c)
8006 ELSE
8007* | | | Compute the total cross section:
8008 SHNCTT = SAPPTT
8009* | | | Compute the elastic cross section:
8010 SHNCEL = SAPPEL
8011* | | | Compute the inelastic cross section:
8012 SHNCIN = SHNCTT - SHNCEL
8013 PDDBAR = 0.8D+00
8014 END IF
8015* | | |
8016* | | +-------------------------------------------------------------*
8017* | | Now compute the chain end (anti)quark-(anti)diquark
8018* | | there are different possibilities, make a random choiche:
8019 IQFSC1 = -2
8020 RNCHEN = DT_RNDM(RNCHEN)
8021 IF ( RNCHEN .LT. PDDBAR ) THEN
8022 IQFSC2 = -1
8023 ELSE
8024 IQFSC2 = -2
8025 END IF
8026 IQBSC1 = -IQFSC1 + KHELP - 1
8027 IQBSC2 = -IQFSC2
8028 END IF
8029* | |
8030* | +----------------------------------------------------------------*
8031* |
8032* +-------------------------------------------------------------------*
8033* | Others: not yet implemented
8034 ELSE
8035 SIGDIA = ZERZER
8036 SHNCIN = ONEONE
8037 NDIAGR = 0
8038 DT_PHNSCH = ZERZER
8039 RETURN
8040 END IF
8041* | end others
8042* +-------------------------------------------------------------------*
8043 DT_PHNSCH = NDIAGR * SIGDIA / SHNCIN
8044 IQECHC = IQECHR (IQFSC1) + IQECHR (IQFSC2) + IQECHR (IQBSC1)
8045 & + IQECHR (IQBSC2)
8046 IQBCHC = IQBCHR (IQFSC1) + IQBCHR (IQFSC2) + IQBCHR (IQBSC1)
8047 & + IQBCHR (IQBSC2)
8048 IQECHC = IQECHC / 3
8049 IQBCHC = IQBCHC / 3
8050 IQSCHC = IQSCHR (IQFSC1) + IQSCHR (IQFSC2) + IQSCHR (IQBSC1)
8051 & + IQSCHR (IQBSC2)
8052 IQSPRO = IQSCHR (MQUARK(1,IP)) + IQSCHR (MQUARK(2,IP))
8053 & + IQSCHR (MQUARK(3,IP))
8054* +-------------------------------------------------------------------*
8055* | Consistency check:
8056 IF ( DT_PHNSCH .LE. ZERZER .OR. DT_PHNSCH .GT. ONEONE ) THEN
8057 WRITE (LUNOUT,*)' *** Phnsch,kp,ktarg,pla',
8058 & DT_PHNSCH,KP,KTARG,PLA,' ****'
8059 WRITE (LUNERR,*)' *** Phnsch,kp,ktarg,pla',
8060 & DT_PHNSCH,KP,KTARG,PLA,' ****'
8061 DT_PHNSCH = MAX ( DT_PHNSCH, ZERZER )
8062 DT_PHNSCH = MIN ( DT_PHNSCH, ONEONE )
8063 END IF
8064* |
8065* +-------------------------------------------------------------------*
8066* +-------------------------------------------------------------------*
8067* | Consistency check:
8068 IF ( IQSPRO .NE. IQSCHC .OR. ICHRGE (IP) + ICHRGE (KTARG)
8069 & .NE. IQECHC .OR. IIBAR (KP) + IIBAR (KTARG) .NE. IQBCHC) THEN
8070 WRITE (LUNOUT,*)
8071 &' *** Phnsch,iqspro,iqschc,ichrge,iqechc,ibar,iqbchc,ktarg',
8072 & IQSPRO,IQSCHC,ICHRGE(IP),IQECHC,IIBAR(KP),IQBCHC,KTARG
8073 WRITE (LUNERR,*)
8074 &' *** Phnsch,iqspro,iqschc,ichrge,iqechc,ibar,iqbchc,ktarg',
8075 & IQSPRO,IQSCHC,ICHRGE(IP),IQECHC,IIBAR(KP),IQBCHC,KTARG
8076 END IF
8077* |
8078* +-------------------------------------------------------------------*
8079* P_sch = 1 / [ ( 1 / P_sch (50) - 1 ) x sqrt(s/s(50)) + 1 ]
8080 IF ( UMORAT .GT. ONEPLS )
8081 & DT_PHNSCH = ONEONE / ( ( ONEONE / DT_PHNSCH
8082 & - ONEONE ) * UMORAT + ONEONE )
8083 RETURN
8084*
8085 ENTRY DT_SCHQUA ( JQFSC1, JQFSC2, JQBSC1, JQBSC2 )
8086 DT_SCHQUA = ONEONE
8087 JQFSC1 = IQFSC1
8088 JQFSC2 = IQFSC2
8089 JQBSC1 = IQBSC1
8090 JQBSC2 = IQBSC2
8091*=== End of function Phnsch ===========================================*
8092 RETURN
8093 END
8094
8095*$ CREATE DT_RESPT.FOR
8096*COPY DT_RESPT
8097*
8098*===respt==============================================================*
8099*
8100 SUBROUTINE DT_RESPT
8101
8102************************************************************************
8103* Check DTEVT1 for two-resonance systems and sample intrinsic p_t. *
8104* This version dated 18.01.95 is written by S. Roesler *
8105************************************************************************
8106
8107 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8108 SAVE
8109 PARAMETER ( LINP = 10 ,
8110 & LOUT = 6 ,
8111 & LDAT = 9 )
8112 PARAMETER (TINY7=1.0D-7,TINY3=1.0D-3)
8113
8114* event history
8115 PARAMETER (NMXHKK=200000)
8116 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8117 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8118 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8119* extended event history
8120 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8121 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8122 & IHIST(2,NMXHKK)
8123
8124* get index of first chain
8125 DO 1 I=NPOINT(3),NHKK
8126 IF (IDHKK(I).EQ.88888) THEN
8127 NC = I
8128 GOTO 2
8129 ENDIF
8130 1 CONTINUE
8131
8132 2 CONTINUE
8133 IF ((IDHKK(NC).EQ.88888).AND.(IDHKK(NC+3).EQ.88888)) THEN
8134C WRITE(LOUT,*)NC,NC+3,IDRES(NC),IDRES(NC+3)
8135* skip VV-,SS- systems
8136 IF ((IDCH(NC ).NE.1).AND.(IDCH(NC ).NE.8).AND.
8137 & (IDCH(NC+3).NE.1).AND.(IDCH(NC+3).NE.8)) THEN
8138* check if both "chains" are resonances
8139 IF ((IDRES(NC).NE.0).AND.(IDRES(NC+3).NE.0)) THEN
8140 CALL DT_SAPTRE(NC,NC+3)
8141 ENDIF
8142 ENDIF
8143 ELSE
8144 GOTO 3
8145 ENDIF
8146 NC = NC+6
8147 GOTO 2
8148
8149 3 CONTINUE
8150
8151 RETURN
8152 END
8153
8154*$ CREATE DT_EVTRES.FOR
8155*COPY DT_EVTRES
8156*
8157*===evtres=============================================================*
8158*
8159 SUBROUTINE DT_EVTRES(IREJ)
8160
8161************************************************************************
8162* This version dated 14.12.94 is written by S. Roesler *
8163************************************************************************
8164
8165 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8166 SAVE
8167 PARAMETER ( LINP = 10 ,
8168 & LOUT = 6 ,
8169 & LDAT = 9 )
8170 PARAMETER (TINY5=1.0D-5,TINY10=1.0D-10)
8171
8172* event history
8173 PARAMETER (NMXHKK=200000)
8174 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8175 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8176 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8177* extended event history
8178 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8179 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8180 & IHIST(2,NMXHKK)
8181* flags for input different options
8182 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
8183 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
8184 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
8185* particle properties (BAMJET index convention)
8186 CHARACTER*8 ANAME
8187 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
8188 & IICH(210),IIBAR(210),K1(210),K2(210)
8189
8190 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),IFP(2),IFT(2)
8191
8192 IREJ = 0
8193
8194 DO 1 I=NPOINT(3),NHKK
8195 IF (ABS(IDRES(I)).GE.100) THEN
8196 AMMX = 0.0D0
8197 DO 2 J=NPOINT(3),NHKK
8198 IF (IDHKK(J).EQ.88888) THEN
8199 IF (PHKK(5,J).GT.AMMX) THEN
8200 AMMX = PHKK(5,J)
8201 IMMX = J
8202 ENDIF
8203 ENDIF
8204 2 CONTINUE
8205 IF (IDRES(IMMX).NE.0) THEN
8206 IF (IOULEV(3).GT.0) THEN
8207 WRITE(LOUT,'(1X,A)')
8208 & 'EVTRES: no chain for correc. found'
8209C GOTO 6
8210 GOTO 9999
8211 ELSE
8212 GOTO 9999
8213 ENDIF
8214 ENDIF
8215 IMO11 = JMOHKK(1,I)
8216 IMO12 = JMOHKK(2,I)
8217 IF (PHKK(3,IMO11).LT.0.0D0) THEN
8218 IMO11 = JMOHKK(2,I)
8219 IMO12 = JMOHKK(1,I)
8220 ENDIF
8221 IMO21 = JMOHKK(1,IMMX)
8222 IMO22 = JMOHKK(2,IMMX)
8223 IF (PHKK(3,IMO21).LT.0.0D0) THEN
8224 IMO21 = JMOHKK(2,IMMX)
8225 IMO22 = JMOHKK(1,IMMX)
8226 ENDIF
8227 AMCH1 = PHKK(5,I)
8228 AMCH1N = AAM(IDXRES(I))
8229
8230 IFPR1 = IDHKK(IMO11)
8231 IFPR2 = IDHKK(IMO21)
8232 IFTA1 = IDHKK(IMO12)
8233 IFTA2 = IDHKK(IMO22)
8234 DO 4 J=1,4
8235 PP1(J) = PHKK(J,IMO11)
8236 PP2(J) = PHKK(J,IMO21)
8237 PT1(J) = PHKK(J,IMO12)
8238 PT2(J) = PHKK(J,IMO22)
8239 4 CONTINUE
8240* store initial configuration for energy-momentum cons. check
8241 IF (LEMCCK) CALL DT_EMC1(PP1,PP2,PT1,PT2,1,1,IREJ1)
8242* correct kinematics of second chain
8243 CALL DT_CHKINE(PP1,IFPR1,PP2,IFPR2,PT1,IFTA1,PT2,IFTA2,
8244 & AMCH1,AMCH1N,AMCH2,IREJ1)
8245 IF (IREJ1.NE.0) GOTO 9999
8246* check now this chain for resonance mass
8247 IFP(1) = IDT_IPDG2B(IFPR2,1,2)
8248 IFP(2) = 0
8249 IF (ABS(IFPR2).GE.1000) IFP(2) = IDT_IPDG2B(IFPR2,2,2)
8250 IFT(1) = IDT_IPDG2B(IFTA2,1,2)
8251 IFT(2) = 0
8252 IF (ABS(IFTA2).GE.1000) IFT(2) = IDT_IPDG2B(IFTA2,2,2)
8253 IDCH2 = 2
8254 IF ((IFP(2).EQ.0).AND.(IFT(2).EQ.0)) IDCH2 = 1
8255 IF ((IFP(2).NE.0).AND.(IFT(2).NE.0)) IDCH2 = 3
8256 CALL DT_CH2RES(IFP(1),IFP(2),IFT(1),IFT(2),IDR2,IDXR2,
8257 & AMCH2,AMCH2N,IDCH2,IREJ1)
8258 IF ((IREJ1.NE.0).OR.(IDR2.NE.0)) THEN
8259 IF (IOULEV(1).GT.0)
8260 & WRITE(LOUT,*) ' correction for resonance not poss.'
8261**sr test
8262C GOTO 1
8263C GOTO 9999
8264**
8265 ENDIF
8266* store final configuration for energy-momentum cons. check
8267 IF (LEMCCK) THEN
8268 CALL DT_EMC1(PP1,PP2,PT1,PT2,-2,1,IREJ1)
8269 CALL DT_EMC1(PP1,PP2,PT1,PT2,3,1,IREJ1)
8270 IF (IREJ1.NE.0) GOTO 9999
8271 ENDIF
8272 DO 5 J=1,4
8273 PHKK(J,IMO11) = PP1(J)
8274 PHKK(J,IMO21) = PP2(J)
8275 PHKK(J,IMO12) = PT1(J)
8276 PHKK(J,IMO22) = PT2(J)
8277 5 CONTINUE
8278* correct entries of chains
8279 DO 3 K=1,4
8280 PHKK(K,I) = PHKK(K,IMO11)+PHKK(K,IMO12)
8281 PHKK(K,IMMX) = PHKK(K,IMO21)+PHKK(K,IMO22)
8282 3 CONTINUE
8283 AM1 = PHKK(4,I)**2-PHKK(1,I)**2-PHKK(2,I)**2-PHKK(3,I)**2
8284 AM2 = PHKK(4,IMMX)**2-PHKK(1,IMMX)**2-PHKK(2,IMMX)**2-
8285 & PHKK(3,IMMX)**2
8286* ?? the following should now be obsolete
8287**sr test
8288C IF ((AM1.LT.0.0D0).OR.(AM2.LT.1.0D0)) THEN
8289 IF ((AM1.LT.0.0D0).OR.(AM2.LT.0.0D0)) THEN
8290**
8291 WRITE(LOUT,'(1X,A,4G10.3)')
8292 & 'EVTRES: inonsistent mass-corr.',AM1,AM2
8293C GOTO 9999
8294 GOTO 1
8295 ENDIF
8296 PHKK(5,I) = SQRT(AM1)
8297 PHKK(5,IMMX) = SQRT(AM2)
8298 IDRES(I) = IDRES(I)/100
8299 IF ((ABS(PHKK(5,I)-AMCH1N).GT.TINY5).OR.
8300 & (ABS(PHKK(5,IMMX)-AMCH2).GT.TINY5)) THEN
8301 WRITE(LOUT,'(1X,A,4G10.3)')
8302 & 'EVTRES: inconsistent chain-masses',
8303 & PHKK(5,I),AMCH1N,PHKK(5,IMMX),AMCH2
8304 GOTO 9999
8305 ENDIF
8306 ENDIF
8307 1 CONTINUE
8308 6 CONTINUE
8309 RETURN
8310
8311 9999 CONTINUE
8312 IREJ = 1
8313 RETURN
8314 END
8315
8316*$ CREATE DT_GETSPT.FOR
8317*COPY DT_GETSPT
8318*
8319*===getspt=============================================================*
8320*
8321 SUBROUTINE DT_GETSPT(PP1I,IFPR1,IFP1,PP2I,IFPR2,IFP2,
8322 & PT1I,IFTA1,IFT1,PT2I,IFTA2,IFT2,
8323 & AM1,IDCH1,AM2,IDCH2,IDCHAI,IREJ)
8324
8325************************************************************************
8326* This version dated 12.12.94 is written by S. Roesler *
8327************************************************************************
8328
8329 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8330 SAVE
8331 PARAMETER ( LINP = 10 ,
8332 & LOUT = 6 ,
8333 & LDAT = 9 )
8334 PARAMETER (TINY10=1.0D-10,TINY5=1.0D-5,TINY3=1.0D-3,ZERO=0.0D0)
8335
8336* various options for treatment of partons (DTUNUC 1.x)
8337* (chain recombination, Cronin,..)
8338 LOGICAL LCO2CR,LINTPT
8339 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
8340 & LCO2CR,LINTPT
8341* flags for input different options
8342 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
8343 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
8344 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
8345* flags for diffractive interactions (DTUNUC 1.x)
8346 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
8347
8348 DIMENSION PP1(4),PP1I(4),PP2(4),PP2I(4),PT1(4),PT1I(4),
8349 & PT2(4),PT2I(4),P1(4),P2(4),
8350 & IFP1(2),IFP2(2),IFT1(2),IFT2(2),
8351 & PTOTI(4),PTOTF(4),DIFF(4)
8352
8353 IC = 0
8354 IREJ = 0
8355C B33P = 4.0D0
8356C B33T = 4.0D0
8357C IF ((IDCHAI.EQ.6).OR.(IDCHAI.EQ.7).OR.(IDCHAI.EQ.8)) B33P = 2.0D0
8358C IF ((IDCHAI.EQ.4).OR.(IDCHAI.EQ.5).OR.(IDCHAI.EQ.8)) B33T = 2.0D0
8359 REDU = 1.0D0
8360C B33P = 3.5D0
8361C B33T = 3.5D0
8362 B33P = 4.0D0
8363 B33T = 4.0D0
8364 IF (IDIFF.NE.0) THEN
8365 B33P = 16.0D0
8366 B33T = 16.0D0
8367 ENDIF
8368
8369 DO 1 I=1,4
8370 PTOTI(I) = PP1I(I)+PP2I(I)+PT1I(I)+PT2I(I)
8371 PP1(I) = PP1I(I)
8372 PP2(I) = PP2I(I)
8373 PT1(I) = PT1I(I)
8374 PT2(I) = PT2I(I)
8375 1 CONTINUE
8376* get initial chain masses
8377 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
8378 & +(PP1(3)+PT1(3))**2)
8379 ECH = PP1(4)+PT1(4)
8380 AM1 = (ECH+PTOCH)*(ECH-PTOCH)
8381 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
8382 & +(PP2(3)+PT2(3))**2)
8383 ECH = PP2(4)+PT2(4)
8384 AM2 = (ECH+PTOCH)*(ECH-PTOCH)
8385 IF ((AM1.LT.0.0D0).OR.(AM2.LT.0.0D0)) THEN
8386 IF (IOULEV(1).GT.0)
8387 & WRITE(LOUT,'(1X,A,2G10.3)')'GETSPT: too small chain masses 1',
8388 & AM1,AM2
8389 GOTO 9999
8390 ENDIF
8391 AM1 = SQRT(AM1)
8392 AM2 = SQRT(AM2)
8393 AM1N = ZERO
8394 AM2N = ZERO
8395
8396 MODE = 0
8397C IF ((AM1.GE.3.0D0).AND.(AM2.GE.3.0D0)) THEN
8398C MODE = 0
8399C ELSE
8400C MODE = 1
8401C IF (AM1.LT.0.6) THEN
8402C B33P = 10.0D0
8403C ELSEIF ((AM1.GE.1.2).AND.(AM1.LT.3.0D0)) THEN
8404CC B33P = 4.0D0
8405C ENDIF
8406C IF (AM2.LT.0.6) THEN
8407C B33T = 10.0D0
8408C ELSEIF ((AM2.GE.1.2).AND.(AM2.LT.3.0D0)) THEN
8409CC B33T = 4.0D0
8410C ENDIF
8411C ENDIF
8412
8413* check chain masses for very low mass chains
8414C CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDUM,IDUM,
8415C & AM1,DUM,-IDCH1,IREJ1)
8416C CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDUM,IDUM,
8417C & AM2,DUM,-IDCH2,IREJ2)
8418C IF ((IREJ1.NE.0).OR.(IREJ2.NE.0)) THEN
8419C B33P = 20.0D0
8420C B33T = 20.0D0
8421C ENDIF
8422
8423 JMSHL = IMSHL
8424
8425 2 CONTINUE
8426 IC = IC+1
8427 IF (MOD(IC,15).EQ.0) B33P = 2.0D0*B33P
8428 IF (MOD(IC,15).EQ.0) B33T = 2.0D0*B33T
8429 IF (MOD(IC,18).EQ.0) REDU = 0.0D0
8430C IF (MOD(IC,19).EQ.0) JMSHL = 0
8431 IF (MOD(IC,20).EQ.0) GOTO 7
8432C WRITE(LOUT,'(1X,A)') 'GETSPT: rejection '
8433C RETURN
8434C GOTO 9999
8435C ENDIF
8436
8437* get transverse momentum
8438 IF (LINTPT) THEN
8439 ES = -2.0D0/(B33P**2)
8440 & *LOG(ABS(DT_RNDM(AM1)*DT_RNDM(AM2))+TINY10)
8441 HPSP = SQRT(ES*ES+2.0D0*ES*0.94D0)
8442 HPSP = HPSP*REDU
8443 ES = -2.0D0/(B33T**2)
8444 & *LOG(ABS(DT_RNDM(AM1)*DT_RNDM(AM2))+TINY10)
8445 HPST = SQRT(ES*ES+2.0D0*ES*0.94D0)
8446 HPST = HPST*REDU
8447 ELSE
8448 HPSP = ZERO
8449 HPST = ZERO
8450 ENDIF
8451 CALL DT_DSFECF(SFE1,CFE1)
8452 CALL DT_DSFECF(SFE2,CFE2)
8453 IF (MODE.EQ.0) THEN
8454 PP1(1) = PP1I(1)+HPSP*CFE1
8455 PP1(2) = PP1I(2)+HPSP*SFE1
8456 PP2(1) = PP2I(1)-HPSP*CFE1
8457 PP2(2) = PP2I(2)-HPSP*SFE1
8458 PT1(1) = PT1I(1)+HPST*CFE2
8459 PT1(2) = PT1I(2)+HPST*SFE2
8460 PT2(1) = PT2I(1)-HPST*CFE2
8461 PT2(2) = PT2I(2)-HPST*SFE2
8462 ELSE
8463 PP1(1) = PP1I(1)+HPSP*CFE1
8464 PP1(2) = PP1I(2)+HPSP*SFE1
8465 PT1(1) = PT1I(1)-HPSP*CFE1
8466 PT1(2) = PT1I(2)-HPSP*SFE1
8467 PP2(1) = PP2I(1)+HPST*CFE2
8468 PP2(2) = PP2I(2)+HPST*SFE2
8469 PT2(1) = PT2I(1)-HPST*CFE2
8470 PT2(2) = PT2I(2)-HPST*SFE2
8471 ENDIF
8472
8473* put partons on mass shell
8474 XMP1 = 0.0D0
8475 XMT1 = 0.0D0
8476 IF (JMSHL.EQ.1) THEN
8477 XMP1 = PYMASS(IFPR1)
8478 XMT1 = PYMASS(IFTA1)
8479 ENDIF
8480 CALL DT_MASHEL(PP1,PT1,XMP1,XMT1,P1,P2,IREJ1)
8481 IF (IREJ1.NE.0) GOTO 2
8482 DO 3 I=1,4
8483 PTOTF(I) = P1(I)+P2(I)
8484 PP1(I) = P1(I)
8485 PT1(I) = P2(I)
8486 3 CONTINUE
8487 XMP2 = 0.0D0
8488 XMT2 = 0.0D0
8489 IF (JMSHL.EQ.1) THEN
8490 XMP2 = PYMASS(IFPR2)
8491 XMT2 = PYMASS(IFTA2)
8492 ENDIF
8493 CALL DT_MASHEL(PP2,PT2,XMP2,XMT2,P1,P2,IREJ1)
8494 IF (IREJ1.NE.0) GOTO 2
8495 DO 4 I=1,4
8496 PTOTF(I) = PTOTF(I)+P1(I)+P2(I)
8497 PP2(I) = P1(I)
8498 PT2(I) = P2(I)
8499 4 CONTINUE
8500
8501* check consistency
8502 DO 5 I=1,4
8503 DIFF(I) = PTOTI(I)-PTOTF(I)
8504 5 CONTINUE
8505 IF ((ABS(DIFF(1)).GT.TINY5).OR.(ABS(DIFF(2)).GT.TINY5).OR.
8506 & (ABS(DIFF(3)).GT.TINY5).OR.(ABS(DIFF(4)).GT.TINY5)) THEN
8507 WRITE(LOUT,'(1X,A,4G10.3)') 'GETSPT: inconsistencies ',DIFF
8508 GOTO 9999
8509 ENDIF
8510 PTOTP1 = SQRT(PP1(1)**2+PP1(2)**2+PP1(3)**2)
8511 AMP1 = SQRT(ABS( (PP1(4)-PTOTP1)*(PP1(4)+PTOTP1) ))
8512 PTOTP2 = SQRT(PP2(1)**2+PP2(2)**2+PP2(3)**2)
8513 AMP2 = SQRT(ABS( (PP2(4)-PTOTP2)*(PP2(4)+PTOTP2) ))
8514 PTOTT1 = SQRT(PT1(1)**2+PT1(2)**2+PT1(3)**2)
8515 AMT1 = SQRT(ABS( (PT1(4)-PTOTT1)*(PT1(4)+PTOTT1) ))
8516 PTOTT2 = SQRT(PT2(1)**2+PT2(2)**2+PT2(3)**2)
8517 AMT2 = SQRT(ABS( (PT2(4)-PTOTT2)*(PT2(4)+PTOTT2) ))
8518 IF ((ABS(AMP1-XMP1).GT.TINY3).OR.(ABS(AMP2-XMP2).GT.TINY3).OR.
8519 & (ABS(AMT1-XMT1).GT.TINY3).OR.(ABS(AMT2-XMT2).GT.TINY3))
8520 & THEN
8521 WRITE(LOUT,'(1X,A,2(4G10.3,/))')
8522 & 'GETSPT: inconsistent masses',
8523 & AMP1,XMP1,AMP2,XMP2,AMT1,XMT1,AMT2,XMT2
8524* sr 22.11.00: commented. It should only have inconsistent masses for
8525* ultrahigh energies due to rounding problems
8526C GOTO 9999
8527 ENDIF
8528
8529* get chain masses
8530 PTOCH = SQRT((PP1(1)+PT1(1))**2+(PP1(2)+PT1(2))**2
8531 & +(PP1(3)+PT1(3))**2)
8532 ECH = PP1(4)+PT1(4)
8533 AM1N = (ECH+PTOCH)*(ECH-PTOCH)
8534 PTOCH = SQRT((PP2(1)+PT2(1))**2+(PP2(2)+PT2(2))**2
8535 & +(PP2(3)+PT2(3))**2)
8536 ECH = PP2(4)+PT2(4)
8537 AM2N = (ECH+PTOCH)*(ECH-PTOCH)
8538 IF ((AM1N.LT.0.0D0).OR.(AM2N.LT.0.0D0)) THEN
8539 IF (IOULEV(1).GT.0)
8540 & WRITE(LOUT,'(1X,A,2G10.3)')'GETSPT: too small chain masses 2',
8541 & AM1N,AM2N
8542 GOTO 2
8543 ENDIF
8544 AM1N = SQRT(AM1N)
8545 AM2N = SQRT(AM2N)
8546
8547* check chain masses for very low mass chains
8548 CALL DT_CH2RES(IFP1(1),IFP1(2),IFT1(1),IFT1(2),IDUM,IDUM,
8549 & AM1N,DUM,-IDCH1,IREJ1)
8550 IF (IREJ1.NE.0) GOTO 2
8551 CALL DT_CH2RES(IFP2(1),IFP2(2),IFT2(1),IFT2(2),IDUM,IDUM,
8552 & AM2N,DUM,-IDCH2,IREJ2)
8553 IF (IREJ2.NE.0) GOTO 2
8554
8555 7 CONTINUE
8556 IF (AM1N.GT.ZERO) THEN
8557 AM1 = AM1N
8558 AM2 = AM2N
8559 ENDIF
8560 DO 6 I=1,4
8561 PP1I(I) = PP1(I)
8562 PP2I(I) = PP2(I)
8563 PT1I(I) = PT1(I)
8564 PT2I(I) = PT2(I)
8565 6 CONTINUE
8566
8567 RETURN
8568
8569 9999 CONTINUE
8570 IREJ = 1
8571 RETURN
8572 END
8573
8574*$ CREATE DT_SAPTRE.FOR
8575*COPY DT_SAPTRE
8576*
8577*===saptre=============================================================*
8578*
8579 SUBROUTINE DT_SAPTRE(IDX1,IDX2)
8580
8581************************************************************************
8582* p-t sampling for two-resonance systems. ("BAMJET-like" method) *
8583* IDX1,IDX2 indices of resonances ("chains") in DTEVT1 *
8584* Adopted from the original SAPTRE written by J. Ranft. *
8585* This version dated 18.01.95 is written by S. Roesler *
8586************************************************************************
8587
8588 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8589 SAVE
8590 PARAMETER ( LINP = 10 ,
8591 & LOUT = 6 ,
8592 & LDAT = 9 )
8593 PARAMETER (TINY7=1.0D-7,TINY3=1.0D-3)
8594
8595* event history
8596 PARAMETER (NMXHKK=200000)
8597 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8598 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8599 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8600* extended event history
8601 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8602 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8603 & IHIST(2,NMXHKK)
8604* flags for input different options
8605 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
8606 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
8607 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
8608
8609 DIMENSION PA1(4),PA2(4),P1(4),P2(4)
8610
8611 DATA B3 /4.0D0/
8612
8613 ESMAX1 = PHKK(4,IDX1)-PHKK(5,IDX1)
8614 ESMAX2 = PHKK(4,IDX2)-PHKK(5,IDX2)
8615 ESMAX = MIN(ESMAX1,ESMAX2)
8616 IF (ESMAX.LE.0.05D0) RETURN
8617
8618 HMA = PHKK(5,IDX1)
8619 DO 1 K=1,4
8620 PA1(K) = PHKK(K,IDX1)
8621 PA2(K) = PHKK(K,IDX2)
8622 1 CONTINUE
8623
8624 IF (LEMCCK) THEN
8625 CALL DT_EVTEMC(PA1(1),PA1(2),PA1(3),PA1(4),1,IDUM,IDUM)
8626 CALL DT_EVTEMC(PA2(1),PA2(2),PA2(3),PA2(4),2,IDUM,IDUM)
8627 ENDIF
8628
8629 EXEB = 0.0D0
8630 IF (B3*ESMAX.LE.60.0D0) EXEB = EXP(-B3*ESMAX)
8631 BEXP = HMA*(1.0D0-EXEB)/B3
8632 AXEXP = (1.0D0-(B3*ESMAX-1.0D0)*EXEB)/B3**2
8633 WA = AXEXP/(BEXP+AXEXP)
8634 XAB = DT_RNDM(WA)
8635 10 CONTINUE
8636* ES is the transverse kinetic energy
8637 IF (XAB.LT.WA)THEN
8638 X = DT_RNDM(WA)
8639 Y = DT_RNDM(WA)
8640 ES = -2.0D0/(B3**2)*LOG(X*Y+TINY7)
8641 ELSE
8642 X = DT_RNDM(Y)
8643 ES = ABS(-LOG(X+TINY7)/B3)
8644 ENDIF
8645 IF (ES.GT.ESMAX) GOTO 10
8646 ES = ES+HMA
8647* transverse momentum
8648 HPS = SQRT((ES-HMA)*(ES+HMA))
8649
8650 CALL DT_DSFECF(SFE,CFE)
8651 HPX = HPS*CFE
8652 HPY = HPS*SFE
8653 PZ1NSQ = PA1(3)**2-HPS**2-2.0D0*PA1(1)*HPX-2.0D0*PA1(2)*HPY
8654 PZ2NSQ = PA2(3)**2-HPS**2+2.0D0*PA2(1)*HPX+2.0D0*PA2(2)*HPY
8655 IF ((PZ1NSQ.LT.TINY3).OR.(PZ2NSQ.LT.TINY3)) RETURN
8656
8657C PA1(3) = SIGN(SQRT(PZ1NSQ),PA1(3))
8658C PA2(3) = SIGN(SQRT(PZ2NSQ),PA2(3))
8659 PA1(1) = PA1(1)+HPX
8660 PA1(2) = PA1(2)+HPY
8661 PA2(1) = PA2(1)-HPX
8662 PA2(2) = PA2(2)-HPY
8663
8664* put resonances on mass-shell again
8665 XM1 = PHKK(5,IDX1)
8666 XM2 = PHKK(5,IDX2)
8667 CALL DT_MASHEL(PA1,PA2,XM1,XM2,P1,P2,IREJ1)
8668 IF (IREJ1.NE.0) RETURN
8669
8670 IF (LEMCCK) THEN
8671 CALL DT_EVTEMC(-P1(1),-P1(2),-P1(3),-P1(4),2,IDUM,IDUM)
8672 CALL DT_EVTEMC(-P2(1),-P2(2),-P2(3),-P2(4),2,IDUM,IDUM)
8673 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,12,IREJ1)
8674 IF (IREJ1.NE.0) RETURN
8675 ENDIF
8676
8677 DO 2 K=1,4
8678 PHKK(K,IDX1) = P1(K)
8679 PHKK(K,IDX2) = P2(K)
8680 2 CONTINUE
8681
8682 RETURN
8683 END
8684
8685*$ CREATE DT_CRONIN.FOR
8686*COPY DT_CRONIN
8687*
8688*===cronin=============================================================*
8689*
8690 SUBROUTINE DT_CRONIN(INCL)
8691
8692************************************************************************
8693* Cronin-Effect. Multiple scattering of partons at chain ends. *
8694* INCL = 1 multiple sc. in projectile *
8695* = 2 multiple sc. in target *
8696* This version dated 05.01.96 is written by S. Roesler. *
8697************************************************************************
8698
8699 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8700 SAVE
8701 PARAMETER ( LINP = 10 ,
8702 & LOUT = 6 ,
8703 & LDAT = 9 )
8704 PARAMETER (ZERO=0.0D0,TINY3=1.0D-3)
8705
8706* event history
8707 PARAMETER (NMXHKK=200000)
8708 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8709 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8710 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8711* extended event history
8712 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8713 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8714 & IHIST(2,NMXHKK)
8715* rejection counter
8716 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
8717 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
8718 & IREXCI(3),IRDIFF(2),IRINC
8719* Glauber formalism: collision properties
8720 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
8721 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
8722
8723 DIMENSION R(3),PIN(4),POUT(4),DEV(4)
8724
8725 DO 1 K=1,4
8726 DEV(K) = ZERO
8727 1 CONTINUE
8728
8729 DO 2 I=NPOINT(2),NHKK
8730 IF (ISTHKK(I).LT.0) THEN
8731* get z-position of the chain
8732 R(1) = VHKK(1,I)*1.0D12
8733 IF (INCL.EQ.2) R(1) = VHKK(1,I)*1.0D12-BIMPAC
8734 R(2) = VHKK(2,I)*1.0D12
8735 IDXNU = JMOHKK(1,I)
8736 IF ( (INCL.EQ.1).AND.(ISTHKK(IDXNU).EQ.10) )
8737 & IDXNU = JMOHKK(1,I-1)
8738 IF ( (INCL.EQ.2).AND.(ISTHKK(IDXNU).EQ. 9) )
8739 & IDXNU = JMOHKK(1,I+1)
8740 R(3) = VHKK(3,IDXNU)*1.0D12
8741* position of target parton the chain is connected to
8742 DO 3 K=1,4
8743 PIN(K) = PHKK(K,I)
8744 3 CONTINUE
8745* multiple scattering of parton with DTEVT1-index I
8746 CALL DT_CROMSC(PIN,R,POUT,INCL)
8747**testprint
8748C IF (NEVHKK.EQ.5) THEN
8749C AMIN = PIN(4)**2-PIN(1)**2-PIN(2)**2-PIN(3)**2
8750C AMOU = POUT(4)**2-POUT(1)**2-POUT(2)**2-POUT(3)**2
8751C AMIN = SIGN(SQRT(ABS(AMIN)),AMIN)
8752C AMOU = SIGN(SQRT(ABS(AMOU)),AMOU)
8753C WRITE(6,'(A,I4,2E15.5)')'I,AMIN,AMOU: ',I,AMIN,AMOU
8754C WRITE(6,'(A,4E15.5)')'PIN: ',PIN
8755C WRITE(6,'(A,4E15.5)')'POUT: ',POUT
8756C ENDIF
8757**
8758* increase accumulator by energy-momentum difference
8759 DO 4 K=1,4
8760 DEV(K) = DEV(K)+POUT(K)-PIN(K)
8761 PHKK(K,I) = POUT(K)
8762 4 CONTINUE
8763 PHKK(5,I) = SQRT(ABS(PHKK(4,I)**2-PHKK(1,I)**2-
8764 & PHKK(2,I)**2-PHKK(3,I)**2))
8765 ENDIF
8766 2 CONTINUE
8767
8768* dump accumulator to momenta of valence partons
8769 NVAL = 0
8770 ETOT = 0.0D0
8771 DO 5 I=NPOINT(2),NHKK
8772 IF ((ISTHKK(I).EQ.-21).OR.(ISTHKK(I).EQ.-22)) THEN
8773 NVAL = NVAL+1
8774 ETOT = ETOT+PHKK(4,I)
8775 ENDIF
8776 5 CONTINUE
8777C WRITE(LOUT,1000) NVAL,(DEV(K)/DBLE(NVAL),K=1,4)
8778 1000 FORMAT(1X,'CRONIN : number of val. partons ',I4,/,
8779 & 9X,4E12.4)
8780 DO 6 I=NPOINT(2),NHKK
8781 IF ((ISTHKK(I).EQ.-21).OR.(ISTHKK(I).EQ.-22)) THEN
8782 E = PHKK(4,I)
8783 DO 7 K=1,4
8784C PHKK(K,I) = PHKK(K,I)-DEV(K)/DBLE(NVAL)
8785 PHKK(K,I) = PHKK(K,I)-DEV(K)*E/ETOT
8786 7 CONTINUE
8787 PHKK(5,I) = SQRT(ABS(PHKK(4,I)**2-PHKK(1,I)**2-
8788 & PHKK(2,I)**2-PHKK(3,I)**2))
8789 ENDIF
8790 6 CONTINUE
8791
8792 RETURN
8793 END
8794
8795*$ CREATE DT_CROMSC.FOR
8796*COPY DT_CROMSC
8797*
8798*===cromsc=============================================================*
8799*
8800 SUBROUTINE DT_CROMSC(PIN,R,POUT,INCL)
8801
8802************************************************************************
8803* Cronin-Effect. Multiple scattering of one parton passing through *
8804* nuclear matter. *
8805* PIN(4) input 4-momentum of parton *
8806* POUT(4) 4-momentum of parton after mult. scatt. *
8807* R(3) spatial position of parton in target nucleus *
8808* INCL = 1 multiple sc. in projectile *
8809* = 2 multiple sc. in target *
8810* This is a revised version of the original version written by J. Ranft*
8811* This version dated 17.01.95 is written by S. Roesler. *
8812************************************************************************
8813
8814 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8815 SAVE
8816 PARAMETER ( LINP = 10 ,
8817 & LOUT = 6 ,
8818 & LDAT = 9 )
8819 PARAMETER (ZERO=0.0D0,TINY3=1.0D-3)
8820
8821 LOGICAL LSTART
8822
8823* rejection counter
8824 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
8825 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
8826 & IREXCI(3),IRDIFF(2),IRINC
8827* Glauber formalism: collision properties
8828 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
8829 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
8830* various options for treatment of partons (DTUNUC 1.x)
8831* (chain recombination, Cronin,..)
8832 LOGICAL LCO2CR,LINTPT
8833 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
8834 & LCO2CR,LINTPT
8835
8836 DIMENSION PIN(4),POUT(4),R(3)
8837
8838 DATA LSTART /.TRUE./
8839
8840 IRCRON(1) = IRCRON(1)+1
8841
8842 IF (LSTART) THEN
8843 WRITE(LOUT,1000) CRONCO
8844 1000 FORMAT(/,1X,'CROMSC: multiple scattering of chain ends',
8845 & ' treated',/,10X,'with parameter CRONCO = ',F5.2)
8846 LSTART = .FALSE.
8847 ENDIF
8848
8849 NCBACK = 0
8850 RNCL = RPROJ
8851 IF (INCL.EQ.2) RNCL = RTARG
8852
8853* Lorentz-transformation into Lab.
8854 MODE = -(INCL+1)
8855 CALL DT_LTNUC(PIN(3),PIN(4),PZ,PE,MODE)
8856
8857 PTOT = SQRT(PIN(1)**2+PIN(2)**2+PZ**2)
8858 IF (PTOT.LE.8.0D0) GOTO 9997
8859
8860* direction cosines of parton before mult. scattering
8861 COSX = PIN(1)/PTOT
8862 COSY = PIN(2)/PTOT
8863 COSZ = PZ/PTOT
8864
8865 RTESQ = R(1)**2+R(2)**2+R(3)**2-RNCL**2
8866 IF (RTESQ.GE.-TINY3) GOTO 9999
8867
8868* calculate distance (DIST) from R to surface of nucleus (radius RNCL)
8869* in the direction of particle motion
8870
8871 A = COSX*R(1)+COSY*R(2)+COSZ*R(3)
8872 TMP = A**2-RTESQ
8873 IF (TMP.LT.ZERO) GOTO 9998
8874 DIST = -A+SQRT(TMP)
8875
8876* multiple scattering angle
8877 THETO = CRONCO*SQRT(DIST)/PTOT
8878 IF (THETO.GT.0.1D0) THETO=0.1D0
8879
8880 1 CONTINUE
8881* Gaussian sampling of spatial angle
8882 CALL DT_RANNOR(R1,R2)
8883 THETA = ABS(R1*THETO)
8884 IF (THETA.GT.0.3D0) GOTO 9997
8885 CALL DT_DSFECF(SFE,CFE)
8886 COSTH = COS(THETA)
8887 SINTH = SIN(THETA)
8888
8889* new direction cosines
8890 CALL DT_MYTRAN(1,COSX,COSY,COSZ,COSTH,SINTH,SFE,CFE,
8891 & COSXN,COSYN,COSZN)
8892
8893 POUT(1) = COSXN*PTOT
8894 POUT(2) = COSYN*PTOT
8895 PZ = COSZN*PTOT
8896* Lorentz-transformation into nucl.-nucl. cms
8897 MODE = INCL+1
8898 CALL DT_LTNUC(PZ,PE,POUT(3),POUT(4),MODE)
8899
8900C IF (ABS(PIN(4)-POUT(4)).GT.0.2D0) THEN
8901C IF ( (ABS(PIN(4)-POUT(4))/PIN(4)).GT.0.1D0 ) THEN
8902 IF ( (ABS(PIN(4)-POUT(4))/PIN(4)).GT.0.05D0 ) THEN
8903 THETO = THETO/2.0D0
8904 NCBACK = NCBACK+1
8905 IF (MOD(NCBACK,200).EQ.0) THEN
8906 WRITE(LOUT,1001) THETO,PIN,POUT
8907 1001 FORMAT(1X,'CROMSC: inconsistent scattering angle ',
8908 & E12.4,/,1X,' PIN :',4E12.4,/,
8909 & 1X,' POUT:',4E12.4)
8910 GOTO 9997
8911 ENDIF
8912 GOTO 1
8913 ENDIF
8914
8915 RETURN
8916
8917 9997 IRCRON(2) = IRCRON(2)+1
8918 GOTO 9999
8919 9998 IRCRON(3) = IRCRON(3)+1
8920
8921 9999 CONTINUE
8922 DO 100 K=1,4
8923 POUT(K) = PIN(K)
8924 100 CONTINUE
8925 RETURN
8926 END
8927
8928*$ CREATE DT_COM2CR.FOR
8929*COPY DT_COM2CR
8930*
8931*===com2sr=============================================================*
8932*
8933 SUBROUTINE DT_COM2CR
8934
8935************************************************************************
8936* COMbine q-aq chains to Color Ropes (qq-aqaq). *
8937* CUTOF parameter determining minimum number of not *
8938* combined q-aq chains *
8939* This subroutine replaces KKEVCC etc. *
8940* This version dated 11.01.95 is written by S. Roesler. *
8941************************************************************************
8942
8943 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
8944 SAVE
8945 PARAMETER ( LINP = 10 ,
8946 & LOUT = 6 ,
8947 & LDAT = 9 )
8948
8949* event history
8950 PARAMETER (NMXHKK=200000)
8951 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
8952 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
8953 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
8954* extended event history
8955 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
8956 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
8957 & IHIST(2,NMXHKK)
8958* statistics
8959 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
8960 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
8961 & ICEVTG(8,0:30)
8962* various options for treatment of partons (DTUNUC 1.x)
8963* (chain recombination, Cronin,..)
8964 LOGICAL LCO2CR,LINTPT
8965 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
8966 & LCO2CR,LINTPT
8967
8968 DIMENSION IDXQA(248),IDXAQ(248)
8969
8970 ICCHAI(1,9) = ICCHAI(1,9)+1
8971 NQA = 0
8972 NAQ = 0
8973* scan DTEVT1 for q-aq, aq-q chains
8974 DO 10 I=NPOINT(3),NHKK
8975* skip "chains" which are resonances
8976 IF ((IDHKK(I).EQ.88888).AND.(IDRES(I).EQ.0)) THEN
8977 MO1 = JMOHKK(1,I)
8978 MO2 = JMOHKK(2,I)
8979 IF ((ABS(IDHKK(MO1)).LE.6).AND.(ABS(IDHKK(MO2)).LE.6)) THEN
8980* q-aq, aq-q chain found, keep index
8981 IF (IDHKK(MO1).GT.0) THEN
8982 NQA = NQA+1
8983 IDXQA(NQA) = I
8984 ELSE
8985 NAQ = NAQ+1
8986 IDXAQ(NAQ) = I
8987 ENDIF
8988 ENDIF
8989 ENDIF
8990 10 CONTINUE
8991
8992* minimum number of q-aq chains requested for the same projectile/
8993* target
8994 NCHMIN = IDT_NPOISS(CUTOF)
8995
8996* combine q-aq chains of the same projectile
8997 CALL DT_SCN4CR(NQA,IDXQA,NCHMIN,1)
8998* combine q-aq chains of the same target
8999 CALL DT_SCN4CR(NQA,IDXQA,NCHMIN,2)
9000* combine aq-q chains of the same projectile
9001 CALL DT_SCN4CR(NAQ,IDXAQ,NCHMIN,1)
9002* combine aq-q chains of the same target
9003 CALL DT_SCN4CR(NAQ,IDXAQ,NCHMIN,2)
9004
9005 RETURN
9006 END
9007
9008*$ CREATE DT_SCN4CR.FOR
9009*COPY DT_SCN4CR
9010*
9011*===scn4cr=============================================================*
9012*
9013 SUBROUTINE DT_SCN4CR(NCH,IDXCH,NCHMIN,MODE)
9014
9015************************************************************************
9016* SCan q-aq chains for Color Ropes. *
9017* This version dated 11.01.95 is written by S. Roesler. *
9018************************************************************************
9019
9020 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9021 SAVE
9022 PARAMETER ( LINP = 10 ,
9023 & LOUT = 6 ,
9024 & LDAT = 9 )
9025
9026* event history
9027 PARAMETER (NMXHKK=200000)
9028 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
9029 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
9030 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
9031* extended event history
9032 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
9033 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
9034 & IHIST(2,NMXHKK)
9035
9036 DIMENSION IDXCH(248),IDXJN(248)
9037
9038 DO 1 I=1,NCH
9039 IF (IDXCH(I).GT.0) THEN
9040 NJOIN = 1
9041 IDXMO = JMOHKK(1,JMOHKK(1,JMOHKK(MODE,IDXCH(I))))
9042 IDXJN(NJOIN) = I
9043 IF (I.LT.NCH) THEN
9044 DO 2 J=I+1,NCH
9045 IF (IDXCH(J).GT.0) THEN
9046 IDXMO1 = JMOHKK(1,JMOHKK(1,JMOHKK(MODE,IDXCH(J))))
9047 IF (IDXMO.EQ.IDXMO1) THEN
9048 NJOIN = NJOIN+1
9049 IDXJN(NJOIN) = J
9050 ENDIF
9051 ENDIF
9052 2 CONTINUE
9053 ENDIF
9054 IF (NJOIN.GE.NCHMIN+2) THEN
9055 NJ = INT(DBLE(NJOIN-NCHMIN)/2.0D0)
9056 DO 3 J=1,2*NJ,2
9057 CALL DT_JOIN(IDXCH(IDXJN(J)),IDXCH(IDXJN(J+1)),IREJ1)
9058 IF (IREJ1.NE.0) GOTO 3
9059 IDXCH(IDXJN(J)) = 0
9060 IDXCH(IDXJN(J+1)) = 0
9061 3 CONTINUE
9062 ENDIF
9063 ENDIF
9064 1 CONTINUE
9065
9066 RETURN
9067 END
9068
9069*$ CREATE DT_JOIN.FOR
9070*COPY DT_JOIN
9071*
9072*===join===============================================================*
9073*
9074 SUBROUTINE DT_JOIN(IDX1,IDX2,IREJ)
9075
9076************************************************************************
9077* This subroutine joins two q-aq chains to one qq-aqaq chain. *
9078* IDX1, IDX2 DTEVT1 indices of chains to be joined *
9079* This version dated 11.01.95 is written by S. Roesler. *
9080************************************************************************
9081
9082 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9083 SAVE
9084 PARAMETER ( LINP = 10 ,
9085 & LOUT = 6 ,
9086 & LDAT = 9 )
9087
9088* event history
9089 PARAMETER (NMXHKK=200000)
9090 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
9091 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
9092 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
9093* extended event history
9094 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
9095 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
9096 & IHIST(2,NMXHKK)
9097* flags for input different options
9098 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
9099 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
9100 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
9101* statistics
9102 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
9103 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
9104 & ICEVTG(8,0:30)
9105
9106 DIMENSION MO(2,2),ID(2,2),IDX(2),PCH(4),PP(4),PT(4),P1(4),P2(4)
9107
9108 IREJ = 0
9109
9110 IDX(1) = IDX1
9111 IDX(2) = IDX2
9112 DO 1 I=1,2
9113 DO 2 J=1,2
9114 MO(I,J) = JMOHKK(J,IDX(I))
9115 ID(I,J) = IDT_IPDG2B(IDHKK(MO(I,J)),1,2)
9116 2 CONTINUE
9117 1 CONTINUE
9118
9119* check consistency
9120 IF ((ABS(ID(1,1)).GT.6).OR.(ABS(ID(1,2)).GT.6).OR.
9121 & (ABS(ID(2,1)).GT.6).OR.(ABS(ID(2,2)).GT.6).OR.
9122 & ((ID(1,1)*ID(2,1)).LT.0).OR.
9123 & ((ID(1,2)*ID(2,2)).LT.0)) THEN
9124 WRITE(LOUT,1000) IDX(1),MO(1,1),MO(1,2),IDX(2),MO(2,1),
9125 & MO(2,2)
9126 1000 FORMAT(1X,'JOIN: incons. chain system! chain ',I4,':',
9127 & 2I5,' chain ',I4,':',2I5)
9128 ENDIF
9129
9130* join chains
9131 DO 3 K=1,4
9132 PP(K) = PHKK(K,MO(1,1))+PHKK(K,MO(2,1))
9133 PT(K) = PHKK(K,MO(1,2))+PHKK(K,MO(2,2))
9134 3 CONTINUE
9135 IF1 = IDT_IB2PDG(ID(1,1),ID(2,1),2)
9136 IF2 = IDT_IB2PDG(ID(1,2),ID(2,2),2)
9137 IST1 = ISTHKK(MO(1,1))
9138 IST2 = ISTHKK(MO(1,2))
9139
9140* put partons again on mass shell
9141 XM1 = 0.0D0
9142 XM2 = 0.0D0
9143 IF (IMSHL.EQ.1) THEN
9144 XM1 = PYMASS(IF1)
9145 XM2 = PYMASS(IF2)
9146 ENDIF
9147 CALL DT_MASHEL(PP,PT,XM1,XM2,P1,P2,IREJ1)
9148 IF (IREJ1.NE.0) GOTO 9999
9149 DO 4 I=1,4
9150 PP(I) = P1(I)
9151 PT(I) = P2(I)
9152 4 CONTINUE
9153
9154* store new partons in DTEVT1
9155 CALL DT_EVTPUT(IST1,IF1,MO(1,1),MO(2,1),PP(1),PP(2),PP(3),PP(4),
9156 & 0,0,0)
9157 CALL DT_EVTPUT(IST2,IF2,MO(1,2),MO(2,2),PT(1),PT(2),PT(3),PT(4),
9158 & 0,0,0)
9159 DO 5 K=1,4
9160 PCH(K) = PP(K)+PT(K)
9161 5 CONTINUE
9162
9163* check new chain for lower mass limit
9164 IF ((IRESCO.EQ.1).OR.(IFRAG(1).EQ.1)) THEN
9165 AMCH = SQRT(ABS(PCH(4)**2-PCH(1)**2-PCH(2)**2-PCH(3)**2))
9166 CALL DT_CH2RES(ID(1,1),ID(2,1),ID(1,2),ID(2,2),IDUM,IDUM,
9167 & AMCH,AMCHN,3,IREJ1)
9168 IF (IREJ1.NE.0) THEN
9169 NHKK = NHKK-2
9170 GOTO 9999
9171 ENDIF
9172 ENDIF
9173
9174 ICCHAI(2,9) = ICCHAI(2,9)+1
9175* store new chain in DTEVT1
9176 KCH = 191
9177 CALL DT_EVTPUT(KCH,88888,-2,-1,PCH(1),PCH(2),PCH(3),PCH(4),0,0,9)
9178 IDHKK(IDX(1)) = 22222
9179 IDHKK(IDX(2)) = 22222
9180* special treatment for space-time coordinates
9181 DO 6 K=1,4
9182 VHKK(K,NHKK) = (VHKK(K,IDX(1))+VHKK(K,IDX(2)))/2.0D0
9183 WHKK(K,NHKK) = (WHKK(K,IDX(1))+WHKK(K,IDX(2)))/2.0D0
9184 6 CONTINUE
9185 RETURN
9186
9187 9999 CONTINUE
9188 IREJ = 1
9189 RETURN
9190 END
9191
9192*$ CREATE DT_XSGLAU.FOR
9193*COPY DT_XSGLAU
9194*
9195*===xsglau=============================================================*
9196*
9197 SUBROUTINE DT_XSGLAU(NA,NB,JJPROJ,XI,Q2I,ECMI,IE,IQ,NIDX)
9198
9199************************************************************************
9200* Total, elastic, quasi-elastic, inelastic cross sections according to *
9201* Glauber's approach. *
9202* NA / NB mass numbers of proj./target nuclei *
9203* JJPROJ bamjet-index of projectile (=1 in case of proj.nucleus) *
9204* XI,Q2I,ECMI kinematical variables x, Q^2, E_cm *
9205* IE,IQ indices of energy and virtuality (the latter for gamma *
9206* projectiles only) *
9207* NIDX index of projectile/target nucleus *
9208* This version dated 17.3.98 is written by S. Roesler *
9209************************************************************************
9210
9211 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9212 SAVE
9213 PARAMETER ( LINP = 10 ,
9214 & LOUT = 6 ,
9215 & LDAT = 9 )
9216
9217 COMPLEX*16 CZERO,CONE,CTWO
9218 CHARACTER*12 CFILE
9219 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,
9220 & ONETHI=ONE/THREE,TINY25=1.0D-25)
9221 PARAMETER (TWOPI = 6.283185307179586454D+00,
9222 & PI = TWOPI/TWO,
9223 & GEV2MB = 0.38938D0,
9224 & GEV2FM = 0.1972D0,
9225 & ALPHEM = ONE/137.0D0,
9226* proton mass
9227 & AMP = 0.938D0,
9228 & AMP2 = AMP**2,
9229* approx. nucleon radius
9230 & RNUCLE = 1.12D0)
9231
9232* particle properties (BAMJET index convention)
9233 CHARACTER*8 ANAME
9234 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
9235 & IICH(210),IIBAR(210),K1(210),K2(210)
9236 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
9237 PARAMETER ( MAXNCL = 260,
9238 & MAXVQU = MAXNCL,
9239 & MAXSQU = 20*MAXVQU,
9240 & MAXINT = MAXVQU+MAXSQU)
9241* Glauber formalism: parameters
9242 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
9243 & BMAX(NCOMPX),BSTEP(NCOMPX),
9244 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
9245 & NSITEB,NSTATB
9246* Glauber formalism: cross sections
9247 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
9248 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
9249 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
9250 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
9251 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
9252 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
9253 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
9254 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
9255 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
9256 & BSLOPE,NEBINI,NQBINI
9257* Glauber formalism: flags and parameters for statistics
9258 LOGICAL LPROD
9259 CHARACTER*8 CGLB
9260 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
9261* nucleon-nucleon event-generator
9262 CHARACTER*8 CMODEL
9263 LOGICAL LPHOIN
9264 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
9265* VDM parameter for photon-nucleus interactions
9266 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
9267* parameters for hA-diffraction
9268 COMMON /DTDIHA/ DIBETA,DIALPH
9269
9270 COMPLEX*16 PP11(MAXNCL),PP12(MAXNCL),PP21(MAXNCL),PP22(MAXNCL),
9271 & OMPP11,OMPP12,OMPP21,OMPP22,
9272 & DIPP11,DIPP12,DIPP21,DIPP22,AVDIPP,
9273 & PPTMP1,PPTMP2
9274 COMPLEX*16 C,CA,CI
9275 DIMENSION COOP1(3,MAXNCL),COOT1(3,MAXNCL),
9276 & COOP2(3,MAXNCL),COOT2(3,MAXNCL),
9277 & BPROD(KSITEB)
9278
9279 PARAMETER (NPOINT=16)
9280 DIMENSION ABSZX(NPOINT),WEIGHT(NPOINT)
9281
9282 LOGICAL LFIRST,LOPEN
9283 DATA LFIRST,LOPEN /.TRUE.,.FALSE./
9284
9285 NTARG = ABS(NIDX)
9286* for quasi-elastic neutrino scattering set projectile to proton
9287* it should not have an effect since the whole Glauber-formalism is
9288* not needed for these interactions..
9289 IF (MCGENE.EQ.4) THEN
9290 IJPROJ = 1
9291 ELSE
9292 IJPROJ = JJPROJ
9293 ENDIF
9294
9295 IF ((ABS(IOGLB).EQ.1).AND.(.NOT.LOPEN)) THEN
9296 I = INDEX(CGLB,' ')
9297 IF (I.EQ.0) THEN
9298 CFILE = CGLB//'.glb'
9299 OPEN(LDAT,FILE=CGLB//'.glb',STATUS='UNKNOWN')
9300 ELSEIF (I.GT.1) THEN
9301 CFILE = CGLB(1:I-1)//'.glb'
9302 OPEN(LDAT,FILE=CGLB(1:I-1)//'.glb',STATUS='UNKNOWN')
9303 ELSE
9304 STOP 'XSGLAU 1'
9305 ENDIF
9306 LOPEN = .TRUE.
9307 ENDIF
9308
9309 CZERO = DCMPLX(ZERO,ZERO)
9310 CONE = DCMPLX(ONE,ZERO)
9311 CTWO = DCMPLX(TWO,ZERO)
9312 NEBINI = IE
9313 NQBINI = IQ
9314
9315* re-define kinematics
9316 S = ECMI**2
9317 Q2 = Q2I
9318 X = XI
9319* g(Q2=0)-A, h-A, A-A scattering
9320 IF ((X.LE.ZERO).AND.(Q2.LE.ZERO).AND.(S.GT.ZERO)) THEN
9321 Q2 = 0.0001D0
9322 X = Q2/(S+Q2-AMP2)
9323* g(Q2>0)-A scattering
9324 ELSEIF ((X.LE.ZERO).AND.(Q2.GT.ZERO).AND.(S.GT.ZERO)) THEN
9325 X = Q2/(S+Q2-AMP2)
9326 ELSEIF ((X.GT.ZERO).AND.(Q2.LE.ZERO).AND.(S.GT.ZERO)) THEN
9327 Q2 = (S-AMP2)*X/(ONE-X)
9328 ELSEIF ((X.GT.ZERO).AND.(Q2.GT.ZERO)) THEN
9329 S = Q2*(ONE-X)/X+AMP2
9330 ELSE
9331 WRITE(LOUT,*) 'XSGLAU: inconsistent input ',S,Q2,X
9332 STOP
9333 ENDIF
9334 ECMNN(IE) = SQRT(S)
9335 Q2G(IQ) = Q2
9336 XNU = (S+Q2-AMP2)/(TWO*AMP)
9337
9338* parameters determining statistics in evaluating Glauber-xsection
9339 NSTATB = JSTATB
9340 NSITEB = JBINSB
9341 IF (NSITEB.GT.KSITEB) NSITEB = KSITEB
9342
9343* set up interaction geometry (common /DTGLAM/)
9344* projectile/target radii
9345 RPRNCL = DT_RNCLUS(NA)
9346 RTANCL = DT_RNCLUS(NB)
9347 IF (IJPROJ.EQ.7) THEN
9348 RASH(1) = ZERO
9349 RBSH(NTARG) = RTANCL
9350 BMAX(NTARG) = 2.0D0*(RASH(1)+RBSH(NTARG))
9351 ELSE
9352 IF (NIDX.LE.-1) THEN
9353 RASH(1) = RPRNCL
9354 RBSH(NTARG) = RTANCL
9355 BMAX(NTARG) = 2.0D0*(RASH(1)+RBSH(NTARG))
9356 ELSE
9357 RASH(NTARG) = RPRNCL
9358 RBSH(1) = RTANCL
9359 BMAX(NTARG) = 2.0D0*(RASH(NTARG)+RBSH(1))
9360 ENDIF
9361 ENDIF
9362* maximum impact-parameter
9363 BSTEP(NTARG)= BMAX(NTARG)/DBLE(NSITEB-1)
9364
9365* slope, rho ( Re(f(0))/Im(f(0)) )
9366 IF ((IJPROJ.LE.12).AND.(IJPROJ.NE.7)) THEN
9367 IF (MCGENE.EQ.2) THEN
9368 ZERO1 = ZERO
9369 CALL DT_PHOXS(IJPROJ,1,ECMNN(IE),ZERO1,SDUM1,SDUM2,SDUM3,
9370 & BSLOPE,0)
9371 ELSE
9372 BSLOPE = 8.5D0*(1.0D0+0.065D0*LOG(S))
9373 ENDIF
9374 IF (ECMNN(IE).LE.3.0D0) THEN
9375 ROSH = -0.43D0
9376 ELSEIF ((ECMNN(IE).GT.3.0D0).AND.(ECMNN(IE).LE.50.D0)) THEN
9377 ROSH = -0.63D0+0.175D0*LOG(ECMNN(IE))
9378 ELSEIF (ECMNN(IE).GT.50.0D0) THEN
9379 ROSH = 0.1D0
9380 ENDIF
9381 ELSEIF (IJPROJ.EQ.7) THEN
9382 ROSH = 0.1D0
9383 ELSE
9384 BSLOPE = 6.0D0*(1.0D0+0.065D0*LOG(S))
9385 ROSH = 0.01D0
9386 ENDIF
9387
9388* projectile-nucleon xsection (in fm)
9389 IF (IJPROJ.EQ.7) THEN
9390 SIGSH = DT_SIGVP(X,Q2)/10.0D0
9391 ELSE
9392 ELAB = (S-AAM(IJPROJ)**2-AMP2)/(TWO*AMP)
9393 PLAB = SQRT( (ELAB-AAM(IJPROJ))*(ELAB+AAM(IJPROJ)) )
9394C SIGSH = DT_SHNTOT(IJPROJ,1,ZERO,PLAB)/10.0D0
9395 DUMZER = ZERO
9396 CALL DT_XSHN(IJPROJ,1,PLAB,DUMZER,SIGSH,SIGEL)
9397 SIGSH = SIGSH/10.0D0
9398 ENDIF
9399
9400* parameters for projectile diffraction (hA scattering only)
9401 IF ((MCGENE.EQ.2).AND.(NA.EQ.1).AND.(NB.GT.1).AND.(IJPROJ.NE.7)
9402 & .AND.(DIBETA.GE.ZERO)) THEN
9403 ZERO1 = ZERO
9404 CALL DT_PHOXS(IJPROJ,1,ECMNN(IE),ZERO1,STOT,SDUM2,SDIF1,BDUM,0)
9405C DIBETA = SDIF1/STOT
9406 DIBETA = 0.2D0
9407 DIGAMM = SQRT(DIALPH**2+DIBETA**2)
9408 IF (DIBETA.LE.ZERO) THEN
9409 ALPGAM = ONE
9410 ELSE
9411 ALPGAM = DIALPH/DIGAMM
9412 ENDIF
9413 FACDI1 = ONE-ALPGAM
9414 FACDI2 = ONE+ALPGAM
9415 FACDI = SQRT(FACDI1*FACDI2)
9416 WRITE(LOUT,*)'DIBETA,DIALPH,DIGAMM: ',DIBETA,DIALPH,DIGAMM
9417 ELSE
9418 DIBETA = -1.0D0
9419 DIALPH = ZERO
9420 DIGAMM = ZERO
9421 FACDI1 = ZERO
9422 FACDI2 = 2.0D0
9423 FACDI = ZERO
9424 ENDIF
9425
9426* initializations
9427 DO 10 I=1,NSITEB
9428 BSITE( 0,IQ,NTARG,I) = ZERO
9429 BSITE(IE,IQ,NTARG,I) = ZERO
9430 BPROD(I) = ZERO
9431 10 CONTINUE
9432 STOT = ZERO
9433 STOT2 = ZERO
9434 SELA = ZERO
9435 SELA2 = ZERO
9436 SQEP = ZERO
9437 SQEP2 = ZERO
9438 SQET = ZERO
9439 SQET2 = ZERO
9440 SQE2 = ZERO
9441 SQE22 = ZERO
9442 SPRO = ZERO
9443 SPRO2 = ZERO
9444 SDEL = ZERO
9445 SDEL2 = ZERO
9446 SDQE = ZERO
9447 SDQE2 = ZERO
9448 FACN = ONE/DBLE(NSTATB)
9449
9450 IPNT = 0
9451 RPNT = ZERO
9452
9453* initialize Gauss-integration for photon-proj.
9454 JPOINT = 1
9455 IF (IJPROJ.EQ.7) THEN
9456 IF (INTRGE(1).EQ.1) THEN
9457 AMLO2 = (3.0D0*AAM(13))**2
9458 ELSEIF (INTRGE(1).EQ.2) THEN
9459 AMLO2 = AAM(33)**2
9460 ELSE
9461 AMLO2 = AAM(96)**2
9462 ENDIF
9463 IF (INTRGE(2).EQ.1) THEN
9464 AMHI2 = S/TWO
9465 ELSEIF (INTRGE(2).EQ.2) THEN
9466 AMHI2 = S/4.0D0
9467 ELSE
9468 AMHI2 = S
9469 ENDIF
9470 AMHI20 = (ECMNN(IE)-AMP)**2
9471 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
9472 XAMLO = LOG( AMLO2+Q2 )
9473 XAMHI = LOG( AMHI2+Q2 )
9474**PHOJET105a
9475C CALL GSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
9476**PHOJET112
9477 CALL PHO_GAUSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
9478**
9479 JPOINT = NPOINT
9480* ratio direct/total photon-nucleon xsection
9481 CALL DT_POILIK(NB,NTARG,ECMNN(IE),Q2,IPNT,RPNT,1)
9482 ENDIF
9483
9484* read pre-initialized profile-function from file
9485 IF (IOGLB.EQ.1) THEN
9486 READ(LDAT,'(5I10,E15.5)') KJPROJ,IA,IB,ISTATB,ISITEB,DUM
9487 IF ((IA.NE.NA).OR.(IB.NE.NB)) THEN
9488 WRITE(LOUT,1000) CFILE,IA,IB,ISTATB,ISITEB,
9489 & NA,NB,NSTATB,NSITEB
9490 1000 FORMAT(' XSGLAU: inconsistent input data in file ',A12,/,
9491 & ' (IA,IB,ISTATB,ISITEB) ',4I10,/,
9492 & ' (NA,NB,NSTATB,NSITEB) ',4I10)
9493 STOP
9494 ENDIF
9495 IF (LFIRST) WRITE(LOUT,1001) CFILE
9496 1001 FORMAT(/,' XSGLAU: impact parameter distribution read from ',
9497 & 'file ',A12,/)
9498 READ(LDAT,'(6E12.5)') XSTOT(IE,IQ,NTARG),XSELA(IE,IQ,NTARG),
9499 & XSQEP(IE,IQ,NTARG),XSQET(IE,IQ,NTARG),
9500 & XSQE2(IE,IQ,NTARG),XSPRO(IE,IQ,NTARG)
9501 READ(LDAT,'(6E12.5)') XETOT(IE,IQ,NTARG),XEELA(IE,IQ,NTARG),
9502 & XEQEP(IE,IQ,NTARG),XEQET(IE,IQ,NTARG),
9503 & XEQE2(IE,IQ,NTARG),XEPRO(IE,IQ,NTARG)
9504 NLINES = INT(DBLE(NSITEB)/7.0D0)
9505 IF (NLINES.GT.0) THEN
9506 DO 21 I=1,NLINES
9507 ISTART = 7*I-6
9508 READ(LDAT,'(7E11.4)')
9509 & (BSITE(IE,IQ,NTARG,J),J=ISTART,ISTART+6)
9510 21 CONTINUE
9511 ENDIF
9512 ISTART = 7*NLINES+1
9513 IF (ISTART.LE.NSITEB) THEN
9514 READ(LDAT,'(7E11.4)')
9515 & (BSITE(IE,IQ,NTARG,J),J=ISTART,NSITEB)
9516 ENDIF
9517 LFIRST = .FALSE.
9518 GOTO 100
9519* variable projectile/target/energy runs:
9520* read pre-initialized profile-functions from file
9521 ELSEIF (IOGLB.EQ.100) THEN
9522 CALL DT_GLBSET(IJPROJ,IINA,IINB,RRELAB,0)
9523 GOTO 100
9524 ENDIF
9525
9526* cross sections averaged over NSTATB nucleon configurations
9527 DO 11 IS=1,NSTATB
9528C IF ((NA.EQ.207).AND.(NB.EQ.207)) WRITE(LOUT,*) 'conf. ',IS
9529 STOTN = ZERO
9530 SELAN = ZERO
9531 SQEPN = ZERO
9532 SQETN = ZERO
9533 SQE2N = ZERO
9534 SPRON = ZERO
9535 SDELN = ZERO
9536 SDQEN = ZERO
9537
9538 IF (NIDX.LE.-1) THEN
9539 CALL DT_CONUCL(COOP1,NA,RASH(1),0)
9540 CALL DT_CONUCL(COOT1,NB,RBSH(NTARG),1)
9541 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9542 CALL DT_CONUCL(COOP2,NA,RASH(1),0)
9543 CALL DT_CONUCL(COOT2,NB,RBSH(NTARG),1)
9544 ENDIF
9545 ELSE
9546 CALL DT_CONUCL(COOP1,NA,RASH(NTARG),0)
9547 CALL DT_CONUCL(COOT1,NB,RBSH(1),1)
9548 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9549 CALL DT_CONUCL(COOP2,NA,RASH(NTARG),0)
9550 CALL DT_CONUCL(COOT2,NB,RBSH(1),1)
9551 ENDIF
9552 ENDIF
9553
9554* integration over impact parameter B
9555 DO 12 IB=1,NSITEB-1
9556 STOTB = ZERO
9557 SELAB = ZERO
9558 SQEPB = ZERO
9559 SQETB = ZERO
9560 SQE2B = ZERO
9561 SPROB = ZERO
9562 SDIR = ZERO
9563 SDELB = ZERO
9564 SDQEB = ZERO
9565 B = DBLE(IB)*BSTEP(NTARG)
9566 FACB = 10.0D0*TWOPI*B*BSTEP(NTARG)
9567
9568* integration over M_V^2 for photon-proj.
9569 DO 14 IM=1,JPOINT
9570 PP11(1) = CONE
9571 PP12(1) = CONE
9572 PP21(1) = CONE
9573 PP22(1) = CONE
9574 IF (IJPROJ.EQ.7) THEN
9575 DO 13 K=2,NB
9576 PP11(K) = CONE
9577 PP12(K) = CONE
9578 PP21(K) = CONE
9579 PP22(K) = CONE
9580 13 CONTINUE
9581 ENDIF
9582 SHI = ZERO
9583 FACM = ONE
9584 DCOH = 1.0D10
9585
9586 IF (IJPROJ.EQ.7) THEN
9587 AMV2 = EXP(ABSZX(IM))-Q2
9588 AMV = SQRT(AMV2)
9589 IF (AMV2.LT.16.0D0) THEN
9590 R = TWO
9591 ELSEIF ((AMV2.GE.16.0D0).AND.(AMV2.LT.121.0D0)) THEN
9592 R = 10.0D0/3.0D0
9593 ELSE
9594 R = 11.0D0/3.0D0
9595 ENDIF
9596* define M_V dependent properties of nucleon scattering amplitude
9597* V_M-nucleon xsection
9598 SIGMVD = RPNT*SIGSH/(AMV2+Q2+RL2)*10.0D0
9599 SIGMV = (ONE-RPNT)*SIGSH/(AMV2+Q2+RL2)
9600* slope-parametrisation a la Kaidalov
9601 BSLOPE = 2.0D0*(2.0D0+AAM(32)**2/(AMV2+Q2)
9602 & +0.25D0*LOG(S/(AMV2+Q2)))
9603* coherence length
9604 IF (ISHAD(3).EQ.1) DCOH = TWO*XNU/(AMV2+Q2)*GEV2FM
9605* integration weight factor
9606 FACM = ALPHEM/(3.0D0*PI*(ONE-X))*
9607 & R*AMV2/(AMV2+Q2)*(ONE+EPSPOL*Q2/AMV2)*WEIGHT(IM)
9608 ENDIF
9609 GSH = 10.0D0/(TWO*BSLOPE*GEV2MB)
9610 GAM = GSH
9611 IF (IJPROJ.EQ.7) THEN
9612 RCA = GAM*SIGMV/TWOPI
9613 ELSE
9614 RCA = GAM*SIGSH/TWOPI
9615 ENDIF
9616 FCA = -ROSH*RCA
9617 CA = DCMPLX(RCA,FCA)
9618 CI = CONE
9619
9620 DO 15 INA=1,NA
9621 KK1 = 1
9622 INT1 = 1
9623 KK2 = 1
9624 INT2 = 1
9625 DO 16 INB=1,NB
9626* photon-projectile: check for supression by coherence length
9627 IF (IJPROJ.EQ.7) THEN
9628 IF (ABS(COOT1(3,INB)-COOT1(3,KK1)).GT.DCOH)THEN
9629 KK1 = INB
9630 INT1 = INT1+1
9631 ENDIF
9632 IF (ABS(COOT2(3,INB)-COOT2(3,KK2)).GT.DCOH)THEN
9633 KK2 = INB
9634 INT2 = INT2+1
9635 ENDIF
9636 ENDIF
9637
9638 X11 = B+COOT1(1,INB)-COOP1(1,INA)
9639 Y11 = COOT1(2,INB)-COOP1(2,INA)
9640 XY11 = GAM*(X11*X11+Y11*Y11)
9641 IF (XY11.LE.15.0D0) THEN
9642 C = CONE-CA*EXP(-XY11)
9643 AR = DBLE(PP11(INT1))
9644 AI = DIMAG(PP11(INT1))
9645 IF (ABS(AR).LT.TINY25) AR = ZERO
9646 IF (ABS(AI).LT.TINY25) AI = ZERO
9647 PP11(INT1) = DCMPLX(AR,AI)
9648 PP11(INT1) = PP11(INT1)*C
9649 AR = DBLE(C)
9650 AI = DIMAG(C)
9651 SHI = SHI+LOG(AR*AR+AI*AI)
9652 ENDIF
9653 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9654 X12 = B+COOT2(1,INB)-COOP1(1,INA)
9655 Y12 = COOT2(2,INB)-COOP1(2,INA)
9656 XY12 = GAM*(X12*X12+Y12*Y12)
9657 IF (XY12.LE.15.0D0) THEN
9658 C = CONE-CA*EXP(-XY12)
9659 AR = DBLE(PP12(INT2))
9660 AI = DIMAG(PP12(INT2))
9661 IF (ABS(AR).LT.TINY25) AR = ZERO
9662 IF (ABS(AI).LT.TINY25) AI = ZERO
9663 PP12(INT2) = DCMPLX(AR,AI)
9664 PP12(INT2) = PP12(INT2)*C
9665 ENDIF
9666 X21 = B+COOT1(1,INB)-COOP2(1,INA)
9667 Y21 = COOT1(2,INB)-COOP2(2,INA)
9668 XY21 = GAM*(X21*X21+Y21*Y21)
9669 IF (XY21.LE.15.0D0) THEN
9670 C = CONE-CA*EXP(-XY21)
9671 AR = DBLE(PP21(INT1))
9672 AI = DIMAG(PP21(INT1))
9673 IF (ABS(AR).LT.TINY25) AR = ZERO
9674 IF (ABS(AI).LT.TINY25) AI = ZERO
9675 PP21(INT1) = DCMPLX(AR,AI)
9676 PP21(INT1) = PP21(INT1)*C
9677 ENDIF
9678 X22 = B+COOT2(1,INB)-COOP2(1,INA)
9679 Y22 = COOT2(2,INB)-COOP2(2,INA)
9680 XY22 = GAM*(X22*X22+Y22*Y22)
9681 IF (XY22.LE.15.0D0) THEN
9682 C = CONE-CA*EXP(-XY22)
9683 AR = DBLE(PP22(INT2))
9684 AI = DIMAG(PP22(INT2))
9685 IF (ABS(AR).LT.TINY25) AR = ZERO
9686 IF (ABS(AI).LT.TINY25) AI = ZERO
9687 PP22(INT2) = DCMPLX(AR,AI)
9688 PP22(INT2) = PP22(INT2)*C
9689 ENDIF
9690 ENDIF
9691 16 CONTINUE
9692 15 CONTINUE
9693
9694 OMPP11 = CZERO
9695 OMPP21 = CZERO
9696 DIPP11 = CZERO
9697 DIPP21 = CZERO
9698 DO 17 K=1,INT1
9699 IF (PP11(K).EQ.CZERO) THEN
9700 PPTMP1 = CZERO
9701 PPTMP2 = CZERO
9702 ELSE
9703 PPTMP1 = PP11(K)**(ONE-DIALPH-DIGAMM)
9704 PPTMP2 = PP11(K)**(ONE-DIALPH+DIGAMM)
9705 ENDIF
9706 AVDIPP = 0.5D0*
9707 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9708 OMPP11 = OMPP11+AVDIPP
9709C OMPP11 = OMPP11+(CONE-PP11(K))
9710 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9711 DIPP11 = DIPP11+AVDIPP
9712 IF (PP21(K).EQ.CZERO) THEN
9713 PPTMP1 = CZERO
9714 PPTMP2 = CZERO
9715 ELSE
9716 PPTMP1 = PP21(K)**(ONE-DIALPH-DIGAMM)
9717 PPTMP2 = PP21(K)**(ONE-DIALPH+DIGAMM)
9718 ENDIF
9719 AVDIPP = 0.5D0*
9720 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9721 OMPP21 = OMPP21+AVDIPP
9722C OMPP21 = OMPP21+(CONE-PP21(K))
9723 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9724 DIPP21 = DIPP21+AVDIPP
9725 17 CONTINUE
9726 OMPP12 = CZERO
9727 OMPP22 = CZERO
9728 DIPP12 = CZERO
9729 DIPP22 = CZERO
9730 DO 18 K=1,INT2
9731 IF (PP12(K).EQ.CZERO) THEN
9732 PPTMP1 = CZERO
9733 PPTMP2 = CZERO
9734 ELSE
9735 PPTMP1 = PP12(K)**(ONE-DIALPH-DIGAMM)
9736 PPTMP2 = PP12(K)**(ONE-DIALPH+DIGAMM)
9737 ENDIF
9738 AVDIPP = 0.5D0*
9739 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9740 OMPP12 = OMPP12+AVDIPP
9741C OMPP12 = OMPP12+(CONE-PP12(K))
9742 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9743 DIPP12 = DIPP12+AVDIPP
9744 IF (PP22(K).EQ.CZERO) THEN
9745 PPTMP1 = CZERO
9746 PPTMP2 = CZERO
9747 ELSE
9748 PPTMP1 = PP22(K)**(ONE-DIALPH-DIGAMM)
9749 PPTMP2 = PP22(K)**(ONE-DIALPH+DIGAMM)
9750 ENDIF
9751 AVDIPP = 0.5D0*
9752 & ( FACDI1*(CONE-PPTMP1)+FACDI2*(CONE-PPTMP2) )
9753 OMPP22 = OMPP22+AVDIPP
9754C OMPP22 = OMPP22+(CONE-PP22(K))
9755 AVDIPP = 0.5D0*FACDI*( PPTMP1-PPTMP2 )
9756 DIPP22 = DIPP22+AVDIPP
9757 18 CONTINUE
9758
9759 SPROM = ONE-EXP(SHI)
9760 SPROB = SPROB+FACM*SPROM
9761 IF ((.NOT.LPROD).OR.(IJPROJ.EQ.7)) THEN
9762 STOTM = DBLE(OMPP11+OMPP22)
9763 SELAM = DBLE(OMPP11*DCONJG(OMPP22))
9764 SQEPM = DBLE(OMPP11*DCONJG(OMPP21))-SELAM
9765 SQETM = DBLE(OMPP11*DCONJG(OMPP12))-SELAM
9766 SQE2M = DBLE(OMPP11*DCONJG(OMPP11))-SELAM-SQEPM-SQETM
9767 SDELM = DBLE(DIPP11*DCONJG(DIPP22))
9768 SDQEM = DBLE(DIPP11*DCONJG(DIPP21))-SDELM
9769 STOTB = STOTB+FACM*STOTM
9770 SELAB = SELAB+FACM*SELAM
9771 SDELB = SDELB+FACM*SDELM
9772 IF (NB.GT.1) THEN
9773 SQEPB = SQEPB+FACM*SQEPM
9774 SDQEB = SDQEB+FACM*SDQEM
9775 ENDIF
9776 IF (NA.GT.1) SQETB = SQETB+FACM*SQETM
9777 IF ((NA.GT.1).AND.(NB.GT.1)) SQE2B = SQE2B+FACM*SQE2M
9778 IF (IJPROJ.EQ.7) SDIR = SDIR+FACM*SIGMVD
9779 ENDIF
9780
9781 14 CONTINUE
9782
9783 STOTN = STOTN+FACB*STOTB
9784 SELAN = SELAN+FACB*SELAB
9785 SQEPN = SQEPN+FACB*SQEPB
9786 SQETN = SQETN+FACB*SQETB
9787 SQE2N = SQE2N+FACB*SQE2B
9788 SPRON = SPRON+FACB*SPROB
9789 SDELN = SDELN+FACB*SDELB
9790 SDQEN = SDQEN+FACB*SDQEB
9791
9792 IF (IJPROJ.EQ.7) THEN
9793 BPROD(IB+1)= BPROD(IB+1)+FACN*FACB*(STOTB-SELAB-SQEPB)
9794 ELSE
9795 IF (DIBETA.GT.ZERO) THEN
9796 BPROD(IB+1)= BPROD(IB+1)
9797 & +FACN*FACB*(STOTB-SELAB-SQEPB-SQETB-SQE2B)
9798 ELSE
9799 BPROD(IB+1)= BPROD(IB+1)+FACN*FACB*SPROB
9800 ENDIF
9801 ENDIF
9802
9803 12 CONTINUE
9804
9805 STOT = STOT +FACN*STOTN
9806 STOT2 = STOT2+FACN*STOTN**2
9807 SELA = SELA +FACN*SELAN
9808 SELA2 = SELA2+FACN*SELAN**2
9809 SQEP = SQEP +FACN*SQEPN
9810 SQEP2 = SQEP2+FACN*SQEPN**2
9811 SQET = SQET +FACN*SQETN
9812 SQET2 = SQET2+FACN*SQETN**2
9813 SQE2 = SQE2 +FACN*SQE2N
9814 SQE22 = SQE22+FACN*SQE2N**2
9815 SPRO = SPRO +FACN*SPRON
9816 SPRO2 = SPRO2+FACN*SPRON**2
9817 SDEL = SDEL +FACN*SDELN
9818 SDEL2 = SDEL2+FACN*SDELN**2
9819 SDQE = SDQE +FACN*SDQEN
9820 SDQE2 = SDQE2+FACN*SDQEN**2
9821
9822 11 CONTINUE
9823
9824* final cross sections
9825* 1) total
9826 XSTOT(IE,IQ,NTARG) = STOT
9827 IF (IJPROJ.EQ.7)
9828 & XSTOT(IE,IQ,NTARG) = XSTOT(IE,IQ,NTARG)+DBLE(NB)*SDIR
9829* 2) elastic
9830 XSELA(IE,IQ,NTARG) = SELA
9831* 3) quasi-el.: A+B-->A+X (excluding 2)
9832 XSQEP(IE,IQ,NTARG) = SQEP
9833* 4) quasi-el.: A+B-->X+B (excluding 2)
9834 XSQET(IE,IQ,NTARG) = SQET
9835* 5) quasi-el.: A+B-->X (excluding 2-4)
9836 XSQE2(IE,IQ,NTARG) = SQE2
9837* 6) production (= STOT-SELA-SQEP-SQET-SQE2!)
9838 IF (SDEL.GT.ZERO) THEN
9839 XSPRO(IE,IQ,NTARG) = STOT-SELA-SQEP-SQET-SQE2
9840 ELSE
9841 XSPRO(IE,IQ,NTARG) = SPRO
9842 ENDIF
9843* 7) projectile diffraction (el. scatt. off target)
9844 XSDEL(IE,IQ,NTARG) = SDEL
9845* 8) projectile diffraction (quasi-el. scatt. off target)
9846 XSDQE(IE,IQ,NTARG) = SDQE
9847* stat. errors
9848 XETOT(IE,IQ,NTARG) = SQRT(ABS(STOT2-STOT**2)/DBLE(NSTATB-1))
9849 XEELA(IE,IQ,NTARG) = SQRT(ABS(SELA2-SELA**2)/DBLE(NSTATB-1))
9850 XEQEP(IE,IQ,NTARG) = SQRT(ABS(SQEP2-SQEP**2)/DBLE(NSTATB-1))
9851 XEQET(IE,IQ,NTARG) = SQRT(ABS(SQET2-SQET**2)/DBLE(NSTATB-1))
9852 XEQE2(IE,IQ,NTARG) = SQRT(ABS(SQE22-SQE2**2)/DBLE(NSTATB-1))
9853 XEPRO(IE,IQ,NTARG) = SQRT(ABS(SPRO2-SPRO**2)/DBLE(NSTATB-1))
9854 XEDEL(IE,IQ,NTARG) = SQRT(ABS(SDEL2-SDEL**2)/DBLE(NSTATB-1))
9855 XEDQE(IE,IQ,NTARG) = SQRT(ABS(SDQE2-SDQE**2)/DBLE(NSTATB-1))
9856
9857 IF (IJPROJ.EQ.7) THEN
9858 BNORM = XSTOT(IE,IQ,NTARG)-XSELA(IE,IQ,NTARG)
9859 & -XSQEP(IE,IQ,NTARG)
9860 ELSE
9861 BNORM = XSPRO(IE,IQ,NTARG)
9862 ENDIF
9863 DO 19 I=2,NSITEB
9864 BSITE(IE,IQ,NTARG,I) = BPROD(I)/BNORM+BSITE(IE,IQ,NTARG,I-1)
9865 IF ((IE.EQ.1).AND.(IQ.EQ.1))
9866 & BSITE(0,1,NTARG,I) = BPROD(I)/BNORM+BSITE(0,1,NTARG,I-1)
9867 19 CONTINUE
9868
9869* write profile function data into file
9870 IF ((IOGLB.EQ.-1).OR.(IOGLB.EQ.-100)) THEN
9871 WRITE(LDAT,'(5I10,1P,E15.5)')
9872 & IJPROJ,NA,NB,NSTATB,NSITEB,ECMNN(IE)
9873 WRITE(LDAT,'(1P,6E12.5)')
9874 & XSTOT(IE,IQ,NTARG),XSELA(IE,IQ,NTARG),XSQEP(IE,IQ,NTARG),
9875 & XSQET(IE,IQ,NTARG),XSQE2(IE,IQ,NTARG),XSPRO(IE,IQ,NTARG)
9876 WRITE(LDAT,'(1P,6E12.5)')
9877 & XETOT(IE,IQ,NTARG),XEELA(IE,IQ,NTARG),XEQEP(IE,IQ,NTARG),
9878 & XEQET(IE,IQ,NTARG),XEQE2(IE,IQ,NTARG),XEPRO(IE,IQ,NTARG)
9879 NLINES = INT(DBLE(NSITEB)/7.0D0)
9880 IF (NLINES.GT.0) THEN
9881 DO 20 I=1,NLINES
9882 ISTART = 7*I-6
9883 WRITE(LDAT,'(1P,7E11.4)')
9884 & (BSITE(IE,IQ,NTARG,J),J=ISTART,ISTART+6)
9885 20 CONTINUE
9886 ENDIF
9887 ISTART = 7*NLINES+1
9888 IF (ISTART.LE.NSITEB) THEN
9889 WRITE(LDAT,'(1P,7E11.4)')
9890 & (BSITE(IE,IQ,NTARG,J),J=ISTART,NSITEB)
9891 ENDIF
9892 ENDIF
9893
9894 100 CONTINUE
9895
9896C IF (ABS(IOGLB).EQ.1) CLOSE(LDAT)
9897
9898 RETURN
9899 END
9900
9901*$ CREATE DT_GETBXS.FOR
9902*COPY DT_GETBXS
9903*
9904*===getbxs=============================================================*
9905*
9906 SUBROUTINE DT_GETBXS(XSFRAC,BLO,BHI,NIDX)
9907
9908************************************************************************
9909* Biasing in impact parameter space. *
9910* XSFRAC = 0 : BLO - minimum impact parameter (input) *
9911* BHI - maximum impact parameter (input) *
9912* XSFRAC - fraction of cross section corresponding *
9913* to impact parameter range (BLO,BHI) *
9914* (output) *
9915* XSFRAC > 0 : XSFRAC - fraction of cross section (input) *
9916* BHI - maximum impact parameter giving requested *
9917* fraction of cross section in impact *
9918* parameter range (0,BMAX) (output) *
9919* This version dated 17.03.00 is written by S. Roesler *
9920************************************************************************
9921
9922 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9923 SAVE
9924 PARAMETER ( LINP = 10 ,
9925 & LOUT = 6 ,
9926 & LDAT = 9 )
9927
9928 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
9929* Glauber formalism: parameters
9930 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
9931 & BMAX(NCOMPX),BSTEP(NCOMPX),
9932 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
9933 & NSITEB,NSTATB
9934
9935 NTARG = ABS(NIDX)
9936 IF (XSFRAC.LE.0.0D0) THEN
9937 ILO = MIN(NSITEB-1,INT(BLO/BSTEP(NTARG)))
9938 IHI = MIN(NSITEB-1,INT(BHI/BSTEP(NTARG)))
9939 IF (ILO.GE.IHI) THEN
9940 XSFRAC = 0.0D0
9941 RETURN
9942 ENDIF
9943 IF (ILO.EQ.NSITEB-1) THEN
9944 FRCLO = BSITE(0,1,NTARG,NSITEB)
9945 ELSE
9946 FRCLO = BSITE(0,1,NTARG,ILO+1)
9947 & +(BLO-ILO*BSTEP(NTARG))/BSTEP(NTARG)
9948 & *(BSITE(0,1,NTARG,ILO+2)-BSITE(0,1,NTARG,ILO+1))
9949 ENDIF
9950 IF (IHI.EQ.NSITEB-1) THEN
9951 FRCHI = BSITE(0,1,NTARG,NSITEB)
9952 ELSE
9953 FRCHI = BSITE(0,1,NTARG,IHI+1)
9954 & +(BHI-IHI*BSTEP(NTARG))/BSTEP(NTARG)
9955 & *(BSITE(0,1,NTARG,IHI+2)-BSITE(0,1,NTARG,IHI+1))
9956 ENDIF
9957 XSFRAC = FRCHI-FRCLO
9958 ELSE
9959 BLO = 0.0D0
9960 BHI = BMAX(NTARG)
9961 DO 1 I=1,NSITEB-1
9962 IF (XSFRAC.LT.BSITE(0,1,NTARG,I+1)) THEN
9963 FAC = (XSFRAC -BSITE(0,1,NTARG,I))/
9964 & (BSITE(0,1,NTARG,I+1)-BSITE(0,1,NTARG,I))
9965 BHI = DBLE(I-1)*BSTEP(NTARG)+BSTEP(NTARG)*FAC
9966 GOTO 2
9967 ENDIF
9968 1 CONTINUE
9969 2 CONTINUE
9970 ENDIF
9971
9972 RETURN
9973 END
9974
9975*$ CREATE DT_CONUCL.FOR
9976*COPY DT_CONUCL
9977*
9978*===conucl=============================================================*
9979*
9980 SUBROUTINE DT_CONUCL(X,N,R,MODE)
9981
9982************************************************************************
9983* Calculation of coordinates of nucleons within nuclei. *
9984* X(3,N) spatial coordinates of nucleons (in fm) (output) *
9985* N / R number of nucleons / radius of nucleus (input) *
9986* MODE = 0 coordinates not sorted *
9987* = 1 coordinates sorted with increasing X(3,i) *
9988* = 2 coordinates sorted with decreasing X(3,i) *
9989* This version dated 26.10.95 is revised by S. Roesler *
9990************************************************************************
9991
9992 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
9993 SAVE
9994 PARAMETER ( LINP = 10 ,
9995 & LOUT = 6 ,
9996 & LDAT = 9 )
9997
9998 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,
9999 & ONETHI=ONE/THREE,SQRTWO=1.414213562D0)
10000
10001 PARAMETER (TWOPI = 6.283185307179586454D+00 )
10002
10003 PARAMETER (NSRT=10)
10004 DIMENSION IDXSRT(NSRT,200),ICSRT(NSRT)
10005 DIMENSION X(3,N),XTMP(3,260)
10006
10007 CALL DT_COORDI(XTMP,IDXSRT,ICSRT,N,R)
10008
10009 IF ((MODE.NE.0).AND.(N.GT.4)) THEN
10010 K = 0
10011 DO 1 I=1,NSRT
10012 IF (MODE.EQ.2) THEN
10013 ISRT = NSRT+1-I
10014 ELSE
10015 ISRT = I
10016 ENDIF
10017 K1 = K
10018 DO 2 J=1,ICSRT(ISRT)
10019 K = K+1
10020 X(1,K) = XTMP(1,IDXSRT(ISRT,J))
10021 X(2,K) = XTMP(2,IDXSRT(ISRT,J))
10022 X(3,K) = XTMP(3,IDXSRT(ISRT,J))
10023 2 CONTINUE
10024 IF (ICSRT(ISRT).GT.1) THEN
10025 I0 = K1+1
10026 I1 = K
10027 CALL DT_SORT(X,N,I0,I1,MODE)
10028 ENDIF
10029 1 CONTINUE
10030 ELSEIF ((MODE.NE.0).AND.(N.GE.2).AND.(N.LE.4)) THEN
10031 DO 3 I=1,N
10032 X(1,I) = XTMP(1,I)
10033 X(2,I) = XTMP(2,I)
10034 X(3,I) = XTMP(3,I)
10035 3 CONTINUE
10036 CALL DT_SORT(X,N,1,N,MODE)
10037 ELSE
10038 DO 4 I=1,N
10039 X(1,I) = XTMP(1,I)
10040 X(2,I) = XTMP(2,I)
10041 X(3,I) = XTMP(3,I)
10042 4 CONTINUE
10043 ENDIF
10044
10045 RETURN
10046 END
10047
10048*$ CREATE DT_COORDI.FOR
10049*COPY DT_COORDI
10050*
10051*===coordi=============================================================*
10052*
10053 SUBROUTINE DT_COORDI(X,IDXSRT,ICSRT,N,R)
10054
10055************************************************************************
10056* Calculation of coordinates of nucleons within nuclei. *
10057* X(3,N) spatial coordinates of nucleons (in fm) (output) *
10058* N / R number of nucleons / radius of nucleus (input) *
10059* Based on the original version by Shmakov et al. *
10060* This version dated 26.10.95 is revised by S. Roesler *
10061************************************************************************
10062
10063 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10064 SAVE
10065 PARAMETER ( LINP = 10 ,
10066 & LOUT = 6 ,
10067 & LDAT = 9 )
10068
10069 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0,
10070 & ONETHI=ONE/THREE,SQRTWO=1.414213562D0)
10071
10072 PARAMETER (TWOPI = 6.283185307179586454D+00 )
10073
10074 LOGICAL LSTART
10075
10076 PARAMETER (NSRT=10)
10077 DIMENSION IDXSRT(NSRT,200),ICSRT(NSRT)
10078 DIMENSION X(3,260),WD(4),RD(3)
10079
10080 DATA PDIF/0.545D0/,R2MIN/0.16D0/
10081 DATA WD / 0.0D0, 0.178D0, 0.465D0, 1.0D0/
10082 DATA RD /2.09D0, 0.935D0, 0.697D0/
10083
10084 X1SUM = ZERO
10085 X2SUM = ZERO
10086 X3SUM = ZERO
10087
10088 IF (N.EQ.1) THEN
10089 X(1,1) = ZERO
10090 X(2,1) = ZERO
10091 X(3,1) = ZERO
10092 ELSEIF (N.EQ.2) THEN
10093 EPS = DT_RNDM(RD(1))
10094 DO 30 I=1,3
10095 IF ((EPS.GE.WD(I)).AND.(EPS.LE.WD(I+1))) GOTO 40
10096 30 CONTINUE
10097 40 CONTINUE
10098 DO 50 J=1,3
10099 CALL DT_RANNOR(X1,X2)
10100 X(J,1) = RD(I)*X1
10101 X(J,2) = -X(J,1)
10102 50 CONTINUE
10103 ELSEIF ((N.EQ.3).OR.(N.EQ.4)) THEN
10104 SIGMA = R/SQRTWO
10105 LSTART = .TRUE.
10106 CALL DT_RANNOR(X3,X4)
10107 DO 100 I=1,N
10108 CALL DT_RANNOR(X1,X2)
10109 X(1,I) = SIGMA*X1
10110 X(2,I) = SIGMA*X2
10111 IF (LSTART) GOTO 80
10112 X(3,I) = SIGMA*X4
10113 CALL DT_RANNOR(X3,X4)
10114 GOTO 90
10115 80 CONTINUE
10116 X(3,I) = SIGMA*X3
10117 90 CONTINUE
10118 LSTART = .NOT.LSTART
10119 X1SUM = X1SUM+X(1,I)
10120 X2SUM = X2SUM+X(2,I)
10121 X3SUM = X3SUM+X(3,I)
10122 100 CONTINUE
10123 X1SUM = X1SUM/DBLE(N)
10124 X2SUM = X2SUM/DBLE(N)
10125 X3SUM = X3SUM/DBLE(N)
10126 DO 101 I=1,N
10127 X(1,I) = X(1,I)-X1SUM
10128 X(2,I) = X(2,I)-X2SUM
10129 X(3,I) = X(3,I)-X3SUM
10130 101 CONTINUE
10131 ELSE
10132
10133* maximum nuclear radius for coordinate sampling
10134 RMAX = R+4.605D0*PDIF
10135
10136* initialize pre-sorting
10137 DO 121 I=1,NSRT
10138 ICSRT(I) = 0
10139 121 CONTINUE
10140 DR = TWO*RMAX/DBLE(NSRT)
10141
10142* sample coordinates for N nucleons
10143 DO 140 I=1,N
10144 120 CONTINUE
10145 RAD = RMAX*(DT_RNDM(DR))**ONETHI
10146 F = DT_DENSIT(N,RAD,R)
10147 IF (DT_RNDM(RAD).GT.F) GOTO 120
10148* theta, phi uniformly distributed
10149 CT = ONE-TWO*DT_RNDM(F)
10150 ST = SQRT((ONE-CT)*(ONE+CT))
10151 CALL DT_DSFECF(SFE,CFE)
10152 X(1,I) = RAD*ST*CFE
10153 X(2,I) = RAD*ST*SFE
10154 X(3,I) = RAD*CT
10155* ensure that distance between two nucleons is greater than R2MIN
10156 IF (I.LT.2) GOTO 122
10157 I1 = I-1
10158 DO 130 I2=1,I1
10159 DIST2 = (X(1,I)-X(1,I2))**2+(X(2,I)-X(2,I2))**2+
10160 & (X(3,I)-X(3,I2))**2
10161 IF (DIST2.LE.R2MIN) GOTO 120
10162 130 CONTINUE
10163 122 CONTINUE
10164* save index according to z-bin
10165 IDXZ = INT( (X(3,I)+RMAX)/DR )+1
10166 ICSRT(IDXZ) = ICSRT(IDXZ)+1
10167 IDXSRT(IDXZ,ICSRT(IDXZ)) = I
10168 X1SUM = X1SUM+X(1,I)
10169 X2SUM = X2SUM+X(2,I)
10170 X3SUM = X3SUM+X(3,I)
10171 140 CONTINUE
10172 X1SUM = X1SUM/DBLE(N)
10173 X2SUM = X2SUM/DBLE(N)
10174 X3SUM = X3SUM/DBLE(N)
10175 DO 141 I=1,N
10176 X(1,I) = X(1,I)-X1SUM
10177 X(2,I) = X(2,I)-X2SUM
10178 X(3,I) = X(3,I)-X3SUM
10179 141 CONTINUE
10180
10181 ENDIF
10182
10183 RETURN
10184 END
10185
10186*$ CREATE DT_DENSIT.FOR
10187*COPY DT_DENSIT
10188*
10189*===densit=============================================================*
10190*
10191 DOUBLE PRECISION FUNCTION DT_DENSIT(NA,R,RA)
10192
10193 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10194 SAVE
10195
10196 PARAMETER ( LINP = 10 ,
10197 & LOUT = 6 ,
10198 & LDAT = 9 )
10199 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
10200 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
10201 & PI = TWOPI/TWO)
10202
10203 DIMENSION R0(18),FNORM(18)
10204 DATA R0 / ZERO, ZERO, ZERO, ZERO, 2.12D0,
10205 & 2.56D0, 2.41D0, 2.46D0, 2.52D0, 2.45D0,
10206 & 2.37D0, 2.46D0, 2.44D0, 2.54D0, 2.58D0,
10207 & 2.72D0, 2.66D0, 2.79D0/
10208 DATA FNORM /.1000D+01,.1000D+01,.1000D+01,.1000D+01,.1000D+01,
10209 & .1000D+01,.1000D+01,.1000D+01,.1000D+01,.1000D+01,
10210 & .1012D+01,.1039D+01,.1075D+01,.1118D+01,.1164D+01,
10211 & .1214D+01,.1265D+01,.1318D+01/
10212 DATA PDIF /0.545D0/
10213
10214 DT_DENSIT = ZERO
10215* shell model
10216 IF (NA.LE.4) THEN
10217 STOP 'DT_DENSIT-0'
10218 ELSEIF ((NA.GT.4).AND.(NA.LE.18)) THEN
10219 R1 = R0(NA)/SQRT(2.5D0-4.0D0/DBLE(NA))
10220 DT_DENSIT = (ONE+(DBLE(NA)-4.0D0)/6.0D0*(R/R1)**2)
10221 & *EXP(-(R/R1)**2)/FNORM(NA)
10222* Woods-Saxon
10223 ELSEIF (NA.GT.18) THEN
10224 DT_DENSIT = ONE/(ONE+EXP((R-RA)/PDIF))
10225 ENDIF
10226
10227 RETURN
10228 END
10229
10230*$ CREATE DT_RNCLUS.FOR
10231*COPY DT_RNCLUS
10232*
10233*===rnclus=============================================================*
10234*
10235 DOUBLE PRECISION FUNCTION DT_RNCLUS(N)
10236
10237************************************************************************
10238* Nuclear radius for nucleus with mass number N. *
10239* This version dated 26.9.00 is written by S. Roesler *
10240************************************************************************
10241
10242 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10243 SAVE
10244
10245 PARAMETER (ONE=1.0D0,THREE=3.0D0,ONETHI=ONE/THREE)
10246
10247* nucleon radius
10248 PARAMETER (RNUCLE = 1.12D0)
10249
10250* nuclear radii for selected nuclei
10251 DIMENSION RADNUC(18)
10252 DATA RADNUC / 8*0.0D0,2.52D0,2.45D0,2.37D0,2.45D0,2.44D0,2.55D0,
10253 & 2.58D0,2.71D0,2.66D0,2.71D0/
10254
10255 IF (N.LE.18) THEN
10256 IF (RADNUC(N).GT.0.0D0) THEN
10257 DT_RNCLUS = RADNUC(N)
10258 ELSE
10259 DT_RNCLUS = RNUCLE*DBLE(N)**ONETHI
10260 ENDIF
10261 ELSE
10262 DT_RNCLUS = RNUCLE*DBLE(N)**ONETHI
10263 ENDIF
10264
10265 RETURN
10266 END
10267
10268*$ CREATE DT_DENTST.FOR
10269*COPY DT_DENTST
10270*
10271*===dentst=============================================================*
10272*
10273C PROGRAM DT_DENTST
10274 SUBROUTINE DT_DENTST
10275
10276 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10277 SAVE
10278
10279 OPEN(40,FILE='dentst.out',STATUS='UNKNOWN')
10280 OPEN(41,FILE='denmax.out',STATUS='UNKNOWN')
10281
10282 RMIN = 0.0D0
10283 RMAX = 8.0D0
10284 NBINS = 500.0D0
10285 DR = (RMAX-RMIN)/DBLE(NBINS)
10286 DO 1 IA=5,18
10287 FMAX = 0.0D0
10288 DO 2 IR=1,NBINS+1
10289 R = RMIN+DBLE(IR-1)*DR
10290 F = DT_DENSIT(IA,R,R)
10291 IF (F.GT.FMAX) FMAX = F
10292 WRITE(40,'(1X,I3,2E15.5)') IA,R,F
10293 2 CONTINUE
10294 WRITE(41,'(1X,I3,E15.5)') IA,FMAX
10295 1 CONTINUE
10296
10297 CLOSE(40)
10298 CLOSE(41)
10299
10300 END
10301
10302*$ CREATE DT_SHMAKI.FOR
10303*COPY DT_SHMAKI
10304*
10305*===shmaki=============================================================*
10306*
10307 SUBROUTINE DT_SHMAKI(NA,NCA,NB,NCB,IJP,PPN,MODE)
10308
10309************************************************************************
10310* Initialisation of Glauber formalism. This subroutine has to be *
10311* called once (in case of target emulsions as often as many different *
10312* target nuclei are considered) before events are sampled. *
10313* NA / NCA mass number/charge of projectile nucleus *
10314* NB / NCB mass number/charge of target nucleus *
10315* IJP identity of projectile (hadrons/leptons/photons) *
10316* PPN projectile momentum (for projectile nuclei: *
10317* momentum per nucleon) in target rest system *
10318* MODE = 0 Glauber formalism invoked *
10319* = 1 fitted results are loaded from data-file *
10320* = 99 NTARG is forced to be 1 *
10321* (used in connection with GLAUBERI-card only) *
10322* This version dated 22.03.96 is based on the original SHMAKI-routine *
10323* and revised by S. Roesler. *
10324************************************************************************
10325
10326 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10327 SAVE
10328 PARAMETER ( LINP = 10 ,
10329 & LOUT = 6 ,
10330 & LDAT = 9 )
10331 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0,
10332 & THREE=3.0D0)
10333
10334 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10335* Glauber formalism: parameters
10336 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10337 & BMAX(NCOMPX),BSTEP(NCOMPX),
10338 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10339 & NSITEB,NSTATB
10340* Lorentz-parameters of the current interaction
10341 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
10342 & UMO,PPCM,EPROJ,PPROJ
10343* properties of photon/lepton projectiles
10344 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
10345* kinematical cuts for lepton-nucleus interactions
10346 COMMON /DTLCUT/ ECMIN,ECMAX,XBJMIN,ELMIN,EGMIN,EGMAX,YMIN,YMAX,
10347 & Q2MIN,Q2MAX,THMIN,THMAX,Q2LI,Q2HI,ECMLI,ECMHI
10348* Glauber formalism: cross sections
10349 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10350 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10351 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10352 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10353 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10354 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10355 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10356 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10357 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10358 & BSLOPE,NEBINI,NQBINI
10359* cuts for variable energy runs
10360 COMMON /DTVARE/ VARELO,VAREHI,VARCLO,VARCHI
10361* nucleon-nucleon event-generator
10362 CHARACTER*8 CMODEL
10363 LOGICAL LPHOIN
10364 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
10365* Glauber formalism: flags and parameters for statistics
10366 LOGICAL LPROD
10367 CHARACTER*8 CGLB
10368 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
10369
10370 DATA NTARG,ICOUT,IVEOUT /0,0,0/
10371
10372C CALL DT_HISHAD
10373C STOP
10374
10375 NTARG = NTARG+1
10376 IF (MODE.EQ.99) NTARG = 1
10377 NIDX = -NTARG
10378 IF (MODE.EQ.-1) NIDX = NTARG
10379
10380 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4)) ICOUT = ICOUT+1
10381 IF (ICOUT.EQ.1) WRITE(LOUT,1000)
10382 1000 FORMAT(//,1X,'SHMAKI: Glauber formalism (Shmakov et. al) -',
10383 & ' initialization',/,12X,'--------------------------',
10384 & '-------------------------',/)
10385
10386 IF (MODE.EQ.2) THEN
10387 CALL DT_XSGLAU(NA,NB,IJP,ZERO,VIRT,UMO,1,1,NIDX)
10388 CALL DT_SHFAST(MODE,PPN,IBACK)
10389 STOP ' Glauber pre-initialization done'
10390 ENDIF
10391 IF (MODE.EQ.1) THEN
10392 CALL DT_PROFBI(NA,NB,PPN,NTARG)
10393 ELSE
10394 IBACK = 1
10395 IF (MODE.EQ.3) CALL DT_SHFAST(MODE,PPN,IBACK)
10396 IF (IBACK.EQ.1) THEN
10397* lepton-nucleus (variable energy runs)
10398 IF ((IJP.EQ. 3).OR.(IJP.EQ. 4).OR.
10399 & (IJP.EQ.10).OR.(IJP.EQ.11)) THEN
10400 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10401 & WRITE(LOUT,1002) NB,NCB
10402 1002 FORMAT(1X,'variable energy run: projectile-id: 7',
10403 & ' target A/Z: ',I3,' /',I3,/,/,8X,
10404 & 'E_cm (GeV) Q^2 (GeV^2)',
10405 & ' Sigma_tot (mb) Sigma_in (mb)',/,7X,
10406 & '--------------------------------',
10407 & '------------------------------')
10408 AECMLO = LOG10(MIN(UMO,ECMLI))
10409 AECMHI = LOG10(MIN(UMO,ECMHI))
10410 IESTEP = NEB-1
10411 DAECM = (AECMHI-AECMLO)/DBLE(IESTEP)
10412 IF (AECMLO.EQ.AECMHI) IESTEP = 0
10413 DO 1 I=1,IESTEP+1
10414 ECM = 10.0D0**(AECMLO+DBLE(I-1)*DAECM)
10415 IF (Q2HI.GT.0.1D0) THEN
10416 IF (Q2LI.LT.0.01D0) THEN
10417 CALL DT_XSGLAU(NA,NB,7,ZERO,ZERO,ECM,I,1,NIDX)
10418 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10419 & WRITE(LOUT,1003)
10420 & ECMNN(I),ZERO,XSTOT(I,1,NTARG),XSPRO(I,1,NTARG)
10421 Q2LI = 0.01D0
10422 IBIN = 2
10423 ELSE
10424 IBIN = 1
10425 ENDIF
10426 IQSTEP = NQB-IBIN
10427 AQ2LO = LOG10(Q2LI)
10428 AQ2HI = LOG10(Q2HI)
10429 DAQ2 = (AQ2HI-AQ2LO)/MAX(DBLE(IQSTEP),ONE)
10430 DO 2 J=IBIN,IQSTEP+IBIN
10431 Q2 = 10.0D0**(AQ2LO+DBLE(J-IBIN)*DAQ2)
10432 CALL DT_XSGLAU(NA,NB,7,ZERO,Q2,ECM,I,J,NIDX)
10433 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10434 & WRITE(LOUT,1003) ECMNN(I),
10435 & Q2G(J),XSTOT(I,J,NTARG),XSPRO(I,J,NTARG)
10436 2 CONTINUE
10437 ELSE
10438 CALL DT_XSGLAU(NA,NB,7,ZERO,ZERO,ECM,I,1,NIDX)
10439 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10440 & WRITE(LOUT,1003)
10441 & ECMNN(I),ZERO,XSTOT(I,1,NTARG),XSPRO(I,1,NTARG)
10442 ENDIF
10443 1003 FORMAT(9X,F6.1,9X,F6.2,8X,F8.3,11X,F8.3)
10444 1 CONTINUE
10445 IVEOUT = 1
10446 ELSE
10447* hadron/photon/nucleus-nucleus
10448 IF ((ABS(VAREHI).GT.ZERO).AND.
10449 & (ABS(VAREHI).GT.ABS(VARELO))) THEN
10450 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4)) THEN
10451 WRITE(LOUT,1004) NA,NB,NCB
10452 1004 FORMAT(1X,'variable energy run: projectile-id:',
10453 & I3,' target A/Z: ',I3,' /',I3,/)
10454 WRITE(LOUT,1005)
10455 1005 FORMAT(' E_cm (GeV) E_Lab (GeV) sig_tot^pp (mb)'
10456 & ,' Sigma_tot (mb) Sigma_prod (mb)',/,
10457 & ' -------------------------------------',
10458 & '--------------------------------------')
10459 ENDIF
10460 AECMLO = LOG10(VARCLO)
10461 AECMHI = LOG10(VARCHI)
10462 IESTEP = NEB-1
10463 DAECM = (AECMHI-AECMLO)/DBLE(IESTEP)
10464 IF (AECMLO.EQ.AECMHI) IESTEP = 0
10465 DO 3 I=1,IESTEP+1
10466 ECM = 10.0D0**(AECMLO+DBLE(I-1)*DAECM)
10467 AMP = 0.938D0
10468 AMT = 0.938D0
10469 AMP2 = AMP**2
10470 AMT2 = AMT**2
10471 ELAB = (ECM**2-AMP2-AMT2)/(TWO*AMT)
10472 PLAB = SQRT((ELAB+AMP)*(ELAB-AMP))
10473 CALL DT_XSGLAU(NA,NB,IJP,ZERO,VIRT,ECM,I,1,NIDX)
10474 IF ((ICOUT.LT.15).AND.(MCGENE.NE.4))
10475 & WRITE(LOUT,1006)
10476 & ECM,PLAB,SIGSH,XSTOT(I,1,NTARG),XSPRO(I,1,NTARG)
10477 1006 FORMAT(1X,F9.1,1X,E11.3,1X,F12.2,8X,F10.3,8X,F8.3)
10478 3 CONTINUE
10479 IVEOUT = 1
10480 ELSE
10481 CALL DT_XSGLAU(NA,NB,IJP,ZERO,VIRT,UMO,1,1,NIDX)
10482 ENDIF
10483 ENDIF
10484 ENDIF
10485 ENDIF
10486
10487 IF ((ICOUT.LT.15).AND.(IVEOUT.EQ.0).AND.(MCGENE.NE.4).AND.
10488 & (IOGLB.NE.100)) THEN
10489 WRITE(LOUT,1001) NA,NCA,NB,NCB,ECMNN(1),SIGSH*10.0D0,ROSH,
10490 & BSLOPE,NSITEB,NSTATB,XSPRO(1,1,NTARG)
10491 1001 FORMAT(38X,'projectile',
10492 & ' target',/,1X,'Mass number / charge',
10493 & 17X,I3,' /',I3,6X,I3,' /',I3,/,/,1X,
10494 & 'Nucleon-nucleon c.m. energy',9X,F10.2,' GeV',/,/,1X,
10495 & 'Parameters of elastic scattering amplitude:',/,5X,
10496 & 'sigma =',F7.2,' mb',6X,'rho = ',F9.4,6X,'slope = ',
10497 & F4.1,' GeV^-2',/,/,1X,'Number of b-steps',4X,I3,8X,
10498 & 'statistics at each b-step',4X,I5,/,/,1X,
10499 & 'Prod. cross section ',5X,F10.4,' mb',/)
10500 ENDIF
10501
10502 RETURN
10503 END
10504
10505*$ CREATE DT_PROFBI.FOR
10506*COPY DT_PROFBI
10507*
10508*===profbi=============================================================*
10509*
10510 SUBROUTINE DT_PROFBI(NA,NB,PPN,NTARG)
10511
10512************************************************************************
10513* Integral over profile function (to be used for impact-parameter *
10514* sampling during event generation). *
10515* Fitted results are used. *
10516* NA / NB mass numbers of proj./target nuclei *
10517* PPN projectile momentum (for projectile nuclei: *
10518* momentum per nucleon) in target rest system *
10519* NTARG index of target material (i.e. kind of nucleus) *
10520* This version dated 31.05.95 is revised by S. Roesler *
10521************************************************************************
10522
10523 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10524 SAVE
10525 PARAMETER ( LINP = 10 ,
10526 & LOUT = 6 ,
10527 & LDAT = 9 )
454792a9 10528CPH SAVE
9aaba0d6 10529
10530 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,THREE=3.0D0)
10531
10532 LOGICAL LSTART
10533 CHARACTER CNAME*80
10534
10535 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10536* Glauber formalism: parameters
10537 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10538 & BMAX(NCOMPX),BSTEP(NCOMPX),
10539 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10540 & NSITEB,NSTATB
10541* Glauber formalism: cross sections
10542 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10543 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10544 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10545 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10546 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10547 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10548 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10549 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10550 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10551 & BSLOPE,NEBINI,NQBINI
10552
10553 PARAMETER (NGLMAX=8000)
10554 DIMENSION NGLIT(NGLMAX),NGLIP(NGLMAX),GLAPPN(NGLMAX),
10555 & GLASIG(NGLMAX),GLAFIT(5,NGLMAX)
10556
10557 DATA LSTART /.TRUE./
10558
10559 IF (LSTART) THEN
10560* read fit-parameters from file
10561 OPEN(47,FILE='inpdata/glpara.dat',STATUS='UNKNOWN')
10562 I = 0
10563 1 CONTINUE
10564 READ(47,'(A80)') CNAME
10565 IF (CNAME.EQ.'STOP') GOTO 2
10566 I = I+1
10567 READ(CNAME,*) NGLIP(I),NGLIT(I),GLAPPN(I),GLASIG(I),
10568 & GLAFIT(1,I),GLAFIT(2,I),GLAFIT(3,I),
10569 & GLAFIT(4,I),GLAFIT(5,I)
10570 IF (I+1.GT.NGLMAX) THEN
10571 WRITE(LOUT,1000)
10572 1000 FORMAT(1X,'PROFBI: warning! array size exceeded - ',
10573 & 'program stopped')
10574 STOP
10575 ENDIF
10576 GOTO 1
10577 2 CONTINUE
10578 NGLPAR = I
10579 LSTART = .FALSE.
10580 ENDIF
10581
10582 NNA = NA
10583 NNB = NB
10584 IF (NA.GT.NB) THEN
10585 NNA = NB
10586 NNB = NA
10587 ENDIF
10588 IDXGLA = 0
10589 DO 3 J=1,NGLPAR
10590 IF ((NNB.LT.NGLIT(J)).OR.(J.EQ.NGLPAR)) THEN
10591 IF (NNB.NE.NGLIT(J-1)) NNB = NGLIT(J-1)
10592 DO 4 K=1,J-1
10593 IPOINT = J-K
10594 IF (J.EQ.NGLPAR) IPOINT = J+1-K
10595 IF ((NNA.GT.NGLIP(IPOINT)).OR.
10596 & (NNB.NE.NGLIT(IPOINT)).OR.(IPOINT.EQ.1)) THEN
10597 IF (IPOINT.EQ.1) IPOINT = 0
10598 NATMP = NGLIP(IPOINT+1)
10599 IF (PPN.LT.GLAPPN(IPOINT+1)) THEN
10600 IDXGLA = IPOINT+1
10601 GOTO 6
10602 ELSE
10603 J1BEG = IPOINT+1
10604 J1END = J
10605C IF (J.EQ.NGLPAR) THEN
10606C J1BEG = IPOINT
10607C J1END = J
10608C ENDIF
10609 DO 5 J1=J1BEG,J1END
10610 IF (NGLIP(J1).EQ.NATMP) THEN
10611 IF (PPN.LT.GLAPPN(J1)) THEN
10612 IDXGLA = J1
10613 GOTO 6
10614 ENDIF
10615 ELSE
10616 IDXGLA = J1-1
10617 GOTO 6
10618 ENDIF
10619 5 CONTINUE
10620 IF ((J.EQ.NGLPAR).AND.(PPN.GT.GLAPPN(NGLPAR)))
10621 & IDXGLA = NGLPAR
10622 ENDIF
10623 ENDIF
10624 4 CONTINUE
10625 ENDIF
10626 3 CONTINUE
10627
10628 6 CONTINUE
10629 IF (IDXGLA.EQ.0) THEN
10630 WRITE(LOUT,1001) NNA,NNB,PPN
10631 1001 FORMAT(1X,'PROFBI: configuration (NA,NB,PPN = ',
10632 & 2I4,F6.0,') not found ')
10633 STOP
10634 ENDIF
10635
10636* no interpolation yet available
10637 XSPRO(1,1,NTARG) = GLASIG(IDXGLA)
10638
10639 BSITE(1,1,NTARG,1) = ZERO
10640 DO 10 I=2,NSITEB
10641 XX = DBLE(I)
10642 POLY = GLAFIT(1,IDXGLA)+GLAFIT(2,IDXGLA)*XX+
10643 & GLAFIT(3,IDXGLA)*XX**2+GLAFIT(4,IDXGLA)*XX**3+
10644 & GLAFIT(5,IDXGLA)*XX**4
10645 IF (ABS(POLY).GT.35.0D0) POLY = SIGN(35.0D0,POLY)
10646 BSITE(1,1,NTARG,I) = (1.0D0-EXP(-POLY))
10647 IF (BSITE(1,1,NTARG,I).LT.ZERO) BSITE(1,1,NTARG,I) = ZERO
10648 10 CONTINUE
10649
10650 RETURN
10651 END
10652
10653*$ CREATE DT_GLAUBE.FOR
10654*COPY DT_GLAUBE
10655*
10656*===glaube=============================================================*
10657*
10658 SUBROUTINE DT_GLAUBE(NA,NB,IJPROJ,B,INTT,INTA,INTB,JS,JT,NIDX)
10659
10660************************************************************************
10661* Calculation of configuartion of interacting nucleons for one event. *
10662* NB / NB mass numbers of proj./target nuclei (input) *
10663* B impact parameter (output) *
10664* INTT total number of wounded nucleons " *
10665* INTA / INTB number of wounded nucleons in proj. / target " *
10666* JS / JT(i) number of collisions proj. / target nucleon i is *
10667* involved (output) *
10668* NIDX index of projectile/target material (input) *
10669* = -2 call within FLUKA transport calculation *
10670* This is an update of the original routine SHMAKO by J.Ranft/HJM *
10671* This version dated 22.03.96 is revised by S. Roesler *
10672* *
10673* Last change 27.12.2006 by S. Roesler. *
10674************************************************************************
10675
10676 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10677 SAVE
10678 PARAMETER ( LINP = 10 ,
10679 & LOUT = 6 ,
10680 & LDAT = 9 )
10681 PARAMETER (TINY10=1.0D-10,TINY14=1.0D-14,
10682 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
10683
10684 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10685 PARAMETER ( MAXNCL = 260,
10686 & MAXVQU = MAXNCL,
10687 & MAXSQU = 20*MAXVQU,
10688 & MAXINT = MAXVQU+MAXSQU)
10689* Glauber formalism: parameters
10690 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10691 & BMAX(NCOMPX),BSTEP(NCOMPX),
10692 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10693 & NSITEB,NSTATB
10694* Glauber formalism: cross sections
10695 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10696 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10697 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10698 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10699 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10700 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10701 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10702 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10703 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10704 & BSLOPE,NEBINI,NQBINI
10705* Lorentz-parameters of the current interaction
10706 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
10707 & UMO,PPCM,EPROJ,PPROJ
10708* properties of photon/lepton projectiles
10709 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
10710* Glauber formalism: collision properties
10711 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
10712 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
10713* Glauber formalism: flags and parameters for statistics
10714 LOGICAL LPROD
10715 CHARACTER*8 CGLB
10716 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
10717
10718 DIMENSION JS(MAXNCL),JT(MAXNCL)
10719
10720 NTARG = ABS(NIDX)
10721
10722* get actual energy from /DTLTRA/
10723 ECMNOW = UMO
10724 Q2 = VIRT
10725*
10726* new patch for pre-initialized variable projectile/target/energy runs,
10727* bypassed for use within FLUKA (Nidx=-2)
10728 IF (IOGLB.EQ.100) THEN
10729 IF (NIDX.NE.-2) CALL DT_GLBSET(IJPROJ,NA,NB,EPROJ,1)
10730*
10731* variable energy run, interpolate profile function
10732 ELSE
10733 I1 = 1
10734 I2 = 1
10735 RATE = ONE
10736 IF (NEBINI.GT.1) THEN
10737 IF (ECMNOW.GE.ECMNN(NEBINI)) THEN
10738 I1 = NEBINI
10739 I2 = NEBINI
10740 RATE = ONE
10741 ELSEIF (ECMNOW.GT.ECMNN(1)) THEN
10742 DO 1 I=2,NEBINI
10743 IF (ECMNOW.LT.ECMNN(I)) THEN
10744 I1 = I-1
10745 I2 = I
10746 RATE = (ECMNOW-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
10747 GOTO 2
10748 ENDIF
10749 1 CONTINUE
10750 2 CONTINUE
10751 ENDIF
10752 ENDIF
10753 J1 = 1
10754 J2 = 1
10755 RATQ = ONE
10756 IF (NQBINI.GT.1) THEN
10757 IF (Q2.GE.Q2G(NQBINI)) THEN
10758 J1 = NQBINI
10759 J2 = NQBINI
10760 RATQ = ONE
10761 ELSEIF (Q2.GT.Q2G(1)) THEN
10762 DO 3 I=2,NQBINI
10763 IF (Q2.LT.Q2G(I)) THEN
10764 J1 = I-1
10765 J2 = I
10766 RATQ = LOG10( Q2/MAX(Q2G(J1),TINY14))/
10767 & LOG10(Q2G(J2)/MAX(Q2G(J1),TINY14))
10768C RATQ = (Q2-Q2G(J1))/(Q2G(J2)-Q2G(J1))
10769 GOTO 4
10770 ENDIF
10771 3 CONTINUE
10772 4 CONTINUE
10773 ENDIF
10774 ENDIF
10775
10776 DO 5 I=1,KSITEB
10777 BSITE(0,1,NTARG,I) = BSITE(I1,J1,NTARG,I)+
10778 & RATE*(BSITE(I2,J1,NTARG,I)-BSITE(I1,J1,NTARG,I))+
10779 & RATQ*(BSITE(I1,J2,NTARG,I)-BSITE(I1,J1,NTARG,I))+
10780 & RATE*RATQ*(BSITE(I2,J2,NTARG,I)-BSITE(I1,J2,NTARG,I)+
10781 & BSITE(I1,J1,NTARG,I)-BSITE(I2,J1,NTARG,I))
10782 5 CONTINUE
10783 ENDIF
10784
10785 CALL DT_DIAGR(NA,NB,IJPROJ,B,JS,JT,INTT,INTA,INTB,IDIREC,NIDX)
10786 IF (NIDX.LE.-1) THEN
10787 RPROJ = RASH(1)
10788 RTARG = RBSH(NTARG)
10789 ELSE
10790 RPROJ = RASH(NTARG)
10791 RTARG = RBSH(1)
10792 ENDIF
10793
10794 RETURN
10795 END
10796
10797*$ CREATE DT_DIAGR.FOR
10798*COPY DT_DIAGR
10799*
10800*===diagr==============================================================*
10801*
10802 SUBROUTINE DT_DIAGR(NA,NB,IJPROJ,B,JS,JT,JNT,INTA,INTB,IDIREC,
10803 & NIDX)
10804
10805************************************************************************
10806* Based on the original version by Shmakov et al. *
10807* This version dated 21.04.95 is revised by S. Roesler *
10808************************************************************************
10809
10810 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
10811 SAVE
10812 PARAMETER ( LINP = 10 ,
10813 & LOUT = 6 ,
10814 & LDAT = 9 )
10815 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
10816 PARAMETER (TWOPI = 6.283185307179586454D+00,
10817 & PI = TWOPI/TWO,
10818 & GEV2MB = 0.38938D0,
10819 & GEV2FM = 0.1972D0,
10820 & ALPHEM = ONE/137.0D0,
10821* proton mass
10822 & AMP = 0.938D0,
10823 & AMP2 = AMP**2,
10824* rho0 mass
10825 & AMRHO0 = 0.77D0)
10826
10827 COMPLEX*16 C,CA,CI
10828 PARAMETER ( MAXNCL = 260,
10829 & MAXVQU = MAXNCL,
10830 & MAXSQU = 20*MAXVQU,
10831 & MAXINT = MAXVQU+MAXSQU)
10832* particle properties (BAMJET index convention)
10833 CHARACTER*8 ANAME
10834 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
10835 & IICH(210),IIBAR(210),K1(210),K2(210)
10836 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
10837* emulsion treatment
10838 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
10839 & NCOMPO,IEMUL
10840* Glauber formalism: parameters
10841 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
10842 & BMAX(NCOMPX),BSTEP(NCOMPX),
10843 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
10844 & NSITEB,NSTATB
10845* Glauber formalism: cross sections
10846 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
10847 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
10848 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
10849 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
10850 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
10851 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
10852 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
10853 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
10854 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
10855 & BSLOPE,NEBINI,NQBINI
10856* VDM parameter for photon-nucleus interactions
10857 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
10858* nucleon-nucleon event-generator
10859 CHARACTER*8 CMODEL
10860 LOGICAL LPHOIN
10861 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
10862**PHOJET105a
10863C COMMON /CUTOFF/ PTCUT(4),CUTMU(4),FPS(4),FPH(4),PSOMIN,XSOMIN
10864**PHOJET112
10865C obsolete cut-off information
10866 DOUBLE PRECISION PTCUT,PTANO,FPS,FPH,PSOMIN,XSOMIN
10867 COMMON /POCUT1/ PTCUT(4),PTANO(4),FPS(4),FPH(4),PSOMIN,XSOMIN
10868**
10869* coordinates of nucleons
10870 COMMON /DTNUCO/ PKOO(3,MAXNCL),TKOO(3,MAXNCL)
10871* interface between Glauber formalism and DPM
10872 COMMON /DTGLIF/ JSSH(MAXNCL),JTSH(MAXNCL),
10873 & INTER1(MAXINT),INTER2(MAXINT)
10874* statistics: Glauber-formalism
10875 COMMON /DTSTA3/ ICWP,ICWT,NCSY,ICWPG,ICWTG,ICIG,IPGLB,ITGLB,NGLB
10876* n-n cross section fluctuations
10877 PARAMETER (NBINS = 1000)
10878 COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT
10879
10880 DIMENSION JS(MAXNCL),JT(MAXNCL),
10881 & JS0(MAXNCL),JT0(MAXNCL,MAXNCL),
10882 & JI1(MAXNCL,MAXNCL),JI2(MAXNCL,MAXNCL),JNT0(MAXNCL)
10883 DIMENSION NWA(0:210),NWB(0:210)
10884
10885 LOGICAL LFIRST
10886 DATA LFIRST /.TRUE./
10887
10888 DATA NTARGO,ICNT /0,0/
10889
10890 NTARG = ABS(NIDX)
10891
10892 IF (LFIRST) THEN
10893 LFIRST = .FALSE.
10894 IF (NCOMPO.EQ.0) THEN
10895 NCALL = 0
10896 NWAMAX = NA
10897 NWBMAX = NB
10898 DO 17 I=0,210
10899 NWA(I) = 0
10900 NWB(I) = 0
10901 17 CONTINUE
10902 ENDIF
10903 ENDIF
10904 IF (NTARG.EQ.-1) THEN
10905 IF (NCOMPO.EQ.0) THEN
10906 WRITE(LOUT,*) ' DIAGR: distribution of wounded nucleons'
10907 WRITE(LOUT,'(8X,A,3I7)') 'NCALL,NWAMAX,NWBMAX = ',
10908 & NCALL,NWAMAX,NWBMAX
10909 DO 18 I=1,MAX(NWAMAX,NWBMAX)
10910 WRITE(LOUT,'(8X,2I7,E12.4,I7,E12.4)')
10911 & I,NWA(I),DBLE(NWA(I))/DBLE(NCALL),
10912 & NWB(I),DBLE(NWB(I))/DBLE(NCALL)
10913 18 CONTINUE
10914 ENDIF
10915 RETURN
10916 ENDIF
10917
10918 DCOH = 1.0D10
10919 IPNT = 0
10920
10921 SQ2 = Q2
10922 IF (SQ2.LE.ZERO) SQ2 = 0.0001D0
10923 S = ECMNOW**2
10924 X = SQ2/(S+SQ2-AMP2)
10925 XNU = (S+SQ2-AMP2)/(TWO*AMP)
10926* photon projectiles: recalculate photon-nucleon amplitude
10927 IF (IJPROJ.EQ.7) THEN
10928 15 CONTINUE
10929* VDM assumption: mass of V-meson
10930 AMV2 = DT_SAM2(SQ2,ECMNOW)
10931 AMV = SQRT(AMV2)
10932 IF (AMV.GT.2.0D0*PTCUT(1)) GOTO 15
10933* check for pointlike interaction
10934 CALL DT_POILIK(NB,NTARG,ECMNOW,SQ2,IPNT,RPNT,1)
10935**sr 27.10.
10936C SIGSH = DT_SIGVP(X,SQ2)/(AMV2+SQ2+RL2)/10.0D0
10937 SIGSH = (ONE-RPNT)*DT_SIGVP(X,SQ2)/(AMV2+SQ2+RL2)/10.0D0
10938**
10939 ROSH = 0.1D0
10940 BSLOPE = 2.0D0*(2.0D0+AMRHO0**2/(AMV2+SQ2)
10941 & +0.25D0*LOG(S/(AMV2+SQ2)))
10942* coherence length
10943 IF (ISHAD(3).EQ.1) DCOH = TWO*XNU/(AMV2+SQ2)*GEV2FM
10944 ELSEIF ((IJPROJ.LE.12).AND.(IJPROJ.NE.7)) THEN
10945 IF (MCGENE.EQ.2) THEN
10946 ZERO1 = ZERO
10947 CALL DT_PHOXS(IJPROJ,1,ECMNOW,ZERO1,SDUM1,SDUM2,SDUM3,
10948 & BSLOPE,0)
10949 ELSE
10950 BSLOPE = 8.5D0*(1.0D0+0.065D0*LOG(S))
10951 ENDIF
10952 IF (ECMNOW.LE.3.0D0) THEN
10953 ROSH = -0.43D0
10954 ELSEIF ((ECMNOW.GT.3.0D0).AND.(ECMNOW.LE.50.D0)) THEN
10955 ROSH = -0.63D0+0.175D0*LOG(ECMNOW)
10956 ELSEIF (ECMNOW.GT.50.0D0) THEN
10957 ROSH = 0.1D0
10958 ENDIF
10959 ELAB = (S-AAM(IJPROJ)**2-AMP2)/(TWO*AMP)
10960 PLAB = SQRT( (ELAB-AAM(IJPROJ))*(ELAB+AAM(IJPROJ)) )
10961 IF (MCGENE.EQ.2) THEN
10962 ZERO1 = ZERO
10963 CALL DT_PHOXS(IJPROJ,1,ECMNOW,ZERO1,SIGSH,SDUM2,SDUM3,
10964 & BDUM,0)
10965 SIGSH = SIGSH/10.0D0
10966 ELSE
10967C SIGSH = DT_SHNTOT(IJPROJ,1,ZERO,PLAB)/10.0D0
10968 DUMZER = ZERO
10969 CALL DT_XSHN(IJPROJ,1,PLAB,DUMZER,SIGSH,SIGEL)
10970 SIGSH = SIGSH/10.0D0
10971 ENDIF
10972 ELSE
10973 BSLOPE = 6.0D0*(1.0D0+0.065D0*LOG(S))
10974 ROSH = 0.01D0
10975 ELAB = (S-AAM(IJPROJ)**2-AMP2)/(TWO*AMP)
10976 PLAB = SQRT( (ELAB-AAM(IJPROJ))*(ELAB+AAM(IJPROJ)) )
10977C SIGSH = DT_SHNTOT(IJPROJ,1,ZERO,PLAB)/10.0D0
10978 DUMZER = ZERO
10979 CALL DT_XSHN(IJPROJ,1,PLAB,DUMZER,SIGSH,SIGEL)
10980 SIGSH = SIGSH/10.0D0
10981 ENDIF
10982 GSH = 10.0D0/(TWO*BSLOPE*GEV2MB)
10983 GAM = GSH
10984 RCA = GAM*SIGSH/TWOPI
10985 FCA = -ROSH*RCA
10986 CA = DCMPLX(RCA,FCA)
10987 CI = DCMPLX(ONE,ZERO)
10988
10989 16 CONTINUE
10990* impact parameter
10991 IF (MCGENE.NE.3) CALL DT_MODB(B,NIDX)
10992
10993 NTRY = 0
10994 3 CONTINUE
10995 NTRY = NTRY+1
10996* initializations
10997 JNT = 0
10998 DO 1 I=1,NA
10999 JS(I) = 0
11000 1 CONTINUE
11001 DO 2 I=1,NB
11002 JT(I) = 0
11003 2 CONTINUE
11004 IF (IJPROJ.EQ.7) THEN
11005 DO 8 I=1,MAXNCL
11006 JS0(I) = 0
11007 JNT0(I)= 0
11008 DO 9 J=1,NB
11009 JT0(I,J) = 0
11010 9 CONTINUE
11011 8 CONTINUE
11012 ENDIF
11013
11014* nucleon configuration
11015C IF ((NTARG.NE.NTARGO).OR.(MOD(ICNT,5).EQ.0)) THEN
11016 IF ((NTARG.NE.NTARGO).OR.(MOD(ICNT,1).EQ.0)) THEN
11017C CALL DT_CONUCL(PKOO,NA,RASH,2)
11018C CALL DT_CONUCL(TKOO,NB,RBSH(NTARG),1)
11019 IF (NIDX.LE.-1) THEN
11020 CALL DT_CONUCL(PKOO,NA,RASH(1),0)
11021 CALL DT_CONUCL(TKOO,NB,RBSH(NTARG),0)
11022 ELSE
11023 CALL DT_CONUCL(PKOO,NA,RASH(NTARG),0)
11024 CALL DT_CONUCL(TKOO,NB,RBSH(1),0)
11025 ENDIF
11026 NTARGO = NTARG
11027 ENDIF
11028 ICNT = ICNT+1
11029
11030* LEPTO: pick out one struck nucleon
11031 IF (MCGENE.EQ.3) THEN
11032 JNT = 1
11033 JS(1) = 1
11034 IDX = INT(DT_RNDM(X)*NB)+1
11035 JT(IDX) = 1
11036 B = ZERO
11037 GOTO 19
11038 ENDIF
11039
11040 DO 4 INA=1,NA
11041* cross section fluctuations
11042 AFLUC = ONE
11043 IF (IFLUCT.EQ.1) THEN
11044 IFLUK = INT((DT_RNDM(X)+0.001D0)*1000.0D0)
11045 AFLUC = FLUIXX(IFLUK)
11046 ENDIF
11047 KK1 = 1
11048 KINT = 1
11049 DO 5 INB=1,NB
11050* photon-projectile: check for supression by coherence length
11051 IF (IJPROJ.EQ.7) THEN
11052 IF (ABS(TKOO(3,INB)-TKOO(3,KK1)).GT.DCOH) THEN
11053 KK1 = INB
11054 KINT = KINT+1
11055 ENDIF
11056 ENDIF
11057 QQ1 = B+TKOO(1,INB)-PKOO(1,INA)
11058 QQ2 = TKOO(2,INB)-PKOO(2,INA)
11059 XY = GAM*(QQ1*QQ1+QQ2*QQ2)
11060 IF (XY.LE.15.0D0) THEN
11061 C = CI-CA*AFLUC*EXP(-XY)
11062 AR = DBLE(C)
11063 AI = DIMAG(C)
11064 P = AR*AR+AI*AI
11065 IF (DT_RNDM(XY).GE.P) THEN
11066 JNT = JNT+1
11067 IF (IJPROJ.EQ.7) THEN
11068 JNT0(KINT) = JNT0(KINT)+1
11069 IF (JNT0(KINT).GT.MAXNCL) THEN
11070 WRITE(LOUT,1001) MAXNCL
11071 1001 FORMAT(1X,
11072 & 'DIAGR: no. of requested interactions',
11073 & ' exceeds array dimensions ',I4)
11074 STOP
11075 ENDIF
11076 JS0(KINT) = JS0(KINT)+1
11077 JT0(KINT,INB) = JT0(KINT,INB)+1
11078 JI1(KINT,JNT0(KINT)) = INA
11079 JI2(KINT,JNT0(KINT)) = INB
11080 ELSE
11081 IF (JNT.GT.MAXINT) THEN
11082 WRITE(LOUT,1000) JNT, MAXINT
11083 1000 FORMAT(1X,
11084 & 'DIAGR: no. of requested interactions ('
11085 & ,I4,') exceeds array dimensions (',I4,')')
11086 STOP
11087 ENDIF
11088 JS(INA) = JS(INA)+1
11089 JT(INB) = JT(INB)+1
11090 INTER1(JNT) = INA
11091 INTER2(JNT) = INB
11092 ENDIF
11093 ENDIF
11094 ENDIF
11095 5 CONTINUE
11096 4 CONTINUE
11097
11098 IF (JNT.EQ.0) THEN
11099 IF (NTRY.LT.500) THEN
11100 GOTO 3
11101 ELSE
11102C WRITE(6,*) ' new impact parameter required (old= ',B,')'
11103 GOTO 16
11104 ENDIF
11105 ENDIF
11106
11107 IDIREC = 0
11108 IF (IJPROJ.EQ.7) THEN
11109 K = INT(ONE+DT_RNDM(X)*DBLE(KINT))
11110 10 CONTINUE
11111 IF (JNT0(K).EQ.0) THEN
11112 K = K+1
11113 IF (K.GT.KINT) K = 1
11114 GOTO 10
11115 ENDIF
11116* supress Glauber-cascade by direct photon processes
11117 CALL DT_POILIK(NB,NTARG,ECMNOW,SQ2,IPNT,RPNT,2)
11118 IF (IPNT.GT.0) THEN
11119 JNT = 1
11120 JS(1) = 1
11121 DO 11 INB=1,NB
11122 JT(INB) = JT0(K,INB)
11123 IF (JT(INB).GT.0) GOTO 12
11124 11 CONTINUE
11125 12 CONTINUE
11126 INTER1(1) = 1
11127 INTER2(1) = INB
11128 IDIREC = IPNT
11129 ELSE
11130 JNT = JNT0(K)
11131 JS(1) = JS0(K)
11132 DO 13 INB=1,NB
11133 JT(INB) = JT0(K,INB)
11134 13 CONTINUE
11135 DO 14 I=1,JNT
11136 INTER1(I) = JI1(K,I)
11137 INTER2(I) = JI2(K,I)
11138 14 CONTINUE
11139 ENDIF
11140 ENDIF
11141
11142 19 CONTINUE
11143 INTA = 0
11144 INTB = 0
11145 DO 6 I=1,NA
11146 IF (JS(I).NE.0) INTA=INTA+1
11147 6 CONTINUE
11148 DO 7 I=1,NB
11149 IF (JT(I).NE.0) INTB=INTB+1
11150 7 CONTINUE
11151 ICWPG = INTA
11152 ICWTG = INTB
11153 ICIG = JNT
11154 IPGLB = IPGLB+INTA
11155 ITGLB = ITGLB+INTB
11156 NGLB = NGLB+1
11157
11158 IF (NCOMPO.EQ.0) THEN
11159 NCALL = NCALL+1
11160 NWA(INTA) = NWA(INTA)+1
11161 NWB(INTB) = NWB(INTB)+1
11162 ENDIF
11163
11164 RETURN
11165 END
11166
11167*$ CREATE DT_MODB.FOR
11168*COPY DT_MODB
11169*
11170*===modb===============================================================*
11171*
11172 SUBROUTINE DT_MODB(B,NIDX)
11173
11174************************************************************************
11175* Sampling of impact parameter of collision. *
11176* B impact parameter (output) *
11177* NIDX index of projectile/target material (input)*
11178* Based on the original version by Shmakov et al. *
11179* This version dated 21.04.95 is revised by S. Roesler *
11180* *
11181* Last change 27.12.2006 by S. Roesler. *
11182************************************************************************
11183
11184 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11185 SAVE
11186 PARAMETER ( LINP = 10 ,
11187 & LOUT = 6 ,
11188 & LDAT = 9 )
11189 PARAMETER (ZERO=0.0D0,TINY15=1.0D-15,ONE=1.0D0,TWO=2.0D0)
11190
11191 LOGICAL LEFT,LFIRST
11192
11193* central particle production, impact parameter biasing
11194 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
11195 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11196* Glauber formalism: parameters
11197 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
11198 & BMAX(NCOMPX),BSTEP(NCOMPX),
11199 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
11200 & NSITEB,NSTATB
11201* Glauber formalism: cross sections
11202 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11203 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11204 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11205 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11206 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11207 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11208 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11209 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11210 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11211 & BSLOPE,NEBINI,NQBINI
11212
11213 DATA LFIRST /.TRUE./
11214
11215 NTARG = ABS(NIDX)
11216 IF (NIDX.LE.-1) THEN
11217 RA = RASH(1)
11218 RB = RBSH(NTARG)
11219 ELSE
11220 RA = RASH(NTARG)
11221 RB = RBSH(1)
11222 ENDIF
11223
11224 IF (ICENTR.EQ.2) THEN
11225 IF (RA.EQ.RB) THEN
11226 BB = DT_RNDM(B)*(0.3D0*RA)**2
11227 B = SQRT(BB)
11228 ELSEIF(RA.LT.RB)THEN
11229 BB = DT_RNDM(B)*1.4D0*(RB-RA)**2
11230 B = SQRT(BB)
11231 ELSEIF(RA.GT.RB)THEN
11232 BB = DT_RNDM(B)*1.4D0*(RA-RB)**2
11233 B = SQRT(BB)
11234 ENDIF
11235 ELSE
11236 9 CONTINUE
11237 Y = DT_RNDM(BB)
11238 I0 = 1
11239 I2 = NSITEB
11240 10 CONTINUE
11241 I1 = (I0+I2)/2
11242 LEFT = ((BSITE(0,1,NTARG,I0)-Y)
11243 & *(BSITE(0,1,NTARG,I1)-Y)).LT.ZERO
11244 IF (LEFT) GOTO 20
11245 I0 = I1
11246 GOTO 30
11247 20 CONTINUE
11248 I2 = I1
11249 30 CONTINUE
11250 IF (I2-I0-2) 40,50,60
11251 40 CONTINUE
11252 I1 = I2+1
11253 IF (I1.GT.NSITEB) I1 = I0-1
11254 GOTO 70
11255 50 CONTINUE
11256 I1 = I0+1
11257 GOTO 70
11258 60 CONTINUE
11259 GOTO 10
11260 70 CONTINUE
11261 X0 = DBLE(I0-1)*BSTEP(NTARG)
11262 X1 = DBLE(I1-1)*BSTEP(NTARG)
11263 X2 = DBLE(I2-1)*BSTEP(NTARG)
11264 Y0 = BSITE(0,1,NTARG,I0)
11265 Y1 = BSITE(0,1,NTARG,I1)
11266 Y2 = BSITE(0,1,NTARG,I2)
11267 80 CONTINUE
11268 B = X0*(Y-Y1)*(Y-Y2)/((Y0-Y1)*(Y0-Y2)+TINY15)+
11269 & X1*(Y-Y0)*(Y-Y2)/((Y1-Y0)*(Y1-Y2)+TINY15)+
11270 & X2*(Y-Y0)*(Y-Y1)/((Y2-Y0)*(Y2-Y1)+TINY15)
11271**sr 5.4.98: shift B by half the bin width to be in agreement with BPROD
11272 B = B+0.5D0*BSTEP(NTARG)
11273 IF (B.LT.ZERO) B = X1
11274 IF (B.GT.BMAX(NTARG)) B = BMAX(NTARG)
11275 IF (ICENTR.LT.0) THEN
11276 IF (LFIRST) THEN
11277 LFIRST = .FALSE.
11278 IF (ICENTR.LE.-100) THEN
11279 BIMIN = 0.0D0
11280 ELSE
11281 XSFRAC = 0.0D0
11282 ENDIF
11283 CALL DT_GETBXS(XSFRAC,BIMIN,BIMAX,NTARG)
11284 WRITE(LOUT,1000) RASH(1),RBSH(NTARG),BMAX(NTARG),
11285 & BIMIN,BIMAX,XSFRAC*100.0D0,
11286 & XSFRAC*XSPRO(1,1,NTARG)
11287 10000 FORMAT(/,1X,'DT_MODB: Biasing in impact parameter',
11288 & /,15X,'---------------------------'/,/,4X,
11289 & 'average radii of proj / targ :',F10.3,' fm /',
11290 & F7.3,' fm',/,4X,'corresp. b_max (4*(r_p+r_t)) :',
11291 & F10.3,' fm',/,/,21X,'b_lo / b_hi :',
11292 & F10.3,' fm /',F7.3,' fm',/,5X,'percentage of',
11293 & ' cross section :',F10.3,' %',/,5X,
11294 & 'corresponding cross section :',F10.3,' mb',/)
11295 ENDIF
11296 IF (ABS(BIMAX-BIMIN).LT.1.0D-3) THEN
11297 B = BIMIN
11298 ELSE
11299 IF ((B.LT.BIMIN).OR.(B.GT.BIMAX)) GOTO 9
11300 ENDIF
11301 ENDIF
11302 ENDIF
11303
11304 RETURN
11305 END
11306
11307*$ CREATE DT_SHFAST.FOR
11308*COPY DT_SHFAST
11309*
11310*===shfast=============================================================*
11311*
11312 SUBROUTINE DT_SHFAST(MODE,PPN,IBACK)
11313
11314 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11315 SAVE
11316 PARAMETER ( LINP = 10 ,
11317 & LOUT = 6 ,
11318 & LDAT = 9 )
11319 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,TINY1=1.0D-1,
11320 & ONE=1.0D0,TWO=2.0D0)
11321
11322 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11323* Glauber formalism: parameters
11324 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
11325 & BMAX(NCOMPX),BSTEP(NCOMPX),
11326 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
11327 & NSITEB,NSTATB
11328* properties of interacting particles
11329 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
11330* Glauber formalism: cross sections
11331 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11332 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11333 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11334 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11335 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11336 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11337 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11338 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11339 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11340 & BSLOPE,NEBINI,NQBINI
11341
11342 IBACK = 0
11343
11344 IF (MODE.EQ.2) THEN
11345 OPEN(47,FILE='outdata0/shmakov.out',STATUS='UNKNOWN')
11346 WRITE(47,1000) IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG,PPN
11347 1000 FORMAT(1X,8I5,E15.5)
11348 WRITE(47,1001) RASH(1),RBSH(1),BMAX(1),BSTEP(1)
11349 1001 FORMAT(1X,4E15.5)
11350 WRITE(47,1002) SIGSH,ROSH,GSH
11351 1002 FORMAT(1X,3E15.5)
11352 DO 10 I=1,100
11353 WRITE(47,'(1X,E15.5)') BSITE(1,1,1,I)
11354 10 CONTINUE
11355 WRITE(47,1003) NSITEB,NSTATB,ECMNN(1),XSPRO(1,1,1),BSLOPE
11356 1003 FORMAT(1X,2I10,3E15.5)
11357 CLOSE(47)
11358 ELSE
11359 OPEN(47,FILE='outdata0/shmakov.out',STATUS='UNKNOWN')
11360 READ(47,1000) JT,JTZ,JP,JPZ,JJPROJ,JBPROJ,JJTARG,JBTARG,PP
11361 IF ((JT.EQ.IT).AND.(JTZ.EQ.ITZ).AND.(JP.EQ.IP).AND.
11362 & (JPZ.EQ.IPZ).AND.(JJPROJ.EQ.IJPROJ).AND.(JBPROJ.EQ.IBPROJ)
11363 & .AND.(JJTARG.EQ.IJTARG).AND.(JBTARG.EQ.IBTARG).AND.
11364 & (ABS(PP-PPN).LT.(PPN*0.01D0))) THEN
11365 READ(47,1001) RASH(1),RBSH(1),BMAX(1),BSTEP(1)
11366 READ(47,1002) SIGSH,ROSH,GSH
11367 DO 11 I=1,100
11368 READ(47,'(1X,E15.5)') BSITE(1,1,1,I)
11369 11 CONTINUE
11370 READ(47,1003) NSITEB,NSTATB,ECMNN(1),XSPRO(1,1,1),BSLOPE
11371 ELSE
11372 IBACK = 1
11373 ENDIF
11374 CLOSE(47)
11375 ENDIF
11376
11377 RETURN
11378 END
11379
11380*$ CREATE DT_POILIK.FOR
11381*COPY DT_POILIK
11382*
11383*===poilik=============================================================*
11384*
11385 SUBROUTINE DT_POILIK(NB,NTARG,ECM,VIRT,IPNT,RPNT,MODE)
11386
11387 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
11388 SAVE
11389
11390 PARAMETER ( LINP = 10 ,
11391 & LOUT = 6 ,
11392 & LDAT = 9 )
11393 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY14=1.0D0)
11394 PARAMETER (NE = 8)
11395
11396**PHOJET105a
11397C CHARACTER*8 MDLNA
11398C COMMON /MODELS/ MDLNA(50),ISWMDL(50),PARMDL(200),IPAMDL(100)
11399C PARAMETER (IEETAB=10)
11400C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
11401**PHOJET110
11402C model switches and parameters
11403 CHARACTER*8 MDLNA
11404 INTEGER ISWMDL,IPAMDL
11405 DOUBLE PRECISION PARMDL
11406 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
11407C energy-interpolation table
11408 INTEGER IEETA2
11409 PARAMETER ( IEETA2 = 20 )
11410 INTEGER ISIMAX
11411 DOUBLE PRECISION SIGTAB,SIGECM
11412 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
11413**
11414* VDM parameter for photon-nucleus interactions
11415 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
11416**sr 22.7.97
11417 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11418* Glauber formalism: cross sections
11419 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11420 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11421 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11422 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11423 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11424 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11425 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11426 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11427 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11428 & BSLOPE,NEBINI,NQBINI
11429**
11430
11431 DATA ECMOLD,Q2OLD /-1.0D0,-1.0D0/
11432
11433 IF ((ECM.EQ.ECMOLD).AND.(VIRT.EQ.Q2OLD)) GOTO 3
11434
11435* load cross sections from interpolation table
11436 IP = 1
11437 IF(ECM.LE.SIGECM(IP,1)) THEN
11438 I1 = 1
11439 I2 = 1
11440 ELSE IF(ECM.LT.SIGECM(IP,ISIMAX)) THEN
11441 DO 50 I=2,ISIMAX
11442 IF(ECM.LE.SIGECM(IP,I)) GOTO 200
11443 50 CONTINUE
11444 200 CONTINUE
11445 I1 = I-1
11446 I2 = I
11447 ELSE
11448 WRITE(LOUT,'(/1X,A,2E12.3)')
11449 & 'POILIK:WARNING:TOO HIGH ENERGY',ECM,SIGECM(IP,ISIMAX)
11450 I1 = ISIMAX
11451 I2 = ISIMAX
11452 ENDIF
11453 FAC2 = ZERO
11454 IF(I1.NE.I2) FAC2=LOG(ECM/SIGECM(IP,I1))
11455 & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
11456 FAC1 = ONE-FAC2
11457
11458 SIGANO = DT_SANO(ECM)
11459
11460* cross section dependence on photon virtuality
11461 FSUP1 = ZERO
11462 DO 150 I=1,3
11463 FSUP1 = FSUP1+PARMDL(26+I)*(ONE+VIRT/(4.D0*PARMDL(30+I)))
11464 & /(ONE+VIRT/PARMDL(30+I))**2
11465 150 CONTINUE
11466 FSUP1 = FSUP1+PARMDL(30)/(ONE+VIRT/PARMDL(34))
11467 FAC1 = FAC1*FSUP1
11468 FAC2 = FAC2*FSUP1
11469 FSUP2 = ONE
11470
11471 ECMOLD = ECM
11472 Q2OLD = VIRT
11473
11474 3 CONTINUE
11475
11476C SIGTOT = FAC2*SIGTAB(IP, 1,I2)+FAC1*SIGTAB(IP, 1,I1)
11477 CALL DT_SIGGP(ZERO,VIRT,ECM,ZERO,SIGTOT,DUM1,DUM2)
11478 IF (ISHAD(1).EQ.1) THEN
11479 SIGDIR = FAC2*SIGTAB(IP,29,I2)+FAC1*SIGTAB(IP,29,I1)
11480 ELSE
11481 SIGDIR = ZERO
11482 ENDIF
11483 SIGANO = FSUP1*FSUP2*SIGANO
11484 SIGTOT = SIGTOT-SIGDIR-SIGANO
11485 SIGDIR = SIGDIR/(FSUP1*FSUP2)
11486 SIGANO = SIGANO/(FSUP1*FSUP2)
11487 SIGTOT = SIGTOT+SIGDIR+SIGANO
11488
11489 RR = DT_RNDM(SIGTOT)
11490 IF (RR.LT.SIGDIR/SIGTOT) THEN
11491 IPNT = 1
11492 ELSEIF ((RR.GE.SIGDIR/SIGTOT).AND.
11493 & (RR.LT.(SIGDIR+SIGANO)/SIGTOT)) THEN
11494 IPNT = 2
11495 ELSE
11496 IPNT = 0
11497 ENDIF
11498 RPNT = (SIGDIR+SIGANO)/SIGTOT
11499C WRITE(LOUT,'(I3,2F15.5)') ISHAD(1),FAC1,FAC2
11500C WRITE(LOUT,'(I3,2F15.5)') MODE,SIGDIR,SIGANO
11501C WRITE(LOUT,'(I3,4F15.5)') MODE,SIGDIR+SIGANO,SIGTOT,RPNT,ECM
11502C WRITE(LOUT,'(1X,6E12.4)') ECM,VIRT,SIGTOT,SIGDIR,SIGANO,RPNT
11503 IF (MODE.EQ.1) RETURN
11504
11505**sr 22.7.97
11506 K1 = 1
11507 K2 = 1
11508 RATE = ZERO
11509 IF (ECM.GE.ECMNN(NEBINI)) THEN
11510 K1 = NEBINI
11511 K2 = NEBINI
11512 RATE = ONE
11513 ELSEIF (ECM.GT.ECMNN(1)) THEN
11514 DO 10 I=2,NEBINI
11515 IF (ECM.LT.ECMNN(I)) THEN
11516 K1 = I-1
11517 K2 = I
11518 RATE = (ECM-ECMNN(K1))/(ECMNN(K2)-ECMNN(K1))
11519 GOTO 11
11520 ENDIF
11521 10 CONTINUE
11522 11 CONTINUE
11523 ENDIF
11524 J1 = 1
11525 J2 = 1
11526 RATQ = ZERO
11527 IF (NQBINI.GT.1) THEN
11528 IF (VIRT.GE.Q2G(NQBINI)) THEN
11529 J1 = NQBINI
11530 J2 = NQBINI
11531 RATQ = ONE
11532 ELSEIF (VIRT.GT.Q2G(1)) THEN
11533 DO 12 I=2,NQBINI
11534 IF (VIRT.LT.Q2G(I)) THEN
11535 J1 = I-1
11536 J2 = I
11537 RATQ = LOG10( VIRT/MAX(Q2G(J1),TINY14))/
11538 & LOG10(Q2G(J2)/MAX(Q2G(J1),TINY14))
11539 GOTO 13
11540 ENDIF
11541 12 CONTINUE
11542 13 CONTINUE
11543 ENDIF
11544 ENDIF
11545 SGA = XSPRO(K1,J1,NTARG)+
11546 & RATE*(XSPRO(K2,J1,NTARG)-XSPRO(K1,J1,NTARG))+
11547 & RATQ*(XSPRO(K1,J2,NTARG)-XSPRO(K1,J1,NTARG))+
11548 & RATE*RATQ*(XSPRO(K2,J2,NTARG)-XSPRO(K1,J2,NTARG)+
11549 & XSPRO(K1,J1,NTARG)-XSPRO(K2,J1,NTARG))
11550 SDI = DBLE(NB)*SIGDIR
11551 SAN = DBLE(NB)*SIGANO
11552 SPL = SDI+SAN
11553 RR = DT_RNDM(SPL)
11554 IF (RR.LT.SDI/SGA) THEN
11555 IPNT = 1
11556 ELSEIF ((RR.GE.SDI/SGA).AND.
11557 & (RR.LT.SPL/SGA)) THEN
11558 IPNT = 2
11559 ELSE
11560 IPNT = 0
11561 ENDIF
11562 RPNT = SPL/SGA
11563C WRITE(LOUT,'(I3,4F15.5)') MODE,SPL,SGA,RPNT,ECM
11564**
11565
11566 RETURN
11567 END
11568
11569*$ CREATE DT_GLBINI.FOR
11570*COPY DT_GLBINI
11571*
11572*===glbini=============================================================*
11573*
11574 SUBROUTINE DT_GLBINI(WHAT)
11575
11576************************************************************************
11577* Pre-initialization of profile function *
11578* This version dated 28.11.00 is written by S. Roesler. *
11579* *
11580* Last change 27.12.2006 by S. Roesler. *
11581************************************************************************
11582
11583 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11584 SAVE
11585
11586 PARAMETER ( LINP = 10 ,
11587 & LOUT = 6 ,
11588 & LDAT = 9 )
11589 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY14=1.D-14)
11590
11591 LOGICAL LCMS
11592
11593* particle properties (BAMJET index convention)
11594 CHARACTER*8 ANAME
11595 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
11596 & IICH(210),IIBAR(210),K1(210),K2(210)
11597* properties of interacting particles
11598 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
11599 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11600* emulsion treatment
11601 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
11602 & NCOMPO,IEMUL
11603* Glauber formalism: flags and parameters for statistics
11604 LOGICAL LPROD
11605 CHARACTER*8 CGLB
11606 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
11607* number of data sets other than protons and nuclei
11608* at the moment = 2 (pions and kaons)
11609 PARAMETER (MAXOFF=2)
11610 DIMENSION IJPINI(5),IOFFST(25)
11611 DATA IJPINI / 13, 15, 0, 0, 0/
11612* Glauber data-set to be used for hadron projectiles
11613* (0=proton, 1=pion, 2=kaon)
11614 DATA (IOFFST(K),K=1,25) /
11615 & 0, 0,-1,-1,-1,-1,-1, 0, 0,-1,-1, 2, 1, 1, 2, 2, 0, 0, 2, 0,
11616 & 0, 0, 1, 2, 2/
11617* Acceptance interval for target nucleus mass
11618 PARAMETER (KBACC = 6)
11619* flags for input different options
11620 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
11621 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
11622 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
11623
11624 PARAMETER (MAXMSS = 100)
11625 DIMENSION IASAV(MAXMSS),IBSAV(MAXMSS)
11626 DIMENSION WHAT(6)
11627
11628 DATA JPEACH,JPSTEP / 18, 5 /
11629
11630* temporary patch until fix has been implemented in phojet:
11631* maximum energy for pion projectile
11632 DATA ECMXPI / 100000.0D0 /
11633*
11634*--------------------------------------------------------------------------
11635* general initializations
11636*
11637* steps in projectile mass number for initialization
11638 IF (WHAT(4).GT.ZERO) JPEACH = INT(WHAT(4))
11639 IF (WHAT(5).GT.ZERO) JPSTEP = INT(WHAT(5))
11640*
11641* energy range and binning
11642 ELO = ABS(WHAT(1))
11643 EHI = ABS(WHAT(2))
11644 IF (ELO.GT.EHI) ELO = EHI
11645 NEBIN = MAX(INT(WHAT(3)),1)
11646 IF (ELO.EQ.EHI) NEBIN = 0
11647 LCMS = (WHAT(1).LT.ZERO).OR.(WHAT(2).LT.ZERO)
11648 IF (LCMS) THEN
11649 ECMINI = EHI
11650 ELSE
11651 ECMINI = SQRT(AAM(IJPROJ)**2+AAM(IJTARG)**2
11652 & +2.0D0*AAM(IJTARG)*EHI)
11653 ENDIF
11654*
11655* default arguments for Glauber-routine
11656 XI = ZERO
11657 Q2I = ZERO
11658*
11659* initialize nuclear parameters, etc.
11660 CALL DT_BERTTP
11661 CALL DT_INCINI
11662*
11663* open Glauber-data output file
11664 IDX = INDEX(CGLB,' ')
11665 K = 12
11666 IF (IDX.GT.1) K = IDX-1
11667 OPEN(LDAT,FILE=CGLB(1:K)//'.glb',STATUS='UNKNOWN')
11668*
11669*--------------------------------------------------------------------------
11670* Glauber-initialization for proton and nuclei projectiles
11671*
11672* initialize phojet for proton-proton interactions
11673 ELAB = ZERO
11674 PLAB = ZERO
11675 CALL DT_LTINI(IJPROJ,IJTARG,ELAB,PLAB,ECMINI,1)
11676 CALL DT_PHOINI
11677*
11678* record projectile masses
11679 NASAV = 0
11680 NPROJ = MIN(IP,JPEACH)
11681 DO 10 KPROJ=1,NPROJ
11682 NASAV = NASAV+1
11683 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11684 IASAV(NASAV) = KPROJ
11685 10 CONTINUE
11686 IF (IP.GT.JPEACH) THEN
11687 NPROJ = DBLE(IP-JPEACH)/DBLE(JPSTEP)
11688 IF (NPROJ.EQ.0) THEN
11689 NASAV = NASAV+1
11690 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11691 IASAV(NASAV) = IP
11692 ELSE
11693 DO 11 IPROJ=1,NPROJ
11694 KPROJ = JPEACH+IPROJ*JPSTEP
11695 NASAV = NASAV+1
11696 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11697 IASAV(NASAV) = KPROJ
11698 11 CONTINUE
11699 IF (KPROJ.LT.IP) THEN
11700 NASAV = NASAV+1
11701 IF (NASAV.GT.MAXMSS) STOP ' GLBINI: NASAV > MAXMSS ! '
11702 IASAV(NASAV) = IP
11703 ENDIF
11704 ENDIF
11705 ENDIF
11706*
11707* record target masses
11708 NBSAV = 0
11709 NTARG = 1
11710 IF (NCOMPO.GT.0) NTARG = NCOMPO
11711 DO 12 ITARG=1,NTARG
11712 NBSAV = NBSAV+1
11713 IF (NBSAV.GT.MAXMSS) STOP ' GLBINI: NBSAV > MAXMSS ! '
11714 IF (NCOMPO.GT.0) THEN
11715 IBSAV(NBSAV) = IEMUMA(ITARG)
11716 ELSE
11717 IBSAV(NBSAV) = IT
11718 ENDIF
11719 12 CONTINUE
11720*
11721* print masses
11722 WRITE(LDAT,1000) NEBIN,': ',SIGN(ELO,WHAT(1)),SIGN(EHI,WHAT(2))
11723 1000 FORMAT(I4,A,1P,2E13.5)
11724 NLINES = DBLE(NASAV)/18.0D0
11725 IF (NLINES.GT.0) THEN
11726 DO 13 I=1,NLINES
11727 IF (I.EQ.1) THEN
11728 WRITE(LDAT,'(I4,A,18I4)')NASAV,': ',(IASAV(J),J=1,18)
11729 ELSE
11730 WRITE(LDAT,'(6X,18I4)') (IASAV(J),J=18*I-17,18*I)
11731 ENDIF
11732 13 CONTINUE
11733 ENDIF
11734 I0 = 18*NLINES+1
11735 IF (I0.LE.NASAV) THEN
11736 IF (I0.EQ.1) THEN
11737 WRITE(LDAT,'(I4,A,18I4)')NASAV,': ',(IASAV(J),J=I0,NASAV)
11738 ELSE
11739 WRITE(LDAT,'(6X,18I4)') (IASAV(J),J=I0,NASAV)
11740 ENDIF
11741 ENDIF
11742 NLINES = DBLE(NBSAV)/18.0D0
11743 IF (NLINES.GT.0) THEN
11744 DO 14 I=1,NLINES
11745 IF (I.EQ.1) THEN
11746 WRITE(LDAT,'(I4,A,18I4)')NBSAV,': ',(IBSAV(J),J=1,18)
11747 ELSE
11748 WRITE(LDAT,'(6X,18I4)') (IBSAV(J),J=18*I-17,18*I)
11749 ENDIF
11750 14 CONTINUE
11751 ENDIF
11752 I0 = 18*NLINES+1
11753 IF (I0.LE.NBSAV) THEN
11754 IF (I0.EQ.1) THEN
11755 WRITE(LDAT,'(I4,A,18I4)')NBSAV,': ',(IBSAV(J),J=I0,NBSAV)
11756 ELSE
11757 WRITE(LDAT,'(6X,18I4)') (IBSAV(J),J=I0,NBSAV)
11758 ENDIF
11759 ENDIF
11760*
11761* calculate Glauber-data for each energy and mass combination
11762*
11763* loop over energy bins
11764 ELO = LOG10(ELO)
11765 EHI = LOG10(EHI)
11766 DEBIN = (EHI-ELO)/MAX(DBLE(NEBIN),ONE)
11767 DO 1 IE=1,NEBIN+1
11768 E = ELO+DBLE(IE-1)*DEBIN
11769 E = 10**E
11770 IF (LCMS) THEN
11771 E = MAX(2.0D0*AAM(IJPROJ)+0.1D0,E)
11772 ECM = E
11773 ELSE
11774 PLAB = ZERO
11775 ECM = ZERO
11776 E = MAX(AAM(IJPROJ)+0.1D0,E)
11777 CALL DT_LTINI(IJPROJ,IJTARG,E,PLAB,ECM,0)
11778 ENDIF
11779*
11780* loop over projectile and target masses
11781 DO 2 ITARG=1,NBSAV
11782 DO 3 IPROJ=1,NASAV
11783 CALL DT_XSGLAU(IASAV(IPROJ),IBSAV(ITARG),IJPROJ,
11784 & XI,Q2I,ECM,1,1,-1)
11785 3 CONTINUE
11786 2 CONTINUE
11787*
11788 1 CONTINUE
11789*
11790*--------------------------------------------------------------------------
11791* Glauber-initialization for pion, kaon, ... projectiles
11792*
11793 DO 6 IJ=1,MAXOFF
11794*
11795* initialize phojet for this interaction
11796 ELAB = ZERO
11797 PLAB = ZERO
11798 IJPROJ = IJPINI(IJ)
11799 IP = 1
11800 IPZ = 1
11801*
11802* temporary patch until fix has been implemented in phojet:
11803 IF (ECMINI.GT.ECMXPI) THEN
11804 CALL DT_LTINI(IJPROJ,IJTARG,ELAB,PLAB,ECMXPI,1)
11805 ELSE
11806 CALL DT_LTINI(IJPROJ,IJTARG,ELAB,PLAB,ECMINI,1)
11807 ENDIF
11808 CALL DT_PHOINI
11809*
11810* calculate Glauber-data for each energy and mass combination
11811*
11812* loop over energy bins
11813 DO 4 IE=1,NEBIN+1
11814 E = ELO+DBLE(IE-1)*DEBIN
11815 E = 10**E
11816 IF (LCMS) THEN
11817 E = MAX(2.0D0*AAM(IJPROJ)+TINY14,E)
11818 ECM = E
11819 ELSE
11820 PLAB = ZERO
11821 ECM = ZERO
11822 E = MAX(AAM(IJPROJ)+TINY14,E)
11823 CALL DT_LTINI(IJPROJ,IJTARG,E,PLAB,ECM,0)
11824 ENDIF
11825*
11826* loop over projectile and target masses
11827 DO 5 ITARG=1,NBSAV
11828 CALL DT_XSGLAU(1,IBSAV(ITARG),IJPROJ,XI,Q2I,ECM,1,1,-1)
11829 5 CONTINUE
11830*
11831 4 CONTINUE
11832*
11833 6 CONTINUE
11834
11835*--------------------------------------------------------------------------
11836* close output unit(s), etc.
11837*
11838 CLOSE(LDAT)
11839
11840 RETURN
11841 END
11842
11843*$ CREATE DT_GLBSET.FOR
11844*COPY DT_GLBSET
11845*
11846*===glbset=============================================================*
11847*
11848 SUBROUTINE DT_GLBSET(IDPROJ,NA,NB,ELAB,MODE)
11849************************************************************************
11850* Interpolation of pre-initialized profile functions *
11851* This version dated 28.11.00 is written by S. Roesler. *
11852************************************************************************
11853
11854 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
11855 SAVE
11856
11857 PARAMETER ( LINP = 10 ,
11858 & LOUT = 6 ,
11859 & LDAT = 9 )
11860 PARAMETER (ZERO=0.0D0,ONE=1.0D0)
11861
11862 LOGICAL LCMS,LREAD,LFRST1,LFRST2
11863
11864* particle properties (BAMJET index convention)
11865 CHARACTER*8 ANAME
11866 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
11867 & IICH(210),IIBAR(210),K1(210),K2(210)
11868* Glauber formalism: flags and parameters for statistics
11869 LOGICAL LPROD
11870 CHARACTER*8 CGLB
11871 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
11872 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
11873* Glauber formalism: parameters
11874 COMMON /DTGLAM/ RASH(NCOMPX),RBSH(NCOMPX),
11875 & BMAX(NCOMPX),BSTEP(NCOMPX),
11876 & SIGSH,ROSH,GSH,BSITE(0:NEB,NQB,NCOMPX,KSITEB),
11877 & NSITEB,NSTATB
11878* Glauber formalism: cross sections
11879 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
11880 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
11881 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
11882 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
11883 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
11884 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
11885 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
11886 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
11887 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
11888 & BSLOPE,NEBINI,NQBINI
11889* number of data sets other than protons and nuclei
11890* at the moment = 2 (pions and kaons)
11891 PARAMETER (MAXOFF=2)
11892 DIMENSION IJPINI(5),IOFFST(25)
11893 DATA IJPINI / 13, 15, 0, 0, 0/
11894* Glauber data-set to be used for hadron projectiles
11895* (0=proton, 1=pion, 2=kaon)
11896 DATA (IOFFST(K),K=1,25) /
11897 & 0, 0,-1,-1,-1,-1,-1, 0, 0,-1,-1, 2, 1, 1, 2, 2, 0, 0, 2, 0,
11898 & 0, 0, 1, 2, 2/
11899* Acceptance interval for target nucleus mass
11900 PARAMETER (KBACC = 6)
11901* emulsion treatment
11902 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
11903 & NCOMPO,IEMUL
11904
11905 PARAMETER (MAXSET=5000,
11906 & MAXBIN=100)
11907 DIMENSION XSIG(MAXSET,6),XERR(MAXSET,6),BPROFL(MAXSET,KSITEB)
11908 DIMENSION IABIN(MAXBIN),IBBIN(MAXBIN),XS(6),XE(6),
11909 & BPRO0(KSITEB),BPRO1(KSITEB),BPRO(KSITEB),
11910 & IAIDX(10)
11911
11912 DATA LREAD,LFRST1,LFRST2 /.FALSE.,.TRUE.,.TRUE./
11913*
11914* read data from file
11915*
11916 IF (MODE.EQ.0) THEN
11917
11918 IF (LREAD) RETURN
11919
11920 DO 1 I=1,MAXSET
11921 DO 2 J=1,6
11922 XSIG(I,J) = ZERO
11923 XERR(I,J) = ZERO
11924 2 CONTINUE
11925 DO 3 J=1,KSITEB
11926 BPROFL(I,J) = ZERO
11927 3 CONTINUE
11928 1 CONTINUE
11929 DO 4 I=1,MAXBIN
11930 IABIN(I) = 0
11931 IBBIN(I) = 0
11932 4 CONTINUE
11933 DO 5 I=1,KSITEB
11934 BPRO0(I) = ZERO
11935 BPRO1(I) = ZERO
11936 BPRO(I) = ZERO
11937 5 CONTINUE
11938
11939 IDX = INDEX(CGLB,' ')
11940 K = 12
11941 IF (IDX.GT.1) K = IDX-1
11942 OPEN(LDAT,FILE=CGLB(1:K)//'.glb',STATUS='UNKNOWN')
11943 WRITE(LOUT,1000) CGLB(1:K)//'.glb'
11944 1000 FORMAT(/,' GLBSET: impact parameter distributions read from ',
11945 & 'file ',A12,/)
11946*
11947* read binning information
11948 READ(LDAT,'(I4,2X,2E13.5)') NEBIN,ELO,EHI
11949* return lower energy threshold to Fluka-interface
11950 ELAB = ELO
11951 LCMS = ELO.LT.ZERO
11952 WRITE(LOUT,'(1X,A)') ' equidistant logarithmic energy binning:'
11953 IF (LCMS) THEN
11954 WRITE(LOUT,1001) '(cms)',ABS(ELO),ABS(EHI),NEBIN
11955 ELSE
11956 WRITE(LOUT,1001) '(lab)',ABS(ELO),ABS(EHI),NEBIN
11957 ENDIF
11958 1001 FORMAT(2X,A5,' E_lo = ',1P,E9.3,' E_hi = ',1P,E9.3,4X,
11959 & 'No. of bins:',I5,/)
11960 ELO = LOG10(ABS(ELO))
11961 EHI = LOG10(ABS(EHI))
11962 DEBIN = (EHI-ELO)/ABS(DBLE(NEBIN))
11963 WRITE(LOUT,'(/,1X,A)') ' projectiles: (mass number)'
11964 READ(LDAT,'(I4,2X,18I4)') NABIN,(IABIN(J),J=1,18)
11965 IF (NABIN.LT.18) THEN
11966 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=1,NABIN)
11967 ELSE
11968 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=1,18)
11969 ENDIF
11970 IF (NABIN.GT.MAXBIN) STOP ' GLBSET: NABIN > MAXBIN !'
11971 IF (NABIN.GT.18) THEN
11972 NLINES = DBLE(NABIN-18)/18.0D0
11973 IF (NLINES.GT.0) THEN
11974 DO 7 I=1,NLINES
11975 I0 = 18*(I+1)-17
11976 READ(LDAT,'(6X,18I4)') (IABIN(J),J=I0,I0+17)
11977 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=I0,I0+17)
11978 7 CONTINUE
11979 ENDIF
11980 I0 = 18*(NLINES+1)+1
11981 IF (I0.LE.NABIN) THEN
11982 READ(LDAT,'(6X,18I4)') (IABIN(J),J=I0,NABIN)
11983 WRITE(LOUT,'(6X,18I4)') (IABIN(J),J=I0,NABIN)
11984 ENDIF
11985 ENDIF
11986 WRITE(LOUT,'(/,1X,A)') ' targets: (mass number)'
11987 READ(LDAT,'(I4,2X,18I4)') NBBIN,(IBBIN(J),J=1,18)
11988 IF (NBBIN.LT.18) THEN
11989 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=1,NBBIN)
11990 ELSE
11991 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=1,18)
11992 ENDIF
11993 IF (NBBIN.GT.MAXBIN) STOP ' GLBSET: NBBIN > MAXBIN !'
11994 IF (NBBIN.GT.18) THEN
11995 NLINES = DBLE(NBBIN-18)/18.0D0
11996 IF (NLINES.GT.0) THEN
11997 DO 8 I=1,NLINES
11998 I0 = 18*(I+1)-17
11999 READ(LDAT,'(6X,18I4)') (IBBIN(J),J=I0,I0+17)
12000 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=I0,I0+17)
12001 8 CONTINUE
12002 ENDIF
12003 I0 = 18*(NLINES+1)+1
12004 IF (I0.LE.NBBIN) THEN
12005 READ(LDAT,'(6X,18I4)') (IBBIN(J),J=I0,NBBIN)
12006 WRITE(LOUT,'(6X,18I4)') (IBBIN(J),J=I0,NBBIN)
12007 ENDIF
12008 ENDIF
12009* number of data sets to follow in the Glauber data file
12010* this variable is used for checks of consistency of projectile
12011* and target mass configurations given in header of Glauber data
12012* file and the data-sets which follow in this file
12013 NSET0 = (NEBIN+1)*(NABIN+MAXOFF)*NBBIN
12014*
12015* read profile function data
12016 NSET = 0
12017 NAIDX = 0
12018 IPOLD = 0
12019 10 CONTINUE
12020 NSET = NSET+1
12021 IF (NSET.GT.MAXSET) STOP ' GLBSET: NSET > MAXSET ! '
12022 READ(LDAT,1002,END=100) IP,IA,IB,ISTATB,ISITEB,ECM
12023 1002 FORMAT(5I10,E15.5)
12024 IF ((IP.NE.1).AND.(IP.NE.IPOLD)) THEN
12025 NAIDX = NAIDX+1
12026 IF (NAIDX.GT.10) STOP ' GLBSET: NAIDX > 10 !'
12027 IAIDX(NAIDX) = IP
12028 IPOLD = IP
12029 ENDIF
12030 READ(LDAT,'(6E12.5)') (XSIG(NSET,I),I=1,6)
12031 READ(LDAT,'(6E12.5)') (XERR(NSET,I),I=1,6)
12032 NLINES = INT(DBLE(ISITEB)/7.0D0)
12033 IF (NLINES.GT.0) THEN
12034 DO 11 I=1,NLINES
12035 READ(LDAT,'(7E11.4)') (BPROFL(NSET,J),J=7*I-6,7*I)
12036 11 CONTINUE
12037 ENDIF
12038 I0 = 7*NLINES+1
12039 IF (I0.LE.ISITEB)
12040 & READ(LDAT,'(7E11.4)') (BPROFL(NSET,J),J=I0,ISITEB)
12041 GOTO 10
12042 100 CONTINUE
12043 NSET = NSET-1
12044 IF (NSET.NE.NSET0) STOP ' GLBSET: NSET.NE.NSET0 !'
12045 WRITE(LOUT,'(/,1X,A)')
12046 & ' projectiles other than protons and nuclei: (particle index)'
12047 IF (NAIDX.GT.0) THEN
12048 WRITE(LOUT,'(6X,18I4)') (IAIDX(J),J=1,NAIDX)
12049 ELSE
12050 WRITE(LOUT,'(6X,A)') 'none'
12051 ENDIF
12052*
12053 CLOSE(LDAT)
12054 WRITE(LOUT,*)
12055 LREAD = .TRUE.
12056
12057 IF (NCOMPO.EQ.0) THEN
12058 DO 12 J=1,NBBIN
12059 NCOMPO = NCOMPO+1
12060 IEMUMA(NCOMPO) = IBBIN(J)
12061 IEMUCH(NCOMPO) = IEMUMA(NCOMPO)/2
12062 EMUFRA(NCOMPO) = 1.0D0
12063 12 CONTINUE
12064 IEMUL = 1
12065 ENDIF
12066*
12067* calculate profile function for certain set of parameters
12068*
12069 ELSE
12070
12071c write(*,*) 'glbset called for ',IDPROJ,NA,NB,ELAB,MODE
12072*
12073* check for type of projectile and set index-offset to entry in
12074* Glauber data array correspondingly
12075 IF (IDPROJ.GT.25) STOP ' GLBSET: IDPROJ > 25 !'
12076 IF (IOFFST(IDPROJ).EQ.-1) THEN
12077 STOP ' GLBSET: no data for this projectile !'
12078 ELSEIF (IOFFST(IDPROJ).GT.0) THEN
12079 IDXOFF = (NEBIN+1)*(NABIN+IOFFST(IDPROJ)-1)*NBBIN
12080 ELSE
12081 IDXOFF = 0
12082 ENDIF
12083*
12084* get energy bin and interpolation factor
12085 IF (LCMS) THEN
12086 E = SQRT(AAM(IDPROJ)**2+AAM(1)**2+2.0D0*AAM(1)*ELAB)
12087 ELSE
12088 E = ELAB
12089 ENDIF
12090 E = LOG10(E)
12091 IF (E.LT.ELO) THEN
12092 IF (LFRST1) THEN
12093 WRITE(LOUT,*) ' GLBSET: Too low energy! (E_lo,E) ',ELO,E
12094 LFRST1 = .FALSE.
12095 ENDIF
12096 E = ELO
12097 ENDIF
12098 IF (E.GT.EHI) THEN
12099 IF (LFRST2) THEN
12100 WRITE(LOUT,*) ' GLBSET: Too high energy! (E_hi,E) ',EHI,E
12101 LFRST2 = .FALSE.
12102 ENDIF
12103 E = EHI
12104 ENDIF
12105 IE0 = (E-ELO)/DEBIN+1
12106 IE1 = IE0+1
12107 FACE = (E-(ELO+DBLE(IE0-1)*DEBIN))/DEBIN
12108*
12109* get target nucleus index
12110 KB = 0
12111 NBACC = KBACC
12112 DO 20 I=1,NBBIN
12113 NBDIFF = ABS(NB-IBBIN(I))
12114 IF (NB.EQ.IBBIN(I)) THEN
12115 KB = I
12116 GOTO 21
12117 ELSEIF (NBDIFF.LE.NBACC) THEN
12118 KB = I
12119 NBACC = NBDIFF
12120 ENDIF
12121 20 CONTINUE
12122 IF (KB.NE.0) GOTO 21
12123 WRITE(LOUT,*) ' GLBSET: data not found for target ',NB
12124 STOP
12125 21 CONTINUE
12126*
12127* get projectile nucleus bin and interpolation factor
12128 KA0 = 0
12129 KA1 = 0
12130 FACNA = 0
12131 IF (IDXOFF.GT.0) THEN
12132 KA0 = 1
12133 KA1 = 1
12134 KABIN = 1
12135 ELSE
12136 IF (NA.GT.IABIN(NABIN)) STOP ' GLBSET: NA > IABIN(NABIN) !'
12137 DO 22 I=1,NABIN
12138 IF (NA.EQ.IABIN(I)) THEN
12139 KA0 = I
12140 KA1 = I
12141 GOTO 23
12142 ELSEIF (NA.LT.IABIN(I)) THEN
12143 KA0 = I-1
12144 KA1 = I
12145 GOTO 23
12146 ENDIF
12147 22 CONTINUE
12148 WRITE(LOUT,*) ' GLBSET: data not found for projectile ',NA
12149 STOP
12150 23 CONTINUE
12151 IF (KA0.NE.KA1)
12152 & FACNA = DBLE(NA-IABIN(KA0))/DBLE(IABIN(KA1)-IABIN(KA0))
12153 KABIN = NABIN
12154 ENDIF
12155*
12156* interpolate profile functions for interactions ka0-kb and ka1-kb
12157* for energy E separately
12158 IDX0 = IDXOFF+1+(IE0-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA0-1)
12159 IDX1 = IDXOFF+1+(IE1-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA0-1)
12160 IDY0 = IDXOFF+1+(IE0-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA1-1)
12161 IDY1 = IDXOFF+1+(IE1-1)*KABIN*NBBIN+(KB-1)*KABIN+(KA1-1)
12162 DO 30 I=1,ISITEB
12163 BPRO0(I) = BPROFL(IDX0,I)
12164 & +FACE*(BPROFL(IDX1,I)-BPROFL(IDX0,I))
12165 BPRO1(I) = BPROFL(IDY0,I)
12166 & +FACE*(BPROFL(IDY1,I)-BPROFL(IDY0,I))
12167 30 CONTINUE
12168 RADB = DT_RNCLUS(NB)
12169 BSTP0 = 2.0D0*(DT_RNCLUS(IABIN(KA0))+RADB)/DBLE(ISITEB-1)
12170 BSTP1 = 2.0D0*(DT_RNCLUS(IABIN(KA1))+RADB)/DBLE(ISITEB-1)
12171*
12172* interpolate cross sections for energy E and projectile mass
12173 DO 31 I=1,6
12174 XS0 = XSIG(IDX0,I)+FACE*(XSIG(IDX1,I)-XSIG(IDX0,I))
12175 XS1 = XSIG(IDY0,I)+FACE*(XSIG(IDY1,I)-XSIG(IDY0,I))
12176 XS(I) = XS0+FACNA*(XS1-XS0)
12177 XE0 = XERR(IDX0,I)+FACE*(XERR(IDX1,I)-XERR(IDX0,I))
12178 XE1 = XERR(IDY0,I)+FACE*(XERR(IDY1,I)-XERR(IDY0,I))
12179 XE(I) = XE0+FACNA*(XE1-XE0)
12180 31 CONTINUE
12181*
12182* interpolate between ka0 and ka1
12183 RADA = DT_RNCLUS(NA)
12184 BMX = 2.0D0*(RADA+RADB)
12185 BSTP = BMX/DBLE(ISITEB-1)
12186 BPRO(1) = ZERO
12187 DO 32 I=1,ISITEB-1
12188 B = DBLE(I)*BSTP
12189*
12190* calculate values of profile functions at B
12191 IDX0 = B/BSTP0+1
12192 IF (IDX0.GT.ISITEB) IDX0 = ISITEB
12193 IDX1 = MIN(IDX0+1,ISITEB)
12194 FACB = (B-DBLE(IDX0-1)*BSTP0)/BSTP0
12195 BPR0 = BPRO0(IDX0)+FACB*(BPRO0(IDX1)-BPRO0(IDX0))
12196 IDX0 = B/BSTP1+1
12197 IF (IDX0.GT.ISITEB) IDX0 = ISITEB
12198 IDX1 = MIN(IDX0+1,ISITEB)
12199 FACB = (B-DBLE(IDX0-1)*BSTP1)/BSTP1
12200 BPR1 = BPRO1(IDX0)+FACB*(BPRO1(IDX1)-BPRO1(IDX0))
12201*
12202 BPRO(I+1) = BPR0+FACNA*(BPR1-BPR0)
12203 32 CONTINUE
12204*
12205* fill common dtglam
12206 NSITEB = ISITEB
12207 RASH(1) = RADA
12208 RBSH(1) = RADB
12209 BMAX(1) = BMX
12210 BSTEP(1) = BSTP
12211 DO 33 I=1,KSITEB
12212 BSITE(0,1,1,I) = BPRO(I)
12213 33 CONTINUE
12214*
12215* fill common dtglxs
12216 XSTOT(1,1,1) = XS(1)
12217 XSELA(1,1,1) = XS(2)
12218 XSQEP(1,1,1) = XS(3)
12219 XSQET(1,1,1) = XS(4)
12220 XSQE2(1,1,1) = XS(5)
12221 XSPRO(1,1,1) = XS(6)
12222 XETOT(1,1,1) = XE(1)
12223 XEELA(1,1,1) = XE(2)
12224 XEQEP(1,1,1) = XE(3)
12225 XEQET(1,1,1) = XE(4)
12226 XEQE2(1,1,1) = XE(5)
12227 XEPRO(1,1,1) = XE(6)
12228
12229 ENDIF
12230
12231 RETURN
12232 END
12233
12234*$ CREATE DT_XKSAMP.FOR
12235*COPY DT_XKSAMP
12236*
12237*===xksamp=============================================================*
12238*
12239 SUBROUTINE DT_XKSAMP(NN,ECM)
12240
12241************************************************************************
12242* Sampling of parton x-values and chain system for one interaction. *
12243* processed by S. Roesler, 9.8.95 *
12244************************************************************************
12245
12246 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
12247 SAVE
12248 PARAMETER ( LINP = 10 ,
12249 & LOUT = 6 ,
12250 & LDAT = 9 )
12251 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
454792a9 12252CPH SAVE
9aaba0d6 12253
12254 PARAMETER (
12255* lower cuts for (valence-sea/sea-valence) chain masses
12256* antiquark-quark (u/d-sea quark) (s-sea quark)
12257 & AMIU = 0.5D0, AMIS = 0.8D0,
12258* quark-diquark (u/d-sea quark) (s-sea quark)
12259 & AMAU = 2.6D0, AMAS = 2.6D0,
12260* maximum lower valence-x threshold
12261 & XVMAX = 0.98D0,
12262* fraction of sea-diquarks sampled out of sea-partons
12263**test
12264C & FRCDIQ = 0.9D0,
12265**
12266*
12267 & SQMA = 0.7D0,
12268*
12269* maximum number of trials to generate x's for the required number
12270* of sea quark pairs for a given hadron
12271 & NSEATY = 12
12272C & NSEATY = 3
12273 & )
12274
12275 LOGICAL ZUOVP,ZUOSP,ZUOVT,ZUOST,INTLO
12276
12277 PARAMETER ( MAXNCL = 260,
12278 & MAXVQU = MAXNCL,
12279 & MAXSQU = 20*MAXVQU,
12280 & MAXINT = MAXVQU+MAXSQU)
12281* event history
12282 PARAMETER (NMXHKK=200000)
12283 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
12284 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
12285 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
12286* particle properties (BAMJET index convention)
12287 CHARACTER*8 ANAME
12288 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
12289 & IICH(210),IIBAR(210),K1(210),K2(210)
12290* interface between Glauber formalism and DPM
12291 COMMON /DTGLIF/ JSSH(MAXNCL),JTSH(MAXNCL),
12292 & INTER1(MAXINT),INTER2(MAXINT)
12293* properties of interacting particles
12294 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
12295* threshold values for x-sampling (DTUNUC 1.x)
12296 COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
12297 & SSMIMQ,VVMTHR
12298* x-values of partons (DTUNUC 1.x)
12299 COMMON /DTDPMX/ XPVQ(MAXVQU),XPVD(MAXVQU),
12300 & XTVQ(MAXVQU),XTVD(MAXVQU),
12301 & XPSQ(MAXSQU),XPSAQ(MAXSQU),
12302 & XTSQ(MAXSQU),XTSAQ(MAXSQU)
12303* flavors of partons (DTUNUC 1.x)
12304 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
12305 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
12306 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
12307 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
12308 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
12309 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
12310 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
12311* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
12312 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
12313 & IXPV,IXPS,IXTV,IXTS,
12314 & INTVV1(MAXVQU),INTVV2(MAXVQU),
12315 & INTSV1(MAXVQU),INTSV2(MAXVQU),
12316 & INTVS1(MAXVQU),INTVS2(MAXVQU),
12317 & INTSS1(MAXSQU),INTSS2(MAXSQU),
12318 & INTDV1(MAXVQU),INTDV2(MAXVQU),
12319 & INTVD1(MAXVQU),INTVD2(MAXVQU),
12320 & INTDS1(MAXSQU),INTDS2(MAXSQU),
12321 & INTSD1(MAXSQU),INTSD2(MAXSQU)
12322* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
12323 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
12324 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
12325* auxiliary common for chain system storage (DTUNUC 1.x)
12326 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
12327* flags for input different options
12328 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
12329 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
12330 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
12331* various options for treatment of partons (DTUNUC 1.x)
12332* (chain recombination, Cronin,..)
12333 LOGICAL LCO2CR,LINTPT
12334 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
12335 & LCO2CR,LINTPT
12336
12337 DIMENSION ZUOVP(MAXVQU),ZUOSP(MAXSQU),ZUOVT(MAXVQU),ZUOST(MAXSQU),
12338 & INTLO(MAXINT)
12339
12340* (1) initializations
12341*-----------------------------------------------------------------------
12342
12343**test
12344 IF (ECM.LT.4.5D0) THEN
12345C FRCDIQ = 0.6D0
12346 FRCDIQ = 0.4D0
12347 ELSEIF ((ECM.GE.4.5D0).AND.(ECM.LT.7.5)) THEN
12348C FRCDIQ = 0.6D0+(ECM-4.5D0)/3.0D0*0.3D0
12349 FRCDIQ = 0.4D0+(ECM-4.5D0)/3.0D0*0.3D0
12350 ELSE
12351C FRCDIQ = 0.9D0
12352 FRCDIQ = 0.7D0
12353 ENDIF
12354**
12355 DO 30 I=1,MAXSQU
12356 ZUOSP(I) = .FALSE.
12357 ZUOST(I) = .FALSE.
12358 IF (I.LE.MAXVQU) THEN
12359 ZUOVP(I) = .FALSE.
12360 ZUOVT(I) = .FALSE.
12361 ENDIF
12362 30 CONTINUE
12363
12364* lower thresholds for x-selection
12365* sea-quarks (default: CSEA=0.2)
12366 IF (ECM.LT.10.0D0) THEN
12367**!!test
12368 XSTHR = ((12.0D0-ECM)/5.0D0+1.0D0)*CSEA/ECM
12369C XSTHR = ((12.0D0-ECM)/5.0D0+1.0D0)*CSEA/ECM**2.0D0
12370 NSEA = NSEATY
12371C XSTHR = ONE/ECM**2
12372 ELSE
12373**sr 30.3.98
12374C XSTHR = CSEA/ECM
12375 XSTHR = CSEA/ECM**2
12376C XSTHR = ONE/ECM**2
12377**
12378 IF ((IP.GE.150).AND.(IT.GE.150))
12379 & XSTHR = 2.5D0/(ECM*SQRT(ECM))
12380 NSEA = NSEATY
12381 ENDIF
12382* (default: SSMIMA=0.14) used for sea-diquarks (?)
12383 XSSTHR = SSMIMA/ECM
12384 BSQMA = SQMA/ECM
12385* valence-quarks (default: CVQ=1.0)
12386 XVTHR = CVQ/ECM
12387* valence-diquarks (default: CDQ=2.0)
12388 XDTHR = CDQ/ECM
12389
12390* maximum-x for sea-quarks
12391 XVCUT = XVTHR+XDTHR
12392 IF (XVCUT.GT.XVMAX) THEN
12393 XVCUT = XVMAX
12394 XVTHR = XVCUT/3.0D0
12395 XDTHR = XVCUT-XVTHR
12396 ENDIF
12397 XXSEAM = ONE-XVCUT
12398**sr 18.4. test: DPMJET
12399C XXSEAM=1.0 - XVTHR*(1.D0+0.3D0*DT_RNDM(V1))
12400C & - XDTHR*(1.D0+0.3D0*DT_RNDM(V2))
12401C & -0.01*(1.D0+1.5D0*DT_RNDM(V3))
12402**
12403* maximum number of sea-pairs allowed kinematically
12404C NSMAX = INT(OHALF*XXSEAM/XSTHR)
12405 RNSMAX = OHALF*XXSEAM/XSTHR
12406 IF (RNSMAX.GT.10000.0D0) THEN
12407 NSMAX = 10000
12408 ELSE
12409 NSMAX = INT(OHALF*XXSEAM/XSTHR)
12410 ENDIF
12411* check kinematical limit for valence-x thresholds
12412* (should be obsolete now)
12413 IF (XVCUT.GT.XVMAX) THEN
12414 WRITE(LOUT,1000) XVCUT,ECM
12415 1000 FORMAT(' XKSAMP: kin. limit for valence-x',
12416 & ' thresholds not allowed (',2E9.3,')')
12417C XVTHR = XVMAX-XDTHR
12418C IF (XVTHR.LT.ZERO) STOP
12419 STOP
12420 ENDIF
12421
12422* set eta for valence-x sampling (BETREJ)
12423* (UNON per default, UNOM used for projectile mesons only)
12424 IF ((IJPROJ.NE.0).AND.(IBPROJ.EQ.0)) THEN
12425 UNOPRV = UNOM
12426 ELSE
12427 UNOPRV = UNON
12428 ENDIF
12429
12430* (2) select parton x-values of interacting projectile nucleons
12431*-----------------------------------------------------------------------
12432
12433 IXPV = 0
12434 IXPS = 0
12435
12436 DO 100 IPP=1,IP
12437* get interacting projectile nucleon as sampled by Glauber
12438 IF (JSSH(IPP).NE.0) THEN
12439 IXSTMP = IXPS
12440 IXVTMP = IXPV
12441 99 CONTINUE
12442 IXPS = IXSTMP
12443 IXPV = IXVTMP
12444* JIPP is the actual number of sea-pairs sampled for this nucleon
12445 JIPP = MIN(JSSH(IPP)-1,NSMAX)
12446 41 CONTINUE
12447 XXSEA = ZERO
12448 IF (JIPP.GT.0) THEN
12449 XSMAX = XXSEAM-2.0D0*DBLE(JIPP)*XSTHR
12450*???
12451 IF (XSTHR.GE.XSMAX) THEN
12452 JIPP = JIPP-1
12453 GOTO 41
12454 ENDIF
12455
12456*>>>get x-values of sea-quark pairs
12457 NSCOUN = 0
12458 PLW = 0.5D0
12459 40 CONTINUE
12460* accumulator for sea x-values
12461 XXSEA = ZERO
12462 NSCOUN = NSCOUN+1
12463 IF (DBLE(NSCOUN)/DBLE(NSEA).GT.0.5D0) PLW = 1.0D0
12464 IF (NSCOUN.GT.NSEA) THEN
12465* decrease the number of interactions after NSEA trials
12466 JIPP = JIPP-1
12467 NSCOUN = 0
12468 ENDIF
12469 DO 70 ISQ=1,JIPP
12470* sea-quarks
12471 IF (IPSQ(IXPS+1).LE.2) THEN
12472**sr 8.4.98 (1/sqrt(x))
12473C XPSQI = DT_SAMPEX(XSTHR,XSMAX)
12474C XPSQI = DT_SAMSQX(XSTHR,XSMAX)
12475 XPSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12476**
12477 ELSE
12478 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12479 XPSQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12480 ELSE
12481**sr 8.4.98 (1/sqrt(x))
12482C XPSQI = DT_SAMPEX(XSTHR,XSMAX)
12483C XPSQI = DT_SAMSQX(XSTHR,XSMAX)
12484 XPSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12485**
12486 ENDIF
12487 ENDIF
12488* sea-antiquarks
12489 IF (IPSAQ(IXPS+1).GE.-2) THEN
12490**sr 8.4.98 (1/sqrt(x))
12491C XPSAQI = DT_SAMPEX(XSTHR,XSMAX)
12492C XPSAQI = DT_SAMSQX(XSTHR,XSMAX)
12493 XPSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12494**
12495 ELSE
12496 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12497 XPSAQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12498 ELSE
12499**sr 8.4.98 (1/sqrt(x))
12500C XPSAQI = DT_SAMPEX(XSTHR,XSMAX)
12501C XPSAQI = DT_SAMSQX(XSTHR,XSMAX)
12502 XPSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12503**
12504 ENDIF
12505 ENDIF
12506 XXSEA = XXSEA+XPSQI+XPSAQI
12507* check for maximum allowed sea x-value
12508 IF (XXSEA.GE.XXSEAM) THEN
12509 IXPS = IXPS-ISQ+1
12510 GOTO 40
12511 ENDIF
12512* accept this sea-quark pair
12513 IXPS = IXPS+1
12514 XPSQ(IXPS) = XPSQI
12515 XPSAQ(IXPS) = XPSAQI
12516 IFROSP(IXPS) = IPP
12517 ZUOSP(IXPS) = .TRUE.
12518 70 CONTINUE
12519 ENDIF
12520
12521*>>>get x-values of valence partons
12522* valence quark
12523 IF (XVTHR.GT.0.05D0) THEN
12524 XVHI = ONE-XXSEA-XDTHR
12525 XPVQI = DT_BETREJ(OHALF,UNOPRV,XVTHR,XVHI)
12526 ELSE
12527 90 CONTINUE
12528 XPVQI = DT_DBETAR(OHALF,UNOPRV)
12529 IF ((XPVQI.LT.XVTHR).OR.(ONE-XPVQI-XXSEA.LT.XDTHR))
12530 & GOTO 90
12531 ENDIF
12532* valence diquark
12533 XPVDI = ONE-XPVQI-XXSEA
12534* reject according to x**1.5
12535 XDTMP = XPVDI**1.5D0
12536 IF (DT_RNDM(XPVDI).GT.XDTMP) GOTO 99
12537* accept these valence partons
12538 IXPV = IXPV+1
12539 XPVQ(IXPV) = XPVQI
12540 XPVD(IXPV) = XPVDI
12541 IFROVP(IXPV) = IPP
12542 ITOVP(IPP) = IXPV
12543 ZUOVP(IXPV) = .TRUE.
12544
12545 ENDIF
12546 100 CONTINUE
12547
12548* (3) select parton x-values of interacting target nucleons
12549*-----------------------------------------------------------------------
12550
12551 IXTV = 0
12552 IXTS = 0
12553
12554 DO 170 ITT=1,IT
12555* get interacting target nucleon as sampled by Glauber
12556 IF (JTSH(ITT).NE.0) THEN
12557 IXSTMP = IXTS
12558 IXVTMP = IXTV
12559 169 CONTINUE
12560 IXTS = IXSTMP
12561 IXTV = IXVTMP
12562* JITT is the actual number of sea-pairs sampled for this nucleon
12563 JITT = MIN(JTSH(ITT)-1,NSMAX)
12564 111 CONTINUE
12565 XXSEA = ZERO
12566 IF (JITT.GT.0) THEN
12567 XSMAX = XXSEAM-2.0D0*DBLE(JITT)*XSTHR
12568*???
12569 IF (XSTHR.GE.XSMAX) THEN
12570 JITT = JITT-1
12571 GOTO 111
12572 ENDIF
12573
12574*>>>get x-values of sea-quark pairs
12575 NSCOUN = 0
12576 PLW = 0.5D0
12577 110 CONTINUE
12578* accumulator for sea x-values
12579 XXSEA = ZERO
12580 NSCOUN = NSCOUN+1
12581 IF (DBLE(NSCOUN)/DBLE(NSEA).GT.0.5D0) PLW = 1.0D0
12582 IF (NSCOUN.GT.NSEA)THEN
12583* decrease the number of interactions after NSEA trials
12584 JITT = JITT-1
12585 NSCOUN = 0
12586 ENDIF
12587 DO 140 ISQ=1,JITT
12588* sea-quarks
12589 IF (ITSQ(IXTS+1).LE.2) THEN
12590**sr 8.4.98 (1/sqrt(x))
12591C XTSQI = DT_SAMPEX(XSTHR,XSMAX)
12592C XTSQI = DT_SAMSQX(XSTHR,XSMAX)
12593 XTSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12594**
12595 ELSE
12596 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12597 XTSQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12598 ELSE
12599**sr 8.4.98 (1/sqrt(x))
12600C XTSQI = DT_SAMPEX(XSTHR,XSMAX)
12601C XTSQI = DT_SAMSQX(XSTHR,XSMAX)
12602 XTSQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12603**
12604 ENDIF
12605 ENDIF
12606* sea-antiquarks
12607 IF (ITSAQ(IXTS+1).GE.-2) THEN
12608**sr 8.4.98 (1/sqrt(x))
12609C XTSAQI = DT_SAMPEX(XSTHR,XSMAX)
12610C XTSAQI = DT_SAMSQX(XSTHR,XSMAX)
12611 XTSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12612**
12613 ELSE
12614 IF (XSMAX.GT.XSTHR+BSQMA) THEN
12615 XTSAQI = DT_SAMPXB(XSTHR+BSQMA,XSMAX,BSQMA)
12616 ELSE
12617**sr 8.4.98 (1/sqrt(x))
12618C XTSAQI = DT_SAMPEX(XSTHR,XSMAX)
12619C XTSAQI = DT_SAMSQX(XSTHR,XSMAX)
12620 XTSAQI = DT_SAMPLW(XSTHR,XSMAX,PLW)
12621**
12622 ENDIF
12623 ENDIF
12624 XXSEA = XXSEA+XTSQI+XTSAQI
12625* check for maximum allowed sea x-value
12626 IF (XXSEA.GE.XXSEAM) THEN
12627 IXTS = IXTS-ISQ+1
12628 GOTO 110
12629 ENDIF
12630* accept this sea-quark pair
12631 IXTS = IXTS+1
12632 XTSQ(IXTS) = XTSQI
12633 XTSAQ(IXTS) = XTSAQI
12634 IFROST(IXTS) = ITT
12635 ZUOST(IXTS) = .TRUE.
12636 140 CONTINUE
12637 ENDIF
12638
12639*>>>get x-values of valence partons
12640* valence quark
12641 IF (XVTHR.GT.0.05D0) THEN
12642 XVHI = ONE-XXSEA-XDTHR
12643 XTVQI = DT_BETREJ(OHALF,UNON,XVTHR,XVHI)
12644 ELSE
12645 160 CONTINUE
12646 XTVQI = DT_DBETAR(OHALF,UNON)
12647 IF ((XTVQI.LT.XVTHR).OR.(ONE-XTVQI-XXSEA.LT.XDTHR))
12648 & GOTO 160
12649 ENDIF
12650* valence diquark
12651 XTVDI = ONE-XTVQI-XXSEA
12652* reject according to x**1.5
12653 XDTMP = XTVDI**1.5D0
12654 IF (DT_RNDM(XPVDI).GT.XDTMP) GOTO 169
12655* accept these valence partons
12656 IXTV = IXTV+1
12657 XTVQ(IXTV) = XTVQI
12658 XTVD(IXTV) = XTVDI
12659 IFROVT(IXTV) = ITT
12660 ITOVT(ITT) = IXTV
12661 ZUOVT(IXTV) = .TRUE.
12662
12663 ENDIF
12664 170 CONTINUE
12665
12666* (4) get valence-valence chains
12667*-----------------------------------------------------------------------
12668
12669 NVV = 0
12670 DO 240 I=1,NN
12671 INTLO(I) = .TRUE.
12672 IPVAL = ITOVP(INTER1(I))
12673 ITVAL = ITOVT(INTER2(I))
12674 IF (ZUOVP(IPVAL).AND.ZUOVT(ITVAL)) THEN
12675 INTLO(I) = .FALSE.
12676 ZUOVP(IPVAL) = .FALSE.
12677 ZUOVT(ITVAL) = .FALSE.
12678 NVV = NVV+1
12679 ISKPCH(8,NVV) = 0
12680 INTVV1(NVV) = IPVAL
12681 INTVV2(NVV) = ITVAL
12682 ENDIF
12683 240 CONTINUE
12684
12685* (5) get sea-valence chains
12686*-----------------------------------------------------------------------
12687
12688 NSV = 0
12689 NDV = 0
12690 PLW = 0.5D0
12691 DO 270 I=1,NN
12692 IF (INTLO(I)) THEN
12693 IPVAL = ITOVP(INTER1(I))
12694 ITVAL = ITOVT(INTER2(I))
12695 DO 250 J=1,IXPS
12696 IF (ZUOSP(J).AND.(IFROSP(J).EQ.INTER1(I)).AND.
12697 & ZUOVT(ITVAL)) THEN
12698 ZUOSP(J) = .FALSE.
12699 ZUOVT(ITVAL) = .FALSE.
12700 INTLO(I) = .FALSE.
12701 IF (LSEADI.AND.(DT_RNDM(PLW).GT.FRCDIQ)) THEN
12702* sample sea-diquark pair
12703 CALL DT_SAMSDQ(ECM,ITVAL,J,2,IREJ1)
12704 IF (IREJ1.EQ.0) GOTO 260
12705 ENDIF
12706 NSV = NSV+1
12707 ISKPCH(4,NSV) = 0
12708 INTSV1(NSV) = J
12709 INTSV2(NSV) = ITVAL
12710
12711*>>>correct chain kinematics according to minimum chain masses
12712* the actual chain masses
12713 AMSVQ1 = XPSQ(J) *XTVD(ITVAL)*ECM**2
12714 AMSVQ2 = XPSAQ(J)*XTVQ(ITVAL)*ECM**2
12715* get lower mass cuts
12716 IF (IPSQ(J).EQ.3) THEN
12717* q being s-quark
12718 AMCHK1 = AMAS
12719 AMCHK2 = AMIS
12720 ELSE
12721* q being u/d-quark
12722 AMCHK1 = AMAU
12723 AMCHK2 = AMIU
12724 ENDIF
12725* q-qq chain
12726* chain mass above minimum - resampling of sea-q x-value
12727 IF (AMSVQ1.GT.AMCHK1) THEN
12728 XPSQTH = AMCHK1/(XTVD(ITVAL)*ECM**2)
12729**sr 8.4.98 (1/sqrt(x))
12730C XPSQXX = DT_SAMPEX(XPSQTH,XPSQ(J))
12731C XPSQXX = DT_SAMSQX(XPSQTH,XPSQ(J))
12732 XPSQXX = DT_SAMPLW(XPSQTH,XPSQ(J),PLW)
12733**
12734 XPVD(IPVAL) = XPVD(IPVAL)+XPSQ(J)-XPSQXX
12735 XPSQ(J) = XPSQXX
12736* chain mass below minimum - reset sea-q x-value and correct
12737* diquark-x of the same nucleon
12738 ELSEIF (AMSVQ1.LT.AMCHK1) THEN
12739 XPSQW = AMCHK1/(XTVD(ITVAL)*ECM**2)
12740 DXPSQ = XPSQW-XPSQ(J)
12741 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ) THEN
12742 XPVD(IPVAL) = XPVD(IPVAL)-DXPSQ
12743 XPSQ(J) = XPSQW
12744 ENDIF
12745 ENDIF
12746* aq-q chain
12747* chain mass below minimum - reset sea-aq x-value and correct
12748* diquark-x of the same nucleon
12749 IF (AMSVQ2.LT.AMCHK2) THEN
12750 XPSQW = AMCHK2/(XTVQ(ITVAL)*ECM**2)
12751 DXPSQ = XPSQW-XPSAQ(J)
12752 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ) THEN
12753 XPVD(IPVAL) = XPVD(IPVAL)-DXPSQ
12754 XPSAQ(J) = XPSQW
12755 ENDIF
12756 ENDIF
12757*>>>end of chain mass correction
12758
12759 GOTO 260
12760 ENDIF
12761 250 CONTINUE
12762 ENDIF
12763 260 CONTINUE
12764 270 CONTINUE
12765
12766* (6) get valence-sea chains
12767*-----------------------------------------------------------------------
12768
12769 NVS = 0
12770 NVD = 0
12771 DO 300 I=1,NN
12772 IF (INTLO(I)) THEN
12773 IPVAL = ITOVP(INTER1(I))
12774 ITVAL = ITOVT(INTER2(I))
12775 DO 280 J=1,IXTS
12776 IF (ZUOVP(IPVAL).AND.ZUOST(J).AND.
12777 & (IFROST(J).EQ.INTER2(I))) THEN
12778 ZUOST(J) = .FALSE.
12779 ZUOVP(IPVAL) = .FALSE.
12780 INTLO(I) = .FALSE.
12781 IF (LSEADI.AND.(DT_RNDM(ECM).GT.FRCDIQ)) THEN
12782* sample sea-diquark pair
12783 CALL DT_SAMSDQ(ECM,IPVAL,J,1,IREJ1)
12784 IF (IREJ1.EQ.0) GOTO 290
12785 ENDIF
12786 NVS = NVS + 1
12787 ISKPCH(6,NVS) = 0
12788 INTVS1(NVS) = IPVAL
12789 INTVS2(NVS) = J
12790
12791*>>>correct chain kinematics according to minimum chain masses
12792* the actual chain masses
12793 AMVSQ1 = XPVQ(IPVAL)*XTSAQ(J)*ECM**2
12794 AMVSQ2 = XPVD(IPVAL)*XTSQ(J) *ECM**2
12795* get lower mass cuts
12796 IF (ITSQ(J).EQ.3) THEN
12797* q being s-quark
12798 AMCHK1 = AMIS
12799 AMCHK2 = AMAS
12800 ELSE
12801* q being u/d-quark
12802 AMCHK1 = AMIU
12803 AMCHK2 = AMAU
12804 ENDIF
12805* q-aq chain
12806* chain mass below minimum - reset sea-aq x-value and correct
12807* diquark-x of the same nucleon
12808 IF (AMVSQ1.LT.AMCHK1) THEN
12809 XTSQW = AMCHK1/(XPVQ(IPVAL)*ECM**2)
12810 DXTSQ = XTSQW-XTSAQ(J)
12811 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ) THEN
12812 XTVD(ITVAL) = XTVD(ITVAL)-DXTSQ
12813 XTSAQ(J) = XTSQW
12814 ENDIF
12815 ENDIF
12816* qq-q chain
12817* chain mass above minimum - resampling of sea-q x-value
12818 IF (AMVSQ2.GT.AMCHK2) THEN
12819 XTSQTH = AMCHK2/(XPVD(IPVAL)*ECM**2)
12820**sr 8.4.98 (1/sqrt(x))
12821C XTSQXX = DT_SAMPEX(XTSQTH,XTSQ(J))
12822C XTSQXX = DT_SAMSQX(XTSQTH,XTSQ(J))
12823 XTSQXX = DT_SAMPLW(XTSQTH,XTSQ(J),PLW)
12824**
12825 XTVD(ITVAL) = XTVD(ITVAL)+XTSQ(J)-XTSQXX
12826 XTSQ(J) = XTSQXX
12827* chain mass below minimum - reset sea-q x-value and correct
12828* diquark-x of the same nucleon
12829 ELSEIF (AMVSQ2.LT.AMCHK2) THEN
12830 XTSQW = AMCHK2/(XPVD(IPVAL)*ECM**2)
12831 DXTSQ = XTSQW-XTSQ(J)
12832 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ) THEN
12833 XTVD(ITVAL) = XTVD(ITVAL)-DXTSQ
12834 XTSQ(J) = XTSQW
12835 ENDIF
12836 ENDIF
12837*>>>end of chain mass correction
12838
12839 GOTO 290
12840 ENDIF
12841 280 CONTINUE
12842 ENDIF
12843 290 CONTINUE
12844 300 CONTINUE
12845
12846* (7) get sea-sea chains
12847*-----------------------------------------------------------------------
12848
12849 NSS = 0
12850 NDS = 0
12851 NSD = 0
12852 DO 420 I=1,NN
12853 IF (INTLO(I)) THEN
12854 IPVAL = ITOVP(INTER1(I))
12855 ITVAL = ITOVT(INTER2(I))
12856* loop over target partons not yet matched
12857 DO 400 J=1,IXTS
12858 IF (ZUOST(J).AND.(IFROST(J).EQ.INTER2(I))) THEN
12859* loop over projectile partons not yet matched
12860 DO 390 JJ=1,IXPS
12861 IF (ZUOSP(JJ).AND.(IFROSP(JJ).EQ.INTER1(I))) THEN
12862 ZUOSP(JJ) = .FALSE.
12863 ZUOST(J) = .FALSE.
12864 INTLO(I) = .FALSE.
12865 NSS = NSS+1
12866 ISKPCH(1,NSS) = 0
12867 INTSS1(NSS) = JJ
12868 INTSS2(NSS) = J
12869
12870*---->chain recombination option
12871 VALFRA = DBLE(NVV/(NVV+IXPS+IXTS))
12872 IF (IRECOM.EQ.1.AND.(DT_RNDM(BSQMA).GT.VALFRA))
12873 & THEN
12874* sea-sea chains may recombine with valence-valence chains
12875* only if they have the same projectile or target nucleon
12876 DO 4201 IVV=1,NVV
12877 IF (ISKPCH(8,IVV).NE.99) THEN
12878 IXVPR = INTVV1(IVV)
12879 IXVTA = INTVV2(IVV)
12880 IF ((INTER1(I).EQ.IFROVP(IXVPR)).OR.
12881 & (INTER2(I).EQ.IFROVT(IXVTA))) THEN
12882* recombination possible, drop old v-v and s-s chains
12883 ISKPCH(1,NSS) = 99
12884 ISKPCH(8,IVV) = 99
12885
12886* (a) assign new s-v chains
12887* ~~~~~~~~~~~~~~~~~~~~~~~~~
12888 IF (LSEADI.AND.
12889 & (DT_RNDM(VALFRA).GT.FRCDIQ))
12890 & THEN
12891* sample sea-diquark pair
12892 CALL DT_SAMSDQ(ECM,IXVTA,JJ,2,
12893 & IREJ1)
12894 IF (IREJ1.EQ.0) GOTO 4202
12895 ENDIF
12896 NSV = NSV+1
12897 ISKPCH(4,NSV) = 0
12898 INTSV1(NSV) = JJ
12899 INTSV2(NSV) = IXVTA
12900*>>>>>>>>>>>correct chain kinematics according to minimum chain masses
12901* the actual chain masses
12902 AMSVQ1 = XPSQ(JJ) *XTVD(IXVTA)
12903 & *ECM**2
12904 AMSVQ2 = XPSAQ(JJ)*XTVQ(IXVTA)
12905 & *ECM**2
12906* get lower mass cuts
12907 IF (IPSQ(JJ).EQ.3) THEN
12908* q being s-quark
12909 AMCHK1 = AMAS
12910 AMCHK2 = AMIS
12911 ELSE
12912* q being u/d-quark
12913 AMCHK1 = AMAU
12914 AMCHK2 = AMIU
12915 ENDIF
12916* q-qq chain
12917* chain mass above minimum - resampling of sea-q x-value
12918 IF (AMSVQ1.GT.AMCHK1) THEN
12919 XPSQTH =
12920 & AMCHK1/(XTVD(IXVTA)*ECM**2)
12921**sr 8.4.98 (1/sqrt(x))
12922 XPSQXX =
12923 & DT_SAMPLW(XPSQTH,XPSQ(JJ),PLW)
12924C & DT_SAMSQX(XPSQTH,XPSQ(JJ))
12925C & DT_SAMPEX(XPSQTH,XPSQ(JJ))
12926**
12927 XPVD(IPVAL) =
12928 & XPVD(IPVAL)+XPSQ(JJ)-XPSQXX
12929 XPSQ(JJ) = XPSQXX
12930* chain mass below minimum - reset sea-q x-value and correct
12931* diquark-x of the same nucleon
12932 ELSEIF (AMSVQ1.LT.AMCHK1) THEN
12933 XPSQW =
12934 & AMCHK1/(XTVD(IXVTA)*ECM**2)
12935 DXPSQ = XPSQW-XPSQ(JJ)
12936 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ)
12937 & THEN
12938 XPVD(IPVAL) =
12939 & XPVD(IPVAL)-DXPSQ
12940 XPSQ(JJ) = XPSQW
12941 ENDIF
12942 ENDIF
12943* aq-q chain
12944* chain mass below minimum - reset sea-aq x-value and correct
12945* diquark-x of the same nucleon
12946 IF (AMSVQ2.LT.AMCHK2) THEN
12947 XPSQW =
12948 & AMCHK2/(XTVQ(IXVTA)*ECM**2)
12949 DXPSQ = XPSQW-XPSAQ(JJ)
12950 IF (XPVD(IPVAL).GE.XDTHR+DXPSQ)
12951 & THEN
12952 XPVD(IPVAL) =
12953 & XPVD(IPVAL)-DXPSQ
12954 XPSAQ(JJ) = XPSQW
12955 ENDIF
12956 ENDIF
12957*>>>>>>>>>>>end of chain mass correction
12958 4202 CONTINUE
12959
12960* (b) assign new v-s chains
12961* ~~~~~~~~~~~~~~~~~~~~~~~~~
12962 IF (LSEADI.AND.(
12963 & DT_RNDM(AMSVQ2).GT.FRCDIQ))
12964 & THEN
12965* sample sea-diquark pair
12966 CALL DT_SAMSDQ(ECM,IXVPR,J,1,
12967 & IREJ1)
12968 IF (IREJ1.EQ.0) GOTO 4203
12969 ENDIF
12970 NVS = NVS+1
12971 ISKPCH(6,NVS) = 0
12972 INTVS1(NVS) = IXVPR
12973 INTVS2(NVS) = J
12974*>>>>>>>>>>>correct chain kinematics according to minimum chain masses
12975* the actual chain masses
12976 AMVSQ1 = XPVQ(IXVPR)*XTSAQ(J)*ECM**2
12977 AMVSQ2 = XPVD(IXVPR)*XTSQ(J) *ECM**2
12978* get lower mass cuts
12979 IF (ITSQ(J).EQ.3) THEN
12980* q being s-quark
12981 AMCHK1 = AMIS
12982 AMCHK2 = AMAS
12983 ELSE
12984* q being u/d-quark
12985 AMCHK1 = AMIU
12986 AMCHK2 = AMAU
12987 ENDIF
12988* q-aq chain
12989* chain mass below minimum - reset sea-aq x-value and correct
12990* diquark-x of the same nucleon
12991 IF (AMVSQ1.LT.AMCHK1) THEN
12992 XTSQW =
12993 & AMCHK1/(XPVQ(IXVPR)*ECM**2)
12994 DXTSQ = XTSQW-XTSAQ(J)
12995 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ)
12996 & THEN
12997 XTVD(ITVAL) =
12998 & XTVD(ITVAL)-DXTSQ
12999 XTSAQ(J) = XTSQW
13000 ENDIF
13001 ENDIF
13002 IF (AMVSQ2.GT.AMCHK2) THEN
13003 XTSQTH =
13004 & AMCHK2/(XPVD(IXVPR)*ECM**2)
13005**sr 8.4.98 (1/sqrt(x))
13006 XTSQXX =
13007 & DT_SAMPLW(XTSQTH,XTSQ(J),PLW)
13008C & DT_SAMSQX(XTSQTH,XTSQ(J))
13009C & DT_SAMPEX(XTSQTH,XTSQ(J))
13010**
13011 XTVD(ITVAL) =
13012 & XTVD(ITVAL)+XTSQ(J)-XTSQXX
13013 XTSQ(J) = XTSQXX
13014 ELSEIF (AMVSQ2.LT.AMCHK2) THEN
13015 XTSQW =
13016 & AMCHK2/(XPVD(IXVPR)*ECM**2)
13017 DXTSQ = XTSQW-XTSQ(J)
13018 IF (XTVD(ITVAL).GE.XDTHR+DXTSQ)
13019 & THEN
13020 XTVD(ITVAL) =
13021 & XTVD(ITVAL)-DXTSQ
13022 XTSQ(J) = XTSQW
13023 ENDIF
13024 ENDIF
13025*>>>>>>>>>end of chain mass correction
13026 4203 CONTINUE
13027* jump out of s-s chain loop
13028 GOTO 420
13029 ENDIF
13030 ENDIF
13031 4201 CONTINUE
13032 ENDIF
13033*---->end of chain recombination option
13034
13035* sample sea-diquark pair (projectile)
13036 IF (LSEADI.AND.(DT_RNDM(BSQMA).GT.FRCDIQ)) THEN
13037 CALL DT_SAMSDQ(ECM,J,JJ,4,IREJ1)
13038 IF (IREJ1.EQ.0) THEN
13039 ISKPCH(1,NSS) = 99
13040 GOTO 410
13041 ENDIF
13042 ENDIF
13043* sample sea-diquark pair (target)
13044 IF (LSEADI.AND.(DT_RNDM(ECM).GT.FRCDIQ)) THEN
13045 CALL DT_SAMSDQ(ECM,JJ,J,3,IREJ1)
13046 IF (IREJ1.EQ.0) THEN
13047 ISKPCH(1,NSS) = 99
13048 GOTO 410
13049 ENDIF
13050 ENDIF
13051*>>>>>correct chain kinematics according to minimum chain masses
13052* the actual chain masses
13053 SSMA1Q = XPSQ(JJ) *XTSAQ(J)*ECM**2
13054 SSMA2Q = XPSAQ(JJ)*XTSQ(J) *ECM**2
13055* check for lower mass cuts
13056 IF ((SSMA1Q.LT.SSMIMQ).OR.
13057 & (SSMA2Q.LT.SSMIMQ)) THEN
13058 IPVAL = ITOVP(INTER1(I))
13059 ITVAL = ITOVT(INTER2(I))
13060 IF ((XPVD(IPVAL).GT.XDTHR+3.5D0*XSSTHR).AND.
13061 & (XTVD(ITVAL).GT.XDTHR+3.5D0*XSSTHR))THEN
13062* maximum allowed x values for sea quarks
13063 XSPMAX = ONE-XPVQ(IPVAL)-XDTHR-
13064 & 1.2D0*XSSTHR
13065 XSTMAX = ONE-XTVQ(ITVAL)-XDTHR-
13066 & 1.2D0*XSSTHR
13067* resampling of x values not possible - skip sea-sea chains
13068 IF ((XSPMAX.LE.XSSTHR+0.05D0).OR.
13069 & (XSTMAX.LE.XSSTHR+0.05D0)) GOTO 380
13070* resampling of x for projectile sea quark pair
13071 ICOUS = 0
13072 310 CONTINUE
13073 ICOUS = ICOUS+1
13074 IF (XSSTHR.GT.0.05D0) THEN
13075 XPSQI =DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13076 & XSPMAX)
13077 XPSAQI=DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13078 & XSPMAX)
13079 ELSE
13080 320 CONTINUE
13081 XPSQI = DT_DBETAR(XSEACU,UNOSEA)
13082 IF ((XPSQI.LT.XSSTHR).OR.
13083 & (XPSQI.GT.XSPMAX)) GOTO 320
13084 330 CONTINUE
13085 XPSAQI = DT_DBETAR(XSEACU,UNOSEA)
13086 IF ((XPSAQI.LT.XSSTHR).OR.
13087 & (XPSAQI.GT.XSPMAX)) GOTO 330
13088 ENDIF
13089* final test of remaining x for projectile diquark
13090 XPVDCO = XPVD(IPVAL)-XPSQI-XPSAQI
13091 & +XPSQ(JJ)+XPSAQ(JJ)
13092 IF (XPVDCO.LE.XDTHR) THEN
13093*!!!
13094C IF (ICOUS.LT.5) GOTO 310
13095 IF (ICOUS.LT.0.5D0) GOTO 310
13096 GOTO 380
13097 ENDIF
13098* resampling of x for target sea quark pair
13099 ICOUS = 0
13100 350 CONTINUE
13101 ICOUS = ICOUS+1
13102 IF (XSSTHR.GT.0.05D0) THEN
13103 XTSQI =DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13104 & XSTMAX)
13105 XTSAQI=DT_BETREJ(XSEACU,UNOSEA,XSSTHR,
13106 & XSTMAX)
13107 ELSE
13108 360 CONTINUE
13109 XTSQI = DT_DBETAR(XSEACU,UNOSEA)
13110 IF ((XTSQI.LT.XSSTHR).OR.
13111 & (XTSQI.GT.XSTMAX)) GOTO 360
13112 370 CONTINUE
13113 XTSAQI = DT_DBETAR(XSEACU,UNOSEA)
13114 IF ((XTSAQI.LT.XSSTHR).OR.
13115 & (XTSAQI.GT.XSTMAX)) GOTO 370
13116 ENDIF
13117* final test of remaining x for target diquark
13118 XTVDCO = XTVD(ITVAL)-XTSQI-XTSAQI
13119 & +XTSQ(J)+XTSAQ(J)
13120 IF (XTVDCO.LT.XDTHR) THEN
13121 IF (ICOUS.LT.5) GOTO 350
13122 GOTO 380
13123 ENDIF
13124 XPVD(IPVAL) = XPVDCO
13125 XTVD(ITVAL) = XTVDCO
13126 XPSQ(JJ) = XPSQI
13127 XPSAQ(JJ) = XPSAQI
13128 XTSQ(J) = XTSQI
13129 XTSAQ(J) = XTSAQI
13130*>>>>>end of chain mass correction
13131 GOTO 410
13132 ENDIF
13133* come here to discard s-s interaction
13134* resampling of x values not allowed or unsuccessful
13135 380 CONTINUE
13136 INTLO(I) = .FALSE.
13137 ZUOST(J) = .TRUE.
13138 ZUOSP(JJ) = .TRUE.
13139 NSS = NSS-1
13140 ENDIF
13141* consider next s-s interaction
13142 GOTO 410
13143 ENDIF
13144 390 CONTINUE
13145 ENDIF
13146 400 CONTINUE
13147 ENDIF
13148 410 CONTINUE
13149 420 CONTINUE
13150
13151* correct x-values of valence quarks for non-matching sea quarks
13152 DO 430 I=1,IXPS
13153 IF (ZUOSP(I)) THEN
13154 IPVAL = ITOVP(IFROSP(I))
13155 XPVQ(IPVAL) = XPVQ(IPVAL)+XPSQ(I)+XPSAQ(I)
13156 XPSQ(I) = ZERO
13157 XPSAQ(I) = ZERO
13158 ZUOSP(I) = .FALSE.
13159 ENDIF
13160 430 CONTINUE
13161 DO 440 I=1,IXTS
13162 IF (ZUOST(I)) THEN
13163 ITVAL = ITOVT(IFROST(I))
13164 XTVQ(ITVAL) = XTVQ(ITVAL)+XTSQ(I)+XTSAQ(I)
13165 XTSQ(I) = ZERO
13166 XTSAQ(I) = ZERO
13167 ZUOST(I) = .FALSE.
13168 ENDIF
13169 440 CONTINUE
13170 DO 450 I=1,IXPV
13171 IF (ZUOVP(I)) ISTHKK(IFROVP(I)) = 13
13172 450 CONTINUE
13173 DO 460 I=1,IXTV
13174 IF (ZUOVT(I)) ISTHKK(IFROVT(I)+IP) = 14
13175 460 CONTINUE
13176
13177 RETURN
13178 END
13179
13180*$ CREATE DT_SAMSDQ.FOR
13181*COPY DT_SAMSDQ
13182*
13183*===samsdq=============================================================*
13184*
13185 SUBROUTINE DT_SAMSDQ(ECM,IDX1,IDX2,MODE,IREJ)
13186
13187************************************************************************
13188* SAMpling of Sea-DiQuarks *
13189* ECM cm-energy of the nucleon-nucleon system *
13190* IDX1,2 indices of x-values of the participating *
13191* partons (IDX2 is always the sea-q-pair to be *
13192* changed to sea-qq-pair) *
13193* MODE = 1 valence-q - sea-diq *
13194* = 2 sea-diq - valence-q *
13195* = 3 sea-q - sea-diq *
13196* = 4 sea-diq - sea-q *
13197* Based on DIQVS, DIQSV, DIQSSD, DIQDSS. *
13198* This version dated 17.10.95 is written by S. Roesler *
13199************************************************************************
13200
13201 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13202 SAVE
13203
13204 PARAMETER (ZERO=0.0D0)
13205
13206* threshold values for x-sampling (DTUNUC 1.x)
13207 COMMON /DTXCUT/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
13208 & SSMIMQ,VVMTHR
13209* various options for treatment of partons (DTUNUC 1.x)
13210* (chain recombination, Cronin,..)
13211 LOGICAL LCO2CR,LINTPT
13212 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
13213 & LCO2CR,LINTPT
13214 PARAMETER ( MAXNCL = 260,
13215 & MAXVQU = MAXNCL,
13216 & MAXSQU = 20*MAXVQU,
13217 & MAXINT = MAXVQU+MAXSQU)
13218* x-values of partons (DTUNUC 1.x)
13219 COMMON /DTDPMX/ XPVQ(MAXVQU),XPVD(MAXVQU),
13220 & XTVQ(MAXVQU),XTVD(MAXVQU),
13221 & XPSQ(MAXSQU),XPSAQ(MAXSQU),
13222 & XTSQ(MAXSQU),XTSAQ(MAXSQU)
13223* flavors of partons (DTUNUC 1.x)
13224 COMMON /DTDPMF/ IPVQ(MAXVQU),IPPV1(MAXVQU),IPPV2(MAXVQU),
13225 & ITVQ(MAXVQU),ITTV1(MAXVQU),ITTV2(MAXVQU),
13226 & IPSQ(MAXSQU),IPSQ2(MAXSQU),
13227 & IPSAQ(MAXSQU),IPSAQ2(MAXSQU),
13228 & ITSQ(MAXSQU),ITSQ2(MAXSQU),
13229 & ITSAQ(MAXSQU),ITSAQ2(MAXSQU),
13230 & KKPROJ(MAXVQU),KKTARG(MAXVQU)
13231* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
13232 COMMON /DTDPMI/ NVV,NSV,NVS,NSS,NDV,NVD,NDS,NSD,
13233 & IXPV,IXPS,IXTV,IXTS,
13234 & INTVV1(MAXVQU),INTVV2(MAXVQU),
13235 & INTSV1(MAXVQU),INTSV2(MAXVQU),
13236 & INTVS1(MAXVQU),INTVS2(MAXVQU),
13237 & INTSS1(MAXSQU),INTSS2(MAXSQU),
13238 & INTDV1(MAXVQU),INTDV2(MAXVQU),
13239 & INTVD1(MAXVQU),INTVD2(MAXVQU),
13240 & INTDS1(MAXSQU),INTDS2(MAXSQU),
13241 & INTSD1(MAXSQU),INTSD2(MAXSQU)
13242* auxiliary common for x-value and flavor storage of partons (DTUNUC 1.x)
13243 COMMON /DTDPM0/ IFROVP(MAXVQU),ITOVP(MAXVQU),IFROSP(MAXSQU),
13244 & IFROVT(MAXVQU),ITOVT(MAXVQU),IFROST(MAXSQU)
13245* auxiliary common for chain system storage (DTUNUC 1.x)
13246 COMMON /DTCHSY/ ISKPCH(8,MAXINT),IPOSP(MAXNCL),IPOST(MAXNCL)
13247
13248 IREJ = 0
13249* threshold-x for valence diquarks
13250 XDTHR = CDQ/ECM
13251
13252 GOTO (1,2,3,4) MODE
13253
13254*---------------------------------------------------------------------
13255* proj. valence partons - targ. sea partons
13256* get x-values and flavors for target sea-diquark pair
13257
13258 1 CONTINUE
13259 IDXVP = IDX1
13260 IDXST = IDX2
13261
13262* index of corr. val-diquark-x in target nucleon
13263 IDXVT = ITOVT(IFROST(IDXST))
13264* available x above diquark thresholds for valence- and sea-diquarks
13265 XXD = XTVD(IDXVT)+XTSQ(IDXST)+XTSAQ(IDXST)-3.0D0*XDTHR
13266
13267 IF (XXD.GE.ZERO) THEN
13268* x-values for the three diquarks of the target nucleon
13269 RR1 = DT_RNDM(XXD)
13270 RR2 = DT_RNDM(RR1)
13271 RR3 = DT_RNDM(RR2)
13272 SR123 = RR1+RR2+RR3
13273 XXTV = XDTHR+RR1*XXD/SR123
13274 XXTSQ = XDTHR+RR2*XXD/SR123
13275 XXTSAQ = XDTHR+RR3*XXD/SR123
13276 ELSE
13277 XXTV = XTVD(IDXVT)
13278 XXTSQ = XTSQ(IDXST)
13279 XXTSAQ = XTSAQ(IDXST)
13280 ENDIF
13281* flavor of the second quarks in the sea-diquark pair
13282 ITSQ2(IDXST) = INT(1.0D0+DT_RNDM(RR3)*(2.0D0+SEASQ))
13283 ITSAQ2(IDXST) = -ITSQ2(IDXST)
13284* check masses of the new val-q - sea-qq, val-qq - sea-aqaq chains
13285 AM1 = XXTSQ *XPVQ(IDXVP)*ECM**2
13286 AM2 = XXTSAQ*XPVD(IDXVP)*ECM**2
13287 IF ( (ITSQ(IDXST).EQ.3).AND.(ITSQ2(IDXST).EQ.3).AND.
13288* ss-asas pair
13289 & ((AM2.LE.18.0D0).OR.(AM1.LE.6.6D0)) ) THEN
13290 IREJ = 1
13291 RETURN
13292 ELSEIF ( ((ITSQ(IDXST).EQ.3).OR.(ITSQ2(IDXST).EQ.3)).AND.
13293* at least one strange quark
13294 & ((AM2.LE.14.6D0).OR.(AM1.LE.5.8D0)) ) THEN
13295 IREJ = 1
13296 RETURN
13297 ELSEIF ( (AM2.LE.13.4D0).OR.(AM1.LE.5.0D0) ) THEN
13298 IREJ = 1
13299 RETURN
13300 ENDIF
13301* accept the new sea-diquark
13302 XTVD(IDXVT) = XXTV
13303 XTSQ(IDXST) = XXTSQ
13304 XTSAQ(IDXST) = XXTSAQ
13305 NVD = NVD+1
13306 INTVD1(NVD) = IDXVP
13307 INTVD2(NVD) = IDXST
13308 ISKPCH(7,NVD) = 0
13309 RETURN
13310
13311*---------------------------------------------------------------------
13312* proj. sea partons - targ. valence partons
13313* get x-values and flavors for projectile sea-diquark pair
13314
13315 2 CONTINUE
13316 IDXSP = IDX2
13317 IDXVT = IDX1
13318
13319* index of corr. val-diquark-x in projectile nucleon
13320 IDXVP = ITOVP(IFROSP(IDXSP))
13321* available x above diquark thresholds for valence- and sea-diquarks
13322 XXD = XPVD(IDXVP)+XPSQ(IDXSP)+XPSAQ(IDXSP)-3.0D0*XDTHR
13323
13324 IF (XXD.GE.ZERO) THEN
13325* x-values for the three diquarks of the projectile nucleon
13326 RR1 = DT_RNDM(XXD)
13327 RR2 = DT_RNDM(RR1)
13328 RR3 = DT_RNDM(RR2)
13329 SR123 = RR1+RR2+RR3
13330 XXPV = XDTHR+RR1*XXD/SR123
13331 XXPSQ = XDTHR+RR2*XXD/SR123
13332 XXPSAQ = XDTHR+RR3*XXD/SR123
13333 ELSE
13334 XXPV = XPVD(IDXVP)
13335 XXPSQ = XPSQ(IDXSP)
13336 XXPSAQ = XPSAQ(IDXSP)
13337 ENDIF
13338* flavor of the second quarks in the sea-diquark pair
13339 IPSQ2(IDXSP) = INT(1.0D0+DT_RNDM(XXD)*(2.0D0+SEASQ))
13340 IPSAQ2(IDXSP) = -IPSQ2(IDXSP)
13341* check masses of the new sea-qq - val-q, sea-aqaq - val-qq chains
13342 AM1 = XXPSQ *XTVQ(IDXVT)*ECM**2
13343 AM2 = XXPSAQ*XTVD(IDXVT)*ECM**2
13344 IF ( (IPSQ(IDXSP).EQ.3).AND.(IPSQ2(IDXSP).EQ.3).AND.
13345* ss-asas pair
13346 & ((AM2.LE.18.0D0).OR.(AM1.LE.6.6D0)) ) THEN
13347 IREJ = 1
13348 RETURN
13349 ELSEIF ( ((IPSQ(IDXSP).EQ.3).OR.(IPSQ2(IDXSP).EQ.3)).AND.
13350* at least one strange quark
13351 & ((AM2.LE.14.6D0).OR.(AM1.LE.5.8D0)) ) THEN
13352 IREJ = 1
13353 RETURN
13354 ELSEIF ( (AM2.LE.13.4D0).OR.(AM1.LE.5.0D0) ) THEN
13355 IREJ = 1
13356 RETURN
13357 ENDIF
13358* accept the new sea-diquark
13359 XPVD(IDXVP) = XXPV
13360 XPSQ(IDXSP) = XXPSQ
13361 XPSAQ(IDXSP) = XXPSAQ
13362 NDV = NDV+1
13363 INTDV1(NDV) = IDXSP
13364 INTDV2(NDV) = IDXVT
13365 ISKPCH(5,NDV) = 0
13366 RETURN
13367
13368*---------------------------------------------------------------------
13369* proj. sea partons - targ. sea partons
13370* get x-values and flavors for target sea-diquark pair
13371
13372 3 CONTINUE
13373 IDXSP = IDX1
13374 IDXST = IDX2
13375
13376* index of corr. val-diquark-x in target nucleon
13377 IDXVT = ITOVT(IFROST(IDXST))
13378* available x above diquark thresholds for valence- and sea-diquarks
13379 XXD = XTVD(IDXVT)+XTSQ(IDXST)+XTSAQ(IDXST)-3.0D0*XDTHR
13380
13381 IF (XXD.GE.ZERO) THEN
13382* x-values for the three diquarks of the target nucleon
13383 RR1 = DT_RNDM(XXD)
13384 RR2 = DT_RNDM(RR1)
13385 RR3 = DT_RNDM(RR2)
13386 SR123 = RR1+RR2+RR3
13387 XXTV = XDTHR+RR1*XXD/SR123
13388 XXTSQ = XDTHR+RR2*XXD/SR123
13389 XXTSAQ = XDTHR+RR3*XXD/SR123
13390 ELSE
13391 XXTV = XTVD(IDXVT)
13392 XXTSQ = XTSQ(IDXST)
13393 XXTSAQ = XTSAQ(IDXST)
13394 ENDIF
13395* flavor of the second quarks in the sea-diquark pair
13396 ITSQ2(IDXST) = INT(1.0D0+DT_RNDM(XXD)*(2.0D0+SEASQ))
13397 ITSAQ2(IDXST) = -ITSQ2(IDXST)
13398* check masses of the new sea-q - sea-qq, sea-aq - sea-aqaq chains
13399 AM1 = XXTSQ *XPSQ(IDXSP)*ECM**2
13400 AM2 = XXTSAQ*XPSAQ(IDXSP)*ECM**2
13401 IF ( (ITSQ(IDXST).EQ.3).AND.(ITSQ2(IDXST).EQ.3).AND.
13402* ss-asas pair
13403 & ((AM2.LE.6.6D0).OR.(AM1.LE.6.6D0)) ) THEN
13404 IREJ = 1
13405 RETURN
13406 ELSEIF ( ((ITSQ(IDXST).EQ.3).OR.(ITSQ2(IDXST).EQ.3)).AND.
13407* at least one strange quark
13408 & ((AM2.LE.5.8D0).OR.(AM1.LE.5.8D0)) ) THEN
13409 IREJ = 1
13410 RETURN
13411 ELSEIF ( (AM2.LE.5.0D0).OR.(AM1.LE.5.0D0) ) THEN
13412 IREJ = 1
13413 RETURN
13414 ENDIF
13415* accept the new sea-diquark
13416 XTVD(IDXVT) = XXTV
13417 XTSQ(IDXST) = XXTSQ
13418 XTSAQ(IDXST) = XXTSAQ
13419 NSD = NSD+1
13420 INTSD1(NSD) = IDXSP
13421 INTSD2(NSD) = IDXST
13422 ISKPCH(3,NSD) = 0
13423 RETURN
13424
13425*---------------------------------------------------------------------
13426* proj. sea partons - targ. sea partons
13427* get x-values and flavors for projectile sea-diquark pair
13428
13429 4 CONTINUE
13430 IDXSP = IDX2
13431 IDXST = IDX1
13432
13433* index of corr. val-diquark-x in projectile nucleon
13434 IDXVP = ITOVP(IFROSP(IDXSP))
13435* available x above diquark thresholds for valence- and sea-diquarks
13436 XXD = XPVD(IDXVP)+XPSQ(IDXSP)+XPSAQ(IDXSP)-3.0D0*XDTHR
13437
13438 IF (XXD.GE.ZERO) THEN
13439* x-values for the three diquarks of the projectile nucleon
13440 RR1 = DT_RNDM(XXD)
13441 RR2 = DT_RNDM(RR1)
13442 RR3 = DT_RNDM(RR2)
13443 SR123 = RR1+RR2+RR3
13444 XXPV = XDTHR+RR1*XXD/SR123
13445 XXPSQ = XDTHR+RR2*XXD/SR123
13446 XXPSAQ = XDTHR+RR3*XXD/SR123
13447 ELSE
13448 XXPV = XPVD(IDXVP)
13449 XXPSQ = XPSQ(IDXSP)
13450 XXPSAQ = XPSAQ(IDXSP)
13451 ENDIF
13452* flavor of the second quarks in the sea-diquark pair
13453 IPSQ2(IDXSP) = INT(1.0D0+DT_RNDM(RR3)*(2.0D0+SEASQ))
13454 IPSAQ2(IDXSP) = -IPSQ2(IDXSP)
13455* check masses of the new sea-qq - sea-q, sea-aqaq - sea-qq chains
13456 AM1 = XXPSQ *XTSQ(IDXST)*ECM**2
13457 AM2 = XXPSAQ*XTSAQ(IDXST)*ECM**2
13458 IF ( (IPSQ(IDXSP).EQ.3).AND.(IPSQ2(IDXSP).EQ.3).AND.
13459* ss-asas pair
13460 & ((AM2.LE.6.6D0).OR.(AM1.LE.6.6D0)) ) THEN
13461 IREJ = 1
13462 RETURN
13463 ELSEIF ( ((IPSQ(IDXSP).EQ.3).OR.(IPSQ2(IDXSP).EQ.3)).AND.
13464* at least one strange quark
13465 & ((AM2.LE.5.8D0).OR.(AM1.LE.5.8D0)) ) THEN
13466 IREJ = 1
13467 RETURN
13468 ELSEIF ( (AM2.LE.5.0D0).OR.(AM1.LE.5.0D0) ) THEN
13469 IREJ = 1
13470 RETURN
13471 ENDIF
13472* accept the new sea-diquark
13473 XPVD(IDXVP) = XXPV
13474 XPSQ(IDXSP) = XXPSQ
13475 XPSAQ(IDXSP) = XXPSAQ
13476 NDS = NDS+1
13477 INTDS1(NDS) = IDXSP
13478 INTDS2(NDS) = IDXST
13479 ISKPCH(2,NDS) = 0
13480 RETURN
13481 END
13482
13483*$ CREATE DT_DIFEVT.FOR
13484*COPY DT_DIFEVT
13485*
13486*===difevt=============================================================*
13487*
13488 SUBROUTINE DT_DIFEVT(IFP1,IFP2,PP,MOP,
13489 & IFT1,IFT2,PT,MOT,JDIFF,NCSY,IREJ)
13490
13491************************************************************************
13492* Interface to treatment of diffractive interactions. *
13493* (input) IFP1/2 PDG-indizes of projectile partons *
13494* (baryon: IFP2 - adiquark) *
13495* PP(4) projectile 4-momentum *
13496* IFT1/2 PDG-indizes of target partons *
13497* (baryon: IFT1 - adiquark) *
13498* PT(4) target 4-momentum *
13499* (output) JDIFF = 0 no diffraction *
13500* = 1/-1 LMSD/LMDD *
13501* = 2/-2 HMSD/HMDD *
13502* NCSY counter for two-chain systems *
13503* dumped to DTEVT1 *
13504* This version dated 14.02.95 is written by S. Roesler *
13505************************************************************************
13506
13507 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13508 SAVE
13509 PARAMETER ( LINP = 10 ,
13510 & LOUT = 6 ,
13511 & LDAT = 9 )
13512 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10,TINY5=1.0D-5,
13513 & OHALF=0.5D0)
13514
13515* event history
13516 PARAMETER (NMXHKK=200000)
13517 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
13518 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
13519 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
13520* extended event history
13521 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
13522 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
13523 & IHIST(2,NMXHKK)
13524* flags for diffractive interactions (DTUNUC 1.x)
13525 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
13526
13527 DIMENSION PP(4),PT(4)
13528
13529 LOGICAL LFIRST
13530 DATA LFIRST /.TRUE./
13531
13532 IREJ = 0
13533 JDIFF = 0
13534 IFLAGD = JDIFF
13535
13536* cm. energy
13537 XM = SQRT((PP(4)+PT(4))**2-(PP(1)+PT(1))**2-
13538 & (PP(2)+PT(2))**2-(PP(3)+PT(3))**2)
13539* identities of projectile hadron / target nucleon
13540 KPROJ = IDT_ICIHAD(IDHKK(MOP))
13541 KTARG = IDT_ICIHAD(IDHKK(MOT))
13542
13543* single diffractive xsections
13544 CALL DT_SHNDIF(XM,KPROJ,KTARG,SDTOT,SDHM)
13545* double diffractive xsections
13546**!! no double diff yet
13547C CALL DT_SHNDIF(XM,KPROJ,KTARG,SDTOT,SDHM,DDTOT,DDHM)
13548 DDTOT = 0.0D0
13549 DDHM = 0.0D0
13550**!!
13551* total inelastic xsection
13552C SIGIN = DT_SHNTOT(KPROJ,KTARG,XM,ZERO)-DT_SHNELA(KPROJ,KTARG,XM)
13553 DUMZER = ZERO
13554 CALL DT_XSHN(KPROJ,KTARG,DUMZER,XM,SIGTO,SIGEL)
13555 SIGIN = MAX(SIGTO-SIGEL,ZERO)
13556
13557* fraction of diffractive processes
13558 FRADIF = (SDTOT+DDTOT)/SIGIN
13559
13560 IF (LFIRST) THEN
13561 WRITE(LOUT,1000) XM,SDTOT,SIGIN
13562 1000 FORMAT(1X,'DIFEVT: single diffraction requested at E_cm = ',
13563 & F5.1,' GeV',/,9X,'sigma_sd = ',F4.1,' mb, sigma_in = ',
13564 & F5.1,' mb',/)
13565 LFIRST = .FALSE.
13566 ENDIF
13567
13568 IF ((DT_RNDM(DDHM).LE.FRADIF).OR.
13569 & (ISINGD.GT.1).OR.(IDOUBD.GT.1)) THEN
13570* diffractive interaction requested by x-section or by user
13571 FRASD = SDTOT/(SDTOT+DDTOT)
13572 FRASDH = SDHM/SDTOT
13573**sr needs to be specified!!
13574C FRADDH = DDHM/DDTOT
13575 FRADDH = 1.0D0
13576**
13577 IF ((DT_RNDM(FRASD).LE.FRASD).OR.(ISINGD.GT.1)) THEN
13578* single diffraction
13579 KDIFF = 1
13580 IF (DT_RNDM(DDTOT).LE.FRASDH) THEN
13581 KP = 2
13582 KT = 0
13583 IF (((ISINGD.EQ.4).OR.(DT_RNDM(DDTOT).GE.OHALF)).AND.
13584 & ISINGD.NE.3) THEN
13585 KP = 0
13586 KT = 2
13587 ENDIF
13588 ELSE
13589 KP = 1
13590 KT = 0
13591 IF (((ISINGD.EQ.4).OR.(DT_RNDM(FRADDH).GE.OHALF)).AND.
13592 & ISINGD.NE.3) THEN
13593 KP = 0
13594 KT = 1
13595 ENDIF
13596 ENDIF
13597 ELSE
13598* double diffraction
13599 KDIFF = -1
13600 IF (DT_RNDM(FRADDH).LE.FRADDH) THEN
13601 KP = 2
13602 KT = 2
13603 ELSE
13604 KP = 1
13605 KT = 1
13606 ENDIF
13607 ENDIF
13608 CALL DT_DIFFKI(IFP1,IFP2,PP,MOP,KP,
13609 & IFT1,IFT2,PT,MOT,KT,NCSY,IREJ1)
13610 IF (IREJ1.EQ.0) THEN
13611 IFLAGD = 2*KDIFF
13612 IF ((KP.EQ.1).OR.(KT.EQ.1)) IFLAGD = KDIFF
13613 ELSE
13614 GOTO 9999
13615 ENDIF
13616 ENDIF
13617 JDIFF = IFLAGD
13618
13619 RETURN
13620
13621 9999 CONTINUE
13622 IREJ = 1
13623 RETURN
13624 END
13625
13626*$ CREATE DT_DIFFKI.FOR
13627*COPY DT_DIFFKI
13628*
13629*===difkin=============================================================*
13630*
13631 SUBROUTINE DT_DIFFKI(IFP1,IFP2,PP,MOP,KP,
13632 & IFT1,IFT2,PT,MOT,KT,NCSY,IREJ)
13633
13634************************************************************************
13635* Kinematics of diffractive nucleon-nucleon interaction. *
13636* IFP1/2 PDG-indizes of projectile partons *
13637* (baryon: IFP2 - adiquark) *
13638* PP(4) projectile 4-momentum *
13639* IFT1/2 PDG-indizes of target partons *
13640* (baryon: IFT1 - adiquark) *
13641* PT(4) target 4-momentum *
13642* KP = 0 projectile quasi-elastically scattered *
13643* = 1 excited to low-mass diff. state *
13644* = 2 excited to high-mass diff. state *
13645* KT = 0 target quasi-elastically scattered *
13646* = 1 excited to low-mass diff. state *
13647* = 2 excited to high-mass diff. state *
13648* This version dated 12.02.95 is written by S. Roesler *
13649************************************************************************
13650
13651 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13652 SAVE
13653 PARAMETER ( LINP = 10 ,
13654 & LOUT = 6 ,
13655 & LDAT = 9 )
13656 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY10=1.0D-10,TINY5=1.0D-5)
13657
13658 LOGICAL LSTART
13659
13660* particle properties (BAMJET index convention)
13661 CHARACTER*8 ANAME
13662 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
13663 & IICH(210),IIBAR(210),K1(210),K2(210)
13664* flags for input different options
13665 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
13666 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
13667 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
13668* rejection counter
13669 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
13670 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
13671 & IREXCI(3),IRDIFF(2),IRINC
13672* kinematics of diffractive interactions (DTUNUC 1.x)
13673 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
13674 & PPF(4),PTF(4),
13675 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
13676 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
13677
13678 DIMENSION PITOT(4),BGTOT(4),PP1(4),PT1(4),PPBLOB(4),PTBLOB(4),
13679 & PP(4),PT(4),PPOM1(4),DEV1(4),DEV2(4)
13680
13681 DATA LSTART /.TRUE./
13682
13683 IF (LSTART) THEN
13684 WRITE(LOUT,2000)
13685 2000 FORMAT(/,1X,'DIFEVT: diffractive interactions treated ')
13686 LSTART = .FALSE.
13687 ENDIF
13688
13689 IREJ = 0
13690
13691* initialize common /DTDIKI/
13692 CALL DT_DIFINI
13693* store momenta of initial incoming particles for emc-check
13694 IF (LEMCCK) THEN
13695 CALL DT_EVTEMC(PP(1),PP(2),PP(3),PP(4),1,IDUM,IDUM)
13696 CALL DT_EVTEMC(PT(1),PT(2),PT(3),PT(4),2,IDUM,IDUM)
13697 ENDIF
13698
13699* masses of initial particles
13700 XMP2 = PP(4)**2-PP(1)**2-PP(2)**2-PP(3)**2
13701 XMT2 = PT(4)**2-PT(1)**2-PT(2)**2-PT(3)**2
13702 IF ((XMP2.LT.ZERO).OR.(XMT2.LT.ZERO)) GOTO 9999
13703 XMP = SQRT(XMP2)
13704 XMT = SQRT(XMT2)
13705* check quark-input (used to adjust coherence cond. for M-selection)
13706 IBP = 0
13707 IF ((ABS(IFP1).GE.1000).OR.(ABS(IFP2).GE.1000)) IBP = 1
13708 IBT = 0
13709 IF ((ABS(IFT1).GE.1000).OR.(ABS(IFT2).GE.1000)) IBT = 1
13710
13711* parameter for Lorentz-transformation into nucleon-nucleon cms
13712 DO 3 K=1,4
13713 PITOT(K) = PP(K)+PT(K)
13714 3 CONTINUE
13715 XMTOT2 = PITOT(4)**2-PITOT(1)**2-PITOT(2)**2-PITOT(3)**2
13716 IF (XMTOT2.LE.ZERO) THEN
13717 WRITE(LOUT,1000) XMTOT2
13718 1000 FORMAT(1X,'DIFEVT: negative cm. energy! ',
13719 & 'XMTOT2 = ',E12.3)
13720 GOTO 9999
13721 ENDIF
13722 XMTOT = SQRT(XMTOT2)
13723 DO 4 K=1,4
13724 BGTOT(K) = PITOT(K)/XMTOT
13725 4 CONTINUE
13726* transformation of nucleons into cms
13727 CALL DT_DALTRA(BGTOT(4),-BGTOT(1),-BGTOT(2),-BGTOT(3),PP(1),PP(2),
13728 & PP(3),PP(4),PPTOT,PP1(1),PP1(2),PP1(3),PP1(4))
13729 CALL DT_DALTRA(BGTOT(4),-BGTOT(1),-BGTOT(2),-BGTOT(3),PT(1),PT(2),
13730 & PT(3),PT(4),PTTOT,PT1(1),PT1(2),PT1(3),PT1(4))
13731* rotation angles
13732 COD = PP1(3)/PPTOT
13733C SID = SQRT((ONE-COD)*(ONE+COD))
13734 PPT = SQRT(PP1(1)**2+PP1(2)**2)
13735 SID = PPT/PPTOT
13736 COF = ONE
13737 SIF = ZERO
13738 IF(PPTOT*SID.GT.TINY10) THEN
13739 COF = PP1(1)/(SID*PPTOT)
13740 SIF = PP1(2)/(SID*PPTOT)
13741 ANORF = SQRT(COF*COF+SIF*SIF)
13742 COF = COF/ANORF
13743 SIF = SIF/ANORF
13744 ENDIF
13745* check consistency
13746 DO 5 K=1,4
13747 DEV1(K) = ABS(PP1(K)+PT1(K))
13748 5 CONTINUE
13749 DEV1(4) = ABS(DEV1(4)-XMTOT)
13750 IF ((DEV1(1).GT.TINY10).OR.(DEV1(2).GT.TINY10).OR.
13751 & (DEV1(3).GT.TINY10).OR.(DEV1(4).GT.TINY10)) THEN
13752 WRITE(LOUT,1001) DEV1
13753 1001 FORMAT(1X,'DIFEVT: inconsitent Lorentz-transformation! ',
13754 & /,8X,4E12.3)
13755 GOTO 9999
13756 ENDIF
13757
13758* select x-fractions in high-mass diff. interactions
13759 IF ((KP.EQ.2).OR.(KT.EQ.2)) CALL DT_XVALHM(KP,KT)
13760
13761* select diffractive masses
13762* - projectile
13763 IF (KP.EQ.1) THEN
13764 XMPF = DT_XMLMD(XMTOT)
13765 CALL DT_LM2RES(IFP1,IFP2,XMPF,IDPR,IDXPR,IREJ1)
13766 IF (IREJ1.GT.0) GOTO 9999
13767 ELSEIF (KP.EQ.2) THEN
13768 XMPF = DT_XMHMD(XMTOT,IBP,1)
13769 ELSE
13770 XMPF = XMP
13771 ENDIF
13772* - target
13773 IF (KT.EQ.1) THEN
13774 XMTF = DT_XMLMD(XMTOT)
13775 CALL DT_LM2RES(IFT1,IFT2,XMTF,IDTR,IDXTR,IREJ1)
13776 IF (IREJ1.GT.0) GOTO 9999
13777 ELSEIF (KT.EQ.2) THEN
13778 XMTF = DT_XMHMD(XMTOT,IBT,2)
13779 ELSE
13780 XMTF = XMT
13781 ENDIF
13782
13783* kinematical treatment of "two-particle" system (masses - XMPF,XMTF)
13784 XMPF2 = XMPF**2
13785 XMTF2 = XMTF**2
13786 PPBLOB(3) = DT_YLAMB(XMTOT2,XMPF2,XMTF2)/(2.D0*XMTOT)
13787 PPBLOB(4) = SQRT(XMPF2+PPBLOB(3)**2)
13788
13789* select momentum transfer (all t-values used here are <0)
13790* minimum absolute value to produce diffractive masses
13791 TMIN = XMP2+XMPF2-2.0D0*(PP1(4)*PPBLOB(4)-PPTOT*PPBLOB(3))
13792 TT = DT_TDIFF(XMTOT,TMIN,XMPF,KP,XMTF,KT,IREJ1)
13793 IF (IREJ1.GT.0) GOTO 9999
13794
13795* longitudinal momentum of excited/elastically scattered projectile
13796 PPBLOB(3) = (TT-XMP2-XMPF2+2.0D0*PP1(4)*PPBLOB(4))/(2.0D0*PPTOT)
13797* total transverse momentum due to t-selection
13798 PPBLT2 = PPBLOB(4)**2-PPBLOB(3)**2-XMPF2
13799 IF (PPBLT2.LT.ZERO) THEN
13800 WRITE(LOUT,1002) PPBLT2,KP,PP1,XMPF,KT,PT1,XMTF,TT
13801 1002 FORMAT(1X,'DIFEVT: inconsistent transverse momentum! ',
13802 & E12.3,2(/,1X,I2,5E12.3),/,1X,E12.3)
13803 GOTO 9999
13804 ENDIF
13805 CALL DT_DSFECF(SINPHI,COSPHI)
13806 PPBLT = SQRT(PPBLT2)
13807 PPBLOB(1) = COSPHI*PPBLT
13808 PPBLOB(2) = SINPHI*PPBLT
13809
13810* rotate excited/elastically scattered projectile into n-n cms.
13811 CALL DT_MYTRAN(1,PPBLOB(1),PPBLOB(2),PPBLOB(3),COD,SID,COF,SIF,
13812 & XX,YY,ZZ)
13813 PPBLOB(1) = XX
13814 PPBLOB(2) = YY
13815 PPBLOB(3) = ZZ
13816
13817* 4-momentum of excited/elastically scattered target and of exchanged
13818* Pomeron
13819 DO 6 K=1,4
13820 IF (K.LT.4) PTBLOB(K) = -PPBLOB(K)
13821 PPOM1(K) = PP1(K)-PPBLOB(K)
13822 6 CONTINUE
13823 PTBLOB(4) = XMTOT-PPBLOB(4)
13824
13825* Lorentz-transformation back into system of initial diff. collision
13826 CALL DT_DALTRA(BGTOT(4),BGTOT(1),BGTOT(2),BGTOT(3),
13827 & PPBLOB(1),PPBLOB(2),PPBLOB(3),PPBLOB(4),
13828 & PPTOTF,PPF(1),PPF(2),PPF(3),PPF(4))
13829 CALL DT_DALTRA(BGTOT(4),BGTOT(1),BGTOT(2),BGTOT(3),
13830 & PTBLOB(1),PTBLOB(2),PTBLOB(3),PTBLOB(4),
13831 & PTTOTF,PTF(1),PTF(2),PTF(3),PTF(4))
13832 CALL DT_DALTRA(BGTOT(4),BGTOT(1),BGTOT(2),BGTOT(3),
13833 & PPOM1(1),PPOM1(2),PPOM1(3),PPOM1(4),
13834 & PPOMTO,PPOM(1),PPOM(2),PPOM(3),PPOM(4))
13835
13836* store 4-momentum of elastically scattered particle (in single diff.
13837* events)
13838 IF (KP.EQ.0) THEN
13839 DO 7 K=1,4
13840 PSC(K) = PPF(K)
13841 7 CONTINUE
13842 ELSEIF (KT.EQ.0) THEN
13843 DO 8 K=1,4
13844 PSC(K) = PTF(K)
13845 8 CONTINUE
13846 ENDIF
13847
13848* check consistency of kinematical treatment so far
13849 IF (LEMCCK) THEN
13850 CALL DT_EVTEMC(-PPF(1),-PPF(2),-PPF(3),-PPF(4),2,IDUM,IDUM)
13851 CALL DT_EVTEMC(-PTF(1),-PTF(2),-PTF(3),-PTF(4),2,IDUM,IDUM)
13852 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,60,IREJ1)
13853 IF (IREJ1.NE.0) GOTO 9999
13854 ENDIF
13855 DO 9 K=1,4
13856 DEV1(K) = ABS(PP(K)-PPF(K)-PPOM(K))
13857 DEV2(K) = ABS(PT(K)-PTF(K)+PPOM(K))
13858 9 CONTINUE
13859 IF ((DEV1(1).GT.TINY5).OR.(DEV1(2).GT.TINY5).OR.
13860 & (DEV1(3).GT.TINY5).OR.(DEV1(4).GT.TINY5).OR.
13861 & (DEV2(1).GT.TINY5).OR.(DEV2(2).GT.TINY5).OR.
13862 & (DEV2(3).GT.TINY5).OR.(DEV2(4).GT.TINY5)) THEN
13863 WRITE(LOUT,1003) DEV1,DEV2
13864 1003 FORMAT(1X,'DIFEVT: inconsitent kinematical treatment! ',
13865 & 2(/,8X,4E12.3))
13866 GOTO 9999
13867 ENDIF
13868
13869* kinematical treatment for low-mass diffraction
13870 CALL DT_LMKINE(IFP1,IFP2,KP,IFT1,IFT2,KT,IREJ1)
13871 IF (IREJ1.NE.0) GOTO 9999
13872
13873* dump diffractive chains into DTEVT1
13874 CALL DT_DIFPUT(IFP1,IFP2,PP,MOP,KP,IFT1,IFT2,PT,MOT,KT,NCSY,IREJ1)
13875 IF (IREJ1.NE.0) GOTO 9999
13876
13877 RETURN
13878
13879 9999 CONTINUE
13880 IRDIFF(1) = IRDIFF(1)+1
13881 IREJ = 1
13882 RETURN
13883 END
13884
13885*$ CREATE DT_XMHMD.FOR
13886*COPY DT_XMHMD
13887*
13888*===xmhmd==============================================================*
13889*
13890 DOUBLE PRECISION FUNCTION DT_XMHMD(ECM,IB,MODE)
13891
13892************************************************************************
13893* Diffractive mass in high mass single/double diffractive events. *
13894* This version dated 11.02.95 is written by S. Roesler *
13895************************************************************************
13896
13897 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13898 SAVE
13899 PARAMETER ( LINP = 10 ,
13900 & LOUT = 6 ,
13901 & LDAT = 9 )
13902 PARAMETER (OHALF=0.5D0,ONE=1.0D0,ZERO=0.0D0)
13903
13904* kinematics of diffractive interactions (DTUNUC 1.x)
13905 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
13906 & PPF(4),PTF(4),
13907 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
13908 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
13909
13910C DATA XCOLOW /0.05D0/
13911 DATA XCOLOW /0.15D0/
13912
13913 DT_XMHMD = ZERO
13914 XH = XPH(2)
13915 IF (MODE.EQ.2) XH = XTH(2)
13916
13917* minimum Pomeron-x for high-mass diffraction
13918* (adjusted to get a smooth transition between HM and LM component)
13919 R = DT_RNDM(XH)
13920 XDIMIN = (3.0D0+400.0D0*R**2)/(XH*ECM**2)
13921 IF (ECM.LE.300.0D0) THEN
13922 RR = (1.0D0-EXP(-((ECM/140.0D0)**4)))
13923 XDIMIN = (3.0D0+400.0D0*(R**2)*RR)/(XH*ECM**2)
13924 ENDIF
13925* maximum Pomeron-x for high-mass diffraction
13926* (coherence condition, adjusted to fit to experimental data)
13927 IF (IB.NE.0) THEN
13928* baryon-diffraction
13929 XDIMAX = XCOLOW*(1.0D0+EXP(-((ECM/420.0D0)**2)))
13930 ELSE
13931* meson-diffraction
13932 XDIMAX = XCOLOW*(1.0D0+4.0D0*EXP(-((ECM/420.0D0)**2)))
13933 ENDIF
13934* check boundaries
13935 IF (XDIMIN.GE.XDIMAX) THEN
13936 XDIMIN = OHALF*XDIMAX
13937 ENDIF
13938
13939 KLOOP = 0
13940 1 CONTINUE
13941 KLOOP = KLOOP+1
13942 IF (KLOOP.GT.20) RETURN
13943* sample Pomeron-x from 1/x-distribution (critical Pomeron)
13944 XDIFF = DT_SAMPEX(XDIMIN,XDIMAX)
13945* corr. diffr. mass
13946 DT_XMHMD = ECM*SQRT(XDIFF)
13947 IF (DT_XMHMD.LT.2.5D0) GOTO 1
13948
13949 RETURN
13950 END
13951
13952*$ CREATE DT_XMLMD.FOR
13953*COPY DT_XMLMD
13954*
13955*===xmlmd==============================================================*
13956*
13957 DOUBLE PRECISION FUNCTION DT_XMLMD(ECM)
13958
13959************************************************************************
13960* Diffractive mass in high mass single/double diffractive events. *
13961* This version dated 11.02.95 is written by S. Roesler *
13962************************************************************************
13963
13964 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
13965 SAVE
13966 PARAMETER ( LINP = 10 ,
13967 & LOUT = 6 ,
13968 & LDAT = 9 )
13969
13970* minimum Pomeron-x for low-mass diffraction
13971C AMO = 1.5D0
13972 AMO = 2.0D0
13973* maximum Pomeron-x for low-mass diffraction
13974* (adjusted to get a smooth transition between HM and LM component)
13975 R = DT_RNDM(AMO)
13976 SAM = 1.0D0
13977 IF (ECM.LE.300.0D0) SAM = 1.0D0-EXP(-((ECM/200.0D0)**4))
13978 R = DT_RNDM(AMO)*SAM
13979 AMAX= (1.0D0-SAM)*SQRT(0.1D0*ECM**2)+SAM*SQRT(400.0D0)
13980 AMU = R*SQRT(100.0D0)+(1.0D0-R)*AMAX
13981
13982* selection of diffractive mass
13983* (adjusted to get a smooth transition between HM and LM component)
13984 R = DT_RNDM(AMU)
13985 IF (ECM.LE.50.0D0) THEN
13986 DT_XMLMD = AMO*(AMU/AMO)**R
13987 ELSE
13988 A = 0.7D0
13989 IF (ECM.LE.300.0D0) A = 0.7D0*(1.0D0-EXP(-((ECM/100.0D0)**2)))
13990 DT_XMLMD = 1.0D0/((R/(AMU**A)+(1.0D0-R)/(AMO**A))**(1.0D0/A))
13991 ENDIF
13992
13993 RETURN
13994 END
13995
13996*$ CREATE DT_TDIFF.FOR
13997*COPY DT_TDIFF
13998*
13999*===tdiff==============================================================*
14000*
14001 DOUBLE PRECISION FUNCTION DT_TDIFF(ECM,TMIN,XM1I,K1,XM2I,K2,IREJ)
14002
14003************************************************************************
14004* t-selection for single/double diffractive interactions. *
14005* ECM cm. energy *
14006* TMIN minimum momentum transfer to produce diff. masses *
14007* XM1/XM2 diffractively produced masses *
14008* (for single diffraction XM2 is obsolete) *
14009* K1/K2= 0 not excited *
14010* = 1 low-mass excitation *
14011* = 2 high-mass excitation *
14012* This version dated 11.02.95 is written by S. Roesler *
14013************************************************************************
14014
14015 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14016 SAVE
14017 PARAMETER ( LINP = 10 ,
14018 & LOUT = 6 ,
14019 & LDAT = 9 )
14020 PARAMETER (ZERO=0.0D0)
14021
14022 PARAMETER ( BTP0 = 3.7D0,
14023 & ALPHAP = 0.24D0 )
14024
14025 IREJ = 0
14026 NCLOOP = 0
14027 DT_TDIFF = ZERO
14028
14029 IF (K1.GT.0) THEN
14030 XM1 = XM1I
14031 XM2 = XM2I
14032 ELSE
14033 XM1 = XM2I
14034 ENDIF
14035 XDI = (XM1/ECM)**2
14036 IF ((K1.EQ.0).OR.(K2.EQ.0)) THEN
14037* slope for single diffraction
14038 SLOPE = BTP0-2.0D0*ALPHAP*LOG(XDI)
14039 ELSE
14040* slope for double diffraction
14041 SLOPE = -2.0D0*ALPHAP*LOG(XDI*XM2**2)
14042 ENDIF
14043
14044 1 CONTINUE
14045 NCLOOP = NCLOOP+1
14046 IF (MOD(NCLOOP,1000).EQ.0) GOTO 9999
14047 Y = DT_RNDM(XDI)
14048 T = -LOG(1.0D0-Y)/SLOPE
14049 IF (ABS(T).LE.ABS(TMIN)) GOTO 1
14050 DT_TDIFF = -ABS(T)
14051
14052 RETURN
14053
14054 9999 CONTINUE
14055 WRITE(LOUT,1000) ECM,TMIN,XM1I,XM2I,K1,K2
14056 1000 FORMAT(1X,'DT_TDIFF: t-selection rejected!',/,
14057 & 1X,'ECM = ',E12.3,' TMIN = ',E12.2,/,1X,'XM1I = ',
14058 & E12.3,' XM2I = ',E12.3,' K1 = ',I2,' K2 = ',I2)
14059 IREJ = 1
14060 RETURN
14061 END
14062
14063*$ CREATE DT_XVALHM.FOR
14064*COPY DT_XVALHM
14065*
14066*===xvalhm=============================================================*
14067*
14068 SUBROUTINE DT_XVALHM(KP,KT)
14069
14070************************************************************************
14071* Sampling of parton x-values in high-mass diffractive interactions. *
14072* This version dated 12.02.95 is written by S. Roesler *
14073************************************************************************
14074
14075 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14076 SAVE
14077 PARAMETER ( LINP = 10 ,
14078 & LOUT = 6 ,
14079 & LDAT = 9 )
14080 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0,TINY2=1.0D-2)
14081
14082* kinematics of diffractive interactions (DTUNUC 1.x)
14083 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14084 & PPF(4),PTF(4),
14085 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14086 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14087* various options for treatment of partons (DTUNUC 1.x)
14088* (chain recombination, Cronin,..)
14089 LOGICAL LCO2CR,LINTPT
14090 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
14091 & LCO2CR,LINTPT
14092
14093 DATA UNON,XVQTHR /2.0D0,0.8D0/
14094
14095 IF (KP.EQ.2) THEN
14096* x-fractions of projectile valence partons
14097 1 CONTINUE
14098 XPH(1) = DT_DBETAR(OHALF,UNON)
14099 IF (XPH(1).GE.XVQTHR) GOTO 1
14100 XPH(2) = ONE-XPH(1)
14101* x-fractions of Pomeron q-aq-pair
14102 XPOLO = TINY2
14103 XPOHI = ONE-TINY2
14104 XPPO(1) = DT_SAMPEX(XPOLO,XPOHI)
14105 XPPO(2) = ONE-XPPO(1)
14106* flavors of Pomeron q-aq-pair
14107 IFLAV = INT(ONE+DT_RNDM(UNON)*(2.0D0+SEASQ))
14108 IFPPO(1) = IFLAV
14109 IFPPO(2) = -IFLAV
14110 IF (DT_RNDM(UNON).GT.OHALF) THEN
14111 IFPPO(1) = -IFLAV
14112 IFPPO(2) = IFLAV
14113 ENDIF
14114 ENDIF
14115
14116 IF (KT.EQ.2) THEN
14117* x-fractions of projectile target partons
14118 2 CONTINUE
14119 XTH(1) = DT_DBETAR(OHALF,UNON)
14120 IF (XTH(1).GE.XVQTHR) GOTO 2
14121 XTH(2) = ONE-XTH(1)
14122* x-fractions of Pomeron q-aq-pair
14123 XPOLO = TINY2
14124 XPOHI = ONE-TINY2
14125 XTPO(1) = DT_SAMPEX(XPOLO,XPOHI)
14126 XTPO(2) = ONE-XTPO(1)
14127* flavors of Pomeron q-aq-pair
14128 IFLAV = INT(ONE+DT_RNDM(XPOLO)*(2.0D0+SEASQ))
14129 IFTPO(1) = IFLAV
14130 IFTPO(2) = -IFLAV
14131 IF (DT_RNDM(XPOLO).GT.OHALF) THEN
14132 IFTPO(1) = -IFLAV
14133 IFTPO(2) = IFLAV
14134 ENDIF
14135 ENDIF
14136
14137 RETURN
14138 END
14139
14140*$ CREATE DT_LM2RES.FOR
14141*COPY DT_LM2RES
14142*
14143*===lm2res=============================================================*
14144*
14145 SUBROUTINE DT_LM2RES(IF1,IF2,XM,IDR,IDXR,IREJ)
14146
14147************************************************************************
14148* Check low-mass diffractive excitation for resonance mass. *
14149* (input) IF1/2 PDG-indizes of valence partons *
14150* (in/out) XM diffractive mass requested/corrected *
14151* (output) IDR/IDXR id./BAMJET-index of resonance *
14152* This version dated 12.02.95 is written by S. Roesler *
14153************************************************************************
14154
14155 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14156 SAVE
14157 PARAMETER ( LINP = 10 ,
14158 & LOUT = 6 ,
14159 & LDAT = 9 )
14160 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14161
14162* kinematics of diffractive interactions (DTUNUC 1.x)
14163 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14164 & PPF(4),PTF(4),
14165 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14166 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14167
14168 IREJ = 0
14169 IF1B = 0
14170 IF2B = 0
14171 XMI = XM
14172
14173* BAMJET indices of partons
14174 IF1A = IDT_IPDG2B(IF1,1,2)
14175 IF (ABS(IF1).GE.1000) IF1B = IDT_IPDG2B(IF1,2,2)
14176 IF2A = IDT_IPDG2B(IF2,1,2)
14177 IF (ABS(IF2).GE.1000) IF2B = IDT_IPDG2B(IF2,2,2)
14178
14179* get kind of chains (1 - q-aq, 2 - q-qq/aq-aqaq)
14180 IDCH = 2
14181 IF ((IF1B.EQ.0).AND.(IF2B.EQ.0)) IDCH = 1
14182
14183* check for resonance mass
14184 CALL DT_CH2RES(IF1A,IF1B,IF2A,IF2B,IDR,IDXR,XMI,XMN,IDCH,IREJ1)
14185 IF (IREJ1.NE.0) GOTO 9999
14186
14187 XM = XMN
14188 RETURN
14189
14190 9999 CONTINUE
14191 IREJ = 1
14192 RETURN
14193 END
14194
14195*$ CREATE DT_LMKINE.FOR
14196*COPY DT_LMKINE
14197*
14198*===lmkine=============================================================*
14199*
14200 SUBROUTINE DT_LMKINE(IFP1,IFP2,KP,IFT1,IFT2,KT,IREJ)
14201
14202************************************************************************
14203* Kinematical treatment of low-mass excitations. *
14204* This version dated 12.02.95 is written by S. Roesler *
14205************************************************************************
14206
14207 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14208 SAVE
14209 PARAMETER ( LINP = 10 ,
14210 & LOUT = 6 ,
14211 & LDAT = 9 )
14212 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14213
14214* flags for input different options
14215 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
14216 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
14217 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
14218* kinematics of diffractive interactions (DTUNUC 1.x)
14219 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14220 & PPF(4),PTF(4),
14221 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14222 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14223
14224 DIMENSION P1(4),P2(4)
14225
14226 IREJ = 0
14227
14228 IF (KP.EQ.1) THEN
14229 PABS = SQRT(PPF(1)**2+PPF(2)**2+PPF(3)**2)
14230 POE = PPF(4)/PABS
14231 FAC1 = OHALF*(POE+ONE)
14232 FAC2 = -OHALF*(POE-ONE)
14233 DO 1 K=1,3
14234 PPLM1(K) = FAC1*PPF(K)
14235 PPLM2(K) = FAC2*PPF(K)
14236 1 CONTINUE
14237 PPLM1(4) = FAC1*PABS
14238 PPLM2(4) = -FAC2*PABS
14239 IF (IMSHL.EQ.1) THEN
14240 XM1 = PYMASS(IFP1)
14241 XM2 = PYMASS(IFP2)
14242 CALL DT_MASHEL(PPLM1,PPLM2,XM1,XM2,P1,P2,IREJ1)
14243 IF (IREJ1.NE.0) GOTO 9999
14244 DO 2 K=1,4
14245 PPLM1(K) = P1(K)
14246 PPLM2(K) = P2(K)
14247 2 CONTINUE
14248 ENDIF
14249 ENDIF
14250
14251 IF (KT.EQ.1) THEN
14252 PABS = SQRT(PTF(1)**2+PTF(2)**2+PTF(3)**2)
14253 POE = PTF(4)/PABS
14254 FAC1 = OHALF*(POE+ONE)
14255 FAC2 = -OHALF*(POE-ONE)
14256 DO 3 K=1,3
14257 PTLM2(K) = FAC1*PTF(K)
14258 PTLM1(K) = FAC2*PTF(K)
14259 3 CONTINUE
14260 PTLM2(4) = FAC1*PABS
14261 PTLM1(4) = -FAC2*PABS
14262 IF (IMSHL.EQ.1) THEN
14263 XM1 = PYMASS(IFT1)
14264 XM2 = PYMASS(IFT2)
14265 CALL DT_MASHEL(PTLM1,PTLM2,XM1,XM2,P1,P2,IREJ1)
14266 IF (IREJ1.NE.0) GOTO 9999
14267 DO 4 K=1,4
14268 PTLM1(K) = P1(K)
14269 PTLM2(K) = P2(K)
14270 4 CONTINUE
14271 ENDIF
14272 ENDIF
14273
14274 RETURN
14275
14276 9999 CONTINUE
14277 WRITE(LOUT,'(A)') 'LMKINE: kinematical treatment rejected'
14278 IREJ = 1
14279 RETURN
14280 END
14281
14282*$ CREATE DT_DIFINI.FOR
14283*COPY DT_DIFINI
14284*
14285*===difini=============================================================*
14286*
14287 SUBROUTINE DT_DIFINI
14288
14289************************************************************************
14290* Initialization of common /DTDIKI/ *
14291* This version dated 12.02.95 is written by S. Roesler *
14292************************************************************************
14293
14294 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14295 SAVE
14296 PARAMETER ( LINP = 10 ,
14297 & LOUT = 6 ,
14298 & LDAT = 9 )
14299 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14300
14301* kinematics of diffractive interactions (DTUNUC 1.x)
14302 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14303 & PPF(4),PTF(4),
14304 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14305 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14306
14307 DO 1 K=1,4
14308 PPOM(K) = ZERO
14309 PSC(K) = ZERO
14310 PPF(K) = ZERO
14311 PTF(K) = ZERO
14312 PPLM1(K) = ZERO
14313 PPLM2(K) = ZERO
14314 PTLM1(K) = ZERO
14315 PTLM2(K) = ZERO
14316 1 CONTINUE
14317 DO 2 K=1,2
14318 XPH(K) = ZERO
14319 XPPO(K) = ZERO
14320 XTH(K) = ZERO
14321 XTPO(K) = ZERO
14322 IFPPO(K) = 0
14323 IFTPO(K) = 0
14324 2 CONTINUE
14325 IDPR = 0
14326 IDXPR = 0
14327 IDTR = 0
14328 IDXTR = 0
14329
14330 RETURN
14331 END
14332
14333*$ CREATE DT_DIFPUT.FOR
14334*COPY DT_DIFPUT
14335*
14336*===difput=============================================================*
14337*
14338 SUBROUTINE DT_DIFPUT(IFP1,IFP2,PP,MOP,KP,IFT1,IFT2,PT,MOT,KT,NCSY,
14339 & IREJ)
14340
14341************************************************************************
14342* Dump diffractive chains into DTEVT1 *
14343* This version dated 12.02.95 is written by S. Roesler *
14344************************************************************************
14345
14346 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14347 SAVE
14348 PARAMETER ( LINP = 10 ,
14349 & LOUT = 6 ,
14350 & LDAT = 9 )
14351 PARAMETER (ZERO=0.0D0,OHALF=0.5D0,ONE=1.0D0)
14352
14353 LOGICAL LCHK
14354
14355* kinematics of diffractive interactions (DTUNUC 1.x)
14356 COMMON /DTDIKI/ XPH(2),XPPO(2),XTH(2),XTPO(2),PPOM(4),PSC(4),
14357 & PPF(4),PTF(4),
14358 & PPLM1(4),PPLM2(4),PTLM1(4),PTLM2(4),
14359 & IDPR,IDXPR,IDTR,IDXTR,IFPPO(2),IFTPO(2)
14360* event history
14361 PARAMETER (NMXHKK=200000)
14362 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
14363 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
14364 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
14365* extended event history
14366 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
14367 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
14368 & IHIST(2,NMXHKK)
14369* rejection counter
14370 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
14371 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
14372 & IREXCI(3),IRDIFF(2),IRINC
14373
14374 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4),PCH(4),PP(4),PT(4),
14375 & P1(4),P2(4),P3(4),P4(4)
14376
14377 IREJ = 0
14378
14379 IF (KP.EQ.1) THEN
14380 DO 1 K=1,4
14381 PCH(K) = PPLM1(K)+PPLM2(K)
14382 1 CONTINUE
14383 ID1 = IFP1
14384 ID2 = IFP2
14385 IF (DT_RNDM(PT).GT.OHALF) THEN
14386 ID1 = IFP2
14387 ID2 = IFP1
14388 ENDIF
14389 CALL DT_EVTPUT(21,ID1,MOP,0,PPLM1(1),PPLM1(2),PPLM1(3),
14390 & PPLM1(4),0,0,0)
14391 CALL DT_EVTPUT(21,ID2,MOP,0,PPLM2(1),PPLM2(2),PPLM2(3),
14392 & PPLM2(4),0,0,0)
14393 CALL DT_EVTPUT(281,88888,-2,-1,PCH(1),PCH(2),PCH(3),PCH(4),
14394 & IDPR,IDXPR,8)
14395 ELSEIF (KP.EQ.2) THEN
14396 DO 2 K=1,4
14397 PP1(K) = XPH(1)*PP(K)
14398 PP2(K) = XPH(2)*PP(K)
14399 PT1(K) = -XPPO(1)*PPOM(K)
14400 PT2(K) = -XPPO(2)*PPOM(K)
14401 2 CONTINUE
14402 CALL DT_CHKCSY(IFP1,IFPPO(1),LCHK)
14403 XM1 = ZERO
14404 XM2 = ZERO
14405 IF (LCHK) THEN
14406 CALL DT_MASHEL(PP1,PT1,XM1,XM2,P1,P2,IREJ1)
14407 IF (IREJ1.NE.0) GOTO 9999
14408 CALL DT_MASHEL(PP2,PT2,XM1,XM2,P3,P4,IREJ1)
14409 IF (IREJ1.NE.0) GOTO 9999
14410 DO 3 K=1,4
14411 PP1(K) = P1(K)
14412 PT1(K) = P2(K)
14413 PP2(K) = P3(K)
14414 PT2(K) = P4(K)
14415 3 CONTINUE
14416 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
14417 & 0,0,8)
14418 CALL DT_EVTPUT(-41,IFPPO(1),MOT,0,PT1(1),PT1(2),PT1(3),
14419 & PT1(4),0,0,8)
14420 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
14421 & 0,0,8)
14422 CALL DT_EVTPUT(-41,IFPPO(2),MOT,0,PT2(1),PT2(2),PT2(3),
14423 & PT2(4),0,0,8)
14424 ELSE
14425 CALL DT_MASHEL(PP1,PT2,XM1,XM2,P1,P2,IREJ1)
14426 IF (IREJ1.NE.0) GOTO 9999
14427 CALL DT_MASHEL(PP2,PT1,XM1,XM2,P3,P4,IREJ1)
14428 IF (IREJ1.NE.0) GOTO 9999
14429 DO 4 K=1,4
14430 PP1(K) = P1(K)
14431 PT2(K) = P2(K)
14432 PP2(K) = P3(K)
14433 PT1(K) = P4(K)
14434 4 CONTINUE
14435 CALL DT_EVTPUT(-21,IFP1,MOP,0,PP1(1),PP1(2),PP1(3),PP1(4),
14436 & 0,0,8)
14437 CALL DT_EVTPUT(-41,IFPPO(2),MOT,0,PT2(1),PT2(2),PT2(3),
14438 & PT2(4),0,0,8)
14439 CALL DT_EVTPUT(-21,IFP2,MOP,0,PP2(1),PP2(2),PP2(3),PP2(4),
14440 & 0,0,8)
14441 CALL DT_EVTPUT(-41,IFPPO(1),MOT,0,PT1(1),PT1(2),PT1(3),
14442 & PT1(4),0,0,8)
14443 ENDIF
14444 NCSY = NCSY+1
14445 ELSE
14446 CALL DT_EVTPUT(1,IDHKK(MOP),MOP,0,PSC(1),PSC(2),PSC(3),PSC(4),
14447 & 0,0,0)
14448 ENDIF
14449
14450 IF (KT.EQ.1) THEN
14451 DO 5 K=1,4
14452 PCH(K) = PTLM1(K)+PTLM2(K)
14453 5 CONTINUE
14454 ID1 = IFT1
14455 ID2 = IFT2
14456 IF (DT_RNDM(PT).GT.OHALF) THEN
14457 ID1 = IFT2
14458 ID2 = IFT1
14459 ENDIF
14460 CALL DT_EVTPUT(22,ID1,MOT,0,PTLM1(1),PTLM1(2),PTLM1(3),
14461 & PTLM1(4),0,0,0)
14462 CALL DT_EVTPUT(22,ID2,MOT,0,PTLM2(1),PTLM2(2),PTLM2(3),
14463 & PTLM2(4),0,0,0)
14464 CALL DT_EVTPUT(281,88888,-2,-1,PCH(1),PCH(2),PCH(3),PCH(4),
14465 & IDTR,IDXTR,8)
14466 ELSEIF (KT.EQ.2) THEN
14467 DO 6 K=1,4
14468 PP1(K) = XTPO(1)*PPOM(K)
14469 PP2(K) = XTPO(2)*PPOM(K)
14470 PT1(K) = XTH(2)*PT(K)
14471 PT2(K) = XTH(1)*PT(K)
14472 6 CONTINUE
14473 CALL DT_CHKCSY(IFTPO(1),IFT1,LCHK)
14474 XM1 = ZERO
14475 XM2 = ZERO
14476 IF (LCHK) THEN
14477 CALL DT_MASHEL(PP1,PT1,XM1,XM2,P1,P2,IREJ1)
14478 IF (IREJ1.NE.0) GOTO 9999
14479 CALL DT_MASHEL(PP2,PT2,XM1,XM2,P3,P4,IREJ1)
14480 IF (IREJ1.NE.0) GOTO 9999
14481 DO 7 K=1,4
14482 PP1(K) = P1(K)
14483 PT1(K) = P2(K)
14484 PP2(K) = P3(K)
14485 PT2(K) = P4(K)
14486 7 CONTINUE
14487 CALL DT_EVTPUT(-41,IFTPO(1),MOP,0,PP1(1),PP1(2),PP1(3),
14488 & PP1(4),0,0,8)
14489 CALL DT_EVTPUT(-21,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
14490 & 0,0,8)
14491 CALL DT_EVTPUT(-41,IFTPO(2),MOP,0,PP2(1),PP2(2),PP2(3),
14492 & PP2(4),0,0,8)
14493 CALL DT_EVTPUT(-21,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
14494 & 0,0,8)
14495 ELSE
14496 CALL DT_MASHEL(PP1,PT2,XM1,XM2,P1,P2,IREJ1)
14497 IF (IREJ1.NE.0) GOTO 9999
14498 CALL DT_MASHEL(PP2,PT1,XM1,XM2,P3,P4,IREJ1)
14499 IF (IREJ1.NE.0) GOTO 9999
14500 DO 8 K=1,4
14501 PP1(K) = P1(K)
14502 PT2(K) = P2(K)
14503 PP2(K) = P3(K)
14504 PT1(K) = P4(K)
14505 8 CONTINUE
14506 CALL DT_EVTPUT(-41,IFTPO(1),MOP,0,PP1(1),PP1(2),PP1(3),
14507 & PP1(4),0,0,8)
14508 CALL DT_EVTPUT(-21,IFT2,MOT,0,PT2(1),PT2(2),PT2(3),PT2(4),
14509 & 0,0,8)
14510 CALL DT_EVTPUT(-41,IFTPO(2),MOP,0,PP2(1),PP2(2),PP2(3),
14511 & PP2(4),0,0,8)
14512 CALL DT_EVTPUT(-21,IFT1,MOT,0,PT1(1),PT1(2),PT1(3),PT1(4),
14513 & 0,0,8)
14514 ENDIF
14515 NCSY = NCSY+1
14516 ELSE
14517 CALL DT_EVTPUT(1,IDHKK(MOT),MOT,0,PSC(1),PSC(2),PSC(3),PSC(4),
14518 & 0,0,0)
14519 ENDIF
14520
14521 RETURN
14522
14523 9999 CONTINUE
14524 IRDIFF(2) = IRDIFF(2)+1
14525 IREJ = 1
14526 RETURN
14527 END
14528
14529*$ CREATE DT_EVTFRG.FOR
14530*COPY DT_EVTFRG
14531*
14532*===evtfrg=============================================================*
14533*
14534 SUBROUTINE DT_EVTFRG(KMODE,NFRG,NPYMEM,IREJ)
14535
14536************************************************************************
14537* Hadronization of chains in DTEVT1. *
14538* *
14539* Input: *
14540* KMODE = 1 hadronization of PHOJET-chains (id=77xxx) *
14541* = 2 hadronization of DTUNUC-chains (id=88xxx) *
14542* NFRG if KMODE = 1 : upper index of PHOJET-scatterings to be *
14543* hadronized with one PYEXEC call *
14544* if KMODE = 2 : max. number of DTUNUC-chains to be hadronized *
14545* with one PYEXEC call *
14546* Output: *
14547* NPYMEM number of entries in JETSET-common after hadronization *
14548* IREJ rejection flag *
14549* *
14550* This version dated 17.09.00 is written by S. Roesler *
14551************************************************************************
14552
14553 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14554 SAVE
14555 PARAMETER ( LINP = 10 ,
14556 & LOUT = 6 ,
14557 & LDAT = 9 )
14558 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,TINY1=1.0D-1)
14559 PARAMETER (ONE=1.0D0,ZERO=0.0D0)
14560
14561 LOGICAL LACCEP
14562
14563 PARAMETER (MXJOIN=200)
14564
14565* event history
14566 PARAMETER (NMXHKK=200000)
14567 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
14568 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
14569 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
14570* extended event history
14571 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
14572 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
14573 & IHIST(2,NMXHKK)
14574* flags for input different options
14575 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
14576 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
14577 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
14578* statistics
14579 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
14580 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
14581 & ICEVTG(8,0:30)
14582* flags for diffractive interactions (DTUNUC 1.x)
14583 COMMON /DTFLG3/ ISINGD,IDOUBD,IFLAGD,IDIFF
14584* nucleon-nucleon event-generator
14585 CHARACTER*8 CMODEL
14586 LOGICAL LPHOIN
14587 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
14588* phojet
14589C model switches and parameters
14590 CHARACTER*8 MDLNA
14591 INTEGER ISWMDL,IPAMDL
14592 DOUBLE PRECISION PARMDL
14593 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
14594* jetset
14595 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
1ddc441c 14596 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 14597 PARAMETER (MAXLND=4000)
14598 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
14599 INTEGER PYK
14600 DIMENSION IJOIN(MXJOIN),ISJOIN(MXJOIN),IHISMO(8000),IFLG(4000)
1ddc441c 14601 INTEGER PYCOMP
9aaba0d6 14602 MODE = KMODE
14603 ISTSTG = 7
14604 IF (MODE.NE.1) ISTSTG = 8
14605 IREJ = 0
14606
14607 IP = 0
14608 ISH = 0
14609 INIEMC = 1
14610 NEND = NHKK
14611 NACCEP = 0
14612 IFRG = 0
14613 IF (NPOINT(4).LE.NPOINT(3)) NPOINT(4) = NHKK+1
14614 DO 10 I=NPOINT(3),NEND
14615* sr 14.02.00: seems to be not necessary anymore, commented
14616C LACCEP = ((NOBAM(I).EQ.0).AND.(MODE.EQ.1)).OR.
14617C & ((NOBAM(I).NE.0).AND.(MODE.EQ.2))
14618 LACCEP = .TRUE.
14619* pick up chains from dtevt1
14620 IDCHK = IDHKK(I)/10000
14621 IF ((IDCHK.EQ.ISTSTG).AND.LACCEP) THEN
14622 IF (IDCHK.EQ.7) THEN
14623 IPJE = IDHKK(I)-IDCHK*10000
14624 IF (IPJE.NE.IFRG) THEN
14625 IFRG = IPJE
14626 IF (IFRG.GT.NFRG) GOTO 16
14627 ENDIF
14628 ELSE
14629 IPJE = 1
14630 IFRG = IFRG+1
14631 IF (IFRG.GT.NFRG) THEN
14632 NFRG = -1
14633 GOTO 16
14634 ENDIF
14635 ENDIF
14636* statistics counter
14637c IF (IDCH(I).LE.8)
14638c & ICCHAI(2,IDCH(I)) = ICCHAI(2,IDCH(I))+1
14639c IF (IDRES(I).NE.0) ICRES(IDCH(I)) = ICRES(IDCH(I))+1
14640* special treatment for small chains already corrected to hadrons
14641 IF (IDRES(I).NE.0) THEN
14642 IF (IDRES(I).EQ.11) THEN
14643 ID = IDXRES(I)
14644 ELSE
14645 ID = IDT_IPDGHA(IDXRES(I))
14646 ENDIF
14647 IF (LEMCCK) THEN
14648 CALL DT_EVTEMC(PHKK(1,I),PHKK(2,I),PHKK(3,I),
14649 & PHKK(4,I),INIEMC,IDUM,IDUM)
14650 INIEMC = 2
14651 ENDIF
14652 IP = IP+1
14653 IF (IP.GT.MSTU(4)) STOP ' NEWFRA 1: IP.GT.MSTU(4) !'
14654 P(IP,1) = PHKK(1,I)
14655 P(IP,2) = PHKK(2,I)
14656 P(IP,3) = PHKK(3,I)
14657 P(IP,4) = PHKK(4,I)
14658 P(IP,5) = PHKK(5,I)
14659 K(IP,1) = 1
14660 K(IP,2) = ID
14661 K(IP,3) = 0
14662 K(IP,4) = 0
14663 K(IP,5) = 0
14664 IHIST(2,I) = 10000*IPJE+IP
14665 IF (IHIST(1,I).LE.-100) THEN
14666 ISH = ISH+1
14667 IF (ISH.GT.MXJOIN) STOP 'ISH > MXJOIN !'
14668 ISJOIN(ISH) = I
14669 ENDIF
14670 N = IP
14671 IHISMO(IP) = I
14672 ELSE
14673 IJ = 0
14674 DO 11 KK=JMOHKK(1,I),JMOHKK(2,I)
14675 IF (LEMCCK) THEN
14676 CALL DT_EVTEMC(PHKK(1,KK),PHKK(2,KK),PHKK(3,KK),
14677 & PHKK(4,KK),INIEMC,IDUM,IDUM)
14678 CALL DT_EVTFLC(IDHKK(KK),1,INIEMC,IDUM,IDUM)
14679 INIEMC = 2
14680 ENDIF
14681 ID = IDHKK(KK)
14682 IF (ID.EQ.0) ID = 21
14683c PTOT = SQRT(PHKK(1,KK)**2+PHKK(2,KK)**2+PHKK(3,KK)**2)
14684c AM0 = SQRT(ABS((PHKK(4,KK)-PTOT)*(PHKK(4,KK)+PTOT)))
14685c AMRQ = PYMASS(ID)
14686c AMDIF2 = (AM0-AMRQ)*(AM0+AMRQ)
14687c IF ((ABS(AMDIF2).GT.TINY3).AND.(PTOT.GT.ZERO).AND.
14688c & (ABS(IDIFF).EQ.0)) THEN
14689cC WRITE(LOUT,*)'here: ',NEVHKK,AM0,AMRQ
14690c DELTA = -AMDIF2/(2.0D0*(PHKK(4,KK)+PTOT))
14691c PHKK(4,KK) = PHKK(4,KK)+DELTA
14692c PTOT1 = PTOT-DELTA
14693c PHKK(1,KK) = PHKK(1,KK)*PTOT1/PTOT
14694c PHKK(2,KK) = PHKK(2,KK)*PTOT1/PTOT
14695c PHKK(3,KK) = PHKK(3,KK)*PTOT1/PTOT
14696c PHKK(5,KK) = AMRQ
14697c ENDIF
14698 IP = IP+1
14699 IF (IP.GT.MSTU(4)) STOP ' NEWFRA 2: IP.GT.MSTU(4) !'
14700 P(IP,1) = PHKK(1,KK)
14701 P(IP,2) = PHKK(2,KK)
14702 P(IP,3) = PHKK(3,KK)
14703 P(IP,4) = PHKK(4,KK)
14704 P(IP,5) = PHKK(5,KK)
14705 K(IP,1) = 1
14706 K(IP,2) = ID
14707 K(IP,3) = 0
14708 K(IP,4) = 0
14709 K(IP,5) = 0
14710 IHIST(2,KK) = 10000*IPJE+IP
14711 IF (IHIST(1,KK).LE.-100) THEN
14712 ISH = ISH+1
14713 IF (ISH.GT.MXJOIN) STOP 'ISH > MXJOIN !'
14714 ISJOIN(ISH) = KK
14715 ENDIF
14716 IJ = IJ+1
14717 IF (IJ.GT.MXJOIN) STOP 'IJ > MXJOIN !'
14718 IJOIN(IJ) = IP
14719 IHISMO(IP) = I
14720 11 CONTINUE
14721 N = IP
14722* join the two-parton system
14723 CALL PYJOIN(IJ,IJOIN)
14724 ENDIF
14725 IDHKK(I) = 99999
14726 ENDIF
14727 10 CONTINUE
14728 16 CONTINUE
14729 N = IP
14730
14731 IF (IP.GT.0) THEN
14732
14733* final state parton shower
14734 DO 136 NPJE=1,IPJE
14735 IF ((MCGENE.EQ.2).AND.(ISH.GE.2)) THEN
14736 IF ((ISWMDL(8).EQ.1).OR.(ISWMDL(8).EQ.3)) THEN
14737 DO 130 K1=1,ISH
14738 IF (ISJOIN(K1).EQ.0) GOTO 130
14739 I = ISJOIN(K1)
14740 IF ((IPAMDL(102).EQ.1).AND.(IHIST(1,I).NE.-100))
14741 & GOTO 130
14742 IH1 = IHIST(2,I)/10000
14743 IF (IH1.NE.NPJE) GOTO 130
14744 IH1 = IHIST(2,I)-IH1*10000
14745 DO 135 K2=K1+1,ISH
14746 IF (ISJOIN(K2).EQ.0) GOTO 135
14747 II = ISJOIN(K2)
14748 IH2 = IHIST(2,II)/10000
14749 IF (IH2.NE.NPJE) GOTO 135
14750 IH2 = IHIST(2,II)-IH2*10000
14751 IF (IHIST(1,I).EQ.IHIST(1,II)) THEN
14752 PT1 = SQRT(PHKK(1,II)**2+PHKK(2,II)**2)
14753 PT2 = SQRT(PHKK(1, I)**2+PHKK(2, I)**2)
14754 RQLUN = MIN(PT1,PT2)
14755 CALL PYSHOW(IH1,IH2,RQLUN)
14756
14757 ISJOIN(K1) = 0
14758 ISJOIN(K2) = 0
14759 GOTO 130
14760 ENDIF
14761 135 CONTINUE
14762 130 CONTINUE
14763 ENDIF
14764 ENDIF
14765 136 CONTINUE
14766
14767 CALL DT_INITJS(MODE)
14768* hadronization
14769
14770 CALL PYEXEC
14771
14772 IF (MSTU(24).NE.0) THEN
14773 WRITE(LOUT,*) ' JETSET-reject at event',
14774 & NEVHKK,MSTU(24),KMODE
14775C CALL DT_EVTOUT(4)
14776
14777C CALL PYLIST(2)
14778
14779 GOTO 9999
14780 ENDIF
14781
14782* number of entries in LUJETS
14783
14784 NLINES = PYK(0,1)
14785
14786 NPYMEM = NLINES
14787
14788 DO 12 I=1,NLINES
14789 IFLG(I) = 0
14790 12 CONTINUE
14791
14792 DO 13 II=1,NLINES
14793
14794 IF ((PYK(II,7).EQ.1).AND.(IFLG(II).NE.1)) THEN
14795
14796* pick up mother resonance if possible and put it together with
14797* their decay-products into the common
14798 IDXMOR = K(II,3)
14799 IF ((IDXMOR.GE.1).AND.(IDXMOR.LE.MAXLND)) THEN
14800 KFMOR = K(IDXMOR,2)
14801 ISMOR = K(IDXMOR,1)
14802 ELSE
14803 KFMOR = 91
14804 ISMOR = 1
14805 ENDIF
14806 IF ((KFMOR.NE.91).AND.(KFMOR.NE.92).AND.
14807 & (KFMOR.NE.94).AND.(ISMOR.EQ.11)) THEN
14808 ID = K(IDXMOR,2)
14809 MO = IHISMO(PYK(IDXMOR,15))
14810 PX = PYP(IDXMOR,1)
14811 PY = PYP(IDXMOR,2)
14812 PZ = PYP(IDXMOR,3)
14813 PE = PYP(IDXMOR,4)
14814 CALL DT_EVTPUT(2,ID,MO,0,PX,PY,PZ,PE,0,0,0)
14815 IFLG(IDXMOR) = 1
14816 MO = NHKK
14817 DO 15 JDAUG=K(IDXMOR,4),K(IDXMOR,5)
14818 IF (PYK(JDAUG,7).EQ.1) THEN
14819 ID = PYK(JDAUG,8)
14820 PX = PYP(JDAUG,1)
14821 PY = PYP(JDAUG,2)
14822 PZ = PYP(JDAUG,3)
14823 PE = PYP(JDAUG,4)
14824 CALL DT_EVTPUT(1,ID,MO,0,PX,PY,PZ,PE,0,0,0)
14825 IF (LEMCCK) THEN
14826 PX = -PYP(JDAUG,1)
14827 PY = -PYP(JDAUG,2)
14828 PZ = -PYP(JDAUG,3)
14829 PE = -PYP(JDAUG,4)
14830 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM,IDUM)
14831 ENDIF
14832 IFLG(JDAUG) = 1
14833 ENDIF
14834 15 CONTINUE
14835 ELSE
14836* there was no mother resonance
14837 MO = IHISMO(PYK(II,15))
14838 ID = PYK(II,8)
14839 PX = PYP(II,1)
14840 PY = PYP(II,2)
14841 PZ = PYP(II,3)
14842 PE = PYP(II,4)
14843 CALL DT_EVTPUT(1,ID,MO,0,PX,PY,PZ,PE,0,0,0)
14844 IF (LEMCCK) THEN
14845 PX = -PYP(II,1)
14846 PY = -PYP(II,2)
14847 PZ = -PYP(II,3)
14848 PE = -PYP(II,4)
14849 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM,IDUM)
14850 ENDIF
14851 ENDIF
14852 ENDIF
14853 13 CONTINUE
14854 IF (LEMCCK) THEN
14855 CHKLEV = TINY1
14856 CALL DT_EVTEMC(DUM,DUM,DUM,CHKLEV,-1,6,IREJ1)
14857C IF (IREJ1.NE.0) CALL DT_EVTOUT(4)
14858 ENDIF
14859
14860* global energy-momentum & flavor conservation check
14861**sr 16.5. this check is skipped in case of phojet-treatment
14862 IF (MCGENE.EQ.1)
14863 & CALL DT_EMC2(9,10,0,0,0,3,1,0,0,0,0,3,4,12,IREJ3)
14864
14865* update statistics-counter for diffraction
14866c IF (IFLAGD.NE.0) THEN
14867c ICDIFF(1) = ICDIFF(1)+1
14868c IF (IFLAGD.EQ. 1) ICDIFF(2) = ICDIFF(2)+1
14869c IF (IFLAGD.EQ. 2) ICDIFF(3) = ICDIFF(3)+1
14870c IF (IFLAGD.EQ.-1) ICDIFF(4) = ICDIFF(4)+1
14871c IF (IFLAGD.EQ.-2) ICDIFF(5) = ICDIFF(5)+1
14872c ENDIF
14873
14874 ENDIF
14875
14876 RETURN
14877
14878 9999 CONTINUE
14879 IREJ = 1
14880 RETURN
14881 END
14882
14883*$ CREATE DT_DECAYS.FOR
14884*COPY DT_DECAYS
14885*
14886*===decay==============================================================*
14887*
14888 SUBROUTINE DT_DECAYS(PIN,IDXIN,POUT,IDXOUT,NSEC,IREJ)
14889
14890************************************************************************
14891* Resonance-decay. *
14892* This subroutine replaces DDECAY/DECHKK. *
14893* PIN(4) 4-momentum of resonance (input) *
14894* IDXIN BAMJET-index of resonance (input) *
14895* POUT(20,4) 4-momenta of decay-products (output) *
14896* IDXOUT(20) BAMJET-indices of decay-products (output) *
14897* NSEC number of secondaries (output) *
14898* Adopted from the original version DECHKK. *
14899* This version dated 09.01.95 is written by S. Roesler *
14900************************************************************************
14901
14902 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
14903 SAVE
14904 PARAMETER ( LINP = 10 ,
14905 & LOUT = 6 ,
14906 & LDAT = 9 )
14907 PARAMETER (TINY17=1.0D-17)
14908
14909* HADRIN: decay channel information
14910 PARAMETER (IDMAX9=602)
14911 CHARACTER*8 ZKNAME
14912 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
14913* particle properties (BAMJET index convention)
14914 CHARACTER*8 ANAME
14915 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
14916 & IICH(210),IIBAR(210),K1(210),K2(210)
14917* flags for input different options
14918 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
14919 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
14920 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
14921
14922 DIMENSION PIN(4),PI(20,4),POUT(20,4),IDXOUT(20),
14923 & EF(3),PF(3),PFF(3),IDXSTK(20),IDX(3),
14924 & CODF(3),COFF(3),SIFF(3),DCOS(3),DCOSF(3)
14925
14926* ISTAB = 1 strong and weak decays
14927* = 2 strong decays only
14928* = 3 strong decays, weak decays for charmed particles and tau
14929* leptons only
14930 DATA ISTAB /2/
14931
14932 IREJ = 0
14933 NSEC = 0
14934* put initial resonance to stack
14935 NSTK = 1
14936 IDXSTK(NSTK) = IDXIN
14937 DO 5 I=1,4
14938 PI(NSTK,I) = PIN(I)
14939 5 CONTINUE
14940
14941* store initial configuration for energy-momentum cons. check
14942 IF (LEMCCK) CALL DT_EVTEMC(PI(NSTK,1),PI(NSTK,2),PI(NSTK,3),
14943 & PI(NSTK,4),1,IDUM,IDUM)
14944
14945 100 CONTINUE
14946* get particle from stack
14947 IDXI = IDXSTK(NSTK)
14948* skip stable particles
14949 IF (ISTAB.EQ.1) THEN
14950 IF ((IDXI.EQ.135).OR. (IDXI.EQ.136)) GOTO 10
14951 IF ((IDXI.GE. 1).AND.(IDXI.LE. 7)) GOTO 10
14952 ELSEIF (ISTAB.EQ.2) THEN
14953 IF ((IDXI.GE. 1).AND.(IDXI.LE. 30)) GOTO 10
14954 IF ((IDXI.GE. 97).AND.(IDXI.LE.103)) GOTO 10
14955 IF ((IDXI.GE.115).AND.(IDXI.LE.122)) GOTO 10
14956 IF ((IDXI.GE.131).AND.(IDXI.LE.136)) GOTO 10
14957 IF ( IDXI.EQ.109) GOTO 10
14958 IF ((IDXI.GE.137).AND.(IDXI.LE.160)) GOTO 10
14959 ELSEIF (ISTAB.EQ.3) THEN
14960 IF ((IDXI.GE. 1).AND.(IDXI.LE. 23)) GOTO 10
14961 IF ((IDXI.GE. 97).AND.(IDXI.LE.103)) GOTO 10
14962 IF ((IDXI.GE.109).AND.(IDXI.LE.115)) GOTO 10
14963 IF ((IDXI.GE.133).AND.(IDXI.LE.136)) GOTO 10
14964 ENDIF
14965
14966* calculate direction cosines and Lorentz-parameter of decaying part.
14967 PTOT = SQRT(PI(NSTK,1)**2+PI(NSTK,2)**2+PI(NSTK,3)**2)
14968 PTOT = MAX(PTOT,TINY17)
14969 DO 1 I=1,3
14970 DCOS(I) = PI(NSTK,I)/PTOT
14971 1 CONTINUE
14972 GAM = PI(NSTK,4)/AAM(IDXI)
14973 BGAM = PTOT/AAM(IDXI)
14974
14975* get decay-channel
14976 KCHAN = K1(IDXI)-1
14977 2 CONTINUE
14978 KCHAN = KCHAN+1
14979 IF ((DT_RNDM(GAM)-TINY17).GT.WT(KCHAN)) GOTO 2
14980
14981* identities of secondaries
14982 IDX(1) = NZK(KCHAN,1)
14983 IDX(2) = NZK(KCHAN,2)
14984 IF (IDX(2).LT.1) GOTO 9999
14985 IDX(3) = NZK(KCHAN,3)
14986
14987* handle decay in rest system of decaying particle
14988 IF (IDX(3).EQ.0) THEN
14989* two-particle decay
14990 NDEC = 2
14991 CALL DT_DTWOPD(AAM(IDXI),EF(1),EF(2),PF(1),PF(2),
14992 & CODF(1),COFF(1),SIFF(1),CODF(2),COFF(2),SIFF(2),
14993 & AAM(IDX(1)),AAM(IDX(2)))
14994 ELSE
14995* three-particle decay
14996 NDEC = 3
14997 CALL DT_DTHREP(AAM(IDXI),EF(1),EF(2),EF(3),PF(1),PF(2),PF(3),
14998 & CODF(1),COFF(1),SIFF(1),CODF(2),COFF(2),SIFF(2),
14999 & CODF(3),COFF(3),SIFF(3),
15000 & AAM(IDX(1)),AAM(IDX(2)),AAM(IDX(3)))
15001 ENDIF
15002 NSTK = NSTK-1
15003
15004* transform decay products back
15005 DO 3 I=1,NDEC
15006 NSTK = NSTK+1
15007 CALL DT_DTRAFO(GAM,BGAM,DCOS(1),DCOS(2),DCOS(3),
15008 & CODF(I),COFF(I),SIFF(I),PF(I),EF(I),
15009 & PFF(I),DCOSF(1),DCOSF(2),DCOSF(3),PI(NSTK,4))
15010* add particle to stack
15011 IDXSTK(NSTK) = IDX(I)
15012 DO 4 J=1,3
15013 PI(NSTK,J) = DCOSF(J)*PFF(I)
15014 4 CONTINUE
15015 3 CONTINUE
15016 GOTO 100
15017
15018 10 CONTINUE
15019* stable particle, put to output-arrays
15020 NSEC = NSEC+1
15021 DO 6 I=1,4
15022 POUT(NSEC,I) = PI(NSTK,I)
15023 6 CONTINUE
15024 IDXOUT(NSEC) = IDXSTK(NSTK)
15025* store secondaries for energy-momentum conservation check
15026 IF (LEMCCK)
15027 &CALL DT_EVTEMC(-POUT(NSEC,1),-POUT(NSEC,2),-POUT(NSEC,3),
15028 & -POUT(NSEC,4),2,IDUM,IDUM)
15029 NSTK = NSTK-1
15030 IF (NSTK.GT.0) GOTO 100
15031
15032* check energy-momentum conservation
15033 IF (LEMCCK) THEN
15034 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,5,IREJ1)
15035 IF (IREJ1.NE.0) GOTO 9999
15036 ENDIF
15037
15038 RETURN
15039
15040 9999 CONTINUE
15041 IREJ = 1
15042 RETURN
15043 END
15044
15045*$ CREATE DT_DECAY1.FOR
15046*COPY DT_DECAY1
15047*
15048*===decay1=============================================================*
15049*
15050 SUBROUTINE DT_DECAY1
15051
15052************************************************************************
15053* Decay of resonances stored in DTEVT1. *
15054* This version dated 20.01.95 is written by S. Roesler *
15055************************************************************************
15056
15057 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15058 SAVE
15059 PARAMETER ( LINP = 10 ,
15060 & LOUT = 6 ,
15061 & LDAT = 9 )
15062
15063* event history
15064 PARAMETER (NMXHKK=200000)
15065 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
15066 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
15067 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
15068* extended event history
15069 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
15070 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
15071 & IHIST(2,NMXHKK)
15072
15073 DIMENSION PIN(4),POUT(20,4),IDXOUT(20)
15074
15075 NEND = NHKK
15076C DO 1 I=NPOINT(5),NEND
15077 DO 1 I=NPOINT(4),NEND
15078 IF (ABS(ISTHKK(I)).EQ.1) THEN
15079 DO 2 K=1,4
15080 PIN(K) = PHKK(K,I)
15081 2 CONTINUE
15082 IDXIN = IDBAM(I)
15083 CALL DT_DECAYS(PIN,IDXIN,POUT,IDXOUT,NSEC,IREJ)
15084 IF (NSEC.GT.1) THEN
15085 DO 3 N=1,NSEC
15086 IDHAD = IDT_IPDGHA(IDXOUT(N))
15087 CALL DT_EVTPUT(1,IDHAD,I,0,POUT(N,1),POUT(N,2),
15088 & POUT(N,3),POUT(N,4),0,0,0)
15089 3 CONTINUE
15090 ENDIF
15091 ENDIF
15092 1 CONTINUE
15093
15094 RETURN
15095 END
15096
15097*$ CREATE DT_DECPI0.FOR
15098*COPY DT_DECPI0
15099*
15100*===decpi0=============================================================*
15101*
15102 SUBROUTINE DT_DECPI0
15103
15104************************************************************************
15105* Decay of pi0 handled with JETSET. *
15106* This version dated 18.02.96 is written by S. Roesler *
15107************************************************************************
15108
15109 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15110 SAVE
15111 PARAMETER ( LINP = 10 ,
15112 & LOUT = 6 ,
15113 & LDAT = 9 )
15114 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,ONE=1.0D0,ZERO=0.0D0)
15115
15116* event history
15117 PARAMETER (NMXHKK=200000)
15118 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
15119 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
15120 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
15121* extended event history
15122 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
15123 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
15124 & IHIST(2,NMXHKK)
bd378884 15125 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 15126 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
15127 PARAMETER (MAXLND=4000)
15128 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
15129* flags for input different options
15130 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
15131 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
15132 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
15133
15134 INTEGER PYCOMP,PYK
15135
15136 DIMENSION IHISMO(NMXHKK),P1(4)
15137
15138 TWOPI = 2.0D0*ATAN2(0.0D0,-1.0D0)
15139
15140 CALL DT_INITJS(2)
15141* allow pi0 decay
15142 KC = PYCOMP(111)
15143 MDCY(KC,1) = 1
15144
15145 NN = 0
15146 INI = 0
15147 DO 1 I=1,NHKK
15148 IF ((ISTHKK(I).EQ.1).AND.(IDHKK(I).EQ.111)) THEN
15149 IF (INI.EQ.0) THEN
15150 INI = 1
15151 ELSE
15152 INI = 2
15153 ENDIF
15154 IF (LEMCCK) CALL DT_EVTEMC(PHKK(1,I),PHKK(2,I),PHKK(3,I),
15155 & PHKK(4,I),INI,IDUM,IDUM)
15156 PT = SQRT(PHKK(1,I)**2+PHKK(2,I)**2)
15157 PTOT = SQRT(PT**2+PHKK(3,I)**2)
15158 COSTH = PHKK(3,I)/(PTOT+TINY10)
15159 IF (COSTH.GT.ONE) THEN
15160 THETA = ZERO
15161 ELSEIF (COSTH.LT.-ONE) THEN
15162 THETA = TWOPI/2.0D0
15163 ELSE
15164 THETA = ACOS(COSTH)
15165 ENDIF
15166 PHI = ASIN(PHKK(2,I)/(PT +TINY10))
15167 IF (PHKK(1,I).LT.0.0D0)
15168 & PHI = SIGN(TWOPI/2.0D0-ABS(PHI),PHI)
15169 ENER = PHKK(4,I)
15170 NN = NN+1
15171 KTEMP = MSTU(10)
15172 MSTU(10)= 1
15173 P(NN,5) = PHKK(5,I)
15174 CALL PY1ENT(NN,111,ENER,THETA,PHI)
15175 MSTU(10) = KTEMP
15176 IHISMO(NN)= I
15177 ENDIF
15178 1 CONTINUE
15179 IF (NN.GT.0) THEN
15180 CALL PYEXEC
15181 NLINES = PYK(0,1)
15182 DO 2 II=1,NLINES
15183 IF (PYK(II,7).EQ.1) THEN
15184 DO 3 KK=1,4
15185 P1(KK) = PYP(II,KK)
15186 3 CONTINUE
15187 ID = PYK(II,8)
15188 MO = IHISMO(PYK(II,15))
15189 CALL DT_EVTPUT(1,ID,MO,0,P1(1),P1(2),P1(3),P1(4),0,0,0)
15190 IF (LEMCCK)
15191 & CALL DT_EVTEMC(-P1(1),-P1(2),-P1(3),-P1(4),2,
15192 & IDUM,IDUM)
15193*sr: flag with neg. sign (for HELIOS p/A-W jobs)
15194 ISTHKK(MO) = -2
15195 ENDIF
15196 2 CONTINUE
15197 IF (LEMCCK) CALL DT_EVTEMC(DUM,DUM,DUM,DUM,4,7000,IREJ1)
15198 ENDIF
15199 MDCY(KC,1) = 0
15200
15201 RETURN
15202 END
15203
15204*$ CREATE DT_DTWOPD.FOR
15205*COPY DT_DTWOPD
15206*
15207*===dtwopd=============================================================*
15208*
15209 SUBROUTINE DT_DTWOPD(UMO,ECM1,ECM2,PCM1,PCM2,COD1,COF1,SIF1,COD2,
15210 & COF2,SIF2,AM1,AM2)
15211
15212************************************************************************
15213* Two-particle decay. *
15214* UMO cm-energy of the decaying system (input) *
15215* AM1/AM2 masses of the decay products (input) *
15216* ECM1,ECM2/PCM1,PCM2 cm-energies/momenta of the decay prod. (output) *
15217* COD,COF,SIF direction cosines of the decay prod. (output) *
15218* Revised by S. Roesler, 20.11.95 *
15219************************************************************************
15220
15221 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15222 SAVE
15223 PARAMETER ( LINP = 10 ,
15224 & LOUT = 6 ,
15225 & LDAT = 9 )
15226 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0,ZERO=0.0D0)
15227
15228 IF (UMO.LT.(AM1+AM2)) THEN
15229 WRITE(LOUT,1000) UMO,AM1,AM2
15230 1000 FORMAT(1X,'DTWOPD: inconsistent kinematics - UMO,AM1,AM2 ',
15231 & 3E12.3)
15232 STOP
15233 ENDIF
15234
15235 ECM1 = ((UMO-AM2)*(UMO+AM2)+AM1*AM1)/(TWO*UMO)
15236 ECM2 = UMO-ECM1
15237 PCM1 = SQRT((ECM1-AM1)*(ECM1+AM1))
15238 PCM2 = PCM1
15239 CALL DT_DSFECF(SIF1,COF1)
15240 COD1 = TWO*DT_RNDM(PCM2)-ONE
15241 COD2 = -COD1
15242 COF2 = -COF1
15243 SIF2 = -SIF1
15244
15245 RETURN
15246 END
15247
15248*$ CREATE DT_DTHREP.FOR
15249*COPY DT_DTHREP
15250*
15251*===dthrep=============================================================*
15252*
15253 SUBROUTINE DT_DTHREP(UMO,ECM1,ECM2,ECM3,PCM1,PCM2,PCM3,COD1,COF1,
15254 & SIF1,COD2,COF2,SIF2,COD3,COF3,SIF3,AM1,AM2,AM3)
15255
15256************************************************************************
15257* Three-particle decay. *
15258* UMO cm-energy of the decaying system (input) *
15259* AM1/2/3 masses of the decay products (input) *
15260* ECM1/2/2,PCM1/2/3 cm-energies/momenta of the decay prod. (output) *
15261* COD,COF,SIF direction cosines of the decay prod. (output) *
15262* *
15263* Threpd89: slight revision by A. Ferrari *
15264* Last change on 11-oct-93 by Alfredo Ferrari, INFN - Milan *
15265* Revised by S. Roesler, 20.11.95 *
15266************************************************************************
15267
15268 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15269 SAVE
15270 PARAMETER ( LINP = 10 ,
15271 & LOUT = 6 ,
15272 & LDAT = 9 )
15273
15274 PARAMETER ( ANGLSQ = 2.5D-31 )
15275 PARAMETER ( AZRZRZ = 1.0D-30 )
15276 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
15277 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
15278 PARAMETER ( ONEONE = 1.D+00 )
15279 PARAMETER ( TWOTWO = 2.D+00 )
15280 PARAMETER ( PIPIPI = 3.1415926535897932270 D+00 )
15281
15282 COMMON /HNGAMR/ REDU,AMO,AMM(15)
15283* flags for input different options
15284 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
15285 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
15286 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
15287
15288 DIMENSION F(5),XX(5)
15289 DATA EPS /AZRZRZ/
15290
15291 UMOO=UMO+UMO
15292C***S1, S2, S3 ARE THE INVARIANT MASSES OF THE PARTICLES 1, 2, 3
15293C***J. VON NEUMANN - RANDOM - SELECTION OF S2
15294C***CALCULATION OF THE MAXIMUM OF THE S2 - DISTRIBUTION
15295 UUMO=UMO
15296 AAM1=AM1
15297 AAM2=AM2
15298 AAM3=AM3
15299 GU=(AM2+AM3)**2
15300 GO=(UMO-AM1)**2
15301* UFAK=1.0000000000001D0
15302* IF (GU.GT.GO) UFAK=0.9999999999999D0
15303 IF (GU.GT.GO) THEN
15304 UFAK=ONEMNS
15305 ELSE
15306 UFAK=ONEPLS
15307 END IF
15308 OFAK=2.D0-UFAK
15309 GU=GU*UFAK
15310 GO=GO*OFAK
15311 DS2=(GO-GU)/99.D0
15312 AM11=AM1*AM1
15313 AM22=AM2*AM2
15314 AM33=AM3*AM3
15315 UMO2=UMO*UMO
15316 RHO2=0.D0
15317 S22=GU
15318 DO 124 I=1,100
15319 S21=S22
15320 S22=GU+(I-1.D0)*DS2
15321 RHO1=RHO2
15322 RHO2=DT_YLAMB(S22,UMO2,AM11)*DT_YLAMB(S22,AM22,AM33)/
15323 * (S22+EPS)
15324 IF(RHO2.LT.RHO1) GO TO 125
15325 124 CONTINUE
15326 125 S2SUP=(S22-S21)*.5D0+S21
15327 SUPRHO=DT_YLAMB(S2SUP,UMO2,AM11)*DT_YLAMB(S2SUP,AM22,AM33)/
15328 * (S2SUP+EPS)
15329 SUPRHO=SUPRHO*1.05D0
15330 XO=S21-DS2
15331 IF (GU.LT.GO.AND.XO.LT.GU) XO=GU
15332 IF (GU.GT.GO.AND.XO.GT.GU) XO=GU
15333 XX(1)=XO
15334 XX(3)=S22
15335 X1=(XO+S22)*0.5D0
15336 XX(2)=X1
15337 F(3)=RHO2
15338 F(1)=DT_YLAMB(XO,UMO2,AM11)*DT_YLAMB(XO,AM22,AM33)/(XO+EPS)
15339 F(2)=DT_YLAMB(X1,UMO2,AM11)*DT_YLAMB(X1,AM22,AM33)/(X1+EPS)
15340 DO 126 I=1,16
15341 X4=(XX(1)+XX(2))*0.5D0
15342 X5=(XX(2)+XX(3))*0.5D0
15343 F(4)=DT_YLAMB(X4,UMO2,AM11)*DT_YLAMB(X4,AM22,AM33)/
15344 * (X4+EPS)
15345 F(5)=DT_YLAMB(X5,UMO2,AM11)*DT_YLAMB(X5,AM22,AM33)/
15346 * (X5+EPS)
15347 XX(4)=X4
15348 XX(5)=X5
15349 DO 128 II=1,5
15350 IA=II
15351 DO 128 III=IA,5
15352 IF (F (II).GE.F (III)) GO TO 128
15353 FH=F(II)
15354 F(II)=F(III)
15355 F(III)=FH
15356 FH=XX(II)
15357 XX(II)=XX(III)
15358 XX(III)=FH
15359128 CONTINUE
15360 SUPRHO=F(1)
15361 S2SUP=XX(1)
15362 DO 129 II=1,3
15363 IA=II
15364 DO 129 III=IA,3
15365 IF (XX(II).GE.XX(III)) GO TO 129
15366 FH=F(II)
15367 F(II)=F(III)
15368 F(III)=FH
15369 FH=XX(II)
15370 XX(II)=XX(III)
15371 XX(III)=FH
15372129 CONTINUE
15373126 CONTINUE
15374 AM23=(AM2+AM3)**2
15375 ITH=0
15376 REDU=2.D0
15377 1 CONTINUE
15378 ITH=ITH+1
15379 IF (ITH.GT.200) REDU=-9.D0
15380 IF (ITH.GT.200) GO TO 400
15381 C=DT_RNDM(REDU)
15382* S2=AM23+C*((UMO-AM1)**2-AM23)
15383 S2=AM23+C*(UMO-AM1-AM2-AM3)*(UMO-AM1+AM2+AM3)
15384 Y=DT_RNDM(S2)
15385 Y=Y*SUPRHO
15386 RHO=DT_YLAMB(S2,UMO2,AM11)*DT_YLAMB(S2,AM22,AM33)/S2
15387 IF(Y.GT.RHO) GO TO 1
15388C***RANDOM SELECTION OF S3 AND CALCULATION OF S1
15389 S1=DT_RNDM(S2)
15390 S1=S1*RHO+AM11+AM22-(S2-UMO2+AM11)*(S2+AM22-AM33)/(2.D0*S2)-
15391 &RHO*.5D0
15392 S3=UMO2+AM11+AM22+AM33-S1-S2
15393 ECM1=(UMO2+AM11-S2)/UMOO
15394 ECM2=(UMO2+AM22-S3)/UMOO
15395 ECM3=(UMO2+AM33-S1)/UMOO
15396 PCM1=SQRT((ECM1+AM1)*(ECM1-AM1))
15397 PCM2=SQRT((ECM2+AM2)*(ECM2-AM2))
15398 PCM3=SQRT((ECM3+AM3)*(ECM3-AM3))
15399 CALL DT_DSFECF(SFE,CFE)
15400C***TH IS THE ANGLE BETWEEN PARTICLES 1 AND 2
15401C***TH1, TH2 ARE THE ANGLES BETWEEN PARTICLES 1, 2 AND THE DIRECTION OF
15402 PCM12 = PCM1 * PCM2
15403 IF ( PCM12 .LT. ANGLSQ ) GO TO 200
15404 COSTH=(ECM1*ECM2+0.5D+00*(AM11+AM22-S1))/PCM12
15405 GO TO 300
15406 200 CONTINUE
15407 UW=DT_RNDM(S1)
15408 COSTH=(UW-0.5D+00)*2.D+00
15409 300 CONTINUE
15410* IF(ABS(COSTH).GT.0.9999999999999999D0)
15411* &COSTH=SIGN(0.9999999999999999D0,COSTH)
15412 IF(ABS(COSTH).GT.ONEONE)
15413 &COSTH=SIGN(ONEONE,COSTH)
15414 IF (REDU.LT.1.D+00) RETURN
15415 COSTH2=(PCM3*PCM3+PCM2*PCM2-PCM1*PCM1)/(2.D+00*PCM2*PCM3)
15416* IF(ABS(COSTH2).GT.0.9999999999999999D0)
15417* &COSTH2=SIGN(0.9999999999999999D0,COSTH2)
15418 IF(ABS(COSTH2).GT.ONEONE)
15419 &COSTH2=SIGN(ONEONE,COSTH2)
15420 SINTH2=SQRT((ONEONE-COSTH2)*(ONEONE+COSTH2))
15421 SINTH =SQRT((ONEONE-COSTH)*(ONEONE+COSTH))
15422 SINTH1=COSTH2*SINTH-COSTH*SINTH2
15423 COSTH1=COSTH*COSTH2+SINTH2*SINTH
15424C***RANDOM SELECTION OF THE SPHERICAL COORDINATES OF THE DIRECTION OF PA
15425C***CFE, SFE ARE COS AND SIN OF THE ROTATION ANGLE OF THE SYSTEM 1, 2 AR
15426C***THE DIRECTION OF PARTICLE 3
15427C***CALCULATION OF THE SPHERICAL COORDINATES OF PARTICLES 1, 2
15428 CX11=-COSTH1
15429 CY11=SINTH1*CFE
15430 CZ11=SINTH1*SFE
15431 CX22=-COSTH2
15432 CY22=-SINTH2*CFE
15433 CZ22=-SINTH2*SFE
15434 CALL DT_DSFECF(SIF3,COF3)
15435 COD3=TWOTWO*DT_RNDM(CX11)-ONEONE
15436 SID3=SQRT((1.D+00-COD3)*(1.D+00+COD3))
15437 2 FORMAT(5F20.15)
15438 COD1=CX11*COD3+CZ11*SID3
15439 CHLP=(ONEONE-COD1)*(ONEONE+COD1)
15440 IF(CHLP.LT.1.D-14)WRITE(LOUT,2)COD1,COF3,SID3,
15441 &CX11,CZ11
15442 SID1=SQRT(CHLP)
15443 COF1=(CX11*SID3*COF3-CY11*SIF3-CZ11*COD3*COF3)/SID1
15444 SIF1=(CX11*SID3*SIF3+CY11*COF3-CZ11*COD3*SIF3)/SID1
15445 COD2=CX22*COD3+CZ22*SID3
15446 SID2=SQRT((ONEONE-COD2)*(ONEONE+COD2))
15447 COF2=(CX22*SID3*COF3-CY22*SIF3-CZ22*COD3*COF3)/SID2
15448 SIF2=(CX22*SID3*SIF3+CY22*COF3-CZ22*COD3*SIF3)/SID2
15449 400 CONTINUE
15450* === Energy conservation check: === *
15451 EOCHCK = UMO - ECM1 - ECM2 - ECM3
15452* SID1 = SQRT ( ( ONEONE - COD1 ) * ( ONEONE + COD1 ) )
15453* SID2 = SQRT ( ( ONEONE - COD2 ) * ( ONEONE + COD2 ) )
15454* SID3 = SQRT ( ( ONEONE - COD3 ) * ( ONEONE + COD3 ) )
15455 PZCHCK = PCM1 * COD1 + PCM2 * COD2 + PCM3 * COD3
15456 PXCHCK = PCM1 * COF1 * SID1 + PCM2 * COF2 * SID2
15457 & + PCM3 * COF3 * SID3
15458 PYCHCK = PCM1 * SIF1 * SID1 + PCM2 * SIF2 * SID2
15459 & + PCM3 * SIF3 * SID3
15460 EOCMPR = 1.D-12 * UMO
15461 IF ( ABS (EOCHCK) + ABS (PXCHCK) + ABS (PYCHCK) + ABS (PZCHCK)
15462 & .GT. EOCMPR ) THEN
15463**sr 5.5.95 output-unit changed
15464 IF (IOULEV(1).GT.0) THEN
15465 WRITE(LOUT,*)
15466 & ' *** Threpd: energy/momentum conservation failure! ***',
15467 & EOCHCK,PXCHCK,PYCHCK,PZCHCK
15468 WRITE(LOUT,*)' *** SID1,SID2,SID3',SID1,SID2,SID3
15469 ENDIF
15470**
15471 END IF
15472 RETURN
15473 END
15474
15475*$ CREATE DT_DBKLAS.FOR
15476*COPY DT_DBKLAS
15477*
15478*===dbklas=============================================================*
15479*
15480 SUBROUTINE DT_DBKLAS(I,J,K,I8,I10)
15481
15482 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15483 SAVE
15484 PARAMETER ( LINP = 10 ,
15485 & LOUT = 6 ,
15486 & LDAT = 9 )
15487
15488* quark-content to particle index conversion (DTUNUC 1.x)
15489 COMMON /DTQ2ID/ IMPS(6,6),IMVE(6,6),IB08(6,21),IB10(6,21),
15490 & IA08(6,21),IA10(6,21)
15491
15492 IF (I) 20,20,10
15493* baryons
15494 10 CONTINUE
15495 CALL DT_INDEXD(J,K,IND)
15496 I8 = IB08(I,IND)
15497 I10 = IB10(I,IND)
15498 IF (I8.LE.0) I8 = I10
15499 RETURN
15500* antibaryons
15501 20 CONTINUE
15502 II = IABS(I)
15503 JJ = IABS(J)
15504 KK = IABS(K)
15505 CALL DT_INDEXD(JJ,KK,IND)
15506 I8 = IA08(II,IND)
15507 I10 = IA10(II,IND)
15508 IF (I8.LE.0) I8 = I10
15509
15510 RETURN
15511 END
15512
15513*$ CREATE DT_INDEXD.FOR
15514*COPY DT_INDEXD
15515*
15516*===indexd=============================================================*
15517*
15518 SUBROUTINE DT_INDEXD(KA,KB,IND)
15519
15520 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15521 SAVE
15522 PARAMETER ( LINP = 10 ,
15523 & LOUT = 6 ,
15524 & LDAT = 9 )
15525
15526 KP = KA*KB
15527 KS = KA+KB
15528 IF (KP.EQ.1) IND=1
15529 IF (KP.EQ.2) IND=2
15530 IF (KP.EQ.3) IND=3
15531 IF ((KP.EQ.4).AND.(KS.EQ.5)) IND=4
15532 IF (KP.EQ.5) IND=5
15533 IF ((KP.EQ.6).AND.(KS.EQ.7)) IND=6
15534 IF ((KP.EQ.4).AND.(KS.EQ.4)) IND=7
15535 IF ((KP.EQ.6).AND.(KS.EQ.5)) IND=8
15536 IF (KP.EQ.8) IND=9
15537 IF (KP.EQ.10) IND=10
15538 IF ((KP.EQ.12).AND.(KS.EQ.8)) IND=11
15539 IF (KP.EQ.9) IND=12
15540 IF ((KP.EQ.12).AND.(KS.EQ.7)) IND=13
15541 IF (KP.EQ.15) IND=14
15542 IF (KP.EQ.18) IND=15
15543 IF (KP.EQ.16) IND=16
15544 IF (KP.EQ.20) IND=17
15545 IF (KP.EQ.24) IND=18
15546 IF (KP.EQ.25) IND=19
15547 IF (KP.EQ.30) IND=20
15548 IF (KP.EQ.36) IND=21
15549
15550 RETURN
15551 END
15552
15553*$ CREATE DT_DCHANT.FOR
15554*COPY DT_DCHANT
15555*
15556*===dchant=============================================================*
15557*
15558 SUBROUTINE DT_DCHANT
15559
15560 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15561 SAVE
15562 PARAMETER ( LINP = 10 ,
15563 & LOUT = 6 ,
15564 & LDAT = 9 )
15565 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
15566
15567* HADRIN: decay channel information
15568 PARAMETER (IDMAX9=602)
15569 CHARACTER*8 ZKNAME
15570 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
15571* particle properties (BAMJET index convention)
15572 CHARACTER*8 ANAME
15573 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
15574 & IICH(210),IIBAR(210),K1(210),K2(210)
15575
15576 DIMENSION HWT(IDMAX9)
15577
15578* change of weights wt from absolut values into the sum of wt of a dec.
15579 DO 10 J=1,IDMAX9
15580 HWT(J) = ZERO
15581 10 CONTINUE
15582C DO 999 KKK=1,210
15583C WRITE(LOUT,'(A8,F5.2,2E10.3,2I4,2I10)')
15584C & ANAME(KKK),AAM(KKK),GA(KKK),TAU(KKK),IICH(KKK),IIBAR(KKK),
15585C & K1(KKK),K2(KKK)
15586C 999 CONTINUE
15587C STOP
15588 DO 30 I=1,210
15589 IK1 = K1(I)
15590 IK2 = K2(I)
15591 HV = ZERO
15592 DO 20 J=IK1,IK2
15593 HV = HV+WT(J)
15594 HWT(J) = HV
15595**sr 13.1.95
15596 IF (HWT(J).GT.1.0001) WRITE(LOUT,1000) HWT(J),J,I,IK1
15597 1000 FORMAT(2X,15H ERROR IN HWT =,1F10.5,8H J,I,K1=,3I5)
15598 20 CONTINUE
15599 30 CONTINUE
15600 DO 40 J=1,IDMAX9
15601 WT(J) = HWT(J)
15602 40 CONTINUE
15603
15604 RETURN
15605 END
15606
15607*$ CREATE DT_DDATAR.FOR
15608*COPY DT_DDATAR
15609*
15610*===ddatar=============================================================*
15611*
15612 SUBROUTINE DT_DDATAR
15613
15614 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15615 SAVE
15616 PARAMETER ( LINP = 10 ,
15617 & LOUT = 6 ,
15618 & LDAT = 9 )
15619 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
15620
15621* quark-content to particle index conversion (DTUNUC 1.x)
15622 COMMON /DTQ2ID/ IMPS(6,6),IMVE(6,6),IB08(6,21),IB10(6,21),
15623 & IA08(6,21),IA10(6,21)
15624
15625 DIMENSION IV(36),IP(36),IB(126),IBB(126),IA(126),IAA(126)
15626
15627 DATA IV/ 33, 34, 38,123, 0, 0, 32, 33, 39,124,
15628 & 0, 0, 36, 37, 96,127, 0, 0,126,125,
15629 & 128,129,14*0/
15630 DATA IP/ 23, 14, 16,116, 0, 0, 13, 23, 25,117,
15631 & 0, 0, 15, 24, 31,120, 0, 0,119,118,
15632 & 121,122,14*0/
15633 DATA IB/ 0, 1, 21,140, 0, 0, 8, 22,137, 0,
15634 & 0, 97,138, 0, 0,146, 0, 0, 0, 0,
15635 & 0, 1, 8, 22,137, 0, 0, 0, 20,142,
15636 & 0, 0, 98,139, 0, 0,147, 0, 0, 0,
15637 & 0, 0, 21, 22, 97,138, 0, 0, 20, 98,
15638 & 139, 0, 0, 0,145, 0, 0,148, 0, 0,
15639 & 0, 0, 0,140,137,138,146, 0, 0,142,
15640 & 139,147, 0, 0,145,148, 50*0/
15641 DATA IBB/53, 54,104,161, 0, 0, 55,105,162, 0,
15642 & 0,107,164, 0, 0,167, 0, 0, 0, 0,
15643 & 0, 54, 55,105,162, 0, 0, 56,106,163,
15644 & 0, 0,108,165, 0, 0,168, 0, 0, 0,
15645 & 0, 0,104,105,107,164, 0, 0,106,108,
15646 & 165, 0, 0,109,166, 0, 0,169, 0, 0,
15647 & 0, 0, 0,161,162,164,167, 0, 0,163,
15648 & 165,168, 0, 0,166,169, 0, 0,170,47*0/
15649 DATA IA/ 0, 2, 99,152, 0, 0, 9,100,149, 0,
15650 & 0,102,150, 0, 0,158, 0, 0, 0, 0,
15651 & 0, 2, 9,100,149, 0, 0, 0,101,154,
15652 & 0, 0,103,151, 0, 0,159, 0, 0, 0,
15653 & 0, 0, 99,100,102,150, 0, 0,101,103,
15654 & 151, 0, 0, 0,157, 0, 0,160, 0, 0,
15655 & 0, 0, 0,152,149,150,158, 0, 0,154,
15656 & 151,159, 0, 0,157,160, 50*0/
15657 DATA IAA/67, 68,110,171, 0, 0, 69,111,172, 0,
15658 & 0,113,174, 0, 0,177, 0, 0, 0, 0,
15659 & 0, 68, 69,111,172, 0, 0, 70,112,173,
15660 & 0, 0,114,175, 0, 0,178, 0, 0, 0,
15661 & 0, 0,110,111,113,174, 0, 0,112,114,
15662 & 175, 0, 0,115,176, 0, 0,179, 0, 0,
15663 & 0, 0, 0,171,172,174,177, 0, 0,173,
15664 & 175,178, 0, 0,176,179, 0, 0,180,47*0/
15665
15666 L=0
15667 DO 2 I=1,6
15668 DO 1 J=1,6
15669 L = L+1
15670 IMPS(I,J) = IP(L)
15671 IMVE(I,J) = IV(L)
15672 1 CONTINUE
15673 2 CONTINUE
15674 L=0
15675 DO 4 I=1,6
15676 DO 3 J=1,21
15677 L = L+1
15678 IB08(I,J) = IB(L)
15679 IB10(I,J) = IBB(L)
15680 IA08(I,J) = IA(L)
15681 IA10(I,J) = IAA(L)
15682 3 CONTINUE
15683 4 CONTINUE
15684C A1 = 0.88D0
15685C B1 = 3.0D0
15686C B2 = 3.0D0
15687C B3 = 8.0D0
15688C LT = 0
15689C LB = 0
15690C BET = 12.0D0
15691C AS = 0.25D0
15692C B8 = 0.33D0
15693C AME = 0.95D0
15694C DIQ = 0.375D0
15695C ISU = 4
15696
15697 RETURN
15698 END
15699
15700*$ CREATE DT_INITJS.FOR
15701*COPY DT_INITJS
15702*
15703*===initjs=============================================================*
15704*
15705 SUBROUTINE DT_INITJS(MODE)
15706
15707************************************************************************
15708* Initialize JETSET paramters. *
15709* MODE = 0 default settings *
15710* = 1 PHOJET settings *
15711* = 2 DTUNUC settings *
15712* This version dated 16.02.96 is written by S. Roesler *
15713* *
15714* Last change 27.12.2006 by S. Roesler. *
15715************************************************************************
15716
15717 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15718 SAVE
15719 PARAMETER ( LINP = 10 ,
15720 & LOUT = 6 ,
15721 & LDAT = 9 )
15722 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
15723
15724 LOGICAL LFIRST,LFIRDT,LFIRPH
15725
15726 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
15727 COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
bd378884 15728 COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
9aaba0d6 15729* flags for particle decays
15730 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
15731 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
15732 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
15733* flags for input different options
15734 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
15735 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
15736 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
15737
15738 INTEGER PYCOMP
15739
15740 DIMENSION IDXSTA(40)
15741 DATA IDXSTA
15742* K0s pi0 lam alam sig+ asig+ sig- asig- tet0 atet0
15743 & / 310, 111, 3122,-3122, 3222,-3222, 3112,-3112, 3322,-3322,
15744* tet- atet- om- aom- D+ D- D0 aD0 Ds+ aDs+
15745 & 3312,-3312, 3334,-3334, 411, -411, 421, -421, 431, -431,
15746* etac lamc+alamc+sigc++ sigc+ sigc0asigc++asigc+asigc0 Ksic+
15747 & 441, 4122,-4122, 4222, 4212, 4112,-4222,-4212,-4112, 4232,
15748* Ksic0 aKsic+aKsic0 sig0 asig0
15749 & 4132,-4232,-4132, 3212,-3212, 5*0/
15750
15751 DATA LFIRST,LFIRDT,LFIRPH /.TRUE.,.TRUE.,.TRUE./
15752
15753 IF (LFIRST) THEN
15754* save default settings
15755 PDEF1 = PARJ(1)
15756 PDEF2 = PARJ(2)
15757 PDEF3 = PARJ(3)
15758 PDEF5 = PARJ(5)
15759 PDEF6 = PARJ(6)
15760 PDEF7 = PARJ(7)
15761 PDEF18 = PARJ(18)
15762 PDEF19 = PARJ(19)
15763 PDEF21 = PARJ(21)
15764 PDEF42 = PARJ(42)
15765 MDEF12 = MSTJ(12)
15766* LUJETS / PYJETS array-dimensions
15767 MSTU(4) = 4000
15768* increase maximum number of JETSET-error prints
15769 MSTU(22) = 50000
15770* prevent particles decaying
15771 DO 1 I=1,35
15772 IF (I.LT.34) THEN
15773 KC = PYCOMP(IDXSTA(I))
15774 IF (KC.GT.0) THEN
15775 IF (I.EQ.2) THEN
15776* pi0 decay
15777C MDCY(KC,1) = 1
15778 MDCY(KC,1) = 0
15779**cr mode
15780C ELSEIF ((I.EQ.4).OR.(I.EQ. 6).OR.
15781C & (I.EQ.8).OR.(I.EQ.10)) THEN
15782C ELSEIF (I.EQ.4) THEN
15783C MDCY(KC,1) = 1
15784**
15785 ELSE
1ddc441c 15786C AM MDCY(KC,1) = 0
9aaba0d6 15787 ENDIF
15788 ENDIF
15789 ELSEIF (((I.EQ.34).OR.(I.EQ.35)).AND.(ISIG0.EQ.0)) THEN
15790 KC = PYCOMP(IDXSTA(I))
15791 IF (KC.GT.0) THEN
1ddc441c 15792C AM MDCY(KC,1) = 0
9aaba0d6 15793 ENDIF
15794 ENDIF
15795 1 CONTINUE
15796*
15797*
15798* popcorn:
15799 IF (PDB.LE.ZERO) THEN
15800* no popcorn-mechanism
15801 MSTJ(12) = 1
15802 ELSE
15803 MSTJ(12) = 3
15804 PARJ(5) = PDB
15805 ENDIF
15806* set JETSET-parameter requested by input cards
15807 IF (NMSTU.GT.0) THEN
15808 DO 2 I=1,NMSTU
15809 MSTU(IMSTU(I)) = MSTUX(I)
15810 2 CONTINUE
15811 ENDIF
15812 IF (NMSTJ.GT.0) THEN
15813 DO 3 I=1,NMSTJ
15814 MSTJ(IMSTJ(I)) = MSTJX(I)
15815 3 CONTINUE
15816 ENDIF
15817 IF (NPARU.GT.0) THEN
15818 DO 4 I=1,NPARU
15819 PARU(IPARU(I)) = PARUX(I)
15820 4 CONTINUE
15821 ENDIF
15822 LFIRST = .FALSE.
15823 ENDIF
15824*
15825* PARJ(1) suppression of qq-aqaq pair prod. compared to
15826* q-aq pair prod. (default: 0.1)
15827* PARJ(2) strangeness suppression (default: 0.3)
15828* PARJ(3) extra suppression of strange diquarks (default: 0.4)
15829* PARJ(6) extra suppression of sas-pair shared by B and
15830* aB in BMaB (default: 0.5)
15831* PARJ(7) extra suppression of strange meson M in BMaB
15832* configuration (default: 0.5)
15833* PARJ(18) spin 3/2 baryon suppression (default: 1.0)
15834* PARJ(21) width sigma in Gaussian p_x, p_y transverse
15835* momentum distrib. for prim. hadrons (default: 0.35)
15836* PARJ(42) b-parameter for symmetric Lund-fragmentation
15837* function (default: 0.9 GeV^-2)
15838*
15839* PHOJET settings
15840 IF (MODE.EQ.1) THEN
15841* JETSET default
15842C PARJ(1) = PDEF1
15843C PARJ(2) = PDEF2
15844C PARJ(3) = PDEF3
15845C PARJ(6) = PDEF6
15846C PARJ(7) = PDEF7
15847C PARJ(18) = PDEF18
15848C PARJ(21) = PDEF21
15849C PARJ(42) = PDEF42
15850**sr 18.11.98 parameter tuning
15851C PARJ(1) = 0.092D0
15852C PARJ(2) = 0.25D0
15853C PARJ(3) = 0.45D0
15854C PARJ(19) = 0.3D0
15855C PARJ(21) = 0.45D0
15856C PARJ(42) = 1.0D0
15857**sr 28.04.99 parameter tuning (May 99 minor modifications)
15858 PARJ(1) = 0.085D0
15859 PARJ(2) = 0.26D0
15860 PARJ(3) = 0.8D0
15861 PARJ(11) = 0.38D0
15862 PARJ(18) = 0.3D0
15863 PARJ(19) = 0.4D0
15864 PARJ(21) = 0.36D0
15865 PARJ(41) = 0.3D0
15866 PARJ(42) = 0.86D0
15867 IF (NPARJ.GT.0) THEN
15868 DO 10 I=1,NPARJ
15869 IF (IPARJ(I).GT.0) PARJ(IPARJ(I)) = PARJX(I)
15870 10 CONTINUE
15871 ENDIF
15872 IF (LFIRPH) THEN
15873 WRITE(LOUT,'(1X,A)')
15874 & 'DT_INITJS: JETSET-parameter for PHOJET'
15875 CALL DT_JSPARA(0)
15876 LFIRPH = .FALSE.
15877 ENDIF
15878* DTUNUC settings
15879 ELSEIF (MODE.EQ.2) THEN
15880 IF (IFRAG(2).EQ.1) THEN
15881**sr parameters before 9.3.96
15882C PARJ(2) = 0.27D0
15883C PARJ(3) = 0.6D0
15884C PARJ(6) = 0.75D0
15885C PARJ(7) = 0.75D0
15886C PARJ(21) = 0.55D0
15887C PARJ(42) = 1.3D0
15888**sr 18.11.98 parameter tuning
15889C PARJ(1) = 0.05D0
15890C PARJ(2) = 0.27D0
15891C PARJ(3) = 0.4D0
15892C PARJ(19) = 0.2D0
15893C PARJ(21) = 0.45D0
15894C PARJ(42) = 1.0D0
15895**sr 28.04.99 parameter tuning
15896 PARJ(1) = 0.11D0
15897 PARJ(2) = 0.36D0
15898 PARJ(3) = 0.8D0
15899 PARJ(19) = 0.2D0
15900 PARJ(21) = 0.3D0
15901 PARJ(41) = 0.3D0
15902 PARJ(42) = 0.58D0
15903 IF (NPARJ.GT.0) THEN
15904 DO 20 I=1,NPARJ
15905 IF (IPARJ(I).LT.0) THEN
15906 IDX = ABS(IPARJ(I))
15907 PARJ(IDX) = PARJX(I)
15908 ENDIF
15909 20 CONTINUE
15910 ENDIF
15911 IF (LFIRDT) THEN
15912 WRITE(LOUT,'(1X,A)')
15913 & 'DT_INITJS: JETSET-parameter for DTUNUC'
15914 CALL DT_JSPARA(0)
15915 LFIRDT = .FALSE.
15916 ENDIF
15917 ELSEIF (IFRAG(2).EQ.2) THEN
15918 PARJ(1) = 0.11D0
15919 PARJ(2) = 0.27D0
15920 PARJ(3) = 0.3D0
15921 PARJ(6) = 0.35D0
15922 PARJ(7) = 0.45D0
15923 PARJ(18) = 0.66D0
15924C PARJ(21) = 0.55D0
15925C PARJ(42) = 1.0D0
15926 PARJ(21) = 0.60D0
15927 PARJ(42) = 1.3D0
15928 ELSE
15929 PARJ(1) = PDEF1
15930 PARJ(2) = PDEF2
15931 PARJ(3) = PDEF3
15932 PARJ(6) = PDEF6
15933 PARJ(7) = PDEF7
15934 PARJ(18) = PDEF18
15935 PARJ(21) = PDEF21
15936 PARJ(42) = PDEF42
15937 ENDIF
15938 ELSE
15939 PARJ(1) = PDEF1
15940 PARJ(2) = PDEF2
15941 PARJ(3) = PDEF3
15942 PARJ(5) = PDEF5
15943 PARJ(6) = PDEF6
15944 PARJ(7) = PDEF7
15945 PARJ(18) = PDEF18
15946 PARJ(19) = PDEF19
15947 PARJ(21) = PDEF21
15948 PARJ(42) = PDEF42
15949 MSTJ(12) = MDEF12
15950 ENDIF
15951
15952 RETURN
15953 END
15954
15955*$ CREATE DT_JSPARA.FOR
15956*COPY DT_JSPARA
15957*
15958*===jspara=============================================================*
15959*
15960 SUBROUTINE DT_JSPARA(MODE)
15961
15962 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
15963 SAVE
15964 PARAMETER ( LINP = 10 ,
15965 & LOUT = 6 ,
15966 & LDAT = 9 )
15967 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,TINY1=1.0D-1,
15968 & ONE=1.0D0,ZERO=0.0D0)
15969
15970 LOGICAL LFIRST
15971
15972 COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
15973
15974 DIMENSION ISTU(200),QARU(200),ISTJ(200),QARJ(200)
15975
15976 DATA LFIRST /.TRUE./
15977
15978* save the default JETSET-parameter on the first call
15979 IF (LFIRST) THEN
15980 DO 1 I=1,200
15981 ISTU(I) = MSTU(I)
15982 QARU(I) = PARU(I)
15983 ISTJ(I) = MSTJ(I)
15984 QARJ(I) = PARJ(I)
15985 1 CONTINUE
15986 LFIRST = .FALSE.
15987 ENDIF
15988
15989 WRITE(LOUT,1000)
15990 1000 FORMAT(1X,'DT_JSPARA: new value (default value)')
15991
15992* compare the default JETSET-parameter with the present values
15993 DO 2 I=1,200
15994 IF ((MSTU(I).NE.ISTU(I)).AND.(I.NE.31)) THEN
15995 WRITE(LOUT,1002) 'MSTU(',I,MSTU(I),ISTU(I)
15996C ISTU(I) = MSTU(I)
15997 ENDIF
15998 DIFF = ABS(PARU(I)-QARU(I))
15999 IF ((DIFF.GE.1.0D-5).AND.(I.NE.21)) THEN
16000 WRITE(LOUT,1001) 'PARU(',I,PARU(I),QARU(I)
16001C QARU(I) = PARU(I)
16002 ENDIF
16003 IF (MSTJ(I).NE.ISTJ(I)) THEN
16004 WRITE(LOUT,1002) 'MSTJ(',I,MSTJ(I),ISTJ(I)
16005C ISTJ(I) = MSTJ(I)
16006 ENDIF
16007 DIFF = ABS(PARJ(I)-QARJ(I))
16008 IF (DIFF.GE.1.0D-5) THEN
16009 WRITE(LOUT,1001) 'PARJ(',I,PARJ(I),QARJ(I)
16010C QARJ(I) = PARJ(I)
16011 ENDIF
16012 2 CONTINUE
16013 1001 FORMAT(12X,A5,I3,'): ',F6.3,' (',F6.3,')')
16014 1002 FORMAT(12X,A5,I3,'): ',I6,' (',I6,')')
16015
16016 RETURN
16017 END
16018
16019*$ CREATE DT_FOZOCA.FOR
16020*COPY DT_FOZOCA
16021*
16022*===fozoca=============================================================*
16023*
16024 SUBROUTINE DT_FOZOCA(LFZC,IREJ)
16025
16026************************************************************************
16027* This subroutine treats the complete FOrmation ZOne supressed intra- *
16028* nuclear CAscade. *
16029* LFZC = .true. cascade has been treated *
16030* = .false. cascade skipped *
16031* This is a completely revised version of the original FOZOKL. *
16032* This version dated 18.11.95 is written by S. Roesler *
16033************************************************************************
16034
16035 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
16036 SAVE
16037 PARAMETER ( LINP = 10 ,
16038 & LOUT = 6 ,
16039 & LDAT = 9 )
16040 PARAMETER (DLARGE=1.0D10,OHALF=0.5D0,ZERO=0.0D0)
16041 PARAMETER (FM2MM=1.0D-12,RNUCLE = 1.12D0)
16042
16043 LOGICAL LSTART,LCAS,LFZC
16044
16045* event history
16046 PARAMETER (NMXHKK=200000)
16047 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
16048 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
16049 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
16050* extended event history
16051 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
16052 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
16053 & IHIST(2,NMXHKK)
16054* rejection counter
16055 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
16056 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
16057 & IREXCI(3),IRDIFF(2),IRINC
16058* properties of interacting particles
16059 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
16060* Glauber formalism: collision properties
16061 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
16062 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
16063* flags for input different options
16064 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
16065 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
16066 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
16067* final state after intranuclear cascade step
16068 COMMON /DTPAUL/ EWOUND(2,300),NWOUND(2),IDXINC(2000),NOINC
16069* parameter for intranuclear cascade
16070 LOGICAL LPAULI
16071 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
16072
16073 DIMENSION NCWOUN(2)
16074
16075 DATA LSTART /.TRUE./
16076
16077 LFZC = .TRUE.
16078 IREJ = 0
16079
16080* skip cascade if hadron-hadron interaction or if supressed by user
16081 IF (((IP.EQ.1).AND.(IT.EQ.1)).OR.(KTAUGE.LT.1)) GOTO 9999
16082* skip cascade if not all possible chains systems are hadronized
16083 DO 1 I=1,8
16084 IF (.NOT.LHADRO(I)) GOTO 9999
16085 1 CONTINUE
16086
16087 IF (LSTART) THEN
16088 WRITE(LOUT,1000) KTAUGE,TAUFOR,INCMOD
16089 1000 FORMAT(/,1X,'FOZOCA: intranuclear cascade treated for a ',
16090 & 'maximum of',I4,' generations',/,10X,'formation time ',
16091 & 'parameter:',F5.1,' fm/c',9X,'modus:',I2)
16092 IF (ITAUVE.EQ.1) WRITE(LOUT,1001)
16093 IF (ITAUVE.EQ.2) WRITE(LOUT,1002)
16094 1001 FORMAT(10X,'p_t dependent formation zone',/)
16095 1002 FORMAT(10X,'constant formation zone',/)
16096 LSTART = .FALSE.
16097 ENDIF
16098
16099* in order to avoid wasting of cpu-time the DTEVT1-indices of nucleons
16100* which may interact with final state particles are stored in a seperate
16101* array - here all proj./target nucleon-indices (just for simplicity)
16102 NOINC = 0
16103 DO 9 I=1,NPOINT(1)-1
16104 NOINC = NOINC+1
16105 IDXINC(NOINC) = I
16106 9 CONTINUE
16107
16108* initialize Pauli-principle treatment (find wounded nucleons)
16109 NWOUND(1) = 0
16110 NWOUND(2) = 0
16111 NCWOUN(1) = 0
16112 NCWOUN(2) = 0
16113 DO 2 J=1,NPOINT(1)
16114 DO 3 I=1,2
16115 IF (ISTHKK(J).EQ.10+I) THEN
16116 NWOUND(I) = NWOUND(I)+1
16117 EWOUND(I,NWOUND(I)) = PHKK(4,J)
16118 IF (IDHKK(J).EQ.2212) NCWOUN(I) = NCWOUN(I)+1
16119 ENDIF
16120 3 CONTINUE
16121 2 CONTINUE
16122
16123* modify nuclear potential for wounded nucleons
16124 IPRCL = IP -NWOUND(1)
16125 IPZRCL = IPZ-NCWOUN(1)
16126 ITRCL = IT -NWOUND(2)
16127 ITZRCL = ITZ-NCWOUN(2)
16128 CALL DT_NCLPOT(IPZRCL,IPRCL,ITZRCL,ITRCL,ZERO,ZERO,1)
16129
16130 NSTART = NPOINT(4)
16131 NEND = NHKK
16132
16133 7 CONTINUE
16134 DO 8 I=NSTART,NEND
16135
16136 IF ((ABS(ISTHKK(I)).EQ.1).AND.(IDCH(I).LT.KTAUGE)) THEN
16137* select nucleus the cascade starts first (proj. - 1, target - -1)
16138 NCAS = 1
16139* projectile/target with probab. 1/2
16140 IF ((INCMOD.EQ.1).OR.(IDCH(I).GT.0)) THEN
16141 IF (DT_RNDM(TAUFOR).GT.OHALF) NCAS = -NCAS
16142* in the nucleus with highest mass
16143 ELSEIF (INCMOD.EQ.2) THEN
16144 IF (IP.GT.IT) THEN
16145 NCAS = -NCAS
16146 ELSEIF (IP.EQ.IT) THEN
16147 IF (DT_RNDM(TAUFOR).GT.OHALF) NCAS = -NCAS
16148 ENDIF
16149* the nucleus the cascade starts first is requested to be the one
16150* moving in the direction of the secondary
16151 ELSEIF (INCMOD.EQ.3) THEN
16152 NCAS = INT(SIGN(1.0D0,PHKK(3,I)))
16153 ENDIF
16154* check that the selected "nucleus" is not a hadron
16155 IF (((NCAS.EQ. 1).AND.(IP.LE.1)).OR.
16156 & ((NCAS.EQ.-1).AND.(IT.LE.1))) NCAS = -NCAS
16157
16158* treat intranuclear cascade in the nucleus selected first
16159 LCAS = .FALSE.
16160 CALL DT_INUCAS(IT,IP,I,LCAS,NCAS,IREJ1)
16161 IF (IREJ1.NE.0) GOTO 9998
16162* treat intranuclear cascade in the other nucleus if this isn't a had.
16163 NCAS = -NCAS
16164 IF (((NCAS.EQ. 1).AND.(IP.GT.1)).OR.
16165 & ((NCAS.EQ.-1).AND.(IT.GT.1))) THEN
16166 IF (LCAS) CALL DT_INUCAS(IT,IP,I,LCAS,NCAS,IREJ1)
16167 IF (IREJ1.NE.0) GOTO 9998
16168 ENDIF
16169
16170 ENDIF
16171
16172 8 CONTINUE
16173 NSTART = NEND+1
16174 NEND = NHKK
16175 IF (NSTART.LE.NEND) GOTO 7
16176
16177 RETURN
16178
16179 9998 CONTINUE
16180* reject this event
16181 IRINC = IRINC+1
16182 IREJ = 1
16183
16184 9999 CONTINUE
16185* intranucl. cascade not treated because of interaction properties or
16186* it is supressed by user or it was rejected or...
16187 LFZC = .FALSE.
16188* reset flag characterizing direction of motion in n-n-cms
16189**sr14-11-95
16190C DO 9990 I=NPOINT(5),NHKK
16191C IF (ISTHKK(I).EQ.-1) ISTHKK(I)=1
16192C9990 CONTINUE
16193
16194 RETURN
16195 END
16196
16197*$ CREATE DT_INUCAS.FOR
16198*COPY DT_INUCAS
16199*
16200*===inucas=============================================================*
16201*
16202 SUBROUTINE DT_INUCAS(IT,IP,IDXCAS,LCAS,NCAS,IREJ)
16203
16204************************************************************************
16205* Formation zone supressed IntraNUclear CAScade for one final state *
16206* particle. *
16207* IT, IP mass numbers of target, projectile nuclei *
16208* IDXCAS index of final state particle in DTEVT1 *
16209* NCAS = 1 intranuclear cascade in projectile *
16210* = -1 intranuclear cascade in target *
16211* This version dated 18.11.95 is written by S. Roesler *
16212************************************************************************
16213
16214 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
16215 SAVE
16216 PARAMETER ( LINP = 10 ,
16217 & LOUT = 6 ,
16218 & LDAT = 9 )
16219
16220 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
16221 & OHALF=0.5D0,ONE=1.0D0)
16222 PARAMETER (FM2MM=1.0D-12,RNUCLE = 1.12D0)
16223 PARAMETER (TWOPI=6.283185307179586454D+00)
16224 PARAMETER (PLOWH=0.01D0,PHIH=9.0D0)
16225
16226 LOGICAL LABSOR,LCAS
16227
16228* event history
16229 PARAMETER (NMXHKK=200000)
16230 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
16231 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
16232 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
16233* extended event history
16234 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
16235 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
16236 & IHIST(2,NMXHKK)
16237* final state after inc step
16238 PARAMETER (MAXFSP=10)
16239 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
16240* flags for input different options
16241 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
16242 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
16243 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
16244* particle properties (BAMJET index convention)
16245 CHARACTER*8 ANAME
16246 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
16247 & IICH(210),IIBAR(210),K1(210),K2(210)
16248* Glauber formalism: collision properties
16249 COMMON /DTGLCP/ RPROJ,RTARG,BIMPAC,
16250 & NWTSAM,NWASAM,NWBSAM,NWTACC,NWAACC,NWBACC
16251* nuclear potential
16252 LOGICAL LFERMI
16253 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
16254 & EBINDP(2),EBINDN(2),EPOT(2,210),
16255 & ETACOU(2),ICOUL,LFERMI
16256* parameter for intranuclear cascade
16257 LOGICAL LPAULI
16258 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
16259* final state after intranuclear cascade step
16260 COMMON /DTPAUL/ EWOUND(2,300),NWOUND(2),IDXINC(2000),NOINC
16261* nucleon-nucleon event-generator
16262 CHARACTER*8 CMODEL
16263 LOGICAL LPHOIN
16264 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
16265* statistics: residual nuclei
16266 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
16267 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
16268 & NINCST(2,4),NINCEV(2),
16269 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
16270 & NRESPB(2),NRESCH(2),NRESEV(4),
16271 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
16272 & NEVAFI(2,2)
16273
16274 DIMENSION PCAS(2,5),PTOCAS(2),COSCAS(2,3),VTXCAS(2,4),VTXCA1(2,4),
16275 & PCAS1(5),PNUC(5),BGTA(4),
16276 & BGCAS(2),GACAS(2),BECAS(2),
16277 & RNUC(2),BIMPC(2),VTXDST(3),IDXSPE(2),IDSPE(2),NWTMP(2)
16278
16279 DATA PDIF /0.545D0/
16280
16281 IREJ = 0
16282
16283* update counter
16284 IF (NINCEV(1).NE.NEVHKK) THEN
16285 NINCEV(1) = NEVHKK
16286 NINCEV(2) = NINCEV(2)+1
16287 ENDIF
16288
16289* "BAMJET-index" of this hadron
16290 IDCAS = IDBAM(IDXCAS)
16291 IF (IDT_MCHAD(IDCAS).EQ.-1) RETURN
16292
16293* skip gammas, electrons, etc..
16294 IF (AAM(IDCAS).LT.TINY2) RETURN
16295
16296* Lorentz-trsf. into projectile rest system
16297 IF (IP.GT.1) THEN
16298 CALL DT_LTRANS(PHKK(1,IDXCAS),PHKK(2,IDXCAS),PHKK(3,IDXCAS),
16299 & PHKK(4,IDXCAS),PCAS(1,1),PCAS(1,2),PCAS(1,3),
16300 & PCAS(1,4),IDCAS,-2)
16301 PTOCAS(1) = SQRT(PCAS(1,1)**2+PCAS(1,2)**2+PCAS(1,3)**2)
16302 PCAS(1,5) = (PCAS(1,4)-PTOCAS(1))*(PCAS(1,4)+PTOCAS(1))
16303 IF (PCAS(1,5).GT.ZERO) THEN
16304 PCAS(1,5) = SQRT(PCAS(1,5))
16305 ELSE
16306 PCAS(1,5) = AAM(IDCAS)
16307 ENDIF
16308 DO 20 K=1,3
16309 COSCAS(1,K) = PCAS(1,K)/MAX(PTOCAS(1),TINY10)
16310 20 CONTINUE
16311* Lorentz-parameters
16312* particle rest system --> projectile rest system
16313 BGCAS(1) = PTOCAS(1)/MAX(PCAS(1,5),TINY10)
16314 GACAS(1) = PCAS(1,4)/MAX(PCAS(1,5),TINY10)
16315 BECAS(1) = BGCAS(1)/GACAS(1)
16316 ELSE
16317 DO 21 K=1,5
16318 PCAS(1,K) = ZERO
16319 IF (K.LE.3) COSCAS(1,K) = ZERO
16320 21 CONTINUE
16321 PTOCAS(1) = ZERO
16322 BGCAS(1) = ZERO
16323 GACAS(1) = ZERO
16324 BECAS(1) = ZERO
16325 ENDIF
16326* Lorentz-trsf. into target rest system
16327 IF (IT.GT.1) THEN
16328* LEPTO: final state particles are already in target rest frame
16329C IF (MCGENE.EQ.3) THEN
16330C PCAS(2,1) = PHKK(1,IDXCAS)
16331C PCAS(2,2) = PHKK(2,IDXCAS)
16332C PCAS(2,3) = PHKK(3,IDXCAS)
16333C PCAS(2,4) = PHKK(4,IDXCAS)
16334C ELSE
16335 CALL DT_LTRANS(PHKK(1,IDXCAS),PHKK(2,IDXCAS),PHKK(3,IDXCAS),
16336 & PHKK(4,IDXCAS),PCAS(2,1),PCAS(2,2),PCAS(2,3),
16337 & PCAS(2,4),IDCAS,-3)
16338C ENDIF
16339 PTOCAS(2) = SQRT(PCAS(2,1)**2+PCAS(2,2)**2+PCAS(2,3)**2)
16340 PCAS(2,5) = (PCAS(2,4)-PTOCAS(2))*(PCAS(2,4)+PTOCAS(2))
16341 IF (PCAS(2,5).GT.ZERO) THEN
16342 PCAS(2,5) = SQRT(PCAS(2,5))
16343 ELSE
16344 PCAS(2,5) = AAM(IDCAS)
16345 ENDIF
16346 DO 22 K=1,3
16347 COSCAS(2,K) = PCAS(2,K)/MAX(PTOCAS(2),TINY10)
16348 22 CONTINUE
16349* Lorentz-parameters
16350* particle rest system --> target rest system
16351 BGCAS(2) = PTOCAS(2)/MAX(PCAS(2,5),TINY10)
16352 GACAS(2) = PCAS(2,4)/MAX(PCAS(2,5),TINY10)
16353 BECAS(2) = BGCAS(2)/GACAS(2)
16354 ELSE
16355 DO 23 K=1,5
16356 PCAS(2,K) = ZERO
16357 IF (K.LE.3) COSCAS(2,K) = ZERO
16358 23 CONTINUE
16359 PTOCAS(2) = ZERO
16360 BGCAS(2) = ZERO
16361 GACAS(2) = ZERO
16362 BECAS(2) = ZERO
16363 ENDIF
16364
16365* radii of nuclei (mm) modified by the wall-depth of the Woods-Saxon-
16366* potential (see CONUCL)
16367 RNUC(1) = (RPROJ+4.605D0*PDIF)*FM2MM
16368 RNUC(2) = (RTARG+4.605D0*PDIF)*FM2MM
16369* impact parameter (the projectile moving along z)
16370 BIMPC(1) = ZERO
16371 BIMPC(2) = BIMPAC*FM2MM
16372
16373* get position of initial hadron in projectile/target rest-syst.
16374 DO 3 K=1,4
16375 VTXCAS(1,K) = WHKK(K,IDXCAS)
16376 VTXCAS(2,K) = VHKK(K,IDXCAS)
16377 3 CONTINUE
16378
16379 ICAS = 1
16380 I2 = 2
16381 IF (NCAS.EQ.-1) THEN
16382 ICAS = 2
16383 I2 = 1
16384 ENDIF
16385
16386 IF (PTOCAS(ICAS).LT.TINY10) THEN
16387 WRITE(LOUT,1000) PTOCAS
16388 1000 FORMAT(1X,'INUCAS: warning! zero momentum of initial',
16389 & ' hadron ',/,20X,2E12.4)
16390 GOTO 9999
16391 ENDIF
16392
16393* reset spectator flags
16394 NSPE = 0
16395 IDXSPE(1) = 0
16396 IDXSPE(2) = 0
16397 IDSPE(1) = 0
16398 IDSPE(2) = 0
16399
16400* formation length (in fm)
16401C IF (LCAS) THEN
16402C DEL0 = ZERO
16403C ELSE
16404 DEL0 = TAUFOR*BGCAS(ICAS)
16405 IF (ITAUVE.EQ.1) THEN
16406 AMT = PCAS(ICAS,1)**2+PCAS(ICAS,2)**2+PCAS(ICAS,5)**2
16407 DEL0 = DEL0*PCAS(ICAS,5)**2/AMT
16408 ENDIF
16409C ENDIF
16410* sample from exp(-del/del0)
16411 DEL1 = -DEL0*LOG(MAX(DT_RNDM(DEL0),TINY10))
16412* save formation time
16413 TAUSA1 = DEL1/BGCAS(ICAS)
16414 REL1 = TAUSA1*BGCAS(I2)
16415
16416 DEL = DEL1
16417 TAUSAM = DEL/BGCAS(ICAS)
16418 REL = TAUSAM*BGCAS(I2)
16419
16420* special treatment for negative particles unable to escape
16421* nuclear potential (implemented for ap, pi-, K- only)
16422 LABSOR = .FALSE.
16423 IF ((IICH(IDCAS).EQ.-1).AND.(IDCAS.LT.20)) THEN
16424* threshold energy = nuclear potential + Coulomb potential
16425* (nuclear potential for hadron-nucleus interactions only)
16426 ETHR = AAM(IDCAS)+EPOT(ICAS,IDCAS)+ETACOU(ICAS)
16427 IF (PCAS(ICAS,4).LT.ETHR) THEN
16428 DO 4 K=1,5
16429 PCAS1(K) = PCAS(ICAS,K)
16430 4 CONTINUE
16431* "absorb" negative particle in nucleus
16432 CALL DT_ABSORP(IDCAS,PCAS1,NCAS,NSPE,IDSPE,IDXSPE,0,IREJ1)
16433 IF (IREJ1.NE.0) GOTO 9999
16434 IF (NSPE.GE.1) LABSOR = .TRUE.
16435 ENDIF
16436 ENDIF
16437
16438* if the initial particle has not been absorbed proceed with
16439* "normal" cascade
16440 IF (.NOT.LABSOR) THEN
16441
16442* calculate coordinates of hadron at the end of the formation zone
16443* transport-time and -step in the rest system where this step is
16444* treated
16445 DSTEP = DEL*FM2MM
16446 DTIME = DSTEP/BECAS(ICAS)
16447 RSTEP = REL*FM2MM
16448 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16449 RTIME = RSTEP/BECAS(I2)
16450 ELSE
16451 RTIME = ZERO
16452 ENDIF
16453* save step whithout considering the overlapping region
16454 DSTEP1 = DEL1*FM2MM
16455 DTIME1 = DSTEP1/BECAS(ICAS)
16456 RSTEP1 = REL1*FM2MM
16457 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16458 RTIME1 = RSTEP1/BECAS(I2)
16459 ELSE
16460 RTIME1 = ZERO
16461 ENDIF
16462* transport to the end of the formation zone in this system
16463 DO 5 K=1,3
16464 VTXCA1(ICAS,K) = VTXCAS(ICAS,K)+DSTEP1*COSCAS(ICAS,K)
16465 VTXCA1(I2,K) = VTXCAS(I2,K) +RSTEP1*COSCAS(I2,K)
16466 VTXCAS(ICAS,K) = VTXCAS(ICAS,K)+DSTEP*COSCAS(ICAS,K)
16467 VTXCAS(I2,K) = VTXCAS(I2,K) +RSTEP*COSCAS(I2,K)
16468 5 CONTINUE
16469 VTXCA1(ICAS,4) = VTXCAS(ICAS,4)+DTIME1
16470 VTXCA1(I2,4) = VTXCAS(I2,4) +RTIME1
16471 VTXCAS(ICAS,4) = VTXCAS(ICAS,4)+DTIME
16472 VTXCAS(I2,4) = VTXCAS(I2,4) +RTIME
16473
16474 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16475 XCAS = VTXCAS(ICAS,1)
16476 YCAS = VTXCAS(ICAS,2)
16477 XNCLTA = BIMPAC*FM2MM
16478 RNCLPR = (RPROJ+RNUCLE)*FM2MM
16479 RNCLTA = (RTARG+RNUCLE)*FM2MM
16480C RNCLPR = (RPROJ+1.605D0*PDIF)*FM2MM
16481C RNCLTA = (RTARG+1.605D0*PDIF)*FM2MM
16482C RNCLPR = (RPROJ)*FM2MM
16483C RNCLTA = (RTARG)*FM2MM
16484 RCASPR = SQRT( XCAS**2 +YCAS**2)
16485 RCASTA = SQRT((XCAS-XNCLTA)**2+YCAS**2)
16486 IF ((RCASPR.LT.RNCLPR).AND.(RCASTA.LT.RNCLTA)) THEN
16487 IF (IDCH(IDXCAS).EQ.0) NOBAM(IDXCAS) = 3
16488 ENDIF
16489 ENDIF
16490
16491* check if particle is already outside of the corresp. nucleus
16492 RDIST = SQRT((VTXCAS(ICAS,1)-BIMPC(ICAS))**2+
16493 & VTXCAS(ICAS,2)**2+VTXCAS(ICAS,3)**2)
16494 IF (RDIST.GE.RNUC(ICAS)) THEN
16495* here: IDCH is the generation of the final state part. starting
16496* with zero for hadronization products
16497* flag particles of generation 0 being outside the nuclei after
16498* formation time (to be used for excitation energy calculation)
16499 IF ((IDCH(IDXCAS).EQ.0).AND.(NOBAM(IDXCAS).LT.3))
16500 & NOBAM(IDXCAS) = NOBAM(IDXCAS)+ICAS
16501 GOTO 9997
16502 ENDIF
16503 DIST = DLARGE
16504 DISTP = DLARGE
16505 DISTN = DLARGE
16506 IDXP = 0
16507 IDXN = 0
16508
16509* already here: skip particles being outside HADRIN "energy-window"
16510* to avoid wasting of time
16511 NINCHR(ICAS,1) = NINCHR(ICAS,1)+1
16512 IF ((PTOCAS(ICAS).LE.PLOWH).OR.(PTOCAS(ICAS).GE.PHIH)) THEN
16513 NINCHR(ICAS,2) = NINCHR(ICAS,2)+1
16514C WRITE(LOUT,1002) IDXCAS,IDCAS,ICAS,PTOCAS(ICAS),NEVHKK
16515C1002 FORMAT(1X,'INUCAS: warning! momentum of particle with ',
16516C & 'index ',I5,' (id: ',I3,') ',I3,/,11X,'p_tot = ',
16517C & E12.4,', above or below HADRIN-thresholds',I6)
16518 NSPE = 0
16519 GOTO 9997
16520 ENDIF
16521
16522 DO 7 IDXHKK=1,NOINC
16523 I = IDXINC(IDXHKK)
16524* scan DTEVT1 for unwounded or excited nucleons
16525 IF ((ISTHKK(I).EQ.12+ICAS).OR.(ISTHKK(I).EQ.14+ICAS)) THEN
16526 DO 8 K=1,3
16527 IF (ICAS.EQ.1) THEN
16528 VTXDST(K) = WHKK(K,I)-VTXCAS(1,K)
16529 ELSEIF (ICAS.EQ.2) THEN
16530 VTXDST(K) = VHKK(K,I)-VTXCAS(2,K)
16531 ENDIF
16532 8 CONTINUE
16533 POSNUC = VTXDST(1)*COSCAS(ICAS,1)+
16534 & VTXDST(2)*COSCAS(ICAS,2)+
16535 & VTXDST(3)*COSCAS(ICAS,3)
16536* check if nucleon is situated in forward direction
16537 IF (POSNUC.GT.ZERO) THEN
16538* distance between hadron and this nucleon
16539 DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16540 & VTXDST(3)**2)
16541* impact parameter
16542 BIMNU2 = DISTNU**2-POSNUC**2
16543 IF (BIMNU2.LT.ZERO) THEN
16544 WRITE(LOUT,1001) DISTNU,POSNUC,BIMNU2
16545 1001 FORMAT(1X,'INUCAS: warning! inconsistent impact',
16546 & ' parameter ',/,20X,3E12.4)
16547 GOTO 7
16548 ENDIF
16549 BIMNU = SQRT(BIMNU2)
16550* maximum impact parameter to have interaction
16551 IDNUC = IDT_ICIHAD(IDHKK(I))
16552 IDNUC1 = IDT_MCHAD(IDNUC)
16553 IDCAS1 = IDT_MCHAD(IDCAS)
16554 DO 19 K=1,5
16555 PCAS1(K) = PCAS(ICAS,K)
16556 PNUC(K) = PHKK(K,I)
16557 19 CONTINUE
16558* Lorentz-parameter for trafo into rest-system of target
16559 DO 18 K=1,4
16560 BGTA(K) = PNUC(K)/MAX(PNUC(5),TINY10)
16561 18 CONTINUE
16562* transformation of projectile into rest-system of target
16563 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),
16564 & PCAS1(1),PCAS1(2),PCAS1(3),PCAS1(4),
16565 & PPTOT,PX,PY,PZ,PE)
16566**
16567C CALL DT_SIHNIN(IDCAS1,IDNUC1,PPTOT,SIGIN)
16568C CALL DT_SIHNEL(IDCAS1,IDNUC1,PPTOT,SIGEL)
16569 DUMZER = ZERO
16570 CALL DT_XSHN(IDCAS1,IDNUC1,PPTOT,DUMZER,SIGTOT,SIGEL)
16571 CALL DT_SIHNAB(IDCAS1,IDNUC1,PPTOT,SIGAB)
16572 IF (((IDCAS1.EQ.13).OR.(IDCAS1.EQ.14)).AND.
16573 & (PPTOT.LT.0.15D0)) SIGEL = SIGEL/2.0D0
16574 SIGIN = SIGTOT-SIGEL-SIGAB
16575C SIGTOT = SIGIN+SIGEL+SIGAB
16576**
16577 BIMMAX = SQRT(SIGTOT/(5.0D0*TWOPI))*FM2MM
16578* check if interaction is possible
16579 IF (BIMNU.LE.BIMMAX) THEN
16580* get nucleon with smallest distance and kind of interaction
16581* (elastic/inelastic)
16582 IF (DISTNU.LT.DIST) THEN
16583 DIST = DISTNU
16584 BINT = BIMNU
16585 IF (IDNUC.NE.IDSPE(1)) THEN
16586 IDSPE(2) = IDSPE(1)
16587 IDXSPE(2) = IDXSPE(1)
16588 IDSPE(1) = IDNUC
16589 ENDIF
16590 IDXSPE(1) = I
16591 NSPE = 1
16592**sr
16593 SELA = SIGEL
16594 SABS = SIGAB
16595 STOT = SIGTOT
16596C IF ((IDCAS.EQ.2).OR.(IDCAS.EQ.9)) THEN
16597C SELA = SIGEL
16598C STOT = SIGIN+SIGEL
16599C ELSE
16600C SELA = SIGEL+0.75D0*SIGIN
16601C STOT = 0.25D0*SIGIN+SELA
16602C ENDIF
16603**
16604 ENDIF
16605 ENDIf
16606 ENDIF
16607 DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16608 & VTXDST(3)**2)
16609 IDNUC = IDT_ICIHAD(IDHKK(I))
16610 IF (IDNUC.EQ.1) THEN
16611 IF (DISTNU.LT.DISTP) THEN
16612 DISTP = DISTNU
16613 IDXP = I
16614 POSP = POSNUC
16615 ENDIF
16616 ELSEIF (IDNUC.EQ.8) THEN
16617 IF (DISTNU.LT.DISTN) THEN
16618 DISTN = DISTNU
16619 IDXN = I
16620 POSN = POSNUC
16621 ENDIF
16622 ENDIF
16623 ENDIF
16624 7 CONTINUE
16625
16626* there is no nucleon for a secondary interaction
16627 IF (NSPE.EQ.0) GOTO 9997
16628
16629C IF ((IDCAS.EQ.13).AND.((PCAS(ICAS,4)-PCAS(ICAS,5)).LT.0.1D0))
16630C & WRITE(LOUT,*) STOT,SELA,SABS,IDXSPE
16631 IF (IDXSPE(2).EQ.0) THEN
16632 IF ((IDSPE(1).EQ.1).AND.(IDXN.GT.0)) THEN
16633C DO 80 K=1,3
16634C IF (ICAS.EQ.1) THEN
16635C VTXDST(K) = WHKK(K,IDXN)-WHKK(K,IDXSPE(1))
16636C ELSEIF (ICAS.EQ.2) THEN
16637C VTXDST(K) = VHKK(K,IDXN)-VHKK(K,IDXSPE(1))
16638C ENDIF
16639C 80 CONTINUE
16640C DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16641C & VTXDST(3)**2)
16642C IF ((DISTNU.LT.15.0D0*FM2MM).OR.(POSN.GT.ZERO)) THEN
16643 IDXSPE(2) = IDXN
16644 IDSPE(2) = 8
16645C ELSE
16646C STOT = STOT-SABS
16647C SABS = ZERO
16648C ENDIF
16649 ELSEIF ((IDSPE(1).EQ.8).AND.(IDXP.GT.0)) THEN
16650C DO 81 K=1,3
16651C IF (ICAS.EQ.1) THEN
16652C VTXDST(K) = WHKK(K,IDXP)-WHKK(K,IDXSPE(1))
16653C ELSEIF (ICAS.EQ.2) THEN
16654C VTXDST(K) = VHKK(K,IDXP)-VHKK(K,IDXSPE(1))
16655C ENDIF
16656C 81 CONTINUE
16657C DISTNU = SQRT(VTXDST(1)**2+VTXDST(2)**2+
16658C & VTXDST(3)**2)
16659C IF ((DISTNU.LT.15.0D0*FM2MM).OR.(POSP.GT.ZERO)) THEN
16660 IDXSPE(2) = IDXP
16661 IDSPE(2) = 1
16662C ELSE
16663C STOT = STOT-SABS
16664C SABS = ZERO
16665C ENDIF
16666 ELSE
16667 STOT = STOT-SABS
16668 SABS = ZERO
16669 ENDIF
16670 ENDIF
16671 RR = DT_RNDM(DIST)
16672 IF (RR.LT.SELA/STOT) THEN
16673 IPROC = 2
16674 ELSEIF ((RR.GE.SELA/STOT).AND.(RR.LT.(SELA+SABS)/STOT)) THEN
16675 IPROC = 3
16676 ELSE
16677 IPROC = 1
16678 ENDIF
16679
16680 DO 9 K=1,5
16681 PCAS1(K) = PCAS(ICAS,K)
16682 PNUC(K) = PHKK(K,IDXSPE(1))
16683 9 CONTINUE
16684 IF (IPROC.EQ.3) THEN
16685* 2-nucleon absorption of pion
16686 NSPE = 2
16687 CALL DT_ABSORP(IDCAS,PCAS1,NCAS,NSPE,IDSPE,IDXSPE,1,IREJ1)
16688 IF (IREJ1.NE.0) GOTO 9999
16689 IF (NSPE.GE.1) LABSOR = .TRUE.
16690 ELSE
16691* sample secondary interaction
16692 IDNUC = IDBAM(IDXSPE(1))
16693 CALL DT_HADRIN(IDCAS,PCAS1,IDNUC,PNUC,IPROC,IREJ1)
16694 IF (IREJ1.EQ.1) GOTO 9999
16695 IF (IREJ1.GT.1) GOTO 9998
16696 ENDIF
16697 ENDIF
16698
16699* update arrays to include Pauli-principle
16700 DO 10 I=1,NSPE
16701 IF (NWOUND(ICAS).LE.299) THEN
16702 NWOUND(ICAS) = NWOUND(ICAS)+1
16703 EWOUND(ICAS,NWOUND(ICAS)) = PHKK(4,IDXSPE(I))
16704 ENDIF
16705 10 CONTINUE
16706
16707* dump initial hadron for energy-momentum conservation check
16708 IF (LEMCCK)
16709 & CALL DT_EVTEMC(PCAS(ICAS,1),PCAS(ICAS,2),PCAS(ICAS,3),
16710 & PCAS(ICAS,4),1,IDUM,IDUM)
16711
16712* dump final state particles into DTEVT1
16713
16714* check if Pauli-principle is fulfilled
16715 NPAULI = 0
16716 NWTMP(1) = NWOUND(1)
16717 NWTMP(2) = NWOUND(2)
16718 DO 111 I=1,NFSP
16719 NPAULI = 0
16720 J1 = 2
16721 IF (((NCAS.EQ. 1).AND.(IT.LE.1)).OR.
16722 & ((NCAS.EQ.-1).AND.(IP.LE.1))) J1 = 1
16723 DO 117 J=1,J1
16724 IF ((NPAULI.NE.0).AND.(J.EQ.2)) GOTO 117
16725 IF (J.EQ.1) THEN
16726 IDX = ICAS
16727 PE = PFSP(4,I)
16728 ELSE
16729 IDX = I2
16730 MODE = 1
16731 IF (IDX.EQ.1) MODE = -1
16732 CALL DT_LTNUC(PFSP(3,I),PFSP(4,I),PZ,PE,MODE)
16733 ENDIF
16734* first check if cascade step is forbidden due to Pauli-principle
16735* (in case of absorpion this step is forced)
16736 IF ((.NOT.LABSOR).AND.LPAULI.AND.((IDFSP(I).EQ.1).OR.
16737 & (IDFSP(I).EQ.8))) THEN
16738* get nuclear potential barrier
16739 POT = EPOT(IDX,IDFSP(I))+AAM(IDFSP(I))
16740 IF (IDFSP(I).EQ.1) THEN
16741 POTLOW = POT-EBINDP(IDX)
16742 ELSE
16743 POTLOW = POT-EBINDN(IDX)
16744 ENDIF
16745* final state particle not able to escape nucleus
16746 IF (PE.LE.POTLOW) THEN
16747* check if there are wounded nucleons
16748 IF ((NWOUND(IDX).GE.1).AND.(PE.GE.
16749 & EWOUND(IDX,NWOUND(IDX)))) THEN
16750 NPAULI = NPAULI+1
16751 NWOUND(IDX) = NWOUND(IDX)-1
16752 ELSE
16753* interaction prohibited by Pauli-principle
16754 NWOUND(1) = NWTMP(1)
16755 NWOUND(2) = NWTMP(2)
16756 GOTO 9997
16757 ENDIF
16758 ENDIF
16759 ENDIF
16760 117 CONTINUE
16761 111 CONTINUE
16762
16763 NPAULI = 0
16764 NWOUND(1) = NWTMP(1)
16765 NWOUND(2) = NWTMP(2)
16766
16767 DO 11 I=1,NFSP
16768
16769 IST = ISTHKK(IDXCAS)
16770
16771 NPAULI = 0
16772 J1 = 2
16773 IF (((NCAS.EQ. 1).AND.(IT.LE.1)).OR.
16774 & ((NCAS.EQ.-1).AND.(IP.LE.1))) J1 = 1
16775 DO 17 J=1,J1
16776 IF ((NPAULI.NE.0).AND.(J.EQ.2)) GOTO 17
16777 IDX = ICAS
16778 PE = PFSP(4,I)
16779 IF (J.EQ.2) THEN
16780 IDX = I2
16781 CALL DT_LTNUC(PFSP(3,I),PFSP(4,I),PZ,PE,NCAS)
16782 ENDIF
16783* first check if cascade step is forbidden due to Pauli-principle
16784* (in case of absorpion this step is forced)
16785 IF ((.NOT.LABSOR).AND.LPAULI.AND.((IDFSP(I).EQ.1).OR.
16786 & (IDFSP(I).EQ.8))) THEN
16787* get nuclear potential barrier
16788 POT = EPOT(IDX,IDFSP(I))+AAM(IDFSP(I))
16789 IF (IDFSP(I).EQ.1) THEN
16790 POTLOW = POT-EBINDP(IDX)
16791 ELSE
16792 POTLOW = POT-EBINDN(IDX)
16793 ENDIF
16794* final state particle not able to escape nucleus
16795 IF (PE.LE.POTLOW) THEN
16796* check if there are wounded nucleons
16797 IF ((NWOUND(IDX).GE.1).AND.(PE.GE.
16798 & EWOUND(IDX,NWOUND(IDX)))) THEN
16799 NWOUND(IDX) = NWOUND(IDX)-1
16800 NPAULI = NPAULI+1
16801 IST = 14+IDX
16802 ELSE
16803* interaction prohibited by Pauli-principle
16804 NWOUND(1) = NWTMP(1)
16805 NWOUND(2) = NWTMP(2)
16806 GOTO 9997
16807 ENDIF
16808**sr
16809c ELSEIF (PE.LE.POT) THEN
16810cC ELSEIF ((PE.LE.POT).AND.(NWOUND(IDX).GE.1)) THEN
16811cC NWOUND(IDX) = NWOUND(IDX)-1
16812c**
16813c NPAULI = NPAULI+1
16814c IST = 14+IDX
16815 ENDIF
16816 ENDIF
16817 17 CONTINUE
16818
16819* dump final state particles for energy-momentum conservation check
16820 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I),-PFSP(2,I),-PFSP(3,I),
16821 & -PFSP(4,I),2,IDUM,IDUM)
16822
16823 PX = PFSP(1,I)
16824 PY = PFSP(2,I)
16825 PZ = PFSP(3,I)
16826 PE = PFSP(4,I)
16827 IF (ABS(IST).EQ.1) THEN
16828* transform particles back into n-n cms
16829* LEPTO: leave final state particles in target rest frame
16830C IF (MCGENE.EQ.3) THEN
16831C PFSP(1,I) = PX
16832C PFSP(2,I) = PY
16833C PFSP(3,I) = PZ
16834C PFSP(4,I) = PE
16835C ELSE
16836 IMODE = ICAS+1
16837 CALL DT_LTRANS(PX,PY,PZ,PE,PFSP(1,I),PFSP(2,I),PFSP(3,I),
16838 & PFSP(4,I),IDFSP(I),IMODE)
16839C ENDIF
16840 ELSEIF ((ICAS.EQ.2).AND.(IST.EQ.15)) THEN
16841* target cascade but fsp got stuck in proj. --> transform it into
16842* proj. rest system
16843 CALL DT_LTRANS(PX,PY,PZ,PE,PFSP(1,I),PFSP(2,I),PFSP(3,I),
16844 & PFSP(4,I),IDFSP(I),-1)
16845 ELSEIF ((ICAS.EQ.1).AND.(IST.EQ.16)) THEN
16846* proj. cascade but fsp got stuck in target --> transform it into
16847* target rest system
16848 CALL DT_LTRANS(PX,PY,PZ,PE,PFSP(1,I),PFSP(2,I),PFSP(3,I),
16849 & PFSP(4,I),IDFSP(I),1)
16850 ENDIF
16851
16852* dump final state particles into DTEVT1
16853 IGEN = IDCH(IDXCAS)+1
16854 ID = IDT_IPDGHA(IDFSP(I))
16855 IXR = 0
16856 IF (LABSOR) IXR = 99
16857 CALL DT_EVTPUT(IST,ID,IDXCAS,IDXSPE(1),PFSP(1,I),
16858 & PFSP(2,I),PFSP(3,I),PFSP(4,I),0,IXR,IGEN)
16859
16860* update the counter for particles which got stuck inside the nucleus
16861 IF ((IST.EQ.15).OR.(IST.EQ.16)) THEN
16862 NOINC = NOINC+1
16863 IDXINC(NOINC) = NHKK
16864 ENDIF
16865 IF (LABSOR) THEN
16866* in case of absorption the spatial treatment is an approximate
16867* solution anyway (the positions of the nucleons which "absorb" the
16868* cascade particle are not taken into consideration) therefore the
16869* particles are produced at the position of the cascade particle
16870 DO 12 K=1,4
16871 WHKK(K,NHKK) = WHKK(K,IDXCAS)
16872 VHKK(K,NHKK) = VHKK(K,IDXCAS)
16873 12 CONTINUE
16874 ELSE
16875* DDISTL - distance the cascade particle moves to the intera. point
16876* (the position where impact-parameter = distance to the interacting
16877* nucleon), DIST - distance to the interacting nucleon at the time of
16878* formation of the cascade particle, BINT - impact-parameter of this
16879* cascade-interaction
16880 DDISTL = SQRT(DIST**2-BINT**2)
16881 DTIME = DDISTL/BECAS(ICAS)
16882 DTIMEL = DDISTL/BGCAS(ICAS)
16883 RDISTL = DTIMEL*BGCAS(I2)
16884 IF ((IP.GT.1).AND.(IT.GT.1)) THEN
16885 RTIME = RDISTL/BECAS(I2)
16886 ELSE
16887 RTIME = ZERO
16888 ENDIF
16889* RDISTL, RTIME are this step and time in the rest system of the other
16890* nucleus
16891 DO 13 K=1,3
16892 VTXCA1(ICAS,K) = VTXCAS(ICAS,K)+COSCAS(ICAS,K)*DDISTL
16893 VTXCA1(I2,K) = VTXCAS(I2,K) +COSCAS(I2,K) *RDISTL
16894 13 CONTINUE
16895 VTXCA1(ICAS,4) = VTXCAS(ICAS,4)+DTIME
16896 VTXCA1(I2,4) = VTXCAS(I2,4) +RTIME
16897* position of particle production is half the impact-parameter to
16898* the interacting nucleon
16899 DO 14 K=1,3
16900 WHKK(K,NHKK) = OHALF*(VTXCA1(1,K)+WHKK(K,IDXSPE(1)))
16901 VHKK(K,NHKK) = OHALF*(VTXCA1(2,K)+VHKK(K,IDXSPE(1)))
16902 14 CONTINUE
16903* time of production of secondary = time of interaction
16904 WHKK(4,NHKK) = VTXCA1(1,4)
16905 VHKK(4,NHKK) = VTXCA1(2,4)
16906 ENDIF
16907
16908 11 CONTINUE
16909
16910* modify status and position of cascade particle (the latter for
16911* statistics reasons only)
16912 ISTHKK(IDXCAS) = 2
16913 IF (LABSOR) ISTHKK(IDXCAS) = 19
16914 IF (.NOT.LABSOR) THEN
16915 DO 15 K=1,4
16916 WHKK(K,IDXCAS) = VTXCA1(1,K)
16917 VHKK(K,IDXCAS) = VTXCA1(2,K)
16918 15 CONTINUE
16919 ENDIF
16920
16921 DO 16 I=1,NSPE
16922 IS = IDXSPE(I)
16923* dump interacting nucleons for energy-momentum conservation check
16924 IF (LEMCCK)
16925 & CALL DT_EVTEMC(PHKK(1,IS),PHKK(2,IS),PHKK(3,IS),PHKK(4,IS),
16926 & 2,IDUM,IDUM)
16927* modify entry for interacting nucleons
16928 IF (ISTHKK(IS).EQ.12+ICAS) ISTHKK(IS)=16+ICAS
16929 IF (ISTHKK(IS).EQ.14+ICAS) ISTHKK(IS)=2
16930 IF (I.GE.2) THEN
16931 JDAHKK(1,IS) = JDAHKK(1,IDXSPE(1))
16932 JDAHKK(2,IS) = JDAHKK(2,IDXSPE(1))
16933 ENDIF
16934 16 CONTINUE
16935
16936* check energy-momentum conservation
16937 IF (LEMCCK) THEN
16938 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,4,500,IREJ1)
16939 IF (IREJ1.NE.0) GOTO 9999
16940 ENDIF
16941
16942* update counter
16943 IF (LABSOR) THEN
16944 NINCCO(ICAS,1) = NINCCO(ICAS,1)+1
16945 ELSE
16946 IF (IPROC.EQ.1) NINCCO(ICAS,2) = NINCCO(ICAS,2)+1
16947 IF (IPROC.EQ.2) NINCCO(ICAS,3) = NINCCO(ICAS,3)+1
16948 ENDIF
16949
16950 RETURN
16951
16952 9997 CONTINUE
16953 9998 CONTINUE
16954* transport-step but no cascade step due to configuration (i.e. there
16955* is no nucleon for interaction etc.)
16956 IF (LCAS) THEN
16957 DO 100 K=1,4
16958C WHKK(K,IDXCAS) = VTXCAS(1,K)
16959C VHKK(K,IDXCAS) = VTXCAS(2,K)
16960 WHKK(K,IDXCAS) = VTXCA1(1,K)
16961 VHKK(K,IDXCAS) = VTXCA1(2,K)
16962 100 CONTINUE
16963 ENDIF
16964
16965C9998 CONTINUE
16966* no cascade-step because of configuration
16967* (i.e. hadron outside nucleus etc.)
16968 LCAS = .TRUE.
16969 RETURN
16970
16971 9999 CONTINUE
16972* rejection
16973 IREJ = 1
16974 RETURN
16975 END
16976
16977*$ CREATE DT_ABSORP.FOR
16978*COPY DT_ABSORP
16979*
16980*===absorp=============================================================*
16981*
16982 SUBROUTINE DT_ABSORP(IDCAS,PCAS,NCAS,NSPE,IDSPE,IDXSPE,MODE,IREJ)
16983
16984************************************************************************
16985* Two-nucleon absorption of antiprotons, pi-, and K-. *
16986* Antiproton absorption is handled by HADRIN. *
16987* The following channels for meson-absorption are considered: *
16988* pi- + p + p ---> n + p *
16989* pi- + p + n ---> n + n *
16990* K- + p + p ---> sigma+ + n / Lam + p / sigma0 + p *
16991* K- + p + n ---> sigma- + n / Lam + n / sigma0 + n *
16992* K- + p + p ---> sigma- + n *
16993* IDCAS, PCAS identity, momentum of particle to be absorbed *
16994* NCAS = 1 intranuclear cascade in projectile *
16995* = -1 intranuclear cascade in target *
16996* NSPE number of spectator nucleons involved *
16997* IDXSPE(2) DTEVT1-indices of spectator nucleons involved *
16998* Revised version of the original STOPIK written by HJM and J. Ranft. *
16999* This version dated 24.02.95 is written by S. Roesler *
17000************************************************************************
17001
17002 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17003 SAVE
17004 PARAMETER ( LINP = 10 ,
17005 & LOUT = 6 ,
17006 & LDAT = 9 )
17007 PARAMETER (TINY10=1.0D-10,TINY5=1.0D-5,ONE=1.0D0,
17008 & ONETHI=0.3333D0,TWOTHI=0.6666D0)
17009
17010* event history
17011 PARAMETER (NMXHKK=200000)
17012 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
17013 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
17014 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
17015* extended event history
17016 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
17017 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
17018 & IHIST(2,NMXHKK)
17019* flags for input different options
17020 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
17021 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
17022 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
17023* final state after inc step
17024 PARAMETER (MAXFSP=10)
17025 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
17026* particle properties (BAMJET index convention)
17027 CHARACTER*8 ANAME
17028 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17029 & IICH(210),IIBAR(210),K1(210),K2(210)
17030
17031 DIMENSION PCAS(5),IDXSPE(2),IDSPE(2),PSPE(2,5),PSPE1(5),
17032 & PTOT3P(4),BG3P(4),
17033 & ECMF(2),PCMF(2),CODF(2),COFF(2),SIFF(2)
17034
17035 IREJ = 0
17036 NFSP = 0
17037
17038* skip particles others than ap, pi-, K- for mode=0
17039 IF ((MODE.EQ.0).AND.
17040 & (IDCAS.NE.2).AND.(IDCAS.NE.14).AND.(IDCAS.NE.16)) RETURN
17041* skip particles others than pions for mode=1
17042* (2-nucleon absorption in intranuclear cascade)
17043 IF ((MODE.EQ.1).AND.
17044 & (IDCAS.NE.13).AND.(IDCAS.NE.14).AND.(IDCAS.NE.23)) RETURN
17045
17046 NUCAS = NCAS
17047 IF (NUCAS.EQ.-1) NUCAS = 2
17048
17049 IF (MODE.EQ.0) THEN
17050* scan spectator nucleons for nucleons being able to "absorb"
17051 NSPE = 0
17052 IDXSPE(1) = 0
17053 IDXSPE(2) = 0
17054 DO 1 I=1,NHKK
17055 IF ((ISTHKK(I).EQ.12+NUCAS).OR.(ISTHKK(I).EQ.14+NUCAS)) THEN
17056 NSPE = NSPE+1
17057 IDXSPE(NSPE) = I
17058 IDSPE(NSPE) = IDBAM(I)
17059 IF ((NSPE.EQ.1).AND.(IDCAS.EQ.2)) GOTO 2
17060 IF (NSPE.EQ.2) THEN
17061 IF ((IDCAS.EQ.14).AND.(IDSPE(1).EQ.8).AND.
17062 & (IDSPE(2).EQ.8)) THEN
17063* there is no pi-+n+n channel
17064 NSPE = 1
17065 GOTO 1
17066 ELSE
17067 GOTO 2
17068 ENDIF
17069 ENDIF
17070 ENDIF
17071 1 CONTINUE
17072
17073 2 CONTINUE
17074 ENDIF
17075* transform excited projectile nucleons (status=15) into proj. rest s.
17076 DO 3 I=1,NSPE
17077 DO 4 K=1,5
17078 PSPE(I,K) = PHKK(K,IDXSPE(I))
17079 4 CONTINUE
17080 3 CONTINUE
17081
17082* antiproton absorption
17083 IF ((IDCAS.EQ.2).AND.(NSPE.GE.1)) THEN
17084 DO 5 K=1,5
17085 PSPE1(K) = PSPE(1,K)
17086 5 CONTINUE
17087 CALL DT_HADRIN(IDCAS,PCAS,IDSPE(1),PSPE1,1,IREJ1)
17088 IF (IREJ1.NE.0) GOTO 9999
17089
17090* meson absorption
17091 ELSEIF (((IDCAS.EQ.13).OR.(IDCAS.EQ.14).OR.(IDCAS.EQ.23)
17092 & .OR.(IDCAS.EQ.16)).AND.(NSPE.GE.2)) THEN
17093 IF (IDCAS.EQ.14) THEN
17094* pi- absorption
17095 IDFSP(1) = 8
17096 IDFSP(2) = 8
17097 IF ((IDSPE(1).EQ.1).AND.(IDSPE(2).EQ.1)) IDFSP(2) = 1
17098 ELSEIF (IDCAS.EQ.13) THEN
17099* pi+ absorption
17100 IDFSP(1) = 1
17101 IDFSP(2) = 1
17102 IF ((IDSPE(1).EQ.8).AND.(IDSPE(2).EQ.8)) IDFSP(2) = 8
17103 ELSEIF (IDCAS.EQ.23) THEN
17104* pi0 absorption
17105 IDFSP(1) = IDSPE(1)
17106 IDFSP(2) = IDSPE(2)
17107 ELSEIF (IDCAS.EQ.16) THEN
17108* K- absorption
17109 R = DT_RNDM(PCAS)
17110 IF ((IDSPE(1).EQ.1).AND.(IDSPE(2).EQ.1)) THEN
17111 IF (R.LT.ONETHI) THEN
17112 IDFSP(1) = 21
17113 IDFSP(2) = 8
17114 ELSEIF (R.LT.TWOTHI) THEN
17115 IDFSP(1) = 17
17116 IDFSP(2) = 1
17117 ELSE
17118 IDFSP(1) = 22
17119 IDFSP(2) = 1
17120 ENDIF
17121 ELSEIF ((IDSPE(1).EQ.8).AND.(IDSPE(2).EQ.8)) THEN
17122 IDFSP(1) = 20
17123 IDFSP(2) = 8
17124 ELSE
17125 IF (R.LT.ONETHI) THEN
17126 IDFSP(1) = 20
17127 IDFSP(2) = 1
17128 ELSEIF (R.LT.TWOTHI) THEN
17129 IDFSP(1) = 17
17130 IDFSP(2) = 8
17131 ELSE
17132 IDFSP(1) = 22
17133 IDFSP(2) = 8
17134 ENDIF
17135 ENDIF
17136 ENDIF
17137* dump initial particles for energy-momentum cons. check
17138 IF (LEMCCK) THEN
17139 CALL DT_EVTEMC(PCAS(1),PCAS(2),PCAS(3),PCAS(4),1,IDUM,IDUM)
17140 CALL DT_EVTEMC(PSPE(1,1),PSPE(1,2),PSPE(1,3),PSPE(1,4),2,
17141 & IDUM,IDUM)
17142 CALL DT_EVTEMC(PSPE(2,1),PSPE(2,2),PSPE(2,3),PSPE(2,4),2,
17143 & IDUM,IDUM)
17144 ENDIF
17145* get Lorentz-parameter of 3 particle initial state
17146 DO 6 K=1,4
17147 PTOT3P(K) = PCAS(K)+PSPE(1,K)+PSPE(2,K)
17148 6 CONTINUE
17149 P3P = SQRT(PTOT3P(1)**2+PTOT3P(2)**2+PTOT3P(3)**2)
17150 AM3P = SQRT( (PTOT3P(4)-P3P)*(PTOT3P(4)+P3P) )
17151 DO 7 K=1,4
17152 BG3P(K) = PTOT3P(K)/MAX(AM3P,TINY10)
17153 7 CONTINUE
17154* 2-particle decay of the 3-particle compound system
17155 CALL DT_DTWOPD(AM3P,ECMF(1),ECMF(2),PCMF(1),PCMF(2),
17156 & CODF(1),COFF(1),SIFF(1),CODF(2),COFF(2),SIFF(2),
17157 & AAM(IDFSP(1)),AAM(IDFSP(2)))
17158 DO 8 I=1,2
17159 SDF = SQRT((ONE-CODF(I))*(ONE+CODF(I)))
17160 PX = PCMF(I)*COFF(I)*SDF
17161 PY = PCMF(I)*SIFF(I)*SDF
17162 PZ = PCMF(I)*CODF(I)
17163 CALL DT_DALTRA(BG3P(4),BG3P(1),BG3P(2),BG3P(3),PX,PY,PZ,
17164 & ECMF(I),PTOFSP,PFSP(1,I),PFSP(2,I),PFSP(3,I),
17165 & PFSP(4,I))
17166 PFSP(5,I) = SQRT( (PFSP(4,I)-PTOFSP)*(PFSP(4,I)+PTOFSP) )
17167* check consistency of kinematics
17168 IF (ABS(AAM(IDFSP(I))-PFSP(5,I)).GT.TINY5) THEN
17169 WRITE(LOUT,1001) IDFSP(I),AAM(IDFSP(I)),PFSP(5,I)
17170 1001 FORMAT(1X,'ABSORP: warning! inconsistent',
17171 & ' tree-particle kinematics',/,20X,'id: ',I3,
17172 & ' AAM = ',E10.4,' MFSP = ',E10.4)
17173 ENDIF
17174* dump final state particles for energy-momentum cons. check
17175 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I),-PFSP(2,I),
17176 & -PFSP(3,I),-PFSP(4,I),2,IDUM,IDUM)
17177 8 CONTINUE
17178 NFSP = 2
17179 IF (LEMCCK) THEN
17180 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,100,IREJ1)
17181 IF (IREJ1.NE.0) THEN
17182 WRITE(LOUT,*)'ABSORB: EMC ',AAM(IDFSP(1)),AAM(IDFSP(2)),
17183 & AM3P
17184 GOTO 9999
17185 ENDIF
17186 ENDIF
17187 ELSE
17188 IF (IOULEV(3).GT.0) WRITE(LOUT,1000) IDCAS,NSPE
17189 1000 FORMAT(1X,'ABSORP: warning! absorption for particle ',I3,
17190 & ' impossible',/,20X,'too few spectators (',I2,')')
17191 NSPE = 0
17192 ENDIF
17193
17194 RETURN
17195
17196 9999 CONTINUE
17197 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in ABSORP'
17198 IREJ = 1
17199 RETURN
17200 END
17201
17202*$ CREATE DT_HADRIN.FOR
17203*COPY DT_HADRIN
17204*
17205*===hadrin=============================================================*
17206*
17207 SUBROUTINE DT_HADRIN(IDPR,PPR,IDTA,PTA,MODE,IREJ)
17208
17209************************************************************************
17210* Interface to the HADRIN-routines for inelastic and elastic *
17211* scattering. *
17212* IDPR,PPR(5) identity, momentum of projectile *
17213* IDTA,PTA(5) identity, momentum of target *
17214* MODE = 1 inelastic interaction *
17215* = 2 elastic interaction *
17216* Revised version of the original FHAD. *
17217* This version dated 27.10.95 is written by S. Roesler *
17218************************************************************************
17219
17220 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17221 SAVE
17222 PARAMETER ( LINP = 10 ,
17223 & LOUT = 6 ,
17224 & LDAT = 9 )
17225 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,TINY5=1.0D-5,TINY3=1.0D-3,
17226 & TINY2=1.0D-2,TINY1=1.0D-1,ONE=1.0D0)
17227
17228 LOGICAL LCORR,LMSSG
17229
17230* flags for input different options
17231 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
17232 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
17233 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
17234* final state after inc step
17235 PARAMETER (MAXFSP=10)
17236 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
17237* particle properties (BAMJET index convention)
17238 CHARACTER*8 ANAME
17239 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17240 & IICH(210),IIBAR(210),K1(210),K2(210)
17241* output-common for DHADRI/ELHAIN
17242* final state from HADRIN interaction
17243 PARAMETER (MAXFIN=10)
17244 COMMON /HNFSPA/ ITRH(MAXFIN),CXRH(MAXFIN),CYRH(MAXFIN),
17245 & CZRH(MAXFIN),ELRH(MAXFIN),PLRH(MAXFIN),IRH
17246
17247 DIMENSION PPR(5),PPR1(5),PTA(5),BGTA(4),
17248 & P1IN(4),P2IN(4),P1OUT(4),P2OUT(4),IMCORR(2)
17249
17250 DATA LMSSG /.TRUE./
17251
17252 IREJ = 0
17253 NFSP = 0
17254 KCORR = 0
17255 IMCORR(1) = 0
17256 IMCORR(2) = 0
17257 LCORR = .FALSE.
17258
17259* dump initial particles for energy-momentum cons. check
17260 IF (LEMCCK) THEN
17261 CALL DT_EVTEMC(PPR(1),PPR(2),PPR(3),PPR(4),1,IDUM,IDUM)
17262 CALL DT_EVTEMC(PTA(1),PTA(2),PTA(3),PTA(4),2,IDUM,IDUM)
17263 ENDIF
17264
17265 AMP2 = PPR(4)**2-PPR(1)**2-PPR(2)**2-PPR(3)**2
17266 AMT2 = PTA(4)**2-PTA(1)**2-PTA(2)**2-PTA(3)**2
17267 IF ((AMP2.LT.ZERO).OR.(AMT2.LT.ZERO).OR.
17268 & (ABS(AMP2-AAM(IDPR)**2).GT.TINY5).OR.
17269 & (ABS(AMT2-AAM(IDTA)**2).GT.TINY5)) THEN
17270 IF (LMSSG.AND.(IOULEV(3).GT.0))
17271 & WRITE(LOUT,1000) AMP2,AAM(IDPR)**2,AMT2,AAM(IDTA)**2
17272 1000 FORMAT(1X,'HADRIN: warning! inconsistent projectile/target',
17273 & ' mass',/,20X,'AMP2 = ',E12.4,', AAM(IDPR)**2 = ',
17274 & E12.4,/,20X,'AMT2 = ',E12.4,', AAM(IDTA)**2 = ',E12.4)
17275 LMSSG = .FALSE.
17276 LCORR = .TRUE.
17277 ENDIF
17278
17279* convert initial state particles into particles which can be
17280* handled by HADRIN
17281 IDHPR = IDPR
17282 IDHTA = IDTA
17283 IF ((IDHPR.LE.0).OR.(IDHPR.GE.111).OR.LCORR) THEN
17284 IF ((IDHPR.LE.0).OR.(IDHPR.GE.111)) IDHPR = 1
17285 DO 1 K=1,4
17286 P1IN(K) = PPR(K)
17287 P2IN(K) = PTA(K)
17288 1 CONTINUE
17289 XM1 = AAM(IDHPR)
17290 XM2 = AAM(IDHTA)
17291 CALL DT_MASHEL(P1IN,P2IN,XM1,XM2,P1OUT,P2OUT,IREJ1)
17292 IF (IREJ1.GT.0) THEN
17293 WRITE(LOUT,'(1X,A)') 'HADRIN: inconsistent mass trsf.'
17294 GOTO 9999
17295 ENDIF
17296 DO 2 K=1,4
17297 PPR(K) = P1OUT(K)
17298 PTA(K) = P2OUT(K)
17299 2 CONTINUE
17300 PPR(5) = SQRT(PPR(4)**2-PPR(1)**2-PPR(2)**2-PPR(3)**2)
17301 PTA(5) = SQRT(PTA(4)**2-PTA(1)**2-PTA(2)**2-PTA(3)**2)
17302 ENDIF
17303
17304* Lorentz-parameter for trafo into rest-system of target
17305 DO 3 K=1,4
17306 BGTA(K) = PTA(K)/PTA(5)
17307 3 CONTINUE
17308* transformation of projectile into rest-system of target
17309 CALL DT_DALTRA(BGTA(4),-BGTA(1),-BGTA(2),-BGTA(3),PPR(1),PPR(2),
17310 & PPR(3),PPR(4),PPRTO1,PPR1(1),PPR1(2),PPR1(3),
17311 & PPR1(4))
17312
17313* direction cosines of projectile in target rest system
17314 CX = PPR1(1)/PPRTO1
17315 CY = PPR1(2)/PPRTO1
17316 CZ = PPR1(3)/PPRTO1
17317
17318* sample inelastic interaction
17319 IF (MODE.EQ.1) THEN
17320 CALL DT_DHADRI(IDHPR,PPRTO1,PPR1(4),CX,CY,CZ,IDHTA)
17321 IF (IRH.EQ.1) GOTO 9998
17322* sample elastic interaction
17323 ELSEIF (MODE.EQ.2) THEN
17324 CALL DT_ELHAIN(IDHPR,PPRTO1,PPR1(4),CX,CY,CZ,IDHTA,IREJ1)
17325 IF (IREJ1.NE.0) THEN
17326 IF (IOULEV(1).GT.0) WRITE(LOUT,*) 'rejected 1 in HADRIN'
17327 GOTO 9999
17328 ENDIF
17329 IF (IRH.EQ.1) GOTO 9998
17330 ELSE
17331 WRITE(LOUT,1001) MODE,INTHAD
17332 1001 FORMAT(1X,'HADRIN: warning! inconsistent interaction mode',
17333 & I4,' (INTHAD =',I4,')')
17334 GOTO 9999
17335 ENDIF
17336
17337* transform final state particles back into Lab.
17338 DO 4 I=1,IRH
17339 NFSP = NFSP+1
17340 PX = CXRH(I)*PLRH(I)
17341 PY = CYRH(I)*PLRH(I)
17342 PZ = CZRH(I)*PLRH(I)
17343 CALL DT_DALTRA(BGTA(4),BGTA(1),BGTA(2),BGTA(3),
17344 & PX,PY,PZ,ELRH(I),PTOFSP,PFSP(1,NFSP),
17345 & PFSP(2,NFSP),PFSP(3,NFSP),PFSP(4,NFSP))
17346 IDFSP(NFSP) = ITRH(I)
17347 AMFSP2 = PFSP(4,NFSP)**2-PFSP(1,NFSP)**2-PFSP(2,NFSP)**2-
17348 & PFSP(3,NFSP)**2
17349 IF (AMFSP2.LT.-TINY3) THEN
17350 WRITE(LOUT,1002) IDFSP(NFSP),PFSP(1,NFSP),PFSP(2,NFSP),
17351 & PFSP(3,NFSP),PFSP(4,NFSP),AMFSP2
17352 1002 FORMAT(1X,'HADRIN: warning! final state particle (id = ',
17353 & I2,') with negative mass^2',/,1X,5E12.4)
17354 GOTO 9999
17355 ELSE
17356 PFSP(5,NFSP) = SQRT(ABS(AMFSP2))
17357 IF (ABS(PFSP(5,NFSP)-AAM(IDFSP(NFSP))).GT.TINY1) THEN
17358 WRITE(LOUT,1003) IDFSP(NFSP),AAM(IDFSP(NFSP)),
17359 & PFSP(5,NFSP)
17360 1003 FORMAT(1X,'HADRIN: warning! final state particle',
17361 & ' (id = ',I2,') with inconsistent mass',/,1X,
17362 & 2E12.4)
17363 KCORR = KCORR+1
17364 IF (KCORR.GT.2) GOTO 9999
17365 IMCORR(KCORR) = NFSP
17366 ENDIF
17367 ENDIF
17368* dump final state particles for energy-momentum cons. check
17369 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I),-PFSP(2,I),
17370 & -PFSP(3,I),-PFSP(4,I),2,IDUM,IDUM)
17371 4 CONTINUE
17372
17373* transform momenta on mass shell in case of inconsistencies in
17374* HADRIN
17375 IF (KCORR.GT.0) THEN
17376 IF (KCORR.EQ.2) THEN
17377 I1 = IMCORR(1)
17378 I2 = IMCORR(2)
17379 ELSE
17380 IF (IMCORR(1).EQ.1) THEN
17381 I1 = 1
17382 I2 = 2
17383 ELSE
17384 I1 = 1
17385 I2 = IMCORR(1)
17386 ENDIF
17387 ENDIF
17388 IF (LEMCCK) CALL DT_EVTEMC(PFSP(1,I1),PFSP(2,I1),
17389 & PFSP(3,I1),PFSP(4,I1),2,IDUM,IDUM)
17390 IF (LEMCCK) CALL DT_EVTEMC(PFSP(1,I2),PFSP(2,I2),
17391 & PFSP(3,I2),PFSP(4,I2),2,IDUM,IDUM)
17392 DO 5 K=1,4
17393 P1IN(K) = PFSP(K,I1)
17394 P2IN(K) = PFSP(K,I2)
17395 5 CONTINUE
17396 XM1 = AAM(IDFSP(I1))
17397 XM2 = AAM(IDFSP(I2))
17398 CALL DT_MASHEL(P1IN,P2IN,XM1,XM2,P1OUT,P2OUT,IREJ1)
17399 IF (IREJ1.GT.0) THEN
17400 WRITE(LOUT,'(1X,A)') 'HADRIN: inconsistent mass trsf.'
17401C GOTO 9999
17402 ENDIF
17403 DO 6 K=1,4
17404 PFSP(K,I1) = P1OUT(K)
17405 PFSP(K,I2) = P2OUT(K)
17406 6 CONTINUE
17407 PFSP(5,I1) = SQRT(PFSP(4,I1)**2-PFSP(1,I1)**2
17408 & -PFSP(2,I1)**2-PFSP(3,I1)**2)
17409 PFSP(5,I2) = SQRT(PFSP(4,I2)**2-PFSP(1,I2)**2
17410 & -PFSP(2,I2)**2-PFSP(3,I2)**2)
17411* dump final state particles for energy-momentum cons. check
17412 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I1),-PFSP(2,I1),
17413 & -PFSP(3,I1),-PFSP(4,I1),2,IDUM,IDUM)
17414 IF (LEMCCK) CALL DT_EVTEMC(-PFSP(1,I2),-PFSP(2,I2),
17415 & -PFSP(3,I2),-PFSP(4,I2),2,IDUM,IDUM)
17416 ENDIF
17417
17418* check energy-momentum conservation
17419 IF (LEMCCK) THEN
17420 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,4,102,IREJ1)
17421 IF (IREJ1.NE.0) GOTO 9999
17422 ENDIF
17423
17424 RETURN
17425
17426 9998 CONTINUE
17427 IREJ = 2
17428 RETURN
17429
17430 9999 CONTINUE
17431 IREJ = 1
17432 RETURN
17433 END
17434
17435*$ CREATE DT_HADCOL.FOR
17436*COPY DT_HADCOL
17437*
17438*===hadcol=============================================================*
17439*
17440 SUBROUTINE DT_HADCOL(IDPROJ,PPN,IDXTAR,IREJ)
17441
17442************************************************************************
17443* Interface to the HADRIN-routines for inelastic and elastic *
17444* scattering. This subroutine samples hadron-nucleus interactions *
17445* below DPM-threshold. *
17446* IDPROJ BAMJET-index of projectile hadron *
17447* PPN projectile momentum in target rest frame *
17448* IDXTAR DTEVT1-index of target nucleon undergoing *
17449* interaction with projectile hadron *
17450* This subroutine replaces HADHAD. *
17451* This version dated 5.5.95 is written by S. Roesler *
17452************************************************************************
17453
17454 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17455 SAVE
17456 PARAMETER ( LINP = 10 ,
17457 & LOUT = 6 ,
17458 & LDAT = 9 )
17459 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,TINY3=1.0D-3,ONE=1.0D0)
17460
17461 LOGICAL LSTART
17462
17463* event history
17464 PARAMETER (NMXHKK=200000)
17465 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
17466 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
17467 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
17468* extended event history
17469 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
17470 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
17471 & IHIST(2,NMXHKK)
17472* nuclear potential
17473 LOGICAL LFERMI
17474 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
17475 & EBINDP(2),EBINDN(2),EPOT(2,210),
17476 & ETACOU(2),ICOUL,LFERMI
17477* interface HADRIN-DPM
17478 COMMON /HNTHRE/ EHADTH,EHADLO,EHADHI,INTHAD,IDXTA
17479* parameter for intranuclear cascade
17480 LOGICAL LPAULI
17481 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
17482* final state after inc step
17483 PARAMETER (MAXFSP=10)
17484 COMMON /DTCAPA/ PFSP(5,MAXFSP),IDFSP(MAXFSP),NFSP
17485* particle properties (BAMJET index convention)
17486 CHARACTER*8 ANAME
17487 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17488 & IICH(210),IIBAR(210),K1(210),K2(210)
17489
17490 DIMENSION PPROJ(5),PNUC(5)
17491
17492 DATA LSTART /.TRUE./
17493
17494 IREJ = 0
17495
17496 NPOINT(1) = NHKK+1
17497
17498 TAUSAV = TAUFOR
17499**sr 6/9/01 commented
17500C TAUFOR = TAUFOR/2.0D0
17501**
17502 IF (LSTART) THEN
17503 WRITE(LOUT,1000)
17504 1000 FORMAT(/,1X,'HADCOL: Scattering handled by HADRIN')
17505 WRITE(LOUT,1001) TAUFOR
17506 1001 FORMAT(/,1X,'HADCOL: Formation zone parameter set to ',
17507 & F5.1,' fm/c')
17508 LSTART = .FALSE.
17509 ENDIF
17510
17511 IDNUC = IDBAM(IDXTAR)
17512 IDNUC1 = IDT_MCHAD(IDNUC)
17513 IDPRO1 = IDT_MCHAD(IDPROJ)
17514
17515 IF ((INTHAD.EQ.1).OR.(INTHAD.EQ.2)) THEN
17516 IPROC = INTHAD
17517 ELSE
17518**
17519C CALL DT_SIHNIN(IDPRO1,IDNUC1,PPN,SIGIN)
17520C CALL DT_SIHNEL(IDPRO1,IDNUC1,PPN,SIGEL)
17521 DUMZER = ZERO
17522 CALL DT_XSHN(IDPRO1,IDNUC1,PPN,DUMZER,SIGTOT,SIGEL)
17523 SIGIN = SIGTOT-SIGEL
17524C SIGTOT = SIGIN+SIGEL
17525**
17526 IPROC = 1
17527 IF (DT_RNDM(SIGIN).LT.SIGEL/SIGTOT) IPROC = 2
17528 ENDIF
17529
17530 PPROJ(1) = ZERO
17531 PPROJ(2) = ZERO
17532 PPROJ(3) = PPN
17533 PPROJ(5) = AAM(IDPROJ)
17534 PPROJ(4) = SQRT(PPROJ(5)**2+PPROJ(3)**2)
17535 DO 1 K=1,5
17536 PNUC(K) = PHKK(K,IDXTAR)
17537 1 CONTINUE
17538
17539 ILOOP = 0
17540 2 CONTINUE
17541 ILOOP = ILOOP+1
17542 IF (ILOOP.GT.100) GOTO 9999
17543
17544 CALL DT_HADRIN(IDPROJ,PPROJ,IDNUC,PNUC,IPROC,IREJ1)
17545 IF (IREJ1.EQ.1) GOTO 9999
17546
17547 IF (IREJ1.GT.1) THEN
17548* no interaction possible
17549* require Pauli blocking
17550 IF ((IDPROJ.EQ.1).AND.(PPROJ(4).LE.PFERMP(2)+PPROJ(5))) GOTO 2
17551 IF ((IDPROJ.EQ.8).AND.(PPROJ(4).LE.PFERMN(2)+PPROJ(5))) GOTO 2
17552 IF ((IIBAR(IDPROJ).NE.1).AND.
17553 & (PPROJ(4).LE.EPOT(2,IDPROJ)+PPROJ(5))) GOTO 2
17554* store incoming particle as final state particle
17555 CALL DT_LTNUC(PPROJ(3),PPROJ(4),PCMS,ECMS,3)
17556 CALL DT_EVTPUT(1,IDPROJ,1,0,PPROJ(1),PPROJ(2),PCMS,ECMS,0,0,0)
17557 NPOINT(4) = NHKK
17558 ELSE
17559* require Pauli blocking for final state nucleons
17560 DO 4 I=1,NFSP
17561 IF ((IDFSP(I).EQ.1).AND.
17562 & (PFSP(4,I).LE.PFERMP(2)+AAM(IDFSP(I)))) GOTO 2
17563 IF ((IDFSP(I).EQ.8).AND.
17564 & (PFSP(4,I).LE.PFERMN(2)+AAM(IDFSP(I)))) GOTO 2
17565 IF ((IIBAR(IDFSP(I)).NE.1).AND.
17566 & (PFSP(4,I).LE.EPOT(2,IDFSP(I))+AAM(IDFSP(I))))GOTO 2
17567 4 CONTINUE
17568* store final state particles
17569 DO 5 I=1,NFSP
17570 IST = 1
17571 IF ((IIBAR(IDFSP(I)).EQ.1).AND.
17572 & (PFSP(4,I).LE.EPOT(2,IDFSP(I))+AAM(IDFSP(I)))) IST = 16
17573 IDHAD = IDT_IPDGHA(IDFSP(I))
17574 CALL DT_LTNUC(PFSP(3,I),PFSP(4,I),PCMS,ECMS,3)
17575 CALL DT_EVTPUT(IST,IDHAD,1,IDXTAR,PFSP(1,I),PFSP(2,I),
17576 & PCMS,ECMS,0,0,0)
17577 IF (I.EQ.1) NPOINT(4) = NHKK
17578 VHKK(1,NHKK) = 0.5D0*(VHKK(1,1)+VHKK(1,IDXTAR))
17579 VHKK(2,NHKK) = 0.5D0*(VHKK(2,1)+VHKK(2,IDXTAR))
17580 VHKK(3,NHKK) = VHKK(3,IDXTAR)
17581 VHKK(4,NHKK) = VHKK(4,IDXTAR)
17582 WHKK(1,NHKK) = 0.5D0*(WHKK(1,1)+WHKK(1,IDXTAR))
17583 WHKK(2,NHKK) = 0.5D0*(WHKK(2,1)+WHKK(2,IDXTAR))
17584 WHKK(3,NHKK) = WHKK(3,1)
17585 WHKK(4,NHKK) = WHKK(4,1)
17586 5 CONTINUE
17587 ENDIF
17588 TAUFOR = TAUSAV
17589 RETURN
17590
17591 9999 CONTINUE
17592 IREJ = 1
17593 TAUFOR = TAUSAV
17594 RETURN
17595 END
17596
17597*$ CREATE DT_GETEMU.FOR
17598*COPY DT_GETEMU
17599*
17600*===getemu=============================================================*
17601*
17602 SUBROUTINE DT_GETEMU(IT,ITZ,KKMAT,MODE)
17603
17604************************************************************************
17605* Sampling of emulsion component to be considered as target-nucleus. *
17606* This version dated 6.5.95 is written by S. Roesler. *
17607************************************************************************
17608
17609 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17610 SAVE
17611 PARAMETER ( LINP = 10 ,
17612 & LOUT = 6 ,
17613 & LDAT = 9 )
17614 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY10=1.0D-10)
17615
17616 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
17617* emulsion treatment
17618 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
17619 & NCOMPO,IEMUL
17620* Glauber formalism: flags and parameters for statistics
17621 LOGICAL LPROD
17622 CHARACTER*8 CGLB
17623 COMMON /DTGLGP/ JSTATB,JBINSB,CGLB,IOGLB,LPROD
17624
17625 IF (MODE.EQ.0) THEN
17626 SUMFRA = ZERO
17627 RR = DT_RNDM(SUMFRA)
17628 IT = 0
17629 ITZ = 0
17630 DO 1 ICOMP=1,NCOMPO
17631 SUMFRA = SUMFRA+EMUFRA(ICOMP)
17632 IF (SUMFRA.GT.RR) THEN
17633 IT = IEMUMA(ICOMP)
17634 ITZ = IEMUCH(ICOMP)
17635 KKMAT = ICOMP
17636 GOTO 2
17637 ENDIF
17638 1 CONTINUE
17639 2 CONTINUE
17640 IF (IT.LE.0) THEN
17641 WRITE(LOUT,'(1X,A,E12.3)')
17642 & 'Warning! norm. failure within emulsion fractions',
17643 & SUMFRA
17644 STOP
17645 ENDIF
17646 ELSEIF (MODE.EQ.1) THEN
17647 NDIFF = 10000
17648 DO 3 I=1,NCOMPO
17649 IDIFF = ABS(IT-IEMUMA(I))
17650 IF (IDIFF.LT.NDIFF) THEN
17651 KKMAT = I
17652 NDIFF = IDIFF
17653 ENDIF
17654 3 CONTINUE
17655 ELSE
17656 STOP 'DT_GETEMU'
17657 ENDIF
17658
17659* bypass for variable projectile/target/energy runs: the correct
17660* Glauber data will be always loaded on kkmat=1
17661 IF (IOGLB.EQ.100) THEN
17662 KKMAT = 1
17663 ENDIF
17664
17665 RETURN
17666 END
17667
17668*$ CREATE DT_NCLPOT.FOR
17669*COPY DT_NCLPOT
17670*
17671*===nclpot=============================================================*
17672*
17673 SUBROUTINE DT_NCLPOT(IPZ,IP,ITZ,IT,AFERP,AFERT,MODE)
17674
17675************************************************************************
17676* Calculation of Coulomb and nuclear potential for a given configurat. *
17677* IPZ, IP charge/mass number of proj. *
17678* ITZ, IT charge/mass number of targ. *
17679* AFERP,AFERT factors modifying proj./target pot. *
17680* if =0, FERMOD is used *
17681* MODE = 0 calculation of binding energy *
17682* = 1 pre-calculated binding energy is used *
17683* This version dated 16.11.95 is written by S. Roesler. *
17684* *
17685* Last change 28.12.2006 by S. Roesler. *
17686************************************************************************
17687
17688 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17689 SAVE
17690 PARAMETER ( LINP = 10 ,
17691 & LOUT = 6 ,
17692 & LDAT = 9 )
17693 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY2=1.0D-2,
17694 & TINY10=1.0D-10)
17695
17696 LOGICAL LSTART
17697
17698* particle properties (BAMJET index convention)
17699 CHARACTER*8 ANAME
17700 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17701 & IICH(210),IIBAR(210),K1(210),K2(210)
17702* nuclear potential
17703 LOGICAL LFERMI
17704 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
17705 & EBINDP(2),EBINDN(2),EPOT(2,210),
17706 & ETACOU(2),ICOUL,LFERMI
17707
17708 DIMENSION IDXPOT(14)
17709* ap an lam alam sig- sig+ sig0 tet0 tet- asig-
17710 DATA IDXPOT / 2, 9, 17, 18, 20, 21, 22, 97, 98, 99,
17711* asig0 asig+ atet0 atet+
17712 & 100, 101, 102, 103/
17713
17714 DATA AN /0.4D0/
17715 DATA LSTART /.TRUE./
17716
17717 IF (MODE.EQ.0) THEN
17718 EBINDP(1) = ZERO
17719 EBINDN(1) = ZERO
17720 EBINDP(2) = ZERO
17721 EBINDN(2) = ZERO
17722 ENDIF
17723 AIP = DBLE(IP)
17724 AIPZ = DBLE(IPZ)
17725 AIT = DBLE(IT)
17726 AITZ = DBLE(ITZ)
17727
17728 FERMIP = AFERP
17729 IF (AFERP.LE.ZERO) FERMIP = FERMOD
17730 FERMIT = AFERT
17731 IF (AFERT.LE.ZERO) FERMIT = FERMOD
17732
17733* Fermi momenta and binding energy for projectile
17734 IF ((IP.GT.1).AND.LFERMI) THEN
17735 IF (MODE.EQ.0) THEN
17736C EBINDP(1) = DT_EBIND(IP,IPZ)-DT_EBIND(IP-1,IPZ-1)
17737C EBINDN(1) = DT_EBIND(IP,IPZ)-DT_EBIND(IP-1,IPZ)
17738 BIP = AIP -ONE
17739 BIPZ = AIPZ-ONE
17740 EBINDP(1) = 1.0D-3*(DT_ENERGY(ONE,ONE)+DT_ENERGY(BIP,BIPZ)
17741 & -DT_ENERGY(AIP,AIPZ))
17742 IF (AIP.LE.AIPZ) THEN
17743 EBINDN(1) = EBINDP(1)
17744 WRITE(LOUT,*) ' DT_NCLPOT: AIP.LE.AIPZ (',AIP,AIPZ,')'
17745 ELSE
17746 EBINDN(1) = 1.0D-3*(DT_ENERGY(ONE,ZERO)
17747 & +DT_ENERGY(BIP,AIPZ)-DT_ENERGY(AIP,AIPZ))
17748 ENDIF
17749 ENDIF
17750 PFERMP(1) = FERMIP*AN*(AIPZ/AIP)**0.333333D0
17751 PFERMN(1) = FERMIP*AN*((AIP-AIPZ)/AIP)**0.33333D0
17752 ELSE
17753 PFERMP(1) = ZERO
17754 PFERMN(1) = ZERO
17755 ENDIF
17756* effective nuclear potential for projectile
17757C EPOT(1,1) = PFERMP(1)**2/(2.0D0*AAM(1)) + EBINDP(1)
17758C EPOT(1,8) = PFERMN(1)**2/(2.0D0*AAM(8)) + EBINDN(1)
17759 EPOT(1,1) = SQRT(PFERMP(1)**2+AAM(1)**2) -AAM(1) + EBINDP(1)
17760 EPOT(1,8) = SQRT(PFERMN(1)**2+AAM(8)**2) -AAM(8) + EBINDN(1)
17761
17762* Fermi momenta and binding energy for target
17763 IF ((IT.GT.1).AND.LFERMI) THEN
17764 IF (MODE.EQ.0) THEN
17765C EBINDP(2) = DT_EBIND(IT,ITZ)-DT_EBIND(IT-1,ITZ-1)
17766C EBINDN(2) = DT_EBIND(IT,ITZ)-DT_EBIND(IT-1,ITZ)
17767 BIT = AIT -ONE
17768 BITZ = AITZ-ONE
17769
17770 EBINDP(2) = 1.0D-3*(DT_ENERGY(ONE,ONE)+DT_ENERGY(BIT,BITZ)
17771 & -DT_ENERGY(AIT,AITZ))
17772
17773 IF (AIT.LE.AITZ) THEN
17774 EBINDN(2) = EBINDP(2)
17775 WRITE(LOUT,*) ' DT_NCLPOT: AIT.LE.AIPT (',AIT,AIPT,')'
17776 ELSE
17777
17778 EBINDN(2) = 1.0D-3*(DT_ENERGY(ONE,ZERO)
17779 & +DT_ENERGY(BIT,AITZ)-DT_ENERGY(AIT,AITZ))
17780
17781 ENDIF
17782 ENDIF
17783 PFERMP(2) = FERMIT*AN*(AITZ/AIT)**0.333333D0
17784 PFERMN(2) = FERMIT*AN*((AIT-AITZ)/AIT)**0.33333D0
17785 ELSE
17786 PFERMP(2) = ZERO
17787 PFERMN(2) = ZERO
17788 ENDIF
17789* effective nuclear potential for target
17790C EPOT(2,1) = PFERMP(2)**2/(2.0D0*AAM(1)) + EBINDP(2)
17791C EPOT(2,8) = PFERMN(2)**2/(2.0D0*AAM(8)) + EBINDN(2)
17792 EPOT(2,1) = SQRT(PFERMP(2)**2+AAM(1)**2) -AAM(1) + EBINDP(2)
17793 EPOT(2,8) = SQRT(PFERMN(2)**2+AAM(8)**2) -AAM(8) + EBINDN(2)
17794
17795 DO 2 I=1,14
17796 EPOT(1,IDXPOT(I)) = EPOT(1,8)
17797 EPOT(2,IDXPOT(I)) = EPOT(2,8)
17798 2 CONTINUE
17799
17800* Coulomb energy
17801 ETACOU(1) = ZERO
17802 ETACOU(2) = ZERO
17803 IF (ICOUL.EQ.1) THEN
17804 IF (IP.GT.1)
17805 & ETACOU(1) = 0.001116D0*AIPZ/(1.0D0+AIP**0.333D0)
17806 IF (IT.GT.1)
17807 & ETACOU(2) = 0.001116D0*AITZ/(1.0D0+AIT**0.333D0)
17808 ENDIF
17809
17810 IF (LSTART) THEN
17811 WRITE(LOUT,1000) IP,IPZ,IT,ITZ,EBINDP,EBINDN,
17812 & EPOT(1,1)-EBINDP(1),EPOT(2,1)-EBINDP(2),
17813 & EPOT(1,8)-EBINDN(1),EPOT(2,8)-EBINDN(2),
17814 & FERMOD,ETACOU
17815 1000 FORMAT(/,/,1X,'NCLPOT: quantities for inclusion of nuclear'
17816 & ,' effects',/,12X,'---------------------------',
17817 & '----------------',/,/,38X,'projectile',
17818 & ' target',/,/,1X,'Mass number / charge',
17819 & 17X,I3,' /',I3,6X,I3,' /',I3,/,1X,'Binding energy -',
17820 & ' proton (GeV) ',2E14.4,/,17X,'- neutron (GeV)'
17821 & ,1X,2E14.4,/,1X,'Fermi-potential - proton (GeV)',
17822 & 1X,2E14.4,/,17X,'- neutron (GeV) ',2E14.4,/,/,
17823 & 1X,'Scale factor for Fermi-momentum ',F4.2,/,
17824 & /,1X,'Coulomb-energy ',2(E14.4,' GeV '),/,/)
17825 LSTART = .FALSE.
17826 ENDIF
17827
17828 RETURN
17829 END
17830
17831*$ CREATE DT_RESNCL.FOR
17832*COPY DT_RESNCL
17833*
17834*===resncl=============================================================*
17835*
17836 SUBROUTINE DT_RESNCL(EPN,NLOOP,MODE)
17837
17838************************************************************************
17839* Treatment of residual nuclei and nuclear effects. *
17840* MODE = 1 initializations *
17841* = 2 treatment of final state *
17842* This version dated 16.11.95 is written by S. Roesler. *
17843* *
17844* Last change 05.01.2007 by S. Roesler. *
17845************************************************************************
17846
17847 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
17848 SAVE
17849 PARAMETER ( LINP = 10 ,
17850 & LOUT = 6 ,
17851 & LDAT = 9 )
17852 PARAMETER (ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,TINY3=1.0D-3,
17853 & TINY2=1.0D-2,TINY1=1.0D-1,TINY4=1.0D-4,TINY10=1.0D-10,
17854 & ONETHI=ONE/THREE)
17855 PARAMETER (AMUAMU = 0.93149432D0,
17856 & FM2MM = 1.0D-12,
17857 & RNUCLE = 1.12D0)
17858 PARAMETER ( EMVGEV = 1.0 D-03 )
17859 PARAMETER ( AMUGEV = 0.93149432 D+00 )
17860 PARAMETER ( AMPRTN = 0.93827231 D+00 )
17861 PARAMETER ( AMNTRN = 0.93956563 D+00 )
17862 PARAMETER ( AMELCT = 0.51099906 D-03 )
17863 PARAMETER ( HLFHLF = 0.5D+00 )
17864 PARAMETER ( FERTHO = 14.33 D-09 )
17865 PARAMETER ( BEXC12 = FERTHO * 72.40715579499394D+00 )
17866 PARAMETER ( AMUNMU = HLFHLF * AMELCT - BEXC12 / 12.D+00 )
17867 PARAMETER ( AMUC12 = AMUGEV - AMUNMU )
17868
17869* event history
17870 PARAMETER (NMXHKK=200000)
17871 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
17872 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
17873 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
17874* extended event history
17875 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
17876 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
17877 & IHIST(2,NMXHKK)
17878* particle properties (BAMJET index convention)
17879 CHARACTER*8 ANAME
17880 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
17881 & IICH(210),IIBAR(210),K1(210),K2(210)
17882* flags for input different options
17883 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
17884 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
17885 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
17886* nuclear potential
17887 LOGICAL LFERMI
17888 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
17889 & EBINDP(2),EBINDN(2),EPOT(2,210),
17890 & ETACOU(2),ICOUL,LFERMI
17891* properties of interacting particles
17892 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
17893* properties of photon/lepton projectiles
17894 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
17895* Lorentz-parameters of the current interaction
17896 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
17897 & UMO,PPCM,EPROJ,PPROJ
17898* treatment of residual nuclei: wounded nucleons
17899 COMMON /DTWOUN/ NPW,NPW0,NPCW,NTW,NTW0,NTCW,IPW(210),ITW(210)
17900* treatment of residual nuclei: 4-momenta
17901 LOGICAL LRCLPR,LRCLTA
17902 COMMON /DTRNU1/ PINIPR(5),PINITA(5),PRCLPR(5),PRCLTA(5),
17903 & TRCLPR(5),TRCLTA(5),LRCLPR,LRCLTA
17904
17905 DIMENSION PFSP(4),PSEC(4),PSEC0(4)
17906 DIMENSION PMOMB(5000),IDXB(5000),PMOMM(10000),IDXM(10000),
17907 & IDXCOR(15000),IDXOTH(NMXHKK)
17908
17909 GOTO (1,2) MODE
17910
17911*------- initializations
17912 1 CONTINUE
17913
17914* initialize arrays for residual nuclei
17915 DO 10 K=1,5
17916 IF (K.LE.4) THEN
17917 PFSP(K) = ZERO
17918 ENDIF
17919 PINIPR(K) = ZERO
17920 PINITA(K) = ZERO
17921 PRCLPR(K) = ZERO
17922 PRCLTA(K) = ZERO
17923 TRCLPR(K) = ZERO
17924 TRCLTA(K) = ZERO
17925 10 CONTINUE
17926 SCPOT = ONE
17927 NLOOP = 0
17928
17929* correction of projectile 4-momentum for effective target pot.
17930* and Coulomb-energy (in case of hadron-nucleus interaction only)
17931 IF ((IP.EQ.1).AND.(IT.GT.1).AND.LFERMI) THEN
17932 EPNI = EPN
17933* Coulomb-energy:
17934* positively charged hadron - check energy for Coloumb pot.
17935 IF (IICH(IJPROJ).EQ.1) THEN
17936 THRESH = ETACOU(2)+AAM(IJPROJ)
17937 IF (EPNI.LE.THRESH) THEN
17938 WRITE(LOUT,1000)
17939 1000 FORMAT(/,1X,'KKINC: WARNING! projectile energy',
17940 & ' below Coulomb threshold - event rejected',/)
17941 ISTHKK(1) = 1
17942 RETURN
17943 ENDIF
17944* negatively charged hadron - increase energy by Coulomb energy
17945 ELSEIF (IICH(IJPROJ).EQ.-1) THEN
17946 EPNI = EPNI+ETACOU(2)
17947 ENDIF
17948 IF ((IJPROJ.EQ.1).OR.(IJPROJ.EQ.8)) THEN
17949* Effective target potential
17950*sr 6.6. binding energy only (to avoid negative exc. energies)
17951C EPNI = EPNI+EPOT(2,IJPROJ)
17952 EBIPOT = EBINDP(2)
17953 IF ((IJPROJ.NE.1).AND.(ABS(EPOT(2,IJPROJ)).GT.5.0D-3))
17954 & EBIPOT = EBINDN(2)
17955 EPNI = EPNI+ABS(EBIPOT)
17956* re-initialization of DTLTRA
17957 DUM1 = ZERO
17958 DUM2 = ZERO
17959 CALL DT_LTINI(IJPROJ,IJTARG,EPNI,DUM1,DUM2,0)
17960 ENDIF
17961 ENDIF
17962
17963* projectile in n-n cms
17964 IF ((IP.LE.1).AND.(IT.GT.1)) THEN
17965 PMASS1 = AAM(IJPROJ)
17966C* VDM assumption
17967C IF (IJPROJ.EQ.7) PMASS1 = AAM(33)
17968 IF (IJPROJ.EQ.7) PMASS1 = AAM(IJPROJ)-SQRT(VIRT)
17969 PMASS2 = AAM(1)
17970 PM1 = SIGN(PMASS1**2,PMASS1)
17971 PM2 = SIGN(PMASS2**2,PMASS2)
17972 PINIPR(4) = (UMO**2-PM2+PM1)/(TWO*UMO)
17973 PINIPR(5) = PMASS1
17974 IF (PMASS1.GT.ZERO) THEN
17975 PINIPR(3) = SQRT((PINIPR(4)-PINIPR(5))
17976 & *(PINIPR(4)+PINIPR(5)))
17977 ELSE
17978 PINIPR(3) = SQRT(PINIPR(4)**2-PM1)
17979 ENDIF
17980 AIT = DBLE(IT)
17981 AITZ = DBLE(ITZ)
17982 PINITA(5) = AIT*AMUAMU+1.0D-3*DT_ENERGY(AIT,AITZ)
17983 CALL DT_LTNUC(ZERO,PINITA(5),PINITA(3),PINITA(4),3)
17984 ELSEIF ((IP.GT.1).AND.(IT.LE.1)) THEN
17985 PMASS1 = AAM(1)
17986 PMASS2 = AAM(IJTARG)
17987 PM1 = SIGN(PMASS1**2,PMASS1)
17988 PM2 = SIGN(PMASS2**2,PMASS2)
17989 PINITA(4) = (UMO**2-PM1+PM2)/(TWO*UMO)
17990 PINITA(5) = PMASS2
17991 PINITA(3) = -SQRT((PINITA(4)-PINITA(5))
17992 & *(PINITA(4)+PINITA(5)))
17993 AIP = DBLE(IP)
17994 AIPZ = DBLE(IPZ)
17995 PINIPR(5) = AIP*AMUAMU+1.0D-3*DT_ENERGY(AIP,AIPZ)
17996 CALL DT_LTNUC(ZERO,PINIPR(5),PINIPR(3),PINIPR(4),2)
17997 ELSEIF ((IP.GT.1).AND.(IT.GT.1)) THEN
17998 AIP = DBLE(IP)
17999 AIPZ = DBLE(IPZ)
18000 PINIPR(5) = AIP*AMUAMU+1.0D-3*DT_ENERGY(AIP,AIPZ)
18001 CALL DT_LTNUC(ZERO,PINIPR(5),PINIPR(3),PINIPR(4),2)
18002 AIT = DBLE(IT)
18003 AITZ = DBLE(ITZ)
18004 PINITA(5) = AIT*AMUAMU+1.0D-3*DT_ENERGY(AIT,AITZ)
18005 CALL DT_LTNUC(ZERO,PINITA(5),PINITA(3),PINITA(4),3)
18006 ENDIF
18007
18008 RETURN
18009
18010*------- treatment of final state
18011 2 CONTINUE
18012
18013 NLOOP = NLOOP+1
18014 IF (NLOOP.GT.1) SCPOT = 0.10D0
18015C WRITE(LOUT,*) 'event ',NEVHKK,NLOOP,SCPOT
18016
18017 JPW = NPW
18018 JPCW = NPCW
18019 JTW = NTW
18020 JTCW = NTCW
18021 DO 40 K=1,4
18022 PFSP(K) = ZERO
18023 40 CONTINUE
18024
18025 NOB = 0
18026 NOM = 0
18027 DO 900 I=NPOINT(4),NHKK
18028 IDXOTH(I) = -1
18029 IF (ISTHKK(I).EQ.1) THEN
18030 IF (IDBAM(I).EQ.7) GOTO 900
18031 IPOT = 0
18032 IOTHER = 0
18033* particle moving into forward direction
18034 IF (PHKK(3,I).GE.ZERO) THEN
18035* most likely to be effected by projectile potential
18036 IPOT = 1
18037* there is no projectile nucleus, try target
18038 IF ((IP.LE.1).OR.((IP-NPW).LE.1)) THEN
18039 IPOT = 2
18040 IF (IP.GT.1) IOTHER = 1
18041* there is no target nucleus --> skip
18042 IF ((IT.LE.1).OR.((IT-NTW).LE.1)) GOTO 900
18043 ENDIF
18044* particle moving into backward direction
18045 ELSE
18046* most likely to be effected by target potential
18047 IPOT = 2
18048* there is no target nucleus, try projectile
18049 IF ((IT.LE.1).OR.((IT-NTW).LE.1)) THEN
18050 IPOT = 1
18051 IF (IT.GT.1) IOTHER = 1
18052* there is no projectile nucleus --> skip
18053 IF ((IP.LE.1).OR.((IP-NPW).LE.1)) GOTO 900
18054 ENDIF
18055 ENDIF
18056 IFLG = -IPOT
18057* nobam=3: particle is in overlap-region or neither inside proj. nor target
18058* =1: particle is not in overlap-region AND is inside target (2)
18059* =2: particle is not in overlap-region AND is inside projectile (1)
18060* flag particles which are inside the nucleus ipot but not in its
18061* overlap region
18062 IF ((NOBAM(I).NE.IPOT).AND.(NOBAM(I).LT.3)) IFLG = IPOT
18063 IF (IDBAM(I).NE.0) THEN
18064* baryons: keep all nucleons and all others where flag is set
18065 IF (IIBAR(IDBAM(I)).NE.0) THEN
18066 IF ((IDBAM(I).EQ.1).OR.(IDBAM(I).EQ.8).OR.(IFLG.GT.0))
18067 & THEN
18068 NOB = NOB+1
18069 PMOMB(NOB) = PHKK(3,I)
18070 IDXB(NOB) = SIGN(10000000*IABS(IFLG)
18071 & +1000000*IOTHER+I,IFLG)
18072 ENDIF
18073* mesons: keep only those mesons where flag is set
18074 ELSE
18075 IF (IFLG.GT.0) THEN
18076 NOM = NOM+1
18077 PMOMM(NOM) = PHKK(3,I)
18078 IDXM(NOM) = 10000000*IFLG+1000000*IOTHER+I
18079 ENDIF
18080 ENDIF
18081 ENDIF
18082 ENDIF
18083 900 CONTINUE
18084*
18085* sort particles in the arrays according to increasing long. momentum
18086 CALL DT_SORT1(PMOMB,IDXB,NOB,1,NOB,1)
18087 CALL DT_SORT1(PMOMM,IDXM,NOM,1,NOM,1)
18088*
18089* shuffle indices into one and the same array according to the later
18090* sequence of correction
18091 NCOR = 0
18092 IF (IT.GT.1) THEN
18093 DO 910 I=1,NOB
18094 IF (PMOMB(I).GT.ZERO) GOTO 911
18095 NCOR = NCOR+1
18096 IDXCOR(NCOR) = IDXB(I)
18097 910 CONTINUE
18098 911 CONTINUE
18099 IF (IP.GT.1) THEN
18100 DO 912 J=1,NOB
18101 I = NOB+1-J
18102 IF (PMOMB(I).LT.ZERO) GOTO 913
18103 NCOR = NCOR+1
18104 IDXCOR(NCOR) = IDXB(I)
18105 912 CONTINUE
18106 913 CONTINUE
18107 ELSE
18108 DO 914 I=1,NOB
18109 IF (PMOMB(I).GT.ZERO) THEN
18110 NCOR = NCOR+1
18111 IDXCOR(NCOR) = IDXB(I)
18112 ENDIF
18113 914 CONTINUE
18114 ENDIF
18115 ELSE
18116 DO 915 J=1,NOB
18117 I = NOB+1-J
18118 NCOR = NCOR+1
18119 IDXCOR(NCOR) = IDXB(I)
18120 915 CONTINUE
18121 ENDIF
18122 DO 925 I=1,NOM
18123 IF (PMOMM(I).GT.ZERO) GOTO 926
18124 NCOR = NCOR+1
18125 IDXCOR(NCOR) = IDXM(I)
18126 925 CONTINUE
18127 926 CONTINUE
18128 DO 927 J=1,NOM
18129 I = NOM+1-J
18130 IF (PMOMM(I).LT.ZERO) GOTO 928
18131 NCOR = NCOR+1
18132 IDXCOR(NCOR) = IDXM(I)
18133 927 CONTINUE
18134 928 CONTINUE
18135*
18136C IF (NEVHKK.EQ.484) THEN
18137C WRITE(LOUT,9000) JPCW,JPW-JPCW,JTCW,JTW-JTCW
18138C 9000 FORMAT(1X,'wounded nucleons (proj.-p,n targ.-p,n)',/,4I10)
18139C WRITE(LOUT,9001) NOB,NOM,NCOR
18140C 9001 FORMAT(1X,'produced particles (baryons,mesons,all)',3I10)
18141C WRITE(LOUT,'(/,A)') ' baryons '
18142C DO 950 I=1,NOB
18143CC J = IABS(IDXB(I))
18144CC INDEX = J-IABS(J/10000000)*10000000
18145C IPOT = IABS(IDXB(I))/10000000
18146C IOTHER = IABS(IDXB(I))/1000000-IPOT*10
18147C INDEX = IABS(IDXB(I))-IPOT*10000000-IOTHER*1000000
18148C WRITE(LOUT,9002) I,INDEX,IDXB(I),IDBAM(INDEX),PMOMB(I)
18149C 950 CONTINUE
18150C WRITE(LOUT,'(/,A)') ' mesons '
18151C DO 951 I=1,NOM
18152CC INDEX = IDXM(I)-IABS(IDXM(I)/10000000)*10000000
18153C IPOT = IABS(IDXM(I))/10000000
18154C IOTHER = IABS(IDXM(I))/1000000-IPOT*10
18155C INDEX = IABS(IDXM(I))-IPOT*10000000-IOTHER*1000000
18156C WRITE(LOUT,9002) I,INDEX,IDXM(I),IDBAM(INDEX),PMOMM(I)
18157C 951 CONTINUE
18158C 9002 FORMAT(1X,4I14,E14.5)
18159C WRITE(LOUT,'(/,A)') ' all '
18160C DO 952 I=1,NCOR
18161CC J = IABS(IDXCOR(I))
18162CC INDEX = J-IABS(J/10000000)*10000000
18163CC IPOT = IABS(IDXCOR(I))/10000000
18164C IOTHER = IABS(IDXCOR(I))/1000000-IPOT*10
18165C INDEX = IABS(IDXCOR(I))-IPOT*10000000-IOTHER*1000000
18166C WRITE(LOUT,9003) I,INDEX,IDXCOR(I),IDBAM(INDEX)
18167C 952 CONTINUE
18168C 9003 FORMAT(1X,4I14)
18169C ENDIF
18170*
18171 DO 20 ICOR=1,NCOR
18172 IPOT = IABS(IDXCOR(ICOR))/10000000
18173 IOTHER = IABS(IDXCOR(ICOR))/1000000-IPOT*10
18174 I = IABS(IDXCOR(ICOR))-IPOT*10000000-IOTHER*1000000
18175 IDXOTH(I) = 1
18176
18177 IDSEC = IDBAM(I)
18178
18179* reduction of particle momentum by corresponding nuclear potential
18180* (this applies only if Fermi-momenta are requested)
18181
18182 IF (LFERMI) THEN
18183
18184* Lorentz-transformation into the rest system of the selected nucleus
18185 IMODE = -IPOT-1
18186 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
18187 & PSEC(1),PSEC(2),PSEC(3),PSEC(4),IDSEC,IMODE)
18188 PSECO = SQRT(PSEC(1)**2+PSEC(2)**2+PSEC(3)**2)
18189 AMSEC = SQRT(ABS((PSEC(4)-PSECO)*(PSEC(4)+PSECO)))
18190 JPMOD = 0
18191
18192 CHKLEV = TINY3
18193 IF ((EPROJ.GE.1.0D4).AND.(IDSEC.EQ.7)) CHKLEV = TINY1
18194 IF (EPROJ.GE.2.0D6) CHKLEV = 1.0D0
18195 IF (ABS(AMSEC-AAM(IDSEC)).GT.CHKLEV) THEN
18196 IF (IOULEV(3).GT.0)
18197 & WRITE(LOUT,2000) I,NEVHKK,IDSEC,AMSEC,AAM(IDSEC)
18198 2000 FORMAT(1X,'RESNCL: inconsistent mass of particle',
18199 & ' at entry ',I5,' (evt.',I8,')',/,' IDSEC: ',
18200 & I4,' AMSEC: ',E12.3,' AAM(IDSEC): ',E12.3,/)
18201 GOTO 23
18202 ENDIF
18203
18204 DO 21 K=1,4
18205 PSEC0(K) = PSEC(K)
18206 21 CONTINUE
18207
18208* the correction for nuclear potential effects is applied to as many
18209* p/n as many nucleons were wounded; the momenta of other final state
18210* particles are corrected only if they materialize inside the corresp.
18211* nucleus (here: NOBAM = 1 part. outside proj., = 2 part. outside targ
18212* = 3 part. outside proj. and targ., >=10 in overlapping region)
18213 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) THEN
18214 IF (IPOT.EQ.1) THEN
18215 IF ((JPW.GT.0).AND.(IOTHER.EQ.0)) THEN
18216* this is most likely a wounded nucleon
18217**test
18218C RDIST = SQRT((VHKK(1,IPW(JPW))/FM2MM)**2
18219C & +(VHKK(2,IPW(JPW))/FM2MM)**2
18220C & +(VHKK(3,IPW(JPW))/FM2MM)**2)
18221C RAD = RNUCLE*DBLE(IP)**ONETHI
18222C FDEN = 1.4D0*DT_DENSIT(IP,RDIST,RAD)
18223C PSEC(4) = PSEC(4)-SCPOT*FDEN*EPOT(IPOT,IDSEC)
18224**
18225 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18226 JPW = JPW-1
18227 JPMOD = 1
18228 ELSE
18229* correct only if part. was materialized inside nucleus
18230* and if it is ouside the overlapping region
18231 IF ((NOBAM(I).NE.1).AND.(NOBAM(I).LT.3)) THEN
18232 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18233 JPMOD = 1
18234 ENDIF
18235 ENDIF
18236 ELSEIF (IPOT.EQ.2) THEN
18237 IF ((JTW.GT.0).AND.(IOTHER.EQ.0)) THEN
18238* this is most likely a wounded nucleon
18239**test
18240C RDIST = SQRT((VHKK(1,ITW(JTW))/FM2MM)**2
18241C & +(VHKK(2,ITW(JTW))/FM2MM)**2
18242C & +(VHKK(3,ITW(JTW))/FM2MM)**2)
18243C RAD = RNUCLE*DBLE(IT)**ONETHI
18244C FDEN = 1.4D0*DT_DENSIT(IT,RDIST,RAD)
18245C PSEC(4) = PSEC(4)-SCPOT*FDEN*EPOT(IPOT,IDSEC)
18246**
18247 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18248 JTW = JTW-1
18249 JPMOD = 1
18250 ELSE
18251* correct only if part. was materialized inside nucleus
18252 IF ((NOBAM(I).NE.2).AND.(NOBAM(I).LT.3)) THEN
18253 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18254 JPMOD = 1
18255 ENDIF
18256 ENDIF
18257 ENDIF
18258 ELSE
18259 IF ((NOBAM(I).NE.IPOT).AND.(NOBAM(I).LT.3)) THEN
18260 PSEC(4) = PSEC(4)-SCPOT*EPOT(IPOT,IDSEC)
18261 JPMOD = 1
18262 ENDIF
18263 ENDIF
18264
18265 IF (NLOOP.EQ.1) THEN
18266* Coulomb energy correction:
18267* the treatment of Coulomb potential correction is similar to the
18268* one for nuclear potential
18269 IF (IDSEC.EQ.1) THEN
18270 IF ((IPOT.EQ.1).AND.(JPCW.GT.0)) THEN
18271 JPCW = JPCW-1
18272 ELSEIF ((IPOT.EQ.2).AND.(JTCW.GT.0)) THEN
18273 JTCW = JTCW-1
18274 ELSE
18275 IF ((NOBAM(I).EQ.IPOT).OR.(NOBAM(I).EQ.3)) GOTO 25
18276 ENDIF
18277 ELSE
18278 IF ((NOBAM(I).EQ.IPOT).OR.(NOBAM(I).EQ.3)) GOTO 25
18279 ENDIF
18280 IF (IICH(IDSEC).EQ.1) THEN
18281* pos. particles: check if they are able to escape Coulomb potential
18282 IF (PSEC(4).LT.AMSEC+ETACOU(IPOT)) THEN
18283 ISTHKK(I) = 14+IPOT
18284 IF (ISTHKK(I).EQ.15) THEN
18285 DO 26 K=1,4
18286 PHKK(K,I) = PSEC0(K)
18287 TRCLPR(K) = TRCLPR(K)+PSEC0(K)
18288 26 CONTINUE
18289 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NPW = NPW-1
18290 IF (IDSEC.EQ.1) NPCW = NPCW-1
18291 ELSEIF (ISTHKK(I).EQ.16) THEN
18292 DO 27 K=1,4
18293 PHKK(K,I) = PSEC0(K)
18294 TRCLTA(K) = TRCLTA(K)+PSEC0(K)
18295 27 CONTINUE
18296 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NTW = NTW-1
18297 IF (IDSEC.EQ.1) NTCW = NTCW-1
18298 ENDIF
18299 GOTO 20
18300 ENDIF
18301 ELSEIF (IICH(IDSEC).EQ.-1) THEN
18302* neg. particles: decrease energy by Coulomb-potential
18303 PSEC(4) = PSEC(4)-ETACOU(IPOT)
18304 JPMOD = 1
18305 ENDIF
18306 ENDIF
18307
18308 25 CONTINUE
18309
18310 IF (PSEC(4).LT.AMSEC) THEN
18311 IF (IOULEV(6).GT.0)
18312 & WRITE(LOUT,2001) I,IDSEC,PSEC(4),AMSEC
18313 2001 FORMAT(1X,'KKINC: particle at DTEVT1-pos. ',I5,
18314 & ' is not allowed to escape nucleus',/,
18315 & 8X,'id : ',I3,' reduced energy: ',E15.4,
18316 & ' mass: ',E12.3)
18317 ISTHKK(I) = 14+IPOT
18318 IF (ISTHKK(I).EQ.15) THEN
18319 DO 28 K=1,4
18320 PHKK(K,I) = PSEC0(K)
18321 TRCLPR(K) = TRCLPR(K)+PSEC0(K)
18322 28 CONTINUE
18323 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NPW = NPW-1
18324 IF (IDSEC.EQ.1) NPCW = NPCW-1
18325 ELSEIF (ISTHKK(I).EQ.16) THEN
18326 DO 29 K=1,4
18327 PHKK(K,I) = PSEC0(K)
18328 TRCLTA(K) = TRCLTA(K)+PSEC0(K)
18329 29 CONTINUE
18330 IF ((IDSEC.EQ.1).OR.(IDSEC.EQ.8)) NTW = NTW-1
18331 IF (IDSEC.EQ.1) NTCW = NTCW-1
18332 ENDIF
18333 GOTO 20
18334 ENDIF
18335
18336 IF (JPMOD.EQ.1) THEN
18337 PSECN = SQRT( (PSEC(4)-AMSEC)*(PSEC(4)+AMSEC) )
18338* 4-momentum after correction for nuclear potential
18339 DO 22 K=1,3
18340 PSEC(K) = PSEC(K)*PSECN/PSECO
18341 22 CONTINUE
18342
18343* store recoil momentum from particles escaping the nuclear potentials
18344 DO 30 K=1,4
18345 IF (IPOT.EQ.1) THEN
18346 TRCLPR(K) = TRCLPR(K)+PSEC0(K)-PSEC(K)
18347 ELSEIF (IPOT.EQ.2) THEN
18348 TRCLTA(K) = TRCLTA(K)+PSEC0(K)-PSEC(K)
18349 ENDIF
18350 30 CONTINUE
18351
18352* transform momentum back into n-n cms
18353 IMODE = IPOT+1
18354 CALL DT_LTRANS(PSEC(1),PSEC(2),PSEC(3),PSEC(4),
18355 & PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
18356 & IDSEC,IMODE)
18357 ENDIF
18358
18359 ENDIF
18360
18361 23 CONTINUE
18362 DO 31 K=1,4
18363 PFSP(K) = PFSP(K)+PHKK(K,I)
18364 31 CONTINUE
18365
18366 20 CONTINUE
18367
18368 DO 33 I=NPOINT(4),NHKK
18369 IF ((ISTHKK(I).EQ.1).AND.(IDXOTH(I).LT.0)) THEN
18370 PFSP(1) = PFSP(1)+PHKK(1,I)
18371 PFSP(2) = PFSP(2)+PHKK(2,I)
18372 PFSP(3) = PFSP(3)+PHKK(3,I)
18373 PFSP(4) = PFSP(4)+PHKK(4,I)
18374 ENDIF
18375 33 CONTINUE
18376
18377 DO 34 K=1,5
18378 PRCLPR(K) = TRCLPR(K)
18379 PRCLTA(K) = TRCLTA(K)
18380 34 CONTINUE
18381
18382 IF ((IP.EQ.1).AND.(IT.GT.1).AND.LFERMI) THEN
18383* hadron-nucleus interactions: get residual momentum from energy-
18384* momentum conservation
18385 DO 32 K=1,4
18386 PRCLPR(K) = ZERO
18387 PRCLTA(K) = PINIPR(K)+PINITA(K)-PFSP(K)
18388 32 CONTINUE
18389 ELSE
18390* nucleus-hadron, nucleus-nucleus: get residual momentum from
18391* accumulated recoil momenta of particles leaving the spectators
18392* transform accumulated recoil momenta of residual nuclei into
18393* n-n cms
18394 PZI = PRCLPR(3)
18395 PEI = PRCLPR(4)
18396 CALL DT_LTNUC(PZI,PEI,PRCLPR(3),PRCLPR(4),2)
18397 PZI = PRCLTA(3)
18398 PEI = PRCLTA(4)
18399 CALL DT_LTNUC(PZI,PEI,PRCLTA(3),PRCLTA(4),3)
18400C IF (IP.GT.1) THEN
18401 PRCLPR(3) = PRCLPR(3)+PINIPR(3)
18402 PRCLPR(4) = PRCLPR(4)+PINIPR(4)
18403C ENDIF
18404 IF (IT.GT.1) THEN
18405 PRCLTA(3) = PRCLTA(3)+PINITA(3)
18406 PRCLTA(4) = PRCLTA(4)+PINITA(4)
18407 ENDIF
18408 ENDIF
18409
18410* check momenta of residual nuclei
18411 IF (LEMCCK) THEN
18412 CALL DT_EVTEMC(-PINIPR(1),-PINIPR(2),-PINIPR(3),-PINIPR(4),
18413 & 1,IDUM,IDUM)
18414 CALL DT_EVTEMC(-PINITA(1),-PINITA(2),-PINITA(3),-PINITA(4),
18415 & 2,IDUM,IDUM)
18416 CALL DT_EVTEMC(PRCLPR(1),PRCLPR(2),PRCLPR(3),PRCLPR(4),
18417 & 2,IDUM,IDUM)
18418 CALL DT_EVTEMC(PRCLTA(1),PRCLTA(2),PRCLTA(3),PRCLTA(4),
18419 & 2,IDUM,IDUM)
18420 CALL DT_EVTEMC(PFSP(1),PFSP(2),PFSP(3),PFSP(4),2,IDUM,IDUM)
18421**sr 19.12. changed to avoid output when used with phojet
18422C CHKLEV = TINY3
18423 CHKLEV = TINY1
18424 CALL DT_EVTEMC(DUM,DUM,DUM,CHKLEV,-1,501,IREJ1)
18425C IF ((NEVHKK.EQ.409).OR.(NEVHKK.EQ.460).OR.(NEVHKK.EQ.765))
18426C & CALL DT_EVTOUT(4)
18427 IF (IREJ1.GT.0) RETURN
18428 ENDIF
18429
18430 RETURN
18431 END
18432
18433*$ CREATE DT_SCN4BA.FOR
18434*COPY DT_SCN4BA
18435*
18436*===scn4ba=============================================================*
18437*
18438 SUBROUTINE DT_SCN4BA
18439
18440************************************************************************
18441* SCan /DTEVT1/ 4 BAryons which are not able to escape nuclear pot. *
18442* This version dated 12.12.95 is written by S. Roesler. *
18443************************************************************************
18444
18445 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
18446 SAVE
18447 PARAMETER ( LINP = 10 ,
18448 & LOUT = 6 ,
18449 & LDAT = 9 )
18450 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY2=1.0D-2,
18451 & TINY10=1.0D-10)
18452
18453* event history
18454 PARAMETER (NMXHKK=200000)
18455 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
18456 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
18457 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
18458* extended event history
18459 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
18460 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
18461 & IHIST(2,NMXHKK)
18462* particle properties (BAMJET index convention)
18463 CHARACTER*8 ANAME
18464 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
18465 & IICH(210),IIBAR(210),K1(210),K2(210)
18466* properties of interacting particles
18467 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
18468* nuclear potential
18469 LOGICAL LFERMI
18470 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
18471 & EBINDP(2),EBINDN(2),EPOT(2,210),
18472 & ETACOU(2),ICOUL,LFERMI
18473* treatment of residual nuclei: wounded nucleons
18474 COMMON /DTWOUN/ NPW,NPW0,NPCW,NTW,NTW0,NTCW,IPW(210),ITW(210)
18475* treatment of residual nuclei: 4-momenta
18476 LOGICAL LRCLPR,LRCLTA
18477 COMMON /DTRNU1/ PINIPR(5),PINITA(5),PRCLPR(5),PRCLTA(5),
18478 & TRCLPR(5),TRCLTA(5),LRCLPR,LRCLTA
18479
18480 DIMENSION PLAB(2,5),PCMS(4)
18481
18482 IREJ = 0
18483
18484* get number of wounded nucleons
18485 NPW = 0
18486 NPW0 = 0
18487 NPCW = 0
18488 NPSTCK = 0
18489 NTW = 0
18490 NTW0 = 0
18491 NTCW = 0
18492 NTSTCK = 0
18493
18494 ISGLPR = 0
18495 ISGLTA = 0
18496 LRCLPR = .FALSE.
18497 LRCLTA = .FALSE.
18498
18499C DO 2 I=1,NHKK
18500 DO 2 I=1,NPOINT(1)
18501* projectile nucleons wounded in primary interaction and in fzc
18502 IF ((ISTHKK(I).EQ.11).OR.(ISTHKK(I).EQ.17)) THEN
18503 NPW = NPW+1
18504 IPW(NPW) = I
18505 NPSTCK = NPSTCK+1
18506 IF (IDHKK(I).EQ.2212) NPCW = NPCW+1
18507 IF (ISTHKK(I).EQ.11) NPW0 = NPW0+1
18508C IF (IP.GT.1) THEN
18509 DO 5 K=1,4
18510 TRCLPR(K) = TRCLPR(K)-PHKK(K,I)
18511 5 CONTINUE
18512C ENDIF
18513* target nucleons wounded in primary interaction and in fzc
18514 ELSEIF ((ISTHKK(I).EQ.12).OR.(ISTHKK(I).EQ.18)) THEN
18515 NTW = NTW+1
18516 ITW(NTW) = I
18517 NTSTCK = NTSTCK+1
18518 IF (IDHKK(I).EQ.2212) NTCW = NTCW+1
18519 IF (ISTHKK(I).EQ.12) NTW0 = NTW0+1
18520 IF (IT.GT.1) THEN
18521 DO 6 K=1,4
18522 TRCLTA(K) = TRCLTA(K)-PHKK(K,I)
18523 6 CONTINUE
18524 ENDIF
18525 ELSEIF (ISTHKK(I).EQ.13) THEN
18526 ISGLPR = I
18527 ELSEIF (ISTHKK(I).EQ.14) THEN
18528 ISGLTA = I
18529 ENDIF
18530 2 CONTINUE
18531
18532 DO 11 I=NPOINT(4),NHKK
18533* baryons which are unable to escape the nuclear potential of proj.
18534 IF (ISTHKK(I).EQ.15) THEN
18535 ISGLPR = I
18536 NPSTCK = NPSTCK-1
18537 IF (IIBAR(IDBAM(I)).NE.0) THEN
18538 NPW = NPW-1
18539 IF (IICH(IDBAM(I)).GT.0) NPCW = NPCW-1
18540 ENDIF
18541 DO 7 K=1,4
18542 TRCLPR(K) = TRCLPR(K)+PHKK(K,I)
18543 7 CONTINUE
18544* baryons which are unable to escape the nuclear potential of targ.
18545 ELSEIF (ISTHKK(I).EQ.16) THEN
18546 ISGLTA = I
18547 NTSTCK = NTSTCK-1
18548 IF (IIBAR(IDBAM(I)).NE.0) THEN
18549 NTW = NTW-1
18550 IF (IICH(IDBAM(I)).GT.0) NTCW = NTCW-1
18551 ENDIF
18552 DO 8 K=1,4
18553 TRCLTA(K) = TRCLTA(K)+PHKK(K,I)
18554 8 CONTINUE
18555 ENDIF
18556 11 CONTINUE
18557
18558* residual nuclei so far
18559 IRESP = IP-NPSTCK
18560 IREST = IT-NTSTCK
18561
18562* ckeck for "residual nuclei" consisting of one nucleon only
18563* treat it as final state particle
18564 IF (IRESP.EQ.1) THEN
18565 ID = IDBAM(ISGLPR)
18566 IST = ISTHKK(ISGLPR)
18567 CALL DT_LTRANS(PHKK(1,ISGLPR),PHKK(2,ISGLPR),
18568 & PHKK(3,ISGLPR),PHKK(4,ISGLPR),
18569 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),ID,2)
18570 IF (IST.EQ.13) THEN
18571 ISTHKK(ISGLPR) = 11
18572 ELSE
18573 ISTHKK(ISGLPR) = 2
18574 ENDIF
18575 CALL DT_EVTPUT(1,IDHKK(ISGLPR),ISGLPR,0,
18576 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),
18577 & IDRES(ISGLPR),IDXRES(ISGLPR),IDCH(ISGLPR))
18578 NOBAM(NHKK) = NOBAM(ISGLPR)
18579 JDAHKK(1,ISGLPR) = NHKK
18580 DO 21 K=1,4
18581 TRCLPR(K) = TRCLPR(K)-PHKK(K,ISGLPR)
18582 21 CONTINUE
18583 ENDIF
18584 IF (IREST.EQ.1) THEN
18585 ID = IDBAM(ISGLTA)
18586 IST = ISTHKK(ISGLTA)
18587 CALL DT_LTRANS(PHKK(1,ISGLTA),PHKK(2,ISGLTA),
18588 & PHKK(3,ISGLTA),PHKK(4,ISGLTA),
18589 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),ID,3)
18590 IF (IST.EQ.14) THEN
18591 ISTHKK(ISGLTA) = 12
18592 ELSE
18593 ISTHKK(ISGLTA) = 2
18594 ENDIF
18595 CALL DT_EVTPUT(1,IDHKK(ISGLTA),ISGLTA,0,
18596 & PCMS(1),PCMS(2),PCMS(3),PCMS(4),
18597 & IDRES(ISGLTA),IDXRES(ISGLTA),IDCH(ISGLTA))
18598 NOBAM(NHKK) = NOBAM(ISGLTA)
18599 JDAHKK(1,ISGLTA) = NHKK
18600 DO 22 K=1,4
18601 TRCLTA(K) = TRCLTA(K)-PHKK(K,ISGLTA)
18602 22 CONTINUE
18603 ENDIF
18604
18605* get nuclear potential corresp. to the residual nucleus
18606 IPRCL = IP -NPW
18607 IPZRCL = IPZ-NPCW
18608 ITRCL = IT -NTW
18609 ITZRCL = ITZ-NTCW
18610 CALL DT_NCLPOT(IPZRCL,IPRCL,ITZRCL,ITRCL,ZERO,ZERO,1)
18611
18612* baryons unable to escape the nuclear potential are treated as
18613* excited nucleons (ISTHKK=15,16)
18614 DO 3 I=NPOINT(4),NHKK
18615 IF (ISTHKK(I).EQ.1) THEN
18616 ID = IDBAM(I)
18617 IF ( ((ID.EQ.1).OR.(ID.EQ.8)).AND.(NOBAM(I).NE.3) ) THEN
18618* final state n and p not being outside of both nuclei are considered
18619 NPOTP = 1
18620 NPOTT = 1
18621 IF ( (IP.GT.1) .AND.(IRESP.GT.1).AND.
18622 & (NOBAM(I).NE.1).AND.(NPW.GT.0) ) THEN
18623* Lorentz-trsf. into proj. rest sys. for those being inside proj.
18624 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),
18625 & PHKK(4,I),PLAB(1,1),PLAB(1,2),PLAB(1,3),
18626 & PLAB(1,4),ID,-2)
18627 PLABT = SQRT(PLAB(1,1)**2+PLAB(1,2)**2+PLAB(1,3)**2)
18628 PLAB(1,5) = SQRT(ABS( (PLAB(1,4)-PLABT)*
18629 & (PLAB(1,4)+PLABT) ))
18630 EKIN = PLAB(1,4)-PLAB(1,5)
18631 IF (EKIN.LE.EPOT(1,ID)) NPOTP = 15
18632 IF ((ID.EQ.1).AND.(NPCW.LE.0)) NPOTP = 1
18633 ENDIF
18634 IF ( (IT.GT.1) .AND.(IREST.GT.1).AND.
18635 & (NOBAM(I).NE.2).AND.(NTW.GT.0) ) THEN
18636* Lorentz-trsf. into targ. rest sys. for those being inside targ.
18637 CALL DT_LTRANS(PHKK(1,I),PHKK(2,I),PHKK(3,I),
18638 & PHKK(4,I),PLAB(2,1),PLAB(2,2),PLAB(2,3),
18639 & PLAB(2,4),ID,-3)
18640 PLABT = SQRT(PLAB(2,1)**2+PLAB(2,2)**2+PLAB(2,3)**2)
18641 PLAB(2,5) = SQRT(ABS( (PLAB(2,4)-PLABT)*
18642 & (PLAB(2,4)+PLABT) ))
18643 EKIN = PLAB(2,4)-PLAB(2,5)
18644 IF (EKIN.LE.EPOT(2,ID)) NPOTT = 16
18645 IF ((ID.EQ.1).AND.(NTCW.LE.0)) NPOTT = 1
18646 ENDIF
18647 IF (PHKK(3,I).GE.ZERO) THEN
18648 ISTHKK(I) = NPOTT
18649 IF (NPOTP.NE.1) ISTHKK(I) = NPOTP
18650 ELSE
18651 ISTHKK(I) = NPOTP
18652 IF (NPOTT.NE.1) ISTHKK(I) = NPOTT
18653 ENDIF
18654 IF (ISTHKK(I).NE.1) THEN
18655 J = ISTHKK(I)-14
18656 DO 4 K=1,5
18657 PHKK(K,I) = PLAB(J,K)
18658 4 CONTINUE
18659 IF (ISTHKK(I).EQ.15) THEN
18660 NPW = NPW-1
18661 IF (ID.EQ.1) NPCW = NPCW-1
18662 DO 9 K=1,4
18663 TRCLPR(K) = TRCLPR(K)+PHKK(K,I)
18664 9 CONTINUE
18665 ELSEIF (ISTHKK(I).EQ.16) THEN
18666 NTW = NTW-1
18667 IF (ID.EQ.1) NTCW = NTCW-1
18668 DO 10 K=1,4
18669 TRCLTA(K) = TRCLTA(K)+PHKK(K,I)
18670 10 CONTINUE
18671 ENDIF
18672 ENDIF
18673 ENDIF
18674 ENDIF
18675 3 CONTINUE
18676
18677* again: get nuclear potential corresp. to the residual nucleus
18678 IPRCL = IP -NPW
18679 IPZRCL = IPZ-NPCW
18680 ITRCL = IT -NTW
18681 ITZRCL = ITZ-NTCW
18682c AFERP = 1.2D0*FERMOD*(ONE+(DBLE(IP+10-NPW0)/DBLE(IP+10))**1.1D0)
18683cC AFERP = 1.21D0*FERMOD*(ONE+(DBLE(IP+40-NPW0)/DBLE(IP+40))**1.1D0)
18684c & *(0.94D0+0.3D0*EXP(-DBLE(NPW0)/5.0D0)) /2.0D0
18685C AFERP = 0.0D0
18686c AFERT = 1.2D0*FERMOD*(ONE+(DBLE(IT+10-NTW0)/DBLE(IT+10))**1.1D0)
18687cC AFERT = 1.21D0*FERMOD*(ONE+(DBLE(IT+40-NTW0)/DBLE(IT+40))**1.1D0)
18688c & *(0.94D0+0.3D0*EXP(-DBLE(NTW0)/5.0D0)) /2.0D0
18689C AFERT = 0.0D0
18690C IF (AFERP.LT.FERMOD) AFERP = FERMOD+0.1
18691C IF (AFERT.LT.FERMOD) AFERT = FERMOD+0.1
18692C IF (AFERP.GT.0.85D0) AFERP = 0.85D0
18693C IF (AFERT.GT.0.85D0) AFERT = 0.85D0
18694 AFERP = FERMOD+0.1D0
18695 AFERT = FERMOD+0.1D0
18696
18697 CALL DT_NCLPOT(IPZRCL,IPRCL,ITZRCL,ITRCL,AFERP,AFERT,1)
18698
18699 RETURN
18700 END
18701
18702*$ CREATE DT_FICONF.FOR
18703*COPY DT_FICONF
18704*
18705*===ficonf=============================================================*
18706*
18707 SUBROUTINE DT_FICONF(IJPROJ,IP,IPZ,IT,ITZ,NLOOP,IREJ)
18708
18709************************************************************************
18710* Treatment of FInal CONFiguration including evaporation, fission and *
18711* Fermi-break-up (for light nuclei only). *
18712* Adopted from the original routine FINALE and extended to residual *
18713* projectile nuclei. *
18714* This version dated 12.12.95 is written by S. Roesler. *
18715* *
18716* Last change 27.12.2006 by S. Roesler. *
18717************************************************************************
18718
18719 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
18720 SAVE
18721 PARAMETER ( LINP = 10 ,
18722 & LOUT = 6 ,
18723 & LDAT = 9 )
18724 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY3=1.0D-3,TINY10=1.0D-10)
18725 PARAMETER (ANGLGB=5.0D-16)
18726 PARAMETER (AMUAMU=0.93149432D0,AMELEC=0.51099906D-3)
18727
18728* event history
18729 PARAMETER (NMXHKK=200000)
18730 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
18731 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
18732 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
18733* extended event history
18734 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
18735 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
18736 & IHIST(2,NMXHKK)
18737* rejection counter
18738 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
18739 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
18740 & IREXCI(3),IRDIFF(2),IRINC
18741* central particle production, impact parameter biasing
18742 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
18743* particle properties (BAMJET index convention)
18744 CHARACTER*8 ANAME
18745 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
18746 & IICH(210),IIBAR(210),K1(210),K2(210)
18747* treatment of residual nuclei: 4-momenta
18748 LOGICAL LRCLPR,LRCLTA
18749 COMMON /DTRNU1/ PINIPR(5),PINITA(5),PRCLPR(5),PRCLTA(5),
18750 & TRCLPR(5),TRCLTA(5),LRCLPR,LRCLTA
18751* treatment of residual nuclei: properties of residual nuclei
18752 COMMON /DTRNU2/ AMRCL0(2),EEXC(2),EEXCFI(2),
18753 & NTOT(2),NPRO(2),NN(2),NH(2),NHPOS(2),NQ(2),
18754 & NTOTFI(2),NPROFI(2)
18755* statistics: residual nuclei
18756 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
18757 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
18758 & NINCST(2,4),NINCEV(2),
18759 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
18760 & NRESPB(2),NRESCH(2),NRESEV(4),
18761 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
18762 & NEVAFI(2,2)
18763* flags for input different options
18764 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
18765 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
18766 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
18767* (original name: FINUC)
18768 PARAMETER (MXP=999)
18769 COMMON /FKFINU/ CXR (MXP), CYR (MXP), CZR (MXP),
18770 & CXRPOL (MXP), CYRPOL (MXP), CZRPOL (MXP),
18771 & TKI (MXP), PLR (MXP), WEI (MXP),
18772 & TV, TVCMS, TVRECL, TVHEAV, TVBIND, NP0, NP,
18773 & KPART (MXP)
18774* (original name: RESNUC)
18775 LOGICAL LRNFSS, LFRAGM
18776 COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1,
18777 & ANOW, ZNOW, ANCOLL, ZNCOLL, AMMLFT, AMNLFT,
18778 & ERES, EKRES, AMNRES, AMMRES, PTRES, PXRES,
18779 & PYRES, PZRES, PTRES2, KTARP, KTARN, IGREYP,
18780 & IGREYN, IPREEH, IPRDEU, IPRTRI, IPR3HE, IPR4HE,
18781 & ICRES, IBRES, ISTRES, IEVAPL, IEVAPH, IEVNEU,
18782 & IEVPRO, IEVDEU, IEVTRI, IEV3HE, IEV4HE, IDEEXG,
18783 & IBTAR, ICHTAR, IBLEFT, ICLEFT, IOTHER, LRNFSS,
18784 & LFRAGM
18785 COMMON /FKNDAT/ AV0WEL, APFRMX, AEFRMX, AEFRMA,
18786 & RDSNUC, V0WELL (2), PFRMMX (2), EFRMMX (2),
18787 & EFRMAV (2), AMNUCL (2), AMNUSQ (2), EBNDNG (2),
18788 & VEFFNU (2), ESLOPE (2), PKMNNU (2), EKMNNU (2),
18789 & PKMXNU (2), EKMXNU (2), EKMNAV (2), EKINAV (2),
18790 & EXMNAV (2), EKUPNU (2), EXMNNU (2), EXUPNU (2),
18791 & ERCLAV (2), ESWELL (2), FINCUP (2), AMRCAV ,
18792 & AMRCSQ , ATO1O3 , ZTO1O3 , ELBNDE (0:100)
18793* (original name: PAREVT)
18794 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
18795 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
18796 PARAMETER ( NALLWP = 39 )
18797 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
18798 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
18799 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
18800 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
18801* event flag
18802 COMMON /DTEVNO/ NEVENT,ICASCA
18803
18804 DIMENSION INUC(2),IDXPAR(2),IDPAR(2),AIF(2),AIZF(2),AMRCL(2),
18805 & PRCL(2,4),MO1(2),MO2(2),VRCL(2,4),WRCL(2,4),
18806 & P1IN(4),P2IN(4),P1OUT(4),P2OUT(4)
18807
18808 DIMENSION EXPNUC(2),EXC(2,260),NEXC(2,260)
18809 LOGICAL LLCPOT
18810 DATA EXC,NEXC /520*ZERO,520*0/
18811 DATA EXPNUC /4.0D-3,4.0D-3/
18812
18813 IREJ = 0
18814 LRCLPR = .FALSE.
18815 LRCLTA = .FALSE.
18816
18817* skip residual nucleus treatment if not requested or in case
18818* of central collisions
18819 IF ((.NOT.LEVPRT).OR.(ICENTR.GT.0).OR.(ICENTR.EQ.-1)) RETURN
18820
18821 DO 1 K=1,2
18822 IDPAR(K) = 0
18823 IDXPAR(K)= 0
18824 NTOT(K) = 0
18825 NTOTFI(K)= 0
18826 NPRO(K) = 0
18827 NPROFI(K)= 0
18828 NN(K) = 0
18829 NH(K) = 0
18830 NHPOS(K) = 0
18831 NQ(K) = 0
18832 EEXC(K) = ZERO
18833 MO1(K) = 0
18834 MO2(K) = 0
18835 DO 2 I=1,4
18836 VRCL(K,I) = ZERO
18837 WRCL(K,I) = ZERO
18838 2 CONTINUE
18839 1 CONTINUE
18840 NFSP = 0
18841 INUC(1) = IP
18842 INUC(2) = IT
18843
18844 DO 3 I=1,NHKK
18845
18846* number of final state particles
18847 IF (ABS(ISTHKK(I)).EQ.1) THEN
18848 NFSP = NFSP+1
18849 IDFSP = IDBAM(I)
18850 ENDIF
18851
18852* properties of remaining nucleon configurations
18853 KF = 0
18854 IF ((ISTHKK(I).EQ.13).OR.(ISTHKK(I).EQ.15)) KF = 1
18855 IF ((ISTHKK(I).EQ.14).OR.(ISTHKK(I).EQ.16)) KF = 2
18856 IF (KF.GT.0) THEN
18857 IF (MO1(KF).EQ.0) MO1(KF) = I
18858 MO2(KF) = I
18859* position of residual nucleus = average position of nucleons
18860 DO 4 K=1,4
18861 VRCL(KF,K) = VRCL(KF,K)+VHKK(K,I)
18862 WRCL(KF,K) = WRCL(KF,K)+WHKK(K,I)
18863 4 CONTINUE
18864* total number of particles contributing to each residual nucleus
18865 NTOT(KF) = NTOT(KF)+1
18866 IDTMP = IDBAM(I)
18867 IDXTMP = I
18868* total charge of residual nuclei
18869 NQ(KF) = NQ(KF)+IICH(IDTMP)
18870* number of protons
18871 IF (IDHKK(I).EQ.2212) THEN
18872 NPRO(KF) = NPRO(KF)+1
18873* number of neutrons
18874 ELSEIF (IDHKK(I).EQ.2112) THEN
18875 NN(KF) = NN(KF)+1
18876 ELSE
18877* number of baryons other than n, p
18878 IF (IIBAR(IDTMP).EQ.1) THEN
18879 NH(KF) = NH(KF)+1
18880 IF (IICH(IDTMP).EQ.1) NHPOS(KF) = NHPOS(KF)+1
18881 ELSE
18882* any other mesons (status set to 1)
18883C WRITE(LOUT,1002) KF,IDTMP
18884C1002 FORMAT(1X,'FICONF: residual nucleus ',I2,
18885C & ' containing meson ',I4,', status set to 1')
18886 ISTHKK(I) = 1
18887 IDTMP = IDPAR(KF)
18888 IDXTMP = IDXPAR(KF)
18889 NTOT(KF) = NTOT(KF)-1
18890 ENDIF
18891 ENDIF
18892 IDPAR(KF) = IDTMP
18893 IDXPAR(KF) = IDXTMP
18894 ENDIF
18895 3 CONTINUE
18896
18897* reject elastic events (def: one final state particle = projectile)
18898 IF ((IP.EQ.1).AND.(NFSP.EQ.1).AND.(IDFSP.EQ.IJPROJ)) THEN
18899 IREXCI(3) = IREXCI(3)+1
18900 GOTO 9999
18901C RETURN
18902 ENDIF
18903
18904* check if one nucleus disappeared..
18905C IF ((IP.GT.1).AND.(NTOT(1).EQ.0).AND.(NTOT(2).NE.0)) THEN
18906C DO 5 K=1,4
18907C PRCLTA(K) = PRCLTA(K)+PRCLPR(K)
18908C PRCLPR(K) = ZERO
18909C 5 CONTINUE
18910C ELSEIF ((IT.GT.1).AND.(NTOT(2).EQ.0).AND.(NTOT(1).NE.0)) THEN
18911C DO 6 K=1,4
18912C PRCLPR(K) = PRCLPR(K)+PRCLTA(K)
18913C PRCLTA(K) = ZERO
18914C 6 CONTINUE
18915C ENDIF
18916
18917 ICOR = 0
18918 INORCL = 0
18919 DO 7 I=1,2
18920 DO 8 K=1,4
18921* get the average of the nucleon positions
18922 VRCL(I,K) = VRCL(I,K)/MAX(NTOT(I),1)
18923 WRCL(I,K) = WRCL(I,K)/MAX(NTOT(I),1)
18924 IF (I.EQ.1) PRCL(1,K) = PRCLPR(K)
18925 IF (I.EQ.2) PRCL(2,K) = PRCLTA(K)
18926 8 CONTINUE
18927* mass number and charge of residual nuclei
18928 AIF(I) = DBLE(NTOT(I))
18929 AIZF(I) = DBLE(NPRO(I)+NHPOS(I))
18930 IF (NTOT(I).GT.1) THEN
18931* masses of residual nuclei in ground state
18932 AMRCL0(I) = AIF(I)*AMUAMU+1.0D-3*DT_ENERGY(AIF(I),AIZF(I))
18933* masses of residual nuclei
18934 PTORCL = SQRT(PRCL(I,1)**2+PRCL(I,2)**2+PRCL(I,3)**2)
18935 AMRCL(I) = (PRCL(I,4)-PTORCL)*(PRCL(I,4)+PTORCL)
18936 IF (AMRCL(I).GT.ZERO) AMRCL(I) = SQRT(AMRCL(I))
18937*
18938* M_res^2 < 0 : configuration not allowed
18939*
18940* a) re-calculate E_exc with scaled nuclear potential
18941* (conditional jump to label 9998)
18942* b) or reject event if N_loop(max) is exceeded
18943* (conditional jump to label 9999)
18944*
18945 IF (AMRCL(I).LE.ZERO) THEN
18946 IF (IOULEV(3).GT.0)
18947 & WRITE(LOUT,1000) I,PRCL(I,1),PRCL(I,2),PRCL(I,3),
18948 & PRCL(I,4),NTOT
18949 1000 FORMAT(1X,'warning! negative excitation energy',/,
18950 & I4,4E15.4,2I4)
18951 AMRCL(I) = ZERO
18952 EEXC(I) = ZERO
18953 IF (NLOOP.LE.500) THEN
18954 GOTO 9998
18955 ELSE
18956 IREXCI(2) = IREXCI(2)+1
18957 GOTO 9999
18958 ENDIF
18959*
18960* 0 < M_res < M_res0 : mass below ground-state mass
18961*
18962* a) we had residual nuclei with mass N_tot and reasonable E_exc
18963* before- assign average E_exc of those configurations to this
18964* one ( Nexc(i,N_tot) > 0 )
18965* b) or (and this applies always if run in transport codes) go up
18966* one mass number and
18967* i) if mass now larger than proj/targ mass or if run in
18968* transport codes assign average E_exc per wounded nucleon
18969* x number of wounded nucleons (Inuc-Ntot)
18970* ii) or assign average E_exc of those configurations to this
18971* one ( Nexc(i,m) > 0 )
18972*
18973 ELSEIF ((AMRCL(I).GT.ZERO).AND.(AMRCL(I).LT.AMRCL0(I)))
18974 & THEN
18975 M = MIN(NTOT(I),260)
18976 IF (NEXC(I,M).GT.0) THEN
18977 AMRCL(I) = AMRCL0(I)+EXC(I,M)/DBLE(NEXC(I,M))
18978 ELSE
18979 70 CONTINUE
18980 M = M+1
18981**sr corrected 27.12.06
18982* IF (M.GE.INUC(I)) THEN
18983* AMRCL(I) = AMRCL0(I)+EXPNUC(I)*DBLE(NTOT(I))
18984 IF ((M.GE.INUC(I)).OR.(ICASCA.GT.0)) THEN
18985 IF ( INUC (I) .GT. NTOT (I) ) THEN
18986 AMRCL(I) = AMRCL0(I)
18987 & + EXPNUC(I)*DBLE(MAX(INUC(I)-NTOT(I),0))
18988 ELSE
18989 AMRCL(I) = AMRCL0(I) + 0.5D+00 * EXPNUC(I)
18990 END IF
18991**
18992 ELSE
18993 IF (NEXC(I,M).GT.0) THEN
18994 AMRCL(I) = AMRCL0(I)+EXC(I,M)/DBLE(NEXC(I,M))
18995 ELSE
18996 GOTO 70
18997 ENDIF
18998 ENDIF
18999 ENDIF
19000 EEXC(I) = AMRCL(I)-AMRCL0(I)
19001 ICOR = ICOR+I
19002*
19003* M_res > 2.5 x M_res0 : unreasonably(?) high E_exc
19004*
19005* a) re-calculate E_exc with scaled nuclear potential
19006* (conditional jump to label 9998)
19007* b) or reject event if N_loop(max) is exceeded
19008* (conditional jump to label 9999)
19009*
19010*
19011 ELSEIF (AMRCL(I).GE.2.5D0*AMRCL0(I)) THEN
19012 IF (IOULEV(3).GT.0)
19013 & WRITE(LOUT,1004) I,AMRCL(I),AMRCL0(I),NTOT,NEVHKK
19014 1004 FORMAT(1X,'warning! too high excitation energy',/,
19015 & I4,1P,2E15.4,3I5)
19016 AMRCL(I) = ZERO
19017 EEXC(I) = ZERO
19018 IF (NLOOP.LE.500) THEN
19019 GOTO 9998
19020 ELSE
19021 IREXCI(2) = IREXCI(2)+1
19022 GOTO 9999
19023 ENDIF
19024*
19025* Otherwise (reasonable E_exc) :
19026* E_exc = M_res - M_res0
19027* in addition: calculate and save E_exc per wounded nucleon as
19028* well as E_exc in <E_exc> counter
19029*
19030 ELSE
19031* excitation energies of residual nuclei
19032 EEXC(I) = AMRCL(I)-AMRCL0(I)
19033**sr 27.12.06 new excitation energy correction by A.F.
19034*
19035* all parts with Ilcopt<3 commented since not used
19036*
19037* still to be done/decided:
19038* Increase Icor and put back both residual nuclei on mass shell
19039* with the exciting correction further below.
19040* For the moment the modification in the excitation energy is simply
19041* corrected by scaling the energy of the residual nucleus.
19042*
19043 LLCPOT = .TRUE.
19044 ILCOPT = 3
19045 IF ( LLCPOT ) THEN
19046 NNCHIT = MAX ( INUC (I) - NTOT (I), 0 )
19047 IF ( ILCOPT .LE. 2 ) THEN
19048C* Patch for Fermi momentum reduction correlated with impact parameter:
19049C FRMRDC = MIN ( (PFRMAV(INUC(I))/APFRMX)**3, ONE )
19050C DLKPRH = 0.1D+00 + 0.5D+00 / SQRT(DBLE(INUC(I)))
19051C AKPRHO = ONE - DLKPRH
19052C* f x K rho_cen + (1-f) x 0.5 x K rho_cen = frmrdc x rho_cen
19053C FRCFLL = MAX ( 2.D+00 * FRMRDC / AKPRHO - ONE,
19054C & 0.05D+00 )
19055C* REDORI = 0.75D+00
19056C* REDORI = ONE
19057C REDORI = ONE / ( FRMRDC )**(2.D+00/3.D+00)
19058 ELSE
19059 DLKPRH = ZERO
19060 RDCORE = 1.14D+00 * DBLE(INUC(I))**(ONE/3.D+00)
19061* Take out roughly one/half of the skin:
19062 RDCORE = RDCORE - 0.5D+00
19063 FRCFLL = RDCORE**3
19064 PRSKIN = (RDCORE+2.4D+00)**3 - FRCFLL
19065 PRSKIN = 0.5D+00 * PRSKIN / ( PRSKIN + FRCFLL )
19066 FRCFLL = ONE - PRSKIN
19067 FRMRDC = FRCFLL + 0.5D+00 * PRSKIN
19068 REDORI = ONE / ( FRMRDC )**(2.D+00/3.D+00)
19069 END IF
19070 IF ( NNCHIT .GT. 0 ) THEN
19071C IF ( ILCOPT .EQ. 1 ) THEN
19072C SKINRH = ONE - FRCFLL / (DBLE(INUC(I))-ONE)
19073C DO 1220 NCH = 1, 10
19074C ETAETA = ( ONE - SKINRH**INUC(I)
19075C & - DBLE(INUC(I))* ( ONE - FRCFLL )
19076C & * ( ONE - SKINRH ) )
19077C & / ( SKINRH**INUC(I) - DBLE (INUC(I))
19078C & * ( ONE - FRCFLL) * SKINRH )
19079C SKINRH = SKINRH * ( ONE + ETAETA )
19080C 1220 CONTINUE
19081C PRSKIN = SKINRH**(NNCHIT-1)
19082C ELSE IF ( ILCOPT .EQ. 2 ) THEN
19083C PRSKIN = ONE - FRCFLL
19084C END IF
19085 REDCTN = ZERO
19086 DO 1230 NCH = 1, NNCHIT
19087 IF (DT_RNDM(PRFRMI) .LT. PRSKIN) THEN
19088 PRFRMI = (( ONE - 2.D+00 * DLKPRH )
19089 & * DT_RNDM(PRFRMI))**0.333333333333D+00
19090 ELSE
19091 PRFRMI = ( ONE - 2.D+00 * DLKPRH
19092 & * DT_RNDM(PRFRMI))**0.333333333333D+00
19093 END IF
19094 REDCTN = REDCTN + PRFRMI**2
19095 1230 CONTINUE
19096 REDCTN = REDCTN / DBLE (NNCHIT)
19097 ELSE
19098 REDCTN = 0.5D+00
19099 END IF
19100 EEXC (I) = EEXC (I) * REDCTN / REDORI
19101 AMRCL (I) = AMRCL0 (I) + EEXC (I)
19102 PRCL(I,4) = SQRT ( PTORCL**2 + AMRCL(I)**2 )
19103 END IF
19104**
19105 IF (ICASCA.EQ.0) THEN
19106 EXPNUC(I) = EEXC(I)/MAX(1,INUC(I)-NTOT(I))
19107 M = MIN(NTOT(I),260)
19108 EXC(I,M) = EXC(I,M)+EEXC(I)
19109 NEXC(I,M) = NEXC(I,M)+1
19110 ENDIF
19111 ENDIF
19112 ELSEIF (NTOT(I).EQ.1) THEN
19113 WRITE(LOUT,1003) I
19114 1003 FORMAT(1X,'FICONF: warning! NTOT(I)=1? (I=',I3,')')
19115 GOTO 9999
19116 ELSE
19117 AMRCL0(I) = ZERO
19118 AMRCL(I) = ZERO
19119 EEXC(I) = ZERO
19120 INORCL = INORCL+I
19121 ENDIF
19122 7 CONTINUE
19123
19124 PRCLPR(5) = AMRCL(1)
19125 PRCLTA(5) = AMRCL(2)
19126
19127 IF (ICOR.GT.0) THEN
19128 IF (INORCL.EQ.0) THEN
19129* one or both residual nuclei consist of one nucleon only, transform
19130* this nucleon on mass shell
19131 DO 9 K=1,4
19132 P1IN(K) = PRCL(1,K)
19133 P2IN(K) = PRCL(2,K)
19134 9 CONTINUE
19135 XM1 = AMRCL(1)
19136 XM2 = AMRCL(2)
19137 CALL DT_MASHEL(P1IN,P2IN,XM1,XM2,P1OUT,P2OUT,IREJ1)
19138 IF (IREJ1.GT.0) THEN
19139 WRITE(LOUT,*) 'ficonf-mashel rejection'
19140 GOTO 9999
19141 ENDIF
19142 DO 10 K=1,4
19143 PRCL(1,K) = P1OUT(K)
19144 PRCL(2,K) = P2OUT(K)
19145 PRCLPR(K) = P1OUT(K)
19146 PRCLTA(K) = P2OUT(K)
19147 10 CONTINUE
19148 PRCLPR(5) = AMRCL(1)
19149 PRCLTA(5) = AMRCL(2)
19150 ELSE
19151 IF (IOULEV(3).GT.0)
19152 & WRITE(LOUT,1001) NEVHKK,INT(AIF(1)),INT(AIZF(1)),
19153 & INT(AIF(2)),INT(AIZF(2)),AMRCL0(1),
19154 & AMRCL(1),AMRCL(1)-AMRCL0(1),AMRCL0(2),
19155 & AMRCL(2),AMRCL(2)-AMRCL0(2)
19156 1001 FORMAT(1X,'FICONF: warning! no residual nucleus for',
19157 & ' correction',/,11X,'at event',I8,
19158 & ', nucleon config. 1:',2I4,' 2:',2I4,
19159 & 2(/,11X,3E12.3))
19160 IF (NLOOP.LE.500) THEN
19161 GOTO 9998
19162 ELSE
19163 IREXCI(1) = IREXCI(1)+1
19164 ENDIF
19165 ENDIF
19166 ENDIF
19167
19168* update counter
19169C IF (NRESEV(1).NE.NEVHKK) THEN
19170C NRESEV(1) = NEVHKK
19171C NRESEV(2) = NRESEV(2)+1
19172C ENDIF
19173 NRESEV(2) = NRESEV(2)+1
19174 DO 15 I=1,2
19175 EXCDPM(I) = EXCDPM(I)+EEXC(I)
19176 EXCDPM(I+2) = EXCDPM(I+2)+(EEXC(I)/MAX(NTOT(I),1))
19177 NRESTO(I) = NRESTO(I)+NTOT(I)
19178 NRESPR(I) = NRESPR(I)+NPRO(I)
19179 NRESNU(I) = NRESNU(I)+NN(I)
19180 NRESBA(I) = NRESBA(I)+NH(I)
19181 NRESPB(I) = NRESPB(I)+NHPOS(I)
19182 NRESCH(I) = NRESCH(I)+NQ(I)
19183 15 CONTINUE
19184
19185* evaporation
19186 IF (LEVPRT) THEN
19187 DO 13 I=1,2
19188* initialize evaporation counter
19189 EEXCFI(I) = ZERO
19190 IF ((INUC(I).GT.1).AND.(AIF(I).GT.ONE).AND.
19191 & (EEXC(I).GT.ZERO)) THEN
19192* put residual nuclei into DTEVT1
19193 IDRCL = 80000
19194 JMASS = INT( AIF(I))
19195 JCHAR = INT(AIZF(I))
19196* the following patch is required to transmit the correct excitation
19197* energy to Eventd
19198 IF (ITRSPT.EQ.1) THEN
19199 IF ((ABS(AMRCL(I)-AMRCL0(I)-EEXC(I)).GT.1.D-04).AND.
19200 & (IOULEV(3).GT.0))
19201 & WRITE(LOUT,*)
19202 & ' DT_FICONF:AMRCL(I),AMRCL0(I),EEXC(I)',
19203 & AMRCL(I),AMRCL0(I),EEXC(I)
19204 PRCL0 = PRCL(I,4)
19205 PRCL(I,4) =SQRT(AMRCL(I)**2+PRCL(I,1)**2+PRCL(I,2)**2
19206 & +PRCL(I,3)**2)
19207 IF (ABS(PRCL0-PRCL(I,4)).GT.0.1D0) THEN
19208 WRITE(LOUT,*)
19209 & ' PRCL(I,4) recalculated :',PRCL0,PRCL(I,4)
19210 ENDIF
19211 ENDIF
19212 CALL DT_EVTPUT(1000,IDRCL,MO1(I),MO2(I),PRCL(I,1),
19213 & PRCL(I,2),PRCL(I,3),PRCL(I,4),JMASS,JCHAR,0)
19214**sr 22.6.97
19215 NOBAM(NHKK) = I
19216**
19217 DO 14 J=1,4
19218 VHKK(J,NHKK) = VRCL(I,J)
19219 WHKK(J,NHKK) = WRCL(I,J)
19220 14 CONTINUE
19221* interface to evaporation module - fill final residual nucleus into
19222* common FKRESN
19223* fill resnuc only if code is not used as event generator in Fluka
19224 IF (ITRSPT.NE.1) THEN
19225 PXRES = PRCL(I,1)
19226 PYRES = PRCL(I,2)
19227 PZRES = PRCL(I,3)
19228 IBRES = NPRO(I)+NN(I)+NH(I)
19229 ICRES = NPRO(I)+NHPOS(I)
19230 ANOW = DBLE(IBRES)
19231 ZNOW = DBLE(ICRES)
19232 PTRES = SQRT(PXRES**2+PYRES**2+PZRES**2)
19233* ground state mass of the residual nucleus (should be equal to AM0T)
19234 AMMRES = AMRCL0(I)
19235 AMNRES = AMMRES-ZNOW*AMELEC+ELBNDE(ICRES)
19236* common FKFINU
19237 TV = ZERO
19238* kinetic energy of residual nucleus
19239 TVRECL = PRCL(I,4)-AMRCL(I)
19240* excitation energy of residual nucleus
19241 TVCMS = EEXC(I)
19242 PTOLD = PTRES
19243 PTRES = SQRT(ABS(TVRECL*(TVRECL+
19244 & 2.0D0*(AMMRES+TVCMS))))
19245 IF (PTOLD.LT.ANGLGB) THEN
19246 CALL DT_RACO(PXRES,PYRES,PZRES)
19247 PTOLD = ONE
19248 ENDIF
19249 PXRES = PXRES*PTRES/PTOLD
19250 PYRES = PYRES*PTRES/PTOLD
19251 PZRES = PZRES*PTRES/PTOLD
19252* zero counter of secondaries from evaporation
19253 NP = 0
19254* evaporation
19255 WE = ONE
19256 CALL DT_EVEVAP(WE)
19257* put evaporated particles and residual nuclei to DTEVT1
19258 MO = NHKK
19259 CALL DT_EVA2HE(MO,EXCITF,I,IREJ1)
19260 ENDIF
19261 EEXCFI(I) = EXCITF
19262 EXCEVA(I) = EXCEVA(I)+EXCITF
19263 ENDIF
19264 13 CONTINUE
19265 ENDIF
19266
19267 RETURN
19268
19269C9998 IREXCI(1) = IREXCI(1)+1
19270 9998 IREJ = IREJ+1
19271 9999 CONTINUE
19272 LRCLPR = .TRUE.
19273 LRCLTA = .TRUE.
19274 IREJ = IREJ+1
19275 RETURN
19276 END
19277
19278*$ CREATE DT_EVA2HE.FOR
19279*COPY DT_EVA2HE
19280* *
19281*====eva2he============================================================*
19282* *
19283 SUBROUTINE DT_EVA2HE(MO,EEXCF,IRCL,IREJ)
19284
19285************************************************************************
19286* Interface between common's of evaporation module (FKFINU,FKFHVY) *
19287* and DTEVT1. *
19288* MO DTEVT1-index of "mother" (residual) nucleus before evap. *
19289* EEXCF exitation energy of residual nucleus after evaporation *
19290* IRCL = 1 projectile residual nucleus *
19291* = 2 target residual nucleus *
19292* This version dated 19.04.95 is written by S. Roesler. *
19293* *
19294* Last change 27.12.2006 by S. Roesler. *
19295************************************************************************
19296
19297 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19298 SAVE
19299 PARAMETER ( LINP = 10 ,
19300 & LOUT = 6 ,
19301 & LDAT = 9 )
19302 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3)
19303
19304* event history
19305 PARAMETER (NMXHKK=200000)
19306 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
19307 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
19308 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
19309* Note: DTEVT2 - special use for heavy fragments !
19310* (IDRES(I) = mass number, IDXRES(I) = charge)
19311* extended event history
19312 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
19313 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
19314 & IHIST(2,NMXHKK)
19315* particle properties (BAMJET index convention)
19316 CHARACTER*8 ANAME
19317 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
19318 & IICH(210),IIBAR(210),K1(210),K2(210)
19319* flags for input different options
19320 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
19321 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
19322 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
19323* statistics: residual nuclei
19324 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
19325 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
19326 & NINCST(2,4),NINCEV(2),
19327 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
19328 & NRESPB(2),NRESCH(2),NRESEV(4),
19329 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
19330 & NEVAFI(2,2)
19331* treatment of residual nuclei: properties of residual nuclei
19332 COMMON /DTRNU2/ AMRCL0(2),EEXC(2),EEXCFI(2),
19333 & NTOT(2),NPRO(2),NN(2),NH(2),NHPOS(2),NQ(2),
19334 & NTOTFI(2),NPROFI(2)
19335* (original name: FINUC)
19336 PARAMETER (MXP=999)
19337 COMMON /FKFINU/ CXR (MXP), CYR (MXP), CZR (MXP),
19338 & CXRPOL (MXP), CYRPOL (MXP), CZRPOL (MXP),
19339 & TKI (MXP), PLR (MXP), WEI (MXP),
19340 & TV, TVCMS, TVRECL, TVHEAV, TVBIND, NP0, NP,
19341 & KPART (MXP)
19342* (original name: FHEAVY,FHEAVC)
19343 PARAMETER ( MXHEAV = 100 )
19344 CHARACTER*8 ANHEAV
19345 COMMON /FKFHVY/ CXHEAV (MXHEAV), CYHEAV (MXHEAV),
19346 & CZHEAV (MXHEAV), TKHEAV (MXHEAV),
19347 & PHEAVY (MXHEAV), WHEAVY (MXHEAV),
19348 & AMHEAV ( 12 ) , AMNHEA ( 12 ) ,
19349 & KHEAVY (MXHEAV), ICHEAV ( 12 ) ,
19350 & IBHEAV ( 12 ) , NPHEAV
19351 COMMON /FKFHVC/ ANHEAV ( 12 )
19352* (original name: RESNUC)
19353 LOGICAL LRNFSS, LFRAGM
19354 COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1,
19355 & ANOW, ZNOW, ANCOLL, ZNCOLL, AMMLFT, AMNLFT,
19356 & ERES, EKRES, AMNRES, AMMRES, PTRES, PXRES,
19357 & PYRES, PZRES, PTRES2, KTARP, KTARN, IGREYP,
19358 & IGREYN, IPREEH, IPRDEU, IPRTRI, IPR3HE, IPR4HE,
19359 & ICRES, IBRES, ISTRES, IEVAPL, IEVAPH, IEVNEU,
19360 & IEVPRO, IEVDEU, IEVTRI, IEV3HE, IEV4HE, IDEEXG,
19361 & IBTAR, ICHTAR, IBLEFT, ICLEFT, IOTHER, LRNFSS,
19362 & LFRAGM
19363
19364 DIMENSION IPTOKP(39)
19365 DATA IPTOKP / 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
19366 & 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 99,
19367 & 100, 101, 97, 102, 98, 103, 109, 115 /
19368
19369 IREJ = 0
19370
19371* skip if evaporation package is not included
19372 IF (.NOT.LEVAPO) RETURN
19373
19374* update counter
19375 IF (NRESEV(3).NE.NEVHKK) THEN
19376 NRESEV(3) = NEVHKK
19377 NRESEV(4) = NRESEV(4)+1
19378 ENDIF
19379
19380 IF (LEMCCK)
19381 & CALL DT_EVTEMC(PHKK(1,MO),PHKK(2,MO),PHKK(3,MO),PHKK(4,MO),1,
19382 & IDUM,IDUM)
19383* mass number/charge of residual nucleus before evaporation
19384 IBTOT = IDRES(MO)
19385 IZTOT = IDXRES(MO)
19386
19387* protons/neutrons/gammas
19388 DO 1 I=1,NP
19389 PX = CXR(I)*PLR(I)
19390 PY = CYR(I)*PLR(I)
19391 PZ = CZR(I)*PLR(I)
19392 ID = IPTOKP(KPART(I))
19393 IDPDG = IDT_IPDGHA(ID)
19394 AM = ((PLR(I)+TKI(I))*(PLR(I)-TKI(I)))/
19395 & (2.0D0*MAX(TKI(I),TINY10))
19396 IF (ABS(AM-AAM(ID)).GT.TINY3) THEN
19397 WRITE(LOUT,1000) ID,AM,AAM(ID)
19398 1000 FORMAT(1X,'EVA2HE: inconsistent mass of evap. ',
19399 & 'particle',I3,2E10.3)
19400 ENDIF
19401 PE = TKI(I)+AM
19402 CALL DT_EVTPUT(-1,IDPDG,MO,0,PX,PY,PZ,PE,0,0,0)
19403 NOBAM(NHKK) = IRCL
19404 IF (LEMCCK) CALL DT_EVTEMC(-PX,-PY,-PZ,-PE,2,IDUM,IDUM)
19405 IBTOT = IBTOT-IIBAR(ID)
19406 IZTOT = IZTOT-IICH(ID)
19407 1 CONTINUE
19408
19409* heavy fragments
19410 DO 2 I=1,NPHEAV
19411 PX = CXHEAV(I)*PHEAVY(I)
19412 PY = CYHEAV(I)*PHEAVY(I)
19413 PZ = CZHEAV(I)*PHEAVY(I)
19414 IDHEAV = 80000
19415 AM = ((PHEAVY(I)+TKHEAV(I))*(PHEAVY(I)-TKHEAV(I)))/
19416 & (2.0D0*MAX(TKHEAV(I),TINY10))
19417 PE = TKHEAV(I)+AM
19418 CALL DT_EVTPUT(-1,IDHEAV,MO,0,PX,PY,PZ,PE,
19419 & IBHEAV(KHEAVY(I)),ICHEAV(KHEAVY(I)),0)
19420 NOBAM(NHKK) = IRCL
19421 IF (LEMCCK) CALL DT_EVTEMC(-PX,-PY,-PZ,-PE,2,IDUM,IDUM)
19422 IBTOT = IBTOT-IBHEAV(KHEAVY(I))
19423 IZTOT = IZTOT-ICHEAV(KHEAVY(I))
19424 2 CONTINUE
19425
19426 IF (IBRES.GT.0) THEN
19427* residual nucleus after evaporation
19428 IDNUC = 80000
19429 CALL DT_EVTPUT(1001,IDNUC,MO,0,PXRES,PYRES,PZRES,ERES,
19430 & IBRES,ICRES,0)
19431 NOBAM(NHKK) = IRCL
19432 ENDIF
19433 EEXCF = TVCMS
19434 NTOTFI(IRCL) = IBRES
19435 NPROFI(IRCL) = ICRES
19436 IF (LEMCCK) CALL DT_EVTEMC(-PXRES,-PYRES,-PZRES,-ERES,2,IDUM,IDUM)
19437 IBTOT = IBTOT-IBRES
19438 IZTOT = IZTOT-ICRES
19439
19440* count events with fission
19441 NEVAFI(1,IRCL) = NEVAFI(1,IRCL)+1
19442 IF (LRNFSS) NEVAFI(2,IRCL) = NEVAFI(2,IRCL)+1
19443
19444* energy-momentum conservation check
19445 IF (LEMCCK) CALL DT_EVTEMC(DUM,DUM,DUM,DUM,5,40,IREJ)
19446C IF (IREJ.GT.0) THEN
19447C CALL DT_EVTOUT(4)
19448C WRITE(*,*) EEXC(2),EEXCFI(2),NP,NPHEAV
19449C ENDIF
19450* baryon-number/charge conservation check
19451 IF (IBTOT+IZTOT.NE.0) THEN
19452 WRITE(LOUT,1001) NEVHKK,IBTOT,IZTOT
19453 1001 FORMAT(1X,'EVA2HE: baryon-number/charge conservation ',
19454 & 'failure at event ',I8,' : IBTOT,IZTOT = ',2I3)
19455 ENDIF
19456
19457 RETURN
19458 END
19459
19460*$ CREATE DT_EBIND.FOR
19461*COPY DT_EBIND
19462*
19463*===ebind==============================================================*
19464*
19465 DOUBLE PRECISION FUNCTION DT_EBIND(IA,IZ)
19466
19467************************************************************************
19468* Binding energy for nuclei. *
19469* (Shirokov & Yudin, Yad. Fizika, Nauka, Moskva 1972) *
19470* IA mass number *
19471* IZ atomic number *
19472* This version dated 5.5.95 is updated by S. Roesler. *
19473************************************************************************
19474
19475 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19476 SAVE
19477 PARAMETER ( LINP = 10 ,
19478 & LOUT = 6 ,
19479 & LDAT = 9 )
19480 PARAMETER (ZERO=0.0D0)
19481
19482 DATA A1, A2, A3, A4, A5
19483 & / 0.01575D0, 0.0178D0, 0.000710D0, 0.0237D0, 0.034D0/
19484
19485 IF ((IA.LE.1).OR.(IZ.EQ.0)) THEN
19486 WRITE(LOUT,'(1X,A,2I5)') 'DT_EBIND IA,IZ set EBIND=0. ',IA,IZ
19487 DT_EBIND = ZERO
19488 RETURN
19489 ENDIF
19490 AA = IA
19491 DT_EBIND = A1*AA - A2*AA**0.666667D0-A3*IZ*IZ*AA**(-0.333333D0)
19492 & -A4*(IA-2*IZ)**2/AA
19493 IF (MOD(IA,2).EQ.1) THEN
19494 IA5 = 0
19495 ELSEIF (MOD(IZ,2).EQ.1) THEN
19496 IA5 = 1
19497 ELSE
19498 IA5 = -1
19499 ENDIF
19500 DT_EBIND = DT_EBIND - IA5*A5*AA**(-0.75D0)
19501
19502 RETURN
19503 END
19504
19505**sr 30.6. routine replaced completely
19506*$ CREATE DT_ENERGY.FOR
19507*COPY DT_ENERGY
19508* *
19509*=== energy ===========================================================*
19510* *
19511 DOUBLE PRECISION FUNCTION DT_ENERGY( A, Z )
19512
19513C INCLUDE '(DBLPRC)'
19514* DBLPRC.ADD
19515 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19516 SAVE
19517* (original name: GLOBAL)
19518 PARAMETER ( KALGNM = 2 )
19519 PARAMETER ( ANGLGB = 5.0D-16 )
19520 PARAMETER ( ANGLSQ = 2.5D-31 )
19521 PARAMETER ( AXCSSV = 0.2D+16 )
19522 PARAMETER ( ANDRFL = 1.0D-38 )
19523 PARAMETER ( AVRFLW = 1.0D+38 )
19524 PARAMETER ( AINFNT = 1.0D+30 )
19525 PARAMETER ( AZRZRZ = 1.0D-30 )
19526 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
19527 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
19528 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
19529 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
19530 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
19531 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
19532 PARAMETER ( CSNNRM = 2.0D-15 )
19533 PARAMETER ( DMXTRN = 1.0D+08 )
19534 PARAMETER ( ZERZER = 0.D+00 )
19535 PARAMETER ( ONEONE = 1.D+00 )
19536 PARAMETER ( TWOTWO = 2.D+00 )
19537 PARAMETER ( THRTHR = 3.D+00 )
19538 PARAMETER ( FOUFOU = 4.D+00 )
19539 PARAMETER ( FIVFIV = 5.D+00 )
19540 PARAMETER ( SIXSIX = 6.D+00 )
19541 PARAMETER ( SEVSEV = 7.D+00 )
19542 PARAMETER ( EIGEIG = 8.D+00 )
19543 PARAMETER ( ANINEN = 9.D+00 )
19544 PARAMETER ( TENTEN = 10.D+00 )
19545 PARAMETER ( HLFHLF = 0.5D+00 )
19546 PARAMETER ( ONETHI = ONEONE / THRTHR )
19547 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
19548 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
19549 PARAMETER ( THRTWO = THRTHR / TWOTWO )
19550 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
19551 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
19552 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
19553 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
19554 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
19555 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
19556 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
19557 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
19558 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
19559 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
19560 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
19561 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
19562 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
19563 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
19564 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
19565 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
19566 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
19567 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
19568 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
19569 PARAMETER ( CLIGHT = 2.99792458 D+10 )
19570 PARAMETER ( AVOGAD = 6.0221367 D+23 )
19571 PARAMETER ( BOLTZM = 1.380658 D-23 )
19572 PARAMETER ( AMELGR = 9.1093897 D-28 )
19573 PARAMETER ( PLCKBR = 1.05457266 D-27 )
19574 PARAMETER ( ELCCGS = 4.8032068 D-10 )
19575 PARAMETER ( ELCMKS = 1.60217733 D-19 )
19576 PARAMETER ( AMUGRM = 1.6605402 D-24 )
19577 PARAMETER ( AMMUMU = 0.113428913 D+00 )
19578 PARAMETER ( AMPRMU = 1.007276470 D+00 )
19579 PARAMETER ( AMNEMU = 1.008664904 D+00 )
19580 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
19581 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
19582 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
19583 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
19584 PARAMETER ( PLABRC = 0.197327053 D+00 )
19585 PARAMETER ( AMELCT = 0.51099906 D-03 )
19586 PARAMETER ( AMUGEV = 0.93149432 D+00 )
19587 PARAMETER ( AMMUON = 0.105658389 D+00 )
19588 PARAMETER ( AMPRTN = 0.93827231 D+00 )
19589 PARAMETER ( AMNTRN = 0.93956563 D+00 )
19590 PARAMETER ( AMDEUT = 1.87561339 D+00 )
19591 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
19592 & * 1.D-09 )
19593 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
19594 PARAMETER ( BLTZMN = 8.617385 D-14 )
19595 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
19596 PARAMETER ( GFOHB3 = 1.16639 D-05 )
19597 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
19598 PARAMETER ( SIN2TW = 0.2319 D+00 )
19599 PARAMETER ( GEVMEV = 1.0 D+03 )
19600 PARAMETER ( EMVGEV = 1.0 D-03 )
19601 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
19602 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
19603 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
19604 LOGICAL LGBIAS, LGBANA
19605 COMMON /FKGLOB/ LGBIAS, LGBANA
19606C INCLUDE '(DIMPAR)'
19607* DIMPAR.ADD
19608 PARAMETER ( MXXRGN = 5000 )
19609 PARAMETER ( MXXMDF = 82 )
19610 PARAMETER ( MXXMDE = 54 )
19611 PARAMETER ( MFSTCK = 1000 )
19612 PARAMETER ( MESTCK = 100 )
19613 PARAMETER ( NALLWP = 39 )
19614 PARAMETER ( NELEMX = 80 )
19615 PARAMETER ( MPDPDX = 8 )
19616 PARAMETER ( ICOMAX = 180 )
19617 PARAMETER ( NSTBIS = 304 )
19618 PARAMETER ( IDMAXP = 220 )
19619 PARAMETER ( IDMXDC = 640 )
19620 PARAMETER ( MKBMX1 = 1 )
19621 PARAMETER ( MKBMX2 = 1 )
19622C INCLUDE '(IOUNIT)'
19623* IOUNIT.ADD
19624 PARAMETER ( LUNIN = 5 )
19625 PARAMETER ( LUNOUT = 6 )
19626**sr 19.5. set error output-unit from 15 to 6
19627 PARAMETER ( LUNERR = 6 )
19628 PARAMETER ( LUNBER = 14 )
19629 PARAMETER ( LUNECH = 8 )
19630 PARAMETER ( LUNFLU = 13 )
19631 PARAMETER ( LUNGEO = 16 )
19632 PARAMETER ( LUNPMF = 12 )
19633 PARAMETER ( LUNRAN = 2 )
19634 PARAMETER ( LUNXSC = 9 )
19635 PARAMETER ( LUNDET = 17 )
19636 PARAMETER ( LUNRAY = 10 )
19637 PARAMETER ( LUNRDB = 1 )
19638 PARAMETER ( LUNPGO = 7 )
19639 PARAMETER ( LUNPGS = 4 )
19640 PARAMETER ( LUNSCR = 3 )
19641*
19642*----------------------------------------------------------------------*
19643* *
19644* Revised version of the original routine from EVAP: *
19645* *
19646* Created on 15 may 1990 by Alfredo Ferrari & Paola Sala *
19647* Infn - Milan *
19648* *
19649* Last change on 19-sep-95 by Alfredo Ferrari *
19650* *
19651* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19652* !!! It is supposed to be used with the updated atomic !!! *
19653* !!! mass data file !!! *
19654* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19655* *
19656*----------------------------------------------------------------------*
19657*
19658* Mass number below which "unknown" isotopes out of the Z-interval
19659* reported in the mass tabulations are completely unstable and made
19660* up by Z proton masses + N neutron masses:
19661 PARAMETER ( KAFREE = 4 )
19662* Mass number below which "unknown" isotopes out of the Z-interval
19663* reported in the mass tabulations are supposed to be particle unstable
19664 PARAMETER ( KAPUNS = 12 )
19665* Minimum energy required for particle unstable isotopes
19666 PARAMETER ( DEPUNS = 0.5D+00 )
19667*
19668* (original name: EVA0)
19669 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
19670 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
19671 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
19672 * T (4,7), RMASS (297), ALPH (297), BET (297),
19673 * APRIME (250), IA (6), IZ (6)
19674* (original name: ISOTOP)
19675 PARAMETER ( NAMSMX = 270 )
19676 PARAMETER ( NZGVAX = 15 )
19677 PARAMETER ( NISMMX = 574 )
19678 COMMON /FKISOT/ WAPS (NAMSMX,NZGVAX), T12NUC (NAMSMX,NZGVAX),
19679 & WAPISM (NISMMX), T12ISM (NISMMX),
19680 & ABUISO (NSTBIS), ASTLIN (2,100), ZSTLIN (2,260),
19681 & AMSSST (100) , ISOMNM (NSTBIS), ISONDX (2,100),
19682 & JSPNUC (NAMSMX,NZGVAX), JPTNUC (NAMSMX,NZGVAX),
19683 & INWAPS (NAMSMX), JSPISM (NISMMX),
19684 & JPTISM (NISMMX), IZWISM (NISMMX),
19685 & INWISM (0:NAMSMX)
19686*
454792a9 19687CPH SAVE KA0, KZ0, IZ0
9aaba0d6 19688 DATA KA0, KZ0, IZ0 / -1, -1, -1 /
19689*
19690 IFLAG = 1
19691 GO TO 10
19692*======================================================================*
19693* *
19694* Entry ENergy - KNOWn *
19695* *
19696*======================================================================*
19697 ENTRY DT_ENKNOW ( A, Z, IZZ0 )
19698 IZZ0 =-1
19699 IFLAG = 2
19700 10 CONTINUE
19701*
19702 KA0 = NINT ( A )
19703 KZ0 = NINT ( Z )
19704 N = KA0 - KZ0
19705* +-------------------------------------------------------------------*
19706* | Null residual nucleus:
19707 IF ( KA0 .EQ. 0 .AND. KZ0 .LE. 0 ) THEN
19708 IF ( IFLAG .EQ. 1 ) THEN
19709 DT_ENERGY = ZERZER
19710 ELSE
19711 DT_ENKNOW = ZERZER
19712 IZZ0 = -1
19713 END IF
19714 RETURN
19715* |
19716* +-------------------------------------------------------------------*
19717* | Only protons:
19718 ELSE IF ( N .LE. 0 ) THEN
19719 IF ( N .LT. 0 ) THEN
19720 WRITE ( LUNOUT, * )
19721 & ' DPMJET stopped in energy: mass number =< atomic number !!',
19722 & KA0, KZ0
19723 WRITE ( LUNOUT, * )
19724 & ' DPMJET stopped in energy: mass number =< atomic number !!',
19725 & KA0, KZ0
19726 WRITE ( 77, * )
19727 & ' ^^^DPMJET stopped in energy: mass number =< atomic number !!',
19728 & KA0, KZ0
19729 STOP 'DT_ENERGY:KA0-KZ0'
19730 END IF
19731 IZ0 = -1
19732 IF ( IFLAG .EQ. 1 ) THEN
19733 DT_ENERGY = Z * WAPS ( 1, 2 )
19734 ELSE
19735 DT_ENKNOW = Z * WAPS ( 1, 2 )
19736 IZZ0 = -1
19737 END IF
19738 RETURN
19739* |
19740* +-------------------------------------------------------------------*
19741* | Only neutrons:
19742 ELSE IF ( KZ0 .LE. 0 ) THEN
19743 IF ( KZ0 .LT. 0 ) THEN
19744 WRITE ( LUNOUT, * )
19745 & ' DPMJET stopped in energy: negative atomic number !!',KA0,KZ0
19746 WRITE ( LUNOUT, * )
19747 & ' DPMJET stopped in energy: negative atomic number !!',KA0,KZ0
19748 WRITE ( 77, * )
19749 &' ^^^DPMJET stopped in energy: negative atomic number !!',KA0,KZ0
19750 STOP 'DT_ENERGY:KZ0<0'
19751 END IF
19752 IZ0 = -1
19753 IF ( IFLAG .EQ. 1 ) THEN
19754 DT_ENERGY = A * WAPS ( 1, 1 )
19755 ELSE
19756 DT_ENKNOW = A * WAPS ( 1, 1 )
19757 IZZ0 = -1
19758 END IF
19759 RETURN
19760 END IF
19761* |
19762* +-------------------------------------------------------------------*
19763* +-------------------------------------------------------------------*
19764* | No actual nucleus
19765* |
19766* +-------------------------------------------------------------------*
19767* +-------------------------------------------------------------------*
19768* | A larger than maximum allowed:
19769 IF ( KA0 .GT. NAMSMX ) THEN
19770 IZ0 = -1
19771 IF ( IFLAG .EQ. 1 ) THEN
19772 DT_ENERGY = DT_ENRG( A, Z )
19773 ELSE
19774 DT_ENKNOW = DT_ENRG( A, Z )
19775 IZZ0 = -1
19776 END IF
19777 RETURN
19778 END IF
19779* |
19780* +-------------------------------------------------------------------*
19781 IZZ = INWAPS ( KA0 )
19782* +-------------------------------------------------------------------*
19783* | Too much neutron rich with respect to the stability line:
19784 IF ( KZ0 .LT. IZZ ) THEN
19785* | +----------------------------------------------------------------*
19786* | | Up to A=Kafree all "bound" masses are known, set it unbound:
19787 IF ( KA0 .LE. KAFREE ) THEN
19788 DT_ENERGY = AINFNT
19789* | |
19790* | +----------------------------------------------------------------*
19791* | | Up to Kapuns: be sure it is particle unstable
19792 ELSE IF ( KA0 .LE. KAPUNS ) THEN
19793* | | Exp. excess mass for A,IZZ
19794 ENEEXP = WAPS ( KA0, 1 )
19795* | | Cameron excess mass for A, IZZ
19796 ENECA1 = DT_ENRG( A, DBLE (IZZ) )
19797* | | Cameron excess mass for A, Z
19798 DT_ENERGY = DT_ENRG( A, Z )
19799* | | Use just the difference according to Cameron!!!
19800 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19801 JZZ = INWAPS ( KA0 - 1 )
19802 LZZ = INWAPS ( KA0 - 2 )
19803* | | +-------------------------------------------------------------*
19804* | | | Residual mass for n-decay known:
19805 IF ( KZ0 .GE. JZZ .AND. KZ0 .LE. JZZ + NZGVAX - 1 ) THEN
19806 IZ0 = KZ0 - JZZ + 1
19807 DT_ENERGY = MAX(DT_ENERGY,WAPS (KA0-1,IZ0) + WAPS (1,1)
19808 & + DEPUNS )
19809* | | |
19810* | | +-------------------------------------------------------------*
19811* | | | Residual mass for 2n-decay known:
19812 ELSE IF ( KZ0 .GE. LZZ .AND. KZ0 .LE. LZZ + NZGVAX - 1 )THEN
19813 IZ0 = KZ0 - LZZ + 1
19814 DT_ENERGY = MAX ( DT_ENERGY, WAPS (KA0-2,IZ0) + TWOTWO *
19815 & ( WAPS (1,1) + DEPUNS ) )
19816* | | |
19817* | | +-------------------------------------------------------------*
19818* | | | Set it unbound:
19819 ELSE
19820 DT_ENERGY = AINFNT
19821 END IF
19822* | | |
19823* | | +-------------------------------------------------------------*
19824* | |
19825* | +----------------------------------------------------------------*
19826* | | Proceed as usual:
19827 ELSE
19828* | | Exp. excess mass for A,IZZ
19829 ENEEXP = WAPS ( KA0, 1 )
19830* | | Cameron excess mass for A, IZZ
19831 ENECA1 = DT_ENRG( A, DBLE (IZZ) )
19832* | | Cameron excess mass for A, Z
19833 DT_ENERGY = DT_ENRG( A, Z )
19834* | | Use just the difference according to Cameron!!!
19835 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19836 END IF
19837* | |
19838* | +----------------------------------------------------------------*
19839* | Be sure not to have a positive energy state:
19840 DT_ENERGY = MIN(DT_ENERGY,(A-Z) * WAPS (1,1) + Z * WAPS (1,2) )
19841 IZ0 = -1
19842 IF ( IFLAG .EQ. 2 ) THEN
19843 DT_ENKNOW = DT_ENERGY
19844 IZZ0 = -1
19845 END IF
19846 RETURN
19847* |
19848* +-------------------------------------------------------------------*
19849* | Too much proton rich with respect to the stability line:
19850 ELSE IF ( KZ0 .GT. IZZ + NZGVAX - 1 ) THEN
19851* | +----------------------------------------------------------------*
19852* | | Up to A=Kafree all "bound" masses are known, set it unbound:
19853 IF ( KA0 .LE. KAFREE ) THEN
19854 DT_ENERGY = AINFNT
19855* | |
19856* | +----------------------------------------------------------------*
19857* | | Up to Kapuns: be sure it is particle unstable
19858 ELSE IF ( KA0 .LE. KAPUNS ) THEN
19859* | | Exp. excess mass for A,IZZ+NZGVAX-1
19860 ENEEXP = WAPS ( KA0, NZGVAX )
19861* | | Cameron excess mass for A, IZZ+NZGVAX-1
19862 ENECA1 = DT_ENRG( A, DBLE (IZZ+NZGVAX-1) )
19863* | | Cameron excess mass for A, Z
19864 DT_ENERGY = DT_ENRG( A, Z )
19865* | | Use just the difference according to Cameron!!!
19866 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19867 JZZ = INWAPS ( KA0 - 1 )
19868 LZZ = INWAPS ( KA0 - 2 )
19869* | | +-------------------------------------------------------------*
19870* | | | Residual mass for p-decay known:
19871 IF ( KZ0-1 .GE. JZZ .AND. KZ0-1 .LE. JZZ + NZGVAX - 1 ) THEN
19872 IZ0 = KZ0 - 1 - JZZ + 1
19873 DT_ENERGY = MAX (DT_ENERGY, WAPS (KA0-1,IZ0) + WAPS (1,2)
19874 & + DEPUNS )
19875* | | |
19876* | | +-------------------------------------------------------------*
19877* | | | Residual mass for 2p-decay known:
19878 ELSE IF ( KZ0-2 .GE. LZZ .AND. KZ0-2 .LE. LZZ + NZGVAX - 1 )
19879 & THEN
19880 IZ0 = KZ0 - 2 - LZZ + 1
19881 DT_ENERGY = MAX ( DT_ENERGY, WAPS (KA0-2,IZ0) + TWOTWO *
19882 & ( WAPS (1,2) + DEPUNS ) )
19883* | | |
19884* | | +-------------------------------------------------------------*
19885* | | | Set it unbound:
19886 ELSE
19887 DT_ENERGY = AINFNT
19888 END IF
19889* | | |
19890* | | +-------------------------------------------------------------*
19891* | |
19892* | +----------------------------------------------------------------*
19893* | | Proceed as usual:
19894 ELSE
19895* | | Exp. excess mass for A,IZZ+NZGVAX-1
19896 ENEEXP = WAPS ( KA0, NZGVAX )
19897* | | Cameron excess mass for A, IZZ+NZGVAX-1
19898 ENECA1 = DT_ENRG( A, DBLE (IZZ+NZGVAX-1) )
19899* | | Cameron excess mass for A, Z
19900 DT_ENERGY = DT_ENRG( A, Z )
19901* | | Use just the difference according to Cameron!!!
19902 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19903 END IF
19904* | |
19905* | +----------------------------------------------------------------*
19906* | Be sure not to have a positive energy state:
19907 DT_ENERGY = MIN(DT_ENERGY,(A-Z) * WAPS (1,1) + Z * WAPS (1,2) )
19908 IZ0 = -1
19909 IF ( IFLAG .EQ. 2 ) THEN
19910 DT_ENKNOW = DT_ENERGY
19911 IZZ0 = -1
19912 END IF
19913 RETURN
19914* |
19915* +-------------------------------------------------------------------*
19916* | Known isotope or anyway isotope "inside" the stability zone
19917 ELSE
19918 IZ0 = KZ0 - IZZ + 1
19919 DT_ENERGY = WAPS ( KA0, IZ0 )
19920 IF ( IFLAG .EQ. 2 ) IZZ0 = IZ0
19921* | +----------------------------------------------------------------*
19922* | | Mass not known
19923 IF ( ABS (DT_ENERGY) .LT. ANGLGB .AND. (KA0 .NE. 12 .OR. KZ0
19924 & .NE. 6) ) THEN
19925 IF ( IFLAG .EQ. 2 ) IZZ0 = -1
19926* | | +-------------------------------------------------------------*
19927* | | | Set it unbound:
19928 IF ( KA0 .LE. KAFREE ) THEN
19929 DT_ENERGY = AINFNT
19930* | | |
19931* | | +-------------------------------------------------------------*
19932* | | | Try to get a reasonable excess mass:
19933 ELSE
19934 JZ0 = -100
19935* | | | +----------------------------------------------------------*
19936* | | | | Check the closest one known:
19937 DO 500 JZZ = 1, NZGVAX
19938 IF ( ABS ( WAPS (KA0,JZZ) ) .GT. ANGLGB .AND.
19939 & ABS (JZZ-IZ0) .LT. ABS (JZ0-IZ0) ) JZ0 = JZZ
19940 IF ( ABS (JZ0-IZ0) .EQ. 1 ) GO TO 550
19941 500 CONTINUE
19942* | | | |
19943* | | | +----------------------------------------------------------*
19944 550 CONTINUE
19945* | | | Exp. excess mass for A,IZZ+JZ0-1
19946 ENEEXP = WAPS ( KA0, JZ0 )
19947* | | | Cameron excess mass for A, IZZ+JZ0-1
19948 ENECA1 = DT_ENRG( A, DBLE (IZZ+JZ0-1) )
19949* | | | Cameron excess mass for A, Z
19950 DT_ENERGY = DT_ENRG( A, Z )
19951* | | | Use just the difference according to Cameron!!!
19952 DT_ENERGY = ENEEXP + DT_ENERGY - ENECA1
19953 IZ0 = -1
19954 END IF
19955* | | |
19956* | | +-------------------------------------------------------------*
19957* | | Be sure not to have a positive energy state:
19958 DT_ENERGY = MIN(DT_ENERGY,(A-Z)*WAPS(1,1)+Z*WAPS (1,2) )
19959 END IF
19960* | |
19961* | +----------------------------------------------------------------*
19962 IF ( IFLAG .EQ. 2 ) DT_ENKNOW = DT_ENERGY
19963 RETURN
19964 END IF
19965* |
19966* +-------------------------------------------------------------------*
19967*=== End of Function Energy ===========================================*
19968* RETURN
19969 END
19970**
19971
19972*$ CREATE DT_ENRG.FOR
19973*COPY DT_ENRG
19974* *
19975*=== enrg =============================================================*
19976* *
19977 DOUBLE PRECISION FUNCTION DT_ENRG(A,Z)
19978
19979 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
19980 SAVE
19981
19982 PARAMETER ( ZERZER = 0.D+00 )
19983 PARAMETER ( ONEONE = 1.D+00 )
19984 PARAMETER ( LUNIN = 5 )
19985 PARAMETER ( LUNOUT = 6 )
19986*
19987*----------------------------------------------------------------------*
19988* *
19989* Revised version of the original routine from EVAP: *
19990* *
19991* Created on 15 may 1990 by Alfredo Ferrari & Paola Sala *
19992* Infn - Milan *
19993* *
19994* Last change on 01-oct-94 by Alfredo Ferrari *
19995* *
19996* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
19997* !!! It is supposed to be used with the updated atomic !!! *
19998* !!! mass data file !!! *
19999* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *
20000* *
20001*----------------------------------------------------------------------*
20002*
20003 PARAMETER ( O16OLD = 931.145 D+00 )
20004 PARAMETER ( O16NEW = 931.19826D+00 )
20005 PARAMETER ( O16RAT = O16NEW / O16OLD )
20006 PARAMETER ( C12NEW = 931.49432D+00 )
20007 PARAMETER ( ADJUST = -8.322737768178909D-02 )
20008 PARAMETER ( AINFNT = 1.0D+30 )
20009* (original name: EVA0)
20010 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
20011 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
20012 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
20013 * T (4,7), RMASS (297), ALPH (297), BET (297),
20014 * APRIME (250), IA (6), IZ (6)
20015 LOGICAL LFIRST
454792a9 20016CPH SAVE LFIRST, EXHYDR, EXNEUT
9aaba0d6 20017 DATA LFIRST / .TRUE. /
20018*
20019 IF ( LFIRST ) THEN
20020 LFIRST = .FALSE.
20021**sr 30.6.
20022C EXHYDR = DT_ENERGY( ONEONE, ONEONE )
20023C EXNEUT = DT_ENERGY( ONEONE, ZERZER )
20024 EXHYDR = A
20025 EXNEUT = Z
20026 DT_ENRG = -AINFNT
20027 RETURN
20028**
20029 END IF
20030 IZ0 = NINT (Z)
20031 IF ( IZ0 .LE. 0 ) THEN
20032 DT_ENRG = A * EXNEUT
20033 RETURN
20034 END IF
20035 N = NINT (A-Z)
20036 IF ( N .LE. 0 ) THEN
20037 DT_ENRG = Z * EXHYDR
20038 RETURN
20039 END IF
20040 AM2ZOA= (A-Z-Z)/A
20041 AM2ZOA=AM2ZOA*AM2ZOA
20042 A13 = RMASS(NINT(A))
20043* A13 = A**.3333333333333333D+00
20044 AM13 = 1.D+00/A13
20045 EV=-17.0354D+00*(1.D+00 -1.84619 D+00*AM2ZOA)*A
20046 ES= 25.8357D+00*(1.D+00 -1.712185D+00*AM2ZOA)*
20047 & (1.D+00 -0.62025D+00*AM13*AM13)*
20048 & (A13*A13 -.62025D+00)
20049 EC= 0.799D+00*Z*(Z-1.D+00)*AM13*(((1.5772D+00*AM13 +1.2273D+00)*
20050 & AM13-1.5849D+00)*
20051 & AM13*AM13 +1.D+00)
20052 EEX= -0.4323D+00*AM13*Z**1.3333333D+00*
20053 & (((0.49597D+00*AM13 -0.14518D+00)*AM13 -0.57811D+00) * AM13
20054 & + 1.D+00)
20055 DT_ENRG=8.367D+00*A-0.783D+00*Z +EV +ES +EC +EEX+CAM2(IZ0)+CAM3(N)
20056 DT_ENRG=(DT_ENRG + A * O16OLD ) * O16RAT - A * ( C12NEW - ADJUST )
20057 DT_ENRG = MIN ( DT_ENRG, Z * EXHYDR + ( A - Z ) * EXNEUT )
20058 RETURN
20059*=== End of function Enrg =============================================*
20060 END
20061
20062*$ CREATE DT_INCINI.FOR
20063*COPY DT_INCINI
20064* *
20065*=== incini ===========================================================*
20066* *
20067 SUBROUTINE DT_INCINI
20068
20069 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20070 SAVE
20071
20072 PARAMETER ( ZERZER = 0.D+00 )
20073 PARAMETER ( ONEONE = 1.D+00 )
20074 PARAMETER ( TWOTWO = 2.D+00 )
20075 PARAMETER ( THRTHR = 3.D+00 )
20076 PARAMETER ( FOUFOU = 4.D+00 )
20077 PARAMETER ( EIGEIG = 8.D+00 )
20078 PARAMETER ( ANINEN = 9.D+00 )
20079 PARAMETER ( HLFHLF = 0.5D+00 )
20080 PARAMETER ( ONETHI = ONEONE / THRTHR )
20081 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
20082 PARAMETER ( PLABRC = 0.197327053 D+00 )
20083 PARAMETER ( AMELCT = 0.51099906 D-03 )
20084 PARAMETER ( AMUGEV = 0.93149432 D+00 )
20085 PARAMETER ( AMPRTN = 0.93827231 D+00 )
20086 PARAMETER ( AMNTRN = 0.93956563 D+00 )
20087 PARAMETER ( AMDEUT = 1.87561339 D+00 )
20088 PARAMETER ( EMVGEV = 1.0 D-03 )
20089
20090 PARAMETER ( LUNOUT = 6 )
20091*
20092*----------------------------------------------------------------------*
20093* *
20094* Created on 10 june 1990 by Alfredo Ferrari & Paola Sala *
20095* Infn - Milan *
20096* *
20097* Last change on 02-may-95 by Alfredo Ferrari *
20098* *
20099* *
20100*----------------------------------------------------------------------*
20101*
20102* (original name: FHEAVY,FHEAVC)
20103 PARAMETER ( MXHEAV = 100 )
20104 CHARACTER*8 ANHEAV
20105 COMMON /FKFHVY/ CXHEAV (MXHEAV), CYHEAV (MXHEAV),
20106 & CZHEAV (MXHEAV), TKHEAV (MXHEAV),
20107 & PHEAVY (MXHEAV), WHEAVY (MXHEAV),
20108 & AMHEAV ( 12 ) , AMNHEA ( 12 ) ,
20109 & KHEAVY (MXHEAV), ICHEAV ( 12 ) ,
20110 & IBHEAV ( 12 ) , NPHEAV
20111 COMMON /FKFHVC/ ANHEAV ( 12 )
20112* (original name: INPFLG)
20113 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
20114* (original name: FRBKCM)
20115 PARAMETER ( MXFFBK = 6 )
20116 PARAMETER ( MXZFBK = 9 )
20117 PARAMETER ( MXNFBK = 10 )
20118 PARAMETER ( MXAFBK = 16 )
20119 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
20120 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
20121 PARAMETER ( NXAFBK = MXAFBK + 1 )
20122 PARAMETER ( MXPSST = 300 )
20123 PARAMETER ( MXPSFB = 41000 )
20124 LOGICAL LFRMBK, LNCMSS
20125 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
20126 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
20127 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
20128 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
20129 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
20130 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
20131 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
20132 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
20133 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
20134* (original name: NUCDAT)
20135 PARAMETER ( AMUAMU = AMUGEV )
20136 PARAMETER ( AMPROT = AMPRTN )
20137 PARAMETER ( AMNEUT = AMNTRN )
20138 PARAMETER ( AMELEC = AMELCT )
20139 PARAMETER ( R0NUCL = 1.12 D+00 )
20140 PARAMETER ( RCCOUL = 1.7 D+00 )
20141 PARAMETER ( FERTHO = 14.33 D-09 )
20142 PARAMETER ( EXPEBN = 2.39 D+00 )
20143 PARAMETER ( BEXC12 = FERTHO * 72.40715579499394D+00 )
20144 PARAMETER ( AMUC12 = AMUGEV - HLFHLF * AMELCT + BEXC12 / 12.D+00 )
20145 PARAMETER ( AMHYDR = AMPRTN + AMELCT )
20146 PARAMETER ( AMHTON = AMHYDR - AMNTRN )
20147 PARAMETER ( AMNTOU = AMNTRN - AMUC12 )
20148 PARAMETER ( AMUCSQ = AMUC12 * AMUC12 )
20149 PARAMETER ( EBNDAV = HLFHLF * (AMPRTN + AMNTRN) - AMUC12 )
20150 PARAMETER ( GAMMIN = 1.0D-06 )
20151 PARAMETER ( GAMNSQ = 2.0D+00 * GAMMIN * GAMMIN )
20152 PARAMETER ( TVEPSI = GAMMIN / 100.D+00 )
20153 COMMON /FKNDAT/ AV0WEL, APFRMX, AEFRMX, AEFRMA,
20154 & RDSNUC, V0WELL (2), PFRMMX (2), EFRMMX (2),
20155 & EFRMAV (2), AMNUCL (2), AMNUSQ (2), EBNDNG (2),
20156 & VEFFNU (2), ESLOPE (2), PKMNNU (2), EKMNNU (2),
20157 & PKMXNU (2), EKMXNU (2), EKMNAV (2), EKINAV (2),
20158 & EXMNAV (2), EKUPNU (2), EXMNNU (2), EXUPNU (2),
20159 & ERCLAV (2), ESWELL (2), FINCUP (2), AMRCAV ,
20160 & AMRCSQ , ATO1O3 , ZTO1O3 , ELBNDE (0:100)
20161* (original name: PAREVT)
20162 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
20163 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
20164 PARAMETER ( NALLWP = 39 )
20165 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
20166 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
20167 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
20168 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
20169* (original name: NUCOLD)
20170 COMMON /FKNOLD/ HELP (2), HHLP (2), FTVTH (2), FINCX (2),
20171 & EKPOLD (2), BBOLD, ZZOLD, SQROLD, ASEASQ,
20172 & FSPRED, FEX0RD
20173*
20174 BBOLD = - 1.D+10
20175 ZZOLD = - 1.D+10
20176 SQROLD = - 1.D+10
20177 APFRMX = PLABRC * ( ANINEN * PIPIPI / EIGEIG )**ONETHI / R0NUCL
20178 AMNUCL (1) = AMPROT
20179 AMNUCL (2) = AMNEUT
20180 AMNUSQ (1) = AMPROT * AMPROT
20181 AMNUSQ (2) = AMNEUT * AMNEUT
20182 AMNHLP = HLFHLF * ( AMNUCL (1) + AMNUCL (2) )
20183 ASQHLP = AMNHLP**2
20184* ASQHLP = HLFHLF * ( AMNUSQ (1) + AMNUSQ (2) )
20185 AEFRMX = SQRT ( ASQHLP + APFRMX**2 ) - AMNHLP
20186 AEFRMA = 0.3D+00 * APFRMX**2 / AMNHLP * ( ONEONE - APFRMX**2 /
20187 & ( 5.6D+00 * ASQHLP ) )
20188 AV0WEL = AEFRMX + EBNDAV
20189 EBNDNG (1) = EBNDAV
20190 EBNDNG (2) = EBNDAV
20191 AEXC12 = EMVGEV * DT_ENERGY( 12.D+00, 6.D+00 )
20192 CEXC12 = EMVGEV * DT_ENRG( 12.D+00, 6.D+00 )
20193 AMMC12 = 12.D+00 * AMUGEV + AEXC12
20194 AMNC12 = AMMC12 - 6.D+00 * AMELCT + FERTHO * 6.D+00**EXPEBN
20195 AEXO16 = EMVGEV * DT_ENERGY( 16.D+00, 8.D+00 )
20196 CEXO16 = EMVGEV * DT_ENRG( 16.D+00, 8.D+00 )
20197 AMMO16 = 16.D+00 * AMUGEV + AEXO16
20198 AMNO16 = AMMO16 - 8.D+00 * AMELCT + FERTHO * 8.D+00**EXPEBN
20199 AEXS28 = EMVGEV * DT_ENERGY( 28.D+00, 14.D+00 )
20200 CEXS28 = EMVGEV * DT_ENRG( 28.D+00, 14.D+00 )
20201 AMMS28 = 28.D+00 * AMUGEV + AEXS28
20202 AMNS28 = AMMS28 - 14.D+00 * AMELCT + FERTHO * 14.D+00**EXPEBN
20203 AEXC40 = EMVGEV * DT_ENERGY( 40.D+00, 20.D+00 )
20204 CEXC40 = EMVGEV * DT_ENRG( 40.D+00, 20.D+00 )
20205 AMMC40 = 40.D+00 * AMUGEV + AEXC40
20206 AMNC40 = AMMC40 - 20.D+00 * AMELCT + FERTHO * 20.D+00**EXPEBN
20207 AEXF56 = EMVGEV * DT_ENERGY( 56.D+00, 26.D+00 )
20208 CEXF56 = EMVGEV * DT_ENRG( 56.D+00, 26.D+00 )
20209 AMMF56 = 56.D+00 * AMUGEV + AEXF56
20210 AMNF56 = AMMF56 - 26.D+00 * AMELCT + FERTHO * 26.D+00**EXPEBN
20211 AEX107 = EMVGEV * DT_ENERGY( 107.D+00, 47.D+00 )
20212 CEX107 = EMVGEV * DT_ENRG( 107.D+00, 47.D+00 )
20213 AMM107 = 107.D+00 * AMUGEV + AEX107
20214 AMN107 = AMM107 - 47.D+00 * AMELCT + FERTHO * 47.D+00**EXPEBN
20215 AEX132 = EMVGEV * DT_ENERGY( 132.D+00, 54.D+00 )
20216 CEX132 = EMVGEV * DT_ENRG( 132.D+00, 54.D+00 )
20217 AMM132 = 132.D+00 * AMUGEV + AEX132
20218 AMN132 = AMM132 - 54.D+00 * AMELCT + FERTHO * 54.D+00**EXPEBN
20219 AEX181 = EMVGEV * DT_ENERGY( 181.D+00, 73.D+00 )
20220 CEX181 = EMVGEV * DT_ENRG( 181.D+00, 73.D+00 )
20221 AMM181 = 181.D+00 * AMUGEV + AEX181
20222 AMN181 = AMM181 - 73.D+00 * AMELCT + FERTHO * 73.D+00**EXPEBN
20223 AEX208 = EMVGEV * DT_ENERGY( 208.D+00, 82.D+00 )
20224 CEX208 = EMVGEV * DT_ENRG( 208.D+00, 82.D+00 )
20225 AMM208 = 208.D+00 * AMUGEV + AEX208
20226 AMN208 = AMM208 - 82.D+00 * AMELCT + FERTHO * 82.D+00**EXPEBN
20227 AEX238 = EMVGEV * DT_ENERGY( 238.D+00, 92.D+00 )
20228 CEX238 = EMVGEV * DT_ENRG( 238.D+00, 92.D+00 )
20229 AMM238 = 238.D+00 * AMUGEV + AEX238
20230 AMN238 = AMM238 - 92.D+00 * AMELCT + FERTHO * 92.D+00**EXPEBN
20231
20232 AMHEAV (1) = AMUGEV + EMVGEV * DT_ENERGY( ONEONE, ZERZER )
20233 AMHEAV (2) = AMUGEV + EMVGEV * DT_ENERGY( ONEONE, ONEONE )
20234 AMHEAV (3) = TWOTWO * AMUGEV
20235 & + EMVGEV * DT_ENERGY( TWOTWO, ONEONE )
20236 AMHEAV (4) = THRTHR * AMUGEV
20237 & + EMVGEV * DT_ENERGY( THRTHR, ONEONE )
20238 AMHEAV (5) = THRTHR * AMUGEV
20239 & + EMVGEV * DT_ENERGY( THRTHR, TWOTWO )
20240 AMHEAV (6) = FOUFOU * AMUGEV
20241 & + EMVGEV * DT_ENERGY( FOUFOU, TWOTWO )
20242 ELBNDE (0) = ZERZER
20243 ELBNDE (1) = 13.6D-09
20244 DO 2000 IZ = 2, 100
20245 ELBNDE ( IZ ) = FERTHO * DBLE ( IZ )**EXPEBN
202462000 CONTINUE
20247 AMNHEA (1) = AMHEAV (1) + ELBNDE (0)
20248 AMNHEA (2) = AMHEAV (2) - AMELCT + ELBNDE (1)
20249 AMNHEA (3) = AMHEAV (3) - AMELCT + ELBNDE (1)
20250 AMNHEA (4) = AMHEAV (4) - AMELCT + ELBNDE (1)
20251 AMNHEA (5) = AMHEAV (5) - TWOTWO * AMELCT + ELBNDE (2)
20252 AMNHEA (6) = AMHEAV (6) - TWOTWO * AMELCT + ELBNDE (2)
20253 IF ( LEVPRT ) THEN
20254 WRITE ( LUNOUT, * )' **** Evaporation from residual nucleus',
20255 & ' activated **** '
20256 IF ( LDEEXG ) WRITE ( LUNOUT, * )' **** Deexcitation gamma',
20257 & ' production activated **** '
20258**sr 18.5.95
20259* commented, since obsolete
20260C IF ( LHEAVY ) WRITE ( LUNOUT, * )' **** Evaporated "heavies"',
20261C & ' transport activated **** '
20262 IF ( IFISS .GT. 0 )
20263 & WRITE ( LUNOUT, * )' **** High Energy fission ',
20264 & ' requested & activated **** '
20265 IF ( LFRMBK )
20266 & WRITE ( LUNOUT, * )' **** Fermi Break Up ',
20267 & ' requested & activated **** '
20268 IF ( LFRMBK ) CALL DT_FRBKIN(.FALSE.,.FALSE.)
20269 ELSE
20270 LDEEXG = .FALSE.
20271 LHEAVY = .FALSE.
20272 LFRMBK = .FALSE.
20273 IFISS = 0
20274 END IF
20275 RETURN
20276*=== End of subroutine incini =========================================*
20277 END
20278
20279*$ CREATE DT_STALIN.FOR
20280*COPY DT_STALIN
20281* *
20282*=== stalin ===========================================================*
20283* *
20284 SUBROUTINE DT_STALIN
20285
20286 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20287 SAVE
20288 PARAMETER ( ANGLGB = 5.0D-16 )
20289 PARAMETER ( ZERZER = 0.D+00 )
20290 PARAMETER ( ONEONE = 1.D+00 )
20291 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
20292 PARAMETER ( AMUGEV = 0.93149432 D+00 )
20293 PARAMETER ( EMVGEV = 1.0 D-03 )
20294 PARAMETER ( NSTBIS = 304 )
20295 PARAMETER ( LUNIN = 5 )
20296 PARAMETER ( LUNOUT = 6 )
20297*
20298*----------------------------------------------------------------------*
20299* *
20300* STAbility LINe calculation: *
20301* *
20302* Created on 04 december 1992 by Alfredo Ferrari & Paola Sala *
20303* Infn - Milan *
20304* *
20305* Last change on 04-dec-92 by Alfredo Ferrari *
20306* *
20307* *
20308*----------------------------------------------------------------------*
20309*
20310* (original name: ISOTOP)
20311 PARAMETER ( NAMSMX = 270 )
20312 PARAMETER ( NZGVAX = 15 )
20313 PARAMETER ( NISMMX = 574 )
20314 COMMON /FKISOT/ WAPS (NAMSMX,NZGVAX), T12NUC (NAMSMX,NZGVAX),
20315 & WAPISM (NISMMX), T12ISM (NISMMX),
20316 & ABUISO (NSTBIS), ASTLIN (2,100), ZSTLIN (2,260),
20317 & AMSSST (100) , ISOMNM (NSTBIS), ISONDX (2,100),
20318 & JSPNUC (NAMSMX,NZGVAX), JPTNUC (NAMSMX,NZGVAX),
20319 & INWAPS (NAMSMX), JSPISM (NISMMX),
20320 & JPTISM (NISMMX), IZWISM (NISMMX),
20321 & INWISM (0:NAMSMX)
20322*
20323 DIMENSION ZNORM (260)
20324* +-------------------------------------------------------------------*
20325* |
20326 DO 1000 IZ=1,100
20327 DO 500 J=1,2
20328 ASTLIN (J,IZ) = ZERZER
20329 500 CONTINUE
20330 1000 CONTINUE
20331* |
20332* +-------------------------------------------------------------------*
20333* +-------------------------------------------------------------------*
20334* |
20335 DO 2000 IA=1,260
20336 ZNORM (IA) = ZERZER
20337 DO 1500 J=1,2
20338 ZSTLIN (J,IA) = ZERZER
20339 1500 CONTINUE
20340 2000 CONTINUE
20341* |
20342* +-------------------------------------------------------------------*
20343* +-------------------------------------------------------------------*
20344* | Loop on the Atomic Number
20345 DO 3000 IZ=1,100
20346 AMSSST (IZ) = ZERZER
20347 ANORM = ONEONE
20348 ZTAR = IZ
20349* | +----------------------------------------------------------------*
20350* | | Loop on the stable isotopes
20351 DO 2500 IS = ISONDX (1,IZ), ISONDX (2,IZ)
20352 IA = ISOMNM (IS)
20353 ASTLIN (1,IZ) = ASTLIN (1,IZ) + ABUISO (IS) * IA
20354 ASTLIN (2,IZ) = ASTLIN (2,IZ) + ABUISO (IS) * IA**2
20355 ZNORM (IA) = ZNORM (IA) + ABUISO (IS)
20356 ZSTLIN (1,IA) = ZSTLIN (1,IA) + ABUISO (IS) * IZ
20357 ZSTLIN (2,IA) = ZSTLIN (2,IA) + ABUISO (IS) * IZ**2
20358 AHELP = IA
20359 IF ( AHELP .LE. 1.00001D+00 ) THEN
20360 ANORM = ONEONE / ( ONEONE - ABUISO (IS) )
20361 GO TO 2500
20362 END IF
20363 AMSSST (IZ) = ABUISO (IS) * ( AHELP * AMUGEV
20364 & + EMVGEV * DT_ENERGY(AHELP,ZTAR) ) + AMSSST (IZ)
20365 2500 CONTINUE
20366* | |
20367* | +----------------------------------------------------------------*
20368 AMSSST (IZ) = ANORM * AMSSST (IZ) / AMUGEV
20369* | Normalize and print A_stab versus Z data:
20370 ASTLIN (2,IZ) = MAX ( SQRT (ASTLIN(2,IZ)-ASTLIN(1,IZ)**2),
20371 & 0.5D+00 )
20372* WRITE (LUNOUT,*)' Z:',IZ,' A_stab:',SNGL(ASTLIN(1,IZ)),
20373* & ' Sigma_st',SNGL(ASTLIN(2,IZ))
20374 3000 CONTINUE
20375* |
20376* +-------------------------------------------------------------------*
20377* +-------------------------------------------------------------------*
20378* | Normalize and print Z_stab versus A data:
20379 DO 4000 IA=1,260
20380 ZSTLIN (1,IA) = ZSTLIN (1,IA) / MAX ( ZNORM (IA), 1.D-10 )
20381 ZSTLIN (2,IA) = ZSTLIN (2,IA) / MAX ( ZNORM (IA), 1.D-10 )
20382 ZSTLIN (2,IA) = MAX ( ZSTLIN (2,IA), ZSTLIN (1,IA)**2 )
20383 IF ( ZNORM (IA) .GT. ANGLGB )
20384**sr 2.11. avoid underflows at Pentium
20385 & ZSTLIN (2,IA) =
20386 & MAX ( SQRT ( ABS(ZSTLIN(2,IA)-ZSTLIN(1,IA)**2) ),
20387C & ZSTLIN (2,IA) = MAX ( SQRT (ZSTLIN(2,IA)-ZSTLIN(1,IA)**2),
20388 & 0.3D+00 )
20389 4000 CONTINUE
20390* |
20391* +-------------------------------------------------------------------*
20392* +-------------------------------------------------------------------*
20393* | Normalize and print Z_stab versus A data:
20394 DO 5000 IA=1,260
20395 IF ( ZNORM (IA) .LE. ANGLGB ) THEN
20396 DO 4200 JA = IA-1,1,-1
20397 IF ( ZNORM (JA) .GT. ANGLGB ) THEN
20398 IA1 = JA
20399 GO TO 4300
20400 END IF
20401 4200 CONTINUE
20402 4300 CONTINUE
20403 DO 4400 JA = IA+1,260
20404 IF ( ZNORM (JA) .GT. ANGLGB ) THEN
20405 IA2 = JA
20406 GO TO 4500
20407 END IF
20408 4400 CONTINUE
20409 IA2 = IA1
20410 IA1 = IA1 - 1
20411 4500 CONTINUE
20412 ZSTLIN (1,IA) = DBLE (IA-IA1) / DBLE (IA2-IA1)
20413 & * ( ZSTLIN (1,IA2) - ZSTLIN (1,IA1) )
20414 & + ZSTLIN (1,IA1)
20415 ZSTLIN (2,IA) = DBLE (IA-IA1) / DBLE (IA2-IA1)
20416 & * ( ZSTLIN (2,IA2) - ZSTLIN (2,IA1) )
20417 & + ZSTLIN (2,IA1)
20418 END IF
20419 IZ = MIN ( 100, NINT (ZSTLIN(1,IA)) )
20420 ATOZ = IZ / ASTLIN (1,IZ)
20421 ZSTLIN (2,IA) = MAX ( ZSTLIN (2,IA), ATOZ * ASTLIN (2,IZ) )
20422* WRITE (LUNOUT,*)' A:',IA,' Z_stab:',SNGL(ZSTLIN(1,IA)),
20423* & ' Sigma_st',SNGL(ZSTLIN(2,IA))
20424 5000 CONTINUE
20425* |
20426* +-------------------------------------------------------------------*
20427 RETURN
20428 END
20429
20430*$ CREATE DT_BERTTP.FOR
20431*COPY DT_BERTTP
20432*
20433*=== berttp ===========================================================*
20434* *
20435 SUBROUTINE DT_BERTTP
20436
20437 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20438 SAVE
20439
20440 PARAMETER ( CSNNRM = 2.0D-15 )
20441 PARAMETER ( ZERZER = 0.D+00 )
20442 PARAMETER ( ONEONE = 1.D+00 )
20443 PARAMETER ( THRTHR = 3.D+00 )
20444 PARAMETER ( SIXSIX = 6.D+00 )
20445 PARAMETER ( ONETHI = ONEONE / THRTHR )
20446 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
20447 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
20448 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
20449 PARAMETER ( EMVGEV = 1.0 D-03 )
20450
20451 PARAMETER ( NSTBIS = 304 )
20452
20453 PARAMETER ( LUNIN = 5 )
20454 PARAMETER ( LUNOUT = 6 )
20455**sr 19.5. set error output-unit from 15 to 6
20456 PARAMETER ( LUNERR = 6 )
20457C---------------------------------------------------------------------
20458C SUBNAME = DT_BERTTP --- READ BERTINI DATA
20459C---------------------------------------------------------------------
20460C ---------------------------------- I-N-C DATA
20461C COMMON R8(2127),R4(64),CRSC(600,4),R8B(336),CS(29849)
20462C REAL*8 R8,R8B,CRSC,CS
20463C REAL*4 R4
20464C --------------------------------- EVAPORATION DATA
20465* (original name: COOKCM)
20466 PARAMETER ( ASMTOG = SIXSIX / PIPIPI**2 )
20467 LOGICAL LDEFOZ, LDEFON
20468 PARAMETER ( INCOOK = 150, IZCOOK = 98 )
20469 COMMON /FKCOOK/ ALPIGN, BETIGN, GAMIGN, POWIGN,
20470 & SZCOOK (IZCOOK), SNCOOK (INCOOK), PZCOOK (IZCOOK),
20471 & PNCOOK (INCOOK), LDEFOZ (IZCOOK), LDEFON (INCOOK)
20472* (original name: EVA0)
20473 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
20474 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
20475 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
20476 * T (4,7), RMASS (297), ALPH (297), BET (297),
20477 * APRIME (250), IA (6), IZ (6)
20478* (original name: FRBKCM)
20479 PARAMETER ( MXFFBK = 6 )
20480 PARAMETER ( MXZFBK = 9 )
20481 PARAMETER ( MXNFBK = 10 )
20482 PARAMETER ( MXAFBK = 16 )
20483 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
20484 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
20485 PARAMETER ( NXAFBK = MXAFBK + 1 )
20486 PARAMETER ( MXPSST = 300 )
20487 PARAMETER ( MXPSFB = 41000 )
20488 LOGICAL LFRMBK, LNCMSS
20489 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
20490 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
20491 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
20492 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
20493 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
20494 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
20495 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
20496 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
20497 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
20498* (original name: HETTP)
20499 COMMON /FKHETP/ NHSTP,NBERTP,IOSUB,INSRS
20500* (original name: INPFLG)
20501 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
20502* (original name: ISOTOP)
20503 PARAMETER ( NAMSMX = 270 )
20504 PARAMETER ( NZGVAX = 15 )
20505 PARAMETER ( NISMMX = 574 )
20506 COMMON /FKISOT/ WAPS (NAMSMX,NZGVAX), T12NUC (NAMSMX,NZGVAX),
20507 & WAPISM (NISMMX), T12ISM (NISMMX),
20508 & ABUISO (NSTBIS), ASTLIN (2,100), ZSTLIN (2,260),
20509 & AMSSST (100) , ISOMNM (NSTBIS), ISONDX (2,100),
20510 & JSPNUC (NAMSMX,NZGVAX), JPTNUC (NAMSMX,NZGVAX),
20511 & INWAPS (NAMSMX), JSPISM (NISMMX),
20512 & JPTISM (NISMMX), IZWISM (NISMMX),
20513 & INWISM (0:NAMSMX)
20514* (original name: NUCGID,NUCGEO,NUCGE2,NUCPWI,NUCGII)
20515 PARAMETER ( PI = PIPIPI )
20516 PARAMETER ( PISQ = PIPISQ )
20517 PARAMETER ( SKTOHL = 0.5456645846610345D+00 )
20518 PARAMETER ( RZNUCL = 1.12 D+00 )
20519 PARAMETER ( RMSPRO = 0.8 D+00 )
20520 PARAMETER ( R0PROT = RMSPRO / SQRT12 )
20521 PARAMETER ( ARHPRO = 1.D+00 / 8.D+00 / PI / R0PROT / R0PROT
20522 & / R0PROT )
20523 PARAMETER ( RLLE04 = RZNUCL )
20524 PARAMETER ( RLLE16 = RZNUCL )
20525 PARAMETER ( RLGT16 = RZNUCL )
20526 PARAMETER ( RCLE04 = 0.75D+00 / PI / RLLE04 / RLLE04 / RLLE04 )
20527 PARAMETER ( RCLE16 = 0.75D+00 / PI / RLLE16 / RLLE16 / RLLE16 )
20528 PARAMETER ( RCGT16 = 0.75D+00 / PI / RLGT16 / RLGT16 / RLGT16 )
20529 PARAMETER ( SKLE04 = 1.4D+00 )
20530 PARAMETER ( SKLE16 = 1.9D+00 )
20531 PARAMETER ( SKGT16 = 2.4D+00 )
20532 PARAMETER ( HLLE04 = SKTOHL * SKLE04 )
20533 PARAMETER ( HLLE16 = SKTOHL * SKLE16 )
20534 PARAMETER ( HLGT16 = SKTOHL * SKGT16 )
20535 PARAMETER ( ALPHA0 = 0.1D+00 )
20536 PARAMETER ( OMALH0 = 1.D+00 - ALPHA0 )
20537 PARAMETER ( GAMSK0 = 0.9D+00 )
20538 PARAMETER ( OMGAS0 = 1.D+00 - GAMSK0 )
20539 PARAMETER ( POTME0 = 0.6666666666666667D+00 )
20540 PARAMETER ( POTBA0 = 1.D+00 )
20541 PARAMETER ( PNFRAT = 1.533D+00 )
20542 PARAMETER ( RADPIM = 0.035D+00 )
20543 PARAMETER ( RDPMHL = 14.D+00 )
20544 PARAMETER ( APMRST = 4.D+00 / 44.D+00 )
20545 PARAMETER ( APMPRO = 1.D+00 / 6.D+00 )
20546 PARAMETER ( APPPRO = 5.D+00 / 6.D+00 )
20547 PARAMETER ( AP0PFS = 0.5D+00 )
20548 PARAMETER ( AP0PFP = 1.D+00 / 3.D+00 )
20549 PARAMETER ( AP0NFP = 2.D+00 / 3.D+00 )
20550 PARAMETER ( XPAUCO = 1.88495407241652 D+00 )
20551 PARAMETER ( MXSCIN = 50 )
20552 LOGICAL LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH, LNCDCY,
20553 & LNUSCT, LPREEQ, LNPHTC, LNWRAD, LPNRHO, LFTCMP, LFTCAC
20554 COMMON /FKNGID/ RHOTAB (2:260), RHATAB (2:260), ALPTAB (2:260),
20555 & RADTAB (2:260), SKITAB (2:260), HALTAB (2:260),
20556 & SK3TAB (2:260), SK4TAB (2:260), HABTAB (2:260),
20557 & CWSTAB (2:260), EKATAB (2:260), PFATAB (2:260),
20558 & PFRTAB (2:260)
20559 COMMON /FKNGEO/ RADTOT, RADIU1, RADIU0, RAD1O2, SKINDP, HALODP,
20560 & ALPHAL, OMALHL, RADSKN, SKNEFF, CPARWS, RADPRO,
20561 & RADCOR, RADCO2, RADMAX, BIMPTR, RIMPTR, XIMPTR,
20562 & YIMPTR, ZIMPTR, RHOIMT, EKFPRO, PFRPRO, RHOCEN,
20563 & RHOCOR, RHOSKN, EKFCEN (2), PFRCEN (2), EKFBIM,
20564 & PFRBIM, RHOIMP, EKFIMP, PFRIMP, RHOIM2, EKFIM2,
20565 & PFRIM2, RHOIM3, EKFIM3, PFRIM3, VPRWLL, RIMPCT,
20566 & BIMPCT, XIMPCT, YIMPCT, ZIMPCT, RIMPC2, XIMPC2,
20567 & YIMPC2, ZIMPC2, RIMPC3, XIMPC3, YIMPC3, ZIMPC3,
20568 & XBIMPC, YBIMPC, ZBIMPC, CXIMPC, CYIMPC, CZIMPC,
20569 & SQRIMP, SIGMAP, SIGMAN, SIGMAA, RHORED, R0TRAJ,
20570 & R1TRAJ, SBUSED, SBTOT , SBRES , RHOAVE, EKFAVE,
20571 & PFRAVE, AVEBIN, ACOLL , ZCOLL , RADSIG, OPACTY,
20572 & EKECON, PNUCCO, EKEWLL, PPRWLL, PXPROJ, PYPROJ,
20573 & PZPROJ, EKFERM, PNFRMI, PXFERM, PYFERM, PZFERM,
20574 & EKFER2, PNFRM2, PXFER2, PYFER2, PZFER2, EKFER3,
20575 & PNFRM3, PXFER3, PYFER3, PZFER3, RHOMEM, EKFMEM,
20576 & BIMMEM, WLLRED, VPRBIM, POTINC, POTOUT, EEXMIN
20577 COMMON /FKNGE2/ RDTTNC (2), RHONCP (2), RHONC2 (2), RHONC3 (2),
20578 & RHONCT (2), AMOTHR, EKOTHR, AMCREA, EKNCLN,
20579 & EEXDEL, EEXANY, CLMBBR, RDCLMB, BFCLMB, BFCEFF,
20580 & BNPROJ, BNDNUC, DEBRLM, SK4PAR, UBIMPC, VBIMPC,
20581 & WBIMPC, BNDPOT, SIGMAT, SIGABP, SIGABN, WLLRES,
20582 & POTBAR, POTMES, AGEPRI, OPNOPA, ETHRND,
20583 & BNENRG (3), DEFNUC (2), SIGMPR (4), SIGMNU (4),
20584 & SIGPAB (3), SIGNAB (3), HHLP (2), FORTOT (2),
20585 & FPNBLC, DPNBLC, FFTFLG, IFTFLG,
20586 & IPWELL, ITNCMX, KPRIN , NTARGT, KNUCIM, KNUCI2,
20587 & KNUCI3, IEVPRE, ISFCOL, ISFTAR, ISFTA2, ISFTA3,
20588 & NPOTHR, ICOTHR, IBOTHR, NPUMFN, ISTNCL, ITAUCM,
20589 & IABCOU, IADFLG, IGSFLG, IALFLG, ICBFLG, LPREEQ,
20590 & LNPHTC, LPNRHO, LNWRAD, LFTCMP, LFTCAC
20591 COMMON /FKNPWI/ ALMBAR, BIMMAX, SIGGEO, LLLMAX, LLLACT
20592 COMMON /FKNGII/ HOLEXP (2*MXSCIN), XEXPIN (3,0:MXSCIN),
20593 & YEXPIN (3,0:MXSCIN), ZEXPIN (3,0:MXSCIN),
20594 & AGEXIN (0:MXSCIN), RHOEXP (2), EKFEXP, EHLFIX,
20595 & NHLEXP, NHLFIX, IPRTYP, NNCEXI (0:MXSCIN),
20596 & NCEXPI (3,0:MXSCIN), ISEXIN (3,0:MXSCIN),
20597 & ISCTYP (0:MXSCIN), NUSCIN, NEXPEM,
20598 & LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH,
20599 & LNCDCY, LNUSCT
20600 DIMENSION AWSTAB (2:260), SIGMAB (3)
20601 EQUIVALENCE ( DEFPRO, DEFNUC (1) )
20602 EQUIVALENCE ( DEFNEU, DEFNUC (2) )
20603 EQUIVALENCE ( RHOIPP, RHONCP (1) )
20604 EQUIVALENCE ( RHOINP, RHONCP (2) )
20605 EQUIVALENCE ( RHOIP2, RHONC2 (1) )
20606 EQUIVALENCE ( RHOIN2, RHONC2 (2) )
20607 EQUIVALENCE ( RHOIP3, RHONC3 (1) )
20608 EQUIVALENCE ( RHOIN3, RHONC3 (2) )
20609 EQUIVALENCE ( RHOIPT, RHONCT (1) )
20610 EQUIVALENCE ( RHOINT, RHONCT (2) )
20611 EQUIVALENCE ( OMALHL, SK3PAR )
20612 EQUIVALENCE ( ALPHAL, HABPAR )
20613 EQUIVALENCE ( ALPTAB (2), AWSTAB (2) )
20614 EQUIVALENCE ( SIGMPE, SIGMPR (1) )
20615 EQUIVALENCE ( SIGMPC, SIGMPR (2) )
20616 EQUIVALENCE ( SIGMPI, SIGMPR (3) )
20617 EQUIVALENCE ( SIGMPA, SIGMPR (4) )
20618 EQUIVALENCE ( SIGMNE, SIGMNU (1) )
20619 EQUIVALENCE ( SIGMNC, SIGMNU (2) )
20620 EQUIVALENCE ( SIGMNI, SIGMNU (3) )
20621 EQUIVALENCE ( SIGMNA, SIGMNU (4) )
20622 EQUIVALENCE ( SIGMA2, SIGPAB (1) )
20623 EQUIVALENCE ( SIGMA3, SIGPAB (2) )
20624 EQUIVALENCE ( SIGMAS, SIGPAB (3) )
20625 EQUIVALENCE ( SIGPAB (1), SIGMAB (1) )
20626* (original name: NUCLEV)
20627 LOGICAL LCLVSL, LFLVSL, LRLVSL, LEQSBL
20628 COMMON /FKNLEV/ PAENUC (200,2), SHENUC (200,2), DEFRMI (2),
20629 & DEFMAG (2), ENNCLV (160,2), RANCLV (160,2),
20630 & CUMRAD (0:160,2), RUSNUC (2),
20631 & ENPLVL (114), ENNLVL(164), JUSNUC (160,2),
20632 & NTANUC (2), NAVNUC (2), NLSNUC (2), NCONUC (2),
20633 & NSKNUC (2), NHANUC (2), NUSNUC (2), NACNUC (2),
20634 & JMXNUC (2), IPRNUC (3), JPRNUC (3), MAGNUM (8),
20635 & MAGNUC (2), MGSNUC (8,2), MGSSNC (25,2),
20636 & NSBSHL (2), NMNSBS (2), NPRNUC, INUCLV, LCLVSL,
20637 & LFLVSL, LRLVSL, LEQSBL
20638 DIMENSION JUSPRO (160), JUSNEU (160), MGSPRO (8), MGSNEU (8),
20639 & MGSSPR (19) , MGSSNE (25)
20640 EQUIVALENCE ( RUSNUC (1), RUSPRO )
20641 EQUIVALENCE ( RUSNUC (2), RUSNEU )
20642 EQUIVALENCE ( JUSNUC (1,1), JUSPRO (1) )
20643 EQUIVALENCE ( JUSNUC (1,2), JUSNEU (1) )
20644 EQUIVALENCE ( MGSNUC (1,1), MGSPRO (1) )
20645 EQUIVALENCE ( MGSNUC (1,2), MGSNEU (1) )
20646 EQUIVALENCE ( MGSSNC (1,1), MGSSPR (1) )
20647 EQUIVALENCE ( MGSSNC (1,2), MGSSNE (1) )
20648 EQUIVALENCE ( NTANUC (1), NTAPRO )
20649 EQUIVALENCE ( NTANUC (2), NTANEU )
20650 EQUIVALENCE ( NAVNUC (1), NAVPRO )
20651 EQUIVALENCE ( NAVNUC (2), NAVNEU )
20652 EQUIVALENCE ( NLSNUC (1), NLSPRO )
20653 EQUIVALENCE ( NLSNUC (2), NLSNEU )
20654 EQUIVALENCE ( NCONUC (1), NCOPRO )
20655 EQUIVALENCE ( NCONUC (2), NCONEU )
20656 EQUIVALENCE ( NSKNUC (1), NSKPRO )
20657 EQUIVALENCE ( NSKNUC (2), NSKNEU )
20658 EQUIVALENCE ( NHANUC (1), NHAPRO )
20659 EQUIVALENCE ( NHANUC (2), NHANEU )
20660 EQUIVALENCE ( NUSNUC (1), NUSPRO )
20661 EQUIVALENCE ( NUSNUC (2), NUSNEU )
20662 EQUIVALENCE ( NACNUC (1), NACPRO )
20663 EQUIVALENCE ( NACNUC (2), NACNEU )
20664 EQUIVALENCE ( JMXNUC (1), JMXPRO )
20665 EQUIVALENCE ( JMXNUC (2), JMXNEU )
20666 EQUIVALENCE ( MAGNUC (1), MAGPRO )
20667 EQUIVALENCE ( MAGNUC (2), MAGNEU )
20668* (original name: PAREVT)
20669 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
20670 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
20671 PARAMETER ( NALLWP = 39 )
20672 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
20673 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
20674 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
20675 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
20676* (original name: XSEPAR)
20677 COMMON /FKXSEP/ AANXSE (100), BBNXSE (100), CCNXSE (100),
20678 & DDNXSE (100), EENXSE (100), ZZNXSE (100),
20679 & EMNXSE (100), XMNXSE (100),
20680 & AAPXSE (100), BBPXSE (100), CCPXSE (100),
20681 & DDPXSE (100), EEPXSE (100), FFPXSE (100),
20682 & ZZPXSE (100), EMPXSE (100), XMPXSE (100)
20683
20684C---------------------------------------------------------------------
20685**sr 17.5.95
20686* modified for use in DPMJET
20687C WRITE( LUNOUT,'(A,I2)')
20688C & ' *** Reading evaporation and nuclear data from unit: ', NBERTP
20689C REWIND NBERTP
20690 IF (LEVPRT) WRITE(LUNOUT,1000)
20691 1000 FORMAT(/,1X,'BERTTP:',4X,'Initialization of evaporation module',
20692 & /,12X,'------------------------------------',/)
20693 NBERNW = 23
f87dab60 20694CPH OPEN (UNIT=NBERNW,FILE='dpmjet.dat',STATUS='UNKNOWN')
9aaba0d6 20695
20696**sr 17.5.
20697*!!!! changed to be able to read the ASCII !!!!
20698**
20699C A. Ferrari: first of all read isotopic data
20700 READ (NBERNW,*) ISONDX
20701 READ (NBERNW,*) ISOMNM
20702 READ (NBERNW,*) ABUISO
20703C READ (NBERTP) ISONDX
20704C READ (NBERTP) ISOMNM
20705C READ (NBERTP) ABUISO
20706 DO 1 I=1,4
20707C READ (NBERTP) (CRSC(J,I),J=1,600)
20708C A. Ferrari: commented also the dummy read to save disk space
20709C READ (NBERTP)
20710 1 CONTINUE
20711C READ (NBERTP) CS
20712C A. Ferrari: commented also the dummy read to save disk space
20713C READ (NBERTP)
20714C---------------------------------------------------------------------
20715 READ (NBERNW,*) (P0(I),P1(I),P2(I),I=1,1001)
20716 READ (NBERNW,*) IA,IZ
20717 DO 2 I=1,6
20718 FLA(I)=IA(I)
20719 FLZ(I)=IZ(I)
20720 2 CONTINUE
20721 READ (NBERNW,*) RHO,OMEGA
20722 READ (NBERNW,*) EXMASS
20723 READ (NBERNW,*) CAM2
20724 READ (NBERNW,*) CAM3
20725 READ (NBERNW,*) CAM4
20726 READ (NBERNW,*) CAM5
20727 READ (NBERNW,*) ((T(I,J),J=1,7),I=1,3)
20728 DO 3 I=1,7
20729 T(4,I) = ZERZER
20730 3 CONTINUE
20731 READ (NBERNW,*) RMASS
20732 READ (NBERNW,*) ALPH
20733 READ (NBERNW,*) BET
20734 READ (NBERNW,*) INWAPS
20735 READ (NBERNW,*) WAPS
20736 READ (NBERNW,*) T12NUC
20737 READ (NBERNW,*) JSPNUC
20738 READ (NBERNW,*) JPTNUC
20739 READ (NBERNW,*) INWISM
20740 READ (NBERNW,*) IZWISM
20741 READ (NBERNW,*) WAPISM
20742 READ (NBERNW,*) T12ISM
20743 READ (NBERNW,*) JSPISM
20744 READ (NBERNW,*) JPTISM
20745 READ (NBERNW,*) APRIME
20746 IF (LEVPRT)
20747 &WRITE( LUNOUT,'(A)' ) ' *** Evaporation: using 1977 Waps data ***'
20748 READ (NBERNW,*) AHELP , BHELP , LRMSCH, LRD1O2, LTRASP
20749 IF ( ABS (AHELP-ALPHA0) .GT. CSNNRM * ALPHA0 .OR.
20750 & ABS (BHELP-GAMSK0) .GT. CSNNRM * GAMSK0 ) THEN
20751 WRITE (LUNOUT,*)
20752 & ' *** Inconsistent Nuclear Geometry data on file ***'
20753 STOP
20754 END IF
20755 READ (NBERNW,*) RHOTAB, RHATAB, ALPTAB, RADTAB, SKITAB, HALTAB,
20756 & EKATAB, PFATAB, PFRTAB
20757 READ (NBERNW,*) AANXSE, BBNXSE, CCNXSE, DDNXSE, EENXSE, ZZNXSE,
20758 & EMNXSE, XMNXSE
20759 READ (NBERNW,*) AAPXSE, BBPXSE, CCPXSE, DDPXSE, EEPXSE, FFPXSE,
20760 & ZZPXSE, EMPXSE, XMPXSE
20761* Data about Fermi-breakup:
20762 READ (NBERNW,*) IPOSST, MXPDUM, MXADUM, MXNDUM, MXZDUM, IFBSTF
20763 IF ( MXADUM .NE. MXAFBK .OR. MXNDUM .NE. MXNFBK .OR. MXZDUM .NE.
20764 & MXZFBK .OR. MXPDUM .NE. MXPSST ) THEN
20765 WRITE (LUNOUT,*)' *** Inconsistent Fermi BreakUp data',
20766 & ' in the Nuclear Data file ***'
20767 STOP 'STOP:BERTTP-INCONS-FERMI-BREAKUP-DATA'
20768 END IF
20769 READ (NBERNW,*) IFRBKN
20770 READ (NBERNW,*) IFRBKZ
20771 READ (NBERNW,*) IFBKSP
20772 READ (NBERNW,*) IFBKST
20773 READ (NBERNW,*) EEXFBK
20774
20775 CLOSE (UNIT=NBERNW)
20776
20777C READ (NBERTP) (P0(I),P1(I),P2(I),I=1,1001)
20778C READ (NBERTP) IA,IZ
20779C DO 2 I=1,6
20780C FLA(I)=IA(I)
20781C FLZ(I)=IZ(I)
20782C 2 CONTINUE
20783C READ (NBERTP) RHO,OMEGA
20784C READ (NBERTP) EXMASS
20785C READ (NBERTP) CAM2
20786C READ (NBERTP) CAM3
20787C READ (NBERTP) CAM4
20788C READ (NBERTP) CAM5
20789C READ (NBERTP) ((T(I,J),J=1,7),I=1,3)
20790C DO 3 I=1,7
20791C T(4,I) = ZERZER
20792C 3 CONTINUE
20793C READ (NBERTP) RMASS
20794C READ (NBERTP) ALPH
20795C READ (NBERTP) BET
20796C READ (NBERTP) INWAPS
20797C READ (NBERTP) WAPS
20798C READ (NBERTP) T12NUC
20799C READ (NBERTP) JSPNUC
20800C READ (NBERTP) JPTNUC
20801C READ (NBERTP) INWISM
20802C READ (NBERTP) IZWISM
20803C READ (NBERTP) WAPISM
20804C READ (NBERTP) T12ISM
20805C READ (NBERTP) JSPISM
20806C READ (NBERTP) JPTISM
20807C READ (NBERTP) APRIME
20808C WRITE( LUNOUT,'(A)' ) ' *** Evaporation: using 1977 Waps data ***'
20809C READ (NBERTP) AHELP , BHELP , LRMSCH, LRD1O2, LTRASP
20810C IF ( ABS (AHELP-ALPHA0) .GT. CSNNRM * ALPHA0 .OR.
20811C & ABS (BHELP-GAMSK0) .GT. CSNNRM * GAMSK0 ) THEN
20812C WRITE (LUNOUT,*)
20813C & ' *** Inconsistent Nuclear Geometry data on file ***'
20814C STOP
20815C END IF
20816C READ (NBERTP) RHOTAB, RHATAB, ALPTAB, RADTAB, SKITAB, HALTAB,
20817C & EKATAB, PFATAB, PFRTAB
20818C READ (NBERTP) AANXSE, BBNXSE, CCNXSE, DDNXSE, EENXSE, ZZNXSE,
20819C & EMNXSE, XMNXSE
20820C READ (NBERTP) AAPXSE, BBPXSE, CCPXSE, DDPXSE, EEPXSE, FFPXSE,
20821C & ZZPXSE, EMPXSE, XMPXSE
20822* Data about Fermi-breakup:
20823C READ (NBERTP) IPOSST, MXPDUM, MXADUM, MXNDUM, MXZDUM, IFBSTF
20824C IF ( MXADUM .NE. MXAFBK .OR. MXNDUM .NE. MXNFBK .OR. MXZDUM .NE.
20825C & MXZFBK .OR. MXPDUM .NE. MXPSST ) THEN
20826C WRITE (LUNOUT,*)' *** Inconsistent Fermi BreakUp data',
20827C & ' in the Nuclear Data file ***'
20828C STOP 'STOP:BERTTP-INCONS-FERMI-BREAKUP-DATA'
20829C END IF
20830C READ (NBERTP) IFRBKN
20831C READ (NBERTP) IFRBKZ
20832C READ (NBERTP) IFBKSP
20833C READ (NBERTP) IFBKST
20834C READ (NBERTP) EEXFBK
20835C CLOSE (UNIT=NBERTP)
20836 DO 100 JZ = 1, 130
20837 SHENUC ( JZ, 1 ) = EMVGEV * ( CAM2 (JZ) + CAM4 (JZ) )
20838 100 CONTINUE
20839 DO 200 JA = 1, 200
20840 SHENUC ( JA, 2 ) = EMVGEV * ( CAM3 (JA) + CAM5 (JA) )
20841 200 CONTINUE
20842 CALL DT_STALIN
20843 IF ( ILVMOD .LE. 0 ) THEN
20844 ILVMOD = IB0
20845 ELSE
20846 IB0 = ILVMOD
20847 END IF
20848 IF ( LLVMOD ) THEN
20849 DO 300 JZ = 1, IZCOOK
20850 CAM4 (JZ) = PZCOOK (JZ)
20851 300 CONTINUE
20852 DO 400 JN = 1, INCOOK
20853 CAM5 (JN) = PNCOOK (JZ)
20854 400 CONTINUE
20855 END IF
20856**sr
20857 IF (LEVPRT) THEN
20858 WRITE (LUNOUT,*)
20859 IF ( ILVMOD .EQ. 1 ) THEN
20860 WRITE (LUNOUT,*)
20861 & ' **** Standard EVAP T=0 level density used ****'
20862 ELSE IF ( ILVMOD .EQ. 2 ) THEN
20863 WRITE (LUNOUT,*)
20864 & ' **** Gilbert & Cameron T=0 N,Z-dep. level density used ****'
20865 ELSE IF ( ILVMOD .EQ. 3 ) THEN
20866 WRITE (LUNOUT,*)
20867 & ' **** Julich A-dependent level density used ****'
20868 ELSE IF ( ILVMOD .EQ. 4 ) THEN
20869 WRITE (LUNOUT,*)
20870 & ' **** Brancazio & Cameron T=0 N,Z-dep. level density used',
20871 & ' ****'
20872 ELSE
20873 WRITE (LUNOUT,*)
20874 & ' **** Unknown T=0 level density option requested ****'
20875 STOP 'BERTTP-ILVMOD'
20876 END IF
20877 IF ( JLVMOD .LE. 0 ) THEN
20878 GAMIGN = ZERZER
20879 WRITE (LUNOUT,*)
20880 & ' **** No Excitation en. dependence for level densities ****'
20881 ELSE IF ( JLVMOD .EQ. 1 ) THEN
20882 WRITE (LUNOUT,*)
20883 & ' **** Ignyatuk (1975, 1st) level density en. dep. used ****'
20884 WRITE (LUNOUT,*)
20885 & ' **** with Ignyatuk (1975, 1st) set of parameters for T=oo',
20886 & ' ****'
20887 GAMIGN = 0.054D+00
20888 BETIGN = -6.3 D-05
20889 ALPIGN = 0.154D+00
20890 POWIGN = ZERZER
20891 ELSE IF ( JLVMOD .EQ. 2 ) THEN
20892 WRITE (LUNOUT,*)
20893 & ' **** Ignyatuk (1975, 1st) level density en. dep. used ****'
20894 WRITE (LUNOUT,*)
20895 & ' **** with UNKNOWN set of parameters for T=oo ****'
20896 STOP 'BERTTP-JLVMOD'
20897 ELSE IF ( JLVMOD .EQ. 3 ) THEN
20898 WRITE (LUNOUT,*)
20899 & ' **** Ignyatuk (1975, 1st) level density en. dep. used ****'
20900 WRITE (LUNOUT,*)
20901 & ' **** with UNKNOWN set of parameters for T=oo ****'
20902 STOP 'BERTTP-JLVMOD'
20903 ELSE IF ( JLVMOD .EQ. 4 ) THEN
20904 WRITE (LUNOUT,*)
20905 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20906 WRITE (LUNOUT,*)
20907 & ' **** with Ignyatuk (1975, 2nd) set of parameters for T=oo',
20908 & ' ****'
20909 GAMIGN = 0.054D+00
20910 BETIGN = 0.162D+00
20911 ALPIGN = 0.114D+00
20912 POWIGN = -ONETHI
20913 ELSE IF ( JLVMOD .EQ. 5 ) THEN
20914 WRITE (LUNOUT,*)
20915 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20916 WRITE (LUNOUT,*)
20917 & ' **** with Iljinov & Mebel 1st set of parameters for T=oo****'
20918 GAMIGN = 0.051D+00
20919 BETIGN = 0.098D+00
20920 ALPIGN = 0.114D+00
20921 POWIGN = -ONETHI
20922 ELSE IF ( JLVMOD .EQ. 6 ) THEN
20923 WRITE (LUNOUT,*)
20924 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20925 WRITE (LUNOUT,*)
20926 & ' **** with Iljinov & Mebel 2nd set of parameters for T=oo****'
20927 GAMIGN = -0.46D+00
20928 BETIGN = 0.107D+00
20929 ALPIGN = 0.111D+00
20930 POWIGN = -ONETHI
20931 ELSE IF ( JLVMOD .EQ. 7 ) THEN
20932 WRITE (LUNOUT,*)
20933 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20934 WRITE (LUNOUT,*)
20935 & ' **** with Iljinov & Mebel 3rd set of parameters for T=oo****'
20936 GAMIGN = 0.059D+00
20937 BETIGN = 0.257D+00
20938 ALPIGN = 0.072D+00
20939 POWIGN = -ONETHI
20940 ELSE IF ( JLVMOD .EQ. 8 ) THEN
20941 WRITE (LUNOUT,*)
20942 & ' **** Ignyatuk (1975, 2nd) level density en. dep. used ****'
20943 WRITE (LUNOUT,*)
20944 & ' **** with Iljinov & Mebel 4th set of parameters for T=oo****'
20945 GAMIGN = -0.37D+00
20946 BETIGN = 0.229D+00
20947 ALPIGN = 0.077D+00
20948 POWIGN = -ONETHI
20949 ELSE
20950 WRITE (LUNOUT,*)
20951 & ' **** Unknown T=oo level density option requested ****'
20952 STOP 'BERTTP-JLVMOD'
20953 END IF
20954 IF ( LLVMOD ) THEN
20955 WRITE (LUNOUT,*)
20956 & ' **** Cook''s modified pairing energy used ****'
20957 ELSE
20958 WRITE (LUNOUT,*)
20959 & ' **** Original Gilbert/Cameron pairing energy used ****'
20960 END IF
20961 ENDIF
20962**
20963
20964 ILVMOD = IB0
20965 DO 500 JZ = 1, 130
20966 PAENUC ( JZ, 1 ) = EMVGEV * CAM4 (JZ)
20967 500 CONTINUE
20968 DO 600 JA = 1, 200
20969 PAENUC ( JA, 2 ) = EMVGEV * CAM5 (JA)
20970 600 CONTINUE
20971 RETURN
20972 END
20973
20974*$ CREATE DT_EVEVAP.FOR
20975*COPY DT_EVEVAP
20976*
20977*====evevap============================================================*
20978*
20979 SUBROUTINE DT_EVEVAP(WE)
20980
20981 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
20982 SAVE
20983 PARAMETER ( LINP = 10 ,
20984 & LOUT = 6 ,
20985 & LDAT = 9 )
20986
20987* flags for input different options
20988 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
20989 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
20990 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
20991
20992 LEVAPO = .FALSE.
20993
20994 RETURN
20995 END
20996
20997*$ CREATE DT_FRBKIN.FOR
20998*COPY DT_FRBKIN
20999*
21000*====frbkin============================================================*
21001*
21002 SUBROUTINE DT_FRBKIN(LDUM1,LDUM2)
21003
21004 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21005 SAVE
21006 PARAMETER ( LINP = 10 ,
21007 & LOUT = 6 ,
21008 & LDAT = 9 )
21009
21010 LOGICAL LDUM1,LDUM2
21011
21012 RETURN
21013 END
21014
21015*$ CREATE DT_EXPLOD.FOR
21016*COPY DT_EXPLOD
21017*
21018*=== explod ===========================================================*
21019*
21020 SUBROUTINE DT_EXPLOD( NPEXPL, AMEXPL, ETOTEX, ETEXPL, PXEXPL,
21021 & PYEXPL, PZEXPL )
21022
21023 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21024 SAVE
21025
21026 DIMENSION PXEXPL (NPEXPL), PYEXPL (NPEXPL), PZEXPL (NPEXPL),
21027 & ETEXPL (NPEXPL), AMEXPL (NPEXPL)
21028
21029 RETURN
21030 END
21031
21032************************************************************************
21033* *
21034* DPMJET 3.0: cross section routines *
21035* *
21036************************************************************************
21037*
21038*
21039* SUBROUTINE DT_SHNDIF
21040* diffractive cross sections (all energies)
21041* SUBROUTINE DT_PHOXS
21042* total and inel. cross sections from PHOJET interpol. tables
21043* SUBROUTINE DT_XSHN
21044* total and el. cross sections for all energies
21045* SUBROUTINE DT_SIHNAB
21046* pion 2-nucleon absorption cross sections
21047* SUBROUTINE DT_SIGEMU
21048* cross section for target "compounds"
21049* SUBROUTINE DT_SIGGA
21050* photon nucleus cross sections
21051* SUBROUTINE DT_SIGGAT
21052* photon nucleus cross sections from tables
21053* SUBROUTINE DT_SANO
21054* anomalous hard photon-nucleon cross sections from tables
21055* SUBROUTINE DT_SIGGP
21056* photon nucleon cross sections
21057* SUBROUTINE DT_SIGVEL
21058* quasi-elastic vector meson prod. cross sections
21059* DOUBLE PRECISION FUNCTION DT_SIGVP
21060* sigma_VN(tilde)
21061* DOUBLE PRECISION FUNCTION DT_RRM2
21062* DOUBLE PRECISION FUNCTION DT_RM2
21063* DOUBLE PRECISION FUNCTION DT_SAM2
21064* SUBROUTINE DT_CKMT
21065* SUBROUTINE DT_CKMTX
21066* SUBROUTINE DT_PDF0
21067* SUBROUTINE DT_CKMTQ0
21068* SUBROUTINE DT_CKMTDE
21069* SUBROUTINE DT_CKMTPR
21070* FUNCTION DT_CKMTFF
21071*
21072* SUBROUTINE DT_FLUINI
21073* total nucleon cross section fluctuation treatment
21074*
21075* SUBROUTINE DT_SIGTBL
21076* pre-tabulation of low-energy elastic x-sec. using SIHNEL
21077* SUBROUTINE DT_XSTABL
21078* service routines
21079*
21080*
21081*$ CREATE DT_SHNDIF.FOR
21082*COPY DT_SHNDIF
21083*
21084*===shndif===============================================================*
21085*
21086 SUBROUTINE DT_SHNDIF(ECM,KPROJ,KTARG,SIGDIF,SIGDIH)
21087
21088**********************************************************************
21089* Single diffractive hadron-nucleon cross sections *
21090* S.Roesler 14/1/93 *
21091* *
21092* The cross sections are calculated from extrapolated single *
21093* diffractive antiproton-proton cross sections (DTUJET92) using *
21094* scaling relations between total and single diffractive cross *
21095* sections. *
21096**********************************************************************
21097
21098 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21099 SAVE
21100 PARAMETER (ZERO=0.0D0)
21101
21102* particle properties (BAMJET index convention)
21103 CHARACTER*8 ANAME
21104 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
21105 & IICH(210),IIBAR(210),K1(210),K2(210)
21106*
21107 CSD1 = 4.201483727D0
21108 CSD4 = -0.4763103556D-02
21109 CSD5 = 0.4324148297D0
21110*
21111 CHMSD1 = 0.8519297242D0
21112 CHMSD4 = -0.1443076599D-01
21113 CHMSD5 = 0.4014954567D0
21114*
21115 EPN = (ECM**2 -AAM(KPROJ)**2 -AAM(KTARG)**2)/(2.0D0*AAM(KTARG))
21116 PPN = SQRT((EPN-AAM(KPROJ))*(EPN+AAM(KPROJ)))
21117*
21118 SDIAPP = CSD1+CSD4*LOG(PPN)**2+CSD5*LOG(PPN)
21119 SHMSD = CHMSD1+CHMSD4*LOG(PPN)**2+CHMSD5*LOG(PPN)
21120 FRAC = SHMSD/SDIAPP
21121*
21122 GOTO( 10, 20,999,999,999,999,999, 10, 20,999,
21123 & 999, 20, 20, 20, 20, 20, 10, 20, 20, 10,
21124 & 10, 10, 20, 20, 20) KPROJ
21125*
21126 10 CONTINUE
21127*---------------------------- p - p , n - p , sigma0+- - p ,
21128* Lambda - p
21129 CSD1 = 6.004476070D0
21130 CSD4 = -0.1257784606D-03
21131 CSD5 = 0.2447335720D0
21132 SIGDIF = CSD1+CSD4*LOG(PPN)**2+CSD5*LOG(PPN)
21133 SIGDIH = FRAC*SIGDIF
21134 RETURN
21135*
21136 20 CONTINUE
21137*
21138 KPSCAL = 2
21139 KTSCAL = 1
21140C F = SDIAPP/DT_SHNTOT(KPSCAL,KTSCAL,ECM,ZERO)
21141 DUMZER = ZERO
21142 CALL DT_XSHN(KPSCAL,KTSCAL,DUMZER,ECM,SIGTO,SIGEL)
21143 F = SDIAPP/SIGTO
21144 KT = 1
21145C SIGDIF = DT_SHNTOT(KPROJ,KT,ECM,ZERO)*F
21146 CALL DT_XSHN(KPROJ,KT,DUMZER,ECM,SIGTO,SIGEL)
21147 SIGDIF = SIGTO*F
21148 SIGDIH = FRAC*SIGDIF
21149 RETURN
21150*
21151 999 CONTINUE
21152*-------------------------- leptons..
21153 SIGDIF = 1.D-10
21154 SIGDIH = 1.D-10
21155 RETURN
21156 END
21157
21158*$ CREATE DT_PHOXS.FOR
21159*COPY DT_PHOXS
21160*
21161*===phoxs================================================================*
21162*
21163 SUBROUTINE DT_PHOXS(KPROJ,KTARG,ECM,PLAB,STOT,SINE,SDIF1,BEL,MODE)
21164
21165************************************************************************
21166* Total/inelastic proton-nucleon cross sections taken from PHOJET- *
21167* interpolation tables. *
21168* This version dated 05.11.97 is written by S. Roesler *
21169************************************************************************
21170
21171 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21172 SAVE
21173
21174 PARAMETER ( LINP = 10 ,
21175 & LOUT = 6 ,
21176 & LDAT = 9 )
21177 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
21178 PARAMETER (TWOPI = 6.283185307179586454D+00,
21179 & PI = TWOPI/TWO,
21180 & GEV2MB = 0.38938D0)
21181
21182 LOGICAL LFIRST
21183 DATA LFIRST /.TRUE./
21184
21185* nucleon-nucleon event-generator
21186 CHARACTER*8 CMODEL
21187 LOGICAL LPHOIN
21188 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
21189* particle properties (BAMJET index convention)
21190 CHARACTER*8 ANAME
21191 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
21192 & IICH(210),IIBAR(210),K1(210),K2(210)
21193
21194**PHOJET105a
21195C PARAMETER (IEETAB=10)
21196C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
21197**PHOJET110
21198C energy-interpolation table
21199 INTEGER IEETA2
21200 PARAMETER ( IEETA2 = 20 )
21201 INTEGER ISIMAX
21202 DOUBLE PRECISION SIGTAB,SIGECM
21203 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
21204**
21205
21206 IF ((MCGENE.NE.2).AND.(MODE.NE.1)) THEN
21207 WRITE(LOUT,*) MCGENE
21208 1000 FORMAT(1X,'PHOXS: warning! PHOJET not initialized (',I2,')')
21209 STOP
21210 ENDIF
21211
21212 IF (ECM.LE.ZERO) THEN
21213 EPN = SQRT(AAM(KPROJ)**2+PLAB**2)
21214 ECM = SQRT(AAM(KPROJ)**2+AAM(KTARG)**2+2.0D0*EPN*AAM(KTARG))
21215 ENDIF
21216
21217 IF (MODE.EQ.1) THEN
21218* DL
21219 DELDL = 0.0808D0
21220 EPSDL = -0.4525D0
21221 S = ECM*ECM
21222 STOT = 21.7D0*S**DELDL+56.08D0*S**EPSDL
21223 ALPHAP= 0.25D0
21224 BEL = 8.5D0+2.D0*ALPHAP*LOG(S)
21225 SIGEL = STOT**2/(16.D0*PI*BEL*GEV2MB)
21226 SINE = STOT-SIGEL
21227 SDIF1 = ZERO
21228 ELSE
21229* Phojet
21230 IP = 1
21231 IF(ECM.LE.SIGECM(IP,1)) THEN
21232 I1 = 1
21233 I2 = 1
21234 ELSEIF (ECM.LT.SIGECM(IP,ISIMAX)) THEN
21235 DO 1 I=2,ISIMAX
21236 IF (ECM.LE.SIGECM(IP,I)) GOTO 2
21237 1 CONTINUE
21238 2 CONTINUE
21239 I1 = I-1
21240 I2 = I
21241 ELSE
21242 IF (LFIRST) THEN
21243 WRITE(LOUT,'(/1X,A,2E12.3)')
21244 & 'PHOXS: warning! energy above initialization limit (',
21245 & ECM,SIGECM(IP,ISIMAX)
21246 LFIRST = .FALSE.
21247 ENDIF
21248 I1 = ISIMAX
21249 I2 = ISIMAX
21250 ENDIF
21251 FAC2 = ZERO
21252 IF (I1.NE.I2) FAC2 = LOG(ECM/SIGECM(IP,I1))
21253 & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
21254 FAC1 = ONE-FAC2
21255 STOT = FAC2*SIGTAB(IP, 1,I2)+FAC1*SIGTAB(IP, 1,I1)
21256 SINE = FAC2*SIGTAB(IP,28,I2)+FAC1*SIGTAB(IP,28,I1)
21257 SDIF1 = FAC2*(SIGTAB(IP,30,I2)+SIGTAB(IP,32,I2))+
21258 & FAC1*(SIGTAB(IP,30,I1)+SIGTAB(IP,32,I1))
21259 BEL = FAC2*SIGTAB(IP,39,I2)+FAC1*SIGTAB(IP,39,I1)
21260 ENDIF
21261
21262 RETURN
21263 END
21264
21265*$ CREATE DT_XSHN.FOR
21266*COPY DT_XSHN
21267*
21268*===xshn===============================================================*
21269*
21270 SUBROUTINE DT_XSHN(IP,IT,PL,ECM,STOT,SELA)
21271
21272************************************************************************
21273* Total and elastic hadron-nucleon cross section. *
21274* Below 500GeV cross sections are based on the '98 data compilation *
21275* of the PDG. At higher energies PHOJET results are used (patched to *
21276* the low energy data at 500GeV). *
21277* IP projectile index (BAMJET numbering scheme) *
21278* (should be in the range 1..25) *
21279* IT target index (BAMJET numbering scheme) *
21280* (1 = proton, 8 = neutron) *
21281* PL laboratory momentum *
21282* ECM cm. energy (ignored if PL>0) *
21283* STOT total cross section *
21284* SELA elastic cross section *
21285* Last change: 24.4.99 by S. Roesler *
21286************************************************************************
21287
21288 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21289 SAVE
21290
21291 PARAMETER ( LINP = 10 ,
21292 & LOUT = 6 ,
21293 & LDAT = 9 )
21294 PARAMETER (ZERO=0.0D0,ONE=1.0D0)
21295
21296 PARAMETER (NPOIN1 = 54, NPOIN2 = 8,
21297 & PLABLO = 0.1D0, PTHRE = 5.0D0, PLABHI = 500.0D0)
21298 PARAMETER (NPOINT = NPOIN1+NPOIN2+1)
21299
21300 LOGICAL LFIRST
21301* particle properties (BAMJET index convention)
21302 CHARACTER*8 ANAME
21303 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
21304 & IICH(210),IIBAR(210),K1(210),K2(210)
21305* nucleon-nucleon event-generator
21306 CHARACTER*8 CMODEL
21307 LOGICAL LPHOIN
21308 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
21309**PHOJET105a
21310C PARAMETER (IEETAB=10)
21311C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
21312**PHOJET110
21313C energy-interpolation table
21314 INTEGER IEETA2
21315 PARAMETER ( IEETA2 = 20 )
21316 INTEGER ISIMAX
21317 DOUBLE PRECISION SIGTAB,SIGECM
21318 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
21319
21320 DIMENSION APL(NPOINT),ASIGTO(10,NPOINT),ASIGEL(10,NPOINT)
21321 DIMENSION IDXDAT(25,2)
21322*
21323 DATA APL /
21324 &-1.000,-0.969,-0.937,-0.906,-0.874,-0.843,-0.811,-0.780,-0.748,
21325 &-0.717,-0.685,-0.654,-0.622,-0.591,-0.560,-0.528,-0.497,-0.465,
21326 &-0.434,-0.402,-0.371,-0.339,-0.308,-0.276,-0.245,-0.213,-0.182,
21327 &-0.151,-0.119,-0.088,-0.056,-0.025, 0.007, 0.038, 0.070, 0.101,
21328 & 0.133, 0.164, 0.196, 0.227, 0.258, 0.290, 0.321, 0.353, 0.384,
21329 & 0.416, 0.447, 0.479, 0.510, 0.542, 0.573, 0.605, 0.636, 0.668,
21330 & 0.699, 0.949, 1.199, 1.449, 1.699, 1.949, 2.199, 2.449, 2.699/
21331*
21332* total cross sections:
21333* p p
21334 DATA (ASIGTO(1,K),K=1,NPOINT) /
21335 & 2.837, 2.760, 2.686, 2.614, 2.543, 2.472, 2.401, 2.329, 2.255,
21336 & 2.180, 2.103, 2.030, 1.968, 1.919, 1.861, 1.775, 1.698, 1.646,
21337 & 1.577, 1.518, 1.462, 1.420, 1.393, 1.375, 1.363, 1.356, 1.352,
21338 & 1.350, 1.351, 1.359, 1.381, 1.410, 1.444, 1.487, 1.544, 1.596,
21339 & 1.650, 1.672, 1.676, 1.677, 1.677, 1.675, 1.675, 1.669, 1.664,
21340 & 1.658, 1.653, 1.645, 1.640, 1.634, 1.630, 1.625, 1.620, 1.617,
21341 & 1.614, 1.602, 1.594, 1.589, 1.581, 1.583, 1.588, 1.596, 1.603/
21342* pbar p
21343 DATA (ASIGTO(2,K),K=1,NPOINT) /
21344 & 2.778, 2.759, 2.739, 2.718, 2.697, 2.675, 2.651, 2.626, 2.598,
21345 & 2.569, 2.537, 2.502, 2.471, 2.443, 2.420, 2.389, 2.361, 2.329,
21346 & 2.313, 2.304, 2.268, 2.244, 2.222, 2.212, 2.178, 2.162, 2.151,
21347 & 2.132, 2.109, 2.097, 2.089, 2.078, 2.063, 2.049, 2.035, 2.024,
21348 & 2.014, 2.004, 1.993, 1.981, 1.970, 1.958, 1.946, 1.933, 1.921,
21349 & 1.909, 1.894, 1.885, 1.871, 1.854, 1.836, 1.825, 1.816, 1.802,
21350 & 1.790, 1.744, 1.694, 1.663, 1.642, 1.614, 1.623, 1.623, 1.630/
21351* n p
21352 DATA (ASIGTO(3,K),K=1,NPOINT) /
21353 & 3.192, 3.145, 3.097, 3.047, 2.995, 2.940, 2.883, 2.824, 2.763,
21354 & 2.700, 2.634, 2.565, 2.494, 2.420, 2.344, 2.269, 2.196, 2.115,
21355 & 2.048, 1.964, 1.906, 1.842, 1.779, 1.719, 1.656, 1.604, 1.569,
21356 & 1.547, 1.534, 1.526, 1.522, 1.520, 1.525, 1.536, 1.550, 1.566,
21357 & 1.578, 1.580, 1.581, 1.584, 1.590, 1.598, 1.605, 1.608, 1.609,
21358 & 1.608, 1.608, 1.608, 1.608, 1.608, 1.607, 1.606, 1.606, 1.605,
21359 & 1.606, 1.599, 1.588, 1.587, 1.586, 1.589, 1.592, 1.597, 1.600/
21360* pi+ p
21361 DATA (ASIGTO(4,K),K=1,NPOINT) /
21362 & 0.643, 0.786, 0.929, 1.074, 1.199, 1.272, 1.340, 1.484, 1.610,
21363 & 1.750, 1.881, 2.014, 2.178, 2.244, 2.301, 2.309, 2.219, 2.118,
21364 & 2.001, 1.875, 1.801, 1.665, 1.609, 1.484, 1.412, 1.334, 1.195,
21365 & 1.160, 1.166, 1.208, 1.309, 1.356, 1.394, 1.406, 1.419, 1.473,
21366 & 1.540, 1.596, 1.570, 1.533, 1.516, 1.484, 1.471, 1.478, 1.492,
21367 & 1.497, 1.491, 1.479, 1.465, 1.453, 1.449, 1.450, 1.444, 1.428,
21368 & 1.422, 1.406, 1.384, 1.369, 1.364, 1.369, 1.374, 1.388, 1.395/
21369* pi- p
21370 DATA (ASIGTO(5,K),K=1,NPOINT) /
21371 & 0.458, 0.540, 0.626, 0.718, 0.819, 0.933, 1.063, 1.208, 1.226,
21372 & 1.436, 1.470, 1.594, 1.708, 1.786, 1.852, 1.836, 1.763, 1.679,
21373 & 1.590, 1.492, 1.445, 1.426, 1.423, 1.433, 1.473, 1.506, 1.547,
21374 & 1.660, 1.671, 1.545, 1.591, 1.687, 1.808, 1.656, 1.582, 1.543,
21375 & 1.562, 1.560, 1.537, 1.540, 1.549, 1.557, 1.557, 1.551, 1.535,
21376 & 1.527, 1.511, 1.510, 1.507, 1.500, 1.491, 1.483, 1.478, 1.468,
21377 & 1.463, 1.435, 1.408, 1.394, 1.384, 1.380, 1.383, 1.393, 1.411/
21378* K+ p
21379 DATA (ASIGTO(6,K),K=1,NPOINT) /
21380 & 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097,
21381 & 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097,
21382 & 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.097, 1.096, 1.095,
21383 & 1.098, 1.105, 1.111, 1.139, 1.169, 1.209, 1.248, 1.259, 1.268,
21384 & 1.262, 1.257, 1.254, 1.252, 1.250, 1.249, 1.246, 1.244, 1.244,
21385 & 1.243, 1.240, 1.238, 1.237, 1.236, 1.235, 1.235, 1.236, 1.236,
21386 & 1.236, 1.233, 1.238, 1.248, 1.257, 1.272, 1.292, 1.311, 1.336/
21387* K- p
21388 DATA (ASIGTO(7,K),K=1,NPOINT) /
21389 & 2.003, 2.002, 2.001, 2.000, 1.999, 1.998, 1.998, 1.997, 1.997,
21390 & 1.996, 1.995, 1.993, 1.990, 1.992, 1.974, 1.912, 1.865, 1.847,
21391 & 1.896, 1.950, 1.827, 1.681, 1.637, 1.616, 1.589, 1.545, 1.543,
21392 & 1.532, 1.603, 1.604, 1.616, 1.658, 1.700, 1.658, 1.595, 1.508,
21393 & 1.493, 1.514, 1.531, 1.523, 1.501, 1.479, 1.474, 1.467, 1.463,
21394 & 1.450, 1.444, 1.435, 1.426, 1.424, 1.423, 1.415, 1.401, 1.396,
21395 & 1.384, 1.364, 1.330, 1.313, 1.310, 1.309, 1.317, 1.329, 1.338/
21396* K+ n
21397 DATA (ASIGTO(8,K),K=1,NPOINT) /
21398 & 0.176, 0.229, 0.282, 0.334, 0.386, 0.437, 0.487, 0.536, 0.584,
21399 & 0.631, 0.675, 0.719, 0.760, 0.799, 0.835, 0.870, 0.901, 0.931,
21400 & 0.958, 0.984, 1.008, 1.032, 1.056, 1.079, 1.102, 1.125, 1.147,
21401 & 1.168, 1.187, 1.205, 1.224, 1.248, 1.279, 1.315, 1.324, 1.301,
21402 & 1.285, 1.279, 1.274, 1.273, 1.272, 1.271, 1.267, 1.263, 1.261,
21403 & 1.259, 1.256, 1.252, 1.247, 1.244, 1.241, 1.240, 1.240, 1.240,
21404 & 1.241, 1.243, 1.245, 1.253, 1.265, 1.275, 1.293, 1.314, 1.342/
21405* K- n
21406 DATA (ASIGTO(9,K),K=1,NPOINT) /
21407 & 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778,
21408 & 1.778, 1.778, 1.778, 1.778, 1.778, 1.779, 1.779, 1.778, 1.773,
21409 & 1.765, 1.746, 1.703, 1.646, 1.561, 1.488, 1.454, 1.437, 1.437,
21410 & 1.458, 1.505, 1.561, 1.588, 1.593, 1.581, 1.551, 1.500, 1.454,
21411 & 1.427, 1.408, 1.390, 1.372, 1.361, 1.356, 1.351, 1.347, 1.343,
21412 & 1.341, 1.340, 1.338, 1.337, 1.335, 1.334, 1.332, 1.331, 1.330,
21413 & 1.330, 1.313, 1.303, 1.288, 1.288, 1.297, 1.305, 1.320, 1.342/
21414* Lambda p
21415 DATA (ASIGTO(10,K),K=1,NPOINT) /
21416 & 2.648, 2.598, 2.548, 2.498, 2.446, 2.394, 2.340, 2.283, 2.224,
21417 & 2.160, 2.091, 2.015, 1.936, 1.858, 1.785, 1.720, 1.669, 1.629,
21418 & 1.599, 1.576, 1.558, 1.543, 1.530, 1.520, 1.512, 1.505, 1.499,
21419 & 1.495, 1.495, 1.497, 1.504, 1.514, 1.525, 1.536, 1.550, 1.567,
21420 & 1.578, 1.580, 1.581, 1.584, 1.590, 1.598, 1.605, 1.608, 1.609,
21421 & 1.608, 1.608, 1.608, 1.608, 1.608, 1.607, 1.606, 1.606, 1.605,
21422 & 1.606, 1.599, 1.588, 1.587, 1.586, 1.589, 1.592, 1.597, 1.600/
21423*
21424* elastic cross sections:
21425* p p
21426 DATA (ASIGEL(1,K),K=1,NPOINT) /
21427 & 2.837, 2.760, 2.686, 2.614, 2.543, 2.472, 2.401, 2.329, 2.255,
21428 & 2.180, 2.103, 2.030, 1.968, 1.919, 1.861, 1.775, 1.698, 1.646,
21429 & 1.577, 1.518, 1.462, 1.420, 1.393, 1.374, 1.360, 1.353, 1.350,
21430 & 1.351, 1.356, 1.362, 1.369, 1.376, 1.384, 1.385, 1.399, 1.397,
21431 & 1.389, 1.385, 1.379, 1.366, 1.358, 1.344, 1.320, 1.294, 1.275,
21432 & 1.260, 1.248, 1.235, 1.219, 1.199, 1.172, 1.144, 1.126, 1.115,
21433 & 1.104, 1.013, 0.962, 0.905, 0.869, 0.845, 0.846, 0.850, 0.868/
21434* pbar p
21435 DATA (ASIGEL(2,K),K=1,NPOINT) /
21436 & 1.987, 1.985, 1.983, 1.980, 1.978, 1.975, 1.971, 1.968, 1.963,
21437 & 1.958, 1.951, 1.944, 1.935, 1.925, 1.914, 1.902, 1.889, 1.875,
21438 & 1.859, 1.845, 1.834, 1.817, 1.792, 1.769, 1.754, 1.738, 1.720,
21439 & 1.702, 1.688, 1.676, 1.667, 1.659, 1.652, 1.645, 1.640, 1.636,
21440 & 1.620, 1.591, 1.562, 1.546, 1.540, 1.524, 1.496, 1.475, 1.457,
21441 & 1.429, 1.402, 1.373, 1.344, 1.330, 1.306, 1.294, 1.265, 1.228,
21442 & 1.204, 1.086, 0.977, 0.933, 0.914, 0.850, 0.862, 0.848, 0.845/
21443* n p
21444 DATA (ASIGEL(3,K),K=1,NPOINT) /
21445 & 3.192, 3.145, 3.097, 3.047, 2.995, 2.940, 2.883, 2.824, 2.763,
21446 & 2.700, 2.634, 2.565, 2.494, 2.420, 2.344, 2.269, 2.196, 2.115,
21447 & 2.048, 1.964, 1.906, 1.842, 1.779, 1.719, 1.656, 1.604, 1.569,
21448 & 1.544, 1.527, 1.514, 1.504, 1.495, 1.486, 1.476, 1.466, 1.454,
21449 & 1.440, 1.425, 1.409, 1.392, 1.375, 1.358, 1.340, 1.322, 1.304,
21450 & 1.285, 1.267, 1.250, 1.234, 1.219, 1.202, 1.181, 1.158, 1.136,
21451 & 1.116, 0.727,-2.128, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0/
21452* pi+ p
21453 DATA (ASIGEL(4,K),K=1,NPOINT) /
21454 & 0.643, 0.786, 0.929, 1.074, 1.199, 1.272, 1.340, 1.484, 1.610,
21455 & 1.750, 1.881, 2.014, 2.178, 2.244, 2.301, 2.309, 2.219, 2.118,
21456 & 2.001, 1.875, 1.801, 1.664, 1.610, 1.479, 1.423, 1.299, 1.166,
21457 & 1.097, 1.020, 0.958, 0.914, 1.013, 1.088, 1.153, 1.167, 1.235,
21458 & 1.240, 1.237, 1.202, 1.135, 1.090, 1.026, 0.975, 0.941, 0.904,
21459 & 0.894, 0.884, 0.862, 0.850, 0.845, 0.827, 0.805, 0.789, 0.776,
21460 & 0.763, 0.686, 0.626, 0.562, 0.505, 0.518, 0.525, 0.528, 0.528/
21461* pi- p
21462 DATA (ASIGEL(5,K),K=1,NPOINT) /
21463 & 0.266, 0.278, 0.294, 0.320, 0.360, 0.419, 0.503, 0.608, 0.727,
21464 & 0.850, 0.968, 1.071, 1.167, 1.305, 1.369, 1.404, 1.446, 1.217,
21465 & 1.112, 1.071, 1.014, 1.002, 0.996, 1.008, 1.070, 1.126, 1.209,
21466 & 1.300, 1.281, 1.188, 1.156, 1.341, 1.423, 1.314, 1.171, 1.140,
21467 & 1.106, 1.071, 1.011, 1.037, 1.026, 1.024, 0.988, 0.953, 0.895,
21468 & 0.894, 0.880, 0.871, 0.864, 0.853, 0.837, 0.820, 0.809, 0.800,
21469 & 0.782, 0.674, 0.612, 0.530, 0.521, 0.528, 0.524, 0.542, 0.569/
21470* K+ p
21471 DATA (ASIGEL(6,K),K=1,NPOINT) /
21472 & 1.064, 1.065, 1.065, 1.066, 1.066, 1.066, 1.066, 1.066, 1.066,
21473 & 1.065, 1.064, 1.063, 1.062, 1.062, 1.062, 1.064, 1.066, 1.070,
21474 & 1.076, 1.082, 1.088, 1.096, 1.103, 1.104, 1.104, 1.102, 1.093,
21475 & 1.087, 1.084, 1.079, 1.075, 1.067, 1.058, 1.040, 1.029, 1.012,
21476 & 1.003, 0.985, 0.935, 0.909, 0.880, 0.846, 0.790, 0.771, 0.759,
21477 & 0.743, 0.718, 0.681, 0.666, 0.645, 0.622, 0.606, 0.594, 0.584,
21478 & 0.575, 0.513, 0.453, 0.403, 0.356, 0.365, 0.389, 0.430, 0.477/
21479* K- p
21480 DATA (ASIGEL(7,K),K=1,NPOINT) /
21481 & 1.941, 1.936, 1.931, 1.926, 1.919, 1.912, 1.903, 1.892, 1.878,
21482 & 1.863, 1.844, 1.821, 1.791, 1.755, 1.713, 1.666, 1.615, 1.561,
21483 & 1.533, 1.531, 1.518, 1.511, 1.452, 1.339, 1.265, 1.233, 1.188,
21484 & 1.184, 1.236, 1.316, 1.333, 1.336, 1.333, 1.277, 1.216, 1.077,
21485 & 1.018, 0.912, 0.926, 0.920, 0.910, 0.894, 0.830, 0.825, 0.800,
21486 & 0.788, 0.747, 0.703, 0.707, 0.689, 0.643, 0.633, 0.635, 0.618,
21487 & 0.584, 0.579, 0.461, 0.403, 0.405, 0.399, 0.408, 0.418, 0.413/
21488* K+ n
21489 DATA (ASIGEL(8,K),K=1,NPOINT) /
21490 & 0.176, 0.229, 0.282, 0.334, 0.386, 0.437, 0.487, 0.536, 0.584,
21491 & 0.631, 0.676, 0.719, 0.760, 0.799, 0.835, 0.870, 0.901, 0.931,
21492 & 0.958, 0.984, 1.008, 1.032, 1.056, 1.079, 1.103, 1.126, 1.148,
21493 & 1.168, 1.187, 1.205, 1.223, 1.248, 1.282, 1.269, 1.185, 1.111,
21494 & 1.063, 1.031, 0.998, 0.964, 0.928, 0.889, 0.849, 0.814, 0.785,
21495 & 0.760, 0.738, 0.720, 0.703, 0.688, 0.674, 0.660, 0.648, 0.635,
21496 & 0.624, 0.536, 0.473, 0.442, 0.428, 0.428, 0.436, 0.453, 0.477/
21497* K- n
21498 DATA (ASIGEL(9,K),K=1,NPOINT) /
21499 & 1.613, 1.613, 1.613, 1.613, 1.613, 1.613, 1.613, 1.613, 1.613,
21500 & 1.613, 1.613, 1.613, 1.612, 1.613, 1.614, 1.614, 1.612, 1.606,
21501 & 1.593, 1.564, 1.498, 1.402, 1.240, 1.071, 0.977, 0.922, 0.914,
21502 & 0.961, 1.077, 1.214, 1.271, 1.290, 1.281, 1.217, 1.096, 0.979,
21503 & 0.896, 0.822, 0.736, 0.655, 0.608, 0.591, 0.580, 0.569, 0.559,
21504 & 0.550, 0.540, 0.531, 0.522, 0.514, 0.507, 0.500, 0.494, 0.489,
21505 & 0.485, 0.477, 0.477, 0.477, 0.477, 0.477, 0.477, 0.477, 0.477/
21506* Lambda p
21507 DATA (ASIGEL(10,K),K=1,NPOINT) /
21508 & 2.648, 2.598, 2.548, 2.498, 2.446, 2.394, 2.340, 2.283, 2.224,
21509 & 2.160, 2.091, 2.015, 1.936, 1.858, 1.785, 1.720, 1.669, 1.630,
21510 & 1.600, 1.577, 1.558, 1.542, 1.528, 1.518, 1.510, 1.505, 1.502,
21511 & 1.501, 1.500, 1.499, 1.496, 1.491, 1.485, 1.477, 1.466, 1.454,
21512 & 1.440, 1.425, 1.408, 1.392, 1.375, 1.358, 1.340, 1.322, 1.304,
21513 & 1.285, 1.267, 1.250, 1.234, 1.219, 1.202, 1.181, 1.158, 1.136,
21514 & 1.116, 0.727,-2.128, -10.0, -10.0, -10.0, -10.0, -10.0, -10.0/
21515
21516 DATA (IDXDAT(K,1),K=1,25) /
21517 & 1, 2, 0, 0, 0, 0, 0, 3, 2, 0, 0,67, 4, 5, 6, 7,10, 2,67, 3,
21518 & 1, 3,45, 8, 9/
21519 DATA (IDXDAT(K,2),K=1,25) /
21520 & 3, 2, 0, 0, 0, 0, 0, 1, 2, 0, 0,89, 5, 4, 8, 9, 1, 2,89, 1,
21521 & 3, 1,45, 6, 7/
21522
21523 DATA LFIRST /.TRUE./
21524
21525 IF (LFIRST) THEN
21526 APLABL = LOG10(PLABLO)
21527 APLABH = LOG10(PLABHI)
21528 APTHRE = LOG10(PTHRE)
21529 ADP1 = (APTHRE-APLABL)/DBLE(NPOIN1)
21530 ADP2 = (APLABH-APTHRE)/DBLE(NPOIN2)
21531 DUM0 = ZERO
21532 PHOPLA = PLABHI
21533 PHOELA = SQRT(AAM(1)**2+PHOPLA**2)
21534 ECMS = SQRT(2.0D0*AAM(1)**2+2.0D0*AAM(1)*PHOELA)
21535 IF (MCGENE.EQ.2) THEN
21536 IF (ECMS.LE.SIGECM(1,ISIMAX)) THEN
21537 CALL DT_PHOXS(1,1,DUM0,PHOPLA,PHOSTO,PHOSIN,DUM1,DUM2,0)
21538 ELSE
21539 CALL DT_PHOXS(1,1,DUM0,PHOPLA,PHOSTO,PHOSIN,DUM1,DUM2,1)
21540 ENDIF
21541 ELSE
21542 CALL DT_PHOXS(1,1,DUM0,PHOPLA,PHOSTO,PHOSIN,DUM1,DUM2,1)
21543 ENDIF
21544 PHOSEL = PHOSTO-PHOSIN
21545 APHOST = LOG10(PHOSTO)
21546 APHOSE = LOG10(PHOSEL)
21547 LFIRST = .FALSE.
21548 ENDIF
21549 STOT = ZERO
21550 SELA = ZERO
21551 PLAB = PL
21552 ECMS = ECM
21553 IF ( (IP.LT.1).OR.((IT.NE.1).AND.(IT.NE.8)) ) THEN
21554 WRITE(LOUT,1000) IP,IT
21555 1000 FORMAT(1X,'DT_XSHN: cross sections not implemented for ',
21556 & 'proj/target',2I4)
21557 STOP
21558 ENDIF
21559
21560 IF ((PLAB.LE.ZERO).AND.(ECMS.GT.ZERO)) THEN
21561 ELAB = (ECMS**2-AAM(IP)**2-AAM(IT)**2)/(2.0D0*AAM(IT))
21562 PLAB = SQRT((ELAB-AAM(IP))*(ELAB+AAM(IP)))
21563 ELSEIF ((PLAB.LE.ZERO).AND.(ECMS.LE.ZERO)) THEN
21564 WRITE(LOUT,1001) PLAB,ECMS
21565 1001 FORMAT(1X,'DT_XSHN: invalid momentum/cm-energy ',2E15.5)
21566 STOP
21567 ENDIF
21568
21569* index of spectrum
21570 IDXP = IP
21571 IF (IP.GT.25) THEN
21572 IF (AAM(IP).GT.ZERO) THEN
21573 IF (ABS(IIBAR(IP)).GT.0) THEN
21574 IDXP = 1
21575 ELSE
21576 IDXP = 13
21577 ENDIF
21578 ELSE
21579 IDXP = 7
21580 ENDIF
21581 ENDIF
21582 IDXT = 1
21583 IF (IT.EQ.8) IDXT = 2
21584 IDXS = IDXDAT(IDXP,IDXT)
21585 IF (IDXS.EQ.0) RETURN
21586
21587* compute momentum bin indices
21588 IF (PLAB.LT.PLABLO) THEN
21589 IDX0 = 1
21590 IDX1 = 1
21591 ELSEIF (PLAB.GE.PLABHI) THEN
21592 IDX0 = NPOINT
21593 IDX1 = NPOINT
21594 ELSE
21595 APLAB = LOG10(PLAB)
21596 IF ((PLAB.GE.PLABLO).AND.(PLAB.LT.PTHRE )) THEN
21597 IDX0 = INT((APLAB-APLABL)/ADP1)+1
21598 ELSEIF ((PLAB.GE.PTHRE ).AND.(PLAB.LT.PLABHI)) THEN
21599 IDX0 = INT((APLAB-APTHRE)/ADP2)+NPOIN1+1
21600 ENDIF
21601 IDX1 = IDX0+1
21602 ENDIF
21603
21604* interpolate cross section
21605 IF (IDXS.GT.10) THEN
21606 IDXS1 = IDXS/10
21607 IDXS2 = IDXS-10*IDXS1
21608 IF (IDX0.EQ.IDX1) THEN
21609 IF (IDX0.EQ.1) THEN
21610 ASTOT = 0.5D0*(ASIGTO(IDXS1,IDX0)+ASIGTO(IDXS2,IDX0))
21611 ASELA = 0.5D0*(ASIGEL(IDXS1,IDX0)+ASIGEL(IDXS2,IDX0))
21612 ELSE
21613 DUM0 = ZERO
21614 CALL DT_PHOXS(1,1,DUM0,PLAB,PHOSTO,PHOSIN,DUM1,DUM2,0)
21615 PHOSEL = PHOSTO-PHOSIN
21616 ASTOT1 = ASIGTO(IDXS1,NPOINT)-APHOST+LOG10(PHOSTO)
21617 ASELA1 = ASIGEL(IDXS1,NPOINT)-APHOSE+LOG10(PHOSEL)
21618 ASTOT2 = ASIGTO(IDXS2,NPOINT)-APHOST+LOG10(PHOSTO)
21619 ASELA2 = ASIGEL(IDXS2,NPOINT)-APHOSE+LOG10(PHOSEL)
21620 ASTOT = 0.5D0*(ASTOT1+ASTOT2)
21621 ASELA = 0.5D0*(ASELA1+ASELA2)
21622 ENDIF
21623 ELSE
21624 FAC = (APLAB-APL(IDX0))/(APL(IDX1)-APL(IDX0))
21625 ASTOT1 = ASIGTO(IDXS1,IDX0)+
21626 & FAC*(ASIGTO(IDXS1,IDX1)-ASIGTO(IDXS1,IDX0))
21627 ASTOT2 = ASIGTO(IDXS2,IDX0)+
21628 & FAC*(ASIGTO(IDXS2,IDX1)-ASIGTO(IDXS2,IDX0))
21629 ASTOT = 0.5D0*(ASTOT1+ASTOT2)
21630 ASELA1 = ASIGEL(IDXS1,IDX0)+
21631 & FAC*(ASIGEL(IDXS1,IDX1)-ASIGEL(IDXS1,IDX0))
21632 ASELA2 = ASIGEL(IDXS2,IDX0)+
21633 & FAC*(ASIGEL(IDXS2,IDX1)-ASIGEL(IDXS2,IDX0))
21634 ASELA = 0.5D0*(ASELA1+ASELA2)
21635 ENDIF
21636 ELSE
21637 IF (IDX0.EQ.IDX1) THEN
21638 IF (IDX0.EQ.1) THEN
21639 ASTOT = ASIGTO(IDXS,IDX0)
21640 ASELA = ASIGEL(IDXS,IDX0)
21641 ELSE
21642 DUM0 = ZERO
21643 CALL DT_PHOXS(1,1,DUM0,PLAB,PHOSTO,PHOSIN,DUM1,DUM2,0)
21644 PHOSEL = PHOSTO-PHOSIN
21645 ASTOT = ASIGTO(IDXS,NPOINT)-APHOST+LOG10(PHOSTO)
21646 ASELA = ASIGEL(IDXS,NPOINT)-APHOSE+LOG10(PHOSEL)
21647 ENDIF
21648 ELSE
21649 FAC = (APLAB-APL(IDX0))/(APL(IDX1)-APL(IDX0))
21650 ASTOT = ASIGTO(IDXS,IDX0)+
21651 & FAC*(ASIGTO(IDXS,IDX1)-ASIGTO(IDXS,IDX0))
21652 ASELA = ASIGEL(IDXS,IDX0)+
21653 & FAC*(ASIGEL(IDXS,IDX1)-ASIGEL(IDXS,IDX0))
21654 ENDIF
21655 ENDIF
21656 STOT = 10.0D0**ASTOT
21657 SELA = 10.0D0**ASELA
21658
21659 RETURN
21660 END
21661
21662*$ CREATE DT_SIHNAB.FOR
21663*COPY DT_SIHNAB
21664*
21665*===sihnab===============================================================*
21666*
21667 SUBROUTINE DT_SIHNAB(IDP,IDT,PLAB,SIGABS)
21668
21669**********************************************************************
21670* Pion 2-nucleon absorption cross sections. *
21671* (sigma_tot for pi+ d --> p p, pi- d --> n n *
21672* taken from Ritchie PRC 28 (1983) 926 ) *
21673* This version dated 18.05.96 is written by S. Roesler *
21674**********************************************************************
21675
21676 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21677 SAVE
21678 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY3=1.0D-3)
21679 PARAMETER (AMPR = 938.0D0,
21680 & AMPI = 140.0D0,
21681 & AMDE = TWO*AMPR,
21682 & A = -1.2D0,
21683 & B = 3.5D0,
21684 & C = 7.4D0,
21685 & D = 5600.0D0,
21686 & ER = 2136.0D0)
21687
21688 SIGABS = ZERO
21689 IF ( ((IDP.NE.13).AND.(IDP.NE.14).AND.(IDP.NE.23))
21690 & .OR.((IDT.NE.1).AND.(IDT.NE.8)) ) RETURN
21691 PTOT = PLAB*1.0D3
21692 EKIN = SQRT(AMPI**2+PTOT**2)-AMPI
21693 IF ((EKIN.LT.TINY3).OR.(EKIN.GT.400.0D0)) RETURN
21694 ECM = SQRT( (AMPI+AMDE)**2+TWO*EKIN*AMDE )
21695 SIGABS = A+B/SQRT(EKIN)+C*1.0D4/((ECM-ER)**2+D)
21696* approximate 3N-abs., I=1-abs. etc.
21697 SIGABS = SIGABS/0.40D0
21698* pi0-absorption (rough approximation!!)
21699 IF (IDP.EQ.23) SIGABS = 0.5D0*SIGABS
21700
21701 RETURN
21702 END
21703
21704*$ CREATE DT_SIGEMU.FOR
21705*COPY DT_SIGEMU
21706*
21707*===sigemu=============================================================*
21708*
21709 SUBROUTINE DT_SIGEMU
21710
21711************************************************************************
21712* Combined cross section for target compounds. *
21713* This version dated 6.4.98 is written by S. Roesler *
21714************************************************************************
21715
21716 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21717 SAVE
21718 PARAMETER ( LINP = 10 ,
21719 & LOUT = 6 ,
21720 & LDAT = 9 )
21721 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
21722 & OHALF=0.5D0,ONE=1.0D0)
21723
21724 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
21725* Glauber formalism: cross sections
21726 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
21727 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
21728 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
21729 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
21730 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
21731 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
21732 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
21733 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
21734 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
21735 & BSLOPE,NEBINI,NQBINI
21736* emulsion treatment
21737 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
21738 & NCOMPO,IEMUL
21739* nucleon-nucleon event-generator
21740 CHARACTER*8 CMODEL
21741 LOGICAL LPHOIN
21742 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
21743
21744 IF (MCGENE.NE.4) THEN
21745 WRITE(LOUT,'(A)') ' DT_SIGEMU: Combined cross sections'
21746 WRITE(LOUT,'(15X,A)') '-----------------------'
21747 ENDIF
21748 DO 1 IE=1,NEBINI
21749 DO 2 IQ=1,NQBINI
21750 SIGTOT = ZERO
21751 SIGELA = ZERO
21752 SIGQEP = ZERO
21753 SIGQET = ZERO
21754 SIGQE2 = ZERO
21755 SIGPRO = ZERO
21756 SIGDEL = ZERO
21757 SIGDQE = ZERO
21758 ERRTOT = ZERO
21759 ERRELA = ZERO
21760 ERRQEP = ZERO
21761 ERRQET = ZERO
21762 ERRQE2 = ZERO
21763 ERRPRO = ZERO
21764 ERRDEL = ZERO
21765 ERRDQE = ZERO
21766 IF (NCOMPO.GT.0) THEN
21767 DO 3 IC=1,NCOMPO
21768 SIGTOT = SIGTOT+EMUFRA(IC)*XSTOT(IE,IQ,IC)
21769 SIGELA = SIGELA+EMUFRA(IC)*XSELA(IE,IQ,IC)
21770 SIGQEP = SIGQEP+EMUFRA(IC)*XSQEP(IE,IQ,IC)
21771 SIGQET = SIGQET+EMUFRA(IC)*XSQET(IE,IQ,IC)
21772 SIGQE2 = SIGQE2+EMUFRA(IC)*XSQE2(IE,IQ,IC)
21773 SIGPRO = SIGPRO+EMUFRA(IC)*XSPRO(IE,IQ,IC)
21774 SIGDEL = SIGDEL+EMUFRA(IC)*XSDEL(IE,IQ,IC)
21775 SIGDQE = SIGDQE+EMUFRA(IC)*XSDQE(IE,IQ,IC)
21776 ERRTOT = ERRTOT+XETOT(IE,IQ,IC)**2
21777 ERRELA = ERRELA+XEELA(IE,IQ,IC)**2
21778 ERRQEP = ERRQEP+XEQEP(IE,IQ,IC)**2
21779 ERRQET = ERRQET+XEQET(IE,IQ,IC)**2
21780 ERRQE2 = ERRQE2+XEQE2(IE,IQ,IC)**2
21781 ERRPRO = ERRPRO+XEPRO(IE,IQ,IC)**2
21782 ERRDEL = ERRDEL+XEDEL(IE,IQ,IC)**2
21783 ERRDQE = ERRDQE+XEDQE(IE,IQ,IC)**2
21784 3 CONTINUE
21785 ERRTOT = SQRT(ERRTOT)
21786 ERRELA = SQRT(ERRELA)
21787 ERRQEP = SQRT(ERRQEP)
21788 ERRQET = SQRT(ERRQET)
21789 ERRQE2 = SQRT(ERRQE2)
21790 ERRPRO = SQRT(ERRPRO)
21791 ERRDEL = SQRT(ERRDEL)
21792 ERRDQE = SQRT(ERRDQE)
21793 ELSE
21794 SIGTOT = XSTOT(IE,IQ,1)
21795 SIGELA = XSELA(IE,IQ,1)
21796 SIGQEP = XSQEP(IE,IQ,1)
21797 SIGQET = XSQET(IE,IQ,1)
21798 SIGQE2 = XSQE2(IE,IQ,1)
21799 SIGPRO = XSPRO(IE,IQ,1)
21800 SIGDEL = XSDEL(IE,IQ,1)
21801 SIGDQE = XSDQE(IE,IQ,1)
21802 ERRTOT = XETOT(IE,IQ,1)
21803 ERRELA = XEELA(IE,IQ,1)
21804 ERRQEP = XEQEP(IE,IQ,1)
21805 ERRQET = XEQET(IE,IQ,1)
21806 ERRQE2 = XEQE2(IE,IQ,1)
21807 ERRPRO = XEPRO(IE,IQ,1)
21808 ERRDEL = XEDEL(IE,IQ,1)
21809 ERRDQE = XEDQE(IE,IQ,1)
21810 ENDIF
21811 IF (MCGENE.NE.4) THEN
21812 WRITE(LOUT,1000) ECMNN(IE),Q2G(IQ)
21813 1000 FORMAT(/,1X,'E_cm =',F9.1,' GeV Q^2 =',F6.1,' GeV^2 :',/)
21814 WRITE(LOUT,1001) SIGTOT,ERRTOT
21815 1001 FORMAT(1X,'total',32X,F10.4,' +-',F11.5,' mb')
21816 WRITE(LOUT,1002) SIGELA,ERRELA
21817 1002 FORMAT(1X,'elastic',30X,F10.4,' +-',F11.5,' mb')
21818 WRITE(LOUT,1003) SIGQEP,ERRQEP
21819 1003 FORMAT(1X,'quasi-elastic (A+B-->A+X)',12X,F10.4,' +-',
21820 & F11.5,' mb')
21821 WRITE(LOUT,1004) SIGQET,ERRQET
21822 1004 FORMAT(1X,'quasi-elastic (A+B-->X+B)',12X,F10.4,' +-',
21823 & F11.5,' mb')
21824 WRITE(LOUT,1005) SIGQE2,ERRQE2
21825 1005 FORMAT(1X,'quasi-elastic (A+B-->X, excl. 2-4)',3X,F10.4,
21826 & ' +-',F11.5,' mb')
21827 WRITE(LOUT,1006) SIGPRO,ERRPRO
21828 1006 FORMAT(1X,'production',27X,F10.4,' +-',F11.5,' mb')
21829 WRITE(LOUT,1007) SIGDEL,ERRDEL
21830 1007 FORMAT(1X,'diff-el ',27X,F10.4,' +-',F11.5,' mb')
21831 WRITE(LOUT,1008) SIGDQE,ERRDQE
21832 1008 FORMAT(1X,'diff-qel ',27X,F10.4,' +-',F11.5,' mb')
21833 ENDIF
21834
21835 2 CONTINUE
21836 1 CONTINUE
21837
21838 RETURN
21839 END
21840
21841*$ CREATE DT_SIGGA.FOR
21842*COPY DT_SIGGA
21843*
21844*===sigga==============================================================*
21845*
21846 SUBROUTINE DT_SIGGA(NTI,XI,Q2I,ECMI,XNUI,STOT,ETOT,SIN,EIN,STOT0)
21847
21848************************************************************************
21849* Total/inelastic photon-nucleus cross sections. *
21850* !!!! Overwrites SHMAKI-initialization. Do not use it during *
21851* production runs !!!! *
21852* This version dated 27.03.96 is written by S. Roesler *
21853************************************************************************
21854
21855 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21856 SAVE
21857 PARAMETER ( LINP = 10 ,
21858 & LOUT = 6 ,
21859 & LDAT = 9 )
21860 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
21861 & OHALF=0.5D0,ONE=1.0D0)
21862 PARAMETER (AMPROT = 0.938D0)
21863
21864 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
21865* Glauber formalism: cross sections
21866 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
21867 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
21868 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
21869 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
21870 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
21871 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
21872 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
21873 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
21874 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
21875 & BSLOPE,NEBINI,NQBINI
21876
21877 NT = NTI
21878 X = XI
21879 Q2 = Q2I
21880 ECM = ECMI
21881 XNU = XNUI
21882 IF ((ECMI.LE.ZERO).AND.(XNUI.GT.ZERO))
21883 & ECM = SQRT(AMPROT**2-Q2+2.0D0*XNUI*AMPROT)
21884 CALL DT_XSGLAU(1,NT,7,X,Q2,ECM,1,1,-1)
21885 STOT = XSTOT(1,1,1)
21886 ETOT = XETOT(1,1,1)
21887 SIN = XSPRO(1,1,1)
21888 EIN = XEPRO(1,1,1)
21889
21890 RETURN
21891 END
21892
21893*$ CREATE DT_SIGGAT.FOR
21894*COPY DT_SIGGAT
21895*
21896*===siggat=============================================================*
21897*
21898 SUBROUTINE DT_SIGGAT(Q2I,ECMI,STOT,NT)
21899
21900************************************************************************
21901* Total/inelastic photon-nucleus cross sections. *
21902* Uses pre-tabulated cross section. *
21903* This version dated 29.07.96 is written by S. Roesler *
21904************************************************************************
21905
21906 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21907 SAVE
21908 PARAMETER ( LINP = 10 ,
21909 & LOUT = 6 ,
21910 & LDAT = 9 )
21911 PARAMETER (TINY10=1.0D-10,TINY14=1.0D-14,
21912 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
21913
21914 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
21915* Glauber formalism: cross sections
21916 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
21917 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
21918 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
21919 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
21920 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
21921 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
21922 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
21923 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
21924 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
21925 & BSLOPE,NEBINI,NQBINI
21926
21927 NTARG = ABS(NT)
21928 I1 = 1
21929 I2 = 1
21930 RATE = ONE
21931 IF (NEBINI.GT.1) THEN
21932 IF (ECMI.GE.ECMNN(NEBINI)) THEN
21933 I1 = NEBINI
21934 I2 = NEBINI
21935 RATE = ONE
21936 ELSEIF (ECMI.GT.ECMNN(1)) THEN
21937 DO 1 I=2,NEBINI
21938 IF (ECMI.LT.ECMNN(I)) THEN
21939 I1 = I-1
21940 I2 = I
21941 RATE = (ECMI-ECMNN(I1))/(ECMNN(I2)-ECMNN(I1))
21942 GOTO 2
21943 ENDIF
21944 1 CONTINUE
21945 2 CONTINUE
21946 ENDIF
21947 ENDIF
21948 J1 = 1
21949 J2 = 1
21950 RATQ = ONE
21951 IF (NQBINI.GT.1) THEN
21952 IF (Q2I.GE.Q2G(NQBINI)) THEN
21953 J1 = NQBINI
21954 J2 = NQBINI
21955 RATQ = ONE
21956 ELSEIF (Q2I.GT.Q2G(1)) THEN
21957 DO 3 I=2,NQBINI
21958 IF (Q2I.LT.Q2G(I)) THEN
21959 J1 = I-1
21960 J2 = I
21961 RATQ = LOG10( Q2I/MAX(Q2G(J1),TINY14))/
21962 & LOG10(Q2G(J2)/MAX(Q2G(J1),TINY14))
21963C RATQ = (Q2I-Q2G(J1))/(Q2G(J2)-Q2G(J1))
21964 GOTO 4
21965 ENDIF
21966 3 CONTINUE
21967 4 CONTINUE
21968 ENDIF
21969 ENDIF
21970
21971 STOT = XSTOT(I1,J1,NTARG)+
21972 & RATE*(XSTOT(I2,J1,NTARG)-XSTOT(I1,J1,NTARG))+
21973 & RATQ*(XSTOT(I1,J2,NTARG)-XSTOT(I1,J1,NTARG))+
21974 & RATE*RATQ*(XSTOT(I2,J2,NTARG)-XSTOT(I1,J2,NTARG)+
21975 & XSTOT(I1,J1,NTARG)-XSTOT(I2,J1,NTARG))
21976
21977 RETURN
21978 END
21979
21980*$ CREATE DT_SANO.FOR
21981*COPY DT_SANO
21982*
21983*===sigano=============================================================*
21984*
21985 DOUBLE PRECISION FUNCTION DT_SANO(ECM)
21986
21987************************************************************************
21988* This version dated 31.07.96 is written by S. Roesler *
21989************************************************************************
21990
21991 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
21992 SAVE
21993 PARAMETER ( LINP = 10 ,
21994 & LOUT = 6 ,
21995 & LDAT = 9 )
21996 PARAMETER (TINY10=1.0D-10,TINY14=1.0D-14,
21997 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
21998 PARAMETER (NE = 8)
21999
22000* VDM parameter for photon-nucleus interactions
22001 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22002* properties of interacting particles
22003 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
22004
22005 DIMENSION ECMANO(NE),FRAANO(NE),SIGHRD(NE)
22006 DATA ECMANO /
22007 & 0.200D+02,0.500D+02,0.100D+03,0.200D+03,0.500D+03,
22008 & 0.100D+04,0.200D+04,0.500D+04
22009 & /
22010* fixed cut (3 GeV/c)
22011 DATA FRAANO /
22012 & 0.085D+00,0.114D+00,0.105D+00,0.091D+00,0.073D+00,
22013 & 0.062D+00,0.054D+00,0.042D+00
22014 & /
22015 DATA SIGHRD /
22016 & 4.0099D-04,3.3104D-03,1.1905D-02,3.6435D-02,1.3493D-01,
22017 & 3.3086D-01,7.6255D-01,2.1319D+00
22018 & /
22019* running cut (based on obsolete Phojet-caluclations, bugs..)
22020C DATA FRAANO /
22021C & 0.251E+00,0.313E+00,0.279E+00,0.239E+00,0.186E+00,
22022C & 0.167E+00,0.150E+00,0.131E+00
22023C & /
22024C DATA SIGHRD /
22025C & 6.6569E-04,4.4949E-03,1.4837E-02,4.1466E-02,1.5071E-01,
22026C & 2.5736E-01,4.5593E-01,8.2550E-01
22027C & /
22028
22029 DT_SANO = ZERO
22030 IF ((ISHAD(2).NE.1).OR.(IJPROJ.NE.7)) RETURN
22031 J1 = 0
22032 J2 = 0
22033 RATE = ONE
22034 IF (ECM.GE.ECMANO(NE)) THEN
22035 J1 = NE
22036 J2 = NE
22037 ELSEIF (ECM.GT.ECMANO(1)) THEN
22038 DO 1 IE=2,NE
22039 IF (ECM.LT.ECMANO(IE)) THEN
22040 J1 = IE-1
22041 J2 = IE
22042 RATE = LOG10(ECM/ECMANO(J1))/LOG10(ECMANO(J2)/ECMANO(J1))
22043 GOTO 2
22044 ENDIF
22045 1 CONTINUE
22046 2 CONTINUE
22047 ENDIF
22048 IF ((J1.GT.0).AND.(J2.GT.0)) THEN
22049 AFRA1 = LOG10(MAX(FRAANO(J1)*SIGHRD(J1),TINY14))
22050 AFRA2 = LOG10(MAX(FRAANO(J2)*SIGHRD(J2),TINY14))
22051 DT_SANO = 10.0D0**(AFRA1+RATE*(AFRA2-AFRA1))
22052 ENDIF
22053
22054 RETURN
22055 END
22056
22057*$ CREATE DT_SIGGP.FOR
22058*COPY DT_SIGGP
22059*
22060*===siggp==============================================================*
22061*
22062 SUBROUTINE DT_SIGGP(XI,Q2I,ECMI,XNUI,STOT,SINE,SDIR)
22063
22064************************************************************************
22065* Total/inelastic photon-nucleon cross sections. *
22066* This version dated 30.04.96 is written by S. Roesler *
22067************************************************************************
22068
22069 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22070 SAVE
22071 PARAMETER ( LINP = 10 ,
22072 & LOUT = 6 ,
22073 & LDAT = 9 )
22074 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22075 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22076 & PI = TWOPI/TWO,
22077 & GEV2MB = 0.38938D0,
22078 & ALPHEM = ONE/137.0D0)
22079
22080* particle properties (BAMJET index convention)
22081 CHARACTER*8 ANAME
22082 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22083 & IICH(210),IIBAR(210),K1(210),K2(210)
22084* VDM parameter for photon-nucleus interactions
22085 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22086
22087**PHOJET105a
22088C CHARACTER*8 MDLNA
22089C COMMON /MODELS/ MDLNA(50),ISWMDL(50),PARMDL(200),IPAMDL(100)
22090C PARAMETER (IEETAB=10)
22091C COMMON /XSETAB/ SIGTAB(4,70,IEETAB),SIGECM(4,IEETAB),ISIMAX
22092**PHOJET110
22093C model switches and parameters
22094 CHARACTER*8 MDLNA
22095 INTEGER ISWMDL,IPAMDL
22096 DOUBLE PRECISION PARMDL
22097 COMMON /POMDLS/ MDLNA(50),ISWMDL(50),PARMDL(400),IPAMDL(400)
22098C energy-interpolation table
22099 INTEGER IEETA2
22100 PARAMETER ( IEETA2 = 20 )
22101 INTEGER ISIMAX
22102 DOUBLE PRECISION SIGTAB,SIGECM
22103 COMMON /POTABL/ SIGTAB(4,80,IEETA2),SIGECM(4,IEETA2),ISIMAX
22104**
22105
22106C PARAMETER (NPOINT=80)
22107 PARAMETER (NPOINT=16)
22108 DIMENSION ABSZX(NPOINT),WEIGHT(NPOINT)
22109
22110 STOT = ZERO
22111 SINE = ZERO
22112 SDIR = ZERO
22113
22114 W2 = ECMI**2
22115 IF ((ECMI.LE.ZERO).AND.(XNUI.GT.ZERO))
22116 & W2 = AAM(1)**2-Q2I+TWO*XNUI*AAM(1)
22117 Q2 = Q2I
22118 X = XI
22119* photoprod.
22120 IF ((X.LE.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22121 Q2 = 0.0001D0
22122 X = Q2/(W2+Q2-AAM(1)**2)
22123* DIS
22124 ELSEIF ((X.LE.ZERO).AND.(Q2.GT.ZERO).AND.(W2.GT.ZERO)) THEN
22125 X = Q2/(W2+Q2-AAM(1)**2)
22126 ELSEIF ((X.GT.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22127 Q2 = (W2-AAM(1)**2)*X/(ONE-X)
22128 ELSEIF ((X.GT.ZERO).AND.(Q2.GT.ZERO)) THEN
22129 W2 = Q2*(ONE-X)/X+AAM(1)**2
22130 ELSE
22131 WRITE(LOUT,*) 'SIGGP: inconsistent input ',W2,Q2,X
22132 STOP
22133 ENDIF
22134 ECM = SQRT(W2)
22135
22136 IF (MODEGA.EQ.1) THEN
22137 SCALE = SQRT(Q2)
22138 CALL DT_CKMT(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL,F2,
22139 & IDPDF)
22140C W = SQRT(W2)
22141C ALLMF2 = PHO_ALLM97(Q2,W)
22142C write(*,*) 'X,Q2,W,F2,ALLMF2',X,Q2,W,F2,ALLMF2
22143 STOT = TWOPI**2*ALPHEM/(Q2*(ONE-X)) * F2 *GEV2MB
22144 SINE = ZERO
22145 SDIR = ZERO
22146 ELSEIF (MODEGA.EQ.2) THEN
22147 IF (INTRGE(1).EQ.1) THEN
22148 AMLO2 = (3.0D0*AAM(13))**2
22149 ELSEIF (INTRGE(1).EQ.2) THEN
22150 AMLO2 = AAM(33)**2
22151 ELSE
22152 AMLO2 = AAM(96)**2
22153 ENDIF
22154 IF (INTRGE(2).EQ.1) THEN
22155 AMHI2 = W2/TWO
22156 ELSEIF (INTRGE(2).EQ.2) THEN
22157 AMHI2 = W2/4.0D0
22158 ELSE
22159 AMHI2 = W2
22160 ENDIF
22161 AMHI20 = (ECM-AAM(1))**2
22162 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
22163 XAMLO = LOG( AMLO2+Q2 )
22164 XAMHI = LOG( AMHI2+Q2 )
22165**PHOJET105a
22166C CALL GSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
22167**PHOJET112
22168 CALL PHO_GAUSET(XAMLO,XAMHI,NPOINT,ABSZX,WEIGHT)
22169**
22170 SUM = ZERO
22171 DO 1 J=1,NPOINT
22172 AM2 = EXP(ABSZX(J))-Q2
22173 IF (AM2.LT.16.0D0) THEN
22174 R = TWO
22175 ELSEIF ((AM2.GE.16.0D0).AND.(AM2.LT.121.0D0)) THEN
22176 R = 10.0D0/3.0D0
22177 ELSE
22178 R = 11.0D0/3.0D0
22179 ENDIF
22180C FAC = R * AM2/( (AM2+Q2)*(AM2+Q2+RL2) )
22181 FAC = R * AM2/( (AM2+Q2)*(AM2+Q2+RL2) )
22182 & * (ONE+EPSPOL*Q2/AM2)
22183 SUM = SUM+WEIGHT(J)*FAC
22184 1 CONTINUE
22185 SINE = SUM
22186 SDIR = DT_SIGVP(X,Q2)
22187 STOT = ALPHEM/(3.0D0*PI*(ONE-X))*SUM*SDIR
22188 SDIR = SDIR/(0.588D0+RL2+Q2)
22189C STOT = ALPHEM/(3.0D0*PI*(ONE-X))*SUM*DT_SIGVP(X,Q2)
22190 ELSEIF (MODEGA.EQ.3) THEN
22191 CALL DT_SIGGA(1,XI,Q2I,ECMI,ZERO,STOT,ETOT,SINE,EINE,DUM)
22192 ELSEIF (MODEGA.EQ.4) THEN
22193* load cross sections from PHOJET interpolation table
22194 IP = 1
22195 IF(ECM.LE.SIGECM(IP,1)) THEN
22196 I1 = 1
22197 I2 = 1
22198 ELSEIF (ECM.LT.SIGECM(IP,ISIMAX)) THEN
22199 DO 2 I=2,ISIMAX
22200 IF (ECM.LE.SIGECM(IP,I)) GOTO 3
22201 2 CONTINUE
22202 3 CONTINUE
22203 I1 = I-1
22204 I2 = I
22205 ELSE
22206 WRITE(LOUT,'(/1X,A,2E12.3)')
22207 & 'SIGGP:WARNING:TOO HIGH ENERGY',ECM,SIGECM(IP,ISIMAX)
22208 I1 = ISIMAX
22209 I2 = ISIMAX
22210 ENDIF
22211 FAC2 = ZERO
22212 IF (I1.NE.I2) FAC2 = LOG(ECM/SIGECM(IP,I1))
22213 & /LOG(SIGECM(IP,I2)/SIGECM(IP,I1))
22214 FAC1 = ONE-FAC2
22215* cross section dependence on photon virtuality
22216 FSUP1 = ZERO
22217 DO 4 I=1,3
22218 FSUP1 = FSUP1+PARMDL(26+I)*(1.D0+Q2/(4.D0*PARMDL(30+I)))
22219 & /(1.D0+Q2/PARMDL(30+I))**2
22220 4 CONTINUE
22221 FSUP1 = FSUP1+PARMDL(30)/(1.D0+Q2/PARMDL(34))
22222 FAC1 = FAC1*FSUP1
22223 FAC2 = FAC2*FSUP1
22224 FSUP2 = 1.0D0
22225 STOT = FAC2*SIGTAB(IP, 1,I2)+FAC1*SIGTAB(IP, 1,I1)
22226 SINE = FAC2*SIGTAB(IP,28,I2)+FAC1*SIGTAB(IP,28,I1)
22227 SDIR = FAC2*SIGTAB(IP,29,I2)+FAC1*SIGTAB(IP,29,I1)
22228**re:
22229 STOT = STOT-SDIR
22230**
22231 SDIR = SDIR/(FSUP1*FSUP2)
22232**re:
22233 STOT = STOT+SDIR
22234**
22235 ENDIF
22236
22237 RETURN
22238 END
22239
22240*$ CREATE DT_SIGVEL.FOR
22241*COPY DT_SIGVEL
22242*
22243*===sigvel=============================================================*
22244*
22245 SUBROUTINE DT_SIGVEL(XI,Q2I,ECMI,XNUI,IDXV,SVEL,SIG1,SIG2)
22246
22247************************************************************************
22248* Cross section for elastic vector meson production *
22249* This version dated 10.05.96 is written by S. Roesler *
22250************************************************************************
22251
22252 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22253 SAVE
22254 PARAMETER ( LINP = 10 ,
22255 & LOUT = 6 ,
22256 & LDAT = 9 )
22257 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22258 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22259 & PI = TWOPI/TWO,
22260 & GEV2MB = 0.38938D0,
22261 & ALPHEM = ONE/137.0D0)
22262
22263* particle properties (BAMJET index convention)
22264 CHARACTER*8 ANAME
22265 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22266 & IICH(210),IIBAR(210),K1(210),K2(210)
22267* VDM parameter for photon-nucleus interactions
22268 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22269
22270 W2 = ECMI**2
22271 IF ((ECMI.LE.ZERO).AND.(XNUI.GT.ZERO))
22272 & W2 = AAM(1)**2-Q2I+TWO*XNUI*AAM(1)
22273 Q2 = Q2I
22274 X = XI
22275* photoprod.
22276 IF ((X.LE.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22277 Q2 = 0.0001D0
22278 X = Q2/(W2+Q2-AAM(1)**2)
22279* DIS
22280 ELSEIF ((X.LE.ZERO).AND.(Q2.GT.ZERO).AND.(W2.GT.ZERO)) THEN
22281 X = Q2/(W2+Q2-AAM(1)**2)
22282 ELSEIF ((X.GT.ZERO).AND.(Q2.LE.ZERO).AND.(W2.GT.ZERO)) THEN
22283 Q2 = (W2-AAM(1)**2)*X/(ONE-X)
22284 ELSEIF ((X.GT.ZERO).AND.(Q2.GT.ZERO)) THEN
22285 W2 = Q2*(ONE-X)/X+AAM(1)**2
22286 ELSE
22287 WRITE(LOUT,*) 'SIGVEL: inconsistent input ',W2,Q2,X
22288 STOP
22289 ENDIF
22290 ECM = SQRT(W2)
22291
22292 AMV = AAM(IDXV)
22293 AMV2 = AMV**2
22294
22295 BSLOPE = 2.0D0*(2.0D0+AAM(32)**2/(AMV2+Q2)
22296 & +0.25D0*LOG(W2/(AMV2+Q2)))*GEV2MB
22297 ROSH = 0.1D0
22298 STOVP = DT_SIGVP(X,Q2)/(AMV2+Q2+RL2)
22299 SELVP = STOVP**2*(ONE+ROSH**2)/(8.0D0*TWOPI*BSLOPE)
22300
22301 IF (IDXV.EQ.33) THEN
22302 COUPL = 0.00365D0
22303 ELSE
22304 STOP
22305 ENDIF
22306 SIG1 = (AMV2/(AMV2+Q2))**2 * (ONE+EPSPOL*Q2/AMV2)
22307 SIG2 = SELVP
22308 SVEL = COUPL * (AMV2/(AMV2+Q2))**2
22309 & * (ONE+EPSPOL*Q2/AMV2) * SELVP
22310
22311 RETURN
22312 END
22313
22314*$ CREATE DT_SIGVP.FOR
22315*COPY DT_SIGVP
22316*
22317*===sigvp==============================================================*
22318*
22319 DOUBLE PRECISION FUNCTION DT_SIGVP(XI,Q2I)
22320
22321************************************************************************
22322* sigma_Vp *
22323************************************************************************
22324
22325 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22326 SAVE
22327
22328 PARAMETER ( LINP = 10 ,
22329 & LOUT = 6 ,
22330 & LDAT = 9 )
22331 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22332 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22333 & PI = TWOPI/TWO,
22334 & GEV2MB = 0.38938D0,
22335 & AMPROT = 0.938D0,
22336 & ALPHEM = ONE/137.0D0)
22337* VDM parameter for photon-nucleus interactions
22338 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22339
22340 X = XI
22341 Q2 = Q2I
22342 IF (XI.LE.ZERO) X = 0.0001D0
22343 IF (Q2I.LE.ZERO) Q2 = 0.0001D0
22344
22345 ECM = SQRT( Q2*(ONE-X)/X+AMPROT**2 )
22346
22347 SCALE = SQRT(Q2)
22348 IF (MODEGA.EQ.1) THEN
22349 CALL DT_CKMT(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL,F2,
22350 & IDPDF)
22351C W = ECM
22352C ALLMF2 = PHO_ALLM97(Q2,W)
22353C write(*,*) 'X,Q2,W,F2,ALLMF2',X,Q2,W,F2,ALLMF2
22354C STOT = TWOPI**2*ALPHEM/(Q2*(ONE-X)) * F2 *GEV2MB
22355C DT_SIGVP = 12.0D0*PI**3.0D0*F2/(Q2*DT_RRM2(X,Q2))
22356 DT_SIGVP = 12.0D0*PI**3.0D0*F2/(Q2*DT_RRM2(X,Q2))*GEV2MB
22357 ELSEIF (MODEGA.EQ.4) THEN
22358 CALL DT_SIGGP(X,Q2,ECM,DUM1,STOT,DUM2,DUM3)
22359C F2 = Q2*(ONE-X)/(TWOPI**2*ALPHEM*GEV2MB) * STOT
22360 DT_SIGVP = 3.0D0*PI/(ALPHEM*DT_RRM2(X,Q2)) * STOT
22361 ELSE
22362 STOP ' DT_SIGVP: F2 not defined for this MODEGA !'
22363 ENDIF
22364
22365 RETURN
22366
22367 END
22368
22369*$ CREATE DT_RRM2.FOR
22370*COPY DT_RRM2
22371*
22372*===RRM2===============================================================*
22373*
22374 DOUBLE PRECISION FUNCTION DT_RRM2(X,Q2)
22375
22376 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22377 SAVE
22378 PARAMETER ( LINP = 10 ,
22379 & LOUT = 6 ,
22380 & LDAT = 9 )
22381 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22382 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22383 & PI = TWOPI/TWO,
22384 & GEV2MB = 0.38938D0)
22385
22386* particle properties (BAMJET index convention)
22387 CHARACTER*8 ANAME
22388 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22389 & IICH(210),IIBAR(210),K1(210),K2(210)
22390* VDM parameter for photon-nucleus interactions
22391 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22392
22393 S = Q2*(ONE-X)/X+AAM(1)**2
22394 ECM = SQRT(S)
22395
22396 IF (INTRGE(1).EQ.1) THEN
22397 AMLO2 = (3.0D0*AAM(13))**2
22398 ELSEIF (INTRGE(1).EQ.2) THEN
22399 AMLO2 = AAM(33)**2
22400 ELSE
22401 AMLO2 = AAM(96)**2
22402 ENDIF
22403 IF (INTRGE(2).EQ.1) THEN
22404 AMHI2 = S/TWO
22405 ELSEIF (INTRGE(2).EQ.2) THEN
22406 AMHI2 = S/4.0D0
22407 ELSE
22408 AMHI2 = S
22409 ENDIF
22410 AMHI20 = (ECM-AAM(1))**2
22411 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
22412
22413 AM1C2 = 16.0D0
22414 AM2C2 = 121.0D0
22415 IF (AMHI2.LE.AM1C2) THEN
22416 DT_RRM2 = TWO*DT_RM2(AMLO2,AMHI2,Q2)
22417 ELSEIF ((AMHI2.GT.AM1C2).AND.(AMHI2.LE.AM2C2)) THEN
22418 DT_RRM2 = TWO*DT_RM2(AMLO2,AM1C2,Q2)+
22419 & 10.0D0/3.0D0*DT_RM2(AM1C2,AMHI2,Q2)
22420 ELSE
22421 DT_RRM2 = TWO*DT_RM2(AMLO2,AM1C2,Q2)+
22422 & 10.0D0/3.0D0*DT_RM2(AM1C2,AM2C2,Q2)+
22423 & 11.0D0/3.0D0*DT_RM2(AM2C2,AMHI2,Q2)
22424 ENDIF
22425
22426 RETURN
22427 END
22428
22429*$ CREATE DT_RM2.FOR
22430*COPY DT_RM2
22431*
22432*===RM2================================================================*
22433*
22434 DOUBLE PRECISION FUNCTION DT_RM2(AMLO2,AMHI2,Q2)
22435
22436 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22437 SAVE
22438 PARAMETER ( LINP = 10 ,
22439 & LOUT = 6 ,
22440 & LDAT = 9 )
22441 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
22442 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22443 & PI = TWOPI/TWO,
22444 & GEV2MB = 0.38938D0)
22445* VDM parameter for photon-nucleus interactions
22446 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22447
22448 IF (RL2.LE.ZERO) THEN
22449 DT_RM2 = -ONE/(AMHI2+Q2)+Q2/(TWO*(AMHI2+Q2)**2) -
22450 & (-ONE/(AMLO2+Q2)+Q2/(TWO*(AMLO2+Q2)**2))
22451 & +EPSPOL*(-Q2/(TWO*(AMHI2+Q2)**2)+Q2/(TWO*(AMLO2+Q2)**2))
22452 ELSE
22453 TMPMLO = LOG(ONE+RL2/(AMLO2+Q2))
22454 TMPMHI = LOG(ONE+RL2/(AMHI2+Q2))
22455 DT_RM2 = Q2/(RL2*(AMHI2+Q2))-(Q2+RL2)/RL2**2*TMPMHI
22456 & -(Q2/(RL2*(AMLO2+Q2))-(Q2+RL2)/RL2**2*TMPMLO)
22457 & +EPSPOL*(
22458 & -Q2/(RL2*(AMHI2+Q2))+Q2/RL2**2*TMPMHI
22459 & -(-Q2/(RL2*(AMLO2+Q2))+Q2/RL2**2*TMPMLO))
22460 ENDIF
22461
22462 RETURN
22463 END
22464
22465*$ CREATE DT_SAM2.FOR
22466*COPY DT_SAM2
22467*
22468*===SAM2===============================================================*
22469*
22470 DOUBLE PRECISION FUNCTION DT_SAM2(Q2,ECM)
22471
22472 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22473 SAVE
22474 PARAMETER ( LINP = 10 ,
22475 & LOUT = 6 ,
22476 & LDAT = 9 )
22477 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0,
22478 & TENTRD=10.0D0/3.0D0,ELVTRD=11.0D0/3.0D0)
22479 PARAMETER (TWOPI = 6.283185307179586476925286766559D+00,
22480 & PI = TWOPI/TWO,
22481 & GEV2MB = 0.38938D0)
22482
22483* particle properties (BAMJET index convention)
22484 CHARACTER*8 ANAME
22485 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
22486 & IICH(210),IIBAR(210),K1(210),K2(210)
22487* VDM parameter for photon-nucleus interactions
22488 COMMON /DTVDMP/ RL2,EPSPOL,INTRGE(2),IDPDF,MODEGA,ISHAD(3)
22489
22490 S = ECM**2
22491 IF (INTRGE(1).EQ.1) THEN
22492 AMLO2 = (3.0D0*AAM(13))**2
22493 ELSEIF (INTRGE(1).EQ.2) THEN
22494 AMLO2 = AAM(33)**2
22495 ELSE
22496 AMLO2 = AAM(96)**2
22497 ENDIF
22498 IF (INTRGE(2).EQ.1) THEN
22499 AMHI2 = S/TWO
22500 ELSEIF (INTRGE(2).EQ.2) THEN
22501 AMHI2 = S/4.0D0
22502 ELSE
22503 AMHI2 = S
22504 ENDIF
22505 AMHI20 = (ECM-AAM(1))**2
22506 IF (AMHI2.GE.AMHI20) AMHI2 = AMHI20
22507
22508 AM1C2 = 16.0D0
22509 AM2C2 = 121.0D0
22510 YLO = LOG(AMLO2+Q2)
22511 YC1 = LOG(AM1C2+Q2)
22512 YC2 = LOG(AM2C2+Q2)
22513 YHI = LOG(AMHI2+Q2)
22514 IF (AMHI2.LE.AM1C2) THEN
22515 FACHI = TWO
22516 ELSEIF ((AMHI2.GT.AM1C2).AND.(AMHI2.LE.AM2C2)) THEN
22517 FACHI = TENTRD
22518 ELSE
22519 FACHI = ELVTRD
22520 ENDIF
22521
22522 1 CONTINUE
22523 YSAM2 = YLO+(YHI-YLO)*DT_RNDM(AM1C2)
22524 IF (YSAM2.LE.YC1) THEN
22525 FAC = TWO
22526 ELSEIF ((YSAM2.GT.YC1).AND.(YSAM2.LE.YC2)) THEN
22527 FAC = TENTRD
22528 ELSE
22529 FAC = ELVTRD
22530 ENDIF
22531 WEIGMX = FACHI*(ONE-Q2*EXP( -YHI))
22532 XSAM2 = FAC *(ONE-Q2*EXP(-YSAM2))
22533 IF (DT_RNDM(YSAM2)*WEIGMX.GT.XSAM2) GOTO 1
22534
22535 DT_SAM2 = EXP(YSAM2)-Q2
22536
22537 RETURN
22538 END
22539
22540*$ CREATE DT_CKMT.FOR
22541*COPY DT_CKMT
22542*
22543*===ckmt===============================================================*
22544*
22545 SUBROUTINE DT_CKMT(X,SCALE,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL,
22546 & F2,IPAR)
22547
22548************************************************************************
22549* This version dated 31.01.96 is written by S. Roesler *
22550************************************************************************
22551
22552 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22553 SAVE
22554 PARAMETER ( LINP = 10 ,
22555 & LOUT = 6 ,
22556 & LDAT = 9 )
22557 PARAMETER (ZERO=0.0D0,TWO=2.0D0,TINY10=1.0D-10)
22558
22559 PARAMETER (Q02 = 2.0D0,
22560 & DQ2 = 10.05D0,
22561 & Q12 = Q02+DQ2)
22562
22563 DIMENSION PD(-6:6),SEA(3),VAL(2)
22564
22565 CALL DT_PDF0(Q02,X,F2Q0,VAL,SEA,GLU,IPAR)
22566 CALL DT_PDF0(Q12,X,F2Q1,VAL,SEA,GLU,IPAR)
22567 ADQ2 = LOG10(Q12)-LOG10(Q02)
22568 F2P = (F2Q1-F2Q0)/ADQ2
22569 CALL DT_CKMTX(IPAR,X,Q02,PD,F2PQ0)
22570 CALL DT_CKMTX(IPAR,X,Q12,PD,F2PQ1)
22571 F2PP = (F2PQ1-F2PQ0)/ADQ2
22572 FX = (F2P-F2PP)/(F2PP+LOG(DQ2)*F2PQ0+TINY10)*Q02
22573
22574 Q2 = MAX(SCALE**2.0D0,TINY10)
22575 SMOOTH = 1.0D0+FX*(Q2-Q02)/Q2**2
22576 IF (Q2.LT.Q02) THEN
22577 CALL DT_PDF0(Q2,X,F2,VAL,SEA,GLU,IPAR)
22578 UPV = VAL(1)
22579 DNV = VAL(2)
22580 USEA = SEA(1)
22581 DSEA = SEA(2)
22582 STR = SEA(3)
22583 CHM = 0.0D0
22584 BOT = 0.0D0
22585 TOP = 0.0D0
22586 GL = GLU
22587 ELSE
22588 CALL DT_CKMTX(IPAR,X,Q2,PD,F2)
22589 F2 = F2*SMOOTH
22590 UPV = PD(2)-PD(3)
22591 DNV = PD(1)-PD(3)
22592 USEA = PD(3)
22593 DSEA = PD(3)
22594 STR = PD(3)
22595 CHM = PD(4)
22596 BOT = PD(5)
22597 TOP = PD(6)
22598 GL = PD(0)
22599C UPV = UPV*SMOOTH
22600C DNV = DNV*SMOOTH
22601C USEA = USEA*SMOOTH
22602C DSEA = DSEA*SMOOTH
22603C STR = STR*SMOOTH
22604C CHM = CHM*SMOOTH
22605C GL = GL*SMOOTH
22606 ENDIF
22607
22608 RETURN
22609 END
22610C
22611
22612*$ CREATE DT_CKMTX.FOR
22613*COPY DT_CKMTX
22614 SUBROUTINE DT_CKMTX(IPAR,X,SCALE2,PD,F2)
22615C**********************************************************************
22616C
22617C PDF based on Regge theory, evolved with .... by ....
22618C
22619C input: IPAR 2212 proton (not installed)
22620C 45 Pomeron
22621C 100 Deuteron
22622C
22623C output: PD(-6:6) x*f(x) parton distribution functions
22624C (PDFLIB convention: d = PD(1), u = PD(2) )
22625C
22626C**********************************************************************
22627
22628 SAVE
22629 DOUBLE PRECISION X,SCALE2,PD(-6:6),CDN,CUP,F2
22630 PARAMETER ( LINP = 10 ,
22631 & LOUT = 6 ,
22632 & LDAT = 9 )
22633 DIMENSION QQ(7)
22634C
22635 Q2=SNGL(SCALE2)
22636 Q1S=Q2
22637 XX=SNGL(X)
22638C QCD lambda for evolution
22639 OWLAM = 0.23D0
22640 OWLAM2=OWLAM**2
22641C Q0**2 for evolution
22642 Q02 = 2.D0
22643C
22644C
22645C the conventions are : q(1)=x*u, q(2)=x*d, q(3)=q(4)=x*sbar=x*ubar=...
22646C q(6)=x*charm, q(7)=x*gluon
22647C
22648 SB=0.
22649 IF(Q2-Q02) 1,1,2
22650 2 SB=LOG(LOG(Q2/OWLAM2)/LOG(Q02/OWLAM2))
22651 1 CONTINUE
22652 IF(IPAR.EQ.2212) THEN
22653 CALL DT_CKMTPR(1,0,XX,SB,QQ(1))
22654 CALL DT_CKMTPR(2,0,XX,SB,QQ(2))
22655 CALL DT_CKMTPR(3,0,XX,SB,QQ(3))
22656 CALL DT_CKMTPR(4,0,XX,SB,QQ(4))
22657 CALL DT_CKMTPR(5,0,XX,SB,QQ(5))
22658 CALL DT_CKMTPR(8,0,XX,SB,QQ(6))
22659 CALL DT_CKMTPR(7,0,XX,SB,QQ(7))
22660C ELSEIF (IPAR.EQ.45) THEN
22661C CALL CKMTPO(1,0,XX,SB,QQ(1))
22662C CALL CKMTPO(2,0,XX,SB,QQ(2))
22663C CALL CKMTPO(3,0,XX,SB,QQ(3))
22664C CALL CKMTPO(4,0,XX,SB,QQ(4))
22665C CALL CKMTPO(5,0,XX,SB,QQ(5))
22666C CALL CKMTPO(8,0,XX,SB,QQ(6))
22667C CALL CKMTPO(7,0,XX,SB,QQ(7))
22668 ELSEIF (IPAR.EQ.100) THEN
22669 CALL DT_CKMTDE(1,0,XX,SB,QQ(1))
22670 CALL DT_CKMTDE(2,0,XX,SB,QQ(2))
22671 CALL DT_CKMTDE(3,0,XX,SB,QQ(3))
22672 CALL DT_CKMTDE(4,0,XX,SB,QQ(4))
22673 CALL DT_CKMTDE(5,0,XX,SB,QQ(5))
22674 CALL DT_CKMTDE(8,0,XX,SB,QQ(6))
22675 CALL DT_CKMTDE(7,0,XX,SB,QQ(7))
22676 ELSE
22677 WRITE(LOUT,'(1X,A,I4,A)')
22678 & 'CKMTX: IPAR =',IPAR,' not implemented!'
22679 STOP
22680 ENDIF
22681C
22682 PD(-6) = 0.D0
22683 PD(-5) = 0.D0
22684 PD(-4) = DBLE(QQ(6))
22685 PD(-3) = DBLE(QQ(3))
22686 PD(-2) = DBLE(QQ(4))
22687 PD(-1) = DBLE(QQ(5))
22688 PD(0) = DBLE(QQ(7))
22689 PD(1) = DBLE(QQ(2))
22690 PD(2) = DBLE(QQ(1))
22691 PD(3) = DBLE(QQ(3))
22692 PD(4) = DBLE(QQ(6))
22693 PD(5) = 0.D0
22694 PD(6) = 0.D0
22695 IF(IPAR.EQ.45) THEN
22696 CDN = (PD(1)-PD(-1))/2.D0
22697 CUP = (PD(2)-PD(-2))/2.D0
22698 PD(-1) = PD(-1) + CDN
22699 PD(-2) = PD(-2) + CUP
22700 PD(1) = PD(-1)
22701 PD(2) = PD(-2)
22702 ENDIF
22703 F2 = 4.0D0/9.0D0*(PD(2)-PD(3)+2.0D0*PD(3))+
22704 & 1.0D0/9.0D0*(PD(1)-PD(3)+2.0D0*PD(3))+
22705 & 1.0D0/9.0D0*(2.0D0*PD(3))+4.0D0/9.0D0*(2.0D0*PD(4))
22706 END
22707C
22708
22709*$ CREATE DT_PDF0.FOR
22710*COPY DT_PDF0
22711*
22712*===pdf0===============================================================*
22713*
22714 SUBROUTINE DT_PDF0(Q2,X,F2,VAL,SEA,GLU,IPAR)
22715
22716************************************************************************
22717* This subroutine calculates F_2 and PDF below Q^2=Q_0^2=2 GeV^2 *
22718* an F_2-ansatz given in Capella et al. PLB 337(1994)358. *
22719* IPAR = 2212 proton *
22720* = 100 deuteron *
22721* This version dated 31.01.96 is written by S. Roesler *
22722************************************************************************
22723
22724 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22725 SAVE
22726 PARAMETER ( LINP = 10 ,
22727 & LOUT = 6 ,
22728 & LDAT = 9 )
22729 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY9=1.0D-9)
22730
22731 PARAMETER (
22732 & AA = 0.1502D0,
22733 & BBDEU = 1.2D0,
22734 & BUD = 0.754D0,
22735 & BDD = 0.4495D0,
22736 & BUP = 1.2064D0,
22737 & BDP = 0.1798D0,
22738 & DELTA0 = 0.07684D0,
22739 & D = 1.117D0,
22740 & C = 3.5489D0,
22741 & A = 0.2631D0,
22742 & B = 0.6452D0,
22743 & ALPHAR = 0.415D0,
22744 & E = 0.1D0
22745 & )
22746
22747 PARAMETER (NPOINT=16)
22748C DIMENSION ABSZX(NPOINT),WEIGHT(NPOINT)
22749 DIMENSION SEA(3),VAL(2)
22750
22751 DELTA = DELTA0*(1.0D0+2.0D0*Q2/(Q2+D))
22752 AN = 1.5D0*(1.0D0+Q2/(Q2+C))
22753* proton, deuteron
22754 IF ((IPAR.EQ.2212).OR.(IPAR.EQ.100)) THEN
22755 CALL DT_CKMTQ0(Q2,X,IPAR,VALU0,VALD0,SEA0)
22756 SEA(1) = 0.75D0*SEA0
22757 SEA(2) = SEA(1)
22758 SEA(3) = SEA(1)
22759 VAL(1) = 9.0D0/4.0D0*VALU0
22760 VAL(2) = 9.0D0*VALD0
22761 GLU0 = SEA(1)/(1.0D0-X)
22762 F2 = SEA0+VALU0+VALD0
22763 F2PDF = 4.0D0/9.0D0*(VAL(1)+2.0D0*SEA(1))+
22764 & 1.0D0/9.0D0*(VAL(2)+2.0D0*SEA(2))+
22765 & 1.0D0/9.0D0*(2.0D0*SEA(3))
22766 IF (ABS(F2-F2PDF).GT.TINY9) THEN
22767 WRITE(LOUT,'(1X,A,2E15.5)') 'inconsistent PDF! ',F2,F2PDF
22768 STOP
22769 ENDIF
22770**PHOJET105a
22771C CALL GSET(ZERO,ONE,NPOINT,ABSZX,WEIGHT)
22772**PHOJET112
22773C CALL PHO_GAUSET(ZERO,ONE,NPOINT,ABSZX,WEIGHT)
22774**
22775C SUMQ = ZERO
22776C SUMG = ZERO
22777C DO 1 J=1,NPOINT
22778C CALL DT_CKMTQ0(Q2,ABSZX(J),IPAR,VALU0,VALD0,SEA0)
22779C VALU0 = 9.0D0/4.0D0*VALU0
22780C VALD0 = 9.0D0*VALD0
22781C SEA0 = 0.75D0*SEA0
22782C SUMQ = SUMQ+ (VALU0+VALD0+6.0D0*SEA0) *WEIGHT(J)
22783C SUMG = SUMG+ (SEA0/(1.0D0-ABSZX(J))) *WEIGHT(J)
22784C 1 CONTINUE
22785C GLU = GLU0*(1.0D0-SUMQ)/SUMG
22786 ELSE
22787 WRITE(LOUT,'(1X,A,I4,A)')
22788 & 'PDF0: IPAR =',IPAR,' not implemented!'
22789 STOP
22790 ENDIF
22791
22792 RETURN
22793 END
22794
22795*$ CREATE DT_CKMTQ0.FOR
22796*COPY DT_CKMTQ0
22797*
22798*===ckmtq0=============================================================*
22799*
22800 SUBROUTINE DT_CKMTQ0(Q2,X,IPAR,VALU0,VALD0,SEA0)
22801
22802************************************************************************
22803* This subroutine calculates F_2 and PDF below Q^2=Q_0^2=2 GeV^2 *
22804* an F_2-ansatz given in Capella et al. PLB 337(1994)358. *
22805* IPAR = 2212 proton *
22806* = 100 deuteron *
22807* This version dated 31.01.96 is written by S. Roesler *
22808************************************************************************
22809
22810 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
22811 SAVE
22812 PARAMETER ( LINP = 10 ,
22813 & LOUT = 6 ,
22814 & LDAT = 9 )
22815 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TINY9=1.0D-9)
22816
22817 PARAMETER (
22818 & AA = 0.1502D0,
22819 & BBDEU = 1.2D0,
22820 & BUD = 0.754D0,
22821 & BDD = 0.4495D0,
22822 & BUP = 1.2064D0,
22823 & BDP = 0.1798D0,
22824 & DELTA0 = 0.07684D0,
22825 & D = 1.117D0,
22826 & C = 3.5489D0,
22827 & A = 0.2631D0,
22828 & B = 0.6452D0,
22829 & ALPHAR = 0.415D0,
22830 & E = 0.1D0
22831 & )
22832
22833 DELTA = DELTA0*(1.0D0+2.0D0*Q2/(Q2+D))
22834 AN = 1.5D0*(1.0D0+Q2/(Q2+C))
22835* proton, deuteron
22836 IF ((IPAR.EQ.2212).OR.(IPAR.EQ.100)) THEN
22837 IF (IPAR.EQ.2212) THEN
22838 BU = BUP
22839 BD = BDP
22840 ELSE
22841 BU = BUD
22842 BD = BDD
22843 ENDIF
22844 SEA0 = AA*X**(-DELTA)*(1.0D0-X)**(AN+4.0D0)*
22845 & (Q2/(Q2+A))**(1.0D0+DELTA)
22846 VALU0 = BU*X**(1.0D0-ALPHAR)*(1.0D0-X)**AN*
22847 & (Q2/(Q2+B))**(ALPHAR)
22848 VALD0 = BD*X**(1.0D0-ALPHAR)*(1.0D0-X)**(AN+1.0D0)*
22849 & (Q2/(Q2+B))**(ALPHAR)
22850 ELSE
22851 WRITE(LOUT,'(1X,A,I4,A)')
22852 & 'CKMTQ0: IPAR =',IPAR,' not implemented!'
22853 STOP
22854 ENDIF
22855 RETURN
22856 END
22857C
22858C
22859
22860*$ CREATE DT_CKMTDE.FOR
22861*COPY DT_CKMTDE
22862 SUBROUTINE DT_CKMTDE(I,NDRV,X,S,ANS)
22863C
22864C**********************************************************************
22865C Deuteron - PDFs
22866C I = 1, 2, 3, 4, 5, 7, 8 : xu, xd, xub, xdb, xsb, xg, xc
22867C ANS = PDF(I)
22868C This version by S. Roesler, 30.01.96
22869C**********************************************************************
22870
22871 SAVE
22872 DIMENSION F1(25),F2(25),GF(8,20,25),DL(4000)
22873 EQUIVALENCE (GF(1,1,1),DL(1))
22874 DATA DELTA/.13/
22875C
22876 DATA (DL(K),K= 1, 85) /
22877 &0.351858E+00,0.388489E+00,0.325356E+00,0.325356E+00,0.325356E+00,
22878 &0.325356E+00,0.445218E+01,0.000000E+00,0.419818E+00,0.459249E+00,
22879 &0.391167E+00,0.391143E+00,0.391125E+00,0.391167E+00,0.628186E+01,
22880 &0.703797E-01,0.498333E+00,0.540626E+00,0.467466E+00,0.467423E+00,
22881 &0.467393E+00,0.467466E+00,0.837368E+01,0.151191E+00,0.587839E+00,
22882 &0.633058E+00,0.554689E+00,0.554630E+00,0.554595E+00,0.554689E+00,
22883 &0.107170E+02,0.242877E+00,0.688652E+00,0.736861E+00,0.653150E+00,
22884 &0.653080E+00,0.653046E+00,0.653150E+00,0.132960E+02,0.345760E+00,
22885 &0.800961E+00,0.852226E+00,0.763038E+00,0.762961E+00,0.762933E+00,
22886 &0.763038E+00,0.160884E+02,0.460033E+00,0.924829E+00,0.979213E+00,
22887 &0.884414E+00,0.884335E+00,0.884319E+00,0.884414E+00,0.190679E+02,
22888 &0.585764E+00,0.106016E+01,0.111773E+01,0.101719E+01,0.101711E+01,
22889 &0.101711E+01,0.101719E+01,0.222033E+02,0.722864E+00,0.120670E+01,
22890 &0.126752E+01,0.116110E+01,0.116102E+01,0.116105E+01,0.116110E+01,
22891 &0.254603E+02,0.871079E+00,0.136402E+01,0.142815E+01,0.131571E+01,
22892 &0.131565E+01,0.131570E+01,0.131571E+01,0.288020E+02,0.102998E+01,
22893 &0.153151E+01,0.159900E+01,0.148043E+01,0.148038E+01,0.148046E+01/
22894 DATA (DL(K),K= 86, 170) /
22895 &0.148043E+01,0.321898E+02,0.119897E+01,0.170838E+01,0.177930E+01,
22896 &0.165447E+01,0.165444E+01,0.165455E+01,0.165447E+01,0.355845E+02,
22897 &0.137726E+01,0.189369E+01,0.196807E+01,0.183687E+01,0.183686E+01,
22898 &0.183701E+01,0.183687E+01,0.389473E+02,0.156390E+01,0.208631E+01,
22899 &0.216422E+01,0.202653E+01,0.202654E+01,0.202673E+01,0.202653E+01,
22900 &0.422402E+02,0.175779E+01,0.228501E+01,0.236648E+01,0.222220E+01,
22901 &0.222224E+01,0.222248E+01,0.222220E+01,0.454277E+02,0.195768E+01,
22902 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22903 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22904 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22905 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22906 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22907 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22908 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22909 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22910 &0.326035E+00,0.380777E+00,0.286363E+00,0.286363E+00,0.286363E+00,
22911 &0.286363E+00,0.392252E+01,-.138778E-16,0.380092E+00,0.438587E+00/
22912 DATA (DL(K),K= 171, 255) /
22913 &0.337452E+00,0.337430E+00,0.337424E+00,0.337452E+00,0.532193E+01,
22914 &0.553645E-01,0.440879E+00,0.503177E+00,0.395208E+00,0.395169E+00,
22915 &0.395165E+00,0.395208E+00,0.686454E+01,0.117354E+00,0.508415E+00,
22916 &0.574566E+00,0.459649E+00,0.459600E+00,0.459604E+00,0.459649E+00,
22917 &0.853316E+01,0.185994E+00,0.582647E+00,0.652699E+00,0.530722E+00,
22918 &0.530667E+00,0.530687E+00,0.530722E+00,0.103093E+02,0.261237E+00,
22919 &0.663404E+00,0.737405E+00,0.608254E+00,0.608199E+00,0.608241E+00,
22920 &0.608254E+00,0.121710E+02,0.342917E+00,0.750429E+00,0.828423E+00,
22921 &0.691990E+00,0.691941E+00,0.692009E+00,0.691990E+00,0.140946E+02,
22922 &0.430783E+00,0.843361E+00,0.925391E+00,0.781571E+00,0.781533E+00,
22923 &0.781632E+00,0.781571E+00,0.160553E+02,0.524479E+00,0.941741E+00,
22924 &0.102784E+01,0.876538E+00,0.876515E+00,0.876650E+00,0.876538E+00,
22925 &0.180277E+02,0.623549E+00,0.104501E+01,0.113521E+01,0.976335E+00,
22926 &0.976332E+00,0.976506E+00,0.976335E+00,0.199863E+02,0.727439E+00,
22927 &0.115251E+01,0.124685E+01,0.108031E+01,0.108034E+01,0.108055E+01,
22928 &0.108031E+01,0.219066E+02,0.835506E+00,0.126352E+01,0.136201E+01,
22929 &0.118775E+01,0.118780E+01,0.118806E+01,0.118775E+01,0.237652E+02/
22930 DATA (DL(K),K= 256, 340) /
22931 &0.947020E+00,0.137724E+01,0.147989E+01,0.129783E+01,0.129791E+01,
22932 &0.129822E+01,0.129783E+01,0.255406E+02,0.106119E+01,0.149279E+01,
22933 &0.159961E+01,0.140972E+01,0.140984E+01,0.141019E+01,0.140972E+01,
22934 &0.272135E+02,0.117715E+01,0.160929E+01,0.172028E+01,0.152252E+01,
22935 &0.152267E+01,0.152308E+01,0.152252E+01,0.287669E+02,0.129402E+01,
22936 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22937 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22938 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22939 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22940 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22941 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22942 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22943 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22944 &0.309785E+00,0.391282E+00,0.250518E+00,0.250518E+00,0.250518E+00,
22945 &0.250518E+00,0.343842E+01,-.138778E-16,0.352113E+00,0.438463E+00,
22946 &0.288877E+00,0.288863E+00,0.288878E+00,0.288877E+00,0.446765E+01,
22947 &0.424850E-01,0.398382E+00,0.489596E+00,0.331132E+00,0.331111E+00/
22948 DATA (DL(K),K= 341, 425) /
22949 &0.331148E+00,0.331132E+00,0.555902E+01,0.888369E-01,0.448375E+00,
22950 &0.544458E+00,0.377064E+00,0.377043E+00,0.377108E+00,0.377064E+00,
22951 &0.669490E+01,0.138845E+00,0.501854E+00,0.602811E+00,0.426440E+00,
22952 &0.426425E+00,0.426523E+00,0.426440E+00,0.785892E+01,0.192281E+00,
22953 &0.558506E+00,0.664331E+00,0.478946E+00,0.478944E+00,0.479079E+00,
22954 &0.478946E+00,0.903368E+01,0.248834E+00,0.617972E+00,0.728657E+00,
22955 &0.534229E+00,0.534244E+00,0.534421E+00,0.534229E+00,0.102022E+02,
22956 &0.308155E+00,0.679844E+00,0.795370E+00,0.591883E+00,0.591921E+00,
22957 &0.592141E+00,0.591883E+00,0.113479E+02,0.369841E+00,0.743667E+00,
22958 &0.864009E+00,0.651460E+00,0.651525E+00,0.651792E+00,0.651460E+00,
22959 &0.124553E+02,0.433447E+00,0.808951E+00,0.934073E+00,0.712474E+00,
22960 &0.712571E+00,0.712885E+00,0.712474E+00,0.135102E+02,0.498486E+00,
22961 &0.875171E+00,0.100503E+01,0.774408E+00,0.774541E+00,0.774902E+00,
22962 &0.774408E+00,0.144999E+02,0.564446E+00,0.941784E+00,0.107632E+01,
22963 &0.836726E+00,0.836897E+00,0.837307E+00,0.836726E+00,0.154136E+02,
22964 &0.630788E+00,0.100823E+01,0.114738E+01,0.898879E+00,0.899092E+00,
22965 &0.899551E+00,0.898879E+00,0.162423E+02,0.696967E+00,0.107396E+01/
22966 DATA (DL(K),K= 426, 510) /
22967 &0.121764E+01,0.960319E+00,0.960577E+00,0.961084E+00,0.960319E+00,
22968 &0.169791E+02,0.762433E+00,0.113843E+01,0.128655E+01,0.102051E+01,
22969 &0.102081E+01,0.102137E+01,0.102051E+01,0.176190E+02,0.826647E+00,
22970 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22971 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22972 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22973 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22974 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22975 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22976 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22977 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
22978 &0.304680E+00,0.425088E+00,0.216504E+00,0.216504E+00,0.216504E+00,
22979 &0.216504E+00,0.298356E+01,0.000000E+00,0.337300E+00,0.463627E+00,
22980 &0.244023E+00,0.244024E+00,0.244063E+00,0.244023E+00,0.370271E+01,
22981 &0.316585E-01,0.371787E+00,0.503942E+00,0.273415E+00,0.273423E+00,
22982 &0.273505E+00,0.273415E+00,0.443039E+01,0.651685E-01,0.407853E+00,
22983 &0.545739E+00,0.304395E+00,0.304418E+00,0.304545E+00,0.304395E+00/
22984 DATA (DL(K),K= 511, 595) /
22985 &0.515321E+01,0.100252E+00,0.445229E+00,0.588741E+00,0.336700E+00,
22986 &0.336744E+00,0.336918E+00,0.336700E+00,0.586004E+01,0.136648E+00,
22987 &0.483606E+00,0.632629E+00,0.370026E+00,0.370095E+00,0.370318E+00,
22988 &0.370026E+00,0.654027E+01,0.174056E+00,0.522666E+00,0.677074E+00,
22989 &0.404062E+00,0.404162E+00,0.404433E+00,0.404062E+00,0.718442E+01,
22990 &0.212167E+00,0.562075E+00,0.721735E+00,0.438483E+00,0.438618E+00,
22991 &0.438938E+00,0.438483E+00,0.778423E+01,0.250658E+00,0.601494E+00,
22992 &0.766258E+00,0.472959E+00,0.473131E+00,0.473500E+00,0.472959E+00,
22993 &0.833276E+01,0.289199E+00,0.640580E+00,0.810290E+00,0.507156E+00,
22994 &0.507369E+00,0.507784E+00,0.507156E+00,0.882448E+01,0.327457E+00,
22995 &0.678993E+00,0.853479E+00,0.540747E+00,0.541003E+00,0.541463E+00,
22996 &0.540747E+00,0.925529E+01,0.365104E+00,0.716405E+00,0.895483E+00,
22997 &0.573411E+00,0.573714E+00,0.574216E+00,0.573411E+00,0.962250E+01,
22998 &0.401821E+00,0.752501E+00,0.935975E+00,0.604848E+00,0.605197E+00,
22999 &0.605740E+00,0.604848E+00,0.992478E+01,0.437304E+00,0.786987E+00,
23000 &0.974647E+00,0.634775E+00,0.635173E+00,0.635752E+00,0.634775E+00,
23001 &0.101620E+02,0.471269E+00,0.819594E+00,0.101122E+01,0.662936E+00/
23002 DATA (DL(K),K= 596, 680) /
23003 &0.663382E+00,0.663995E+00,0.662936E+00,0.103354E+02,0.503459E+00,
23004 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23005 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23006 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23007 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23008 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23009 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23010 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23011 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23012 &0.312661E+00,0.487836E+00,0.182562E+00,0.182562E+00,0.182562E+00,
23013 &0.182562E+00,0.253626E+01,0.000000E+00,0.336910E+00,0.518440E+00,
23014 &0.200702E+00,0.200721E+00,0.200779E+00,0.200702E+00,0.299460E+01,
23015 &0.224425E-01,0.361554E+00,0.549164E+00,0.219359E+00,0.219402E+00,
23016 &0.219517E+00,0.219359E+00,0.343183E+01,0.453742E-01,0.386348E+00,
23017 &0.579759E+00,0.238296E+00,0.238367E+00,0.238536E+00,0.238296E+00,
23018 &0.384076E+01,0.685610E-01,0.411080E+00,0.610003E+00,0.257305E+00,
23019 &0.257408E+00,0.257630E+00,0.257305E+00,0.421619E+01,0.917987E-01/
23020 DATA (DL(K),K= 681, 765) /
23021 &0.435528E+00,0.639668E+00,0.276174E+00,0.276313E+00,0.276583E+00,
23022 &0.276174E+00,0.455400E+01,0.114876E+00,0.459476E+00,0.668531E+00,
23023 &0.294698E+00,0.294875E+00,0.295191E+00,0.294698E+00,0.485107E+01,
23024 &0.137589E+00,0.482719E+00,0.696375E+00,0.312682E+00,0.312900E+00,
23025 &0.313258E+00,0.312682E+00,0.510539E+01,0.159742E+00,0.505060E+00,
23026 &0.722995E+00,0.329941E+00,0.330200E+00,0.330596E+00,0.329941E+00,
23027 &0.531589E+01,0.181149E+00,0.526315E+00,0.748199E+00,0.346303E+00,
23028 &0.346604E+00,0.347034E+00,0.346303E+00,0.548250E+01,0.201638E+00,
23029 &0.546317E+00,0.771808E+00,0.361613E+00,0.361957E+00,0.362418E+00,
23030 &0.361613E+00,0.560595E+01,0.221052E+00,0.564917E+00,0.793667E+00,
23031 &0.375735E+00,0.376122E+00,0.376609E+00,0.375735E+00,0.568772E+01,
23032 &0.239253E+00,0.581987E+00,0.813638E+00,0.388553E+00,0.388982E+00,
23033 &0.389491E+00,0.388553E+00,0.572992E+01,0.256122E+00,0.597419E+00,
23034 &0.831608E+00,0.399972E+00,0.400443E+00,0.400970E+00,0.399972E+00,
23035 &0.573516E+01,0.271562E+00,0.611129E+00,0.847487E+00,0.409919E+00,
23036 &0.410430E+00,0.410972E+00,0.409919E+00,0.570642E+01,0.285497E+00,
23037 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23038 DATA (DL(K),K= 766, 850) /
23039 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23040 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23041 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23042 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23043 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23044 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23045 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23046 &0.335149E+00,0.582072E+00,0.146415E+00,0.146415E+00,0.146415E+00,
23047 &0.146415E+00,0.206772E+01,0.000000E+00,0.351552E+00,0.603437E+00,
23048 &0.156515E+00,0.156542E+00,0.156595E+00,0.156515E+00,0.231143E+01,
23049 &0.146091E-01,0.367407E+00,0.623737E+00,0.166387E+00,0.166442E+00,
23050 &0.166542E+00,0.166387E+00,0.252488E+01,0.289315E-01,0.382571E+00,
23051 &0.642832E+00,0.175891E+00,0.175976E+00,0.176118E+00,0.175891E+00,
23052 &0.270658E+01,0.428312E-01,0.396926E+00,0.660609E+00,0.184917E+00,
23053 &0.185034E+00,0.185212E+00,0.184917E+00,0.285608E+01,0.561981E-01,
23054 &0.410365E+00,0.676962E+00,0.193365E+00,0.193513E+00,0.193722E+00,
23055 &0.193365E+00,0.297375E+01,0.689319E-01,0.422792E+00,0.691796E+00/
23056 DATA (DL(K),K= 851, 935) /
23057 &0.201144E+00,0.201324E+00,0.201560E+00,0.201144E+00,0.306050E+01,
23058 &0.809434E-01,0.434123E+00,0.705030E+00,0.208181E+00,0.208393E+00,
23059 &0.208650E+00,0.208181E+00,0.311775E+01,0.921567E-01,0.444287E+00,
23060 &0.716596E+00,0.214413E+00,0.214656E+00,0.214931E+00,0.214413E+00,
23061 &0.314738E+01,0.102508E+00,0.453228E+00,0.726441E+00,0.219792E+00,
23062 &0.220066E+00,0.220354E+00,0.219792E+00,0.315156E+01,0.111949E+00,
23063 &0.460906E+00,0.734527E+00,0.224285E+00,0.224589E+00,0.224886E+00,
23064 &0.224285E+00,0.313271E+01,0.120441E+00,0.467291E+00,0.740835E+00,
23065 &0.227870E+00,0.228203E+00,0.228506E+00,0.227870E+00,0.309338E+01,
23066 &0.127963E+00,0.472372E+00,0.745357E+00,0.230541E+00,0.230902E+00,
23067 &0.231208E+00,0.230541E+00,0.303621E+01,0.134506E+00,0.476148E+00,
23068 &0.748105E+00,0.232304E+00,0.232690E+00,0.232996E+00,0.232304E+00,
23069 &0.296381E+01,0.140070E+00,0.478635E+00,0.749103E+00,0.233176E+00,
23070 &0.233586E+00,0.233889E+00,0.233176E+00,0.287874E+01,0.144672E+00,
23071 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23072 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23073 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23074 DATA (DL(K),K= 936, 1020) /
23075 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23076 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23077 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23078 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23079 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23080 &0.370162E+00,0.695827E+00,0.105823E+00,0.105823E+00,0.105823E+00,
23081 &0.105823E+00,0.154556E+01,0.208167E-16,0.378214E+00,0.703794E+00,
23082 &0.109539E+00,0.109554E+00,0.109571E+00,0.109539E+00,0.162770E+01,
23083 &0.818783E-02,0.385258E+00,0.710067E+00,0.112818E+00,0.112847E+00,
23084 &0.112879E+00,0.112818E+00,0.168578E+01,0.158212E-01,0.391264E+00,
23085 &0.714648E+00,0.115620E+00,0.115666E+00,0.115709E+00,0.115620E+00,
23086 &0.172175E+01,0.228667E-01,0.396214E+00,0.717539E+00,0.117923E+00,
23087 &0.117985E+00,0.118037E+00,0.117923E+00,0.173756E+01,0.293009E-01,
23088 &0.400098E+00,0.718759E+00,0.119711E+00,0.119790E+00,0.119848E+00,
23089 &0.119711E+00,0.173541E+01,0.351123E-01,0.402915E+00,0.718332E+00,
23090 &0.120979E+00,0.121074E+00,0.121137E+00,0.120979E+00,0.171755E+01,
23091 &0.402951E-01,0.404672E+00,0.716292E+00,0.121728E+00,0.121840E+00/
23092 DATA (DL(K),K= 1021, 1105) /
23093 &0.121905E+00,0.121728E+00,0.168619E+01,0.448514E-01,0.405385E+00,
23094 &0.712681E+00,0.121967E+00,0.122095E+00,0.122161E+00,0.121967E+00,
23095 &0.164352E+01,0.487902E-01,0.405077E+00,0.707551E+00,0.121712E+00,
23096 &0.121855E+00,0.121920E+00,0.121712E+00,0.159162E+01,0.521265E-01,
23097 &0.403778E+00,0.700963E+00,0.120984E+00,0.121141E+00,0.121204E+00,
23098 &0.120984E+00,0.153245E+01,0.548814E-01,0.401525E+00,0.692984E+00,
23099 &0.119809E+00,0.119980E+00,0.120040E+00,0.119809E+00,0.146780E+01,
23100 &0.570807E-01,0.398361E+00,0.683691E+00,0.118218E+00,0.118402E+00,
23101 &0.118457E+00,0.118218E+00,0.139928E+01,0.587542E-01,0.394333E+00,
23102 &0.673166E+00,0.116244E+00,0.116440E+00,0.116490E+00,0.116244E+00,
23103 &0.132834E+01,0.599355E-01,0.389495E+00,0.661496E+00,0.113924E+00,
23104 &0.114131E+00,0.114175E+00,0.113924E+00,0.125620E+01,0.606602E-01,
23105 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23106 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23107 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23108 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23109 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23110 DATA (DL(K),K= 1106, 1190) /
23111 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23112 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23113 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23114 &0.394012E+00,0.757115E+00,0.772117E-01,0.772117E-01,0.772117E-01,
23115 &0.772117E-01,0.117279E+01,0.346945E-17,0.395841E+00,0.752988E+00,
23116 &0.780501E-01,0.780655E-01,0.780723E-01,0.780501E-01,0.118528E+01,
23117 &0.491697E-02,0.396627E+00,0.747223E+00,0.785386E-01,0.785692E-01,
23118 &0.785806E-01,0.785386E-01,0.118242E+01,0.932754E-02,0.396401E+00,
23119 &0.739901E+00,0.786820E-01,0.787273E-01,0.787413E-01,0.786820E-01,
23120 &0.116673E+01,0.132427E-01,0.395190E+00,0.731092E+00,0.784870E-01,
23121 &0.785464E-01,0.785613E-01,0.784870E-01,0.114033E+01,0.166738E-01,
23122 &0.393030E+00,0.720878E+00,0.779683E-01,0.780410E-01,0.780555E-01,
23123 &0.779683E-01,0.110528E+01,0.196392E-01,0.389962E+00,0.709342E+00,
23124 &0.771427E-01,0.772280E-01,0.772409E-01,0.771427E-01,0.106344E+01,
23125 &0.221591E-01,0.386027E+00,0.696571E+00,0.760304E-01,0.761276E-01,
23126 &0.761378E-01,0.760304E-01,0.101653E+01,0.242567E-01,0.381274E+00,
23127 &0.682657E+00,0.746543E-01,0.747623E-01,0.747692E-01,0.746543E-01/
23128 DATA (DL(K),K= 1191, 1275) /
23129 &0.966057E+00,0.259571E-01,0.375752E+00,0.667695E+00,0.730389E-01,
23130 &0.731569E-01,0.731598E-01,0.730389E-01,0.913345E+00,0.272876E-01,
23131 &0.369514E+00,0.651782E+00,0.712104E-01,0.713374E-01,0.713358E-01,
23132 &0.712104E-01,0.859530E+00,0.282763E-01,0.362616E+00,0.635021E+00,
23133 &0.691957E-01,0.693307E-01,0.693243E-01,0.691957E-01,0.805566E+00,
23134 &0.289524E-01,0.355116E+00,0.617511E+00,0.670220E-01,0.671640E-01,
23135 &0.671526E-01,0.670220E-01,0.752235E+00,0.293453E-01,0.347072E+00,
23136 &0.599357E+00,0.647162E-01,0.648642E-01,0.648478E-01,0.647162E-01,
23137 &0.700161E+00,0.294844E-01,0.338543E+00,0.580659E+00,0.623046E-01,
23138 &0.624578E-01,0.624363E-01,0.623046E-01,0.649828E+00,0.293983E-01,
23139 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23140 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23141 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23142 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23143 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23144 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23145 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23146 DATA (DL(K),K= 1276, 1360) /
23147 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23148 &0.408305E+00,0.775318E+00,0.509141E-01,0.509141E-01,0.509141E-01,
23149 &0.509141E-01,0.818839E+00,-.867362E-17,0.403619E+00,0.758058E+00,
23150 &0.502245E-01,0.502351E-01,0.502337E-01,0.502245E-01,0.795347E+00,
23151 &0.264045E-02,0.398068E+00,0.739709E+00,0.493454E-01,0.493661E-01,
23152 &0.493626E-01,0.493454E-01,0.764942E+00,0.491508E-02,0.391719E+00,
23153 &0.720394E+00,0.482952E-01,0.483253E-01,0.483192E-01,0.482952E-01,
23154 &0.729624E+00,0.685202E-02,0.384627E+00,0.700222E+00,0.470896E-01,
23155 &0.471285E-01,0.471194E-01,0.470896E-01,0.690906E+00,0.847433E-02,
23156 &0.376851E+00,0.679300E+00,0.457475E-01,0.457946E-01,0.457822E-01,
23157 &0.457475E-01,0.650078E+00,0.980774E-02,0.368452E+00,0.657739E+00,
23158 &0.442875E-01,0.443419E-01,0.443261E-01,0.442875E-01,0.608239E+00,
23159 &0.108769E-01,0.359490E+00,0.635646E+00,0.427281E-01,0.427892E-01,
23160 &0.427698E-01,0.427281E-01,0.566280E+00,0.117061E-01,0.350026E+00,
23161 &0.613128E+00,0.410878E-01,0.411549E-01,0.411320E-01,0.410878E-01,
23162 &0.524918E+00,0.123191E-01,0.340122E+00,0.590292E+00,0.393848E-01,
23163 &0.394571E-01,0.394308E-01,0.393848E-01,0.484713E+00,0.127393E-01/
23164 DATA (DL(K),K= 1361, 1445) /
23165 &0.329838E+00,0.567240E+00,0.376363E-01,0.377132E-01,0.376836E-01,
23166 &0.376363E-01,0.446084E+00,0.129888E-01,0.319236E+00,0.544074E+00,
23167 &0.358589E-01,0.359396E-01,0.359068E-01,0.358589E-01,0.409328E+00,
23168 &0.130888E-01,0.308374E+00,0.520890E+00,0.340678E-01,0.341517E-01,
23169 &0.341160E-01,0.340678E-01,0.374641E+00,0.130594E-01,0.297312E+00,
23170 &0.497781E+00,0.322772E-01,0.323636E-01,0.323253E-01,0.322772E-01,
23171 &0.342135E+00,0.129195E-01,0.286106E+00,0.474837E+00,0.304999E-01,
23172 &0.305882E-01,0.305474E-01,0.304999E-01,0.311854E+00,0.126863E-01,
23173 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23174 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23175 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23176 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23177 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23178 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23179 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23180 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23181 &0.407248E+00,0.746438E+00,0.335640E-01,0.335640E-01,0.335640E-01/
23182 DATA (DL(K),K= 1446, 1530) /
23183 &0.335640E-01,0.573540E+00,0.173472E-16,0.397516E+00,0.719825E+00,
23184 &0.324649E-01,0.324735E-01,0.324698E-01,0.324649E-01,0.540770E+00,
23185 &0.147177E-02,0.387197E+00,0.692869E+00,0.312911E-01,0.313075E-01,
23186 &0.313000E-01,0.312911E-01,0.505972E+00,0.269995E-02,0.376365E+00,
23187 &0.665689E+00,0.300576E-01,0.300811E-01,0.300699E-01,0.300576E-01,
23188 &0.470389E+00,0.371147E-02,0.365085E+00,0.638387E+00,0.287770E-01,
23189 &0.288070E-01,0.287922E-01,0.287770E-01,0.434885E+00,0.452768E-02,
23190 &0.353423E+00,0.611066E+00,0.274623E-01,0.274980E-01,0.274797E-01,
23191 &0.274623E-01,0.400103E+00,0.516996E-02,0.341442E+00,0.583823E+00,
23192 &0.261256E-01,0.261663E-01,0.261448E-01,0.261256E-01,0.366541E+00,
23193 &0.565807E-02,0.329207E+00,0.556753E+00,0.247782E-01,0.248234E-01,
23194 &0.247989E-01,0.247782E-01,0.334555E+00,0.601048E-02,0.316777E+00,
23195 &0.529946E+00,0.234308E-01,0.234798E-01,0.234525E-01,0.234308E-01,
23196 &0.304384E+00,0.624451E-02,0.304214E+00,0.503489E+00,0.220932E-01,
23197 &0.221452E-01,0.221155E-01,0.220932E-01,0.276170E+00,0.637618E-02,
23198 &0.291575E+00,0.477462E+00,0.207739E-01,0.208286E-01,0.207966E-01,
23199 &0.207739E-01,0.249976E+00,0.642028E-02,0.278917E+00,0.451941E+00/
23200 DATA (DL(K),K= 1531, 1615) /
23201 &0.194809E-01,0.195376E-01,0.195037E-01,0.194809E-01,0.225809E+00,
23202 &0.639038E-02,0.266293E+00,0.426995E+00,0.182209E-01,0.182791E-01,
23203 &0.182436E-01,0.182209E-01,0.203629E+00,0.629880E-02,0.253754E+00,
23204 &0.402686E+00,0.169996E-01,0.170587E-01,0.170219E-01,0.169996E-01,
23205 &0.183361E+00,0.615665E-02,0.241347E+00,0.379071E+00,0.158217E-01,
23206 &0.158814E-01,0.158436E-01,0.158217E-01,0.164907E+00,0.597385E-02,
23207 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23208 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23209 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23210 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23211 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23212 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23213 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23214 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23215 &0.395106E+00,0.689399E+00,0.218554E-01,0.218554E-01,0.218554E-01,
23216 &0.218554E-01,0.398362E+00,-.173472E-17,0.381441E+00,0.656777E+00,
23217 &0.207816E-01,0.207886E-01,0.207844E-01,0.207816E-01,0.366703E+00/
23218 DATA (DL(K),K= 1616, 1700) /
23219 &0.826643E-03,0.367505E+00,0.624578E+00,0.197001E-01,0.197133E-01,
23220 &0.197053E-01,0.197001E-01,0.335573E+00,0.149886E-02,0.353373E+00,
23221 &0.592889E+00,0.186195E-01,0.186383E-01,0.186266E-01,0.186195E-01,
23222 &0.305590E+00,0.203730E-02,0.339106E+00,0.561783E+00,0.175468E-01,
23223 &0.175705E-01,0.175555E-01,0.175468E-01,0.277136E+00,0.245817E-02,
23224 &0.324766E+00,0.531331E+00,0.164887E-01,0.165166E-01,0.164986E-01,
23225 &0.164887E-01,0.250424E+00,0.277666E-02,0.310411E+00,0.501599E+00,
23226 &0.154510E-01,0.154825E-01,0.154618E-01,0.154510E-01,0.225588E+00,
23227 &0.300658E-02,0.296100E+00,0.472648E+00,0.144390E-01,0.144735E-01,
23228 &0.144504E-01,0.144390E-01,0.202681E+00,0.316040E-02,0.281885E+00,
23229 &0.444535E+00,0.134570E-01,0.134940E-01,0.134689E-01,0.134570E-01,
23230 &0.181693E+00,0.324944E-02,0.267820E+00,0.417309E+00,0.125091E-01,
23231 &0.125481E-01,0.125212E-01,0.125091E-01,0.162572E+00,0.328396E-02,
23232 &0.253953E+00,0.391017E+00,0.115984E-01,0.116389E-01,0.116106E-01,
23233 &0.115984E-01,0.145235E+00,0.327313E-02,0.240328E+00,0.365695E+00,
23234 &0.107275E-01,0.107690E-01,0.107396E-01,0.107275E-01,0.129575E+00,
23235 &0.322510E-02,0.226989E+00,0.341375E+00,0.989805E-02,0.994030E-02/
23236 DATA (DL(K),K= 1701, 1785) /
23237 &0.990998E-02,0.989805E-02,0.115477E+00,0.314713E-02,0.213972E+00,
23238 &0.318081E+00,0.911149E-02,0.915408E-02,0.912316E-02,0.911149E-02,
23239 &0.102820E+00,0.304556E-02,0.201311E+00,0.295830E+00,0.836852E-02,
23240 &0.841111E-02,0.837984E-02,0.836852E-02,0.914804E-01,0.292596E-02,
23241 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23242 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23243 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23244 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23245 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23246 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23247 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23248 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23249 &0.374678E+00,0.616087E+00,0.139531E-01,0.139531E-01,0.139531E-01,
23250 &0.139531E-01,0.272491E+00,-.693889E-17,0.358052E+00,0.580345E+00,
23251 &0.130624E-01,0.130680E-01,0.130641E-01,0.130624E-01,0.245861E+00,
23252 &0.460255E-03,0.341487E+00,0.545719E+00,0.121971E-01,0.122076E-01,
23253 &0.122002E-01,0.121971E-01,0.220877E+00,0.826785E-03,0.325046E+00/
23254 DATA (DL(K),K= 1786, 1870) /
23255 &0.512244E+00,0.113599E-01,0.113748E-01,0.113641E-01,0.113599E-01,
23256 &0.197730E+00,0.111366E-02,0.308783E+00,0.479952E+00,0.105534E-01,
23257 &0.105720E-01,0.105585E-01,0.105534E-01,0.176497E+00,0.133192E-02,
23258 &0.292747E+00,0.448868E+00,0.977938E-02,0.980112E-02,0.978518E-02,
23259 &0.977938E-02,0.157150E+00,0.149139E-02,0.276986E+00,0.419015E+00,
23260 &0.903955E-02,0.906394E-02,0.904584E-02,0.903955E-02,0.139631E+00,
23261 &0.160093E-02,0.261546E+00,0.390412E+00,0.833509E-02,0.836165E-02,
23262 &0.834171E-02,0.833509E-02,0.123850E+00,0.166838E-02,0.246467E+00,
23263 &0.363074E+00,0.766687E-02,0.769516E-02,0.767369E-02,0.766687E-02,
23264 &0.109695E+00,0.170073E-02,0.231787E+00,0.337008E+00,0.703540E-02,
23265 &0.706500E-02,0.704230E-02,0.703540E-02,0.970428E-01,0.170416E-02,
23266 &0.217542E+00,0.312218E+00,0.644083E-02,0.647137E-02,0.644772E-02,
23267 &0.644083E-02,0.857658E-01,0.168409E-02,0.203759E+00,0.288701E+00,
23268 &0.588300E-02,0.591415E-02,0.588981E-02,0.588300E-02,0.757385E-01,
23269 &0.164528E-02,0.190467E+00,0.266449E+00,0.536147E-02,0.539292E-02,
23270 &0.536812E-02,0.536147E-02,0.668383E-01,0.159185E-02,0.177686E+00,
23271 &0.245447E+00,0.487551E-02,0.490698E-02,0.488195E-02,0.487551E-02/
23272 DATA (DL(K),K= 1871, 1955) /
23273 &0.589492E-01,0.152735E-02,0.165434E+00,0.225677E+00,0.442416E-02,
23274 &0.445543E-02,0.443037E-02,0.442416E-02,0.519652E-01,0.145483E-02,
23275 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23276 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23277 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23278 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23279 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23280 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23281 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23282 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23283 &0.348042E+00,0.534691E+00,0.867977E-02,0.867977E-02,0.867977E-02,
23284 &0.867977E-02,0.182547E+00,-.693889E-17,0.329349E+00,0.498248E+00,
23285 &0.800724E-02,0.801198E-02,0.800836E-02,0.800724E-02,0.161948E+00,
23286 &0.250949E-03,0.311047E+00,0.463485E+00,0.737155E-02,0.738040E-02,
23287 &0.737356E-02,0.737155E-02,0.143267E+00,0.447662E-03,0.293181E+00,
23288 &0.430377E+00,0.677169E-02,0.678409E-02,0.677441E-02,0.677169E-02,
23289 &0.126447E+00,0.598803E-03,0.275787E+00,0.398907E+00,0.620726E-02/
23290 DATA (DL(K),K= 1956, 2040) /
23291 &0.622265E-02,0.621051E-02,0.620726E-02,0.111401E+00,0.711280E-03,
23292 &0.258900E+00,0.369051E+00,0.567741E-02,0.569532E-02,0.568106E-02,
23293 &0.567741E-02,0.979944E-01,0.790986E-03,0.242550E+00,0.340785E+00,
23294 &0.518138E-02,0.520134E-02,0.518531E-02,0.518138E-02,0.860936E-01,
23295 &0.843227E-03,0.226765E+00,0.314083E+00,0.471828E-02,0.473987E-02,
23296 &0.472238E-02,0.471828E-02,0.755615E-01,0.872644E-03,0.211568E+00,
23297 &0.288916E+00,0.428714E-02,0.430998E-02,0.429133E-02,0.428714E-02,
23298 &0.662627E-01,0.883319E-03,0.196981E+00,0.265252E+00,0.388691E-02,
23299 &0.391065E-02,0.389112E-02,0.388691E-02,0.580684E-01,0.878818E-03,
23300 &0.183020E+00,0.243053E+00,0.351645E-02,0.354077E-02,0.352060E-02,
23301 &0.351645E-02,0.508578E-01,0.862228E-03,0.169696E+00,0.222280E+00,
23302 &0.317451E-02,0.319914E-02,0.317858E-02,0.317451E-02,0.445190E-01,
23303 &0.836224E-03,0.157017E+00,0.202888E+00,0.285982E-02,0.288450E-02,
23304 &0.286376E-02,0.285982E-02,0.389523E-01,0.803096E-03,0.144987E+00,
23305 &0.184832E+00,0.257101E-02,0.259553E-02,0.257480E-02,0.257101E-02,
23306 &0.340677E-01,0.764787E-03,0.133605E+00,0.168060E+00,0.230670E-02,
23307 &0.233087E-02,0.231031E-02,0.230670E-02,0.297820E-01,0.722929E-03/
23308 DATA (DL(K),K= 2041, 2125) /
23309 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23310 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23311 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23312 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23313 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23314 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23315 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23316 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23317 &0.316867E+00,0.451111E+00,0.522815E-02,0.522815E-02,0.522815E-02,
23318 &0.522815E-02,0.119118E+00,0.889046E-17,0.296950E+00,0.415915E+00,
23319 &0.475497E-02,0.475914E-02,0.475574E-02,0.475497E-02,0.104204E+00,
23320 &0.132513E-03,0.277735E+00,0.382805E+00,0.431809E-02,0.432582E-02,
23321 &0.431944E-02,0.431809E-02,0.910279E-01,0.235347E-03,0.259241E+00,
23322 &0.351694E+00,0.391455E-02,0.392531E-02,0.391637E-02,0.391455E-02,
23323 &0.794222E-01,0.313322E-03,0.241485E+00,0.322517E+00,0.354249E-02,
23324 &0.355575E-02,0.354464E-02,0.354249E-02,0.692354E-01,0.370408E-03,
23325 &0.224480E+00,0.295202E+00,0.319987E-02,0.321518E-02,0.320226E-02/
23326 DATA (DL(K),K= 2126, 2210) /
23327 &0.319987E-02,0.603106E-01,0.409866E-03,0.208235E+00,0.269681E+00,
23328 &0.288490E-02,0.290184E-02,0.288744E-02,0.288490E-02,0.525034E-01,
23329 &0.434663E-03,0.192759E+00,0.245887E+00,0.259589E-02,0.261407E-02,
23330 &0.259852E-02,0.259589E-02,0.456838E-01,0.447393E-03,0.178054E+00,
23331 &0.223752E+00,0.233123E-02,0.235033E-02,0.233390E-02,0.233123E-02,
23332 &0.397318E-01,0.450314E-03,0.164120E+00,0.203207E+00,0.208941E-02,
23333 &0.210910E-02,0.209206E-02,0.208941E-02,0.345396E-01,0.445394E-03,
23334 &0.150954E+00,0.184182E+00,0.186896E-02,0.188897E-02,0.187155E-02,
23335 &0.186896E-02,0.300131E-01,0.434333E-03,0.138548E+00,0.166608E+00,
23336 &0.166844E-02,0.168854E-02,0.167096E-02,0.166844E-02,0.260692E-01,
23337 &0.418584E-03,0.126892E+00,0.150412E+00,0.148650E-02,0.150648E-02,
23338 &0.148891E-02,0.148650E-02,0.226325E-01,0.399380E-03,0.115971E+00,
23339 &0.135523E+00,0.132180E-02,0.134148E-02,0.132409E-02,0.132180E-02,
23340 &0.196374E-01,0.377764E-03,0.105767E+00,0.121870E+00,0.117308E-02,
23341 &0.119231E-02,0.117524E-02,0.117308E-02,0.170312E-01,0.354610E-03,
23342 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23343 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23344 DATA (DL(K),K= 2211, 2295) /
23345 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23346 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23347 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23348 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23349 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23350 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23351 &0.282579E+00,0.369670E+00,0.302765E-02,0.302765E-02,0.302765E-02,
23352 &0.302765E-02,0.752529E-01,-.455365E-17,0.262229E+00,0.337209E+00,
23353 &0.271512E-02,0.271883E-02,0.271564E-02,0.271512E-02,0.651086E-01,
23354 &0.669321E-04,0.242857E+00,0.307069E+00,0.243269E-02,0.243953E-02,
23355 &0.243360E-02,0.243269E-02,0.563252E-01,0.118744E-03,0.224455E+00,
23356 &0.279111E+00,0.217687E-02,0.218631E-02,0.217808E-02,0.217687E-02,
23357 &0.487143E-01,0.157767E-03,0.207014E+00,0.253223E+00,0.194534E-02,
23358 &0.195689E-02,0.194675E-02,0.194534E-02,0.421227E-01,0.186063E-03,
23359 &0.190523E+00,0.229293E+00,0.173585E-02,0.174909E-02,0.173741E-02,
23360 &0.173585E-02,0.364156E-01,0.205286E-03,0.174969E+00,0.207218E+00,
23361 &0.154647E-02,0.156100E-02,0.154811E-02,0.154647E-02,0.314732E-01/
23362 DATA (DL(K),K= 2296, 2380) /
23363 &0.216964E-03,0.160335E+00,0.186895E+00,0.137545E-02,0.139092E-02,
23364 &0.137713E-02,0.137545E-02,0.271927E-01,0.222455E-03,0.146604E+00,
23365 &0.168227E+00,0.122121E-02,0.123733E-02,0.122290E-02,0.122121E-02,
23366 &0.234852E-01,0.222947E-03,0.133756E+00,0.151116E+00,0.108234E-02,
23367 &0.109881E-02,0.108400E-02,0.108234E-02,0.202747E-01,0.219474E-03,
23368 &0.121765E+00,0.135471E+00,0.957502E-03,0.974107E-03,0.959112E-03,
23369 &0.957502E-03,0.174932E-01,0.212928E-03,0.110606E+00,0.121198E+00,
23370 &0.845493E-03,0.862024E-03,0.847037E-03,0.845493E-03,0.150824E-01,
23371 &0.204075E-03,0.100250E+00,0.108210E+00,0.745196E-03,0.761482E-03,
23372 &0.746662E-03,0.745196E-03,0.129965E-01,0.193573E-03,0.906661E-01,
23373 &0.964191E-01,0.655569E-03,0.671466E-03,0.656948E-03,0.655569E-03,
23374 &0.111930E-01,0.181962E-03,0.818218E-01,0.857412E-01,0.575637E-03,
23375 &0.591030E-03,0.576925E-03,0.575637E-03,0.962922E-02,0.169687E-03,
23376 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23377 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23378 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23379 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23380 DATA (DL(K),K= 2381, 2465) /
23381 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23382 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23383 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23384 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23385 &0.246444E+00,0.293515E+00,0.167124E-02,0.167124E-02,0.167124E-02,
23386 &0.167124E-02,0.456929E-01,-.260209E-17,0.226393E+00,0.264836E+00,
23387 &0.147748E-02,0.148085E-02,0.147783E-02,0.147748E-02,0.392393E-01,
23388 &0.318190E-04,0.207552E+00,0.238550E+00,0.130596E-02,0.131212E-02,
23389 &0.130656E-02,0.130596E-02,0.337276E-01,0.566426E-04,0.189877E+00,
23390 &0.214470E+00,0.115347E-02,0.116190E-02,0.115427E-02,0.115347E-02,
23391 &0.290012E-01,0.753776E-04,0.173336E+00,0.192452E+00,0.101789E-02,
23392 &0.102811E-02,0.101881E-02,0.101789E-02,0.249381E-01,0.889466E-04,
23393 &0.157889E+00,0.172355E+00,0.897268E-03,0.908872E-03,0.898270E-03,
23394 &0.897268E-03,0.214419E-01,0.980950E-04,0.143501E+00,0.154046E+00,
23395 &0.789951E-03,0.802565E-03,0.790996E-03,0.789951E-03,0.184296E-01,
23396 &0.103536E-03,0.130132E+00,0.137402E+00,0.694510E-03,0.707811E-03,
23397 &0.695568E-03,0.694510E-03,0.158331E-01,0.105929E-03,0.117743E+00/
23398 DATA (DL(K),K= 2466, 2550) /
23399 &0.122303E+00,0.609684E-03,0.623394E-03,0.610733E-03,0.609684E-03,
23400 &0.135929E-01,0.105853E-03,0.106293E+00,0.108637E+00,0.534365E-03,
23401 &0.548244E-03,0.535386E-03,0.534365E-03,0.116583E-01,0.103825E-03,
23402 &0.957386E-01,0.962976E-01,0.467572E-03,0.481416E-03,0.468551E-03,
23403 &0.467572E-03,0.999103E-02,0.100301E-03,0.860376E-01,0.851820E-01,
23404 &0.408422E-03,0.422062E-03,0.409350E-03,0.408422E-03,0.855563E-02,
23405 &0.956675E-04,0.771455E-01,0.751930E-01,0.356117E-03,0.369416E-03,
23406 &0.356989E-03,0.356117E-03,0.731542E-02,0.902499E-04,0.690178E-01,
23407 &0.662386E-01,0.309950E-03,0.322797E-03,0.310761E-03,0.309950E-03,
23408 &0.624633E-02,0.843305E-04,0.616096E-01,0.582312E-01,0.269281E-03,
23409 &0.281590E-03,0.270030E-03,0.269281E-03,0.533230E-02,0.781441E-04,
23410 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23411 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23412 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23413 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23414 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23415 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23416 DATA (DL(K),K= 2551, 2635) /
23417 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23418 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23419 &0.209608E+00,0.224862E+00,0.869706E-03,0.869706E-03,0.869706E-03,
23420 &0.869706E-03,0.264204E-01,-.138236E-17,0.190523E+00,0.200603E+00,
23421 &0.757542E-03,0.760626E-03,0.757768E-03,0.757542E-03,0.226261E-01,
23422 &0.138827E-04,0.172819E+00,0.178656E+00,0.660281E-03,0.665837E-03,
23423 &0.660670E-03,0.660281E-03,0.194018E-01,0.249832E-04,0.156420E+00,
23424 &0.158805E+00,0.575414E-03,0.582918E-03,0.575917E-03,0.575414E-03,
23425 &0.166434E-01,0.334851E-04,0.141265E+00,0.140883E+00,0.501258E-03,
23426 &0.510252E-03,0.501836E-03,0.501258E-03,0.142710E-01,0.397017E-04,
23427 &0.127291E+00,0.124732E+00,0.436386E-03,0.446473E-03,0.437008E-03,
23428 &0.436386E-03,0.122297E-01,0.439154E-04,0.114437E+00,0.110205E+00,
23429 &0.379575E-03,0.390415E-03,0.380217E-03,0.379575E-03,0.104701E-01,
23430 &0.464110E-04,0.102644E+00,0.971655E-01,0.329805E-03,0.341109E-03,
23431 &0.330448E-03,0.329805E-03,0.895086E-02,0.474758E-04,0.918521E-01,
23432 &0.854876E-01,0.286206E-03,0.297729E-03,0.286836E-03,0.286206E-03,
23433 &0.764249E-02,0.473771E-04,0.820032E-01,0.750529E-01,0.248027E-03/
23434 DATA (DL(K),K= 2636, 2720) /
23435 &0.259564E-03,0.248633E-03,0.248027E-03,0.651744E-02,0.463561E-04,
23436 &0.730394E-01,0.657510E-01,0.214611E-03,0.225995E-03,0.215186E-03,
23437 &0.214611E-03,0.554573E-02,0.446239E-04,0.649040E-01,0.574789E-01,
23438 &0.185396E-03,0.196491E-03,0.185935E-03,0.185396E-03,0.470938E-02,
23439 &0.423722E-04,0.575411E-01,0.501405E-01,0.159891E-03,0.170590E-03,
23440 &0.160391E-03,0.159891E-03,0.399752E-02,0.397689E-04,0.508960E-01,
23441 &0.436466E-01,0.137650E-03,0.147874E-03,0.138111E-03,0.137650E-03,
23442 &0.338807E-02,0.369434E-04,0.449157E-01,0.379141E-01,0.118285E-03,
23443 &0.127973E-03,0.118705E-03,0.118285E-03,0.286125E-02,0.340035E-04,
23444 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23445 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23446 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23447 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23448 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23449 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23450 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23451 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23452 DATA (DL(K),K= 2721, 2805) /
23453 &0.173133E+00,0.165162E+00,0.420483E-03,0.420483E-03,0.420483E-03,
23454 &0.420483E-03,0.143704E-01,0.418773E-17,0.155600E+00,0.145586E+00,
23455 &0.360490E-03,0.363140E-03,0.360629E-03,0.360490E-03,0.123560E-01,
23456 &0.533279E-05,0.139551E+00,0.128113E+00,0.309555E-03,0.314310E-03,
23457 &0.309792E-03,0.309555E-03,0.106262E-01,0.982612E-05,0.124876E+00,
23458 &0.112516E+00,0.265952E-03,0.272344E-03,0.266256E-03,0.265952E-03,
23459 &0.913151E-02,0.133834E-04,0.111490E+00,0.986188E-01,0.228522E-03,
23460 &0.236138E-03,0.228869E-03,0.228522E-03,0.783135E-02,0.160429E-04,
23461 &0.993081E-01,0.862590E-01,0.196336E-03,0.204821E-03,0.196706E-03,
23462 &0.196336E-03,0.670031E-02,0.178799E-04,0.882484E-01,0.752883E-01,
23463 &0.168604E-03,0.177655E-03,0.168981E-03,0.168604E-03,0.572016E-02,
23464 &0.189837E-04,0.782334E-01,0.655714E-01,0.144684E-03,0.154047E-03,
23465 &0.145058E-03,0.144684E-03,0.487276E-02,0.194655E-04,0.691885E-01,
23466 &0.569841E-01,0.124035E-03,0.133497E-03,0.124397E-03,0.124035E-03,
23467 &0.413648E-02,0.194296E-04,0.610420E-01,0.494128E-01,0.106203E-03,
23468 &0.115592E-03,0.106548E-03,0.106203E-03,0.350042E-02,0.189800E-04,
23469 &0.537249E-01,0.427533E-01,0.908141E-04,0.999895E-04,0.911377E-04/
23470 DATA (DL(K),K= 2806, 2890) /
23471 &0.908141E-04,0.295961E-02,0.182192E-04,0.471713E-01,0.369100E-01,
23472 &0.775359E-04,0.863895E-04,0.778360E-04,0.775359E-04,0.249629E-02,
23473 &0.172287E-04,0.413182E-01,0.317957E-01,0.660857E-04,0.745356E-04,
23474 &0.663611E-04,0.660857E-04,0.209482E-02,0.160791E-04,0.361056E-01,
23475 &0.273306E-01,0.562298E-04,0.642173E-04,0.564804E-04,0.562298E-04,
23476 &0.175588E-02,0.148407E-04,0.314766E-01,0.234421E-01,0.477598E-04,
23477 &0.552457E-04,0.479859E-04,0.477598E-04,0.147398E-02,0.135653E-04,
23478 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23479 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23480 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23481 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23482 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23483 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23484 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23485 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23486 &0.138007E+00,0.115214E+00,0.185072E-03,0.185072E-03,0.185072E-03,
23487 &0.185072E-03,0.722856E-02,-.380826E-17,0.122517E+00,0.100251E+00/
23488 DATA (DL(K),K= 2891, 2975) /
23489 &0.155814E-03,0.158287E-03,0.155901E-03,0.155814E-03,0.630580E-02,
23490 &0.155371E-05,0.108535E+00,0.870870E-01,0.131535E-03,0.135909E-03,
23491 &0.131680E-03,0.131535E-03,0.547867E-02,0.304952E-05,0.959260E-01,
23492 &0.754985E-01,0.111183E-03,0.116980E-03,0.111366E-03,0.111183E-03,
23493 &0.473794E-02,0.433106E-05,0.845828E-01,0.653163E-01,0.940433E-04,
23494 &0.100851E-03,0.942493E-04,0.940433E-04,0.407647E-02,0.533613E-05,
23495 &0.744017E-01,0.563870E-01,0.795843E-04,0.870596E-04,0.798007E-04,
23496 &0.795843E-04,0.349165E-02,0.606691E-05,0.652864E-01,0.485720E-01,
23497 &0.673476E-04,0.752069E-04,0.675656E-04,0.673476E-04,0.297273E-02,
23498 &0.652898E-05,0.571466E-01,0.417472E-01,0.569700E-04,0.649812E-04,
23499 &0.571831E-04,0.569700E-04,0.251732E-02,0.675028E-05,0.498975E-01,
23500 &0.358008E-01,0.481618E-04,0.561391E-04,0.483654E-04,0.481618E-04,
23501 &0.212754E-02,0.677236E-05,0.434594E-01,0.306320E-01,0.406746E-04,
23502 &0.484724E-04,0.408657E-04,0.406746E-04,0.179059E-02,0.662814E-05,
23503 &0.377578E-01,0.261500E-01,0.343050E-04,0.418123E-04,0.344818E-04,
23504 &0.343050E-04,0.149563E-02,0.635273E-05,0.327229E-01,0.222734E-01,
23505 &0.288923E-04,0.360279E-04,0.290540E-04,0.288923E-04,0.124695E-02/
23506 DATA (DL(K),K= 2976, 3060) /
23507 &0.598767E-05,0.282894E-01,0.189287E-01,0.242960E-04,0.310036E-04,
23508 &0.244423E-04,0.242960E-04,0.104112E-02,0.556344E-05,0.243968E-01,
23509 &0.160504E-01,0.203920E-04,0.266363E-04,0.205232E-04,0.203920E-04,
23510 &0.863677E-03,0.510070E-05,0.209890E-01,0.135797E-01,0.170822E-04,
23511 &0.228449E-04,0.171989E-04,0.170822E-04,0.711641E-03,0.462338E-05,
23512 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23513 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23514 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23515 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23516 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23517 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23518 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23519 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23520 &0.105155E+00,0.752467E-01,0.719932E-04,0.719932E-04,0.719932E-04,
23521 &0.719932E-04,0.328057E-02,-.758942E-18,0.920856E-01,0.645455E-01,
23522 &0.592305E-04,0.615087E-04,0.592802E-04,0.592305E-04,0.295327E-02,
23523 &0.945234E-07,0.804695E-01,0.552770E-01,0.489125E-04,0.528632E-04/
23524 DATA (DL(K),K= 3061, 3145) /
23525 &0.489946E-04,0.489125E-04,0.261804E-02,0.365139E-06,0.701499E-01,
23526 &0.472409E-01,0.404786E-04,0.456186E-04,0.405807E-04,0.404786E-04,
23527 &0.229460E-02,0.686912E-06,0.610049E-01,0.402864E-01,0.335367E-04,
23528 &0.394631E-04,0.336495E-04,0.335367E-04,0.198445E-02,0.981070E-06,
23529 &0.529201E-01,0.342803E-01,0.278134E-04,0.342044E-04,0.279301E-04,
23530 &0.278134E-04,0.169772E-02,0.122521E-05,0.457907E-01,0.291037E-01,
23531 &0.230821E-04,0.296833E-04,0.231978E-04,0.230821E-04,0.144575E-02,
23532 &0.140819E-05,0.395205E-01,0.246522E-01,0.191553E-04,0.257661E-04,
23533 &0.192666E-04,0.191553E-04,0.122125E-02,0.152152E-05,0.340212E-01,
23534 &0.208330E-01,0.158874E-04,0.223546E-04,0.159921E-04,0.158874E-04,
23535 &0.101912E-02,0.156880E-05,0.292116E-01,0.175644E-01,0.131678E-04,
23536 &0.193783E-04,0.132645E-04,0.131678E-04,0.847586E-03,0.156432E-05,
23537 &0.250173E-01,0.147740E-01,0.109029E-04,0.167762E-04,0.109910E-04,
23538 &0.109029E-04,0.705515E-03,0.151845E-05,0.213702E-01,0.123979E-01,
23539 &0.901273E-05,0.144953E-04,0.909200E-05,0.901273E-05,0.581767E-03,
23540 &0.143817E-05,0.182083E-01,0.103797E-01,0.743733E-05,0.124978E-04,
23541 &0.750792E-05,0.743733E-05,0.475483E-03,0.133574E-05,0.154751E-01/
23542 DATA (DL(K),K= 3146, 3230) /
23543 &0.867011E-02,0.612722E-05,0.107517E-04,0.618950E-05,0.612722E-05,
23544 &0.390116E-03,0.122183E-05,0.131193E-01,0.722560E-02,0.503734E-05,
23545 &0.922584E-05,0.509185E-05,0.503734E-05,0.319980E-03,0.110130E-05,
23546 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23547 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23548 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23549 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23550 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23551 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23552 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23553 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23554 &0.754424E-01,0.449848E-01,0.236444E-04,0.236444E-04,0.236444E-04,
23555 &0.236444E-04,0.129291E-02,0.113079E-17,0.650429E-01,0.379660E-01,
23556 &0.187739E-04,0.207130E-04,0.187990E-04,0.187739E-04,0.124038E-02,
23557 &-.327995E-06,0.559588E-01,0.319936E-01,0.149625E-04,0.182671E-04,
23558 &0.150033E-04,0.149625E-04,0.113497E-02,-.464337E-06,0.480234E-01,
23559 &0.269030E-01,0.119484E-04,0.161746E-04,0.119982E-04,0.119484E-04/
23560 DATA (DL(K),K= 3231, 3315) /
23561 &0.100877E-02,-.490618E-06,0.411091E-01,0.225716E-01,0.954833E-05,
23562 &0.143391E-04,0.960250E-05,0.954833E-05,0.883852E-03,-.461770E-06,
23563 &0.350995E-01,0.188947E-01,0.763738E-05,0.127129E-04,0.769248E-05,
23564 &0.763738E-05,0.760077E-03,-.403363E-06,0.298897E-01,0.157798E-01,
23565 &0.611070E-05,0.112548E-04,0.616439E-05,0.611070E-05,0.639505E-03,
23566 &-.335607E-06,0.253856E-01,0.131470E-01,0.488993E-05,0.994021E-05,
23567 &0.494070E-05,0.488993E-05,0.534131E-03,-.267652E-06,0.215026E-01,
23568 &0.109271E-01,0.391276E-05,0.875190E-05,0.395967E-05,0.391276E-05,
23569 &0.445478E-03,-.205292E-06,0.181648E-01,0.906007E-02,0.312720E-05,
23570 &0.767418E-05,0.316978E-05,0.312720E-05,0.366232E-03,-.154024E-06,
23571 &0.153041E-01,0.749382E-02,0.249633E-05,0.670002E-05,0.253440E-05,
23572 &0.249633E-05,0.297435E-03,-.112673E-06,0.128596E-01,0.618334E-02,
23573 &0.199074E-05,0.582360E-05,0.202435E-05,0.199074E-05,0.242305E-03,
23574 &-.794410E-07,0.107770E-01,0.508977E-02,0.158457E-05,0.503733E-05,
23575 &0.161393E-05,0.158457E-05,0.196927E-03,-.546702E-07,0.900806E-02,
23576 &0.417964E-02,0.125888E-05,0.433619E-05,0.128428E-05,0.125888E-05,
23577 &0.158171E-03,-.364714E-07,0.751006E-02,0.342418E-02,0.998674E-06/
23578 DATA (DL(K),K= 3316, 3400) /
23579 &0.371518E-05,0.102046E-05,0.998674E-06,0.126865E-03,-.228706E-07,
23580 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23581 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23582 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23583 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23584 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23585 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23586 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23587 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23588 &0.496787E-01,0.236961E-01,0.607312E-05,0.607312E-05,0.607312E-05,
23589 &0.607312E-05,0.415108E-03,-.140523E-17,0.420445E-01,0.196196E-01,
23590 &0.443589E-05,0.603481E-05,0.444683E-05,0.443589E-05,0.444425E-03,
23591 &-.375397E-06,0.355108E-01,0.162223E-01,0.321766E-05,0.587645E-05,
23592 &0.323504E-05,0.321766E-05,0.432635E-03,-.593989E-06,0.299148E-01,
23593 &0.133836E-01,0.231504E-05,0.562250E-05,0.233581E-05,0.231504E-05,
23594 &0.395801E-03,-.699904E-06,0.251339E-01,0.110157E-01,0.164651E-05,
23595 &0.526880E-05,0.166853E-05,0.164651E-05,0.344925E-03,-.733095E-06/
23596 DATA (DL(K),K= 3401, 3485) /
23597 &0.210605E-01,0.904539E-02,0.115940E-05,0.485739E-05,0.118122E-05,
23598 &0.115940E-05,0.294439E-03,-.715193E-06,0.175989E-01,0.740944E-02,
23599 &0.808365E-06,0.441709E-05,0.829075E-06,0.808365E-06,0.249093E-03,
23600 &-.665420E-06,0.146656E-01,0.605433E-02,0.555563E-06,0.396078E-05,
23601 &0.574607E-06,0.555563E-06,0.205675E-03,-.600648E-06,0.121872E-01,
23602 &0.493466E-02,0.375914E-06,0.350822E-05,0.393011E-06,0.375914E-06,
23603 &0.166757E-03,-.529210E-06,0.100993E-01,0.401191E-02,0.250032E-06,
23604 &0.307359E-05,0.265094E-06,0.250032E-06,0.135196E-03,-.456996E-06,
23605 &0.834582E-02,0.325348E-02,0.162261E-06,0.266488E-05,0.175325E-06,
23606 &0.162261E-06,0.108862E-03,-.388821E-06,0.687767E-02,0.263179E-02,
23607 &0.102273E-06,0.228913E-05,0.113453E-06,0.102273E-06,0.865539E-04,
23608 &-.326325E-06,0.565221E-02,0.212357E-02,0.620694E-07,0.194975E-05,
23609 &0.715290E-07,0.620694E-07,0.687156E-04,-.270547E-06,0.463248E-02,
23610 &0.170926E-02,0.351992E-07,0.164711E-05,0.431226E-07,0.351992E-07,
23611 &0.543744E-04,-.222379E-06,0.378655E-02,0.137242E-02,0.178902E-07,
23612 &0.138124E-05,0.244675E-07,0.178902E-07,0.426626E-04,-.181158E-06,
23613 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23614 DATA (DL(K),K= 3486, 3570) /
23615 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23616 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23617 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23618 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23619 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23620 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23621 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23622 &0.286141E-01,0.102357E-01,0.105702E-05,0.105702E-05,0.105702E-05,
23623 &0.105702E-05,0.963318E-04,0.591070E-18,0.236608E-01,0.827483E-02,
23624 &0.548552E-06,0.163293E-05,0.551993E-06,0.548552E-06,0.133058E-03,
23625 &-.268677E-06,0.195282E-01,0.668247E-02,0.238780E-06,0.183459E-05,
23626 &0.243802E-06,0.238780E-06,0.135119E-03,-.393414E-06,0.160742E-01,
23627 &0.538444E-02,0.599864E-07,0.183277E-05,0.655085E-07,0.599864E-07,
23628 &0.124554E-03,-.428349E-06,0.131940E-01,0.432750E-02,-.392825E-07,
23629 &0.172071E-05,-.338391E-07,-.392825E-07,0.111121E-03,-.415550E-06,
23630 &0.107996E-01,0.346954E-02,-.875089E-07,0.154604E-05,-.824926E-07,
23631 &-.875089E-07,0.941854E-04,-.376855E-06,0.881435E-02,0.277463E-02/
23632 DATA (DL(K),K= 3571, 3655) /
23633 &-.103962E-06,0.135013E-05,-.995446E-07,-.103962E-06,0.772195E-04,
23634 &-.326008E-06,0.717317E-02,0.221313E-02,-.102844E-06,0.115335E-05,
23635 &-.990733E-07,-.102844E-06,0.626565E-04,-.272858E-06,0.582050E-02,
23636 &0.176061E-02,-.929503E-07,0.967229E-06,-.898064E-07,-.929503E-07,
23637 &0.499930E-04,-.222828E-06,0.470908E-02,0.139692E-02,-.791495E-07,
23638 &0.800414E-06,-.765797E-07,-.791495E-07,0.394181E-04,-.178141E-06,
23639 &0.379875E-02,0.110542E-02,-.647230E-07,0.655119E-06,-.626567E-07,
23640 &-.647230E-07,0.309999E-04,-.140000E-06,0.305549E-02,0.872447E-03,
23641 &-.515215E-07,0.530834E-06,-.498829E-07,-.515215E-07,0.240354E-04,
23642 &-.108633E-06,0.245058E-02,0.686769E-03,-.400234E-07,0.426835E-06,
23643 &-.387401E-07,-.400234E-07,0.184613E-04,-.832544E-07,0.195984E-02,
23644 &0.539209E-03,-.304312E-07,0.341169E-06,-.294373E-07,-.304312E-07,
23645 &0.143512E-04,-.630818E-07,0.156297E-02,0.422273E-03,-.228633E-07,
23646 &0.271199E-06,-.221014E-07,-.228633E-07,0.110898E-04,-.474683E-07,
23647 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23648 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23649 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23650 DATA (DL(K),K= 3656, 3740) /
23651 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23652 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23653 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23654 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23655 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23656 &0.129345E-01,0.308444E-02,0.903693E-07,0.903693E-07,0.903693E-07,
23657 &0.903693E-07,0.123538E-04,-.166230E-18,0.103598E-01,0.241354E-02,
23658 &0.155648E-06,-.205296E-06,0.154889E-06,0.155648E-06,0.267249E-04,
23659 &0.880707E-07,0.828507E-02,0.188764E-02,0.176333E-06,-.341498E-06,
23660 &0.175220E-06,0.176333E-06,0.306432E-04,0.125718E-06,0.660736E-02,
23661 &0.147304E-02,0.173444E-06,-.383695E-06,0.172215E-06,0.173444E-06,
23662 &0.280787E-04,0.135578E-06,0.525320E-02,0.114618E-02,0.158651E-06,
23663 &-.373371E-06,0.157437E-06,0.158651E-06,0.243526E-04,0.130412E-06,
23664 &0.416429E-02,0.889584E-03,0.137131E-06,-.333468E-06,0.136012E-06,
23665 &0.137131E-06,0.203463E-04,0.116115E-06,0.329102E-02,0.688580E-03,
23666 &0.113839E-06,-.280874E-06,0.112853E-06,0.113839E-06,0.161038E-04,
23667 &0.982305E-07,0.259282E-02,0.531508E-03,0.914374E-07,-.225427E-06/
23668 DATA (DL(K),K= 3741, 3825) /
23669 &0.905971E-07,0.914374E-07,0.125639E-04,0.798741E-07,0.203641E-02,
23670 &0.409120E-03,0.709595E-07,-.173123E-06,0.702607E-07,0.709595E-07,
23671 &0.979247E-05,0.624138E-07,0.159441E-02,0.314027E-03,0.532256E-07,
23672 &-.127272E-06,0.526566E-07,0.532256E-07,0.741899E-05,0.469253E-07,
23673 &0.124447E-02,0.240357E-03,0.385509E-07,-.888851E-07,0.380956E-07,
23674 &0.385509E-07,0.554070E-05,0.339174E-07,0.968328E-03,0.183454E-03,
23675 &0.267272E-07,-.580277E-07,0.263687E-07,0.267272E-07,0.420032E-05,
23676 &0.233280E-07,0.751159E-03,0.139632E-03,0.174605E-07,-.342016E-07,
23677 &0.171822E-07,0.174605E-07,0.315522E-05,0.149727E-07,0.580936E-03,
23678 &0.105986E-03,0.104515E-07,-.164567E-07,0.102383E-07,0.104515E-07,
23679 &0.230829E-05,0.863527E-08,0.447955E-03,0.802293E-04,0.531954E-08,
23680 &-.376312E-08,0.515829E-08,0.531954E-08,0.170771E-05,0.399662E-08,
23681 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23682 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23683 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23684 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23685 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23686 DATA (DL(K),K= 3826, 3910) /
23687 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23688 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23689 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23690 &0.324478E-02,0.386879E-03,0.135983E-08,0.135983E-08,0.135983E-08,
23691 &0.135983E-08,0.371787E-06,-.274599E-19,0.246219E-02,0.286505E-03,
23692 &-.106852E-06,0.327611E-06,-.106589E-06,-.106852E-06,0.231631E-05,
23693 &-.107814E-06,0.186777E-02,0.212413E-03,-.161566E-06,0.492001E-06,
23694 &-.161179E-06,-.161566E-06,0.311589E-05,-.162249E-06,0.141322E-02,
23695 &0.157212E-03,-.183398E-06,0.557106E-06,-.182972E-06,-.183398E-06,
23696 &0.267943E-05,-.183884E-06,0.106518E-02,0.115892E-03,-.185231E-06,
23697 &0.562185E-06,-.184809E-06,-.185231E-06,0.203027E-05,-.185573E-06,
23698 &0.800350E-03,0.851995E-04,-.174680E-06,0.530096E-06,-.174290E-06,
23699 &-.174680E-06,0.165870E-05,-.174922E-06,0.599444E-03,0.624676E-04,
23700 &-.157644E-06,0.478420E-06,-.157300E-06,-.157644E-06,0.130112E-05,
23701 &-.157815E-06,0.447433E-03,0.456556E-04,-.137838E-06,0.418429E-06,
23702 &-.137543E-06,-.137838E-06,0.903220E-06,-.137958E-06,0.332836E-03,
23703 &0.332643E-04,-.117616E-06,0.357179E-06,-.117368E-06,-.117616E-06/
23704 DATA (DL(K),K= 3911, 3995) /
23705 &0.636187E-06,-.117699E-06,0.246754E-03,0.241622E-04,-.984560E-07,
23706 &0.299077E-06,-.982529E-07,-.984560E-07,0.481221E-06,-.985144E-07,
23707 &0.182315E-03,0.174961E-04,-.811089E-07,0.246465E-06,-.809446E-07,
23708 &-.811089E-07,0.342859E-06,-.811495E-07,0.134250E-03,0.126299E-04,
23709 &-.659052E-07,0.200354E-06,-.657742E-07,-.659052E-07,0.227840E-06,
23710 &-.659334E-07,0.985288E-04,0.908931E-05,-.529252E-07,0.160947E-06,
23711 &-.528218E-07,-.529252E-07,0.161641E-06,-.529447E-07,0.720750E-04,
23712 &0.652153E-05,-.420621E-07,0.127943E-06,-.419814E-07,-.420621E-07,
23713 &0.119540E-06,-.420756E-07,0.525538E-04,0.466527E-05,-.331141E-07,
23714 &0.100758E-06,-.330516E-07,-.331141E-07,0.808991E-07,-.331233E-07,
23715 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23716 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23717 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23718 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23719 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23720 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23721 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23722 DATA (DL(K),K= 3996, 4000) /
23723 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
23724C
23725 ANS = 0.
23726 IF (X.GT.0.9985) RETURN
23727 IF ( ((I.EQ.3).OR.(I.EQ.8)) .AND. (X.GT.0.95) ) RETURN
23728C
23729 IS = S/DELTA+1
23730 IS1 = IS+1
23731 DO 1 L=1,25
23732 KL = L+NDRV*25
23733 F1(L) = GF(I,IS,KL)
23734 F2(L) = GF(I,IS1,KL)
23735 1 CONTINUE
23736 A1 = DT_CKMTFF(X,F1)
23737 A2 = DT_CKMTFF(X,F2)
23738C A1=ALOG(A1)
23739C A2=ALOG(A2)
23740 S1 = (IS-1)*DELTA
23741 S2 = S1+DELTA
23742 ANS = A1*(S-S2)/(S1-S2)+A2*(S-S1)/(S2-S1)
23743C ANS=EXP(ANS)
23744 RETURN
23745 END
23746C
23747C
23748
23749*$ CREATE DT_CKMTPR.FOR
23750*COPY DT_CKMTPR
23751 SUBROUTINE DT_CKMTPR(I,NDRV,X,S,ANS)
23752C
23753C**********************************************************************
23754C Proton - PDFs
23755C I = 1, 2, 3, 4, 5, 7, 8 : xu, xd, xub, xdb, xsb, xg, xc
23756C ANS = PDF(I)
23757C This version by S. Roesler, 31.01.96
23758C**********************************************************************
23759
23760 SAVE
23761 DIMENSION F1(25),F2(25),GF(8,20,25),DL(4000)
23762 EQUIVALENCE (GF(1,1,1),DL(1))
23763 DATA DELTA/.10/
23764C
23765 DATA (DL(K),K= 1, 85) /
23766 &0.367759E+00,0.350609E+00,0.325356E+00,0.325356E+00,0.325356E+00,
23767 &0.325356E+00,0.533117E+01,0.138778E-16,0.427988E+00,0.409718E+00,
23768 &0.382948E+00,0.382920E+00,0.382933E+00,0.382948E+00,0.686279E+01,
23769 &0.611113E-01,0.494752E+00,0.475328E+00,0.447011E+00,0.446959E+00,
23770 &0.446984E+00,0.447011E+00,0.855688E+01,0.128659E+00,0.568248E+00,
23771 &0.547637E+00,0.517743E+00,0.517671E+00,0.517705E+00,0.517743E+00,
23772 &0.104074E+02,0.202846E+00,0.648622E+00,0.626792E+00,0.595289E+00,
23773 &0.595201E+00,0.595244E+00,0.595289E+00,0.124065E+02,0.283819E+00,
23774 &0.735974E+00,0.712890E+00,0.679748E+00,0.679648E+00,0.679696E+00,
23775 &0.679748E+00,0.145441E+02,0.371679E+00,0.830359E+00,0.805987E+00,
23776 &0.771173E+00,0.771066E+00,0.771119E+00,0.771173E+00,0.168081E+02,
23777 &0.466485E+00,0.931778E+00,0.906084E+00,0.869566E+00,0.869456E+00,
23778 &0.869511E+00,0.869566E+00,0.191850E+02,0.568240E+00,0.104018E+01,
23779 &0.101313E+01,0.974873E+00,0.974763E+00,0.974819E+00,0.974873E+00,
23780 &0.216593E+02,0.676890E+00,0.115544E+01,0.112700E+01,0.108698E+01,
23781 &0.108687E+01,0.108693E+01,0.108698E+01,0.242146E+02,0.792321E+00,
23782 &0.127738E+01,0.124751E+01,0.120570E+01,0.120560E+01,0.120565E+01/
23783 DATA (DL(K),K= 86, 170) /
23784 &0.120570E+01,0.268333E+02,0.914356E+00,0.140577E+01,0.137444E+01,
23785 &0.133079E+01,0.133070E+01,0.133075E+01,0.133079E+01,0.294970E+02,
23786 &0.104275E+01,0.154028E+01,0.150745E+01,0.146194E+01,0.146187E+01,
23787 &0.146192E+01,0.146194E+01,0.321867E+02,0.117720E+01,0.168054E+01,
23788 &0.164619E+01,0.159879E+01,0.159874E+01,0.159877E+01,0.159879E+01,
23789 &0.348836E+02,0.131732E+01,0.182613E+01,0.179020E+01,0.174088E+01,
23790 &0.174086E+01,0.174088E+01,0.174088E+01,0.375685E+02,0.146269E+01,
23791 &0.197653E+01,0.193901E+01,0.188774E+01,0.188774E+01,0.188775E+01,
23792 &0.188774E+01,0.402228E+02,0.161282E+01,0.213121E+01,0.209205E+01,
23793 &0.203880E+01,0.203884E+01,0.203884E+01,0.203880E+01,0.428285E+02,
23794 &0.176714E+01,0.228955E+01,0.224873E+01,0.219348E+01,0.219355E+01,
23795 &0.219353E+01,0.219348E+01,0.453682E+02,0.192507E+01,0.245093E+01,
23796 &0.240840E+01,0.235113E+01,0.235123E+01,0.235120E+01,0.235113E+01,
23797 &0.478258E+02,0.208597E+01,0.000000E+00,0.000000E+00,0.000000E+00,
23798 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23799 &0.349839E+00,0.324128E+00,0.286363E+00,0.286363E+00,0.286363E+00,
23800 &0.286363E+00,0.469694E+01,0.000000E+00,0.398361E+00,0.371065E+00/
23801 DATA (DL(K),K= 171, 255) /
23802 &0.331239E+00,0.331213E+00,0.331227E+00,0.331239E+00,0.586152E+01,
23803 &0.481683E-01,0.451010E+00,0.422096E+00,0.380182E+00,0.380137E+00,
23804 &0.380161E+00,0.380182E+00,0.711349E+01,0.100378E+00,0.507782E+00,
23805 &0.477215E+00,0.433187E+00,0.433128E+00,0.433160E+00,0.433187E+00,
23806 &0.844371E+01,0.156627E+00,0.568644E+00,0.536390E+00,0.490220E+00,
23807 &0.490152E+00,0.490190E+00,0.490220E+00,0.984291E+01,0.216886E+00,
23808 &0.633517E+00,0.599543E+00,0.551204E+00,0.551133E+00,0.551174E+00,
23809 &0.551204E+00,0.113005E+02,0.281079E+00,0.702295E+00,0.666565E+00,
23810 &0.616031E+00,0.615963E+00,0.616004E+00,0.616031E+00,0.128050E+02,
23811 &0.349101E+00,0.774832E+00,0.737311E+00,0.684556E+00,0.684495E+00,
23812 &0.684535E+00,0.684556E+00,0.143447E+02,0.420809E+00,0.850945E+00,
23813 &0.811598E+00,0.756596E+00,0.756547E+00,0.756583E+00,0.756596E+00,
23814 &0.159073E+02,0.496022E+00,0.930413E+00,0.889207E+00,0.831933E+00,
23815 &0.831901E+00,0.831931E+00,0.831933E+00,0.174801E+02,0.574524E+00,
23816 &0.101298E+01,0.969882E+00,0.910312E+00,0.910301E+00,0.910324E+00,
23817 &0.910312E+00,0.190508E+02,0.656061E+00,0.109836E+01,0.105333E+01,
23818 &0.991445E+00,0.991459E+00,0.991471E+00,0.991445E+00,0.206070E+02/
23819 DATA (DL(K),K= 256, 340) /
23820 &0.740345E+00,0.118622E+01,0.113923E+01,0.107501E+01,0.107505E+01,
23821 &0.107505E+01,0.107501E+01,0.221368E+02,0.827056E+00,0.127622E+01,
23822 &0.122724E+01,0.116065E+01,0.116073E+01,0.116072E+01,0.116065E+01,
23823 &0.236287E+02,0.915845E+00,0.136797E+01,0.131696E+01,0.124800E+01,
23824 &0.124812E+01,0.124809E+01,0.124800E+01,0.250721E+02,0.100634E+01,
23825 &0.146107E+01,0.140801E+01,0.133666E+01,0.133681E+01,0.133677E+01,
23826 &0.133666E+01,0.264571E+02,0.109813E+01,0.155511E+01,0.149996E+01,
23827 &0.142621E+01,0.142641E+01,0.142634E+01,0.142621E+01,0.277747E+02,
23828 &0.119081E+01,0.164964E+01,0.159239E+01,0.151622E+01,0.151646E+01,
23829 &0.151638E+01,0.151622E+01,0.290168E+02,0.128396E+01,0.174424E+01,
23830 &0.168485E+01,0.160626E+01,0.160655E+01,0.160645E+01,0.160626E+01,
23831 &0.301765E+02,0.137713E+01,0.000000E+00,0.000000E+00,0.000000E+00,
23832 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23833 &0.345345E+00,0.306823E+00,0.250518E+00,0.250518E+00,0.250518E+00,
23834 &0.250518E+00,0.411726E+01,-.138778E-16,0.384210E+00,0.343514E+00,
23835 &0.284500E+00,0.284487E+00,0.284496E+00,0.284500E+00,0.496835E+01,
23836 &0.371582E-01,0.425419E+00,0.382518E+00,0.320782E+00,0.320762E+00/
23837 DATA (DL(K),K= 341, 425) /
23838 &0.320777E+00,0.320782E+00,0.585504E+01,0.765988E-01,0.468853E+00,
23839 &0.423717E+00,0.359246E+00,0.359226E+00,0.359243E+00,0.359246E+00,
23840 &0.676824E+01,0.118207E+00,0.514392E+00,0.466990E+00,0.399771E+00,
23841 &0.399758E+00,0.399775E+00,0.399771E+00,0.769967E+01,0.161865E+00,
23842 &0.561883E+00,0.512186E+00,0.442209E+00,0.442208E+00,0.442222E+00,
23843 &0.442209E+00,0.864071E+01,0.207426E+00,0.611162E+00,0.559140E+00,
23844 &0.486395E+00,0.486411E+00,0.486420E+00,0.486395E+00,0.958280E+01,
23845 &0.254727E+00,0.662044E+00,0.607667E+00,0.532145E+00,0.532185E+00,
23846 &0.532185E+00,0.532145E+00,0.105176E+02,0.303587E+00,0.714325E+00,
23847 &0.657566E+00,0.579261E+00,0.579328E+00,0.579318E+00,0.579261E+00,
23848 &0.114370E+02,0.353808E+00,0.767786E+00,0.708618E+00,0.627526E+00,
23849 &0.627625E+00,0.627603E+00,0.627526E+00,0.123333E+02,0.405174E+00,
23850 &0.822195E+00,0.760591E+00,0.676711E+00,0.676846E+00,0.676810E+00,
23851 &0.676711E+00,0.131994E+02,0.457458E+00,0.877307E+00,0.813242E+00,
23852 &0.726575E+00,0.726750E+00,0.726697E+00,0.726575E+00,0.140286E+02,
23853 &0.510420E+00,0.932865E+00,0.866317E+00,0.776867E+00,0.777085E+00,
23854 &0.777015E+00,0.776867E+00,0.148150E+02,0.563809E+00,0.988608E+00/
23855 DATA (DL(K),K= 426, 510) /
23856 &0.919556E+00,0.827330E+00,0.827594E+00,0.827505E+00,0.827330E+00,
23857 &0.155533E+02,0.617368E+00,0.104427E+01,0.972694E+00,0.877703E+00,
23858 &0.878016E+00,0.877907E+00,0.877703E+00,0.162391E+02,0.670837E+00,
23859 &0.109958E+01,0.102547E+01,0.927723E+00,0.928088E+00,0.927957E+00,
23860 &0.927723E+00,0.168687E+02,0.723954E+00,0.115428E+01,0.107761E+01,
23861 &0.977132E+00,0.977550E+00,0.977397E+00,0.977132E+00,0.174391E+02,
23862 &0.776458E+00,0.120809E+01,0.112886E+01,0.102567E+01,0.102615E+01,
23863 &0.102597E+01,0.102567E+01,0.179481E+02,0.828097E+00,0.126078E+01,
23864 &0.117898E+01,0.107310E+01,0.107363E+01,0.107343E+01,0.107310E+01,
23865 &0.183942E+02,0.878621E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23866 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23867 &0.357586E+00,0.299938E+00,0.216504E+00,0.216504E+00,0.216504E+00,
23868 &0.216504E+00,0.357260E+01,-.277556E-16,0.388529E+00,0.327984E+00,
23869 &0.241161E+00,0.241168E+00,0.241168E+00,0.241161E+00,0.415893E+01,
23870 &0.278429E-01,0.420472E+00,0.357015E+00,0.266823E+00,0.266844E+00,
23871 &0.266842E+00,0.266823E+00,0.474689E+01,0.566783E-01,0.453271E+00,
23872 &0.386886E+00,0.293349E+00,0.293389E+00,0.293381E+00,0.293349E+00/
23873 DATA (DL(K),K= 511, 595) /
23874 &0.532982E+01,0.863668E-01,0.486793E+00,0.417464E+00,0.320608E+00,
23875 &0.320673E+00,0.320657E+00,0.320608E+00,0.590219E+01,0.116779E+00,
23876 &0.520887E+00,0.448601E+00,0.348454E+00,0.348549E+00,0.348523E+00,
23877 &0.348454E+00,0.645868E+01,0.147773E+00,0.555403E+00,0.480149E+00,
23878 &0.376740E+00,0.376870E+00,0.376831E+00,0.376740E+00,0.699440E+01,
23879 &0.179201E+00,0.590183E+00,0.511950E+00,0.405314E+00,0.405482E+00,
23880 &0.405429E+00,0.405314E+00,0.750493E+01,0.210912E+00,0.625064E+00,
23881 &0.543845E+00,0.434019E+00,0.434229E+00,0.434159E+00,0.434019E+00,
23882 &0.798636E+01,0.242750E+00,0.659882E+00,0.575673E+00,0.462696E+00,
23883 &0.462952E+00,0.462864E+00,0.462696E+00,0.843528E+01,0.274558E+00,
23884 &0.694472E+00,0.607271E+00,0.491188E+00,0.491492E+00,0.491385E+00,
23885 &0.491188E+00,0.884885E+01,0.306178E+00,0.728669E+00,0.638478E+00,
23886 &0.519337E+00,0.519690E+00,0.519563E+00,0.519337E+00,0.922480E+01,
23887 &0.337451E+00,0.762311E+00,0.669133E+00,0.546987E+00,0.547392E+00,
23888 &0.547244E+00,0.546987E+00,0.956139E+01,0.368224E+00,0.795240E+00,
23889 &0.699084E+00,0.573988E+00,0.574447E+00,0.574277E+00,0.573988E+00,
23890 &0.985744E+01,0.398346E+00,0.827302E+00,0.728181E+00,0.600196E+00/
23891 DATA (DL(K),K= 596, 680) /
23892 &0.600710E+00,0.600518E+00,0.600196E+00,0.101123E+02,0.427671E+00,
23893 &0.858354E+00,0.756282E+00,0.625475E+00,0.626044E+00,0.625829E+00,
23894 &0.625475E+00,0.103258E+02,0.456064E+00,0.888257E+00,0.783256E+00,
23895 &0.649696E+00,0.650321E+00,0.650083E+00,0.649696E+00,0.104982E+02,
23896 &0.483395E+00,0.916887E+00,0.808981E+00,0.672742E+00,0.673422E+00,
23897 &0.673161E+00,0.672742E+00,0.106303E+02,0.509546E+00,0.944126E+00,
23898 &0.833345E+00,0.694506E+00,0.695243E+00,0.694958E+00,0.694506E+00,
23899 &0.107231E+02,0.534410E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23900 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23901 &0.390721E+00,0.304671E+00,0.182562E+00,0.182562E+00,0.182562E+00,
23902 &0.182562E+00,0.303699E+01,0.693889E-17,0.414806E+00,0.325059E+00,
23903 &0.199103E+00,0.199133E+00,0.199124E+00,0.199103E+00,0.339971E+01,
23904 &0.198528E-01,0.438929E+00,0.345508E+00,0.215797E+00,0.215862E+00,
23905 &0.215842E+00,0.215797E+00,0.374624E+01,0.398420E-01,0.462973E+00,
23906 &0.365903E+00,0.232531E+00,0.232635E+00,0.232601E+00,0.232531E+00,
23907 &0.407322E+01,0.598565E-01,0.486835E+00,0.386142E+00,0.249208E+00,
23908 &0.249352E+00,0.249304E+00,0.249208E+00,0.437817E+01,0.797987E-01/
23909 DATA (DL(K),K= 681, 765) /
23910 &0.510407E+00,0.406123E+00,0.265725E+00,0.265913E+00,0.265849E+00,
23911 &0.265725E+00,0.465901E+01,0.995694E-01,0.533588E+00,0.425746E+00,
23912 &0.281986E+00,0.282220E+00,0.282139E+00,0.281986E+00,0.491410E+01,
23913 &0.119072E+00,0.556274E+00,0.444912E+00,0.297897E+00,0.298178E+00,
23914 &0.298079E+00,0.297897E+00,0.514220E+01,0.138212E+00,0.578369E+00,
23915 &0.463528E+00,0.313366E+00,0.313696E+00,0.313578E+00,0.313366E+00,
23916 &0.534249E+01,0.156900E+00,0.599777E+00,0.481503E+00,0.328308E+00,
23917 &0.328688E+00,0.328549E+00,0.328308E+00,0.551456E+01,0.175048E+00,
23918 &0.620409E+00,0.498752E+00,0.342642E+00,0.343071E+00,0.342913E+00,
23919 &0.342642E+00,0.565833E+01,0.192575E+00,0.640181E+00,0.515196E+00,
23920 &0.356292E+00,0.356770E+00,0.356592E+00,0.356292E+00,0.577410E+01,
23921 &0.209407E+00,0.659017E+00,0.530764E+00,0.369190E+00,0.369718E+00,
23922 &0.369519E+00,0.369190E+00,0.586243E+01,0.225474E+00,0.676845E+00,
23923 &0.545389E+00,0.381275E+00,0.381852E+00,0.381633E+00,0.381275E+00,
23924 &0.592421E+01,0.240714E+00,0.693604E+00,0.559015E+00,0.392493E+00,
23925 &0.393118E+00,0.392880E+00,0.392493E+00,0.596052E+01,0.255072E+00,
23926 &0.709239E+00,0.571593E+00,0.402799E+00,0.403472E+00,0.403213E+00/
23927 DATA (DL(K),K= 766, 850) /
23928 &0.402799E+00,0.597267E+01,0.268502E+00,0.723703E+00,0.583081E+00,
23929 &0.412157E+00,0.412875E+00,0.412597E+00,0.412157E+00,0.596211E+01,
23930 &0.280966E+00,0.736960E+00,0.593447E+00,0.420536E+00,0.421299E+00,
23931 &0.421002E+00,0.420536E+00,0.593045E+01,0.292434E+00,0.748980E+00,
23932 &0.602669E+00,0.427918E+00,0.428723E+00,0.428408E+00,0.427918E+00,
23933 &0.587934E+01,0.302884E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23934 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23935 &0.448390E+00,0.320678E+00,0.146415E+00,0.146415E+00,0.146415E+00,
23936 &0.146415E+00,0.247594E+01,0.000000E+00,0.465760E+00,0.333734E+00,
23937 &0.155974E+00,0.156013E+00,0.156000E+00,0.155974E+00,0.265633E+01,
23938 &0.130329E-01,0.482525E+00,0.346293E+00,0.165233E+00,0.165311E+00,
23939 &0.165285E+00,0.165233E+00,0.281612E+01,0.257304E-01,0.498626E+00,
23940 &0.358294E+00,0.174131E+00,0.174249E+00,0.174209E+00,0.174131E+00,
23941 &0.295484E+01,0.380345E-01,0.514008E+00,0.369688E+00,0.182622E+00,
23942 &0.182779E+00,0.182724E+00,0.182622E+00,0.307242E+01,0.498976E-01,
23943 &0.528624E+00,0.380432E+00,0.190660E+00,0.190856E+00,0.190786E+00,
23944 &0.190660E+00,0.316911E+01,0.612760E-01,0.542428E+00,0.390485E+00/
23945 DATA (DL(K),K= 851, 935) /
23946 &0.198205E+00,0.198441E+00,0.198356E+00,0.198205E+00,0.324538E+01,
23947 &0.721303E-01,0.555382E+00,0.399810E+00,0.205224E+00,0.205498E+00,
23948 &0.205398E+00,0.205224E+00,0.330192E+01,0.824256E-01,0.567448E+00,
23949 &0.408377E+00,0.211687E+00,0.211997E+00,0.211882E+00,0.211687E+00,
23950 &0.333960E+01,0.921319E-01,0.578597E+00,0.416159E+00,0.217568E+00,
23951 &0.217915E+00,0.217784E+00,0.217568E+00,0.335945E+01,0.101224E+00,
23952 &0.588802E+00,0.423136E+00,0.222847E+00,0.223229E+00,0.223084E+00,
23953 &0.222847E+00,0.336262E+01,0.109681E+00,0.598043E+00,0.429293E+00,
23954 &0.227512E+00,0.227928E+00,0.227768E+00,0.227512E+00,0.335036E+01,
23955 &0.117489E+00,0.606305E+00,0.434619E+00,0.231551E+00,0.232000E+00,
23956 &0.231826E+00,0.231551E+00,0.332398E+01,0.124636E+00,0.613579E+00,
23957 &0.439110E+00,0.234962E+00,0.235442E+00,0.235254E+00,0.234962E+00,
23958 &0.328483E+01,0.131119E+00,0.619860E+00,0.442766E+00,0.237745E+00,
23959 &0.238254E+00,0.238053E+00,0.237745E+00,0.323429E+01,0.136936E+00,
23960 &0.625150E+00,0.445594E+00,0.239905E+00,0.240441E+00,0.240228E+00,
23961 &0.239905E+00,0.317371E+01,0.142091E+00,0.629453E+00,0.447603E+00,
23962 &0.241452E+00,0.242014E+00,0.241788E+00,0.241452E+00,0.310443E+01/
23963 DATA (DL(K),K= 936, 1020) /
23964 &0.146594E+00,0.632782E+00,0.448808E+00,0.242400E+00,0.242987E+00,
23965 &0.242749E+00,0.242400E+00,0.302775E+01,0.150456E+00,0.635151E+00,
23966 &0.449228E+00,0.242767E+00,0.243376E+00,0.243127E+00,0.242767E+00,
23967 &0.294491E+01,0.153694E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23968 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
23969 &0.528765E+00,0.341825E+00,0.105823E+00,0.105823E+00,0.105823E+00,
23970 &0.105823E+00,0.185069E+01,-.138778E-16,0.538124E+00,0.347118E+00,
23971 &0.109762E+00,0.109780E+00,0.109774E+00,0.109762E+00,0.189644E+01,
23972 &0.738880E-02,0.546541E+00,0.351712E+00,0.113300E+00,0.113336E+00,
23973 &0.113324E+00,0.113300E+00,0.192700E+01,0.143076E-01,0.554014E+00,
23974 &0.355607E+00,0.116431E+00,0.116485E+00,0.116466E+00,0.116431E+00,
23975 &0.194356E+01,0.207515E-01,0.560546E+00,0.358805E+00,0.119150E+00,
23976 &0.119222E+00,0.119196E+00,0.119150E+00,0.194722E+01,0.267179E-01,
23977 &0.566139E+00,0.361311E+00,0.121459E+00,0.121549E+00,0.121515E+00,
23978 &0.121459E+00,0.193921E+01,0.322084E-01,0.570802E+00,0.363134E+00,
23979 &0.123359E+00,0.123467E+00,0.123426E+00,0.123359E+00,0.192071E+01,
23980 &0.372262E-01,0.574542E+00,0.364286E+00,0.124858E+00,0.124983E+00/
23981 DATA (DL(K),K= 1021, 1105) /
23982 &0.124933E+00,0.124858E+00,0.189295E+01,0.417774E-01,0.577372E+00,
23983 &0.364779E+00,0.125961E+00,0.126103E+00,0.126046E+00,0.125961E+00,
23984 &0.185710E+01,0.458703E-01,0.579307E+00,0.364629E+00,0.126681E+00,
23985 &0.126839E+00,0.126774E+00,0.126681E+00,0.181432E+01,0.495154E-01,
23986 &0.580363E+00,0.363857E+00,0.127029E+00,0.127202E+00,0.127130E+00,
23987 &0.127029E+00,0.176571E+01,0.527252E-01,0.580561E+00,0.362483E+00,
23988 &0.127020E+00,0.127208E+00,0.127128E+00,0.127020E+00,0.171231E+01,
23989 &0.555142E-01,0.579923E+00,0.360529E+00,0.126670E+00,0.126872E+00,
23990 &0.126785E+00,0.126670E+00,0.165511E+01,0.578985E-01,0.578474E+00,
23991 &0.358021E+00,0.125998E+00,0.126213E+00,0.126119E+00,0.125998E+00,
23992 &0.159501E+01,0.598958E-01,0.576241E+00,0.354987E+00,0.125022E+00,
23993 &0.125249E+00,0.125148E+00,0.125022E+00,0.153284E+01,0.615248E-01,
23994 &0.573252E+00,0.351453E+00,0.123762E+00,0.124000E+00,0.123893E+00,
23995 &0.123762E+00,0.146934E+01,0.628056E-01,0.569539E+00,0.347450E+00,
23996 &0.122240E+00,0.122488E+00,0.122375E+00,0.122240E+00,0.140517E+01,
23997 &0.637587E-01,0.565134E+00,0.343008E+00,0.120476E+00,0.120733E+00,
23998 &0.120615E+00,0.120476E+00,0.134093E+01,0.644054E-01,0.560071E+00/
23999 DATA (DL(K),K= 1106, 1190) /
24000 &0.338158E+00,0.118493E+00,0.118758E+00,0.118635E+00,0.118493E+00,
24001 &0.127712E+01,0.647671E-01,0.000000E+00,0.000000E+00,0.000000E+00,
24002 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24003 &0.584093E+00,0.349173E+00,0.772117E-01,0.772117E-01,0.772117E-01,
24004 &0.772117E-01,0.140433E+01,0.346945E-17,0.586736E+00,0.349017E+00,
24005 &0.785355E-01,0.785519E-01,0.785448E-01,0.785355E-01,0.139434E+01,
24006 &0.447504E-02,0.588402E+00,0.348237E+00,0.795437E-01,0.795759E-01,
24007 &0.795617E-01,0.795437E-01,0.137550E+01,0.854114E-02,0.589124E+00,
24008 &0.346861E+00,0.802498E-01,0.802970E-01,0.802758E-01,0.802498E-01,
24009 &0.134918E+01,0.122148E-01,0.588930E+00,0.344912E+00,0.806656E-01,
24010 &0.807271E-01,0.806990E-01,0.806656E-01,0.131652E+01,0.155101E-01,
24011 &0.587849E+00,0.342417E+00,0.808055E-01,0.808805E-01,0.808457E-01,
24012 &0.808055E-01,0.127862E+01,0.184435E-01,0.585912E+00,0.339402E+00,
24013 &0.806843E-01,0.807718E-01,0.807306E-01,0.806843E-01,0.123648E+01,
24014 &0.210315E-01,0.583151E+00,0.335894E+00,0.803173E-01,0.804166E-01,
24015 &0.803692E-01,0.803173E-01,0.119104E+01,0.232909E-01,0.579599E+00,
24016 &0.331923E+00,0.797205E-01,0.798308E-01,0.797775E-01,0.797205E-01/
24017 DATA (DL(K),K= 1191, 1275) /
24018 &0.114317E+01,0.252394E-01,0.575288E+00,0.327516E+00,0.789107E-01,
24019 &0.790310E-01,0.789721E-01,0.789107E-01,0.109362E+01,0.268946E-01,
24020 &0.570253E+00,0.322704E+00,0.779045E-01,0.780341E-01,0.779698E-01,
24021 &0.779045E-01,0.104307E+01,0.282745E-01,0.564530E+00,0.317515E+00,
24022 &0.767190E-01,0.768570E-01,0.767878E-01,0.767190E-01,0.992143E+00,
24023 &0.293974E-01,0.558155E+00,0.311981E+00,0.753713E-01,0.755169E-01,
24024 &0.754432E-01,0.753713E-01,0.941341E+00,0.302812E-01,0.551166E+00,
24025 &0.306131E+00,0.738784E-01,0.740308E-01,0.739528E-01,0.738784E-01,
24026 &0.891113E+00,0.309441E-01,0.543599E+00,0.299995E+00,0.722571E-01,
24027 &0.724154E-01,0.723336E-01,0.722571E-01,0.841829E+00,0.314037E-01,
24028 &0.535494E+00,0.293603E+00,0.705237E-01,0.706871E-01,0.706019E-01,
24029 &0.705237E-01,0.793794E+00,0.316774E-01,0.526888E+00,0.286986E+00,
24030 &0.686941E-01,0.688619E-01,0.687736E-01,0.686941E-01,0.747249E+00,
24031 &0.317823E-01,0.517822E+00,0.280172E+00,0.667836E-01,0.669551E-01,
24032 &0.668640E-01,0.667836E-01,0.702381E+00,0.317346E-01,0.508333E+00,
24033 &0.273189E+00,0.648068E-01,0.649814E-01,0.648879E-01,0.648068E-01,
24034 &0.659330E+00,0.315501E-01,0.000000E+00,0.000000E+00,0.000000E+00/
24035 DATA (DL(K),K= 1276, 1360) /
24036 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24037 &0.622739E+00,0.340676E+00,0.509141E-01,0.509141E-01,0.509141E-01,
24038 &0.509141E-01,0.980502E+00,-.173472E-17,0.617764E+00,0.335457E+00,
24039 &0.507607E-01,0.507701E-01,0.507651E-01,0.507607E-01,0.944375E+00,
24040 &0.242386E-02,0.611957E+00,0.329837E+00,0.504236E-01,0.504417E-01,
24041 &0.504321E-01,0.504236E-01,0.905225E+00,0.455851E-02,0.605372E+00,
24042 &0.323853E+00,0.499207E-01,0.499471E-01,0.499328E-01,0.499207E-01,
24043 &0.864035E+00,0.642656E-02,0.598052E+00,0.317537E+00,0.492668E-01,
24044 &0.493008E-01,0.492822E-01,0.492668E-01,0.821557E+00,0.804638E-02,
24045 &0.590044E+00,0.310919E+00,0.484772E-01,0.485183E-01,0.484955E-01,
24046 &0.484772E-01,0.778444E+00,0.943663E-02,0.581391E+00,0.304033E+00,
24047 &0.475665E-01,0.476142E-01,0.475874E-01,0.475665E-01,0.735263E+00,
24048 &0.106150E-01,0.572137E+00,0.296908E+00,0.465487E-01,0.466024E-01,
24049 &0.465720E-01,0.465487E-01,0.692487E+00,0.115984E-01,0.562326E+00,
24050 &0.289573E+00,0.454376E-01,0.454968E-01,0.454629E-01,0.454376E-01,
24051 &0.650510E+00,0.124032E-01,0.552003E+00,0.282060E+00,0.442463E-01,
24052 &0.443103E-01,0.442733E-01,0.442463E-01,0.609652E+00,0.130451E-01/
24053 DATA (DL(K),K= 1361, 1445) /
24054 &0.541210E+00,0.274395E+00,0.429871E-01,0.430555E-01,0.430156E-01,
24055 &0.429871E-01,0.570164E+00,0.135389E-01,0.529991E+00,0.266608E+00,
24056 &0.416720E-01,0.417443E-01,0.417018E-01,0.416720E-01,0.532237E+00,
24057 &0.138989E-01,0.518389E+00,0.258725E+00,0.403123E-01,0.403879E-01,
24058 &0.403431E-01,0.403123E-01,0.496010E+00,0.141386E-01,0.506446E+00,
24059 &0.250772E+00,0.389186E-01,0.389971E-01,0.389501E-01,0.389186E-01,
24060 &0.461573E+00,0.142708E-01,0.494204E+00,0.242775E+00,0.375006E-01,
24061 &0.375815E-01,0.375327E-01,0.375006E-01,0.428979E+00,0.143074E-01,
24062 &0.481705E+00,0.234757E+00,0.360674E-01,0.361503E-01,0.361000E-01,
24063 &0.360674E-01,0.398246E+00,0.142598E-01,0.468990E+00,0.226741E+00,
24064 &0.346276E-01,0.347120E-01,0.346605E-01,0.346276E-01,0.369363E+00,
24065 &0.141385E-01,0.456098E+00,0.218750E+00,0.331887E-01,0.332743E-01,
24066 &0.332216E-01,0.331887E-01,0.342300E+00,0.139532E-01,0.443068E+00,
24067 &0.210804E+00,0.317576E-01,0.318440E-01,0.317905E-01,0.317576E-01,
24068 &0.317005E+00,0.137130E-01,0.000000E+00,0.000000E+00,0.000000E+00,
24069 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24070 &0.631458E+00,0.318714E+00,0.335640E-01,0.335640E-01,0.335640E-01/
24071 DATA (DL(K),K= 1446, 1530) /
24072 &0.335640E-01,0.686773E+00,0.346945E-17,0.620274E+00,0.310241E+00,
24073 &0.329311E-01,0.329377E-01,0.329337E-01,0.329311E-01,0.646559E+00,
24074 &0.135960E-02,0.608504E+00,0.301610E+00,0.322083E-01,0.322210E-01,
24075 &0.322133E-01,0.322083E-01,0.606503E+00,0.252820E-02,0.596205E+00,
24076 &0.292854E+00,0.314099E-01,0.314281E-01,0.314169E-01,0.314099E-01,
24077 &0.567134E+00,0.352543E-02,0.583429E+00,0.284002E+00,0.305470E-01,
24078 &0.305704E-01,0.305558E-01,0.305470E-01,0.528824E+00,0.436693E-02,
24079 &0.570223E+00,0.275080E+00,0.296307E-01,0.296586E-01,0.296411E-01,
24080 &0.296307E-01,0.491848E+00,0.506768E-02,0.556637E+00,0.266115E+00,
24081 &0.286709E-01,0.287030E-01,0.286827E-01,0.286709E-01,0.456422E+00,
24082 &0.564157E-02,0.542717E+00,0.257131E+00,0.276770E-01,0.277128E-01,
24083 &0.276900E-01,0.276770E-01,0.422697E+00,0.610148E-02,0.528511E+00,
24084 &0.248154E+00,0.266578E-01,0.266968E-01,0.266718E-01,0.266578E-01,
24085 &0.390771E+00,0.645942E-02,0.514062E+00,0.239205E+00,0.256210E-01,
24086 &0.256629E-01,0.256359E-01,0.256210E-01,0.360700E+00,0.672653E-02,
24087 &0.499417E+00,0.230307E+00,0.245741E-01,0.246185E-01,0.245896E-01,
24088 &0.245741E-01,0.332498E+00,0.691312E-02,0.484617E+00,0.221480E+00/
24089 DATA (DL(K),K= 1531, 1615) /
24090 &0.235237E-01,0.235701E-01,0.235397E-01,0.235237E-01,0.306153E+00,
24091 &0.702875E-02,0.469706E+00,0.212745E+00,0.224757E-01,0.225238E-01,
24092 &0.224921E-01,0.224757E-01,0.281624E+00,0.708222E-02,0.454725E+00,
24093 &0.204118E+00,0.214355E-01,0.214850E-01,0.214522E-01,0.214355E-01,
24094 &0.258855E+00,0.708159E-02,0.439713E+00,0.195618E+00,0.204079E-01,
24095 &0.204586E-01,0.204249E-01,0.204079E-01,0.237774E+00,0.703428E-02,
24096 &0.424709E+00,0.187259E+00,0.193972E-01,0.194486E-01,0.194142E-01,
24097 &0.193972E-01,0.218298E+00,0.694702E-02,0.409750E+00,0.179057E+00,
24098 &0.184069E-01,0.184588E-01,0.184239E-01,0.184069E-01,0.200339E+00,
24099 &0.682594E-02,0.394870E+00,0.171023E+00,0.174402E-01,0.174924E-01,
24100 &0.174571E-01,0.174402E-01,0.183804E+00,0.667657E-02,0.380104E+00,
24101 &0.163171E+00,0.164997E-01,0.165519E-01,0.165164E-01,0.164997E-01,
24102 &0.168600E+00,0.650389E-02,0.000000E+00,0.000000E+00,0.000000E+00,
24103 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24104 &0.619056E+00,0.288873E+00,0.218554E-01,0.218554E-01,0.218554E-01,
24105 &0.218554E-01,0.477010E+00,-.867362E-17,0.602890E+00,0.278444E+00,
24106 &0.211480E-01,0.211530E-01,0.211497E-01,0.211480E-01,0.440877E+00/
24107 DATA (DL(K),K= 1616, 1700) /
24108 &0.767466E-03,0.586431E+00,0.268081E+00,0.204081E-01,0.204175E-01,
24109 &0.204113E-01,0.204081E-01,0.406417E+00,0.141432E-02,0.569736E+00,
24110 &0.257807E+00,0.196446E-01,0.196581E-01,0.196491E-01,0.196446E-01,
24111 &0.373808E+00,0.195508E-02,0.552853E+00,0.247642E+00,0.188646E-01,
24112 &0.188816E-01,0.188701E-01,0.188646E-01,0.343145E+00,0.240123E-02,
24113 &0.535829E+00,0.237603E+00,0.180743E-01,0.180945E-01,0.180808E-01,
24114 &0.180743E-01,0.314460E+00,0.276332E-02,0.518710E+00,0.227710E+00,
24115 &0.172796E-01,0.173025E-01,0.172868E-01,0.172796E-01,0.287750E+00,
24116 &0.305100E-02,0.501539E+00,0.217977E+00,0.164854E-01,0.165108E-01,
24117 &0.164933E-01,0.164854E-01,0.262983E+00,0.327305E-02,0.484360E+00,
24118 &0.208420E+00,0.156964E-01,0.157239E-01,0.157049E-01,0.156964E-01,
24119 &0.240098E+00,0.343744E-02,0.467213E+00,0.199053E+00,0.149165E-01,
24120 &0.149457E-01,0.149254E-01,0.149165E-01,0.219021E+00,0.355144E-02,
24121 &0.450140E+00,0.189889E+00,0.141493E-01,0.141800E-01,0.141586E-01,
24122 &0.141493E-01,0.199660E+00,0.362164E-02,0.433177E+00,0.180939E+00,
24123 &0.133978E-01,0.134297E-01,0.134073E-01,0.133978E-01,0.181918E+00,
24124 &0.365401E-02,0.416362E+00,0.172214E+00,0.126646E-01,0.126974E-01/
24125 DATA (DL(K),K= 1701, 1785) /
24126 &0.126742E-01,0.126646E-01,0.165692E+00,0.365394E-02,0.399729E+00,
24127 &0.163725E+00,0.119518E-01,0.119853E-01,0.119615E-01,0.119518E-01,
24128 &0.150875E+00,0.362628E-02,0.383310E+00,0.155477E+00,0.112613E-01,
24129 &0.112952E-01,0.112711E-01,0.112613E-01,0.137364E+00,0.357539E-02,
24130 &0.367138E+00,0.147479E+00,0.105945E-01,0.106287E-01,0.106042E-01,
24131 &0.105945E-01,0.125056E+00,0.350515E-02,0.351239E+00,0.139737E+00,
24132 &0.995250E-02,0.998673E-02,0.996211E-02,0.995250E-02,0.113852E+00,
24133 &0.341903E-02,0.335641E+00,0.132253E+00,0.933610E-02,0.937024E-02,
24134 &0.934557E-02,0.933610E-02,0.103659E+00,0.332009E-02,0.320367E+00,
24135 &0.125033E+00,0.874584E-02,0.877973E-02,0.875514E-02,0.874584E-02,
24136 &0.943886E-01,0.321106E-02,0.000000E+00,0.000000E+00,0.000000E+00,
24137 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24138 &0.591114E+00,0.254807E+00,0.139531E-01,0.139531E-01,0.139531E-01,
24139 &0.139531E-01,0.326288E+00,0.000000E+00,0.571121E+00,0.243424E+00,
24140 &0.133325E-01,0.133362E-01,0.133336E-01,0.133325E-01,0.296956E+00,
24141 &0.429082E-03,0.551151E+00,0.232297E+00,0.127105E-01,0.127175E-01,
24142 &0.127126E-01,0.127105E-01,0.269811E+00,0.785137E-03,0.531253E+00/
24143 DATA (DL(K),K= 1786, 1870) /
24144 &0.221436E+00,0.120916E-01,0.121015E-01,0.120945E-01,0.120916E-01,
24145 &0.244803E+00,0.107790E-02,0.511467E+00,0.210850E+00,0.114794E-01,
24146 &0.114918E-01,0.114829E-01,0.114794E-01,0.221863E+00,0.131504E-02,
24147 &0.491833E+00,0.200545E+00,0.108767E-01,0.108913E-01,0.108808E-01,
24148 &0.108767E-01,0.200886E+00,0.150337E-02,0.472388E+00,0.190531E+00,
24149 &0.102861E-01,0.103027E-01,0.102907E-01,0.102861E-01,0.181762E+00,
24150 &0.164910E-02,0.453170E+00,0.180812E+00,0.970979E-02,0.972799E-02,
24151 &0.971477E-02,0.970979E-02,0.164371E+00,0.175777E-02,0.434213E+00,
24152 &0.171394E+00,0.914959E-02,0.916916E-02,0.915488E-02,0.914959E-02,
24153 &0.148589E+00,0.183434E-02,0.415548E+00,0.162282E+00,0.860700E-02,
24154 &0.862770E-02,0.861252E-02,0.860700E-02,0.134293E+00,0.188328E-02,
24155 &0.397208E+00,0.153479E+00,0.808323E-02,0.810484E-02,0.808891E-02,
24156 &0.808323E-02,0.121361E+00,0.190856E-02,0.379220E+00,0.144989E+00,
24157 &0.757922E-02,0.760152E-02,0.758501E-02,0.757922E-02,0.109676E+00,
24158 &0.191374E-02,0.361611E+00,0.136811E+00,0.709565E-02,0.711846E-02,
24159 &0.710150E-02,0.709565E-02,0.991261E-01,0.190199E-02,0.344406E+00,
24160 &0.128948E+00,0.663300E-02,0.665614E-02,0.663885E-02,0.663300E-02/
24161 DATA (DL(K),K= 1871, 1955) /
24162 &0.896059E-01,0.187610E-02,0.327627E+00,0.121398E+00,0.619152E-02,
24163 &0.621484E-02,0.619734E-02,0.619152E-02,0.810177E-01,0.183856E-02,
24164 &0.311292E+00,0.114161E+00,0.577130E-02,0.579466E-02,0.577706E-02,
24165 &0.577130E-02,0.732709E-01,0.179155E-02,0.295421E+00,0.107235E+00,
24166 &0.537228E-02,0.539554E-02,0.537794E-02,0.537228E-02,0.662824E-01,
24167 &0.173700E-02,0.280026E+00,0.100616E+00,0.499423E-02,0.501728E-02,
24168 &0.499977E-02,0.499423E-02,0.599766E-01,0.167658E-02,0.265121E+00,
24169 &0.943000E-01,0.463683E-02,0.465958E-02,0.464223E-02,0.463683E-02,
24170 &0.542848E-01,0.161174E-02,0.000000E+00,0.000000E+00,0.000000E+00,
24171 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24172 &0.551659E+00,0.219084E+00,0.867977E-02,0.867977E-02,0.867977E-02,
24173 &0.867977E-02,0.218587E+00,-.173472E-16,0.528947E+00,0.207536E+00,
24174 &0.819621E-02,0.819909E-02,0.819696E-02,0.819621E-02,0.196367E+00,
24175 &0.234843E-03,0.506575E+00,0.196391E+00,0.772540E-02,0.773082E-02,
24176 &0.772680E-02,0.772540E-02,0.176280E+00,0.427503E-03,0.484579E+00,
24177 &0.185646E+00,0.726876E-02,0.727639E-02,0.727069E-02,0.726876E-02,
24178 &0.158158E+00,0.583933E-03,0.462988E+00,0.175298E+00,0.682746E-02/
24179 DATA (DL(K),K= 1956, 2040) /
24180 &0.683702E-02,0.682985E-02,0.682746E-02,0.141851E+00,0.708874E-03,
24181 &0.441830E+00,0.165345E+00,0.640226E-02,0.641347E-02,0.640502E-02,
24182 &0.640226E-02,0.127203E+00,0.806409E-03,0.421129E+00,0.155783E+00,
24183 &0.599380E-02,0.600641E-02,0.599686E-02,0.599380E-02,0.114065E+00,
24184 &0.880249E-03,0.400912E+00,0.146609E+00,0.560252E-02,0.561629E-02,
24185 &0.560581E-02,0.560252E-02,0.102296E+00,0.933676E-03,0.381199E+00,
24186 &0.137819E+00,0.522870E-02,0.524342E-02,0.523217E-02,0.522870E-02,
24187 &0.917608E-01,0.969607E-03,0.362011E+00,0.129407E+00,0.487247E-02,
24188 &0.488796E-02,0.487607E-02,0.487247E-02,0.823356E-01,0.990632E-03,
24189 &0.343367E+00,0.121370E+00,0.453385E-02,0.454992E-02,0.453753E-02,
24190 &0.453385E-02,0.739054E-01,0.999042E-03,0.325282E+00,0.113700E+00,
24191 &0.421272E-02,0.422921E-02,0.421644E-02,0.421272E-02,0.663651E-01,
24192 &0.996863E-03,0.307770E+00,0.106393E+00,0.390887E-02,0.392563E-02,
24193 &0.391260E-02,0.390887E-02,0.596195E-01,0.985881E-03,0.290841E+00,
24194 &0.994399E-01,0.362199E-02,0.363889E-02,0.362570E-02,0.362199E-02,
24195 &0.535826E-01,0.967664E-03,0.274506E+00,0.928343E-01,0.335170E-02,
24196 &0.336862E-02,0.335536E-02,0.335170E-02,0.481769E-01,0.943587E-03/
24197 DATA (DL(K),K= 2041, 2125) /
24198 &0.258771E+00,0.865679E-01,0.309756E-02,0.311439E-02,0.310114E-02,
24199 &0.309756E-02,0.433336E-01,0.914850E-03,0.243639E+00,0.806321E-01,
24200 &0.285905E-02,0.287571E-02,0.286255E-02,0.285905E-02,0.389912E-01,
24201 &0.882497E-03,0.229113E+00,0.750177E-01,0.263565E-02,0.265205E-02,
24202 &0.263905E-02,0.263565E-02,0.350948E-01,0.847432E-03,0.215193E+00,
24203 &0.697152E-01,0.242677E-02,0.244285E-02,0.243005E-02,0.242677E-02,
24204 &0.315960E-01,0.810432E-03,0.000000E+00,0.000000E+00,0.000000E+00,
24205 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24206 &0.503850E+00,0.183581E+00,0.522815E-02,0.522815E-02,0.522815E-02,
24207 &0.522815E-02,0.142635E+00,0.123599E-16,0.479478E+00,0.172477E+00,
24208 &0.488093E-02,0.488328E-02,0.488147E-02,0.488093E-02,0.126767E+00,
24209 &0.124505E-03,0.455750E+00,0.161879E+00,0.455054E-02,0.455493E-02,
24210 &0.455153E-02,0.455054E-02,0.112695E+00,0.225968E-03,0.432681E+00,
24211 &0.151771E+00,0.423664E-02,0.424278E-02,0.423800E-02,0.423664E-02,
24212 &0.100212E+00,0.307702E-03,0.410286E+00,0.142140E+00,0.393907E-02,
24213 &0.394671E-02,0.394073E-02,0.393907E-02,0.891488E-01,0.372395E-03,
24214 &0.388577E+00,0.132974E+00,0.365743E-02,0.366634E-02,0.365934E-02/
24215 DATA (DL(K),K= 2126, 2210) /
24216 &0.365743E-02,0.793490E-01,0.422302E-03,0.367563E+00,0.124259E+00,
24217 &0.339138E-02,0.340133E-02,0.339347E-02,0.339138E-02,0.706688E-01,
24218 &0.459484E-03,0.347256E+00,0.115984E+00,0.314049E-02,0.315129E-02,
24219 &0.314273E-02,0.314049E-02,0.629792E-01,0.485762E-03,0.327660E+00,
24220 &0.108136E+00,0.290433E-02,0.291580E-02,0.290667E-02,0.290433E-02,
24221 &0.561642E-01,0.502744E-03,0.308782E+00,0.100701E+00,0.268243E-02,
24222 &0.269440E-02,0.268483E-02,0.268243E-02,0.501207E-01,0.511853E-03,
24223 &0.290625E+00,0.936693E-01,0.247429E-02,0.248663E-02,0.247672E-02,
24224 &0.247429E-02,0.447569E-01,0.514346E-03,0.273189E+00,0.870261E-01,
24225 &0.227939E-02,0.229197E-02,0.228184E-02,0.227939E-02,0.399920E-01,
24226 &0.511328E-03,0.256475E+00,0.807592E-01,0.209722E-02,0.210991E-02,
24227 &0.209965E-02,0.209722E-02,0.357547E-01,0.503769E-03,0.240478E+00,
24228 &0.748555E-01,0.192721E-02,0.193992E-02,0.192961E-02,0.192721E-02,
24229 &0.319825E-01,0.492518E-03,0.225194E+00,0.693019E-01,0.176883E-02,
24230 &0.178147E-02,0.177117E-02,0.176883E-02,0.286209E-01,0.478318E-03,
24231 &0.210615E+00,0.640851E-01,0.162151E-02,0.163400E-02,0.162379E-02,
24232 &0.162151E-02,0.256219E-01,0.461813E-03,0.196733E+00,0.591917E-01/
24233 DATA (DL(K),K= 2211, 2295) /
24234 &0.148471E-02,0.149698E-02,0.148691E-02,0.148471E-02,0.229436E-01,
24235 &0.443561E-03,0.183536E+00,0.546085E-01,0.135786E-02,0.136986E-02,
24236 &0.135998E-02,0.135786E-02,0.205496E-01,0.424043E-03,0.171011E+00,
24237 &0.503219E-01,0.124042E-02,0.125211E-02,0.124246E-02,0.124042E-02,
24238 &0.184079E-01,0.403672E-03,0.000000E+00,0.000000E+00,0.000000E+00,
24239 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24240 &0.450310E+00,0.149685E+00,0.302765E-02,0.302765E-02,0.302765E-02,
24241 &0.302765E-02,0.901099E-01,-.108420E-17,0.425282E+00,0.139479E+00,
24242 &0.279499E-02,0.279691E-02,0.279537E-02,0.279499E-02,0.794239E-01,
24243 &0.632140E-04,0.401169E+00,0.129837E+00,0.257801E-02,0.258157E-02,
24244 &0.257870E-02,0.257801E-02,0.700941E-01,0.114711E-03,0.377966E+00,
24245 &0.120733E+00,0.237556E-02,0.238052E-02,0.237650E-02,0.237556E-02,
24246 &0.619270E-01,0.156107E-03,0.355668E+00,0.112145E+00,0.218688E-02,
24247 &0.219301E-02,0.218802E-02,0.218688E-02,0.547717E-01,0.188777E-03,
24248 &0.334269E+00,0.104052E+00,0.201113E-02,0.201823E-02,0.201243E-02,
24249 &0.201113E-02,0.484974E-01,0.213848E-03,0.313762E+00,0.964335E-01,
24250 &0.184758E-02,0.185546E-02,0.184900E-02,0.184758E-02,0.429879E-01/
24251 DATA (DL(K),K= 2296, 2380) /
24252 &0.232367E-03,0.294139E+00,0.892696E-01,0.169553E-02,0.170402E-02,
24253 &0.169703E-02,0.169553E-02,0.381432E-01,0.245270E-03,0.275389E+00,
24254 &0.825414E-01,0.155431E-02,0.156326E-02,0.155586E-02,0.155431E-02,
24255 &0.338762E-01,0.253383E-03,0.257502E+00,0.762303E-01,0.142329E-02,
24256 &0.143258E-02,0.142487E-02,0.142329E-02,0.301119E-01,0.257441E-03,
24257 &0.240464E+00,0.703180E-01,0.130188E-02,0.131138E-02,0.130347E-02,
24258 &0.130188E-02,0.267853E-01,0.258098E-03,0.224262E+00,0.647867E-01,
24259 &0.118950E-02,0.119912E-02,0.119108E-02,0.118950E-02,0.238409E-01,
24260 &0.255929E-03,0.208879E+00,0.596190E-01,0.108562E-02,0.109526E-02,
24261 &0.108717E-02,0.108562E-02,0.212308E-01,0.251442E-03,0.194298E+00,
24262 &0.547975E-01,0.989698E-03,0.999283E-03,0.991221E-03,0.989698E-03,
24263 &0.189136E-01,0.245082E-03,0.180499E+00,0.503054E-01,0.901248E-03,
24264 &0.910711E-03,0.902726E-03,0.901248E-03,0.168537E-01,0.237238E-03,
24265 &0.167463E+00,0.461263E-01,0.819789E-03,0.829074E-03,0.821215E-03,
24266 &0.819789E-03,0.150206E-01,0.228250E-03,0.155167E+00,0.422438E-01,
24267 &0.744866E-03,0.753925E-03,0.746234E-03,0.744866E-03,0.133878E-01,
24268 &0.218412E-03,0.143590E+00,0.386421E-01,0.676043E-03,0.684836E-03/
24269 DATA (DL(K),K= 2381, 2465) /
24270 &0.677349E-03,0.676043E-03,0.119320E-01,0.207976E-03,0.132706E+00,
24271 &0.353058E-01,0.612907E-03,0.621403E-03,0.614147E-03,0.612907E-03,
24272 &0.106334E-01,0.197159E-03,0.000000E+00,0.000000E+00,0.000000E+00,
24273 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24274 &0.393307E+00,0.118409E+00,0.167124E-02,0.167124E-02,0.167124E-02,
24275 &0.167124E-02,0.547140E-01,0.433681E-17,0.368555E+00,0.109414E+00,
24276 &0.152547E-02,0.152705E-02,0.152573E-02,0.152547E-02,0.479708E-01,
24277 &0.303147E-04,0.344946E+00,0.101001E+00,0.139202E-02,0.139494E-02,
24278 &0.139249E-02,0.139202E-02,0.421517E-01,0.552185E-04,0.322450E+00,
24279 &0.931345E-01,0.126960E-02,0.127363E-02,0.127024E-02,0.126960E-02,
24280 &0.371043E-01,0.753524E-04,0.301043E+00,0.857854E-01,0.115731E-02,
24281 &0.116225E-02,0.115808E-02,0.115731E-02,0.327131E-01,0.913172E-04,
24282 &0.280698E+00,0.789267E-01,0.105427E-02,0.105995E-02,0.105514E-02,
24283 &0.105427E-02,0.288844E-01,0.103605E-03,0.261390E+00,0.725323E-01,
24284 &0.959726E-03,0.965979E-03,0.960659E-03,0.959726E-03,0.255366E-01,
24285 &0.112688E-03,0.243091E+00,0.665774E-01,0.872987E-03,0.879676E-03,
24286 &0.873966E-03,0.872987E-03,0.226017E-01,0.119000E-03,0.225775E+00/
24287 DATA (DL(K),K= 2466, 2550) /
24288 &0.610385E-01,0.793435E-03,0.800438E-03,0.794441E-03,0.793435E-03,
24289 &0.200219E-01,0.122931E-03,0.209414E+00,0.558928E-01,0.720508E-03,
24290 &0.727716E-03,0.721524E-03,0.720508E-03,0.177490E-01,0.124835E-03,
24291 &0.193979E+00,0.511187E-01,0.653691E-03,0.661011E-03,0.654703E-03,
24292 &0.653691E-03,0.157425E-01,0.125031E-03,0.179441E+00,0.466950E-01,
24293 &0.592513E-03,0.599863E-03,0.593511E-03,0.592513E-03,0.139674E-01,
24294 &0.123805E-03,0.165770E+00,0.426018E-01,0.536539E-03,0.543850E-03,
24295 &0.537513E-03,0.536539E-03,0.123945E-01,0.121411E-03,0.152935E+00,
24296 &0.388195E-01,0.485370E-03,0.492584E-03,0.486314E-03,0.485370E-03,
24297 &0.109993E-01,0.118076E-03,0.140905E+00,0.353295E-01,0.438636E-03,
24298 &0.445702E-03,0.439543E-03,0.438636E-03,0.976027E-02,0.113999E-03,
24299 &0.129648E+00,0.321137E-01,0.395992E-03,0.402871E-03,0.396859E-03,
24300 &0.395992E-03,0.865895E-02,0.109353E-03,0.119131E+00,0.291550E-01,
24301 &0.357120E-03,0.363779E-03,0.357945E-03,0.357120E-03,0.767960E-02,
24302 &0.104292E-03,0.109323E+00,0.264366E-01,0.321725E-03,0.328139E-03,
24303 &0.322505E-03,0.321725E-03,0.680866E-02,0.989468E-04,0.100191E+00,
24304 &0.239428E-01,0.289531E-03,0.295679E-03,0.290266E-03,0.289531E-03/
24305 DATA (DL(K),K= 2551, 2635) /
24306 &0.603390E-02,0.934295E-04,0.000000E+00,0.000000E+00,0.000000E+00,
24307 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24308 &0.334851E+00,0.904666E-01,0.869706E-03,0.869706E-03,0.869706E-03,
24309 &0.869706E-03,0.316365E-01,-.311708E-17,0.311223E+00,0.828706E-01,
24310 &0.784673E-03,0.785968E-03,0.784847E-03,0.784673E-03,0.277037E-01,
24311 &0.134749E-04,0.288910E+00,0.758361E-01,0.708234E-03,0.710597E-03,
24312 &0.708543E-03,0.708234E-03,0.243298E-01,0.247881E-04,0.267855E+00,
24313 &0.693222E-01,0.639256E-03,0.642491E-03,0.639671E-03,0.639256E-03,
24314 &0.214125E-01,0.340882E-04,0.248015E+00,0.632964E-01,0.576953E-03,
24315 &0.580887E-03,0.577448E-03,0.576953E-03,0.188764E-01,0.415701E-04,
24316 &0.229343E+00,0.577274E-01,0.520615E-03,0.525096E-03,0.521167E-03,
24317 &0.520615E-03,0.166642E-01,0.474027E-04,0.211794E+00,0.525860E-01,
24318 &0.469624E-03,0.474520E-03,0.470215E-03,0.469624E-03,0.147265E-01,
24319 &0.517615E-04,0.195325E+00,0.478447E-01,0.423445E-03,0.428640E-03,
24320 &0.424060E-03,0.423445E-03,0.130234E-01,0.548213E-04,0.179891E+00,
24321 &0.434776E-01,0.381606E-03,0.387001E-03,0.382232E-03,0.381606E-03,
24322 &0.115226E-01,0.567474E-04,0.165449E+00,0.394601E-01,0.343691E-03/
24323 DATA (DL(K),K= 2636, 2720) /
24324 &0.349200E-03,0.344317E-03,0.343691E-03,0.101965E-01,0.576952E-04,
24325 &0.151958E+00,0.357691E-01,0.309329E-03,0.314879E-03,0.309948E-03,
24326 &0.309329E-03,0.902217E-02,0.578101E-04,0.139374E+00,0.323826E-01,
24327 &0.278192E-03,0.283721E-03,0.278796E-03,0.278192E-03,0.798131E-02,
24328 &0.572266E-04,0.127655E+00,0.292797E-01,0.249984E-03,0.255440E-03,
24329 &0.250569E-03,0.249984E-03,0.705796E-02,0.560672E-04,0.116760E+00,
24330 &0.264406E-01,0.224440E-03,0.229782E-03,0.225002E-03,0.224440E-03,
24331 &0.623793E-02,0.544420E-04,0.106647E+00,0.238467E-01,0.201321E-03,
24332 &0.206513E-03,0.201856E-03,0.201321E-03,0.550962E-02,0.524504E-04,
24333 &0.972762E-01,0.214802E-01,0.180411E-03,0.185425E-03,0.180918E-03,
24334 &0.180411E-03,0.486321E-02,0.501804E-04,0.886073E-01,0.193242E-01,
24335 &0.161512E-03,0.166328E-03,0.161990E-03,0.161512E-03,0.428946E-02,
24336 &0.477087E-04,0.806013E-01,0.173629E-01,0.144446E-03,0.149048E-03,
24337 &0.144894E-03,0.144446E-03,0.378030E-02,0.451020E-04,0.732197E-01,
24338 &0.155814E-01,0.129049E-03,0.133425E-03,0.129467E-03,0.129049E-03,
24339 &0.332897E-02,0.424179E-04,0.000000E+00,0.000000E+00,0.000000E+00,
24340 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
24341 DATA (DL(K),K= 2721, 2805) /
24342 &0.276761E+00,0.663170E-01,0.420483E-03,0.420483E-03,0.420483E-03,
24343 &0.420483E-03,0.172075E-01,0.418773E-17,0.255003E+00,0.601925E-01,
24344 &0.374768E-03,0.375776E-03,0.374876E-03,0.374768E-03,0.151410E-01,
24345 &0.540038E-05,0.234664E+00,0.545789E-01,0.334420E-03,0.336252E-03,
24346 &0.334612E-03,0.334420E-03,0.133594E-01,0.101360E-04,0.215665E+00,
24347 &0.494328E-01,0.298611E-03,0.301108E-03,0.298867E-03,0.298611E-03,
24348 &0.118079E-01,0.141555E-04,0.197941E+00,0.447203E-01,0.266766E-03,
24349 &0.269787E-03,0.267068E-03,0.266766E-03,0.104461E-01,0.174750E-04,
24350 &0.181428E+00,0.404089E-01,0.238391E-03,0.241815E-03,0.238726E-03,
24351 &0.238391E-03,0.924609E-02,0.201244E-04,0.166064E+00,0.364687E-01,
24352 &0.213061E-03,0.216782E-03,0.213417E-03,0.213061E-03,0.818507E-02,
24353 &0.221467E-04,0.151790E+00,0.328719E-01,0.190418E-03,0.194343E-03,
24354 &0.190785E-03,0.190418E-03,0.724366E-02,0.235974E-04,0.138548E+00,
24355 &0.295925E-01,0.170150E-03,0.174202E-03,0.170521E-03,0.170150E-03,
24356 &0.640614E-02,0.245354E-04,0.126282E+00,0.266063E-01,0.151991E-03,
24357 &0.156104E-03,0.152359E-03,0.151991E-03,0.566089E-02,0.250221E-04,
24358 &0.114939E+00,0.238907E-01,0.135710E-03,0.139827E-03,0.136071E-03/
24359 DATA (DL(K),K= 2806, 2890) /
24360 &0.135710E-03,0.499773E-02,0.251191E-04,0.104465E+00,0.214245E-01,
24361 &0.121106E-03,0.125180E-03,0.121455E-03,0.121106E-03,0.440691E-02,
24362 &0.248850E-04,0.948101E-01,0.191879E-01,0.108002E-03,0.111994E-03,
24363 &0.108337E-03,0.108002E-03,0.388094E-02,0.243760E-04,0.859247E-01,
24364 &0.171625E-01,0.962435E-04,0.100124E-03,0.965624E-04,0.962435E-04,
24365 &0.341379E-02,0.236445E-04,0.777613E-01,0.153309E-01,0.856948E-04,
24366 &0.894394E-04,0.859960E-04,0.856948E-04,0.299910E-02,0.227378E-04,
24367 &0.702736E-01,0.136770E-01,0.762337E-04,0.798235E-04,0.765166E-04,
24368 &0.762337E-04,0.263116E-02,0.216984E-04,0.634174E-01,0.121859E-01,
24369 &0.677528E-04,0.711742E-04,0.680169E-04,0.677528E-04,0.230551E-02,
24370 &0.205642E-04,0.571500E-01,0.108434E-01,0.601554E-04,0.633990E-04,
24371 &0.604008E-04,0.601554E-04,0.201791E-02,0.193681E-04,0.514305E-01,
24372 &0.963651E-02,0.533545E-04,0.564148E-04,0.535814E-04,0.533545E-04,
24373 &0.176404E-02,0.181381E-04,0.000000E+00,0.000000E+00,0.000000E+00,
24374 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24375 &0.220700E+00,0.461964E-01,0.185072E-03,0.185072E-03,0.185072E-03,
24376 &0.185072E-03,0.865568E-02,-.294090E-17,0.201438E+00,0.415162E-01/
24377 DATA (DL(K),K= 2891, 2975) /
24378 &0.162774E-03,0.163610E-03,0.162842E-03,0.162774E-03,0.772611E-02,
24379 &0.184134E-05,0.183625E+00,0.372730E-01,0.143469E-03,0.144974E-03,
24380 &0.143588E-03,0.143469E-03,0.690038E-02,0.359959E-05,0.167162E+00,
24381 &0.334245E-01,0.126634E-03,0.128666E-03,0.126791E-03,0.126634E-03,
24382 &0.616000E-02,0.518075E-05,0.151966E+00,0.299378E-01,0.111904E-03,
24383 &0.114340E-03,0.112088E-03,0.111904E-03,0.549219E-02,0.654232E-05,
24384 &0.137959E+00,0.267821E-01,0.989836E-04,0.101716E-03,0.991845E-04,
24385 &0.989836E-04,0.488896E-02,0.767008E-05,0.125065E+00,0.239289E-01,
24386 &0.876157E-04,0.905559E-04,0.878269E-04,0.876157E-04,0.434253E-02,
24387 &0.855860E-05,0.113213E+00,0.213524E-01,0.775899E-04,0.806611E-04,
24388 &0.778055E-04,0.775899E-04,0.384886E-02,0.921640E-05,0.102335E+00,
24389 &0.190285E-01,0.687292E-04,0.718676E-04,0.689446E-04,0.687292E-04,
24390 &0.340422E-02,0.965961E-05,0.923671E-01,0.169353E-01,0.608829E-04,
24391 &0.640353E-04,0.610944E-04,0.608829E-04,0.300332E-02,0.990752E-05,
24392 &0.832476E-01,0.150523E-01,0.539242E-04,0.570473E-04,0.541291E-04,
24393 &0.539242E-04,0.264288E-02,0.998320E-05,0.749179E-01,0.133608E-01,
24394 &0.477459E-04,0.508046E-04,0.479422E-04,0.477459E-04,0.232088E-02/
24395 DATA (DL(K),K= 2976, 3060) /
24396 &0.991147E-05,0.673221E-01,0.118435E-01,0.422554E-04,0.452220E-04,
24397 &0.424417E-04,0.422554E-04,0.203376E-02,0.971603E-05,0.604073E-01,
24398 &0.104845E-01,0.373730E-04,0.402263E-04,0.375483E-04,0.373730E-04,
24399 &0.177791E-02,0.941959E-05,0.541231E-01,0.926900E-02,0.330304E-04,
24400 &0.357544E-04,0.331943E-04,0.330304E-04,0.155117E-02,0.904408E-05,
24401 &0.484216E-01,0.818347E-02,0.291681E-04,0.317517E-04,0.293202E-04,
24402 &0.291681E-04,0.135108E-02,0.860921E-05,0.432578E-01,0.721549E-02,
24403 &0.257333E-04,0.281694E-04,0.258738E-04,0.257333E-04,0.117463E-02,
24404 &0.813214E-05,0.385889E-01,0.635362E-02,0.226802E-04,0.249648E-04,
24405 &0.228093E-04,0.226802E-04,0.101941E-02,0.762814E-05,0.343746E-01,
24406 &0.558739E-02,0.199682E-04,0.221003E-04,0.200863E-04,0.199682E-04,
24407 &0.883469E-03,0.711035E-05,0.000000E+00,0.000000E+00,0.000000E+00,
24408 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24409 &0.168205E+00,0.301419E-01,0.719932E-04,0.719932E-04,0.719932E-04,
24410 &0.719932E-04,0.392825E-02,-.205998E-17,0.151922E+00,0.267932E-01,
24411 &0.623634E-04,0.630456E-04,0.624028E-04,0.623634E-04,0.361412E-02,
24412 &0.457084E-06,0.137042E+00,0.237932E-01,0.541981E-04,0.554098E-04/
24413 DATA (DL(K),K= 3061, 3145) /
24414 &0.542663E-04,0.541981E-04,0.330342E-02,0.989813E-06,0.123446E+00,
24415 &0.211038E-01,0.472163E-04,0.488314E-04,0.473050E-04,0.472163E-04,
24416 &0.300140E-02,0.152631E-05,0.111042E+00,0.186954E-01,0.412159E-04,
24417 &0.431273E-04,0.413184E-04,0.412159E-04,0.270826E-02,0.202092E-05,
24418 &0.997395E-01,0.165410E-01,0.360433E-04,0.381615E-04,0.361542E-04,
24419 &0.360433E-04,0.242968E-02,0.245400E-05,0.894558E-01,0.146159E-01,
24420 &0.315670E-04,0.338178E-04,0.316822E-04,0.315670E-04,0.216928E-02,
24421 &0.281218E-05,0.801130E-01,0.128978E-01,0.276779E-04,0.300002E-04,
24422 &0.277940E-04,0.276779E-04,0.192603E-02,0.308878E-05,0.716379E-01,
24423 &0.113663E-01,0.242878E-04,0.266317E-04,0.244024E-04,0.242878E-04,
24424 &0.170100E-02,0.328451E-05,0.639623E-01,0.100031E-01,0.213246E-04,
24425 &0.236502E-04,0.214357E-04,0.213246E-04,0.149649E-02,0.340483E-05,
24426 &0.570222E-01,0.879131E-02,0.187277E-04,0.210033E-04,0.188341E-04,
24427 &0.187277E-04,0.131163E-02,0.345656E-05,0.507574E-01,0.771565E-02,
24428 &0.164465E-04,0.186476E-04,0.165471E-04,0.164465E-04,0.114469E-02,
24429 &0.344782E-05,0.451118E-01,0.676223E-02,0.144396E-04,0.165480E-04,
24430 &0.145339E-04,0.144396E-04,0.995649E-03,0.338831E-05,0.400330E-01/
24431 DATA (DL(K),K= 3146, 3230) /
24432 &0.591841E-02,0.126720E-04,0.146744E-04,0.127597E-04,0.126720E-04,
24433 &0.863829E-03,0.328754E-05,0.354720E-01,0.517273E-02,0.111137E-04,
24434 &0.130013E-04,0.111946E-04,0.111137E-04,0.747293E-03,0.315403E-05,
24435 &0.313830E-01,0.451477E-02,0.973915E-05,0.115067E-04,0.981339E-05,
24436 &0.973915E-05,0.644664E-03,0.299600E-05,0.277237E-01,0.393511E-02,
24437 &0.852687E-05,0.101721E-04,0.859457E-05,0.852687E-05,0.555034E-03,
24438 &0.282099E-05,0.244545E-01,0.342521E-02,0.745784E-05,0.898076E-05,
24439 &0.751926E-05,0.745784E-05,0.476998E-03,0.263530E-05,0.215390E-01,
24440 &0.297737E-02,0.651555E-05,0.791817E-05,0.657100E-05,0.651555E-05,
24441 &0.409096E-03,0.244427E-05,0.000000E+00,0.000000E+00,0.000000E+00,
24442 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24443 &0.120694E+00,0.180081E-01,0.236444E-04,0.236444E-04,0.236444E-04,
24444 &0.236444E-04,0.154817E-02,0.416656E-17,0.107713E+00,0.158098E-01,
24445 &0.200945E-04,0.206098E-04,0.201146E-04,0.200945E-04,0.151249E-02,
24446 &0.192118E-07,0.960063E-01,0.138667E-01,0.171552E-04,0.180593E-04,
24447 &0.171894E-04,0.171552E-04,0.143574E-02,0.116516E-06,0.854477E-01,
24448 &0.121473E-01,0.146986E-04,0.158894E-04,0.147425E-04,0.146986E-04/
24449 DATA (DL(K),K= 3231, 3315) /
24450 &0.133744E-02,0.251060E-06,0.759386E-01,0.106275E-01,0.126329E-04,
24451 &0.140252E-04,0.126830E-04,0.126329E-04,0.122900E-02,0.395272E-06,
24452 &0.673865E-01,0.928577E-02,0.108901E-04,0.124142E-04,0.109436E-04,
24453 &0.108901E-04,0.111367E-02,0.535145E-06,0.597062E-01,0.810254E-02,
24454 &0.941160E-05,0.110108E-04,0.946648E-05,0.941160E-05,0.996785E-03,
24455 &0.659421E-06,0.528194E-01,0.706039E-02,0.815165E-05,0.978016E-05,
24456 &0.820627E-05,0.815165E-05,0.885152E-03,0.762600E-06,0.466540E-01,
24457 &0.614371E-02,0.707299E-05,0.869464E-05,0.712616E-05,0.707299E-05,
24458 &0.780484E-03,0.842072E-06,0.411433E-01,0.533850E-02,0.614470E-05,
24459 &0.773135E-05,0.619559E-05,0.614470E-05,0.682563E-03,0.896683E-06,
24460 &0.362261E-01,0.463223E-02,0.534297E-05,0.687330E-05,0.539102E-05,
24461 &0.534297E-05,0.593317E-03,0.928176E-06,0.318459E-01,0.401364E-02,
24462 &0.464848E-05,0.610690E-05,0.469333E-05,0.464848E-05,0.513720E-03,
24463 &0.939174E-06,0.279510E-01,0.347266E-02,0.404483E-05,0.542054E-05,
24464 &0.408628E-05,0.404483E-05,0.442713E-03,0.932117E-06,0.244935E-01,
24465 &0.300029E-02,0.351893E-05,0.480507E-05,0.355692E-05,0.351893E-05,
24466 &0.379744E-03,0.910085E-06,0.214299E-01,0.258845E-02,0.306021E-05/
24467 DATA (DL(K),K= 3316, 3400) /
24468 &0.425313E-05,0.309476E-05,0.306021E-05,0.324785E-03,0.876365E-06,
24469 &0.187200E-01,0.222996E-02,0.265958E-05,0.375823E-05,0.269081E-05,
24470 &0.265958E-05,0.277080E-03,0.833755E-06,0.163273E-01,0.191840E-02,
24471 &0.230942E-05,0.331477E-05,0.233747E-05,0.230942E-05,0.235661E-03,
24472 &0.784780E-06,0.142185E-01,0.164805E-02,0.200337E-05,0.291797E-05,
24473 &0.202844E-05,0.200337E-05,0.199949E-03,0.731774E-06,0.123631E-01,
24474 &0.141382E-02,0.173596E-05,0.256351E-05,0.175824E-05,0.173596E-05,
24475 &0.169376E-03,0.676674E-06,0.000000E+00,0.000000E+00,0.000000E+00,
24476 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24477 &0.794823E-01,0.948208E-02,0.607312E-05,0.607312E-05,0.607312E-05,
24478 &0.607312E-05,0.497062E-03,-.140523E-17,0.699344E-01,0.820355E-02,
24479 &0.500852E-05,0.538347E-05,0.501731E-05,0.500852E-05,0.542262E-03,
24480 &-.714686E-07,0.614560E-01,0.709106E-02,0.415227E-05,0.479898E-05,
24481 &0.416702E-05,0.415227E-05,0.549985E-03,-.960102E-07,0.539240E-01,
24482 &0.612155E-02,0.345977E-05,0.429563E-05,0.347839E-05,0.345977E-05,
24483 &0.531288E-03,-.894946E-07,0.472426E-01,0.527757E-02,0.289508E-05,
24484 &0.385164E-05,0.291595E-05,0.289508E-05,0.495120E-03,-.668594E-07/
24485 DATA (DL(K),K= 3401, 3485) /
24486 &0.413245E-01,0.454380E-02,0.243524E-05,0.345851E-05,0.245713E-05,
24487 &0.243524E-05,0.452156E-03,-.338861E-07,0.360903E-01,0.390658E-02,
24488 &0.205923E-05,0.310726E-05,0.208123E-05,0.205923E-05,0.406686E-03,
24489 &0.329349E-08,0.314681E-01,0.335393E-02,0.174861E-05,0.278918E-05,
24490 &0.177007E-05,0.174861E-05,0.359402E-03,0.387747E-07,0.273932E-01,
24491 &0.287528E-02,0.149082E-05,0.250013E-05,0.151127E-05,0.149082E-05,
24492 &0.313779E-03,0.705560E-07,0.238068E-01,0.246132E-02,0.127582E-05,
24493 &0.223699E-05,0.129498E-05,0.127582E-05,0.272195E-03,0.975744E-07,
24494 &0.206558E-01,0.210383E-02,0.109488E-05,0.199657E-05,0.111257E-05,
24495 &0.109488E-05,0.234227E-03,0.118651E-06,0.178921E-01,0.179558E-02,
24496 &0.941584E-06,0.177694E-05,0.957733E-06,0.941584E-06,0.199907E-03,
24497 &0.133780E-06,0.154726E-01,0.153020E-02,0.811157E-06,0.157680E-05,
24498 &0.825743E-06,0.811157E-06,0.169849E-03,0.143581E-06,0.133582E-01,
24499 &0.130209E-02,0.699567E-06,0.139481E-05,0.712624E-06,0.699567E-06,
24500 &0.143794E-03,0.148591E-06,0.115137E-01,0.110634E-02,0.603631E-06,
24501 &0.122977E-05,0.615228E-06,0.603631E-06,0.121163E-03,0.149477E-06,
24502 &0.990774E-02,0.938615E-03,0.520920E-06,0.108072E-05,0.531148E-06/
24503 DATA (DL(K),K= 3486, 3570) /
24504 &0.520920E-06,0.101725E-03,0.147055E-06,0.851194E-02,0.795146E-03,
24505 &0.449441E-06,0.946634E-06,0.458405E-06,0.449441E-06,0.852238E-04,
24506 &0.142064E-06,0.730103E-02,0.672622E-03,0.387542E-06,0.826497E-06,
24507 &0.395353E-06,0.387542E-06,0.712290E-04,0.135149E-06,0.625244E-02,
24508 &0.568155E-03,0.333888E-06,0.719316E-06,0.340658E-06,0.333888E-06,
24509 &0.593824E-04,0.126902E-06,0.000000E+00,0.000000E+00,0.000000E+00,
24510 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24511 &0.457819E-01,0.409492E-02,0.105702E-05,0.105702E-05,0.105702E-05,
24512 &0.105702E-05,0.115350E-03,0.265810E-18,0.395724E-01,0.347873E-02,
24513 &0.812397E-06,0.103880E-05,0.815187E-06,0.812397E-06,0.160406E-03,
24514 &-.555147E-07,0.341639E-01,0.295295E-02,0.627904E-06,0.987449E-06,
24515 &0.632305E-06,0.627904E-06,0.174490E-03,-.847266E-07,0.294481E-01,
24516 &0.250329E-02,0.490075E-06,0.920197E-06,0.495305E-06,0.490075E-06,
24517 &0.174490E-03,-.944763E-07,0.253423E-01,0.211912E-02,0.387225E-06,
24518 &0.845257E-06,0.392760E-06,0.387225E-06,0.167111E-03,-.916775E-07,
24519 &0.217735E-01,0.179138E-02,0.309989E-06,0.766697E-06,0.315473E-06,
24520 &0.309989E-06,0.152540E-03,-.819158E-07,0.186760E-01,0.151211E-02/
24521 DATA (DL(K),K= 3571, 3655) /
24522 &0.252109E-06,0.688927E-06,0.257316E-06,0.252109E-06,0.135295E-03,
24523 &-.682145E-07,0.159921E-01,0.127447E-02,0.208612E-06,0.614302E-06,
24524 &0.213410E-06,0.208612E-06,0.118648E-03,-.528734E-07,0.136704E-01,
24525 &0.107254E-02,0.175203E-06,0.543807E-06,0.179526E-06,0.175203E-06,
24526 &0.102484E-03,-.379748E-07,0.116656E-01,0.901214E-03,0.149064E-06,
24527 &0.478363E-06,0.152890E-06,0.149064E-06,0.871530E-04,-.245007E-07,
24528 &0.993760E-02,0.756074E-03,0.128274E-06,0.418496E-06,0.131610E-06,
24529 &0.128274E-06,0.735682E-04,-.128491E-07,0.845081E-02,0.633315E-03,
24530 &0.111313E-06,0.364260E-06,0.114187E-06,0.111313E-06,0.617706E-04,
24531 &-.327698E-08,0.717398E-02,0.529654E-03,0.971373E-07,0.315568E-06,
24532 &0.995871E-07,0.971373E-07,0.514764E-04,0.421954E-08,0.607950E-02,
24533 &0.442265E-03,0.850687E-07,0.272228E-06,0.871375E-07,0.850687E-07,
24534 &0.426580E-04,0.982709E-08,0.514311E-02,0.368716E-03,0.746164E-07,
24535 &0.233927E-06,0.763489E-07,0.746164E-07,0.352463E-04,0.137715E-07,
24536 &0.434349E-02,0.306920E-03,0.654439E-07,0.200291E-06,0.668838E-07,
24537 &0.654439E-07,0.290260E-04,0.163078E-07,0.366196E-02,0.255085E-03,
24538 &0.573307E-07,0.170932E-06,0.585192E-07,0.573307E-07,0.238196E-04/
24539 DATA (DL(K),K= 3656, 3740) /
24540 &0.177037E-07,0.308217E-02,0.211681E-03,0.501185E-07,0.145441E-06,
24541 &0.510931E-07,0.501185E-07,0.195033E-04,0.182028E-07,0.258987E-02,
24542 &0.175396E-03,0.436915E-07,0.123415E-06,0.444860E-07,0.436915E-07,
24543 &0.159423E-04,0.180204E-07,0.000000E+00,0.000000E+00,0.000000E+00,
24544 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24545 &0.206951E-01,0.123383E-02,0.903693E-07,0.903693E-07,0.903693E-07,
24546 &0.903693E-07,0.147928E-04,0.131925E-18,0.174566E-01,0.102241E-02,
24547 &0.892028E-07,0.129792E-07,0.885875E-07,0.892028E-07,0.328931E-04,
24548 &0.168541E-07,0.147092E-01,0.846741E-03,0.841992E-07,-.346085E-07,
24549 &0.832249E-07,0.841992E-07,0.410825E-04,0.262547E-07,0.123736E-01,
24550 &0.700287E-03,0.769173E-07,-.620958E-07,0.757563E-07,0.769173E-07,
24551 &0.418512E-04,0.305542E-07,0.103910E-01,0.578275E-03,0.688622E-07,
24552 &-.753692E-07,0.676306E-07,0.688622E-07,0.392599E-04,0.318183E-07,
24553 &0.871109E-02,0.476815E-03,0.611778E-07,-.782788E-07,0.599557E-07,
24554 &0.611778E-07,0.356221E-04,0.316149E-07,0.728984E-02,0.392546E-03,
24555 &0.537256E-07,-.749101E-07,0.525642E-07,0.537256E-07,0.312295E-04,
24556 &0.301630E-07,0.608951E-02,0.322656E-03,0.466227E-07,-.678673E-07/
24557 DATA (DL(K),K= 3741, 3825) /
24558 &0.455521E-07,0.466227E-07,0.265816E-04,0.278681E-07,0.507758E-02,
24559 &0.264779E-03,0.400790E-07,-.588670E-07,0.391148E-07,0.400790E-07,
24560 &0.223044E-04,0.251720E-07,0.422604E-02,0.216927E-03,0.341205E-07,
24561 &-.492124E-07,0.332680E-07,0.341205E-07,0.185283E-04,0.222885E-07,
24562 &0.351082E-02,0.177427E-03,0.287480E-07,-.397442E-07,0.280058E-07,
24563 &0.287480E-07,0.152122E-04,0.193702E-07,0.291126E-02,0.144878E-03,
24564 &0.239699E-07,-.309608E-07,0.233320E-07,0.239699E-07,0.123840E-04,
24565 &0.165481E-07,0.240962E-02,0.118102E-03,0.197695E-07,-.231453E-07,
24566 &0.192276E-07,0.197695E-07,0.100316E-04,0.139043E-07,0.199075E-02,
24567 &0.961132E-04,0.161186E-07,-.164194E-07,0.156628E-07,0.161186E-07,
24568 &0.808648E-05,0.114903E-07,0.164168E-02,0.780880E-04,0.129826E-07,
24569 &-.107955E-07,0.126029E-07,0.129826E-07,0.648861E-05,0.933575E-08,
24570 &0.135135E-02,0.633381E-04,0.103192E-07,-.622051E-08,0.100055E-07,
24571 &0.103192E-07,0.519042E-05,0.744979E-08,0.111036E-02,0.512898E-04,
24572 &0.808255E-08,-.260101E-08,0.782557E-08,0.808255E-08,0.414192E-05,
24573 &0.582811E-08,0.910718E-03,0.414657E-04,0.622640E-08,0.177583E-09,
24574 &0.601750E-08,0.622640E-08,0.329729E-05,0.445766E-08,0.745657E-03/
24575 DATA (DL(K),K= 3826, 3910) /
24576 &0.334694E-04,0.470431E-08,0.223586E-08,0.453577E-08,0.470431E-08,
24577 &0.261981E-05,0.331859E-08,0.000000E+00,0.000000E+00,0.000000E+00,
24578 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,
24579 &0.519165E-02,0.154752E-03,0.135983E-08,0.135983E-08,0.135983E-08,
24580 &0.135983E-08,0.445189E-06,0.165858E-19,0.420352E-02,0.123002E-03,
24581 &-.202651E-07,0.730203E-07,-.200511E-07,-.202651E-07,0.358557E-05,
24582 &-.213089E-07,0.340143E-02,0.977718E-04,-.356451E-07,0.114908E-06,
24583 &-.353066E-07,-.356451E-07,0.384652E-05,-.364475E-07,0.274771E-02,
24584 &0.776124E-04,-.435588E-07,0.139200E-06,-.431556E-07,-.435588E-07,
24585 &0.404834E-05,-.441752E-07,0.221524E-02,0.614950E-04,-.471629E-07,
24586 &0.150069E-06,-.467352E-07,-.471629E-07,0.391615E-05,-.476355E-07,
24587 &0.178268E-02,0.486476E-04,-.477545E-07,0.151420E-06,-.473296E-07,
24588 &-.477545E-07,0.334100E-05,-.481163E-07,0.143185E-02,0.384202E-04,
24589 &-.462359E-07,0.146515E-06,-.458316E-07,-.462359E-07,0.275426E-05,
24590 &-.465126E-07,0.114781E-02,0.302894E-04,-.434031E-07,0.137587E-06,
24591 &-.430295E-07,-.434031E-07,0.226010E-05,-.436143E-07,0.918288E-03,
24592 &0.238367E-04,-.398089E-07,0.126321E-06,-.394715E-07,-.398089E-07/
24593 DATA (DL(K),K= 3911, 3995) /
24594 &0.180947E-05,-.399700E-07,0.733193E-03,0.187249E-04,-.358525E-07,
24595 &0.113940E-06,-.355529E-07,-.358525E-07,0.142045E-05,-.359751E-07,
24596 &0.584227E-03,0.146823E-04,-.318183E-07,0.101291E-06,-.315563E-07,
24597 &-.318183E-07,0.110919E-05,-.319115E-07,0.464586E-03,0.114914E-04,
24598 &-.278936E-07,0.889550E-07,-.276671E-07,-.278936E-07,0.860964E-06,
24599 &-.279643E-07,0.368700E-03,0.897731E-05,-.241972E-07,0.773096E-07,
24600 &-.240033E-07,-.241972E-07,0.662825E-06,-.242508E-07,0.292013E-03,
24601 &0.700034E-05,-.208001E-07,0.665779E-07,-.206356E-07,-.208001E-07,
24602 &0.508061E-06,-.208406E-07,0.230814E-03,0.544870E-05,-.177366E-07,
24603 &0.568734E-07,-.175982E-07,-.177366E-07,0.388493E-06,-.177672E-07,
24604 &0.182078E-03,0.423324E-05,-.150157E-07,0.482316E-07,-.149000E-07,
24605 &-.150157E-07,0.296111E-06,-.150387E-07,0.143349E-03,0.328297E-05,
24606 &-.126295E-07,0.406343E-07,-.125335E-07,-.126295E-07,0.225104E-06,
24607 &-.126468E-07,0.112639E-03,0.254145E-05,-.105595E-07,0.340280E-07,
24608 &-.104803E-07,-.105595E-07,0.170871E-06,-.105726E-07,0.883377E-04,
24609 &0.196395E-05,-.878062E-08,0.283380E-07,-.871555E-08,-.878062E-08,
24610 &0.129517E-06,-.879039E-08,0.000000E+00,0.000000E+00,0.000000E+00/
24611 DATA (DL(K),K= 3996, 4000) /
24612 &0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00,0.000000E+00/
24613C
24614 ANS = 0.
24615 IF (X.GT.0.9985) RETURN
24616 IF ( ((I.EQ.3).OR.(I.EQ.8)) .AND. (X.GT.0.95) ) RETURN
24617C
24618 IS = S/DELTA+1
24619 IS1 = IS+1
24620 DO 1 L=1,25
24621 KL = L+NDRV*25
24622 F1(L) = GF(I,IS,KL)
24623 F2(L) = GF(I,IS1,KL)
24624 1 CONTINUE
24625 A1 = DT_CKMTFF(X,F1)
24626 A2 = DT_CKMTFF(X,F2)
24627C A1=ALOG(A1)
24628C A2=ALOG(A2)
24629 S1 = (IS-1)*DELTA
24630 S2 = S1+DELTA
24631 ANS = A1*(S-S2)/(S1-S2)+A2*(S-S1)/(S2-S1)
24632C ANS=EXP(ANS)
24633 RETURN
24634 END
24635C
24636
24637*$ CREATE DT_CKMTFF.FOR
24638*COPY DT_CKMTFF
24639 FUNCTION DT_CKMTFF(X,FVL)
24640C**********************************************************************
24641C
24642C LOGARITHMIC INTERPOLATOR - WATCH OUT FOR NEGATIVE
24643C FUNCTIONS AND/OR X VALUES OUTSIDE THE RANGE 0 TO 1.
24644C NOTE: DIMENSION OF FVL IS OVERWRITTEN BY VALUE USED
24645C IN MAIN ROUTINE.
24646C
24647C**********************************************************************
24648
24649 SAVE
24650 DIMENSION FVL(25),XGRID(25)
24651 DATA NX,XGRID/25,.001,.002,.004,.008,.016,.032,.064,.1,.15,
24652 *.2,.25,.3,.35,.4,.45,.5,.55,.6,.65,.7,.75,.8,.85,.9,.95/
24653C
24654 DT_CKMTFF=0.
24655 DO 1 I=1,NX
24656 IF(X.LT.XGRID(I)) GO TO 2
24657 1 CONTINUE
24658 2 I=I-1
24659 IF(I.EQ.0) THEN
24660 I=I+1
24661 ELSE IF(I.GT.23) THEN
24662 I=23
24663 ENDIF
24664 J=I+1
24665 K=J+1
24666 AXI=LOG(XGRID(I))
24667 BXI=LOG(1.-XGRID(I))
24668 AXJ=LOG(XGRID(J))
24669 BXJ=LOG(1.-XGRID(J))
24670 AXK=LOG(XGRID(K))
24671 BXK=LOG(1.-XGRID(K))
24672 FI=LOG(ABS(FVL(I)) +1.E-15)
24673 FJ=LOG(ABS(FVL(J)) +1.E-16)
24674 FK=LOG(ABS(FVL(K)) +1.E-17)
24675 DET=AXI*(BXJ-BXK)+AXJ*(BXK-BXI)+AXK*(BXI-BXJ)
24676 ALOGA=(FI*(AXJ*BXK-AXK*BXJ)+FJ*(AXK*BXI-AXI*BXK)+FK*(AXI*BXJ-AXJ*
24677 $ BXI))/DET
24678 ALPHA=(FI*(BXJ-BXK)+FJ*(BXK-BXI)+FK*(BXI-BXJ))/DET
24679 BETA=(FI*(AXK-AXJ)+FJ*(AXI-AXK)+FK*(AXJ-AXI))/DET
24680 IF(ABS(ALPHA).GT.99..OR.ABS(BETA).GT.99..OR.ABS(ALOGA).GT.99.)
24681 1RETURN
24682C IF(ALPHA.GT.50..OR.BETA.GT.50.) THEN
24683C WRITE(6,2001) X,FVL
24684C 2001 FORMAT(8E12.4)
24685C WRITE(6,2001) ALPHA,BETA,ALOGA,DET
24686C ENDIF
24687 DT_CKMTFF=EXP(ALOGA)*X**ALPHA*(1.-X)**BETA
24688 RETURN
24689 END
24690
24691*$ CREATE DT_FLUINI.FOR
24692*COPY DT_FLUINI
24693*
24694*===fluini=============================================================*
24695*
24696 SUBROUTINE DT_FLUINI
24697
24698************************************************************************
24699* Initialisation of the nucleon-nucleon cross section fluctuation *
24700* treatment. The original version by J. Ranft. *
24701* This version dated 21.04.95 is revised by S. Roesler. *
24702************************************************************************
24703
24704 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
24705 SAVE
24706 PARAMETER ( LINP = 10 ,
24707 & LOUT = 6 ,
24708 & LDAT = 9 )
24709 PARAMETER (ZERO=0.0D0,TINY10=1.0D-10,ONE=1.0D0,TWO=2.0D0)
24710
24711 PARAMETER ( A = 0.1D0,
24712 & B = 0.893D0,
24713 & OM = 1.1D0,
24714 & N = 6,
24715 & DX = 0.003D0)
24716
24717* n-n cross section fluctuations
24718 PARAMETER (NBINS = 1000)
24719 COMMON /DTXSFL/ FLUIXX(NBINS),IFLUCT
24720 DIMENSION FLUSI(NBINS),FLUIX(NBINS)
24721
24722 WRITE(LOUT,1000)
24723 1000 FORMAT(/,1X,'FLUINI: hadronic cross section fluctuations ',
24724 & 'treated')
24725
24726 FLUSU = ZERO
24727 FLUSUU = ZERO
24728
24729 DO 1 I=1,NBINS
24730 X = DBLE(I)*DX
24731 FLUIX(I) = X
24732 FLUS = ((X-B)/(OM*B))**N
24733 IF (FLUS.LE.20.0D0) THEN
24734 FLUSI(I) = (X/B)*EXP(-FLUS)/(X/B+A)
24735 ELSE
24736 FLUSI(I) = ZERO
24737 ENDIF
24738 FLUSU = FLUSU+FLUSI(I)
24739 1 CONTINUE
24740 DO 2 I=1,NBINS
24741 FLUSUU = FLUSUU+FLUSI(I)/FLUSU
24742 FLUSI(I) = FLUSUU
24743 2 CONTINUE
24744
24745C WRITE(LOUT,1001)
24746C1001 FORMAT(1X,'FLUCTUATIONS')
24747C CALL PLOT(FLUIX,FLUSI,1000,1,1000,0.0D0,0.06D0,0.0D0,0.01D0)
24748
24749 DO 3 I=1,NBINS
24750 AF = DBLE(I)*0.001D0
24751 DO 4 J=1,NBINS
24752 IF (AF.LE.FLUSI(J)) THEN
24753 FLUIXX(I) = FLUIX(J)
24754 GOTO 5
24755 ENDIF
24756 4 CONTINUE
24757 5 CONTINUE
24758 3 CONTINUE
24759 FLUIXX(1) = FLUIX(1)
24760 FLUIXX(NBINS) = FLUIX(NBINS)
24761
24762 RETURN
24763 END
24764
24765*$ CREATE DT_SIGTBL.FOR
24766*COPY DT_SIGTBL
24767*
24768*===sigtab=============================================================*
24769*
24770 SUBROUTINE DT_SIGTBL(JP,JT,PTOT,SIGE,MODE)
24771
24772************************************************************************
24773* This version dated 18.11.95 is written by S. Roesler *
24774************************************************************************
24775
24776 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
24777 SAVE
24778 PARAMETER ( LINP = 10 ,
24779 & LOUT = 6 ,
24780 & LDAT = 9 )
24781
24782 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
24783 & OHALF=0.5D0,ONE=1.0D0)
24784 PARAMETER (PLO=0.01D0,PHI=20.0D0,NBINS=150)
24785
24786 LOGICAL LINIT
24787
24788* particle properties (BAMJET index convention)
24789 CHARACTER*8 ANAME
24790 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
24791 & IICH(210),IIBAR(210),K1(210),K2(210)
24792
24793 DIMENSION SIGEP(5,NBINS+1),SIGEN(5,NBINS+1),IDSIG(23)
24794 DATA IDSIG / 1, 0, 0, 0, 0, 0, 0, 2, 0, 0,
24795 & 0, 0, 3, 4, 0, 0, 0, 0, 0, 0,
24796 & 0, 0, 5/
24797 DATA LINIT /.FALSE./
24798
24799* precalculation and tabulation of elastic cross sections
24800 IF (ABS(MODE).EQ.1) THEN
24801 IF (MODE.EQ.1)
24802 & OPEN(LDAT,FILE='outdata0/sigtab.out',STATUS='UNKNOWN')
24803 PLABLX = LOG10(PLO)
24804 PLABHX = LOG10(PHI)
24805 DPLAB = (PLABHX-PLABLX)/DBLE(NBINS)
24806 DO 1 I=1,NBINS+1
24807 PLAB = PLABLX+DBLE(I-1)*DPLAB
24808 PLAB = 10**PLAB
24809 DO 2 IPROJ=1,23
24810 IDX = IDSIG(IPROJ)
24811 IF (IDX.GT.0) THEN
24812C CALL DT_SIHNEL(IPROJ,1,PLAB,SIGEP(IDX,I))
24813C CALL DT_SIHNEL(IPROJ,8,PLAB,SIGEN(IDX,I))
24814 DUMZER = ZERO
24815 CALL DT_XSHN(IPROJ,1,PLAB,DUMZER,SIGTOT,SIGEP(IDX,I))
24816 CALL DT_XSHN(IPROJ,8,PLAB,DUMZER,SIGTOT,SIGEN(IDX,I))
24817 ENDIF
24818 2 CONTINUE
24819 IF (MODE.EQ.1) THEN
24820 WRITE(LDAT,1000) PLAB,(SIGEP(IDX,I),IDX=1,5),
24821 & (SIGEN(IDX,I),IDX=1,5)
24822 1000 FORMAT(F5.1,10F7.2)
24823 ENDIF
24824 1 CONTINUE
24825 IF (MODE.EQ.1) CLOSE(LDAT)
24826 LINIT = .TRUE.
24827 ELSE
24828 SIGE = -ONE
24829 IF (LINIT.AND.(JP.LE.23).AND.(PTOT.GE.PLO)
24830 & .AND.(PTOT.LE.PHI) ) THEN
24831 IDX = IDSIG(JP)
24832 IF ( (IDX.GT.0).AND.((JT.EQ.1).OR.(JT.EQ.8)) ) THEN
24833 PLABX = LOG10(PTOT)
24834 IF (PLABX.LE.PLABLX) THEN
24835 I1 = 1
24836 I2 = 1
24837 ELSEIF (PLABX.GE.PLABHX) THEN
24838 I1 = NBINS+1
24839 I2 = NBINS+1
24840 ELSE
24841 I1 = INT((PLABX-PLABLX)/DPLAB)+1
24842 I2 = I1+1
24843 ENDIF
24844 PLAB1X = PLABLX+DBLE(I1-1)*DPLAB
24845 PLAB2X = PLABLX+DBLE(I2-1)*DPLAB
24846 PBIN = PLAB2X-PLAB1X
24847 IF (PBIN.GT.TINY10) THEN
24848 RATX = (PLABX-PLAB1X)/(PLAB2X-PLAB1X)
24849 ELSE
24850 RATX = ZERO
24851 ENDIF
24852 IF (JT.EQ.1) THEN
24853 SIG1 = SIGEP(IDX,I1)
24854 SIG2 = SIGEP(IDX,I2)
24855 ELSE
24856 SIG1 = SIGEN(IDX,I1)
24857 SIG2 = SIGEN(IDX,I2)
24858 ENDIF
24859 SIGE = SIG1+RATX*(SIG2-SIG1)
24860 ENDIF
24861 ENDIF
24862 ENDIF
24863
24864 RETURN
24865 END
24866
24867*$ CREATE DT_XSTABL.FOR
24868*COPY DT_XSTABL
24869*
24870*===xstabl=============================================================*
24871*
24872 SUBROUTINE DT_XSTABL(WHAT,IXSQEL,IRATIO)
24873
24874 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
24875 SAVE
24876 PARAMETER ( LINP = 10 ,
24877 & LOUT = 6 ,
24878 & LDAT = 9 )
24879 PARAMETER (TINY10=1.0D-10,TINY2=1.0D-2,ZERO=0.0D0,DLARGE=1.0D10,
24880 & OHALF=0.5D0,ONE=1.0D0,TWO=2.0D0)
24881 LOGICAL LLAB,LELOG,LQLOG
24882
24883* particle properties (BAMJET index convention)
24884 CHARACTER*8 ANAME
24885 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
24886 & IICH(210),IIBAR(210),K1(210),K2(210)
24887* properties of interacting particles
24888 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
24889 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
24890* Glauber formalism: cross sections
24891 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
24892 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
24893 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
24894 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
24895 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
24896 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
24897 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
24898 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
24899 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
24900 & BSLOPE,NEBINI,NQBINI
24901* emulsion treatment
24902 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
24903 & NCOMPO,IEMUL
24904
24905 DIMENSION WHAT(6)
24906
24907 LLAB = (WHAT(1).GT.ZERO).OR.(WHAT(2).GT.ZERO)
24908 ELO = ABS(WHAT(1))
24909 EHI = ABS(WHAT(2))
24910 IF (ELO.GT.EHI) ELO = EHI
24911 LELOG = WHAT(3).LT.ZERO
24912 NEBINS = MAX(INT(ABS(WHAT(3))),1)
24913 DEBINS = (EHI-ELO)/DBLE(NEBINS)
24914 IF (LELOG) THEN
24915 AELO = LOG10(ELO)
24916 AEHI = LOG10(EHI)
24917 ADEBIN = (AEHI-AELO)/DBLE(NEBINS)
24918 ENDIF
24919 Q2LO = WHAT(4)
24920 Q2HI = WHAT(5)
24921 IF (Q2LO.GT.Q2HI) Q2LO = Q2HI
24922 LQLOG = WHAT(6).LT.ZERO
24923 NQBINS = MAX(INT(ABS(WHAT(6))),1)
24924 DQBINS = (Q2HI-Q2LO)/DBLE(NQBINS)
24925 IF (LQLOG) THEN
24926 AQ2LO = LOG10(Q2LO)
24927 AQ2HI = LOG10(Q2HI)
24928 ADQBIN = (AQ2HI-AQ2LO)/DBLE(NQBINS)
24929 ENDIF
24930
24931 IF ( ELO.EQ. EHI) NEBINS = 0
24932 IF (Q2LO.EQ.Q2HI) NQBINS = 0
24933
24934 WRITE(LOUT,1000) ELO,EHI,LLAB,IXSQEL,Q2LO,Q2HI,IJPROJ,IP,IT
24935 1000 FORMAT(/,1X,'XSTABL: E_lo =',E10.3,' GeV E_hi =',E10.3,
24936 & ' GeV Lab = ',L1,' qel: ',I2,/,10X,'Q2_lo =',F10.5,
24937 & ' GeV^2 Q2_hi =',F10.5,' GeV^2',/,10X,'id_p = ',I2,
24938 & ' A_p = ',I3,' A_t = ',I3,/)
24939
24940C IF (IJPROJ.NE.7) THEN
24941 WRITE(LOUT,'(1X,A,/)')'(E,STOT,SELA,SQEP,SQET,SQE2,SINE,SPROD)'
24942* normalize fractions of emulsion components
24943 IF (NCOMPO.GT.0) THEN
24944 SUMFRA = ZERO
24945 DO 10 I=1,NCOMPO
24946 SUMFRA = SUMFRA+EMUFRA(I)
24947 10 CONTINUE
24948 IF (SUMFRA.GT.ZERO) THEN
24949 DO 11 I=1,NCOMPO
24950 EMUFRA(I) = EMUFRA(I)/SUMFRA
24951 11 CONTINUE
24952 ENDIF
24953 ENDIF
24954C ELSE
24955C WRITE(LOUT,'(1X,A,/)') '(Q2,E,STOT,ETOT,SIN,EIN,STOT0)'
24956C ENDIF
24957 DO 1 I=1,NEBINS+1
24958 IF (LELOG) THEN
24959 E = 10**(AELO+DBLE(I-1)*ADEBIN)
24960 ELSE
24961 E = ELO+DBLE(I-1)*DEBINS
24962 ENDIF
24963 DO 2 J=1,NQBINS+1
24964 IF (LQLOG) THEN
24965 Q2 = 10**(AQ2LO+DBLE(J-1)*ADQBIN)
24966 ELSE
24967 Q2 = Q2LO+DBLE(J-1)*DQBINS
24968 ENDIF
24969c IF (IJPROJ.NE.7) THEN
24970 IF (LLAB) THEN
24971 PLAB = ZERO
24972 ECM = ZERO
24973 CALL DT_LTINI(IJPROJ,1,E,PPN0,ECM,0)
24974 ELSE
24975 ECM = E
24976 ENDIF
24977 XI = ZERO
24978 Q2I = ZERO
24979 IF (IJPROJ.EQ.7) Q2I = Q2
24980 IF (NCOMPO.GT.0) THEN
24981 DO 20 IC=1,NCOMPO
24982 IIT = IEMUMA(IC)
24983 CALL DT_XSGLAU(IP,IIT,IJPROJ,XI,Q2I,ECM,1,1,-IC)
24984 20 CONTINUE
24985 ELSE
24986 CALL DT_XSGLAU(IP,IT,IJPROJ,XI,Q2I,ECM,1,1,-1)
24987C CALL AMPLIT(IP,IT,IJPROJ,XI,Q2I,ECM,1,1,1)
24988 ENDIF
24989 IF (NCOMPO.GT.0) THEN
24990 XTOT = ZERO
24991 ETOT = ZERO
24992 XELA = ZERO
24993 EELA = ZERO
24994 XQEP = ZERO
24995 EQEP = ZERO
24996 XQET = ZERO
24997 EQET = ZERO
24998 XQE2 = ZERO
24999 EQE2 = ZERO
25000 XPRO = ZERO
25001 EPRO = ZERO
25002 XPRO1= ZERO
25003 XDEL = ZERO
25004 EDEL = ZERO
25005 XDQE = ZERO
25006 EDQE = ZERO
25007 DO 21 IC=1,NCOMPO
25008 XTOT = XTOT+EMUFRA(IC)*XSTOT(1,1,IC)
25009 ETOT = ETOT+EMUFRA(IC)*XETOT(1,1,IC)**2
25010 XELA = XELA+EMUFRA(IC)*XSELA(1,1,IC)
25011 EELA = EELA+EMUFRA(IC)*XEELA(1,1,IC)**2
25012 XQEP = XQEP+EMUFRA(IC)*XSQEP(1,1,IC)
25013 EQEP = EQEP+EMUFRA(IC)*XEQEP(1,1,IC)**2
25014 XQET = XQET+EMUFRA(IC)*XSQET(1,1,IC)
25015 EQET = EQET+EMUFRA(IC)*XEQET(1,1,IC)**2
25016 XQE2 = XQE2+EMUFRA(IC)*XSQE2(1,1,IC)
25017 EQE2 = EQE2+EMUFRA(IC)*XEQE2(1,1,IC)**2
25018 XPRO = XPRO+EMUFRA(IC)*XSPRO(1,1,IC)
25019 EPRO = EPRO+EMUFRA(IC)*XEPRO(1,1,IC)**2
25020 XDEL = XDEL+EMUFRA(IC)*XSDEL(1,1,IC)
25021 EDEL = EDEL+EMUFRA(IC)*XEDEL(1,1,IC)**2
25022 XDQE = XDQE+EMUFRA(IC)*XSDQE(1,1,IC)
25023 EDQE = EDQE+EMUFRA(IC)*XEDQE(1,1,IC)**2
25024 YPRO = XSTOT(1,1,IC)-XSELA(1,1,IC)
25025 & -XSQEP(1,1,IC)-XSQET(1,1,IC)
25026 & -XSQE2(1,1,IC)
25027 XPRO1= XPRO1+EMUFRA(IC)*YPRO
25028 21 CONTINUE
25029 ETOT = SQRT(ETOT)
25030 EELA = SQRT(EELA)
25031 EQEP = SQRT(EQEP)
25032 EQET = SQRT(EQET)
25033 EQE2 = SQRT(EQE2)
25034 EPRO = SQRT(EPRO)
25035 EDEL = SQRT(EDEL)
25036 EDQE = SQRT(EDQE)
25037 WRITE(LOUT,'(8E9.3)')
25038 & E,XTOT,XELA,XQEP,XQET,XQE2,XPRO,XPRO1
25039C WRITE(LOUT,'(4E9.3)')
25040C & E,XDEL,XDQE,XDEL+XDQE
25041 ELSE
25042 WRITE(LOUT,'(11E10.3)')
25043 & E,
25044 & XSTOT(1,1,1),XSELA(1,1,1),XSQEP(1,1,1),XSQET(1,1,1),
25045 & XSQE2(1,1,1),XSPRO(1,1,1),
25046 & XSTOT(1,1,1)-XSELA(1,1,1)-XSQEP(1,1,1)-XSQET(1,1,1)
25047 & -XSQE2(1,1,1),XSDEL(1,1,1),XSDQE(1,1,1),
25048 & XSDEL(1,1,1)+XSDQE(1,1,1)
25049C WRITE(LOUT,'(4E9.3)') E,XSDEL(1,1,1),XSDQE(1,1,1),
25050C & XSDEL(1,1,1)+XSDQE(1,1,1)
25051 ENDIF
25052c ELSE
25053c IF (LLAB) THEN
25054c IF (IT.GT.1) THEN
25055c IF (IXSQEL.EQ.0) THEN
25056cC CALL DT_SIGGA(IT, Q2, E,ZERO,ZERO,
25057cC CALL DT_SIGGA(IT, E,Q2,ZERO,ZERO,
25058c CALL DT_SIGGA(IT,ZERO,Q2,ZERO,E,
25059c & STOT,ETOT,SIN,EIN,STOT0)
25060c IF (IRATIO.EQ.1) THEN
25061c CALL DT_SIGGP( Q2, E,ZERO,ZERO,STGP,SIGP,SDGP)
25062cC CALL DT_SIGGP( E,Q2,ZERO,ZERO,STGP,SIGP,SDGP)
25063cC CALL DT_SIGGP(ZERO,Q2,ZERO,E,STGP,SIGP,SDGP)
25064c*!! save cross sections
25065c STOTA = STOT
25066c ETOTA = ETOT
25067c STOTP = STGP
25068c*!!
25069c STOT = STOT/(DBLE(IT)*STGP)
25070c SIN = SIN/(DBLE(IT)*SIGP)
25071c STOT0 = STGP
25072c ETOT = ZERO
25073c EIN = ZERO
25074c ENDIF
25075c ELSE
25076c WRITE(LOUT,*)
25077c & ' XSTABL: qel. xs. not implemented for nuclei'
25078c STOP
25079c ENDIF
25080c ELSE
25081c ETOT = ZERO
25082c EIN = ZERO
25083c STOT0= ZERO
25084c IF (IXSQEL.EQ.0) THEN
25085c CALL DT_SIGGP(ZERO,Q2,ZERO,E,STOT,SIN,SDIR)
25086c ELSE
25087c SIN = ZERO
25088c CALL DT_SIGVEL(ZERO,Q2,ZERO,E,IXSQEL,STOT,SIN,STOT0)
25089c ENDIF
25090c ENDIF
25091c ELSE
25092c IF (IT.GT.1) THEN
25093c IF (IXSQEL.EQ.0) THEN
25094c CALL DT_SIGGA(IT,ZERO,Q2,E,ZERO,
25095c & STOT,ETOT,SIN,EIN,STOT0)
25096c IF (IRATIO.EQ.1) THEN
25097c CALL DT_SIGGP(ZERO,Q2,E,ZERO,STGP,SIGP,SDGP)
25098c*!! save cross sections
25099c STOTA = STOT
25100c ETOTA = ETOT
25101c STOTP = STGP
25102c*!!
25103c STOT = STOT/(DBLE(IT)*STGP)
25104c SIN = SIN/(DBLE(IT)*SIGP)
25105c STOT0 = STGP
25106c ETOT = ZERO
25107c EIN = ZERO
25108c ENDIF
25109c ELSE
25110c WRITE(LOUT,*)
25111c & ' XSTABL: qel. xs. not implemented for nuclei'
25112c STOP
25113c ENDIF
25114c ELSE
25115c ETOT = ZERO
25116c EIN = ZERO
25117c STOT0= ZERO
25118c IF (IXSQEL.EQ.0) THEN
25119c CALL DT_SIGGP(ZERO,Q2,E,ZERO,STOT,SIN,SDIR)
25120c ELSE
25121c SIN = ZERO
25122c CALL DT_SIGVEL(ZERO,Q2,E,ZERO,IXSQEL,STOT,SIN,STOT0)
25123c ENDIF
25124c ENDIF
25125c ENDIF
25126cC WRITE(LOUT,'(1X,7E10.3)')Q2,E,STOT,STOTA,ETOTA,STOTP,ZERO
25127cC WRITE(LOUT,'(1X,7E10.3)')Q2,E,STOT,ETOT,SIN,EIN,SDIR
25128cC WRITE(LOUT,'(1X,7E10.3)')Q2,E,STOT,ETOT,SIN,EIN,STOT0
25129c WRITE(LOUT,'(1X,6E10.3)')Q2,E,STOT,ETOT,SIN,EIN
25130c ENDIF
25131 2 CONTINUE
25132 1 CONTINUE
25133
25134 RETURN
25135 END
25136
25137*$ CREATE DT_TESTXS.FOR
25138*COPY DT_TESTXS
25139*
25140*===testxs=============================================================*
25141*
25142 SUBROUTINE DT_TESTXS
25143
25144 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25145 SAVE
25146
25147 DIMENSION XSTOT(26,2),XSELA(26,2)
25148
25149 OPEN(10,FILE='testxs_ptot.out',STATUS='UNKNOWN')
25150 OPEN(11,FILE='testxs_pela.out',STATUS='UNKNOWN')
25151 OPEN(12,FILE='testxs_ntot.out',STATUS='UNKNOWN')
25152 OPEN(13,FILE='testxs_nela.out',STATUS='UNKNOWN')
25153 DUMECM = 0.0D0
25154 PLABL = 0.01D0
25155 PLABH = 10000.0D0
25156 NBINS = 120
25157 APLABL = LOG10(PLABL)
25158 APLABH = LOG10(PLABH)
25159 ADPLAB = (APLABH-APLABL)/DBLE(NBINS)
25160 DO 1 I=1,NBINS+1
25161 ADP = APLABL+DBLE(I-1)*ADPLAB
25162 P = 10.0D0**ADP
25163 DO 2 J=1,26
25164 CALL DT_XSHN(J,1,P,DUMECM,XSTOT(J,1),XSELA(J,1))
25165 CALL DT_XSHN(J,8,P,DUMECM,XSTOT(J,2),XSELA(J,2))
25166 2 CONTINUE
25167 WRITE(10,1000) P,(XSTOT(K,1),K=1,26)
25168 WRITE(11,1000) P,(XSELA(K,1),K=1,26)
25169 WRITE(12,1000) P,(XSTOT(K,2),K=1,26)
25170 WRITE(13,1000) P,(XSELA(K,2),K=1,26)
25171 1 CONTINUE
25172 1000 FORMAT(F8.3,26F9.3)
25173
25174 RETURN
25175 END
25176
25177************************************************************************
25178* *
25179* DTUNUC 2.0: library routines *
25180* processed by S. Roesler, 6.5.95 *
25181* *
25182************************************************************************
25183*
25184* 1) Handling of parton momenta
25185* SUBROUTINE MASHEL
25186* SUBROUTINE DFERMI
25187*
25188* 2) Handling of parton flavors and particle indices
25189* INTEGER FUNCTION IPDG2B
25190* INTEGER FUNCTION IB2PDG
25191* INTEGER FUNCTION IQUARK
25192* INTEGER FUNCTION IBJQUA
25193* INTEGER FUNCTION ICIHAD
25194* INTEGER FUNCTION IPDGHA
25195* INTEGER FUNCTION MCHAD
25196* SUBROUTINE FLAHAD
25197*
25198* 3) Energy-momentum and quantum number conservation check routines
25199* SUBROUTINE EMC1
25200* SUBROUTINE EMC2
25201* SUBROUTINE EVTEMC
25202* SUBROUTINE EVTFLC
25203* SUBROUTINE EVTCHG
25204*
25205* 4) Transformations
25206* SUBROUTINE LTINI
25207* SUBROUTINE LTRANS
25208* SUBROUTINE LTNUC
25209* SUBROUTINE DALTRA
25210* SUBROUTINE DTRAFO
25211* SUBROUTINE STTRAN
25212* SUBROUTINE MYTRAN
25213* SUBROUTINE LT2LAO
25214* SUBROUTINE LT2LAB
25215*
25216* 5) Sampling from distributions
25217* INTEGER FUNCTION NPOISS
25218* DOUBLE PRECISION FUNCTION SAMPXB
25219* DOUBLE PRECISION FUNCTION SAMPEX
25220* DOUBLE PRECISION FUNCTION SAMSQX
25221* DOUBLE PRECISION FUNCTION BETREJ
25222* DOUBLE PRECISION FUNCTION DGAMRN
25223* DOUBLE PRECISION FUNCTION DBETAR
25224* SUBROUTINE RANNOR
25225* SUBROUTINE DPOLI
25226* SUBROUTINE DSFECF
25227* SUBROUTINE RACO
25228*
25229* 6) Special functions, algorithms and service routines
25230* DOUBLE PRECISION FUNCTION YLAMB
25231* SUBROUTINE SORT
25232* SUBROUTINE SORT1
25233* SUBROUTINE DT_XTIME
25234*
25235* 7) Random number generator package
25236* DOUBLE PRECISION FUNCTION DT_RNDM
25237* SUBROUTINE DT_RNDMST
25238* SUBROUTINE DT_RNDMIN
25239* SUBROUTINE DT_RNDMOU
25240* SUBROUTINE DT_RNDMTE
25241*
25242************************************************************************
25243* *
25244* 1) Handling of parton momenta *
25245* *
25246************************************************************************
25247*$ CREATE DT_MASHEL.FOR
25248*COPY DT_MASHEL
25249*
25250*===mashel=============================================================*
25251*
25252 SUBROUTINE DT_MASHEL(PA1,PA2,XM1,XM2,P1,P2,IREJ)
25253
25254************************************************************************
25255* *
25256* rescaling of momenta of two partons to put both *
25257* on mass shell *
25258* *
25259* input: PA1,PA2 input momentum vectors *
25260* XM1,2 desired masses of particles afterwards *
25261* P1,P2 changed momentum vectors *
25262* *
25263* The original version is written by R. Engel. *
25264* This version dated 12.12.94 is modified by S. Roesler. *
25265************************************************************************
25266
25267 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25268 SAVE
25269 PARAMETER ( LINP = 10 ,
25270 & LOUT = 6 ,
25271 & LDAT = 9 )
25272 PARAMETER (TINY10=1.0D-10,ONE=1.0D0,ZERO=0.0D0)
25273
25274 DIMENSION PA1(4),PA2(4),P1(4),P2(4)
25275
25276 IREJ = 0
25277
25278* Lorentz transformation into system CMS
25279 PX = PA1(1)+PA2(1)
25280 PY = PA1(2)+PA2(2)
25281 PZ = PA1(3)+PA2(3)
25282 EE = PA1(4)+PA2(4)
25283 XPTOT = SQRT(PX**2+PY**2+PZ**2)
25284 XMS = (EE-XPTOT)*(EE+XPTOT)
25285 IF(XMS.LT.(XM1+XM2)**2) THEN
25286C WRITE(LOUT,'(3E12.4)')XMS,XM1,XM2
25287 GOTO 9999
25288 ENDIF
25289 XMS = SQRT(XMS)
25290 BGX = PX/XMS
25291 BGY = PY/XMS
25292 BGZ = PZ/XMS
25293 GAM = EE/XMS
25294 CALL DT_DALTRA(GAM,-BGX,-BGY,-BGZ,PA1(1),PA1(2),PA1(3),
25295 & PA1(4),PTOT1,P1(1),P1(2),P1(3),P1(4))
25296* rotation angles
25297 COD = P1(3)/PTOT1
25298C SID = SQRT((ONE-COD)*(ONE+COD))
25299 PPT = SQRT(P1(1)**2+P1(2)**2)
25300 SID = PPT/PTOT1
25301 COF = ONE
25302 SIF = ZERO
25303 IF(PTOT1*SID.GT.TINY10) THEN
25304 COF = P1(1)/(SID*PTOT1)
25305 SIF = P1(2)/(SID*PTOT1)
25306 ANORF = SQRT(COF*COF+SIF*SIF)
25307 COF = COF/ANORF
25308 SIF = SIF/ANORF
25309 ENDIF
25310* new CM momentum and energies (for masses XM1,XM2)
25311 XM12 = SIGN(XM1**2,XM1)
25312 XM22 = SIGN(XM2**2,XM2)
25313 SS = XMS**2
25314 PCMP = DT_YLAMB(SS,XM12,XM22)/(2.D0*XMS)
25315 EE1 = SQRT(XM12+PCMP**2)
25316 EE2 = XMS-EE1
25317* back rotation
25318 MODE = 1
25319 CALL DT_MYTRAN(MODE,ZERO,ZERO,PCMP,COD,SID,COF,SIF,XX,YY,ZZ)
25320 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,XX,YY,ZZ,EE1,
25321 & PTOT1,P1(1),P1(2),P1(3),P1(4))
25322 CALL DT_DALTRA(GAM,BGX,BGY,BGZ,-XX,-YY,-ZZ,EE2,
25323 & PTOT2,P2(1),P2(2),P2(3),P2(4))
25324* check consistency
25325 DEL = XMS*0.0001D0
25326 IF (ABS(PX-P1(1)-P2(1)).GT.DEL) THEN
25327 IDEV = 1
25328 ELSEIF (ABS(PY-P1(2)-P2(2)).GT.DEL) THEN
25329 IDEV = 2
25330 ELSEIF (ABS(PZ-P1(3)-P2(3)).GT.DEL) THEN
25331 IDEV = 3
25332 ELSEIF (ABS(EE-P1(4)-P2(4)).GT.DEL) THEN
25333 IDEV = 4
25334 ELSE
25335 IDEV = 0
25336 ENDIF
25337 IF (IDEV.NE.0) THEN
25338 WRITE(LOUT,'(/1X,A,I3)')
25339 & 'MASHEL: inconsistent transformation',IDEV
25340 WRITE(LOUT,'(1X,A)') 'MASHEL: input momenta/masses:'
25341 WRITE(LOUT,'(1X,5E12.5)') (PA1(K),K=1,4),XM1
25342 WRITE(LOUT,'(1X,5E12.5)') (PA2(K),K=1,4),XM2
25343 WRITE(LOUT,'(1X,A)') 'MASHEL: output momenta:'
25344 WRITE(LOUT,'(5X,4E12.5)') (P1(K),K=1,4)
25345 WRITE(LOUT,'(5X,4E12.5)') (P2(K),K=1,4)
25346 ENDIF
25347 RETURN
25348
25349 9999 CONTINUE
25350 IREJ = 1
25351 RETURN
25352 END
25353
25354*$ CREATE DT_DFERMI.FOR
25355*COPY DT_DFERMI
25356*
25357*===dfermi=============================================================*
25358*
25359 SUBROUTINE DT_DFERMI(GPART)
25360
25361************************************************************************
25362* Find largest of three random numbers. *
25363************************************************************************
25364
25365 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25366 SAVE
25367
25368 DIMENSION G(3)
25369
25370 DO 10 I=1,3
25371 G(I)=DT_RNDM(GPART)
25372 10 CONTINUE
25373 IF (G(3).LT.G(2)) GOTO 40
25374 IF (G(3).LT.G(1)) GOTO 30
25375 GPART = G(3)
25376 20 RETURN
25377 30 GPART = G(1)
25378 GOTO 20
25379 40 IF (G(2).LT.G(1)) GOTO 30
25380 GPART = G(2)
25381 GOTO 20
25382
25383 END
25384
25385************************************************************************
25386* *
25387* 2) Handling of parton flavors and particle indices *
25388* *
25389************************************************************************
25390*$ CREATE IDT_IPDG2B.FOR
25391*COPY IDT_IPDG2B
25392*
25393*===ipdg2b=============================================================*
25394*
25395 INTEGER FUNCTION IDT_IPDG2B(ID,NN,MODE)
25396
25397************************************************************************
25398* *
25399* conversion of quark numbering scheme *
25400* *
25401* input: PDG parton numbering *
25402* for diquarks: NN number of the constituent quark *
25403* (e.g. ID=2301,NN=1 -> ICONV2=1) *
25404* *
25405* output: BAMJET particle codes *
25406* 1 u 7 a-u (MODE=1) -1 a-u (MODE=2) *
25407* 2 d 8 a-d -2 a-d *
25408* 3 s 9 a-s -3 a-s *
25409* 4 c 10 a-c -4 a-c *
25410* *
25411* This is a modified version of ICONV2 written by R. Engel. *
25412* This version dated 13.12.94 is written by S. Roesler. *
25413************************************************************************
25414
25415 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25416 SAVE
25417 PARAMETER ( LINP = 10 ,
25418 & LOUT = 6 ,
25419 & LDAT = 9 )
25420
25421 IDA = ABS(ID)
25422* diquarks
25423 IF (IDA.GT.6) THEN
25424 KF = 3
25425 IF (IDA.GE.1000) KF = 4
25426 IDA = IDA/(10**(KF-NN))
25427 IDA = MOD(IDA,10)
25428 ENDIF
25429* exchange up and dn quarks
25430 IF (IDA.EQ.1) THEN
25431 IDA = 2
25432 ELSEIF (IDA.EQ.2) THEN
25433 IDA = 1
25434 ENDIF
25435* antiquarks
25436 IF (ID.LT.0) THEN
25437 IF (MODE.EQ.1) THEN
25438 IDA = IDA+6
25439 ELSE
25440 IDA = -IDA
25441 ENDIF
25442 ENDIF
25443 IDT_IPDG2B = IDA
25444
25445 RETURN
25446 END
25447
25448*$ CREATE IDT_IB2PDG.FOR
25449*COPY IDT_IB2PDG
25450*
25451*===ib2pdg=============================================================*
25452*
25453 INTEGER FUNCTION IDT_IB2PDG(ID1,ID2,MODE)
25454
25455************************************************************************
25456* *
25457* conversion of quark numbering scheme *
25458* *
25459* input: BAMJET particle codes *
25460* 1 u 7 a-u (MODE=1) -1 a-u (MODE=2) *
25461* 2 d 8 a-d -2 a-d *
25462* 3 s 9 a-s -3 a-s *
25463* 4 c 10 a-c -4 a-c *
25464* *
25465* output: PDG parton numbering *
25466* *
25467* This version dated 13.12.94 is written by S. Roesler. *
25468************************************************************************
25469
25470 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25471 SAVE
25472 PARAMETER ( LINP = 10 ,
25473 & LOUT = 6 ,
25474 & LDAT = 9 )
25475
25476 DIMENSION IHKKQ(-6:6),IHKKQQ(-3:3,-3:3)
25477 DATA IHKKQ/-6,-5,-4,-3,-1,-2,0,2,1,3,4,5,6/
25478 DATA IHKKQQ/-3303,-3103,-3203,0,0,0,0, -3103,-1103,-2103,0,0,0,0,
25479 &-3203,-2103,-2203,0,0,0,0, 0,0,0,0,0,0,0, 0,0,0,0,2203,2103,3203,
25480 &0,0,0,0,2103,1103,3103, 0,0,0,0,3203,3103,3303/
25481
25482 IDA = ID1
25483 IDB = ID2
25484 IF (MODE.EQ.1) THEN
25485 IF (ID1.GT.6) IDA = -(ID1-6)
25486 IF (ID2.GT.6) IDB = -(ID2-6)
25487 ENDIF
25488 IF (ID2.EQ.0) THEN
25489 IDT_IB2PDG = IHKKQ(IDA)
25490 ELSE
25491 IDT_IB2PDG = IHKKQQ(IDA,IDB)
25492 ENDIF
25493
25494 RETURN
25495 END
25496
25497*$ CREATE IDT_IQUARK.FOR
25498*COPY IDT_IQUARK
25499*
25500*===ipdgqu=============================================================*
25501*
25502 INTEGER FUNCTION IDT_IQUARK(K,IDBAMJ)
25503
25504************************************************************************
25505* *
25506* quark contents according to PDG conventions *
25507* (random selection in case of quark mixing) *
25508* *
25509* input: IDBAMJ BAMJET particle code *
25510* K 1..3 quark number *
25511* *
25512* output: 1 d (anti --> neg.) *
25513* 2 u *
25514* 3 s *
25515* 4 c *
25516* *
25517* This version written by R. Engel. *
25518************************************************************************
25519
25520 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25521 SAVE
25522
25523 IQ = IDT_IBJQUA(K,IDBAMJ)
25524* quark-antiquark
25525 IF (IQ.GT.6) THEN
25526 IQ = 6-IQ
25527 ENDIF
25528* exchange of up and down
25529 IF (ABS(IQ).EQ.1) THEN
25530 IQ = SIGN(2,IQ)
25531 ELSEIF (ABS(IQ).EQ.2) THEN
25532 IQ = SIGN(1,IQ)
25533 ENDIF
25534 IDT_IQUARK = IQ
25535
25536 RETURN
25537 END
25538
25539*$ CREATE IDT_IBJQUA.FOR
25540*COPY IDT_IBJQUA
25541*
25542*===ibamq==============================================================*
25543*
25544 INTEGER FUNCTION IDT_IBJQUA(K,IDBAMJ)
25545
25546************************************************************************
25547* *
25548* quark contents according to BAMJET conventions *
25549* (random selection in case of quark mixing) *
25550* *
25551* input: IDBAMJ BAMJET particle code *
25552* K 1..3 quark number *
25553* *
25554* output: 1 u 7 u bar *
25555* 2 d 8 d bar *
25556* 3 s 9 s bar *
25557* 4 c 10 c bar *
25558* *
25559* This version written by R. Engel. *
25560************************************************************************
25561
25562 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25563 SAVE
25564
25565 DIMENSION ITAB(3,210)
25566 DATA ((ITAB(I,K),I=1,3),K=1,30) /
25567 & 1, 1, 2, 7, 7, 8, 0, 0, 0,
25568 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25569 & 0, 0, 0, 1, 2, 2, 7, 8, 8,
25570*sr 10.1.94
25571C & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25572 & 0, 0, 0, 0, 0, 0, 3, 8, 0,
25573*
25574 & 1, 8, 0, 2, 7, 0, 1, 9, 0,
25575*sr 10.1.94
25576C & 3, 7, 0, 0, 0, 0, 0, 0, 0,
25577 & 3, 7, 0, 3, 1, 2, 9, 7, 8,
25578*sr 10.1.94
25579C & 0, 0, 0, 2, 2, 3, 1, 1, 3,
25580 & 2, 9, 0, 2, 2, 3, 1, 1, 3,
25581*
25582 & 1, 2, 3, 201,202, 0, 2, 9, 0,
25583 & 3, 8, 0, 0, 0, 0, 0, 0, 0,
25584 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25585 DATA ((ITAB(I,K),I=1,3),K=31,60) /
25586 & 3, 9, 0, 1, 8, 0, 203,204, 0,
25587 & 2, 7, 0, 0, 0, 0, 1, 9, 0,
25588 & 2, 9, 0, 3, 7, 0, 3, 8, 0,
25589 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25590 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25591 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25592 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25593 & 0, 0, 0, 1, 1, 1, 1, 1, 2,
25594 & 1, 2, 2, 2, 2, 2, 0, 0, 0,
25595 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25596 DATA ((ITAB(I,K),I=1,3),K=61,90) /
25597 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25598 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25599 & 7, 7, 7, 7, 7, 8, 7, 8, 8,
25600 & 8, 8, 8, 0, 0, 0, 0, 0, 0,
25601 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25602 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25603 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25604 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25605 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25606 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25607 DATA ((ITAB(I,K),I=1,3),K=91,120) /
25608 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25609 & 0, 0, 0, 0, 0, 0, 3, 9, 0,
25610 & 1, 3, 3, 2, 3, 3, 7, 7, 9,
25611 & 7, 8, 9, 8, 8, 9, 7, 9, 9,
25612 & 8, 9, 9, 1, 1, 3, 1, 2, 3,
25613 & 2, 2, 3, 1, 3, 3, 2, 3, 3,
25614 & 3, 3, 3, 7, 7, 9, 7, 8, 9,
25615 & 8, 8, 9, 7, 9, 9, 8, 9, 9,
25616 & 9, 9, 9, 4, 7, 0, 4, 8, 0,
25617 & 2, 10, 0, 1, 10, 0, 4, 9, 0 /
25618 DATA ((ITAB(I,K),I=1,3),K=121,150) /
25619 & 3, 10, 0, 4, 10, 0, 4, 7, 0,
25620 & 4, 8, 0, 2, 10, 0, 1, 10, 0,
25621 & 4, 9, 0, 3, 10, 0, 4, 10, 0,
25622 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25623 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25624 & 0, 0, 0, 1, 2, 4, 1, 3, 4,
25625 & 2, 3, 4, 1, 1, 4, 0, 0, 0,
25626 & 2, 2, 4, 0, 0, 0, 0, 0, 0,
25627 & 3, 3, 4, 1, 4, 4, 2, 4, 4,
25628 & 3, 4, 4, 7, 8, 10, 7, 9, 10 /
25629 DATA ((ITAB(I,K),I=1,3),K=151,180) /
25630 & 8, 9, 10, 7, 7, 10, 0, 0, 0,
25631 & 8, 8, 10, 0, 0, 0, 0, 0, 0,
25632 & 9, 9, 10, 7, 10, 10, 8, 10, 10,
25633 & 9, 10, 10, 1, 1, 4, 1, 2, 4,
25634 & 2, 2, 4, 1, 3, 4, 2, 3, 4,
25635 & 3, 3, 4, 1, 4, 4, 2, 4, 4,
25636 & 3, 4, 4, 4, 4, 4, 7, 7, 10,
25637 & 7, 8, 10, 8, 8, 10, 7, 9, 10,
25638 & 8, 9, 10, 9, 9, 10, 7, 10, 10,
25639 & 8, 10, 10, 9, 10, 10, 10, 10, 10 /
25640 DATA ((ITAB(I,K),I=1,3),K=181,210) /
25641 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25642 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25643 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25644 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25645 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25646 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25647 & 0, 0, 0, 0, 0, 0, 1, 7, 0,
25648 & 2, 8, 0, 1, 7, 0, 2, 8, 0,
25649 & 0, 0, 0, 0, 0, 0, 0, 0, 0,
25650 & 0, 0, 0, 0, 0, 0, 0, 0, 0 /
25651 DATA IDOLD /0/
25652
25653 ONE = 1.0D0
25654 IF (ITAB(1,IDBAMJ).LE.200) THEN
25655 ID = ITAB(K,IDBAMJ)
25656 ELSE
25657 IF(IDOLD.NE.IDBAMJ) THEN
25658 IT = AINT((ITAB(2,IDBAMJ)-ITAB(1,IDBAMJ)+0.999999D0)*
25659 & DT_RNDM(ONE)+ITAB(1,IDBAMJ))
25660 ELSE
25661 IDOLD = 0
25662 ENDIF
25663 ID = ITAB(K,IT)
25664 ENDIF
25665 IDOLD = IDBAMJ
25666 IDT_IBJQUA = ID
25667
25668 RETURN
25669 END
25670
25671*$ CREATE IDT_ICIHAD.FOR
25672*COPY IDT_ICIHAD
25673*
25674*===icihad=============================================================*
25675*
25676 INTEGER FUNCTION IDT_ICIHAD(MCIND)
25677
25678************************************************************************
25679* Conversion of particle index PDG proposal --> BAMJET-index scheme *
25680* This is a completely new version dated 25.10.95. *
25681* Renamed to be not in conflict with the modified PHOJET-version *
25682************************************************************************
25683
25684 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25685 SAVE
25686
25687* hadron index conversion (BAMJET <--> PDG)
25688 COMMON /DTHAIC/ IPDG2(2,7),IBAM2(2,7),IPDG3(2,22),IBAM3(2,22),
25689 & IPDG4(2,29),IBAM4(2,29),IPDG5(2,19),IBAM5(2,19),
25690 & IAMCIN(210)
25691
25692 IDT_ICIHAD = 0
25693 KPDG = ABS(MCIND)
25694 IF ((KPDG.EQ.0).OR.(KPDG.GT.70000)) RETURN
25695 IF (MCIND.LT.0) THEN
25696 JSIGN = 1
25697 ELSE
25698 JSIGN = 2
25699 ENDIF
25700 IF (KPDG.GE.10000) THEN
25701 DO 1 I=1,19
25702 IDT_ICIHAD = IBAM5(JSIGN,I)
25703 IF (IPDG5(JSIGN,I).EQ.MCIND) GOTO 5
25704 IDT_ICIHAD = 0
25705 1 CONTINUE
25706 ELSEIF (KPDG.GE.1000) THEN
25707 DO 2 I=1,29
25708 IDT_ICIHAD = IBAM4(JSIGN,I)
25709 IF (IPDG4(JSIGN,I).EQ.MCIND) GOTO 5
25710 IDT_ICIHAD = 0
25711 2 CONTINUE
25712 ELSEIF (KPDG.GE.100) THEN
25713 DO 3 I=1,22
25714 IDT_ICIHAD = IBAM3(JSIGN,I)
25715 IF (IPDG3(JSIGN,I).EQ.MCIND) GOTO 5
25716 IDT_ICIHAD = 0
25717 3 CONTINUE
25718 ELSEIF (KPDG.GE.10) THEN
25719 DO 4 I=1,7
25720 IDT_ICIHAD = IBAM2(JSIGN,I)
25721 IF (IPDG2(JSIGN,I).EQ.MCIND) GOTO 5
25722 IDT_ICIHAD = 0
25723 4 CONTINUE
25724 ENDIF
25725 5 CONTINUE
25726
25727 RETURN
25728 END
25729
25730*$ CREATE IDT_IPDGHA.FOR
25731*COPY IDT_IPDGHA
25732*
25733*===ipdgha=============================================================*
25734*
25735 INTEGER FUNCTION IDT_IPDGHA(MCIND)
25736
25737************************************************************************
25738* Conversion of particle index BAMJET-index scheme --> PDG proposal *
25739* Adopted from the original by S. Roesler. This version dated 12.5.95 *
25740* Renamed to be not in conflict with the modified PHOJET-version *
25741************************************************************************
25742
25743 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25744 SAVE
25745
25746* hadron index conversion (BAMJET <--> PDG)
25747 COMMON /DTHAIC/ IPDG2(2,7),IBAM2(2,7),IPDG3(2,22),IBAM3(2,22),
25748 & IPDG4(2,29),IBAM4(2,29),IPDG5(2,19),IBAM5(2,19),
25749 & IAMCIN(210)
25750
25751 IDT_IPDGHA = IAMCIN(MCIND)
25752
25753 RETURN
25754 END
25755
25756*$ CREATE DT_FLAHAD.FOR
25757*COPY DT_FLAHAD
25758*
25759*===flahad=============================================================*
25760*
25761 SUBROUTINE DT_FLAHAD(ID,IF1,IF2,IF3)
25762
25763************************************************************************
25764* sampling of FLAvor composition for HADrons/photons *
25765* ID BAMJET-id of hadron *
25766* IF1,2,3 flavor content *
25767* (u,d,s: 1,2,3; au,ad,as: -1,-1,-3) *
25768* Note: - u,d numbering as in BAMJET *
25769* - ID .le. 30 !! *
25770* This version dated 12.03.96 is written by S. Roesler *
25771************************************************************************
25772
25773 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25774 SAVE
25775
25776* auxiliary common for reggeon exchange (DTUNUC 1.x)
25777 COMMON /DTQUAR/ IQECHR(-6:6),IQBCHR(-6:6),IQICHR(-6:6),
25778 & IQSCHR(-6:6),IQCCHR(-6:6),IQUCHR(-6:6),
25779 & IQTCHR(-6:6),MQUARK(3,39)
25780
25781 DIMENSION JSEL(3,6)
25782 DATA JSEL/ 1,2,3, 2,3,1, 3,1,2, 1,3,2, 2,1,3, 3,2,1/
25783
25784 ONE = 1.0D0
25785 IF (ID.EQ.7) THEN
25786* photon (charge dependent flavour sampling)
25787 K = INT(DT_RNDM(ONE)*6.D0+1.D0)
25788 IF (K.LE.4) THEN
25789 IF1 = 2
25790 IF2 = -2
25791 ELSE IF(K.EQ.5) THEN
25792 IF1 = 1
25793 IF2 = -1
25794 ELSE
25795 IF1 = 3
25796 IF2 = -3
25797 ENDIF
25798 IF(DT_RNDM(ONE).LT.0.5D0) THEN
25799 K = IF1
25800 IF1 = IF2
25801 IF2 = K
25802 ENDIF
25803 IF3 = 0
25804 ELSE
25805* hadron
25806 IX = INT(1.0D0+5.99999D0*DT_RNDM(ONE))
25807 IF1 = MQUARK(JSEL(1,IX),ID)
25808 IF2 = MQUARK(JSEL(2,IX),ID)
25809 IF3 = MQUARK(JSEL(3,IX),ID)
25810 IF ((IF1.EQ.0).AND.(IF3.NE.0)) THEN
25811 IF1 = IF3
25812 IF3 = 0
25813 ELSEIF ((IF2.EQ.0).AND.(IF3.NE.0)) THEN
25814 IF2 = IF3
25815 IF3 = 0
25816 ENDIF
25817 ENDIF
25818
25819 RETURN
25820 END
25821
25822*$ CREATE IDT_MCHAD.FOR
25823*COPY IDT_MCHAD
25824*
25825*===mchad==============================================================*
25826*
25827 INTEGER FUNCTION IDT_MCHAD(ITDTU)
25828
25829************************************************************************
25830* Conversion of particle index BAMJET-index scheme --> HADRIN index s. *
25831* Adopted from the original by S. Roesler. This version dated 6.5.95 *
25832* *
25833* Last change 28.12.2006 by S. Roesler. *
25834************************************************************************
25835
25836 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25837 SAVE
25838
25839 DIMENSION ITRANS(210)
25840 DATA ITRANS / 1, 2, -1, -1, -1, -1, -1, 8, 9, -1, -1, 24, 13, 14,
25841 &15, 16, 8, 9, 25, 8, 1, 8, 23, 24, 25, -1, -1, -1, -1, -1, 23, 13,
25842 &23, 14, 23, 15, 24, 16, 25, 15, 24, 16, 25, 15, 24, 16, 25, 1, 8,
25843 &8, 8, 1, 1, 1, 8, 8, 1, 1, 8, 8, 1, 8, 1, 8, 1, 8, 2, 2, 9, 9, 2,
25844 &2, 9, 9, 2, 9, 1, 13, 23, 14, 1, 1, 8, 8, 1, 1, 23, 14, 1, 8, 1,
25845 &8, 1, 8, 23, 23, 8, 8, 2, 9, 9, 9, 9, 1, 8, 8, 8, 8, 8, 2, 9, 9,
25846 &9, 9, 9, 85*- 1,7*-1,1,8,-1/
25847
25848 IF ( ITDTU .GT. 0 ) THEN
25849 IDT_MCHAD = ITRANS(ITDTU)
25850 ELSE
25851 IDT_MCHAD = -1
25852 END IF
25853
25854 RETURN
25855 END
25856
25857************************************************************************
25858* *
25859* 3) Energy-momentum and quantum number conservation check routines *
25860* *
25861************************************************************************
25862*$ CREATE DT_EMC1.FOR
25863*COPY DT_EMC1
25864*
25865*===emc1===============================================================*
25866*
25867 SUBROUTINE DT_EMC1(PP1,PP2,PT1,PT2,MODE,IPOS,IREJ)
25868
25869************************************************************************
25870* This version dated 15.12.94 is written by S. Roesler *
25871************************************************************************
25872
25873 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25874 SAVE
25875 PARAMETER ( LINP = 10 ,
25876 & LOUT = 6 ,
25877 & LDAT = 9 )
25878 PARAMETER (TINY10=1.0D-10)
25879
25880 DIMENSION PP1(4),PP2(4),PT1(4),PT2(4)
25881
25882 IREJ = 0
25883
25884 IF ((MODE.EQ.0).OR.(ABS(MODE).GT.3))
25885 & WRITE(LOUT,'(1X,A,I6)')'EMC1: not supported MODE ',MODE
25886
25887 IF ((MODE.GT.0).AND.(MODE.LT.3)) THEN
25888 IF (MODE.EQ.1) THEN
25889 CALL DT_EVTEMC(PP1(1),PP1(2),PP1(3),PP1(4),1,IDUM,IDUM)
25890 ELSEIF (MODE.EQ.2) THEN
25891 CALL DT_EVTEMC(PP1(1),PP1(2),PP1(3),PP1(4),2,IDUM,IDUM)
25892 ENDIF
25893 CALL DT_EVTEMC(PP2(1),PP2(2),PP2(3),PP2(4),2,IDUM,IDUM)
25894 CALL DT_EVTEMC(PT1(1),PT1(2),PT1(3),PT1(4),2,IDUM,IDUM)
25895 CALL DT_EVTEMC(PT2(1),PT2(2),PT2(3),PT2(4),2,IDUM,IDUM)
25896 ELSEIF (MODE.LT.0) THEN
25897 IF (MODE.EQ.-1) THEN
25898 CALL DT_EVTEMC(-PP1(1),-PP1(2),-PP1(3),-PP1(4),1,IDUM,IDUM)
25899 ELSEIF (MODE.EQ.-2) THEN
25900 CALL DT_EVTEMC(-PP1(1),-PP1(2),-PP1(3),-PP1(4),2,IDUM,IDUM)
25901 ENDIF
25902 CALL DT_EVTEMC(-PP2(1),-PP2(2),-PP2(3),-PP2(4),2,IDUM,IDUM)
25903 CALL DT_EVTEMC(-PT1(1),-PT1(2),-PT1(3),-PT1(4),2,IDUM,IDUM)
25904 CALL DT_EVTEMC(-PT2(1),-PT2(2),-PT2(3),-PT2(4),2,IDUM,IDUM)
25905 ENDIF
25906
25907 IF (ABS(MODE).EQ.3) THEN
25908 CALL DT_EVTEMC(DUM,DUM,DUM,DUM,3,IPOS,IREJ1)
25909 IF (IREJ1.NE.0) GOTO 9999
25910 ENDIF
25911 RETURN
25912
25913 9999 CONTINUE
25914 IREJ = 1
25915 RETURN
25916 END
25917
25918*$ CREATE DT_EMC2.FOR
25919*COPY DT_EMC2
25920*
25921*===emc2===============================================================*
25922*
25923 SUBROUTINE DT_EMC2(IP1,IP2,IP3,IP4,IP5,MP,IN1,IN2,IN3,IN4,IN5,MN,
25924 & MODE,IPOS,IREJ)
25925
25926************************************************************************
25927* MODE = 1 energy-momentum cons. check *
25928* = 2 flavor-cons. check *
25929* = 3 energy-momentum & flavor cons. check *
25930* = 4 energy-momentum & charge cons. check *
25931* = 5 energy-momentum & flavor & charge cons. check *
25932* This version dated 16.01.95 is written by S. Roesler *
25933************************************************************************
25934
25935 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
25936 SAVE
25937 PARAMETER ( LINP = 10 ,
25938 & LOUT = 6 ,
25939 & LDAT = 9 )
25940 PARAMETER (TINY10=1.0D-10,ZERO=0.0D0)
25941
25942* event history
25943 PARAMETER (NMXHKK=200000)
25944 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
25945 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
25946 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
25947* extended event history
25948 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
25949 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
25950 & IHIST(2,NMXHKK)
25951
25952 IREJ = 0
25953 IREJ1 = 0
25954 IREJ2 = 0
25955 IREJ3 = 0
25956
25957 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4).OR.(MODE.EQ.5))
25958 & CALL DT_EVTEMC(ZERO,ZERO,ZERO,ZERO,1,IDUM,IDUM)
25959 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25960 & CALL DT_EVTFLC(0,IDUM,1,IDUM,IDUM)
25961 IF ((MODE.EQ.4).OR.(MODE.EQ.5)) CALL DT_EVTCHG(IDUM,1,IDUM,IDUM)
25962 DO 1 I=1,NHKK
25963 IF ((ISTHKK(I).EQ.IP1).OR.(ISTHKK(I).EQ.IP2).OR.
25964 & (ISTHKK(I).EQ.IP3).OR.(ISTHKK(I).EQ.IP4).OR.
25965 & (ISTHKK(I).EQ.IP5)) THEN
25966 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4)
25967 & .OR.(MODE.EQ.5))
25968 & CALL DT_EVTEMC(PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
25969 & 2,IDUM,IDUM)
25970 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25971 & CALL DT_EVTFLC(IDHKK(I),MP,2,IDUM,IDUM)
25972 IF ((MODE.EQ.4).OR.(MODE.EQ.5))
25973 & CALL DT_EVTCHG(IDHKK(I),2,IDUM,IDUM)
25974 ENDIF
25975 IF ((ISTHKK(I).EQ.IN1).OR.(ISTHKK(I).EQ.IN2).OR.
25976 & (ISTHKK(I).EQ.IN3).OR.(ISTHKK(I).EQ.IN4).OR.
25977 & (ISTHKK(I).EQ.IN5)) THEN
25978 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4)
25979 & .OR.(MODE.EQ.5))
25980 & CALL DT_EVTEMC(-PHKK(1,I),-PHKK(2,I),-PHKK(3,I),-PHKK(4,I),
25981 & 2,IDUM,IDUM)
25982 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25983 & CALL DT_EVTFLC(IDHKK(I),MN,-2,IDUM,IDUM)
25984 IF ((MODE.EQ.4).OR.(MODE.EQ.5))
25985 & CALL DT_EVTCHG(IDHKK(I),-2,IDUM,IDUM)
25986 ENDIF
25987 1 CONTINUE
25988 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.(MODE.EQ.4).OR.(MODE.EQ.5))
25989 & CALL DT_EVTEMC(DUM,DUM,DUM,DUM,5,IPOS,IREJ1)
25990 IF ((MODE.EQ.2).OR.(MODE.EQ.3).OR.(MODE.EQ.5))
25991 & CALL DT_EVTFLC(0,IDUM,3,IPOS,IREJ2)
25992 IF ((MODE.EQ.4).OR.(MODE.EQ.5)) CALL DT_EVTCHG(IDUM,3,IPOS,IREJ3)
25993 IF ((IREJ1.NE.0).OR.(IREJ2.NE.0).OR.(IREJ3.NE.0)) GOTO 9999
25994
25995 RETURN
25996
25997 9999 CONTINUE
25998 IREJ = 1
25999 RETURN
26000 END
26001
26002*$ CREATE DT_EVTEMC.FOR
26003*COPY DT_EVTEMC
26004*
26005*===evtemc=============================================================*
26006*
26007 SUBROUTINE DT_EVTEMC(PXIO,PYIO,PZIO,EIO,IMODE,IPOS,IREJ)
26008
26009************************************************************************
26010* This version dated 13.12.94 is written by S. Roesler *
26011************************************************************************
26012
26013 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26014 SAVE
26015 PARAMETER ( LINP = 10 ,
26016 & LOUT = 6 ,
26017 & LDAT = 9 )
26018 PARAMETER (TINY1=1.0D-1,TINY2=1.0D-2,TINY4=1.0D-4,TINY10=1.0D-10,
26019 & ZERO=0.0D0)
26020
26021* event history
26022 PARAMETER (NMXHKK=200000)
26023 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26024 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26025 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26026* flags for input different options
26027 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
26028 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
26029 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
26030
26031 IREJ = 0
26032
26033 MODE = IMODE
26034 CHKLEV = TINY10
26035 IF (MODE.EQ.4) THEN
26036 CHKLEV = TINY2
26037 MODE = 3
26038 ELSEIF (MODE.EQ.5) THEN
26039 CHKLEV = TINY1
26040 MODE = 3
26041 ELSEIF (MODE.EQ.-1) THEN
26042 CHKLEV = EIO
26043 MODE = 3
26044 ENDIF
26045
26046 IF (ABS(MODE).EQ.3) THEN
26047 PXDEV = PX
26048 PYDEV = PY
26049 PZDEV = PZ
26050 EDEV = E
26051 IF ((IFRAG(1).EQ.2).AND.(CHKLEV.LT.TINY4)) CHKLEV = TINY4
26052 IF ((ABS(PXDEV).GT.CHKLEV).OR.(ABS(PYDEV).GT.CHKLEV).OR.
26053 & (ABS(PZDEV).GT.CHKLEV).OR.(ABS(EDEV).GT.CHKLEV)) THEN
26054 IF (IOULEV(2).GT.0) WRITE(LOUT,'(1X,A,I4,A,I8,A,/,4G10.3)')
26055 & 'EVTEMC: energy-momentum cons. failure at pos. ',IPOS,
26056 & ' event ',NEVHKK,
26057 & ' ! ',PXDEV,PYDEV,PZDEV,EDEV
26058 PX = 0.0D0
26059 PY = 0.0D0
26060 PZ = 0.0D0
26061 E = 0.0D0
26062 GOTO 9999
26063 ENDIF
26064 PX = 0.0D0
26065 PY = 0.0D0
26066 PZ = 0.0D0
26067 E = 0.0D0
26068 RETURN
26069 ENDIF
26070
26071 IF (MODE.EQ.1) THEN
26072 PX = 0.0D0
26073 PY = 0.0D0
26074 PZ = 0.0D0
26075 E = 0.0D0
26076 ENDIF
26077
26078 PX = PX+PXIO
26079 PY = PY+PYIO
26080 PZ = PZ+PZIO
26081 E = E+EIO
26082
26083 RETURN
26084
26085 9999 CONTINUE
26086 IREJ = 1
26087 RETURN
26088 END
26089
26090*$ CREATE DT_EVTFLC.FOR
26091*COPY DT_EVTFLC
26092*
26093*===evtflc=============================================================*
26094*
26095 SUBROUTINE DT_EVTFLC(ID,ID1,MODE,IPOS,IREJ)
26096
26097************************************************************************
26098* Flavor conservation check. *
26099* ID identity of particle *
26100* ID1 = 1 ID for q,aq,qq,aqaq in PDG-numbering scheme *
26101* = 2 ID for particle/resonance in BAMJET numbering scheme *
26102* = 3 ID for particle/resonance in PDG numbering scheme *
26103* MODE = 1 initialization and add ID *
26104* =-1 initialization and subtract ID *
26105* = 2 add ID *
26106* =-2 subtract ID *
26107* = 3 check flavor cons. *
26108* IPOS flag to give position of call of EVTFLC to output *
26109* unit in case of violation *
26110* This version dated 10.01.95 is written by S. Roesler *
26111************************************************************************
26112
26113 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26114 SAVE
26115 PARAMETER ( LINP = 10 ,
26116 & LOUT = 6 ,
26117 & LDAT = 9 )
26118 PARAMETER (TINY10=1.0D-10)
26119
26120 IREJ = 0
26121
26122 IF (MODE.EQ.3) THEN
26123 IF (IFL.NE.0) THEN
26124 WRITE(LOUT,'(1X,A,I3,A,I3)')
26125 & 'EVTFLC: flavor-conservation failure at pos. ',IPOS,
26126 & ' ! IFL = ',IFL
26127 IFL = 0
26128 GOTO 9999
26129 ENDIF
26130 IFL = 0
26131 RETURN
26132 ENDIF
26133
26134 IF (MODE.EQ.1) IFL = 0
26135 IF (ID.EQ.0) RETURN
26136
26137 IF (ID1.EQ.1) THEN
26138 IDD = ABS(ID)
26139 NQ = 1
26140 IF ((IDD.GE.100).AND.(IDD.LT.1000)) NQ = 2
26141 IF (IDD.GE.1000) NQ = 3
26142 DO 1 I=1,NQ
26143 IFBAM = IDT_IPDG2B(ID,I,2)
26144 IF (ABS(IFBAM).EQ.1) THEN
26145 IFBAM = SIGN(2,IFBAM)
26146 ELSEIF (ABS(IFBAM).EQ.2) THEN
26147 IFBAM = SIGN(1,IFBAM)
26148 ENDIF
26149 IF (MODE.GT.0) THEN
26150 IFL = IFL+IFBAM
26151 ELSE
26152 IFL = IFL-IFBAM
26153 ENDIF
26154 1 CONTINUE
26155 RETURN
26156 ENDIF
26157
26158 IDD = ID
26159 IF (ID1.EQ.3) IDD = IDT_ICIHAD(ID)
26160 IF ((ID1.EQ.2).OR.(ID1.EQ.3)) THEN
26161 DO 2 I=1,3
26162 IF (MODE.GT.0) THEN
26163 IFL = IFL+IDT_IQUARK(I,IDD)
26164 ELSE
26165 IFL = IFL-IDT_IQUARK(I,IDD)
26166 ENDIF
26167 2 CONTINUE
26168 ENDIF
26169 RETURN
26170
26171 9999 CONTINUE
26172 IREJ = 1
26173 RETURN
26174 END
26175
26176*$ CREATE DT_EVTCHG.FOR
26177*COPY DT_EVTCHG
26178*
26179*===evtchg=============================================================*
26180*
26181 SUBROUTINE DT_EVTCHG(ID,MODE,IPOS,IREJ)
26182
26183************************************************************************
26184* Charge conservation check. *
26185* ID identity of particle (PDG-numbering scheme) *
26186* MODE = 1 initialization *
26187* =-2 subtract ID-charge *
26188* = 2 add ID-charge *
26189* = 3 check charge cons. *
26190* IPOS flag to give position of call of EVTCHG to output *
26191* unit in case of violation *
26192* This version dated 10.01.95 is written by S. Roesler *
26193* Last change: s.r. 21.01.01 *
26194************************************************************************
26195
26196 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26197 SAVE
26198 PARAMETER ( LINP = 10 ,
26199 & LOUT = 6 ,
26200 & LDAT = 9 )
26201
26202* event history
26203 PARAMETER (NMXHKK=200000)
26204 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26205 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26206 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26207* particle properties (BAMJET index convention)
26208 CHARACTER*8 ANAME
26209 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
26210 & IICH(210),IIBAR(210),K1(210),K2(210)
26211
26212 IREJ = 0
26213
26214 IF (MODE.EQ.1) THEN
26215 ICH = 0
26216 IBAR = 0
26217 RETURN
26218 ENDIF
26219
26220 IF (MODE.EQ.3) THEN
26221 IF ((ICH.NE.0).OR.(IBAR.NE.0)) THEN
26222 WRITE(LOUT,'(1X,A,I3,A,2I3,A,I8)')
26223 & 'EVTCHG: charge/baryo.-cons. failure at pos. ',IPOS,
26224 & '! ICH/IBAR= ',ICH,IBAR,' event ',NEVHKK
26225 ICH = 0
26226 IBAR = 0
26227 GOTO 9999
26228 ENDIF
26229 ICH = 0
26230 IBAR = 0
26231 RETURN
26232 ENDIF
26233
26234 IF (ID.EQ.0) RETURN
26235
26236 IDD = IDT_ICIHAD(ID)
26237* modification 21.1.01: use intrinsic phojet-functions to determine charge
26238* and baryon number
26239C IF (IDD.GT.0) THEN
26240C IF (MODE.EQ.2) THEN
26241C ICH = ICH+IICH(IDD)
26242C IBAR = IBAR+IIBAR(IDD)
26243C ELSEIF (MODE.EQ.-2) THEN
26244C ICH = ICH-IICH(IDD)
26245C IBAR = IBAR-IIBAR(IDD)
26246C ENDIF
26247C ELSE
26248C WRITE(LOUT,'(1X,A,3I6)') 'EVTCHG: (IDD = 0 !), IDD,ID=',IDD,ID
26249C CALL DT_EVTOUT(4)
26250C STOP
26251C ENDIF
26252 IF (MODE.EQ.2) THEN
26253 ICH = ICH+IPHO_CHR3(ID,1)/3
26254 IBAR = IBAR+IPHO_BAR3(ID,1)/3
26255 ELSEIF (MODE.EQ.-2) THEN
26256 ICH = ICH-IPHO_CHR3(ID,1)/3
26257 IBAR = IBAR-IPHO_BAR3(ID,1)/3
26258 ENDIF
26259
26260 RETURN
26261
26262 9999 CONTINUE
26263 IREJ = 1
26264 RETURN
26265 END
26266
26267************************************************************************
26268* *
26269* 4) Transformations *
26270* *
26271************************************************************************
26272*$ CREATE DT_LTINI.FOR
26273*COPY DT_LTINI
26274*
26275*===ltini==============================================================*
26276*
26277 SUBROUTINE DT_LTINI(IDPR,IDTA,EPN0,PPN0,ECM0,MODE)
26278
26279************************************************************************
26280* Initializations of Lorentz-transformations, calculation of Lorentz- *
26281* parameters. *
26282* This version dated 13.11.95 is written by S. Roesler. *
26283************************************************************************
26284
26285 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26286 SAVE
26287 PARAMETER ( LINP = 10 ,
26288 & LOUT = 6 ,
26289 & LDAT = 9 )
26290 PARAMETER (TINY10=1.0D-10,TINY3=1.0D-3,
26291 & ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0)
26292
26293* Lorentz-parameters of the current interaction
26294 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
26295 & UMO,PPCM,EPROJ,PPROJ
26296* properties of photon/lepton projectiles
26297 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
26298* particle properties (BAMJET index convention)
26299 CHARACTER*8 ANAME
26300 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
26301 & IICH(210),IIBAR(210),K1(210),K2(210)
26302* nucleon-nucleon event-generator
26303 CHARACTER*8 CMODEL
26304 LOGICAL LPHOIN
26305 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
26306
26307 Q2 = VIRT
26308 IDP = IDPR
26309 IF (MCGENE.NE.3) THEN
26310* lepton-projectiles and PHOJET: initialize real photon instead
26311 IF ((IDPR.EQ. 3).OR.(IDPR.EQ. 4).OR.
26312 & (IDPR.EQ.10).OR.(IDPR.EQ.11).OR.
26313 & (IDPR.EQ. 5).OR.(IDPR.EQ. 6)) THEN
26314 IDP = 7
26315 Q2 = ZERO
26316 ENDIF
26317 ENDIF
26318 IDT = IDTA
26319 EPN = EPN0
26320 PPN = PPN0
26321 ECM = ECM0
26322 AMP = AAM(IDP)-SQRT(ABS(Q2))
26323 AMT = AAM(IDT)
26324 AMP2 = SIGN(AMP**2,AMP)
26325 AMT2 = AMT**2
26326 IF (ECM0.GT.ZERO) THEN
26327 EPN = (ECM**2-AMP2-AMT2)/(TWO*AMT)
26328 IF (AMP2.GT.ZERO) THEN
26329 PPN = SQRT((EPN+AMP)*(EPN-AMP))
26330 ELSE
26331 PPN = SQRT(EPN**2-AMP2)
26332 ENDIF
26333 ELSE
26334 IF ((EPN0.NE.ZERO).AND.(PPN0.EQ.ZERO)) THEN
26335 IF (IDP.EQ.7) EPN = ABS(EPN)
26336 IF (EPN.LT.ZERO) EPN = ABS(EPN)+AMP
26337 IF (AMP2.GT.ZERO) THEN
26338 PPN = SQRT((EPN+AMP)*(EPN-AMP))
26339 ELSE
26340 PPN = SQRT(EPN**2-AMP2)
26341 ENDIF
26342 ELSEIF ((PPN0.GT.ZERO).AND.(EPN0.EQ.ZERO)) THEN
26343 IF (AMP2.GT.ZERO) THEN
26344 EPN = PPN*SQRT(ONE+(AMP/PPN)**2)
26345 ELSE
26346 EPN = SQRT(PPN**2+AMP2)
26347 ENDIF
26348 ENDIF
26349 ECM = SQRT(AMP2+AMT2+TWO*AMT*EPN)
26350 ENDIF
26351 UMO = ECM
26352 EPROJ = EPN
26353 PPROJ = PPN
26354 IF (AMP2.GT.ZERO) THEN
26355 ETARG = (ECM**2-AMP2-AMT2)/(TWO*AMP)
26356 PTARG = -SQRT((ETARG+AMT)*(ETARG-AMT))
26357 ELSE
26358 ETARG = TINY10
26359 PTARG = TINY10
26360 ENDIF
26361* photon-projectiles (get momentum in cm-frame for virtuality Q^2)
26362 IF (IDP.EQ.7) THEN
26363 PGAMM(1) = ZERO
26364 PGAMM(2) = ZERO
26365 AMGAM = AMP
26366 AMGAM2 = AMP2
26367 IF (ECM0.GT.ZERO) THEN
26368 S = ECM0**2
26369 ELSE
26370 IF ((EPN0.NE.ZERO).AND.(PPN0.EQ.ZERO)) THEN
26371 S = AMGAM2+AMT2+TWO*AMT*ABS(EPN0)
26372 ELSEIF ((PPN0.GT.ZERO).AND.(EPN0.EQ.ZERO)) THEN
26373 S = AMGAM2+AMT2+TWO*AMT*SQRT(PPN0**2+AMGAM2)
26374 ENDIF
26375 ENDIF
26376 PGAMM(3) = SQRT( (S**2-TWO*AMGAM2*S-TWO*AMT2*S-TWO*AMGAM2*AMT2
26377 & +AMGAM2**2+AMT2**2)/(4.0D0*S) )
26378 PGAMM(4) = SQRT(AMGAM2+PGAMM(3)**2)
26379 IF (MODE.EQ.1) THEN
26380 PNUCL(1) = ZERO
26381 PNUCL(2) = ZERO
26382 PNUCL(3) = -PGAMM(3)
26383 PNUCL(4) = SQRT(S)-PGAMM(4)
26384 ENDIF
26385 ENDIF
26386 IF ((IDPR.EQ. 3).OR.(IDPR.EQ. 4).OR.
26387 & (IDPR.EQ.10).OR.(IDPR.EQ.11)) THEN
26388 PLEPT0(1) = ZERO
26389 PLEPT0(2) = ZERO
26390* neglect lepton masses
26391C AMLPT2 = AAM(IDPR)**2
26392 AMLPT2 = ZERO
26393*
26394 IF (ECM0.GT.ZERO) THEN
26395 S = ECM0**2
26396 ELSE
26397 IF ((EPN0.NE.ZERO).AND.(PPN0.EQ.ZERO)) THEN
26398 S = AMLPT2+AMT2+TWO*AMT*ABS(EPN0)
26399 ELSEIF ((PPN0.GT.ZERO).AND.(EPN0.EQ.ZERO)) THEN
26400 S = AMLPT2+AMT2+TWO*AMT*SQRT(PPN0**2+AMLPT2)
26401 ENDIF
26402 ENDIF
26403 PLEPT0(3) = SQRT( (S**2-TWO*AMLPT2*S-TWO*AMT2*S-TWO*AMLPT2*AMT2
26404 & +AMLPT2**2+AMT2**2)/(4.0D0*S) )
26405 PLEPT0(4) = SQRT(AMLPT2+PLEPT0(3)**2)
26406 PNUCL(1) = ZERO
26407 PNUCL(2) = ZERO
26408 PNUCL(3) = -PLEPT0(3)
26409 PNUCL(4) = SQRT(S)-PLEPT0(4)
26410 ENDIF
26411* Lorentz-parameter for transformation Lab. - projectile rest system
26412 IF ((IDP.EQ.7).OR.(AMP.LT.TINY10)) THEN
26413 GALAB = TINY10
26414 BGLAB = TINY10
26415 BLAB = TINY10
26416 ELSE
26417 GALAB = EPROJ/AMP
26418 BGLAB = PPROJ/AMP
26419 BLAB = BGLAB/GALAB
26420 ENDIF
26421* Lorentz-parameter for transf. proj. rest sys. - nucl.-nucl. cms.
26422 IF (IDP.EQ.7) THEN
26423 GACMS(1) = TINY10
26424 BGCMS(1) = TINY10
26425 ELSE
26426 GACMS(1) = (ETARG+AMP)/UMO
26427 BGCMS(1) = PTARG/UMO
26428 ENDIF
26429* Lorentz-parameter for transformation Lab. - nucl.-nucl. cms.
26430 GACMS(2) = (EPROJ+AMT)/UMO
26431 BGCMS(2) = PPROJ/UMO
26432 PPCM = GACMS(2)*PPROJ-BGCMS(2)*EPROJ
26433
26434 EPN0 = EPN
26435 PPN0 = PPN
26436 ECM0 = ECM
26437
26438 RETURN
26439 END
26440
26441*$ CREATE DT_LTRANS.FOR
26442*COPY DT_LTRANS
26443*
26444*===ltrans=============================================================*
26445*
26446 SUBROUTINE DT_LTRANS(PXI,PYI,PZI,PEI,PXO,PYO,PZO,PEO,ID,MODE)
26447
26448************************************************************************
26449* Lorentz-transformations. *
26450* MODE = 1(-1) projectile rest syst. --> Lab (back) *
26451* = 2(-2) projectile rest syst. --> nucl.-nucl.cms (back) *
26452* = 3(-3) target rest syst. (=Lab)--> nucl.-nucl.cms (back) *
26453* This version dated 01.11.95 is written by S. Roesler. *
26454************************************************************************
26455
26456 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26457 SAVE
26458 PARAMETER ( LINP = 10 ,
26459 & LOUT = 6 ,
26460 & LDAT = 9 )
26461 PARAMETER (TINY3=1.0D-3,ZERO=0.0D0,TWO=2.0D0)
26462
26463 PARAMETER (SQTINF=1.0D+15)
26464
26465* particle properties (BAMJET index convention)
26466 CHARACTER*8 ANAME
26467 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
26468 & IICH(210),IIBAR(210),K1(210),K2(210)
26469
26470 PXO = PXI
26471 PYO = PYI
26472 CALL DT_LTNUC(PZI,PEI,PZO,PEO,MODE)
26473
26474* check particle mass for consistency (numerical rounding errors)
26475 PO = SQRT(PXO*PXO+PYO*PYO+PZO*PZO)
26476 AMO2 = (PEO-PO)*(PEO+PO)
26477 AMORQ2 = AAM(ID)**2
26478 AMDIF2 = ABS(AMO2-AMORQ2)
26479 IF ((AMDIF2.GT.TINY3).AND.(PEO.LT.SQTINF).AND.(PO.GT.ZERO)) THEN
26480 DELTA = (AMORQ2-AMO2)/(TWO*(PEO+PO))
26481 PEO = PEO+DELTA
26482 PO1 = PO -DELTA
26483 PXO = PXO*PO1/PO
26484 PYO = PYO*PO1/PO
26485 PZO = PZO*PO1/PO
26486C WRITE(6,*) 'LTRANS corrected', AMDIF2,PZI,PEI,PZO,PEO,MODE,ID
26487 ENDIF
26488
26489 RETURN
26490 END
26491
26492*$ CREATE DT_LTNUC.FOR
26493*COPY DT_LTNUC
26494*
26495*===ltnuc==============================================================*
26496*
26497 SUBROUTINE DT_LTNUC(PIN,EIN,POUT,EOUT,MODE)
26498
26499************************************************************************
26500* Lorentz-transformations. *
26501* PIN longitudnal momentum (input) *
26502* EIN energy (input) *
26503* POUT transformed long. momentum (output) *
26504* EOUT transformed energy (output) *
26505* MODE = 1(-1) projectile rest syst. --> Lab (back) *
26506* = 2(-2) projectile rest syst. --> nucl.-nucl.cms (back) *
26507* = 3(-3) target rest syst. (=Lab)--> nucl.-nucl.cms (back) *
26508* This version dated 01.11.95 is written by S. Roesler. *
26509************************************************************************
26510
26511 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26512 SAVE
26513 PARAMETER ( LINP = 10 ,
26514 & LOUT = 6 ,
26515 & LDAT = 9 )
26516 PARAMETER (ZERO=0.0D0)
26517
26518* Lorentz-parameters of the current interaction
26519 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
26520 & UMO,PPCM,EPROJ,PPROJ
26521
26522 BDUM1 = ZERO
26523 BDUM2 = ZERO
26524 PDUM1 = ZERO
26525 PDUM2 = ZERO
26526 IF (ABS(MODE).EQ.1) THEN
26527 BG = -SIGN(BGLAB,DBLE(MODE))
26528 CALL DT_DALTRA(GALAB,BDUM1,BDUM2,-BG,PDUM1,PDUM2,PIN,EIN,
26529 & DUM1,DUM2,DUM3,POUT,EOUT)
26530 ELSEIF (ABS(MODE).EQ.2) THEN
26531 BG = SIGN(BGCMS(1),DBLE(MODE))
26532 CALL DT_DALTRA(GACMS(1),BDUM1,BDUM2,BG,PDUM1,PDUM2,PIN,EIN,
26533 & DUM1,DUM2,DUM3,POUT,EOUT)
26534 ELSEIF (ABS(MODE).EQ.3) THEN
26535 BG = -SIGN(BGCMS(2),DBLE(MODE))
26536 CALL DT_DALTRA(GACMS(2),BDUM1,BDUM2,BG,PDUM1,PDUM2,PIN,EIN,
26537 & DUM1,DUM2,DUM3,POUT,EOUT)
26538 ELSE
26539 WRITE(LOUT,1000) MODE
26540 1000 FORMAT(1X,'LTNUC: not supported mode (MODE = ',I3,')')
26541 EOUT = EIN
26542 POUT = PIN
26543 ENDIF
26544
26545 RETURN
26546 END
26547
26548*$ CREATE DT_DALTRA.FOR
26549*COPY DT_DALTRA
26550*
26551*===daltra=============================================================*
26552*
26553 SUBROUTINE DT_DALTRA(GA,BGX,BGY,BGZ,PCX,PCY,PCZ,EC,P,PX,PY,PZ,E)
26554
26555************************************************************************
26556* Arbitrary Lorentz-transformation. *
26557* Adopted from the original by S. Roesler. This version dated 15.01.95 *
26558************************************************************************
26559
26560 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26561 SAVE
26562 PARAMETER (ONE=1.0D0)
26563
26564 EP = PCX*BGX+PCY*BGY+PCZ*BGZ
26565 PE = EP/(GA+ONE)+EC
26566 PX = PCX+BGX*PE
26567 PY = PCY+BGY*PE
26568 PZ = PCZ+BGZ*PE
26569 P = SQRT(PX*PX+PY*PY+PZ*PZ)
26570 E = GA*EC+EP
26571
26572 RETURN
26573 END
26574
26575*$ CREATE DT_DTRAFO.FOR
26576*COPY DT_DTRAFO
26577*
26578*====dtrafo============================================================*
26579*
26580 SUBROUTINE DT_DTRAFO(GAM,BGAM,CX,CY,CZ,COD,COF,SIF,P,ECM,
26581 & PL,CXL,CYL,CZL,EL)
26582
26583C LORENTZ TRANSFORMATION INTO THE LAB - SYSTEM
26584
26585 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26586 SAVE
26587
26588 IF (ABS(COD).GT.1.0D0) COD = SIGN(1.0D0,COD)
26589 SID = SQRT(1.D0-COD*COD)
26590 PLX = P*SID*COF
26591 PLY = P*SID*SIF
26592 PCMZ = P*COD
26593 PLZ = GAM*PCMZ+BGAM*ECM
26594 PL = SQRT(PLX*PLX+PLY*PLY+PLZ*PLZ)
26595 EL = GAM*ECM+BGAM*PCMZ
26596C ROTATION INTO THE ORIGINAL DIRECTION
26597 COZ = PLZ/PL
26598 SIZ = SQRT(1.D0-COZ**2)
26599 CALL DT_STTRAN(CX,CY,CZ,COZ,SIZ,SIF,COF,CXL,CYL,CZL)
26600
26601 RETURN
26602 END
26603
26604*$ CREATE DT_STTRAN.FOR
26605*COPY DT_STTRAN
26606*
26607*====sttran============================================================*
26608*
26609 SUBROUTINE DT_STTRAN(XO,YO,ZO,CDE,SDE,SFE,CFE,X,Y,Z)
26610
26611 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26612 SAVE
26613 DATA ANGLSQ/1.D-30/
26614************************************************************************
26615* VERSION BY J. RANFT *
26616* LEIPZIG *
26617* *
26618* THIS IS A SUBROUTINE OF FLUKA TO GIVE NEW DIRECTION COSINES *
26619* *
26620* INPUT VARIABLES: *
26621* XO,YO,ZO = ORIGINAL DIRECTION COSINES *
26622* CDE,SDE = COSINE AND SINE OF THE POLAR (THETA) *
26623* ANGLE OF "SCATTERING" *
26624* SDE = SINE OF THE POLAR (THETA) ANGLE OF "SCATTERING" *
26625* SFE,CFE = SINE AND COSINE OF THE AZIMUTHAL (PHI) ANGLE *
26626* OF "SCATTERING" *
26627* *
26628* OUTPUT VARIABLES: *
26629* X,Y,Z = NEW DIRECTION COSINES *
26630* *
26631* ROTATION OF COORDINATE SYSTEM (SEE CERN 64-47 ) *
26632************************************************************************
26633*
26634*
26635* Changed by A. Ferrari
26636*
26637* IF (ABS(XO)-0.0001D0) 1,1,2
26638* 1 IF (ABS(YO)-0.0001D0) 3,3,2
26639* 3 CONTINUE
26640 A = XO**2 + YO**2
26641 IF ( A .LT. ANGLSQ ) THEN
26642 X=SDE*CFE
26643 Y=SDE*SFE
26644 Z=CDE*ZO
26645 ELSE
26646 XI=SDE*CFE
26647 YI=SDE*SFE
26648 ZI=CDE
26649 A=SQRT(A)
26650 X=-YO*XI/A-ZO*XO*YI/A+XO*ZI
26651 Y=XO*XI/A-ZO*YO*YI/A+YO*ZI
26652 Z=A*YI+ZO*ZI
26653 ENDIF
26654
26655 RETURN
26656 END
26657
26658*$ CREATE DT_MYTRAN.FOR
26659*COPY DT_MYTRAN
26660*
26661*===mytran=============================================================*
26662*
26663 SUBROUTINE DT_MYTRAN(IMODE,XO,YO,ZO,CDE,SDE,CFE,SFE,X,Y,Z)
26664
26665************************************************************************
26666* This subroutine rotates the coordinate frame *
26667* a) theta around y *
26668* b) phi around z if IMODE = 1 *
26669* *
26670* x' cos(ph) -sin(ph) 0 cos(th) 0 sin(th) x *
26671* y' = A B = sin(ph) cos(ph) 0 . 0 1 0 y *
26672* z' 0 0 1 -sin(th) 0 cos(th) z *
26673* *
26674* and vice versa if IMODE = 0. *
26675* This version dated 5.4.94 is based on the original version DTRAN *
26676* by J. Ranft and is written by S. Roesler. *
26677************************************************************************
26678
26679 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26680 SAVE
26681 PARAMETER ( LINP = 10 ,
26682 & LOUT = 6 ,
26683 & LDAT = 9 )
26684
26685 IF (IMODE.EQ.1) THEN
26686 X= CDE*CFE*XO-SFE*YO+SDE*CFE*ZO
26687 Y= CDE*SFE*XO+CFE*YO+SDE*SFE*ZO
26688 Z=-SDE *XO +CDE *ZO
26689 ELSE
26690 X= CDE*CFE*XO+CDE*SFE*YO-SDE*ZO
26691 Y= -SFE*XO+CFE*YO
26692 Z= SDE*CFE*XO+SDE*SFE*YO+CDE*ZO
26693 ENDIF
26694 RETURN
26695 END
26696
26697*$ CREATE DT_LT2LAO.FOR
26698*COPY DT_LT2LAO
26699*
26700*===lt2lab=============================================================*
26701*
26702 SUBROUTINE DT_LT2LAO
26703
26704************************************************************************
26705* Lorentz-transformation to lab-system. This subroutine scans DTEVT1 *
26706* for final state particles/fragments defined in nucleon-nucleon-cms *
26707* and transforms them back to the lab. *
26708* This version dated 16.11.95 is written by S. Roesler *
26709************************************************************************
26710
26711 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26712 SAVE
26713 PARAMETER ( LINP = 10 ,
26714 & LOUT = 6 ,
26715 & LDAT = 9 )
26716
26717* event history
26718 PARAMETER (NMXHKK=200000)
26719 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26720 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26721 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26722* extended event history
26723 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
26724 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
26725 & IHIST(2,NMXHKK)
26726
26727 NEND = NHKK
26728 NPOINT(5) = NHKK+1
26729 IF ( (NPOINT(4).EQ.0).OR.(NEND.LT.NPOINT(4)) ) RETURN
26730 DO 1 I=NPOINT(4),NEND
26731C DO 1 I=1,NEND
26732 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
26733 & (ISTHKK(I).EQ.1001)) THEN
26734 CALL DT_LTNUC(PHKK(3,I),PHKK(4,I),PZ,PE,-3)
26735 NOB = NOBAM(I)
26736 CALL DT_EVTPUT(ISTHKK(I),IDHKK(I),I,0,PHKK(1,I),PHKK(2,I),
26737 & PZ,PE,IDRES(I),IDXRES(I),IDCH(I))
26738 IF ((ISTHKK(I).EQ.1000).OR.(ISTHKK(I).EQ.1001)) THEN
26739 ISTHKK(I) = 3*ISTHKK(I)
26740 NOBAM(NHKK) = NOB
26741 ELSE
26742 IF (ISTHKK(I).EQ.-1) NOBAM(NHKK) = NOB
26743 ISTHKK(I) = SIGN(3,ISTHKK(I))
26744 ENDIF
26745 JDAHKK(1,I) = NHKK
26746 ENDIF
26747 1 CONTINUE
26748
26749 RETURN
26750 END
26751
26752*$ CREATE DT_LT2LAB.FOR
26753*COPY DT_LT2LAB
26754*
26755*===lt2lab=============================================================*
26756*
26757 SUBROUTINE DT_LT2LAB
26758
26759************************************************************************
26760* Lorentz-transformation to lab-system. This subroutine scans DTEVT1 *
26761* for final state particles/fragments defined in nucleon-nucleon-cms *
26762* and transforms them to the lab. *
26763* This version dated 07.01.96 is written by S. Roesler *
26764************************************************************************
26765
26766 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26767 SAVE
26768 PARAMETER ( LINP = 10 ,
26769 & LOUT = 6 ,
26770 & LDAT = 9 )
26771
26772* event history
26773 PARAMETER (NMXHKK=200000)
26774 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
26775 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
26776 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
26777* extended event history
26778 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
26779 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
26780 & IHIST(2,NMXHKK)
26781
26782 IF ( (NPOINT(4).EQ.0).OR.(NHKK.LT.NPOINT(4)) ) RETURN
26783 DO 1 I=NPOINT(4),NHKK
26784 IF ((ABS(ISTHKK(I)).EQ.1).OR.(ISTHKK(I).EQ.1000).OR.
26785 & (ISTHKK(I).EQ.1001)) THEN
430525dd 26786
9aaba0d6 26787 CALL DT_LTNUC(PHKK(3,I),PHKK(4,I),PZ,PE,-3)
26788 PHKK(3,I) = PZ
26789 PHKK(4,I) = PE
26790 ENDIF
26791 1 CONTINUE
26792
26793 RETURN
26794 END
26795
26796************************************************************************
26797* *
26798* 5) Sampling from distributions *
26799* *
26800************************************************************************
26801*$ CREATE IDT_NPOISS.FOR
26802*COPY IDT_NPOISS
26803*
26804*===npoiss=============================================================*
26805*
26806 INTEGER FUNCTION IDT_NPOISS(AVN)
26807
26808************************************************************************
26809* Sample according to Poisson distribution with Poisson parameter AVN. *
26810* The original version written by J. Ranft. *
26811* This version dated 11.1.95 is written by S. Roesler. *
26812************************************************************************
26813
26814 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26815 SAVE
26816 PARAMETER ( LINP = 10 ,
26817 & LOUT = 6 ,
26818 & LDAT = 9 )
26819
26820 EXPAVN = EXP(-AVN)
26821 K = 1
26822 A = 1.0D0
26823
26824 10 CONTINUE
26825 A = DT_RNDM(A)*A
26826 IF (A.GE.EXPAVN) THEN
26827 K = K+1
26828 GOTO 10
26829 ENDIF
26830 IDT_NPOISS = K-1
26831
26832 RETURN
26833 END
26834
26835*$ CREATE DT_SAMPXB.FOR
26836*COPY DT_SAMPXB
26837*
26838*===sampxb=============================================================*
26839*
26840 DOUBLE PRECISION FUNCTION DT_SAMPXB(X1,X2,B)
26841
26842************************************************************************
26843* Sampling from f(x)=1./SQRT(X**2+B**2) between x1 and x2. *
26844* Processed by S. Roesler, 6.5.95 *
26845************************************************************************
26846
26847 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26848 SAVE
26849 PARAMETER (TWO=2.0D0)
26850
26851 A1 = LOG(X1+SQRT(X1**2+B**2))
26852 A2 = LOG(X2+SQRT(X2**2+B**2))
26853 AN = A2-A1
26854 A = AN*DT_RNDM(A1)+A1
26855 BB = EXP(A)
26856 DT_SAMPXB = (BB**2-B**2)/(TWO*BB)
26857
26858 RETURN
26859 END
26860
26861*$ CREATE DT_SAMPEX.FOR
26862*COPY DT_SAMPEX
26863*
26864*===sampex=============================================================*
26865*
26866 DOUBLE PRECISION FUNCTION DT_SAMPEX(X1,X2)
26867
26868************************************************************************
26869* Sampling from f(x)=1./x between x1 and x2. *
26870* Processed by S. Roesler, 6.5.95 *
26871************************************************************************
26872
26873 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26874 SAVE
26875 PARAMETER (ONE=1.0D0)
26876
26877 R = DT_RNDM(X1)
26878 AL1 = LOG(X1)
26879 AL2 = LOG(X2)
26880 DT_SAMPEX = EXP((ONE-R)*AL1+R*AL2)
26881
26882 RETURN
26883 END
26884
26885*$ CREATE DT_SAMSQX.FOR
26886*COPY DT_SAMSQX
26887*
26888*===samsqx=============================================================*
26889*
26890 DOUBLE PRECISION FUNCTION DT_SAMSQX(X1,X2)
26891
26892************************************************************************
26893* Sampling from f(x)=1./x^0.5 between x1 and x2. *
26894* Processed by S. Roesler, 6.5.95 *
26895************************************************************************
26896
26897 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26898 SAVE
26899 PARAMETER (ONE=1.0D0)
26900
26901 R = DT_RNDM(X1)
26902 DT_SAMSQX = (R*SQRT(X2)+(ONE-R)*SQRT(X1))**2
26903
26904 RETURN
26905 END
26906
26907*$ CREATE DT_SAMPLW.FOR
26908*COPY DT_SAMPLW
26909*
26910*===samplw=============================================================*
26911*
26912 DOUBLE PRECISION FUNCTION DT_SAMPLW(XMIN,XMAX,B)
26913
26914************************************************************************
26915* Sampling from f(x)=1/x^b between x_min and x_max. *
26916* S. Roesler, 18.4.98 *
26917************************************************************************
26918
26919 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26920 SAVE
26921 PARAMETER (ONE=1.0D0)
26922
26923 R = DT_RNDM(B)
26924 IF (B.EQ.ONE) THEN
26925 DT_SAMPLW = EXP(R*LOG(XMAX)+(ONE-R)*LOG(XMIN))
26926 ELSE
26927 ONEMB = ONE-B
26928 DT_SAMPLW = (R*XMAX**ONEMB+(ONE-R)*XMIN**ONEMB)**(ONE/ONEMB)
26929 ENDIF
26930
26931 RETURN
26932 END
26933
26934*$ CREATE DT_BETREJ.FOR
26935*COPY DT_BETREJ
26936*
26937*===betrej=============================================================*
26938*
26939 DOUBLE PRECISION FUNCTION DT_BETREJ(GAM,ETA,XMIN,XMAX)
26940
26941 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26942 SAVE
26943
26944 PARAMETER ( LINP = 10 ,
26945 & LOUT = 6 ,
26946 & LDAT = 9 )
26947 PARAMETER (ONE=1.0D0)
26948
26949 IF (XMIN.GE.XMAX)THEN
26950 WRITE (LOUT,500) XMIN,XMAX
26951 500 FORMAT(1X,'DT_BETREJ: XMIN<XMAX execution stopped ',2F10.5)
26952 STOP
26953 ENDIF
26954
26955 10 CONTINUE
26956 XX = XMIN+(XMAX-XMIN)*DT_RNDM(ETA)
26957 BETMAX = XMIN**(GAM-ONE)*(ONE-XMIN)**(ETA-ONE)
26958 YY = BETMAX*DT_RNDM(XX)
26959 BETXX = XX**(GAM-ONE)*(ONE-XX)**(ETA-ONE)
26960 IF (YY.GT.BETXX) GOTO 10
26961 DT_BETREJ = XX
26962
26963 RETURN
26964 END
26965
26966*$ CREATE DT_DGAMRN.FOR
26967*COPY DT_DGAMRN
26968*
26969*===dgamrn=============================================================*
26970*
26971 DOUBLE PRECISION FUNCTION DT_DGAMRN(ALAM,ETA)
26972
26973************************************************************************
26974* Sampling from Gamma-distribution. *
26975* F(X) = ALAM**ETA*X**(ETA-1)*EXP(-ALAM*X) / GAM(ETA) *
26976* Processed by S. Roesler, 6.5.95 *
26977************************************************************************
26978
26979 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
26980 SAVE
26981 PARAMETER (ZERO=0.0D0,TINY9=1.0D-9,ONE=1.0D0)
26982
26983 NCOU = 0
26984 N = INT(ETA)
26985 F = ETA-DBLE(N)
26986 IF (F.EQ.ZERO) GOTO 20
26987 10 R = DT_RNDM(F)
26988 NCOU = NCOU+1
26989 IF (NCOU.GE.11) GOTO 20
26990 IF (R.LT.F/(F+2.71828D0)) GOTO 30
26991 YYY = LOG(DT_RNDM(R)+TINY9)/F
26992 IF (ABS(YYY).GT.50.0D0) GOTO 20
26993 Y = EXP(YYY)
26994 IF (LOG(DT_RNDM(Y)+TINY9).GT.-Y) GOTO 10
26995 GOTO 40
26996 20 Y = 0.0D0
26997 GOTO 50
26998 30 Y = ONE-LOG(DT_RNDM(Y)+TINY9)
26999 IF (DT_RNDM(R).GT.Y**(F-ONE)) GOTO 10
27000 40 IF (N.EQ.0) GOTO 70
27001 50 Z = 1.0D0
27002 DO 60 I = 1,N
27003 60 Z = Z*DT_RNDM(Z)
27004 Y = Y-LOG(Z+TINY9)
27005 70 DT_DGAMRN = Y/ALAM
27006
27007 RETURN
27008 END
27009
27010*$ CREATE DT_DBETAR.FOR
27011*COPY DT_DBETAR
27012*
27013*===dbetar=============================================================*
27014*
27015 DOUBLE PRECISION FUNCTION DT_DBETAR(GAM,ETA)
27016
27017************************************************************************
27018* Sampling from Beta -distribution between 0.0 and 1.0 *
27019* F(X)=X**(GAM-1.)*(1.-X)**(ETA-1)*GAMM(ETA+GAM)/(GAMM(GAM)*GAMM(ETA))*
27020* Processed by S. Roesler, 6.5.95 *
27021************************************************************************
27022
27023 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27024 SAVE
27025
27026 Y = DT_DGAMRN(1.0D0,GAM)
27027 Z = DT_DGAMRN(1.0D0,ETA)
27028 DT_DBETAR = Y/(Y+Z)
27029
27030 RETURN
27031 END
27032
27033*$ CREATE DT_RANNOR.FOR
27034*COPY DT_RANNOR
27035*
27036*===rannor=============================================================*
27037*
27038 SUBROUTINE DT_RANNOR(X,Y)
27039
27040************************************************************************
27041* Sampling from Gaussian distribution. *
27042* Processed by S. Roesler, 6.5.95 *
27043************************************************************************
27044
27045 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27046 SAVE
27047 PARAMETER (TINY10=1.0D-10)
27048
27049 CALL DT_DSFECF(SFE,CFE)
27050 V = MAX(TINY10,DT_RNDM(X))
27051 A = SQRT(-2.D0*LOG(V))
27052 X = A*SFE
27053 Y = A*CFE
27054
27055 RETURN
27056 END
27057
27058*$ CREATE DT_DPOLI.FOR
27059*COPY DT_DPOLI
27060*
27061*===dpoli==============================================================*
27062*
27063 SUBROUTINE DT_DPOLI(CS,SI)
27064
27065 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27066 SAVE
27067
27068 U = DT_RNDM(CS)
27069 CS = DT_RNDM(U)
27070 IF (U.LT.0.5D0) CS=-CS
27071 SI = SQRT(1.0D0-CS*CS+1.0D-10)
27072
27073 RETURN
27074 END
27075
27076*$ CREATE DT_DSFECF.FOR
27077*COPY DT_DSFECF
27078*
27079*===dsfecf=============================================================*
27080*
27081 SUBROUTINE DT_DSFECF(SFE,CFE)
27082
27083 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27084 SAVE
27085 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0)
27086
27087 1 CONTINUE
27088 X = DT_RNDM(SFE)
27089 Y = DT_RNDM(X)
27090 XX = X*X
27091 YY = Y*Y
27092 XY = XX+YY
27093 IF (XY.GT.ONE) GOTO 1
27094 CFE = (XX-YY)/XY
27095 SFE = TWO*X*Y/XY
27096 IF (DT_RNDM(X).LT.OHALF) SFE = -SFE
27097 RETURN
27098 END
27099
27100*$ CREATE DT_RACO.FOR
27101*COPY DT_RACO
27102*
27103*===raco===============================================================*
27104*
27105 SUBROUTINE DT_RACO(WX,WY,WZ)
27106
27107************************************************************************
27108* Direction cosines of random uniform (isotropic) direction in three *
27109* dimensional space *
27110* Processed by S. Roesler, 20.11.95 *
27111************************************************************************
27112
27113 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27114 SAVE
27115 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0)
27116
27117 10 CONTINUE
27118 X = TWO*DT_RNDM(WX)-ONE
27119 Y = DT_RNDM(X)
27120 X2 = X*X
27121 Y2 = Y*Y
27122 IF (X2+Y2.GT.ONE) GOTO 10
27123
27124 CFE = (X2-Y2)/(X2+Y2)
27125 SFE = TWO*X*Y/(X2+Y2)
27126* z = 1/2 [ 1 + cos (theta) ]
27127 Z = DT_RNDM(X)
27128* 1/2 sin (theta)
27129 WZ = SQRT(Z*(ONE-Z))
27130 WX = TWO*WZ*CFE
27131 WY = TWO*WZ*SFE
27132 WZ = TWO*Z-ONE
27133
27134 RETURN
27135 END
27136
27137************************************************************************
27138* *
27139* 6) Special functions, algorithms and service routines *
27140* *
27141************************************************************************
27142*$ CREATE DT_YLAMB.FOR
27143*COPY DT_YLAMB
27144*
27145*===ylamb==============================================================*
27146*
27147 DOUBLE PRECISION FUNCTION DT_YLAMB(X,Y,Z)
27148
27149************************************************************************
27150* *
27151* auxiliary function for three particle decay mode *
27152* (standard LAMBDA**(1/2) function) *
27153* *
27154* Adopted from an original version written by R. Engel. *
27155* This version dated 12.12.94 is written by S. Roesler. *
27156************************************************************************
27157
27158 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27159 SAVE
27160
27161 YZ = Y-Z
27162 XLAM = X*X-2.D0*X*(Y+Z)+YZ*YZ
27163 IF (XLAM.LE.0.D0) XLAM = ABS(XLAM)
27164 DT_YLAMB = SQRT(XLAM)
27165
27166 RETURN
27167 END
27168
27169*$ CREATE DT_SORT.FOR
27170*COPY DT_SORT
27171*
27172*===sort1==============================================================*
27173*
27174 SUBROUTINE DT_SORT(A,N,I0,I1,MODE)
27175
27176************************************************************************
27177* This subroutine sorts entries in A in increasing/decreasing order *
27178* of A(3,i). *
27179* MODE = 1 increasing in A(3,i=1..N) *
27180* = 2 decreasing in A(3,i=1..N) *
27181* This version dated 21.04.95 is revised by S. Roesler *
27182************************************************************************
27183
27184 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27185 SAVE
27186
27187 DIMENSION A(3,N)
27188
27189 M = I1
27190 10 CONTINUE
27191 M = I1-1
27192 IF (M.LE.0) RETURN
27193 L = 0
27194 DO 20 I=I0,M
27195 J = I+1
27196 IF (MODE.EQ.1) THEN
27197 IF (A(3,I).LE.A(3,J)) GOTO 20
27198 ELSE
27199 IF (A(3,I).GE.A(3,J)) GOTO 20
27200 ENDIF
27201 B = A(3,I)
27202 C = A(1,I)
27203 D = A(2,I)
27204 A(3,I) = A(3,J)
27205 A(2,I) = A(2,J)
27206 A(1,I) = A(1,J)
27207 A(3,J) = B
27208 A(1,J) = C
27209 A(2,J) = D
27210 L = 1
27211 20 CONTINUE
27212 IF (L.EQ.1) GOTO 10
27213
27214 RETURN
27215 END
27216
27217*$ CREATE DT_SORT1.FOR
27218*COPY DT_SORT1
27219*
27220*===sort1==============================================================*
27221*
27222 SUBROUTINE DT_SORT1(A,IDX,N,I0,I1,MODE)
27223
27224************************************************************************
27225* This subroutine sorts entries in A in increasing/decreasing order *
27226* of A(i). *
27227* MODE = 1 increasing in A(i=1..N) *
27228* = 2 decreasing in A(i=1..N) *
27229* This version dated 21.04.95 is revised by S. Roesler *
27230************************************************************************
27231
27232 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27233 SAVE
27234
27235 DIMENSION A(N),IDX(N)
27236
27237 M = I1
27238 10 CONTINUE
27239 M = I1-1
27240 IF (M.LE.0) RETURN
27241 L = 0
27242 DO 20 I=I0,M
27243 J = I+1
27244 IF (MODE.EQ.1) THEN
27245 IF (A(I).LE.A(J)) GOTO 20
27246 ELSE
27247 IF (A(I).GE.A(J)) GOTO 20
27248 ENDIF
27249 B = A(I)
27250 A(I) = A(J)
27251 A(J) = B
27252 IX = IDX(I)
27253 IDX(I) = IDX(J)
27254 IDX(J) = IX
27255 L = 1
27256 20 CONTINUE
27257 IF (L.EQ.1) GOTO 10
27258
27259 RETURN
27260 END
27261
27262*$ CREATE DT_XTIME.FOR
27263*COPY DT_XTIME
27264*
27265*===xtime==============================================================*
27266*
27267 SUBROUTINE DT_XTIME
27268
27269 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27270 SAVE
27271 PARAMETER ( LINP = 10 ,
27272 & LOUT = 6 ,
27273 & LDAT = 9 )
27274
27275 CHARACTER DAT*9,TIM*11
27276
27277 DAT = ' '
27278 TIM = ' '
27279C CALL GETDAT(IYEAR,IMONTH,IDAY)
27280C CALL GETTIM(IHOUR,IMINUT,ISECND,IHSCND)
27281
27282C CALL DATE(DAT)
27283C CALL TIME(TIM)
27284C WRITE(LOUT,1000) DAT,TIM
27285 1000 FORMAT(/,2X,'Date: ',A9,3X,'Time: ',A11,/)
27286
27287 RETURN
27288 END
27289
27290************************************************************************
27291* *
27292* 7) Random number generator package *
27293* *
27294* THIS IS A PACKAGE CONTAINING A RANDOM NUMBER GENERATOR AND *
27295* SERVICE ROUTINES. *
27296* THE ALGORITHM IS FROM *
27297* 'TOWARD A UNVERSAL RANDOM NUMBER GENERATOR' *
27298* G.MARSAGLIA, A.ZAMAN ; FSU-SCRI-87-50 *
27299* IMPLEMENTATION BY K. HAHN DEC. 88, *
27300* THIS GENERATOR SHOULD NOT DEPEND ON THE HARD WARE ( IF A REAL HAS *
27301* AT LEAST 24 SIGNIFICANT BITS IN INTERNAL REPRESENTATION ), *
27302* THE PERIOD IS ABOUT 2**144, *
27303* TIME FOR ONE CALL AT IBM-XT IS ABOUT 0.7 MILLISECONDS, *
27304* THE PACKAGE CONTAINS *
27305* FUNCTION DT_RNDM(I) : GENERATOR *
27306* SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB4): INITIALIZATION *
27307* SUBROUTINE DT_RNDMIN(U,C,CD,CM,I,J) : PUT SEED TO GENERATOR *
27308* SUBROUTINE DT_RNDMOU(U,C,CD,CM,I,J) : TAKE SEED FROM GENERATOR *
27309* SUBROUTINE DT_RNDMTE(IO) : TEST OF GENERATOR *
27310*--- *
27311* FUNCTION DT_RNDM(I) *
27312* GIVES UNIFORMLY DISTRIBUTED RANDOM NUMBERS IN (0..1) *
27313* I - DUMMY VARIABLE, NOT USED *
27314* SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB1) *
27315* INITIALIZES THE GENERATOR, MUST BE CALLED BEFORE USING DT_RNDM *
27316* NA1,NA2,NA3,NB1 - VALUES FOR INITIALIZING THE GENERATOR *
27317* NA? MUST BE IN 1..178 AND NOT ALL 1 *
27318* 12,34,56 ARE THE STANDARD VALUES *
27319* NB1 MUST BE IN 1..168 *
27320* 78 IS THE STANDARD VALUE *
27321* SUBROUTINE DT_RNDMIN(U,C,CD,CM,I,J) *
27322* PUTS SEED TO GENERATOR ( BRINGS GENERATOR IN THE SAME STATUS *
27323* AS AFTER THE LAST DT_RNDMOU CALL ) *
27324* U(97),C,CD,CM,I,J - SEED VALUES AS TAKEN FROM DT_RNDMOU *
27325* SUBROUTINE DT_RNDMOU(U,C,CD,CM,I,J) *
27326* TAKES SEED FROM GENERATOR *
27327* U(97),C,CD,CM,I,J - SEED VALUES *
27328* SUBROUTINE DT_RNDMTE(IO) *
27329* TEST OF THE GENERATOR *
27330* IO - DEFINES OUTPUT *
27331* = 0 OUTPUT ONLY IF AN ERROR IS DETECTED *
27332* = 1 OUTPUT INDEPENDEND ON AN ERROR *
27333* DT_RNDMTE USES DT_RNDMIN AND DT_RNDMOU TO BRING GENERATOR TO *
27334* SAME STATUS *
27335* AS BEFORE CALL OF DT_RNDMTE *
27336************************************************************************
27337*$ CREATE DT_RNDM.FOR
27338*COPY DT_RNDM
27339*
839efe5b 27340c$$$*===rndm===============================================================*
27341c$$$*
27342c$$$ DOUBLE PRECISION FUNCTION DT_RNDM(VDUMMY)
27343c$$$
27344c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27345c$$$ SAVE
27346c$$$
27347c$$$* random number generator
27348c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27349c$$$
27350c$$$* counter of calls to random number generator
27351c$$$* uncomment if needed
27352c$$$C COMMON /DTRNCT/ IRNCT0,IRNCT1
27353c$$$C LOGICAL LFIRST
27354c$$$C DATA LFIRST /.TRUE./
27355c$$$
27356c$$$* counter of calls to random number generator
27357c$$$* uncomment if needed
27358c$$$C IF (LFIRST) THEN
27359c$$$C IRNCT0 = 0
27360c$$$C IRNCT1 = 0
27361c$$$C LFIRST = .FALSE.
27362c$$$C ENDIF
27363c$$$ 100 CONTINUE
27364c$$$ DT_RNDM = U(I)-U(J)
27365c$$$ IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
27366c$$$ U(I) = DT_RNDM
27367c$$$ I = I-1
27368c$$$ IF ( I.EQ.0 ) I = 97
27369c$$$ J = J-1
27370c$$$ IF ( J.EQ.0 ) J = 97
27371c$$$ C = C-CD
27372c$$$ IF ( C.LT.0.0D0 ) C = C+CM
27373c$$$ DT_RNDM = DT_RNDM-C
27374c$$$ IF ( DT_RNDM.LT.0.0D0 ) DT_RNDM = DT_RNDM+1.0D0
27375c$$$
27376c$$$ IF ((DT_RNDM.EQ.0.D0).OR.(DT_RNDM.EQ.1.D0)) GOTO 100
27377c$$$
27378c$$$* counter of calls to random number generator
27379c$$$* uncomment if needed
27380c$$$C IRNCT0 = IRNCT0+1
27381c$$$
27382c$$$ RETURN
27383c$$$ END
27384c$$$
27385c$$$*$ CREATE DT_RNDMST.FOR
27386c$$$*COPY DT_RNDMST
27387c$$$*
27388c$$$*===rndmst=============================================================*
27389c$$$*
27390c$$$ SUBROUTINE DT_RNDMST(NA1,NA2,NA3,NB1)
27391c$$$
27392c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27393c$$$ SAVE
27394c$$$
27395c$$$* random number generator
27396c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27397c$$$
27398c$$$ MA1 = NA1
27399c$$$ MA2 = NA2
27400c$$$ MA3 = NA3
27401c$$$ MB1 = NB1
27402c$$$ I = 97
27403c$$$ J = 33
27404c$$$ DO 20 II2 = 1,97
27405c$$$ S = 0
27406c$$$ T = 0.5D0
27407c$$$ DO 10 II1 = 1,24
27408c$$$ MAT = MOD(MOD(MA1*MA2,179)*MA3,179)
27409c$$$ MA1 = MA2
27410c$$$ MA2 = MA3
27411c$$$ MA3 = MAT
27412c$$$ MB1 = MOD(53*MB1+1,169)
27413c$$$ IF ( MOD(MB1*MAT,64).GE.32 ) S = S+T
27414c$$$ 10 T = 0.5D0*T
27415c$$$ 20 U(II2) = S
27416c$$$ C = 362436.0D0/16777216.0D0
27417c$$$ CD = 7654321.0D0/16777216.0D0
27418c$$$ CM = 16777213.0D0/16777216.0D0
27419c$$$ RETURN
27420c$$$ END
27421c$$$
27422c$$$*$ CREATE DT_RNDMIN.FOR
27423c$$$*COPY DT_RNDMIN
27424c$$$*
27425c$$$*===rndmin=============================================================*
27426c$$$*
27427c$$$ SUBROUTINE DT_RNDMIN(UIN,CIN,CDIN,CMIN,IIN,JIN)
27428c$$$
27429c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27430c$$$ SAVE
27431c$$$
27432c$$$* random number generator
27433c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27434c$$$
27435c$$$ DIMENSION UIN(97)
27436c$$$
27437c$$$ DO 10 KKK = 1,97
27438c$$$ 10 U(KKK) = UIN(KKK)
27439c$$$ C = CIN
27440c$$$ CD = CDIN
27441c$$$ CM = CMIN
27442c$$$ I = IIN
27443c$$$ J = JIN
27444c$$$
27445c$$$ RETURN
27446c$$$ END
27447c$$$
27448c$$$*$ CREATE DT_RNDMOU.FOR
27449c$$$*COPY DT_RNDMOU
27450c$$$*
27451c$$$*===rndmou=============================================================*
27452c$$$*
27453c$$$ SUBROUTINE DT_RNDMOU(UOUT,COUT,CDOUT,CMOUT,IOUT,JOUT)
27454c$$$
27455c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27456c$$$ SAVE
27457c$$$
27458c$$$* random number generator
27459c$$$ COMMON /DTRAND/ U(97),C,CD,CM,I,J
27460c$$$
27461c$$$ DIMENSION UOUT(97)
27462c$$$
27463c$$$ DO 10 KKK = 1,97
27464c$$$ 10 UOUT(KKK) = U(KKK)
27465c$$$ COUT = C
27466c$$$ CDOUT = CD
27467c$$$ CMOUT = CM
27468c$$$ IOUT = I
27469c$$$ JOUT = J
27470c$$$
27471c$$$ RETURN
27472c$$$ END
27473c$$$
27474c$$$*$ CREATE DT_RNDMTE.FOR
27475c$$$*COPY DT_RNDMTE
27476c$$$*
27477c$$$*===rndmte=============================================================*
27478c$$$*
27479c$$$ SUBROUTINE DT_RNDMTE(IO)
27480c$$$
27481c$$$ IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27482c$$$ SAVE
27483c$$$
27484c$$$ DIMENSION UU(97),U(6),X(6),D(6)
27485c$$$ DATA U / 6533892.D0, 14220222.D0, 7275067.D0, 6172232.D0,
27486c$$$ +8354498.D0, 10633180.D0/
27487c$$$
27488c$$$ CALL DT_RNDMOU(UU,CC,CCD,CCM,II,JJ)
27489c$$$ CALL DT_RNDMST(12,34,56,78)
27490c$$$ DO 10 II1 = 1,20000
27491c$$$ 10 XX = DT_RNDM(XX)
27492c$$$ SD = 0.0D0
27493c$$$ DO 20 II2 = 1,6
27494c$$$ X(II2) = 4096.D0*(4096.D0*DT_RNDM(SD))
27495c$$$ D(II2) = X(II2)-U(II2)
27496c$$$ 20 SD = SD+D(II2)
27497c$$$ CALL DT_RNDMIN(UU,CC,CCD,CCM,II,JJ)
27498c$$$**sr 24.01.95
27499c$$$C IF ( IO.EQ. 1.OR. SD.NE.0. 0) WRITE(6,500) (U(I),X(I),D(I),I=1,6)
27500c$$$ IF ((IO.EQ.1).OR.(SD.NE.0.0)) THEN
27501c$$$C WRITE(6,1000)
27502c$$$ 1000 FORMAT(/,/,1X,'DT_RNDMTE: Test of random-number generator...',
27503c$$$ & ' passed')
27504c$$$ ENDIF
27505c$$$**
27506c$$$ RETURN
27507c$$$ 500 FORMAT(' === TEST OF THE RANDOM-GENERATOR ===',/,
27508c$$$ &' EXPECTED VALUE CALCULATED VALUE DIFFERENCE',/, 6(F17.
27509c$$$ &1,F20.1,F15.3,/), ' === END OF TEST ;',
27510c$$$ &' GENERATOR HAS THE SAME STATUS AS BEFORE CALLING DT_RNDMTE')
27511c$$$ END
9aaba0d6 27512*
27513*$ CREATE PHO_RNDM.FOR
27514*COPY PHO_RNDM
27515*
27516*===pho_rndm===========================================================*
27517*
27518 DOUBLE PRECISION FUNCTION PHO_RNDM(DUMMY)
27519
27520 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27521 SAVE
27522
27523 PHO_RNDM = DT_RNDM(DUMMY)
27524
27525 RETURN
27526 END
27527
27528*$ CREATE PYR.FOR
27529*COPY PYR
27530*
27531*===pyr================================================================*
27532*
27533 DOUBLE PRECISION FUNCTION PYR(IDUMMY)
27534
27535 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27536 SAVE
27537
27538 DUMMY = DBLE(IDUMMY)
27539 PYR = DT_RNDM(DUMMY)
27540
27541 RETURN
27542 END
27543
27544*$ CREATE DT_TITLE.FOR
27545*COPY DT_TITLE
27546*
27547*===title==============================================================*
27548*
27549 SUBROUTINE DT_TITLE
27550
27551 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27552 SAVE
27553 PARAMETER ( LINP = 10 ,
27554 & LOUT = 6 ,
27555 & LDAT = 9 )
27556
27557 CHARACTER*6 CVERSI
27558 CHARACTER*11 CCHANG
27559 DATA CVERSI,CCHANG /'3.0-5 ','08 Jan 2007'/
27560
27561 CALL DT_XTIME
27562 WRITE(LOUT,1000) CVERSI,CCHANG
27563 1000 FORMAT(1X,'+-------------------------------------------------',
27564 & '----------------------+',/,
27565 & 1X,'|',71X,'|',/,
27566 & 1X,'|',26X,'DPMJET version ',A6,24X,'|',/,
27567 & 1X,'|',71X,'|',/,
27568 & 1X,'|',22X,'(Last change: ',A11,')',23X,'|',/,
27569 & 1X,'|',71X,'|',/,
27570 & 1X,'|',12X,'Authors: Stefan Roesler (CERN)',27X,'|',/,
27571 & 1X,'|',21X,'Ralph Engel (FZ Karlsruhe)',19X,'|',/,
27572 & 1X,'|',21X,'Johannes Ranft (Siegen Univ.)',19X,'|',/,
27573 & 1X,'|',71X,'|',/,
27574 & 1X,'|',12X,'http://home.cern.ch/~sroesler/dpmjet3.html',
27575 & 17X,'|',/,
27576 & 1X,'|',71X,'|',/,
27577 & 1X,'+-------------------------------------------------',
27578 & '----------------------+',/,
27579 & 1X,'| Please send suggestions, bug reports, etc. to: ',
27580 & 'Stefan.Roesler@cern.ch |',/,
27581 & 1X,'+-------------------------------------------------',
27582 & '----------------------+',/)
27583
27584 RETURN
27585 END
27586
27587*$ CREATE DT_EVTINI.FOR
27588*COPY DT_EVTINI
27589*
27590*===evtini=============================================================*
27591*
27592 SUBROUTINE DT_EVTINI
27593
27594************************************************************************
27595* Initialization of DTEVT1. *
27596* This version dated 15.01.94 is written by S. Roesler *
27597************************************************************************
27598
27599 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27600 SAVE
27601 PARAMETER ( LINP = 10 ,
27602 & LOUT = 6 ,
27603 & LDAT = 9 )
27604
27605* event history
27606 PARAMETER (NMXHKK=200000)
27607 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
27608 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
27609 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
27610* extended event history
27611 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
27612 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
27613 & IHIST(2,NMXHKK)
27614* event flag
27615 COMMON /DTEVNO/ NEVENT,ICASCA
27616 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
27617* emulsion treatment
27618 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
27619 & NCOMPO,IEMUL
27620
27621* initialization of DTEVT1/DTEVT2
27622 NEND = NHKK
27623 IF (NEVENT.EQ.1) NEND = NMXHKK
27624 NHKK = 0
27625 NEVHKK = NEVENT
27626 DO 1 I=1,NEND
27627 ISTHKK(I) = 0
27628 IDHKK(I) = 0
27629 JMOHKK(1,I) = 0
27630 JMOHKK(2,I) = 0
27631 JDAHKK(1,I) = 0
27632 JDAHKK(2,I) = 0
27633 IDRES(I) = 0
27634 IDXRES(I) = 0
27635 NOBAM(I) = 0
27636 IDCH(I) = 0
27637 IHIST(1,I) = 0
27638 IHIST(2,I) = 0
27639 DO 2 J=1,4
27640 PHKK(J,I) = 0.0D0
27641 VHKK(J,I) = 0.0D0
27642 WHKK(J,I) = 0.0D0
27643 2 CONTINUE
27644 PHKK(5,I) = 0.0D0
27645 1 CONTINUE
27646 DO 3 I=1,10
27647 NPOINT(I) = 0
27648 3 CONTINUE
27649 CALL DT_CHASTA(-1)
27650
27651C* initialization of DTLTRA
27652C IF (NCOMPO.GT.0) CALL DT_LTINI(ID,EPN,PPN,ECM)
27653
27654 RETURN
27655 END
27656
27657*$ CREATE DT_STATIS.FOR
27658*COPY DT_STATIS
27659*
27660*===statis=============================================================*
27661*
27662 SUBROUTINE DT_STATIS(MODE)
27663
27664************************************************************************
27665* Initialization and output of run-statistics. *
27666* MODE = 1 initialization *
27667* = 2 output *
27668* This version dated 23.01.94 is written by S. Roesler *
27669************************************************************************
27670
27671 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27672 SAVE
27673 PARAMETER ( LINP = 10 ,
27674 & LOUT = 6 ,
27675 & LDAT = 9 )
27676 PARAMETER (TINY3=1.0D-3)
27677
27678* statistics
27679 COMMON /DTSTA1/ ICREQU,ICSAMP,ICCPRO,ICDPR,ICDTA,
27680 & ICRJSS,ICVV2S,ICCHAI(2,9),ICRES(9),ICDIFF(5),
27681 & ICEVTG(8,0:30)
27682* rejection counter
27683 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
27684 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
27685 & IREXCI(3),IRDIFF(2),IRINC
27686* central particle production, impact parameter biasing
27687 COMMON /DTIMPA/ BIMIN,BIMAX,XSFRAC,ICENTR
27688* various options for treatment of partons (DTUNUC 1.x)
27689* (chain recombination, Cronin,..)
27690 LOGICAL LCO2CR,LINTPT
27691 COMMON /DTCHAI/ SEASQ,CRONCO,CUTOF,MKCRON,ISICHA,IRECOM,
27692 & LCO2CR,LINTPT
27693* nucleon-nucleon event-generator
27694 CHARACTER*8 CMODEL
27695 LOGICAL LPHOIN
27696 COMMON /DTMODL/ CMODEL(4),ELOJET,MCGENE,LPHOIN
27697* flags for particle decays
27698 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
27699 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
27700 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
27701* diquark-breaking mechanism
27702 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
27703
27704 DIMENSION PP(4),PT(4)
27705
27706 GOTO (1,2) MODE
27707
27708* initialization
27709 1 CONTINUE
27710
27711* initialize statistics counter
27712 ICREQU = 0
27713 ICSAMP = 0
27714 ICCPRO = 0
27715 ICDPR = 0
27716 ICDTA = 0
27717 ICRJSS = 0
27718 ICVV2S = 0
27719 DO 10 I=1,9
27720 ICRES(I) = 0
27721 ICCHAI(1,I) = 0
27722 ICCHAI(2,I) = 0
27723 10 CONTINUE
27724* initialize rejection counter
27725 IRPT = 0
27726 IRHHA = 0
27727 LOMRES = 0
27728 LOBRES = 0
27729 IRFRAG = 0
27730 IREVT = 0
27731 IRRES(1) = 0
27732 IRRES(2) = 0
27733 IRCHKI(1) = 0
27734 IRCHKI(2) = 0
27735 IRCRON(1) = 0
27736 IRCRON(2) = 0
27737 IRCRON(3) = 0
27738 IRDIFF(1) = 0
27739 IRDIFF(2) = 0
27740 IRINC = 0
27741 DO 11 I=1,5
27742 ICDIFF(I) = 0
27743 11 CONTINUE
27744 DO 12 I=1,8
27745 DO 13 J=0,30
27746 ICEVTG(I,J) = 0
27747 13 CONTINUE
27748 12 CONTINUE
27749
27750 RETURN
27751
27752* output
27753 2 CONTINUE
27754
27755* statistics counter
27756 WRITE(LOUT,1000)
27757 1000 FORMAT(/,/,1X,'STATIS:',20X,'statistics of the run',/,
27758 & 28X,'---------------------')
be6523b4 27759 IF (ICREQU.GT.0) THEN
9aaba0d6 27760 WRITE(LOUT,1001) ICREQU,ICSAMP,DBLE(ICSAMP)/DBLE(ICREQU)
27761 1001 FORMAT(/,1X,'number of events requested / sampled',13X,
27762 & I8,' / ',I8,/,1X,'number of samp. evts per requested ',
27763 & 'event',11X,F9.1)
be6523b4 27764 ENDIF
9aaba0d6 27765 IF (ICDIFF(1).NE.0) THEN
27766 WRITE(LOUT,1009) ICDIFF
27767 1009 FORMAT(/,1X,'diffractive events: total ',I8,/,49X,
27768 & 'low mass high mass',/,24X,'single diffraction',
27769 & 7X,I8,4X,I8,/,24X,'double diffraction',7X,I8,4X,I8)
27770 ENDIF
be6523b4 27771 IF (ICENTR.GT.0.AND.ICSAMP.GT.0.AND.ICCPRO.GT.0) THEN
9aaba0d6 27772 WRITE(LOUT,1002) DBLE(ICCPRO)/DBLE(ICSAMP),
27773 & DBLE(ICSAMP)/DBLE(ICCPRO)
27774 1002 FORMAT(/,1X,'central production:',/,2X,'mean number',
27775 & ' of sampled Glauber-events per event',9X,F9.1,/,
27776 & 2X,'fraction of production cross section',21X,F10.6)
27777 ENDIF
be6523b4 27778 IF (ICSAMP.GT.0) THEN
9aaba0d6 27779 WRITE(LOUT,1003) DBLE(ICDPR)/DBLE(ICSAMP),
27780 & DBLE(ICDTA)/DBLE(ICSAMP)
27781 1003 FORMAT(/,54X,'proj. targ.',/,1X,'average number of wounded',
27782 & ' nucleons after x-sampling',2(4X,F6.2))
be6523b4 27783 ENDIF
9aaba0d6 27784
27785 IF (MCGENE.EQ.1) THEN
be6523b4 27786 IF (ICSAMP.GT.0) THEN
9aaba0d6 27787 WRITE(LOUT,1004) DBLE(ICRJSS)/DBLE(ICSAMP)
27788 1004 FORMAT(/,1X,'mean number of sea-sea chain rejections per',
27789 & ' event',3X,F9.1)
27790 IF (ISICHA.EQ.1) THEN
27791 WRITE(LOUT,1005) DBLE(ICVV2S)/DBLE(ICSAMP)
27792 1005 FORMAT(/,1X,'Reggeon contribution:',/,1X,'mean number ',
27793 & 'of single chains per event',13X,F9.1)
27794 ENDIF
be6523b4 27795 ENDIF
27796 IF (ICSAMP.GT.0.AND.ICREQU.GT.0) THEN
9aaba0d6 27797 WRITE(LOUT,1006)
27798 1006 FORMAT(/,1X,'chain system statistics: (per event)',/,
27799 & 23X,'mean number of chains mean number of chains',/,
27800 & 23X,'sampled hadronized having mass of a reso.')
27801 WRITE(LOUT,1007) (DBLE(ICCHAI(1,J))/(2.0D0*DBLE(ICSAMP)),
27802 & DBLE(ICCHAI(2,J))/(2.0D0*DBLE(ICREQU)),
27803 & DBLE(ICRES(J))/(2.0D0*DBLE(ICREQU)),J=1,8),
27804 & DBLE(ICCHAI(2,9))/MAX(DBLE(ICCHAI(1,9)),TINY3)
27805 1007 FORMAT(1X,'sea - sea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27806 & 1X,'disea - sea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27807 & 1X,'sea - disea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27808 & 1X,'sea - valence ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27809 & 1X,'disea - valence ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27810 & 1X,'valence - sea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27811 & 1X,'valence - disea ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27812 & 1X,'valence - valence ',6X,F4.1,8X,F4.1,17X,F4.1,/,
27813 & 1X,'fused chains ',18X,F4.1,17X,F4.1,/)
27814 WRITE(LOUT,1008)
27815 & (DBLE(IRCRON(I))/MAX(DBLE(IRCRON(1)),TINY3),I=2,3),
27816 & DBLE(IRPT)/DBLE(ICREQU),(DBLE(IRRES(I))/DBLE(ICREQU),I=1,2),
27817 & DBLE(LOMRES)/DBLE(ICREQU),DBLE(LOBRES)/DBLE(ICREQU),
27818 & (DBLE(IRCHKI(I))/DBLE(ICREQU),I=1,2),
27819 & (DBLE(IRDIFF(I))/DBLE(ICREQU),I=1,2),
27820 & DBLE(IRHHA)/DBLE(ICREQU),
27821 & DBLE(IRFRAG)/DBLE(ICREQU),DBLE(IREVT)/DBLE(ICREQU),
27822 & (DBLE(IREXCI(I))/DBLE(ICREQU),I=1,2),IREXCI(3)
27823 1008 FORMAT(/,1X,'Rejection counter: (NEVT = no. of events)',/,/,
27824 & 1X,'Cronin-effect (CRONIN)',15X,'IRCRON(2)/IRCRON(1) = ',
27825 & F7.2,/,38X,'IRCRON(3)/IRCRON(1) = ',F7.2,/,1X,
27826 & 'Intrins. p_t (GETSPT)',21X,'IRPT /NEVT = ',F7.2,/,
27827 & 1X,'Chain mass corr. for resonances (EVTRES)',2X,
27828 & 'IRRES(1) /NEVT = ',F7.2,/,33X,'(CH2RES) IRRES(2) /',
27829 & 'NEVT = ',F7.2,/,43X,'LOMRES /NEVT = ',F7.2,/,
27830 & 43X,'LOBRES /NEVT = ',F7.2,/,1X,'Kinem. corr. of',
27831 & ' 2-chain systems (CHKINE) IRCHKI(1)/NEVT = ',F7.2,/,
27832 & 43X,'IRCHKI(2)/NEVT = ',F7.2,/,1X,'Diffraction',31X,
27833 & 'IRDIFF(1)/NEVT = ',F7.2,/,43X,'IRDIFF(2)/NEVT = ',
27834 & F7.2,/,1X,'Total no. of rej.',
27835 & ' in chain-systems treatment (GETCSY)',/,43X,
27836 & 'IRHHA /NEVT = ',F7.2,/,1X,'Fragmentation (EVTFRA)',
27837 & ' (not yet used!)',4X,'IRFRAG /NEVT = ',F7.2,/,
27838 & 1X,'Total no. of rej. in DPM-treatment of one event',
27839 & ' (EVENTA)',/,43X,'IREVT /NEVT = ',F7.2,/,1X,
27840 & 'Treatment of final nucleon conf.',10X,'IREXCI(1)/NEVT = '
27841 & ,F7.2,/,43X,'IREXCI(2)/NEVT = ',F7.2,/,48X,
27842 & 'IREXCI(3) = ',I5,/)
be6523b4 27843 ENDIF
9aaba0d6 27844 ELSEIF (MCGENE.EQ.2) THEN
27845 WRITE(LOUT,1010) ELOJET
27846 1010 FORMAT(/,/,1X,'PHOJET-treatment of chain systems above ',
27847 & F4.1,' GeV')
27848 WRITE(LOUT,1011)
27849 1011 FORMAT(/,1X,'1. chain system statistics - total numbers:',/,
27850 & 30X,'--------------',/,/,12X,'s-s',5X,'d-s',5X,'s-d',
27851 & 5X,'s-v',5X,'d-v',5X,'v-s',5X,'v-d',5X,'v-v')
27852 WRITE(LOUT,1012) ((ICEVTG(I,J),I=1,8),J=0,1),
27853 & (INT(ICCHAI(2,I)/2.0D0),I=1,8),
27854 & (ICEVTG(I,2),I=1,8),(ICEVTG(I,29),I=1,8),
27855 & ((ICEVTG(I,J),I=1,8),J=3,7),
27856 & ((ICEVTG(I,J),I=1,8),J=19,21),
27857 & (ICEVTG(I,8),I=1,8),
27858 & ((ICEVTG(I,J),I=1,8),J=22,24),
27859 & (ICEVTG(I,9),I=1,8),
27860 & ((ICEVTG(I,J),I=1,8),J=25,28),
27861 & ((ICEVTG(I,J),I=1,8),J=10,18)
27862 1012 FORMAT(/,1X,'req.to.',8I8,/,/,1X,'low rq.',8I8,/,1X,'low ac.',
27863 & 8I8,/,/,1X,'PHOJET ',8I8,/,' sngl ',8I8,/,/,
27864 & ' no-dif.',8I8,/,
27865 & ' el-sca.',8I8,/,' qel-sc.',8I8,/,' dbl-Po.',8I8,/,
27866 & ' diff-1 ',8I8,/,' low ',8I8,/,' high ',8I8,/,
27867 & ' h-diff',8I8,/,' diff-2 ',8I8,/,' low ',8I8,/,
27868 & ' high ',8I8,/,' h-diff',8I8,/,' dbl-di.',8I8,/,
27869 & ' lo-lo ',8I8,/,' hi-hi ',8I8,/,' lo-hi ',8I8,/,
27870 & ' hi-lo ',8I8,/,
27871 & ' dir-ga.',8I8,/,/,' dir-1 ',8I8,/,' dir-2 ',8I8,/,
27872 & ' dbl-dir',8I8,/,' s-Pom. ',8I8,/,' h-Pom. ',8I8,/,
27873 & ' s-Reg. ',8I8,/,' enh-trg',8I8,/,' enh-log',8I8)
27874 WRITE(LOUT,1013)
27875 1013 FORMAT(/,1X,'2. chain system statistics -',
27876 & ' mean numbers per evt:',/,30X,'---------------------',
27877 & /,/,16X,'s-s',7X,'d-s',7X,'s-d')
be6523b4 27878 IF (ICSAMP.GT.0) THEN
9aaba0d6 27879 WRITE(LOUT,1014)
27880 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=1,3),J=0,1),
27881 & (DBLE(ICCHAI(2,I))/(2.0D0*DBLE(ICSAMP)),I=1,3),
27882 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=1,3),J=2,18)
27883 1014 FORMAT(/,1X,'req.to. ',3E10.2,/,/,1X,'low rq. ',3E10.2,/,
27884 & 1X,'low ac. ',3E10.2,/,/,1X,'PHOJET ',3E10.2,/,/,
27885 & ' no-dif. ',3E10.2,/,' el-sca. ',3E10.2,/,
27886 & ' qel-sc. ',3E10.2,/,' dbl-Po. ',3E10.2,/,
27887 & ' diff-1 ',3E10.2,/,' diff-2 ',3E10.2,/,
27888 & ' dbl-di. ',3E10.2,/,' dir-ga. ',3E10.2,/,/,
27889 & ' dir-1 ',3E10.2,/,' dir-2 ',3E10.2,/,
27890 & ' dbl-dir ',3E10.2,/,' s-Pom. ',3E10.2,/,
27891 & ' h-Pom. ',3E10.2,/,' s-Reg. ',3E10.2,/,
27892 & ' enh-trg ',3E10.2,/,' enh-log ',3E10.2)
be6523b4 27893 ENDIF
9aaba0d6 27894 WRITE(LOUT,1015)
27895 1015 FORMAT(/,16X,'s-v',7X,'d-v',7X,'v-s',7X,'v-d',7X,'v-v')
be6523b4 27896 IF (ICSAMP.GT.0) THEN
9aaba0d6 27897 WRITE(LOUT,1016)
27898 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=4,8),J=0,1),
27899 & (DBLE(ICCHAI(2,I))/(2.0D0*DBLE(ICSAMP)),I=4,8),
27900 & ((DBLE(ICEVTG(I,J))/DBLE(ICSAMP),I=4,8),J=2,18)
27901 1016 FORMAT(/,1X,'req.to. ',5E10.2,/,/,1X,'low rq. ',5E10.2,/,
27902 & 1X,'low ac. ',5E10.2,/,/,1X,'PHOJET ',5E10.2,/,/,
27903 & ' no-dif. ',5E10.2,/,' el-sca. ',5E10.2,/,
27904 & ' qel-sc. ',5E10.2,/,' dbl-Po. ',5E10.2,/,
27905 & ' diff-1 ',5E10.2,/,' diff-2 ',5E10.2,/,
27906 & ' dbl-di. ',5E10.2,/,' dir-ga. ',5E10.2,/,/,
27907 & ' dir-1 ',5E10.2,/,' dir-2 ',5E10.2,/,
27908 & ' dbl-dir ',5E10.2,/,' s-Pom. ',5E10.2,/,
27909 & ' h-Pom. ',5E10.2,/,' s-Reg. ',5E10.2,/,
27910 & ' enh-trg ',5E10.2,/,' enh-log ',5E10.2)
be6523b4 27911 ENDIF
9aaba0d6 27912
27913 ENDIF
27914 CALL DT_CHASTA(1)
27915
27916 IF ((PDBSEA(1).GT.0.0D0).OR.(PDBSEA(2).GT.0.0D0)
27917 & .OR.(PDBSEA(3).GT.0.0D0)) THEN
27918 WRITE(LOUT,*)'YGS1S,YGS2S,YUS1S,YUS2S',
27919 & DBRKA(1,1)+DBRKA(2,1),DBRKA(1,2)+DBRKA(2,2),
27920 & DBRKA(1,3)+DBRKA(2,3),DBRKA(1,4)+DBRKA(2,4)
27921 WRITE(LOUT,*)'YGS1R,YGS2R,YUS1R,YUS2R',
27922 & DBRKR(1,1)+DBRKR(2,1),DBRKR(1,2)+DBRKR(2,2),
27923 & DBRKR(1,3)+DBRKR(2,3),DBRKR(1,4)+DBRKR(2,4)
27924 WRITE(LOUT,*)'YGSA1S,YGSA2S,YUSA1S,YUSA2S',
27925 & DBRKA(1,5)+DBRKA(2,5),DBRKA(1,6)+DBRKA(2,6),
27926 & DBRKA(1,7)+DBRKA(2,7),DBRKA(1,8)+DBRKA(2,8)
27927 WRITE(LOUT,*)'YGSA1R,YGSA2R,YUSA1R,YUSA2R',
27928 & DBRKR(1,5)+DBRKR(2,5),DBRKR(1,6)+DBRKR(2,6),
27929 & DBRKR(1,7)+DBRKR(2,7),DBRKR(1,8)+DBRKR(2,8)
27930 WRITE(LOUT,*)'YG31S,YG32S,YU31S,YU32S',
27931 & DBRKA(3,1),DBRKA(3,2),
27932 & DBRKA(3,3),DBRKA(3,4)
27933 WRITE(LOUT,*)'YG31R,YG32R,YU31R,YU32R',
27934 & DBRKR(3,1),DBRKR(3,2),
27935 & DBRKR(3,3),DBRKR(3,4)
27936 WRITE(LOUT,*)'YG3A1S,YG3A2S,YU3A1S,YU3A2S',
27937 & DBRKA(3,5),DBRKA(3,6),
27938 & DBRKA(3,7),DBRKA(3,8)
27939 WRITE(LOUT,*)'YG3A1R,YG3A2R,YU3A1R,YU3A2R',
27940 & DBRKR(3,5),DBRKR(3,6),
27941 & DBRKR(3,7),DBRKR(3,8)
27942 ENDIF
27943
27944 FAC = 1.0D0
27945 IF (MCGENE.EQ.2) THEN
27946C CALL PHO_PHIST(-2,SIGMAX)
27947 CALL PHO_EVENT(-2,PP,PT,FAC,IREJ1)
27948 ENDIF
27949
27950 CALL DT_XTIME
27951
27952 RETURN
27953 END
27954
27955*$ CREATE DT_EVTOUT.FOR
27956*COPY DT_EVTOUT
27957*
27958*===evtout=============================================================*
27959*
27960 SUBROUTINE DT_EVTOUT(MODE)
27961
27962************************************************************************
27963* MODE = 1 plot content of complete DTEVT1 to out. unit *
27964* 3 plot entries of extended DTEVT1 (DTEVT2) *
27965* 4 plot entries of DTEVT1 and DTEVT2 *
27966* This version dated 11.12.94 is written by S. Roesler *
27967************************************************************************
27968
27969 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
27970 SAVE
27971 PARAMETER ( LINP = 10 ,
27972 & LOUT = 6 ,
27973 & LDAT = 9 )
27974* event history
27975 PARAMETER (NMXHKK=200000)
27976 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
27977 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
27978 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
27979
27980 DIMENSION IRANGE(NMXHKK)
27981
27982 IF (MODE.EQ.2) RETURN
27983
27984 CALL DT_EVTPLO(IRANGE,MODE)
27985
27986 RETURN
27987 END
27988
27989*$ CREATE DT_EVTPLO.FOR
27990*COPY DT_EVTPLO
27991*
27992*===evtplo=============================================================*
27993*
27994 SUBROUTINE DT_EVTPLO(IRANGE,MODE)
27995
27996************************************************************************
27997* MODE = 1 plot content of complete DTEVT1 to out. unit *
27998* 2 plot entries of DTEVT1 given by IRANGE *
27999* 3 plot entries of extended DTEVT1 (DTEVT2) *
28000* 4 plot entries of DTEVT1 and DTEVT2 *
28001* 5 plot rejection counter *
28002* This version dated 11.12.94 is written by S. Roesler *
28003************************************************************************
28004
28005 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28006 SAVE
28007 PARAMETER ( LINP = 10 ,
28008 & LOUT = 6 ,
28009 & LDAT = 9 )
28010
28011 CHARACTER*16 CHAU
28012
28013* event history
28014 PARAMETER (NMXHKK=200000)
28015 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28016 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28017 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28018* extended event history
28019 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28020 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28021 & IHIST(2,NMXHKK)
28022* rejection counter
28023 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
28024 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
28025 & IREXCI(3),IRDIFF(2),IRINC
28026
28027 DIMENSION IRANGE(NMXHKK)
28028
28029 IF ((MODE.EQ.1).OR.(MODE.EQ.4)) THEN
28030 WRITE(LOUT,1000)
28031 1000 FORMAT(/,1X,'EVTPLO:',14X,' content of COMMON /DTEVT1/',/,
28032 & 15X,' --------------------------',/,/,
28033 & ' ST ID M1 M2 D1 D2 PX PY',
28034 & ' PZ E M',/)
28035 DO 1 I=1,NHKK
28036 WRITE(LOUT,1001) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28037 & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28038 & PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
28039 & PHKK(5,I)
28040C WRITE(LOUT,1011) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28041C & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28042C & PHKK(3,I),PHKK(4,I)
28043C WRITE(LOUT,'(4E15.4)')
28044C & VHKK(1,I),VHKK(2,I),VHKK(3,I),VHKK(4,I)
28045 1001 FORMAT(I5,I5,I6,4I5,3F7.3,F8.3,F8.4)
28046 1011 FORMAT(I5,I5,I6,4I5,2E15.5)
28047 1 CONTINUE
28048 WRITE(LOUT,*)
28049C DO 4 I=1,NHKK
28050C WRITE(LOUT,1006) I,ISTHKK(I),
28051C & VHKK(1,I),VHKK(2,I),VHKK(3,I),WHKK(1,I),
28052C & WHKK(2,I),WHKK(3,I)
28053C1006 FORMAT(1X,I4,I6,6E10.3)
28054C 4 CONTINUE
28055 ENDIF
28056
28057 IF (MODE.EQ.2) THEN
28058 WRITE(LOUT,1000)
28059 NC = 0
28060 2 CONTINUE
28061 NC = NC+1
28062 IF (IRANGE(NC).EQ.-100) GOTO 9999
28063 I = IRANGE(NC)
28064 WRITE(LOUT,1001) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28065 & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28066 & PHKK(1,I),PHKK(2,I),PHKK(3,I),PHKK(4,I),
28067 & PHKK(5,I)
28068 GOTO 2
28069 ENDIF
28070
28071 IF ((MODE.EQ.3).OR.(MODE.EQ.4)) THEN
28072 WRITE(LOUT,1002)
28073 1002 FORMAT(/,1X,'EVTPLO:',14X,
28074 & ' content of COMMON /DTEVT1/,/DTEVT2/',/,
28075 & 15X,' -----------------------------------',/,/,
28076 & ' ST ID M1 M2 D1 D2 IDR IDXR',
28077 & ' NOBAM IDCH M',/)
28078 DO 3 I=1,NHKK
28079C IF ((ISTHKK(I).GT.10).OR.(ISTHKK(I).EQ.1)) THEN
28080 KF = IDHKK(I)
28081 IDCHK = KF/10000
28082 IF ((((IDCHK.EQ.7).OR.(IDCHK.EQ.8)).AND.
28083 & (KF.NE.80000)).OR.(IDHKK(I).EQ.99999)) KF = 92
28084 CALL PYNAME(KF,CHAU)
28085 WRITE(LOUT,1003) I,ISTHKK(I),IDHKK(I),JMOHKK(1,I),
28086 & JMOHKK(2,I),JDAHKK(1,I),JDAHKK(2,I),
28087 & IDRES(I),IDXRES(I),NOBAM(I),IDCH(I),
28088 & PHKK(5,I),CHAU
28089 1003 FORMAT(I5,I5,I6,4I5,4I4,F8.4,2X,A)
28090C ENDIF
28091 3 CONTINUE
28092 ENDIF
28093
28094 IF (MODE.EQ.5) THEN
28095 WRITE(LOUT,1004)
28096 1004 FORMAT(/,1X,'EVTPLO:',14X,' content of COMMON /DTREJC/',/,
28097 & 15X,' --------------------------',/)
28098 WRITE(LOUT,1005) IRPT,IRHHA,IRRES,LOMRES,LOBRES,IREMC,IRFRAG,
28099 & IRSEA,IRCRON
28100 1005 FORMAT(1X,'IRPT = ',I5,' IRHHA = ',I5,/,
28101 & 1X,'IRRES = ',2I5,' LOMRES = ',I5,' LOBRES = ',I5,/,
28102 & 1X,'IREMC = ',10I5,/,
28103 & 1X,'IRFRAG = ',I5,' IRSEA = ',I5,' IRCRON = ',I5,/)
28104 ENDIF
28105
28106 9999 RETURN
28107 END
28108
28109*$ CREATE DT_EVTPUT.FOR
28110*COPY DT_EVTPUT
28111*
28112*===evtput=============================================================*
28113*
28114 SUBROUTINE DT_EVTPUT(IST,ID,M1,M2,PX,PY,PZ,E,IDR,IDXR,IDC)
28115
28116 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28117 SAVE
28118 PARAMETER ( LINP = 10 ,
28119 & LOUT = 6 ,
28120 & LDAT = 9 )
28121 PARAMETER (TINY10=1.0D-10,TINY4=1.0D-4,TINY3=1.0D-3,
28122 & TINY2=1.0D-2,SQTINF=1.0D+15,ZERO=0.0D0)
28123
28124* event history
28125 PARAMETER (NMXHKK=200000)
28126 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28127 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28128 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28129* extended event history
28130 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28131 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28132 & IHIST(2,NMXHKK)
28133* Lorentz-parameters of the current interaction
28134 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
28135 & UMO,PPCM,EPROJ,PPROJ
28136* particle properties (BAMJET index convention)
28137 CHARACTER*8 ANAME
28138 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
28139 & IICH(210),IIBAR(210),K1(210),K2(210)
28140
28141C IF (MODE.GT.100) THEN
28142C WRITE(LOUT,'(1X,A,I5,A,I5)')
28143C & 'EVTPUT: reset NHKK = ',NHKK,' to NHKK =',NHKK-MODE+100
28144C NHKK = NHKK-MODE+100
28145C RETURN
28146C ENDIF
28147 MO1 = M1
28148 MO2 = M2
28149 NHKK = NHKK+1
28150
28151 IF (NHKK.GT.NMXHKK) THEN
28152 WRITE(LOUT,1000) NHKK
28153 1000 FORMAT(1X,'EVTPUT: NHKK exeeds NMXHKK = ',I7,
28154 & '! program execution stopped..')
28155 STOP
28156 ENDIF
28157 IF (M1.LT.0) MO1 = NHKK+M1
28158 IF (M2.LT.0) MO2 = NHKK+M2
28159 ISTHKK(NHKK) = IST
28160 IDHKK(NHKK) = ID
28161 JMOHKK(1,NHKK) = MO1
28162 JMOHKK(2,NHKK) = MO2
28163 JDAHKK(1,NHKK) = 0
28164 JDAHKK(2,NHKK) = 0
28165 IDRES(NHKK) = IDR
28166 IDXRES(NHKK) = IDXR
28167 IDCH(NHKK) = IDC
28168** here we need to do something..
28169 IF (ID.EQ.88888) THEN
28170 IDMO1 = ABS(IDHKK(MO1))
28171 IDMO2 = ABS(IDHKK(MO2))
28172 IF ((IDMO1.LT.100).AND.(IDMO2.LT.100)) NOBAM(NHKK) = 3
28173 IF ((IDMO1.LT.100).AND.(IDMO2.GT.100)) NOBAM(NHKK) = 4
28174 IF ((IDMO1.GT.100).AND.(IDMO2.GT.100)) NOBAM(NHKK) = 5
28175 IF ((IDMO1.GT.100).AND.(IDMO2.LT.100)) NOBAM(NHKK) = 6
28176 ELSE
28177 NOBAM(NHKK) = 0
28178 ENDIF
28179 IDBAM(NHKK) = IDT_ICIHAD(ID)
28180 IF (MO1.GT.0) THEN
28181 IF (JDAHKK(1,MO1).NE.0) THEN
28182 JDAHKK(2,MO1) = NHKK
28183 ELSE
28184 JDAHKK(1,MO1) = NHKK
28185 ENDIF
28186 ENDIF
28187 IF (MO2.GT.0) THEN
28188 IF (JDAHKK(1,MO2).NE.0) THEN
28189 JDAHKK(2,MO2) = NHKK
28190 ELSE
28191 JDAHKK(1,MO2) = NHKK
28192 ENDIF
28193 ENDIF
28194C IF ((IDBAM(NHKK).GT.0).AND.(IDBAM(NHKK).NE.7)) THEN
28195C PTOT = SQRT(PX**2+PY**2+PZ**2)
28196C AM0 = SQRT(ABS( (E-PTOT)*(E+PTOT) ))
28197C AMRQ = AAM(IDBAM(NHKK))
28198C AMDIF2 = (AM0-AMRQ)*(AM0+AMRQ)
28199C IF ((ABS(AMDIF2).GT.TINY3).AND.(E.LT.SQTINF).AND.
28200C & (PTOT.GT.ZERO)) THEN
28201C DELTA = -AMDIF2/(2.0D0*(E+PTOT))
28202CC DELTA = (AMRQ2-AM2)/(2.0D0*(E+PTOT))
28203C E = E+DELTA
28204C PTOT1 = PTOT-DELTA
28205C PX = PX*PTOT1/PTOT
28206C PY = PY*PTOT1/PTOT
28207C PZ = PZ*PTOT1/PTOT
28208C ENDIF
28209C ENDIF
28210 PHKK(1,NHKK) = PX
28211 PHKK(2,NHKK) = PY
28212 PHKK(3,NHKK) = PZ
28213 PHKK(4,NHKK) = E
28214 PTOT = SQRT( PX**2+PY**2+PZ**2 )
28215 IF ((IDHKK(NHKK).GE.22).AND.(IDHKK(NHKK).LE.24)) THEN
28216 PHKK(5,NHKK) = PHKK(4,NHKK)**2-PTOT**2
28217 PHKK(5,NHKK) = SIGN(SQRT(ABS(PHKK(5,NHKK))),PHKK(5,NHKK))
28218 ELSE
28219 PHKK(5,NHKK) = (PHKK(4,NHKK)-PTOT)*(PHKK(4,NHKK)+PTOT)
28220C IF ((PHKK(5,NHKK).LT.0.0D0).AND.(ABS(PHKK(5,NHKK)).GT.TINY4))
28221C & WRITE(LOUT,'(1X,A,G10.3)')
28222C & 'EVTPUT: negative mass**2 ',PHKK(5,NHKK)
28223 PHKK(5,NHKK) = SQRT(ABS(PHKK(5,NHKK)))
28224 ENDIF
28225 IDCHK = ID/10000
28226 IF (((IDCHK.EQ.7).OR.(IDCHK.EQ.8)).AND.(ID.NE.80000)) THEN
28227* special treatment for chains:
28228* z coordinate of chain in Lab = pos. of target nucleon
28229* time of chain-creation in Lab = time of passage of projectile
28230* nucleus at pos. of taget nucleus
28231C VHKK(1,NHKK) = 0.5D0*(VHKK(1,MO1)+VHKK(1,MO2))
28232C VHKK(2,NHKK) = 0.5D0*(VHKK(2,MO1)+VHKK(2,MO2))
28233 VHKK(1,NHKK) = VHKK(1,MO2)
28234 VHKK(2,NHKK) = VHKK(2,MO2)
28235 VHKK(3,NHKK) = VHKK(3,MO2)
28236 VHKK(4,NHKK) = VHKK(3,MO2)/BLAB-VHKK(3,MO1)/BGLAB
28237C WHKK(1,NHKK) = 0.5D0*(WHKK(1,MO1)+WHKK(1,MO2))
28238C WHKK(2,NHKK) = 0.5D0*(WHKK(2,MO1)+WHKK(2,MO2))
28239 WHKK(1,NHKK) = WHKK(1,MO1)
28240 WHKK(2,NHKK) = WHKK(2,MO1)
28241 WHKK(3,NHKK) = WHKK(3,MO1)
28242 WHKK(4,NHKK) = -WHKK(3,MO1)/BLAB+WHKK(3,MO2)/BGLAB
28243 ELSE
28244 IF (MO1.GT.0) THEN
28245 DO 1 I=1,4
28246 VHKK(I,NHKK) = VHKK(I,MO1)
28247 WHKK(I,NHKK) = WHKK(I,MO1)
28248 1 CONTINUE
28249 ELSE
28250 DO 2 I=1,4
28251 VHKK(I,NHKK) = ZERO
28252 WHKK(I,NHKK) = ZERO
28253 2 CONTINUE
28254 ENDIF
28255 ENDIF
28256
28257 RETURN
28258 END
28259
28260*$ CREATE DT_CHASTA.FOR
28261*COPY DT_CHASTA
28262*
28263*===chasta=============================================================*
28264*
28265 SUBROUTINE DT_CHASTA(MODE)
28266
28267************************************************************************
28268* This subroutine performs CHAin STAtistics and checks sequence of *
28269* partons in dtevt1 and sorts them with projectile partons coming *
28270* first if necessary. *
28271* *
28272* This version dated 8.5.00 is written by S. Roesler. *
28273************************************************************************
28274
28275 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28276 SAVE
28277 PARAMETER ( LINP = 10 ,
28278 & LOUT = 6 ,
28279 & LDAT = 9 )
28280
28281 CHARACTER*5 CCHTYP
28282
28283* event history
28284 PARAMETER (NMXHKK=200000)
28285 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28286 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28287 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28288* extended event history
28289 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28290 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28291 & IHIST(2,NMXHKK)
28292* pointer to chains in hkkevt common (used by qq-breaking mechanisms)
28293 PARAMETER (MAXCHN=10000)
28294 COMMON /DTIXCH/ IDXCHN(2,MAXCHN),NCHAIN
28295
28296 DIMENSION ICHCFG(10,10,9,2),ICHTYP(5,5),
28297 & CCHTYP(9),ICHSTA(10),ITOT(10)
28298 DATA ICHCFG /1800*0/
28299 DATA (ICHTYP(1,K),K=1,5) / 0, 1, 3, 0, 0/
28300 DATA (ICHTYP(2,K),K=1,5) / 2, 0, 0, 5, 0/
28301 DATA (ICHTYP(3,K),K=1,5) / 4, 0, 0, 7, 0/
28302 DATA (ICHTYP(4,K),K=1,5) / 0, 6, 8, 0, 0/
28303 DATA (ICHTYP(5,K),K=1,5) / 0, 0, 0, 0, 9/
28304 DATA ICHSTA / 21, 22, 31, 32, 41, 42, 51, 52, 61, 62/
28305 DATA CCHTYP / ' q aq','aq q ',' q d ',' d q ','aq ad',
28306 & 'ad aq',' d ad','ad d ',' g g '/
28307*
28308* initialization
28309*
28310 IF (MODE.EQ.-1) THEN
28311 NCHAIN = 0
28312*
28313* loop over DTEVT1 and analyse chain configurations
28314*
28315 ELSEIF (MODE.EQ.0) THEN
28316 DO 21 IDX=NPOINT(3),NHKK
28317 IDCHK = IDHKK(IDX)/10000
28318 IF (((IDCHK.EQ.7).OR.(IDCHK.EQ.8)).AND.
28319 & (IDHKK(IDX).NE.80000).AND.
28320 & (ISTHKK(IDX).NE.2).AND.(IDRES(IDX).EQ.0)) THEN
28321 IF (JMOHKK(1,IDX).GT.JMOHKK(2,IDX)) THEN
28322 WRITE(LOUT,*) ' CHASTA: JMOHKK(1,x) > JMOHKK(2,x) ',
28323 & ' at entry ',IDX
28324 GOTO 21
28325 ENDIF
28326*
28327 IST1 = ABS(ISTHKK(JMOHKK(1,IDX)))
28328 IST2 = ABS(ISTHKK(JMOHKK(2,IDX)))
28329 IMO1 = IST1/10
28330 IMO1 = IST1-10*IMO1
28331 IMO2 = IST2/10
28332 IMO2 = IST2-10*IMO2
28333* swop parton entries if necessary since we need projectile partons
28334* to come first in the common
28335 IF (IMO1.GT.IMO2) THEN
28336 NPTN = JMOHKK(2,IDX)-JMOHKK(1,IDX)+1
28337 DO 22 K=1,NPTN/2
28338 I0 = JMOHKK(1,IDX)-1+K
28339 I1 = JMOHKK(2,IDX)+1-K
28340 ITMP = ISTHKK(I0)
28341 ISTHKK(I0) = ISTHKK(I1)
28342 ISTHKK(I1) = ITMP
28343 ITMP = IDHKK(I0)
28344 IDHKK(I0) = IDHKK(I1)
28345 IDHKK(I1) = ITMP
28346 IF (JDAHKK(1,JMOHKK(1,I0)).EQ.I0)
28347 & JDAHKK(1,JMOHKK(1,I0)) = I1
28348 IF (JDAHKK(2,JMOHKK(1,I0)).EQ.I0)
28349 & JDAHKK(2,JMOHKK(1,I0)) = I1
28350 IF (JDAHKK(1,JMOHKK(2,I0)).EQ.I0)
28351 & JDAHKK(1,JMOHKK(2,I0)) = I1
28352 IF (JDAHKK(2,JMOHKK(2,I0)).EQ.I0)
28353 & JDAHKK(2,JMOHKK(2,I0)) = I1
28354 IF (JDAHKK(1,JMOHKK(1,I1)).EQ.I1)
28355 & JDAHKK(1,JMOHKK(1,I1)) = I0
28356 IF (JDAHKK(2,JMOHKK(1,I1)).EQ.I1)
28357 & JDAHKK(2,JMOHKK(1,I1)) = I0
28358 IF (JDAHKK(1,JMOHKK(2,I1)).EQ.I1)
28359 & JDAHKK(1,JMOHKK(2,I1)) = I0
28360 IF (JDAHKK(2,JMOHKK(2,I1)).EQ.I1)
28361 & JDAHKK(2,JMOHKK(2,I1)) = I0
28362 ITMP = JMOHKK(1,I0)
28363 JMOHKK(1,I0) = JMOHKK(1,I1)
28364 JMOHKK(1,I1) = ITMP
28365 ITMP = JMOHKK(2,I0)
28366 JMOHKK(2,I0) = JMOHKK(2,I1)
28367 JMOHKK(2,I1) = ITMP
28368 ITMP = JDAHKK(1,I0)
28369 JDAHKK(1,I0) = JDAHKK(1,I1)
28370 JDAHKK(1,I1) = ITMP
28371 ITMP = JDAHKK(2,I0)
28372 JDAHKK(2,I0) = JDAHKK(2,I1)
28373 JDAHKK(2,I1) = ITMP
28374 DO 23 J=1,4
28375 RTMP1 = PHKK(J,I0)
28376 RTMP2 = VHKK(J,I0)
28377 RTMP3 = WHKK(J,I0)
28378 PHKK(J,I0) = PHKK(J,I1)
28379 VHKK(J,I0) = VHKK(J,I1)
28380 WHKK(J,I0) = WHKK(J,I1)
28381 PHKK(J,I1) = RTMP1
28382 VHKK(J,I1) = RTMP2
28383 WHKK(J,I1) = RTMP3
28384 23 CONTINUE
28385 RTMP1 = PHKK(5,I0)
28386 PHKK(5,I0) = PHKK(5,I1)
28387 PHKK(5,I1) = RTMP1
28388 ITMP = IDRES(I0)
28389 IDRES(I0) = IDRES(I1)
28390 IDRES(I1) = ITMP
28391 ITMP = IDXRES(I0)
28392 IDXRES(I0) = IDXRES(I1)
28393 IDXRES(I1) = ITMP
28394 ITMP = NOBAM(I0)
28395 NOBAM(I0) = NOBAM(I1)
28396 NOBAM(I1) = ITMP
28397 ITMP = IDBAM(I0)
28398 IDBAM(I0) = IDBAM(I1)
28399 IDBAM(I1) = ITMP
28400 ITMP = IDCH(I0)
28401 IDCH(I0) = IDCH(I1)
28402 IDCH(I1) = ITMP
28403 ITMP = IHIST(1,I0)
28404 IHIST(1,I0) = IHIST(1,I1)
28405 IHIST(1,I1) = ITMP
28406 ITMP = IHIST(2,I0)
28407 IHIST(2,I0) = IHIST(2,I1)
28408 IHIST(2,I1) = ITMP
28409 22 CONTINUE
28410 ENDIF
28411 IST1 = ABS(ISTHKK(JMOHKK(1,IDX)))
28412 IST2 = ABS(ISTHKK(JMOHKK(2,IDX)))
28413*
28414* parton 1 (projectile side)
28415 IF (IST1.EQ.21) THEN
28416 IDX1 = 1
28417 ELSEIF (IST1.EQ.22) THEN
28418 IDX1 = 2
28419 ELSEIF (IST1.EQ.31) THEN
28420 IDX1 = 3
28421 ELSEIF (IST1.EQ.32) THEN
28422 IDX1 = 4
28423 ELSEIF (IST1.EQ.41) THEN
28424 IDX1 = 5
28425 ELSEIF (IST1.EQ.42) THEN
28426 IDX1 = 6
28427 ELSEIF (IST1.EQ.51) THEN
28428 IDX1 = 7
28429 ELSEIF (IST1.EQ.52) THEN
28430 IDX1 = 8
28431 ELSEIF (IST1.EQ.61) THEN
28432 IDX1 = 9
28433 ELSEIF (IST1.EQ.62) THEN
28434 IDX1 = 10
28435 ELSE
28436c WRITE(LOUT,*)
28437c & ' CHASTA: unknown parton status flag (',
28438c & IST1,') at entry ',JMOHKK(1,IDX),'(',IDX,')'
28439 GOTO 21
28440 ENDIF
28441 ID = IDHKK(JMOHKK(1,IDX))
28442 IF (ABS(ID).LE.4) THEN
28443 IF (ID.GT.0) THEN
28444 ITYP1 = 1
28445 ELSE
28446 ITYP1 = 2
28447 ENDIF
28448 ELSEIF (ABS(ID).GE.1000) THEN
28449 IF (ID.GT.0) THEN
28450 ITYP1 = 3
28451 ELSE
28452 ITYP1 = 4
28453 ENDIF
28454 ELSEIF (ID.EQ.21) THEN
28455 ITYP1 = 5
28456 ELSE
28457 WRITE(LOUT,*)
28458 & ' CHASTA: inconsistent parton identity (',
28459 & ID,') at entry ',JMOHKK(1,IDX),'(',IDX,')'
28460 GOTO 21
28461 ENDIF
28462*
28463* parton 2 (target side)
28464 IF (IST2.EQ.21) THEN
28465 IDX2 = 1
28466 ELSEIF (IST2.EQ.22) THEN
28467 IDX2 = 2
28468 ELSEIF (IST2.EQ.31) THEN
28469 IDX2 = 3
28470 ELSEIF (IST2.EQ.32) THEN
28471 IDX2 = 4
28472 ELSEIF (IST2.EQ.41) THEN
28473 IDX2 = 5
28474 ELSEIF (IST2.EQ.42) THEN
28475 IDX2 = 6
28476 ELSEIF (IST2.EQ.51) THEN
28477 IDX2 = 7
28478 ELSEIF (IST2.EQ.52) THEN
28479 IDX2 = 8
28480 ELSEIF (IST2.EQ.61) THEN
28481 IDX2 = 9
28482 ELSEIF (IST2.EQ.62) THEN
28483 IDX2 = 10
28484 ELSE
28485c WRITE(LOUT,*)
28486c & ' CHASTA: unknown parton status flag (',
28487c & IST2,') at entry ',JMOHKK(2,IDX),'(',IDX,')'
28488 GOTO 21
28489 ENDIF
28490 ID = IDHKK(JMOHKK(2,IDX))
28491 IF (ABS(ID).LE.4) THEN
28492 IF (ID.GT.0) THEN
28493 ITYP2 = 1
28494 ELSE
28495 ITYP2 = 2
28496 ENDIF
28497 ELSEIF (ABS(ID).GE.1000) THEN
28498 IF (ID.GT.0) THEN
28499 ITYP2 = 3
28500 ELSE
28501 ITYP2 = 4
28502 ENDIF
28503 ELSEIF (ID.EQ.21) THEN
28504 ITYP2 = 5
28505 ELSE
28506 WRITE(LOUT,*)
28507 & ' CHASTA: inconsistent parton identity (',
28508 & ID,') at entry ',JMOHKK(1,IDX),'(',IDX,')'
28509 GOTO 21
28510 ENDIF
28511*
28512* fill counter
28513 ITYPE = ICHTYP(ITYP1,ITYP2)
28514 IF (ITYPE.NE.0) THEN
28515 ICHCFG(IDX1,IDX2,ITYPE,1) =ICHCFG(IDX1,IDX2,ITYPE,1)+1
28516 NGLUON = JMOHKK(2,IDX)-JMOHKK(1,IDX)-1
28517 ICHCFG(IDX1,IDX2,ITYPE,2) =
28518 & ICHCFG(IDX1,IDX2,ITYPE,2)+NGLUON
28519
28520 NCHAIN = NCHAIN+1
28521 IF (NCHAIN.GT.MAXCHN) THEN
28522 WRITE(LOUT,*) ' CHASTA: NCHAIN > MAXCHN ! ',
28523 & NCHAIN,MAXCHN
28524 STOP
28525 ENDIF
28526 IDXCHN(1,NCHAIN) = IDX
28527 IDXCHN(2,NCHAIN) = ITYPE
28528 ELSE
28529 WRITE(LOUT,*)
28530 & ' CHASTA: inconsistent chain at entry ',IDX
28531 GOTO 21
28532 ENDIF
28533 ENDIF
28534 21 CONTINUE
28535*
28536* write statistics to output unit
28537*
28538 ELSEIF (MODE.EQ.1) THEN
28539 WRITE(LOUT,'(/,A)') ' CHASTA: generated chain configurations'
28540 DO 31 I=1,10
28541 WRITE(LOUT,'(/,2A)')
28542 & ' -----------------------------------------',
28543 & '------------------------------------'
28544 WRITE(LOUT,'(2A)')
28545 & ' p\\t 21 22 31 32 41',
28546 & ' 42 51 52 61 62'
28547 WRITE(LOUT,'(2A)')
28548 & ' -----------------------------------------',
28549 & '------------------------------------'
28550 DO 32 J=1,10
28551 ITOT(J) = 0
28552 DO 33 K=1,9
28553 ITOT(J) = ITOT(J)+ICHCFG(I,J,K,1)
28554 33 CONTINUE
28555 32 CONTINUE
28556 WRITE(LOUT,'(1X,I2,5X,10I7,/)') ICHSTA(I),(ITOT(J),J=1,10)
28557 DO 34 K=1,9
28558 ISUM = 0
28559 DO 35 J=1,10
28560 ISUM = ISUM+ICHCFG(I,J,K,1)
28561 35 CONTINUE
28562 IF (ISUM.GT.0)
28563 & WRITE(LOUT,'(1X,A5,2X,10I7)')
28564 & CCHTYP(K),(ICHCFG(I,J,K,1),J=1,10)
28565 34 CONTINUE
28566C WRITE(LOUT,'(2A)')
28567C & ' -----------------------------------------',
28568C & '-------------------------------'
28569 31 CONTINUE
28570*
28571 ELSE
28572 WRITE(LOUT,*) ' CHASTA: MODE ',MODE,' not supported !'
28573 STOP
28574 ENDIF
28575
28576 RETURN
28577 END
28578*$ CREATE PHO_PHIST.FOR
28579*COPY PHO_PHIST
28580*
28581*===pohist=============================================================*
28582*
28583 SUBROUTINE PHO_PHIST(IMODE,WEIGHT)
28584
28585 IMPLICIT DOUBLE PRECISION (A-H,O-X,Z)
28586 SAVE
28587
28588 PARAMETER ( LINP = 10 ,
28589 & LOUT = 6 ,
28590 & LDAT = 9 )
28591 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
28592* Glauber formalism: cross sections
28593 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
28594 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
28595 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
28596 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
28597 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
28598 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
28599 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
28600 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
28601 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
28602 & BSLOPE,NEBINI,NQBINI
28603
28604 ILAB = 0
28605 IF (IMODE.EQ.10) THEN
28606 IMODE = 1
28607 ILAB = 1
28608 ENDIF
28609 IF (ABS(IMODE).LT.1000) THEN
28610* PHOJET-statistics
28611C CALL POHISX(IMODE,WEIGHT)
28612 IF (IMODE.EQ.-1) THEN
28613 MODE = 1
28614 XSTOT(1,1,1) = WEIGHT
28615 ENDIF
28616 IF (IMODE.EQ. 1) MODE = 2
28617 IF (IMODE.EQ.-2) MODE = 3
28618 IF (MODE.EQ.2) CALL DT_SWPPHO(ILAB)
28619C IF (MODE.EQ.3) WRITE(LOUT,*)
28620C & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization'
28621 CALL DT_HISTOG(MODE)
28622 CALL DT_USRHIS(MODE)
28623 ELSE
28624* DTUNUC-statistics
28625 MODE = IMODE/1000
28626C IF (MODE.EQ.3) WRITE(LOUT,*)
28627C & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization'
28628 CALL DT_HISTOG(MODE)
28629 CALL DT_USRHIS(MODE)
28630 ENDIF
28631
28632 RETURN
28633 END
28634
28635*$ CREATE DT_SWPPHO.FOR
28636*COPY DT_SWPPHO
28637*
28638*===swppho=============================================================*
28639*
28640 SUBROUTINE DT_SWPPHO(ILAB)
28641
28642 IMPLICIT DOUBLE PRECISION (A-H,O-X,Z)
28643 SAVE
28644 PARAMETER ( LINP = 10 ,
28645 & LOUT = 6 ,
28646 & LDAT = 9 )
28647 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
28648
28649 LOGICAL LSTART
28650
28651* event history
28652 PARAMETER (NMXHKK=200000)
28653 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28654 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28655 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28656* extended event history
28657 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28658 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28659 & IHIST(2,NMXHKK)
28660* flags for input different options
28661 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
28662 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
28663 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
28664* properties of photon/lepton projectiles
28665 COMMON /DTGPRO/ VIRT,PGAMM(4),PLEPT0(4),PLEPT1(4),PNUCL(4),IDIREC
28666
28667**PHOJET105a
28668C PARAMETER (NMXHEP=2000)
28669C COMMON/HEPEVS/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
28670C &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP)
28671C COMMON /GLOCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
28672C COMMON /PLASAV/ PLAB
28673**PHOJET110
28674C standard particle data interface
28675 INTEGER NMXHEP
28676 PARAMETER (NMXHEP=4000)
28677 INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP
28678 DOUBLE PRECISION PHEP,VHEP
28679 COMMON /POEVT1/ NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP),
28680 & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),
09b429a4 28681 & VHEP(4,NMXHEP),NSD1, NSD2, NDD
9aaba0d6 28682C extension to standard particle data interface (PHOJET specific)
28683 INTEGER IMPART,IPHIST,ICOLOR
28684 COMMON /POEVT2/ IMPART(NMXHEP),IPHIST(2,NMXHEP),ICOLOR(2,NMXHEP)
28685C global event kinematics and particle IDs
28686 INTEGER IFPAP,IFPAB
28687 DOUBLE PRECISION ECM,PCM,PMASS,PVIRT
28688 COMMON /POGCMS/ ECM,PCM,PMASS(2),PVIRT(2),IFPAP(2),IFPAB(2)
28689**
28690 DATA ICOUNT/0/
28691
28692 DATA LSTART /.TRUE./
28693
28694C IF ((IFRAME.EQ.1).AND.(ILAB.EQ.0).AND.LSTART) THEN
28695 IF ((IFRAME.EQ.1).AND.LSTART) THEN
28696 UMO = ECM
28697 ELA = ZERO
28698 PLA = ZERO
28699 IDP = IDT_ICIHAD(IFPAP(1))
28700 IDT = IDT_ICIHAD(IFPAP(2))
28701 VIRT = PVIRT(1)
28702 CALL DT_LTINI(IDP,IDT,ELA,PLA,UMO,0)
28703 PLAB = PLA
28704 LSTART = .FALSE.
28705 ENDIF
28706
28707 NHKK = 0
28708 ICOUNT = ICOUNT+1
28709C NEVHKK = NEVHEP
28710 NEVHKK = ICOUNT
28711 IF (MOD(ICOUNT,500).EQ.0) WRITE(LOUT,*)' SWPPHO: event # ',ICOUNT
28712 DO 1 I=3,NHEP
28713 IF (ISTHEP(I).EQ.1) THEN
28714 NHKK = NHKK+1
28715 ISTHKK(NHKK) = 1
28716 IDHKK(NHKK) = IDHEP(I)
28717 JMOHKK(1,NHKK) = 0
28718 JMOHKK(2,NHKK) = 0
28719 JDAHKK(1,NHKK) = 0
28720 JDAHKK(2,NHKK) = 0
28721 DO 2 K=1,4
28722 PHKK(K,NHKK) = PHEP(K,I)
28723 VHKK(K,NHKK) = ZERO
28724 WHKK(K,NHKK) = ZERO
28725 2 CONTINUE
28726 IF ((IFRAME.EQ.1).AND.(ILAB.EQ.0))
28727 & CALL DT_LTNUC(PHEP(3,I),PHEP(4,I),
28728 & PHKK(3,NHKK),PHKK(4,NHKK),-3)
28729 PHKK(5,NHKK) = PHEP(5,I)
28730 IDRES(NHKK) = 0
28731 IDXRES(NHKK) = 0
28732 NOBAM(NHKK) = 0
28733 IDBAM(NHKK) = IDT_ICIHAD(IDHEP(I))
28734 IDCH(NHKK) = 0
28735 ENDIF
28736 1 CONTINUE
28737
28738 RETURN
28739 END
28740
28741*$ CREATE DT_HISTOG.FOR
28742*COPY DT_HISTOG
28743*
28744*===histog=============================================================*
28745*
28746 SUBROUTINE DT_HISTOG(MODE)
28747
28748************************************************************************
28749* This version dated 25.03.96 is written by S. Roesler *
28750************************************************************************
28751
28752 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28753 SAVE
28754 PARAMETER ( LINP = 10 ,
28755 & LOUT = 6 ,
28756 & LDAT = 9 )
28757
28758 LOGICAL LFSP,LRNL
28759
28760* event history
28761 PARAMETER (NMXHKK=200000)
28762 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28763 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28764 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28765* extended event history
28766 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28767 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28768 & IHIST(2,NMXHKK)
28769* event flag used for histograms
28770 COMMON /DTNORM/ ICEVT,IEVHKK
28771* flags for activated histograms
28772 COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL
28773
28774 IEVHKK = NEVHKK
28775 GOTO (1,2,3) MODE
28776
28777*------------------------------------------------------------------
28778* initialization
28779 1 CONTINUE
28780 ICEVT = 0
28781 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(IDUM,1)
28782 IF (IHISPP(2).EQ.1) CALL DT_HIMULT(1)
28783
28784 RETURN
28785*------------------------------------------------------------------
28786* filling of histogram with event-record
28787 2 CONTINUE
28788 ICEVT = ICEVT+1
28789
28790 DO 20 I=1,NHKK
28791 CALL DT_SWPFSP(I,LFSP,LRNL)
28792 IF (LFSP) THEN
28793 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(I,2)
28794 IF (IHISPP(2).EQ.1) CALL DT_HIMULT(2)
28795 ENDIF
28796 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(I,5)
28797 20 CONTINUE
28798 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(IDUM,4)
28799
28800 RETURN
28801*------------------------------------------------------------------
28802* output
28803 3 CONTINUE
28804 IF (IHISPP(1).EQ.1) CALL DT_HISTAT(IDUM,3)
28805 IF (IHISPP(2).EQ.1) CALL DT_HIMULT(3)
28806
28807 RETURN
28808 END
28809
28810*$ CREATE DT_SWPFSP.FOR
28811*COPY DT_SWPFSP
28812*
28813*===swpfsp=============================================================*
28814*
28815 SUBROUTINE DT_SWPFSP(IDX,LFSP,LRNL)
28816
28817 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
28818 SAVE
28819 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
28820 PARAMETER (TWOPI=6.283185307179586476925286766559D+00,
28821 & PI =TWOPI/TWO,
28822 & BOG =TWOPI/360.0D0)
28823
28824* event history
28825 PARAMETER (NMXHKK=200000)
28826 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
28827 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
28828 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
28829* extended event history
28830 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
28831 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
28832 & IHIST(2,NMXHKK)
28833* particle properties (BAMJET index convention)
28834 CHARACTER*8 ANAME
28835 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
28836 & IICH(210),IIBAR(210),K1(210),K2(210)
28837* Lorentz-parameters of the current interaction
28838 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
28839 & UMO,PPCM,EPROJ,PPROJ
28840* flags for input different options
28841 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
28842 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
28843 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
28844* (original name: PAREVT)
28845 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
28846 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
28847 PARAMETER ( NALLWP = 39 )
28848 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
28849 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
28850 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
28851 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
28852* temporary storage for one final state particle
28853 LOGICAL LFRAG,LGREY,LBLACK
28854 COMMON /DTFSPA/ AMASS,PE,EECMS,PX,PY,PZ,PZCMS,PT,PTOT,ET,EKIN,
28855 & SINTHE,COSTHE,THETA,THECMS,
28856 & BETA,YY,YYCMS,ETA,ETACMS,XLAB,XF,
28857 & IST,IDPDG,IDBJT,IBARY,ICHAR,MULDEF,
28858 & LFRAG,LGREY,LBLACK
28859
28860 LOGICAL LFSP,LRNL
28861
28862 LFSP = .FALSE.
28863 LRNL = .FALSE.
28864 ISTRNL = 1000
28865 MULDEF = 1
28866 IF (LEVPRT) ISTRNL = 1001
28867
28868 IF (ABS(ISTHKK(IDX)).EQ.1) THEN
28869 IST = ISTHKK(IDX)
28870 IDPDG = IDHKK(IDX)
28871 LFRAG = .FALSE.
28872 IF (IDHKK(IDX).LT.80000) THEN
28873 IDBJT = IDBAM(IDX)
28874 IBARY = IIBAR(IDBJT)
28875 ICHAR = IICH(IDBJT)
28876 AMASS = AAM(IDBJT)
28877 ELSEIF (IDHKK(IDX).EQ.80000) THEN
28878 IDBJT = 0
28879 IBARY = IDRES(IDX)
28880 ICHAR = IDXRES(IDX)
28881 AMASS = PHKK(5,IDX)
28882 INUT = IBARY-ICHAR
28883 IF ((ICHAR.EQ.1).AND.(INUT.EQ.1)) IDBJT = 116
28884 IF ((ICHAR.EQ.1).AND.(INUT.EQ.2)) IDBJT = 117
28885 IF ((ICHAR.EQ.2).AND.(INUT.EQ.1)) IDBJT = 118
28886 IF ((ICHAR.EQ.2).AND.(INUT.EQ.2)) IDBJT = 119
28887 IF (IDBJT.EQ.0) LFRAG = .TRUE.
28888 ELSE
28889 GOTO 9999
28890 ENDIF
28891 PE = PHKK(4,IDX)
28892 PX = PHKK(1,IDX)
28893 PY = PHKK(2,IDX)
28894 PZ = PHKK(3,IDX)
28895 PT2 = PX**2+PY**2
28896 PT = SQRT(PT2)
28897 PTOT = SQRT(PT2+PZ**2)
28898 SINTHE = PT/MAX(PTOT,TINY14)
28899 COSTHE = PZ/MAX(PTOT,TINY14)
28900 IF (COSTHE.GT.ONE) THEN
28901 THETA = ZERO
28902 ELSEIF (COSTHE.LT.-ONE) THEN
28903 THETA = TWOPI/2.0D0
28904 ELSE
28905 THETA = ACOS(COSTHE)
28906 ENDIF
28907 EKIN = PE-AMASS
28908**sr 15.4.96 new E_t-definition
28909 IF (IBARY.GT.0) THEN
28910 ET = EKIN*SINTHE
28911 ELSEIF (IBARY.LT.0) THEN
28912 ET = (EKIN+TWO*AMASS)*SINTHE
28913 ELSE
28914 ET = PE*SINTHE
28915 ENDIF
28916**
28917 XLAB = PZ/MAX(PPROJ,TINY14)
28918C XLAB = PE/MAX(EPROJ,TINY14)
28919 BETA = SQRT(ABS( (ONE-AMASS/MAX(PE,TINY14))
28920 & *(ONE+AMASS/MAX(PE,TINY14)) ))
28921 PPLUS = PE+PZ
28922 PMINUS = PE-PZ
28923 IF (PMINUS.GT.TINY14) THEN
28924 YY = 0.5D0*LOG(ABS(PPLUS/PMINUS))
28925 ELSE
28926 YY = 100.0D0
28927 ENDIF
28928 IF ((THETA.GT.TINY14).AND.((PI-THETA).GT.TINY14)) THEN
28929 ETA = -LOG(TAN(THETA/TWO))
28930 ELSE
28931 ETA = 100.0D0
28932 ENDIF
28933 IF (IFRAME.EQ.1) THEN
28934 CALL DT_LTNUC(PZ,PE,PZCMS,EECMS,3)
28935 PPLUS = EECMS+PZCMS
28936 PMINUS = EECMS-PZCMS
28937 IF ((PPLUS*PMINUS).GT.TINY14) THEN
28938 YYCMS = 0.5D0*LOG(ABS(PPLUS/PMINUS))
28939 ELSE
28940 YYCMS = 100.0D0
28941 ENDIF
28942 PTOTCM = SQRT(PT2+PZCMS**2)
28943 COSTH = PZCMS/MAX(PTOTCM,TINY14)
28944 IF (COSTH.GT.ONE) THEN
28945 THECMS = ZERO
28946 ELSEIF (COSTH.LT.-ONE) THEN
28947 THECMS = TWOPI/2.0D0
28948 ELSE
28949 THECMS = ACOS(COSTH)
28950 ENDIF
28951 IF ((THECMS.GT.TINY14).AND.((PI-THECMS).GT.TINY14)) THEN
28952 ETACMS = -LOG(TAN(THECMS/TWO))
28953 ELSE
28954 ETACMS = 100.0D0
28955 ENDIF
28956 XF = PZCMS/MAX(PPCM,TINY14)
28957 THECMS = THECMS/BOG
28958 ELSE
28959 PZCMS = PZ
28960 EECMS = PE
28961 YYCMS = YY
28962 ETACMS = ETA
28963 XF = XLAB
28964 THECMS = THETA/BOG
28965 ENDIF
28966 THETA = THETA/BOG
28967
28968* set flag for "grey/black"
28969 LGREY = .FALSE.
28970 LBLACK = .FALSE.
28971 EK = EKIN
28972 IF (IDHKK(IDX).EQ.80000) EK = EKIN/DBLE(IBARY)
28973 IF (MULDEF.EQ.1) THEN
28974* EMU01-Def.
28975 IF ( ( (IDBJT.EQ. 1).AND.(EK.GT. 26.0D-3).AND.
28976 & (EK.LE.375.0D-3) ).OR.
28977 & ( (IDBJT.EQ.13).AND.(EK.GT. 12.0D-3).AND.
28978 & (EK.LE. 56.0D-3) ).OR.
28979 & ( (IDBJT.EQ.14).AND.(EK.GT. 12.0D-3).AND.
28980 & (EK.LE. 56.0D-3) ).OR.
28981 & ( (IDBJT.EQ.15).AND.(EK.GT. 20.0D-3).AND.
28982 & (EK.LE.198.0D-3) ).OR.
28983 & ( (IDBJT.EQ.16).AND.(EK.GT. 20.0D-3).AND.
28984 & (EK.LE.198.0D-3) ).OR.
28985 & ( (IDBJT.NE. 1).AND.(IDBJT.NE.13).AND.
28986 & (IDBJT.NE.14).AND.(IDBJT.NE.15).AND.
28987 & (IDBJT.NE.16).AND.
28988 & (BETA.GT.0.23D0).AND.(BETA.LE.0.70D0) ) )
28989 & LGREY = .TRUE.
28990 IF ( ( (IDBJT.EQ. 1).AND.(EK.LE. 26.0D-3) ).OR.
28991 & ( (IDBJT.EQ.13).AND.(EK.LE. 12.0D-3) ).OR.
28992 & ( (IDBJT.EQ.14).AND.(EK.LE. 12.0D-3) ).OR.
28993 & ( (IDBJT.EQ.15).AND.(EK.LE. 20.0D-3) ).OR.
28994 & ( (IDBJT.EQ.16).AND.(EK.LE. 20.0D-3) ).OR.
28995 & ( (IDBJT.NE. 1).AND.(IDBJT.NE.13).AND.
28996 & (IDBJT.NE.14).AND.(IDBJT.NE.15).AND.
28997 & (IDBJT.NE.16).AND.(BETA.LE.0.23D0) ) )
28998 & LBLACK = .TRUE.
28999 ELSE
29000* common Def.
29001 IF ((BETA.GT.0.23D0).AND.(BETA.LE.0.70D0)) LGREY=.TRUE.
29002 IF (BETA.LE.0.23D0) LBLACK=.TRUE.
29003 ENDIF
29004 LFSP = .TRUE.
29005 ELSEIF (ABS(ISTHKK(IDX)).EQ.ISTRNL) THEN
29006 IST = ISTHKK(IDX)
29007 IDPDG = IDHKK(IDX)
29008 LFRAG = .TRUE.
29009 IDBJT = 0
29010 IBARY = IDRES(IDX)
29011 ICHAR = IDXRES(IDX)
29012 AMASS = PHKK(5,IDX)
29013 PE = PHKK(4,IDX)
29014 PX = PHKK(1,IDX)
29015 PY = PHKK(2,IDX)
29016 PZ = PHKK(3,IDX)
29017 PT2 = PX**2+PY**2
29018 PT = SQRT(PT2)
29019 PTOT = SQRT(PT2+PZ**2)
29020 SINTHE = PT/MAX(PTOT,TINY14)
29021 COSTHE = PZ/MAX(PTOT,TINY14)
29022 IF (COSTHE.GT.ONE) THEN
29023 THETA = ZERO
29024 ELSEIF (COSTHE.LT.-ONE) THEN
29025 THETA = TWOPI/2.0D0
29026 ELSE
29027 THETA = ACOS(COSTHE)
29028 ENDIF
29029 EKIN = PE-AMASS
29030**sr 15.4.96 new E_t-definition
29031C ET = PE*SINTHE
29032 ET = EKIN*SINTHE
29033**
29034 IF ((THETA.GT.TINY14).AND.((PI-THETA).GT.TINY14)) THEN
29035 ETA = -LOG(TAN(THETA/TWO))
29036 ELSE
29037 ETA = 100.0D0
29038 ENDIF
29039 THETA = THETA/BOG
29040 LRNL = .TRUE.
29041 ENDIF
29042
29043 9999 CONTINUE
29044 RETURN
29045 END
29046
29047*$ CREATE DT_HIMULT.FOR
29048*COPY DT_HIMULT
29049*
29050*===himult=============================================================*
29051*
29052 SUBROUTINE DT_HIMULT(MODE)
29053
29054************************************************************************
29055* Tables of average energies/multiplicities. *
29056* This version dated 30.08.2000 is written by S. Roesler *
29057************************************************************************
29058
29059 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
29060 SAVE
29061 PARAMETER ( LINP = 10 ,
29062 & LOUT = 6 ,
29063 & LDAT = 9 )
29064 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
29065
29066 PARAMETER (SWMEXP=1.7D0)
29067
29068 CHARACTER*8 ANAMEH(4)
29069
29070* particle properties (BAMJET index convention)
29071 CHARACTER*8 ANAME
29072 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
29073 & IICH(210),IIBAR(210),K1(210),K2(210)
29074* temporary storage for one final state particle
29075 LOGICAL LFRAG,LGREY,LBLACK
29076 COMMON /DTFSPA/ AMASS,PE,EECMS,PX,PY,PZ,PZCMS,PT,PTOT,ET,EKIN,
29077 & SINTHE,COSTHE,THETA,THECMS,
29078 & BETA,YY,YYCMS,ETA,ETACMS,XLAB,XF,
29079 & IST,IDPDG,IDBJT,IBARY,ICHAR,MULDEF,
29080 & LFRAG,LGREY,LBLACK
29081* event flag used for histograms
29082 COMMON /DTNORM/ ICEVT,IEVHKK
29083* Lorentz-parameters of the current interaction
29084 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
29085 & UMO,PPCM,EPROJ,PPROJ
29086
29087 PARAMETER (NOPART=210)
29088 DIMENSION AVMULT(4,NOPART),AVE(4,NOPART),AVSWM(4,NOPART),
29089 & AVPT(4,NOPART),IAVPT(4,NOPART)
29090 DATA ANAMEH /'DEUTERON','3-H ','3-HE ','4-HE '/
29091
29092 GOTO (1,2,3) MODE
29093
29094*------------------------------------------------------------------
29095* initialization
29096 1 CONTINUE
29097 DO 10 I=1,NOPART
29098 DO 11 J=1,4
29099 AVMULT(J,I) = ZERO
29100 AVE(J,I) = ZERO
29101 AVSWM(J,I) = ZERO
29102 AVPT(J,I) = ZERO
29103 IAVPT(J,I) = 0
29104 11 CONTINUE
29105 10 CONTINUE
29106
29107 RETURN
29108
29109*------------------------------------------------------------------
29110* filling of histogram with event-record
29111 2 CONTINUE
29112 IF (PE.LT.0.0D0) THEN
29113 WRITE(LOUT,*) ' HIMULT: PE < 0 ! ',PE
29114 RETURN
29115 ENDIF
29116 IF (.NOT.LFRAG) THEN
29117 IVEL = 2
29118 IF (LGREY) IVEL = 3
29119 IF (LBLACK) IVEL = 4
29120 AVE(1,IDBJT) = AVE(1,IDBJT) +PE
29121 AVE(IVEL,IDBJT) = AVE(IVEL,IDBJT)+PE
29122 AVPT(1,IDBJT) = AVPT(1,IDBJT) +PT
29123 AVPT(IVEL,IDBJT) = AVPT(IVEL,IDBJT)+PT
29124 IAVPT(1,IDBJT) = IAVPT(1,IDBJT) +1
29125 IAVPT(IVEL,IDBJT) = IAVPT(IVEL,IDBJT)+1
29126 AVSWM(1,IDBJT) = AVSWM(1,IDBJT) +PE**SWMEXP
29127 AVSWM(IVEL,IDBJT) = AVSWM(IVEL,IDBJT)+PE**SWMEXP
29128 AVMULT(1,IDBJT) = AVMULT(1,IDBJT) +ONE
29129 AVMULT(IVEL,IDBJT) = AVMULT(IVEL,IDBJT)+ONE
29130 IF (IDBJT.LT.116) THEN
29131* total energy, multiplicity
29132 AVE(1,30) = AVE(1,30) +PE
29133 AVE(IVEL,30) = AVE(IVEL,30)+PE
29134 AVPT(1,30) = AVPT(1,30) +PT
29135 AVPT(IVEL,30) = AVPT(IVEL,30)+PT
29136 IAVPT(1,30) = IAVPT(1,30) +1
29137 IAVPT(IVEL,30) = IAVPT(IVEL,30)+1
29138 AVSWM(1,30) = AVSWM(1,30)+PE**SWMEXP
29139 AVSWM(IVEL,30) = AVSWM(IVEL,30)+PE**SWMEXP
29140 AVMULT(1,30) = AVMULT(1,30) +ONE
29141 AVMULT(IVEL,30) = AVMULT(IVEL,30)+ONE
29142* charged energy, multiplicity
29143 IF (ICHAR.LT.0) THEN
29144 AVE(1,26) = AVE(1,26) +PE
29145 AVE(IVEL,26) = AVE(IVEL,26)+PE
29146 AVPT(1,26) = AVPT(1,26) +PT
29147 AVPT(IVEL,26) = AVPT(IVEL,26)+PT
29148 IAVPT(1,26) = IAVPT(1,26) +1
29149 IAVPT(IVEL,26) = IAVPT(IVEL,26)+1
29150 AVSWM(1,26) = AVSWM(1,26) +PE**SWMEXP
29151 AVSWM(IVEL,26) = AVSWM(IVEL,26)+PE**SWMEXP
29152 AVMULT(1,26) = AVMULT(1,26) +ONE
29153 AVMULT(IVEL,26) = AVMULT(IVEL,26)+ONE
29154 ENDIF
29155 IF (ICHAR.NE.0) THEN
29156 AVE(1,27) = AVE(1,27) +PE
29157 AVE(IVEL,27) = AVE(IVEL,27)+PE
29158 AVPT(1,27) = AVPT(1,27) +PT
29159 AVPT(IVEL,27) = AVPT(IVEL,27)+PT
29160 IAVPT(1,27) = IAVPT(1,27) +1
29161 IAVPT(IVEL,27) = IAVPT(IVEL,27)+1
29162 AVSWM(1,27) = AVSWM(1,27) +PE**SWMEXP
29163 AVSWM(IVEL,27) = AVSWM(IVEL,27)+PE**SWMEXP
29164 AVMULT(1,27) = AVMULT(1,27) +ONE
29165 AVMULT(IVEL,27) = AVMULT(IVEL,27)+ONE
29166 ENDIF
29167 ENDIF
29168 ENDIF
29169
29170 RETURN
29171
29172*------------------------------------------------------------------
29173* output
29174 3 CONTINUE
29175 WRITE(LOUT,3000)
29176 3000 FORMAT(/,1X,'HIMULT:',21X,'particle - statistics',/,
29177 & 29X,'---------------------',/)
29178 IF (MULDEF.EQ.1) THEN
29179 WRITE(LOUT,'(1X,A,/)') 'fast/grey/black: EMU-def.'
29180 ELSE
29181 BETGRE = 0.7D0
29182 BETBLC = 0.23D0
29183 WRITE(LOUT,3002) BETGRE,BETGRE,BETBLC,BETBLC
29184 3002 FORMAT(1X,'fast: beta > ',F4.2,' grey: ',F4.2,' > beta > '
29185 & ,F4.2,' black: beta < ',F4.2,/)
29186 ENDIF
29187 WRITE(LOUT,3003) SWMEXP
29188 3003 FORMAT(1X,'particle |',12X,'average multiplicity',/,
29189 & 13X,'| total fast',
29190C & ' grey black K f(',F3.1,')',/,1X,
29191 & ' grey black <pt> f(',F3.1,')',/,1X,
29192 & '------------+--------------',
29193 & '-------------------------------------------------')
29194 DO 30 I=1,NOPART
29195 DO 31 J=1,4
29196 AVMULT(J,I) = AVMULT(J,I)/DBLE(MAX(ICEVT,1))
29197 AVE(J,I) = AVE(J,I)/DBLE(MAX(ICEVT,1))/EPROJ
29198 AVPT(J,I) = AVPT(J,I)/DBLE(MAX(IAVPT(J,I),1))
29199 AVSWM(J,I) = AVSWM(J,I)/DBLE(MAX(ICEVT,1))/EPROJ**SWMEXP
29200 31 CONTINUE
29201 IF (I.LE.115) THEN
29202 WRITE(LOUT,3004) ANAME(I),I,
29203 & AVMULT(1,I),AVMULT(2,I),
29204 & AVMULT(3,I),AVMULT(4,I),
29205C & AVE(1,I),AVSWM(1,I)
29206 & AVPT(1,I),AVSWM(1,I)
29207 ELSEIF (I.LE.119) THEN
29208 WRITE(LOUT,3004) ANAMEH(I-115),I,
29209 & AVMULT(1,I),AVMULT(2,I),
29210 & AVMULT(3,I),AVMULT(4,I),
29211C & AVE(1,I),AVSWM(1,I)
29212 & AVPT(1,I),AVSWM(1,I)
29213 ENDIF
29214 3004 FORMAT(1X,A8,I4,'| ',2F13.6,2F9.5,2F9.5)
29215 30 CONTINUE
29216**temporary
29217C WRITE(LOUT,'(A,F7.3)') ' number of charged heavy particles: ',
29218C & AVMULT(3,27)+AVMULT(4,27)
29219**
29220
29221 RETURN
29222 END
29223
29224*$ CREATE DT_HISTAT.FOR
29225*COPY DT_HISTAT
29226*
29227*===histat=============================================================*
29228*
29229 SUBROUTINE DT_HISTAT(IDX,MODE)
29230
29231************************************************************************
29232* This version dated 26.02.96 is written by S. Roesler *
29233* *
29234* Last change 27.12.2006 by S. Roesler. *
29235************************************************************************
29236
29237 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
29238 SAVE
29239 PARAMETER ( LINP = 10 ,
29240 & LOUT = 6 ,
29241 & LDAT = 9 )
29242 PARAMETER (ZERO=0.0D0,ONE=1.0D0,TWO=2.0D0,TINY14=1.0D-14)
29243 PARAMETER (NDIM=199)
29244
29245* event history
29246 PARAMETER (NMXHKK=200000)
29247 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
29248 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
29249 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
29250* extended event history
29251 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
29252 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
29253 & IHIST(2,NMXHKK)
29254* particle properties (BAMJET index convention)
29255 CHARACTER*8 ANAME
29256 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
29257 & IICH(210),IIBAR(210),K1(210),K2(210)
29258 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
29259* Glauber formalism: cross sections
29260 COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
29261 & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
29262 & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
29263 & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
29264 & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
29265 & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
29266 & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
29267 & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
29268 & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
29269 & BSLOPE,NEBINI,NQBINI
29270* emulsion treatment
29271 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
29272 & NCOMPO,IEMUL
29273* properties of interacting particles
29274 COMMON /DTPRTA/ IT,ITZ,IP,IPZ,IJPROJ,IBPROJ,IJTARG,IBTARG
29275* rejection counter
29276 COMMON /DTREJC/ IRPT,IRHHA,IRRES(2),LOMRES,LOBRES,
29277 & IRCHKI(2),IRFRAG,IRCRON(3),IREVT,
29278 & IREXCI(3),IRDIFF(2),IRINC
29279* statistics: residual nuclei
29280 COMMON /DTSTA2/ EXCDPM(4),EXCEVA(2),
29281 & NINCGE,NINCCO(2,3),NINCHR(2,2),NINCWO(2),
29282 & NINCST(2,4),NINCEV(2),
29283 & NRESTO(2),NRESPR(2),NRESNU(2),NRESBA(2),
29284 & NRESPB(2),NRESCH(2),NRESEV(4),
29285 & NEVA(2,6),NEVAGA(2),NEVAHT(2),NEVAHY(2,2,240),
29286 & NEVAFI(2,2)
29287* parameter for intranuclear cascade
29288 LOGICAL LPAULI
29289 COMMON /DTFOTI/ TAUFOR,KTAUGE,ITAUVE,INCMOD,LPAULI
29290* (original name: PAREVT)
29291 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
29292 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
29293 PARAMETER ( NALLWP = 39 )
29294 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
29295 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
29296 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
29297 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
29298* (original name: FRBKCM)
29299 PARAMETER ( MXFFBK = 6 )
29300 PARAMETER ( MXZFBK = 9 )
29301 PARAMETER ( MXNFBK = 10 )
29302 PARAMETER ( MXAFBK = 16 )
29303 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
29304 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
29305 PARAMETER ( NXAFBK = MXAFBK + 1 )
29306 PARAMETER ( MXPSST = 300 )
29307 PARAMETER ( MXPSFB = 41000 )
29308 LOGICAL LFRMBK, LNCMSS
29309 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
29310 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
29311 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
29312 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
29313 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
29314 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
29315 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
29316 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
29317 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
29318* (original name: INPFLG)
29319 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
29320* temporary storage for one final state particle
29321 LOGICAL LFRAG,LGREY,LBLACK
29322 COMMON /DTFSPA/ AMASS,PE,EECMS,PX,PY,PZ,PZCMS,PT,PTOT,ET,EKIN,
29323 & SINTHE,COSTHE,THETA,THECMS,
29324 & BETA,YY,YYCMS,ETA,ETACMS,XLAB,XF,
29325 & IST,IDPDG,IDBJT,IBARY,ICHAR,MULDEF,
29326 & LFRAG,LGREY,LBLACK
29327* event flag used for histograms
29328 COMMON /DTNORM/ ICEVT,IEVHKK
29329* statistics: double-Pomeron exchange
29330 COMMON /DTFLG2/ INTFLG,IPOPO
29331
29332 DIMENSION EMUSAM(NCOMPX)
29333
29334 CHARACTER*13 CMSG(3)
29335 DATA CMSG /'not requested','not requested','not requested'/
29336
29337 GOTO (1,2,3,4,5) MODE
29338
29339*------------------------------------------------------------------
29340* initialization
29341 1 CONTINUE
29342* emulsion treatment
29343 IF (NCOMPO.GT.0) THEN
29344 DO 10 I=1,NCOMPX
29345 EMUSAM(I) = ZERO
29346 10 CONTINUE
29347 ENDIF
29348* common /DTSTA2/, statistics on i.n.c., residual nuclei, evap.
29349 NINCGE = 0
29350 DO 11 I=1,2
29351 EXCDPM(I) = ZERO
29352 EXCDPM(I+2) = ZERO
29353 EXCEVA(I) = ZERO
29354 NINCWO(I) = 0
29355 NINCEV(I) = 0
29356 NRESTO(I) = 0
29357 NRESPR(I) = 0
29358 NRESNU(I) = 0
29359 NRESBA(I) = 0
29360 NRESPB(I) = 0
29361 NRESCH(I) = 0
29362 NRESEV(I) = 0
29363 NRESEV(I+2) = 0
29364 NEVAGA(I) = 0
29365 NEVAHT(I) = 0
29366 NEVAFI(1,I) = 0
29367 NEVAFI(2,I) = 0
29368 DO 12 J=1,6
29369 IF (J.LE.2) NINCHR(I,J) = 0
29370 IF (J.LE.3) NINCCO(I,J) = 0
29371 IF (J.LE.4) NINCST(I,J) = 0
29372 NEVA(I,J) = 0
29373 12 CONTINUE
29374 DO 13 J=1,210
29375 NEVAHY(1,I,J) = 0
29376 NEVAHY(2,I,J) = 0
29377 13 CONTINUE
29378 11 CONTINUE
29379 MAXGEN = 0
29380**dble Po statistics.
29381 KPOPO = 0
29382
29383 RETURN
29384*------------------------------------------------------------------
29385* filling of histogram with event-record
29386 2 CONTINUE
29387 IF (IST.EQ.-1) THEN
29388 IF (.NOT.LFRAG) THEN
29389 IF (IDPDG.EQ.2212) THEN
29390 NEVA(NOBAM(IDX),1) = NEVA(NOBAM(IDX),1)+1
29391 ELSEIF (IDPDG.EQ.2112) THEN
29392 NEVA(NOBAM(IDX),2) = NEVA(NOBAM(IDX),2)+1
29393 ELSEIF (IDPDG.EQ.22) THEN
29394 NEVAGA(NOBAM(IDX)) = NEVAGA(NOBAM(IDX))+1
29395 ELSEIF (IDPDG.EQ.80000) THEN
29396 IF (IDBJT.EQ.116) THEN
29397 NEVA(NOBAM(IDX),3) = NEVA(NOBAM(IDX),3)+1
29398 ELSEIF (IDBJT.EQ.117) THEN
29399 NEVA(NOBAM(IDX),4) = NEVA(NOBAM(IDX),4)+1
29400 ELSEIF (IDBJT.EQ.118) THEN
29401 NEVA(NOBAM(IDX),5) = NEVA(NOBAM(IDX),5)+1
29402 ELSEIF (IDBJT.EQ.119) THEN
29403 NEVA(NOBAM(IDX),6) = NEVA(NOBAM(IDX),6)+1
29404 ENDIF
29405 ENDIF
29406 ELSE
29407* heavy fragments (here: fission products only)
29408 NEVAHY(NOBAM(IDX),1,IBARY) = NEVAHY(NOBAM(IDX),1,IBARY)+1
29409 NEVAHY(NOBAM(IDX),2,ICHAR) = NEVAHY(NOBAM(IDX),2,ICHAR)+1
29410 NEVAHT(NOBAM(IDX)) = NEVAHT(NOBAM(IDX))+1
29411 ENDIF
29412 ELSEIF ((IST.EQ.1).AND.(.NOT.LFRAG)) THEN
29413 IF (IDCH(IDX).GT.MAXGEN) MAXGEN = IDCH(IDX)
29414 ENDIF
29415
29416 RETURN
29417*------------------------------------------------------------------
29418* output
29419 3 CONTINUE
29420
29421**dble Po statistics.
29422C WRITE(LOUT,'(1X,A,2I7,2E12.4)')
29423C & '# evts. / # dble-Po. evts / s_in / s_popo :',
29424C & ICEVT,KPOPO,XSPRO(1,1,1),XSPRO(1,1,1)*DBLE(KPOPO)/DBLE(ICEVT)
29425
29426* emulsion treatment
29427 IF (NCOMPO.GT.0) THEN
29428 WRITE(LOUT,3000)
29429 3000 FORMAT(/,1X,'HISTAT:',14X,'statistics - target emulsion',/,
29430 & 22X,'----------------------------',/,/,19X,
29431 & 'mass charge fraction',/,39X,
29432 & 'input treated',/)
29433 DO 30 I=1,NCOMPO
29434 WRITE(LOUT,3013) I,IEMUMA(I),IEMUCH(I),EMUFRA(I),
29435 & EMUSAM(I)/DBLE(ICEVT)
29436 3013 FORMAT(12X,I2,1X,2I8,6X,F7.3,5X,F7.3)
29437 30 CONTINUE
29438 ENDIF
29439
29440* i.n.c. statistics: output
29441 WRITE(LOUT,3001) ICEVT,NRESEV(2),IRINC
29442 3001 FORMAT(/,1X,'HISTAT:',14X,'statistics - intranuclear cascade',/,
29443 & 22X,'---------------------------------',/,/,1X,
29444 & 'no. of events for normalization: (accepted final events,',
29445 & ' evt)',4X,I6,/,34X,'(events before evap.-step, evt1)',I6,
29446 & /,1X,'no. of rejected events due to intranuclear',
29447 & ' cascade',15X,I6,/)
29448 ICEV = MAX(ICEVT,1)
29449 ICEV1 = ICEV
29450 IF (LEVPRT) ICEV1 = MAX(NRESEV(2),1)
29451 WRITE(LOUT,3002)
29452 & (DBLE(NINCWO(I))/DBLE(ICEV),I=1,2),
29453 & ((DBLE(NINCST(I,J))/DBLE(ICEV),I=1,2),J=1,4),
29454 & KTAUGE,DBLE(NINCGE)/DBLE(ICEV),
29455 & (DBLE(NINCCO(I,1)+NINCCO(I,2)+NINCCO(I,3))/DBLE(ICEV1),I=1,2),
29456 & (DBLE(NINCCO(I,2))/DBLE(ICEV1),I=1,2),
29457 & (DBLE(NINCCO(I,3))/DBLE(ICEV1),I=1,2),
29458 & (DBLE(NINCCO(I,1))/DBLE(ICEV1),I=1,2)
29459 3002 FORMAT(1X,'no. of wounded nucl. in proj./ target (mean per evt)',
29460 & 5X,F6.2,' /',F6.2,/,1X,'no. of particles unable to escape',
29461 & ' proj./ target (mean per evt)',/,8X,'baryons: pos. ',
29462 & F7.3,' /',F7.3,' neg. ',F7.3,' /',F7.3,/,8X,
29463 & 'mesons: pos. ',F7.3,' /',F7.3,' neg. ',F7.3,' /',F7.3,
29464 & /,1X,'maximum no. of generations treated (maximum allowed:'
29465 & ,I4,')',/,43X,'(mean per evt)',5X,F6.2,/,1X,'no. of sec.',
29466 & ' interactions in proj./ target (mean per evt1)',
29467 & F7.3,' /',F7.3,/,8X,'out of which by inelastic',
29468 & ' interactions',12X,F7.3,' /',F7.3,/,21X,'by elastic ',
29469 & 'interactions',14X,F7.3,' /',F7.3,/,21X,'by absorption ',
29470 & '(ap, K-, pi- only) ',F7.3,' /',F7.3,/)
29471 WRITE(LOUT,3003) NRESEV(2),NRESEV(4),IREXCI,
29472 & IREXCI(1)+IREXCI(2)+IREXCI(3)
29473 3003 FORMAT(/,1X,'HISTAT:',14X,'statistics - residual nuclei, ',
29474 & 'evaporation',/,22X,'-----------------------------',
29475 & '------------',/,/,1X,'no. of events for normal.: ',
29476 & '(events handled by FICONF, evt)',7X,I6,/,28X,'(events',
29477 & ' passing the evap.-step, evt1) ',I6,/,1X,'no. of',
29478 & ' rejected events (',I4,',',I4,',',I4,')',22X,I6,/)
29479
29480 WRITE(LOUT,3004)
29481 3004 FORMAT(/,22X,'1) before evaporation-step:',/)
29482 ICEV = MAX(NRESEV(2),1)
29483 WRITE(LOUT,3005)
29484 & (DBLE(NRESTO(I))/DBLE(ICEV),I=1,2),
29485 & (DBLE(NRESPR(I))/DBLE(ICEV),I=1,2),
29486 & (DBLE(NRESNU(I))/DBLE(ICEV),I=1,2),
29487 & (DBLE(NRESBA(I))/DBLE(ICEV),I=1,2),
29488 & (DBLE(NRESPB(I))/DBLE(ICEV),I=1,2),
29489 & (DBLE(NRESCH(I))/DBLE(ICEV),I=1,2),
29490 & (EXCDPM(I)/DBLE(ICEV),I=1,2),
29491 & (EXCDPM(I+2)/DBLE(ICEV),I=1,2)
29492 3005 FORMAT(1X,'residual nuclei: (mean values per evt)',12X,
29493 & 'proj. / target',/,/,8X,'total number of particles',15X,
29494 & 2F9.3,/,8X,'out of which: protons',19X,2F9.3,/,22X,
29495 & 'neutrons',18X,2F9.3,/,22X,'baryons',19X,2F9.3,/,22X,
29496 & 'pos. baryons',14X,2F9.3,/,8X,'total charge',28X,2F9.3,/,
29497 & /,8X,'excitation energy (bef. evap.-step) ',2E11.3,/,
29498 & 8X,'excitation energy per nucleon ',2E11.3,/,/)
29499
29500* evaporation / fission / fragmentation statistics: output
29501 ICEV = MAX(NRESEV(2),1)
29502 ICEV1 = MAX(NRESEV(4),1)
29503 NTEVA1 =
29504 & NEVA(1,1)+NEVA(1,2)+NEVA(1,3)+NEVA(1,4)+NEVA(1,5)+NEVA(1,6)
29505 NTEVA2 =
29506 & NEVA(2,1)+NEVA(2,2)+NEVA(2,3)+NEVA(2,4)+NEVA(2,5)+NEVA(2,6)
29507 IF (LEVPRT) THEN
29508 IF (IFISS.EQ.1) CMSG(1) = 'requested '
29509 IF (LFRMBK) CMSG(2) = 'requested '
29510 IF (LDEEXG) CMSG(3) = 'requested '
29511 WRITE(LOUT,3006)
29512 & CMSG,
29513 & DBLE(NTEVA1)/DBLE(ICEV1),DBLE(NTEVA2)/DBLE(ICEV1),
29514 & (DBLE(NEVA(I,1))/DBLE(ICEV1),I=1,2),
29515 & (DBLE(NEVA(I,2))/DBLE(ICEV1),I=1,2),
29516 & (DBLE(NEVA(I,3))/DBLE(ICEV1),I=1,2),
29517 & (DBLE(NEVA(I,4))/DBLE(ICEV1),I=1,2),
29518 & (DBLE(NEVA(I,5))/DBLE(ICEV1),I=1,2),
29519 & (DBLE(NEVA(I,6))/DBLE(ICEV1),I=1,2),
29520 & (DBLE(NEVAGA(I))/DBLE(ICEV1),I=1,2),
29521 & (DBLE(NEVAHT(I))/DBLE(ICEV1),I=1,2)
29522 3006 FORMAT(22X,'2) after evaporation-step:',/,/,1X,'Fission:',
29523 & 13X,A13,/,1X,'Fermi-Break-up:',6X,A13,/,1X,'Gamma-',
29524 & 'deexcitation:',2X,A13,/,/,
29525 & 1X,'evaporation/deexcitation: (mean values per evt1) ',
29526 & 'proj. / target',/,/,8X,'total number of evap. particles',
29527 & 9X,2F9.3,/,8X,'out of which: protons',19X,2F9.3,/,22X,
29528 & 'neutrons',18X,2F9.3,/,22X,'deuterons',17X,2F9.3,/,22X,
29529 & '3-H',23X,2F9.3,/,22X,'3-He',22X,2F9.3,/,22X,'4-He',22X,
29530 & 2F9.3,/,8X,'nucl. deexcit. gammas',19X,2F9.3,/,8X,
29531 & 'heavy fragments',25X,2F9.3,/)
29532 IF (IFISS.EQ.1) THEN
29533 WRITE(LOUT,3007) NEVAFI(1,1),NEVAFI(1,2),
29534 & NEVAFI(2,1),NEVAFI(2,2),
29535 & DBLE(NEVAFI(2,1))/DBLE(MAX(NEVAFI(1,1),1))*100.0D0,
29536 & DBLE(NEVAFI(2,2))/DBLE(MAX(NEVAFI(1,2),1))*100.0D0
29537 3007 FORMAT(1X,'Fission: total number of events',14X,2I9,/
29538 & 12X,'out of which fission occured',8X,2I9,/,
29539 & 50X,'(',F5.2,'%) (',F5.2,'%)',/)
29540 ENDIF
29541C IF ((LFRMBK).OR.(IFISS.EQ.1)) THEN
29542C WRITE(LOUT,3008)
29543C3008 FORMAT(1X,'heavy fragments - statistics:',7X,'charge',
29544C & ' proj. / target',/)
29545C DO 31 I=1,210
29546C IF ((NEVAHY(1,2,I).NE.0).OR.(NEVAHY(2,2,I).NE.0)) THEN
29547C WRITE(LOUT,3009) I,
29548C & (DBLE(NEVAHY(K,2,I))*XSPRO(1,1,1)/DBLE(ICEV1),K=1,2)
29549C3009 FORMAT(38X,I3,3X,2E12.3)
29550C ENDIF
29551C 31 CONTINUE
29552C WRITE(LOUT,3010)
29553C3010 FORMAT(1X,'heavy fragments - statistics:',7X,'mass ',
29554C & ' proj. / target',/)
29555C DO 32 I=1,210
29556C IF ((NEVAHY(1,1,I).NE.0).OR.(NEVAHY(2,1,I).NE.0)) THEN
29557C WRITE(LOUT,3011) I,
29558C & (DBLE(NEVAHY(K,1,I))*XSPRO(1,1,1)/DBLE(ICEV1),K=1,2)
29559C3011 FORMAT(38X,I3,3X,2E12.3)
29560C ENDIF
29561C 32 CONTINUE
29562C WRITE(LOUT,*)
29563C ENDIF
29564 ELSE
29565 WRITE(LOUT,3012)
29566 3012 FORMAT(22X,'2) after evaporation-step:',/,/,1X,
29567 & 'Evaporation: not requested',/)
29568 ENDIF
29569
29570 RETURN
29571*------------------------------------------------------------------
29572* filling of histogram with event-record
29573 4 CONTINUE
29574* emulsion treatment
29575 IF (NCOMPO.GT.0) THEN
29576 DO 40 I=1,NCOMPO
29577 IF (IT.EQ.IEMUMA(I)) THEN
29578 EMUSAM(I) = EMUSAM(I)+ONE
29579 ENDIF
29580 40 CONTINUE
29581 ENDIF
29582 NINCGE = NINCGE+MAXGEN
29583 MAXGEN = 0
29584**dble Po statistics.
29585 IF (IPOPO.EQ.1) KPOPO = KPOPO+1
29586
29587 RETURN
29588*------------------------------------------------------------------
29589* filling of histogram with event-record
29590 5 CONTINUE
29591 IF ((ISTHKK(IDX).EQ.15).OR.(ISTHKK(IDX).EQ.16)) THEN
29592 IB = IIBAR(IDBAM(IDX))
29593 IC = IICH(IDBAM(IDX))
29594 J = ISTHKK(IDX)-14
29595 IF ( ((ABS(IB).EQ.1).AND.(IC.EQ.1)).OR.(IC.EQ.0) ) THEN
29596 NINCST(J,1) = NINCST(J,1)+1
29597 ELSEIF ((ABS(IB).EQ.1).AND.(IC.EQ.-1)) THEN
29598 NINCST(J,2) = NINCST(J,2)+1
29599 ELSEIF ((ABS(IB).EQ.0).AND.(IC.EQ. 1)) THEN
29600 NINCST(J,3) = NINCST(J,3)+1
29601 ELSEIF ((ABS(IB).EQ.0).AND.(IC.EQ.-1)) THEN
29602 NINCST(J,4) = NINCST(J,4)+1
29603 ENDIF
29604 ELSEIF (ISTHKK(IDX).EQ.17) THEN
29605 NINCWO(1) = NINCWO(1)+1
29606 ELSEIF (ISTHKK(IDX).EQ.18) THEN
29607 NINCWO(2) = NINCWO(2)+1
29608 ELSEIF (ISTHKK(IDX).EQ.1001) THEN
29609 IB = IDRES(IDX)
29610 IC = IDXRES(IDX)
29611 IF (IC.GT.0) THEN
29612 NEVAHY(NOBAM(IDX),1,IB) = NEVAHY(NOBAM(IDX),1,IB)+1
29613 NEVAHY(NOBAM(IDX),2,IC) = NEVAHY(NOBAM(IDX),2,IC)+1
29614 ENDIF
29615 NEVAHT(NOBAM(IDX)) = NEVAHT(NOBAM(IDX))+1
29616 ENDIF
29617
29618 RETURN
29619 END
29620
29621*$ CREATE DT_NEWHGR.FOR
29622*COPY DT_NEWHGR
29623*
29624*===newhgr=============================================================*
29625*
29626 SUBROUTINE DT_NEWHGR(XLIM1,XLIM2,XLIM3,XLIMB,IBIN,IREFN)
29627
29628************************************************************************
29629* *
29630* Histogram initialization. *
29631* *
29632* input: XLIM1/XLIM2 lower/upper edge of histogram-window *
29633* XLIM3 bin size *
29634* IBIN > 0 number of bins in equidistant lin. binning *
29635* = -1 reset histograms *
29636* < -1 |IBIN| number of bins in equidistant log. *
29637* binning or log. binning in user def. struc. *
29638* XLIMB(*) user defined bin structure *
29639* *
29640* The bin structure is sensitive to *
29641* XLIM1, XLIM3, IBIN if XLIM3 > 0 (lin.) *
29642* XLIM1, XLIM2, IBIN if XLIM3 = 0 (lin. & log.) *
29643* XLIMB, IBIN if XLIM3 < 0 *
29644* *
29645* *
29646* output: IREFN histogram index *
29647* (= -1 for inconsistent histogr. request) *
29648* *
29649* This subroutine is based on a original version by R. Engel. *
29650* This version dated 22.4.95 is written by S. Roesler. *
29651************************************************************************
29652
29653 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29654 SAVE
29655 PARAMETER ( LINP = 10 ,
29656 & LOUT = 6 ,
29657 & LDAT = 9 )
29658
29659 LOGICAL LSTART
29660
29661 PARAMETER (ZERO = 0.0D0,
29662 & TINY = 1.0D-10)
29663
29664 DIMENSION XLIMB(*)
29665
29666* histograms
29667 PARAMETER (NHIS=150, NDIM=250)
29668 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
29669 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
29670* auxiliary common for histograms
29671 COMMON /DTHIS2/ TMPHIS(3,NHIS,NDIM),TMPUFL(NHIS),TMPOFL(NHIS)
29672
29673 DATA LSTART /.TRUE./
29674
29675* reset histogram counter
29676 IF (LSTART.OR.(IBIN.EQ.-1)) THEN
29677 IHISL = 0
29678 IF (IBIN.EQ.-1) RETURN
29679 LSTART = .FALSE.
29680 ENDIF
29681
29682 IHIS = IHISL+1
29683* check for maximum number of allowed histograms
29684 IF (IHIS.GT.NHIS) THEN
29685 WRITE(LOUT,1003) IHIS,NHIS,IHIS
29686 1003 FORMAT(1X,'NEWHGR: warning! number of histograms (',
29687 & I4,') exceeds array size (',I4,')',/,21X,
29688 & 'histogram',I3,' skipped!')
29689 GOTO 9999
29690 ENDIF
29691
29692 IREFN = IHIS
29693 IBINS(IHIS) = ABS(IBIN)
29694* check requested number of bins
29695 IF (IBINS(IHIS).GE.NDIM) THEN
29696 WRITE(LOUT,1000) IBIN,NDIM,NDIM
29697 1000 FORMAT(1X,'NEWHGR: warning! number of bins (',
29698 & I3,') exceeds array size (',I3,')',/,21X,
29699 & 'and will be reset to ',I3)
29700 IBINS(IHIS) = NDIM
29701 ENDIF
29702 IF (IBINS(IHIS).EQ.0) THEN
29703 WRITE(LOUT,1001) IBIN,IHIS
29704 1001 FORMAT(1X,'NEWHGR: warning! inconsistent number of',
29705 & ' bins (',I3,')',/,21X,'histogram',I3,' skipped!')
29706 GOTO 9999
29707 ENDIF
29708
29709* initialize arrays
29710 DO 1 I=1,NDIM
29711 DO 2 K=1,3
29712 HIST(K,IHIS,I) = ZERO
29713 HIST(K+3,IHIS,I) = ZERO
29714 TMPHIS(K,IHIS,I) = ZERO
29715 2 CONTINUE
29716 HIST(7,IHIS,I) = ZERO
29717 1 CONTINUE
29718 DENTRY(1,IHIS)= ZERO
29719 DENTRY(2,IHIS)= ZERO
29720 OVERF(IHIS) = ZERO
29721 UNDERF(IHIS) = ZERO
29722 TMPUFL(IHIS) = ZERO
29723 TMPOFL(IHIS) = ZERO
29724
29725* bin str. sensitive to lower edge, bin size, and numb. of bins
29726 IF (XLIM3.GT.ZERO) THEN
29727 DO 3 K=1,IBINS(IHIS)+1
29728 HIST(1,IHIS,K) = XLIM1+DBLE(K-1)*XLIM3
29729 3 CONTINUE
29730 ISWI(IHIS) = 1
29731* bin str. sensitive to lower/upper edge and numb. of bins
29732 ELSEIF (XLIM3.EQ.ZERO) THEN
29733* linear binning
29734 IF (IBIN.GT.0) THEN
29735 XLOW = XLIM1
29736 XHI = XLIM2
29737 IF (XLIM2.LE.XLIM1) THEN
29738 WRITE(LOUT,1002) XLIM1,XLIM2
29739 1002 FORMAT(1X,'NEWHGR: warning! inconsistent x-range',
29740 & /,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
29741 GOTO 9999
29742 ENDIF
29743 ISWI(IHIS) = 1
29744 ELSEIF (IBIN.LT.-1) THEN
29745* logarithmic binning
29746 IF ((XLIM1.LE.ZERO).OR.(XLIM2.LE.ZERO)) THEN
29747 WRITE(LOUT,1004) XLIM1,XLIM2
29748 1004 FORMAT(1X,'NEWHGR: warning! inconsistent log. ',
29749 & 'binning',/,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
29750 GOTO 9999
29751 ENDIF
29752 IF (XLIM2.LE.XLIM1) THEN
29753 WRITE(LOUT,1005) XLIM1,XLIM2
29754 1005 FORMAT(1X,'NEWHGR: warning! inconsistent x-range',
29755 & /,21X,'(XLIM1,XLIM2 = ',2E11.4,')')
29756 GOTO 9999
29757 ENDIF
29758 XLOW = LOG10(XLIM1)
29759 XHI = LOG10(XLIM2)
29760 ISWI(IHIS) = 3
29761 ENDIF
29762 DX = ABS(XHI-XLOW)/DBLE(MAX(IBINS(IHIS),1))
29763 DO 4 K=1,IBINS(IHIS)+1
29764 HIST(1,IHIS,K) = XLOW+DBLE(K-1)*DX
29765 4 CONTINUE
29766 ELSE
29767* user defined bin structure
29768 DO 5 K=1,IBINS(IHIS)+1
29769 IF (IBIN.GT.0) THEN
29770 HIST(1,IHIS,K) = XLIMB(K)
29771 ISWI(IHIS) = 2
29772 ELSEIF (IBIN.LT.-1) THEN
29773 HIST(1,IHIS,K) = LOG10(XLIMB(K))
29774 ISWI(IHIS) = 4
29775 ENDIF
29776 5 CONTINUE
29777 ENDIF
29778
29779* histogram accepted
29780 IHISL = IHIS
29781
29782 RETURN
29783
29784 9999 CONTINUE
29785 IREFN = -1
29786 RETURN
29787 END
29788
29789*$ CREATE DT_FILHGR.FOR
29790*COPY DT_FILHGR
29791*
29792*===filhgr=============================================================*
29793*
29794 SUBROUTINE DT_FILHGR(XI,YI,IHIS,NEVT)
29795
29796************************************************************************
29797* *
29798* Scoring for histogram IHIS. *
29799* *
29800* This subroutine is based on a original version by R. Engel. *
29801* This version dated 23.4.95 is written by S. Roesler. *
29802************************************************************************
29803
29804 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29805 SAVE
29806 PARAMETER ( LINP = 10 ,
29807 & LOUT = 6 ,
29808 & LDAT = 9 )
29809
29810 PARAMETER (ZERO = 0.0D0,
29811 & ONE = 1.0D0,
29812 & TINY = 1.0D-10)
29813
29814* histograms
29815 PARAMETER (NHIS=150, NDIM=250)
29816 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
29817 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
29818* auxiliary common for histograms
29819 COMMON /DTHIS2/ TMPHIS(3,NHIS,NDIM),TMPUFL(NHIS),TMPOFL(NHIS)
29820
29821 DATA NCEVT /1/
29822
29823 X = XI
29824 Y = YI
29825
29826* dump content of temorary arrays into histograms
29827 IF ((NEVT.NE.NCEVT).OR.(NEVT.LT.0)) THEN
29828 CALL DT_EVTHIS(IDUM)
29829 NCEVT = NEVT
29830 ENDIF
29831
29832* check histogram index
29833 IF (IHIS.EQ.-1) RETURN
29834 IF ((IHIS.LT.1).OR.(IHIS.GT.IHISL)) THEN
29835C WRITE(LOUT,1000) IHIS,IHISL
29836 1000 FORMAT(1X,'FILHGR: warning! histogram index',I4,
29837 & ' out of range (1..',I3,')')
29838 RETURN
29839 ENDIF
29840
29841 IF ((ISWI(IHIS).EQ.1).OR.(ISWI(IHIS).EQ.3)) THEN
29842* bin structure not explicitly given
29843 IF ((ISWI(IHIS).EQ.3).AND.(X.GT.ZERO)) X = LOG10(X)
29844 DX = ABS(HIST(1,IHIS,2)-HIST(1,IHIS,1))
29845 IF (X.LT.HIST(1,IHIS,1)) THEN
29846 I1 = 0
29847 ELSE
29848 I1 = INT( (X-HIST(1,IHIS,1))/MAX(DX,TINY) )+1
29849 ENDIF
29850
29851 ELSEIF ((ISWI(IHIS).EQ.2).OR.(ISWI(IHIS).EQ.4)) THEN
29852* user defined bin structure
29853 IF ((ISWI(IHIS).EQ.4).AND.(X.GT.ZERO)) X = LOG10(X)
29854 IF (X.LT.HIST(1,IHIS,1)) THEN
29855 I1 = 0
29856 ELSE IF (X.GT.HIST(1,IHIS,IBINS(IHIS)+1)) THEN
29857 I1 = IBINS(IHIS)+1
29858 ELSE
29859* binary sort algorithm
29860 KMIN = 0
29861 KMAX = IBINS(IHIS)+1
29862 1 CONTINUE
29863 IF ((KMAX-KMIN).EQ.1) GOTO 2
29864 KK = (KMAX+KMIN)/2
29865 IF (X.LE.HIST(1,IHIS,KK)) THEN
29866 KMAX=KK
29867 ELSE
29868 KMIN=KK
29869 ENDIF
29870 GOTO 1
29871 2 CONTINUE
29872 I1 = KMIN
29873 ENDIF
29874
29875 ELSE
29876 WRITE(LOUT,1001)
29877 1001 FORMAT(1X,'FILHGR: warning! histogram not initialized')
29878 RETURN
29879 ENDIF
29880
29881* scoring
29882 IF (I1.LE.0) THEN
29883 TMPUFL(IHIS) = TMPUFL(IHIS)+ONE
29884 ELSEIF (I1.LE.IBINS(IHIS)) THEN
29885 TMPHIS(1,IHIS,I1) = TMPHIS(1,IHIS,I1)+ONE
29886 IF ((ISWI(IHIS).EQ.3).OR.(ISWI(IHIS).EQ.4)) THEN
29887 TMPHIS(2,IHIS,I1) = TMPHIS(2,IHIS,I1)+10**X
29888 ELSE
29889 TMPHIS(2,IHIS,I1) = TMPHIS(2,IHIS,I1)+X
29890 ENDIF
29891 TMPHIS(3,IHIS,I1) = TMPHIS(3,IHIS,I1)+Y
29892 ELSE
29893 TMPOFL(IHIS) = TMPOFL(IHIS)+ONE
29894 ENDIF
29895
29896 RETURN
29897 END
29898
29899*$ CREATE DT_EVTHIS.FOR
29900*COPY DT_EVTHIS
29901*
29902*===evthis=============================================================*
29903*
29904 SUBROUTINE DT_EVTHIS(NEVT)
29905
29906************************************************************************
29907* Dump content of temorary histograms into /DTHIS1/. This subroutine *
29908* is called after each event and for the last event before any call *
29909* to OUTHGR. *
29910* NEVT number of events dumped, this is only needed to *
29911* get the normalization after the last event *
29912* This version dated 23.4.95 is written by S. Roesler. *
29913************************************************************************
29914
29915 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
29916 SAVE
29917 PARAMETER ( LINP = 10 ,
29918 & LOUT = 6 ,
29919 & LDAT = 9 )
29920
29921 LOGICAL LNOETY
29922
29923 PARAMETER (ZERO = 0.0D0,
29924 & ONE = 1.0D0,
29925 & TINY = 1.0D-10)
29926
29927* histograms
29928 PARAMETER (NHIS=150, NDIM=250)
29929 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
29930 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
29931* auxiliary common for histograms
29932 COMMON /DTHIS2/ TMPHIS(3,NHIS,NDIM),TMPUFL(NHIS),TMPOFL(NHIS)
29933
29934 DATA NCEVT /0/
29935
29936 NCEVT = NCEVT+1
29937 NEVT = NCEVT
29938
29939 DO 1 I=1,IHISL
29940 LNOETY = .TRUE.
29941 DO 2 J=1,IBINS(I)
29942 IF (TMPHIS(1,I,J).GT.ZERO) THEN
29943 LNOETY = .FALSE.
29944 HIST(2,I,J) = HIST(2,I,J)+ONE
29945 HIST(7,I,J) = HIST(7,I,J)+TMPHIS(1,I,J)
29946 DENTRY(2,I) = DENTRY(2,I)+TMPHIS(1,I,J)
29947 AVX = TMPHIS(2,I,J)/TMPHIS(1,I,J)
29948 HIST(3,I,J) = HIST(3,I,J)+TMPHIS(3,I,J)*AVX
29949 HIST(4,I,J) = HIST(4,I,J)+TMPHIS(3,I,J)*AVX**2
29950 HIST(5,I,J) = HIST(5,I,J)+TMPHIS(3,I,J)
29951 HIST(6,I,J) = HIST(6,I,J)+TMPHIS(3,I,J)**2
29952 TMPHIS(1,I,J) = ZERO
29953 TMPHIS(2,I,J) = ZERO
29954 TMPHIS(3,I,J) = ZERO
29955 ENDIF
29956 2 CONTINUE
29957 IF (LNOETY) THEN
29958 IF (TMPUFL(I).GT.ZERO) THEN
29959 UNDERF(I) = UNDERF(I)+ONE
29960 TMPUFL(I) = ZERO
29961 ELSEIF (TMPOFL(I).GT.ZERO) THEN
29962 OVERF(I) = OVERF(I)+ONE
29963 TMPOFL(I) = ZERO
29964 ENDIF
29965 ELSE
29966 DENTRY(1,I) = DENTRY(1,I)+ONE
29967 ENDIF
29968 1 CONTINUE
29969
29970 RETURN
29971 END
29972
29973*$ CREATE DT_OUTHGR.FOR
29974*COPY DT_OUTHGR
29975*
29976*===outhgr=============================================================*
29977*
29978 SUBROUTINE DT_OUTHGR(I1,I2,I3,I4,I5,I6,CHEAD,IHEAD,NEVTS,FAC,
29979 & ILOGY,INORM,NMODE)
29980
29981************************************************************************
29982* *
29983* Plot histogram(s) to standard output unit *
29984* *
29985* I1..6 indices of histograms to be plotted *
29986* CHEAD,IHEAD header string,integer *
29987* NEVTS number of events *
29988* FAC scaling factor *
29989* ILOGY = 1 logarithmic y-axis *
29990* INORM normalization *
29991* = 0 no further normalization (FAC is obsolete) *
29992* = 1 per event and bin width *
29993* = 2 per entry and bin width *
29994* = 3 per bin entry *
29995* = 4 per event and "bin width" x1^2...x2^2 *
29996* = 5 per event and "log. bin width" ln x1..ln x2 *
29997* = 6 per event *
29998* MODE = 0 no output but normalization applied *
29999* = 1 all valid histograms separately (small frame) *
30000* all valid histograms separately (small frame) *
30001* = -1 and tables as histograms *
30002* = 2 all valid histograms (one plot, wide frame) *
30003* all valid histograms (one plot, wide frame) *
30004* = -2 and tables as histograms *
30005* *
30006* *
30007* Note: All histograms to be plotted with one call to this *
30008* subroutine and |MODE|=2 must have the same bin structure! *
30009* There is no test included ensuring this fact. *
30010* *
30011* This version dated 23.4.95 is written by S. Roesler. *
30012************************************************************************
30013
30014 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
30015 SAVE
30016 PARAMETER ( LINP = 10 ,
30017 & LOUT = 6 ,
30018 & LDAT = 9 )
30019
30020 CHARACTER*72 CHEAD
30021
30022 PARAMETER (ZERO = 0.0D0,
30023 & IZERO = 0,
30024 & ONE = 1.0D0,
30025 & TWO = 2.0D0,
30026 & OHALF = 0.5D0,
30027 & EPS = 1.0D-5,
30028 & TINY = 1.0D-8,
30029 & SMALL = -1.0D8,
30030 & RLARGE = 1.0D8 )
30031
30032* histograms
30033 PARAMETER (NHIS=150, NDIM=250)
30034 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
30035 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
30036
30037 PARAMETER (NDIM2 = 2*NDIM)
30038 DIMENSION XX(NDIM2),YY(NDIM2)
30039
30040 PARAMETER (NHISTO = 6)
30041 DIMENSION YY1(NDIM,NHISTO),XX1(NDIM,NHISTO),IDX1(NHISTO),
30042 & IDX(NHISTO)
30043
30044 CHARACTER*43 CNORM(0:8)
30045 DATA CNORM /'no further normalization ',
30046 & 'per event and bin width ',
30047 & 'per entry1 and bin width ',
30048 & 'per bin entry ',
30049 & 'per event and "bin width" x1^2...x2^2 ',
30050 & 'per event and "log. bin width" ln x1..ln x2',
30051 & 'per event ',
30052 & 'per bin entry1 ',
30053 & 'per entry2 and bin width '/
30054
30055 IDX1(1) = I1
30056 IDX1(2) = I2
30057 IDX1(3) = I3
30058 IDX1(4) = I4
30059 IDX1(5) = I5
30060 IDX1(6) = I6
30061
30062 MODE = NMODE
30063
30064* initialization if "wide frame" is requested
30065 IF (ABS(MODE).EQ.2) THEN
30066 DO 1 I=1,NHISTO
30067 DO 2 J=1,NDIM
30068 XX1(J,I) = ZERO
30069 YY1(J,I) = ZERO
30070 2 CONTINUE
30071 1 CONTINUE
30072 ENDIF
30073
30074* plot header
30075 WRITE(LOUT,'(/1X,A,I3,/,1X,70A1)') CHEAD,IHEAD,('=',II=1,70)
30076
30077* check histogram indices
30078 NHI = 0
30079 DO 3 I=1,NHISTO
30080 IF ((IDX1(I).GE.1).AND.(IDX1(I).LE.IHISL)) THEN
30081 IF (ISWI(IDX1(I)).NE.0) THEN
30082 IF (DENTRY(1,IDX1(I)).LT.ONE) THEN
30083 WRITE(LOUT,1000)
30084 & IDX1(I),UNDERF(IDX1(I)),OVERF(IDX1(I))
30085 1000 FORMAT(/,1X,'OUTHGR: warning! no entries in',
30086 & ' histogram ',I3,/,21X,'underflows:',F10.0,
30087 & ' overflows: ',F10.0)
30088 ELSE
30089 NHI = NHI+1
30090 IDX(NHI) = IDX1(I)
30091 ENDIF
30092 ENDIF
30093 ENDIF
30094 3 CONTINUE
30095 IF (NHI.EQ.0) THEN
30096 WRITE(LOUT,1001)
30097 1001 FORMAT(/,1X,'OUTHGR: warning! histogram indices not valid')
30098 RETURN
30099 ENDIF
30100
30101* check normalization request
30102 IF ( ((FAC.EQ.ZERO).AND.(INORM.NE.0)).OR.
30103 & ((NEVTS.LT.1).AND.((INORM.EQ.1).OR.(INORM.EQ.4).OR.
30104 & (INORM.EQ.5).OR.(INORM.EQ.6))).OR.
30105 & (INORM.LT.0).OR.(INORM.GT.8) ) THEN
30106 WRITE(LOUT,1002) NEVTS,INORM,FAC
30107 1002 FORMAT(/,1X,'OUTHGR: warning! normalization request not ',
30108 & 'valid',/,21X,'NEVTS = ',I7,4X,'INORM = ',I2,4X,
30109 & 'FAC = ',E11.4)
30110 RETURN
30111 ENDIF
30112
30113 WRITE(LOUT,'(/,1X,A,I8)') 'number of events:',NEVTS
30114
30115* apply normalization
30116 DO 4 N=1,NHI
30117
30118 I = IDX(N)
30119
30120 IF (ISWI(I).EQ.1) THEN
30121 WRITE(LOUT,1003) I,HIST(1,I,1),HIST(1,I,IBINS(I)+1),IBINS(I)
30122 1003 FORMAT(/,1X,'histo.',I4,', linear binning from',2X,E10.4,
30123 & ' to',2X,E10.4,',',2X,I3,' bins')
30124 ELSEIF (ISWI(I).EQ.2) THEN
30125 WRITE(LOUT,1003) I,HIST(1,I,1),HIST(1,I,IBINS(I)+1),IBINS(I)
30126 WRITE(LOUT,1007)
30127 1007 FORMAT(1X,'user defined bin structure')
30128 ELSEIF (ISWI(I).EQ.3) THEN
30129 WRITE(LOUT,1004)
30130 & I,10**HIST(1,I,1),10**HIST(1,I,IBINS(I)+1),IBINS(I)
30131 1004 FORMAT(/,1X,'histo.',I4,', logar. binning from',2X,E10.4,
30132 & ' to',2X,E10.4,',',2X,I3,' bins')
30133 ELSEIF (ISWI(I).EQ.4) THEN
30134 WRITE(LOUT,1004)
30135 & I,10**HIST(1,I,1),10**HIST(1,I,IBINS(I)+1),IBINS(I)
30136 WRITE(LOUT,1007)
30137 ELSE
30138 WRITE(LOUT,1008) ISWI(I)
30139 1008 FORMAT(/,1X,'warning! inconsistent bin structure flag ',I4)
30140 ENDIF
30141 WRITE(LOUT,1005) DENTRY(1,I),DENTRY(2,I),UNDERF(I),OVERF(I)
30142 1005 FORMAT(13X,'entries:',2F9.0,' underfl.:',F8.0,
30143 & ' overfl.:',F8.0)
30144 WRITE(LOUT,1009) CNORM(INORM)
30145 1009 FORMAT(1X,'normalization: ',A,/)
30146
30147 DO 5 K=1,IBINS(I)
30148 CALL DT_GETBIN(I,K,NEVTS,INORM,XLOW,XHI,XMEAN,YMEAN,YERR)
30149 YMEAN = FAC*YMEAN
30150 YERR = FAC*YERR
30151 WRITE(LOUT,1006) XLOW,XMEAN,YMEAN,YERR,HIST(2,I,K)
30152 WRITE(LOUT,1006) XHI ,XMEAN,YMEAN,YERR,HIST(2,I,K)
30153 1006 FORMAT(1X,5E11.3)
30154* small frame
30155 II = 2*K
30156 XX(II-1) = HIST(1,I,K)
30157 XX(II) = HIST(1,I,K+1)
30158 YY(II-1) = YMEAN
30159 YY(II) = YMEAN
30160* wide frame
30161 XX1(K,N) = XMEAN
30162 IF ((ISWI(I).EQ.3).OR.(ISWI(I).EQ.4))
30163 & XX1(K,N) = LOG10(XMEAN)
30164 YY1(K,N) = YMEAN
30165 5 CONTINUE
30166
30167* plot small frame
30168 IF (ABS(MODE).EQ.1) THEN
30169 IBIN2 = 2*IBINS(I)
30170 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30171 IF(ILOGY.EQ.1) THEN
30172 CALL DT_XGLOGY(IBIN2,1,XX,YY,YY)
30173 ELSE
30174 CALL DT_XGRAPH(IBIN2,1,XX,YY,YY)
30175 ENDIF
30176 ENDIF
30177
30178 4 CONTINUE
30179
30180* plot wide frame
30181 IF (ABS(MODE).EQ.2) THEN
30182 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30183 NSIZE = NDIM*NHISTO
30184 DXLOW = HIST(1,IDX(1),1)
30185 DDX = ABS(HIST(1,IDX(1),2)-HIST(1,IDX(1),1))
30186 YLOW = RLARGE
30187 YHI = SMALL
30188 DO 6 I=1,NHISTO
30189 DO 7 J=1,NDIM
30190 IF (YY1(J,I).LT.YLOW) THEN
30191 IF (ILOGY.EQ.1) THEN
30192 IF (YY1(J,I).GT.ZERO) YLOW = YY1(J,I)
30193 ELSE
30194 YLOW = YY1(J,I)
30195 ENDIF
30196 ENDIF
30197 IF (YY1(J,I).GT.YHI) YHI = YY1(J,I)
30198 7 CONTINUE
30199 6 CONTINUE
30200 DY = (YHI-YLOW)/DBLE(NDIM)
30201 IF (DY.LE.ZERO) THEN
30202 WRITE(LOUT,'(1X,A,6I4,A,2E12.4)')
30203 & 'OUTHGR: warning! zero bin width for histograms ',
30204 & IDX,': ',YLOW,YHI
30205 RETURN
30206 ENDIF
30207 IF (ILOGY.EQ.1) THEN
30208 YLOW = LOG10(YLOW)
30209 DY = (LOG10(YHI)-YLOW)/100.0D0
30210 DO 8 I=1,NHISTO
30211 DO 9 J=1,NDIM
30212 IF (YY1(J,I).LE.ZERO) THEN
30213 YY1(J,I) = YLOW
30214 ELSE
30215 YY1(J,I) = LOG10(YY1(J,I))
30216 ENDIF
30217 9 CONTINUE
30218 8 CONTINUE
30219 ENDIF
30220 CALL DT_SRPLOT(XX1,YY1,NSIZE,NHISTO,NDIM,DXLOW,DDX,YLOW,DY)
30221 ENDIF
30222
30223 RETURN
30224 END
30225
30226*$ CREATE DT_GETBIN.FOR
30227*COPY DT_GETBIN
30228*
30229*===getbin=============================================================*
30230*
30231 SUBROUTINE DT_GETBIN(IHIS,IBIN,KEVT,NORM,XLOW,XHI,
30232 & XMEAN,YMEAN,YERR)
30233
30234************************************************************************
30235* This version dated 23.4.95 is written by S. Roesler. *
30236************************************************************************
30237
30238 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
30239 SAVE
30240 PARAMETER ( LINP = 10 ,
30241 & LOUT = 6 ,
30242 & LDAT = 9 )
30243
30244 PARAMETER (ZERO = 0.0D0,
30245 & ONE = 1.0D0,
30246 & TINY35 = 1.0D-35)
30247
30248* histograms
30249 PARAMETER (NHIS=150, NDIM=250)
30250 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
30251 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
30252
30253 XLOW = HIST(1,IHIS,IBIN)
30254 XHI = HIST(1,IHIS,IBIN+1)
30255 IF ((ISWI(IHIS).EQ.3).OR.(ISWI(IHIS).EQ.4)) THEN
30256 XLOW = 10**XLOW
30257 XHI = 10**XHI
30258 ENDIF
30259 IF (NORM.EQ.2) THEN
30260 DX = XHI-XLOW
30261 NEVT = INT(DENTRY(1,IHIS))
30262 ELSEIF (NORM.EQ.3) THEN
30263 DX = ONE
30264 NEVT = INT(HIST(2,IHIS,IBIN))
30265 ELSEIF (NORM.EQ.4) THEN
30266 DX = XHI**2-XLOW**2
30267 NEVT = KEVT
30268 ELSEIF (NORM.EQ.5) THEN
30269 DX = LOG(ABS(XHI))-LOG(ABS(XLOW))
30270 NEVT = KEVT
30271 ELSEIF (NORM.EQ.6) THEN
30272 DX = ONE
30273 NEVT = KEVT
30274 ELSEIF (NORM.EQ.7) THEN
30275 DX = ONE
30276 NEVT = INT(HIST(7,IHIS,IBIN))
30277 ELSEIF (NORM.EQ.8) THEN
30278 DX = XHI-XLOW
30279 NEVT = INT(DENTRY(2,IHIS))
30280 ELSE
30281 DX = ABS(XHI-XLOW)
30282 NEVT = KEVT
30283 ENDIF
30284 IF (ABS(DX).LT.TINY35) DX = ONE
30285 NEVT = MAX(NEVT,1)
30286 YMEAN = HIST(5,IHIS,IBIN)/DX/DBLE(NEVT)
30287 YMEAN2 = HIST(6,IHIS,IBIN)/DX**2/DBLE(NEVT)
30288 YERR = SQRT(ABS(YMEAN2-YMEAN**2))/SQRT(DBLE(NEVT))
30289 YSUM = HIST(5,IHIS,IBIN)
30290 IF (ABS(YSUM).LT.TINY35) YSUM = ONE
30291C XMEAN = HIST(3,IHIS,IBIN)/YSUM/MAX(HIST(2,IHIS,IBIN),ONE)
30292 XMEAN = HIST(3,IHIS,IBIN)/YSUM
30293 IF (XMEAN.EQ.ZERO) XMEAN = XLOW
30294
30295 RETURN
30296 END
30297
30298*$ CREATE DT_JOIHIS.FOR
30299*COPY DT_JOIHIS
30300*
30301*===joihis=============================================================*
30302*
30303 SUBROUTINE DT_JOIHIS(IH1,IH2,COPER,FAC1,FAC2,KEVT,NORM,ILOGY,MODE)
30304
30305************************************************************************
30306* *
30307* Operation on histograms. *
30308* *
30309* input: IH1,IH2 histogram indices to be joined *
30310* COPER character defining the requested operation, *
30311* i.e. '+', '-', '*', '/' *
30312* FAC1,FAC2 factors for joining, i.e. *
30313* FAC1*histo1 COPER FAC2*histo2 *
30314* *
30315* This version dated 23.4.95 is written by S. Roesler. *
30316************************************************************************
30317
30318 IMPLICIT DOUBLE PRECISION(A-H,O-Z)
30319 SAVE
30320 PARAMETER ( LINP = 10 ,
30321 & LOUT = 6 ,
30322 & LDAT = 9 )
30323
30324 CHARACTER COPER*1
30325
30326 PARAMETER (ZERO = 0.0D0,
30327 & ONE = 1.0D0,
30328 & OHALF = 0.5D0,
30329 & TINY8 = 1.0D-8,
30330 & SMALL = -1.0D8,
30331 & RLARGE = 1.0D8 )
30332
30333* histograms
30334 PARAMETER (NHIS=150, NDIM=250)
30335 COMMON /DTHIS1/ HIST(7,NHIS,NDIM),DENTRY(2,NHIS),OVERF(NHIS),
30336 & UNDERF(NHIS),IBINS(NHIS),ISWI(NHIS),IHISL
30337
30338 PARAMETER (NDIM2 = 2*NDIM)
30339 DIMENSION XX(NDIM2),YY(NDIM2),YY1(NDIM),XX1(NDIM)
30340
30341 CHARACTER*43 CNORM(0:6)
30342 DATA CNORM /'no further normalization ',
30343 & 'per event and bin width ',
30344 & 'per entry and bin width ',
30345 & 'per bin entry ',
30346 & 'per event and "bin width" x1^2...x2^2 ',
30347 & 'per event and "log. bin width" ln x1..ln x2',
30348 & 'per event '/
30349
30350* check histogram indices
30351 IF ((IH1.LT. 1).OR.(IH2.LT. 1).OR.
30352 & (IH1.GT.IHISL).OR.(IH2.GT.IHISL)) THEN
30353 WRITE(LOUT,1000) IH1,IH2,IHISL
30354 1000 FORMAT(1X,'JOIHIS: warning! inconsistent histogram ',
30355 & 'indices (',I3,',',I3,'),',/,21X,'valid range: 1,',I3)
30356 GOTO 9999
30357 ENDIF
30358
30359* check bin structure of histograms to be joined
30360 IF (IBINS(IH1).NE.IBINS(IH2)) THEN
30361 WRITE(LOUT,1001) IH1,IH2,IBINS(IH1),IBINS(IH2)
30362 1001 FORMAT(1X,'JOIHIS: warning! joining histograms ',I3,
30363 & ' and ',I3,' failed',/,21X,
30364 & 'due to different numbers of bins (',I3,',',I3,')')
30365 GOTO 9999
30366 ENDIF
30367 DO 1 K=1,IBINS(IH1)+1
30368 IF (ABS(HIST(1,IH1,K)-HIST(1,IH2,K)).GT.TINY8) THEN
30369 WRITE(LOUT,1002) IH1,IH2,K,HIST(1,IH1,K),HIST(1,IH2,K)
30370 1002 FORMAT(1X,'JOIHIS: warning! joining histograms ',I3,
30371 & ' and ',I3,' failed at bin edge ',I3,/,21X,
30372 & 'X1,X2 = ',2E11.4)
30373 GOTO 9999
30374 ENDIF
30375 1 CONTINUE
30376
30377 WRITE(LOUT,1003) IH1,IH2,COPER,FAC1,FAC2
30378 1003 FORMAT(1X,'JOIHIS: joining histograms ',I3,',',I3,' with ',
30379 & 'operation ',A,/,11X,'and factors ',2E11.4)
30380 WRITE(LOUT,1004) CNORM(NORM)
30381 1004 FORMAT(1X,'normalization: ',A,/)
30382
30383 DO 2 K=1,IBINS(IH1)
30384 CALL DT_GETBIN(IH1,K,KEVT,NORM,XLOW1,XHI1,XMEAN1,YMEAN1,YERR1)
30385 CALL DT_GETBIN(IH2,K,KEVT,NORM,XLOW2,XHI2,XMEAN2,YMEAN2,YERR2)
30386 XLOW = XLOW1
30387 XHI = XHI1
30388 XMEAN = OHALF*(XMEAN1+XMEAN2)
30389 IF (COPER.EQ.'+') THEN
30390 YMEAN = FAC1*YMEAN1+FAC2*YMEAN2
30391 ELSEIF (COPER.EQ.'*') THEN
30392 YMEAN = FAC1*YMEAN1*FAC2*YMEAN2
30393 ELSEIF (COPER.EQ.'/') THEN
30394 IF (YMEAN2.EQ.ZERO) THEN
30395 YMEAN = ZERO
30396 ELSE
30397 IF (FAC2.EQ.ZERO) FAC2 = ONE
30398 YMEAN = FAC1*YMEAN1/(FAC2*YMEAN2)
30399 ENDIF
30400 ELSE
30401 GOTO 9998
30402 ENDIF
30403 WRITE(LOUT,1006) XLOW,XMEAN,YMEAN,HIST(2,IH1,K),HIST(2,IH2,K)
30404 WRITE(LOUT,1006) XHI ,XMEAN,YMEAN,HIST(2,IH1,K),HIST(2,IH2,K)
30405 1006 FORMAT(1X,5E11.3)
30406* small frame
30407 II = 2*K
30408 XX(II-1) = HIST(1,IH1,K)
30409 XX(II) = HIST(1,IH1,K+1)
30410 YY(II-1) = YMEAN
30411 YY(II) = YMEAN
30412* wide frame
30413 XX1(K) = XMEAN
30414 IF ((ISWI(IH1).EQ.3).OR.(ISWI(IH1).EQ.4)) XX1(K) = LOG10(XMEAN)
30415 YY1(K) = YMEAN
30416 2 CONTINUE
30417
30418* plot small frame
30419 IF (ABS(MODE).EQ.1) THEN
30420 IBIN2 = 2*IBINS(IH1)
30421 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30422 IF(ILOGY.EQ.1) THEN
30423 CALL DT_XGLOGY(IBIN2,1,XX,YY,YY)
30424 ELSE
30425 CALL DT_XGRAPH(IBIN2,1,XX,YY,YY)
30426 ENDIF
30427 ENDIF
30428
30429* plot wide frame
30430 IF (ABS(MODE).EQ.2) THEN
30431 WRITE(LOUT,'(/,1X,A)') 'Preview:'
30432 NSIZE = NDIM
30433 DXLOW = HIST(1,IH1,1)
30434 DDX = ABS(HIST(1,IH1,2)-HIST(1,IH1,1))
30435 YLOW = RLARGE
30436 YHI = SMALL
30437 DO 3 I=1,NDIM
30438 IF (YY1(I).LT.YLOW) THEN
30439 IF (ILOGY.EQ.1) THEN
30440 IF (YY1(I).GT.ZERO) YLOW = YY1(I)
30441 ELSE
30442 YLOW = YY1(I)
30443 ENDIF
30444 ENDIF
30445 IF (YY1(I).GT.YHI) YHI = YY1(I)
30446 3 CONTINUE
30447 DY = (YHI-YLOW)/DBLE(NDIM)
30448 IF (DY.LE.ZERO) THEN
30449 WRITE(LOUT,'(1X,A,2I4,A,2E12.4)')
30450 & 'JOIHIS: warning! zero bin width for histograms ',
30451 & IH1,IH2,': ',YLOW,YHI
30452 RETURN
30453 ENDIF
30454 IF (ILOGY.EQ.1) THEN
30455 YLOW = LOG10(YLOW)
30456 DY = (LOG10(YHI)-YLOW)/100.0D0
30457 DO 4 I=1,NDIM
30458 IF (YY1(I).LE.ZERO) THEN
30459 YY1(I) = YLOW
30460 ELSE
30461 YY1(I) = LOG10(YY1(I))
30462 ENDIF
30463 4 CONTINUE
30464 ENDIF
30465 CALL DT_SRPLOT(XX1,YY1,NSIZE,1,NDIM,DXLOW,DDX,YLOW,DY)
30466 ENDIF
30467
30468 RETURN
30469
30470 9998 CONTINUE
30471 WRITE(LOUT,1005) COPER
30472 1005 FORMAT(1X,'JOIHIS: unknown operation ',A)
30473
30474 9999 CONTINUE
30475 RETURN
30476 END
30477
30478*$ CREATE DT_XGRAPH.FOR
30479*COPY DT_XGRAPH
30480*
30481*===qgraph=============================================================*
30482*
30483 SUBROUTINE DT_XGRAPH(N,IARG,X,Y1,Y2)
30484C***********************************************************************
30485C
30486C calculate quasi graphic picture with 25 lines and 79 columns
30487C ranges will be chosen automatically
30488C
30489C input N dimension of input fields
30490C IARG number of curves (fields) to plot
30491C X field of X
30492C Y1 field of Y1
30493C Y2 field of Y2
30494C
30495C This subroutine is written by R. Engel.
30496C***********************************************************************
30497 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30498 SAVE
30499
30500 PARAMETER ( LINP = 10 ,
30501 & LOUT = 6 ,
30502 & LDAT = 9 )
30503C
30504 DIMENSION X(N),Y1(N),Y2(N)
30505 PARAMETER (EPS=1.D-30)
30506 PARAMETER (IYRAST=5,IXRAST=10,IBREIT=79,IZEIL=20)
30507 CHARACTER SYMB(5)
30508 CHARACTER COL(0:149,0:49)
30509C
30510 DATA SYMB /'0','e','z','#','x'/
30511C
30512 ISPALT=IBREIT-10
30513C
30514C*** automatic range fitting
30515C
30516 XMAX=X(1)
30517 XMIN=X(1)
30518 DO 600 I=1,N
30519 XMAX=MAX(X(I),XMAX)
30520 XMIN=MIN(X(I),XMIN)
30521 600 CONTINUE
30522 XZOOM=(XMAX-XMIN)/DBLE(ISPALT)
30523C
30524 ITEST=0
30525 DO 1100 K=0,IZEIL-1
30526 ITEST=ITEST+1
30527 IF (ITEST.EQ.IYRAST) THEN
30528 DO 1010 L=1,ISPALT-1
30529 COL(L,K)='-'
305301010 CONTINUE
30531 COL(ISPALT,K)='+'
30532 ITEST=0
30533 DO 1020 L=0,ISPALT-1,IXRAST
30534 COL(L,K)='+'
305351020 CONTINUE
30536 ELSE
30537 DO 1030 L=1,ISPALT-1
30538 COL(L,K)=' '
305391030 CONTINUE
30540 DO 1040 L=0,ISPALT-1,IXRAST
30541 COL(L,K)='|'
305421040 CONTINUE
30543 COL(ISPALT,K)='|'
30544 ENDIF
305451100 CONTINUE
30546C
30547C*** plot curve Y1
30548C
30549 YMAX=Y1(1)
30550 YMIN=Y1(1)
30551 DO 500 I=1,N
30552 YMAX=MAX(Y1(I),YMAX)
30553 YMIN=MIN(Y1(I),YMIN)
30554500 CONTINUE
30555 IF(IARG.GT.1) THEN
30556 DO 550 I=1,N
30557 YMAX=MAX(Y2(I),YMAX)
30558 YMIN=MIN(Y2(I),YMIN)
30559550 CONTINUE
30560 ENDIF
30561 YMAX=(YMAX-YMIN)/40.0D0+YMAX
30562 YMIN=YMIN-(YMAX-YMIN)/40.0D0
30563 YZOOM=(YMAX-YMIN)/DBLE(IZEIL)
30564 IF(YZOOM.LT.EPS) THEN
30565 WRITE(LOUT,'(1X,A)')
30566 & 'XGRAPH:WARNING: MIN = MAX, OUTPUT SUPPRESSED'
30567 RETURN
30568 ENDIF
30569C
30570C*** plot curve Y1
30571C
30572 ILAST=-1
30573 LLAST=-1
30574 DO 1200 K=1,N
30575 L=NINT((X(K)-XMIN)/XZOOM)
30576 I=NINT((YMAX-Y1(K))/YZOOM)
30577 IF(ILAST.GE.0) THEN
30578 LD = L-LLAST
30579 ID = I-ILAST
30580 DO 55 II=0,LD,SIGN(1,LD)
30581 DO 66 KK=0,ID,SIGN(1,ID)
30582 COL(II+LLAST,KK+ILAST)=SYMB(1)
30583 66 CONTINUE
30584 55 CONTINUE
30585 ELSE
30586 COL(L,I)=SYMB(1)
30587 ENDIF
30588 ILAST = I
30589 LLAST = L
305901200 CONTINUE
30591C
30592 IF(IARG.GT.1) THEN
30593C
30594C*** plot curve Y2
30595C
30596 DO 1250 K=1,N
30597 L=NINT((X(K)-XMIN)/XZOOM)
30598 I=NINT((YMAX-Y2(K))/YZOOM)
30599 COL(L,I)=SYMB(2)
306001250 CONTINUE
30601 ENDIF
30602C
30603C*** write it
30604C
30605 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30606C
30607C*** write range of X
30608C
30609 XZOOM = (XMAX-XMIN)/DBLE(7)
30610 WRITE(LOUT,120) (XZOOM*DBLE(I-1)+XMIN,I=1,7)
30611C
30612 DO 1300 K=0,IZEIL-1
30613 YPOS=YMAX-((DBLE(K)+0.5D0)*YZOOM)
30614 WRITE(LOUT,110) YPOS,(COL(I,K),I=0,ISPALT)
30615 110 FORMAT(1X,1PE9.2,70A1)
306161300 CONTINUE
30617C
30618C*** write range of X
30619C
30620 XZOOM = (XMAX-XMIN)/DBLE(7)
30621 WRITE(LOUT,120) (XZOOM*DBLE(I-1)+XMIN,I=1,7)
30622 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30623 120 FORMAT(6X,7(1PE10.3))
30624 END
30625
30626*$ CREATE DT_XGLOGY.FOR
30627*COPY DT_XGLOGY
30628*
30629*===qglogy=============================================================*
30630*
30631 SUBROUTINE DT_XGLOGY(N,IARG,X,Y1,Y2)
30632C***********************************************************************
30633C
30634C calculate quasi graphic picture with 25 lines and 79 columns
30635C logarithmic y axis
30636C ranges will be chosen automatically
30637C
30638C input N dimension of input fields
30639C IARG number of curves (fields) to plot
30640C X field of X
30641C Y1 field of Y1
30642C Y2 field of Y2
30643C
30644C This subroutine is written by R. Engel.
30645C***********************************************************************
30646C
30647 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30648 SAVE
30649
30650 PARAMETER ( LINP = 10 ,
30651 & LOUT = 6 ,
30652 & LDAT = 9 )
30653 DIMENSION X(N),Y1(N),Y2(N)
30654 PARAMETER (EPS=1.D-30)
30655 PARAMETER (IYRAST=5,IXRAST=10,IBREIT=79,IZEIL=20)
30656 CHARACTER SYMB(5)
30657 CHARACTER COL(0:149,0:49)
30658 PARAMETER (DEPS = 1.D-10)
30659C
30660 DATA SYMB /'0','e','z','#','x'/
30661C
30662 ISPALT=IBREIT-10
30663C
30664C*** automatic range fitting
30665C
30666 XMAX=X(1)
30667 XMIN=X(1)
30668 DO 600 I=1,N
30669 XMAX=MAX(X(I),XMAX)
30670 XMIN=MIN(X(I),XMIN)
30671 600 CONTINUE
30672 XZOOM=(XMAX-XMIN)/DBLE(ISPALT)
30673C
30674 ITEST=0
30675 DO 1100 K=0,IZEIL-1
30676 ITEST=ITEST+1
30677 IF (ITEST.EQ.IYRAST) THEN
30678 DO 1010 L=1,ISPALT-1
30679 COL(L,K)='-'
306801010 CONTINUE
30681 COL(ISPALT,K)='+'
30682 ITEST=0
30683 DO 1020 L=0,ISPALT-1,IXRAST
30684 COL(L,K)='+'
306851020 CONTINUE
30686 ELSE
30687 DO 1030 L=1,ISPALT-1
30688 COL(L,K)=' '
306891030 CONTINUE
30690 DO 1040 L=0,ISPALT-1,IXRAST
30691 COL(L,K)='|'
306921040 CONTINUE
30693 COL(ISPALT,K)='|'
30694 ENDIF
306951100 CONTINUE
30696C
30697C*** plot curve Y1
30698C
30699 YMAX=Y1(1)
30700 YMIN=MAX(Y1(1),EPS)
30701 DO 500 I=1,N
30702 YMAX =MAX(Y1(I),YMAX)
30703 IF(Y1(I).GT.EPS) THEN
30704 IF(YMIN.EQ.EPS) THEN
30705 YMIN = Y1(I)/10.D0
30706 ELSE
30707 YMIN = MIN(Y1(I),YMIN)
30708 ENDIF
30709 ENDIF
30710500 CONTINUE
30711 IF(IARG.GT.1) THEN
30712 DO 550 I=1,N
30713 YMAX=MAX(Y2(I),YMAX)
30714 IF(Y2(I).GT.EPS) THEN
30715 IF(YMIN.EQ.EPS) THEN
30716 YMIN = Y2(I)
30717 ELSE
30718 YMIN = MIN(Y2(I),YMIN)
30719 ENDIF
30720 ENDIF
30721550 CONTINUE
30722 ENDIF
30723C
30724 DO 560 I=1,N
30725 Y1(I) = MAX(Y1(I),YMIN)
30726 560 CONTINUE
30727 IF(IARG.GT.1) THEN
30728 DO 570 I=1,N
30729 Y2(I) = MAX(Y2(I),YMIN)
30730 570 CONTINUE
30731 ENDIF
30732C
30733 IF(YMAX.LE.YMIN) THEN
30734 WRITE(LOUT,'(/1X,A,2E12.3,/)')
30735 & 'XGLOGY:ERROR:YMIN,YMAX ',YMIN,YMAX
30736 WRITE(LOUT,'(1X,A)') 'MIN = MAX, OUTPUT SUPPRESSED'
30737 RETURN
30738 ENDIF
30739C
30740 YMA=(LOG10(YMAX)-LOG10(YMIN))/20.0D0+LOG10(YMAX)
30741 YMI=LOG10(YMIN)-(LOG10(YMAX)-LOG10(YMIN))/20.0D0
30742 YZOOM=(YMA-YMI)/DBLE(IZEIL)
30743 IF(YZOOM.LT.EPS) THEN
30744 WRITE(LOUT,'(1X,A)')
30745 & 'XGLOGY:WARNING: MIN = MAX, OUTPUT SUPPRESSED'
30746 RETURN
30747 ENDIF
30748C
30749C*** plot curve Y1
30750C
30751 ILAST=-1
30752 LLAST=-1
30753 DO 1200 K=1,N
30754 L=NINT((X(K)-XMIN)/XZOOM)
30755 I=NINT((YMA-LOG10(Y1(K)))/YZOOM)
30756 IF(ILAST.GE.0) THEN
30757 LD = L-LLAST
30758 ID = I-ILAST
30759 DO 55 II=0,LD,SIGN(1,LD)
30760 DO 66 KK=0,ID,SIGN(1,ID)
30761 COL(II+LLAST,KK+ILAST)=SYMB(1)
30762 66 CONTINUE
30763 55 CONTINUE
30764 ELSE
30765 COL(L,I)=SYMB(1)
30766 ENDIF
30767 ILAST = I
30768 LLAST = L
307691200 CONTINUE
30770C
30771 IF(IARG.GT.1) THEN
30772C
30773C*** plot curve Y2
30774C
30775 DO 1250 K=1,N
30776 L=NINT((X(K)-XMIN)/XZOOM)
30777 I=NINT((YMA-LOG10(Y2(K)))/YZOOM)
30778 COL(L,I)=SYMB(2)
307791250 CONTINUE
30780 ENDIF
30781C
30782C*** write it
30783C
30784 WRITE(LOUT,'(2X,A)') '(LOGARITHMIC Y AXIS)'
30785 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30786C
30787C*** write range of X
30788C
30789 XZOOM1 = (XMAX-XMIN)/DBLE(7)
30790 WRITE(LOUT,120) (XZOOM1*DBLE(I-1)+XMIN,I=1,7)
30791C
30792 DO 1300 K=0,IZEIL-1
30793 YPOS=10.D0**(YMA-((DBLE(K)+0.5D0)*YZOOM))
30794 WRITE(LOUT,110) YPOS,(COL(I,K),I=0,ISPALT)
30795 110 FORMAT(1X,1PE9.2,70A1)
307961300 CONTINUE
30797C
30798C*** write range of X
30799C
30800 WRITE(LOUT,120) (XZOOM1*DBLE(I-1)+XMIN,I=1,7)
30801 WRITE(LOUT,'(1X,79A)') ('-',I=1,IBREIT)
30802 120 FORMAT(6X,7(1PE10.3))
30803C
30804 END
30805
30806*$ CREATE DT_SRPLOT.FOR
30807*COPY DT_SRPLOT
30808*
30809*===plot===============================================================*
30810*
30811 SUBROUTINE DT_SRPLOT(X,Y,N,M,MM,XO,DX,YO,DY)
30812
30813 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30814 SAVE
30815
30816 PARAMETER ( LINP = 10 ,
30817 & LOUT = 6 ,
30818 & LDAT = 9 )
30819*
30820* initial version
30821* J. Ranft, (FORTRAN-Programmierung,J.R.,Teubner, Leipzig, 72)
30822* This is a subroutine of fluka to plot Y across the page
30823* as a function of X down the page. Up to 37 curves can be
30824* plotted in the same picture with different plotting characters.
30825* Output of first 10 overprinted characters addad by FB 88
30826* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
30827*
30828* Input Variables:
30829* X = array containing the values of X
30830* Y = array containing the values of Y
30831* N = number of values in X and in Y
30832* can exceed the fixed number of lines
30833* M = number of different curves X,Y are containing
30834* MM = number of points in each curve i.e. N=M*MM
30835* XO = smallest value of X to be plotted
30836* DX = increment of X between subsequent lines
30837* YO = smallest value of Y to be plotted
30838* DY = increment of Y between subsequent character spaces
30839*
30840* other variables used inside:
30841* XX = numbers along the X-coordinate axis
30842* YY = numbers along the Y-coordinate axis
30843* LL = ten lines temporary storage for the plot
30844* L = character set used to plot different curves
30845* LOV = memorizes overprinted symbols
30846* the first 10 overprinted symbols are printed on
30847* the end of the line to avoid ambiguities
30848* (added by FB as considered quite helpful)
30849*
30850*********************************************************************
30851*
30852 DIMENSION XX(61),YY(61),LL(101,10)
30853 DIMENSION X(N),Y(N),L(40),LOV(40,10)
333481d6 30854 INTEGER*4 LL, L, LOV
9aaba0d6 30855 DATA L/
30856 11H*,1H2,1H3,1H4,1H5,1H6,1H7,1H8,1H9,1HZ,
30857 21H+,1HA,1HO,1HB,1HC,1HD,1HE,1HF,1HG,1HH,
30858 31HI,1HJ,1HK,1HL,1HM,1HN,1HO,1HP,1HQ,1HR,
30859 41HS,1HT,1HU,1HV,1HW,1HX,1HY,1H1,1H-,1H /
30860*
30861*
30862 MN=51
30863 DO 10 I=1,MN
30864 AI=I-1
30865 10 XX(I)=XO+AI*DX
30866 DO 20 I=1,11
30867 AI=I-1
30868 20 YY(I)=YO+10.0D0*AI*DY
30869 WRITE(LOUT, 500) (YY(I),I=1,11)
30870 MMN=MN-1
30871*
30872*
30873 DO 90 JJ=1,MMN,10
30874 JJJ=JJ-1
30875 DO 30 I=1,101
30876 DO 30 J=1,10
30877 30 LL(I,J)=L(40)
30878 DO 40 I=1,101
30879 40 LL(I,1)=L(39)
30880 DO 50 I=1,101,10
30881 DO 50 J=1,10
30882 50 LL(I,J)=L(38)
30883 DO 60 I=1,40
30884 DO 60 J=1,10
30885 60 LOV(I,J)=L(40)
30886*
30887*
30888 DO 70 I=1,M
30889 DO 70 J=1,MM
30890 II=J+(I-1)*MM
30891 AIX=(X(II)-(XO-DX/2.0D0))/DX+1.0D0
30892 AIY=(Y(II)-(YO-DY/2.0D0))/DY+1.0D0
30893 AIX=AIX-DBLE(JJJ)
30894* changed Sept.88 by FB to avoid INTEGER OVERFLOW
30895 IF( AIX .GT. 1.D0.AND. AIX .LT. 11.D0.AND. AIY .GT. 1.D0.AND
30896 + . AIY .LT. 102.D0) THEN
30897 IX=INT(AIX)
30898 IY=INT(AIY)
30899 IF( IX.GT. 0.AND. IX.LE. 10.AND. IY.GT. 0.AND. IY.LE. 101)
30900 + THEN
30901 IF(LL(IY,IX).NE.L(38).AND.LL(IY,IX).NE.L(39)) LOV(I,IX)
30902 + =LL(IY,IX)
30903 LL(IY,IX)=L(I)
30904 ENDIF
30905 ENDIF
30906 70 CONTINUE
30907*
30908*
30909 DO 80 I=1,10
30910 II=I+JJJ
30911 III=II+1
30912 WRITE(LOUT,510) XX(II),XX(III) , (LL(J,I),J=1,101) ,
30913 & (LOV(J,I),J=1,10)
30914 80 CONTINUE
30915 90 CONTINUE
30916*
30917*
30918 WRITE(LOUT, 520)
30919 WRITE(LOUT, 500) (YY(I),I=1,11)
30920 RETURN
30921*
30922 500 FORMAT(11X,11(1PE10.2),11HOVERPRINTED)
30923 510 FORMAT(1X,2(1PE10.2),101A1,1H ,10A1)
30924 520 FORMAT(20X,10('1---------'),'1')
30925 END
30926
30927*$ CREATE DT_DEFSET.FOR
30928*COPY DT_DEFSET
30929*
30930*===defset=============================================================*
30931*
30932 BLOCK DATA DT_DEFSET
30933
30934 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30935 SAVE
30936
30937* flags for input different options
30938 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
30939 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
30940 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
30941 PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
30942* emulsion treatment
30943 COMMON /DTCOMP/ EMUFRA(NCOMPX),IEMUMA(NCOMPX),IEMUCH(NCOMPX),
30944 & NCOMPO,IEMUL
30945
30946* / DTFLG1 /
30947 DATA IFRAG / 2, 1 /
30948 DATA IRESCO / 1 /
30949 DATA IMSHL / 1 /
30950 DATA IRESRJ / 0 /
30951 DATA IOULEV / -1, -1, -1, -1, -1, -1 /
30952 DATA LEMCCK / .FALSE. /
30953 DATA LHADRO / .FALSE.,.TRUE.,.TRUE.,.TRUE.,.TRUE.,.TRUE.,.TRUE.,
30954 & .TRUE.,.TRUE.,.TRUE./
30955 DATA LSEADI / .TRUE. /
30956 DATA LEVAPO / .TRUE. /
30957 DATA IFRAME / 1 /
30958 DATA ITRSPT / 0 /
30959
30960* / DTCOMP /
30961 DATA EMUFRA / NCOMPX*0.0D0 /
30962 DATA IEMUMA / NCOMPX*1 /
30963 DATA IEMUCH / NCOMPX*1 /
30964 DATA NCOMPO / 0 /
30965 DATA IEMUL / 0 /
30966
30967 END
30968
30969*$ CREATE DT_HADPRP.FOR
30970*COPY DT_HADPRP
30971*
30972*===hadprp=============================================================*
30973*
30974 BLOCK DATA DT_HADPRP
30975
30976 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
30977 SAVE
30978
30979* auxiliary common for reggeon exchange (DTUNUC 1.x)
30980 COMMON /DTQUAR/ IQECHR(-6:6),IQBCHR(-6:6),IQICHR(-6:6),
30981 & IQSCHR(-6:6),IQCCHR(-6:6),IQUCHR(-6:6),
30982 & IQTCHR(-6:6),MQUARK(3,39)
30983* hadron index conversion (BAMJET <--> PDG)
30984 COMMON /DTHAIC/ IPDG2(2,7),IBAM2(2,7),IPDG3(2,22),IBAM3(2,22),
30985 & IPDG4(2,29),IBAM4(2,29),IPDG5(2,19),IBAM5(2,19),
30986 & IAMCIN(210)
30987* names of hadrons used in input-cards
30988 CHARACTER*8 BTYPE
30989 COMMON /DTPAIN/ BTYPE(30)
30990
30991* / DTQUAR /
30992*----------------------------------------------------------------------*
30993* *
30994* Quark content of particles: *
30995* index quark el. charge bar. charge isospin isospin3 *
30996* 1 = u 2/3 1/3 1/2 1/2 *
30997* -1 = ubar -2/3 -1/3 1/2 -1/2 *
30998* 2 = d -1/3 1/3 1/2 -1/2 *
30999* -2 = dbar 1/3 -1/3 1/2 1/2 *
31000* 3 = s -1/3 1/3 0 0 *
31001* -3 = sbar 1/3 -1/3 0 0 *
31002* 4 = c 2/3 1/3 0 0 *
31003* -4 = cbar -2/3 -1/3 0 0 *
31004* 5 = b -1/3 1/3 0 0 *
31005* -5 = bbar 1/3 -1/3 0 0 *
31006* 6 = t 2/3 1/3 0 0 *
31007* -6 = tbar -2/3 -1/3 0 0 *
31008* *
31009* Mquark = particle quark composition (Paprop numbering) *
31010* Iqechr = electric charge ( in 1/3 unit ) *
31011* Iqbchr = baryonic charge ( in 1/3 unit ) *
31012* Iqichr = isospin ( in 1/2 unit ), z component *
31013* Iqschr = strangeness *
31014* Iqcchr = charm *
31015* Iquchr = beauty *
31016* Iqtchr = ...... *
31017* *
31018*----------------------------------------------------------------------*
31019 DATA IQECHR / -2, 1, -2, 1, 1, -2, 0, 2, -1, -1, 2, -1, 2 /
31020 DATA IQBCHR / 6*-1, 0, 6*1 /
31021 DATA IQICHR / 4*0, 1, -1, 0, 1, -1, 4*0 /
31022 DATA IQSCHR / 3*0, 1, 5*0, -1, 3*0 /
31023 DATA IQCCHR / 2*0, -1, 7*0, 1, 2*0 /
31024 DATA IQUCHR / 0, 1, 9*0, -1, 0 /
31025 DATA IQTCHR / -1, 11*0, 1 /
31026 DATA MQUARK /
31027 & 2, 1, 1, -2,-1,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31028 & 0, 0, 0, 0, 0, 0, 2, 2, 1, -2,-2,-1, 0, 0, 0,
31029 & 0, 0, 0, 0, 0, 0, 1,-2, 0, 2,-1, 0, 1,-3, 0,
31030 & 3,-1, 0, 1, 2, 3, -1,-2,-3, 0, 0, 0, 2, 2, 3,
31031 & 1, 1, 3, 1, 2, 3, 1,-1, 0, 2,-3, 0, 3,-2, 0,
31032 & 2,-2, 0, 3,-3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31033 & -1,-1,-3, -1,-2,-3, -2,-2,-3, 1, 3, 3, -1,-3,-3,
31034 & 2, 3, 3, -2,-3,-3, 3, 3, 3, -3,-3,-3 /
31035
31036* / DTHAIC /
31037* (renamed) (HAdron InDex COnversion)
31038* translation table version filled up by r.e. 25.01.94 *
31039 DATA IAMCIN /
31040 &2212,-2212,11,-11,12, -12,22,2112,-2112,-13,
31041 &13,130,211,-211,321, -321,3122,-3122,310,3112,
31042 &3222,3212,111,311,-311, 0,0,0,0,0,
31043 &221,213,113,-213,223, 323,313,-323,-313,10323,
31044 &10313,-10323,-10313,30323,30313, -30323,-30313,3224,3214,3114,
31045 &3216,3218,2224,2214,2114, 1114,12224,12214,12114,11114,
31046 &99999,99999,22212,22112,32124, 31214,-2224,-2214,-2114,-1114,
31047 &-12224,-12214,-12114,-11114,-2124, -1214,4*99999,
31048 &5*99999, 5*99999,
31049 &4*99999,331, 333,3322,3312,-3222,-3212,
31050 &-3112,-3322,-3312,3224,3214, 3114,3324,3314,3334,-3224,
31051 &-3214,-3114,-3324,-3314,-3334, 421,411,-411,-421,431,
31052 &-431,441,423,413,-413, -423,433,-433,20443,443,
31053 &-15,15,16,-16,14, -14,4122,4232,4132,4222,
31054 &4212,4112,3*99999, 3*99999,-4122,-4232,
31055 &-4132,-4222,-4212,-4112,99999, 5*99999,
31056 &5*99999, 5*99999,
31057 &10*99999,
31058 &5*99999 , 20211,20111,-20211,99999,20321,
31059 &-20321,20311,-20311,7*99999 ,
31060 &7*99999,12212,12112,99999/
31061
31062* / DTHAIC /
31063* (HAdron InDex COnversion)
31064 DATA (IPDG2(1,K),K=1,7)
31065 & / -11, -12, -13, -15, -16, -14, 0/
31066 DATA (IBAM2(1,K),K=1,7)
31067 & / 4, 6, 10, 131, 134, 136, 0/
31068 DATA (IPDG2(2,K),K=1,7)
31069 & / 11, 12, 22, 13, 15, 16, 14/
31070 DATA (IBAM2(2,K),K=1,7)
31071 & / 3, 5, 7, 11, 132, 133, 135/
31072 DATA (IPDG3(1,K),K=1,22)
31073 & / -211, -321, -311, -213, -323, -313, -411, -421,
31074 & -431, -413, -423, -433, 0, 0, 0, 0,
31075 & 0, 0, 0, 0, 0, 0/
31076 DATA (IBAM3(1,K),K=1,22)
31077 & / 14, 16, 25, 34, 38, 39, 118, 119,
31078 & 121, 125, 126, 128, 0, 0, 0, 0,
31079 & 0, 0, 0, 0, 0, 0/
31080 DATA (IPDG3(2,K),K=1,22)
31081 & / 130, 211, 321, 310, 111, 311, 221, 213,
31082 & 113, 223, 323, 313, 331, 333, 421, 411,
31083 & 431, 441, 423, 413, 433, 443/
31084 DATA (IBAM3(2,K),K=1,22)
31085 & / 12, 13, 15, 19, 23, 24, 31, 32,
31086 & 33, 35, 36, 37, 95, 96, 116, 117,
31087 & 120, 122, 123, 124, 127, 130/
31088 DATA (IPDG4(1,K),K=1,29)
31089 & / -2212, -2112, -3122, -2224, -2214, -2114, -1114, -2124,
31090 & -1214, -3222, -3212, -3112, -3322, -3312, -3224, -3214,
31091 & -3114, -3324, -3314, -3334, -4122, -4232, -4132, -4222,
31092 & -4212, -4112, 0, 0, 0/
31093 DATA (IBAM4(1,K),K=1,29)
31094 & / 2, 9, 18, 67, 68, 69, 70, 75,
31095 & 76, 99, 100, 101, 102, 103, 110, 111,
31096 & 112, 113, 114, 115, 149, 150, 151, 152,
31097 & 153, 154, 0, 0, 0/
31098 DATA (IPDG4(2,K),K=1,29)
31099 & / 2212, 2112, 3122, 3112, 3222, 3212, 3224, 3214,
31100 & 3114, 3216, 3218, 2224, 2214, 2114, 1114, 3322,
31101 & 3312, 3224, 3214, 3114, 3324, 3314, 3334, 4122,
31102 & 4232, 4132, 4222, 4212, 4112/
31103 DATA (IBAM4(2,K),K=1,29)
31104 & / 1, 8, 17, 20, 21, 22, 48, 49,
31105 & 50, 51, 52, 53, 54, 55, 56, 97,
31106 & 98, 104, 105, 106, 107, 108, 109, 137,
31107 & 138, 139, 140, 141, 142/
31108 DATA (IPDG5(1,K),K=1,19)
31109 & /-10323,-10313,-30323,-30313,-12224,-12214,-12114,-11114,
31110 & -20211,-20321,-20311, 0, 0, 0, 0, 0,
31111 & 0, 0, 0/
31112 DATA (IBAM5(1,K),K=1,19)
31113 & / 42, 43, 46, 47, 71, 72, 73, 74,
31114 & 188, 191, 193, 0, 0, 0, 0, 0,
31115 & 0, 0, 0/
31116 DATA (IPDG5(2,K),K=1,19)
31117 & / 10323, 10313, 30323, 30313, 12224, 12214, 12114, 11114,
31118 & 22212, 22112, 32124, 31214, 20443, 20211, 20111, 20321,
31119 & 20311, 12212, 12112/
31120 DATA (IBAM5(2,K),K=1,19)
31121 & / 40, 41, 44, 45, 57, 58, 59, 60,
31122 & 63, 64, 65, 66, 129, 186, 187, 190,
31123 & 192, 208, 209/
31124
31125* / DTPAIN /
31126* internal particle names
31127 DATA BTYPE / 'PROTON ' , 'APROTON ' , 'ELECTRON' , 'POSITRON' ,
31128 &'NEUTRIE ' , 'ANEUTRIE' , 'PHOTON ' , 'NEUTRON ' , 'ANEUTRON' ,
31129 &'MUON+ ' , 'MUON- ' , 'KAONLONG' , 'PION+ ' , 'PION- ' ,
31130 &'KAON+ ' , 'KAON- ' , 'LAMBDA ' , 'ALAMBDA ' , 'KAONSHRT' ,
31131 &'SIGMA- ' , 'SIGMA+ ' , 'SIGMAZER' , 'PIZERO ' , 'KAONZERO' ,
31132 &'AKAONZER' , 'NEUTRIM ' , 'ANEUTRIM' , 'NEUTRIT ' , 'ANEUTRIT' ,
31133 &'BLANK ' /
31134
31135 END
31136
31137*$ CREATE DT_BLKD46.FOR
31138*COPY DT_BLKD46
31139*
31140*===blkd46=============================================================*
31141*
31142 BLOCK DATA DT_BLKD46
31143
31144 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
31145 SAVE
31146
31147 PARAMETER ( AMELCT = 0.51099906 D-03 )
31148 PARAMETER ( AMMUON = 0.105658389 D+00 )
31149
31150* particle properties (BAMJET index convention)
31151 CHARACTER*8 ANAME
31152 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
31153 & IICH(210),IIBAR(210),K1(210),K2(210)
31154
31155* / DTPART /
31156* Particle masses Engel version JETSET compatible
31157C DATA (AAM(K),K=1,85) /
31158C & .9383D+00, .9383D+00, AMELCT , AMELCT , .0000D+00,
31159C & .0000D+00, .0000D+00, .9396D+00, .9396D+00, AMMUON ,
31160C & AMMUON , .4977D+00, .1396D+00, .1396D+00, .4936D+00,
31161C & .4936D+00, .1116D+01, .1116D+01, .4977D+00, .1197D+01,
31162C & .1189D+01, .1193D+01, .1350D+00, .4977D+00, .4977D+00,
31163C & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31164C & .5488D+00, .7669D+00, .7700D+00, .7669D+00, .7820D+00,
31165C & .8921D+00, .8962D+00, .8921D+00, .8962D+00, .1300D+01,
31166C & .1300D+01, .1300D+01, .1300D+01, .1421D+01, .1421D+01,
31167C & .1421D+01, .1421D+01, .1383D+01, .1384D+01, .1387D+01,
31168C & .1820D+01, .2030D+01, .1231D+01, .1232D+01, .1233D+01,
31169C & .1234D+01, .1675D+01, .1675D+01, .1675D+01, .1675D+01,
31170C & .1500D+01, .1500D+01, .1515D+01, .1515D+01, .1775D+01,
31171C & .1775D+01, .1231D+01, .1232D+01, .1233D+01, .1234D+01,
31172C & .1675D+01, .1675D+01, .1675D+01, .1675D+01, .1515D+01,
31173C & .1515D+01, .2500D+01, .4890D+00, .4890D+00, .4890D+00,
31174C & .1300D+01, .1300D+01, .1300D+01, .1300D+01, .2200D+01 /
31175C DATA (AAM(K),K=86,183) /
31176C & .2200D+01, .2200D+01, .2200D+01, .1700D+01, .1700D+01,
31177C & .1700D+01, .1700D+01, .1820D+01, .2030D+01, .9575D+00,
31178C & .1019D+01, .1315D+01, .1321D+01, .1189D+01, .1193D+01,
31179C & .1197D+01, .1315D+01, .1321D+01, .1383D+01, .1384D+01,
31180C & .1387D+01, .1532D+01, .1535D+01, .1672D+01, .1383D+01,
31181C & .1384D+01, .1387D+01, .1532D+01, .1535D+01, .1672D+01,
31182C & .1865D+01, .1869D+01, .1869D+01, .1865D+01, .1969D+01,
31183C & .1969D+01, .2980D+01, .2007D+01, .2010D+01, .2010D+01,
31184C & .2007D+01, .2113D+01, .2113D+01, .3686D+01, .3097D+01,
31185C & .1784D+01, .1784D+01, .0000D+00, .0000D+00, .0000D+00,
31186C & .0000D+00, .2285D+01, .2460D+01, .2460D+01, .2452D+01,
31187C & .2453D+01, .2454D+01, .2560D+01, .2560D+01, .2730D+01,
31188C & .3610D+01, .3610D+01, .3790D+01, .2285D+01, .2460D+01,
31189C & .2460D+01, .2452D+01, .2453D+01, .2454D+01, .2560D+01,
31190C & .2560D+01, .2730D+01, .3610D+01, .3610D+01, .3790D+01,
31191C & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31192C & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31193C & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31194C & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31195C & .1250D+01, .1250D+01, .1250D+01 /
31196C DATA (AAM ( I ), I = 184,210 ) /
31197C & 1.44000000000000D+00, 1.44000000000000D+00, 1.30000000000000D+00,
31198C & 1.30000000000000D+00, 1.30000000000000D+00, 1.40000000000000D+00,
31199C & 1.46000000000000D+00, 1.46000000000000D+00, 1.46000000000000D+00,
31200C & 1.46000000000000D+00, 1.60000000000000D+00, 1.60000000000000D+00,
31201C & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31202C & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31203C & 1.95000000000000D+00, 1.95000000000000D+00, 1.95000000000000D+00,
31204C & 1.95000000000000D+00, 2.25000000000000D+00, 2.25000000000000D+00,
31205C & 1.44000000000000D+00, 1.44000000000000D+00, 0.00000000000000D+00/
31206* sr 25.1.06: particle masses adjusted to Pythia
31207 DATA (AAM(K),K=1,85) /
31208 & .938270E+00,.938270E+00, AMELCT , AMELCT ,.000000E+00,
31209 & .000000E+00,.000000E+00,.939570E+00,.939570E+00, AMMUON ,
31210 & AMMUON ,.497670E+00,.139570E+00,.139570E+00,.493600E+00,
31211 & .493600E+00,.111568E+01,.111568E+01,.497670E+00,.119744E+01,
31212 & .118937E+01,.119255E+01,.134980E+00,.497670E+00,.497670E+00,
31213 & .0000D+00, .0000D+00, .0000D+00 , .0000D+00, .0000D+00,
31214 & .547450E+00,.766900E+00,.768500E+00,.766900E+00,.781940E+00,
31215 & .891600E+00,.896100E+00,.891600E+00,.896100E+00,.129000E+01,
31216 & .129000E+01,.129000E+01,.129000E+01, .1421D+01, .1421D+01,
31217 & .1421D+01, .1421D+01,.138280E+01,.138370E+01,.138720E+01,
31218 & .1820D+01, .2030D+01, .1231D+01, .1232D+01, .1233D+01,
31219 & .1234D+01, .1675D+01, .1675D+01, .1675D+01, .1675D+01,
31220 & .1500D+01, .1500D+01, .1515D+01, .1515D+01, .1775D+01,
31221 & .1775D+01, .1231D+01, .1232D+01, .1233D+01, .1234D+01,
31222 & .1675D+01, .1675D+01, .1675D+01, .1675D+01, .1515D+01,
31223 & .1515D+01, .2500D+01, .4890D+00, .4890D+00, .4890D+00,
31224 & .1300D+01, .1300D+01, .1300D+01, .1300D+01, .2200D+01 /
31225 DATA (AAM(K),K=86,183) /
31226 & .2200D+01, .2200D+01, .2200D+01, .1700D+01, .1700D+01,
31227 & .1700D+01, .1700D+01, .1820D+01, .2030D+01,.957770E+00,
31228 & .101940E+01,.131490E+01,.132130E+01,.118937E+01,.119255E+01,
31229 & .119744E+01,.131490E+01,.132130E+01,.138280E+01,.138370E+01,
31230 & .138720E+01,.153180E+01, .1535D+01,.167245E+01,.138280E+01,
31231 & .138370E+01,.138720E+01,.153180E+01, .1535D+01,.167245E+01,
31232 & .186450E+01,.186930E+01,.186930E+01,.186450E+01,.196850E+01,
31233 & .196850E+01,.297980E+01,.200670E+01, .2010D+01, .2010D+01,
31234 & .200670E+01,.211240E+01,.211240E+01, .3686D+01,.309688E+01,
31235 & .177700E+01,.177700E+01, .0000D+00, .0000D+00, .0000D+00,
31236 & .0000D+00,.228490E+01,.246560E+01,.247030E+01,.245290E+01,
31237 & .245350E+01,.245210E+01, .2560D+01, .2560D+01, .2730D+01,
31238 & .3610D+01, .3610D+01, .3790D+01,.228490E+01,.246560E+01,
31239 & .2460D+01,.245290E+01,.245350E+01,.245210E+01, .2560D+01,
31240 & .2560D+01, .2730D+01, .3610D+01, .3610D+01, .3790D+01,
31241 & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31242 & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31243 & .2490D+01, .2490D+01, .2490D+01, .2610D+01, .2610D+01,
31244 & .2770D+01, .3670D+01, .3670D+01, .3850D+01, .4890D+01,
31245 & .1250D+01, .1250D+01, .1250D+01 /
31246 DATA (AAM ( I ), I = 184,210 ) /
31247 & 1.44000000000000D+00, 1.44000000000000D+00, 1.30000000000000D+00,
31248 & 1.30000000000000D+00, 1.30000000000000D+00, 1.40000000000000D+00,
31249 & 1.46000000000000D+00, 1.46000000000000D+00, 1.46000000000000D+00,
31250 & 1.46000000000000D+00, 1.60000000000000D+00, 1.60000000000000D+00,
31251 & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31252 & 1.66000000000000D+00, 1.66000000000000D+00, 1.66000000000000D+00,
31253 & 1.95000000000000D+00, 1.95000000000000D+00, 1.95000000000000D+00,
31254 & 1.95000000000000D+00, 2.25000000000000D+00, 2.25000000000000D+00,
31255 & 1.44000000000000D+00, 1.44000000000000D+00, 0.00000000000000D+00/
31256* Particle mean lives
31257 DATA (TAU(K),K=1,183) /
31258 & .1000D+19, .1000D+19, .1000D+19, .1000D+19, .1000D+19,
31259 & .1000D+19, .1000D+19, .9180D+03, .9180D+03, .2200D-05,
31260 & .2200D-05, .5200D-07, .2600D-07, .2600D-07, .1200D-07,
31261 & .1200D-07, .2600D-09, .2600D-09, .9000D-10, .1500D-09,
31262 & .8000D-10, .5000D-14, .8000D-16, .0000D+00, .0000D+00,
31263 & 70*.0000D+00,
31264 & .0000D+00, .3000D-09, .1700D-09, .8000D-10, .1000D-13,
31265 & .1500D-09, .3000D-09, .1700D-09, .0000D+00, .0000D+00,
31266 & .0000D+00, .0000D+00, .0000D+00, .1000D-09, .0000D+00,
31267 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .1000D-09,
31268 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31269 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31270 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31271 & .9000D-11, .9000D-11, .9000D-11, .9000D-11, .1000D+19,
31272 & .1000D+19, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31273 & 40*.0000D+00,
31274 & .0000D+00, .0000D+00, .0000D+00 /
31275 DATA ( TAU ( I ), I = 184,210 ) /
31276 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31277 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31278 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31279 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31280 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31281 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31282 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31283 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00,
31284 & 0.00000000000000D+00, 0.00000000000000D+00, 0.00000000000000D+00/
31285* Resonance width Gamma in GeV
31286 DATA (GA(K),K= 1,85) /
31287 & 30*.0000D+00,
31288 & .8500D-06, .1520D+00, .1520D+00, .1520D+00, .1000D-01,
31289 & .7900D-01, .7900D-01, .7900D-01, .7900D-01, .4500D+00,
31290 & .4500D+00, .4500D+00, .4500D+00, .1080D+00, .1080D+00,
31291 & .1080D+00, .1080D+00, .5000D-01, .5000D-01, .5000D-01,
31292 & .8500D-01, .1800D+00, .1150D+00, .1150D+00, .1150D+00,
31293 & .1150D+00, .2000D+00, .2000D+00, .2000D+00, .2000D+00,
31294 & .2000D+00, .2000D+00, .1000D+00, .1000D+00, .2000D+00,
31295 & .2000D+00, .1150D+00, .1150D+00, .1150D+00, .1150D+00,
31296 & .2000D+00, .2000D+00, .2000D+00, .2000D+00, .1000D+00,
31297 & .1000D+00, .2000D+00, .1000D+00, .1000D+00, .1000D+00,
31298 & .1000D+00, .1000D+00, .1000D+00, .1000D+00, .2000D+00 /
31299 DATA (GA(K),K= 86,183) /
31300 & .2000D+00, .2000D+00, .2000D+00, .1500D+00, .1500D+00,
31301 & .1500D+00, .1500D+00, .8500D-01, .1800D+00, .2000D-02,
31302 & .4000D-02, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31303 & .0000D+00, .0000D+00, .0000D+00, .3400D-01, .3400D-01,
31304 & .3600D-01, .9000D-02, .9000D-02, .0000D+00, .3400D-01,
31305 & .3400D-01, .3600D-01, .9000D-02, .9000D-02, .0000D+00,
31306 & .0000D+00, .0000D+00, .0000D+00, .0000D+00, .0000D+00,
31307 & .0000D+00, .0000D+00, .5000D-02, .2000D-02, .2000D-02,
31308 & .5000D-02, .2000D-02, .2000D-02, .2000D-03, .7000D-03,
31309 & 50*.0000D+00,
31310 & .3000D+00, .3000D+00, .3000D+00 /
31311 DATA ( GA ( I ), I = 184,210 ) /
31312 & 2.00000000000000D-01, 2.00000000000000D-01, 3.00000000000000D-01,
31313 & 3.00000000000000D-01, 3.00000000000000D-01, 2.70000000000000D-01,
31314 & 2.50000000000000D-01, 2.50000000000000D-01, 2.50000000000000D-01,
31315 & 2.50000000000000D-01, 1.50000000000000D-01, 1.50000000000000D-01,
31316 & 1.00000000000000D-01, 1.00000000000000D-01, 1.00000000000000D-01,
31317 & 1.00000000000000D-01, 1.00000000000000D-01, 1.00000000000000D-01,
31318 & 6.00000000000000D-02, 6.00000000000000D-02, 6.00000000000000D-02,
31319 & 6.00000000000000D-02, 5.50000000000000D-02, 5.50000000000000D-02,
31320 & 2.00000000000000D-01, 2.00000000000000D-01, 0.00000000000000D+00/
31321* Particle names
31322* S+1385+Sigma+(1385) L02030+Lambda0(2030)
31323* Rho77=Rho(770) Om783=Omega(783) K*14=K*(1420) and so on
31324* designation N*@@ means N*@1(@2)
31325 DATA (ANAME(K),K=1,85) /
31326 & 'P ','AP ','E- ','E+ ','NUE ',
31327 & 'ANUE ','GAM ','NEU ','ANEU ','MUE+ ',
31328 & 'MUE- ','K0L ','PI+ ','PI- ','K+ ',
31329 & 'K- ','LAM ','ALAM ','K0S ','SIGM- ',
31330 & 'SIGM+ ','SIGM0 ','PI0 ','K0 ','AK0 ',
31331 & 'BLANK ','BLANK ','BLANK ','BLANK ','BLANK ',
31332 & 'ETA550 ','RHO+77 ','RHO077 ','RHO-77 ','OM0783 ',
31333 & 'K*+892 ','K*0892 ','K*-892 ','AK*089 ','KA+125 ',
31334 & 'KA0125 ','KA-125 ','AKA012 ','K*+142 ','K*0142 ',
31335 & 'K*-142 ','AK*014 ','S+1385 ','S01385 ','S-1385 ',
31336 & 'L01820 ','L02030 ','N*++12 ','N*+ 12 ','N*012 ',
31337 & 'N*-12 ','N*++16 ','N*+16 ','N*016 ','N*-16 ',
31338 & 'N*+14 ','N*014 ','N*+15 ','N*015 ','N*+18 ',
31339 & 'N*018 ','AN--12 ','AN*-12 ','AN*012 ','AN*+12 ',
31340 & 'AN--16 ','AN*-16 ','AN*016 ','AN*+16 ','AN*-15 ',
31341 & 'AN*015 ','DE*=24 ','RPI+49 ','RPI049 ','RPI-49 ',
31342 & 'PIN++ ','PIN+0 ','PIN+- ','PIN-0 ','PPPI ' /
31343 DATA (ANAME(K),K=86,183) /
31344 & 'PNPI ','APPPI ','APNPI ','K+PPI ','K-PPI ',
31345 & 'K+NPI ','K-NPI ','S+1820 ','S-2030 ','ETA* ',
31346 & 'PHI ','TETA0 ','TETA- ','ASIG- ','ASIG0 ',
31347 & 'ASIG+ ','ATETA0 ','ATETA+ ','SIG*+ ','SIG*0 ',
31348 & 'SIG*- ','TETA*0 ','TETA* ','OMEGA- ','ASIG*- ',
31349 & 'ASIG*0 ','ASIG*+ ','ATET*0 ','ATET*+ ','OMEGA+ ',
31350 & 'D0 ','D+ ','D- ','AD0 ','F+ ',
31351 & 'F- ','ETAC ','D*0 ','D*+ ','D*- ',
31352 & 'AD*0 ','F*+ ','F*- ','PSI ','JPSI ',
31353 & 'TAU+ ','TAU- ','NUET ','ANUET ','NUEM ',
31354 & 'ANUEM ','C0+ ','A+ ','A0 ','C1++ ',
31355 & 'C1+ ','C10 ','S+ ','S0 ','T0 ',
31356 & 'XU++ ','XD+ ','XS+ ','AC0- ','AA- ',
31357 & 'AA0 ','AC1-- ','AC1- ','AC10 ','AS- ',
31358 & 'AS0 ','AT0 ','AXU-- ','AXD- ','AXS ',
31359 & 'C1*++ ','C1*+ ','C1*0 ','S*+ ','S*0 ',
31360 & 'T*0 ','XU*++ ','XD*+ ','XS*+ ','TETA++ ',
31361 & 'AC1*-- ','AC1*- ','AC1*0 ','AS*- ','AS*0 ',
31362 & 'AT*0 ','AXU*-- ','AXD*- ','AXS*- ','ATET-- ',
31363 & 'RO ','R+ ','R- ' /
31364 DATA ( ANAME ( I ), I = 184,210 ) /
31365 &'AN*-14 ','AN*014 ','PI+130 ','PI0130 ','PI-130 ','F01400 ',
31366 &'K*+146 ','K*-146 ','K*0146 ','AK0146 ','L01600 ','AL0160 ',
31367 &'S+1660 ','S01660 ','S-1660 ','AS-166 ','AS0166 ','AS+166 ',
31368 &'X01950 ','X-1950 ','AX0195 ','AX+195 ','OM-225 ','AOM+22 ',
31369 &'N*+14 ','N*014 ','BLANK '/
31370* Charge of particles and resonances
31371 DATA (IICH ( I ), I = 1,210 ) /
31372 & 1, -1, -1, 1, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 1,
31373 & -1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31374 & 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0,
31375 & -1, 0, 1, 0, -1, 0, 0, 2, 1, 0, -1, 2, 1, 0, -1,
31376 & 1, 0, 1, 0, 1, 0, -2, -1, 0, 1, -2, -1, 0, 1, -1,
31377 & 0, 1, 1, 0, -1, 2, 1, 0, -1, 2, 1, 0, -1, 2, 0,
31378 & 1, -1, 1, -1, 0, 0, 0, -1, -1, 0, 1, 0, 1, 1, 0,
31379 & -1, 0, -1, -1, -1, 0, 1, 0, 1, 1, 0, 1, -1, 0, 1,
31380 & -1, 0, 0, 1, -1, 0, 1, -1, 0, 0, 1, -1, 0, 0, 0,
31381 & 0, 1, 1, 0, 2, 1, 0, 1, 0, 0, 2, 1, 1, -1, -1,
31382 & 0, -2, -1, 0, -1, 0, 0, -2, -1, -1, 2, 1, 0, 1, 0,
31383 & 0, 2, 1, 1, 2, -2, -1, 0, -1, 0, 0, -2, -1, -1, -2,
31384 & 0, 1, -1, -1, 0, 1, 0, -1, 0, 1, -1, 0, 0, 0, 0,
31385 & 1, 0, -1, -1, 0, 1, 0, -1, 0, 1, -1, 1, 1, 0, 0/
31386* Particle baryonic charges
31387 DATA (IIBAR ( I ), I = 1,210 ) /
31388 & 1, -1, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0,
31389 & 0, 1, -1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,
31390 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31391 & 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
31392 & 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
31393 & -1, 2, 0, 0, 0, 1, 1, 1, 1, 2, 2, 0, 0, 1, 1,
31394 & 1, 1, 1, 1, 0, 0, 1, 1, -1, -1, -1, -1, -1, 1, 1,
31395 & 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0,
31396 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31397 & 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1,
31398 & -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1,
31399 & 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
31400 & 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1,
31401 & 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 0/
31402* First number of decay channels used for resonances
31403* and decaying particles
31404 DATA K1/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 16, 17,
31405 & 18, 24, 30, 34, 38, 40, 41, 43, 44, 136, 138, 330, 327, 328,
31406 & 2*330, 46, 51, 52, 54, 55, 58,
31407* 50
31408 & 60, 62, 64, 66, 68, 70, 72, 74, 82, 90, 98, 106, 109, 112, 114,
31409 & 123, 140, 141, 143, 145, 146, 150, 157, 164, 168, 174, 180, 187,
31410 & 194, 202, 210, 211, 213, 215, 216, 220, 227, 234, 238, 245, 252,
31411* 85
31412 & 254, 255, 256, 257, 259, 262, 265, 267, 269, 272, 276, 279, 282,
31413 & 286, 290, 293, 299, 331, 335, 339, 340, 341, 343, 344, 345, 346,
31414 & 347, 350, 353, 356, 358, 360, 363, 366, 369, 372, 374, 376, 379,
31415 & 383, 385, 387, 391, 394, 397, 400, 402, 405, 408, 410, 412, 414,
31416 & 417, 420, 425, 430, 431, 432, 433, 434, 448, 452, 457, 458, 459,
31417 & 460, 461, 462, 466, 468, 470, 472, 486, 490, 495, 496, 497, 498,
31418 & 499, 500, 504, 506, 508, 510, 511, 512, 513, 514, 515, 516, 517,
31419 & 518, 519, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 534,
31420 & 537, 539, 541, 547, 553, 558, 563, 568, 572, 573, 574, 575, 576,
31421 & 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589,
31422 & 590, 596, 602 /
31423* Last number of decay channels used for resonances
31424* and decaying particles
31425 DATA K2/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17,
31426 & 23, 29, 31, 35, 39, 40, 42, 43, 45, 137, 139, 330, 327, 328,
31427 & 2* 330, 50, 51, 53, 54, 57,
31428* 50
31429 & 59, 61, 63, 65, 67, 69, 71, 73, 81, 89, 97, 105, 108, 111, 113,
31430 & 122, 135, 140, 142, 144, 145, 149, 156, 163, 167, 173, 179, 186,
31431 & 193, 201, 209, 210, 212, 214, 215, 219, 226, 233, 237, 244, 251,
31432* 85
31433 & 253, 254, 255, 256, 258, 261, 264, 266, 268, 271, 275, 278, 281,
31434 & 285, 289, 292, 298, 307, 334, 338, 339, 340, 342, 343, 344, 345,
31435 & 346, 349, 352, 355, 357, 359, 362, 365, 368, 371, 373, 375, 378,
31436 & 382, 384, 386, 390, 393, 396, 399, 401, 404, 407, 409, 411, 413,
31437 & 416, 419, 424, 429, 430, 431, 432, 433, 447, 451, 456, 457, 458,
31438 & 459, 460, 461, 465, 467, 469, 471, 485, 489, 494, 495, 496, 497,
31439 & 498, 499, 503, 505, 507, 509, 510, 511, 512, 513, 514, 515, 516,
31440 & 517, 518, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 533,
31441 & 536, 538, 540, 546, 552, 557, 562, 567, 571, 572, 573, 574, 575,
31442 & 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
31443 & 589, 595, 601, 602 /
31444
31445 END
31446
31447*$ CREATE DT_BLKD47.FOR
31448*COPY DT_BLKD47
31449*
31450*===blkd47=============================================================*
31451*
31452 BLOCK DATA DT_BLKD47
31453
31454 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
31455 SAVE
31456
31457* HADRIN: decay channel information
31458 PARAMETER (IDMAX9=602)
31459 CHARACTER*8 ZKNAME
31460 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
31461
31462* Name of decay channel
31463* Designation N*@ means N*@1(1236)
31464* @1=# means ++, @1 = = means --
31465* Designation P+/0/- means Pi+/Pi0/Pi- , respectively
31466 DATA (ZKNAME(K),K= 1, 85) /
31467 & 'P ','AP ','E- ','E+ ','NUE ',
31468 & 'ANUE ','GAM ','PE-NUE ','APEANU ','EANUNU ',
31469 & 'E-NUAN ','3PI0 ','PI+-0 ','PIMUNU ','PIE-NU ',
31470 & 'MU+NUE ','MU-NUE ','MU+NUE ','PI+PI0 ','PI++- ',
31471 & 'PI+00 ','M+P0NU ','E+P0NU ','MU-NU ','PI-0 ',
31472 & 'PI+-- ','PI-00 ','M-P0NU ','E-P0NU ','PPI- ',
31473 & 'NPI0 ','PD-NUE ','PM-NUE ','APPI+ ','ANPI0 ',
31474 & 'APE+NU ','APM+NU ','PI+PI- ','PI0PI0 ','NPI- ',
31475 & 'PPI0 ','NPI+ ','LAGA ','GAGA ','GAE+E- ',
31476 & 'GAGA ','GAGAP0 ','PI000 ','PI+-0 ','PI+-GA ',
31477 & 'PI+0 ','PI+- ','PI00 ','PI-0 ','PI+-0 ',
31478 & 'PI+- ','PI0GA ','K+PI0 ','K0PI+ ','KOPI0 ',
31479 & 'K+PI- ','K-PI0 ','AK0PI- ','AK0PI0 ','K-PI+ ',
31480 & 'K+PI0 ','K0PI+ ','K0PI0 ','K+PI- ','K-PI0 ',
31481 & 'K0PI- ','AK0PI0 ','K-PI+ ','K+PI0 ','K0PI+ ',
31482 & 'K+89P0 ','K08PI+ ','K+RO77 ','K0RO+7 ','K+OM07 ',
31483 & 'K+E055 ','K0PI0 ','K+PI+ ','K089P0 ','K+8PI- ' /
31484 DATA (ZKNAME(K),K= 86,170) /
31485 & 'K0R077 ','K+R-77 ','K+R-77 ','K0OM07 ','K0E055 ',
31486 & 'K-PI0 ','K0PI- ','K-89P0 ','AK08P- ','K-R077 ',
31487 & 'AK0R-7 ','K-OM07 ','K-E055 ','AK0PI0 ','K-PI+ ',
31488 & 'AK08P0 ','K-8PI+ ','AK0R07 ','AK0OM7 ','AK0E05 ',
31489 & 'LA0PI+ ','SI0PI+ ','SI+PI0 ','LA0PI0 ','SI+PI- ',
31490 & 'SI-PI+ ','LA0PI- ','SI0PI- ','NEUAK0 ','PK- ',
31491 & 'SI+PI- ','SI0PI0 ','SI-PI+ ','LA0ET0 ','S+1PI- ',
31492 & 'S-1PI+ ','SO1PI0 ','NEUAK0 ','PK- ','LA0PI0 ',
31493 & 'LA0OM0 ','LA0RO0 ','SI+RO- ','SI-RO+ ','SI0RO0 ',
31494 & 'LA0ET0 ','SI0ET0 ','SI+PI- ','SI-PI+ ','SI0PI0 ',
31495 & 'K0S ','K0L ','K0S ','K0L ','P PI+ ',
31496 & 'P PI0 ','N PI+ ','P PI- ','N PI0 ','N PI- ',
31497 & 'P PI+ ','N*#PI0 ','N*+PI+ ','PRHO+ ','P PI0 ',
31498 & 'N PI+ ','N*#PI- ','N*+PI0 ','N*0PI+ ','PRHO0 ',
31499 & 'NRHO+ ','P PI- ','N PI0 ','N*+PI- ','N*0PI0 ',
31500 & 'N*-PI+ ','PRHO- ','NRHO0 ','N PI- ','N*0PI- ',
31501 & 'N*-PI0 ','NRHO- ','PETA0 ','N*#PI- ','N*+PI0 ' /
31502 DATA (ZKNAME(K),K=171,255) /
31503 & 'N*0PI+ ','PRHO0 ','NRHO+ ','NETA0 ','N*+PI- ',
31504 & 'N*0PI0 ','N*-PI+ ','PRHO- ','NRHO0 ','P PI0 ',
31505 & 'N PI+ ','N*#PI- ','N*+PI0 ','N*0PI+ ','PRHO0 ',
31506 & 'NRHO+ ','P PI- ','N PI0 ','N*+PI- ','N*0PI0 ',
31507 & 'N*-PI+ ','PRHO- ','NRHO0 ','P PI0 ','N PI+ ',
31508 & 'PRHO0 ','NRHO+ ','LAMK+ ','S+ K0 ','S0 K+ ',
31509 & 'PETA0 ','P PI- ','N PI0 ','PRHO- ','NRHO0 ',
31510 & 'LAMK0 ','S0 K0 ','S- K+ ','NETA/ ','APPI- ',
31511 & 'APPI0 ','ANPI- ','APPI+ ','ANPI0 ','ANPI+ ',
31512 & 'APPI- ','AN*=P0 ','AN*-P- ','APRHO- ','APPI0 ',
31513 & 'ANPI- ','AN*=P+ ','AN*-P0 ','AN*0P- ','APRHO0 ',
31514 & 'ANRHO- ','APPI+ ','ANPI0 ','AN*-P+ ','AN*0P0 ',
31515 & 'AN*+P- ','APRHO+ ','ANRHO0 ','ANPI+ ','AN*0P+ ',
31516 & 'AN*+P0 ','ANRHO+ ','APPI0 ','ANPI- ','AN*=P+ ',
31517 & 'AN*-P0 ','AN*0P- ','APRHO0 ','ANRHO- ','APPI+, ',
31518 & 'ANPI0 ','AN*-P+ ','AN*0P0 ','AN*+P- ','APRHO+ ',
31519 & 'ANRHO0 ','PN*014 ','NN*=14 ','PI+0 ','PI+- ' /
31520 DATA (ZKNAME(K),K=256,340) /
31521 & 'PI-0 ','P+0 ','N++ ','P+- ','P00 ',
31522 & 'N+0 ','N+- ','N00 ','P-0 ','N-0 ',
31523 & 'P-- ','PPPI0 ','PNPI+ ','PNPI0 ','PPPI- ',
31524 & 'NNPI+ ','APPPI0 ','APNPI+ ','ANNPI0 ','ANPPI- ',
31525 & 'APNPI0 ','APPPI- ','ANNPI- ','K+PPI0 ','K+NPI+ ',
31526 & 'K0PPI0 ','K-PPI0 ','K-NPI+ ','AKPPI- ','AKNPI0 ',
31527 & 'K+NPI0 ','K+PPI- ','K0PPI0 ','K0NPI+ ','K-NPI0 ',
31528 & 'K-PPI- ','AKNPI- ','PAK0 ','SI+PI0 ','SI0PI+ ',
31529 & 'SI+ETA ','S+1PI0 ','S01PI+ ','NEUK- ','LA0PI- ',
31530 & 'SI-OM0 ','LA0RO- ','SI0RO- ','SI-RO0 ','SI-ET0 ',
31531 & 'SI0PI- ','SI-0 ','BLANC ','BLANC ','BLANC ',
31532 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31533 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31534 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31535 & 'BLANC ','BLANC ','BLANC ','BLANC ','BLANC ',
31536 & 'EPI+- ','EPI00 ','GAPI+- ','GAGA* ','K+- ',
31537 & 'KLKS ','PI+-0 ','EGA ','LPI0 ','LPI ' /
31538 DATA (ZKNAME(K),K=341,425) /
31539 & 'APPI0 ','ANPI- ','ALAGA ','ANPI ','ALPI0 ',
31540 & 'ALPI+ ','LAPI+ ','SI+PI0 ','SI0PI+ ','LAPI0 ',
31541 & 'SI+PI- ','SI-PI+ ','LAPI- ','SI-PI0 ','SI0PI- ',
31542 & 'TE0PI0 ','TE-PI+ ','TE0PI- ','TE-PI0 ','TE0PI ',
31543 & 'TE-PI ','LAK- ','ALPI- ','AS-PI0 ','AS0PI- ',
31544 & 'ALPI0 ','AS+PI- ','AS-PI+ ','ALPI+ ','AS+PI0 ',
31545 & 'AS0PI+ ','AT0PI0 ','AT+PI- ','AT0PI+ ','AT+PI0 ',
31546 & 'AT0PI ','AT+PI ','ALK+ ','K-PI+ ','K-PI+0 ',
31547 & 'K0PI+- ','K0PI0 ','K-PI++ ','AK0PI+ ','K+PI-- ',
31548 & 'K0PI- ','K+PI- ','K+PI-0 ','AKPI-+ ','AK0PI0 ',
31549 & 'ETAPIF ','K++- ','K+AK0 ','ETAPI- ','K--+ ',
31550 & 'K-K0 ','PI00 ','PI+- ','GAGA ','D0PI0 ',
31551 & 'D0GA ','D0PI+ ','D+PI0 ','DFGA ','AD0PI- ',
31552 & 'D-PI0 ','D-GA ','AD0PI0 ','AD0GA ','F+GA ',
31553 & 'F+GA ','F-GA ','F-GA ','PSPI+- ','PSPI00 ',
31554 & 'PSETA ','E+E- ','MUE+- ','PI+-0 ','M+NN ',
31555 & 'E+NN ','RHO+NT ','PI+ANT ','K*+ANT ','M-NN ' /
31556 DATA (ZKNAME(K),K=426,510) /
31557 & 'E-NN ','RHO-NT ','PI-NT ','K*-NT ','NUET ',
31558 & 'ANUET ','NUEM ','ANUEM ','SI+ETA ','SI+ET* ',
31559 & 'PAK0 ','TET0K+ ','SI*+ET ','N*+AK0 ','N*++K- ',
31560 & 'LAMRO+ ','SI0RO+ ','SI+RO0 ','SI+OME ','PAK*0 ',
31561 & 'N*+AK* ','N*++K* ','SI+AK0 ','TET0PI ','SI+AK* ',
31562 & 'TET0RO ','SI0AK* ','SI+K*- ','TET0OM ','TET-RO ',
31563 & 'SI*0AK ','C0+PI+ ','C0+PI0 ','C0+PI- ','A+GAM ',
31564 & 'A0GAM ','TET0AK ','TET0K* ','OM-RO+ ','OM-PI+ ',
31565 & 'C1++AK ','A+PI+ ','C0+AK0 ','A0PI+ ','A+AK0 ',
31566 & 'T0PI+ ','ASI-ET ','ASI-E* ','APK0 ','ATET0K ',
31567 & 'ASI*-E ','AN*-K0 ','AN*--K ','ALAMRO ','ASI0RO ',
31568 & 'ASI-RO ','ASI-OM ','APK*0 ','AN*-K* ','AN*--K ',
31569 & 'ASI-K0 ','ATETPI ','ASI-K* ','ATETRO ','ASI0K* ',
31570 & 'ASI-K* ','ATE0OM ','ATE+RO ','ASI*0K ','AC-PI- ',
31571 & 'AC-PI0 ','AC-PI+ ','AA-GAM ','AA0GAM ','ATET0K ',
31572 & 'ATE0K* ','AOM+RO ','AOM+PI ','AC1--K ','AA-PI- ',
31573 & 'AC0-K0 ','AA0PI- ','AA-K0 ','AT0PI- ','C1++GA ' /
31574 DATA (ZKNAME(K),K=511,540) /
31575 & 'C1++GA ','C10GAM ','S+GAM ','S0GAM ','T0GAM ',
31576 & 'XU++GA ','XD+GAM ','XS+GAM ','A+AKPI ','T02PI+ ',
31577 & 'C1++2K ','AC1--G ','AC1-GA ','AC10GA ','AS-GAM ',
31578 & 'AS0GAM ','AT0GAM ','AXU--G ','AXD-GA ','AXS-GA ',
31579 & 'AA-KPI ','AT02PI ','AC1--K ','RH-PI+ ','RH+PI- ',
31580 & 'RH3PI0 ','RH0PI+ ','RH+PI0 ','RH0PI- ','RH-PI0 ' /
31581 DATA (ZKNAME(I),I=541,602)/
31582 & 'APETA ','AN=P+ ','AN-PO ','ANOPO ','APRHO0','ANRHO-','ANETA ',
31583 & 'AN-P+ ','AN0PO ','AN+P- ','APRHO+','ANRHO0','RH0PI+','RH+PI0',
31584 & '3PI+00','3PI-++','F0PI+ ','RH+PI-','RH0PI0','3PI000','3PI0+-',
31585 & 'F0PI0 ','RH0PI-','RH-PI0','3PI-00','3PI--+','F0PI- ','PI0PI0',
31586 & 'PI+PI-','K+K- ','K0AK0 ','L01600','AL0160','K*+146','K*-146',
31587 & 'K*0146','AK0146','S+1660','S01660','S-1660','AS-166','AS0166',
31588 & 'AS+166','X01690','X-1690','AX0169','AX+169','OM-225','AOM+22',
31589 & 'N*PPI0','N*NPI+','N*P2P0','N*PP+-','N*D+P0','N*D0P+','N*NPI0',
31590 & 'N*PPI-','N*N2P0','N*NP+-','N*D+P-','N*D0P0','BLANK '/
31591* Weight of decay channel
31592 DATA (WT(K),K= 1, 85) /
31593 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31594 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31595 & .1000D+01, .2100D+00, .1200D+00, .2700D+00, .4000D+00,
31596 & .1000D+01, .1000D+01, .6400D+00, .2100D+00, .6000D-01,
31597 & .2000D-01, .3000D-01, .4000D-01, .6400D+00, .2100D+00,
31598 & .6000D-01, .2000D-01, .3000D-01, .4000D-01, .6400D+00,
31599 & .3600D+00, .0000D+00, .0000D+00, .6400D+00, .3600D+00,
31600 & .0000D+00, .0000D+00, .6900D+00, .3100D+00, .1000D+01,
31601 & .5200D+00, .4800D+00, .1000D+01, .9900D+00, .1000D-01,
31602 & .3800D+00, .3000D-01, .3000D+00, .2400D+00, .5000D-01,
31603 & .1000D+01, .1000D+01, .0000D+00, .1000D+01, .9000D+00,
31604 & .1000D-01, .9000D-01, .3300D+00, .6700D+00, .3300D+00,
31605 & .6700D+00, .3300D+00, .6700D+00, .3300D+00, .6700D+00,
31606 & .3300D+00, .6700D+00, .3300D+00, .6700D+00, .3300D+00,
31607 & .6700D+00, .3300D+00, .6700D+00, .1900D+00, .3800D+00,
31608 & .9000D-01, .2000D+00, .3000D-01, .4000D-01, .5000D-01,
31609 & .2000D-01, .1900D+00, .3800D+00, .9000D-01, .2000D+00 /
31610 DATA (WT(K),K= 86,170) /
31611 & .3000D-01, .4000D-01, .5000D-01, .2000D-01, .1900D+00,
31612 & .3800D+00, .9000D-01, .2000D+00, .3000D-01, .4000D-01,
31613 & .5000D-01, .2000D-01, .1900D+00, .3800D+00, .9000D-01,
31614 & .2000D+00, .3000D-01, .4000D-01, .5000D-01, .2000D-01,
31615 & .8800D+00, .6000D-01, .6000D-01, .8800D+00, .6000D-01,
31616 & .6000D-01, .8800D+00, .1200D+00, .1900D+00, .1900D+00,
31617 & .1600D+00, .1600D+00, .1700D+00, .3000D-01, .3000D-01,
31618 & .3000D-01, .4000D-01, .1000D+00, .1000D+00, .2000D+00,
31619 & .1200D+00, .1000D+00, .4000D-01, .4000D-01, .5000D-01,
31620 & .7500D-01, .7500D-01, .3000D-01, .3000D-01, .4000D-01,
31621 & .5000D+00, .5000D+00, .5000D+00, .5000D+00, .1000D+01,
31622 & .6700D+00, .3300D+00, .3300D+00, .6700D+00, .1000D+01,
31623 & .2500D+00, .2700D+00, .1800D+00, .3000D+00, .1700D+00,
31624 & .8000D-01, .1800D+00, .3000D-01, .2400D+00, .2000D+00,
31625 & .1000D+00, .8000D-01, .1700D+00, .2400D+00, .3000D-01,
31626 & .1800D+00, .1000D+00, .2000D+00, .2500D+00, .1800D+00,
31627 & .2700D+00, .3000D+00, .4000D+00, .2000D+00, .1250D+00 /
31628 DATA (WT(K),K=171,255) /
31629 & .7500D-01, .7500D-01, .1250D+00, .4000D+00, .7500D-01,
31630 & .1250D+00, .2000D+00, .1250D+00, .7500D-01, .1800D+00,
31631 & .3700D+00, .1300D+00, .8000D-01, .4000D-01, .7000D-01,
31632 & .1300D+00, .3700D+00, .1800D+00, .4000D-01, .8000D-01,
31633 & .1300D+00, .1300D+00, .7000D-01, .7000D-01, .1300D+00,
31634 & .2300D+00, .4700D+00, .5000D-01, .2000D-01, .1000D-01,
31635 & .2000D-01, .1300D+00, .7000D-01, .4700D+00, .2300D+00,
31636 & .5000D-01, .1000D-01, .2000D-01, .2000D-01, .1000D+01,
31637 & .6700D+00, .3300D+00, .3300D+00, .6700D+00, .1000D+01,
31638 & .2500D+00, .2700D+00, .1800D+00, .3000D+00, .1700D+00,
31639 & .8000D-01, .1800D+00, .3000D-01, .2400D+00, .2000D+00,
31640 & .1000D+00, .8000D-01, .1700D+00, .2400D+00, .3000D-01,
31641 & .1800D+00, .1000D+00, .2000D+00, .2500D+00, .1800D+00,
31642 & .2700D+00, .3000D+00, .1800D+00, .3700D+00, .1300D+00,
31643 & .8000D-01, .4000D-01, .7000D-01, .1300D+00, .3700D+00,
31644 & .1800D+00, .4000D-01, .8000D-01, .1300D+00, .1300D+00,
31645 & .7000D-01, .5000D+00, .5000D+00, .1000D+01, .1000D+01 /
31646 DATA (WT(K),K=256,340) /
31647 & .1000D+01, .8000D+00, .2000D+00, .6000D+00, .3000D+00,
31648 & .1000D+00, .6000D+00, .3000D+00, .1000D+00, .8000D+00,
31649 & .2000D+00, .3300D+00, .6700D+00, .6600D+00, .1700D+00,
31650 & .1700D+00, .3200D+00, .1700D+00, .3200D+00, .1900D+00,
31651 & .3300D+00, .3300D+00, .3400D+00, .3000D+00, .5000D-01,
31652 & .6500D+00, .3800D+00, .1200D+00, .3800D+00, .1200D+00,
31653 & .3800D+00, .1200D+00, .3800D+00, .1200D+00, .3000D+00,
31654 & .5000D-01, .6500D+00, .3800D+00, .2500D+00, .2500D+00,
31655 & .2000D-01, .5000D-01, .5000D-01, .2000D+00, .2000D+00,
31656 & .1200D+00, .1000D+00, .7000D-01, .7000D-01, .1400D+00,
31657 & .5000D-01, .5000D-01, .1000D+01, .1000D+01, .1000D+01,
31658 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31659 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31660 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31661 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31662 & .4800D+00, .2400D+00, .2600D+00, .2000D-01, .4700D+00,
31663 & .3500D+00, .1500D+00, .3000D-01, .1000D+01, .1000D+01 /
31664 DATA (WT(K),K=341,425) /
31665 & .5200D+00, .4800D+00, .1000D+01, .1000D+01, .1000D+01,
31666 & .1000D+01, .9000D+00, .5000D-01, .5000D-01, .9000D+00,
31667 & .5000D-01, .5000D-01, .9000D+00, .5000D-01, .5000D-01,
31668 & .3300D+00, .6700D+00, .6700D+00, .3300D+00, .2500D+00,
31669 & .2500D+00, .5000D+00, .9000D+00, .5000D-01, .5000D-01,
31670 & .9000D+00, .5000D-01, .5000D-01, .9000D+00, .5000D-01,
31671 & .5000D-01, .3300D+00, .6700D+00, .6700D+00, .3300D+00,
31672 & .2500D+00, .2500D+00, .5000D+00, .1000D+00, .5000D+00,
31673 & .1600D+00, .2400D+00, .7000D+00, .3000D+00, .7000D+00,
31674 & .3000D+00, .1000D+00, .5000D+00, .1600D+00, .2400D+00,
31675 & .3000D+00, .4000D+00, .3000D+00, .3000D+00, .4000D+00,
31676 & .3000D+00, .4900D+00, .4900D+00, .2000D-01, .5500D+00,
31677 & .4500D+00, .6800D+00, .3000D+00, .2000D-01, .6800D+00,
31678 & .3000D+00, .2000D-01, .5500D+00, .4500D+00, .9000D+00,
31679 & .1000D+00, .9000D+00, .1000D+00, .6000D+00, .3000D+00,
31680 & .1000D+00, .1000D+00, .1000D+00, .8000D+00, .2800D+00,
31681 & .2800D+00, .3500D+00, .7000D-01, .2000D-01, .2800D+00 /
31682 DATA (WT(K),K=426,510) /
31683 & .2800D+00, .3500D+00, .7000D-01, .2000D-01, .1000D+01,
31684 & .1000D+01, .1000D+01, .1000D+01, .2000D-01, .3000D-01,
31685 & .7000D-01, .2000D-01, .2000D-01, .4000D-01, .1300D+00,
31686 & .7000D-01, .6000D-01, .6000D-01, .2000D+00, .1400D+00,
31687 & .4000D-01, .1000D+00, .2500D+00, .3000D-01, .3000D+00,
31688 & .4200D+00, .2200D+00, .3500D+00, .1900D+00, .1600D+00,
31689 & .8000D-01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31690 & .1000D+01, .3700D+00, .2000D+00, .3600D+00, .7000D-01,
31691 & .5000D+00, .5000D+00, .5000D+00, .5000D+00, .5000D+00,
31692 & .5000D+00, .2000D-01, .3000D-01, .7000D-01, .2000D-01,
31693 & .2000D-01, .4000D-01, .1300D+00, .7000D-01, .6000D-01,
31694 & .6000D-01, .2000D+00, .1400D+00, .4000D-01, .1000D+00,
31695 & .2500D+00, .3000D-01, .3000D+00, .4200D+00, .2200D+00,
31696 & .3500D+00, .1900D+00, .1600D+00, .8000D-01, .1000D+01,
31697 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .3700D+00,
31698 & .2000D+00, .3600D+00, .7000D-01, .5000D+00, .5000D+00,
31699 & .5000D+00, .5000D+00, .5000D+00, .5000D+00, .1000D+01 /
31700 DATA (WT(K),K=511,540) /
31701 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31702 & .1000D+01, .1000D+01, .1000D+01, .3000D+00, .3000D+00,
31703 & .4000D+00, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31704 & .1000D+01, .1000D+01, .1000D+01, .1000D+01, .1000D+01,
31705 & .3000D+00, .3000D+00, .4000D+00, .3300D+00, .3300D+00,
31706 & .3400D+00, .5000D+00, .5000D+00, .5000D+00, .5000D+00 /
31707C
31708 DATA (WT(I),I=541,602) / .0D+00, .3334D+00, .2083D+00, 2*.125D+00,
31709 & .2083D+00, .0D+00, .125D+00, .2083D+00, .3334D+00, .2083D+00,
31710 & .125D+00, 0.2D+00, 0.2D+00, 0.3D+00, 0.3D+00, 0.0D+00, 0.2D+00,
31711 & 0.2D+00, 0.3D+00, 0.3D+00, 0.0D+00, 0.2D+00, 0.2D+00, 0.3D+00,
31712 & 0.3D+00, 0.0D+00, 0.31D+00, 0.62D+00, 0.035D+00, 0.035D+00,
31713 & 18*1.D+00, 0.5D+00, 0.16D+00, 2*0.12D+00, 2*0.05D+00, 0.5D+00,
31714 & 0.16D+00, 2*0.12D+00, 2*0.05D+00, 1.D+00 /
31715* Particle numbers in decay channel
31716 DATA (NZK(K,1),K= 1,170) /
31717 & 1, 2, 3, 4, 5, 6, 7, 1, 2, 4,
31718 & 3, 23, 13, 13, 13, 10, 11, 10, 13, 13,
31719 & 13, 10, 4, 11, 14, 14, 14, 11, 3, 1,
31720 & 8, 1, 1, 2, 9, 2, 2, 13, 23, 8,
31721 & 1, 8, 17, 7, 7, 7, 23, 23, 13, 13,
31722 & 13, 13, 23, 14, 13, 13, 23, 15, 24, 24,
31723 & 15, 16, 25, 25, 16, 15, 24, 24, 15, 16,
31724 & 24, 25, 16, 15, 24, 36, 37, 15, 24, 15,
31725 & 15, 24, 15, 37, 36, 24, 15, 24, 24, 16,
31726 & 24, 38, 39, 16, 25, 16, 16, 25, 16, 39,
31727 & 38, 25, 16, 25, 25, 17, 22, 21, 17, 21,
31728 & 20, 17, 22, 8, 1, 21, 22, 20, 17, 48,
31729 & 50, 49, 8, 1, 17, 17, 17, 21, 20, 22,
31730 & 17, 22, 21, 20, 22, 19, 12, 19, 12, 1,
31731 & 1, 8, 1, 8, 8, 1, 53, 54, 1, 1,
31732 & 8, 53, 54, 55, 1, 8, 1, 8, 54, 55,
31733 & 56, 1, 8, 8, 55, 56, 8, 1, 53, 54 /
31734 DATA (NZK(K,1),K=171,340) /
31735 & 55, 1, 8, 8, 54, 55, 56, 1, 8, 1,
31736 & 8, 53, 54, 55, 1, 8, 1, 8, 54, 55,
31737 & 56, 1, 8, 1, 8, 1, 8, 17, 21, 22,
31738 & 1, 1, 8, 1, 8, 17, 22, 20, 8, 2,
31739 & 2, 9, 2, 9, 9, 2, 67, 68, 2, 2,
31740 & 9, 67, 68, 69, 2, 9, 2, 9, 68, 69,
31741 & 70, 2, 9, 9, 69, 70, 9, 2, 9, 67,
31742 & 68, 69, 2, 9, 2, 9, 68, 69, 70, 2,
31743 & 9, 1, 8, 13, 13, 14, 1, 8, 1, 1,
31744 & 8, 8, 8, 1, 8, 1, 1, 1, 1, 1,
31745 & 8, 2, 2, 9, 9, 2, 2, 9, 15, 15,
31746 & 24, 16, 16, 25, 25, 15, 15, 24, 24, 16,
31747 & 16, 25, 1, 21, 22, 21, 48, 49, 8, 17,
31748 & 20, 17, 22, 20, 20, 22, 20, 0, 0, 0,
31749 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31750 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31751 & 31, 31, 13, 7, 15, 12, 13, 31, 17, 17 /
31752 DATA (NZK(K,1),K=341,510) /
31753 & 2, 9, 18, 9, 18, 18, 17, 21, 22, 17,
31754 & 21, 20, 17, 20, 22, 97, 98, 97, 98, 97,
31755 & 98, 17, 18, 99, 100, 18, 101, 99, 18, 101,
31756 & 100, 102, 103, 102, 103, 102, 103, 18, 16, 16,
31757 & 24, 24, 16, 25, 15, 24, 15, 15, 25, 25,
31758 & 31, 15, 15, 31, 16, 16, 23, 13, 7, 116,
31759 & 116, 116, 117, 117, 119, 118, 118, 119, 119, 120,
31760 & 120, 121, 121, 130, 130, 130, 4, 10, 13, 10,
31761 & 4, 32, 13, 36, 11, 3, 34, 14, 38, 133,
31762 & 134, 135, 136, 21, 21, 1, 97, 104, 54, 53,
31763 & 17, 22, 21, 21, 1, 54, 53, 21, 97, 21,
31764 & 97, 22, 21, 97, 98, 105, 137, 137, 137, 138,
31765 & 139, 97, 97, 109, 109, 140, 138, 137, 139, 138,
31766 & 145, 99, 99, 2, 102, 110, 68, 67, 18, 100,
31767 & 99, 99, 2, 68, 67, 99, 102, 99, 102, 100,
31768 & 99, 102, 103, 111, 149, 149, 149, 150, 151, 113,
31769 & 113, 115, 115, 152, 150, 149, 151, 150, 157, 140 /
31770 DATA (NZK(K,1),K=511,540) /
31771 & 141, 142, 143, 144, 145, 146, 147, 148, 138, 145,
31772 & 140, 152, 153, 154, 155, 156, 157, 158, 159, 160,
31773 & 150, 157, 152, 34, 32, 33, 33, 32, 33, 34 /
31774 DATA (NZK(I,1),I=541,602) / 2, 67, 68, 69, 2, 9, 9, 68, 69,
31775 & 70, 2, 9, 33, 32, 13, 14, 189, 32, 34, 23, 23, 189, 33, 34, 14,
31776 & 14, 189, 23, 13, 15, 24, 36, 38, 37, 39, 194, 195, 196, 197,
31777 & 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 1, 8, 1, 1, 54,
31778 & 55, 8, 1, 8, 8, 54, 55, 210/
31779 DATA (NZK(K,2),K= 1,170) /
31780 & 0, 0, 0, 0, 0, 0, 0, 3, 4, 6,
31781 & 5, 23, 14, 11, 3, 5, 5, 5, 23, 13,
31782 & 23, 23, 23, 5, 23, 13, 23, 23, 23, 14,
31783 & 23, 3, 11, 13, 23, 4, 10, 14, 23, 14,
31784 & 23, 13, 7, 7, 4, 7, 7, 23, 14, 14,
31785 & 23, 14, 23, 23, 14, 14, 7, 23, 13, 23,
31786 & 14, 23, 14, 23, 13, 23, 13, 23, 14, 23,
31787 & 14, 23, 13, 23, 13, 23, 13, 33, 32, 35,
31788 & 31, 23, 14, 23, 14, 33, 34, 35, 31, 23,
31789 & 14, 23, 14, 33, 34, 35, 31, 23, 13, 23,
31790 & 13, 33, 32, 35, 31, 13, 13, 23, 23, 14,
31791 & 13, 14, 14, 25, 16, 14, 23, 13, 31, 14,
31792 & 13, 23, 25, 16, 23, 35, 33, 34, 32, 33,
31793 & 31, 31, 14, 13, 23, 0, 0, 0, 0, 13,
31794 & 23, 13, 14, 23, 14, 13, 23, 13, 78, 23,
31795 & 13, 14, 23, 13, 79, 78, 14, 23, 14, 23,
31796 & 13, 80, 79, 14, 14, 23, 80, 31, 14, 23 /
31797 DATA (NZK(K,2),K=171,340) /
31798 & 13, 79, 78, 31, 14, 23, 13, 80, 79, 23,
31799 & 13, 14, 23, 13, 79, 78, 14, 23, 14, 23,
31800 & 13, 80, 79, 23, 13, 33, 32, 15, 24, 15,
31801 & 31, 14, 23, 34, 33, 24, 24, 15, 31, 14,
31802 & 23, 14, 13, 23, 13, 14, 23, 14, 80, 23,
31803 & 14, 13, 23, 14, 79, 80, 13, 23, 13, 23,
31804 & 14, 78, 79, 13, 13, 23, 78, 23, 14, 13,
31805 & 23, 14, 79, 80, 13, 23, 13, 23, 14, 78,
31806 & 79, 62, 61, 23, 14, 23, 13, 13, 13, 23,
31807 & 13, 13, 23, 14, 14, 14, 1, 8, 8, 1,
31808 & 8, 1, 8, 8, 1, 8, 1, 8, 1, 8,
31809 & 1, 1, 8, 1, 8, 8, 1, 1, 8, 8,
31810 & 1, 8, 25, 23, 13, 31, 23, 13, 16, 14,
31811 & 35, 34, 34, 33, 31, 14, 23, 0, 0, 0,
31812 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31813 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31814 & 13, 23, 14, 7, 16, 19, 14, 7, 23, 14 /
31815 DATA (NZK(K,2),K=341,510) /
31816 & 23, 14, 7, 13, 23, 13, 13, 23, 13, 23,
31817 & 14, 13, 14, 23, 14, 23, 13, 14, 23, 14,
31818 & 23, 16, 14, 23, 14, 23, 14, 13, 13, 23,
31819 & 13, 23, 14, 13, 23, 13, 23, 15, 13, 13,
31820 & 13, 23, 13, 13, 14, 14, 14, 14, 14, 23,
31821 & 13, 16, 25, 14, 15, 24, 23, 14, 7, 23,
31822 & 7, 13, 23, 7, 14, 23, 7, 23, 7, 7,
31823 & 7, 7, 7, 13, 23, 31, 3, 11, 14, 135,
31824 & 5, 134, 134, 134, 136, 6, 133, 133, 133, 0,
31825 & 0, 0, 0, 31, 95, 25, 15, 31, 95, 16,
31826 & 32, 32, 33, 35, 39, 39, 38, 25, 13, 39,
31827 & 32, 39, 38, 35, 32, 39, 13, 23, 14, 7,
31828 & 7, 25, 37, 32, 13, 25, 13, 25, 13, 25,
31829 & 13, 31, 95, 24, 16, 31, 24, 15, 34, 34,
31830 & 33, 35, 37, 37, 36, 24, 14, 37, 34, 37,
31831 & 36, 35, 34, 37, 14, 23, 13, 7, 7, 24,
31832 & 39, 34, 14, 24, 14, 24, 14, 24, 14, 7 /
31833 DATA (NZK(K,2),K=511,540) /
31834 & 7, 7, 7, 7, 7, 7, 7, 7, 25, 13,
31835 & 25, 7, 7, 7, 7, 7, 7, 7, 7, 7,
31836 & 24, 14, 24, 13, 14, 23, 13, 23, 14, 23 /
31837 DATA (NZK(I,2),I=541,602) / 31, 13, 23, 14, 79, 80, 31, 13, 23,
31838 & 14, 78, 79, 13, 23, 23, 13, 13, 14, 13, 23, 13, 23, 14, 23, 23,
31839 & 14, 14, 23, 14, 16, 25,
31840 & 4*23, 14*0, 23, 13, 23, 13, 23, 13, 23, 14,
31841 & 23, 13, 14, 23, 0 /
31842 DATA (NZK(K,3),K= 1,170) /
31843 & 0, 0, 0, 0, 0, 0, 0, 5, 6, 5,
31844 & 6, 23, 23, 5, 5, 0, 0, 0, 0, 14,
31845 & 23, 5, 5, 0, 0, 14, 23, 5, 5, 0,
31846 & 0, 5, 5, 0, 0, 5, 5, 0, 0, 0,
31847 & 0, 0, 0, 0, 3, 0, 7, 23, 23, 7,
31848 & 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
31849 & 110*0 /
31850 DATA (NZK(K,3),K=171,340) /
31851 & 80*0,
31852 & 0, 0, 0, 0, 0, 0, 23, 13, 14, 23,
31853 & 23, 14, 23, 23, 23, 14, 23, 13, 23, 14,
31854 & 13, 23, 13, 23, 14, 23, 14, 14, 23, 13,
31855 & 13, 23, 13, 14, 23, 23, 14, 23, 13, 23,
31856 & 14, 14, 0, 0, 0, 0, 0, 0, 0, 0,
31857 & 30*0,
31858 & 14, 23, 7, 0, 0, 0, 23, 0, 0, 0 /
31859 DATA (NZK(K,3),K=341,510) /
31860 & 30*0,
31861 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
31862 & 14, 0, 13, 0, 14, 0, 0, 23, 13, 0,
31863 & 0, 15, 0, 0, 16, 0, 0, 0, 0, 0,
31864 & 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31865 & 0, 0, 0, 14, 23, 0, 0, 0, 23, 134,
31866 & 134, 0, 0, 0, 133, 133, 0, 0, 0, 0,
31867 & 80*0 /
31868 DATA (NZK(K,3),K=511,540) /
31869 & 0, 0, 0, 0, 0, 0, 0, 0, 13, 13,
31870 & 25, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31871 & 14, 14, 24, 0, 0, 0, 0, 0, 0, 0 /
31872 DATA (NZK(I,3),I=541,602) / 12*0, 2*0, 23, 13, 0, 2*0, 23, 14, 0,
31873 & 2*0, 23, 13, 0, 4*0, 18*0, 2*0, 23, 14, 2*0, 2*0, 23, 14, 2*0, 0/
31874
31875 END
31876
31877*$ CREATE DT_BDEVAP.FOR
31878*COPY DT_BDEVAP
31879*
31880*=== bdevap ===========================================================*
31881*
31882 BLOCK DATA DT_BDEVAP
31883
31884C INCLUDE '(DBLPRC)'
31885* DBLPRC.ADD
31886 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
31887 SAVE
31888* (original name: GLOBAL)
31889 PARAMETER ( KALGNM = 2 )
31890 PARAMETER ( ANGLGB = 5.0D-16 )
31891 PARAMETER ( ANGLSQ = 2.5D-31 )
31892 PARAMETER ( AXCSSV = 0.2D+16 )
31893 PARAMETER ( ANDRFL = 1.0D-38 )
31894 PARAMETER ( AVRFLW = 1.0D+38 )
31895 PARAMETER ( AINFNT = 1.0D+30 )
31896 PARAMETER ( AZRZRZ = 1.0D-30 )
31897 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
31898 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
31899 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
31900 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
31901 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
31902 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
31903 PARAMETER ( CSNNRM = 2.0D-15 )
31904 PARAMETER ( DMXTRN = 1.0D+08 )
31905 PARAMETER ( ZERZER = 0.D+00 )
31906 PARAMETER ( ONEONE = 1.D+00 )
31907 PARAMETER ( TWOTWO = 2.D+00 )
31908 PARAMETER ( THRTHR = 3.D+00 )
31909 PARAMETER ( FOUFOU = 4.D+00 )
31910 PARAMETER ( FIVFIV = 5.D+00 )
31911 PARAMETER ( SIXSIX = 6.D+00 )
31912 PARAMETER ( SEVSEV = 7.D+00 )
31913 PARAMETER ( EIGEIG = 8.D+00 )
31914 PARAMETER ( ANINEN = 9.D+00 )
31915 PARAMETER ( TENTEN = 10.D+00 )
31916 PARAMETER ( HLFHLF = 0.5D+00 )
31917 PARAMETER ( ONETHI = ONEONE / THRTHR )
31918 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
31919 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
31920 PARAMETER ( THRTWO = THRTHR / TWOTWO )
31921 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
31922 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
31923 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
31924 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
31925 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
31926 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
31927 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
31928 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
31929 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
31930 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
31931 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
31932 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
31933 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
31934 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
31935 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
31936 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
31937 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
31938 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
31939 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
31940 PARAMETER ( CLIGHT = 2.99792458 D+10 )
31941 PARAMETER ( AVOGAD = 6.0221367 D+23 )
31942 PARAMETER ( BOLTZM = 1.380658 D-23 )
31943 PARAMETER ( AMELGR = 9.1093897 D-28 )
31944 PARAMETER ( PLCKBR = 1.05457266 D-27 )
31945 PARAMETER ( ELCCGS = 4.8032068 D-10 )
31946 PARAMETER ( ELCMKS = 1.60217733 D-19 )
31947 PARAMETER ( AMUGRM = 1.6605402 D-24 )
31948 PARAMETER ( AMMUMU = 0.113428913 D+00 )
31949 PARAMETER ( AMPRMU = 1.007276470 D+00 )
31950 PARAMETER ( AMNEMU = 1.008664904 D+00 )
31951 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
31952 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
31953 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
31954 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
31955 PARAMETER ( PLABRC = 0.197327053 D+00 )
31956 PARAMETER ( AMELCT = 0.51099906 D-03 )
31957 PARAMETER ( AMUGEV = 0.93149432 D+00 )
31958 PARAMETER ( AMMUON = 0.105658389 D+00 )
31959 PARAMETER ( AMPRTN = 0.93827231 D+00 )
31960 PARAMETER ( AMNTRN = 0.93956563 D+00 )
31961 PARAMETER ( AMDEUT = 1.87561339 D+00 )
31962 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
31963 & * 1.D-09 )
31964 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
31965 PARAMETER ( BLTZMN = 8.617385 D-14 )
31966 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
31967 PARAMETER ( GFOHB3 = 1.16639 D-05 )
31968 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
31969 PARAMETER ( SIN2TW = 0.2319 D+00 )
31970 PARAMETER ( GEVMEV = 1.0 D+03 )
31971 PARAMETER ( EMVGEV = 1.0 D-03 )
31972 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
31973 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
31974 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
31975 LOGICAL LGBIAS, LGBANA
31976 COMMON /FKGLOB/ LGBIAS, LGBANA
31977C INCLUDE '(DIMPAR)'
31978* DIMPAR.ADD
31979 PARAMETER ( MXXRGN = 5000 )
31980 PARAMETER ( MXXMDF = 82 )
31981 PARAMETER ( MXXMDE = 54 )
31982 PARAMETER ( MFSTCK = 1000 )
31983 PARAMETER ( MESTCK = 100 )
31984 PARAMETER ( NELEMX = 80 )
31985 PARAMETER ( MPDPDX = 8 )
31986 PARAMETER ( ICOMAX = 180 )
31987 PARAMETER ( NSTBIS = 304 )
31988 PARAMETER ( IDMAXP = 220 )
31989 PARAMETER ( IDMXDC = 640 )
31990 PARAMETER ( MKBMX1 = 1 )
31991 PARAMETER ( MKBMX2 = 1 )
31992C INCLUDE '(IOUNIT)'
31993* IOUNIT.ADD
31994 PARAMETER ( LUNIN = 5 )
31995 PARAMETER ( LUNOUT = 6 )
31996**sr 19.5. set error output-unit from 15 to 6
31997 PARAMETER ( LUNERR = 6 )
31998 PARAMETER ( LUNBER = 14 )
31999 PARAMETER ( LUNECH = 8 )
32000 PARAMETER ( LUNFLU = 13 )
32001 PARAMETER ( LUNGEO = 16 )
32002 PARAMETER ( LUNPMF = 12 )
32003 PARAMETER ( LUNRAN = 2 )
32004 PARAMETER ( LUNXSC = 9 )
32005 PARAMETER ( LUNDET = 17 )
32006 PARAMETER ( LUNRAY = 10 )
32007 PARAMETER ( LUNRDB = 1 )
32008 PARAMETER ( LUNPGO = 7 )
32009 PARAMETER ( LUNPGS = 4 )
32010 PARAMETER ( LUNSCR = 3 )
32011*
32012*----------------------------------------------------------------------*
32013* *
32014* Block Data for the EVAPoration routines: *
32015* *
32016* Created on 20 may 1990 by Alfredo Ferrari & Paola Sala *
32017* Infn - Milan *
32018* *
32019* Modified from the original version of J.M.Zazula *
32020* and, for cookcm, from a LAHET block data kindly provided by *
32021* R.E.Prael-LANL *
32022* *
32023* Last change on 20-feb-95 by Alfredo Ferrari *
32024* *
32025* *
32026*----------------------------------------------------------------------*
32027*
32028* (original name: COOKCM)
32029 PARAMETER ( ASMTOG = SIXSIX / PIPIPI**2 )
32030 LOGICAL LDEFOZ, LDEFON
32031 PARAMETER ( INCOOK = 150, IZCOOK = 98 )
32032 COMMON /FKCOOK/ ALPIGN, BETIGN, GAMIGN, POWIGN,
32033 & SZCOOK (IZCOOK), SNCOOK (INCOOK), PZCOOK (IZCOOK),
32034 & PNCOOK (INCOOK), LDEFOZ (IZCOOK), LDEFON (INCOOK)
32035* (original name: EVA0)
32036 COMMON /FKEVA0/ Y0, B0, P0 (1001), P1 (1001), P2 (1001),
32037 * FLA (6), FLZ (6), RHO (6), OMEGA (6), EXMASS (6),
32038 * CAM2 (130), CAM3 (200), CAM4 (130), CAM5 (200),
32039 * T (4,7), RMASS (297), ALPH (297), BET (297),
32040 * APRIME (250), IA (6), IZ (6)
32041* (original name: HETTP)
32042 COMMON /FKHETP/ NHSTP,NBERTP,IOSUB,INSRS
32043* (original name: HETC7)
32044 COMMON /FKHET7/ COSKS,SINKS, COSTH,SINTH, COSPHI,SINPHI
32045* (original name: INPFLG)
32046 COMMON /FKINPF/ IANG,IFISS,IB0,IGEOM,ISTRAG,KEYDK
32047*
32048 DATA B0 / 8.D+00 /, Y0 / 1.5D+00 /
32049 DATA IANG / 1 /, IFISS / 1 /, IB0 / 2 /, IGEOM / 0 /
32050 DATA ISTRAG /0/, KEYDK /0/
32051 DATA NBERTP /LUNBER/
32052 DATA COSTH /ONEONE/, SINTH /ZERZER/, COSPHI /ONEONE/,
32053 & SINPHI/ZERZER/
32054* /cookcm/
32055 DATA ( PZCOOK(I),I = 1, IZCOOK ) /
32056 & 0.000D+00, 5.440D+00, 0.000D+00, 2.760D+00, 0.000D+00, 3.340D+00,
32057 & 0.000D+00, 2.700D+00, 0.000D+00, 2.500D+00, 0.000D+00, 2.460D+00,
32058 & 0.000D+00, 2.090D+00, 0.000D+00, 1.620D+00, 0.000D+00, 1.620D+00,
32059 & 0.000D+00, 1.830D+00, 0.000D+00, 1.730D+00, 0.000D+00, 1.350D+00,
32060 & 0.000D+00, 1.540D+00, 0.000D+00, 1.280D+00, 2.600D-01, 8.800D-01,
32061 & 1.900D-01, 1.350D+00,-5.000D-02, 1.520D+00,-9.000D-02, 1.170D+00,
32062 & 4.000D-02, 1.240D+00, 2.900D-01, 1.090D+00, 2.600D-01, 1.170D+00,
32063 & 2.300D-01, 1.150D+00,-8.000D-02, 1.350D+00, 3.400D-01, 1.050D+00,
32064 & 2.800D-01, 1.270D+00, 0.000D+00, 1.050D+00, 0.000D+00, 1.000D+00,
32065 & 9.000D-02, 1.200D+00, 2.000D-01, 1.400D+00, 9.300D-01, 1.000D+00,
32066 &-2.000D-01, 1.190D+00, 9.000D-02, 9.700D-01, 0.000D+00, 9.200D-01,
32067 & 1.100D-01, 6.800D-01, 5.000D-02, 6.800D-01,-2.200D-01, 7.900D-01,
32068 & 9.000D-02, 6.900D-01, 1.000D-02, 7.200D-01, 0.000D+00, 4.000D-01,
32069 & 1.600D-01, 7.300D-01, 0.000D+00, 4.600D-01, 1.700D-01, 8.900D-01,
32070 & 0.000D+00, 7.900D-01, 0.000D+00, 8.900D-01, 0.000D+00, 8.100D-01,
32071 &-6.000D-02, 6.900D-01,-2.000D-01, 7.100D-01,-1.200D-01, 7.200D-01,
32072 & 0.000D+00, 7.700D-01/
32073 DATA ( PNCOOK(I),I = 1, 90 ) /
32074 & 0.000D+00, 5.980D+00, 0.000D+00, 2.770D+00, 0.000D+00, 3.160D+00,
32075 & 0.000D+00, 3.010D+00, 0.000D+00, 2.500D+00, 0.000D+00, 2.670D+00,
32076 & 0.000D+00, 1.800D+00, 0.000D+00, 1.670D+00, 0.000D+00, 1.860D+00,
32077 & 0.000D+00, 2.040D+00, 0.000D+00, 1.640D+00, 0.000D+00, 1.440D+00,
32078 & 0.000D+00, 1.540D+00, 0.000D+00, 1.300D+00, 0.000D+00, 1.270D+00,
32079 & 0.000D+00, 1.290D+00, 8.000D-02, 1.410D+00,-8.000D-02, 1.500D+00,
32080 &-5.000D-02, 2.240D+00,-4.700D-01, 1.430D+00,-1.500D-01, 1.440D+00,
32081 & 6.000D-02, 1.560D+00, 2.500D-01, 1.570D+00,-1.600D-01, 1.460D+00,
32082 & 0.000D+00, 9.300D-01, 1.000D-02, 6.200D-01,-5.000D-01, 1.420D+00,
32083 & 1.300D-01, 1.520D+00,-6.500D-01, 8.000D-01,-8.000D-02, 1.290D+00,
32084 &-4.700D-01, 1.250D+00,-4.400D-01, 9.700D-01, 8.000D-02, 1.650D+00,
32085 &-1.100D-01, 1.260D+00,-4.600D-01, 1.060D+00, 2.200D-01, 1.550D+00,
32086 &-7.000D-02, 1.370D+00, 1.000D-01, 1.200D+00,-2.700D-01, 9.200D-01,
32087 &-3.500D-01, 1.190D+00, 0.000D+00, 1.050D+00,-2.500D-01, 1.610D+00,
32088 &-2.100D-01, 9.000D-01,-2.100D-01, 7.400D-01,-3.800D-01, 7.200D-01/
32089 DATA ( PNCOOK(I),I = 91, INCOOK ) /
32090 &-3.400D-01, 9.200D-01,-2.600D-01, 9.400D-01, 1.000D-02, 6.500D-01,
32091 &-3.600D-01, 8.300D-01, 1.100D-01, 6.700D-01, 5.000D-02, 1.000D+00,
32092 & 5.100D-01, 1.040D+00, 3.300D-01, 6.800D-01,-2.700D-01, 8.100D-01,
32093 & 9.000D-02, 7.500D-01, 1.700D-01, 8.600D-01, 1.400D-01, 1.100D+00,
32094 &-2.200D-01, 8.400D-01,-4.700D-01, 4.800D-01, 2.000D-02, 8.800D-01,
32095 & 2.400D-01, 5.200D-01, 2.700D-01, 4.100D-01,-5.000D-02, 3.800D-01,
32096 & 1.500D-01, 6.700D-01, 0.000D+00, 6.100D-01, 0.000D+00, 7.800D-01,
32097 & 0.000D+00, 6.700D-01, 0.000D+00, 6.700D-01, 0.000D+00, 7.900D-01,
32098 & 0.000D+00, 6.000D-01, 4.000D-02, 6.400D-01,-6.000D-02, 4.500D-01,
32099 & 5.000D-02, 2.600D-01,-2.200D-01, 3.900D-01, 0.000D+00, 3.900D-01/
32100 DATA ( SZCOOK(I),I = 1, 98) /
32101 & 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00,
32102 & 0.000D+00, 0.000D+00,-1.100D-01,-8.100D-01,-2.910D+00,-4.170D+00,
32103 &-5.720D+00,-7.800D+00,-8.970D+00,-9.700D+00,-1.010D+01,-1.070D+01,
32104 &-1.138D+01,-1.207D+01,-1.255D+01,-1.324D+01,-1.393D+01,-1.471D+01,
32105 &-1.553D+01,-1.637D+01,-1.736D+01,-1.860D+01,-1.870D+01,-1.801D+01,
32106 &-1.787D+01,-1.708D+01,-1.660D+01,-1.675D+01,-1.650D+01,-1.635D+01,
32107 &-1.622D+01,-1.641D+01,-1.689D+01,-1.643D+01,-1.668D+01,-1.673D+01,
32108 &-1.745D+01,-1.729D+01,-1.744D+01,-1.782D+01,-1.862D+01,-1.827D+01,
32109 &-1.939D+01,-1.991D+01,-1.914D+01,-1.826D+01,-1.740D+01,-1.642D+01,
32110 &-1.577D+01,-1.437D+01,-1.391D+01,-1.310D+01,-1.311D+01,-1.143D+01,
32111 &-1.089D+01,-1.075D+01,-1.062D+01,-1.041D+01,-1.021D+01,-9.850D+00,
32112 &-9.470D+00,-9.030D+00,-8.610D+00,-8.130D+00,-7.460D+00,-7.480D+00,
32113 &-7.200D+00,-7.130D+00,-7.060D+00,-6.780D+00,-6.640D+00,-6.640D+00,
32114 &-7.680D+00,-7.890D+00,-8.410D+00,-8.490D+00,-7.880D+00,-6.300D+00,
32115 &-5.470D+00,-4.780D+00,-4.370D+00,-4.170D+00,-4.130D+00,-4.320D+00,
32116 &-4.550D+00,-5.040D+00,-5.280D+00,-6.060D+00,-6.280D+00,-6.870D+00,
32117 &-7.200D+00,-7.740D+00/
32118 DATA ( SNCOOK(I),I = 1, 90 ) /
32119 & 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00, 0.000D+00,
32120 & 0.000D+00, 0.000D+00, 1.030D+01, 5.660D+00, 6.800D+00, 7.530D+00,
32121 & 7.550D+00, 7.210D+00, 7.440D+00, 8.070D+00, 8.940D+00, 9.810D+00,
32122 & 1.060D+01, 1.139D+01, 1.254D+01, 1.368D+01, 1.434D+01, 1.419D+01,
32123 & 1.383D+01, 1.350D+01, 1.300D+01, 1.213D+01, 1.260D+01, 1.326D+01,
32124 & 1.413D+01, 1.492D+01, 1.552D+01, 1.638D+01, 1.716D+01, 1.755D+01,
32125 & 1.803D+01, 1.759D+01, 1.903D+01, 1.871D+01, 1.880D+01, 1.899D+01,
32126 & 1.846D+01, 1.825D+01, 1.776D+01, 1.738D+01, 1.672D+01, 1.562D+01,
32127 & 1.438D+01, 1.288D+01, 1.323D+01, 1.381D+01, 1.490D+01, 1.486D+01,
32128 & 1.576D+01, 1.620D+01, 1.762D+01, 1.773D+01, 1.816D+01, 1.867D+01,
32129 & 1.969D+01, 1.951D+01, 2.017D+01, 1.948D+01, 1.998D+01, 1.983D+01,
32130 & 2.020D+01, 1.972D+01, 1.987D+01, 1.924D+01, 1.844D+01, 1.761D+01,
32131 & 1.710D+01, 1.616D+01, 1.590D+01, 1.533D+01, 1.476D+01, 1.354D+01,
32132 & 1.263D+01, 1.065D+01, 1.010D+01, 8.890D+00, 1.025D+01, 9.790D+00,
32133 & 1.139D+01, 1.172D+01, 1.243D+01, 1.296D+01, 1.343D+01, 1.337D+01/
32134 DATA ( SNCOOK(I),I = 91, INCOOK ) /
32135 & 1.296D+01, 1.211D+01, 1.192D+01, 1.100D+01, 1.080D+01, 1.042D+01,
32136 & 1.039D+01, 9.690D+00, 9.270D+00, 8.930D+00, 8.570D+00, 8.020D+00,
32137 & 7.590D+00, 7.330D+00, 7.230D+00, 7.050D+00, 7.420D+00, 6.750D+00,
32138 & 6.600D+00, 6.380D+00, 6.360D+00, 6.490D+00, 6.250D+00, 5.850D+00,
32139 & 5.480D+00, 4.530D+00, 4.300D+00, 3.390D+00, 2.350D+00, 1.660D+00,
32140 & 8.100D-01, 4.600D-01,-9.600D-01,-1.690D+00,-2.530D+00,-3.160D+00,
32141 &-1.870D+00,-4.100D-01, 7.100D-01, 1.660D+00, 2.620D+00, 3.220D+00,
32142 & 3.760D+00, 4.100D+00, 4.460D+00, 4.830D+00, 5.090D+00, 5.180D+00,
32143 & 5.170D+00, 5.100D+00, 5.010D+00, 4.970D+00, 5.090D+00, 5.030D+00,
32144 & 4.930D+00, 5.280D+00, 5.490D+00, 5.500D+00, 5.370D+00, 5.300D+00/
32145 DATA LDEFOZ / 53*.FALSE.,25*.TRUE.,7*.FALSE.,13*.TRUE. /
32146 DATA LDEFON / 85*.FALSE.,37*.TRUE.,7*.FALSE.,21*.TRUE. /
32147*=== End of Block Data Bdevap =========================================*
32148 END
32149
32150*$ CREATE DT_BDNOPT.FOR
32151*COPY DT_BDNOPT
32152*
32153*=== bdnopt ===========================================================*
32154*== *
32155 BLOCK DATA DT_BDNOPT
32156
32157C INCLUDE '(DBLPRC)'
32158* DBLPRC.ADD
32159 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
32160 SAVE
32161* (original name: GLOBAL)
32162 PARAMETER ( KALGNM = 2 )
32163 PARAMETER ( ANGLGB = 5.0D-16 )
32164 PARAMETER ( ANGLSQ = 2.5D-31 )
32165 PARAMETER ( AXCSSV = 0.2D+16 )
32166 PARAMETER ( ANDRFL = 1.0D-38 )
32167 PARAMETER ( AVRFLW = 1.0D+38 )
32168 PARAMETER ( AINFNT = 1.0D+30 )
32169 PARAMETER ( AZRZRZ = 1.0D-30 )
32170 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
32171 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
32172 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
32173 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
32174 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
32175 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
32176 PARAMETER ( CSNNRM = 2.0D-15 )
32177 PARAMETER ( DMXTRN = 1.0D+08 )
32178 PARAMETER ( ZERZER = 0.D+00 )
32179 PARAMETER ( ONEONE = 1.D+00 )
32180 PARAMETER ( TWOTWO = 2.D+00 )
32181 PARAMETER ( THRTHR = 3.D+00 )
32182 PARAMETER ( FOUFOU = 4.D+00 )
32183 PARAMETER ( FIVFIV = 5.D+00 )
32184 PARAMETER ( SIXSIX = 6.D+00 )
32185 PARAMETER ( SEVSEV = 7.D+00 )
32186 PARAMETER ( EIGEIG = 8.D+00 )
32187 PARAMETER ( ANINEN = 9.D+00 )
32188 PARAMETER ( TENTEN = 10.D+00 )
32189 PARAMETER ( HLFHLF = 0.5D+00 )
32190 PARAMETER ( ONETHI = ONEONE / THRTHR )
32191 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
32192 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
32193 PARAMETER ( THRTWO = THRTHR / TWOTWO )
32194 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
32195 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
32196 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
32197 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
32198 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
32199 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
32200 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
32201 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
32202 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
32203 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
32204 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
32205 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
32206 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
32207 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
32208 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
32209 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
32210 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
32211 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
32212 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
32213 PARAMETER ( CLIGHT = 2.99792458 D+10 )
32214 PARAMETER ( AVOGAD = 6.0221367 D+23 )
32215 PARAMETER ( BOLTZM = 1.380658 D-23 )
32216 PARAMETER ( AMELGR = 9.1093897 D-28 )
32217 PARAMETER ( PLCKBR = 1.05457266 D-27 )
32218 PARAMETER ( ELCCGS = 4.8032068 D-10 )
32219 PARAMETER ( ELCMKS = 1.60217733 D-19 )
32220 PARAMETER ( AMUGRM = 1.6605402 D-24 )
32221 PARAMETER ( AMMUMU = 0.113428913 D+00 )
32222 PARAMETER ( AMPRMU = 1.007276470 D+00 )
32223 PARAMETER ( AMNEMU = 1.008664904 D+00 )
32224 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
32225 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
32226 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
32227 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
32228 PARAMETER ( PLABRC = 0.197327053 D+00 )
32229 PARAMETER ( AMELCT = 0.51099906 D-03 )
32230 PARAMETER ( AMUGEV = 0.93149432 D+00 )
32231 PARAMETER ( AMMUON = 0.105658389 D+00 )
32232 PARAMETER ( AMPRTN = 0.93827231 D+00 )
32233 PARAMETER ( AMNTRN = 0.93956563 D+00 )
32234 PARAMETER ( AMDEUT = 1.87561339 D+00 )
32235 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
32236 & * 1.D-09 )
32237 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
32238 PARAMETER ( BLTZMN = 8.617385 D-14 )
32239 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
32240 PARAMETER ( GFOHB3 = 1.16639 D-05 )
32241 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
32242 PARAMETER ( SIN2TW = 0.2319 D+00 )
32243 PARAMETER ( GEVMEV = 1.0 D+03 )
32244 PARAMETER ( EMVGEV = 1.0 D-03 )
32245 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
32246 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
32247 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
32248 LOGICAL LGBIAS, LGBANA
32249 COMMON /FKGLOB/ LGBIAS, LGBANA
32250C INCLUDE '(DIMPAR)'
32251* DIMPAR.ADD
32252 PARAMETER ( MXXRGN = 5000 )
32253 PARAMETER ( MXXMDF = 82 )
32254 PARAMETER ( MXXMDE = 54 )
32255 PARAMETER ( MFSTCK = 1000 )
32256 PARAMETER ( MESTCK = 100 )
32257 PARAMETER ( NELEMX = 80 )
32258 PARAMETER ( MPDPDX = 8 )
32259 PARAMETER ( ICOMAX = 180 )
32260 PARAMETER ( NSTBIS = 304 )
32261 PARAMETER ( IDMAXP = 220 )
32262 PARAMETER ( IDMXDC = 640 )
32263 PARAMETER ( MKBMX1 = 1 )
32264 PARAMETER ( MKBMX2 = 1 )
32265C INCLUDE '(IOUNIT)'
32266* IOUNIT.ADD
32267 PARAMETER ( LUNIN = 5 )
32268 PARAMETER ( LUNOUT = 6 )
32269**sr 19.5. set error output-unit from 15 to 6
32270 PARAMETER ( LUNERR = 6 )
32271 PARAMETER ( LUNBER = 14 )
32272 PARAMETER ( LUNECH = 8 )
32273 PARAMETER ( LUNFLU = 13 )
32274 PARAMETER ( LUNGEO = 16 )
32275 PARAMETER ( LUNPMF = 12 )
32276 PARAMETER ( LUNRAN = 2 )
32277 PARAMETER ( LUNXSC = 9 )
32278 PARAMETER ( LUNDET = 17 )
32279 PARAMETER ( LUNRAY = 10 )
32280 PARAMETER ( LUNRDB = 1 )
32281 PARAMETER ( LUNPGO = 7 )
32282 PARAMETER ( LUNPGS = 4 )
32283 PARAMETER ( LUNSCR = 3 )
32284*
32285*----------------------------------------------------------------------*
32286* *
32287* Created on 20 september 1989 by Alfredo Ferrari - Infn Milan *
32288* *
32289* Last change on 20-apr-95 by Alfredo Ferrari *
32290* *
32291*----------------------------------------------------------------------*
32292*
32293C INCLUDE '(BLNKCM)'
32294* BLNKCM.ADD
32295**sr 17.5. commented since not used here
32296C PARAMETER ( NBLNMX = 1100000 )
32297C DIMENSION GMSTOR ( NBLNMX ), BRMBRR ( NBLNMX ), BRMEXP ( NBLNMX ),
32298C & BRMSIG ( NBLNMX ), SIGGTT ( KALGNM*NBLNMX ),
32299C & COMSCO ( NBLNMX ), LBSTOR ( KALGNM*NBLNMX )
32300C REAL SIGGTT
32301C LOGICAL LBSTOR
32302C COMMON NSTOR ( KALGNM*NBLNMX )
32303**
32304**sr 18.5. commented since not used for evap.
32305C COMMON / ADDRCM / MBLNMX, KBLNKL, KGMBGN, KGMLST, KCMBGN, KCMLST,
32306C & KISBGN, KISLST, KDTBGN, KDTLST, KUBBGN, KUBLST,
32307C & KUXBGN, KUXLST, KTCBGN, KTCLST, KRNBGN, KRNLST,
32308C & KYLBGN, KYLLST, KXSBGN, KXSLST, KIHBGN, KIHLST,
32309C & KINBGN, KINLST, KIEBGN, KIELST, KETBGN, KETLST,
32310C & KRRBGN, KRRLST, KGLBGN, KGLLST, KNABGN, KNALST,
32311C & KGDBGN, KGDLST, KDWBGN, KDWLST, KGCBGN, KGCLST,
32312C & KWLBGN, KWLLST, KWHBGN, KWHLST, KWMBGN, KWMLST,
32313C & KWSBGN, KWSLST, KNDBGN, KNDLST, KDPBGN, KDPLST,
32314C & KRGBGN, KRGLST, KSGBGN, KSGLST, KBRBGN, KBRLST,
32315C & KTMBGN
32316**
32317
32318C EQUIVALENCE ( NSTOR (1), GMSTOR (1) )
32319C EQUIVALENCE ( NSTOR (1), BRMBRR (1) )
32320C EQUIVALENCE ( NSTOR (1), BRMEXP (1) )
32321C EQUIVALENCE ( NSTOR (1), BRMSIG (1) )
32322C EQUIVALENCE ( NSTOR (1), COMSCO (1) )
32323C EQUIVALENCE ( NSTOR (1), SIGGTT (1) )
32324C EQUIVALENCE ( NSTOR (1), LBSTOR (1) )
32325C INCLUDE '(BLNTMP)'
32326* BLNTMP.ADD
32327**sr 18.5. commented since not used for evap.
32328C COMMON / BLNTMP / KIHBTM, KINBTM, KIEBTM, KRRBTM, KGLBTM, KNABTM,
32329C & KGCBTM, KGDWTM, KBDWTM, KWLOTM, KWHITM, KWMUTM,
32330C & KWSHTM, KEXTTM, KSTXTM, KSTNTM, KECTTM, KPCTTM,
32331C & KLPBTM, NXXRGN
32332**
32333C INCLUDE '(CMMDNR)'
32334* CMMDNR.ADD
32335**sr 18.5. commented since not used for evap.
32336C LOGICAL LFLDNR
32337C COMMON / CMMDNR / DDNEAR, LFLDNR
32338**
32339C INCLUDE '(CTITLE)'
32340* CTITLE.ADD
32341**sr 18.5. commented since not used for evap.
32342C CHARACTER RUNTIT*80, RUNTIM*32, RUNKEY*10
32343C COMMON / CTITLE / RUNTIT, RUNTIM, RUNKEY
32344C COMMON / CEXPCK / ITEXPI, ITEXMX
32345**
32346C INCLUDE '(DETECT)'
32347* DETECT.ADD
32348**sr 18.5. commented since not used for evap.
32349C PARAMETER (NRGNMX = 10)
32350C PARAMETER (NDTCMX = 10)
32351C PARAMETER (NSCRMX = 10)
32352C PARAMETER (NDTBIN = 1024)
32353C CHARACTER*10 TITDET,TITSCO
32354C LOGICAL LDTCTR
32355C COMMON /DETCT/ EDTMIN(NDTCMX), EDTBIN(NDTCMX), EDTCUT(NDTCMX),
32356C & KDTREG(NRGNMX,NDTCMX), KDTDET(NDTCMX,NSCRMX),
32357C & NDTSCO, NDTDET, LDTCTR, IDTREG(MXXRGN),
32358C & KDTSCD(NSCRMX)
32359C COMMON /DETCH/ TITDET(NDTCMX), TITSCO(NSCRMX)
32360**
32361C INCLUDE '(DETLOC)'
32362* DETLOC.ADD
32363**sr 18.5. commented since not used for evap.
32364C PARAMETER (NDTCM2 = 10)
32365C COMMON /DETLOC/ ACCUMP (NDTCM2), ACCUMN (NDTCM2),
32366C & ICOINC(NDTCM2), NCLAS
32367**
32368C INCLUDE '(EMGTRN)'
32369* EMGTRN.ADD
32370**sr 18.5. commented since not used for evap.
32371C LOGICAL LMCSMG
32372C COMMON / EMGTRN / UMCSMG, VMCSMG, WMCSMG, LMCSMG
32373**
32374C INCLUDE '(EMSHO)'
32375* EMSHO.ADD
32376**sr 18.5. commented since not used for evap.
32377C LOGICAL EMFLO, EMFHLO, EMFELO, LIMPRE, LEXPTE
32378C COMMON /EMSHO/ EMFETH, EMFPTH, EMFHET, EMFHPT, EMFBIA, EMFLO,
32379C & EMFHLO, EMFELO, LIMPRE, LEXPTE
32380**
32381C INCLUDE '(EPISOR)'
32382* EPISOR.ADD
32383**sr 18.5. commented since not used for evap.
32384C LOGICAL LUSSRC
32385C COMMON/EPISOR/TKESUM,LUSSRC
32386**
32387* (original name: FHEAVY,FHEAVC)
32388 PARAMETER ( MXHEAV = 100 )
32389 CHARACTER*8 ANHEAV
32390 COMMON /FKFHVY/ CXHEAV (MXHEAV), CYHEAV (MXHEAV),
32391 & CZHEAV (MXHEAV), TKHEAV (MXHEAV),
32392 & PHEAVY (MXHEAV), WHEAVY (MXHEAV),
32393 & AMHEAV ( 12 ) , AMNHEA ( 12 ) ,
32394 & KHEAVY (MXHEAV), ICHEAV ( 12 ) ,
32395 & IBHEAV ( 12 ) , NPHEAV
32396 COMMON /FKFHVC/ ANHEAV ( 12 )
32397* (original name: FINUC)
32398 PARAMETER (MXP=999)
32399 COMMON /FKFINU/ CXR (MXP), CYR (MXP), CZR (MXP),
32400 & CXRPOL (MXP), CYRPOL (MXP), CZRPOL (MXP),
32401 & TKI (MXP), PLR (MXP), WEI (MXP),
32402 & TV, TVCMS, TVRECL, TVHEAV, TVBIND, NP0, NP,
32403 & KPART (MXP)
32404C INCLUDE '(GENTHR)'
32405* GENTHR.ADD
32406**sr 18.5. commented since not used for evap.
32407C COMMON / GENTHR / PEANCT, PEAPIT, PLDNCT, PTHRSH (NALLWP),
32408C & PTHDFF (NALLWP), IJNUCR (NALLWP)
32409**
32410C INCLUDE '(LOWNEU)'
32411* LOWNEU.ADD
32412**sr 18.5. commented since not used for evap.
32413C PARAMETER ( MXGTHN = 15 )
32414C PARAMETER ( MXGLWN = 200 )
32415C PARAMETER ( MXSHPP = 5 )
32416C LOGICAL LCOMPN, LIMPRN, LBIASN, LDOWNN, LRECPR, LLOWWW, LLOWET
32417C CHARACTER*10 TITLOW
32418C COMMON / LOWNEU / ATOLOW (MXXMDF), WSHPLN (MXGLWN,MXSHPP), EXTWWL,
32419C & SHPIMP (MXGLWN), EXTETL (MXGLWN), WWAMFL,
32420C & VLLNTH (MXGTHN,MXXMDF), ABLNTH (MXGTHN,MXXMDF),
32421C & STLNTH (MXGTHN,MXXMDF), TMRTLN (MXXMDF),
32422C & TMNMLN (MXXMDF), ICHCPT (MXXMDF),
32423C & IGTMRT (MXXMDF), NEUMED (MXXMDF),
32424C & ID1MED (MXXMDF), ID2MED (MXXMDF),
32425C & ID3MED (MXXMDF), MGTMED (MXXMDF),
32426C & LCOMPN (MXXMDF), LRECPR (MXXMDF), KPRLOW, NMGP,
32427C & NMTG , IGRTHN, LIMPRN, LBIASN, LDOWNN, LLOWWW,
32428C & LLOWET, ICLMED, IKRBGN, INABGN, IDWBGN, IETBGN,
32429C & I0XSEC, IDXSEC, ISENAV, ISVELN, ISPNAV, IWWLWB,
32430C & IWWLWT, IPXBGN, NPXSEC
32431C COMMON / CHLWNT / TITLOW (MXXMDF)
32432**
32433C INCLUDE '(LTCLCM)'
32434* LTCLCM.ADD
32435**sr 18.5. commented since not used for evap.
32436C COMMON / LTCLCM / MLATTC, NEWLAT, MLATLD, MLATM1, MLTSEN, MLTSM1
32437**
32438C INCLUDE '(MULBOU)'
32439* MULBOU.ADD
32440**sr 18.5. commented since not used for evap.
32441C LOGICAL LLDA , LAGAIN, LSTNEW, LARTEF, LNORML, LSENSE, LMGNOR
32442C COMMON / MULBOU / UOLD , VOLD , WOLD , UMAG , VMAG , WMAG ,
32443C & UNORML, VNORML, WNORML, USENSE, VSENSE, WSENSE,
32444C & TSENSE, DDSENS, DSMALL, NSSENS, LLDA , LAGAIN,
32445C & LSTNEW, LARTEF, LNORML, LSENSE, LMGNOR
32446**
32447C INCLUDE '(MULHD)'
32448* MULHD.ADD
32449**sr 18.5. commented since not used for evap.
32450C PARAMETER ( MXXPT1 = 1 )
32451C PARAMETER ( TIMESS = 2.00D+00 )
32452C PARAMETER ( TMSRLX = 1.50D+00 )
32453C PARAMETER ( EPSINS = 0.15D+00 )
32454C PARAMETER ( EPSRLX = 0.50D+00 )
32455C PARAMETER ( SQEPSN = 0.3872983346207417 D+00 )
32456C PARAMETER ( SQEPSR = 0.7071067811865475 D+00 )
32457C PARAMETER ( PARNSI = 1.732050807568877 D+00 * SQEPSN )
32458C PARAMETER ( PRNSR0 = 1.732050807568877 D+00 * SQEPSR )
32459C PARAMETER ( R0NCMS = 1.20 D+00 )
32460C LOGICAL LTOPT, LSRCRH, LNSCRH
32461C COMMON / MULHD / BLCC ( MXXMDF ), BLCCRA ( MXXMDF ),
32462C & XCC ( MXXMDF ), ZTILDE ( MXXMDF, 0:MXXPT1 ),
32463C & ALPZTL ( MXXMDF, 0:MXXPT1 ), RLDU ( MXXMDF ),
32464C & ALPZT2 ( MXXMDF, 0:MXXPT1 ), TEFF0 ( MXXMDF ),
32465C & XR0 ( MXXMDF ), ECUTM ( MXXMDF, 39, 2 ),
32466C & ESTEPF ( MXXMDF ), HTHNSZ ( MXXMDF, 39 ),
32467C & AE1O3 ( MXXMDF ), PARNSR ( MXXMDF ),
32468C & HEESLI ( MXXMDF ), THMSPR, THMSSC, HMSAMP,
32469C & HMREJE, LSRCRH ( MXXMDF ), LNSCRH ( MXXMDF ),
32470C & LTOPT ( MXXMDF ), NFSCAT
32471**
32472* (original name: PAREVT)
32473 LOGICAL LDIFFR, LINCTV, LEVPRT, LHEAVY, LDEEXG, LGDHPR, LPREEX,
32474 & LHLFIX, LPRFIX, LPARWV, LPOWER, LSNGCH, LLVMOD, LSCHDF
32475 PARAMETER ( NALLWP = 39 )
32476 COMMON /FKPARE/ DPOWER, FSPRD0, FSHPFN, RN1GSC, RN2GSC,
32477 & LDIFFR (NALLWP),LPOWER, LINCTV, LEVPRT, LHEAVY,
32478 & LDEEXG, LGDHPR, LPREEX, LHLFIX, LPRFIX, LPARWV,
32479 & ILVMOD, JLVMOD, LLVMOD, LSNGCH, LSCHDF
32480* (original name: RESNUC)
32481 LOGICAL LRNFSS, LFRAGM
32482 COMMON /FKRESN/ AMNTAR, AMMTAR, AMNZM1, AMMZM1, AMNNM1, AMMNM1,
32483 & ANOW, ZNOW, ANCOLL, ZNCOLL, AMMLFT, AMNLFT,
32484 & ERES, EKRES, AMNRES, AMMRES, PTRES, PXRES,
32485 & PYRES, PZRES, PTRES2, KTARP, KTARN, IGREYP,
32486 & IGREYN, IPREEH, IPRDEU, IPRTRI, IPR3HE, IPR4HE,
32487 & ICRES, IBRES, ISTRES, IEVAPL, IEVAPH, IEVNEU,
32488 & IEVPRO, IEVDEU, IEVTRI, IEV3HE, IEV4HE, IDEEXG,
32489 & IBTAR, ICHTAR, IBLEFT, ICLEFT, IOTHER, LRNFSS,
32490 & LFRAGM
32491C INCLUDE '(SCOHLP)'
32492* SCOHLP.ADD
32493**sr 18.5. commented since not used for evap.
32494C LOGICAL LSCZER
32495C COMMON / SCOHLP / ISCRNG, JSCRNG, LSCZER
32496**
32497C INCLUDE '(TRACKR)'
32498* TRACKR.ADD
32499**sr 18.5. commented since not used for evap.
32500C PARAMETER ( MXTRCK = 2500 )
32501C LOGICAL LFSSSC
32502C COMMON / TRACKR / XTRACK ( 0:MXTRCK ), YTRACK ( 0:MXTRCK ),
32503C & ZTRACK ( 0:MXTRCK ), TTRACK ( MXTRCK ),
32504C & DTRACK ( MXTRCK ), ETRACK, PTRACK, WTRACK,
32505C & ATRACK, CTRACK, AKSHRT, AKLONG, WSCRNG,
32506C & NTRACK, MTRACK, JTRACK, KTRACK, MMTRCK,
32507C & LT1TRK, LT2TRK, LTRACK, LLOUSE, LFSSSC
32508**
32509C INCLUDE '(USRBDX)'
32510* USRBDX.ADD
32511**sr 18.5. commented since not used for evap.
32512C PARAMETER ( MXUSBX = 600 )
32513C LOGICAL LUSBDX, LFUSBX, LWUSBX, LLNUSX
32514C CHARACTER*10 TITUSX
32515C COMMON /USRBX/ EBXLOW(MXUSBX), EBXHGH(MXUSBX), ABXLOW(MXUSBX),
32516C & ABXHGH(MXUSBX), DEBXBN(MXUSBX), DABXBN(MXUSBX),
32517C & AUSBDX(MXUSBX),
32518C & NEBXBN(MXUSBX), NABXBN(MXUSBX), NR1USX(MXUSBX),
32519C & NR2USX(MXUSBX), ITUSBX(MXUSBX), IDUSBX(MXUSBX),
32520C & KBUSBX(MXUSBX), IPUSBX(MXUSBX), IGMUSX(MXUSBX),
32521C & LFUSBX(MXUSBX), LWUSBX(MXUSBX), LLNUSX(MXUSBX),
32522C & NUSRBX, LUSBDX
32523C COMMON /USXCH/ TITUSX(MXUSBX)
32524**
32525C INCLUDE '(USRBIN)'
32526* USRBIN.ADD
32527**sr 18.5. commented since not used for evap.
32528C PARAMETER ( MXUSBN = 100 )
32529C LOGICAL LUSBIN, LEVTBN, LNTZER, LUSEVT, LUSTKB, LTRKBN
32530C CHARACTER*10 TITUSB
32531C COMMON /USRBN/ XLOW (MXUSBN), XHIGH (MXUSBN), YLOW (MXUSBN),
32532C & YHIGH (MXUSBN), ZLOW (MXUSBN), ZHIGH (MXUSBN),
32533C & DXUSBN(MXUSBN), DYUSBN(MXUSBN), DZUSBN(MXUSBN),
32534C & TCUSBN(MXUSBN), BKUSBN(MXUSBN), B2USBN(MXUSBN),
32535C & NXBIN (MXUSBN), NYBIN (MXUSBN), NZBIN (MXUSBN),
32536C & ITUSBN(MXUSBN), IDUSBN(MXUSBN), KBUSBN(MXUSBN),
32537C & IPUSBN(MXUSBN), LEVTBN(MXUSBN), LNTZER(MXUSBN),
32538C & LTRKBN(MXUSBN), NUSRBN, LUSBIN, LUSEVT, LUSTKB
32539C COMMON /USRCH/ TITUSB(MXUSBN)
32540**
32541C INCLUDE '(USRSNC)'
32542* USRSNC.ADD
32543**sr 18.5. commented since not used for evap.
32544C PARAMETER ( MXRSNC = 400 )
32545C PARAMETER ( NMZMIN = -5 )
32546C LOGICAL LURSNC
32547C CHARACTER*10 TIURSN
32548C COMMON /USRSNC/ VURSNC(MXRSNC), IZRHGH(MXRSNC), IMRHGH(MXRSNC),
32549C & NRURSN(MXRSNC), ITURSN(MXRSNC), KBURSN(MXRSNC),
32550C & IPURSN(MXRSNC), NURSNC, LURSNC
32551C COMMON /USRSCH/ TIURSN(MXRSNC)
32552C INCLUDE '(USRTRC)'
32553* USRTRC.ADD
32554**sr 18.5. commented since not used for evap.
32555C PARAMETER ( MXUSTC = 400 )
32556C LOGICAL LUSRTC, LUSTRK, LUSCLL, LLNUTC
32557C CHARACTER*10 TITUTC
32558C COMMON /USRTC/ ETCLOW(MXUSTC), ETCHGH(MXUSTC), DETCBN(MXUSTC),
32559C & VUSRTC(MXUSTC),
32560C & IUSTRK(MXUSTC), IUSCLL(MXUSTC), NETCBN(MXUSTC),
32561C & NRUSTC(MXUSTC), ITUSTC(MXUSTC), IDUSTC(MXUSTC),
32562C & KBUSTC(MXUSTC), IPUSTC(MXUSTC), IGMUTC(MXUSTC),
32563C & LLNUTC(MXUSTC), NUSRTC, NUSTRK, NUSCLL, LUSRTC,
32564C & LUSTRK, LUSCLL
32565C COMMON /USTCH/ TITUTC(MXUSTC)
32566**
32567C INCLUDE '(USRYLD)'
32568* USRYLD.ADD
32569**sr 18.5. commented since not used for evap.
32570C PARAMETER ( MXUSYL = 500 )
32571C LOGICAL LUSRYL, LLNUYL, LSCUYL
32572C CHARACTER*10 TITUYL
32573C COMMON /USRYL/ EYLLOW(MXUSYL), EYLHGH(MXUSYL), DEYLBN(MXUSYL),
32574C & USNRYL(MXUSYL), SGUSYL(MXUSYL), AYLLOW(MXUSYL),
32575C & AYLHGH(MXUSYL), PUSRYL, UUSRYL, VUSRYL, WUSRYL,
32576C & ETXUYL, ETYUYL, ETZUYL, GAMUYL, SQSUYL, UCMUYL,
32577C & VCMUYL, WCMUYL, IJUSYL, JTUSYL,
32578C & NEYLBN(MXUSYL), NR1UYL(MXUSYL), NR2UYL(MXUSYL),
32579C & IXUSYL(MXUSYL), ITUSYL(MXUSYL), IDUSYL(MXUSYL),
32580C & KBUSYL(MXUSYL), IPUSYL(MXUSYL), IGMUYL(MXUSYL),
32581C & IEUSYL(MXUSYL), IAUSYL(MXUSYL), LLNUYL(MXUSYL),
32582C & NUSRYL, LUSRYL, LSCUYL
32583C COMMON /USYCH/ TITUYL(MXUSYL)
32584**
32585C INCLUDE '(WWINDW)'
32586* WWINDW.ADD
32587**sr 18.5. commented since not used for evap.
32588C PARAMETER ( MXWWSP = 3 )
32589C PARAMETER ( WWSPMX = 50.D+00 )
32590C LOGICAL LWWNDW, LWWPRM
32591C COMMON / WWINDW / ETHWW1 (NALLWP), ETHWW2 (NALLWP),
32592C & WWEXWD (NALLWP), EXTWWN (NALLWP),
32593C & IWLBGN, IWHBGN, IWMBGN, LWWNDW, LWWPRM
32594**
32595
32596* /blnkcm/
32597* *** If blank common dimension has to be superseded substitute in the
32598* *** following two lines the new dimension in real*8 units to Nblnmx
32599**sr 18.5. commented since not used for evap.
32600C PARAMETER (MXDUMM = KALGNM * NBLNMX)
32601C DATA KTMBGN / NBLNMX /
32602C DATA MBLNMX / MXDUMM /
32603C DATA KBLNKL, KGMBGN, KGMLST, KCMBGN, KCMLST, KISBGN, KISLST,
32604C & KDTBGN, KDTLST, KUBBGN, KUBLST, KUXBGN, KUXLST, KTCBGN,
32605C & KTCLST, KRNBGN, KRNLST, KYLBGN, KYLLST, KXSBGN, KXSLST,
32606C & KIHBGN, KIHLST, KINBGN, KINLST, KIEBGN, KIELST, KETBGN,
32607C & KETLST, KRRBGN, KRRLST, KGLBGN, KGLLST, KNABGN, KNALST,
32608C & KGDBGN, KGDLST, KDWBGN, KDWLST, KGCBGN, KGCLST, KWLBGN,
32609C & KWLLST, KWHBGN, KWHLST, KWMBGN, KWMLST, KWSBGN, KWSLST,
32610C & KDPBGN, KDPLST, KRGBGN, KRGLST, KSGBGN, KSGLST, KBRBGN,
32611C & KBRLST / 57*0 /
32612
32613* /blntmp/
32614**sr 18.5. commented since not used for evap.
32615C DATA KIHBTM, KINBTM, KIEBTM, KRRBTM, KGLBTM, KNABTM, KGDWTM,
32616C & KBDWTM, KGCBTM, KWLOTM, KWHITM, KWMUTM, KWSHTM, KEXTTM,
32617C & KSTXTM, KSTNTM, KECTTM, KPCTTM, KLPBTM / 19*0 /
32618
32619* /cmmdnr/
32620**sr 18.5. commented since not used for evap.
32621C DATA DDNEAR / 0.D+00 /, LFLDNR / .FALSE. /
32622
32623* /ctitle/
32624**sr 18.5. commented since not used for evap.
32625C DATA RUNTIT (1:40) / '****************************************' /
32626C DATA RUNTIT(41:80) / '****************************************' /
32627C DATA ITEXPI, ITEXMX / 100000000, 150 /
32628* /detect/
32629**sr 18.5. commented since not used for evap.
32630C PARAMETER (NNN1 = NRGNMX*NDTCMX)
32631C PARAMETER (NNN2 = NSCRMX*NDTCMX)
32632C DATA LDTCTR /.FALSE./, NDTSCO /0/, NDTDET /0/
32633C DATA EDTMIN/NDTCMX*0.D0/, EDTBIN/NDTCMX*0.D0/, EDTCUT/NDTCMX*0.D0/
32634C DATA KDTREG/NNN1*0/, KDTDET/NNN2*0/, KDTSCD/NSCRMX*0/
32635C DATA TITDET/NDTCMX*' '/, TITSCO/NSCRMX*' '/
32636
32637* /detloc/
32638**sr 18.5. commented since not used for evap.
32639C DATA ACCUMP /NDTCM2*0.D0/, ACCUMN /NDTCM2*0.D0/, ICOINC /NDTCM2*0/
32640C DATA NCLAS /0/
32641
32642* /emgtrn/
32643**sr 18.5. commented since not used for evap.
32644C DATA LMCSMG / .FALSE. /
32645
32646* /emsho/
32647**sr 18.5. commented since not used for evap.
32648C DATA LIMPRE, LEXPTE / 2 * .FALSE. /
32649
32650* /episor/
32651**sr 18.5. commented since not used for evap.
32652C DATA TKESUM / 0.D+00 /, LUSSRC / .FALSE. /
32653
32654* /fheavy/
32655 DATA AMHEAV / 12 * 0.D+00 /
32656 DATA ANHEAV / 'NEUTRON ', 'PROTON ', 'DEUTERON', '3-H ',
32657 & '3-He ', '4-He ', 'H-FRAG-1', 'H-FRAG-2',
32658 & 'H-FRAG-3', 'H-FRAG-4', 'H-FRAG-5', 'H-FRAG-6'/
32659 DATA ICHEAV / 0, 1, 1, 1, 2, 2, 6*0 /,
32660 & IBHEAV / 1, 1, 2, 3, 3, 4, 6*0 /
32661 DATA NPHEAV / 0 /
32662
32663* /finuc/
32664 DATA NP / 0 /, TV / 0.D+00 /, TVCMS / 0.D+00 /, TVRECL / 0.D+00/,
32665 & TVHEAV / 0.D+00 /, TVBIND / 0.D+00 /
32666
32667* /genthr/
32668* Up to 20-apr-'95
32669* DATA PEANCT, PEAPIT / 2*1.D+00 /
32670* DATA PTHRSH / 16*5.D+00,2*2.5D+00,5.D+00,3*2.5D+00,8*5.D+00,
32671* & 9*2.5D+00 /
32672* DATA PTHDFF / 39*5.D+00 /
32673* & 9*2.5D+00 /
32674* New values:
32675**sr 18.5. commented since not used for evap.
32676C DATA PEANCT, PEAPIT / 1.3D+00, 1.1D+00 /
32677C DATA PTHRSH / 12*5.D+00, 2*3.5D+00, 2*5.D+00, 2*2.5D+00, 5.D+00,
32678C & 3*2.5D+00, 3.5D+00, 2*5.D+00, 3.5D+00, 4*5.D+00,
32679C & 9*2.5D+00 /
32680C DATA PTHDFF / 12*5.D+00, 2*3.5D+00, 8*5.D+00, 3.5D+00, 2*5.D+00,
32681C & 3.5D+00, 13*5.D+00 /
32682C DATA PLDNCT / 0.26D+00 /
32683C DATA IJNUCR / 16*1, 2*0, 1, 3*0, 8*1, 9*0 /
32684
32685* /lowneu/
32686**sr 18.5. commented since not used for evap.
32687C DATA WWAMFL / 10.D+00 /, EXTWWL / 1.D+00 /
32688C DATA IWWLWB, IWWLWT / 2 * 100000000 /
32689C DATA ICLMED, INABGN, IDWBGN, IETBGN / 4*0 /
32690C DATA IGRTHN / 1 /
32691C DATA LIMPRN / .FALSE. /, LBIASN / .FALSE. /, LDOWNN / .FALSE. /,
32692C & LLOWWW / .FALSE. /, LLOWET / .FALSE. /
32693
32694* /ltclcm/
32695**sr 18.5. commented since not used for evap.
32696C DATA MLATTC, NEWLAT, MLATLD, MLATM1, MLTSEN, MLTSM1 / 6*0 /
32697
32698* /mulbou/
32699**sr 18.5. commented since not used for evap.
32700C DATA LLDA, LAGAIN, LSTNEW, LARTEF, LSENSE, LNORML, LMGNOR
32701C & / 7 * .FALSE. /
32702C DATA TSENSE / AINFNT /, NSSENS / -1 /
32703C DATA DSMALL / ANGLGB /
32704
32705* /mulhd/
32706**sr 18.5. commented since not used for evap.
32707C DATA LTOPT / MXXMDF * .FALSE. /, NFSCAT / 0 /
32708C DATA ESTEPF / MXXMDF * 0.1D+00 /
32709C DATA LSRCRH / MXXMDF * .FALSE. /, LNSCRH / MXXMDF * .FALSE. /
32710C DATA THMSPR / 0.02D+00 /, THMSSC / 1.D+00 /
32711
32712* /parevt/
32713 DATA DPOWER /-13.D+00 /, FSPRD0 / 0.6D+00 /, FSHPFN / 0.0D+00 /,
32714 & RN1GSC /-1.0D+00 /, RN2GSC /-1.0D+00 /
32715 DATA LDIFFR / .TRUE., .TRUE., 6 * .TRUE., .TRUE., 8 * .TRUE.,
32716 & .TRUE., 4 * .TRUE., .TRUE., 3 * .TRUE.,
32717 & 4 * .FALSE., 9 * .TRUE./
32718**sr 17.5.95
32719* default value for LEVPRT changed (reset sr 25.7.97)
32720* default value for LHEAVY changed 25.7.97
32721C DATA LPOWER / .TRUE. /, LINCTV / .TRUE. /, LEVPRT / .TRUE. /,
32722C & LHEAVY / .FALSE. /, LDEEXG / .TRUE. /, LGDHPR / .TRUE. /,
32723C & LPREEX / .TRUE. /, LHLFIX / .FALSE. /, LPRFIX / .FALSE. /,
32724C & LPARWV / .TRUE. /, LSNGCH / .TRUE. /, LSCHDF / .TRUE. /
32725 DATA LPOWER / .TRUE. /, LINCTV / .TRUE. /, LEVPRT / .TRUE. /,
32726 & LHEAVY / .TRUE. /, LDEEXG / .TRUE. /, LGDHPR / .TRUE. /,
32727 & LPREEX / .TRUE. /, LHLFIX / .FALSE. /, LPRFIX / .FALSE. /,
32728 & LPARWV / .TRUE. /, LSNGCH / .TRUE. /, LSCHDF / .TRUE. /
32729**
32730**sr 27.5.97
32731* default value for ILVMOD changed
32732C DATA ILVMOD / 0 /, JLVMOD / 1 /, LLVMOD / .TRUE. /
32733 DATA ILVMOD / 1 /, JLVMOD / 1 /, LLVMOD / .TRUE. /
32734**
32735
32736* /resnuc/
32737 DATA IPREEH / 0 /, IPRTRI / 0 /, IPRDEU / 0 /, IPR3HE / 0 /,
32738 & IPR4HE / 0 /
32739 DATA IEVAPL / 0 /, IEVAPH / 0 /, IEVNEU / 0 /, IEVPRO / 0 /,
32740 & IEVTRI / 0 /, IEVDEU / 0 /, IEV3HE / 0 /, IEV4HE / 0 /,
32741 & IDEEXG / 0 /
32742 DATA LRNFSS / .FALSE. /
32743
32744* /scohlp/
32745**sr 18.5. commented since not used for evap.
32746C DATA ISCRNG, JSCRNG / 2*0 /, LSCZER / .FALSE. /
32747
32748* /trackr/
32749**sr 18.5. commented since not used for evap.
32750C DATA ETRACK /0.D+00/, WTRACK /0.D+00/, ATRACK /0.D+00/,
32751C & CTRACK /0.D+00/, NTRACK /0/, MTRACK /0/, JTRACK /0/
32752
32753* /usrbin/
32754**sr 18.5. commented since not used for evap.
32755C DATA LUSBIN, LUSEVT, LUSTKB /3*.FALSE./, NUSRBN /0/
32756
32757* /usrbdx/
32758**sr 18.5. commented since not used for evap.
32759C DATA LUSBDX /.FALSE./, NUSRBX /0/
32760
32761* /usrsnc/
32762**sr 18.5. commented since not used for evap.
32763C DATA LURSNC /.FALSE./, NURSNC /0/
32764
32765* /usrtrc/
32766**sr 18.5. commented since not used for evap.
32767C DATA LUSRTC, LUSTRK, LUSCLL / 3*.FALSE. /
32768C DATA NUSRTC, NUSTRK, NUSCLL / 3*0 /
32769
32770* /usryld/
32771**sr 18.5. commented since not used for evap.
32772C DATA LUSRYL / .FALSE./, LSCUYL / .FALSE. /, NUSRYL /0/,
32773C & IJUSYL /0/, JTUSYL /0/
32774C DATA PUSRYL, UUSRYL, VUSRYL, WUSRYL / 4*ZERZER /
32775
32776* /wwindw/
32777**sr 18.5. commented since not used for evap.
32778C DATA IWLBGN, IWHBGN, IWMBGN / 3*0 /
32779C DATA LWWPRM / .TRUE. /
32780
32781*= end*block.bdnopt *
32782 END
32783
32784*$ CREATE DT_BDPREE.FOR
32785*COPY DT_BDPREE
32786*
32787*=== bdpree ===========================================================*
32788*
32789 BLOCK DATA DT_BDPREE
32790
32791C INCLUDE '(DBLPRC)'
32792* DBLPRC.ADD
32793 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
32794 SAVE
32795* (original name: GLOBAL)
32796 PARAMETER ( KALGNM = 2 )
32797 PARAMETER ( ANGLGB = 5.0D-16 )
32798 PARAMETER ( ANGLSQ = 2.5D-31 )
32799 PARAMETER ( AXCSSV = 0.2D+16 )
32800 PARAMETER ( ANDRFL = 1.0D-38 )
32801 PARAMETER ( AVRFLW = 1.0D+38 )
32802 PARAMETER ( AINFNT = 1.0D+30 )
32803 PARAMETER ( AZRZRZ = 1.0D-30 )
32804 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
32805 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
32806 PARAMETER ( EXCSSV = +35.23192357547063 D+00 )
32807 PARAMETER ( ENGLGB = -35.23192357547063 D+00 )
32808 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
32809 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
32810 PARAMETER ( CSNNRM = 2.0D-15 )
32811 PARAMETER ( DMXTRN = 1.0D+08 )
32812 PARAMETER ( ZERZER = 0.D+00 )
32813 PARAMETER ( ONEONE = 1.D+00 )
32814 PARAMETER ( TWOTWO = 2.D+00 )
32815 PARAMETER ( THRTHR = 3.D+00 )
32816 PARAMETER ( FOUFOU = 4.D+00 )
32817 PARAMETER ( FIVFIV = 5.D+00 )
32818 PARAMETER ( SIXSIX = 6.D+00 )
32819 PARAMETER ( SEVSEV = 7.D+00 )
32820 PARAMETER ( EIGEIG = 8.D+00 )
32821 PARAMETER ( ANINEN = 9.D+00 )
32822 PARAMETER ( TENTEN = 10.D+00 )
32823 PARAMETER ( HLFHLF = 0.5D+00 )
32824 PARAMETER ( ONETHI = ONEONE / THRTHR )
32825 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
32826 PARAMETER ( ONEFOU = ONEONE / FOUFOU )
32827 PARAMETER ( THRTWO = THRTHR / TWOTWO )
32828 PARAMETER ( PIPIPI = 3.141592653589793238462643383279D+00 )
32829 PARAMETER ( TWOPIP = 6.283185307179586476925286766559D+00 )
32830 PARAMETER ( PIP5O2 = 7.853981633974483096156608458199D+00 )
32831 PARAMETER ( PIPISQ = 9.869604401089358618834490999876D+00 )
32832 PARAMETER ( PIHALF = 1.570796326794896619231321691640D+00 )
32833 PARAMETER ( ERFA00 = 0.886226925452758013649083741671D+00 )
32834 PARAMETER ( SQTWPI = 2.506628274631000502415765284811D+00 )
32835 PARAMETER ( EULERO = 0.577215664901532860606512 D+00 )
32836 PARAMETER ( EULEXP = 1.781072417990197985236504 D+00 )
32837 PARAMETER ( EULLOG =-0.5495393129816448223376619 D+00 )
32838 PARAMETER ( E1M2EU = 0.8569023337737540831433017 D+00 )
32839 PARAMETER ( ENEPER = 2.718281828459045235360287471353D+00 )
32840 PARAMETER ( SQRENT = 1.648721270700128146848650787814D+00 )
32841 PARAMETER ( SQRTWO = 1.414213562373095048801688724210D+00 )
32842 PARAMETER ( SQRTHR = 1.732050807568877293527446341506D+00 )
32843 PARAMETER ( SQRFIV = 2.236067977499789696409173668731D+00 )
32844 PARAMETER ( SQRSIX = 2.449489742783178098197284074706D+00 )
32845 PARAMETER ( SQRSEV = 2.645751311064590590501615753639D+00 )
32846 PARAMETER ( SQRT12 = 3.464101615137754587054892683012D+00 )
32847 PARAMETER ( CLIGHT = 2.99792458 D+10 )
32848 PARAMETER ( AVOGAD = 6.0221367 D+23 )
32849 PARAMETER ( BOLTZM = 1.380658 D-23 )
32850 PARAMETER ( AMELGR = 9.1093897 D-28 )
32851 PARAMETER ( PLCKBR = 1.05457266 D-27 )
32852 PARAMETER ( ELCCGS = 4.8032068 D-10 )
32853 PARAMETER ( ELCMKS = 1.60217733 D-19 )
32854 PARAMETER ( AMUGRM = 1.6605402 D-24 )
32855 PARAMETER ( AMMUMU = 0.113428913 D+00 )
32856 PARAMETER ( AMPRMU = 1.007276470 D+00 )
32857 PARAMETER ( AMNEMU = 1.008664904 D+00 )
32858 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
32859 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
32860 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
32861 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
32862 PARAMETER ( PLABRC = 0.197327053 D+00 )
32863 PARAMETER ( AMELCT = 0.51099906 D-03 )
32864 PARAMETER ( AMUGEV = 0.93149432 D+00 )
32865 PARAMETER ( AMMUON = 0.105658389 D+00 )
32866 PARAMETER ( AMPRTN = 0.93827231 D+00 )
32867 PARAMETER ( AMNTRN = 0.93956563 D+00 )
32868 PARAMETER ( AMDEUT = 1.87561339 D+00 )
32869 PARAMETER ( COUGFM = ELCCGS * ELCCGS / ELCMKS * 1.D-07 * 1.D+13
32870 & * 1.D-09 )
32871 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
32872 PARAMETER ( BLTZMN = 8.617385 D-14 )
32873 PARAMETER ( A0BOHR = PLABRC / ALPFSC / AMELCT )
32874 PARAMETER ( GFOHB3 = 1.16639 D-05 )
32875 PARAMETER ( GFERMI = GFOHB3 * PLABRC * PLABRC * PLABRC )
32876 PARAMETER ( SIN2TW = 0.2319 D+00 )
32877 PARAMETER ( GEVMEV = 1.0 D+03 )
32878 PARAMETER ( EMVGEV = 1.0 D-03 )
32879 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
32880 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
32881 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
32882 LOGICAL LGBIAS, LGBANA
32883 COMMON /FKGLOB/ LGBIAS, LGBANA
32884C INCLUDE '(DIMPAR)'
32885* DIMPAR.ADD
32886 PARAMETER ( MXXRGN = 5000 )
32887 PARAMETER ( MXXMDF = 82 )
32888 PARAMETER ( MXXMDE = 54 )
32889 PARAMETER ( MFSTCK = 1000 )
32890 PARAMETER ( MESTCK = 100 )
32891 PARAMETER ( NALLWP = 39 )
32892 PARAMETER ( NELEMX = 80 )
32893 PARAMETER ( MPDPDX = 8 )
32894 PARAMETER ( ICOMAX = 180 )
32895 PARAMETER ( NSTBIS = 304 )
32896 PARAMETER ( IDMAXP = 220 )
32897 PARAMETER ( IDMXDC = 640 )
32898 PARAMETER ( MKBMX1 = 1 )
32899 PARAMETER ( MKBMX2 = 1 )
32900C INCLUDE '(IOUNIT)'
32901* IOUNIT.ADD
32902 PARAMETER ( LUNIN = 5 )
32903 PARAMETER ( LUNOUT = 6 )
32904**sr 19.5. set error output-unit from 15 to 6
32905 PARAMETER ( LUNERR = 6 )
32906 PARAMETER ( LUNBER = 14 )
32907 PARAMETER ( LUNECH = 8 )
32908 PARAMETER ( LUNFLU = 13 )
32909 PARAMETER ( LUNGEO = 16 )
32910 PARAMETER ( LUNPMF = 12 )
32911 PARAMETER ( LUNRAN = 2 )
32912 PARAMETER ( LUNXSC = 9 )
32913 PARAMETER ( LUNDET = 17 )
32914 PARAMETER ( LUNRAY = 10 )
32915 PARAMETER ( LUNRDB = 1 )
32916 PARAMETER ( LUNPGO = 7 )
32917 PARAMETER ( LUNPGS = 4 )
32918 PARAMETER ( LUNSCR = 3 )
32919*
32920*----------------------------------------------------------------------*
32921* *
32922* Created on 16 september 1991 by Alfredo Ferrari & Paola Sala *
32923* Infn - Milan *
32924* *
32925* Last change on 03-feb-94 by Alfredo Ferrari *
32926* *
32927* *
32928*----------------------------------------------------------------------*
32929*
32930* (original name: CMPISG,CHPISG)
32931 PARAMETER ( TPPPI0 = 0.279656044337515D+00 )
32932 PARAMETER ( TNNPI0 = 0.279642680857450D+00 )
32933 PARAMETER ( TPPPIP = 0.292295207182790D+00 )
32934 PARAMETER ( TPPDEP = 0.287514778898469D+00 )
32935 PARAMETER ( TNNPIM = 0.286723140900975D+00 )
32936 PARAMETER ( TNNDEM = 0.281949292916434D+00 )
32937 PARAMETER ( TPNPI0 = 0.279456888147740D+00 )
32938 PARAMETER ( TPNDE0 = 0.274693916135245D+00 )
32939 PARAMETER ( TPNPIP = 0.292086756473890D+00 )
32940 PARAMETER ( TNPPI0 = 0.279842093144975D+00 )
32941 PARAMETER ( TNPDE0 = 0.275072555824202D+00 )
32942 PARAMETER ( TNPPIP = 0.292489370554958D+00 )
32943 PARAMETER ( PIRSMX = 1.2D+00 )
32944 PARAMETER ( NPIREA = 10 )
32945 PARAMETER ( NPIRTA = 68 )
32946 PARAMETER ( NPIRLN = 21 )
32947 PARAMETER ( NPIRLG = NPIRTA - NPIRLN )
32948 PARAMETER ( NPISIS = NPIRLN + 20 )
32949 PARAMETER ( NPISEX = NPIRLN + 21 )
32950 PARAMETER ( NPIIMN = 14 )
32951 PARAMETER ( NPIIRC = 6 )
32952 PARAMETER ( DELWLL = 0.035D+00 )
32953 CHARACTER CHPIRE*8
32954 LOGICAL LDLRES
32955 COMMON /FKCMPI/ PMNPIS, PMMPIS, PISPIS, PEXPIS, PMXPIS, DPPISG,
32956 & RTPISG, AMNPIS, AMMPIS, AISPIS, AEXPIS, AMXPIS,
32957 & ARPISG, BPISLO (NPIRLN:NPIRTA,NPIREA),
32958 & CPISLO (NPIRLN:NPIRTA,NPIREA), PPITHR (NPIREA),
32959 & SPISLO (NPIRLN:NPIRTA,NPIREA), APITHR (NPIREA),
32960 & SGPIIN (NPIIMN:NPIRTA,NPIIRC), RHPICR (1:5) ,
32961 & SGPICU (0:20,NPIRTA,NPIREA) , SGRTRS (NPIREA),
32962 & SGPIDF (0:20,NPIRTA,NPIREA) , BRREIN (NPIREA),
32963 & SGPIIS (NPIRTA,NPIREA) , BRREOU (NPIREA),
32964 & BRD3OU (2,2,-1:2), BRDEOU (2,-1:2),
32965 & SGABSR (2,2,4) , PRRSDL,
32966 & IPIREA (2,2,3:5) , IPIINE (2,3:5) , NPIRVR ,
32967 & KPIIRE (2,NPIREA), KPIORE (2,NPIREA) ,
32968 & JSTOKP (5), KPTOJS (23), ITTRRS (3:5), LDLRES
32969 COMMON /FKCHPI/ CHPIRE (NPIREA)
32970 DIMENSION SG2BRS (2,2), SGABSW (2,2), SG3BRS (2,2,2)
32971 EQUIVALENCE ( SG2BRS (1,1), SGABSR (1,1,1) )
32972 EQUIVALENCE ( SGABSW (1,1), SGABSR (1,1,2) )
32973 EQUIVALENCE ( SG3BRS (1,1,1), SGABSR (1,1,3) )
32974* (original name: FRBKCM)
32975 PARAMETER ( MXFFBK = 6 )
32976 PARAMETER ( MXZFBK = 9 )
32977 PARAMETER ( MXNFBK = 10 )
32978 PARAMETER ( MXAFBK = 16 )
32979 PARAMETER ( NXZFBK = MXZFBK + MXFFBK / 3 )
32980 PARAMETER ( NXNFBK = MXNFBK + MXFFBK / 3 )
32981 PARAMETER ( NXAFBK = MXAFBK + 1 )
32982 PARAMETER ( MXPSST = 300 )
32983 PARAMETER ( MXPSFB = 41000 )
32984 LOGICAL LFRMBK, LNCMSS
32985 COMMON /FKFRBK/ AMUFBK, EEXFBK (MXPSST), AMFRBK (MXPSST),
32986 & EXFRBK (MXPSFB), SDMFBK (MXPSFB), COUFBK (MXPSFB),
32987 & EXMXFB, R0FRBK, R0CFBK, C1CFBK, C2CFBK,
32988 & IFRBKN (MXPSST), IFRBKZ (MXPSST),
32989 & IFBKSP (MXPSST), IFBKPR (MXPSST), IFBKST (MXPSST),
32990 & IPSIND (0:MXNFBK,0:MXZFBK,2), JPSIND (0:MXAFBK),
32991 & IFBIND (0:NXNFBK,0:NXZFBK,2), JFBIND (0:NXAFBK),
32992 & IFBCHA (5,MXPSFB), IPOSST, IPOSFB, IFBSTF,
32993 & IFBFRB, NBUFBK, LFRMBK, LNCMSS
32994* (original name: NUCGID,NUCGEO,NUCGE2,NUCPWI,NUCGII)
32995 PARAMETER ( PI = PIPIPI )
32996 PARAMETER ( PISQ = PIPISQ )
32997 PARAMETER ( SKTOHL = 0.5456645846610345D+00 )
32998 PARAMETER ( RZNUCL = 1.12 D+00 )
32999 PARAMETER ( RMSPRO = 0.8 D+00 )
33000 PARAMETER ( R0PROT = RMSPRO / SQRT12 )
33001 PARAMETER ( ARHPRO = 1.D+00 / 8.D+00 / PI / R0PROT / R0PROT
33002 & / R0PROT )
33003 PARAMETER ( RLLE04 = RZNUCL )
33004 PARAMETER ( RLLE16 = RZNUCL )
33005 PARAMETER ( RLGT16 = RZNUCL )
33006 PARAMETER ( RCLE04 = 0.75D+00 / PI / RLLE04 / RLLE04 / RLLE04 )
33007 PARAMETER ( RCLE16 = 0.75D+00 / PI / RLLE16 / RLLE16 / RLLE16 )
33008 PARAMETER ( RCGT16 = 0.75D+00 / PI / RLGT16 / RLGT16 / RLGT16 )
33009 PARAMETER ( SKLE04 = 1.4D+00 )
33010 PARAMETER ( SKLE16 = 1.9D+00 )
33011 PARAMETER ( SKGT16 = 2.4D+00 )
33012 PARAMETER ( HLLE04 = SKTOHL * SKLE04 )
33013 PARAMETER ( HLLE16 = SKTOHL * SKLE16 )
33014 PARAMETER ( HLGT16 = SKTOHL * SKGT16 )
33015 PARAMETER ( ALPHA0 = 0.1D+00 )
33016 PARAMETER ( OMALH0 = 1.D+00 - ALPHA0 )
33017 PARAMETER ( GAMSK0 = 0.9D+00 )
33018 PARAMETER ( OMGAS0 = 1.D+00 - GAMSK0 )
33019 PARAMETER ( POTME0 = 0.6666666666666667D+00 )
33020 PARAMETER ( POTBA0 = 1.D+00 )
33021 PARAMETER ( PNFRAT = 1.533D+00 )
33022 PARAMETER ( RADPIM = 0.035D+00 )
33023 PARAMETER ( RDPMHL = 14.D+00 )
33024 PARAMETER ( APMRST = 4.D+00 / 44.D+00 )
33025 PARAMETER ( APMPRO = 1.D+00 / 6.D+00 )
33026 PARAMETER ( APPPRO = 5.D+00 / 6.D+00 )
33027 PARAMETER ( AP0PFS = 0.5D+00 )
33028 PARAMETER ( AP0PFP = 1.D+00 / 3.D+00 )
33029 PARAMETER ( AP0NFP = 2.D+00 / 3.D+00 )
33030 PARAMETER ( XPAUCO = 1.88495407241652 D+00 )
33031 PARAMETER ( MXSCIN = 50 )
33032 LOGICAL LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH, LNCDCY,
33033 & LNUSCT, LPREEQ, LNPHTC, LNWRAD, LPNRHO, LFTCMP, LFTCAC
33034 COMMON /FKNGID/ RHOTAB (2:260), RHATAB (2:260), ALPTAB (2:260),
33035 & RADTAB (2:260), SKITAB (2:260), HALTAB (2:260),
33036 & SK3TAB (2:260), SK4TAB (2:260), HABTAB (2:260),
33037 & CWSTAB (2:260), EKATAB (2:260), PFATAB (2:260),
33038 & PFRTAB (2:260)
33039 COMMON /FKNGEO/ RADTOT, RADIU1, RADIU0, RAD1O2, SKINDP, HALODP,
33040 & ALPHAL, OMALHL, RADSKN, SKNEFF, CPARWS, RADPRO,
33041 & RADCOR, RADCO2, RADMAX, BIMPTR, RIMPTR, XIMPTR,
33042 & YIMPTR, ZIMPTR, RHOIMT, EKFPRO, PFRPRO, RHOCEN,
33043 & RHOCOR, RHOSKN, EKFCEN (2), PFRCEN (2), EKFBIM,
33044 & PFRBIM, RHOIMP, EKFIMP, PFRIMP, RHOIM2, EKFIM2,
33045 & PFRIM2, RHOIM3, EKFIM3, PFRIM3, VPRWLL, RIMPCT,
33046 & BIMPCT, XIMPCT, YIMPCT, ZIMPCT, RIMPC2, XIMPC2,
33047 & YIMPC2, ZIMPC2, RIMPC3, XIMPC3, YIMPC3, ZIMPC3,
33048 & XBIMPC, YBIMPC, ZBIMPC, CXIMPC, CYIMPC, CZIMPC,
33049 & SQRIMP, SIGMAP, SIGMAN, SIGMAA, RHORED, R0TRAJ,
33050 & R1TRAJ, SBUSED, SBTOT , SBRES , RHOAVE, EKFAVE,
33051 & PFRAVE, AVEBIN, ACOLL , ZCOLL , RADSIG, OPACTY,
33052 & EKECON, PNUCCO, EKEWLL, PPRWLL, PXPROJ, PYPROJ,
33053 & PZPROJ, EKFERM, PNFRMI, PXFERM, PYFERM, PZFERM,
33054 & EKFER2, PNFRM2, PXFER2, PYFER2, PZFER2, EKFER3,
33055 & PNFRM3, PXFER3, PYFER3, PZFER3, RHOMEM, EKFMEM,
33056 & BIMMEM, WLLRED, VPRBIM, POTINC, POTOUT, EEXMIN
33057 COMMON /FKNGE2/ RDTTNC (2), RHONCP (2), RHONC2 (2), RHONC3 (2),
33058 & RHONCT (2), AMOTHR, EKOTHR, AMCREA, EKNCLN,
33059 & EEXDEL, EEXANY, CLMBBR, RDCLMB, BFCLMB, BFCEFF,
33060 & BNPROJ, BNDNUC, DEBRLM, SK4PAR, UBIMPC, VBIMPC,
33061 & WBIMPC, BNDPOT, SIGMAT, SIGABP, SIGABN, WLLRES,
33062 & POTBAR, POTMES, AGEPRI, OPNOPA, ETHRND,
33063 & BNENRG (3), DEFNUC (2), SIGMPR (4), SIGMNU (4),
33064 & SIGPAB (3), SIGNAB (3), HHLP (2), FORTOT (2),
33065 & FPNBLC, DPNBLC, FFTFLG, IFTFLG,
33066 & IPWELL, ITNCMX, KPRIN , NTARGT, KNUCIM, KNUCI2,
33067 & KNUCI3, IEVPRE, ISFCOL, ISFTAR, ISFTA2, ISFTA3,
33068 & NPOTHR, ICOTHR, IBOTHR, NPUMFN, ISTNCL, ITAUCM,
33069 & IABCOU, IADFLG, IGSFLG, IALFLG, ICBFLG, LPREEQ,
33070 & LNPHTC, LPNRHO, LNWRAD, LFTCMP, LFTCAC
33071 COMMON /FKNPWI/ ALMBAR, BIMMAX, SIGGEO, LLLMAX, LLLACT
33072 COMMON /FKNGII/ HOLEXP (2*MXSCIN), XEXPIN (3,0:MXSCIN),
33073 & YEXPIN (3,0:MXSCIN), ZEXPIN (3,0:MXSCIN),
33074 & AGEXIN (0:MXSCIN), RHOEXP (2), EKFEXP, EHLFIX,
33075 & NHLEXP, NHLFIX, IPRTYP, NNCEXI (0:MXSCIN),
33076 & NCEXPI (3,0:MXSCIN), ISEXIN (3,0:MXSCIN),
33077 & ISCTYP (0:MXSCIN), NUSCIN, NEXPEM,
33078 & LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH,
33079 & LNCDCY, LNUSCT
33080 DIMENSION AWSTAB (2:260), SIGMAB (3)
33081 EQUIVALENCE ( DEFPRO, DEFNUC (1) )
33082 EQUIVALENCE ( DEFNEU, DEFNUC (2) )
33083 EQUIVALENCE ( RHOIPP, RHONCP (1) )
33084 EQUIVALENCE ( RHOINP, RHONCP (2) )
33085 EQUIVALENCE ( RHOIP2, RHONC2 (1) )
33086 EQUIVALENCE ( RHOIN2, RHONC2 (2) )
33087 EQUIVALENCE ( RHOIP3, RHONC3 (1) )
33088 EQUIVALENCE ( RHOIN3, RHONC3 (2) )
33089 EQUIVALENCE ( RHOIPT, RHONCT (1) )
33090 EQUIVALENCE ( RHOINT, RHONCT (2) )
33091 EQUIVALENCE ( OMALHL, SK3PAR )
33092 EQUIVALENCE ( ALPHAL, HABPAR )
33093 EQUIVALENCE ( ALPTAB (2), AWSTAB (2) )
33094 EQUIVALENCE ( SIGMPE, SIGMPR (1) )
33095 EQUIVALENCE ( SIGMPC, SIGMPR (2) )
33096 EQUIVALENCE ( SIGMPI, SIGMPR (3) )
33097 EQUIVALENCE ( SIGMPA, SIGMPR (4) )
33098 EQUIVALENCE ( SIGMNE, SIGMNU (1) )
33099 EQUIVALENCE ( SIGMNC, SIGMNU (2) )
33100 EQUIVALENCE ( SIGMNI, SIGMNU (3) )
33101 EQUIVALENCE ( SIGMNA, SIGMNU (4) )
33102 EQUIVALENCE ( SIGMA2, SIGPAB (1) )
33103 EQUIVALENCE ( SIGMA3, SIGPAB (2) )
33104 EQUIVALENCE ( SIGMAS, SIGPAB (3) )
33105 EQUIVALENCE ( SIGPAB (1), SIGMAB (1) )
33106* (original name: NUCLEV)
33107 LOGICAL LCLVSL, LFLVSL, LRLVSL, LEQSBL
33108 COMMON /FKNLEV/ PAENUC (200,2), SHENUC (200,2), DEFRMI (2),
33109 & DEFMAG (2), ENNCLV (160,2), RANCLV (160,2),
33110 & CUMRAD (0:160,2), RUSNUC (2),
33111 & ENPLVL (114), ENNLVL(164), JUSNUC (160,2),
33112 & NTANUC (2), NAVNUC (2), NLSNUC (2), NCONUC (2),
33113 & NSKNUC (2), NHANUC (2), NUSNUC (2), NACNUC (2),
33114 & JMXNUC (2), IPRNUC (3), JPRNUC (3), MAGNUM (8),
33115 & MAGNUC (2), MGSNUC (8,2), MGSSNC (25,2),
33116 & NSBSHL (2), NMNSBS (2), NPRNUC, INUCLV, LCLVSL,
33117 & LFLVSL, LRLVSL, LEQSBL
33118 DIMENSION JUSPRO (160), JUSNEU (160), MGSPRO (8), MGSNEU (8),
33119 & MGSSPR (19) , MGSSNE (25)
33120 EQUIVALENCE ( RUSNUC (1), RUSPRO )
33121 EQUIVALENCE ( RUSNUC (2), RUSNEU )
33122 EQUIVALENCE ( JUSNUC (1,1), JUSPRO (1) )
33123 EQUIVALENCE ( JUSNUC (1,2), JUSNEU (1) )
33124 EQUIVALENCE ( MGSNUC (1,1), MGSPRO (1) )
33125 EQUIVALENCE ( MGSNUC (1,2), MGSNEU (1) )
33126 EQUIVALENCE ( MGSSNC (1,1), MGSSPR (1) )
33127 EQUIVALENCE ( MGSSNC (1,2), MGSSNE (1) )
33128 EQUIVALENCE ( NTANUC (1), NTAPRO )
33129 EQUIVALENCE ( NTANUC (2), NTANEU )
33130 EQUIVALENCE ( NAVNUC (1), NAVPRO )
33131 EQUIVALENCE ( NAVNUC (2), NAVNEU )
33132 EQUIVALENCE ( NLSNUC (1), NLSPRO )
33133 EQUIVALENCE ( NLSNUC (2), NLSNEU )
33134 EQUIVALENCE ( NCONUC (1), NCOPRO )
33135 EQUIVALENCE ( NCONUC (2), NCONEU )
33136 EQUIVALENCE ( NSKNUC (1), NSKPRO )
33137 EQUIVALENCE ( NSKNUC (2), NSKNEU )
33138 EQUIVALENCE ( NHANUC (1), NHAPRO )
33139 EQUIVALENCE ( NHANUC (2), NHANEU )
33140 EQUIVALENCE ( NUSNUC (1), NUSPRO )
33141 EQUIVALENCE ( NUSNUC (2), NUSNEU )
33142 EQUIVALENCE ( NACNUC (1), NACPRO )
33143 EQUIVALENCE ( NACNUC (2), NACNEU )
33144 EQUIVALENCE ( JMXNUC (1), JMXPRO )
33145 EQUIVALENCE ( JMXNUC (2), JMXNEU )
33146 EQUIVALENCE ( MAGNUC (1), MAGPRO )
33147 EQUIVALENCE ( MAGNUC (2), MAGNEU )
33148* (original name: PARNUC)
33149 PARAMETER ( PIGRK = PIPIPI )
33150 PARAMETER ( ALEVEL = 8.D-03 )
33151 PARAMETER ( RCNUCL = 1.12D+00 )
33152 PARAMETER ( R0SIG = 1.3D+00 )
33153 PARAMETER ( R0SIGK = 1.5D+00 )
33154 PARAMETER ( RCOULB = 1.5D+00 )
33155 PARAMETER ( COULBH = 0.88235D-03 )
33156 PARAMETER ( RHONU0 = 0.75D+00 / PIGRK / RCNUCL / RCNUCL / RCNUCL )
33157 PARAMETER ( TAUFO0 = 10.0D+00 )
33158 PARAMETER ( EKEEXP = 0.03D+00 )
33159 PARAMETER ( EKREXP = 0.05D+00 )
33160 PARAMETER ( EKEMNM = 0.01D+00 )
33161 PARAMETER ( NCPMX = 120 )
33162 COMMON /FKPARN/ EKORI , PXORI , PYORI , PZORI , PTORI , TAUFOR,
33163 & ENNUC (NCPMX), PNUCL (NCPMX), EKFNUC (NCPMX),
33164 & XSTNUC (NCPMX), YSTNUC (NCPMX), ZSTNUC (NCPMX),
33165 & PXNUCL (NCPMX), PYNUCL (NCPMX), PZNUCL (NCPMX),
33166 & RSTNUC (NCPMX), FREEPA (NCPMX), CRRPAN (NCPMX),
33167 & CRRPAP (NCPMX), BSTNUC (NCPMX), AGENUC (NCPMX),
33168 & TAUFPA (NCPMX), RHNUCL(NCPMX,2), BNDGAV, DEFMIN,
33169 & KPNUCL (NCPMX), KRFNUC (NCPMX), ILINUC (NCPMX),
33170 & INUCTS (NCPMX), ISFNUC (NCPMX), KPORI , IBORI ,
33171 & IBNUCL, NPNUC , NNUCTS
33172*
33173 DATA LABRST, LELSTC, LINELS, LCHEXC, LABSRP, LABSTH / 6*.FALSE. /
33174 DATA POTBAR / POTBA0 /, POTMES / POTME0 /, WLLRES / 0.D+00 /
33175 DATA JUSNUC / 320 * 0 /, INUCLV / 1 /, IEVPRE / 0 /
33176 DATA MAGNUM / 2, 8, 20, 28, 50, 82, 126, 160 /
33177 DATA LPREEQ / .FALSE. /
33178* /cmpisg/
33179 DATA JSTOKP / 1, 8, 13, 14, 23 /
33180 DATA KPTOJS / 1, 6*0, 2, 4*0, 3, 4, 8*0, 5 /
33181 DATA CHPIRE / 'PI+PPI+P','PI-PPI-P','PI-PPI0N','PI0PPI0P',
33182 & 'PI0PPI+N','PI-NPI-N','PI+NPI+N','PI+NPI0P',
33183 & 'PI0NPI0N','PI0NPI-P' /
33184 DATA KPIIRE / 13, 1, 14, 1, 14, 1, 23, 1, 23, 1, 14, 8,
33185 & 13, 8, 13, 8, 23, 8, 23, 8 /
33186 DATA KPIORE / 13, 1, 14, 1, 23, 8, 23, 1, 13, 8, 14, 8,
33187 & 13, 8, 23, 1, 23, 8, 14, 1 /
33188 DATA IPIREA / 1, 0, 7, 8, 2, 3, 6, 0, 4, 5, 9, 10 /
33189 DATA IPIINE / 1, 2, 3, 4, 5, 6 /
33190* /frbkcm/
33191 DATA LFRMBK / .FALSE. /
33192 DATA NBUFBK / 500 /
33193 DATA EXMXFB / 80.0 D+00 /
33194 DATA R0FRBK / 1.18 D+00 /
33195 DATA R0CFBK / 2.173D+00 /
33196 DATA C1CFBK / 6.103D-03 /
33197 DATA C2CFBK / 9.443D-03 /
33198* /parnuc/
33199 DATA TAUFOR / TAUFO0 /
33200*=== End of Block Data Bdpree =========================================*
33201 END
33202
33203*$ CREATE DT_XHOINI.FOR
33204*COPY DT_XHOINI
33205*
33206*====phoini============================================================*
33207*
33208 SUBROUTINE DT_XHOINI
33209C SUBROUTINE DT_PHOINI
33210
33211 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33212 SAVE
33213 PARAMETER ( LINP = 10 ,
33214 & LOUT = 6 ,
33215 & LDAT = 9 )
33216
33217 RETURN
33218 END
33219
33220*$ CREATE DT_XVENTB.FOR
33221*COPY DT_XVENTB
33222*
33223*====eventb============================================================*
33224*
33225 SUBROUTINE DT_XVENTB(NCSY,IREJ)
33226C SUBROUTINE DT_EVENTB(NCSY,IREJ)
33227
33228 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33229 SAVE
33230 PARAMETER ( LINP = 10 ,
33231 & LOUT = 6 ,
33232 & LDAT = 9 )
33233
33234 WRITE(LOUT,1000)
33235 1000 FORMAT(1X,'EVENTB: PHOJET-package requested but not linked!')
33236 STOP
33237
33238 END
33239
33240*$ CREATE DT_XVENT.FOR
33241*COPY DT_XVENT
33242*
33243*===event==============================================================*
33244*
33245 SUBROUTINE DT_XVENT(IDUM,PP,PT,DUM,IREJ)
33246C SUBROUTINE EVENT(IDUM,PP,PT,DUM,IREJ)
33247
33248 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33249 SAVE
33250
33251 DIMENSION PP(4),PT(4)
33252
33253 RETURN
33254 END
33255
33256*$ CREATE DT_XOHISX.FOR
33257*COPY DT_XOHISX
33258*
33259*===pohisx=============================================================*
33260*
33261 SUBROUTINE DT_XOHISX(I,X)
33262C SUBROUTINE POHISX(I,X)
33263
33264 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33265 SAVE
33266
33267 RETURN
33268 END
33269
33270*$ CREATE PHO_LHIST.FOR
33271*COPY PHO_LHIST
33272*
33273*===poluhi=============================================================*
33274*
33275 SUBROUTINE PHO_LHIST(I,X)
33276**
33277
33278 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33279 SAVE
33280
33281 RETURN
33282 END
33283
33284*$ CREATE PDFSET.FOR
33285*COPY PDFSET
33286*
33287C**********************************************************************
33288C
33289C dummy subroutines, remove to link PDFLIB
33290C
33291C**********************************************************************
33292 SUBROUTINE PDFSET(PARAM,VALUE)
33293 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33294 DIMENSION PARAM(20),VALUE(20)
33295 CHARACTER*20 PARAM
33296 END
33297
33298*$ CREATE STRUCTM.FOR
33299*COPY STRUCTM
33300*
33301 SUBROUTINE STRUCTM(XI,SCALE2,UV,DV,US,DS,SS,CS,BS,TS,GL)
33302 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33303 END
33304
33305*$ CREATE STRUCTP.FOR
33306*COPY STRUCTP
33307*
33308 SUBROUTINE STRUCTP(XI,SCALE2,P2,IP2,UV,DV,US,DS,SS,CS,BS,TS,GL)
33309 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33310 END
33311
33312*$ CREATE DT_DIQBRK.FOR
33313*COPY DT_DIQBRK
33314*
33315*===diqbrk=============================================================*
33316*
33317 SUBROUTINE DT_XIQBRK
33318C SUBROUTINE DT_DIQBRK
33319
33320 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33321 SAVE
33322
33323 STOP 'diquark-breaking not implemeted !'
33324
33325 RETURN
33326 END
33327
33328*$ CREATE DT_ELHAIN.FOR
33329*COPY DT_ELHAIN
33330*
33331*===elhain=============================================================*
33332*
33333 SUBROUTINE DT_ELHAIN(IP,PLA,ELAB,CX,CY,CZ,IT,IREJ)
33334
33335************************************************************************
33336* Elastic hadron-hadron scattering. *
33337* This is a revised version of the original. *
33338* This version dated 03.04.98 is written by S. Roesler *
33339************************************************************************
33340
33341 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33342 SAVE
33343 PARAMETER ( LINP = 10 ,
33344 & LOUT = 6 ,
33345 & LDAT = 9 )
33346 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0,
33347 & TINY10=1.0D-10)
33348
33349 PARAMETER (ENNTHR = 3.5D0)
33350 PARAMETER (PLOWH=0.01D0,PHIH=9.0D0,
33351 & BLOWB=0.05D0,BHIB=0.2D0,
33352 & BLOWM=0.1D0, BHIM=2.0D0)
33353
33354* particle properties (BAMJET index convention)
33355 CHARACTER*8 ANAME
33356 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
33357 & IICH(210),IIBAR(210),K1(210),K2(210)
33358* final state from HADRIN interaction
33359 PARAMETER (MAXFIN=10)
33360 COMMON /HNFSPA/ ITRH(MAXFIN),CXRH(MAXFIN),CYRH(MAXFIN),
33361 & CZRH(MAXFIN),ELRH(MAXFIN),PLRH(MAXFIN),IRH
33362
33363C DATA TSLOPE /10.0D0/
33364
33365 IREJ = 0
33366
33367 1 CONTINUE
33368
33369 PLAB = SQRT( (ELAB-AAM(IP))*(ELAB+AAM(IP)) )
33370 EKIN = ELAB-AAM(IP)
33371* kinematical quantities in cms of the hadrons
33372 AMP2 = AAM(IP)**2
33373 AMT2 = AAM(IT)**2
33374 S = AMP2+AMT2+TWO*ELAB*AAM(IT)
33375 ECM = SQRT(S)
33376 ECMP = OHALF*ECM+(AMP2-AMT2)/(TWO*ECM)
33377 PCM = SQRT( (ECMP-AAM(IP))*(ECMP+AAM(IP)) )
33378
33379* nucleon-nucleon scattering at E_kin<3.5: use DT_TSAMCS(HETC-KFA)
33380 IF ( ((IP.EQ.1).OR.(IP.EQ.8)).AND.
33381 & ((IT.EQ.1).OR.(IT.EQ.8)).AND.(EKIN.LT.ENNTHR) ) THEN
33382* TSAMCS treats pp and np only, therefore change pn into np and
33383* nn into pp
33384 IF (IT.EQ.1) THEN
33385 KPROJ = IP
33386 ELSE
33387 KPROJ = 8
33388 IF (IP.EQ.8) KPROJ = 1
33389 ENDIF
33390 CALL DT_TSAMCS(KPROJ,EKIN,CTCMS)
33391 T = TWO*PCM**2*(CTCMS-ONE)
33392
33393* very crude treatment otherwise: sample t from exponential dist.
33394 ELSE
33395* momentum transfer t
33396 TMAX = TWO*TWO*PCM**2
33397 RR = (PLAB-PLOWH)/(PHIH-PLOWH)
33398 IF (IIBAR(IP).NE.0) THEN
33399 TSLOPE = BLOWB+RR*(BHIB-BLOWB)
33400 ELSE
33401 TSLOPE = BLOWM+RR*(BHIM-BLOWM)
33402 ENDIF
33403 FMAX = EXP(-TSLOPE*TMAX)-ONE
33404 R = DT_RNDM(RR)
33405 T = LOG(ONE+R*FMAX+TINY10)/TSLOPE
33406 IF (T.GT.ZERO) T = LOG(ONE+R*FMAX)/TSLOPE
33407 ENDIF
33408
33409* target hadron in Lab after scattering
33410 ELRH(2) = (TWO*AMT2-T)/(TWO*AAM(IT))
33411 PLRH(2) = SQRT( ABS(ELRH(2)-AAM(IT))*(ELRH(2)+AAM(IT)) )
33412 IF (PLRH(2).LE.TINY10) THEN
33413C WRITE(*,*)'ELHAIN: T,PLRH(2) ',T,PLRH(2)
33414 GOTO 1
33415 ENDIF
33416* projectile hadron in Lab after scattering
33417 ELRH(1) = ELAB+AAM(IT)-ELRH(2)
33418 PLRH(1) = SQRT( ABS(ELRH(1)-AAM(IP))*(ELRH(1)+AAM(IP)) )
33419* scattering angle of projectile in Lab
33420 CTLABP = (T-TWO*AMP2+TWO*ELAB*ELRH(1))/(TWO*PLAB*PLRH(1))
33421 STLABP = SQRT( (ONE-CTLABP)*(ONE+CTLABP) )
33422 CALL DT_DSFECF(SPLABP,CPLABP)
33423* direction cosines of projectile in Lab
33424 CALL DT_STTRAN(CX,CY,CZ,CTLABP,STLABP,SPLABP,CPLABP,
33425 & CXRH(1),CYRH(1),CZRH(1))
33426* scattering angle of target in Lab
33427 PLLABT = PLAB-CTLABP*PLRH(1)
33428 CTLABT = PLLABT/PLRH(2)
33429 STLABT = SQRT( (ONE-CTLABT)*(ONE+CTLABT) )
33430* direction cosines of target in Lab
33431 CALL DT_STTRAN(CX,CY,CZ,CTLABT,STLABT,-SPLABP,-CPLABP,
33432 & CXRH(2),CYRH(2),CZRH(2))
33433* fill /HNFSPA/
33434 IRH = 2
33435 ITRH(1) = IP
33436 ITRH(2) = IT
33437
33438 RETURN
33439 END
33440
33441*$ CREATE DT_TSAMCS.FOR
33442*COPY DT_TSAMCS
33443*
33444*===tsamcs=============================================================*
33445*
33446 SUBROUTINE DT_TSAMCS(KPROJ,EKIN,CST)
33447
33448************************************************************************
33449* Sampling of cos(theta) for nucleon-proton scattering according to *
33450* hetkfa2/bertini parametrization. *
33451* This is a revised version of the original (HJM 24/10/88) *
33452* This version dated 28.10.95 is written by S. Roesler *
33453************************************************************************
33454
33455 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33456 SAVE
33457 PARAMETER ( LINP = 10 ,
33458 & LOUT = 6 ,
33459 & LDAT = 9 )
33460 PARAMETER (TWO=2.0D0,ONE=1.0D0,OHALF=0.5D0,ZERO=0.0D0,
33461 & TINY10=1.0D-10)
33462
33463 DIMENSION DCLIN(195),DCHN(143),DCHNA(36),DCHNB(60)
33464 DIMENSION PDCI(60),PDCH(55)
33465
33466 DATA (DCLIN(I),I=1,80) /
33467 & 5.000D-01, 1.000D+00, 0.000D+00, 1.000D+00, 0.000D+00,
33468 & 4.993D-01, 9.881D-01, 5.963D-02, 9.851D-01, 5.945D-02,
33469 & 4.936D-01, 8.955D-01, 5.224D-01, 8.727D-01, 5.091D-01,
33470 & 4.889D-01, 8.228D-01, 8.859D-01, 7.871D-01, 8.518D-01,
33471 & 4.874D-01, 7.580D-01, 1.210D+00, 7.207D-01, 1.117D+00,
33472 & 4.912D-01, 6.969D-01, 1.516D+00, 6.728D-01, 1.309D+00,
33473 & 5.075D-01, 6.471D-01, 1.765D+00, 6.667D-01, 1.333D+00,
33474 & 5.383D-01, 6.054D-01, 1.973D+00, 7.059D-01, 1.176D+00,
33475 & 5.397D-01, 5.990D-01, 2.005D+00, 7.023D-01, 1.191D+00,
33476 & 5.336D-01, 6.083D-01, 1.958D+00, 6.959D-01, 1.216D+00,
33477 & 5.317D-01, 6.075D-01, 1.962D+00, 6.897D-01, 1.241D+00,
33478 & 5.300D-01, 6.016D-01, 1.992D+00, 6.786D-01, 1.286D+00,
33479 & 5.281D-01, 6.063D-01, 1.969D+00, 6.786D-01, 1.286D+00,
33480 & 5.280D-01, 5.960D-01, 2.020D+00, 6.667D-01, 1.333D+00,
33481 & 5.273D-01, 5.920D-01, 2.040D+00, 6.604D-01, 1.358D+00,
33482 & 5.273D-01, 5.862D-01, 2.069D+00, 6.538D-01, 1.385D+00/
33483 DATA (DCLIN(I),I=81,160) /
33484 & 5.223D-01, 5.980D-01, 2.814D+00, 6.538D-01, 1.385D+00,
33485 & 5.202D-01, 5.969D-01, 2.822D+00, 6.471D-01, 1.412D+00,
33486 & 5.183D-01, 5.881D-01, 2.883D+00, 6.327D-01, 1.469D+00,
33487 & 5.159D-01, 5.866D-01, 2.894D+00, 6.250D-01, 1.500D+00,
33488 & 5.133D-01, 5.850D-01, 2.905D+00, 6.170D-01, 1.532D+00,
33489 & 5.106D-01, 5.833D-01, 2.917D+00, 6.087D-01, 1.565D+00,
33490 & 5.084D-01, 5.801D-01, 2.939D+00, 6.000D-01, 1.600D+00,
33491 & 5.063D-01, 5.763D-01, 2.966D+00, 5.909D-01, 1.636D+00,
33492 & 5.036D-01, 5.730D-01, 2.989D+00, 5.814D-01, 1.674D+00,
33493 & 5.014D-01, 5.683D-01, 3.022D+00, 5.714D-01, 1.714D+00,
33494 & 4.986D-01, 5.641D-01, 3.051D+00, 5.610D-01, 1.756D+00,
33495 & 4.964D-01, 5.580D-01, 3.094D+00, 5.500D-01, 1.800D+00,
33496 & 4.936D-01, 5.573D-01, 3.099D+00, 5.431D-01, 1.827D+00,
33497 & 4.909D-01, 5.509D-01, 3.144D+00, 5.313D-01, 1.875D+00,
33498 & 4.885D-01, 5.512D-01, 3.142D+00, 5.263D-01, 1.895D+00,
33499 & 4.857D-01, 5.437D-01, 3.194D+00, 5.135D-01, 1.946D+00/
33500 DATA (DCLIN(I),I=161,195) /
33501 & 4.830D-01, 5.353D-01, 3.253D+00, 5.000D-01, 2.000D+00,
33502 & 4.801D-01, 5.323D-01, 3.274D+00, 4.915D-01, 2.034D+00,
33503 & 4.770D-01, 5.228D-01, 3.341D+00, 4.767D-01, 2.093D+00,
33504 & 4.738D-01, 5.156D-01, 3.391D+00, 4.643D-01, 2.143D+00,
33505 & 4.701D-01, 5.010D-01, 3.493D+00, 4.444D-01, 2.222D+00,
33506 & 4.672D-01, 4.990D-01, 3.507D+00, 4.375D-01, 2.250D+00,
33507 & 4.634D-01, 4.856D-01, 3.601D+00, 4.194D-01, 2.323D+00/
33508
33509 DATA PDCI /
33510 & 4.400D+02, 1.896D-01, 1.931D-01, 1.982D-01, 1.015D-01,
33511 & 1.029D-01, 4.180D-02, 4.228D-02, 4.282D-02, 4.350D-02,
33512 & 2.204D-02, 2.236D-02, 5.900D+02, 1.433D-01, 1.555D-01,
33513 & 1.774D-01, 1.000D-01, 1.128D-01, 5.132D-02, 5.600D-02,
33514 & 6.158D-02, 6.796D-02, 3.660D-02, 3.820D-02, 6.500D+02,
33515 & 1.192D-01, 1.334D-01, 1.620D-01, 9.527D-02, 1.141D-01,
33516 & 5.283D-02, 5.952D-02, 6.765D-02, 7.878D-02, 4.796D-02,
33517 & 6.957D-02, 8.000D+02, 4.872D-02, 6.694D-02, 1.152D-01,
33518 & 9.348D-02, 1.368D-01, 6.912D-02, 7.953D-02, 9.577D-02,
33519 & 1.222D-01, 7.755D-02, 9.525D-02, 1.000D+03, 3.997D-02,
33520 & 5.456D-02, 9.804D-02, 8.084D-02, 1.208D-01, 6.520D-02,
33521 & 8.233D-02, 1.084D-01, 1.474D-01, 9.328D-02, 1.093D-01/
33522
33523 DATA PDCH /
33524 & 1.000D+03, 9.453D-02, 9.804D-02, 8.084D-02, 1.208D-01,
33525 & 6.520D-02, 8.233D-02, 1.084D-01, 1.474D-01, 9.328D-02,
33526 & 1.093D-01, 1.400D+03, 1.072D-01, 7.450D-02, 6.645D-02,
33527 & 1.136D-01, 6.750D-02, 8.580D-02, 1.110D-01, 1.530D-01,
33528 & 1.010D-01, 1.350D-01, 2.170D+03, 4.004D-02, 3.013D-02,
33529 & 2.664D-02, 5.511D-02, 4.240D-02, 7.660D-02, 1.364D-01,
33530 & 2.300D-01, 1.670D-01, 2.010D-01, 2.900D+03, 1.870D-02,
33531 & 1.804D-02, 1.320D-02, 2.970D-02, 2.860D-02, 5.160D-02,
33532 & 1.020D-01, 2.400D-01, 2.250D-01, 3.370D-01, 4.400D+03,
33533 & 1.196D-03, 8.784D-03, 1.517D-02, 2.874D-02, 2.488D-02,
33534 & 4.464D-02, 8.330D-02, 2.008D-01, 2.360D-01, 3.567D-01/
33535
33536 DATA (DCHN(I),I=1,90) /
33537 & 4.770D-01, 4.750D-01, 4.715D-01, 4.685D-01, 4.650D-01,
33538 & 4.610D-01, 4.570D-01, 4.550D-01, 4.500D-01, 4.450D-01,
33539 & 4.405D-01, 4.350D-01, 4.300D-01, 4.250D-01, 4.200D-01,
33540 & 4.130D-01, 4.060D-01, 4.000D-01, 3.915D-01, 3.840D-01,
33541 & 3.760D-01, 3.675D-01, 3.580D-01, 3.500D-01, 3.400D-01,
33542 & 3.300D-01, 3.200D-01, 3.100D-01, 3.000D-01, 2.900D-01,
33543 & 2.800D-01, 2.700D-01, 2.600D-01, 2.500D-01, 2.400D-01,
33544 & 2.315D-01, 2.240D-01, 2.150D-01, 2.060D-01, 2.000D-01,
33545 & 1.915D-01, 1.850D-01, 1.780D-01, 1.720D-01, 1.660D-01,
33546 & 1.600D-01, 1.550D-01, 1.500D-01, 1.450D-01, 1.400D-01,
33547 & 1.360D-01, 1.320D-01, 1.280D-01, 1.250D-01, 1.210D-01,
33548 & 1.180D-01, 1.150D-01, 1.120D-01, 1.100D-01, 1.070D-01,
33549 & 1.050D-01, 1.030D-01, 1.010D-01, 9.900D-02, 9.700D-02,
33550 & 9.550D-02, 9.480D-02, 9.400D-02, 9.200D-02, 9.150D-02,
33551 & 9.100D-02, 9.000D-02, 8.990D-02, 8.900D-02, 8.850D-02,
33552 & 8.750D-02, 8.700D-02, 8.650D-02, 8.550D-02, 8.500D-02,
33553 & 8.499D-02, 8.450D-02, 8.350D-02, 8.300D-02, 8.250D-02,
33554 & 8.150D-02, 8.100D-02, 8.030D-02, 8.000D-02, 7.990D-02/
33555 DATA (DCHN(I),I=91,143) /
33556 & 7.980D-02, 7.950D-02, 7.900D-02, 7.860D-02, 7.800D-02,
33557 & 7.750D-02, 7.650D-02, 7.620D-02, 7.600D-02, 7.550D-02,
33558 & 7.530D-02, 7.500D-02, 7.499D-02, 7.498D-02, 7.480D-02,
33559 & 7.450D-02, 7.400D-02, 7.350D-02, 7.300D-02, 7.250D-02,
33560 & 7.230D-02, 7.200D-02, 7.100D-02, 7.050D-02, 7.020D-02,
33561 & 7.000D-02, 6.999D-02, 6.995D-02, 6.993D-02, 6.991D-02,
33562 & 6.990D-02, 6.870D-02, 6.850D-02, 6.800D-02, 6.780D-02,
33563 & 6.750D-02, 6.700D-02, 6.650D-02, 6.630D-02, 6.600D-02,
33564 & 6.550D-02, 6.525D-02, 6.510D-02, 6.500D-02, 6.499D-02,
33565 & 6.498D-02, 6.496D-02, 6.494D-02, 6.493D-02, 6.490D-02,
33566 & 6.488D-02, 6.485D-02, 6.480D-02/
33567
33568 DATA DCHNA /
33569 & 6.300D+02, 7.810D-02, 1.421D-01, 1.979D-01, 2.479D-01,
33570 & 3.360D-01, 5.400D-01, 7.236D-01, 1.000D+00, 1.540D+03,
33571 & 2.225D-01, 3.950D-01, 5.279D-01, 6.298D-01, 7.718D-01,
33572 & 9.405D-01, 9.835D-01, 1.000D+00, 2.560D+03, 2.625D-01,
33573 & 4.550D-01, 5.963D-01, 7.020D-01, 8.380D-01, 9.603D-01,
33574 & 9.903D-01, 1.000D+00, 3.520D+03, 4.250D-01, 6.875D-01,
33575 & 8.363D-01, 9.163D-01, 9.828D-01, 1.000D+00, 1.000D+00,
33576 & 1.000D+00/
33577
33578 DATA DCHNB /
33579 & 6.300D+02, 3.800D-02, 7.164D-02, 1.275D-01, 2.171D-01,
33580 & 3.227D-01, 4.091D-01, 5.051D-01, 6.061D-01, 7.074D-01,
33581 & 8.434D-01, 1.000D+00, 2.040D+03, 1.200D-01, 2.115D-01,
33582 & 3.395D-01, 5.295D-01, 7.251D-01, 8.511D-01, 9.487D-01,
33583 & 9.987D-01, 1.000D+00, 1.000D+00, 1.000D+00, 2.200D+03,
33584 & 1.344D-01, 2.324D-01, 3.754D-01, 5.674D-01, 7.624D-01,
33585 & 8.896D-01, 9.808D-01, 1.000D+00, 1.000D+00, 1.000D+00,
33586 & 1.000D+00, 2.850D+03, 2.330D-01, 4.130D-01, 6.610D-01,
33587 & 9.010D-01, 9.970D-01, 1.000D+00, 1.000D+00, 1.000D+00,
33588 & 1.000D+00, 1.000D+00, 1.000D+00, 3.500D+03, 3.300D-01,
33589 & 5.450D-01, 7.950D-01, 1.000D+00, 1.000D+00, 1.000D+00,
33590 & 1.000D+00, 1.000D+00, 1.000D+00, 1.000D+00, 1.000D+00/
33591
33592 CST = ONE
33593 IF (EKIN.GT.3.5D0) RETURN
33594C
33595 IF(KPROJ.EQ.8) GOTO 101
33596 IF(KPROJ.EQ.1) GOTO 102
33597C* INVALID REACTION
33598 WRITE(LOUT,'(A,I5/A)')
33599 & ' INVALID PARTICLE TYPE IN DNUPRE - KPROJ=',KPROJ,
33600 & ' COS(THETA) = 1D0 RETURNED'
33601 RETURN
33602C-------------------------------- NP ELASTIC SCATTERING----------
33603101 CONTINUE
33604 IF (EKIN.GT.0.740D0)GOTO 1000
33605 IF (EKIN.LT.0.300D0)THEN
33606C EKIN .LT. 300 MEV
33607 IDAT=1
33608 ELSE
33609C 300 MEV < EKIN < 740 MEV
33610 IDAT=6
33611 END IF
33612C
33613 ENER=EKIN
33614 IE=INT(ABS(ENER/0.020D0))
33615 UNIV=(ENER-DBLE(IE)*0.020D0)/0.020D0
33616C FORWARD/BACKWARD DECISION
33617 K=IDAT+5*IE
33618 BWFW=(DCLIN(K+5)-DCLIN(K))*UNIV + DCLIN(K)
33619 IF (DT_RNDM(CST).LT.BWFW)THEN
33620 VALUE2=-1D0
33621 K=K+1
33622 ELSE
33623 VALUE2=1D0
33624 K=K+3
33625 END IF
33626C
33627 COEF=(DCLIN(K+5)-DCLIN(K))*UNIV + DCLIN(K)
33628 RND=DT_RNDM(COEF)
33629C
33630 IF(RND.LT.COEF)THEN
33631 CST=DT_RNDM(RND)
33632 CST=CST*VALUE2
33633 ELSE
33634 R1=DT_RNDM(CST)
33635 R2=DT_RNDM(R1)
33636 R3=DT_RNDM(R2)
33637 R4=DT_RNDM(R3)
33638C
33639 IF(VALUE2.GT.0.0)THEN
33640 CST=MAX(R1,R2,R3,R4)
33641 GOTO 1500
33642 ELSE
33643 R5=DT_RNDM(R4)
33644C
33645 IF (IDAT.EQ.1)THEN
33646 CST=-MAX(R1,R2,R3,R4,R5)
33647 ELSE
33648 R6=DT_RNDM(R5)
33649 R7=DT_RNDM(R6)
33650 CST=-MAX(R1,R2,R3,R4,R5,R6,R7)
33651 END IF
33652C
33653 END IF
33654C
33655 END IF
33656C
33657 GOTO 1500
33658C
33659C******** EKIN .GT. 0.74 GEV
33660C
336611000 ENER=EKIN - 0.66D0
33662C IE=ABS(ENER/0.02)
33663 IE=INT(ENER/0.02D0)
33664 EMEV=EKIN*1D3
33665C
33666 UNIV=(ENER-DBLE(IE)*0.020D0)/0.020D0
33667 K=IE
33668 BWFW=(DCHN(K+1)-DCHN(K))*UNIV + DCHN(K)
33669 RND=DT_RNDM(BWFW)
33670C FORWARD NEUTRON
33671 IF (RND.GE.BWFW)THEN
33672 DO 1200 K=10,36,9
33673 IF (DCHNA(K).GT.EMEV) THEN
33674 UNIVE=(EMEV-DCHNA(K-9))/(DCHNA(K)-DCHNA(K-9))
33675 UNIV=DT_RNDM(UNIVE)
33676 DO 1100 I=1,8
33677 II=K+I
33678 P=(DCHNA(II)-DCHNA(II-9))*UNIVE + DCHNA(II-9)
33679C
33680 IF (P.GT.UNIV)THEN
33681 UNIV=DT_RNDM(UNIVE)
33682 FLTI=DBLE(I)-UNIV
33683 GOTO(290,290,290,290,330,340,350,360) I
33684 END IF
33685 1100 CONTINUE
33686 END IF
33687 1200 CONTINUE
33688C
33689 ELSE
33690C BACKWARD NEUTRON
33691 DO 1400 K=13,60,12
33692 IF (DCHNB(K).GT.EMEV) THEN
33693 UNIVE=(EMEV-DCHNB(K-12))/(DCHNB(K)-DCHNB(K-12))
33694 UNIV=DT_RNDM(UNIVE)
33695 DO 1300 I=1,11
33696 II=K+I
33697 P=(DCHNB(II)-DCHNB(II-12))*UNIVE + DCHNB(II-12)
33698C
33699 IF (P.GT.UNIV)THEN
33700 UNIV=DT_RNDM(P)
33701 FLTI=DBLE(I)-UNIV
33702 GOTO(120,120,140,150,160,160,180,190,200,210,220) I
33703 END IF
33704 1300 CONTINUE
33705 END IF
33706 1400 CONTINUE
33707 END IF
33708C
33709120 CST=1.0D-2*FLTI-1.0D0
33710 GOTO 1500
33711140 CST=2.0D-2*UNIV-0.98D0
33712 GOTO 1500
33713150 CST=4.0D-2*UNIV-0.96D0
33714 GOTO 1500
33715160 CST=6.0D-2*FLTI-1.16D0
33716 GOTO 1500
33717180 CST=8.0D-2*UNIV-0.80D0
33718 GOTO 1500
33719190 CST=1.0D-1*UNIV-0.72D0
33720 GOTO 1500
33721200 CST=1.2D-1*UNIV-0.62D0
33722 GOTO 1500
33723210 CST=2.0D-1*UNIV-0.50D0
33724 GOTO 1500
33725220 CST=3.0D-1*(UNIV-1.0D0)
33726 GOTO 1500
33727C
33728290 CST=1.0D0-2.5d-2*FLTI
33729 GOTO 1500
33730330 CST=0.85D0+0.5D-1*UNIV
33731 GOTO 1500
33732340 CST=0.70D0+1.5D-1*UNIV
33733 GOTO 1500
33734350 CST=0.50D0+2.0D-1*UNIV
33735 GOTO 1500
33736360 CST=0.50D0*UNIV
33737C
337381500 RETURN
33739C
33740C----------------------------------- PP ELASTIC SCATTERING -------
33741C
33742 102 CONTINUE
33743 EMEV=EKIN*1D3
33744C
33745 IF (EKIN.LE.0.500D0) THEN
33746 RND=DT_RNDM(EMEV)
33747 CST=2.0D0*RND-1.0D0
33748 RETURN
33749C
33750 ELSEIF (EKIN.LT.1.0D0) THEN
33751 DO 2200 K=13,60,12
33752 IF (PDCI(K).GT.EMEV) THEN
33753 UNIVE=(EMEV-PDCI(K-12))/(PDCI(K)-PDCI(K-12))
33754 UNIV=DT_RNDM(UNIVE)
33755 SUM=0
33756 DO 2100 I=1,11
33757 II=K+I
33758 SUM=SUM + (PDCI(II)-PDCI(II-12))*UNIVE + PDCI(II-12)
33759C
33760 IF (UNIV.LT.SUM)THEN
33761 UNIV=DT_RNDM(SUM)
33762 FLTI=DBLE(I)-UNIV
33763 GOTO(55,55,55,60,60,65,65,65,65,70,70) I
33764 END IF
33765 2100 CONTINUE
33766 END IF
33767 2200 CONTINUE
33768 ELSE
33769 DO 2400 K=12,55,11
33770 IF (PDCH(K).GT.EMEV) THEN
33771 UNIVE=(EMEV-PDCH(K-11))/(PDCH(K)-PDCH(K-11))
33772 UNIV=DT_RNDM(UNIVE)
33773 SUM=0.0D0
33774 DO 2300 I=1,10
33775 II=K+I
33776 SUM=SUM + (PDCH(II)-PDCH(II-11))*UNIVE + PDCH(II-11)
33777C
33778 IF (UNIV.LT.SUM)THEN
33779 UNIV=DT_RNDM(SUM)
33780 FLTI=UNIV+DBLE(I)
33781 GOTO(50,55,60,60,65,65,65,65,70,70) I
33782 END IF
33783 2300 CONTINUE
33784 END IF
33785 2400 CONTINUE
33786 END IF
33787C
3378850 CST=0.4D0*UNIV
33789 GOTO 2500
3379055 CST=0.2D0*FLTI
33791 GOTO 2500
3379260 CST=0.3D0+0.1D0*FLTI
33793 GOTO 2500
3379465 CST=0.6D0+0.04D0*FLTI
33795 GOTO 2500
3379670 CST=0.78D0+0.02D0*FLTI
33797C
337982500 CONTINUE
33799 IF (DT_RNDM(CST).GT.0.5D0) CST=-CST
33800C
33801 RETURN
33802 END
33803
33804*$ CREATE DT_DHADRI.FOR
33805*COPY DT_DHADRI
33806*
33807*===dhadri=============================================================*
33808*
33809 SUBROUTINE DT_DHADRI(N,PLAB,ELAB,CX,CY,CZ,ITTA)
33810
33811 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
33812 SAVE
33813
33814 PARAMETER ( LINP = 10 ,
33815 & LOUT = 6 ,
33816 & LDAT = 9 )
33817C
33818C-----------------------------
33819C*** INPUT VARIABLES LIST:
33820C*** SAMPLING OF HADRON NUCLEON INTERACTION FOR (ABOUT) 0.1 LE PLAB LE 6
33821C*** GEV/C LABORATORY MOMENTUM REGION
33822C*** N - PROJECTILE HADRON INDEX
33823C*** PLAB - LABORATORY MOMENTUM OF N (GEV/C)
33824C*** ELAB - LABORATORY ENERGY OF N (GEV)
33825C*** CX,CY,CZ - DIRECTION COSINES OF N IN THE LABORATORY SYSTEM
33826C*** ITTA - TARGET NUCLEON INDEX
33827C*** OUTPUT VARIABLES LIST OF PARTICLE CHARACTERISTICS IN /FINLSP/
33828C IR COUNTS THE NUMBER OF PRODUCED PARTICLES
33829C*** ITR - PARTICLE INDEX, CXR,CYR,CZR - DIRECTION COSINES (LAB. SYST.)
33830C*** ELR,PLR LAB. ENERGY AND LAB. MOMENTUM OF THE SAMPLED PARTICLE
33831C*** RESPECT., UNITS (GEV/C AND GEV)
33832C----------------------------
33833
33834 COMMON /HNGAMR/ REDU,AMO,AMM(15)
33835 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
33836 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
33837 & NRK(2,268),NURE(30,2)
33838* particle properties (BAMJET index convention),
33839* (dublicate of DTPART for HADRIN)
33840 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
33841 & K1H(110),K2H(110)
33842 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
33843 COMMON /HNMETL/ CXS(149),CYS(149),CZS(149),ELS(149),PLS(149),
33844 & ITS(149),IS
33845 COMMON /HNDRUN/ RUNTES,EFTES
33846* particle properties (BAMJET index convention)
33847 CHARACTER*8 ANAME
33848 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
33849 & IICH(210),IIBAR(210),K1(210),K2(210)
33850* final state from HADRIN interaction
33851 PARAMETER (MAXFIN=10)
33852 COMMON /HNFSPA/ ITRH(MAXFIN),CXRH(MAXFIN),CYRH(MAXFIN),
33853 & CZRH(MAXFIN),ELRH(MAXFIN),PLRH(MAXFIN),IRH
33854
33855 DIMENSION ITPRF(110)
33856 DATA NNN/0/
33857 DATA UMODA/0./
33858 DATA ITPRF/-1,-1,5*1,-1,-1,1,1,1,-1,-1,-1,-1,6*1,-1,-1,-1,85*1/
33859 LOWP=0
33860 IF (N.LE.0.OR.N.GE.111)N=1
33861 IF (ITPRF( N ).GT.0 .OR. ITTA.GT.8) THEN
33862 GOTO 280
33863* WRITE (6,1000)
33864* + ' FALSE USE OF THE PARTICLE TYPE INDEX: N, ITTA', N, ITTA
33865* STOP
33866*1000 FORMAT (3(5H ****/),A,2I4,3(5H ****/))
33867* + 45H FALSE USE OF THE PARTICLE TYPE INDEX, N,LUE ,I4,3(5H ****/))
33868 ENDIF
33869 IATMPT=0
33870 IF (ABS(PLAB-5.0D0).LT.4.99999D0) GO TO 20
33871C IF(IPRI.GE.1) WRITE (6,1010) PLAB
33872C STOP
33873 1010 FORMAT ( ' PROJECTILE HADRON MOMENTUM OUTSIDE OF THE
33874 + ALLOWED REGION, PLAB=',1E15.5)
33875
33876 20 CONTINUE
33877 UMODAT=N*1.11111D0+ITTA*2.19291D0
33878 IF(UMODAT.NE.UMODA) CALL DT_DCALUM(N,ITTA)
33879 UMODA=UMODAT
33880 30 IATMPT=0
33881 LOWP=LOWP+1
33882 40 CONTINUE
33883 IMACH=0
33884 REDU=2.0D0
33885 IF (LOWP.GT.20) THEN
33886C WRITE(LOUT,*) ' jump 1'
33887 GO TO 280
33888 ENDIF
33889 NNN=N
33890 IF (NNN.EQ.N) GO TO 50
33891 RUNTES=0.0D0
33892 EFTES=0.0D0
33893 50 CONTINUE
33894 IS=1
33895 IRH=0
33896 IST=1
33897 NSTAB=23
33898 IRE=NURE(N,1)
33899 IF(ITTA.GT.1) IRE=NURE(N,2)
33900C
33901C-----------------------------
33902C*** IE,AMT,ECM,SI DETERMINATION
33903C----------------------------
33904 CALL DT_DSIGIN(IRE,PLAB,N,IE,AMT ,AMN,ECM,SI,ITTA)
33905 IANTH=-1
33906**sr
33907C IF (AMH(1).NE.0.93828D0) IANTH=1
33908 IF (AMH(1).NE.0.9383D0) IANTH=1
33909**
33910 IF (IANTH.GE.0) SI=1.0D0
33911 ECMMH=ECM
33912C
33913C-----------------------------
33914C ENERGY INDEX
33915C IRE CHARACTERIZES THE REACTION
33916C IE IS THE ENERGY INDEX
33917C----------------------------
33918 IF (SI.LT.1.D-6) THEN
33919C WRITE(LOUT,*) ' jump 2'
33920 GO TO 280
33921 ENDIF
33922 IF (N.LE.NSTAB) GO TO 60
33923 RUNTES=RUNTES+1.0D0
33924 IF (RUNTES.LT.20.D0) WRITE(LOUT,1020)N
33925 1020 FORMAT(3H N=,I10,30H THE PROEKTILE IS A RESONANCE )
33926 IF(IBARH(N).EQ.1) N=8
33927 IF(IBARH(N).EQ.-1) N=9
33928 60 CONTINUE
33929 IMACH=IMACH+1
33930**sr 19.2.97: loop for direct channel suppression
33931C IF (IMACH.GT.10) THEN
33932 IF (IMACH.GT.1000) THEN
33933**
33934C WRITE(LOUT,*) ' jump 3'
33935 GO TO 280
33936 ENDIF
33937 ECM =ECMMH
33938 AMN2=AMN**2
33939 AMT2=AMT**2
33940 ECMN=(ECM**2+AMN2-AMT2)/(2.0D0*ECM )
33941 IF(ECMN.LE.AMN) ECMN=AMN
33942 PCMN=SQRT(ECMN**2-AMN2)
33943 GAM=(ELAB+AMT)/ECM
33944 BGAM=PLAB/ECM
33945 IF (IANTH.GE.0) ECM=2.1D0
33946C
33947C-----------------------------
33948C*** RANDOM CHOICE OF REACTION CHANNEL
33949C----------------------------
33950 IST=0
33951 VV=DT_RNDM(AMN2)
33952 VV=VV-1.D-17
33953C
33954C-----------------------------
33955C*** PLACE REDUCED VERSION
33956C----------------------------
33957 IIEI=IEII(IRE)
33958 IDWK=IEII(IRE+1)-IIEI
33959 IIWK=IRII(IRE)
33960 IIKI=IKII(IRE)
33961C
33962C-----------------------------
33963C*** SHRINKAGE TO THE CONSIDERED ENERGY REGION FOR THE USE OF WEIGHTS
33964C----------------------------
33965 HECM=ECM
33966 HUMO=2.0D0*UMO(IIEI+IDWK)-UMO(IIEI+IDWK-1)
33967 IF (HUMO.LT.ECM) ECM=HUMO
33968C
33969C-----------------------------
33970C*** INTERPOLATION PREPARATION
33971C----------------------------
33972 ECMO=UMO(IE)
33973 ECM1=UMO(IE-1)
33974 DECM=ECMO-ECM1
33975 DEC=ECMO-ECM
33976C
33977C-----------------------------
33978C*** RANDOM LOOP
33979C----------------------------
33980 IK=0
33981 WKK=0.0D0
33982 WICOR=0.0D0
33983 70 IK=IK+1
33984 IWK=IIWK+(IK-1)*IDWK+IE-IIEI
33985 WOK=WK(IWK)
33986 WDK=WOK-WK(IWK-1)
33987C
33988C-----------------------------
33989C*** TESTVARIABLE WICO/WICOR: IF CHANNEL IK HAS THE SAME WEIGHTS LIKE IK
33990C GO TO NEXT CHANNEL, BECAUSE WKK((IK))-WKK((IK-1))=0, IK CAN NOT
33991C CONTRIBUTE
33992C----------------------------
33993 IF (PLAB.LT.PLABF(IIEI+2)) WDK=0.0D0
33994 WICO=WOK*1.23459876D0+WDK*1.735218469D0
33995 IF (WICO.EQ.WICOR) GO TO 70
33996 IF (UMO(IIEI+IDWK).LT.HECM) WDK=0.0D0
33997 WICOR=WICO
33998C
33999C-----------------------------
34000C*** INTERPOLATION IN CHANNEL WEIGHTS
34001C----------------------------
34002 EKLIM=-THRESH(IIKI+IK)
34003 IELIM=IDT_IEFUND(EKLIM,IRE)
34004 DELIM=UMO(IELIM)+EKLIM
34005 *+1.D-16
34006 DETE=(ECM-(ECMO-EKLIM)*0.5D0)*2.0D0
34007 IF (DELIM*DELIM-DETE*DETE) 90,90,80
34008 80 DECC=DELIM
34009 GO TO 100
34010 90 DECC=DECM
34011 100 CONTINUE
34012 WKK=WOK-WDK*DEC/(DECC+1.D-9)
34013C
34014C-----------------------------
34015C*** RANDOM CHOICE
34016C----------------------------
34017C
34018 IF (VV.GT.WKK) GO TO 70
34019C
34020C***IK IS THE REACTION CHANNEL
34021C----------------------------
34022 INRK=IKII(IRE)+IK
34023 ECM=HECM
34024 I1001 =0
34025C
34026 110 CONTINUE
34027 IT1=NRK(1,INRK)
34028 AM1=DT_DAMG(IT1)
34029 IT2=NRK(2,INRK)
34030 AM2=DT_DAMG(IT2)
34031 AMS=AM1+AM2
34032 I1001=I1001+1
34033 IF (I1001.GT.50) GO TO 60
34034C
34035 IF (IT2*AMS.GT.IT2*ECM) GO TO 110
34036 IT11=IT1
34037 IT22=IT2
34038 IF (IANTH.GE.0) ECM=ELAB+AMT+0.00001D0
34039 AM11=AM1
34040 AM22=AM2
34041 IF (IT2.GT.0) GO TO 120
34042**sr 19.2.97: supress direct channel for pp-collisions
34043 IF ((N.EQ.1).AND.(ITTA.EQ.1).AND.(IT2.LE.0)) THEN
34044 RR = DT_RNDM(AM11)
34045 IF (RR.LE.0.75D0) GOTO 60
34046 ENDIF
34047**
34048C
34049C-----------------------------
34050C INCLUSION OF DIRECT RESONANCES
34051C RANDOM CHOICE OF DECAY CHANNELS OF THE DIRECT RESONANCE IT1
34052C------------------------
34053 KZ1=K1H(IT1)
34054 IST=IST+1
34055 IECO=0
34056 ECO=ECM
34057 GAM=(ELAB+AMT)/ECO
34058 BGAM=PLAB/ECO
34059 CXS(1)=CX
34060 CYS(1)=CY
34061 CZS(1)=CZ
34062 GO TO 170
34063 120 CONTINUE
34064 WW=DT_RNDM(ECO)
34065 IF(WW.LT. 0.5D0) GO TO 130
34066 IT1=IT22
34067 IT2=IT11
34068 AM1=AM22
34069 AM2=AM11
34070 130 CONTINUE
34071C
34072C-----------------------------
34073C THE FIRST PARTICLE IS DEFINED TO BE THE FORWARD GOING ONE AT SMALL T
34074 IBN=IBARH(N)
34075 IB1=IBARH(IT1)
34076 IT11=IT1
34077 IT22=IT2
34078 AM11=AM1
34079 AM22=AM2
34080 IF(IB1.EQ.IBN) GO TO 140
34081 IT1=IT22
34082 IT2=IT11
34083 AM1=AM22
34084 AM2=AM11
34085 140 CONTINUE
34086C-----------------------------
34087C***IT1,IT2 ARE THE CREATED PARTICLES
34088C***MOMENTA AND DIRECTION COSINA IN THE CM - SYSTEM
34089C------------------------
34090 CALL DT_DTWOPA(ECM1,ECM2,PCM1,PCM2,COD1,COD2,COF1,COF2,SIF1,SIF2,
34091 *IT1,IT2,ECM,ECMN,PCMN,N,AM1,AM2)
34092 IST=IST+1
34093 ITS(IST)=IT1
34094 AMM(IST)=AM1
34095C
34096C-----------------------------
34097C***TRANSFORMATION INTO LAB SYSTEM AND ROTATION
34098C----------------------------
34099 CALL DT_DTRAFO(GAM,BGAM,CX,CY,CZ,COD1,COF1,SIF1,
34100 &PCM1,ECM1,PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34101 IST=IST+1
34102 ITS(IST)=IT2
34103 AMM(IST)=AM2
34104 CALL DT_DTRAFO(GAM,BGAM,CX,CY,CZ,COD2,COF2,SIF2,
34105 *PCM2,ECM2,PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34106 150 CONTINUE
34107C
34108C-----------------------------
34109C***TEST STABLE OR UNSTABLE
34110C----------------------------
34111 IF(ITS(IST).GT.NSTAB) GO TO 160
34112 IRH=IRH+1
34113C
34114C-----------------------------
34115C***IRH IS THE NUMBER OF THE FINAL STABLE PARTICLE
34116C----------------------------
34117C* IF (REDU.LT.0.D0) GO TO 1009
34118 ITRH(IRH)=ITS(IST)
34119 PLRH(IRH)=PLS(IST)
34120 CXRH(IRH)=CXS(IST)
34121 CYRH(IRH)=CYS(IST)
34122 CZRH(IRH)=CZS(IST)
34123 ELRH(IRH)=ELS(IST)
34124 IST=IST-1
34125 IF(IST.GE.1) GO TO 150
34126 GO TO 260
34127 160 CONTINUE
34128C
34129C RANDOM CHOICE OF DECAY CHANNELS
34130C----------------------------
34131C
34132 IT=ITS(IST)
34133 ECO=AMM(IST)
34134 GAM=ELS(IST)/ECO
34135 BGAM=PLS(IST)/ECO
34136 IECO=0
34137 KZ1=K1H(IT)
34138 170 CONTINUE
34139 IECO=IECO+1
34140 VV=DT_RNDM(GAM)
34141 VV=VV-1.D-17
34142 IIK=KZ1-1
34143 180 IIK=IIK+1
34144 IF (VV.GT.WTI(IIK)) GO TO 180
34145C
34146C IIK IS THE DECAY CHANNEL
34147C----------------------------
34148 IT1=NZKI(IIK,1)
34149 I310=0
34150 190 CONTINUE
34151 I310=I310+1
34152 AM1=DT_DAMG(IT1)
34153 IT2=NZKI(IIK,2)
34154 AM2=DT_DAMG(IT2)
34155 IF (IT2-1.LT.0) GO TO 240
34156 IT3=NZKI(IIK,3)
34157 AM3=DT_DAMG(IT3)
34158 AMS=AM1+AM2+AM3
34159C
34160C IF IIK-KIN.LIM.GT.ACTUAL TOTAL CM-ENERGY, DO AGAIN RANDOM IIK-CHOICE
34161C----------------------------
34162 IF (IECO.LE.10) GO TO 200
34163 IATMPT=IATMPT+1
34164 IF(IATMPT.GT.3) THEN
34165C WRITE(LOUT,*) ' jump 4'
34166 GO TO 280
34167 ENDIF
34168 GO TO 40
34169 200 CONTINUE
34170 IF (I310.GT.50) GO TO 170
34171 IF (AMS.GT.ECO) GO TO 190
34172C
34173C FOR THE DECAY CHANNEL
34174C IT1,IT2, IT3 ARE THE PRODUCED PARTICLES FROM IT
34175C----------------------------
34176 IF (REDU.LT.0.D0) GO TO 30
34177 ITWTHC=0
34178 REDU=2.0D0
34179 IF(IT3.EQ.0) GO TO 220
34180 210 CONTINUE
34181 ITWTH=1
34182 CALL DT_DTHREP(ECO,ECM1,ECM2,ECM3,PCM1,PCM2,PCM3,COD1,COF1,SIF1,
34183 *COD2,COF2,SIF2,COD3,COF3,SIF3,AM1,AM2,AM3)
34184 GO TO 230
34185 220 CALL DT_DTWOPD(ECO,ECM1,ECM2,PCM1,PCM2,COD1,COF1,SIF1,
34186 &COD2,COF2,SIF2,AM1,AM2)
34187 ITWTH=-1
34188 IT3=0
34189 230 CONTINUE
34190 ITWTHC=ITWTHC+1
34191 IF (REDU.GT.0.D0) GO TO 240
34192 REDU=2.0D0
34193 IF (ITWTHC.GT.100) GO TO 30
34194 IF (ITWTH) 220,220,210
34195 240 CONTINUE
34196 ITS(IST )=IT1
34197 IF (IT2-1.LT.0) GO TO 250
34198 ITS(IST+1) =IT2
34199 ITS(IST+2)=IT3
34200 RX=CXS(IST)
34201 RY=CYS(IST)
34202 RZ=CZS(IST)
34203 AMM(IST)=AM1
34204 CALL DT_DTRAFO(GAM,BGAM,RX,RY,RZ,COD1,COF1,SIF1,PCM1,ECM1,
34205 *PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34206 IST=IST+1
34207 AMM(IST)=AM2
34208 CALL DT_DTRAFO(GAM,BGAM,RX,RY,RZ,COD2,COF2,SIF2,PCM2,ECM2,
34209 *PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34210 IF (IT3.LE.0) GO TO 250
34211 IST=IST+1
34212 AMM(IST)=AM3
34213 CALL DT_DTRAFO(GAM,BGAM,RX,RY,RZ,COD3,COF3,SIF3,PCM3,ECM3,
34214 *PLS(IST),CXS(IST),CYS(IST),CZS(IST),ELS(IST))
34215 250 CONTINUE
34216 GO TO 150
34217 260 CONTINUE
34218 270 CONTINUE
34219 RETURN
34220 280 CONTINUE
34221C
34222C----------------------------
34223C
34224C ZERO CROSS SECTION CASE
34225C----------------------------
34226C
34227 IRH=1
34228 ITRH(1)=N
34229 CXRH(1)=CX
34230 CYRH(1)=CY
34231 CZRH(1)=CZ
34232 ELRH(1)=ELAB
34233 PLRH(1)=PLAB
34234 RETURN
34235 END
34236
34237*$ CREATE DT_RUNTT.FOR
34238*COPY DT_RUNTT
34239*
34240*===runtt==============================================================*
34241*
34242 BLOCK DATA DT_RUNTT
34243
34244 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34245 SAVE
34246
34247 COMMON /HNDRUN/ RUNTES,EFTES
34248
34249 DATA RUNTES,EFTES /100.D0,100.D0/
34250
34251 END
34252
34253*$ CREATE DT_NONAME.FOR
34254*COPY DT_NONAME
34255*
34256*===noname=============================================================*
34257*
34258 BLOCK DATA DT_NONAME
34259
34260 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34261 SAVE
34262
34263* slope parameters for HADRIN interactions
34264 COMMON /HNSLOP/ SM(25),BBM(25),BBB(25)
34265 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34266
34267C DATAS DATAS DATAS DATAS DATAS
34268C****** *********
34269 DATA IKII/ 0, 15, 41, 67, 82, 93, 110, 133, 148, 159, 172, 183,
34270 & 207, 224, 241, 252, 268 /
34271 DATA IEII/ 0, 21, 46, 71, 92, 109, 126, 143, 160, 173, 186, 199,
34272 & 220, 241, 262, 279, 296 /
34273 DATA IRII/ 0, 315, 965, 1615, 1930, 2117, 2406, 2797, 3052, 3195,
34274 & 3364, 3507, 4011, 4368, 4725, 4912, 5184/
34275
34276C
34277C MASSES FOR THE SLOPE B(M) IN GEV
34278C SLOPE B(M) FOR AN MESONIC SYSTEM
34279C SLOPE B(M) FOR A BARYONIC SYSTEM
34280
34281*
34282 DATA SM,BBM,BBB/ 0.8D0, 0.85D0, 0.9D0, 0.95D0, 1.D0,
34283 & 1.05D0, 1.1D0, 1.15D0, 1.2D0, 1.25D0,
34284 & 1.3D0, 1.35D0, 1.4D0, 1.45D0, 1.5D0,
34285 & 1.55D0, 1.6D0, 1.65D0, 1.7D0, 1.75D0,
34286 & 1.8D0, 1.85D0, 1.9D0, 1.95D0, 2.D0,
34287 & 15.6D0, 14.95D0, 14.3D0, 13.65D0, 13.D0,
34288 & 12.35D0, 11.7D0, 10.85D0, 10.D0, 9.15D0,
34289 & 8.3D0, 7.8D0, 7.3D0, 7.25D0, 7.2D0,
34290 & 6.95D0, 6.7D0, 6.6D0, 6.5D0, 6.3D0,
34291 & 6.1D0, 5.85D0, 5.6D0, 5.35D0, 5.1D0,
34292 & 15.D0, 15.D0, 15.D0, 15.D0, 15.D0, 15.D0, 15.D0,
34293 & 14.2D0, 13.4D0, 12.6D0,
34294 & 11.8D0, 11.2D0, 10.6D0, 9.8D0, 9.D0,
34295 & 8.25D0, 7.5D0, 6.25D0, 5.D0, 4.5D0, 5*4.D0 /
34296*
34297 END
34298
34299*$ CREATE DT_DAMG.FOR
34300*COPY DT_DAMG
34301*
34302*===damg===============================================================*
34303*
34304 DOUBLE PRECISION FUNCTION DT_DAMG(IT)
34305
34306 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34307 SAVE
34308
34309* particle properties (BAMJET index convention),
34310* (dublicate of DTPART for HADRIN)
34311 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34312 & K1H(110),K2H(110)
34313
34314 DIMENSION GASUNI(14)
34315 DATA GASUNI/
34316 *-1.D0,-.98D0,-.95D0,-.87D0,-.72D0,-.48D0,
34317 *-.17D0,.17D0,.48D0,.72D0,.87D0,.95D0,.98D0,1.D0/
34318 DATA GAUNO/2.352D0/
34319 DATA GAUNON/2.4D0/
34320 DATA IO/14/
34321 DATA NSTAB/23/
34322
34323 I=1
34324 IF (IT.LE.0) GO TO 30
34325 IF (IT.LE.NSTAB) GO TO 20
34326 DGAUNI=GAUNO*GAUNON/DBLE(IO-1)
34327 VV=DT_RNDM(DGAUNI)
34328 VV=VV*2.0D0-1.0D0+1.D-16
34329 10 CONTINUE
34330 VO=GASUNI(I)
34331 I=I+1
34332 V1=GASUNI(I)
34333 IF (VV.GT.V1) GO TO 10
34334 UNIGA=DGAUNI*(DBLE(I)-2.0D0+(VV-VO+1.D-16)/
34335 & (V1-VO)-(DBLE(IO)-1.0D0)*0.5D0)
34336 DAM=GAH(IT)*UNIGA/GAUNO
34337 AAM=AMH(IT)+DAM
34338 DT_DAMG=AAM
34339 RETURN
34340 20 CONTINUE
34341 DT_DAMG=AMH(IT)
34342 RETURN
34343 30 CONTINUE
34344 DT_DAMG=0.0D0
34345 RETURN
34346 END
34347
34348*$ CREATE DT_DCALUM.FOR
34349*COPY DT_DCALUM
34350*
34351*===dcalum=============================================================*
34352*
34353 SUBROUTINE DT_DCALUM(N,ITTA)
34354
34355 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34356 SAVE
34357
34358C*** C.M.S.-ENERGY AND REACTION CHANNEL THRESHOLD CALCULATION
34359
34360* particle properties (BAMJET index convention),
34361* (dublicate of DTPART for HADRIN)
34362 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34363 & K1H(110),K2H(110)
34364 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34365 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
34366 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34367 & NRK(2,268),NURE(30,2)
34368
34369 IRE=NURE(N,ITTA/8+1)
34370 IEO=IEII(IRE)+1
34371 IEE=IEII(IRE +1)
34372 AM1=AMH(N )
34373 AM12=AM1**2
34374 AM2=AMH(ITTA)
34375 AM22=AM2**2
34376 DO 10 IE=IEO,IEE
34377 PLAB2=PLABF(IE)**2
34378 ELAB=SQRT(AM12+AM22+2.0D0*SQRT(PLAB2+AM12)*AM2)
34379 UMO(IE)=ELAB
34380 10 CONTINUE
34381 IKO=IKII(IRE)+1
34382 IKE=IKII(IRE +1)
34383 UMOO=UMO(IEO)
34384 DO 30 IK=IKO,IKE
34385 IF(NRK(2,IK).GT.0) GO TO 30
34386 IKI=NRK(1,IK)
34387 AMSS=5.0D0
34388 K11=K1H(IKI)
34389 K22=K2H(IKI)
34390 DO 20 IK1=K11,K22
34391 IN=NZKI(IK1,1)
34392 AMS=AMH(IN)
34393 IN=NZKI(IK1,2)
34394 IF(IN.GT.0)AMS=AMS+AMH(IN)
34395 IN=NZKI(IK1,3)
34396 IF(IN.GT.0) AMS=AMS+AMH(IN)
34397 IF (AMS.LT.AMSS) AMSS=AMS
34398 20 CONTINUE
34399 IF(UMOO.LT.AMSS) UMOO=AMSS
34400 THRESH(IK)=UMOO
34401 30 CONTINUE
34402 RETURN
34403 END
34404
34405*$ CREATE DT_DCHANH.FOR
34406*COPY DT_DCHANH
34407*
34408*===dchanh=============================================================*
34409*
34410 SUBROUTINE DT_DCHANH
34411
34412 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34413 SAVE
34414
34415 PARAMETER ( LINP = 10 ,
34416 & LOUT = 6 ,
34417 & LDAT = 9 )
34418* particle properties (BAMJET index convention),
34419* (dublicate of DTPART for HADRIN)
34420 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34421 & K1H(110),K2H(110)
34422 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
34423 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34424 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34425 & NRK(2,268),NURE(30,2)
34426
34427 DIMENSION HWT(460),HWK(40),SI(5184)
34428 EQUIVALENCE (WK(1),SI(1))
34429C--------------------
34430C*** USE ONLY FOR DATAPREPARATION OF PURE HADRIN
34431C*** CALCULATION OF REACTION- AND DECAY-CHANNEL-WEIGHTS,
34432C*** THRESHOLD ENERGIES+MOMENTA OF REACTION CHNLS.
34433C*** CHANGE OF WT- AND WK-INPUTDATA INTO WEIGHTS FOR THE M.-C.-PROCEDURE
34434C*** (ADDED ONE TO EACH OTHER FOR CORRESPONDING CHANNELS)
34435C--------------------------
34436 IREG=16
34437 DO 90 IRE=1,IREG
34438 IWKO=IRII(IRE)
34439 IEE=IEII(IRE+1)-IEII(IRE)
34440 IKE=IKII(IRE+1)-IKII(IRE)
34441 IEO=IEII(IRE)+1
34442 IIKA=IKII(IRE)
34443* modifications to suppress elestic scattering 24/07/91
34444 DO 80 IE=1,IEE
34445 SIS=1.D-14
34446 SINORC=0.0D0
34447 DO 10 IK=1,IKE
34448 IWK=IWKO+IEE*(IK-1)+IE
34449 IF(NRK(2,IIKA+IK).EQ.0) SINORC=1.0D0
34450 SIS=SIS+SI(IWK)*SINORC
34451 10 CONTINUE
34452 SIIN(IEO+IE-1)=SIS
34453 SIO=0.D0
34454 IF (SIS.GE.1.D-12) GO TO 20
34455 SIS=1.D0
34456 SIO=1.D0
34457 20 CONTINUE
34458 SINORC=0.0D0
34459 DO 30 IK=1,IKE
34460 IWK=IWKO+IEE*(IK-1)+IE
34461 IF(NRK(2,IIKA+IK).EQ.0) SINORC=1.0D0
34462 SIO=SIO+SI(IWK)*SINORC/SIS
34463 HWK(IK)=SIO
34464 30 CONTINUE
34465 DO 40 IK=1,IKE
34466 IWK=IWKO+IEE*(IK-1)+IE
34467 40 WK(IWK)=HWK(IK)
34468 IIKI=IKII(IRE)
34469 DO 70 IK=1,IKE
34470 AM111=0.D0
34471 INRK1=NRK(1,IIKI+IK)
34472 IF (INRK1.GT.0) AM111=AMH(INRK1)
34473 AM222=0.D0
34474 INRK2=NRK(2,IIKI+IK)
34475 IF (INRK2.GT.0) AM222=AMH(INRK2)
34476 THRESH(IIKI+IK)=AM111 +AM222
34477 IF (INRK2-1.GE.0) GO TO 60
34478 INRKK=K1H(INRK1)
34479 AMSS=5.D0
34480 INRKO=K2H(INRK1)
34481 DO 50 INRK1=INRKK,INRKO
34482 INZK1=NZKI(INRK1,1)
34483 INZK2=NZKI(INRK1,2)
34484 INZK3=NZKI(INRK1,3)
34485 IF (INZK1.LE.0.OR.INZK1.GT.110) GO TO 50
34486 IF (INZK2.LE.0.OR.INZK2.GT.110) GO TO 50
34487 IF (INZK3.LE.0.OR.INZK3.GT.110) GO TO 50
34488C WRITE (6,310)INRK1,INZK1,INZK2,INZK3
34489 1000 FORMAT (4I10)
34490 AMS=AMH(INZK1)+AMH(INZK2)
34491 IF (INZK3-1.GE.0) AMS=AMS+AMH(INZK3)
34492 IF (AMSS.GT.AMS) AMSS=AMS
34493 50 CONTINUE
34494 AMS=AMSS
34495 IF (AMS.LT.UMO(IEO)) AMS=UMO(IEO)
34496 THRESH(IIKI+IK)=AMS
34497 60 CONTINUE
34498 70 CONTINUE
34499 80 CONTINUE
34500 90 CONTINUE
34501 DO 100 J=1,460
34502 100 HWT(J)=0.D0
34503 DO 120 I=1,110
34504 IK1=K1H(I)
34505 IK2=K2H(I)
34506 HV=0.D0
34507 IF (IK2.GT.460)IK2=460
34508 IF (IK1.LE.0)IK1=1
34509 DO 110 J=IK1,IK2
34510 HV=HV+WTI(J)
34511 HWT(J)=HV
34512 JI=J
34513 110 CONTINUE
34514 IF (ABS(HV-1.0D0).GT.1.D-4) WRITE(LOUT,1010)I,JI,HV
34515 1010 FORMAT (35H ERROR IN HWT, FALSE USE OF CHANWH ,2I6,F10.2)
34516 120 CONTINUE
34517 DO 130 J=1,460
34518 130 WTI(J)=HWT(J)
34519 RETURN
34520 END
34521
34522*$ CREATE DT_DHADDE.FOR
34523*COPY DT_DHADDE
34524*
34525*===dhadde=============================================================*
34526*
34527 SUBROUTINE DT_DHADDE
34528
34529 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34530 SAVE
34531
34532* particle properties (BAMJET index convention)
34533 CHARACTER*8 ANAME
34534 COMMON /DTPART/ ANAME(210),AAM(210),GA(210),TAU(210),
34535 & IICH(210),IIBAR(210),K1(210),K2(210)
34536* HADRIN: decay channel information
34537 PARAMETER (IDMAX9=602)
34538 CHARACTER*8 ZKNAME
34539 COMMON /HNDECH/ ZKNAME(IDMAX9),WT(IDMAX9),NZK(IDMAX9,3)
34540* particle properties (BAMJET index convention),
34541* (dublicate of DTPART for HADRIN)
34542 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34543 & K1H(110),K2H(110)
34544 COMMON /HNSPLI/ WTI(460),NZKI(460,3)
34545* decay channel information for HADRIN
34546 COMMON /HNADDH/ AMZ(16),GAZ(16),TAUZ(16),ICHZ(16),IBARZ(16),
34547 & K1Z(16),K2Z(16),WTZ(153),II22,
34548 & NZK1(153),NZK2(153),NZK3(153)
34549
34550 DATA IRETUR/0/
34551
34552 IRETUR=IRETUR+1
34553 AMH(31)=0.48D0
34554 IF (IRETUR.GT.1) RETURN
34555 DO 10 I=1,94
34556 AMH(I) = AAM(I)
34557 GAH(I) = GA(I)
34558 TAUH(I) = TAU(I)
34559 ICHH(I) = IICH(I)
34560 IBARH(I) = IIBAR(I)
34561 K1H(I) = K1(I)
34562 K2H(I) = K2(I)
34563 10 CONTINUE
34564**sr
34565C AMH(1)=0.93828D0
34566 AMH(1)=0.9383D0
34567**
34568 AMH(2)=AMH(1)
34569 DO 20 I=26,30
34570 K1H(I)=452
34571 K2H(I)=452
34572 20 CONTINUE
34573 DO 30 I=1,307
34574 WTI(I) = WT(I)
34575 NZKI(I,1) = NZK(I,1)
34576 NZKI(I,2) = NZK(I,2)
34577 NZKI(I,3) = NZK(I,3)
34578 30 CONTINUE
34579 DO 40 I=1,16
34580 L=I+94
34581 AMH(L)=AMZ(I)
34582 GAH( L)=GAZ(I)
34583 TAUH( L)=TAUZ(I)
34584 ICHH( L)=ICHZ(I)
34585 IBARH( L)=IBARZ(I)
34586 K1H( L)=K1Z(I)
34587 K2H( L)=K2Z(I)
34588 40 CONTINUE
34589 DO 50 I=1,153
34590 L=I+307
34591 WTI(L) = WTZ(I)
34592 NZKI(L,3) = NZK3(I)
34593 NZKI(L,2) = NZK2(I)
34594 NZKI(L,1) = NZK1(I)
34595 50 CONTINUE
34596 RETURN
34597 END
34598
34599*$ CREATE IDT_IEFUND.FOR
34600*COPY IDT_IEFUND
34601*
34602*===iefund=============================================================*
34603*
34604 INTEGER FUNCTION IDT_IEFUND(PL,IRE)
34605
34606 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34607 SAVE
34608
34609C*****IEFUN CALCULATES A MOMENTUM INDEX
34610
34611 PARAMETER ( LINP = 10 ,
34612 & LOUT = 6 ,
34613 & LDAT = 9 )
34614 COMMON /HNDRUN/ RUNTES,EFTES
34615 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34616 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34617 & NRK(2,268),NURE(30,2)
34618
34619 IPLA=IEII(IRE)+1
34620 *+1
34621 IPLE=IEII(IRE+1)
34622 IF (PL.LT.0.) GO TO 30
34623 DO 10 I=IPLA,IPLE
34624 J=I-IPLA+1
34625 IF (PL.LE.PLABF(I)) GO TO 60
34626 10 CONTINUE
34627 I=IPLE
34628 IF ( EFTES.GT.40.D0) GO TO 20
34629 EFTES=EFTES+1.0D0
34630 WRITE(LOUT,1000)PL,J
34631 20 CONTINUE
34632 GO TO 70
34633 30 CONTINUE
34634 DO 40 I=IPLA,IPLE
34635 J=I-IPLA+1
34636 IF (-PL.LE.UMO(I)) GO TO 60
34637 40 CONTINUE
34638 I=IPLE
34639 IF ( EFTES.GT.40.D0) GO TO 50
34640 EFTES=EFTES+1.0D0
34641 WRITE(LOUT,1000)PL,I
34642 50 CONTINUE
34643 60 CONTINUE
34644 70 CONTINUE
34645 IDT_IEFUND=I
34646 RETURN
34647 1000 FORMAT(14H PLAB OR -ECM=,E12.4,27H IS OUT OF CONSIDERED RANGE ,
34648 +7H IEFUN=,I5)
34649 END
34650
34651*$ CREATE DT_DSIGIN.FOR
34652*COPY DT_DSIGIN
34653*
34654*===dsigin=============================================================*
34655*
34656 SUBROUTINE DT_DSIGIN(IRE ,PLAB,N,IE ,AMT ,AMN,ECM ,SI ,ITAR)
34657
34658 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34659 SAVE
34660
34661* particle properties (BAMJET index convention),
34662* (dublicate of DTPART for HADRIN)
34663 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34664 & K1H(110),K2H(110)
34665 COMMON /HNREDV/ THRESH(268),IRII(17),IKII(17),IEII(17)
34666 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34667 & NRK(2,268),NURE(30,2)
34668
34669 IE=IDT_IEFUND(PLAB,IRE)
34670 IF (IE.LE.IEII(IRE)) IE=IE+1
34671 AMT=AMH(ITAR)
34672 AMN=AMH(N)
34673 AMN2=AMN*AMN
34674 AMT2=AMT*AMT
34675 ECM=SQRT(AMN2+AMT2+2.0D0*AMT*SQRT(AMN2+PLAB**2))
34676C*** INTERPOLATION PREPARATION
34677 ECMO=UMO(IE)
34678 ECM1=UMO(IE-1)
34679 DECM=ECMO-ECM1
34680 DEC=ECMO-ECM
34681 IIKI=IKII(IRE)+1
34682 EKLIM=-THRESH(IIKI)
34683 WOK=SIIN(IE)
34684 WDK=WOK-SIIN(IE-1)
34685 IF (ECM.GT.ECMO) WDK=0.0D0
34686C*** INTERPOLATION IN CHANNEL WEIGHTS
34687 IELIM=IDT_IEFUND(EKLIM,IRE)
34688 DELIM=UMO(IELIM)+EKLIM
34689 *+1.D-16
34690 DETE=(ECM-(ECMO-EKLIM)*0.5D0)*2.0D0
34691 IF (DELIM*DELIM-DETE*DETE) 20,20,10
34692 10 DECC=DELIM
34693 GO TO 30
34694 20 DECC=DECM
34695 30 CONTINUE
34696 WKK=WOK-WDK*DEC/(DECC+1.D-9)
34697 IF (WKK.LT.0.0D0) WKK=0.0D0
34698 SI=WKK+1.D-12
34699 IF (-EKLIM.GT.ECM) SI=1.D-14
34700 RETURN
34701 END
34702
34703*$ CREATE DT_DTCHOI.FOR
34704*COPY DT_DTCHOI
34705*
34706*===dtchoi=============================================================*
34707*
34708 SUBROUTINE DT_DTCHOI(T,P,PP,E,EE,I,II,N,AM1,AM2)
34709
34710 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34711 SAVE
34712
34713C ****************************
34714C TCHOIC CALCULATES A RANDOM VALUE
34715C FOR THE FOUR-MOMENTUM-TRANSFER T
34716C ****************************
34717
34718* particle properties (BAMJET index convention),
34719* (dublicate of DTPART for HADRIN)
34720 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34721 & K1H(110),K2H(110)
34722* slope parameters for HADRIN interactions
34723 COMMON /HNSLOP/ SM(25),BBM(25),BBB(25)
34724
34725 AMA=AM1
34726 AMB=AM2
34727 IF (I.GT.30.AND.II.GT.30) GO TO 20
34728 III=II
34729 AM3=AM2
34730 IF (I.LE.30) GO TO 10
34731 III=I
34732 AM3=AM1
34733 10 CONTINUE
34734 GO TO 30
34735 20 CONTINUE
34736 III=II
34737 AM3=AM2
34738 IF (AMA.LE.AMB) GO TO 30
34739 III=I
34740 AM3=AM1
34741 30 CONTINUE
34742 IB=IBARH(III)
34743 AMA=AM3
34744 K=INT((AMA-0.75D0)/0.05D0)
34745 IF (K-2.LT.0) K=1
34746 IF (K-26.GE.0) K=25
34747 IF (IB)50,40,50
34748 40 BM=BBM(K)
34749 GO TO 60
34750 50 BM=BBB(K)
34751 60 CONTINUE
34752C NORMALIZATION
34753 TMIN=-2.0D0*(E*EE-P*PP)+AMH(N)**2+AM1 **2
34754 TMAX=-2.0D0*(E*EE+P*PP)+AMH(N)**2+AM1 **2
34755 VB=DT_RNDM(TMIN)
34756**sr test
34757C IF (VB.LT.0.2D0) BM=BM*0.1
34758C **0.5
34759 BM = BM*5.05D0
34760**
34761 TMI=BM*TMIN
34762 TMA=BM*TMAX
34763 ETMA=0.D0
34764 IF (ABS(TMA).GT.120.D0) GO TO 70
34765 ETMA=EXP(TMA)
34766 70 CONTINUE
34767 AN=(1.0D0/BM)*(EXP(TMI)-ETMA)
34768C*** RANDOM CHOICE OF THE T - VALUE
34769 R=DT_RNDM(TMI)
34770 T=(1.0D0/BM)*LOG(ETMA+R*AN*BM)
34771 RETURN
34772 END
34773
34774*$ CREATE DT_DTWOPA.FOR
34775*COPY DT_DTWOPA
34776*
34777*===dtwopa=============================================================*
34778*
34779 SUBROUTINE DT_DTWOPA(E1,E2,P1,P2,COD1,COD2,COF1,COF2,SIF1,SIF2,
34780 &IT1,IT2,UMOO,ECM,P,N,AM1,AM2)
34781
34782 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34783 SAVE
34784
34785C ******************************************************
34786C QUASI TWO PARTICLE PRODUCTION
34787C TWOPAR CALCULATES THE ENERGYS AND THE MOMENTA
34788C FOR THE CREATED PARTICLES OR RESONANCES IT1 AND IT2
34789C IN THE CM - SYSTEM
34790C COD1,COD2,COF1,COF2,SIF1,SIF2 ARE THE ANGLES FOR
34791C SPHERICAL COORDINATES
34792C ******************************************************
34793
34794* particle properties (BAMJET index convention),
34795* (dublicate of DTPART for HADRIN)
34796 COMMON /HNABLT/ AMH(110),GAH(110),TAUH(110),ICHH(110),IBARH(110),
34797 & K1H(110),K2H(110)
34798
34799 AMA=AM1
34800 AMB=AM2
34801 AMA2=AMA*AMA
34802 E1=((UMOO-AMB)*(UMOO+AMB) + AMA2)/(2.0D0*UMOO)
34803 E2=UMOO - E1
34804 IF (E1.LT.AMA*1.00001D0) E1=AMA*1.00001D0
34805 AMTE=(E1-AMA)*(E1+AMA)
34806 AMTE=AMTE+1.D-18
34807 P1=SQRT(AMTE)
34808 P2=P1
34809C / P2 / = / P1 / BUT OPPOSITE DIRECTIONS
34810C DETERMINATION OF THE ANGLES
34811C COS(THETA1)=COD1 COS(THETA2)=COD2
34812C SIN(PHI1)=SIF1 SIN(PHI2)=SIF2
34813C COS(PHI1)=COF1 COS(PHI2)=COF2
34814C PHI IS UNIFORMLY DISTRIBUTED IN ( 0,2*PI )
34815 CALL DT_DSFECF(COF1,SIF1)
34816 COF2=-COF1
34817 SIF2=-SIF1
34818C CALCULATION OF THETA1
34819 CALL DT_DTCHOI(TR,P,P1,ECM,E1,IT1,IT2,N,AM1,AM2)
34820 COD1=(TR-AMA2-AMH(N)*AMH(N)+2.0D0*ECM*E1)/(2.0D0*P*P1+1.D-18)
34821 IF (COD1.GT.0.9999999D0) COD1=0.9999999D0
34822 COD2=-COD1
34823 RETURN
34824 END
34825
34826*$ CREATE DT_ZK.FOR
34827*COPY DT_ZK
34828*
34829*===zk=================================================================*
34830*
34831 BLOCK DATA DT_ZK
34832
34833 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34834 SAVE
34835
34836* decay channel information for HADRIN
34837 COMMON /HNADDH/ AMZ(16),GAZ(16),TAUZ(16),ICHZ(16),IBARZ(16),
34838 & K1Z(16),K2Z(16),WTZ(153),II22,
34839 & NZK1(153),NZK2(153),NZK3(153)
34840* decay channel information for HADRIN
34841 CHARACTER*8 ANAMZ,ZKNAM4,ZKNAM5,ZKNAM6
34842 COMMON /HNADDN/ ANAMZ(16),ZKNAM4(9),ZKNAM5(90),ZKNAM6(54)
34843
34844* Particle masses in GeV *
34845 DATA AMZ/ 3*2.2D0, 0.9576D0, 3*1.887D0, 2.4D0, 2.03D0, 2*1.44D0,
34846 & 2*1.7D0, 3*0.D0/
34847* Resonance width Gamma in GeV *
34848 DATA GAZ/ 3*.2D0, .1D0, 4*.2D0, .18D0, 2*.2D0, 2*.15D0, 3*0.D0 /
34849* Mean life time in seconds *
34850 DATA TAUZ / 16*0.D0 /
34851* Charge of particles and resonances *
34852 DATA ICHZ/ 0, 1, 3*0, 1, -1, 0, 1, -1, 0, 0, 1 , 3*0 /
34853* Baryonic charge *
34854 DATA IBARZ/ 2, 7*0, 1, -1, -1, 1, 1, 3*0 /
34855* First number of decay channels used for resonances *
34856* and decaying particles *
34857 DATA K1Z/ 308,310,313,317,322,365,393,421,425,434,440,446,449,
34858 & 3*460/
34859* Last number of decay channels used for resonances *
34860* and decaying particles *
34861 DATA K2Z/ 309,312,316,321,364,392,420,424,433,439,445,448,451,
34862 & 3*460/
34863* Weight of decay channel *
34864 DATA WTZ/ .17D0, .83D0, 2*.33D0, .34D0, .17D0, 2*.33D0, .17D0,
34865 & .01D0, .13D0, .36D0, .27D0, .23D0, .0014D0, .0029D0, .0014D0,
34866 & .0029D0, 4*.0007D0, .0517D0, .0718D0, .0144D0, .0431D0, .0359D0,
34867 & .0718D0, .0014D0, .0273D0, .0014D0, .0431D0, 2*.0129D0, .0259D0,
34868 & .0517D0, .0359D0, .0014D0, 2*.0144D0, .0129D0, .0014D0, .0259D0,
34869 & .0359D0, .0072D0, .0474D0, .0948D0, .0259D0, .0072D0, .0144D0,
34870 & .0287D0, .0431D0, .0144D0, .0287D0, .0474D0, .0144D0, .0075D0,
34871 & .0057D0, .0019D0, .0038D0, .0095D0, 2*.0014D0, .0191D0, .0572D0,
34872 & .1430D0, 2*.0029D0, 5*.0477D0, .0019D0, .0191D0, .0686D0,.0172D0,
34873 & .0095D0, .1888D0, .0172D0, .0191D0, .0381D0, 2*.0571D0, .0190D0,
34874 & .0057D0, .0019D0, .0038D0, .0095D0, .0014D0, .0014D0, .0191D0,
34875 & .0572D0, .1430D0, 2*.0029D0, 5*.0477D0, .0019D0, .0191D0,.0686D0,
34876 & .0172D0, .0095D0, .1888D0, .0172D0, .0191D0, .0381D0, 2*.0571D0,
34877 & .0190D0, 4*.25D0, 2*.2D0, .12D0, .1D0, .07D0, .07D0, .14D0,
34878 & 2*.05D0, .0D0, .3334D0, .2083D0, 2*.125D0, .2083D0, .0D0, .125D0,
34879 & .2083D0, .3334D0, .2083D0, .125D0, .3D0, .05D0, .65D0, .3D0,
34880 & .05D0, .65D0, 9*1.D0 /
34881* Particle numbers in decay channel *
34882 DATA NZK1/ 8, 1, 2, 9, 1, 2, 9, 2, 9, 7, 13, 31, 15, 24, 23, 13,
34883 & 23, 13, 2*23, 14, 13, 23, 31, 98, 2*33, 32, 23, 14, 13, 35, 2*23,
34884 & 14, 13, 33, 23, 98, 31, 23, 14, 13, 35, 2*33, 32, 23, 35, 33, 32,
34885 & 98, 5*35, 4*13, 23, 13, 98, 32, 33, 23, 13, 23, 13, 14, 13, 32,
34886 & 13, 98, 23, 13, 2*32, 13, 33, 32, 98, 2*35, 4*14, 23, 14, 98,
34887 & 2*34, 23, 14, 23, 2*14, 13, 34, 14, 98, 23, 14, 2*34, 14, 33, 32,
34888 & 98, 2*35, 104, 61, 105, 62, 1, 17, 21, 17, 22, 2*21, 22, 21, 2,
34889 & 67, 68, 69, 2, 2*9, 68, 69, 70, 2, 9, 2*24, 15, 2*25, 16, 9*0/
34890 DATA NZK2/ 2*8, 1, 8, 9, 2*8, 2*1, 7, 14, 13, 16, 25, 23, 14, 23,
34891 & 14, 31, 33, 32, 34, 35, 31, 23, 31, 33, 34, 31, 32, 34, 31, 33,
34892 & 32, 2*33, 35, 31, 33, 31, 33, 32, 34, 35, 31, 33, 34, 35, 31,
34893 & 4*33, 32, 3*35, 2*23, 13, 31, 32, 33, 13, 31, 32, 2*31, 32, 33,
34894 & 32, 32, 35, 31, 2*32, 33, 31, 33, 35, 33, 3*32, 35, 2*23, 14,
34895 & 31, 34, 33, 14, 31, 33, 2*31, 34, 32, 33, 34, 35, 31, 2*34, 33,
34896 & 31, 33, 35, 33, 2*34, 33, 35, 1, 2, 8, 9, 25, 13, 35, 2*32, 33,
34897 & 31, 13, 23, 31, 13, 23, 14, 79, 80, 31, 13, 23, 14, 78, 79, 8,
34898 & 1, 8, 1, 8, 1, 9*0 /
34899 DATA NZK3/ 23, 14, 2*13, 23, 13, 2*23, 14, 0, 7, 14, 4*0, 2*23,
34900 & 10*0, 33, 2*31, 0, 33, 34, 32, 34, 0, 35, 0, 31, 3*35, 0, 3*31,
34901 & 35, 31, 33, 34, 31, 33, 34, 31, 33, 35, 0, 23, 14, 6*0, 32, 3*33,
34902 & 32, 34, 0, 35, 0, 2*35, 2*31, 35, 32, 34, 31, 33, 32, 0, 23, 13,
34903 & 6*0, 34, 2*33, 34, 33, 34, 0, 35, 0,2*35, 2*31, 35, 2*34, 31,
34904 & 2*34, 25*0, 23, 2*14, 23, 2*13, 9*0 /
34905* Particle names *
34906 DATA ANAMZ / 'NNPI', 'ANPPI', 'ANNPI', ' ETS ',' PAP ',' PAN ',
34907 & 'APN', 'DEO ', 'S+2030', 'AN*-14', 'AN*014','KONPI ','AKOPPI',
34908 & 3*'BLANK' /
34909* Name of decay channel *
34910 DATA ZKNAM4/'NNPI0','PNPI-','APPPI+','ANNPI+','ANPPI0','APNPI+',
34911 & 'ANNPI0','APPPI0','ANPPI-'/
34912 DATA ZKNAM5/' GAGA ','P+P-GA','ETP+P-','K+K- ','K0AK0 ',
34913 & ' POPO ',' P+P- ','POPOPO','P+P0P-','P0ET ','&0R0 ','P-R+ ',
34914 & 'P+R- ','POOM ',' ETET ','ETSP0 ','R0ET ',' R0R0 ','R+R- ',
34915 & 'P0ETR0','P-ETR+','P+ETR-',' OMET ','P0R0R0','P0R+R-','P-R+R0',
34916 & 'P+R-R0','R0OM ','P0ETOM','ETSR0 ','ETETET','P0R0OM','P-R+OM',
34917 & 'P+R-OM','OMOM ','R0ETET','R0R0ET','R+R-ET','P0OMOM','OMETET',
34918 & 'R0R0R0','R+R0R-','ETSRET','OMR0R0','OMR+R-','OMOMET','OMOMR0',
34919 & 'OMOMOM',
34920 & ' P+PO ','P+POPO','P+P+P-','P+ET ','P0R+ ','P+R0 ','ETSP+ ',
34921 & 'R+ET ',' R0R+ ','POETR+','P+ETR0','POR+R-','P+R0R0','P-R+R+',
34922 & 'P+R-R+','R+OM ','P+ETOM','ETSR+ ','POR+OM','P+R0OM','R+ETET',
34923 & 'R+R0ET','P+OMOM','R0R0R+','R+R+R-','ETSR+E','OMR+R0','OMOMR+',
34924 & 'P-PO ','P-POPO','P-P-P+','P-ET ','POR- ','P-R0 ','ETSP- ',
34925 & 'R-ET ','R-R0 ','POETR-','P-ETR0','POR-R0','P-R+R-','P-R0R0'/
34926 DATA ZKNAM6/'P+R-R-','R-OM ','P-ETOM','ETSR- ','POR-OM','P-R0OM',
34927 & 'R-ETET','R-R0ET','P-OMOM','R0R0R-','R+R-R-','ETSR-E','OMR0R-',
34928 & 'OMOMR-', 'PAN-14','APN+14','NAN014','ANN014','PAKO ','LPI+ ',
34929 & 'SI+OM','LAMRO+','SI0RO+','SI+RO0','SI+ETA','SI0PI+','SI+PI0',
34930 & 'APETA ','AN=P+ ','AN-PO ','ANOPO ','APRHOO','ANRHO-','ANETA ',
34931 & 'AN-P+ ','AN0PO ','AN+P- ','APRHO+','ANRHO0',
34932 & 'KONPIO','KOPPI-','K+NPI-','AKOPPO','AKONP+','K-PPI+',
34933 & 9*'BLANK'/
34934*= end*block.zk *
34935 END
34936
34937*$ CREATE DT_BLKD43.FOR
34938*COPY DT_BLKD43
34939*
34940*===blkd43=============================================================*
34941*
34942 BLOCK DATA DT_BLKD43
34943
34944 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
34945 SAVE
34946
34947*
34948*=== reac =============================================================*
34949*
34950*----------------------------------------------------------------------*
34951* *
34952* Created on 10 december 1991 by Alfredo Ferrari & Paola Sala *
34953* Infn - Milan *
34954* *
34955* Last change on 10-dec-91 by Alfredo Ferrari *
34956* *
34957* This is the original common reac of Hadrin *
34958* *
34959*----------------------------------------------------------------------*
34960*
34961 COMMON /HNREAC/ UMO(296),PLABF(296),SIIN(296),WK(5184),
34962 & NRK(2,268),NURE(30,2)
34963
34964 DIMENSION
34965 & UMOPI(92), UMOKC(68), UMOP(39), UMON(63), UMOK0(34),
34966 & PLAPI(92), PLAKC(68), PLAP(39), PLAN(63), PLAK0(34),
34967 & SPIKP1(315), SPIKPU(278), SPIKPV(372),
34968 & SPIKPW(278), SPIKPX(372), SPIKP4(315),
34969 & SPIKP5(187), SPIKP6(289),
34970 & SKMPEL(102), SPIKP7(289), SKMNEL(68), SPIKP8(187),
34971 & SPIKP9(143), SPIKP0(169), SPKPV(143),
34972 & SAPPEL(105), SPIKPE(399), SAPNEL(84), SPIKPZ(273),
34973 & SANPEL(84) , SPIKPF(273),
34974 & SPKP15(187), SPKP16(272),
34975 & NRKPI(164), NRKKC(132), NRKP(70), NRKN(116), NRKK0(54),
34976 & NURELN(60)
34977*
34978 DIMENSION NRKLIN(532)
34979 EQUIVALENCE (NRK(1,1), NRKLIN(1))
34980 EQUIVALENCE ( UMO( 1), UMOPI(1)), ( UMO( 93), UMOKC(1))
34981 EQUIVALENCE ( UMO(161), UMOP(1)), ( UMO(200), UMON(1))
34982 EQUIVALENCE ( UMO(263), UMOK0(1))
34983 EQUIVALENCE ( PLABF( 1), PLAPI(1)), ( PLABF( 93), PLAKC(1))
34984 EQUIVALENCE ( PLABF(161), PLAP(1)), ( PLABF(200), PLAN(1))
34985 EQUIVALENCE ( PLABF(263), PLAK0(1))
34986 EQUIVALENCE ( WK( 1), SPIKP1(1)), ( WK( 316), SPIKPU(1))
34987 EQUIVALENCE ( WK( 594), SPIKPV(1)), ( WK( 966), SPIKPW(1))
34988 EQUIVALENCE ( WK(1244), SPIKPX(1)), ( WK(1616), SPIKP4(1))
34989 EQUIVALENCE ( WK(1931), SPIKP5(1)), ( WK(2118), SPIKP6(1))
34990 EQUIVALENCE ( WK(2407), SKMPEL(1)), ( WK(2509), SPIKP7(1))
34991 EQUIVALENCE ( WK(2798), SKMNEL(1)), ( WK(2866), SPIKP8(1))
34992 EQUIVALENCE ( WK(3053), SPIKP9(1)), ( WK(3196), SPIKP0(1))
34993 EQUIVALENCE ( WK(3365), SPKPV(1)), ( WK(3508), SAPPEL(1))
34994 EQUIVALENCE ( WK(3613), SPIKPE(1)), ( WK(4012), SAPNEL(1))
34995 EQUIVALENCE ( WK(4096), SPIKPZ(1)), ( WK(4369), SANPEL(1))
34996 EQUIVALENCE ( WK(4453), SPIKPF(1)), ( WK(4726), SPKP15(1))
34997 EQUIVALENCE ( WK(4913), SPKP16(1))
34998 EQUIVALENCE (NRK(1,1), NRKLIN(1))
34999 EQUIVALENCE (NRKLIN( 1), NRKPI(1)), (NRKLIN( 165), NRKKC(1))
35000 EQUIVALENCE (NRKLIN( 297), NRKP(1)), (NRKLIN( 367), NRKN(1))
35001 EQUIVALENCE (NRKLIN( 483), NRKK0(1))
35002 EQUIVALENCE (NURE(1,1), NURELN(1))
35003*
35004**** pi- p data *
35005**** pi+ n data *
35006 DATA PLAPI / 0.D0, .3D0, .5D0, .6D0, .7D0, .8D0, .9D0, .95D0,1.D0,
35007 & 1.15D0, 1.3D0, 1.5D0, 1.6D0, 1.8D0, 2.D0, 2.3D0, 2.5D0, 2.8D0,
35008 & 3.D0, 3.5D0, 4.D0, 0.D0, .285D0, .4D0, .45D0, .5D0, .6D0, .7D0,
35009 & .75D0, .8D0, .85D0, .9D0, 1.D0, 1.15D0, 1.3D0, 1.5D0, 1.6D0,
35010 & 1.8D0, 2.D0, 2.3D0, 2.5D0, 2.8D0, 3.D0, 3.5D0, 4.D0, 4.5D0, 0.D0,
35011 & .285D0, .4D0, .45D0, .5D0, .6D0, .7D0, .75D0, .8D0, .85D0, .9D0,
35012 & 1.D0, 1.15D0, 1.3D0, 1.5D0, 1.6D0, 1.8D0, 2.D0, 2.3D0, 2.5D0,
35013 & 2.8D0, 3.D0, 3.5D0, 4.D0, 4.5D0, 0.D0, .3D0, .5D0, .6D0, .7D0,
35014 & .8D0, .9D0, .95D0, 1.D0, 1.15D0, 1.3D0, 1.5D0, 1.6D0, 1.8D0,
35015 & 2.D0, 2.3D0, 2.5D0, 2.8D0, 3.D0, 3.5D0, 4.D0 /
35016 DATA PLAKC /
35017 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35018 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35019 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35020 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35021 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35022 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35023 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35024 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35025 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35026 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35027 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35028 & 3.51D0, 3.84D0, 4.16D0, 4.49D0/
35029 DATA PLAK0 /
35030 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35031 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35032 & 3.51D0, 3.84D0, 4.16D0, 4.49D0,
35033 & 0.D0, .58D0, .8D0, 1.01D0, 1.23D0, 1.45D0, 1.68D0, 1.94D0,
35034 & 2.18D0, 2.42D0, 2.68D0, 2.96D0, 3.24D0,
35035 & 3.51D0, 3.84D0, 4.16D0, 4.49D0/
35036* pp pn np nn *
35037 DATA PLAP /
35038 & 0.D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35039 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35040 & 0.D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35041 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35042 & 0.D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35043 & 3.43D0, 3.75D0, 4.07D0, 4.43D0 /
35044* app apn anp ann *
35045 DATA PLAN /
35046 & 0.D0, 1.D-3, .1D0, .2D0, .3D0, .4D0, .5D0, .6D0,
35047 & .74D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35048 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35049 & 0.D0, 1.D-3, .1D0, .2D0, .3D0, .4D0, .5D0, .6D0,
35050 & .74D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35051 & 3.43D0, 3.75D0, 4.07D0, 4.43D0,
35052 & 0.D0, 1.D-3, .1D0, .2D0, .3D0, .4D0, .5D0, .6D0,
35053 & .74D0, 1.06D0, 1.34D0, 1.63D0, 1.92D0, 2.2D0, 2.5D0,2.8D0,3.1D0,
35054 & 3.43D0, 3.75D0, 4.07D0, 4.43D0 /
35055 DATA SIIN / 296*0.D0 /
35056 DATA UMOPI/ 1.08D0,1.233D0,1.302D0,1.369D0,1.496D0,
35057 & 1.557D0,1.615D0,1.6435D0,
35058 & 1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,2.071D0,2.159D0,
35059 & 2.286D0,2.366D0,2.482D0,2.56D0,
35060 & 2.735D0,2.90D0,
35061 & 1.08D0,1.222D0,1.302D0,1.3365D0,1.369D0,1.434D0,
35062 & 1.496D0,1.527D0,1.557D0,
35063 & 1.586D0,1.615D0,1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,
35064 & 2.071D0,2.159D0,2.286D0,2.366D0,
35065 & 2.482D0,2.560D0,2.735D0,2.90D0,3.06D0,
35066 & 1.08D0,1.222D0,1.302D0,1.3365D0,1.369D0,1.434D0,
35067 & 1.496D0,1.527D0,1.557D0,
35068 & 1.586D0,1.615D0,1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,
35069 & 2.071D0,2.159D0,2.286D0,2.366D0,
35070 & 2.482D0,2.560D0,2.735D0,2.90D0,3.06D0,
35071 & 1.08D0,1.233D0,1.302D0,1.369D0,1.496D0,
35072 & 1.557D0,1.615D0,1.6435D0,
35073 & 1.672D0,1.753D0,1.831D0,1.930D0,1.978D0,2.071D0,2.159D0,
35074 & 2.286D0,2.366D0,2.482D0,2.56D0,
35075 & 2.735D0, 2.90D0/
35076 DATA UMOKC/ 1.44D0,
35077 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35078 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35079 & 3.1D0,1.44D0,
35080 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35081 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35082 & 3.1D0,1.44D0,
35083 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35084 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35085 & 3.1D0,1.44D0,
35086 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35087 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35088 & 3.1D0/
35089 DATA UMOK0/ 1.44D0,
35090 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35091 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35092 & 3.1D0,1.44D0,
35093 & 1.598D0,1.7D0,1.8D0,1.9D0,2.0D0,2.1D0,2.2D0,2.3D0,2.4D0,2.5D0,
35094 & 2.6D0,2.7D0,2.8D0,2.9D0,3.0D0,
35095 & 3.1D0/
35096* pp pn np nn *
35097 DATA UMOP/
35098 & 1.88D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35099 & 3.D0,3.1D0,3.2D0,
35100 & 1.88D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35101 & 3.D0,3.1D0,3.2D0,
35102 & 1.88D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35103 & 3.D0,3.1D0,3.2D0/
35104* app apn anp ann *
35105 DATA UMON /
35106 & 1.877D0,1.87701D0,1.879D0,1.887D0,1.9D0,1.917D0,1.938D0,1.962D0,
35107 & 2.D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35108 & 3.D0,3.1D0,3.2D0,
35109 & 1.877D0,1.87701D0,1.879D0,1.887D0,1.9D0,1.917D0,1.938D0,1.962D0,
35110 & 2.D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35111 & 3.D0,3.1D0,3.2D0,
35112 & 1.877D0,1.87701D0,1.879D0,1.887D0,1.9D0,1.917D0,1.938D0,1.962D0,
35113 & 2.D0,2.102D0,2.2D0,2.3D0,2.4D0,2.5D0,2.6D0,2.7D0,2.8D0,2.9D0,
35114 & 3.D0,3.1D0,3.2D0/
35115**** reaction channel state particles *
35116 DATA NRKPI / 13, 1, 15, 21, 81, 0, 13, 54, 23, 53, 13, 63, 13, 58,
35117 & 23, 57, 13, 65, 1, 32, 53, 31, 54, 32, 53, 33, 53, 35, 63, 32,
35118 & 13, 8, 23, 1, 17, 15, 21, 24, 22, 15, 82, 0, 61, 0, 13, 55, 23,
35119 & 54, 14, 53, 13, 64, 23, 63, 13, 59, 23, 58, 14, 57, 13, 66, 23,
35120 & 65, 1, 31, 8, 32, 1, 33, 1, 35, 54, 31, 55, 32, 54, 33, 53, 34,
35121 & 54, 35, 14, 1, 23, 8, 17, 24, 20, 15, 22, 24, 83, 0, 62, 0, 14,
35122 & 54, 23, 55, 13, 56, 14, 63, 23, 64, 14, 58, 23, 59, 13, 60, 14,
35123 & 65, 23, 66, 8, 31, 1, 34, 8, 33, 8, 35, 55, 31, 54, 34, 55, 33,
35124 & 56, 32, 55, 35, 14, 8, 24, 20, 84, 0, 14, 55, 23, 56, 14, 64, 14,
35125 & 59, 23, 60, 14, 66, 8, 34, 56, 31, 55, 34, 56, 33, 56, 35, 64,34/
35126 DATA NRKKC/ 15, 1, 89, 0, 24, 53, 15, 54, 1, 36, 1, 40, 1, 44, 36,
35127 & 63, 15, 63, 45, 53, 44, 54, 15, 8, 24, 1, 91, 0, 24, 54, 15, 55,
35128 & 8, 36, 1, 37, 8, 40, 1, 41, 8, 44, 1, 45, 36, 64, 37, 63, 15, 64,
35129 & 24, 63, 45, 54, 44, 55, 16, 1, 25, 8, 17, 23, 21, 14, 20,
35130 & 13, 22, 23, 90, 0, 38, 1, 39, 8, 16, 54, 25, 55, 1, 42, 8, 43,
35131 & 16, 63, 25, 64, 39, 64, 38, 63, 46, 54, 47, 55, 8, 47, 1, 46, 52,
35132 & 0, 51, 0, 16, 8, 17, 14, 20, 23, 22, 14, 92, 0, 8, 38, 16, 55,
35133 & 25, 56, 8, 42, 16, 64, 38, 64, 46, 55, 47, 56, 8, 46, 94, 0 /
35134* *
35135* k0 p k0 n ak0 p ak/ n *
35136* *
35137 DATA NRKK0 / 24, 8, 106, 0, 15, 56, 24, 55, 37, 8, 41, 8, 45, 8,
35138 & 37, 64, 24, 64, 44, 56, 45, 55, 25, 1, 17, 13, 22, 13, 21, 23,
35139 & 107, 0, 39, 1, 25, 54, 16, 53, 43, 1, 25, 63, 39, 63, 47, 54, 46,
35140 & 53, 47, 1, 103, 0, 93, 0/
35141* pp pn np nn *
35142 DATA NRKP / 1, 1, 85, 0, 8, 53, 1, 54, 1, 63, 8, 57, 1, 58, 2*54,
35143 & 53, 55, 63, 54, 64, 53, 1, 8, 86, 0, 8, 54, 1, 55, 8, 63, 1, 64,
35144 & 8, 58, 1, 59, 64, 54, 63, 55, 54, 55, 53, 56, 77, 0, 2*8, 95, 0,
35145 & 8, 55, 1, 56, 8, 64, 8, 59, 1, 60, 2*55, 54, 56, 64, 55, 63, 56 /
35146* app apn anp ann *
35147 DATA NRKN/ 1, 2, 17, 18, 15, 16, 8, 9, 13, 14, 99, 0, 87, 0, 1,
35148 & 68, 8, 69, 2, 54, 9, 55, 102, 0, 2, 63, 9, 64, 1, 75, 8, 76, 53,
35149 & 67, 54, 68, 55, 69, 56, 70, 63, 68, 64, 69, 75, 54, 76, 55, 2, 8,
35150 & 18, 20, 16, 24, 14, 23, 101, 0, 88, 0, 2, 55, 9, 56, 1, 67, 8,
35151 & 68, 2, 64, 8, 75, 2, 59, 8, 72, 68, 55, 67, 54, 69, 56, 1, 9, 18,
35152 & 21, 15, 25, 13, 23, 100, 0, 96, 0, 2, 53, 9, 54, 1, 69, 8, 70, 1,
35153 & 76, 9, 63, 1, 73, 9, 58, 55, 70, 53, 68, 54, 69 /
35154**** channel cross section *
35155 DATA SPIKP1/ 0.D0, 300.D0, 40.D0, 20.D0, 13.D0,8.5D0,8.D0, 9.5D0,
35156 & 12.D0,14.D0,15.5D0,20.D0,17.D0,13.D0,10.D0,9.D0,8.5D0,8.D0,7.8D0,
35157 & 7.3D0, 6.7D0, 9*0.D0,.23D0,.35D0,.7D0,.52D0,.4D0,.3D0,.2D0,.15D0,
35158 & .13D0, .11D0, .09D0, .07D0, 0.D0, .033D0,.8D0,1.35D0,1.35D0,.5D0,
35159 & 15*0.D0, 3*0.D0,.00D0,0.80D0,2.2D0,3.6D0,4.6D0,4.7D0,3.5D0,2.4D0,
35160 &1.8D0,1.4D0,.75D0,.47D0,.25D0,.13D0,.08D0,6*0.D0,0.D0,1.2D0,3.3D0,
35161 & 5.4D0,6.9D0,7.3D0,5.3D0,3.6D0,2.7D0,2.2D0,1.1D0,.73D0,.4D0,.22D0,
35162 & .12D0,9*0.D0,.0D0,0.D0,2.0D0,4.4D0,6.8D0,9.9D0,7.9D0,6.0D0,3.8D0,
35163 &2.5D0,2.D0,1.4D0,1.D0,.6D0,.35D0,10*0.D0,.25D0,.55D0,.75D0,1.25D0,
35164 & 1.9D0,2.D0,1.8D0,1.5D0,1.25D0,1.D0,.8D0,6*0.D0,4*0.D0,.4D0,.85D0,
35165 & 1.1D0, 1.85D0, 2.8D0, 3.D0,2.7D0,2.2D0,1.85D0,1.5D0,1.2D0,6*0.D0,
35166 & 6*0.D0, .5D0, 1.2D0, 1.7D0, 3.4D0, 5.2D0, 6.4D0, 6.1D0, 5.6D0,
35167 & 5.2D0, 6*0.D0, 2*0.D0, .0D0, 1.D0, 3.3D0, 5.2D0, 4.45D0, 3.6D0,
35168 & 2.75D0, 1.9D0, 1.65D0, 1.3D0, .95D0, .6D0, .45D0, 6*0.D0, 3*0.D0,
35169 & .0D0, .45D0, 1.4D0, 1.5D0, 1.1D0, .85D0, .5D0, .3D0, .2D0, .15D0,
35170 & 8*0.D0, 5*0.D0, .0D0, .0D0, .6D0, .8D0, .95D0, .8D0, .7D0, .6D0,
35171 & .5D0, .4D0, 6*0.D0, 5*0.D0, .0D0, .00D0, .85D0, 1.2D0, 1.4D0,
35172 & 1.2D0, 1.05D0, .9D0, .7D0, .55D0, 6*0.D0, 5*0.D0, .0D0, .00D0,
35173 & 1.D0, 1.5D0, 3.5D0, 4.15D0, 3.7D0, 2.7D0, 2.3D0, 1.75D0, 6*0.D0,
35174 & 10*0.D0, .5D0, 2.0D0, 3.3D0, 5.4D0, 7.D0 /
35175**** pi+ n data *
35176 DATA SPIKPU/ 0.D0, 25.D0, 13.D0, 11.D0, 10.5D0, 14.D0, 20.D0,
35177 & 20.D0, 16.D0, 14.D0, 19.D0, 28.D0, 17.5D0, 13.5D0, 12.D0, 10.5D0,
35178 & 10.D0, 10.D0, 9.5D0, 9.D0, 8.D0, 7.5D0, 7.D0, 6.5D0, 6.D0, 0.D0,
35179 & 48.D0, 19.D0, 15.D0, 11.5D0, 10.D0, 8.D0, 6.5D0, 5.5D0, 4.8D0,
35180 & 4.2D0, 7.5D0, 3.4D0, 2.5D0, 2.5D0, 2.1D0, 1.4D0, 1.D0, .8D0,
35181 & .6D0, .46D0, .3D0, .2D0, .15D0, .13D0, 11*0.D0, .95D0, .65D0,
35182 & .48D0, .35D0, .2D0, .18D0, .17D0, .16D0, .15D0, .1D0, .09D0,
35183 & .065D0, .05D0, .04D0, 12*0.D0, .2D0, .25D0, .25D0, .2D0, .1D0,
35184 & .08D0, .06D0, .045D0, .03D0, .02D0, .01D0, .005D0, .003D0,
35185 & 12*0.D0, .3D0, .24D0, .18D0, .15D0, .13D0, .12D0, .11D0, .1D0,
35186 & .09D0, .08D0, .05D0, .04D0, .03D0, 0.D0, 0.16D0, .7D0, 1.3D0,
35187 & 3.1D0, 4.5D0, 2.D0, 18*0.D0, 3*.0D0, 0.D0, 0.D0, 4.0D0, 11.D0,
35188 & 11.4D0, 10.3D0, 7.5D0, 6.8D0, 4.75D0, 2.5D0, 1.5D0, .9D0, .55D0,
35189 & .35D0, 13*0.D0, .1D0, .34D0, .5D0, .8D0, 1.1D0, 2.25D0, 3.3D0,
35190 & 2.3D0, 1.6D0, .95D0, .45D0, .28D0, .15D0, 10*0.D0, 2*0.D0, .17D0,
35191 & .64D0, 1.D0, 1.5D0, 2.1D0, 4.25D0, 6.2D0, 4.4D0, 3.D0, 1.8D0,
35192 & .9D0, .53D0, .28D0, 10*0.D0, 2*0.D0, .25D0, .82D0,
35193 & 1.3D0, 1.9D0, 2.8D0, 5.5D0 , 8.D0, 5.7D0, 3.9D0, 2.35D0, 1.15D0,
35194 & .69D0, .37D0, 10*0.D0, 7*0.D0, .0D0, .34D0, 1.5D0, 3.47D0,
35195 & 5.87D0, 6.23D0, 4.27D0, 2.6D0, 1.D0, .6D0, .3D0, .15D0, 6*0.D0/
35196*
35197 DATA SPIKPV/ 7*0.D0, .00D0, .16D0, .75D0, 1.73D0, 2.93D0, 3.12D0,
35198 & 2.13D0, 1.3D0, .5D0, .3D0, .15D0, .08D0, 6*0.D0, 10*0.D0, .2D0,
35199 & .6D0, .92D0, 2.4D0, 4.9D0, 6.25D0, 5.25D0, 3.5D0, 2.15D0, 1.4D0,
35200 & 1.D0, .7D0, 13*0.D0, .13D0, .4D0, .62D0, 1.6D0, 3.27D0, 4.17D0,
35201 & 3.5D0, 2.33D0, 1.43D0, .93D0, .66D0, .47D0, 13*0.D0, .07D0, .2D0,
35202 & .31D0, .8D0, 1.63D0, 2.08D0, 1.75D0, 1.17D0, .72D0, .47D0, .34D0,
35203 & .23D0, 17*0.D0, .33D0, 1.D0, 1.8D0, 2.67D0, 5.33D0, 6.D0, 5.53D0,
35204 & 5.D0, 17*0.D0, .17D0, .5D0, .9D0, 1.83D0, 2.67D0, 3.0D0, 2.77D0,
35205 & 2.5D0, 3*0.D0, 3*0.D0, 1.D0, 3.3D0, 2.8D0, 2.5D0, 2.3D0, 1.8D0,
35206 & 1.5D0, 1.1D0, .8D0, .7D0, .55D0, .3D0, 10*0.D0, 9*0.D0, .1D0,
35207 & .4D0, 1.D0, 1.4D0, 2.2D0, 2.5D0, 2.2D0, 1.65D0, 1.35D0, 1.1D0,
35208 & .8D0, .6D0, .4D0, 12*0.D0, .15D0, .6D0, 1.5D0, 2.1D0, 3.3D0,
35209 & 3.8D0, 3.3D0, 2.45D0, 2.05D0, 1.65D0, 1.2D0, .9D0, .6D0, 3*0.D0,
35210 & 9*0.D0, .10D0, .2D0, .5D0, .7D0, 1.3D0, 1.55D0, 1.9D0, 1.8D0,
35211 & 1.55D0, 1.35D0, 1.15D0, .95D0, .7D0, 13*0.D0, .2D0, .5D0, .7D0,
35212 & 1.3D0, 1.55D0, 1.9D0, 1.8D0, 1.55D0, 1.35D0, 1.15D0, .95D0, .7D0,
35213 & 17*0.D0, .2D0, .5D0, .85D0, 2.D0, 2.15D0, 2.05D0, 1.75D0, 1.D0,
35214 & 17*0.D0, .13D0, .33D0, .57D0, 1.33D0, 1.43D0, 1.36D0, 1.17D0,
35215 & .67D0, 17*0.D0, .07D0, .17D0, .28D0, .67D0, .72D0, .69D0, .58D0,
35216 & .33D0,17*0.D0,.4D0, .7D0, 1.D0, 1.6D0, 1.8D0, 2.3D0,1.9D0,1.7D0 /
35217**** pi- p data *
35218 DATA SPIKPW/ 0.D0, 25.D0, 13.D0, 11.D0, 10.5D0, 14.D0, 2*20.D0,
35219 & 16.D0, 14.D0, 19.D0, 28.D0, 17.5D0, 13.5D0, 12.D0, 10.5D0,
35220 & 2*10.D0, 9.5D0, 9.D0, 8.D0, 7.5D0, 7.D0, 6.5D0, 6.D0, 0.D0,
35221 & 48.D0, 19.D0, 15.D0, 11.5D0, 10.D0, 8.D0, 6.5D0, 5.5D0, 4.8D0,
35222 & 4.2D0, 7.5D0, 3.4D0, 2*2.5D0, 2.1D0, 1.4D0, 1.D0, .8D0, .6D0,
35223 & .46D0, .3D0, .2D0, .15D0, .13D0, 11*0.D0, .95D0, .65D0, .48D0,
35224 & .35D0, .2D0, .18D0, .17D0, .16D0, .15D0, .1D0, .09D0, .065D0,
35225 & .05D0, .04D0, 12*0.D0, .2D0, 2*.25D0, .2D0, .1D0, .08D0, .06D0,
35226 & .045D0, .03D0, .02D0, .01D0, .005D0, .003D0, 12*0.D0, .3D0,
35227 & .24D0, .18D0, .15D0, .13D0, .12D0, .11D0, .1D0, .09D0, .08D0,
35228 & .05D0, .04D0, .03D0, 0.D0, 0.16D0, .7D0, 1.3D0, 3.1D0, 4.5D0,
35229 & 2.D0, 23*0.D0, 4.0D0, 11.D0, 11.4D0, 10.3D0, 7.5D0, 6.8D0,
35230 & 4.75D0, 2.5D0, 1.5D0, .9D0, .55D0, .35D0, 13*0.D0, .1D0, .34D0,
35231 & .5D0, .8D0, 1.1D0, 2.25D0, 3.3D0, 2.3D0, 1.6D0, .95D0, .45D0,
35232 & .28D0, .15D0, 12*0.D0, .17D0, .64D0, 1.D0, 1.5D0, 2.1D0, 4.25D0,
35233 & 6.2D0, 4.4D0, 3.D0, 1.8D0, .9D0, .53D0, .28D0, 12*0.D0, .25D0,
35234 & .82D0, 1.3D0, 1.9D0, 2.8D0, 5.5D0, 8.D0, 5.7D0, 3.9D0, 2.35D0,
35235 & 1.15D0, .69D0, .37D0, 18*0.D0, .34D0, 1.5D0, 3.47D0, 5.87D0,
35236 & 6.23D0, 4.27D0, 2.6D0, 1.D0, .6D0, .3D0, .15D0, 6*0.D0/
35237*
35238 DATA SPIKPX/ 8*0.D0, .16D0, .75D0, 1.73D0, 2.93D0, 3.12D0,
35239 & 2.13D0, 1.3D0, .5D0, .3D0, .15D0, .08D0, 16*0.D0, .2D0, .6D0,
35240 & .92D0, 2.4D0, 4.9D0, 6.25D0, 5.25D0, 3.5D0, 2.15D0, 1.4D0, 1.D0,
35241 & .7D0, 13*0.D0, .13D0, .4D0, .62D0, 1.6D0, 3.27D0, 4.17D0, 3.5D0,
35242 & 2.33D0, 1.43D0, .93D0, .66D0, .47D0, 13*0.D0, .07D0, .2D0, .31D0,
35243 & .8D0, 1.63D0, 2.08D0, 1.75D0, 1.17D0, .72D0, .47D0, .34D0, .23D0,
35244 & 17*0.D0, .33D0, 1.D0, 1.8D0, 2.67D0, 5.33D0, 6.D0, 5.53D0, 5.D0,
35245 & 17*0.D0, .17D0, .5D0, .9D0, 1.83D0, 2.67D0, 3.0D0, 2.77D0, 2.5D0,
35246 & 6*0.D0, 1.D0, 3.3D0, 2.8D0, 2.5D0, 2.3D0, 1.8D0, 1.5D0, 1.1D0,
35247 & .8D0, .7D0, .55D0, .3D0, 19*0.D0, .1D0, .4D0, 1.D0, 1.4D0, 2.2D0,
35248 & 2.5D0, 2.2D0, 1.65D0, 1.35D0, 1.1D0, .8D0, .6D0, .4D0, 12*0.D0,
35249 & .15D0, .6D0, 1.5D0, 2.1D0, 3.3D0, 3.8D0, 3.3D0, 2.45D0, 2.05D0,
35250 & 1.65D0, 1.2D0, .9D0, .6D0, 12*0.D0, .10D0, .2D0, .5D0, .7D0,
35251 & 1.3D0, 1.55D0, 1.9D0, 1.8D0, 1.55D0, 1.35D0, 1.15D0, .95D0, .7D0,
35252 & 13*0.D0, .2D0, .5D0, .7D0, 1.3D0, 1.55D0, 1.9D0, 1.8D0, 1.55D0,
35253 & 1.35D0, 1.15D0, .95D0, .7D0, 17*0.D0, .2D0, .5D0, .85D0, 2.D0,
35254 & 2.15D0, 2.05D0, 1.75D0, 1.D0, 17*0.D0, .13D0, .33D0, .57D0,
35255 & 1.33D0, 1.43D0, 1.36D0, 1.17D0, .67D0, 17*0.D0, .07D0, .17D0,
35256 & .28D0, .67D0, .72D0, .69D0, .58D0, .33D0, 17*0.D0, .4D0, .7D0,
35257 & 1.D0, 1.6D0, 1.8D0, 2.3D0, 1.9D0, 1.7D0 /
35258**** pi- n data *
35259 DATA SPIKP4 / 0.D0, 300.D0, 40.D0, 20.D0, 13.D0, 8.5D0, 8.D0,
35260 & 9.5D0, 12.D0, 14.D0, 15.5D0, 20.D0, 17.D0, 13.D0, 10.D0, 9.D0,
35261 & 8.5D0, 8.D0, 7.8D0, 7.3D0, 6.7D0, 9*0.D0, .23D0, .35D0, .7D0,
35262 & .52D0, .4D0, .3D0, .2D0, .15D0, .13D0, .11D0, .09D0, .07D0, 0.D0,
35263 & .033D0, .8D0, 2*1.35D0, .5D0, 19*0.D0, 0.8D0, 2.2D0, 3.6D0,
35264 & 4.6D0, 4.7D0, 3.5D0, 2.4D0, 1.8D0, 1.4D0, .75D0, .47D0, .25D0,
35265 & .13D0, .08D0, 7*0.D0, 1.2D0, 3.3D0, 5.4D0, 6.9D0, 7.3D0, 5.3D0,
35266 & 3.6D0, 2.7D0, 2.2D0, 1.1D0, .73D0, .4D0, .22D0, .12D0, 11*0.D0,
35267 & 2.0D0, 4.4D0, 6.8D0, 9.9D0, 7.9D0, 6.0D0, 3.8D0, 2.5D0, 2.D0,
35268 & 1.4D0, 1.D0, .6D0, .35D0, 10*0.D0, .25D0, .55D0, .75D0, 1.25D0,
35269 & 1.9D0, 2.D0, 1.8D0, 1.5D0, 1.25D0, 1.D0, .8D0, 10*0.D0, .4D0,
35270 & .85D0, 1.1D0, 1.85D0, 2.8D0, 3.D0, 2.7D0, 2.2D0, 1.85D0, 1.5D0,
35271 & 1.2D0, 12*0.D0, .5D0, 1.2D0, 1.7D0, 3.4D0, 5.2D0, 6.4D0, 6.1D0,
35272 & 5.6D0, 5.2D0, 9*0.D0, 1.D0, 3.3D0, 5.2D0, 4.45D0, 3.6D0, 2.75D0,
35273 & 1.9D0, 1.65D0, 1.3D0, .95D0, .6D0, .45D0, 10*0.D0, .45D0, 1.4D0,
35274 & 1.5D0, 1.1D0, .85D0, .5D0, .3D0, .2D0, .15D0, 15*0.D0, .6D0,
35275 & .8D0, .95D0, .8D0, .7D0, .6D0, .5D0, .4D0, 13*0.D0, .85D0, 1.2D0,
35276 & 1.4D0, 1.2D0, 1.05D0, .9D0, .7D0, .55D0, 13*0.D0, 1.D0, 1.5D0,
35277 & 3.5D0, 4.15D0, 3.7D0, 2.7D0, 2.3D0, 1.75D0, 16*0.D0, .5D0, 2.0D0,
35278 & 3.3D0, 5.4D0, 7.D0 /
35279**** k+ p data *
35280 DATA SPIKP5/ 0.D0, 20.D0, 14.D0, 12.D0, 11.5D0, 10.D0, 8.D0,
35281 & 7.D0, 6.D0, 5.5D0, 5.3D0, 5.D0, 4.5D0, 4.4D0, 3.8D0, 3.D0, 2.8D0,
35282 & 0.D0, .5D0, 1.15D0, 2.D0, 1.3D0, .8D0, .45D0, 13*0.D0, 0.9D0,
35283 & 2.5D0, 3.D0, 2.5D0, 2.3D0, 2.D0, 1.7D0, 1.5D0, 1.2D0, .9D0, .6D0,
35284 & .45D0, .21D0, .2D0, 3*0.D0, .9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0,
35285 & 2.D0, 1.7D0, 1.5D0, 1.2D0, .9D0, .6D0, .45D0, .21D0, .2D0,
35286 & 4*0.D0, 1.D0, 2.1D0, 2.6D0, 2.3D0, 2.1D0, 1.8D0, 1.7D0, 1.4D0,
35287 & 1.2D0, 1.05D0, .9D0, .66D0, .5D0, 7*0.D0, .3D0, 2*1.D0, .9D0,
35288 & .7D0, .4D0, .3D0, .2D0, 11*0.D0, .1D0, 1.D0, 2.2D0, 3.5D0, 4.2D0,
35289 & 4.55D0, 4.85D0, 4.9D0, 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0,
35290 & 1.71D0, 1.6D0, 6*0.D0, 1.4D0, 3.8D0, 5.D0, 4.7D0, 4.4D0, 4.D0,
35291 & 3.5D0, 2.85D0, 2.35D0, 2.01D0, 1.8D0, 12*0.D0, .1D0, .8D0,2.05D0,
35292 & 3.31D0, 3.5D0, 12*0.D0, .034D0, .2D0, .75D0, 1.04D0, 1.24D0 /
35293**** k+ n data *
35294 DATA SPIKP6/ 0.D0, 6.D0, 11.D0, 13.D0, 6.D0, 5.D0, 3.D0, 2.2D0,
35295 & 1.5D0, 1.2D0, 1.D0, .7D0, .6D0, .5D0, .45D0, .35D0, .3D0, 0.D0,
35296 & 6.D0, 11.D0, 13.D0, 6.D0, 5.D0, 3.D0, 2.2D0, 1.5D0, 1.2D0, 1.D0,
35297 & .7D0, .6D0, .5D0, .45D0, .35D0, .3D0, 0.D0, .5D0, 1.3D0, 2.8D0,
35298 & 2.3D0, 1.6D0, .9D0, 13*0.D0, 0.9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0,
35299 & 2.D0, 1.7D0, 1.5D0,1.2D0,.9D0,.6D0,.45D0,.21D0,.2D0,3*0.D0,0.9D0,
35300 & 2.5D0, 3.D0, 2.5D0, 2.3D0,2.D0,1.7D0,1.5D0,1.2D0,.9D0,.6D0,.45D0,
35301 & .21D0, .2D0,4*0.D0,1.D0,2.1D0,2.6D0,2.3D0,2.D0,1.8D0,1.7D0,1.4D0,
35302 & 1.2D0,1.15D0,.9D0,.66D0,.5D0,4*0.D0,1.D0,2.1D0,2.6D0,2.3D0,2.1D0,
35303 & 1.8D0,1.7D0,1.4D0,1.2D0, 1.15D0, .9D0, .66D0, .5D0, 7*0.D0, .3D0,
35304 & 2*1.D0, .9D0, .7D0, .4D0, .35D0, .2D0, 9*0.D0, .3D0, 2*1.D0,.9D0,
35305 & .7D0, .4D0, .35D0, .2D0, 11*0.D0, .1D0, 1.D0, 2.4D0,3.5D0,4.25D0,
35306 & 4.55D0, 4.85D0, 4.9D0, 9*0.D0, .1D0, 1.D0, 2.4D0, 3.5D0, 4.25D0,
35307 & 4.55D0, 4.85D0, 4.9D0, 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0,
35308 & 1.71D0, 1.6D0, 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0, 1.71D0,
35309 & 1.6D0, 6*0.D0, 1.4D0, 3.8D0, 5.D0, 4.7D0,4.4D0,4.D0,3.5D0,2.85D0,
35310 & 2.35D0, 2.01D0, 1.8D0, 6*0.D0, 1.4D0,3.8D0,5.D0,4.7D0,4.4D0,4.D0,
35311 & 3.5D0,2.85D0,2.35D0,2.01D0,1.8D0,12*0.D0,.1D0,.8D0,2.05D0,3.31D0,
35312 & 3.5D0, 12*0.D0, .034D0,.2D0,.75D0,1.04D0,1.24D0 /
35313**** k- p data *
35314 DATA SKMPEL/ 0.D0, 35.D0, 22.D0, 25.D0, 17.D0, 9.D0, 9.5D0, 8.D0,
35315 & 7.D0, 6.5D0, 6.1D0, 5.D0, 4.8D0, 4.6D0, 4.45D0, 4.3D0, 4.2D0,
35316 & 0.D0, 8.D0, 3.5D0, 8.D0, 3.D0, 1.9D0, 1.7D0, 1.D0, .9D0, .8D0,
35317 & .75D0, .5D0, .42D0, .38D0, .34D0, .25D0, .2D0,
35318 & 0.D0, 3.D0, 3.2D0, 3.5D0, 1.5D0, 1.4D0, 1.1D0, .6D0, .5D0,
35319 & .35D0, .28D0, .25D0, .18D0, .12D0, .1D0, .08D0, .04D0,
35320 & 0.D0, 8.5D0, 2.4D0, 1.7D0, 1.3D0, 1.3D0, 1.1D0, .5D0,
35321 & .4D0, .4D0, .35D0, .3D0, .28D0, .2D0, .16D0, .13D0, .11D0,
35322 & 0.D0, 7.D0, 4.8D0, 1.4D0, 1.9D0, .9D0, .4D0, .2D0, .13D0,
35323 & .1D0, .08D0, .06D0, .04D0, .02D0, .015D0, .01D0, .01D0,
35324 & 0.D0, 5.5D0, 1.D0, .8D0, .75D0, .32D0, .2D0, .1D0, .09D0,
35325 & .08D0, .065D0, .05D0, .04D0, .022D0, .017D0, 2*.01D0/
35326 DATA SPIKP7 / 0.D0, .56D0, 1.46D0, 3.16D0, 2.01D0, 1.28D0, .74D0,
35327 & 14*0.D0, 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0,
35328 & 1.91D0, 1.57D0, 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0, 4*0.D0,
35329 & 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0, 1.91D0, 1.57D0,
35330 & 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0, 3*0.D0, 1.0D0, 3.03D0,
35331 & 3.36D0, 2.8D0, 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0, 1.01D0,
35332 & .67D0, .5D0, .24D0, .23D0, 3*0.D0, 1.0D0, 3.03D0, 3.36D0, 2.8D0,
35333 & 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0, .5D0,
35334 & .24D0, .23D0, 7*0.D0, .34D0, 1.12D0, 1.12D0, 1.01D0, .78D0,
35335 & .45D0, .39D0, .22D0, .07D0, 0.D0, 7*0.D0, .34D0, 1.12D0, 1.12D0,
35336 & 1.01D0, .78D0, .45D0, .39D0, .22D0, .07D0, 0.D0, 6*0.D0, 1.71D0,
35337 & 4.26D0, 5.6D0, 5.57D0, 4.93D0, 4.48D0, 3.92D0, 3.19D0, 2.63D0,
35338 & 2.25D0, 2.D0, 6*0.D0, 1.71D0, 4.26D0, 5.6D0, 5.57D0, 4.93D0,
35339 & 4.48D0, 3.92D0, 3.19D0, 2.63D0, 2.25D0, 2.D0, 10*0.D0, .22D0,
35340 & .8D0, .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0, 10*0.D0, .22D0, .8D0,
35341 & .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0, 13*0.D0, .1D0, .3D0, .7D0,1.D0,
35342 & 13*0.D0, .1D0, .3D0, .7D0, 1.D0, 9*0.D0, .11D0, 1.72D0, 2.69D0,
35343 & 3.92D0, 4.76D0, 5.10D0, 5.44D0, 5.3D0, 9*0.D0, .11D0, 1.72D0,
35344 & 2.69D0, 3.92D0, 4.76D0, 5.1D0, 5.44D0, 5.3D0, 5*0.D0,9.2D0,4.7D0,
35345 & 1.9D0, 10*0.D0, 2.5D0, 15.D0, 21.5D0, 15.3D0, 3.D0, 1.5D0,
35346 & 10*0.D0/
35347***** k- n data *
35348 DATA SKMNEL/0.D0, 4.D0, 9.5D0, 20.D0, 13.D0, 9.5D0, 6.D0, 4.4D0,
35349 & 3.D0, 2.4D0, 2.D0, 1.4D0, 1.2D0, 1.D0, .9D0, .7D0, .6D0,
35350 & 0.D0, 4.5D0, 6.D0, 5.D0, 2.5D0, 2.D0, 1.7D0, 2.1D0,
35351 & 1.9D0, .9D0, .5D0, .3D0, .24D0, .2D0, .18D0, .1D0, .09D0,
35352 & 0.D0, 1.8D0, 2.D0, 1.1D0, .9D0, .5D0, .5D0, .4D0, .4D0,
35353 & .2D0, .1D0, .06D0, .05D0, .04D0, .03D0, .02D0, .02D0,
35354 & 0.D0, 1.5D0, 2.D0, .9D0, 1.1D0, .4D0, .6D0, .7D0, .65D0,
35355 & .3D0, .17D0, .1D0, .08D0, .07D0, .06D0, .04D0, .03D0/
35356 DATA SPIKP8/0.D0, .56D0, 1.29D0, 2.26D0, 1.01D0, .64D0, .37D0,
35357 & 14*0.D0, 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0,
35358 & 1.91D0, 1.57D0, 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0,
35359 & 3*0.D0, 1.D0, 3.03D0, 3.36D0, 2.8D0, 2.58D0, 2.24D0,
35360 & 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0, .5D0, .24D0, .23D0,
35361 & 3*0.D0, 1.D0, 3.03D0, 3.36D0, 2.8D0, 2.58D0, 2.24D0,
35362 & 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0, .5D0, .24D0, .23D0,
35363 & 7*0.D0, .34D0, 1.12D0, 1.12D0, 1.01D0, .78D0, .45D0,
35364 & .39D0, .22D0, .07D0, 0.D0,
35365 & 6*0.D0, 1.71D0, 4.26D0, 5.6D0, 5.57D0, 4.93D0,
35366 & 4.48D0, 3.92D0, 3.19D0, 2.63D0, 2.25D0, 2.D0,
35367 & 10*0.D0, .22D0, .8D0, .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0,
35368 & 13*0.D0, .1D0, .3D0, .7D0, 1.D0,
35369 & 13*0.D0, .1D0, .3D0, .7D0, 1.D0,
35370 & 9*0.D0, .11D0, 1.72D0, 2.69D0, 3.92D0, 4.76D0,
35371 & 5.10D0, 5.44D0, 5.3D0,
35372 & 4*0.D0, 0.00D0, 9.2D0, 4.7D0, 1.9D0, 9*0.D0/
35373***** p p data *
35374 DATA SPIKP9/ 0.D0, 24.D0, 25.D0, 27.D0, 23.D0, 21.D0, 20.D0,
35375 & 19.D0, 17.D0, 15.5D0, 14.D0, 13.5D0, 13.D0,
35376 & 0.D0, 3.6D0, 1.7D0, 10*0.D0,
35377 & .0D0, 0.D0, 8.7D0, 17.7D0, 18.8D0, 15.9D0,
35378 & 11.7D0, 8.D0, 6.D0, 5.3D0, 4.5D0, 3.9D0, 3.5D0,
35379 & .0D0, .0D0, 2.8D0, 5.8D0, 6.2D0, 5.1D0, 3.8D0,
35380 & 2.7D0, 2.1D0, 1.8D0, 1.5D0, 1.3D0, 1.1D0,
35381 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0,
35382 & 16.9D0, 16.5D0, 11.D0, 5.5D0, 3.5D0,
35383 & 10*0.D0, 4.3D0, 7.6D0, 9.D0,
35384 & 10*0.D0, 1.7D0, 2.6D0, 3.D0,
35385 & 6*0.D0, .3D0, .6D0, 1.D0, 1.6D0, 1.3D0, .8D0, .6D0,
35386 & 6*0.D0, .7D0, 1.2D0, 1.8D0, 2.5D0, 1.8D0, 1.3D0,
35387 & 1.2D0, 10*0.D0, .6D0, 1.4D0, 1.7D0,
35388 & 10*0.D0, 1.9D0, 4.1D0, 5.2D0/
35389***** p n data *
35390 DATA SPIKP0/ 0.D0, 24.D0, 25.D0, 27.D0, 23.D0, 21.D0, 20.D0,
35391 & 19.D0, 17.D0, 15.5D0, 14.D0, 13.5D0, 13.D0,
35392 & 0.D0, 1.8D0, .2D0, 12*0.D0,
35393 & 3.2D0, 6.05D0, 9.9D0, 5.1D0,
35394 & 3.8D0, 2.7D0, 1.9D0, 1.5D0, 1.4D0, 1.3D0, 1.1D0,
35395 & 2*.0D0, 3.2D0, 6.05D0, 9.9D0, 5.1D0,
35396 & 3.8D0, 2.7D0, 1.9D0, 1.5D0, 1.4D0, 1.3D0, 1.1D0,
35397 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0,
35398 & 16.4D0, 15.2D0, 11.D0, 5.4D0, 3.5D0,
35399 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0,
35400 & 16.4D0, 15.2D0, 11.D0, 5.4D0, 3.5D0,
35401 & 10*0.D0, .7D0, 5.1D0, 8.D0,
35402 & 10*0.D0, .7D0, 5.1D0, 8.D0,
35403 & 10*.0D0, .3D0, 2.8D0, 4.7D0,
35404 & 10*.0D0, .3D0, 2.8D0, 4.7D0,
35405 & 7*0.D0, 1.2D0, 2.5D0, 3.5D0, 6.D0, 5.3D0, 2.9D0,
35406 & 7*0.D0, 1.7D0, 3.6D0, 5.4D0, 9.D0, 7.6D0, 4.2D0,
35407 & 5*0.D0, 7.7D0, 6.1D0, 2.9D0, 5*0.D0/
35408* nn - data *
35409* *
35410 DATA SPKPV/ 0.D0, 24.D0, 25.D0, 27.D0, 23.D0, 21.D0, 20.D0,
35411 & 19.D0, 17.D0, 15.5D0, 14.D0, 13.5D0, 13.D0,
35412 & 0.D0, 3.6D0, 1.7D0, 12*0.D0,
35413 & 8.7D0, 17.7D0, 18.8D0, 15.9D0,
35414 & 11.7D0, 8.D0, 6.D0, 5.3D0, 4.5D0, 3.9D0, 3.5D0,
35415 & .0D0, .0D0, 2.8D0, 5.8D0, 6.2D0, 5.1D0, 3.8D0,
35416 & 2.7D0, 2.1D0, 1.8D0, 1.5D0, 1.3D0, 1.1D0,
35417 & 5*0.D0, 4.6D0, 10.2D0, 15.1D0, 16.9D0, 16.5D0,
35418 & 11.D0, 5.5D0, 3.5D0,
35419 & 10*0.D0, 4.3D0, 7.6D0, 9.D0,
35420 & 10*0.D0, 1.7D0, 2.6D0, 3.D0,
35421 & 6*0.D0, .3D0, .6D0, 1.D0, 1.6D0, 1.3D0, .8D0, .6D0,
35422 & 6*0.D0, .7D0, 1.2D0, 1.8D0, 2.5D0, 1.8D0, 1.3D0,
35423 & 1.2D0, 10*0.D0, .6D0, 1.4D0, 1.7D0,
35424 & 10*0.D0, 1.9D0, 4.1D0, 5.2D0/
35425**************** ap - p - data *
35426 DATA SAPPEL/ 0.D0, 176.D0, 160.D0, 105.D0, 75.D0, 68.D0, 65.D0,
35427 & 50.D0, 50.D0, 43.D0, 42.D0, 40.5D0, 35.D0, 30.D0, 28.D0,
35428 & 25.D0, 22.D0, 21.D0, 20.D0, 18.D0, 17.D0, 11*0.D0,
35429 & .05D0, .15D0, .18D0, .2D0, .2D0, .3D0, .4D0, .6D0, .7D0, .85D0,
35430 & 0.D0, 1.D0, .9D0, .46D0, .3D0, .23D0, .18D0, .16D0, .14D0,
35431 & .1D0, .08D0, .05D0, .02D0, .015D0, 4*.011D0, 3*.005D0,
35432 & 0.D0, 55.D0, 50.D0, 25.D0, 15.D0, 15.D0, 14.D0, 12.D0,
35433 & 10.D0, 7.D0, 6.D0, 4.D0, 3.3D0, 2.8D0, 2.4D0, 2.D0, 1.8D0,
35434 & 1.55D0, 1.3D0, .95D0, .75D0,
35435 & 0.D0, 3.3D0, 3.D0, 1.5D0, 1.D0, .7D0, .4D0, .35D0, .4D0,
35436 & .25D0, .18D0, .08D0, .04D0, .03D0, .023D0, .016D0, .014D0,
35437 & .01D0, .008D0, .006D0, .005D0/
35438 DATA SPIKPE/0.D0, 215.D0, 193.D0, 170.D0, 148.D0, 113.D0, 97.D0,
35439 & 84.D0, 78.D0, 68.D0, 64.D0, 61.D0, 46.D0, 36.D0, 31.3D0, 28.5D0,
35440 & 25.7D0, 22.6D0, 21.4D0, 20.7D0, 19.9D0,
35441 & 9*0.D0, 2.D0, 2.5D0, .2D0, 19*0.D0, .3D0, 1.4D0, 2.2D0, 1.2D0,
35442 & 1.1D0, 1.D0, .8D0, .6D0, .5D0, .4D0, .3D0, 10*0.D0, .3D0, 1.4D0,
35443 & 2.2D0, 1.2D0, 1.1D0, 1.D0, .8D0, .6D0, .5D0, .4D0, .3D0, 10*0.D0,
35444 & .3D0, 1.4D0, 2.2D0, 1.2D0, 1.1D0, 1.D0, .8D0, .6D0, .5D0, .4D0,
35445 & .3D0, 10*0.D0, .3D0, 1.4D0, 2.2D0, 1.2D0, 1.1D0, 1.D0, .8D0,
35446 & .6D0, .5D0, .4D0, .3D0, 9*0.D0, .6D0, 2.5D0, 5.D0, 5.2D0, 5.1D0,
35447 & 5.4D0, 5.8D0, 2.8D0, 2.1D0, 1.8D0, 1.6D0, 1.2D0, 13*0.D0, 1.3D0,
35448 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 13*0.D0, 1.3D0,
35449 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 13*0.D0, 1.3D0,
35450 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 13*0.D0, 1.3D0,
35451 & 1.5D0, 2.D0, 2.5D0, 2.5D0, 2.3D0, 1.8D0, 1.4D0, 14*0.D0, .2D0,
35452 & .5D0, 1.1D0, 1.6D0, 1.4D0, 1.1D0, .9D0, 14*0.D0, .2D0, .5D0,
35453 & 1.1D0, 1.6D0, 1.4D0, 1.1D0, .9D0, 14*0.D0, .2D0, .5D0, 1.1D0,
35454 & 1.6D0, 1.4D0, 1.1D0, .9D0, 14*0.D0, .2D0, .5D0, 1.1D0, 1.6D0,
35455 & 1.4D0, 1.1D0, .9D0, 17*0.D0, .3D0, 1.6D0, 2.6D0, 3.6D0, 17*0.D0,
35456 & .3D0, 1.6D0, 2.6D0, 3.6D0, 17*0.D0, .3D0, 1.6D0, 2.6D0,
35457 & 3.6D0, 17*0.D0, .3D0, 1.6D0, 2.6D0, 3.6D0 /
35458**************** ap - n - data *
35459 DATA SAPNEL/
35460 & 0.D0, 176.D0, 160.D0, 105.D0, 75.D0, 68.D0, 65.D0,
35461 & 50.D0, 50.D0, 43.D0, 42.D0, 40.5D0, 35.D0, 30.D0, 28.D0,
35462 & 25.D0, 22.D0, 21.D0, 20.D0, 18.D0, 17.D0, 11*0.D0,
35463 & .05D0, .15D0, .18D0, .2D0, .2D0, .3D0, .4D0, .6D0, .7D0,
35464 & .85D0, 0.D0, 1.D0, .9D0, .46D0, .3D0, .23D0, .18D0, .16D0,
35465 & .14D0, .1D0, .08D0, .05D0, .02D0, .015D0, 4*.011D0, 3*.005D0,
35466 & 0.D0, 3.3D0, 3.D0, 1.5D0, 1.D0, .7D0, .4D0, .35D0, .4D0,
35467 & .25D0, .18D0, .08D0, .04D0, .03D0, .023D0, .016D0, .014D0,
35468 & .01D0, .008D0, .006D0, .005D0 /
35469 DATA SPIKPZ/ 0.D0, 215.D0, 193.D0, 170.D0, 148.D0, 113.D0, 97.D0,
35470 & 84.D0, 78.D0, 68.D0, 64.D0, 61.D0, 46.D0, 36.D0, 31.3D0, 28.5D0,
35471 & 25.7D0, 22.6D0, 21.4D0, 20.7D0, 19.9D0, 9*0.D0, 2.4D0, .2D0,
35472 & 20*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35473 & .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0,
35474 & 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0,
35475 & 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0,
35476 & 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35477 & .7D0, .5D0, .3D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35478 & 7.6D0, 6.D0, 5.D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35479 & 7.6D0, 6.D0, 5.D0, 18*0.D0, 1.D0, 4.9D0, 8.5D0, 18*0.D0, 1.D0,
35480 & 4.9D0, 8.5D0, 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0,
35481 & 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0, 15*0.D0, 1.9D0,
35482 & 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0 /
35483* *
35484* *
35485**************** an - p - data *
35486* *
35487 DATA SANPEL/
35488 & 0.D0, 176.D0, 160.D0, 105.D0, 75.D0, 68.D0, 65.D0, 50.D0,
35489 & 50.D0, 43.D0, 42.D0, 40.5D0, 35.D0, 30.D0, 28.D0,
35490 & 25.D0, 22.D0, 21.D0, 20.D0, 18.D0, 17.D0, 11*0.D0, .05D0,
35491 & .15D0, .18D0, .2D0, .2D0, .3D0, .4D0, .6D0, .7D0, .85D0,
35492 & 0.D0, 1.D0, .9D0, .46D0, .3D0, .23D0, .18D0, .16D0, .14D0,
35493 & .1D0, .08D0, .05D0, .02D0, .015D0, 4*.011D0, 3*.005D0,
35494 & 0.D0, 3.3D0, 3.D0, 1.5D0, 1.D0, .7D0, .4D0, .35D0, .4D0, .25D0,
35495 & .18D0, .08D0, .04D0, .03D0, .023D0, .016D0, .014D0,
35496 & .01D0, .008D0, .006D0, .005D0 /
35497 DATA SPIKPF/ 0.D0, 215.D0, 193.D0, 170.D0, 148.D0, 113.D0, 97.D0,
35498 & 84.D0, 78.D0, 68.D0, 64.D0, 61.D0, 46.D0, 36.D0, 31.3D0, 28.5D0,
35499 & 25.7D0, 22.6D0, 21.4D0, 20.7D0, 19.9D0, 9*0.D0, 2.4D0, .2D0,
35500 & 20*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35501 & .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0,
35502 & 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0, 10*0.D0, 1.8D0, 2.8D0,
35503 & 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0, .7D0, .5D0, .3D0,
35504 & 10*0.D0, 1.8D0, 2.8D0, 3.6D0, 2.3D0, 1.8D0, 1.5D0, 1.3D0, 1.D0,
35505 & .7D0, .5D0, .3D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35506 & 7.6D0, 6.D0, 5.D0, 13*0.D0, 5.2D0, 8.7D0, 11.4D0, 14.D0, 11.9D0,
35507 & 7.6D0, 6.D0, 5.D0, 18*0.D0, 1.D0, 4.9D0, 8.5D0, 18*0.D0, 1.D0,
35508 & 4.9D0, 8.5D0, 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0,
35509 & 15*0.D0, 1.9D0, 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0, 15*0.D0, 1.9D0,
35510 & 2.3D0, 4.D0, 6.5D0, 5.2D0, 3.4D0 /
35511**** ko - n - data *
35512 DATA SPKP15/0.D0, 20.D0, 14.D0, 12.D0, 11.5D0, 10.D0, 8.D0, 7.D0,
35513 & 6.D0, 5.5D0, 5.3D0, 5.D0, 4.5D0, 4.4D0, 3.8D0, 3.D0, 2.8D0,
35514 & 0.D0, .5D0, 1.15D0, 2.D0, 1.3D0, .8D0, .45D0, 10*0.D0,
35515 & 3*0.D0, 0.9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0, 2.D0, 1.7D0,
35516 & 1.5D0, 1.2D0, .9D0, .6D0, .45D0, .21D0, .2D0,
35517 & 3*0.D0, 0.9D0, 2.5D0, 3.D0, 2.5D0, 2.3D0, 2.D0, 1.7D0,
35518 & 1.5D0, 1.2D0, .9D0, .6D0, .45D0, .21D0, .2D0,
35519 & 4*0.D0, 1.D0, 2.1D0, 2.6D0, 2.3D0, 2.1D0, 1.8D0, 1.7D0,
35520 & 1.4D0, 1.2D0, 1.05D0, .9D0, .66D0, .5D0,
35521 & 7*0.D0, .3D0, 1.D0, 1.D0, .9D0, .7D0, .4D0, .30D0, .2D0,
35522 & 11*0.D0, .1D0, 1.D0, 2.2D0, 3.5D0, 4.20D0, 4.55D0,
35523 & 4.85D0, 4.9D0,
35524 & 10*0.D0, .2D0, .7D0, 1.6D0, 2.5D0, 2.2D0, 1.71D0, 1.6D0,
35525 & 6*0.D0, 1.4D0, 3.8D0, 5.D0, 4.7D0, 4.4D0, 4.D0, 3.5D0,
35526 & 2.85D0, 2.35D0, 2.01D0, 1.8D0,
35527 & 12*0.D0, .1D0, .8D0, 2.05D0, 3.31D0, 3.5D0,
35528 & 12*0.D0, .034D0, .20D0, .75D0, 1.04D0, 1.24D0 /
35529**** ako - p - data *
35530 DATA SPKP16/ 0.D0, 4.D0, 9.5D0, 20.D0, 13.D0, 9.5D0, 6.D0, 4.4D0,
35531 & 3.D0, 2.4D0, 2.D0, 1.4D0, 1.2D0, 1.D0, .9D0, .7D0, .6D0, 0.D0,
35532 & 4.5D0, 6.D0, 5.D0, 2.5D0, 2.D0, 1.7D0, 2.1D0, 1.9D0, .9D0, .5D0,
35533 & .3D0, .24D0, .2D0, .18D0, .1D0, .09D0, 0.D0, 1.8D0, 2.D0, 1.1D0,
35534 & .9D0, .5D0, .5D0, .4D0, .4D0, .2D0, .1D0, .06D0, .05D0, .04D0,
35535 & .03D0, .02D0, .02D0, 0.D0, 1.5D0, 2.D0, .9D0, 1.1D0, .4D0, .6D0,
35536 & .7D0, .65D0, .3D0, .17D0, .1D0, .08D0, .07D0, .06D0, .04D0,
35537 & .03D0, 0.D0, .56D0, 1.29D0, 2.26D0, 1.01D0, .64D0, .37D0,
35538 & 14*0.D0, 1.13D0, 2.61D0, 2.91D0, 2.58D0, 2.35D0, 2.02D0, 1.91D0,
35539 & 1.57D0, 1.35D0, 1.29D0, 1.01D0, .74D0, .65D0, 3*0.D0, 1.0D0,
35540 & 3.03D0, 3.36D0, 2.8D0, 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0,
35541 & 1.01D0, .67D0, .5D0, .24D0, .23D0, 3*0.D0, 1.0D0, 3.03D0, 3.36D0,
35542 & 2.8D0, 2.58D0, 2.24D0, 1.91D0, 1.68D0, 1.35D0, 1.01D0, .67D0,
35543 & .5D0, .24D0, .23D0, 7*0.D0, .34D0, 1.12D0, 1.12D0, 1.01D0, .78D0,
35544 & .45D0, .39D0, .22D0, .07D0, 7*0.D0, 1.71D0, 4.26D0, 5.6D0,5.57D0,
35545 & 4.93D0, 4.48D0, 3.92D0, 3.19D0, 2.63D0, 2.25D0, 2.D0, 10*0.D0,
35546 & .22D0, .8D0, .75D0, 1.D0, 1.3D0, 1.5D0, 1.3D0, 13*0.D0, .1D0,
35547 & .3D0, .7D0, 1.D0, 13*0.D0, .1D0, .3D0, .7D0, 1.D0, 9*0.D0, .11D0,
35548 & 1.72D0, 2.69D0, 3.92D0, 4.76D0, 5.10D0, 5.44D0, 5.3D0, 5*0.D0,
35549 & 9.2D0, 4.7D0, 1.9D0, 9*0.D0, .0D0,2.5D0,15.D0,
35550 & 21.5D0, 15.3D0, 3.D0, 1.5D0, 10*0.D0 /
35551 DATA NURELN/9, 12, 5*0, 10, 14, 3*0, 1, 3, 5, 7, 6*0, 2, 6, 16,
35552 & 5*0, 10, 13, 5*0, 11, 12, 3*0, 2, 4, 6, 8, 6*0, 3, 15, 7, 5*0 /
35553*= end*block.blkdt3 *
35554 END
35555
35556*$ CREATE DT_QEL_POL.FOR
35557*COPY DT_QEL_POL
35558*
35559*===qel_pol============================================================*
35560*
35561 SUBROUTINE DT_QEL_POL(ENU,LTYP,P21,P22,P23,P24,P25)
35562
35563 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35564 SAVE
35565
35566 CALL DT_MASS_INI
35567 CALL DT_GEN_QEL(ENU,LTYP,P21,P22,P23,P24,P25)
35568
35569 RETURN
35570 END
35571
35572*$ CREATE DT_GEN_QEL.FOR
35573*COPY DT_GEN_QEL
35574C==================================================================
35575C Generation of a Quasi-Elastic neutrino scattering
35576C==================================================================
35577*
35578*===gen_qel============================================================*
35579*
35580 SUBROUTINE DT_GEN_QEL(ENU,LTYP,P21,P22,P23,P24,P25)
35581
35582C...Generate a quasi-elastic neutrino/antineutrino
35583C. Interaction on a nuclear target
35584C. INPUT : LTYP = neutrino type (1,...,6)
35585C. ENU (GeV) = neutrino energy
35586C----------------------------------------------------
35587
35588 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35589 SAVE
35590
35591 PARAMETER ( LINP = 10 ,
35592 & LOUT = 6 ,
35593 & LDAT = 9 )
35594 PARAMETER (MAXLND=4000)
35595 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
35596* nuclear potential
35597 LOGICAL LFERMI
35598 COMMON /DTNPOT/ PFERMP(2),PFERMN(2),FERMOD,
35599 & EBINDP(2),EBINDN(2),EPOT(2,210),
35600 & ETACOU(2),ICOUL,LFERMI
35601* steering flags for qel neutrino scattering modules
35602 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
35603**sr - removed (not needed)
35604C COMMON /CBAD/ LBAD, NBAD
35605C COMMON /CNUC/ XMN,XMN2,PFERMI,EFERMI,EBIND,EB2,C0
35606**
35607
35608 DIMENSION PI(3),PO(3)
35609CJR+
35610 DATA ININU/0/
35611CJR-
35612C REAL*8 DBETA(3)
35613C REAL*8 MN(2), ML0(6), ML, ML2, MI, MI2, MF, MF2
35614 DIMENSION DBETA(3),DBETB(3),AMN(2),AML0(6)
35615 DATA AMN /0.93827231D0, 0.93956563D0/
35616 DATA AML0 /2*0.51100D-03,2*0.105659D0, 2*1.777D0/
35617 DATA INIPRI/0/
35618
35619C DATA PFERMI/0.22D0/
35620CGB+...Binding Energy
35621 DATA EBIND/0.008D0/
35622CGB-...
35623
35624 ININU=ININU+1
35625 IF(ININU.EQ.1)NDSIG=0
35626 LBAD = 0
35627 enu0=enu
35628c write(*,*) enu0
35629C...Lepton mass
35630 AML = AML0(LTYP) ! massa leptoni
35631 AML2 = AML**2 ! massa leptoni **2
35632C...Particle labels (LUND)
35633 N = 5
35634 K(1,1) = 21
35635 K(2,1) = 21
35636 K(3,1) = 21
35637 K(3,3) = 1
35638 K(4,1) = 1
35639 K(4,3) = 1
35640 K(5,1) = 1
35641 K(5,3) = 2
35642 K0 = (LTYP-1)/2 ! 2
35643 K1 = LTYP/2 ! 2
35644 KA = 12 + 2*K0 ! 16
35645 IS = -1 + 2*LTYP - 4*K1 ! -1 +10 -8 = 1
35646 K(1,2) = IS*KA
35647 K(4,2) = IS*(KA-1)
35648 K(3,2) = IS*24
35649 LNU = 2 - LTYP + 2*K1 ! 2 - 5 + 2 = - 1
35650 IF (LNU .EQ. 2) THEN
35651 K(2,2) = 2212
35652 K(5,2) = 2112
35653 AMI = AMN(1)
35654 AMF = AMN(2)
35655CJR+
35656 PFERMI=PFERMN(2)
35657CJR-
35658 ELSE
35659 K(2,2) = 2112
35660 K(5,2) = 2212
35661 AMI = AMN(2)
35662 AMF = AMN(1)
35663CJR+
35664 PFERMI=PFERMP(2)
35665CJR-
35666 ENDIF
35667 AMI2 = AMI**2
35668 AMF2 = AMF**2
35669
35670 DO IGB=1,5
35671 P(3,IGB) = 0.
35672 P(4,IGB) = 0.
35673 P(5,IGB) = 0.
35674 END DO
35675
35676 NTRY = 0
35677CGB+...
35678 EFMAX = SQRT(PFERMI**2 + AMI2) -AMI ! max. Fermi Energy
35679 ENWELL = EFMAX + EBIND ! depth of nuclear potential well
35680CGB-...
35681
35682 100 CONTINUE
35683
35684C...4-momentum initial lepton
35685 P(1,5) = 0. ! massa
35686 P(1,4) = ENU0 ! energia
35687 P(1,1) = 0. ! px
35688 P(1,2) = 0. ! py
35689 P(1,3) = ENU0 ! pz
35690
35691C PF = PFERMI*PYR(0)**(1./3.)
35692c write(23,*) PYR(0)
35693c write(*,*) 'Pfermi=',PF
35694c PF = 0.
35695 NTRY=NTRY+1
35696C IF(ntry.GT.2) WRITE(*,*) ntry,enu0,k2
35697 IF (NTRY .GT. 500) THEN
35698 LBAD = 1
35699 WRITE (LOUT,1001) NBAD, ENU
35700 RETURN
35701 ENDIF
35702C CT = -1. + 2.*PYR(0)
35703c CT = -1.
35704C ST = SQRT(1.-CT*CT)
35705C F = 2.*3.1415926*PYR(0)
35706c F = 0.
35707
35708C P(2,4) = SQRT(PF*PF + MI2) - EBIND ! energia
35709C P(2,1) = PF*ST*COS(F) ! px
35710C P(2,2) = PF*ST*SIN(F) ! py
35711C P(2,3) = PF*CT ! pz
35712C P(2,5) = SQRT(P(2,4)**2-PF*PF) ! massa
35713 P(2,1) = P21
35714 P(2,2) = P22
35715 P(2,3) = P23
35716 P(2,4) = P24
35717 P(2,5) = P25
35718 beta1=-p(2,1)/p(2,4)
35719 beta2=-p(2,2)/p(2,4)
35720 beta3=-p(2,3)/p(2,4)
35721 N=2
35722C WRITE(6,*)' before transforming into target rest frame'
35723 CALL PYROBO(0,0,0.0D0,0.0D0,BETA1,BETA2,BETA3)
35724C print*,' nucl. rest fram ( fermi incl.) prima della rotazione'
35725 N=5
35726
35727 phi11=atan(p(1,2)/p(1,3))
35728 pi(1)=p(1,1)
35729 pi(2)=p(1,2)
35730 pi(3)=p(1,3)
35731
35732 CALL DT_TESTROT(PI,Po,PHI11,1)
35733 DO ll=1,3
35734 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35735 END DO
35736c WRITE(*,*) po
35737 p(1,1)=po(1)
35738 p(1,2)=po(2)
35739 p(1,3)=po(3)
35740 phi12=atan(p(1,1)/p(1,3))
35741
35742 pi(1)=p(1,1)
35743 pi(2)=p(1,2)
35744 pi(3)=p(1,3)
35745 CALL DT_TESTROT(Pi,Po,PHI12,2)
35746 DO ll=1,3
35747 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35748 END DO
35749c WRITE(*,*) po
35750 p(1,1)=po(1)
35751 p(1,2)=po(2)
35752 p(1,3)=po(3)
35753
35754 enu=p(1,4)
35755
35756C...Kinematical limits in Q**2
35757c S = P(2,5)**2 + 2.*ENU*(P(2,4)-P(2,3)) ! ????
35758 S = P(2,5)**2 + 2.*ENU*P(2,5)
35759 SQS = SQRT(S) ! E centro massa
35760 IF (SQS .LT. (AML + AMF + 3.E-03)) GOTO 100
35761 ELF = (S-AMF2+AML2)/(2.*SQS) ! energia leptone finale p
35762 PSTAR = (S-P(2,5)**2)/(2.*SQS) ! p* neutrino nel c.m.
35763 PLF = SQRT(ELF**2-AML2) ! 3-momento leptone finale
35764 Q2MIN = -AML2 + 2.*PSTAR*(ELF-PLF) ! + o -
35765 Q2MAX = -AML2 + 2.*PSTAR*(ELF+PLF) ! according con cos(theta)
35766 IF (Q2MIN .LT. 0.) Q2MIN = 0. ! ??? non fisico
35767
35768C...Generate Q**2
35769 DSIGMAX = DT_DSQEL_Q2 (LTYP,ENU, Q2MIN)
35770 200 Q2 = Q2MIN + (Q2MAX-Q2MIN)*PYR(0)
35771 DSIG = DT_DSQEL_Q2 (LTYP,ENU, Q2)
35772 IF (DSIG .LT. DSIGMAX*PYR(0)) GOTO 200
35773 CALL DT_QGAUS(Q2MIN,Q2MAX,DSIGEV,ENU,LTYP)
35774 NDSIG=NDSIG+1
35775C WRITE(6,*)' Q2,Q2min,Q2MAX,DSIGEV',
35776C &Q2,Q2min,Q2MAX,DSIGEV
35777
35778C...c.m. frame. Neutrino along z axis
35779 DETOT = (P(1,4)) + (P(2,4)) ! e totale
35780 DBETA(1) = ((P(1,1)) + (P(2,1)))/DETOT ! px1+px2/etot = beta_x
35781 DBETA(2) = ((P(1,2)) + (P(2,2)))/DETOT !
35782 DBETA(3) = ((P(1,3)) + (P(2,3)))/DETOT !
35783c WRITE(*,*)
35784c WRITE(*,*)
35785C WRITE(*,*) 'Input values laboratory frame'
35786 N=2
35787
35788 CALL PYROBO(0,0,0.0D0,0.0D0,-DBETA(1),-DBETA(2),-DBETA(3))
35789
35790 N=5
35791c STHETA = ULANGL(P(1,3),P(1,1))
35792c write(*,*) 'stheta' ,stheta
35793c stheta=0.
35794c CALL PYROBO (0,0,-STHETA,0.,0.D0,0.D0,0.D0)
35795c WRITE(*,*)
35796c WRITE(*,*)
35797C WRITE(*,*) 'Output values cm frame'
35798C...Kinematic in c.m. frame
35799 CTSTAR = ELF/PLF - (Q2 + AML2)/(2.*PSTAR*PLF) ! cos(theta) cm
35800 STSTAR = SQRT(1.-CTSTAR**2)
35801 PHI = 6.28319*PYR(0) ! random phi tra 0 e 2*pi
35802 P(4,5) = AML ! massa leptone
35803 P(4,4) = ELF ! e leptone
35804 P(4,3) = PLF*CTSTAR ! px
35805 P(4,1) = PLF*STSTAR*COS(PHI) ! py
35806 P(4,2) = PLF*STSTAR*SIN(PHI) ! pz
35807
35808 P(5,5) = AMF ! barione
35809 P(5,4) = (S+AMF2-AML2)/(2.*SQS)! e barione
35810 P(5,3) = -P(4,3) ! px
35811 P(5,1) = -P(4,1) ! py
35812 P(5,2) = -P(4,2) ! pz
35813
35814 P(3,5) = -Q2
35815 P(3,1) = P(1,1)-P(4,1)
35816 P(3,2) = P(1,2)-P(4,2)
35817 P(3,3) = P(1,3)-P(4,3)
35818 P(3,4) = P(1,4)-P(4,4)
35819
35820C...Transform back to laboratory frame
35821C WRITE(*,*) 'before going back to nucl rest frame'
35822c CALL PYROBO (0,0,STHETA,0.,0.D0,0.D0,0.D0)
35823 N=5
35824
35825 CALL PYROBO(0,0,0.0D0,0.0D0,DBETA(1),DBETA(2),DBETA(3))
35826
35827C WRITE(*,*) 'Now back in nucl rest frame'
35828 IF(LTYP.GE.3) CALL DT_PREPOLA(Q2,LTYP,ENU)
35829
35830c********************************************
35831
35832 DO kw=1,5
35833 pi(1)=p(kw,1)
35834 pi(2)=p(kw,2)
35835 pi(3)=p(kw,3)
35836 CALL DT_TESTROT(Pi,Po,PHI12,3)
35837 DO ll=1,3
35838 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35839 END DO
35840 p(kw,1)=po(1)
35841 p(kw,2)=po(2)
35842 p(kw,3)=po(3)
35843 END DO
35844c********************************************
35845
35846 DO kw=1,5
35847 pi(1)=p(kw,1)
35848 pi(2)=p(kw,2)
35849 pi(3)=p(kw,3)
35850 CALL DT_TESTROT(Pi,Po,PHI11,4)
35851 DO ll=1,3
35852 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
35853 END DO
35854 p(kw,1)=po(1)
35855 p(kw,2)=po(2)
35856 p(kw,3)=po(3)
35857 END DO
35858
35859c********************************************
35860
35861C WRITE(*,*) 'Now back in lab frame'
35862
35863 CALL PYROBO(1,5,0.0D0,0.0D0,-BETA1,-BETA2,-BETA3)
35864
35865CGB+...
35866C...test (on final momentum of nucleon) if Fermi-blocking
35867C...is operating
35868 ENUCL = SQRT(P(5,1)**2 + P(5,2)**2 + P(5,3)**2 + P(5,5)**2)
35869 & - P(5,5)
35870 IF (ENUCL.LT. EFMAX) THEN
35871 IF(INIPRI.LT.10)THEN
35872 INIPRI=INIPRI+1
35873C WRITE(6,*)' qel: Pauli ENUCL.LT.EFMAX ', ENUCL,EFMAX
35874C...the interaction is not possible due to Pauli-Blocking and
35875C...it must be resampled
35876 ENDIF
35877 GOTO 100
35878 ELSE IF (ENUCL.LT.ENWELL.and.ENUCL.GE.EFMAX) THEN
35879 IF(INIPRI.LT.10)THEN
35880 INIPRI=INIPRI+1
35881C WRITE(6,*)' qel: inside ENUCL.LT.ENWELL ', ENUCL,ENWELL
35882 ENDIF
35883C Reject (J:R) here all these events
35884C are otherwise rejected in dpmjet
35885 GOTO 100
35886C...the interaction is possible, but the nucleon remains inside
35887C...the nucleus. The nucleus is therefore left excited.
35888C...We treat this case as a nucleon with 0 kinetic energy.
35889C P(5,5) = AMF
35890C P(5,4) = AMF
35891C P(5,1) = 0.
35892C P(5,2) = 0.
35893C P(5,3) = 0.
35894 ELSE IF (ENUCL.GE.ENWELL) THEN
35895C WRITE(6,*)' qel ENUCL.GE.ENWELL ',ENUCL,ENWELL
35896C...the interaction is possible, the nucleon can exit the nucleus
35897C...but the nuclear well depth must be subtracted. The nucleus could be
35898C...left in an excited state.
35899 Pstart = SQRT(P(5,1)**2 + P(5,2)**2 + P(5,3)**2)
35900C P(5,4) = ENUCL-ENWELL + AMF
35901 Pnucl = SQRT(P(5,4)**2-AMF**2)
35902C...The 3-momentum is scaled assuming that the direction remains
35903C...unaffected
35904 P(5,1) = P(5,1) * Pnucl/Pstart
35905 P(5,2) = P(5,2) * Pnucl/Pstart
35906 P(5,3) = P(5,3) * Pnucl/Pstart
35907C WRITE(6,*)' qel new P(5,4) ',P(5,4)
35908 ENDIF
35909CGB-...
35910 DSIGSU=DSIGSU+DSIGEV
35911
35912 GA=P(4,4)/P(4,5)
35913 BGX=P(4,1)/P(4,5)
35914 BGY=P(4,2)/P(4,5)
35915 BGZ=P(4,3)/P(4,5)
35916*
35917 DBETB(1)=BGX/GA
35918 DBETB(2)=BGY/GA
35919 DBETB(3)=BGZ/GA
35920 IF(NEUDEC.EQ.1.OR.NEUDEC.EQ.2) THEN
35921
35922 CALL PYROBO(6,8,0.0D0,0.0D0,DBETB(1),DBETB(2),DBETB(3))
35923
35924 ENDIF
35925c
35926C PRINT*,' FINE EVENTO '
35927 enu=enu0
35928 RETURN
35929
35930 1001 FORMAT(2X, 'DT_GEN_QEL : event rejected ', I5, G10.3)
35931 END
35932
35933*$ CREATE DT_MASS_INI.FOR
35934*COPY DT_MASS_INI
35935C====================================================================
35936C. Masses
35937C====================================================================
35938*
35939*===mass_ini===========================================================*
35940*
35941 SUBROUTINE DT_MASS_INI
35942C...Initialize the kinematics for the quasi-elastic cross section
35943
35944 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35945 SAVE
35946
35947* particle masses used in qel neutrino scattering modules
35948 COMMON /QNMASS/ EML(6),EMLSQ(6),EMN1(6),EMN2(6),ETQE(6),
35949 & EMN1SQ(6),EMN2SQ(6),EMPROT,EMNEUT,EMN,
35950 & EMPROTSQ,EMNEUTSQ,EMNSQ
35951
35952 EML(1) = 0.51100D-03 ! e-
35953 EML(2) = EML(1) ! e+
35954 EML(3) = 0.105659D0 ! mu-
35955 EML(4) = EML(3) ! mu+
35956 EML(5) = 1.7777D0 ! tau-
35957 EML(6) = EML(5) ! tau+
35958 EMPROT = 0.93827231D0 ! p
35959 EMNEUT = 0.93956563D0 ! n
35960 EMPROTSQ = EMPROT**2
35961 EMNEUTSQ = EMNEUT**2
35962 EMN = (EMPROT + EMNEUT)/2.
35963 EMNSQ = EMN**2
35964 DO J=1,3
35965 J0 = 2*(J-1)
35966 EMN1(J0+1) = EMNEUT
35967 EMN1(J0+2) = EMPROT
35968 EMN2(J0+1) = EMPROT
35969 EMN2(J0+2) = EMNEUT
35970 ENDDO
35971 DO J=1,6
35972 EMLSQ(J) = EML(J)**2
35973 ETQE(J) = ((EMN2(J)+ EML(J))**2-EMN1(J)**2)/(2.*EMN1(J))
35974 ENDDO
35975 RETURN
35976 END
35977
35978*$ CREATE DT_DSQEL_Q2.FOR
35979*COPY DT_DSQEL_Q2
35980*
35981*===dsqel_q2===========================================================*
35982*
35983 DOUBLE PRECISION FUNCTION DT_DSQEL_Q2 (JTYP,ENU, Q2)
35984
35985C...differential cross section for Quasi-Elastic scattering
35986C. nu + N -> l + N'
35987C. From Llewellin Smith Phys.Rep. 3C, 261, (1971).
35988C.
35989C. INPUT : JTYP = 1,...,6 nu_e, ...., nubar_tau
35990C. ENU (GeV) = Neutrino energy
35991C. Q2 (GeV**2) = (Transfer momentum)**2
35992C.
35993C. OUTPUT : DSQEL_Q2 = differential cross section :
35994C. dsigma/dq**2 (10**-38 cm+2/GeV**2)
35995C------------------------------------------------------------------
35996
35997 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
35998 SAVE
35999
36000* particle masses used in qel neutrino scattering modules
36001 COMMON /QNMASS/ EML(6),EMLSQ(6),EMN1(6),EMN2(6),ETQE(6),
36002 & EMN1SQ(6),EMN2SQ(6),EMPROT,EMNEUT,EMN,
36003 & EMPROTSQ,EMNEUTSQ,EMNSQ
36004**sr - removed (not needed)
36005C COMMON /CAXIAL/ FA0, AXIAL2
36006**
36007
36008 DIMENSION SS(6)
36009 DATA C0 /0.17590D0 / ! G_F**2 cos(theta_c)**2 M**2 /(8 pi) 10**-38 cm+2
36010 DATA SS /1.D0, -1.D0, 1.D0, -1.D0, 1.D0, -1.D0/
36011 DATA AXIAL2 /1.03D0/ ! to be checked
36012
36013 FA0=-1.253D0
36014 CSI = 3.71D0 ! ???
36015 GVE = 1.D0/ (1.D0 + Q2/0.84D0**2)**2 ! G_e(q**2)
36016 GVM = (1.D0+CSI)*GVE ! G_m (q**2)
36017 X = Q2/(EMN*EMN) ! emn=massa barione
36018 XA = X/4.D0
36019 FV1 = 1.D0/(1.D0+XA)*(GVE+XA*GVM)
36020 FV2 = 1.D0/(1.D0+XA)*(GVM-GVE)
36021 FA = FA0/(1.D0 + Q2/AXIAL2)**2
36022 FFA = FA*FA
36023 FFV1 = FV1*FV1
36024 FFV2 = FV2*FV2
36025 RM = EMLSQ(JTYP)/(EMN*EMN) ! emlsq(jtyp)
36026 A1 = (4.D0+X)*FFA - (4.D0-X)*FFV1 + X*FFV2*(1.D0-XA)+4*X*FV1*FV2
36027 A2 = -RM * ((FV1 + FV2)**2 + FFA)
36028 AA = (XA+0.25D0*RM)*(A1 + A2)
36029 BB = -X*FA*(FV1 + FV2)
36030 CC = 0.25D0*(FFA + FFV1 + XA*FFV2)
36031 SU = (4.D0*ENU*EMN - Q2 - EMLSQ(JTYP))/(EMN*EMN)
36032 DT_DSQEL_Q2 = C0*(AA + SS(JTYP)*BB*SU + CC*SU*SU) / (ENU*ENU) !
36033 IF(DT_DSQEL_Q2 .LT. 0.D0) DT_DSQEL_Q2 = 0.D0
36034
36035 RETURN
36036 END
36037
36038*$ CREATE DT_PREPOLA.FOR
36039*COPY DT_PREPOLA
36040*
36041*===prepola============================================================*
36042*
36043 SUBROUTINE DT_PREPOLA(Q2,JTYP,ENU)
36044
36045 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36046 SAVE
36047c
36048c By G. Battistoni and E. Scapparone (sept. 1997)
36049c According to:
36050c Albright & Jarlskog, Nucl Phys B84 (1975) 467
36051c
36052c
36053 PARAMETER (MAXLND=4000)
36054 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
36055 COMMON /QNPOL/ POLARX(4),PMODUL
36056* particle masses used in qel neutrino scattering modules
36057 COMMON /QNMASS/ EML(6),EMLSQ(6),EMN1(6),EMN2(6),ETQE(6),
36058 & EMN1SQ(6),EMN2SQ(6),EMPROT,EMNEUT,EMN,
36059 & EMPROTSQ,EMNEUTSQ,EMNSQ
36060* steering flags for qel neutrino scattering modules
36061 COMMON /QNEUTO/ DSIGSU,DSIGMC,NDSIG,NEUTYP,NEUDEC
36062**sr - removed (not needed)
36063C COMMON /CAXIAL/ FA0, AXIAL2
36064C COMMON /TAUTAU/Q(4,5),ETL,PXL,PYL,PZL,
36065C & ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN
36066**
36067 REAL*8 POL(4,4),BB2(3)
36068 DIMENSION SS(6)
36069C DATA C0 /0.17590D0 / ! G_F**2 cos(theta_c)**2 M**2 /(8 pi) 10**-38 cm+2
36070 DATA SS /1.D0, -1.D0, 1.D0, -1.D0, 1.D0, -1.D0/
36071**sr uncommented since common block CAXIAL is now commented
36072 DATA AXIAL2 /1.03D0/ ! to be checked
36073**
36074
36075 RML=P(4,5)
36076 RMM=0.93960D+00
36077 FM2 = RMM**2
36078 MPI = 0.135D+00
36079 OLDQ2=Q2
36080 FA0=-1.253D+00
36081 CSI = 3.71D+00 !
36082 GVE = 1.D0/ (1.D0 + Q2/(0.84D+00)**2)**2 ! G_e(q**2)
36083 GVM = (1.D0+CSI)*GVE ! G_m (q**2)
36084 X = Q2/(EMN*EMN) ! emn=massa barione
36085 XA = X/4.D0
36086 FV1 = 1.D0/(1.D0+XA)*(GVE+XA*GVM)
36087 FV2 = 1.D0/(1.D0+XA)*(GVM-GVE)
36088 FA = FA0/(1.D0 + Q2/AXIAL2**2)**2
36089 FFA = FA*FA
36090 FFV1 = FV1*FV1
36091 FFV2 = FV2*FV2
36092 FP=2.D0*FA*RMM/(MPI**2 + Q2)
36093 RM = EMLSQ(JTYP)/(EMN*EMN) ! emlsq(jtyp)
36094 A1 = (4.D0+X)*FFA-(4.D0-X)*FFV1+X*FFV2*(1.D0-XA)+4.D0*X*FV1*FV2
36095 A2 = -RM * ((FV1 + FV2)**2 + FFA)
36096 AA = (XA+0.25D+00*RM)*(A1 + A2)
36097 BB = -X*FA*(FV1 + FV2)
36098 CC = 0.25D+00*(FFA + FFV1 + XA*FFV2)
36099 SU = (4.D+00*ENU*EMN - Q2 - EMLSQ(JTYP))/(EMN*EMN)
36100
36101 OMEGA1=FFA+XA*(FFA+(FV1+FV2)**2 ) ! articolo di ll...-smith
36102 OMEGA2=4.D+00*CC
36103 OMEGA3=2.D+00*FA*(FV1+FV2)
36104 OMEGA4P=(-(FV1+FV2)**2-(FA+2*FP)**2+(4.0D+00+
36105 1 (Q2/FM2))*FP**2)
36106 OMEGA5=OMEGA2
36107 OMEGA4=(OMEGA4P-OMEGA2+2*OMEGA5)/4.D+00
36108 WW1=2.D+00*OMEGA1*EMN**2
36109 WW2=2.D+00*OMEGA2*EMN**2
36110 WW3=2.D+00*OMEGA3*EMN**2
36111 WW4=2.D+00*OMEGA4*EMN**2
36112 WW5=2.D+00*OMEGA5*EMN**2
36113
36114 DO I=1,3
36115 BB2(I)=-P(4,I)/P(4,4)
36116 END DO
36117c WRITE(*,*)
36118c WRITE(*,*)
36119c WRITE(*,*) 'Prepola: ready to transform to lepton rest frame'
36120 N=5
36121 CALL PYROBO(0,0,0.0D0,0.0D0,BB2(1),BB2(2),BB2(3))
36122* NOW PARTICLES ARE IN THE SCATTERED LEPTON REST FRAME
36123c WRITE(*,*)
36124c WRITE(*,*)
36125c WRITE(*,*) 'Prepola: now in lepton rest frame'
36126 EE=ENU
36127 QM2=Q2+RML**2
36128 U=Q2/(2.*RMM)
36129 FRAC=QM2*WW1 + (2.D+00*EE*(EE-U) - 0.5D+00*QM2)*WW2 - SS(JTYP)*
36130 + (0.5D+00/(RMM**2))*(2.D+00*RMM*EE*Q2 - U*QM2)*WW3 +
36131 + ((RML**2)/(2.D+00*FM2))*(QM2*WW4-2.D+00*RMM*EE*WW5) !<=FM2 inv di RMM!!
36132
36133 FACTK=2.D+00*WW1 -WW2 -SS(JTYP)*(EE/RMM)*WW3 +((EE-U)/RMM)*WW5
36134 + - ((RML**2)/FM2)*WW4 !<=FM2 inv di RMM!!
36135
36136 FACTP=2.D+00*EE/RMM*WW2 - (QM2/(2.D+00*RMM**2))*(SS(JTYP)*WW3+WW5)
36137
36138 DO I=1,3
36139 POL(4,I)=RML*SS(JTYP)*(FACTK*P(1,I)+FACTP*P(2,I))/FRAC
36140 POLARX(I)=POL(4,I)
36141 END DO
36142
36143 PMODUL=0.D0
36144 DO I=1,3
36145 PMODUL=PMODUL+POL(4,I)**2
36146 END DO
36147
36148 IF(JTYP.GT.4.AND.NEUDEC.GT.0) THEN
36149 IF(NEUDEC.EQ.1) THEN
36150 CALL DT_LEPDCYP(EML(JTYP),EML(JTYP-2),POLARX(3),
36151 + ETL,PXL,PYL,PZL,
36152 + ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN)
36153c
36154c Tau has decayed in muon
36155c
36156 ENDIF
36157 IF(NEUDEC.EQ.2) THEN
36158 CALL DT_LEPDCYP(EML(JTYP),EML(JTYP-4),POLARX(3),
36159 + ETL,PXL,PYL,PZL,
36160 + ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN)
36161c
36162c Tau has decayed in electron
36163c
36164 ENDIF
36165 K(4,1)=15
36166 K(4,4) = 6
36167 K(4,5) = 8
36168 N=N+3
36169c
36170c fill common for muon(electron)
36171c
36172 P(6,1)=PXL
36173 P(6,2)=PYL
36174 P(6,3)=PZL
36175 P(6,4)=ETL
36176 K(6,1)=1
36177 IF(JTYP.EQ.5) THEN
36178 IF(NEUDEC.EQ.1) THEN
36179 P(6,5)=EML(JTYP-2)
36180 K(6,2)=13
36181 ELSEIF(NEUDEC.EQ.2) THEN
36182 P(6,5)=EML(JTYP-4)
36183 K(6,2)=11
36184 ENDIF
36185 ELSEIF(JTYP.EQ.6) THEN
36186 IF(NEUDEC.EQ.1) THEN
36187 K(6,2)=-13
36188 ELSEIF(NEUDEC.EQ.2) THEN
36189 K(6,2)=-11
36190 ENDIF
36191 END IF
36192 K(6,3)=4
36193 K(6,4)=0
36194 K(6,5)=0
36195c
36196c fill common for tau_(anti)neutrino
36197c
36198 P(7,1)=PXB
36199 P(7,2)=PYB
36200 P(7,3)=PZB
36201 P(7,4)=ETB
36202 P(7,5)=0.
36203 K(7,1)=1
36204 IF(JTYP.EQ.5) THEN
36205 K(7,2)=16
36206 ELSEIF(JTYP.EQ.6) THEN
36207 K(7,2)=-16
36208 END IF
36209 K(7,3)=4
36210 K(7,4)=0
36211 K(7,5)=0
36212c
36213c Fill common for muon(electron)_(anti)neutrino
36214c
36215 P(8,1)=PXN
36216 P(8,2)=PYN
36217 P(8,3)=PZN
36218 P(8,4)=ETN
36219 P(8,5)=0.
36220 K(8,1)=1
36221 IF(JTYP.EQ.5) THEN
36222 IF(NEUDEC.EQ.1) THEN
36223 K(8,2)=-14
36224 ELSEIF(NEUDEC.EQ.2) THEN
36225 K(8,2)=-12
36226 ENDIF
36227 ELSEIF(JTYP.EQ.6) THEN
36228 IF(NEUDEC.EQ.1) THEN
36229 K(8,2)=14
36230 ELSEIF(NEUDEC.EQ.2) THEN
36231 K(8,2)=12
36232 ENDIF
36233 END IF
36234 K(8,3)=4
36235 K(8,4)=0
36236 K(8,5)=0
36237 ENDIF
36238c WRITE(*,*)
36239c WRITE(*,*)
36240
36241c IF(PMODUL.GE.1.D+00) THEN
36242c WRITE(*,*) 'Pol',(POLARX(I),I=1,3)
36243c write(*,*) pmodul
36244c DO I=1,3
36245c POL(4,I)=POL(4,I)/PMODUL
36246c POLARX(I)=POL(4,I)
36247c END DO
36248c PMODUL=0.
36249c DO I=1,3
36250c PMODUL=PMODUL+POL(4,I)**2
36251c END DO
36252c WRITE(*,*) 'Pol',(POLARX(I),I=1,3)
36253c
36254c ENDIF
36255
36256c WRITE(*,*) 'PMODUL = ',PMODUL
36257
36258c WRITE(*,*)
36259c WRITE(*,*)
36260c WRITE(*,*) 'prepola: Now back to nucl rest frame'
36261 CALL PYROBO(1,5,0.0D0,0.0D0,-BB2(1),-BB2(2),-BB2(3))
36262
36263 XDC = V(4,1)+V(4,5)*P(4,1)/P(4,5)
36264 YDC = V(4,2)+V(4,5)*P(4,2)/P(4,5)
36265 ZDC = V(4,3)+V(4,5)*P(4,3)/P(4,5)
36266 DO NDC =6,8
36267 V(NDC,1) = XDC
36268 V(NDC,2) = YDC
36269 V(NDC,3) = ZDC
36270 END DO
36271
36272 RETURN
36273 END
36274
36275*$ CREATE DT_TESTROT.FOR
36276*COPY DT_TESTROT
36277*
36278*===testrot============================================================*
36279*
36280 SUBROUTINE DT_TESTROT(PI,PO,PHI,MODE)
36281
36282 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36283 SAVE
36284
36285 DIMENSION ROT(3,3),PI(3),PO(3)
36286
36287 IF (MODE.EQ.1) THEN
36288 ROT(1,1) = 1.D0
36289 ROT(1,2) = 0.D0
36290 ROT(1,3) = 0.D0
36291 ROT(2,1) = 0.D0
36292 ROT(2,2) = COS(PHI)
36293 ROT(2,3) = -SIN(PHI)
36294 ROT(3,1) = 0.D0
36295 ROT(3,2) = SIN(PHI)
36296 ROT(3,3) = COS(PHI)
36297 ELSEIF (MODE.EQ.2) THEN
36298 ROT(1,1) = 0.D0
36299 ROT(1,2) = 1.D0
36300 ROT(1,3) = 0.D0
36301 ROT(2,1) = COS(PHI)
36302 ROT(2,2) = 0.D0
36303 ROT(2,3) = -SIN(PHI)
36304 ROT(3,1) = SIN(PHI)
36305 ROT(3,2) = 0.D0
36306 ROT(3,3) = COS(PHI)
36307 ELSEIF (MODE.EQ.3) THEN
36308 ROT(1,1) = 0.D0
36309 ROT(2,1) = 1.D0
36310 ROT(3,1) = 0.D0
36311 ROT(1,2) = COS(PHI)
36312 ROT(2,2) = 0.D0
36313 ROT(3,2) = -SIN(PHI)
36314 ROT(1,3) = SIN(PHI)
36315 ROT(2,3) = 0.D0
36316 ROT(3,3) = COS(PHI)
36317 ELSEIF (MODE.EQ.4) THEN
36318 ROT(1,1) = 1.D0
36319 ROT(2,1) = 0.D0
36320 ROT(3,1) = 0.D0
36321 ROT(1,2) = 0.D0
36322 ROT(2,2) = COS(PHI)
36323 ROT(3,2) = -SIN(PHI)
36324 ROT(1,3) = 0.D0
36325 ROT(2,3) = SIN(PHI)
36326 ROT(3,3) = COS(PHI)
36327 ELSE
36328 STOP ' TESTROT: mode not supported!'
36329 ENDIF
36330 DO 1 J=1,3
36331 PO(J) = ROT(J,1)*PI(1)+ROT(J,2)*PI(2)+ROT(J,3)*PI(3)
36332 1 CONTINUE
36333
36334 RETURN
36335 END
36336
36337*$ CREATE DT_LEPDCYP.FOR
36338*COPY DT_LEPDCYP
36339*
36340*===lepdcyp============================================================*
36341*
36342 SUBROUTINE DT_LEPDCYP(AMA,AML,POL,ETL,PXL,PYL,PZL,
36343 & ETB,PXB,PYB,PZB,ETN,PXN,PYN,PZN)
36344C
36345C-----------------------------------------------------------------
36346C
36347C Author :- G. Battistoni 10-NOV-1995
36348C
36349C=================================================================
36350C
36351C Purpose : performs decay of polarized lepton in
36352C its rest frame: a => b + l + anti-nu
36353C (Example: mu- => nu-mu + e- + anti-nu-e)
36354C Polarization is assumed along Z-axis
36355C WARNING:
36356C 1) b AND anti-nu ARE ASSUMED TO BE NEUTRINOS
36357C OF NEGLIGIBLE MASS
36358C 2) RADIATIVE CORRECTIONS ARE NOT CONSIDERED
36359C IN THIS VERSION
36360C
36361C Method : modifies phase space distribution obtained
36362C by routine EXPLOD using a rejection against the
36363C matrix element for unpolarized lepton decay
36364C
36365C Inputs : Mass of a : AMA
36366C Mass of l : AML
36367C Polar. of a: POL
36368C (Example: fully polar. mu- decay: AMA=AMMUON, AML=AMELCT,
36369C POL = -1)
36370C
36371C Outputs : kinematic variables in the rest frame of decaying lepton
36372C ETL,PXL,PYL,PZL 4-moment of l
36373C ETB,PXB,PYB,PZB 4-moment of b
36374C ETN,PXN,PYN,PZN 4-moment of anti-nu
36375C
36376C============================================================
36377C +
36378C Declarations.
36379C -
36380 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36381 SAVE
36382
36383 PARAMETER ( LINP = 10 ,
36384 & LOUT = 6 ,
36385 & LDAT = 9 )
36386 PARAMETER ( KALGNM = 2 )
36387 PARAMETER ( ANGLGB = 5.0D-16 )
36388 PARAMETER ( ANGLSQ = 2.5D-31 )
36389 PARAMETER ( AXCSSV = 0.2D+16 )
36390 PARAMETER ( ANDRFL = 1.0D-38 )
36391 PARAMETER ( AVRFLW = 1.0D+38 )
36392 PARAMETER ( AINFNT = 1.0D+30 )
36393 PARAMETER ( AZRZRZ = 1.0D-30 )
36394 PARAMETER ( EINFNT = +69.07755278982137 D+00 )
36395 PARAMETER ( EZRZRZ = -69.07755278982137 D+00 )
36396 PARAMETER ( ONEMNS = 0.999999999999999 D+00 )
36397 PARAMETER ( ONEPLS = 1.000000000000001 D+00 )
36398 PARAMETER ( CSNNRM = 2.0D-15 )
36399 PARAMETER ( DMXTRN = 1.0D+08 )
36400 PARAMETER ( ZERZER = 0.D+00 )
36401 PARAMETER ( ONEONE = 1.D+00 )
36402 PARAMETER ( TWOTWO = 2.D+00 )
36403 PARAMETER ( THRTHR = 3.D+00 )
36404 PARAMETER ( FOUFOU = 4.D+00 )
36405 PARAMETER ( FIVFIV = 5.D+00 )
36406 PARAMETER ( SIXSIX = 6.D+00 )
36407 PARAMETER ( SEVSEV = 7.D+00 )
36408 PARAMETER ( EIGEIG = 8.D+00 )
36409 PARAMETER ( ANINEN = 9.D+00 )
36410 PARAMETER ( TENTEN = 10.D+00 )
36411 PARAMETER ( HLFHLF = 0.5D+00 )
36412 PARAMETER ( ONETHI = ONEONE / THRTHR )
36413 PARAMETER ( TWOTHI = TWOTWO / THRTHR )
36414 PARAMETER ( PIPIPI = 3.1415926535897932270 D+00 )
36415 PARAMETER ( ENEPER = 2.7182818284590452354 D+00 )
36416 PARAMETER ( SQRENT = 1.6487212707001281468 D+00 )
36417 PARAMETER ( CLIGHT = 2.99792458 D+10 )
36418 PARAMETER ( AVOGAD = 6.0221367 D+23 )
36419 PARAMETER ( AMELGR = 9.1093897 D-28 )
36420 PARAMETER ( PLCKBR = 1.05457266 D-27 )
36421 PARAMETER ( ELCCGS = 4.8032068 D-10 )
36422 PARAMETER ( ELCMKS = 1.60217733 D-19 )
36423 PARAMETER ( AMUGRM = 1.6605402 D-24 )
36424 PARAMETER ( AMMUMU = 0.113428913 D+00 )
36425 PARAMETER ( ALPFSC = 7.2973530791728595 D-03 )
36426 PARAMETER ( FSCTO2 = 5.3251361962113614 D-05 )
36427 PARAMETER ( FSCTO3 = 3.8859399018437826 D-07 )
36428 PARAMETER ( FSCTO4 = 2.8357075508200407 D-09 )
36429 PARAMETER ( PLABRC = 0.197327053 D+00 )
36430 PARAMETER ( AMELCT = 0.51099906 D-03 )
36431 PARAMETER ( AMUGEV = 0.93149432 D+00 )
36432 PARAMETER ( AMMUON = 0.105658389 D+00 )
36433 PARAMETER ( RCLSEL = 2.8179409183694872 D-13 )
36434 PARAMETER ( GEVMEV = 1.0 D+03 )
36435 PARAMETER ( EMVGEV = 1.0 D-03 )
36436 PARAMETER ( ALGVMV = 6.90775527898214 D+00 )
36437 PARAMETER ( RADDEG = 180.D+00 / PIPIPI )
36438 PARAMETER ( DEGRAD = PIPIPI / 180.D+00 )
36439C +
36440C variables for EXPLOD
36441C -
36442 PARAMETER ( KPMX = 10 )
36443 DIMENSION AMEXPL (KPMX), PXEXPL (KPMX), PYEXPL (KPMX),
36444 & PZEXPL (KPMX), ETEXPL (KPMX)
36445C +
36446C test variables
36447C -
36448**sr - removed (not needed)
36449C COMMON /GBATNU/ ELERAT,NTRY
36450**
36451C +
36452C Initializes test variables
36453C -
36454 NTRY = 0
36455 ELERAT = 0.D+00
36456C +
36457C Maximum value for matrix element
36458C -
36459 ELEMAX = ( AMA**2 + AML**2 )**2 / AMA**2 * ( AMA**2 - AML**2 +
36460 & SQRT( AMA**4 + AML**4 - 3.D+00 * AMA**2 * AML**2 ) )
36461C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
36462C Inputs for EXPLOD
36463C part. no. 1 is l (e- in mu- decay)
36464C part. no. 2 is b (nu-mu in mu- decay)
36465C part. no. 3 is anti-nu (anti-nu-e in mu- decay)
36466C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
36467 NPEXPL = 3
36468 ETOTEX = AMA
36469 AMEXPL(1) = AML
36470 AMEXPL(2) = 0.D+00
36471 AMEXPL(3) = 0.D+00
36472C +
36473C phase space distribution
36474C -
36475 100 CONTINUE
36476 NTRY = NTRY + 1
36477
36478 CALL DT_EXPLOD ( NPEXPL, AMEXPL, ETOTEX, ETEXPL, PXEXPL,
36479 & PYEXPL, PZEXPL )
36480
36481C +
36482C Calculates matrix element:
36483C 64*GF**2{[P(a)-ama*S(a)]*P(anti-nu)}{P(l)*P(b)}
36484C Here CTH is the cosine of the angle between anti-nu and Z axis
36485C -
36486 CTH = PZEXPL(3) / SQRT ( PXEXPL(3)**2 + PYEXPL(3)**2 +
36487 & PZEXPL(3)**2 )
36488 PROD1 = ETEXPL(3) * AMA * (1.D+00 - POL * CTH)
36489 PROD2 = ETEXPL(1) * ETEXPL(2) - PXEXPL(1)*PXEXPL(2) -
36490 & PYEXPL(1)*PYEXPL(2) - PZEXPL(1)*PZEXPL(2)
36491 ELEMAT = 16.D+00 * PROD1 * PROD2
36492 IF(ELEMAT.GT.ELEMAX) THEN
36493 WRITE(LOUT,*) 'Problems in LEPDCY',ELEMAX,ELEMAT
36494 STOP
36495 ENDIF
36496C +
36497C Here performs the rejection
36498C -
36499 TEST = DT_RNDM(ETOTEX) * ELEMAX
36500 IF ( TEST .GT. ELEMAT ) GO TO 100
36501C +
36502C final assignment of variables
36503C -
36504 ELERAT = ELEMAT/ELEMAX
36505 ETL = ETEXPL(1)
36506 PXL = PXEXPL(1)
36507 PYL = PYEXPL(1)
36508 PZL = PZEXPL(1)
36509 ETB = ETEXPL(2)
36510 PXB = PXEXPL(2)
36511 PYB = PYEXPL(2)
36512 PZB = PZEXPL(2)
36513 ETN = ETEXPL(3)
36514 PXN = PXEXPL(3)
36515 PYN = PYEXPL(3)
36516 PZN = PZEXPL(3)
36517 999 RETURN
36518 END
36519
36520*$ CREATE DT_GEN_DELTA.FOR
36521*COPY DT_GEN_DELTA
36522C==================================================================
36523C. Generation of Delta resonance events
36524C==================================================================
36525*
36526*===gen_delta==========================================================*
36527*
36528 SUBROUTINE DT_GEN_DELTA(ENU,LLEP,LTARG,JINT,P21,P22,P23,P24,P25)
36529
36530 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36531 SAVE
36532
36533 PARAMETER ( LINP = 10 ,
36534 & LOUT = 6 ,
36535 & LDAT = 9 )
36536C...Generate a Delta-production neutrino/antineutrino
36537C. CC-interaction on a nucleon
36538C
36539C. INPUT ENU (GeV) = Neutrino Energy
36540C. LLEP = neutrino type
36541C. LTARG = nucleon target type 1=p, 2=n.
36542C. JINT = 1:CC, 2::NC
36543C.
36544C. OUTPUT PPL(4) 4-monentum of final lepton
36545C----------------------------------------------------
36546 PARAMETER (MAXLND=4000)
36547 COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
36548**sr - removed (not needed)
36549C COMMON /CBAD/ LBAD, NBAD
36550**
36551
36552 DIMENSION PI(3),PO(3)
36553C REAL*4 AMD0, AMD, AMN(2), AML0(6), AML, AML2, AMDMIN
36554 DIMENSION AML0(6),AMN(2)
36555 DATA AMD0 /1.231/, GAMD /0.12/, DELD/0.169/, AMDMIN/1.084/
36556 DATA AMN /0.93827231, 0.93956563/
36557 DATA AML0 /2*0.51100E-03,2*0.105659, 2*1.777/
36558
36559c WRITE(6,*)' GEN_DEL',ENU,LLEP,LTARG,JINT,P21,P22,P23,P24,P25
36560 LBAD = 0
36561C...Final lepton mass
36562 IF (JINT.EQ.1) THEN
36563 AML = AML0(LLEP)
36564 ELSE
36565 AML = 0.
36566 ENDIF
36567 AML2 = AML**2
36568
36569C...Particle labels (LUND)
36570 N = 5
36571 K(1,1) = 21
36572 K(2,1) = 21
36573 K(3,1) = 21
36574 K(4,1) = 1
36575 K(3,3) = 1
36576 K(4,3) = 1
36577 IF (LTARG .EQ. 1) THEN
36578 K(2,2) = 2212
36579 ELSE
36580 K(2,2) = 2112
36581 ENDIF
36582 K0 = (LLEP-1)/2
36583 K1 = LLEP/2
36584 KA = 12 + 2*K0
36585 IS = -1 + 2*LLEP - 4*K1
36586 LNU = 2 - LLEP + 2*K1
36587 K(1,2) = IS*KA
36588 K(5,1) = 1
36589 K(5,3) = 2
36590 IF (JINT .EQ. 1) THEN ! CC interactions
36591 K(3,2) = IS*24
36592 K(4,2) = IS*(KA-1)
36593 IF(LNU.EQ.1) THEN
36594 IF (LTARG .EQ. 1) THEN
36595 K(5,2) = 2224
36596 ELSE
36597 K(5,2) = 2214
36598 ENDIF
36599 ELSE
36600 IF (LTARG .EQ. 1) THEN
36601 K(5,2) = 2114
36602 ELSE
36603 K(5,2) = 1114
36604 ENDIF
36605 ENDIF
36606 ELSE
36607 K(3,2) = 23 ! NC (Z0) interactions
36608 K(4,2) = K(1,2)
36609**sr 7.5.00: swop Delta's (bug), Delta+ for proton (LTARG=1),
36610* Delta0 for neutron (LTARG=2)
36611C IF (LTARG .EQ. 1) THEN
36612C K(5,2) = 2114
36613C ELSE
36614C K(5,2) = 2214
36615C ENDIF
36616 IF (LTARG .EQ. 1) THEN
36617 K(5,2) = 2214
36618 ELSE
36619 K(5,2) = 2114
36620 ENDIF
36621**
36622 ENDIF
36623
36624C...4-momentum initial lepton
36625 P(1,5) = 0.
36626 P(1,4) = ENU
36627 P(1,1) = 0.
36628 P(1,2) = 0.
36629 P(1,3) = ENU
36630C...4-momentum initial nucleon
36631 P(2,5) = AMN(LTARG)
36632C P(2,4) = P(2,5)
36633C P(2,1) = 0.
36634C P(2,2) = 0.
36635C P(2,3) = 0.
36636 P(2,1) = P21
36637 P(2,2) = P22
36638 P(2,3) = P23
36639 P(2,4) = P24
36640 P(2,5) = P25
36641 N=2
36642 beta1=-p(2,1)/p(2,4)
36643 beta2=-p(2,2)/p(2,4)
36644 beta3=-p(2,3)/p(2,4)
36645 N=2
36646
36647 CALL PYROBO(0,0,0.0D0,0.0D0,BETA1,BETA2,BETA3)
36648
36649C print*,' nucl. rest fram ( fermi incl.) prima della rotazione'
36650
36651 phi11=atan(p(1,2)/p(1,3))
36652 pi(1)=p(1,1)
36653 pi(2)=p(1,2)
36654 pi(3)=p(1,3)
36655
36656 CALL DT_TESTROT(PI,Po,PHI11,1)
36657 DO ll=1,3
36658 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36659 END DO
36660 p(1,1)=po(1)
36661 p(1,2)=po(2)
36662 p(1,3)=po(3)
36663 phi12=atan(p(1,1)/p(1,3))
36664
36665 pi(1)=p(1,1)
36666 pi(2)=p(1,2)
36667 pi(3)=p(1,3)
36668 CALL DT_TESTROT(Pi,Po,PHI12,2)
36669 DO ll=1,3
36670 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36671 END DO
36672 p(1,1)=po(1)
36673 p(1,2)=po(2)
36674 p(1,3)=po(3)
36675
36676 ENUU=P(1,4)
36677
36678C...Generate the Mass of the Delta
36679 NTRY = 0
36680100 R = PYR(0)
36681 AMD=AMD0+0.5*GAMD*TAN((2.*R-1.)*ATAN(2.*DELD/GAMD))
36682 NTRY = NTRY + 1
36683 IF (NTRY .GT. 1000) THEN
36684 LBAD = 1
36685 WRITE (LOUT,1001) NBAD, ENUU,AMD,AMDMIN,AMD0,GAMD,ET
36686 RETURN
36687 ENDIF
36688 IF (AMD .LT. AMDMIN) GOTO 100
36689 ET = ((AMD+AML)**2 - AMN(LTARG)**2)/(2.*AMN(LTARG))
36690 IF (ENUU .LT. ET) GOTO 100
36691
36692C...Kinematical limits in Q**2
36693 S = AMN(LTARG)**2 + 2.*AMN(LTARG)*ENUU
36694 SQS = SQRT(S)
36695 PSTAR = (S - AMN(LTARG)**2)/(2.*SQS)
36696 ELF = (S - AMD**2 + AML2)/(2.*SQS)
36697 PLF = SQRT(ELF**2 - AML2)
36698 Q2MIN = -AML2 + 2.*PSTAR*(ELF-PLF)
36699 Q2MAX = -AML2 + 2.*PSTAR*(ELF+PLF)
36700 IF (Q2MIN .LT. 0.) Q2MIN = 0.
36701
36702 DSIGMAX = DT_DSIGMA_DELTA(LNU,-Q2MIN, S, AML, AMD)
36703200 Q2 = Q2MIN + (Q2MAX-Q2MIN)*PYR(0)
36704 DSIG = DT_DSIGMA_DELTA(LNU,-Q2, S, AML, AMD)
36705 IF (DSIG .LT. DSIGMAX*PYR(0)) GOTO 200
36706
36707C...Generate the kinematics of the final particles
36708 EISTAR = (S + AMN(LTARG)**2)/(2.*SQS)
36709 GAM = EISTAR/AMN(LTARG)
36710 BET = PSTAR/EISTAR
36711 CTSTAR = ELF/PLF - (Q2 + AML2)/(2.*PSTAR*PLF)
36712 EL = GAM*(ELF + BET*PLF*CTSTAR)
36713 PLZ = GAM*(PLF*CTSTAR + BET*ELF)
36714 PL = SQRT(EL**2 - AML2)
36715 PLT = SQRT(MAX(1.D-06,(PL*PL - PLZ*PLZ)))
36716 PHI = 6.28319*PYR(0)
36717 P(4,1) = PLT*COS(PHI)
36718 P(4,2) = PLT*SIN(PHI)
36719 P(4,3) = PLZ
36720 P(4,4) = EL
36721 P(4,5) = AML
36722
36723C...4-momentum of Delta
36724 P(5,1) = -P(4,1)
36725 P(5,2) = -P(4,2)
36726 P(5,3) = ENUU-P(4,3)
36727 P(5,4) = ENUU+AMN(LTARG)-P(4,4)
36728 P(5,5) = AMD
36729
36730C...4-momentum of intermediate boson
36731 P(3,5) = -Q2
36732 P(3,4) = P(1,4)-P(4,4)
36733 P(3,1) = P(1,1)-P(4,1)
36734 P(3,2) = P(1,2)-P(4,2)
36735 P(3,3) = P(1,3)-P(4,3)
36736 N=5
36737
36738 DO kw=1,5
36739 pi(1)=p(kw,1)
36740 pi(2)=p(kw,2)
36741 pi(3)=p(kw,3)
36742 CALL DT_TESTROT(Pi,Po,PHI12,3)
36743 DO ll=1,3
36744 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36745 END DO
36746 p(kw,1)=po(1)
36747 p(kw,2)=po(2)
36748 p(kw,3)=po(3)
36749 END DO
36750
36751c********************************************
36752
36753 DO kw=1,5
36754 pi(1)=p(kw,1)
36755 pi(2)=p(kw,2)
36756 pi(3)=p(kw,3)
36757 CALL DT_TESTROT(Pi,Po,PHI11,4)
36758 DO ll=1,3
36759 IF(abs(po(ll)).LT.1.D-07) po(ll)=0.
36760 END DO
36761 p(kw,1)=po(1)
36762 p(kw,2)=po(2)
36763 p(kw,3)=po(3)
36764 END DO
36765c********************************************
36766C transform back into Lab.
36767
36768 CALL PYROBO(0,0,0.0D0,0.0D0,-BETA1,-BETA2,-BETA3)
36769
36770C WRITE(6,*)' Lab fram ( fermi incl.) '
36771 N=5
36772 CALL PYEXEC
36773
36774 RETURN
367751001 FORMAT(2X, 'DT_GEN_DELTA : event rejected ', I5, 6G10.3)
36776 END
36777
36778*$ CREATE DT_DSIGMA_DELTA.FOR
36779*COPY DT_DSIGMA_DELTA
36780*
36781*===dsigma_delta=======================================================*
36782*
36783 DOUBLE PRECISION FUNCTION DT_DSIGMA_DELTA (LNU, QQ, S, AML, MD)
36784
36785 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36786 SAVE
36787
36788C...Reaction nu + N -> lepton + Delta
36789C. returns the cross section
36790C. dsigma/dt
36791C. INPUT LNU = 1, 2 (neutrino-antineutrino)
36792C. QQ = t (always negative) GeV**2
36793C. S = (c.m energy)**2 GeV**2
36794C. OUTPUT = 10**-38 cm+2/GeV**2
36795C-----------------------------------------------------
36796 REAL*8 MN, MN2, MN4, MD,MD2, MD4
36797 DATA MN /0.938/
36798 DATA PI /3.1415926/
36799
36800 GF = (1.1664 * 1.97)
36801 GF2 = GF*GF
36802 MN2 = MN*MN
36803 MN4 = MN2*MN2
36804 MD2 = MD*MD
36805 MD4 = MD2*MD2
36806 AML2 = AML*AML
36807 AML4 = AML2*AML2
36808 VQ = (MN2 - MD2 - QQ)/2.
36809 VPI = (MN2 + MD2 - QQ)/2.
36810 VK = (S + QQ - MN2 - AML2)/2.
36811 PIK = (S - MN2)/2.
36812 QK = (AML2 - QQ)/2.
36813 PIQ = (QQ + MN2 - MD2)/2.
36814 Q = SQRT(-QQ)
36815 C3V = 2.07*SQRT(EXP(-6.3*Q)*(1.+9*Q))
36816 C3 = SQRT(3.)*C3V/MN
36817 C4 = -C3/MD ! attenzione al segno
36818 C5A = 1.18/(1.-QQ/0.4225)**2
36819 C32 = C3**2
36820 C42 = C4**2
36821 C5A2 = C5A**2
36822
36823 IF (LNU .EQ. 1) THEN
36824 ANS3=-MD2*VPI*QK*QQ*C32+MD2*VPI*QK*C5A2+2.*MD2*VQ*
36825 . PIK*QK*C32+2.*MD2*VQ*QK*PIQ*C32+MD4*VPI*QK*QQ*C42-
36826 . 2.*VK**2*VPI*QQ*C32+2.*VK**2*VPI*C5A2+4.*VK*VPI*VQ*
36827 . QK*C32+2.*VK*VPI*VQ*C5A2+2.*VPI*VQ**2*QK*C32
36828 ANS2=2.*MN*MD*MD2*VK**2*QQ*C42-4.*MN*MD*MD2*VK*VQ*QK
36829 . *C42-2.*MN*MD*MD2*VQ**2*QK*C42-2.*MN*MD*MD2*QK**2*
36830 . C32-3.*MN*MD*MD2*QK*QQ*C32+MN*MD*MD2*QK*C5A2-MN*MD*
36831 . MD4*QK*QQ*C42+2.*MN*MD*VK**2*C5A2+2.*MN*MD*VK*VQ*
36832 . C5A2+4.*MN*C3*C4*MD2*VK**2*QQ-8.*MN*C3*C4*MD2*VK*VQ
36833 . *QK-4.*MN*C3*C4*MD2*VQ**2*QK-2.*MN*C3*C4*MD4*QK*QQ-
36834 . 4.*MN*C3*C5A*MD2*VK*QQ+4.*MN*C3*C5A*MD2*VQ*QK-2.*MD*
36835 . C3*C4*MD2*VK*PIK*QQ+2.*MD*C3*C4*MD2*VK*QK*PIQ+2.*MD
36836 . *C3*C4*MD2*VPI*QK*QQ+2.*MD*C3*C4*MD2*VQ*PIK*QK+2.*
36837 . MD*C3*C4*MD2*VQ*QK*PIQ-2.*MD*C3*C4*VK**2*VPI*QQ+4.*
36838 . MD*C3*C4*VK*VPI*VQ*QK+2.*MD*C3*C4*VPI*VQ**2*QK-MD*
36839 . C3*C5A*MD2*PIK*QQ+MD*C3*C5A*MD2*QK*PIQ-3.*MD*C3*C5A
36840 . *VK*VPI*QQ+MD*C3*C5A*VK*VQ*PIQ+3.*MD*C3*C5A*VPI*VQ*
36841 . QK-MD*C3*C5A*VQ**2*PIK+C4*C5A*MD2*VK*VPI*QQ+C4*C5A*
36842 . MD2*VK*VQ*PIQ-C4*C5A*MD2*VPI*VQ*QK-C4*C5A*MD2*VQ**2
36843 . *PIK-C4*C5A*MD4*PIK*QQ+C4*C5A*MD4*QK*PIQ-2.*MD2*VK
36844 . **2*VPI*QQ*C42+4.*MD2*VK*VPI*VQ*QK*C42-2.*MD2*VK*
36845 . PIK*QQ*C32+2.*MD2*VK*QK*PIQ*C32+2.*MD2*VPI*VQ**2*QK
36846 . *C42-2.*MD2*VPI*QK**2*C32+ANS3
36847 ELSE
36848 ANS3=-MD2*VPI*QK*QQ*C32+MD2*VPI*QK*C5A2+2.*MD2*VQ*
36849 . PIK*QK*C32+2.*MD2*VQ*QK*PIQ*C32+MD4*VPI*QK*QQ*C42-
36850 . 2.*VK**2*VPI*QQ*C32+2.*VK**2*VPI*C5A2+4.*VK*VPI*VQ*
36851 . QK*C32+2.*VK*VPI*VQ*C5A2+2.*VPI*VQ**2*QK*C32
36852 ANS2=2.*MN*MD*MD2*VK**2*QQ*C42-4.*MN*MD*MD2*VK*VQ*QK
36853 . *C42-2.*MN*MD*MD2*VQ**2*QK*C42-2.*MN*MD*MD2*QK**2*
36854 . C32-3.*MN*MD*MD2*QK*QQ*C32+MN*MD*MD2*QK*C5A2-MN*MD*
36855 . MD4*QK*QQ*C42+2.*MN*MD*VK**2*C5A2+2.*MN*MD*VK*VQ*
36856 . C5A2+4.*MN*C3*C4*MD2*VK**2*QQ-8.*MN*C3*C4*MD2*VK*VQ
36857 . *QK-4.*MN*C3*C4*MD2*VQ**2*QK-2.*MN*C3*C4*MD4*QK*QQ+
36858 . 4.*MN*C3*C5A*MD2*VK*QQ-4.*MN*C3*C5A*MD2*VQ*QK-2.*MD*
36859 . C3*C4*MD2*VK*PIK*QQ+2.*MD*C3*C4*MD2*VK*QK*PIQ+2.*MD
36860 . *C3*C4*MD2*VPI*QK*QQ+2.*MD*C3*C4*MD2*VQ*PIK*QK+2.*
36861 . MD*C3*C4*MD2*VQ*QK*PIQ-2.*MD*C3*C4*VK**2*VPI*QQ+4.*
36862 . MD*C3*C4*VK*VPI*VQ*QK+2.*MD*C3*C4*VPI*VQ**2*QK+MD*
36863 . C3*C5A*MD2*PIK*QQ-MD*C3*C5A*MD2*QK*PIQ+3.*MD*C3*C5A
36864 . *VK*VPI*QQ-MD*C3*C5A*VK*VQ*PIQ-3.*MD*C3*C5A*VPI*VQ*
36865 . QK+MD*C3*C5A*VQ**2*PIK-C4*C5A*MD2*VK*VPI*QQ-C4*C5A*
36866 . MD2*VK*VQ*PIQ+C4*C5A*MD2*VPI*VQ*QK+C4*C5A*MD2*VQ**2
36867 . *PIK+C4*C5A*MD4*PIK*QQ-C4*C5A*MD4*QK*PIQ-2.*MD2*VK
36868 . **2*VPI*QQ*C42+4.*MD2*VK*VPI*VQ*QK*C42-2.*MD2*VK*
36869 . PIK*QQ*C32+2.*MD2*VK*QK*PIQ*C32+2.*MD2*VPI*VQ**2*QK
36870 . *C42-2.*MD2*VPI*QK**2*C32+ANS3
36871 ENDIF
36872 ANS1=32.*ANS2
36873 ANS=ANS1/(3.*MD2)
36874 P1CM = (S-MN2)/(2.*SQRT(S))
36875 DT_DSIGMA_DELTA = GF2/2. * ANS/(64.*PI*S*P1CM**2)
36876
36877 RETURN
36878 END
36879
36880*$ CREATE DT_QGAUS.FOR
36881*COPY DT_QGAUS
36882*
36883*===qgaus==============================================================*
36884*
36885 SUBROUTINE DT_QGAUS(A,B,SS,ENU,LTYP)
36886
36887 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36888 SAVE
36889
36890 DIMENSION X(5),W(5)
36891 DATA X/.1488743389D0,.4333953941D0,
36892 & .6794095682D0,.8650633666D0,.9739065285D0
36893 */
36894 DATA W/.2955242247D0,.2692667193D0,
36895 & .2190863625D0,.1494513491D0,.0666713443D0
36896 */
36897 XM=0.5D0*(B+A)
36898 XR=0.5D0*(B-A)
36899 SS=0
36900 DO 11 J=1,5
36901 DX=XR*X(J)
36902 SS=SS+W(J)*(DT_DSQEL_Q2(LTYP,ENU,XM+DX)+
36903 * DT_DSQEL_Q2(LTYP,ENU,XM-DX))
3690411 CONTINUE
36905 SS=XR*SS
36906
36907 RETURN
36908 END
36909
36910*$ CREATE DT_DIQBRK.FOR
36911*COPY DT_DIQBRK
36912*
36913*===diqbrk=============================================================*
36914*
36915 SUBROUTINE DT_DIQBRK
36916
36917 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36918 SAVE
36919
36920* event history
36921 PARAMETER (NMXHKK=200000)
36922 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
36923 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
36924 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
36925* extended event history
36926 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
36927 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
36928 & IHIST(2,NMXHKK)
36929* event flag
36930 COMMON /DTEVNO/ NEVENT,ICASCA
36931
36932C IF(DT_RNDM(VV).LE.0.5D0)THEN
36933C CALL GSQBS1(NHKK)
36934C CALL GSQBS2(NHKK)
36935C CALL USQBS1(NHKK)
36936C CALL USQBS2(NHKK)
36937C CALL GSABS1(NHKK)
36938C CALL GSABS2(NHKK)
36939C CALL USABS1(NHKK)
36940C CALL USABS2(NHKK)
36941C ELSE
36942C CALL GSQBS2(NHKK)
36943C CALL GSQBS1(NHKK)
36944C CALL USQBS2(NHKK)
36945C CALL USQBS1(NHKK)
36946C CALL GSABS2(NHKK)
36947C CALL GSABS1(NHKK)
36948C CALL USABS2(NHKK)
36949C CALL USABS1(NHKK)
36950C ENDIF
36951
36952 IF(DT_RNDM(VV).LE.0.5D0) THEN
36953 CALL DT_DBREAK(1)
36954 CALL DT_DBREAK(2)
36955 CALL DT_DBREAK(3)
36956 CALL DT_DBREAK(4)
36957 CALL DT_DBREAK(5)
36958 CALL DT_DBREAK(6)
36959 CALL DT_DBREAK(7)
36960 CALL DT_DBREAK(8)
36961 ELSE
36962 CALL DT_DBREAK(2)
36963 CALL DT_DBREAK(1)
36964 CALL DT_DBREAK(4)
36965 CALL DT_DBREAK(3)
36966 CALL DT_DBREAK(6)
36967 CALL DT_DBREAK(5)
36968 CALL DT_DBREAK(8)
36969 CALL DT_DBREAK(7)
36970 ENDIF
36971
36972 RETURN
36973 END
36974
36975*$ CREATE MUSQBS2.FOR
36976*COPY MUSQBS2
36977C
36978C
36979C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
36980 SUBROUTINE MUSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
36981 * IP1,IP21,IP22,IPP1,IPP2,IPIP,ISQ,IGCOUN)
36982C
36983C USQBS-2 diagram (split target diquark)
36984C
36985 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
36986 SAVE
36987
36988 PARAMETER ( LINP = 10 ,
36989 & LOUT = 6 ,
36990 & LDAT = 9 )
36991* event history
36992 PARAMETER (NMXHKK=200000)
36993 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
36994 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
36995 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
36996* extended event history
36997 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
36998 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
36999 & IHIST(2,NMXHKK)
37000* Lorentz-parameters of the current interaction
37001 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
37002 & UMO,PPCM,EPROJ,PPROJ
37003* diquark-breaking mechanism
37004 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
37005
37006C
37007 PARAMETER (NTMHKK= 300)
37008 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37009 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37010 +(4,NTMHKK)
37011*KEEP,XSEADI.
37012 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
37013 +SSMIMQ,VVMTHR
37014*KEEP,DPRIN.
37015 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
37016 COMMON /EVFLAG/ NUMEV
37017C
37018C USQBS-2 diagram (split target diquark)
37019C
37020C
37021C Input chain 1(NC1) valence-quark(NC1P)-valence-diquark(NC1T)
37022C Input chain 2(NC2) sea-antiquark(NC2P)-sea-quark(NC2T)
37023C
37024C Create antiquark(aqsP)-quark(qsT) pair, energy from NC1P and NC1T
37025C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37026C
37027C Create chains 3 sea antiquark(NC2P 1)-valence-quark(vq1T 2)
37028C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37029C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37030C
37031C
37032C Put new chains into COMMON /HKKTMP/
37033C
37034 IIGLU1=NC1T-NC1P-1
37035 IIGLU2=NC2T-NC2P-1
37036 IGCOUN=0
37037C WRITE(LOUT,*)'MUSQBS2: IIGLU1,IIGLU2 ',IIGLU1,IIGLU2
37038 CVQ=1.D0
37039 IREJ=0
37040 IF(IPIP.EQ.2)THEN
37041C IF(NUMEV.EQ.-324)THEN
37042C WRITE(LOUT,*)' MUSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
37043C * 'IP1,IP21,IP22,IPP1,IPP2,IPIP,IGCOUN)',
37044C *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37045C * IP1,IP21,IP22,IPP1,IPP2,IPIP,IGCOUN
37046 ENDIF
37047C
37048C
37049C
37050C determine x-values of NC1T diquark
37051 XDIQT=PHKK(4,NC1T)*2.D0/UMO
37052 XVQP=PHKK(4,NC1P)*2.D0/UMO
37053C
37054C determine x-values of sea quark pair
37055C
37056 IPCO=1
37057 ICOU=0
37058 2234 CONTINUE
37059 ICOU=ICOU+1
37060 IF(ICOU.GE.500)THEN
37061 IREJ=1
37062 IF(ISQ.EQ.3)IREJ=3
37063 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS2 Rejection 2234 ICOU. GT.500'
37064 IPCO=0
37065 RETURN
37066 ENDIF
37067 IF(IPCO.GE.3)WRITE(LOUT,*)'MUSQBS2 call XSEAPA: UMO,XDIQT,XVQP ',
37068 * UMO, XDIQT,XVQP
37069 XSQ=0.D0
37070 XSAQ=0.D0
37071**NEW
37072C CALL XSEAPA(UMO,XDIQT/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
37073 IF (IPIP.EQ.1) THEN
37074 XQMAX = XDIQT/2.0D0
37075 XAQMAX = 2.D0*XVQP/3.0D0
37076 ELSE
37077 XQMAX = 2.D0*XVQP/3.0D0
37078 XAQMAX = XDIQT/2.0D0
37079 ENDIF
37080 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
37081 ISAQ = 6+ISQ
37082C write(*,*) 'MUSQBS2: ',ISQ,XSQ,XDIQT,XSAQ,XVQP
37083**
37084 IF(IPCO.GE.3)
37085 & WRITE(LOUT,*)'MUSQBS2 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37086 IF(IREJ.GE.1)THEN
37087 IF(IPCO.GE.3)
37088 & WRITE(LOUT,*)'MUSQBS2 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37089 IPCO=0
37090 RETURN
37091 ENDIF
37092 IF(IPIP.EQ.1)THEN
37093 IF(XSAQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37094 ELSEIF(IPIP.EQ.2)THEN
37095 IF(XSQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37096 ENDIF
37097 IF(IPCO.GE.3)THEN
37098 WRITE(LOUT,'(A,4E12.4)')' MUSQBS2 XDIQT,XVQP,XSQ,XSAQ ',
37099 * XDIQT,XVQP,XSQ,XSAQ
37100 ENDIF
37101C
37102C subtract xsq,xsaq from NC1T diquark and NC1P quark
37103C
37104C XSQ=0.D0
37105 IF(IPIP.EQ.1)THEN
37106 XDIQT=XDIQT-XSQ
37107 XVQP =XVQP -XSAQ
37108 ELSEIF(IPIP.EQ.2)THEN
37109 XDIQT=XDIQT-XSAQ
37110 XVQP =XVQP -XSQ
37111 ENDIF
37112 IF(IPCO.GE.3)
37113 & WRITE(LOUT,*)'XDIQT,XVQP after subtraction',XDIQT,XVQP
37114C
37115C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37116C
37117 XVTHRO=CVQ/UMO
37118 IVTHR=0
37119 3466 CONTINUE
37120 IF(IVTHR.EQ.10)THEN
37121 IREJ=1
37122 IF(ISQ.EQ.3)IREJ=3
37123 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS2 3466 reject IVTHR 10'
37124 IPCO=0
37125 RETURN
37126 ENDIF
37127 IVTHR=IVTHR+1
37128 XVTHR=XVTHRO/(201-IVTHR)
37129 UNOPRV=UNON
37130 380 CONTINUE
37131 IF(XVTHR.GT.0.66D0*XDIQT)THEN
37132 IREJ=1
37133 IF(ISQ.EQ.3)IREJ=3
37134 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS2 Rejection 380 XVTHR large ',
37135 * XVTHR
37136 IPCO=0
37137 RETURN
37138 ENDIF
37139 IF(DT_RNDM(V).LT.0.5D0)THEN
37140 XVTQI=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37141 XVTQII=XDIQT-XVTQI
37142 ELSE
37143 XVTQII=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37144 XVTQI=XDIQT-XVTQII
37145 ENDIF
37146 IF(IPCO.GE.3)THEN
37147 WRITE(LOUT,'(A,2E12.4)')' MUSQBS2:XVTQI,XVTQII ',XVTQI,XVTQII
37148 ENDIF
37149C
37150C Prepare 4 momenta of new chains and chain ends
37151C
37152C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37153C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37154C +(4,NTMHKK)
37155C
37156C Create chains 3 sea antiquark(NC2P 1)-valence-quark(vq1T 2)
37157C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37158C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37159C
37160C SUBROUTINE MUSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37161C * IP1,IP21,IP22,IPP1,IPP2)
37162C
37163 IF(IPIP.EQ.1)THEN
37164 XSQ1=XSQ
37165 XSAQ1=XSAQ
37166 ISQ1=ISQ
37167 ISAQ1=ISAQ
37168 ELSEIF(IPIP.EQ.2)THEN
37169 XSQ1=XSAQ
37170 XSAQ1=XSQ
37171 ISQ1=ISAQ
37172 ISAQ1=ISQ
37173 ENDIF
37174 IDHKT(1) =IPP1
37175 ISTHKT(1) =951
37176 JMOHKT(1,1)=NC2P
37177 JMOHKT(2,1)=0
37178 JDAHKT(1,1)=3+IIGLU1
37179 JDAHKT(2,1)=0
37180C Create chains 3 sea antiquark(NC2P 1)-valence-quark(vq1T 2)
37181 PHKT(1,1) =PHKK(1,NC2P)
37182 PHKT(2,1) =PHKK(2,NC2P)
37183 PHKT(3,1) =PHKK(3,NC2P)
37184 PHKT(4,1) =PHKK(4,NC2P)
37185C PHKT(5,1) =PHKK(5,NC2P)
37186 XMIST =(PHKT(4,1)**2-
37187 * PHKT(3,1)**2-PHKT(2,1)**2-
37188 *PHKT(1,1)**2)
37189 IF(XMIST.GT.0.D0)THEN
37190 PHKT(5,1) =SQRT(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
37191 *PHKT(1,1)**2)
37192 ELSE
37193C WRITE(LOUT,*)'MUSQBS2 parton 1 mass square LT.0 ',XMIST
37194 PHKT(5,1)=0.D0
37195 ENDIF
37196 VHKT(1,1) =VHKK(1,NC2P)
37197 VHKT(2,1) =VHKK(2,NC2P)
37198 VHKT(3,1) =VHKK(3,NC2P)
37199 VHKT(4,1) =VHKK(4,NC2P)
37200 WHKT(1,1) =WHKK(1,NC2P)
37201 WHKT(2,1) =WHKK(2,NC2P)
37202 WHKT(3,1) =WHKK(3,NC2P)
37203 WHKT(4,1) =WHKK(4,NC2P)
37204C Add here IIGLU1 gluons to this chaina
37205 PG1=0.D0
37206 PG2=0.D0
37207 PG3=0.D0
37208 PG4=0.D0
37209 IF(IIGLU1.GE.1)THEN
37210 JJG=NC1P
37211 DO 61 IIG=2,2+IIGLU1-1
37212 KKG=JJG+IIG-1
37213 IDHKT(IIG) =IDHKK(KKG)
37214 ISTHKT(IIG) =921
37215 JMOHKT(1,IIG)=KKG
37216 JMOHKT(2,IIG)=0
37217 JDAHKT(1,IIG)=3+IIGLU1
37218 JDAHKT(2,IIG)=0
37219 PHKT(1,IIG)=PHKK(1,KKG)
37220 PG1=PG1+ PHKT(1,IIG)
37221 PHKT(2,IIG)=PHKK(2,KKG)
37222 PG2=PG2+ PHKT(2,IIG)
37223 PHKT(3,IIG)=PHKK(3,KKG)
37224 PG3=PG3+ PHKT(3,IIG)
37225 PHKT(4,IIG)=PHKK(4,KKG)
37226 PG4=PG4+ PHKT(4,IIG)
37227 PHKT(5,IIG)=PHKK(5,KKG)
37228 VHKT(1,IIG) =VHKK(1,KKG)
37229 VHKT(2,IIG) =VHKK(2,KKG)
37230 VHKT(3,IIG) =VHKK(3,KKG)
37231 VHKT(4,IIG) =VHKK(4,KKG)
37232 WHKT(1,IIG) =WHKK(1,KKG)
37233 WHKT(2,IIG) =WHKK(2,KKG)
37234 WHKT(3,IIG) =WHKK(3,KKG)
37235 WHKT(4,IIG) =WHKK(4,KKG)
37236 61 CONTINUE
37237 ENDIF
37238 IDHKT(2+IIGLU1) =IP21
37239 ISTHKT(2+IIGLU1) =952
37240 JMOHKT(1,2+IIGLU1)=NC1T
37241 JMOHKT(2,2+IIGLU1)=0
37242 JDAHKT(1,2+IIGLU1)=3+IIGLU1
37243 JDAHKT(2,2+IIGLU1)=0
37244 PHKT(1,2+IIGLU1) =PHKK(1,NC1T)*XVTQI/(XDIQT+XSQ1)
37245 PHKT(2,2+IIGLU1) =PHKK(2,NC1T)*XVTQI/(XDIQT+XSQ1)
37246 PHKT(3,2+IIGLU1) =PHKK(3,NC1T)*XVTQI/(XDIQT+XSQ1)
37247 PHKT(4,2+IIGLU1) =PHKK(4,NC1T)*XVTQI/(XDIQT+XSQ1)
37248C PHKT(5,2) =PHKK(5,NC1T)
37249 XMIST =(PHKT(4,2+IIGLU1)**2-
37250 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
37251 *PHKT(1,2+IIGLU1)**2)
37252 IF(XMIST.GT.0.D0)THEN
37253 PHKT(5,2+IIGLU1) =SQRT(PHKT(4,2+IIGLU1)**2-
37254 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
37255 *PHKT(1,2+IIGLU1)**2)
37256 ELSE
37257C WRITE(LOUT,*)' parton 4 mass square LT.0 ',XMIST
37258 PHKT(5,5+IIGLU1)=0.D0
37259 ENDIF
37260 VHKT(1,2+IIGLU1) =VHKK(1,NC1T)
37261 VHKT(2,2+IIGLU1) =VHKK(2,NC1T)
37262 VHKT(3,2+IIGLU1) =VHKK(3,NC1T)
37263 VHKT(4,2+IIGLU1) =VHKK(4,NC1T)
37264 WHKT(1,2+IIGLU1) =WHKK(1,NC1T)
37265 WHKT(2,2+IIGLU1) =WHKK(2,NC1T)
37266 WHKT(3,2+IIGLU1) =WHKK(3,NC1T)
37267 WHKT(4,2+IIGLU1) =WHKK(4,NC1T)
37268 IDHKT(3+IIGLU1) =88888
37269 ISTHKT(3+IIGLU1) =95
37270 JMOHKT(1,3+IIGLU1)=1
37271 JMOHKT(2,3+IIGLU1)=2+IIGLU1
37272 JDAHKT(1,3+IIGLU1)=0
37273 JDAHKT(2,3+IIGLU1)=0
37274 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
37275 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
37276 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
37277 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
37278 XMIST
37279 * =(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
37280 * -PHKT(3,3+IIGLU1)**2)
37281 IF(XMIST.GT.0.D0)THEN
37282 PHKT(5,3+IIGLU1)
37283 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
37284 * -PHKT(3,3+IIGLU1)**2)
37285 ELSE
37286C WRITE(LOUT,*)' parton 4 mass square LT.0 ',XMIST
37287 PHKT(5,5+IIGLU1)=0.D0
37288 ENDIF
37289 IF(IPIP.GE.2)THEN
37290C IF(NUMEV.EQ.-324)THEN
37291C WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),JMOHKT(2,1),
37292C * JDAHKT(1,1),
37293C *JDAHKT(2,1),(PHKT(III,1),III=1,5)
37294 DO 71 IIG=2,2+IIGLU1-1
37295C WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
37296C & JMOHKT(1,IIG),JMOHKT(2,IIG),
37297C * JDAHKT(1,IIG),
37298C *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
37299 71 CONTINUE
37300C WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),IDHKT(2+IIGLU1),
37301C * JMOHKT(1,2+IIGLU1),JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
37302C *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
37303C WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
37304C * JMOHKT(1,3+IIGLU1),JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
37305C *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
37306 ENDIF
37307 CHAMAL=CHAM1
37308 IF(IPIP.EQ.1)THEN
37309 IF(IPP1.LE.-3.OR.IP21.GE.3)CHAMAL=CHAM3
37310 ELSEIF(IPIP.EQ.2)THEN
37311 IF(IPP1.GE.3.OR.IP21.LE.-3)CHAMAL=CHAM3
37312 ENDIF
37313 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
37314C IREJ=1
37315 IPCO=0
37316C RETURN
37317C WRITE(LOUT,*)' MUSQBS1 jump back from chain 3'
37318 GO TO 3466
37319 ENDIF
37320 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
37321 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
37322 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
37323 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
37324 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
37325 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
37326 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
37327 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
37328 IF(IPIP.EQ.1)THEN
37329 IDHKT(4+IIGLU1) =-(ISAQ1-6)
37330 ELSEIF(IPIP.EQ.2)THEN
37331 IDHKT(4+IIGLU1) =ISAQ1
37332 ENDIF
37333 ISTHKT(4+IIGLU1) =951
37334 JMOHKT(1,4+IIGLU1)=NC1P
37335 JMOHKT(2,4+IIGLU1)=0
37336 JDAHKT(1,4+IIGLU1)=6+IIGLU1
37337 JDAHKT(2,4+IIGLU1)=0
37338C create chain 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37339 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XSAQ1/(XVQP+XSAQ1)
37340 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XSAQ1/(XVQP+XSAQ1)
37341 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XSAQ1/(XVQP+XSAQ1)
37342 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XSAQ1/(XVQP+XSAQ1)
37343C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
37344 XMIST =(PHKT(4,4+IIGLU1)**2-
37345 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
37346 *PHKT(1,4+IIGLU1)**2)
37347 IF(XMIST.GT.0.D0)THEN
37348 PHKT(5,4+IIGLU1) =SQRT(PHKT(4,4+IIGLU1)**2-
37349 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
37350 *PHKT(1,4+IIGLU1)**2)
37351 ELSE
37352C WRITE(LOUT,*)'MUSQBS2 parton 4 mass square LT.0 ',XMIST
37353 PHKT(5,4+IIGLU1)=0.D0
37354 ENDIF
37355 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
37356 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
37357 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
37358 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
37359 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
37360 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
37361 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
37362 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
37363 IDHKT(5+IIGLU1) =IP22
37364 ISTHKT(5+IIGLU1) =952
37365 JMOHKT(1,5+IIGLU1)=NC1T
37366 JMOHKT(2,5+IIGLU1)=0
37367 JDAHKT(1,5+IIGLU1)=6+IIGLU1
37368 JDAHKT(2,5+IIGLU1)=0
37369 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XVTQII/(XDIQT+XSQ1)
37370 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XVTQII/(XDIQT+XSQ1)
37371 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XVTQII/(XDIQT+XSQ1)
37372 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XVTQII/(XDIQT+XSQ1)
37373C PHKT(5,5+IIGLU1) =PHKK(5,NC1T)
37374 XMIST =(PHKT(4,5+IIGLU1)**2-
37375 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
37376 *PHKT(1,5+IIGLU1)**2)
37377 IF(XMIST.GT.0.D0)THEN
37378 PHKT(5,5+IIGLU1) =SQRT(PHKT(4,5+IIGLU1)**2-
37379 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
37380 *PHKT(1,5+IIGLU1)**2)
37381 ELSE
37382C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37383 PHKT(5,5+IIGLU1)=0.D0
37384 ENDIF
37385 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
37386 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
37387 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
37388 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
37389 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
37390 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
37391 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
37392 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
37393 IDHKT(6+IIGLU1) =88888
37394 ISTHKT(6+IIGLU1) =95
37395 JMOHKT(1,6+IIGLU1)=4+IIGLU1
37396 JMOHKT(2,6+IIGLU1)=5+IIGLU1
37397 JDAHKT(1,6+IIGLU1)=0
37398 JDAHKT(2,6+IIGLU1)=0
37399 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
37400 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
37401 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
37402 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
37403 XMIST
37404 * =(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
37405 * -PHKT(3,6+IIGLU1)**2)
37406 IF(XMIST.GT.0.D0)THEN
37407 PHKT(5,6+IIGLU1)
37408 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
37409 * -PHKT(3,6+IIGLU1)**2)
37410 ELSE
37411C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37412 PHKT(5,5+IIGLU1)=0.D0
37413 ENDIF
37414C IF(IPIP.GE.2)THEN
37415C IF(NUMEV.EQ.-324)THEN
37416C WRITE(6,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
37417C * JMOHKT(1,4+IIGLU1),JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
37418C *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
37419C WRITE(6,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
37420C * JMOHKT(1,5+IIGLU1),JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
37421C *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
37422C WRITE(6,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
37423C * JMOHKT(1,6+IIGLU1),JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
37424C *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
37425C ENDIF
37426 CHAMAL=CHAM1
37427 IF(IPIP.EQ.1)THEN
37428 IF(IP22.GE.3.OR.ISAQ1.GE.9)CHAMAL=CHAM3
37429 ELSEIF(IPIP.EQ.2)THEN
37430 IF(IP22.LE.-3.OR.ISAQ1.GE.3)CHAMAL=CHAM3
37431 ENDIF
37432 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
37433C IREJ=1
37434 IPCO=0
37435C RETURN
37436C WRITE(6,*)' MUSQBS1 jump back from chain 6',
37437C * CHAMAL,PHKT(5,6+IIGLU1)
37438 GO TO 3466
37439 ENDIF
37440 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
37441 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
37442 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
37443 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
37444 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
37445 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
37446 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
37447 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
37448C IDHKT(7) =1000*IPP1+100*ISQ+1
37449 IDHKT(7+IIGLU1) =IP1
37450 ISTHKT(7+IIGLU1) =951
37451 JMOHKT(1,7+IIGLU1)=NC1P
37452 JMOHKT(2,7+IIGLU1)=0
37453**NEW
37454C JDAHKT(1,7+IIGLU1)=9+IIGLU1
37455 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
37456**
37457 JDAHKT(2,7+IIGLU1)=0
37458 PHKT(1,7+IIGLU1) =PHKK(1,NC1P)*XVQP/(XVQP+XSAQ1)
37459 PHKT(2,7+IIGLU1) =PHKK(2,NC1P)*XVQP/(XVQP+XSAQ1)
37460 PHKT(3,7+IIGLU1) =PHKK(3,NC1P)*XVQP/(XVQP+XSAQ1)
37461 PHKT(4,7+IIGLU1) =PHKK(4,NC1P)*XVQP/(XVQP+XSAQ1)
37462C PHKT(5,7+IIGLU1) =PHKK(5,NC1P)
37463 XMIST =(PHKT(4,7+IIGLU1)**2-
37464 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
37465 *PHKT(1,7+IIGLU1)**2)
37466 IF(XMIST.GT.0.D0)THEN
37467 PHKT(5,7+IIGLU1) =SQRT(PHKT(4,7+IIGLU1)**2-
37468 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
37469 *PHKT(1,7+IIGLU1)**2)
37470 ELSE
37471C WRITE(6,*)'MUSQBS2 parton 7 mass square LT.0 ',XMIST
37472 PHKT(5,7+IIGLU1)=0.D0
37473 ENDIF
37474 VHKT(1,7+IIGLU1) =VHKK(1,NC1P)
37475 VHKT(2,7+IIGLU1) =VHKK(2,NC1P)
37476 VHKT(3,7+IIGLU1) =VHKK(3,NC1P)
37477 VHKT(4,7+IIGLU1) =VHKK(4,NC1P)
37478 WHKT(1,7+IIGLU1) =WHKK(1,NC1P)
37479 WHKT(2,7+IIGLU1) =WHKK(2,NC1P)
37480 WHKT(3,7+IIGLU1) =WHKK(3,NC1P)
37481 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
37482C Insert here the IIGLU2 gluons
37483 PG1=0.D0
37484 PG2=0.D0
37485 PG3=0.D0
37486 PG4=0.D0
37487 IF(IIGLU2.GE.1)THEN
37488 JJG=NC2P
37489 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
37490 KKG=JJG+IIG-7-IIGLU1
37491 IDHKT(IIG) =IDHKK(KKG)
37492 ISTHKT(IIG) =921
37493 JMOHKT(1,IIG)=KKG
37494 JMOHKT(2,IIG)=0
37495 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
37496 JDAHKT(2,IIG)=0
37497 PHKT(1,IIG)=PHKK(1,KKG)
37498 PG1=PG1+ PHKT(1,IIG)
37499 PHKT(2,IIG)=PHKK(2,KKG)
37500 PG2=PG2+ PHKT(2,IIG)
37501 PHKT(3,IIG)=PHKK(3,KKG)
37502 PG3=PG3+ PHKT(3,IIG)
37503 PHKT(4,IIG)=PHKK(4,KKG)
37504 PG4=PG4+ PHKT(4,IIG)
37505 PHKT(5,IIG)=PHKK(5,KKG)
37506 VHKT(1,IIG) =VHKK(1,KKG)
37507 VHKT(2,IIG) =VHKK(2,KKG)
37508 VHKT(3,IIG) =VHKK(3,KKG)
37509 VHKT(4,IIG) =VHKK(4,KKG)
37510 WHKT(1,IIG) =WHKK(1,KKG)
37511 WHKT(2,IIG) =WHKK(2,KKG)
37512 WHKT(3,IIG) =WHKK(3,KKG)
37513 WHKT(4,IIG) =WHKK(4,KKG)
37514 81 CONTINUE
37515 ENDIF
37516 IF(IPIP.EQ.1)THEN
37517 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*ISQ1+3
37518 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1203)IDHKT(8+IIGLU1+IIGLU2)=2103
37519 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1303)IDHKT(8+IIGLU1+IIGLU2)=3103
37520 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.2303)IDHKT(8+IIGLU1+IIGLU2)=3203
37521 ELSEIF(IPIP.EQ.2)THEN
37522 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*(-ISQ1+6)-3
37523 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1203)IDHKT(8+IIGLU1+IIGLU2)=-2103
37524 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1303)IDHKT(8+IIGLU1+IIGLU2)=-3103
37525 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-2303)IDHKT(8+IIGLU1+IIGLU2)=-3203
37526 ENDIF
37527 ISTHKT(8+IIGLU1+IIGLU2) =952
37528 JMOHKT(1,8+IIGLU1+IIGLU2)=NC2T
37529 JMOHKT(2,8+IIGLU1+IIGLU2)=0
37530 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
37531 JDAHKT(2,8+IIGLU1+IIGLU2)=0
37532 PHKT(1,8+IIGLU1+IIGLU2) =PHKK(1,NC2T)+
37533 * PHKK(1,NC1T)*XSQ1/(XDIQT+XSQ1)
37534 PHKT(2,8+IIGLU1+IIGLU2) =PHKK(2,NC2T)+
37535 * PHKK(2,NC1T)*XSQ1/(XDIQT+XSQ1)
37536 PHKT(3,8+IIGLU1+IIGLU2) =PHKK(3,NC2T)+
37537 * PHKK(3,NC1T)*XSQ1/(XDIQT+XSQ1)
37538 PHKT(4,8+IIGLU1+IIGLU2) =PHKK(4,NC2T)+
37539 * PHKK(4,NC1T)*XSQ1/(XDIQT+XSQ1)
37540C WRITE(6,*)'PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)',
37541C * PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)
37542 IF(PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T))THEN
37543C IREJ=1
37544C WRITE(6,*)'reject PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T)'
37545C * ,PHKT(4,8+IIGLU1+IIGLU2), PHKK(4,NC2T),NC2T
37546 IPCO=0
37547C RETURN
37548 GO TO 3466
37549 ENDIF
37550C PHKT(5,8) =PHKK(5,NC2T)
37551 XMIST =(PHKT(4,8+IIGLU1+IIGLU2)**2-
37552 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
37553 *PHKT(1,8+IIGLU1+IIGLU2)**2)
37554 IF(XMIST.GT.0.D0)THEN
37555 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
37556 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
37557 *PHKT(1,8+IIGLU1+IIGLU2)**2)
37558 ELSE
37559C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37560 PHKT(5,5+IIGLU1)=0.D0
37561 ENDIF
37562 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC2T)
37563 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC2T)
37564 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC2T)
37565 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC2T)
37566 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC2T)
37567 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC2T)
37568 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC2T)
37569 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC2T)
37570 IDHKT(9+IIGLU1+IIGLU2) =88888
37571 ISTHKT(9+IIGLU1+IIGLU2) =95
37572 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
37573 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
37574 JDAHKT(1,9+IIGLU1+IIGLU2)=0
37575 JDAHKT(2,9+IIGLU1+IIGLU2)=0
37576**NEW
37577C PHKT(1,9+IIGLU1+IIGLU2)
37578C * =PHKT(1,7+IIGLU1+IIGLU2)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
37579C PHKT(2,9+IIGLU1+IIGLU2)
37580C * =PHKT(2,7+IIGLU1+IIGLU2)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
37581C PHKT(3,9+IIGLU1+IIGLU2)
37582C * =PHKT(3,7+IIGLU1+IIGLU2)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
37583C PHKT(4,9+IIGLU1+IIGLU2)
37584C * =PHKT(4,7+IIGLU1+IIGLU2)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
37585 PHKT(1,9+IIGLU1+IIGLU2)
37586 * =PHKT(1,7+IIGLU1)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
37587 PHKT(2,9+IIGLU1+IIGLU2)
37588 * =PHKT(2,7+IIGLU1)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
37589 PHKT(3,9+IIGLU1+IIGLU2)
37590 * =PHKT(3,7+IIGLU1)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
37591 PHKT(4,9+IIGLU1+IIGLU2)
37592 * =PHKT(4,7+IIGLU1)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
37593**
37594 XMIST
37595 * =(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
37596 * -PHKT(2,9+IIGLU1+IIGLU2)**2
37597 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
37598 IF(XMIST.GT.0.D0)THEN
37599 PHKT(5,9+IIGLU1+IIGLU2)
37600 * =SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
37601 * -PHKT(2,9+IIGLU1+IIGLU2)**2
37602 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
37603 ELSE
37604C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
37605 PHKT(5,5+IIGLU1)=0.D0
37606 ENDIF
37607 IF(IPIP.GE.2)THEN
37608C IF(NUMEV.EQ.-324)THEN
37609C WRITE(6,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
37610C * JMOHKT(1,7+IIGLU1),JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
37611C *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
37612C DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
37613C WRITE(6,*)IIG,ISTHKT(IIG),IDHKT(IIG),JMOHKT(1,IIG),JMOHKT(2,IIG),
37614C * JDAHKT(1,IIG),
37615C *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
37616C 91 CONTINUE
37617C WRITE(6,*)8+IIGLU1+IIGLU2,ISTHKT(8+IIGLU1+IIGLU2),
37618C * IDHKT(8+IIGLU1+IIGLU2),JMOHKT(1,8+IIGLU1+IIGLU2),
37619C *JMOHKT(2,8+IIGLU1+IIGLU2),JDAHKT(1,8+IIGLU1+IIGLU2),
37620C *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
37621C WRITE(6,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
37622C * IDHKT(9+IIGLU1+IIGLU2),JMOHKT(1,9+IIGLU1+IIGLU2),
37623C *JMOHKT(2,9+IIGLU1+IIGLU2),JDAHKT(1,9+IIGLU1+IIGLU2),
37624C *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
37625 ENDIF
37626 CHAMAL=CHAB1
37627 IF(IPIP.EQ.1)THEN
37628 IF(IP1.GE.3.OR.IPP2.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
37629 ELSEIF(IPIP.EQ.2)THEN
37630 IF(IP1.LE.-3.OR.IPP2.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
37631 ENDIF
37632 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
37633C IREJ=1
37634 IPCO=0
37635C RETURN
37636C WRITE(6,*)' MUSQBS1 jump back from chain 9',
37637C * 'CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)',CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)
37638 GO TO 3466
37639 ENDIF
37640 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
37641 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
37642 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
37643 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
37644 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
37645 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
37646 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
37647 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
37648C
37649 IPCO=0
37650 IGCOUN=9+IIGLU1+IIGLU2
37651 RETURN
37652 END
37653
37654*$ CREATE MGSQBS2.FOR
37655*COPY MGSQBS2
37656C
37657C
37658C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
37659 SUBROUTINE MGSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37660 * IP1,IP21,IP22,IPP11,IPP12,IPP2,IPIP,ISQ,IGCOUN)
37661C
37662C GSQBS-2 diagram (split target diquark)
37663C
37664 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
37665 SAVE
37666
37667 PARAMETER ( LINP = 10 ,
37668 & LOUT = 6 ,
37669 & LDAT = 9 )
37670* event history
37671 PARAMETER (NMXHKK=200000)
37672 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
37673 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
37674 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
37675* extended event history
37676 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
37677 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
37678 & IHIST(2,NMXHKK)
37679* Lorentz-parameters of the current interaction
37680 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
37681 & UMO,PPCM,EPROJ,PPROJ
37682* diquark-breaking mechanism
37683 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
37684
37685C
37686 PARAMETER (NTMHKK= 300)
37687 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37688 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37689 +(4,NTMHKK)
37690
37691*KEEP,XSEADI.
37692 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
37693 +SSMIMQ,VVMTHR
37694*KEEP,DPRIN.
37695 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
37696C
37697C GSQBS-2 diagram (split target diquark)
37698C
37699C
37700C Input chain 1(NC1) valence-quark(NC1P)-valence-diquark(NC1T)
37701C Input chain 2(NC2) valence-diquark(NC2P)-sea-quark(NC2T)
37702C
37703C Create antiquark(aqsP)-quark(qsT) pair, energy from NC1P and NC1T
37704C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37705C
37706C Create chains 3 valence-diquark(NC2P 1)-valence-quark(vq1T 2)
37707C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37708C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37709C
37710C
37711C
37712C Put new chains into COMMON /HKKTMP/
37713C
37714 IIGLU1=NC1T-NC1P-1
37715 IIGLU2=NC2T-NC2P-1
37716 IGCOUN=0
37717C WRITE(6,*)' IIGLU1,IIGLU2 ',IIGLU1,IIGLU2
37718 CVQ=1.D0
37719 IREJ=0
37720C IF(IPIP.EQ.2)THEN
37721C WRITE(6,*)' MGSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
37722C * 'IP1,IP21,IP22,IPP11,IPP12,IPP2,IPIP,IGCOUN)',
37723C *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37724C * IP1,IP21,IP22,IPP11,IPP12,IPP2,IPIP,IGCOUN
37725C ENDIF
37726C
37727C
37728C
37729C determine x-values of NC1T diquark
37730 XDIQT=PHKK(4,NC1T)*2.D0/UMO
37731 XVQP=PHKK(4,NC1P)*2.D0/UMO
37732C
37733C determine x-values of sea quark pair
37734C
37735 IPCO=1
37736 ICOU=0
37737 2234 CONTINUE
37738 ICOU=ICOU+1
37739 IF(ICOU.GE.500)THEN
37740 IREJ=1
37741 IF(ISQ.EQ.3)IREJ=3
37742 IF(IPCO.GE.3)
37743 & WRITE(LOUT,*)' MGSQBS2 Rejection 2234 ICOU. GT.500'
37744 IPCO=0
37745 RETURN
37746 ENDIF
37747 IF(IPCO.GE.3)
37748 & WRITE(LOUT,*)'MGSQBS2 call XSEAPA: UMO,XDIQT,XVQP ',
37749 * UMO, XDIQT,XVQP
37750 XSQ=0.D0
37751 XSAQ=0.D0
37752**NEW
37753C CALL XSEAPA(UMO,XDIQT/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
37754 IF (IPIP.EQ.1) THEN
37755 XQMAX = XDIQT/2.0D0
37756 XAQMAX = 2.D0*XVQP/3.0D0
37757 ELSE
37758 XQMAX = 2.D0*XVQP/3.0D0
37759 XAQMAX = XDIQT/2.0D0
37760 ENDIF
37761 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
37762 ISAQ = 6+ISQ
37763C write(*,*) 'MGSQBS2: ',ISQ,XSQ,XDIQT,XSAQ,XVQP
37764**
37765 IF(IPCO.GE.3)
37766 & WRITE(LOUT,*)'MGSQBS2 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37767 IF(IREJ.GE.1)THEN
37768 IF(IPCO.GE.3)
37769 & WRITE(LOUT,*)'MGSQBS2 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
37770 IPCO=0
37771 RETURN
37772 ENDIF
37773 IF(IPIP.EQ.1)THEN
37774 IF(XSAQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37775 ELSEIF(IPIP.EQ.2)THEN
37776 IF(XSQ.GE.2.D0*XVQP/3.D0)GO TO 2234
37777 ENDIF
37778 IF(IPCO.GE.3)THEN
37779 WRITE(LOUT,'(A,4E12.4)')' MGSQBS2 XDIQT,XVQP,XSQ,XSAQ ',
37780 * XDIQT,XVQP,XSQ,XSAQ
37781 ENDIF
37782C
37783C subtract xsq,xsaq from NC1T diquark and NC1P quark
37784C
37785C XSQ=0.D0
37786 IF(IPIP.EQ.1)THEN
37787 XDIQT=XDIQT-XSQ
37788 XVQP =XVQP -XSAQ
37789 ELSEIF(IPIP.EQ.2)THEN
37790 XDIQT=XDIQT-XSAQ
37791 XVQP =XVQP -XSQ
37792 ENDIF
37793 IF(IPCO.GE.3)
37794 & WRITE(LOUT,*)'XDIQT,XVQP after subtraction',XDIQT,XVQP
37795C
37796C Split remaining valence diquark(NC1T) into quarks vq1T and vq2T
37797C
37798 XVTHRO=CVQ/UMO
37799 IVTHR=0
37800 3466 CONTINUE
37801 IF(IVTHR.EQ.10)THEN
37802 IREJ=1
37803 IF(ISQ.EQ.3)IREJ=3
37804 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS2 3466 reject IVTHR 10'
37805 IPCO=0
37806 RETURN
37807 ENDIF
37808 IVTHR=IVTHR+1
37809 XVTHR=XVTHRO/(201-IVTHR)
37810 UNOPRV=UNON
37811 380 CONTINUE
37812 IF(XVTHR.GT.0.66D0*XDIQT)THEN
37813 IREJ=1
37814 IF(ISQ.EQ.3)IREJ=3
37815 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS2 Rejection 380 XVTHR large ',
37816 * XVTHR
37817 IPCO=0
37818 RETURN
37819 ENDIF
37820 IF(DT_RNDM(V).LT.0.5D0)THEN
37821 XVTQI=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37822 XVTQII=XDIQT-XVTQI
37823 ELSE
37824 XVTQII=DT_SAMPEX(XVTHR,0.66D0*XDIQT)
37825 XVTQI=XDIQT-XVTQII
37826 ENDIF
37827 IF(IPCO.GE.3)THEN
37828 WRITE(LOUT,'(A,2E12.4)')' MGSQBS2:XVTQI,XVTQII ',XVTQI,XVTQII
37829 ENDIF
37830C
37831C Prepare 4 momenta of new chains and chain ends
37832C
37833C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
37834C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
37835C +(4,NTMHKK)
37836C
37837C Create chains 3 valence-diquark(NC2P 1)-valence-quark(vq1T 2)
37838C 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37839C 9 valence-quark(NC1P 7)-diquark(NC2T+qsT 8)
37840C
37841C SUBROUTINE MGSQBS2(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
37842C * IP1,IP21,IP22,IPP11,IPP12,IPP2,IGCOUN)
37843C
37844 IF(IPIP.EQ.1)THEN
37845 XSQ1=XSQ
37846 XSAQ1=XSAQ
37847 ISQ1=ISQ
37848 ISAQ1=ISAQ
37849 ELSEIF(IPIP.EQ.2)THEN
37850 XSQ1=XSAQ
37851 XSAQ1=XSQ
37852 ISQ1=ISAQ
37853 ISAQ1=ISQ
37854 ENDIF
37855 KK11=IP21
37856C IDHKT(1) =1000*IPP11+100*IPP12+1
37857 KK21=IPP11
37858 KK22=IPP12
37859 XGIVE=0.D0
37860 IF(IPIP.EQ.1)THEN
37861 IDHKT(4+IIGLU1) =-(ISAQ1-6)
37862 ELSEIF(IPIP.EQ.2)THEN
37863 IDHKT(4+IIGLU1) =ISAQ1
37864 ENDIF
37865 ISTHKT(4+IIGLU1) =961
37866 JMOHKT(1,4+IIGLU1)=NC1P
37867 JMOHKT(2,4+IIGLU1)=0
37868 JDAHKT(1,4+IIGLU1)=6+IIGLU1
37869 JDAHKT(2,4+IIGLU1)=0
37870C create chain 6 sea-antiquark(aqsP 4)-valence-quark(vq2T 5)
37871 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XSAQ1/(XVQP+XSAQ1)
37872 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XSAQ1/(XVQP+XSAQ1)
37873 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XSAQ1/(XVQP+XSAQ1)
37874 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XSAQ1/(XVQP+XSAQ1)
37875C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
37876 XXMIST=(PHKT(4,4+IIGLU1)**2-
37877 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
37878 *PHKT(1,4+IIGLU1)**2)
37879 IF(XXMIST.GT.0.D0)THEN
37880 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
37881 ELSE
37882 WRITE(LOUT,*)'MGSQBS2 XXMIST',XXMIST
37883 XXMIST=ABS(XXMIST)
37884 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
37885 ENDIF
37886 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
37887 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
37888 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
37889 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
37890 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
37891 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
37892 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
37893 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
37894 IDHKT(5+IIGLU1) =IP22
37895 ISTHKT(5+IIGLU1) =962
37896 JMOHKT(1,5+IIGLU1)=NC1T
37897 JMOHKT(2,5+IIGLU1)=0
37898 JDAHKT(1,5+IIGLU1)=6+IIGLU1
37899 JDAHKT(2,5+IIGLU1)=0
37900 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XVTQII/(XDIQT+XSQ1)
37901 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XVTQII/(XDIQT+XSQ1)
37902 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XVTQII/(XDIQT+XSQ1)
37903 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XVTQII/(XDIQT+XSQ1)
37904C PHKT(5,5+IIGLU1) =PHKK(5,NC1T)
37905 XXMIST=(PHKT(4,5+IIGLU1)**2-
37906 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
37907 *PHKT(1,5+IIGLU1)**2)
37908 IF(XXMIST.GT.0.D0)THEN
37909 PHKT(5,5+IIGLU1) =SQRT(XXMIST)
37910 ELSE
37911 WRITE(LOUT,*)' MGSQBS2 XXMIST', XXMIST
37912 XXMIST=ABS(XXMIST)
37913 PHKT(5,5+IIGLU1) =SQRT(XXMIST)
37914 ENDIF
37915 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
37916 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
37917 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
37918 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
37919 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
37920 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
37921 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
37922 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
37923 IDHKT(6+IIGLU1) =88888
37924 ISTHKT(6+IIGLU1) =96
37925 JMOHKT(1,6+IIGLU1)=4+IIGLU1
37926 JMOHKT(2,6+IIGLU1)=5+IIGLU1
37927 JDAHKT(1,6+IIGLU1)=0
37928 JDAHKT(2,6+IIGLU1)=0
37929 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
37930 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
37931 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
37932 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
37933 PHKT(5,6+IIGLU1)
37934 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
37935 * -PHKT(3,6+IIGLU1)**2)
37936 CHAMAL=CHAM1
37937 IF(IPIP.EQ.1)THEN
37938 IF(IP22.GE.3.OR.ISAQ1.GE.9)CHAMAL=CHAM3
37939 ELSEIF(IPIP.EQ.2)THEN
37940 IF(IP22.LE.-3.OR.ISAQ1.GE.3)CHAMAL=CHAM3
37941 ENDIF
37942C---------------------------------------------------
37943 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
37944 IF(IDHKT(5+IIGLU1).EQ.-IDHKT(4+IIGLU1))THEN
37945C we drop chain 6 and give the energy to chain 3
37946 IDHKT(6+IIGLU1)=22888
37947 XGIVE=1.D0
37948C WRITE(6,*)' drop chain 6 xgive=1'
37949 GO TO 7788
37950 ELSEIF(IDHKT(4+IIGLU1).EQ.-IP21)THEN
37951C we drop chain 6 and give the energy to chain 3
37952C and change KK11 to IDHKT(5)
37953 IDHKT(6+IIGLU1)=22888
37954 XGIVE=1.D0
37955C WRITE(6,*)' drop chain 6 xgive=1 KK11=IDHKT(5)'
37956 KK11=IDHKT(5+IIGLU1)
37957 GO TO 7788
37958 ELSEIF(IDHKT(4+IIGLU1).EQ.-IPP11)THEN
37959C we drop chain 6 and give the energy to chain 3
37960C and change KK21 to IDHKT(5+IIGLU1)
37961C IDHKT(1) =1000*IPP11+100*IPP12+1
37962 IDHKT(6+IIGLU1)=22888
37963 XGIVE=1.D0
37964C WRITE(6,*)' drop chain 6 xgive=1 KK21=IDHKT(5+IIGLU1)'
37965 KK21=IDHKT(5+IIGLU1)
37966 GO TO 7788
37967 ELSEIF(IDHKT(4+IIGLU1).EQ.-IPP12)THEN
37968C we drop chain 6 and give the energy to chain 3
37969C and change KK22 to IDHKT(5)
37970C IDHKT(1) =1000*IPP11+100*IPP12+1
37971 IDHKT(6+IIGLU1)=22888
37972 XGIVE=1.D0
37973C WRITE(6,*)' drop chain 6 xgive=1 KK22=IDHKT(5+IIGLU1)'
37974 KK22=IDHKT(5+IIGLU1)
37975 GO TO 7788
37976 ENDIF
37977C IREJ=1
37978 IPCO=0
37979C RETURN
37980 GO TO 3466
37981 ENDIF
37982 7788 CONTINUE
37983C---------------------------------------------------
37984 IF(IPIP.GE.3)THEN
37985 WRITE(LOUT,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
37986 * JMOHKT(1,4+IIGLU1),JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
37987 *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
37988 WRITE(LOUT,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
37989 * JMOHKT(1,5+IIGLU1),JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
37990 *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
37991 WRITE(LOUT,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
37992 * JMOHKT(1,6+IIGLU1),JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
37993 *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
37994 ENDIF
37995 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
37996 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
37997 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
37998 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
37999 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
38000 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
38001 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
38002 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
38003C IDHKT(1) =1000*IPP11+100*IPP12+1
38004 IF(IPIP.EQ.1)THEN
38005 IDHKT(1) =1000*KK21+100*KK22+3
38006 IF(IDHKT(1).EQ.1203)IDHKT(1)=2103
38007 IF(IDHKT(1).EQ.1303)IDHKT(1)=3103
38008 IF(IDHKT(1).EQ.2303)IDHKT(1)=3203
38009 ELSEIF(IPIP.EQ.2)THEN
38010 IDHKT(1) =1000*KK21+100*KK22-3
38011 IF(IDHKT(1).EQ.-1203)IDHKT(1)=-2103
38012 IF(IDHKT(1).EQ.-1303)IDHKT(1)=-3103
38013 IF(IDHKT(1).EQ.-2303)IDHKT(1)=-3203
38014 ENDIF
38015 ISTHKT(1) =961
38016 JMOHKT(1,1)=NC2P
38017 JMOHKT(2,1)=0
38018 JDAHKT(1,1)=3+IIGLU1
38019 JDAHKT(2,1)=0
38020C Create chains 3 valence-diquark(NC2P 1)-valence-quark(vq1T 2)
38021 PHKT(1,1) =PHKK(1,NC2P)
38022 *+XGIVE*PHKT(1,4+IIGLU1)
38023 PHKT(2,1) =PHKK(2,NC2P)
38024 *+XGIVE*PHKT(2,4+IIGLU1)
38025 PHKT(3,1) =PHKK(3,NC2P)
38026 *+XGIVE*PHKT(3,4+IIGLU1)
38027 PHKT(4,1) =PHKK(4,NC2P)
38028 *+XGIVE*PHKT(4,4+IIGLU1)
38029C PHKT(5,1) =PHKK(5,NC2P)
38030 XXMIST=PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
38031 *PHKT(1,1)**2
38032 IF(XXMIST.GT.0.D0)THEN
38033 PHKT(5,1) =SQRT(XXMIST)
38034 ELSE
38035 WRITE(LOUT,*)'MGSQBS2',XXMIST
38036 XXMIST=ABS(XXMIST)
38037 PHKT(5,1) =SQRT(XXMIST)
38038 ENDIF
38039 VHKT(1,1) =VHKK(1,NC2P)
38040 VHKT(2,1) =VHKK(2,NC2P)
38041 VHKT(3,1) =VHKK(3,NC2P)
38042 VHKT(4,1) =VHKK(4,NC2P)
38043 WHKT(1,1) =WHKK(1,NC2P)
38044 WHKT(2,1) =WHKK(2,NC2P)
38045 WHKT(3,1) =WHKK(3,NC2P)
38046 WHKT(4,1) =WHKK(4,NC2P)
38047C Add here IIGLU1 gluons to this chaina
38048 PG1=0.D0
38049 PG2=0.D0
38050 PG3=0.D0
38051 PG4=0.D0
38052 IF(IIGLU1.GE.1)THEN
38053 JJG=NC1P
38054 DO 61 IIG=2,2+IIGLU1-1
38055 KKG=JJG+IIG-1
38056 IDHKT(IIG) =IDHKK(KKG)
38057 ISTHKT(IIG) =921
38058 JMOHKT(1,IIG)=KKG
38059 JMOHKT(2,IIG)=0
38060 JDAHKT(1,IIG)=3+IIGLU1
38061 JDAHKT(2,IIG)=0
38062 PHKT(1,IIG)=PHKK(1,KKG)
38063 PG1=PG1+ PHKT(1,IIG)
38064 PHKT(2,IIG)=PHKK(2,KKG)
38065 PG2=PG2+ PHKT(2,IIG)
38066 PHKT(3,IIG)=PHKK(3,KKG)
38067 PG3=PG3+ PHKT(3,IIG)
38068 PHKT(4,IIG)=PHKK(4,KKG)
38069 PG4=PG4+ PHKT(4,IIG)
38070 PHKT(5,IIG)=PHKK(5,KKG)
38071 VHKT(1,IIG) =VHKK(1,KKG)
38072 VHKT(2,IIG) =VHKK(2,KKG)
38073 VHKT(3,IIG) =VHKK(3,KKG)
38074 VHKT(4,IIG) =VHKK(4,KKG)
38075 WHKT(1,IIG) =WHKK(1,KKG)
38076 WHKT(2,IIG) =WHKK(2,KKG)
38077 WHKT(3,IIG) =WHKK(3,KKG)
38078 WHKT(4,IIG) =WHKK(4,KKG)
38079 61 CONTINUE
38080 ENDIF
38081C IDHKT(2) =IP21
38082 IDHKT(2+IIGLU1) =KK11
38083 ISTHKT(2+IIGLU1) =962
38084 JMOHKT(1,2+IIGLU1)=NC1T
38085 JMOHKT(2,2+IIGLU1)=0
38086 JDAHKT(1,2+IIGLU1)=3+IIGLU1
38087 JDAHKT(2,2+IIGLU1)=0
38088 PHKT(1,2+IIGLU1) =PHKK(1,NC1T)*XVTQI/(XDIQT+XSQ1)
38089C * +0.5D0*PHKK(1,NC2T)
38090 *+XGIVE*PHKT(1,5+IIGLU1)
38091 PHKT(2,2+IIGLU1) =PHKK(2,NC1T)*XVTQI/(XDIQT+XSQ1)
38092C *+0.5D0*PHKK(2,NC2T)
38093 *+XGIVE*PHKT(2,5+IIGLU1)
38094 PHKT(3,2+IIGLU1) =PHKK(3,NC1T)*XVTQI/(XDIQT+XSQ1)
38095C *+0.5D0*PHKK(3,NC2T)
38096 *+XGIVE*PHKT(3,5+IIGLU1)
38097 PHKT(4,2+IIGLU1) =PHKK(4,NC1T)*XVTQI/(XDIQT+XSQ1)
38098C *+0.5D0*PHKK(4,NC2T)
38099 *+XGIVE*PHKT(4,5+IIGLU1)
38100C PHKT(5,2) =PHKK(5,NC1T)
38101 XXMIST=(PHKT(4,2+IIGLU1)**2-
38102 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
38103 *PHKT(1,2+IIGLU1)**2)
38104 IF(XXMIST.GT.0.D0)THEN
38105 PHKT(5,2+IIGLU1) =SQRT(XXMIST)
38106 ELSE
38107 WRITE(LOUT,*)'MGSQBS2 XXMIST',XXMIST
38108 XXMIST=ABS(XXMIST)
38109 PHKT(5,2+IIGLU1) =SQRT(XXMIST)
38110 ENDIF
38111 VHKT(1,2+IIGLU1) =VHKK(1,NC1T)
38112 VHKT(2,2+IIGLU1) =VHKK(2,NC1T)
38113 VHKT(3,2+IIGLU1) =VHKK(3,NC1T)
38114 VHKT(4,2+IIGLU1) =VHKK(4,NC1T)
38115 WHKT(1,2+IIGLU1) =WHKK(1,NC1T)
38116 WHKT(2,2+IIGLU1) =WHKK(2,NC1T)
38117 WHKT(3,2+IIGLU1) =WHKK(3,NC1T)
38118 WHKT(4,2+IIGLU1) =WHKK(4,NC1T)
38119 IDHKT(3+IIGLU1) =88888
38120 ISTHKT(3+IIGLU1) =96
38121 JMOHKT(1,3+IIGLU1)=1
38122 JMOHKT(2,3+IIGLU1)=2+IIGLU1
38123 JDAHKT(1,3+IIGLU1)=0
38124 JDAHKT(2,3+IIGLU1)=0
38125 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
38126 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
38127 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
38128 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
38129 PHKT(5,3+IIGLU1)
38130 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
38131 * -PHKT(3,3+IIGLU1)**2)
38132 IF(IPIP.EQ.3)THEN
38133 WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),JMOHKT(2,1),
38134 * JDAHKT(1,1),
38135 *JDAHKT(2,1),(PHKT(III,1),III=1,5)
38136 DO 71 IIG=2,2+IIGLU1-1
38137 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38138 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38139 * JDAHKT(1,IIG),
38140 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38141 71 CONTINUE
38142 WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),IDHKT(2+IIGLU1),
38143 * JMOHKT(1,2+IIGLU1),JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
38144 *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
38145 WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
38146 * JMOHKT(1,3+IIGLU1),JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
38147 *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
38148 ENDIF
38149 CHAMAL=CHAB1
38150 IF(IPIP.EQ.1)THEN
38151 IF(IPP11.GE.3.OR.IPP12.GE.3.OR.IP21.GE.3)CHAMAL=CHAB3
38152 ELSEIF(IPIP.EQ.2)THEN
38153 IF(IPP11.LE.-3.OR.IPP12.LE.-3.OR.IP21.LE.-3)CHAMAL=CHAB3
38154 ENDIF
38155 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
38156C IREJ=1
38157 IPCO=0
38158C RETURN
38159 GO TO 3466
38160 ENDIF
38161 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
38162 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
38163 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
38164 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
38165 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
38166 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
38167 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
38168 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
38169C IDHKT(7+IIGLU1) =1000*IPP1+100*ISQ+1
38170 IDHKT(7+IIGLU1) =IP1
38171 ISTHKT(7+IIGLU1) =961
38172 JMOHKT(1,7+IIGLU1)=NC1P
38173 JMOHKT(2,7+IIGLU1)=0
38174 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
38175 JDAHKT(2,7+IIGLU1)=0
38176 PHKT(1,7+IIGLU1) =PHKK(1,NC1P)*XVQP/(XVQP+XSAQ1)
38177 PHKT(2,7+IIGLU1) =PHKK(2,NC1P)*XVQP/(XVQP+XSAQ1)
38178 PHKT(3,7+IIGLU1) =PHKK(3,NC1P)*XVQP/(XVQP+XSAQ1)
38179 PHKT(4,7+IIGLU1) =PHKK(4,NC1P)*XVQP/(XVQP+XSAQ1)
38180C PHKT(5,7+IIGLU1) =PHKK(5,NC1P)
38181 XXMIST=(PHKT(4,7+IIGLU1)**2-
38182 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
38183 *PHKT(1,7+IIGLU1)**2)
38184 IF(XXMIST.GT.0.D0)THEN
38185 PHKT(5,7+IIGLU1) =SQRT(XXMIST)
38186 ELSE
38187 WRITE(LOUT,*)' MGSQBS2, XXMIST',XXMIST
38188 XXMIST=ABS(XXMIST)
38189 PHKT(5,7+IIGLU1) =SQRT(XXMIST)
38190 ENDIF
38191 VHKT(1,7+IIGLU1) =VHKK(1,NC1P)
38192 VHKT(2,7+IIGLU1) =VHKK(2,NC1P)
38193 VHKT(3,7+IIGLU1) =VHKK(3,NC1P)
38194 VHKT(4,7+IIGLU1) =VHKK(4,NC1P)
38195 WHKT(1,7+IIGLU1) =WHKK(1,NC1P)
38196 WHKT(2,7+IIGLU1) =WHKK(2,NC1P)
38197 WHKT(3,7+IIGLU1) =WHKK(3,NC1P)
38198 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
38199C IDHKT(7) =1000*IPP1+100*ISQ+1
38200C Insert here the IIGLU2 gluons
38201 PG1=0.D0
38202 PG2=0.D0
38203 PG3=0.D0
38204 PG4=0.D0
38205 IF(IIGLU2.GE.1)THEN
38206 JJG=NC2P
38207 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38208 KKG=JJG+IIG-7-IIGLU1
38209 IDHKT(IIG) =IDHKK(KKG)
38210 ISTHKT(IIG) =921
38211 JMOHKT(1,IIG)=KKG
38212 JMOHKT(2,IIG)=0
38213 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
38214 JDAHKT(2,IIG)=0
38215 PHKT(1,IIG)=PHKK(1,KKG)
38216 PG1=PG1+ PHKT(1,IIG)
38217 PHKT(2,IIG)=PHKK(2,KKG)
38218 PG2=PG2+ PHKT(2,IIG)
38219 PHKT(3,IIG)=PHKK(3,KKG)
38220 PG3=PG3+ PHKT(3,IIG)
38221 PHKT(4,IIG)=PHKK(4,KKG)
38222 PG4=PG4+ PHKT(4,IIG)
38223 PHKT(5,IIG)=PHKK(5,KKG)
38224 VHKT(1,IIG) =VHKK(1,KKG)
38225 VHKT(2,IIG) =VHKK(2,KKG)
38226 VHKT(3,IIG) =VHKK(3,KKG)
38227 VHKT(4,IIG) =VHKK(4,KKG)
38228 WHKT(1,IIG) =WHKK(1,KKG)
38229 WHKT(2,IIG) =WHKK(2,KKG)
38230 WHKT(3,IIG) =WHKK(3,KKG)
38231 WHKT(4,IIG) =WHKK(4,KKG)
38232 81 CONTINUE
38233 ENDIF
38234 IF(IPIP.EQ.1)THEN
38235 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*ISQ1+3
38236 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1203)IDHKT(8+IIGLU1+IIGLU2)=2103
38237 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.1303)IDHKT(8+IIGLU1+IIGLU2)=3103
38238 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.2303)IDHKT(8+IIGLU1+IIGLU2)=3203
38239 ELSEIF(IPIP.EQ.2)THEN
38240**NEW
38241C IDHKT(8) =1000*IPP2+100*(-ISQ1+6)-3
38242 IDHKT(8+IIGLU1+IIGLU2) =1000*IPP2+100*(-ISQ1+6)-3
38243**
38244 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1203)IDHKT(8+IIGLU1+IIGLU2)=-2103
38245 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-1303)IDHKT(8+IIGLU1+IIGLU2)=-3103
38246 IF(IDHKT(8+IIGLU1+IIGLU2).EQ.-2303)IDHKT(8+IIGLU1+IIGLU2)=-3203
38247 ENDIF
38248 ISTHKT(8+IIGLU1+IIGLU2) =962
38249 JMOHKT(1,8+IIGLU1+IIGLU2)=NC2T
38250 JMOHKT(2,8+IIGLU1+IIGLU2)=0
38251 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
38252 JDAHKT(2,8+IIGLU1+IIGLU2)=0
38253C PHKT(1,8) =0.5D0*PHKK(1,NC2T)+PHKK(1,NC1T)*XSQ/(XDIQT+XSQ)
38254C PHKT(2,8) =0.5D0*PHKK(2,NC2T)+PHKK(2,NC1T)*XSQ/(XDIQT+XSQ)
38255C PHKT(3,8) =0.5D0*PHKK(3,NC2T)+PHKK(3,NC1T)*XSQ/(XDIQT+XSQ)
38256C PHKT(4,8) =0.5D0*PHKK(4,NC2T)+PHKK(4,NC1T)*XSQ/(XDIQT+XSQ)
38257 PHKT(1,8+IIGLU1+IIGLU2) =
38258 * PHKK(1,NC2T)+PHKK(1,NC1T)*XSQ1/(XDIQT+XSQ1)
38259 PHKT(2,8+IIGLU1+IIGLU2) =
38260 * PHKK(2,NC2T)+PHKK(2,NC1T)*XSQ1/(XDIQT+XSQ1)
38261 PHKT(3,8+IIGLU1+IIGLU2) =
38262 * PHKK(3,NC2T)+PHKK(3,NC1T)*XSQ1/(XDIQT+XSQ1)
38263 PHKT(4,8+IIGLU1+IIGLU2) =
38264 * PHKK(4,NC2T)+PHKK(4,NC1T)*XSQ1/(XDIQT+XSQ1)
38265C WRITE(6,*)'PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)',
38266C * PHKK(4,NC1T),PHKK(4,NC2T), PHKT(4,7)
38267 IF(PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T))THEN
38268C IREJ=1
38269C WRITE(6,*)'reject PHKT(4,8+IIGLU1+IIGLU2).GE. PHKK(4,NC1T)'
38270 IPCO=0
38271C RETURN
38272 GO TO 3466
38273 ENDIF
38274C PHKT(5,8) =PHKK(5,NC2T)
38275 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
38276 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
38277 *PHKT(1,8+IIGLU1+IIGLU2)**2)
38278 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC2T)
38279 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC2T)
38280 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC2T)
38281 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC2T)
38282 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC2T)
38283 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC2T)
38284 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC2T)
38285 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC2T)
38286 IDHKT(9+IIGLU1+IIGLU2) =88888
38287 ISTHKT(9+IIGLU1+IIGLU2) =96
38288 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
38289 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
38290 JDAHKT(1,9+IIGLU1+IIGLU2)=0
38291 JDAHKT(2,9+IIGLU1+IIGLU2)=0
38292 PHKT(1,9+IIGLU1+IIGLU2)
38293 * =PHKT(1,7+IIGLU1)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
38294 PHKT(2,9+IIGLU1+IIGLU2)
38295 * =PHKT(2,7+IIGLU1)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
38296 PHKT(3,9+IIGLU1+IIGLU2)
38297 * =PHKT(3,7+IIGLU1)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
38298 PHKT(4,9+IIGLU1+IIGLU2)
38299 * =PHKT(4,7+IIGLU1)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
38300 PHKT(5,9+IIGLU1+IIGLU2)
38301 * =SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2-
38302 * PHKT(2,9+IIGLU1+IIGLU2)**2
38303 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
38304 IF(IPIP.GE.3)THEN
38305 WRITE(LOUT,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
38306 * JMOHKT(1,7+IIGLU1),JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
38307 *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
38308 DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38309 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38310 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38311 * JDAHKT(1,IIG),
38312 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38313 91 CONTINUE
38314 WRITE(LOUT,*)8+IIGLU1+IIGLU2,ISTHKT(8+IIGLU1+IIGLU2),
38315 * IDHKT(8+IIGLU1+IIGLU2),JMOHKT(1,8+IIGLU1+IIGLU2),
38316 *JMOHKT(2,8+IIGLU1+IIGLU2),JDAHKT(1,8+IIGLU1+IIGLU2),
38317 *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
38318 WRITE(LOUT,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
38319 * IDHKT(9+IIGLU1+IIGLU2),JMOHKT(1,9+IIGLU1+IIGLU2),
38320 *JMOHKT(2,9+IIGLU1+IIGLU2),JDAHKT(1,9+IIGLU1+IIGLU2),
38321 *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
38322 ENDIF
38323 CHAMAL=CHAB1
38324 IF(IPIP.EQ.1)THEN
38325 IF(IP1.GE.3.OR.IPP2.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
38326 ELSEIF(IPIP.EQ.2)THEN
38327 IF(IP1.LE.-3.OR.IPP2.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
38328 ENDIF
38329 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
38330C IREJ=1
38331 IPCO=0
38332C RETURN
38333 GO TO 3466
38334 ENDIF
38335 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
38336 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
38337 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
38338 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
38339 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
38340 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
38341 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
38342 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
38343C
38344 IPCO=0
38345 IGCOUN=9+IIGLU1+IIGLU2
38346 RETURN
38347 END
38348
38349*$ CREATE MUSQBS1.FOR
38350*COPY MUSQBS1
38351C
38352C
38353C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
38354 SUBROUTINE MUSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
38355 * IP11,IP12,IP2,IPP1,IPP2,IPIP,ISQ,IGCOUN)
38356C
38357C USQBS-1 diagram (split projectile diquark)
38358C
38359 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
38360 SAVE
38361
38362 PARAMETER ( LINP = 10 ,
38363 & LOUT = 6 ,
38364 & LDAT = 9 )
38365* event history
38366 PARAMETER (NMXHKK=200000)
38367 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
38368 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
38369 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
38370* extended event history
38371 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
38372 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
38373 & IHIST(2,NMXHKK)
38374* Lorentz-parameters of the current interaction
38375 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
38376 & UMO,PPCM,EPROJ,PPROJ
38377* diquark-breaking mechanism
38378 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
38379
38380C
38381 PARAMETER (NTMHKK= 300)
38382 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
38383 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
38384 +(4,NTMHKK)
38385*KEEP,XSEADI.
38386 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
38387 +SSMIMQ,VVMTHR
38388*KEEP,DPRIN.
38389 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
38390 COMMON /EVFLAG/ NUMEV
38391C
38392C USQBS-1 diagram (split projectile diquark)
38393C
38394C Input chain 1(NC1) valence-diquark(NC1P)-valence-quark(NC1T)
38395C Input chain 2(NC2) sea-quark(NC2P)-sea-antiquark(NC2T)
38396C
38397C Create quark(qsP)-antiquark(aqsT) pair, energy from NC1P and NC1T
38398C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
38399C
38400C Create chains 3 valence quark(vq1P 1)-sea-antiquark(NC2T 2)
38401C 6 valence quark(vq2P 4)-sea-quark(aqsT 5)
38402C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
38403C
38404C Put new chains into COMMON /HKKTMP/
38405C
38406 IIGLU1=NC1T-NC1P-1
38407 IIGLU2=NC2T-NC2P-1
38408 IGCOUN=0
38409C WRITE(6,*)'MUSQBS1: IIGLU1,IIGLU2,IPIP ',IIGLU1,IIGLU2,IPIP
38410 CVQ=1.D0
38411 IREJ=0
38412 IF(IPIP.EQ.3)THEN
38413C IF(NUMEV.EQ.-324)THEN
38414 WRITE(LOUT,*)' MUSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
38415 * ' IP11,IP12,IP2,IPP1,IPP2,IPIP,IGCOUN)',
38416 *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
38417 * IP11,IP12,IP2,IPP1,IPP2,IPIP,IGCOUN
38418 ENDIF
38419C
38420C
38421C
38422C determine x-values of NC1P diquark
38423 XDIQP=PHKK(4,NC1P)*2.D0/UMO
38424 XVQT=PHKK(4,NC1T)*2.D0/UMO
38425C
38426C determine x-values of sea quark pair
38427C
38428 IPCO=1
38429 ICOU=0
38430 2234 CONTINUE
38431 ICOU=ICOU+1
38432 IF(ICOU.GE.500)THEN
38433 IREJ=1
38434 IF(ISQ.EQ.3)IREJ=3
38435 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS1 Rejection 2234 ICOU. GT.100'
38436 IPCO=0
38437 RETURN
38438 ENDIF
38439 IF(IPCO.GE.3)WRITE(LOUT,*)'MUSQBS1 call XSEAPA: UMO,XDIQP,XVQT ',
38440 * UMO, XDIQP,XVQT
38441 XSQ=0.D0
38442 XSAQ=0.D0
38443**NEW
38444C CALL XSEAPA(UMO,XDIQP/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
38445 IF (IPIP.EQ.1) THEN
38446 XQMAX = XDIQP/2.0D0
38447 XAQMAX = 2.D0*XVQT/3.0D0
38448 ELSE
38449 XQMAX = 2.D0*XVQT/3.0D0
38450 XAQMAX = XDIQP/2.0D0
38451 ENDIF
38452 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
38453 ISAQ = 6+ISQ
38454C write(*,*) 'MUSQBS1: ',ISQ,XSQ,XDIQP,XSAQ,XVQT
38455**
38456 IF(IPCO.GE.3)WRITE(LOUT,*)'MUSQBS1 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
38457 IF(IREJ.GE.1)THEN
38458 IF(IPCO.GE.3)
38459 & WRITE(LOUT,*)'MUSQBS1 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
38460 IPCO=0
38461 RETURN
38462 ENDIF
38463 IF(IPIP.EQ.1)THEN
38464 IF(XSAQ.GE.2.D0*XVQT/3.D0)GO TO 2234
38465 ELSEIF(IPIP.EQ.2)THEN
38466 IF(XSQ.GE.2.D0*XVQT/3.D0)GO TO 2234
38467 ENDIF
38468 IF(IPCO.GE.3)THEN
38469 WRITE(LOUT,'(A,4E12.4)')' MUSQBS1 XDIQP,XVQT,XSQ,XSAQ ',
38470 * XDIQP,XVQT,XSQ,XSAQ
38471 ENDIF
38472C
38473C subtract xsq,xsaq from NC1P diquark and NC1T quark
38474C
38475C XSQ=0.D0
38476 IF(IPIP.EQ.1)THEN
38477 XDIQP=XDIQP-XSQ
38478 XVQT =XVQT -XSAQ
38479 ELSEIF(IPIP.EQ.2)THEN
38480 XDIQP=XDIQP-XSAQ
38481 XVQT =XVQT -XSQ
38482 ENDIF
38483 IF(IPCO.GE.3)
38484 & WRITE(LOUT,*)'XDIQP,XVQT after subtraction',XDIQP,XVQT
38485C
38486C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
38487C
38488 XVTHRO=CVQ/UMO
38489 IVTHR=0
38490 3466 CONTINUE
38491 IF(IVTHR.EQ.10)THEN
38492 IREJ=1
38493 IF(ISQ.EQ.3)IREJ=3
38494 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS1 3466 reject IVTHR 10'
38495 IPCO=0
38496 RETURN
38497 ENDIF
38498 IVTHR=IVTHR+1
38499 XVTHR=XVTHRO/(201-IVTHR)
38500 UNOPRV=UNON
38501 380 CONTINUE
38502 IF(XVTHR.GT.0.66D0*XDIQP)THEN
38503 IREJ=1
38504 IF(ISQ.EQ.3)IREJ=3
38505 IF(IPCO.GE.3)WRITE(LOUT,*)' MUSQBS1 Rejection 380 XVTHR large ',
38506 * XVTHR
38507 IPCO=0
38508 RETURN
38509 ENDIF
38510 IF(DT_RNDM(V).LT.0.5D0)THEN
38511 XVPQI=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
38512 XVPQII=XDIQP-XVPQI
38513 ELSE
38514 XVPQII=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
38515 XVPQI=XDIQP-XVPQII
38516 ENDIF
38517 IF(IPCO.GE.3)THEN
38518 WRITE(LOUT,'(A,2E12.4)')' MUSQBS1:XVPQI,XVPQII ',XVPQI,XVPQII
38519 ENDIF
38520C
38521C Prepare 4 momenta of new chains and chain ends
38522C
38523C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
38524C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
38525C +(4,NTMHKK)
38526C Create chains 3 valence quark(vq1P 1)-sea-antiquark(NC2T 2)
38527C 6 valence quark(vq2P 4)-sea-quark(aqsT 5)
38528C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
38529 IF(IPIP.EQ.1)THEN
38530 XSQ1=XSQ
38531 XSAQ1=XSAQ
38532 ISQ1=ISQ
38533 ISAQ1=ISAQ
38534 ELSEIF(IPIP.EQ.2)THEN
38535 XSQ1=XSAQ
38536 XSAQ1=XSQ
38537 ISQ1=ISAQ
38538 ISAQ1=ISQ
38539 ENDIF
38540 IDHKT(1) =IP11
38541 ISTHKT(1) =931
38542 JMOHKT(1,1)=NC1P
38543 JMOHKT(2,1)=0
38544 JDAHKT(1,1)=3+IIGLU1
38545 JDAHKT(2,1)=0
38546C Create chains 3 valence quark(vq1P 1)-sea-antiquark(NC2T 2)
38547 PHKT(1,1) =PHKK(1,NC1P)*XVPQI/(XDIQP+XSQ1)
38548 PHKT(2,1) =PHKK(2,NC1P)*XVPQI/(XDIQP+XSQ1)
38549 PHKT(3,1) =PHKK(3,NC1P)*XVPQI/(XDIQP+XSQ1)
38550 PHKT(4,1) =PHKK(4,NC1P)*XVPQI/(XDIQP+XSQ1)
38551C PHKT(5,1) =PHKK(5,NC1P)
38552 XMIST =(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
38553 *PHKT(1,1)**2)
38554 IF(XMIST.GE.0.D0)THEN
38555 PHKT(5,1) =SQRT(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
38556 *PHKT(1,1)**2)
38557 ELSE
38558C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38559 PHKT(5,1)=0.D0
38560 ENDIF
38561 VHKT(1,1) =VHKK(1,NC1P)
38562 VHKT(2,1) =VHKK(2,NC1P)
38563 VHKT(3,1) =VHKK(3,NC1P)
38564 VHKT(4,1) =VHKK(4,NC1P)
38565 WHKT(1,1) =WHKK(1,NC1P)
38566 WHKT(2,1) =WHKK(2,NC1P)
38567 WHKT(3,1) =WHKK(3,NC1P)
38568 WHKT(4,1) =WHKK(4,NC1P)
38569C Add here IIGLU1 gluons to this chaina
38570 PG1=0.D0
38571 PG2=0.D0
38572 PG3=0.D0
38573 PG4=0.D0
38574 IF(IIGLU1.GE.1)THEN
38575 JJG=NC1P
38576 DO 61 IIG=2,2+IIGLU1-1
38577 KKG=JJG+IIG-1
38578 IDHKT(IIG) =IDHKK(KKG)
38579 ISTHKT(IIG) =921
38580 JMOHKT(1,IIG)=KKG
38581 JMOHKT(2,IIG)=0
38582 JDAHKT(1,IIG)=3+IIGLU1
38583 JDAHKT(2,IIG)=0
38584 PHKT(1,IIG)=PHKK(1,KKG)
38585 PG1=PG1+ PHKT(1,IIG)
38586 PHKT(2,IIG)=PHKK(2,KKG)
38587 PG2=PG2+ PHKT(2,IIG)
38588 PHKT(3,IIG)=PHKK(3,KKG)
38589 PG3=PG3+ PHKT(3,IIG)
38590 PHKT(4,IIG)=PHKK(4,KKG)
38591 PG4=PG4+ PHKT(4,IIG)
38592 PHKT(5,IIG)=PHKK(5,KKG)
38593 VHKT(1,IIG) =VHKK(1,KKG)
38594 VHKT(2,IIG) =VHKK(2,KKG)
38595 VHKT(3,IIG) =VHKK(3,KKG)
38596 VHKT(4,IIG) =VHKK(4,KKG)
38597 WHKT(1,IIG) =WHKK(1,KKG)
38598 WHKT(2,IIG) =WHKK(2,KKG)
38599 WHKT(3,IIG) =WHKK(3,KKG)
38600 WHKT(4,IIG) =WHKK(4,KKG)
38601 61 CONTINUE
38602 ENDIF
38603 IDHKT(2+IIGLU1) =IPP2
38604 ISTHKT(2+IIGLU1) =932
38605 JMOHKT(1,2+IIGLU1)=NC2T
38606 JMOHKT(2,2+IIGLU1)=0
38607 JDAHKT(1,2+IIGLU1)=3+IIGLU1
38608 JDAHKT(2,2+IIGLU1)=0
38609 PHKT(1,2+IIGLU1) =PHKK(1,NC2T)
38610 PHKT(2,2+IIGLU1) =PHKK(2,NC2T)
38611 PHKT(3,2+IIGLU1) =PHKK(3,NC2T)
38612 PHKT(4,2+IIGLU1) =PHKK(4,NC2T)
38613C PHKT(5,2+IIGLU1) =PHKK(5,NC2T)
38614 XMIST=(PHKT(4,2+IIGLU1)**2-
38615 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
38616 *PHKT(1,2+IIGLU1)**2)
38617 IF(XMIST.GT.0.D0)THEN
38618 PHKT(5,2+IIGLU1) =SQRT(PHKT(4,2+IIGLU1)**2-
38619 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
38620 *PHKT(1,2+IIGLU1)**2)
38621 ELSE
38622C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38623 PHKT(5,2+IIGLU1)=0.D0
38624 ENDIF
38625 VHKT(1,2+IIGLU1) =VHKK(1,NC2T)
38626 VHKT(2,2+IIGLU1) =VHKK(2,NC2T)
38627 VHKT(3,2+IIGLU1) =VHKK(3,NC2T)
38628 VHKT(4,2+IIGLU1) =VHKK(4,NC2T)
38629 WHKT(1,2+IIGLU1) =WHKK(1,NC2T)
38630 WHKT(2,2+IIGLU1) =WHKK(2,NC2T)
38631 WHKT(3,2+IIGLU1) =WHKK(3,NC2T)
38632 WHKT(4,2+IIGLU1) =WHKK(4,NC2T)
38633 IDHKT(3+IIGLU1) =88888
38634 ISTHKT(3+IIGLU1) =94
38635 JMOHKT(1,3+IIGLU1)=1
38636 JMOHKT(2,3+IIGLU1)=2+IIGLU1
38637 JDAHKT(1,3+IIGLU1)=0
38638 JDAHKT(2,3+IIGLU1)=0
38639 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
38640 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
38641 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
38642 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
38643 XMIST
38644 * =(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
38645 * -PHKT(3,3+IIGLU1)**2)
38646 IF(XMIST.GE.0.D0)THEN
38647 PHKT(5,3+IIGLU1)
38648 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
38649 * -PHKT(3,3+IIGLU1)**2)
38650 ELSE
38651C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38652 PHKT(5,1)=0.D0
38653 ENDIF
38654 IF(IPIP.GE.3)THEN
38655C IF(NUMEV.EQ.-324)THEN
38656 WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),
38657 * JMOHKT(2,1),JDAHKT(1,1),
38658 *JDAHKT(2,1),(PHKT(III,1),III=1,5)
38659 DO 71 IIG=2,2+IIGLU1-1
38660 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38661 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38662 * JDAHKT(1,IIG),
38663 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38664 71 CONTINUE
38665 WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),IDHKT(2+IIGLU1),
38666 * JMOHKT(1,2+IIGLU1),JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
38667 *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
38668 WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
38669 * JMOHKT(1,3+IIGLU1),JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
38670 *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
38671 ENDIF
38672 CHAMAL=CHAM1
38673 IF(IPIP.EQ.1)THEN
38674 IF(IP11.GE.3.OR.IPP2.GE.3)CHAMAL=CHAM3
38675 ELSEIF(IPIP.EQ.2)THEN
38676 IF(IP11.LE.-3.OR.IPP2.LE.-3)CHAMAL=CHAM3
38677 ENDIF
38678 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
38679C IREJ=1
38680 IPCO=0
38681C RETURN
38682C WRITE(6,*)' MUSQBS1 jump back from chain 3'
38683 GO TO 3466
38684 ENDIF
38685 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
38686 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
38687 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
38688 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
38689 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
38690 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
38691 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
38692 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
38693 IDHKT(4+IIGLU1) =IP12
38694 ISTHKT(4+IIGLU1) =931
38695 JMOHKT(1,4+IIGLU1)=NC1P
38696 JMOHKT(2,4+IIGLU1)=0
38697 JDAHKT(1,4+IIGLU1)=6+IIGLU1
38698 JDAHKT(2,4+IIGLU1)=0
38699C create chain 6 valence quark(vq2P 4)-sea-quark(aqsT 5)
38700 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XVPQII/(XDIQP+XSQ1)
38701 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XVPQII/(XDIQP+XSQ1)
38702 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XVPQII/(XDIQP+XSQ1)
38703 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XVPQII/(XDIQP+XSQ1)
38704C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
38705 XMIST =(PHKT(4,4+IIGLU1)**2-
38706 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
38707 *PHKT(1,4+IIGLU1)**2)
38708 IF(XMIST.GT.0.D0)THEN
38709 PHKT(5,4+IIGLU1) =SQRT(PHKT(4,4+IIGLU1)**2-
38710 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
38711 *PHKT(1,4+IIGLU1)**2)
38712 ELSE
38713C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38714 PHKT(5,4+IIGLU1)=0.D0
38715 ENDIF
38716 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
38717 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
38718 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
38719 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
38720 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
38721 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
38722 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
38723 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
38724 IF(IPIP.EQ.1)THEN
38725 IDHKT(5+IIGLU1) =-(ISAQ1-6)
38726 ELSEIF(IPIP.EQ.2)THEN
38727 IDHKT(5+IIGLU1) =ISAQ1
38728 ENDIF
38729 ISTHKT(5+IIGLU1) =932
38730 JMOHKT(1,5+IIGLU1)=NC1T
38731 JMOHKT(2,5+IIGLU1)=0
38732 JDAHKT(1,5+IIGLU1)=6+IIGLU1
38733 JDAHKT(2,5+IIGLU1)=0
38734 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XSAQ1/(XVQT+XSAQ1)
38735 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XSAQ1/(XVQT+XSAQ1)
38736 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XSAQ1/(XVQT+XSAQ1)
38737 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XSAQ1/(XVQT+XSAQ1)
38738C IF( PHKT(4,5).EQ.0.D0)THEN
38739C IREJ=1
38740CIPCO=0
38741CRETURN
38742C ENDIF
38743C PHKT(5,5) =PHKK(5,NC1T)
38744 XMIST=(PHKT(4,5+IIGLU1)**2-
38745 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
38746 *PHKT(1,5+IIGLU1)**2)
38747 IF(XMIST.GT.0.D0)THEN
38748 PHKT(5,5+IIGLU1) =SQRT(PHKT(4,5+IIGLU1)**2-
38749 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
38750 *PHKT(1,5+IIGLU1)**2)
38751 ELSE
38752C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38753 PHKT(5,5+IIGLU1)=0.D0
38754 ENDIF
38755 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
38756 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
38757 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
38758 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
38759 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
38760 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
38761 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
38762 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
38763 IDHKT(6+IIGLU1) =88888
38764 ISTHKT(6+IIGLU1) =94
38765 JMOHKT(1,6+IIGLU1)=4+IIGLU1
38766 JMOHKT(2,6+IIGLU1)=5+IIGLU1
38767 JDAHKT(1,6+IIGLU1)=0
38768 JDAHKT(2,6+IIGLU1)=0
38769 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
38770 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
38771 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
38772 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
38773 XMIST
38774 * =(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
38775 * -PHKT(3,6+IIGLU1)**2)
38776 IF(XMIST.GE.0.D0)THEN
38777 PHKT(5,6+IIGLU1)
38778 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
38779 * -PHKT(3,6+IIGLU1)**2)
38780 ELSE
38781C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38782 PHKT(5,1)=0.D0
38783 ENDIF
38784C IF(IPIP.EQ.3)THEN
38785 CHAMAL=CHAM1
38786 IF(IPIP.EQ.1)THEN
38787 IF(IP12.GE.3.OR.ISAQ1.GE.9)CHAMAL=CHAM3
38788 ELSEIF(IPIP.EQ.2)THEN
38789 IF(IP12.LE.-3.OR.ISAQ1.GE.3)CHAMAL=CHAM3
38790 ENDIF
38791 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
38792C IREJ=1
38793 IPCO=0
38794C RETURN
38795C WRITE(6,*)' MGSQBS1 jump back from chain 6',
38796C * CHAMAL,PHKT(5,6+IIGLU1)
38797 GO TO 3466
38798 ENDIF
38799 IF(IPIP.GE.3)THEN
38800C IF(NUMEV.EQ.-324)THEN
38801 WRITE(LOUT,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
38802 * JMOHKT(1,4+IIGLU1),JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
38803 *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
38804 WRITE(LOUT,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
38805 * JMOHKT(1,5+IIGLU1),JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
38806 *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
38807 WRITE(LOUT,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
38808 * JMOHKT(1,6+IIGLU1),JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
38809 *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
38810 ENDIF
38811 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
38812 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
38813 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
38814 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
38815 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
38816 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
38817 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
38818 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
38819 IF(IPIP.EQ.1)THEN
38820 IDHKT(7+IIGLU1) =1000*IPP1+100*ISQ+3
38821 IF(IDHKT(7+IIGLU1).EQ.1203)IDHKT(7+IIGLU1)=2103
38822 IF(IDHKT(7+IIGLU1).EQ.1303)IDHKT(7+IIGLU1)=3103
38823 IF(IDHKT(7+IIGLU1).EQ.2303)IDHKT(7+IIGLU1)=3203
38824 ELSEIF(IPIP.EQ.2)THEN
38825 IDHKT(7+IIGLU1) =1000*IPP1+100*(-ISQ1+6)-3
38826 IF(IDHKT(7+IIGLU1).EQ.-1203)IDHKT(7+IIGLU1)=-2103
38827 IF(IDHKT(7+IIGLU1).EQ.-1303)IDHKT(7+IIGLU1)=-3103
38828 IF(IDHKT(7+IIGLU1).EQ.-2303)IDHKT(7+IIGLU1)=-3203
38829C WRITE(6,*)'IDHKT(7+IIGLU1),IPP1,ISQ1',IDHKT(7+IIGLU1),IPP1,ISQ1
38830 ENDIF
38831 ISTHKT(7+IIGLU1) =931
38832 JMOHKT(1,7+IIGLU1)=NC2P
38833 JMOHKT(2,7+IIGLU1)=0
38834 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
38835 JDAHKT(2,7+IIGLU1)=0
38836C create chain 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
38837 PHKT(1,7+IIGLU1) =PHKK(1,NC2P)+PHKK(1,NC1P)*XSQ1/(XDIQP+XSQ1)
38838 PHKT(2,7+IIGLU1) =PHKK(2,NC2P)+PHKK(2,NC1P)*XSQ1/(XDIQP+XSQ1)
38839 PHKT(3,7+IIGLU1) =PHKK(3,NC2P)+PHKK(3,NC1P)*XSQ1/(XDIQP+XSQ1)
38840 PHKT(4,7+IIGLU1) =PHKK(4,NC2P)+PHKK(4,NC1P)*XSQ1/(XDIQP+XSQ1)
38841C WRITE(6,*)'PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)',
38842C * PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)
38843 IF(PHKT(4,7+IIGLU1).GE. PHKK(4,NC1P))THEN
38844C IREJ=1
38845C WRITE(6,*)'reject PHKT(4,7+IIGLU1).GE. PHKK(4,NC1P)'
38846 IPCO=0
38847C RETURN
38848 GO TO 3466
38849 ENDIF
38850C PHKT(5,7) =PHKK(5,NC2P)
38851 PHKT(5,7+IIGLU1) =SQRT(PHKT(4,7+IIGLU1)**2-
38852 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
38853 *PHKT(1,7+IIGLU1)**2)
38854 VHKT(1,7+IIGLU1) =VHKK(1,NC2P)
38855 VHKT(2,7+IIGLU1) =VHKK(2,NC2P)
38856 VHKT(3,7+IIGLU1) =VHKK(3,NC2P)
38857 VHKT(4,7+IIGLU1) =VHKK(4,NC2P)
38858 WHKT(1,7+IIGLU1) =WHKK(1,NC2P)
38859 WHKT(2,7+IIGLU1) =WHKK(2,NC2P)
38860 WHKT(3,7+IIGLU1) =WHKK(3,NC2P)
38861 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
38862C Insert here the IIGLU2 gluons
38863 PG1=0.D0
38864 PG2=0.D0
38865 PG3=0.D0
38866 PG4=0.D0
38867 IF(IIGLU2.GE.1)THEN
38868 JJG=NC2P
38869 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38870 KKG=JJG+IIG-7-IIGLU1
38871 IDHKT(IIG) =IDHKK(KKG)
38872 ISTHKT(IIG) =921
38873 JMOHKT(1,IIG)=KKG
38874 JMOHKT(2,IIG)=0
38875 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
38876 JDAHKT(2,IIG)=0
38877 PHKT(1,IIG)=PHKK(1,KKG)
38878 PG1=PG1+ PHKT(1,IIG)
38879 PHKT(2,IIG)=PHKK(2,KKG)
38880 PG2=PG2+ PHKT(2,IIG)
38881 PHKT(3,IIG)=PHKK(3,KKG)
38882 PG3=PG3+ PHKT(3,IIG)
38883 PHKT(4,IIG)=PHKK(4,KKG)
38884 PG4=PG4+ PHKT(4,IIG)
38885 PHKT(5,IIG)=PHKK(5,KKG)
38886 VHKT(1,IIG) =VHKK(1,KKG)
38887 VHKT(2,IIG) =VHKK(2,KKG)
38888 VHKT(3,IIG) =VHKK(3,KKG)
38889 VHKT(4,IIG) =VHKK(4,KKG)
38890 WHKT(1,IIG) =WHKK(1,KKG)
38891 WHKT(2,IIG) =WHKK(2,KKG)
38892 WHKT(3,IIG) =WHKK(3,KKG)
38893 WHKT(4,IIG) =WHKK(4,KKG)
38894 81 CONTINUE
38895 ENDIF
38896 IDHKT(8+IIGLU1+IIGLU2) =IP2
38897 ISTHKT(8+IIGLU1+IIGLU2) =932
38898 JMOHKT(1,8+IIGLU1+IIGLU2)=NC1T
38899 JMOHKT(2,8+IIGLU1+IIGLU2)=0
38900 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
38901 JDAHKT(2,8+IIGLU1+IIGLU2)=0
38902 PHKT(1,8+IIGLU1+IIGLU2) =PHKK(1,NC1T)*XVQT/(XSAQ1+XVQT)
38903 PHKT(2,8+IIGLU1+IIGLU2) =PHKK(2,NC1T)*XVQT/(XSAQ1+XVQT)
38904 PHKT(3,8+IIGLU1+IIGLU2) =PHKK(3,NC1T)*XVQT/(XSAQ1+XVQT)
38905 PHKT(4,8+IIGLU1+IIGLU2) =PHKK(4,NC1T)*XVQT/(XSAQ1+XVQT)
38906C PHKT(5,8+IIGLU1+IIGLU2) =PHKK(5,NC1T)
38907 XMIST=(PHKT(4,8+IIGLU1+IIGLU2)**2-
38908 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
38909 *PHKT(1,8+IIGLU1+IIGLU2)**2)
38910 IF(XMIST.GT.0.D0)THEN
38911 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
38912 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
38913 *PHKT(1,8+IIGLU1+IIGLU2)**2)
38914 ELSE
38915C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
38916 PHKT(5,8+IIGLU1+IIGLU2)=0.D0
38917 ENDIF
38918 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC1T)
38919 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC1T)
38920 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC1T)
38921 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC1T)
38922 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC1T)
38923 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC1T)
38924 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC1T)
38925 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC1T)
38926 IDHKT(9+IIGLU1+IIGLU2) =88888
38927 ISTHKT(9+IIGLU1+IIGLU2) =94
38928 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
38929 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
38930 JDAHKT(1,9+IIGLU1+IIGLU2)=0
38931 JDAHKT(2,9+IIGLU1+IIGLU2)=0
38932 PHKT(1,9+IIGLU1+IIGLU2)
38933 * =PHKT(1,7+IIGLU1)+PHKT(1,8+IIGLU1+IIGLU2)+PG1
38934 PHKT(2,9+IIGLU1+IIGLU2)
38935 * =PHKT(2,7+IIGLU1)+PHKT(2,8+IIGLU1+IIGLU2)+PG2
38936 PHKT(3,9+IIGLU1+IIGLU2)
38937 * =PHKT(3,7+IIGLU1)+PHKT(3,8+IIGLU1+IIGLU2)+PG3
38938 PHKT(4,9+IIGLU1+IIGLU2)
38939 * =PHKT(4,7+IIGLU1)+PHKT(4,8+IIGLU1+IIGLU2)+PG4
38940 XMIST
38941 *=(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
38942 * -PHKT(2,9+IIGLU1+IIGLU2)**2
38943 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
38944 IF(XMIST.GE.0.D0)THEN
38945 PHKT(5,9+IIGLU1+IIGLU2)
38946 *=SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2
38947 * -PHKT(2,9+IIGLU1+IIGLU2)**2
38948 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
38949 ELSE
38950C WRITE(6,*)'MUSQBS1 parton 1 mass square LT.0 ',XMIST
38951 PHKT(5,1)=0.D0
38952 ENDIF
38953 IF(IPIP.GE.3)THEN
38954C IF(NUMEV.EQ.-324)THEN
38955 WRITE(LOUT,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
38956 * JMOHKT(1,7+IIGLU1),JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
38957 *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
38958 DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
38959 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
38960 & JMOHKT(1,IIG),JMOHKT(2,IIG),
38961 * JDAHKT(1,IIG),
38962 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
38963 91 CONTINUE
38964 WRITE(LOUT,*)8+IIGLU1+IIGLU2,
38965 * ISTHKT(8+IIGLU1+IIGLU2),IDHKT(8+IIGLU1+IIGLU2),
38966 * JMOHKT(1,8+IIGLU1+IIGLU2),JMOHKT(2,8+IIGLU1+IIGLU2),
38967 *JDAHKT(1,8+IIGLU1+IIGLU2),
38968 *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
38969 WRITE(LOUT,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
38970 * IDHKT(9+IIGLU1+IIGLU2),JMOHKT(1,9+IIGLU1+IIGLU2),
38971 *JMOHKT(2,9+IIGLU1+IIGLU2),JDAHKT(1,9+IIGLU1+IIGLU2),
38972 *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
38973 ENDIF
38974 CHAMAL=CHAB1
38975 IF(IPIP.EQ.1)THEN
38976 IF(IP2.GE.3.OR.IPP1.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
38977 ELSEIF(IPIP.EQ.2)THEN
38978 IF(IP2.LE.-3.OR.IPP1.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
38979 ENDIF
38980 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
38981C IREJ=1
38982 IPCO=0
38983C RETURN
38984C WRITE(6,*)' MGSQBS1 jump back from chain 9',
38985C * 'CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)',CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)
38986 GO TO 3466
38987 ENDIF
38988 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
38989 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
38990 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
38991 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
38992 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
38993 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
38994 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
38995 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
38996C
38997 IPCO=0
38998 IGCOUN=9+IIGLU1+IIGLU2
38999 RETURN
39000 END
39001
39002*$ CREATE MGSQBS1.FOR
39003*COPY MGSQBS1
39004C
39005C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
39006 SUBROUTINE MGSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
39007 * IP11,IP12,IP2,IPP1,IPP21,IPP22,IPIP,ISQ,IGCOUN)
39008C
39009C GSQBS-1 diagram (split projectile diquark)
39010C
39011 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
39012 SAVE
39013
39014 PARAMETER ( LINP = 10 ,
39015 & LOUT = 6 ,
39016 & LDAT = 9 )
39017* event history
39018 PARAMETER (NMXHKK=200000)
39019 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
39020 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
39021 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
39022* extended event history
39023 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
39024 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
39025 & IHIST(2,NMXHKK)
39026* Lorentz-parameters of the current interaction
39027 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
39028 & UMO,PPCM,EPROJ,PPROJ
39029* diquark-breaking mechanism
39030 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
39031
39032C
39033 PARAMETER (NTMHKK= 300)
39034 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
39035 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
39036 +(4,NTMHKK)
39037*KEEP,XSEADI.
39038 COMMON /XSEADI/ XSEACU,UNON,UNOM,UNOSEA,CVQ,CDQ,CSEA,SSMIMA,
39039 +SSMIMQ,VVMTHR
39040*KEEP,DPRIN.
39041 COMMON /DPRIN/ IPRI,IPEV,IPPA,IPCO,INIT,IPHKK,ITOPD,IPAUPR
39042C
39043C GSQBS-1 diagram (split projectile diquark)
39044C
39045C
39046C Input chain 1(NC1) valence-diquark(NC1P)-valence-quark(NC1T)
39047C Input chain 2(NC2) sea-quark(NC2P)-valence-diquark(NC2T)
39048C
39049C Create quark(qs)-antiquark(aqs) pair energy from NC1P and NC1T
39050C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
39051C
39052C Create chains 3 valence quark(vq1P 1)-valence diquark(NC2T 2)
39053C 6 valence quark(vq2P 4)-sea-quark(aqsP 5)
39054C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
39055C
39056C Put new chains into COMMON /HKKTMP/
39057C
39058 IIGLU1=NC1T-NC1P-1
39059 IIGLU2=NC2T-NC2P-1
39060 IGCOUN=0
39061C WRITE(6,*)' IIGLU1,IIGLU2 ',IIGLU1,IIGLU2
39062 CVQ=1.D0
39063 NNNC1=IDHKK(NC1)/1000
39064 MMMC1=IDHKK(NC1)-NNNC1*1000
39065 KKKC1=ISTHKK(NC1)
39066 NNNC2=IDHKK(NC2)/1000
39067 MMMC2=IDHKK(NC2)-NNNC2*1000
39068 KKKC2=ISTHKK(NC2)
39069 IREJ=0
39070 IF(IPIP.EQ.3)THEN
39071 WRITE(LOUT,*)' MGSQBS1(NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,',
39072 * ' IP11,IP12,IP2,IPP1,IPP21,IPP22,IPIP,IGCOUN)',
39073 *NC1,NC1P,NC1T,NC2,NC2P,NC2T,IREJ,
39074 * IP11,IP12,IP2,IPP1,IPP21,IPP22,IPIP,IGCOUN
39075 ENDIF
39076C
39077C
39078C
39079C determine x-values of NC1P diquark
39080 XDIQP=PHKK(4,NC1P)*2.D0/UMO
39081 XVQT=PHKK(4,NC1T)*2.D0/UMO
39082C
39083C determine x-values of sea quark pair
39084C
39085 IPCO=1
39086 ICOU=0
39087 2234 CONTINUE
39088 ICOU=ICOU+1
39089 IF(ICOU.GE.500)THEN
39090 IREJ=1
39091 IF(ISQ.EQ.3)IREJ=3
39092 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS1 Rejection 2234 ICOU. GT.100'
39093 IPCO=0
39094 RETURN
39095 ENDIF
39096 IF(IPCO.GE.3)WRITE(LOUT,*)'MGSQBS1 call XSEAPA: UMO,XDIQP,XVQT ',
39097 * UMO, XDIQP,XVQT
39098 XSQ=0.D0
39099 XSAQ=0.D0
39100**NEW
39101C CALL XSEAPA(UMO,XDIQP/2.D0,ISQ,ISAQ,XSQ,XSAQ,IREJ)
39102 IF (IPIP.EQ.1) THEN
39103 XQMAX = XDIQP/2.0D0
39104 XAQMAX = 2.D0*XVQT/3.0D0
39105 ELSE
39106 XQMAX = 2.D0*XVQT/3.0D0
39107 XAQMAX = XDIQP/2.0D0
39108 ENDIF
39109 CALL DT_CQPAIR(XQMAX,XAQMAX,XSQ,XSAQ,ISQ,IREJ)
39110 ISAQ = 6+ISQ
39111C write(*,*) 'MGSQBS1: ',ISQ,XSQ,XDIQP,XSAQ,XVQT
39112**
39113 IF(IPCO.GE.3)
39114 & WRITE(LOUT,*)'MGSQBS1 after XSEAPA',ISQ,ISAQ,XSQ,XSAQ
39115 IF(IREJ.GE.1)THEN
39116 IF(IPCO.GE.3)
39117 & WRITE(LOUT,*)'MGSQBS1 reject XSEAPA',ISQ,ISAQ,XSQ,XSAQ
39118 IPCO=0
39119 RETURN
39120 ENDIF
39121 IF(IPIP.EQ.1)THEN
39122 IF(XSAQ.GE.2.D0*XVQT/3.D0)GO TO 2234
39123 ELSEIF(IPIP.EQ.2)THEN
39124 IF(XSQ.GE.2.D0*XVQT/3.D0)GO TO 2234
39125 ENDIF
39126 IF(IPCO.GE.3)THEN
39127 WRITE(LOUT,'(A,4E12.4)')' MGSQBS1 XDIQP,XVQT,XSQ,XSAQ ',
39128 * XDIQP,XVQT,XSQ,XSAQ
39129 ENDIF
39130C
39131C subtract xsq,xsaq from NC1P diquark and NC1T quark
39132C
39133C XSQ=0.D0
39134 IF(IPIP.EQ.1)THEN
39135 XDIQP=XDIQP-XSQ
39136**NEW
39137C IF (XDIQP.LT.0.0D0) WRITE(*,*) ' mgsqbs1: XDIQP<0!!',XDIQP
39138**
39139 XVQT =XVQT -XSAQ
39140 ELSEIF(IPIP.EQ.2)THEN
39141 XDIQP=XDIQP-XSAQ
39142 XVQT =XVQT -XSQ
39143 ENDIF
39144 IF(IPCO.GE.3)
39145 & WRITE(LOUT,*)'XDIQP,XVQT after subtraction',XDIQP,XVQT
39146C
39147C Split remaining valence diquark(NC1P) into quarks vq1P and vq2P
39148C
39149 XVTHRO=CVQ/UMO
39150 IVTHR=0
39151 3466 CONTINUE
39152 IF(IVTHR.EQ.10)THEN
39153 IREJ=1
39154 IF(ISQ.EQ.3)IREJ=3
39155 IF(IPCO.GE.3)WRITE(LOUT,*)' MGSQBS1 3466 reject IVTHR 10'
39156 IPCO=0
39157 RETURN
39158 ENDIF
39159 IVTHR=IVTHR+1
39160 XVTHR=XVTHRO/(201-IVTHR)
39161 UNOPRV=UNON
39162 380 CONTINUE
39163 IF(XVTHR.GT.0.66D0*XDIQP)THEN
39164 IREJ=1
39165 IF(ISQ.EQ.3)IREJ=3
39166 IF(IPCO.GE.3)
39167 & WRITE(LOUT,*)' MGSQBS1 Rejection 380 XVTHR large ',
39168 * XVTHR
39169 IPCO=0
39170 RETURN
39171 ENDIF
39172 IF(DT_RNDM(V).LT.0.5D0)THEN
39173 XVPQI=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
39174 XVPQII=XDIQP-XVPQI
39175 ELSE
39176 XVPQII=DT_SAMPEX(XVTHR,0.66D0*XDIQP)
39177 XVPQI=XDIQP-XVPQII
39178 ENDIF
39179 IF(IPCO.GE.3)THEN
39180 WRITE(LOUT,'(A,4E12.4)')' MGSQBS1:XVTHR,XDIQP,XVPQI,XVPQII ',
39181 * XVTHR,XDIQP,XVPQI,XVPQII
39182 ENDIF
39183C
39184C Prepare 4 momenta of new chains and chain ends
39185C
39186C COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
39187C +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
39188C +(4,NTMHKK)
39189C Create chains 3 valence quark(vq1P 1)-valence diquark(NC2T 2)
39190C 6 valence quark(vq2P 4)-sea-quark(aqsP 5)
39191C 9 diquark(qsP+NC2P 7)-valence quark(NC1T 8)
39192 IF(IPIP.EQ.1)THEN
39193 XSQ1=XSQ
39194 XSAQ1=XSAQ
39195 ISQ1=ISQ
39196 ISAQ1=ISAQ
39197 ELSEIF(IPIP.EQ.2)THEN
39198 XSQ1=XSAQ
39199 XSAQ1=XSQ
39200 ISQ1=ISAQ
39201 ISAQ1=ISQ
39202 ENDIF
39203 KK11=IP11
39204C IDHKT(2) =1000*IPP21+100*IPP22+1
39205 KK21= IPP21
39206 KK22= IPP22
39207 XGIVE=0.D0
39208 IDHKT(4+IIGLU1) =IP12
39209 ISTHKT(4+IIGLU1) =921
39210 JMOHKT(1,4+IIGLU1)=NC1P
39211 JMOHKT(2,4+IIGLU1)=0
39212 JDAHKT(1,4+IIGLU1)=6+IIGLU1
39213 JDAHKT(2,4+IIGLU1)=0
39214**NEW
39215 IF ((XDIQP.LT.0.0D0).OR.(XVPQII.LT.0.0D0).OR.
39216 & (XSQ1.LT.0.0D0)) WRITE(LOUT,*) ' mgsqbs1: ',XDIQP,XVPQII,XSQ1
39217**
39218 PHKT(1,4+IIGLU1) =PHKK(1,NC1P)*XVPQII/(XDIQP+XSQ1)
39219 PHKT(2,4+IIGLU1) =PHKK(2,NC1P)*XVPQII/(XDIQP+XSQ1)
39220 PHKT(3,4+IIGLU1) =PHKK(3,NC1P)*XVPQII/(XDIQP+XSQ1)
39221 PHKT(4,4+IIGLU1) =PHKK(4,NC1P)*XVPQII/(XDIQP+XSQ1)
39222C PHKT(5,4+IIGLU1) =PHKK(5,NC1P)
39223 XXMIST=(PHKT(4,4+IIGLU1)**2-
39224 * PHKT(3,4+IIGLU1)**2-PHKT(2,4+IIGLU1)**2-
39225 * PHKT(1,4+IIGLU1)**2)
39226 IF(XXMIST.GT.0.D0)THEN
39227 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
39228 ELSE
39229 WRITE(LOUT,*)'MGSQBS1 XXMIST',XXMIST
39230 XXMIST=ABS(XXMIST)
39231 PHKT(5,4+IIGLU1) =SQRT(XXMIST)
39232 ENDIF
39233 VHKT(1,4+IIGLU1) =VHKK(1,NC1P)
39234 VHKT(2,4+IIGLU1) =VHKK(2,NC1P)
39235 VHKT(3,4+IIGLU1) =VHKK(3,NC1P)
39236 VHKT(4,4+IIGLU1) =VHKK(4,NC1P)
39237 WHKT(1,4+IIGLU1) =WHKK(1,NC1P)
39238 WHKT(2,4+IIGLU1) =WHKK(2,NC1P)
39239 WHKT(3,4+IIGLU1) =WHKK(3,NC1P)
39240 WHKT(4,4+IIGLU1) =WHKK(4,NC1P)
39241 IF(IPIP.EQ.1)THEN
39242 IDHKT(5+IIGLU1) =-(ISAQ1-6)
39243 ELSEIF(IPIP.EQ.2)THEN
39244 IDHKT(5+IIGLU1) =ISAQ1
39245 ENDIF
39246 ISTHKT(5+IIGLU1) =922
39247 JMOHKT(1,5+IIGLU1)=NC1T
39248 JMOHKT(2,5+IIGLU1)=0
39249 JDAHKT(1,5+IIGLU1)=6+IIGLU1
39250 JDAHKT(2,5+IIGLU1)=0
39251**NEW
39252 IF ((XSAQ1.LT.0.0D0).OR.(XVQT .LT.0.0D0))
39253 & WRITE(LOUT,*) ' mgsqbs2: ',XSAQ1,XVQT
39254**
39255 PHKT(1,5+IIGLU1) =PHKK(1,NC1T)*XSAQ1/(XVQT+XSAQ1)
39256 PHKT(2,5+IIGLU1) =PHKK(2,NC1T)*XSAQ1/(XVQT+XSAQ1)
39257 PHKT(3,5+IIGLU1) =PHKK(3,NC1T)*XSAQ1/(XVQT+XSAQ1)
39258 PHKT(4,5+IIGLU1) =PHKK(4,NC1T)*XSAQ1/(XVQT+XSAQ1)
39259C PHKT(5,5+IIGLU1) =PHKK(5,NC1T)
39260 XMIST=(PHKT(4,5+IIGLU1)**2-
39261 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
39262 *PHKT(1,5+IIGLU1)**2)
39263 IF(XMIST.GT.0.D0)THEN
39264 PHKT(5,5+IIGLU1) =SQRT(PHKT(4,5+IIGLU1)**2-
39265 * PHKT(3,5+IIGLU1)**2-PHKT(2,5+IIGLU1)**2-
39266 *PHKT(1,5+IIGLU1)**2)
39267 ELSE
39268C WRITE(6,*)' parton 4 mass square LT.0 ',XMIST
39269 PHKT(5,5+IIGLU1)=0.D0
39270 ENDIF
39271 VHKT(1,5+IIGLU1) =VHKK(1,NC1T)
39272 VHKT(2,5+IIGLU1) =VHKK(2,NC1T)
39273 VHKT(3,5+IIGLU1) =VHKK(3,NC1T)
39274 VHKT(4,5+IIGLU1) =VHKK(4,NC1T)
39275 WHKT(1,5+IIGLU1) =WHKK(1,NC1T)
39276 WHKT(2,5+IIGLU1) =WHKK(2,NC1T)
39277 WHKT(3,5+IIGLU1) =WHKK(3,NC1T)
39278 WHKT(4,5+IIGLU1) =WHKK(4,NC1T)
39279 IDHKT(6+IIGLU1) =88888
39280C IDHKT(6) =1000*NNNC1+MMMC1
39281 ISTHKT(6+IIGLU1) =93
39282C ISTHKT(6) =KKKC1
39283 JMOHKT(1,6+IIGLU1)=4+IIGLU1
39284 JMOHKT(2,6+IIGLU1)=5+IIGLU1
39285 JDAHKT(1,6+IIGLU1)=0
39286 JDAHKT(2,6+IIGLU1)=0
39287 PHKT(1,6+IIGLU1) =PHKT(1,4+IIGLU1)+PHKT(1,5+IIGLU1)
39288 PHKT(2,6+IIGLU1) =PHKT(2,4+IIGLU1)+PHKT(2,5+IIGLU1)
39289 PHKT(3,6+IIGLU1) =PHKT(3,4+IIGLU1)+PHKT(3,5+IIGLU1)
39290 PHKT(4,6+IIGLU1) =PHKT(4,4+IIGLU1)+PHKT(4,5+IIGLU1)
39291 PHKT(5,6+IIGLU1)
39292 * =SQRT(PHKT(4,6+IIGLU1)**2-PHKT(1,6+IIGLU1)**2-PHKT(2,6+IIGLU1)**2
39293 * -PHKT(3,6+IIGLU1)**2)
39294 CHAMAL=CHAM1
39295 IF(IPIP.EQ.1)THEN
39296 IF(IP12.GE.3.OR.ISAQ.GE.9)CHAMAL=CHAM3
39297 ELSEIF(IPIP.EQ.2)THEN
39298 IF(IP12.LE.-3.OR.ISAQ.GE.3)CHAMAL=CHAM3
39299 ENDIF
39300 IF(PHKT(5,6+IIGLU1).LT.CHAMAL)THEN
39301 IF(IDHKT(5+IIGLU1).EQ.-IDHKT(4+IIGLU1))THEN
39302C we drop chain 6 and give the energy to chain 3
39303 IDHKT(6+IIGLU1)=33888
39304 XGIVE=1.D0
39305C WRITE(6,*)' drop chain 6 xgive=1'
39306 GO TO 7788
39307 ELSEIF(IDHKT(5+IIGLU1).EQ.-IP11)THEN
39308C we drop chain 6 and give the energy to chain 3
39309C and change KK11 to IDHKT(4)
39310 IDHKT(6+IIGLU1)=33888
39311 XGIVE=1.D0
39312C WRITE(6,*)' drop chain 6 xgive=1 KK11=IDHKT(4+IIGLU1)'
39313 KK11=IDHKT(4+IIGLU1)
39314 GO TO 7788
39315 ELSEIF(IDHKT(5+IIGLU1).EQ.-IPP21)THEN
39316C we drop chain 6 and give the energy to chain 3
39317C and change KK21 to IDHKT(4)
39318C IDHKT(2) =1000*IPP21+100*IPP22+1
39319 IDHKT(6+IIGLU1)=33888
39320 XGIVE=1.D0
39321C WRITE(6,*)' drop chain 6 xgive=1 KK21=IDHKT(4+IIGLU1)'
39322 KK21=IDHKT(4+IIGLU1)
39323 GO TO 7788
39324 ELSEIF(IDHKT(5+IIGLU1).EQ.-IPP22)THEN
39325C we drop chain 6 and give the energy to chain 3
39326C and change KK22 to IDHKT(4)
39327C IDHKT(2) =1000*IPP21+100*IPP22+1
39328 IDHKT(6+IIGLU1)=33888
39329 XGIVE=1.D0
39330C WRITE(6,*)' drop chain 6 xgive=1 KK22=IDHKT(4+IIGLU1)'
39331 KK22=IDHKT(4+IIGLU1)
39332 GO TO 7788
39333 ENDIF
39334C IREJ=1
39335 IPCO=0
39336C RETURN
39337C WRITE(6,*)' MGSQBS1 jump back from chain 6'
39338 GO TO 3466
39339 ENDIF
39340 7788 CONTINUE
39341 IF(IPIP.GE.3)THEN
39342 WRITE(LOUT,*)4+IIGLU1,ISTHKT(4+IIGLU1),IDHKT(4+IIGLU1),
39343 * JMOHKT(1,4+IIGLU1),
39344 * JMOHKT(2,4+IIGLU1),JDAHKT(1,4+IIGLU1),
39345 *JDAHKT(2,4+IIGLU1),(PHKT(III,4+IIGLU1),III=1,5)
39346 WRITE(LOUT,*)5+IIGLU1,ISTHKT(5+IIGLU1),IDHKT(5+IIGLU1),
39347 * JMOHKT(1,5+IIGLU1),
39348 * JMOHKT(2,5+IIGLU1),JDAHKT(1,5+IIGLU1),
39349 *JDAHKT(2,5+IIGLU1),(PHKT(III,5+IIGLU1),III=1,5)
39350 WRITE(LOUT,*)6+IIGLU1,ISTHKT(6+IIGLU1),IDHKT(6+IIGLU1),
39351 * JMOHKT(1,6+IIGLU1),
39352 * JMOHKT(2,6+IIGLU1),JDAHKT(1,6+IIGLU1),
39353 *JDAHKT(2,6+IIGLU1),(PHKT(III,6+IIGLU1),III=1,5)
39354 ENDIF
39355 VHKT(1,6+IIGLU1) =VHKK(1,NC1)
39356 VHKT(2,6+IIGLU1) =VHKK(2,NC1)
39357 VHKT(3,6+IIGLU1) =VHKK(3,NC1)
39358 VHKT(4,6+IIGLU1) =VHKK(4,NC1)
39359 WHKT(1,6+IIGLU1) =WHKK(1,NC1)
39360 WHKT(2,6+IIGLU1) =WHKK(2,NC1)
39361 WHKT(3,6+IIGLU1) =WHKK(3,NC1)
39362 WHKT(4,6+IIGLU1) =WHKK(4,NC1)
39363C IDHKT(1) =IP11
39364 IDHKT(1) =KK11
39365 ISTHKT(1) =921
39366 JMOHKT(1,1)=NC1P
39367 JMOHKT(2,1)=0
39368 JDAHKT(1,1)=3+IIGLU1
39369 JDAHKT(2,1)=0
39370 PHKT(1,1) =PHKK(1,NC1P)*XVPQI/(XDIQP+XSQ1)
39371C * +0.5D0*PHKK(1,NC2P)
39372 *+XGIVE*PHKT(1,4+IIGLU1)
39373 PHKT(2,1) =PHKK(2,NC1P)*XVPQI/(XDIQP+XSQ1)
39374C * +0.5D0*PHKK(2,NC2P)
39375 *+XGIVE*PHKT(2,4+IIGLU1)
39376 PHKT(3,1) =PHKK(3,NC1P)*XVPQI/(XDIQP+XSQ1)
39377C * +0.5D0*PHKK(3,NC2P)
39378 *+XGIVE*PHKT(3,4+IIGLU1)
39379 PHKT(4,1) =PHKK(4,NC1P)*XVPQI/(XDIQP+XSQ1)
39380C * +0.5D0*PHKK(4,NC2P)
39381 *+XGIVE*PHKT(4,4+IIGLU1)
39382C PHKT(5,1) =PHKK(5,NC1P)
39383 XMIST =(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
39384 *PHKT(1,1)**2)
39385 IF(XMIST.GE.0.D0)THEN
39386 PHKT(5,1) =SQRT(PHKT(4,1)**2- PHKT(3,1)**2-PHKT(2,1)**2-
39387 *PHKT(1,1)**2)
39388 ELSE
39389C WRITE(6,*)'MGSQBS1 parton 1 mass square LT.0 ',XMIST
39390 PHKT(5,1)=0.D0
39391 ENDIF
39392 VHKT(1,1) =VHKK(1,NC1P)
39393 VHKT(2,1) =VHKK(2,NC1P)
39394 VHKT(3,1) =VHKK(3,NC1P)
39395 VHKT(4,1) =VHKK(4,NC1P)
39396 WHKT(1,1) =WHKK(1,NC1P)
39397 WHKT(2,1) =WHKK(2,NC1P)
39398 WHKT(3,1) =WHKK(3,NC1P)
39399 WHKT(4,1) =WHKK(4,NC1P)
39400C Add here IIGLU1 gluons to this chaina
39401 PG1=0.D0
39402 PG2=0.D0
39403 PG3=0.D0
39404 PG4=0.D0
39405 IF(IIGLU1.GE.1)THEN
39406 JJG=NC1P
39407 DO 61 IIG=2,2+IIGLU1-1
39408 KKG=JJG+IIG-1
39409 IDHKT(IIG) =IDHKK(KKG)
39410 ISTHKT(IIG) =921
39411 JMOHKT(1,IIG)=KKG
39412 JMOHKT(2,IIG)=0
39413 JDAHKT(1,IIG)=3+IIGLU1
39414 JDAHKT(2,IIG)=0
39415 PHKT(1,IIG)=PHKK(1,KKG)
39416 PG1=PG1+ PHKT(1,IIG)
39417 PHKT(2,IIG)=PHKK(2,KKG)
39418 PG2=PG2+ PHKT(2,IIG)
39419 PHKT(3,IIG)=PHKK(3,KKG)
39420 PG3=PG3+ PHKT(3,IIG)
39421 PHKT(4,IIG)=PHKK(4,KKG)
39422 PG4=PG4+ PHKT(4,IIG)
39423 PHKT(5,IIG)=PHKK(5,KKG)
39424 VHKT(1,IIG) =VHKK(1,KKG)
39425 VHKT(2,IIG) =VHKK(2,KKG)
39426 VHKT(3,IIG) =VHKK(3,KKG)
39427 VHKT(4,IIG) =VHKK(4,KKG)
39428 WHKT(1,IIG) =WHKK(1,KKG)
39429 WHKT(2,IIG) =WHKK(2,KKG)
39430 WHKT(3,IIG) =WHKK(3,KKG)
39431 WHKT(4,IIG) =WHKK(4,KKG)
39432 61 CONTINUE
39433 ENDIF
39434C IDHKT(2) =1000*IPP21+100*IPP22+1
39435 IF(IPIP.EQ.1)THEN
39436 IDHKT(2+IIGLU1) =1000*KK21+100*KK22+3
39437 IF(IDHKT(2+IIGLU1).EQ.1203)IDHKT(2+IIGLU1)=2103
39438 IF(IDHKT(2+IIGLU1).EQ.1303)IDHKT(2+IIGLU1)=3103
39439 IF(IDHKT(2+IIGLU1).EQ.2303)IDHKT(2+IIGLU1)=3203
39440 ELSEIF(IPIP.EQ.2)THEN
39441 IDHKT(2+IIGLU1) =1000*KK21+100*KK22-3
39442 IF(IDHKT(2+IIGLU1).EQ.-1203)IDHKT(2+IIGLU1)=-2103
39443 IF(IDHKT(2+IIGLU1).EQ.-1303)IDHKT(2+IIGLU1)=-3103
39444 IF(IDHKT(2+IIGLU1).EQ.-2303)IDHKT(2+IIGLU1)=-3203
39445 ENDIF
39446 ISTHKT(2+IIGLU1) =922
39447 JMOHKT(1,2+IIGLU1)=NC2T
39448 JMOHKT(2,2+IIGLU1)=0
39449 JDAHKT(1,2+IIGLU1)=3+IIGLU1
39450 JDAHKT(2,2+IIGLU1)=0
39451 PHKT(1,2+IIGLU1) =PHKK(1,NC2T)
39452 *+XGIVE*PHKT(1,5+IIGLU1)
39453 PHKT(2,2+IIGLU1) =PHKK(2,NC2T)
39454 *+XGIVE*PHKT(2,5+IIGLU1)
39455 PHKT(3,2+IIGLU1) =PHKK(3,NC2T)
39456 *+XGIVE*PHKT(3,5+IIGLU1)
39457 PHKT(4,2+IIGLU1) =PHKK(4,NC2T)
39458 *+XGIVE*PHKT(4,5+IIGLU1)
39459C PHKT(5,2) =PHKK(5,NC2T)
39460 XMIST=(PHKT(4,2+IIGLU1)**2-
39461 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
39462 *PHKT(1,2+IIGLU1)**2)
39463 IF(XMIST.GT.0.D0)THEN
39464 PHKT(5,2+IIGLU1) =SQRT(PHKT(4,2+IIGLU1)**2-
39465 * PHKT(3,2+IIGLU1)**2-PHKT(2,2+IIGLU1)**2-
39466 *PHKT(1,2+IIGLU1)**2)
39467 ELSE
39468C WRITE(6,*)'MUSQBS2 parton 1 mass square LT.0 ',XMIST
39469 PHKT(5,2+IIGLU1)=0.D0
39470 ENDIF
39471 VHKT(1,2+IIGLU1) =VHKK(1,NC2T)
39472 VHKT(2,2+IIGLU1) =VHKK(2,NC2T)
39473 VHKT(3,2+IIGLU1) =VHKK(3,NC2T)
39474 VHKT(4,2+IIGLU1) =VHKK(4,NC2T)
39475 WHKT(1,2+IIGLU1) =WHKK(1,NC2T)
39476 WHKT(2,2+IIGLU1) =WHKK(2,NC2T)
39477 WHKT(3,2+IIGLU1) =WHKK(3,NC2T)
39478 WHKT(4,2+IIGLU1) =WHKK(4,NC2T)
39479 IDHKT(3+IIGLU1) =88888
39480C IDHKT(3) =1000*NNNC1+MMMC1+10
39481 ISTHKT(3+IIGLU1) =93
39482C ISTHKT(3) =KKKC1
39483 JMOHKT(1,3+IIGLU1)=1
39484 JMOHKT(2,3+IIGLU1)=2+IIGLU1
39485 JDAHKT(1,3+IIGLU1)=0
39486 JDAHKT(2,3+IIGLU1)=0
39487 PHKT(1,3+IIGLU1) =PHKT(1,1)+PHKT(1,2+IIGLU1)+PG1
39488 PHKT(2,3+IIGLU1) =PHKT(2,1)+PHKT(2,2+IIGLU1)+PG2
39489 PHKT(3,3+IIGLU1) =PHKT(3,1)+PHKT(3,2+IIGLU1)+PG3
39490 PHKT(4,3+IIGLU1) =PHKT(4,1)+PHKT(4,2+IIGLU1)+PG4
39491 PHKT(5,3+IIGLU1)
39492 * =SQRT(PHKT(4,3+IIGLU1)**2-PHKT(1,3+IIGLU1)**2-PHKT(2,3+IIGLU1)**2
39493 * -PHKT(3,3+IIGLU1)**2)
39494 IF(IPIP.GE.3)THEN
39495 WRITE(LOUT,*)1,ISTHKT(1),IDHKT(1),JMOHKT(1,1),JMOHKT(2,1),
39496 * JDAHKT(1,1),
39497 *JDAHKT(2,1),(PHKT(III,1),III=1,5)
39498 DO 71 IIG=2,2+IIGLU1-1
39499 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
39500 & JMOHKT(1,IIG),JMOHKT(2,IIG),
39501 * JDAHKT(1,IIG),
39502 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
39503 71 CONTINUE
39504 WRITE(LOUT,*)2+IIGLU1,ISTHKT(2+IIGLU1),
39505 & IDHKT(2),JMOHKT(1,2+IIGLU1),
39506 * JMOHKT(2,2+IIGLU1),JDAHKT(1,2+IIGLU1),
39507 *JDAHKT(2,2+IIGLU1),(PHKT(III,2+IIGLU1),III=1,5)
39508 WRITE(LOUT,*)3+IIGLU1,ISTHKT(3+IIGLU1),IDHKT(3+IIGLU1),
39509 * JMOHKT(1,3+IIGLU1),
39510 * JMOHKT(2,3+IIGLU1),JDAHKT(1,3+IIGLU1),
39511 *JDAHKT(2,3+IIGLU1),(PHKT(III,3+IIGLU1),III=1,5)
39512 ENDIF
39513 CHAMAL=CHAB1
39514**NEW
39515C IF(IPIP.EQ.1)THEN
39516C IF(IPP21.GE.3.OR.IPP22.GE.3.OR.IP11.GE.3)CHAMAL=CHAB3
39517C ELSEIF(IPIP.EQ.2)THEN
39518C IF(IPP21.LE.-3.OR.IPP22.LE.-3.OR.IP11.LE.-3)CHAMAL=CHAB3
39519C ENDIF
39520 IF(IPIP.EQ.1)THEN
39521 IF(KK21.GE.3.OR.KK22.GE.3.OR.KK11.GE.3)CHAMAL=CHAB3
39522 ELSEIF(IPIP.EQ.2)THEN
39523 IF(KK21.LE.-3.OR.KK22.LE.-3.OR.KK11.LE.-3)CHAMAL=CHAB3
39524 ENDIF
39525**
39526 IF(PHKT(5,3+IIGLU1).LT.CHAMAL)THEN
39527C IREJ=1
39528 IPCO=0
39529C RETURN
39530C WRITE(6,*)' MGSQBS1 jump back from chain 3'
39531 GO TO 3466
39532 ENDIF
39533 VHKT(1,3+IIGLU1) =VHKK(1,NC1)
39534 VHKT(2,3+IIGLU1) =VHKK(2,NC1)
39535 VHKT(3,3+IIGLU1) =VHKK(3,NC1)
39536 VHKT(4,3+IIGLU1) =VHKK(4,NC1)
39537 WHKT(1,3+IIGLU1) =WHKK(1,NC1)
39538 WHKT(2,3+IIGLU1) =WHKK(2,NC1)
39539 WHKT(3,3+IIGLU1) =WHKK(3,NC1)
39540 WHKT(4,3+IIGLU1) =WHKK(4,NC1)
39541 IF(IPIP.EQ.1)THEN
39542 IDHKT(7+IIGLU1) =1000*IPP1+100*ISQ1+3
39543 IF(IDHKT(7+IIGLU1).EQ.1203)IDHKT(7+IIGLU1)=2103
39544 IF(IDHKT(7+IIGLU1).EQ.1303)IDHKT(7+IIGLU1)=3103
39545 IF(IDHKT(7+IIGLU1).EQ.2303)IDHKT(7+IIGLU1)=3203
39546 ELSEIF(IPIP.EQ.2)THEN
39547 IDHKT(7+IIGLU1) =1000*IPP1+100*(-ISQ1+6)-3
39548 IF(IDHKT(7+IIGLU1).EQ.-1203)IDHKT(7+IIGLU1)=-2103
39549 IF(IDHKT(7+IIGLU1).EQ.-1303)IDHKT(7+IIGLU1)=-3103
39550 IF(IDHKT(7+IIGLU1).EQ.-2303)IDHKT(7+IIGLU1)=-3203
39551C WRITE(6,*)'IDHKT(7),IPP1,ISQ1',IDHKT(7),IPP1,ISQ1
39552 ENDIF
39553 ISTHKT(7+IIGLU1) =921
39554 JMOHKT(1,7+IIGLU1)=NC2P
39555 JMOHKT(2,7+IIGLU1)=0
39556 JDAHKT(1,7+IIGLU1)=9+IIGLU1+IIGLU2
39557 JDAHKT(2,7+IIGLU1)=0
39558C PHKT(1,7) =0.5D0*PHKK(1,NC2P)+PHKK(1,NC1P)*XSQ/(XDIQP+XSQ)
39559C PHKT(2,7) =0.5D0*PHKK(2,NC2P)+PHKK(2,NC1P)*XSQ/(XDIQP+XSQ)
39560C PHKT(3,7) =0.5D0*PHKK(3,NC2P)+PHKK(3,NC1P)*XSQ/(XDIQP+XSQ)
39561C PHKT(4,7+IIGLU1) =0.5D0*PHKK(4,NC2P)+PHKK(4,NC1P)*XSQ/(XDIQP+XSQ)
39562**NEW
39563 IF ((XSQ1 .LT.0.0D0).OR.(XDIQP .LT.0.0D0))
39564 & WRITE(LOUT,*) ' mgsqbs3: ',XSQ1,XDIQP
39565**
39566 PHKT(1,7+IIGLU1) =PHKK(1,NC2P)+PHKK(1,NC1P)*XSQ1/(XDIQP+XSQ1)
39567 PHKT(2,7+IIGLU1) =PHKK(2,NC2P)+PHKK(2,NC1P)*XSQ1/(XDIQP+XSQ1)
39568 PHKT(3,7+IIGLU1) =PHKK(3,NC2P)+PHKK(3,NC1P)*XSQ1/(XDIQP+XSQ1)
39569 PHKT(4,7+IIGLU1) =PHKK(4,NC2P)+PHKK(4,NC1P)*XSQ1/(XDIQP+XSQ1)
39570C WRITE(6,*)'PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)',
39571C * PHKK(4,NC1P),PHKK(4,NC2P), PHKT(4,7)
39572 IF(PHKT(4,7+IIGLU1).GE. PHKK(4,NC1P))THEN
39573C IREJ=1
39574C WRITE(6,*)'reject PHKT(4,7).GE. PHKK(4,NC1P)'
39575 IPCO=0
39576C RETURN
39577 GO TO 3466
39578 ENDIF
39579C PHKT(5,7) =PHKK(5,NC2P)
39580 PHKT(5,7+IIGLU1) =SQRT(PHKT(4,7+IIGLU1)**2-
39581 * PHKT(3,7+IIGLU1)**2-PHKT(2,7+IIGLU1)**2-
39582 *PHKT(1,7+IIGLU1)**2)
39583 VHKT(1,7+IIGLU1) =VHKK(1,NC2P)
39584 VHKT(2,7+IIGLU1) =VHKK(2,NC2P)
39585 VHKT(3,7+IIGLU1) =VHKK(3,NC2P)
39586 VHKT(4,7+IIGLU1) =VHKK(4,NC2P)
39587 WHKT(1,7+IIGLU1) =WHKK(1,NC2P)
39588 WHKT(2,7+IIGLU1) =WHKK(2,NC2P)
39589 WHKT(3,7+IIGLU1) =WHKK(3,NC2P)
39590 WHKT(4,7+IIGLU1) =WHKK(4,NC2P)
39591C Insert here the IIGLU2 gluons
39592 PG1=0.D0
39593 PG2=0.D0
39594 PG3=0.D0
39595 PG4=0.D0
39596 IF(IIGLU2.GE.1)THEN
39597 JJG=NC2P
39598 DO 81 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
39599 KKG=JJG+IIG-7-IIGLU1
39600 IDHKT(IIG) =IDHKK(KKG)
39601 ISTHKT(IIG) =921
39602 JMOHKT(1,IIG)=KKG
39603 JMOHKT(2,IIG)=0
39604 JDAHKT(1,IIG)=9+IIGLU1+IIGLU2
39605 JDAHKT(2,IIG)=0
39606 PHKT(1,IIG)=PHKK(1,KKG)
39607 PG1=PG1+ PHKT(1,IIG)
39608 PHKT(2,IIG)=PHKK(2,KKG)
39609 PG2=PG2+ PHKT(2,IIG)
39610 PHKT(3,IIG)=PHKK(3,KKG)
39611 PG3=PG3+ PHKT(3,IIG)
39612 PHKT(4,IIG)=PHKK(4,KKG)
39613 PG4=PG4+ PHKT(4,IIG)
39614 PHKT(5,IIG)=PHKK(5,KKG)
39615 VHKT(1,IIG) =VHKK(1,KKG)
39616 VHKT(2,IIG) =VHKK(2,KKG)
39617 VHKT(3,IIG) =VHKK(3,KKG)
39618 VHKT(4,IIG) =VHKK(4,KKG)
39619 WHKT(1,IIG) =WHKK(1,KKG)
39620 WHKT(2,IIG) =WHKK(2,KKG)
39621 WHKT(3,IIG) =WHKK(3,KKG)
39622 WHKT(4,IIG) =WHKK(4,KKG)
39623 81 CONTINUE
39624 ENDIF
39625 IDHKT(8+IIGLU1+IIGLU2) =IP2
39626 ISTHKT(8+IIGLU1+IIGLU2) =922
39627 JMOHKT(1,8+IIGLU1+IIGLU2)=NC1T
39628 JMOHKT(2,8+IIGLU1+IIGLU2)=0
39629 JDAHKT(1,8+IIGLU1+IIGLU2)=9+IIGLU1+IIGLU2
39630 JDAHKT(2,8+IIGLU1+IIGLU2)=0
39631**NEW
39632 IF ((XVQT.LT.0.0D0).OR.(XSAQ1 .LT.0.0D0))
39633 & WRITE(LOUT,*) ' mgsqbs4: ',XVQT,XSAQ1
39634**
39635 PHKT(1,8+IIGLU1+IIGLU2) =PHKK(1,NC1T)*XVQT/(XSAQ1+XVQT)
39636 PHKT(2,8+IIGLU1+IIGLU2) =PHKK(2,NC1T)*XVQT/(XSAQ1+XVQT)
39637 PHKT(3,8+IIGLU1+IIGLU2) =PHKK(3,NC1T)*XVQT/(XSAQ1+XVQT)
39638 PHKT(4,8+IIGLU1+IIGLU2) =PHKK(4,NC1T)*XVQT/(XSAQ1+XVQT)
39639C PHKT(5,8+IIGLU1+IIGLU2) =PHKK(5,NC1T)
39640 XMIST=(PHKT(4,8+IIGLU1+IIGLU2)**2-
39641 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
39642 *PHKT(1,8+IIGLU1+IIGLU2)**2)
39643 IF(XMIST.GT.0.D0)THEN
39644 PHKT(5,8+IIGLU1+IIGLU2) =SQRT(PHKT(4,8+IIGLU1+IIGLU2)**2-
39645 * PHKT(3,8+IIGLU1+IIGLU2)**2-PHKT(2,8+IIGLU1+IIGLU2)**2-
39646 *PHKT(1,8+IIGLU1+IIGLU2)**2)
39647 ELSE
39648C WRITE(6,*)'MUSQBS2 parton 1 mass square LT.0 ',XMIST
39649 PHKT(5,8+IIGLU1+IIGLU2)=0.D0
39650 ENDIF
39651 VHKT(1,8+IIGLU1+IIGLU2) =VHKK(1,NC1T)
39652 VHKT(2,8+IIGLU1+IIGLU2) =VHKK(2,NC1T)
39653 VHKT(3,8+IIGLU1+IIGLU2) =VHKK(3,NC1T)
39654 VHKT(4,8+IIGLU1+IIGLU2) =VHKK(4,NC1T)
39655 WHKT(1,8+IIGLU1+IIGLU2) =WHKK(1,NC1T)
39656 WHKT(2,8+IIGLU1+IIGLU2) =WHKK(2,NC1T)
39657 WHKT(3,8+IIGLU1+IIGLU2) =WHKK(3,NC1T)
39658 WHKT(4,8+IIGLU1+IIGLU2) =WHKK(4,NC1T)
39659 IDHKT(9+IIGLU1+IIGLU2) =88888
39660C IDHKT(9) =1000*NNNC2+MMMC2+10
39661 ISTHKT(9+IIGLU1+IIGLU2) =93
39662C ISTHKT(9) =KKKC2
39663 JMOHKT(1,9+IIGLU1+IIGLU2)=7+IIGLU1
39664 JMOHKT(2,9+IIGLU1+IIGLU2)=8+IIGLU1+IIGLU2
39665 JDAHKT(1,9+IIGLU1+IIGLU2)=0
39666 JDAHKT(2,9+IIGLU1+IIGLU2)=0
39667 PHKT(1,9+IIGLU1+IIGLU2) =PHKT(1,7+IIGLU1)
39668 * +PHKT(1,8+IIGLU1+IIGLU2)+PG1
39669 PHKT(2,9+IIGLU1+IIGLU2) =PHKT(2,7+IIGLU1)
39670 * +PHKT(2,8+IIGLU1+IIGLU2)+PG2
39671 PHKT(3,9+IIGLU1+IIGLU2) =PHKT(3,7+IIGLU1)
39672 * +PHKT(3,8+IIGLU1+IIGLU2)+PG3
39673 PHKT(4,9+IIGLU1+IIGLU2) =PHKT(4,7+IIGLU1)
39674 * +PHKT(4,8+IIGLU1+IIGLU2)+PG4
39675 PHKT(5,9+IIGLU1+IIGLU2)
39676 * =SQRT(PHKT(4,9+IIGLU1+IIGLU2)**2-PHKT(1,9+IIGLU1+IIGLU2)**2-
39677 * PHKT(2,9+IIGLU1+IIGLU2)**2
39678 * -PHKT(3,9+IIGLU1+IIGLU2)**2)
39679 IF(IPIP.GE.3)THEN
39680 WRITE(LOUT,*)7+IIGLU1,ISTHKT(7+IIGLU1),IDHKT(7+IIGLU1),
39681 * JMOHKT(1,7+IIGLU1),
39682 * JMOHKT(2,7+IIGLU1),JDAHKT(1,7+IIGLU1),
39683 *JDAHKT(2,7+IIGLU1),(PHKT(III,7+IIGLU1),III=1,5)
39684 DO 91 IIG=7+IIGLU1+1,7+IIGLU1+IIGLU2
39685 WRITE(LOUT,*)IIG,ISTHKT(IIG),IDHKT(IIG),
39686 & JMOHKT(1,IIG),JMOHKT(2,IIG),
39687 * JDAHKT(1,IIG),
39688 *JDAHKT(2,IIG),(PHKT(III,IIG),III=1,5)
39689 91 CONTINUE
39690 WRITE(LOUT,*)8+IIGLU1+IIGLU2,ISTHKT(8+IIGLU1+IIGLU2),
39691 * IDHKT(8+IIGLU1+IIGLU2),
39692 * JMOHKT(1,8+IIGLU1+IIGLU2),JMOHKT(2,8+IIGLU1+IIGLU2),
39693 * JDAHKT(1,8+IIGLU1+IIGLU2),
39694 *JDAHKT(2,8+IIGLU1+IIGLU2),(PHKT(III,8+IIGLU1+IIGLU2),III=1,5)
39695 WRITE(LOUT,*)9+IIGLU1+IIGLU2,ISTHKT(9+IIGLU1+IIGLU2),
39696 * IDHKT(9+IIGLU1+IIGLU2),
39697 * JMOHKT(1,9+IIGLU1+IIGLU2),JMOHKT(2,9+IIGLU1+IIGLU2),
39698 * JDAHKT(1,9+IIGLU1+IIGLU2),
39699 *JDAHKT(2,9+IIGLU1+IIGLU2),(PHKT(III,9+IIGLU1+IIGLU2),III=1,5)
39700 ENDIF
39701 CHAMAL=CHAB1
39702 IF(IPIP.EQ.1)THEN
39703 IF(IP2.GE.3.OR.IPP1.GE.3.OR.ISQ1.GE.3)CHAMAL=CHAB3
39704 ELSEIF(IPIP.EQ.2)THEN
39705 IF(IP2.LE.-3.OR.IPP1.LE.-3.OR.ISQ1.GE.9)CHAMAL=CHAB3
39706 ENDIF
39707 IF(PHKT(5,9+IIGLU1+IIGLU2).LT.CHAMAL)THEN
39708C IREJ=1
39709 IPCO=0
39710C RETURN
39711C WRITE(6,*)' MGSQBS1 jump back from chain 9',
39712C * 'CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)',CHAMAL,PHKT(5,9+IIGLU1+IIGLU2)
39713 GO TO 3466
39714 ENDIF
39715 VHKT(1,9+IIGLU1+IIGLU2) =VHKK(1,NC1)
39716 VHKT(2,9+IIGLU1+IIGLU2) =VHKK(2,NC1)
39717 VHKT(3,9+IIGLU1+IIGLU2) =VHKK(3,NC1)
39718 VHKT(4,9+IIGLU1+IIGLU2) =VHKK(4,NC1)
39719 WHKT(1,9+IIGLU1+IIGLU2) =WHKK(1,NC1)
39720 WHKT(2,9+IIGLU1+IIGLU2) =WHKK(2,NC1)
39721 WHKT(3,9+IIGLU1+IIGLU2) =WHKK(3,NC1)
39722 WHKT(4,9+IIGLU1+IIGLU2) =WHKK(4,NC1)
39723C
39724 IGCOUN=9+IIGLU1+IIGLU2
39725 IPCO=0
39726 RETURN
39727 END
39728
39729*$ CREATE HKKHKT.FOR
39730*COPY HKKHKT
39731C
39732C+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
39733C
39734 SUBROUTINE HKKHKT(I,J)
39735 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
39736 SAVE
39737
39738* event history
39739 PARAMETER (NMXHKK=200000)
39740 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
39741 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
39742 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
39743* extended event history
39744 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
39745 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
39746 & IHIST(2,NMXHKK)
39747
39748 PARAMETER (NTMHKK= 300)
39749 COMMON /HKKTMP/NHKKT,NEVHKT,ISTHKT(NTMHKK),IDHKT(NTMHKK),JMOHKT
39750 +(2,NTMHKK),JDAHKT(2,NTMHKK), PHKT(5,NTMHKK),VHKT(4,NTMHKK),WHKT
39751 +(4,NTMHKK)
39752C
39753 ISTHKK(I) =ISTHKT(J)
39754 IDHKK(I) =IDHKT(J)
39755C IF(J.EQ.3.OR.J.EQ.6.OR.J.EQ.9)THEN
39756 IF(IDHKK(I).EQ.88888)THEN
39757C JMOHKK(1,I)=I-2
39758C JMOHKK(2,I)=I-1
39759 JMOHKK(1,I)=I-(J-JMOHKT(1,J))
39760 JMOHKK(2,I)=I-(J-JMOHKT(2,J))
39761 ELSE
39762 JMOHKK(1,I)=JMOHKT(1,J)
39763 JMOHKK(2,I)=JMOHKT(2,J)
39764 ENDIF
39765 JDAHKK(1,I)=JDAHKT(1,J)
39766 JDAHKK(2,I)=JDAHKT(2,J)
39767C IF(J.EQ.1.OR.J.EQ.4.OR.J.EQ.7)THEN
39768C JDAHKK(1,I)=I+2
39769C ELSEIF(J.EQ.2.OR.J.EQ.5.OR.J.EQ.8)THEN
39770C JDAHKK(1,I)=I+1
39771C ENDIF
39772 IF(JDAHKT(1,J).GT.0)THEN
39773 JDAHKK(1,I)=I+(JDAHKT(1,J)-J)
39774 ENDIF
39775 PHKK(1,I) =PHKT(1,J)
39776 PHKK(2,I) =PHKT(2,J)
39777 PHKK(3,I) =PHKT(3,J)
39778 PHKK(4,I) =PHKT(4,J)
39779 PHKK(5,I) =PHKT(5,J)
39780 VHKK(1,I) =VHKT(1,J)
39781 VHKK(2,I) =VHKT(2,J)
39782 VHKK(3,I) =VHKT(3,J)
39783 VHKK(4,I) =VHKT(4,J)
39784 WHKK(1,I) =WHKT(1,J)
39785 WHKK(2,I) =WHKT(2,J)
39786 WHKK(3,I) =WHKT(3,J)
39787 WHKK(4,I) =WHKT(4,J)
39788 RETURN
39789 END
39790
39791*$ CREATE DT_DBREAK.FOR
39792*COPY DT_DBREAK
39793*
39794*===dbreak=============================================================*
39795*
39796 SUBROUTINE DT_DBREAK(MODE)
39797
39798************************************************************************
39799* This is the steering subroutine for the different diquark breaking *
39800* mechanisms. *
39801* *
39802* MODE = 1 breaking of projectile diquark in qq-q chain using *
39803* a sea quark (q-qq chain) of the same projectile *
39804* = 2 breaking of target diquark in q-qq chain using *
39805* a sea quark (qq-q chain) of the same target *
39806* = 3 breaking of projectile diquark in qq-q chain using *
39807* a sea quark (q-aq chain) of the same projectile *
39808* = 4 breaking of target diquark in q-qq chain using *
39809* a sea quark (aq-q chain) of the same target *
39810* = 5 breaking of projectile anti-diquark in aqaq-aq chain using *
39811* a sea anti-quark (aq-aqaq chain) of the same projectile *
39812* = 6 breaking of target anti-diquark in aq-aqaq chain using *
39813* a sea anti-quark (aqaq-aq chain) of the same target *
39814* = 7 breaking of projectile anti-diquark in aqaq-aq chain using *
39815* a sea anti-quark (aq-q chain) of the same projectile *
39816* = 8 breaking of target anti-diquark in aq-aqaq chain using *
39817* a sea anti-quark (q-aq chain) of the same target *
39818* *
39819* Original version by J. Ranft. *
39820* This version dated 17.5.00 is written by S. Roesler. *
39821************************************************************************
39822
39823 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
39824 SAVE
39825 PARAMETER ( LINP = 10 ,
39826 & LOUT = 6 ,
39827 & LDAT = 9 )
39828
39829* event history
39830 PARAMETER (NMXHKK=200000)
39831 COMMON /DTEVT1/ NHKK,NEVHKK,ISTHKK(NMXHKK),IDHKK(NMXHKK),
39832 & JMOHKK(2,NMXHKK),JDAHKK(2,NMXHKK),
39833 & PHKK(5,NMXHKK),VHKK(4,NMXHKK),WHKK(4,NMXHKK)
39834* extended event history
39835 COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
39836 & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
39837 & IHIST(2,NMXHKK)
39838* flags for input different options
39839 LOGICAL LEMCCK,LHADRO,LSEADI,LEVAPO
39840 COMMON /DTFLG1/ IFRAG(2),IRESCO,IMSHL,IRESRJ,IOULEV(6),
39841 & LEMCCK,LHADRO(0:9),LSEADI,LEVAPO,IFRAME,ITRSPT
39842* pointer to chains in hkkevt common (used by qq-breaking mechanisms)
39843 PARAMETER (MAXCHN=10000)
39844 COMMON /DTIXCH/ IDXCHN(2,MAXCHN),NCHAIN
39845* diquark-breaking mechanism
39846 COMMON /DTDIQB/ DBRKR(3,8),DBRKA(3,8),CHAM1,CHAM3,CHAB1,CHAB3
39847* flags for particle decays
39848 COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
39849 & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
39850 & NMSTU,NPARU,NMSTJ,NPARJ,PDB,PDBSEA(3),ISIG0,IPI0
39851
39852*
39853* chain identifiers
39854* ( 1 = q-aq, 2 = aq-q, 3 = q-qq, 4 = qq-q,
39855* 5 = aq-adq, 6 = adq-aq, 7 = dq-adq, 8 = adq-dq )
39856 DIMENSION IDCHN1(8),IDCHN2(8)
39857 DATA IDCHN1 / 4, 3, 4, 3, 6, 5, 6, 5/
39858 DATA IDCHN2 / 3, 4, 1, 2, 5, 6, 2, 1/
39859*
39860* parton identifiers
39861* ( +-21/22 = valence, +-31/32 = Glauber-sea, +-41/42 = Pomeron (diff),
39862* +-51/52 = unitarity-sea, +-61/62 = gluons )
39863 DIMENSION ISP1P(8,3),ISP1T(8,3),ISP2P(8,3),ISP2T(8,3)
39864 DATA ISP1P / 21, 21, 21, 21, 21, 21, 21, 21,
39865 & 31, 31, 31, 31, 31, 31, 31, 31,
39866 & 41, 41, 41, 41, 51, 51, 51, 51/
39867 DATA ISP1T / 22, 22, 22, 22, 22, 22, 22, 22,
39868 & 32, 32, 32, 32, 32, 32, 32, 32,
39869 & 42, 42, 42, 42, 52, 52, 52, 52/
39870 DATA ISP2P / 31, 21, 31, 31, 21, 21, 21, 21,
39871 & 51, 31, 41, 41, 31, 31, 31, 31,
39872 & 0, 41, 51, 51, 51, 51, 51, 51/
39873 DATA ISP2T / 22, 32, 32, 32, 22, 22, 22, 22,
39874 & 32, 52, 42, 42, 32, 32, 32, 32,
39875 & 42, 0, 52, 52, 52, 52, 52, 52/
39876
39877 IF (NCHAIN.LE.0) RETURN
39878 DO 1 I=1,NCHAIN
39879 IDX1 = IDXCHN(1,I)
39880 IS1P = ABS(ISTHKK(JMOHKK(1,IDX1)))
39881 IS1T = ABS(ISTHKK(JMOHKK(2,IDX1)))
39882 IF ( (IDXCHN(2,I).EQ.IDCHN1(MODE))
39883 & .AND.
39884 & ((IS1P.EQ.ISP1P(MODE,1)).OR.(IS1P.EQ.ISP1P(MODE,2)).OR.
39885 & (IS1P.EQ.ISP1P(MODE,3)))
39886 & .AND.
39887 & ((IS1T.EQ.ISP1T(MODE,1)).OR.(IS1T.EQ.ISP1T(MODE,2)).OR.
39888 & (IS1T.EQ.ISP1T(MODE,3)))
39889 & ) THEN
39890 DO 2 J=1,NCHAIN
39891 IDX2 = IDXCHN(1,J)
39892 IS2P = ABS(ISTHKK(JMOHKK(1,IDX2)))
39893 IS2T = ABS(ISTHKK(JMOHKK(2,IDX2)))
39894 IF ( (IDXCHN(2,J).EQ.IDCHN2(MODE))
39895 & .AND.
39896 & ((IS2P.EQ.ISP2P(MODE,1)).OR.(IS2P.EQ.ISP2P(MODE,2))
39897 & .OR.(IS2P.EQ.ISP2P(MODE,3)))
39898 & .AND.
39899 & ((IS2T.EQ.ISP2T(MODE,1)).OR.(IS2T.EQ.ISP2T(MODE,2))
39900 & .OR.(IS2T.EQ.ISP2T(MODE,3)))
39901 & ) THEN
39902* find mother nucleons of the diquark to be splitted and of the
39903* sea-quark and reject this combination if it is not the same
39904 IF ((MODE.EQ.1).OR.(MODE.EQ.3).OR.
39905 & (MODE.EQ.5).OR.(MODE.EQ.7)) THEN
39906 IANCES = 1
39907 ELSE
39908 IANCES = 2
39909 ENDIF
39910 IDXMO1 = JMOHKK(IANCES,IDX1)
39911 4 CONTINUE
39912 IF ((JMOHKK(1,IDXMO1).NE.0).AND.
39913 & (JMOHKK(2,IDXMO1).NE.0)) THEN
39914 IANC = IANCES
39915 ELSE
39916 IANC = 1
39917 ENDIF
39918 IF (JMOHKK(IANC,IDXMO1).NE.0) THEN
39919 IDXMO1 = JMOHKK(IANC,IDXMO1)
39920 GOTO 4
39921 ENDIF
39922 IDXMO2 = JMOHKK(IANCES,IDX2)
39923 5 CONTINUE
39924 IF ((JMOHKK(1,IDXMO2).NE.0).AND.
39925 & (JMOHKK(2,IDXMO2).NE.0)) THEN
39926 IANC = IANCES
39927 ELSE
39928 IANC = 1
39929 ENDIF
39930 IF (JMOHKK(IANC,IDXMO2).NE.0) THEN
39931 IDXMO2 = JMOHKK(IANC,IDXMO2)
39932 GOTO 5
39933 ENDIF
39934 IF (IDXMO1.NE.IDXMO2) GOTO 2
39935* quark content of projectile parton
39936 IP1 = IDHKK(JMOHKK(1,IDX1))
39937 IP11 = IP1/1000
39938 IP12 = (IP1-1000*IP11)/100
39939 IP2 = IDHKK(JMOHKK(2,IDX1))
39940 IP21 = IP2/1000
39941 IP22 = (IP2-1000*IP21)/100
39942* quark content of target parton
39943 IT1 = IDHKK(JMOHKK(1,IDX2))
39944 IT11 = IT1/1000
39945 IT12 = (IT1-1000*IT11)/100
39946 IT2 = IDHKK(JMOHKK(2,IDX2))
39947 IT21 = IT2/1000
39948 IT22 = (IT2-1000*IT21)/100
39949* split diquark and form new chains
39950 IF (MODE.EQ.1) THEN
39951 IF (IT1.EQ.4) GOTO 2
39952 CALL MGSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39953 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39954 & IP11,IP12,IP2,IT1,IT21,IT22,1,IPQ,IGCOUN)
39955 ELSEIF (MODE.EQ.2) THEN
39956 IF (IT2.EQ.4) GOTO 2
39957 CALL MGSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39958 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39959 & IP1,IP21,IP22,IT11,IT12,IT2,1,IPQ,IGCOUN)
39960 ELSEIF (MODE.EQ.3) THEN
39961 IF (IT1.EQ.4) GOTO 2
39962 CALL MUSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39963 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39964 & IP11,IP12,IP2,IT1,IT2,1,IPQ,IGCOUN)
39965 ELSEIF (MODE.EQ.4) THEN
39966 IF (IT2.EQ.4) GOTO 2
39967 CALL MUSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39968 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39969 & IP1,IP21,IP22,IT1,IT2,1,IPQ,IGCOUN)
39970 ELSEIF (MODE.EQ.5) THEN
39971 CALL MGSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39972 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39973 & IP11,IP12,IP2,IT1,IT21,IT22,2,IPQ,IGCOUN)
39974 ELSEIF (MODE.EQ.6) THEN
39975 CALL MGSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39976 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39977 & IP1,IP21,IP22,IT11,IT12,IT2,2,IPQ,IGCOUN)
39978 ELSEIF (MODE.EQ.7) THEN
39979 CALL MUSQBS1(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39980 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39981 & IP11,IP12,IP2,IT1,IT2,2,IPQ,IGCOUN)
39982 ELSEIF (MODE.EQ.8) THEN
39983 CALL MUSQBS2(IDX1,JMOHKK(1,IDX1),JMOHKK(2,IDX1),
39984 & IDX2,JMOHKK(1,IDX2),JMOHKK(2,IDX2),IREJ,
39985 & IP1,IP21,IP22,IT1,IT2,2,IPQ,IGCOUN)
39986 ENDIF
39987 IF (IREJ.GE.1) THEN
39988 if ((ipq.lt.0).or.(ipq.ge.4))
39989 & write(LOUT,*) 'ipq !!!',ipq,mode
39990 DBRKR(IPQ,MODE) = DBRKR(IPQ,MODE)+1.0D0
39991* accept or reject new chains corresponding to PDBSEA
39992 ELSE
39993 IF ((IPQ.EQ.1).OR.(IPQ.EQ.2)) THEN
39994 ACC = DBRKA(1,MODE)+DBRKA(2,MODE)
39995 REJ = DBRKR(1,MODE)+DBRKR(2,MODE)
39996 ELSEIF (IPQ.EQ.3) THEN
39997 ACC = DBRKA(3,MODE)
39998 REJ = DBRKR(3,MODE)
39999 ELSE
40000 WRITE(LOUT,*) ' inconsistent IPQ ! ',IPQ
40001 STOP
40002 ENDIF
40003 IF (ACC/(ACC+REJ).LE.PDBSEA(IPQ)) THEN
40004 DBRKA(IPQ,MODE) = DBRKA(IPQ,MODE)+1.0D0
40005 IACC = 1
40006 ELSE
40007 DBRKR(IPQ,MODE) = DBRKR(IPQ,MODE)+1.0D0
40008 IACC = 0
40009 ENDIF
40010* new chains have been accepted and are now copied into HKKEVT
40011 IF (IACC.EQ.1) THEN
40012 IF (LEMCCK) THEN
40013 CALL DT_EVTEMC(PHKK(1,IDX1),PHKK(2,IDX1),
40014 & PHKK(3,IDX1),PHKK(4,IDX1),
40015 & 1,IDUM1,IDUM2)
40016 CALL DT_EVTEMC(PHKK(1,IDX2),PHKK(2,IDX2),
40017 & PHKK(3,IDX2),PHKK(4,IDX2),
40018 & 2,IDUM1,IDUM2)
40019 ENDIF
40020 IDHKK(IDX1) = 99888
40021 IDHKK(IDX2) = 99888
40022 IDXCHN(2,I) = -1
40023 IDXCHN(2,J) = -1
40024 DO 3 K=1,IGCOUN
40025 NHKK = NHKK+1
40026 CALL HKKHKT(NHKK,K)
40027 IF ((LEMCCK).AND.(IDHKK(NHKK).EQ.88888))THEN
40028 PX = -PHKK(1,NHKK)
40029 PY = -PHKK(2,NHKK)
40030 PZ = -PHKK(3,NHKK)
40031 PE = -PHKK(4,NHKK)
40032 CALL DT_EVTEMC(PX,PY,PZ,PE,2,IDUM1,IDUM2)
40033 ENDIF
40034 3 CONTINUE
40035 IF (LEMCCK) THEN
40036 CHKLEV = 0.1D0
40037 CALL DT_EVTEMC(DUM1,DUM2,DUM3,CHKLEV,-1,9000,
40038 & IREJ)
40039 IF (IREJ.NE.0) CALL DT_EVTOUT(4)
40040 ENDIF
40041 GOTO 1
40042 ENDIF
40043 ENDIF
40044 ENDIF
40045 2 CONTINUE
40046 ENDIF
40047 1 CONTINUE
40048 RETURN
40049 END
40050
40051*$ CREATE DT_CQPAIR.FOR
40052*COPY DT_CQPAIR
40053*
40054*===cqpair=============================================================*
40055*
40056 SUBROUTINE DT_CQPAIR(XQMAX,XAQMAX,XQ,XAQ,IFLV,IREJ)
40057
40058************************************************************************
40059* This subroutine Creates a Quark-antiquark PAIR from the sea. *
40060* *
40061* XQMAX maxium energy fraction of quark (input) *
40062* XAQMAX maxium energy fraction of antiquark (input) *
40063* XQ energy fraction of quark (output) *
40064* XAQ energy fraction of antiquark (output) *
40065* IFLV quark flavour (- antiquark flavor) (output) *
40066* *
40067* This version dated 14.5.00 is written by S. Roesler. *
40068************************************************************************
40069
40070 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
40071 SAVE
40072 PARAMETER ( LINP = 10 ,
40073 & LOUT = 6 ,
40074 & LDAT = 9 )
40075
40076* Lorentz-parameters of the current interaction
40077 COMMON /DTLTRA/ GACMS(2),BGCMS(2),GALAB,BGLAB,BLAB,
40078 & UMO,PPCM,EPROJ,PPROJ
40079
40080*
40081 IREJ = 0
40082 XQ = 0.0D0
40083 XAQ = 0.0D0
40084*
40085* sample quark flavour
40086*
40087* set seasq here (the one from DTCHAI should be used in the future)
40088 SEASQ = 0.5D0
40089 IFLV = INT(1.0D0+DT_RNDM(XQMAX)*(2.0D0+SEASQ))
40090*
40091* sample energy fractions of sea pair
40092* we first sample the energy fraction of a gluon and then split the gluon
40093*
40094* maximum energy fraction of the gluon forced via input
40095 XGMAXI = XQMAX+XAQMAX
40096* minimum energy fraction of the gluon
40097 XTHR1 = 4.0D0 /UMO**2
40098 XTHR2 = 0.54D0/UMO**1.5D0
40099 XGMIN = MAX(XTHR1,XTHR2)
40100* maximum energy fraction of the gluon
40101 XGMAX = 0.3D0
40102 XGMAX = MIN(XGMAXI,XGMAX)
40103 IF (XGMIN.GE.XGMAX) THEN
40104 IREJ = 1
40105 RETURN
40106 ENDIF
40107*
40108* sample energy fraction of the gluon
40109 NLOOP = 0
40110 1 CONTINUE
40111 NLOOP = NLOOP+1
40112 IF (NLOOP.GE.50) THEN
40113 IREJ = 1
40114 RETURN
40115 ENDIF
40116 XGLUON = DT_SAMSQX(XGMIN,XGMAX)
40117 EGLUON = XGLUON*UMO/2.0D0
40118*
40119* split gluon into q-aq pair (we follow PHOJET's subroutine PHO_GLU2QU)
40120 ZMIN = MIN(0.1D0,0.5D0/EGLUON)
40121 ZMAX = 1.0D0-ZMIN
40122 RZ = DT_RNDM(ZMAX)
40123 XHLP = ((1.0D0-RZ)*ZMIN**3+RZ*ZMAX**3)**0.33333
40124 RQ = DT_RNDM(ZMAX)
40125 IF (RQ.LT.0.5D0) THEN
40126 XQ = XGLUON*XHLP
40127 XAQ = XGLUON-XQ
40128 ELSE
40129 XAQ = XGLUON*XHLP
40130 XQ = XGLUON-XAQ
40131 ENDIF
40132 IF ((XQ.GT.XQMAX).OR.(XAQ.GT.XAQMAX)) GOTO 1
40133
40134 RETURN
40135 END